{"version":3,"sources":["webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/tabs/client/js/config.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/ship-details/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/ajax/client/js/index.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/ship-details-tabs/client/js/config.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/ship-details-tabs/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/tabs/client/js/index.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/ship-details/client/js/config.js"],"names":["module","exports","component","init","hasMousewheel","hasNavigation","hasBreakpoints","hasLazy","isMulti","swiper","slidesPerView","slidesPerGroup","watchSlidesVisibility","loop","spaceBetween","mousewheel","sensitivity","speed","autoplay","containerModifierClass","slideClass","slideActiveClass","slideVisibleClass","slideNextClass","slidePrevClass","wrapperClass","breakpoints","768","1200","1600","navigation","nextEl","prevEl","hiddenClass","disabledClass","pagination","lazy","elementExist","require","config","selector","arguments","length","undefined","configuration","instance","element","document","querySelector","_objectSpread","$","id","$container","concat","settings","data","componentAjaxEndpoint","name","pageType","bussinessArea","args","load","Promise","resolve","reject","addClass","ajax","type","url","contentType","JSON","stringify","Name","PageTypeName","BusinessAreaName","Arguments","done","response","html","fail","jqXHR","errorText","always","removeClass","shipDetails","flags","css","TabsClient","Image","ShipDetails","tabs","tabsClient","_toConsumableArray","querySelectorAll","map","item","index","images","img","window","jQuery","Carousel","AjaxClient","onComponentLoaded","configTabs","_configuration$litera","literals","_literals$errorCompon","errorComponentMessage","ajaxCall","placeholderId","then","attr","error","console","innerHTML","switchSelected","targetId","find","on","event","currentTarget","hasClass","children","preventDefault"],"mappings":"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","file":"ship-details-tabs.d2b6f2a4ae6bc3ddcf9a.bundle.js","sourcesContent":["// Carousel config object\nconst carouselConfig = {\n component: 'Tabs',\n init: true,\n hasMousewheel: true,\n hasNavigation: true,\n hasBreakpoints: true,\n hasLazy: false,\n isMulti: true,\n swiper: {\n init: true,\n // Default parameters\n slidesPerView: 6,\n slidesPerGroup: 6,\n watchSlidesVisibility: true,\n loop: false,\n spaceBetween: 0,\n mousewheel: {\n sensitivity: 0.1\n },\n speed: 500,\n autoplay: false,\n // Setting class names\n containerModifierClass: 'tabs-carousel--',\n slideClass: 'tabs-carousel__slide',\n slideActiveClass: 'tabs-carousel__slide--active',\n slideVisibleClass: 'tabs-carousel__slide--visible',\n slideNextClass: 'tabs-carousel__slide--next',\n slidePrevClass: 'tabs-carousel__slide--prev',\n wrapperClass: 'tabs-carousel__wrapper',\n\n // Responsive breakpoints\n breakpoints: {\n // when window width is <= 480px\n 768: {\n slidesPerView: 2,\n slidesPerGroup: 2\n },\n // when window width is <= 720px\n 1200: {\n slidesPerView: 3,\n slidesPerGroup: 3\n },\n\n // when window width is <= 1600px\n 1600: {\n slidesPerView: 5,\n slidesPerGroup: 5\n }\n },\n\n // Navigation\n navigation: {\n nextEl: '.tabs-carousel__navigation--next',\n prevEl: '.tabs-carousel__navigation--prev',\n hiddenClass: 'tabs-carousel__navigation--hidden',\n disabledClass: 'tabs-carousel__navigation--disabled'\n },\n pagination: {},\n lazy: {}\n }\n};\n\nmodule.exports = carouselConfig;\n","/* ==========================================================================\n ShipDetails > Client\n ========================================================================== */\n\n/* Import modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\n\nconst config = require('./config');\n\n/**\n * ShipDetails component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function ShipDetails(selector = '[data-component=ShipDetails]', configuration = {}) {\n if (elementExist(selector)) {\n // Instance\n const instance = {};\n\n // Element\n instance.element = document.querySelector(selector);\n\n // Config\n instance.config = {\n ...config(),\n ...configuration\n };\n\n return instance;\n }\n};\n","const $ = require('jquery/dist/jquery');\n\nmodule.exports = {\n init: AjaxComponent,\n $ // for testing\n};\n\nfunction AjaxComponent(id) {\n const $container = $(`#${id}`);\n const settings = $container.data('settings');\n\n const { componentAjaxEndpoint, name, pageType, bussinessArea, args } = settings;\n\n // The ajax component object\n return {\n /**\n * Loads the specified component into the container\n */\n load() {\n return new Promise((resolve, reject) => {\n $container.addClass('loading');\n $.ajax({\n type: 'POST',\n url: componentAjaxEndpoint,\n contentType: 'application/json',\n data: JSON.stringify({\n Name: name,\n PageTypeName: pageType,\n BusinessAreaName: bussinessArea,\n Arguments: args\n })\n })\n .done(response => {\n $container.html(response);\n resolve(response);\n })\n .fail((jqXHR, errorText) => {\n const error = errorText;\n reject(error);\n })\n .always(() => {\n $container.removeClass('loading');\n });\n });\n }\n };\n}\n","/* ==========================================================================\n ShipDetailsTabs > Client > Config\n ========================================================================== */\n\n/* Import modules */\n\n/* Config */\nconst config = {\n component: 'ShipDetailsTabs',\n type: {\n shipDetails: 'shipDetails',\n flags: 'language-flags'\n },\n css: {\n flags: 'ship-details-tabs__flag'\n }\n};\n\nmodule.exports = () => config;\n","/* ==========================================================================\n ShipDetailsTabs > Client\n ========================================================================== */\n\n/* Import modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\nconst { TabsClient } = require('@bluekiri/alexandria-contrib-components/components/tabs/client/js');\nconst Image = require('@bluekiri/alexandria-contrib-components/components/image-rxjs/client/js');\nconst ShipDetails = require('../../../ship-details/client/js');\nconst config = require('./config');\n\n/**\n * ShipDetailsTabs component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function ShipDetailsTabs(selector = '[data-component=ShipDetailsTabs]', configuration = {}) {\n if (elementExist(selector)) {\n // Instance\n const instance = {};\n\n // Element\n instance.element = document.querySelector(selector);\n\n // Config\n instance.config = {\n ...config(),\n ...configuration\n };\n\n // Tabs\n instance.tabs = document.querySelector(`[data-component='Tabs']`);\n\n instance.tabsClient = TabsClient(`${selector}`);\n\n // Ship Details\n instance.shipDetails = [\n ...instance.element.querySelectorAll(`${selector} [data-component='Tabs'] [data-component='ShipDetails']`)\n ].map((item, index) => {\n return ShipDetails(\n `${selector} [data-component='ShipDetails'][data-type='${config().type.shipDetails}-${index}']`\n );\n });\n\n // Images\n instance.images = [...instance.element.querySelectorAll(`${selector} [data-component=\"ImageRxjs\"]`)].map(\n (img, index) => {\n return Image(`${selector} [data-component=\"ImageRxjs\"][data-type=\"${config().type.flags}-${index}\"]`);\n }\n );\n\n return instance;\n }\n};\n","const $ = require('jquery/dist/jquery');\n\nwindow.$ = $;\nwindow.jQuery = $;\n\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\n// Import Swiper and modules\n// Import Swiper and modules\nconst Carousel = require('../../../carousel/client/js');\nconst config = require('./config');\nconst AjaxClient = require('../../../ajax/client/js');\n\n/**\n * Client/browser JS for tabs\n * @param {string} selector jQuery selector\n * @param {function} onComponentLoaded function to capture the event of a new component loaded by ajax\n */\nmodule.exports = {\n TabsClient: function fn(selector = '[data-component=\"Tabs\"]', onComponentLoaded = () => {}, configuration = {}) {\n if (elementExist(`${selector} [data-component=\"Carousel\"][data-navigation]`)) {\n /* Config */\n const configTabs = {\n ...config,\n ...configuration,\n swiper: { ...config.swiper, ...(configuration.swiper || {}) }\n };\n\n // Creating carousel instance\n Carousel(`${selector} [data-component=\"Carousel\"][data-navigation]`, configTabs);\n }\n\n const $container = $(`${selector}`);\n\n const { literals = {} } = configuration;\n const { errorComponentMessage = 'Component did not load correctly' } = literals;\n $container.find('.js-nav-tabs').on('click', event => {\n if ($(event.currentTarget).hasClass('js-nav-tabs') && !$(event.currentTarget).hasClass('selected')) {\n const element = $(event.currentTarget);\n const targetId = element.attr('data-target');\n const placeholderId = $container\n .find(`.js-content-tabs#${targetId}`)\n .children()\n .attr('id');\n\n const dataLink = element.attr('data-link');\n\n if (dataLink) {\n event.preventDefault();\n }\n\n switchSelected(element, targetId, placeholderId);\n\n const sent = element.attr('data-sent');\n\n if (sent === '0' && placeholderId) {\n ajaxCall(element, placeholderId);\n }\n }\n });\n\n function ajaxCall(element, placeholderId) {\n if (placeholderId) {\n const ajaxComponent = AjaxClient.init(placeholderId);\n ajaxComponent.load().then(\n response => {\n onComponentLoaded(placeholderId, response);\n element.attr('data-sent', 1);\n },\n error => {\n console.error(error);\n document.querySelector(\n `#${placeholderId}`\n ).innerHTML = `
${errorComponentMessage}
`;\n element.attr('data-sent', 0);\n }\n );\n }\n }\n\n function switchSelected(element, targetId, placeholderId) {\n $container.find('.js-nav-tabs').removeClass('selected');\n element.addClass('selected');\n\n $container.find('.js-content-tabs').removeClass('enable');\n $container.find(`.js-content-tabs#${targetId}`).addClass('enable');\n\n if (element.attr('data-sent') === '1' && placeholderId) {\n onComponentLoaded(placeholderId);\n }\n }\n }\n};\n","/* ==========================================================================\n ShipDetails > Client > Config\n ========================================================================== */\n\n/* Import modules */\n\n/* Config */\nconst config = {\n component: 'ShipDetails'\n};\n\nmodule.exports = () => config;\n"],"sourceRoot":""}