{"version":3,"file":"js/acco-3e28627e.417eeab9.js","mappings":"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","sources":["webpack://@sunwebgroup/design-system/./shared/modules/components/actionable-list/item-types/c-actionable-list__item--room.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/actionable-list/item-types/c-actionable-list__item--extended.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/actionable-list/c-actionable-list.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/autocomplete/event-types.js","webpack://@sunwebgroup/design-system/./shared/modules/components/breadcrumbs/c-breadcrumbs.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/breakdown-table/c-breakdown-table.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/button-group/c-button-group.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/choice-list/event-types.js","webpack://@sunwebgroup/design-system/./shared/modules/components/collapse/event-types.js","webpack://@sunwebgroup/design-system/./shared/modules/components/dropdown/c-dropdown.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/label/c-label.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/nav/c-nav__link--form-action.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/nav/c-nav__link.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/nav/c-nav__item.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/nav/c-nav__list.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/nav/c-nav.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/nav/event-types.js","webpack://@sunwebgroup/design-system/./shared/modules/components/photo-gallery/c-photo-gallery-element.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/photo-gallery/c-photo-gallery.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/photo-gallery/main.js","webpack://@sunwebgroup/design-system/./shared/modules/components/price-table/price-table-data-model.js","webpack://@sunwebgroup/design-system/./shared/modules/components/price-table/c-price-table.discount.bullet.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/price-table/c-price-table.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/price-table/main.js","webpack://@sunwebgroup/design-system/./shared/modules/components/price/c-price.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/side-drawer/c-side-drawer.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/side-drawer/c-side-drawer__body.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/side-drawer/c-side-drawer__footer.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/side-drawer/c-side-drawer__header.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/switch/c-switch.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/table/c-table.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/table/c-table__item.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/tabs/c-tabs__content-wrapper.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/tabs/c-tabs__content.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/tabs/c-tabs__nav-item.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/tabs/c-tabs__nav.template.js","webpack://@sunwebgroup/design-system/./shared/modules/components/tabs/event-types.js","webpack://@sunwebgroup/design-system/./shared/modules/components/transport-ticket/c-transport-ticket.template.js"],"sourcesContent":["/**\n * The ActionableListRoomData contains all data needed to hydrate the view\n *\n * @typedef {Object} ActionableListRoomData\n *\n * @property {Object} labelConfig - Label config\n * @property {PriceData} priceConfig - Price config\n *\n */\n\nimport { defaultPriceData, PriceTemplate } from '../../price/c-price.template'\n\nexport const defaultActionableListRoomData = {\n priceConfig: {\n extraClasses: 'c-actionable-list__item-room__price'\n }\n}\n\nexport const ActionableListRoomTemplate = (d) => {\n d = { ...defaultActionableListRoomData, ...d }\n return `<button class=\"m-button--clean c-actionable-list__item-room\" ${d.item.isDisabled ? 'disabled' : ''}>\n <span class=\"c-actionable-list__item-room__details\">\n ${d.item.stock === 1\n ? ` <span class=\"c-actionable-list__item-room__stock\">${d.config.lastRoomAvailable}</span>`\n : (d.item.stock <= d.config.roomStockThresholdToShowLowAvailability)\n ? `<span class=\"c-actionable-list__item-room__stock\">${d.config.roomsLeftAvailable.replace('{n}', d.item.stock)}</span>`\n : ''}\n ${d.item.onRequest && d.config.onRequestLabel ? `<span class=\"c-actionable-list__item-room__onrequest\">${d.config.onRequestLabel}</span>` : ''}\n ${d.item.title ? `<span data-field=\"title\">${d.item.title}</span>` : ''}\n ${d.item.description ? `<span data-field=\"description\">${d.item.description}</span>` : ''}\n </span>\n ${d.item.price\n ? `${PriceTemplate(\n {\n ...defaultPriceData,\n ...d.priceConfig,\n ...d.config.priceDefaults,\n value: d.item.price\n })}`\n : ''}\n</button>`\n}\n","/**\n * The ActionableListItemExtendedData contains all data needed to hydrate the view\n *\n * @typedef {Object} ActionableListExtendedData\n *\n *\n */\n\nexport const defaultActionableListItemExtendedData = {}\n\nexport const ActionableListItemExtendedTemplate = (d) => {\n d = { ...defaultActionableListItemExtendedData, ...d }\n return `<button class=\"m-button--clean c-actionable-list__item-extended\" ${d.item.isDisabled ? 'disabled' : ''}>\n ${d.item.icon ? `<span class=\"m-icon m-icon--${d.item.icon}\"></span>` : ''}\n <span class=\"c-actionable-list__item-extended__details\">\n ${d.item.title ? `<span data-field=\"title\">${d.item.title}</span>` : ''}\n ${d.item.description ? `<span data-field=\"description\">${d.item.description}</span>` : ''}\n </span>\n</button>`\n}\n","/**\n * The ActionableListData contains all data needed to hydrate the view\n *\n * @typedef {Object} ActionableListData\n *\n * @property {Object} config - Configuration of the actionable-list\n * @property {Object[]} items - Items list to be rendered\n * @property {String} [extraClasses]\n * @property {Object} [attributes]\n *\n */\nimport { ActionableListRoomTemplate } from './item-types/c-actionable-list__item--room.template'\nimport { ActionableListItemExtendedTemplate } from './item-types/c-actionable-list__item--extended.template'\nimport { encodeAttributes } from '../../../js/helpers/string'\n\nexport const defaultActionableListData = {\n config: {\n itemType: ''\n },\n items: [],\n extraClasses: '',\n attributes: '',\n jsApi: false\n}\n\nexport const ActionableListTemplate = (d) => {\n d = { ...defaultActionableListData, ...d }\n return `<ul class=\"c-actionable-list\n c-actionable-list--${d.config.itemType}\n o-list-bare\n ${d.extraClasses ? d.extraClasses : ''}\"\n ${d.jsApi ? 'data-js-component=\"c-actionable-list\"' : ''}\n ${d.attributes ? encodeAttributes(d.attributes) : ''}>\n ${d.items.map(item => `\n <li class=\"c-actionable-list__item\" data-c-actionable-list__item ${item.id ? `data-c-actionable-list__item_id=\"${item.id}\"` : ''} ${item.attributes ? encodeAttributes(item.attributes) : ''} ${item.isDisabled ? 'disabled' : ''} >\n ${ActionableListTypeTemplate(item, d.config)}\n </li>`\n ).join('')}\n</ul>`\n}\n\nconst ActionableListTypeTemplate = (item, config) => {\n if (config.itemType === 'room') {\n return ActionableListRoomTemplate({ item, config })\n } else if (config.itemType === 'extended') {\n return ActionableListItemExtendedTemplate({ item, config })\n } else {\n return ''\n }\n}\n","export const autocomplete = {\n INPUT_CHANGED: 'autocomplete.InputChanged',\n NO_RESULTS: 'autocomplete.NoResults'\n}\n","/**\n * The BreadcrumbsData contains all the data needed to hydrate a Breadcrumbs component\n *\n * @typedef {Object} BreadcrumbsData\n *\n * @property {Bool} structuredData - True if the breadcrumbs use structured data attributes\n * @property {Bool} unclickable - If true will not display hover states and remark last item.\n * @property {BreadcrumbsItemData} items - The items of the breadcrumb\n * @property {String} extraClasses - Extra classes if needed\n */\n\n/**\n * The BreadcrumbsItemData contains all the data needed to hydrate a BreadcrumbsItem component\n *\n * @typedef {Object} BreadcrumbsItemData\n *\n * @property {Bool} structuredData - True if the breadcrumbs use structured data attributes\n * @property {String} text - The content of the item\n * @property {Bool} last - True if this is the last item\n */\n\nexport const defaultBreadcrumbsData = {\n structuredData: false,\n unclickable: true,\n items: [],\n extraClasses: ''\n}\n\nexport const defaultBreadcrumbsItemData = {\n last: false,\n text: ''\n}\n\nexport const BreadcrumbsTemplate = (model) => {\n model = { ...defaultBreadcrumbsData, ...model }\n\n if (model.items.length > 0) {\n model.items.map(item => (item.last = false))\n model.items[model.items.length - 1].last = true\n }\n\n return `\n<ol class=\"c-breadcrumbs\n ${model.unclickable ? 'c-breadcrumbs--unclickable' : ''}\n ${model.extraClasses}\"\n ${model.structuredData ? 'itemscope itemtype=\"http://schema.org/BreadcrumbList\"' : ''}>\n\n ${model.items.map((item, index) => BreadcrumbsItemTemplate(item, model, index)).join('').trim()}\n\n</ol>\n`\n}\n\nexport const BreadcrumbsItemTemplate = (item, model, index) => {\n const href = item.href ? item.href : '#'\n return `\n <li class=\"c-breadcrumbs__item\" data-divider=\"${model.unclickable ? ',' : '›'}\"\n ${model.structuredData ? ' itemprop=\"itemListElement\" itemscope itemtype=\"http://schema.org/ListItem\"' : ''}>\n <${item.unclickable ? 'div' : `a href=\"${href}\"`} class=\"c-breadcrumbs__link ${item.unclickable ? 'c-breadcrumbs__link--unclickable' : ''} \"${model.structuredData ? 'itemprop=\"item\"' : ''}>\n <span class=\"c-breadcrumbs__text\" ${model.structuredData ? 'itemprop=\"name\"' : ''}>\n ${item.text}\n </span>\n </${item.unclickable ? 'div' : 'a'}>\n <meta itemprop=\"position\" content=\"${index}\">\n </li>\n `\n}\n","import { defaultTableData, TableTemplate } from '../table/c-table.template'\nimport { defaultTableItemData, TableItemTemplate } from '../table/c-table__item.template'\n\n/**\n * The BreakdownTableTemplate contains all the data needed to hydrate a BreakDownTable component\n *\n * @typedef {Object} BreakdownTableItemData\n *\n * @property {String} concept - The display text\n * @property {String} value - The value to display\n * @property {BreakdownTableItemData[]} [subitems] - The list of subitems\n * @property {Boolean} [isTotal] - True if is total false otherwise\n * @property {Boolean} [isDiscount] - True if is discount false otherwise\n */\n\n/**\n * The BreakdownTableTemplate contains all the data needed to hydrate a BreakDownTable component\n *\n * @typedef {Object} BreakdownTableData\n *\n * @property {BreakdownTableItemData[]} items - Items the table\n * @property {String} extraContent - The variant that will be used\n * @property {String} [topItemsExtraClasses] - Extra classes of the top items\n * @property {String} [preItemsExtraClasses] - Extra classes of the pre items\n * @property {String} [extraClasses] - Extra classes if needed\n * @property {String} variant - Variant if needed\n * @property {String} tableItemExtraClasses - Extra classes for table if needed\n */\n\nexport const defaultBreakdownTableData = {\n items: [],\n topItemsExtraClasses: '',\n preItemsExtraClasses: '',\n extraContent: 'default',\n extraClasses: '',\n variant: '',\n tableItemExtraClasses: '',\n childrenExtraClasses: ''\n}\n\n/**\n * The BreakdownTableTemplate contains all the data needed to hydrate a BreakDownTable component\n *\n * @param {BreakdownTableData} d - price breakdown data\n * @returns {String} - html\n */\nexport const BreakdownTableTemplate = (d) => {\n d = { ...defaultBreakdownTableData, ...d }\n const innerHTML = `\n ${d.items.map(item => {\n let extraClass = ' c-breakdown-table__item'\n extraClass = `${item.total\n ? ' c-breakdown-table__item c-breakdown-table__item--total'\n : item.isDiscount\n ? 'c-breakdown-table__item-content--discount'\n : ''\n } \n ${d.tableItemExtraClasses}`\n return `\n ${TableItemTemplate(Object.assign({}, defaultTableItemData, {\n extraClasses: extraClass,\n innerHTML: ` ${item.preitem\n ? `<div class=\"c-breakdown-table__item-content c-breakdown-table__item-content--preitem ${item.preitem.preItemsExtraClasses} \">\n <div class=\"c-breakdown-table__item-left\">\n ${item.preitem.concept ? item.preitem.concept : ''}\n </div>\n <div class=\"c-breakdown-table__item-right\">\n ${item.preitem.value ? item.preitem.value : ''}\n </div>\n </div>`\n : ''\n }\n\n <div class=\"c-breakdown-table__item-content ${item.topItemsExtraClasses}\" >\n <div class=\"c-breakdown-table__item-left\">\n ${item.concept ? item.concept : ''}\n </div>\n <div class=\"c-breakdown-table__item-right\">\n ${item.value ? item.value : ''}\n </div>\n </div>\n\n ${item.subitems\n ? item.subitems.map(subitem => {\n return `\n ${SubItemTemplate(subitem)}\n ${subitem.subitems && subitem.subitems.length > 0\n ? `<div class=\"c-breakdown-table__item-content--children ${d.childrenExtraClasses || ''}\">\n ${subitem.subitems.map(child => SubItemTemplate(child)).join('')} \n </div>`\n : ''\n }`\n }).join('')\n : ''\n }`\n }))}\n `\n }).join('')}\n `\n return TableTemplate({\n ...defaultTableData,\n extraClasses: `c-breakdown-table ${d.extraClasses}`,\n variant: d.variant,\n innerHTML\n })\n}\n\nconst SubItemTemplate = (subitem) => {\n return `\n <div class=\"c-breakdown-table__item-content c-breakdown-table__item-content--subitem ${subitem.extraClass || ''}\">\n <div class=\"c-breakdown-table__item-left\">\n ${subitem.isInfo\n ? `<span class=\"m-icon--${subitem.icon} c-breakdown-table__item-content--subitem--info\">${subitem.concept}</span>`\n : `${subitem.concept\n ? subitem.concept\n : ''} `\n }\n </div>\n <div class=\"c-breakdown-table__item-right\">\n ${subitem.value ? subitem.value : ''}\n </div>\n </div>`\n}\n","import { encodeAttributes } from '../../../js/helpers/string'\nimport { getTokenClass } from '../../../js/helpers/tokens'\n\n// Import button group tokens\nconst tokensShared = require('./data/c-button-group__tokens.json')['c-button-group']\nconst tokensBrand = (() => {\n try {\n return require(`../../../../brands/${WEBPACK_BRAND}/modules/components/box/data/c-button-group__tokens.json`)['c-button-group'] // eslint-disable-line\n } catch (error) {\n return {}\n }\n})()\nconst tokens = { ...tokensShared, ...tokensBrand }\n\n/**\n * The ButtonGroupData contains all data needed to hydrate a Button Group selector view\n *\n * @typedef {Object} ButtonGroupData\n *\n * @property {String} id - The element id\n * @property {String} extraClasses\n * @property {String} html - HTML snippet\n * @property {Boolean} proportional - If true, buttons have same distance between each other\n * @property {Boolean} disabled - If true, buttons are disabled\n * @property {String} [variant] - Button Group's variant\n * @property {Object} [attributes] - Extra attributes\n */\n\nexport const defaultButtonGroupData = {\n extraClasses: '',\n html: '',\n variant: 'default',\n proportional: false,\n disabled: false,\n attributes: {}\n}\n\nexport const ButtonGroupTemplate = (d) => {\n d = { ...defaultButtonGroupData, ...d }\n return `\n<div ${d.id ? `id=\"${d.id}\"` : ''} class=\"c-button-group ${d.extraClasses} ${d.proportional ? 'c-button-group--proportional' : ''} ${d.variant ? getTokenClass('variant', d.variant, tokens) : ''} ${d.disabled ? 'is-disabled' : ''}\"\n data-js-component=\"c-button-group\" ${d.attributes ? encodeAttributes(d.attributes) : ''} >\n ${d.html}\n</div>\n`\n}\n","/**\n * List of events used by choice-list\n *\n */\nexport const choiceList = {\n CHOICE_LIST_VALIDATION_ERROR: 'ChoiceList.ValidationError'\n}\n","/**\n * List of events used by collapse component\n *\n */\nexport const collapseEvents = {\n OPEN: 'open',\n OPENED: 'opened',\n CLOSE: 'close',\n CLOSED: 'closed'\n}\n","/**\n * The Dropdown Single Option contains all data needed to hydrate a Dropdown Single\n *\n * @typedef {Object} DropdownData\n *\n * @property {String} [id] Form element id\n * @property {String} [placeholder] Form element placeholder\n * @property {Boolean} [required] When true selection cannot be empty\n * @property {Boolean} [disabled] When true any change cannot be done\n * @property {Boolean} [isMultiple] When true allows multiple selection\n * @property {Boolean} [highlighted] When true a selection will be distinguished with color\n * @property {Boolean} [state]\n * @property {Boolean} [icon]\n * @property {String} [messageRequired] Message to be shown on validation when required & empty\n * @property {String} [track] Event name to be tracked by DataLayers\n * @property {String} [extraClasses] Extra classes to be appended on root element\n * @property {Object} [attributes] Extra attributes to be shown\n */\nimport { encodeAttributes } from '../../../js/helpers/string'\nimport { getTokenClass } from '../../../js/helpers/tokens'\nimport { isAnyOptionSelected } from './c-dropdown_helper'\nimport { DropdownSingleTemplate } from './c-dropdown_single.template'\nimport { DropdownMultipleTemplate } from './c-dropdown_multiple.template'\n\n// Import tokens\nconst tokensShared = require('./data/c-dropdown__tokens.json')['c-dropdown']\nconst tokensBrand = (() => {\n try {\n return require(`../../../../brands/${WEBPACK_BRAND}/modules/components/dropdown/data/c-dropdown__tokens.json`)['c-dropdown'] // eslint-disable-line\n } catch (error) {\n return {}\n }\n})()\nconst tokens = { ...tokensShared, ...tokensBrand }\n\nexport const defaultDropdownData = {\n id: '',\n placeholder: '',\n required: false,\n disabled: false,\n isMultiple: false,\n highlighted: false,\n variant: 'default',\n state: false,\n icon: false,\n jsApi: true,\n messageRequired: '',\n hideRequiredSymbol: false,\n track: '',\n extraClasses: '',\n syncSelectedOnLoad: false,\n attributes: {},\n options: []\n}\n\nexport const DropdownTemplate = (d) => {\n d = { ...defaultDropdownData, ...d }\n return `<div class=\"c-dropdown${d.isMultiple ? '-multiple' : ''}\n ${d.variant ? getTokenClass('variant', d.variant, tokens) : ''}\n ${d.disabled ? 'is-disabled' : ''}\n ${d.icon ? 'has-icon' : ''}\n ${d.required ? 'is-required' : ''}\n ${d.state ? `has-${d.state}` : ''}\n ${d.highlighted ? 'c-dropdown--highlighted' : ''}\n ${(isAnyOptionSelected(d.options) && ((d.variant !== 'compact' && d.isMultiple) || !d.isMultiple)) ? 'has-value' : ''}\n ${(isAnyOptionSelected(d.options) && (d.variant === 'compact' && d.isMultiple)) ? 'has-values' : ''}\n ${d.hideRequiredSymbol ? 'c-dropdown--without-required-symbol' : ''}\n ${d.extraClasses || ''}\"\n ${d.variant ? `data-variant=\"${d.variant}\"` : ''}\n ${d.required ? 'required' : ''}\n ${d.messageRequired && d.messageRequired !== '' ? `data-message-required=\"${d.messageRequired}\"` : ''}\n ${d.track ? `data-track=\"${d.track}\"` : ''}\n ${!d.isMultiple ? `data-c-dropdown__placeholder=\"${d.placeholder}\"` : ''}\n ${d.syncSelectedOnLoad ? 'data-sync-selected-on-load=\"true\"' : ''}\n ${d.jsApi\n ? d.isMultiple\n ? 'data-js-component=\"c-dropdown-multiple\"'\n : 'data-js-component=\"c-dropdown\"'\n : ''}\n ${d.attributes ? encodeAttributes(d.attributes) : ''}>\n\n ${(d.hiddenLabel && d.variant !== 'compact')\n ? ` <label aria-hidden=\"true\" aria-label=\"${d.label}\" for=\"${d.id}\" data-c-dropdown__label></label>`\n : (d.variant !== 'compact' ? `<label class=\"c-dropdown__label e-form-label\"for=\"${d.id}\" data-c-dropdown__label>${d.label}</label>` : '')\n }\n\n ${d.isMultiple\n ? DropdownMultipleTemplate(d)\n : DropdownSingleTemplate(d)}\n <div class=\"c-dropdown__messages\">\n </div>\n </div>`\n}\n","import { encodeAttributes } from '../../../js/helpers/string'\nimport { getToken, getTokenClass } from '../../../js/helpers/tokens'\n\n// Import tokens\nconst tokensShared = require('./data/c-label__tokens.json')['c-label']\nconst tokensBrand = (() => {\n try {\n return require(`../../../../brands/${WEBPACK_BRAND}/modules/components/label/data/c-label__tokens.json`)['c-label'] // eslint-disable-line\n } catch (error) {\n return {}\n }\n})()\nconst tokens = { ...tokensShared, ...tokensBrand }\n\n// Import cross-component shared tokens\nconst tokensCollections = (() => {\n try {\n return require(`../../../../brands/${WEBPACK_BRAND}/data/ds-tokens-shared.json`)['collections'] // eslint-disable-line\n } catch (error) {\n return {}\n }\n})()\nconst tokensStates = (() => {\n try {\n return require(`../../../../brands/${WEBPACK_BRAND}/data/ds-tokens-shared.json`)['states'] // eslint-disable-line\n } catch (error) {\n return {}\n }\n})()\n\n/**\n * The Label Data contains all the data needed to hydrate a label component\n *\n * @typedef {Object} LabelData\n\n * @property {String} text - The text of the label\n * @property {String} [collection] - The collection displayed in the label\n * @property {Object} [attributes] - The attributes for the label\n * @property {String} [extraClasses] - The extraClasses for the label\n * @property {String} [variant] - The variant used for the label\n * @property {String} [size] - The size of the font using within the label\n * @property {String} [state] - The state used for the label\n * @property {String} [icon] - The icon used for the label\n * @property {String} [iconSize] - The icon size\n */\nexport const defaultLabelData = {\n text: '',\n collection: '',\n attributes: {},\n extraClasses: '',\n variant: '',\n size: '',\n state: '',\n icon: '',\n iconSize: ''\n}\n\nexport const LabelTemplate = (d) => {\n d = { ...defaultLabelData, ...d }\n\n const currentCollectionToken = d.collection\n ? getToken('collection', d.collection.toLowerCase(), tokensCollections) || undefined\n : undefined\n const currentCollectionColorScheme = currentCollectionToken\n ? currentCollectionToken.colorScheme || ''\n : ''\n\n const currentStateToken = d.state\n ? getToken('state', d.state, tokensStates) || undefined\n : undefined\n const currentStateModifier = currentStateToken\n ? currentStateToken.modifier || ''\n : ''\n const currentStateColorScheme = currentStateToken\n ? currentStateToken.colorScheme || ''\n : ''\n const currentStateColorSchemeWhite = currentStateToken\n ? currentStateToken.colorSchemeWhite || ''\n : ''\n\n return `\n<span class=\"c-label ${d.extraClasses || ''}\n ${d.icon ? 'c-label--with-icon' : ''}\n ${d.variant ? getTokenClass('variant', d.variant, tokens) : ''}\n ${d.size ? 'c-label--' + d.size : ''}\n ${d.state\n ? `c-label${currentStateModifier} \n ${d.variant === 'badge' ? `${currentStateColorScheme}` : `${currentStateColorSchemeWhite}`}`\n : ''}\n ${d.collection\n ? `c-label--collection ${currentCollectionColorScheme}`\n : ''}\"\n ${d.attributes ? encodeAttributes(d.attributes) : ''}>\n ${d.icon\n ? `<span class=\"c-label__icon m-icon m-icon--${d.icon} ${d.iconSize ? `m-icon--size-${d.iconSize}` : ''}\"></span>`\n : ''}\n ${d.text}\n</span>\n `\n}\n","/**\n * The NavLinkFormActionData contains all data needed to hydrate a NavLinkForm view\n *\n * @typedef {Object} NavLinkFormActionData\n *\n * @property {String} method\n * @property {String} action\n * @property {String} icon\n * @property {String} text\n * @property {Array} inputs\n */\n\nexport const defaultNavLinkFormActionData = {\n method: '',\n action: '',\n inputs: [],\n icon: '',\n text: ''\n}\n\nexport const NavLinkFormActionTemplate = (d) => {\n d = { ...defaultNavLinkFormActionData, ...d }\n return `\n <div class=\"c-nav__link c-nav__link--form-wrapper\">\n <form method=\"${d.method}\" action=\"${d.action}\">\n ${d.inputs\n ? d.inputs.map(input => {\n return `<input type=\"hidden\" name=\"${input.name}\" value=\"${input.value}\" />`\n }).join()\n : ''\n }\n \n <button type=\"submit\" class=\"c-btn c-btn--flat c-nav__form-submit\">\n ${d.icon ? `<i class=\"c-nav__link-icon m-icon m-icon--${d.icon}\"></i>` : ''}\n <span class=\"c-nav__link-text\">\n ${d.text}\n </span>\n </button>\n </form>\n </div>\n`\n}\n","/**\n * The NavLinkData contains all data needed to hydrate a NavLinkForm view\n *\n * @typedef {Object} NavLinkData\n *\n * @property {Object} link\n * @property {String} [link.href] - Link's url\n * @property {String} [link.target] - Open in same page, new page...\n * @property {String} [link.icon]\n * @property {String} [link.text]\n * @property {Boolean} isCollapsible\n * @property {String} collapsibleId\n * @property {Object} attributes\n * @property {String} extraClasses\n */\n\nimport { encodeAttributes } from '../../../js/helpers/string'\n\nexport const defaultNavLinkData = {\n link: {},\n isCollapsible: false,\n collapsibleId: '',\n attributes: {},\n extraClasses: ''\n}\n\nexport const NavLinkTemplate = (d) => {\n d = { ...defaultNavLinkData, ...d }\n return `\n <a class=\"c-nav__link ${d.extraClasses}\"\n ${d.link.href ? `href=\"${d.link.href}\"` : ''}\n ${d.link.target ? `target=\"${d.link.target}\"` : ''}\n ${d.isCollapsible ? `data-c-collapse__id=\"${d.collapsibleId}\" data-c-collapse__action=\"toggle\"` : ''}\n ${d.attributes ? encodeAttributes(d.attributes) : ''}>\n ${d.link.icon ? `<i class=\"c-nav__link-icon m-icon m-icon--${d.link.icon}\"></i>` : ''}\n ${d.link.text ? `<span class=\"c-nav__link-text\">${d.link.text}</span>` : ''}\n </a>\n `\n}\n","/**\n * The NavItemData contains all data needed to hydrate a Nav view\n *\n * @typedef {Object} NavItemData\n *\n * @property {Boolean} isBack\n * @property {Boolean} isMore\n * @property {Boolean} isActive\n * @property {Boolean} isCurrent\n * @property {Boolean} isFavoriteCollector\n * @property {Boolean} isOpened\n * @property {String} until\n * @property {String} shownOnMoreUntil\n * @property {String} shownOnMoreFrom\n * @property {String} itemDefinition\n * @property {String} itemType\n * @property {String} parentId\n * @property {String} id\n * @property {Array} items\n * @property {Object} [link] - Link info for button in case it's an anchor link\n * @property {String} [link.href] - Link's url\n * @property {String} [link.target] - Open in same page, new page...\n * @property {String} [link.icon]\n * @property {String} [link.text]\n * @property {Object} [form] - Form info for button in case it's a form action\n * @property {String} [form.method] - Form's method\n * @property {String} [form.action] - Form's action\n * @property {Array} [form.inputs] - Form's inputs\n */\n\nimport { NavLinkFormActionTemplate } from './c-nav__link--form-action.template'\nimport { NavLinkTemplate } from './c-nav__link.template'\nimport { CollapseTemplate } from '../collapse/c-collapse.template'\nimport { NavListTemplate } from './c-nav__list.template'\n\nexport const defaultNavItemData = {\n isBack: false,\n isMore: false,\n isActive: false,\n isCurrent: false,\n isFavoriteCollector: false,\n isOpened: false,\n until: '',\n shownOnMoreUntil: '',\n shownOnMoreFrom: '',\n itemDefinition: '',\n itemType: '',\n parentId: '',\n id: '',\n items: [],\n link: {},\n form: {},\n variant: 'default',\n more: false\n}\n\nconst retrieveExtraClassesForItem = (d) => {\n const itemExtraClassesBack = d.isBack ? 'c-nav__item--back' : ''\n const itemExtraClassesMore = (d.until && d.isMore) ? 'c-nav__item--more u-hidden--from@' + d.until : ''\n const itemExtraClassesShowOnMoreUntil = (d.shownOnMoreUntil && d.more) ? 'u-hidden--until@' + d.shownOnMoreUntil : ''\n const itemExtraClassesShowOnMoreFrom = (d.shownOnMoreFrom && d.more) ? ' u-hidden--from@' + d.shownOnMoreFrom : ''\n const itemExtraClassesActive = d.isActive ? 'is-active' : ''\n const itemExtraClassesOpened = d.isOpened ? 'is-opened' : ''\n const itemExtraClassesCurrent = d.isCurrent ? 'is-current' : ''\n const itemExtraClassesFavoriteCollector = d.isFavoriteCollector ? 'c-nav__item--favorite-collector' : ''\n const itemExtraClassesChild = (d.items && d.items.length > 0 && d.level < 3) ? 'has-child' : ''\n\n const itemExtraClasses = [...new Set([\n ...['c-nav__item'],\n ...[itemExtraClassesBack],\n ...[itemExtraClassesMore],\n ...[itemExtraClassesShowOnMoreUntil],\n ...[itemExtraClassesShowOnMoreFrom],\n ...[itemExtraClassesActive],\n ...[itemExtraClassesOpened],\n ...[itemExtraClassesCurrent],\n ...[itemExtraClassesFavoriteCollector],\n ...[itemExtraClassesChild]\n ])].filter(e => e).join(' ')\n\n return itemExtraClasses\n}\n\nexport const NavItemTemplate = (d) => {\n d = { ...defaultNavItemData, ...d }\n\n return ` \n <li class=\"${retrieveExtraClassesForItem(d)}\"\n data-c-nav-item__definition=\"${d.itemDefinition}\">\n ${d.itemType === 'form-action'\n ? `${NavLinkFormActionTemplate(Object.assign({}, {\n method: d.form.method,\n action: d.form.action,\n inputs: d.form.inputs,\n icon: d.link.icon,\n text: d.link.text\n }))}`\n : `${NavLinkTemplate(Object.assign({}, {\n extraClasses: d.isFavoriteCollector ? 'c-favorite-collector' : '',\n isCollapsible: d.variant === 'collapsible' && d.level < 3,\n collapsibleId: `${d.id}-collapse`,\n link: d.link\n }))\n }`\n }\n\n ${d.items && d.items.length > 0\n ? (d.variant === 'collapsible' && d.level < 3)\n ? `${CollapseTemplate({\n id: d.id + '-collapse',\n opened: d.isOpened,\n extraClasses: 'c-nav__children-collapse',\n groupId: d.parentId + '-collapse-group',\n html: `\n ${NavListTemplate(Object.assign({}, { ...d, items: d.items, level: d.level + 1, id: d.id }))}\n `\n })}`\n : `${NavListTemplate(Object.assign({}, { ...d, items: d.items, level: d.level + 1, id: d.id }))}`\n : ''}\n </li>\n `\n}\n","/**\n * The NavListData contains all data needed to hydrate a NavList view\n *\n * @typedef {Object} NavListData\n *\n * @property {Number} level\n * @property {Boolean} multilevel\n * @property {Boolean} more\n * @property {String} backText\n * @property {String} moreText\n * @property {Array} items\n * @property {String} [variant] - Nav's variant\n * @property {String} [track] - Nav's track\n * @property {Object} [attributes] - Attributes for the nav\n */\n\nimport { NavItemTemplate } from './c-nav__item.template'\n\nexport const defaultNavListData = {\n level: 1,\n variant: 'default',\n multilevel: false,\n backText: 'Back',\n items: [],\n moreText: 'More',\n more: false\n}\n\nexport const NavListTemplate = (d) => {\n d = { ...defaultNavListData, ...d }\n const navListData = { multilevel: d.multilevel, variant: d.variant, level: d.level, backText: d.backText }\n\n return `\n <ul class=\"c-nav__list ${d.level > 3 ? 'c-nav__list--sibling-children' : ''}\"\n data-c-nav__level=\"${d.level}\">\n \n ${(d.variant === 'block' && d.multilevel && d.level > 1 && d.level <= 3)\n ? `${NavItemTemplate(Object.assign({}, { link: { text: d.backText }, isBack: true, level: d.level }))}`\n : ''\n }\n\n ${d.items.length > 0 && d.items.map((item, index) => {\n return NavItemTemplate(Object.assign({},\n navListData,\n item,\n {\n items: item.items,\n id: `${d.id}-${index}`,\n parentId: d.id,\n more: d.more,\n backText:\n d.backText,\n multilevel:\n d.multilevel,\n moreText: d.moreText\n }\n ))\n }).join('')\n }\n\n ${(d.more && d.level === 1)\n ? `${NavItemTemplate(Object.assign({},\n {\n variant: d.variant,\n link: { text: d.moreText },\n isMore: true,\n more: d.more,\n backText: d.backText,\n level: d.level,\n multilevel: d.multilevel,\n ...navMoreData(d.items)\n }))}`\n : ''\n }\n </ul>\n `\n}\n\nconst navMoreData = (navItems) => {\n if (!navItems.length > 0) { return }\n const breakpoints = ['xxs', 'xs', 'sm', 'sml', 'md', 'lg', 'xl', 'xxl', 'xxxl']\n // Select only items with shownOnMoreUntil property\n const items = navItems.filter(i => !!i.shownOnMoreUntil)\n // Find biggest breakpoint of all the items\n const biggestBreakpointIndex = items.reduce((bpIndex, item) => {\n const currentIndex = breakpoints.indexOf(item.shownOnMoreUntil)\n if (currentIndex > bpIndex) {\n bpIndex = currentIndex\n }\n return bpIndex\n }, 0)\n\n return {\n id: 'nav-more',\n until: breakpoints[biggestBreakpointIndex],\n items: items.map(item => ({\n ...item,\n shownOnMoreFrom: item.shownOnMoreUntil,\n shownOnMoreUntil: undefined\n }))\n }\n}\n","/**\n * The NavData contains all data needed to hydrate a Nav view\n *\n * @typedef {Object} NavData\n *\n * @property {String} tag\n * @property {String} extraClasses\n * @property {String} id\n * @property {String} backText\n * @property {String} more\n * @property {String} moreText\n * @property {Boolean} multilevel\n * @property {Number} currentLevel\n * @property {Array} items\n * @property {String} [variant] - Nav's variant\n * @property {String} [track] - Nav's track\n * @property {Object} [attributes] - Attributes for the nav\n * @property {Object} [navData] - navData for the nav\n */\n\nimport { SwipeTemplate } from '../../objects/swipe/o-swipe.template'\nimport { NavListTemplate } from './c-nav__list.template'\nimport { encodeAttributes } from '../../../js/helpers/string'\nimport { getTokenClass } from '../../../js/helpers/tokens'\n\n// Import tokens\nconst tokensShared = require('./data/c-nav__tokens.json')['c-nav']\nconst tokensBrand = (() => {\n try {\n return require(`../../../../brands/${WEBPACK_BRAND}/modules/components/nav/data/c-nav__tokens.json`)['c-nav'] // eslint-disable-line\n } catch (error) {\n return {}\n }\n})()\nconst tokens = { ...tokensShared, ...tokensBrand }\n\nexport const defaultNavData = {\n tag: '',\n variant: 'default',\n extraClasses: '',\n backText: 'Back',\n more: false,\n moreText: 'More',\n multilevel: false,\n id: '',\n level: 1,\n currentLevel: 1,\n track: '',\n items: [],\n attributes: {}\n}\n\nexport const NavTemplate = (d) => {\n d = { ...defaultNavData, ...d }\n\n return `\n <${d.tag ? d.tag : 'nav'}\n class=\"c-nav ${d.variant ? getTokenClass('variant', d.variant, tokens) : ''} \n ${d.variant !== 'list' && d.multilevel ? 'c-nav--multilevel' : ''} \n ${d.extraClasses}\"\n ${d.id ? `id=\"${d.id}\"` : ''}\n ${d.variant === 'block' || d.variant === 'dropdown' ? `data-c-nav__shown-level=\"${d.currentLevel}\" data-c-nav__variant=\"${d.variant}\"` : ''}\n ${d.variant === 'inline' ? 'data-js-swipe data-list-class=\"c-nav__list\" data-list-item-class=\"c-nav__item\" data-left-arrow-class=\"o-swipe-btn--left\" data-right-arrow-class=\"o-swipe-btn--right\" data-active-class=\"is-active\"' : ''}\n ${d.track ? `data-track=${d.track}` : ''}\n ${d.attributes ? encodeAttributes(d.attributes) : ''}\n data-js-component='c-nav'>\n ${NavListTemplate(Object.assign({}, {\n variant: d.variant,\n multilevel: d.multilevel,\n items: d.items,\n level: d.level,\n currentLevel: d.currentLevel,\n id: d.id,\n backText: d.backText,\n more: d.more,\n moreText: d.moreText\n }))}\n ${d.variant === 'inline' ? SwipeTemplate() : ''}\n </${d.tag ? d.tag : 'nav'}>\n`\n}\n","export const navigation = {\n CLICK_NAVIGATION: 'navigation.click'\n}\n","import { ImgTemplate, defaultImgData } from '../../components/img/c-img.template'\n\n/**\n * The PhotoGalleryElement contains all data necessary to display a video or an image in a PhotoGallery\n *\n * see: PhotoGalleryElement.cs\n *\n * @typedef {Object} PhotoGalleryElement\n *\n * @property {String} id - The id of the video\n * @property {String} title - The title of the video\n * @property {string} description - The description of the video\n * @property {String} url - The url of the video\n * @property {String} videoId - The videoId of teh video\n * @property {bool} isDescriptionAfterVideo - If the description should appear after the video\n * @property {String} thumbnail - The thumbnail for the video\n * @property {String} apiKey - The api Key of the library responsible of displaying the video\n * @property {Object} galleryImageThumbnail - An Object containing all data for the thumbnail of an image\n * @property {Object} galleryImageOriginalImage - An Object containing all data for the image shown when clicking the thumbnail\n */\nexport const PhotoGalleryElementTemplate = (d) => {\n let template = ''\n if (d.apiKey && d.thumbnail) {\n template = PhotoGalleryVideoTemplate(d)\n } else if (d.galleryImageThumbnail) {\n template = PhotoGalleryImageTemplate(d)\n }\n return template\n}\n\nconst PhotoGalleryVideoTemplate = (d) => {\n return `\n <a href=\"#\" title=\"${d.title}\"\n class=\"c-photo-gallery__item c-photo-gallery__item-video\"\n data-item-gallery-type=\"video\"\n data-c-modal__id=\"${d.modalId}\"\n data-c-modal__action=\"open\"\n data-c-photo-gallery-item=\"${d.position}\"\n data-image-placeholderSrc=\"${d.thumbnail}\"\n data-image-resolvedSrc=\"${d.thumbnail}\"\n data-image-ratio=\"16:9\"\n data-image-description=\"${d.description}\"\n ${d.apiKey ? 'data-video-apiKey=' + d.apiKey : ''}\n data-video-url=\"${d.url}\"\n data-video-id=\"${d.id}\"\n data-video-videoId=\"${d.videoId}\">\n ${ImgTemplate({\n ...defaultImgData,\n ratio: '1:1',\n resolve: 'intersect',\n placeholderSrc: d.thumbnail,\n resolvedSrc: d.thumbnail,\n title: d.title\n })}\n <i class=\"c-photo-gallery-video-thumbnail-info-icon m-icon m-icon--play\"></i>\n </a>`\n}\n\nexport const defaultGalleryImageThumbnailData = {\n sync: false,\n resolve: 'intersect',\n placeholderSrc: '',\n resolvedSrc: '',\n title: '',\n attributes: {},\n ratio: '1:1'\n}\n\nexport const defaultGalleryImageData = {\n placeholderSrc: '',\n resolvedSrc: '',\n ratio: '16:9',\n galleryImageDescription: ''\n}\n\nconst PhotoGalleryImageTemplate = (d) => {\n const originalImage = GetOriginalImage(d.galleryImageOriginalImage)\n const thumbnail = GetThumbnail(d.galleryImageThumbnail)\n return `<a href=\"#\" title=\"${d.title}\"\n class=\"c-photo-gallery__item\"\n data-c-modal__id=\"${d.modalId}\"\n data-c-modal__action=\"open\"\n data-c-photo-gallery-item=\"${d.position}\"\n data-image-placeholderSrc=\"${originalImage.placeholderSrc}\"\n data-image-resolvedSrc=\"${originalImage.resolvedSrc}\"\n data-image-ratio=\"${GetRatioStringFromRatioModel(originalImage.ratio)}\"\n data-image-description=\"${originalImage.galleryImageDescription}\"\n data-image-resolve=\"${originalImage.resolve}\">\n ${ImgTemplate(thumbnail)}\n </a>`\n}\n\nfunction GetRatioStringFromRatioModel (ratio) {\n return `${ratio.width}:${ratio.height}`\n}\n\nfunction GetOriginalImage (d) {\n let resolve, ratio\n if (d.resolve) resolve = d.resolve.toLowerCase()\n if (d.ratio) ratio = GetRatioStringFromRatioModel(d.ratio)\n return {\n ...defaultGalleryImageData,\n ...d,\n resolve,\n ratio\n }\n}\n\nfunction GetThumbnail (d) {\n let resolve, ratio\n if (d.resolve) resolve = d.resolve.toLowerCase()\n if (d.ratio) ratio = GetRatioStringFromRatioModel(d.ratio)\n return {\n ...defaultGalleryImageThumbnailData,\n ...d,\n resolve,\n ratio\n }\n}\n","import { PhotoGalleryElementTemplate } from './c-photo-gallery-element.template'\nimport { ModalTemplate } from '../../components/modal/c-modal.template'\nimport { newGUID } from '../../../js/helpers/guid'\n\nexport const PhotoGalleryTemplate = (d) => {\n const id = newGUID()\n const modalId = `${id}_modal`\n return `\n<div class=\"c-photo-gallery ${d.extraClasses ? d.extraClasses : ''}\" id=\"${id}\" data-js-component=\"c-photo-gallery\">\n${d.elements.map((item, index) => (\n PhotoGalleryElementTemplate({\n ...item,\n modalId,\n position: index,\n title: d.popupTitle\n }))\n).join('')}\n${ModalTemplate({\n id: modalId,\n size: 'large',\n title: d.popupTitle,\n attributes: { 'data-c-photo-gallery__modal': '' }\n})}\n</div>`\n}\n","import Component from '../../../js/core/component/component'\nimport { registerComponent } from '../../../js/core/component/component-directory'\nimport { SliderTemplate } from '../slider/c-slider.template'\nimport { ImgTemplate } from '../img/c-img.template'\nimport { VideoTemplate } from '../video/c-video.template'\nimport Img from '../img/main'\n\nconst selectorNames = {\n galleryItem: '.c-photo-gallery__item',\n gallerySlider: 'c-photo-gallery__slider',\n galleryModalContent: 'c-modal__body',\n galleryModalFooter: 'c-modal__footer',\n modal: '[data-c-photo-gallery__modal]',\n modalApi: 'c-modal',\n videoApi: 'c-video',\n sliderApi: 'c-slider',\n sliderContent: 'c-slider__content'\n}\n\nconst definition = {\n\n name: 'c-photo-gallery',\n props: [\n {\n name: 'currentIndex',\n type: 'integer'\n }\n ]\n}\n\n/**\n * Photo Gallery content\n *\n */\nexport default class PhotoGallery extends Component {\n /**\n * Creates a new Photo Gallery behaviour, exposes an API to the element.\n *\n * @constructor\n * @param {HTMLElement} element - The HTML element.\n */\n\n constructor (element) {\n super(element, definition.name)\n this.modal = this.element.querySelector(selectorNames.modal)\n this.modalContent = this.modal.querySelector(`.${selectorNames.galleryModalContent}`)\n this.modalFooter = this.modal.querySelector(`.${selectorNames.galleryModalFooter}`)\n this._attachEvents()\n this._setGalleryListeners()\n this.modalContentRendered = false\n this.sliderInitialized = false\n this.sliderIndex = 0\n Img.createInstancesOnDocument(this.element)\n }\n\n _attachEvents () {\n if (this.modal) {\n this.modalApi = this.modal[selectorNames.modalApi]\n this.modalApi.events.on('onScreen', this._isOpened, this)\n this.modalApi.events.on('close', this._isClosed, this)\n }\n }\n\n _isClosed () {\n this.videos = this.element.querySelectorAll('.' + selectorNames.videoApi)\n for (const i in this.videos) {\n const videoElement = this.videos[i]\n const video = videoElement[selectorNames.videoApi]\n if (video) video.pauseVideo()\n }\n }\n\n _isOpened () {\n const sliderTransitionElement = this.modalContent.querySelector(`.${selectorNames.sliderContent}`)\n if (sliderTransitionElement) sliderTransitionElement.style.transition = 'none'\n Img.createInstancesOnDocument(this.modalContent)\n if (this.sliderIndex === 0) {\n this._setSliderIndex(1)\n }\n this._setSliderIndex(this.sliderIndex)\n if (sliderTransitionElement) sliderTransitionElement.style.transition = null\n\n this._renderModalFooter()\n }\n\n _renderModalContent () {\n this.modalContent.innerHTML = SliderTemplate({\n id: `${this.element.id}__slider`,\n extraClasses: selectorNames.gallerySlider,\n luminosity: 'dark',\n outerButtons: true,\n attributes: { 'data-loop': true, 'data-resolve-on-intersect': false },\n items: this._getImageElements()\n })\n }\n\n _renderModalFooter () {\n const slider = this._getSliderElement()\n const sliderApi = slider['c-slider']\n const descriptions = this._getDescriptions()\n if (slider) {\n this._updateDescription(descriptions[this.sliderIndex])\n sliderApi.events.on('change', (index) => {\n this._updateDescription(descriptions[index])\n }, this)\n }\n }\n\n _updateDescription (description) {\n this.modalFooter.innerHTML = description\n }\n\n _getImageElements () {\n const images = []\n const items = this.element.querySelectorAll(selectorNames.galleryItem)\n items.forEach(item => {\n if (item.getAttribute('data-item-gallery-type') === 'video') {\n const image = VideoTemplate({\n videoId: item.getAttribute('data-video-videoId'),\n id: item.getAttribute('data-video-id'),\n apiKey: item.getAttribute('data-video-apiKey'),\n url: item.getAttribute('data-video-url'),\n thumbnail: item.getAttribute('data-image-placeholderSrc')\n })\n images.push(image)\n } else {\n const image = ImgTemplate({\n placeholderSrc: item.getAttribute('data-image-placeholderSrc'),\n resolvedSrc: item.getAttribute('data-image-resolvedSrc'),\n ratio: item.getAttribute('data-image-ratio'),\n resolve: item.getAttribute('data-image-resolve')\n })\n images.push(image)\n }\n })\n return images\n }\n\n _getDescriptions () {\n const descriptions = []\n const items = this.element.querySelectorAll(selectorNames.galleryItem)\n items.forEach(item => {\n const description = item.getAttribute('data-image-description')\n descriptions.push(description)\n })\n return descriptions\n }\n\n _setSliderIndex (index) {\n const slider = this._getSliderElement()\n if (slider) {\n slider['c-slider'].setProp('index', index, { forceUpdate: true })\n this.sliderApi = this.sliderElement[selectorNames.sliderApi]\n this.sliderApi.events.on('change', this._isClosed, this)\n }\n }\n\n _setGalleryListeners () {\n this.element.addEventListener('click', (ev) => {\n ev.preventDefault()\n if (!this.modalContentRendered) {\n this._renderModalContent()\n Component.initDocumentComponentsFromAPI(this.modalContent)\n Component.initComponentActionElements(this.modalContent)\n this.modalContentRendered = true\n }\n const target = ev.target && ev.target.closest(selectorNames.galleryItem)\n if (target) {\n this.sliderIndex = parseInt(target.dataset.cPhotoGalleryItem)\n }\n })\n }\n\n _getSliderElement () {\n this.sliderElement = this.sliderElement || this.element.querySelector(`.${selectorNames.gallerySlider}`)\n this.videos = this.element.querySelectorAll('.' + selectorNames.videoApi)\n return this.sliderElement\n }\n}\n\nregisterComponent(PhotoGallery, definition.name, definition)\n","/**\n * The PriceTableApiData contains all data as received from API\n * TODO: Document better the input/output expected here\n *\n * @typedef {Object} PriceTableApiData\n *\n * @property {String} currencySymbol - Price Currency\n * @property {String} periodName - Period for the package in days\n * @property {Object[]} departures - Available departures, non available dates are missing\n * @property {Object[]} roomTypes - Available rooms and it´s details and info (USPs & allowed occupancies)\n * @property {Object[]} ageProfiles - Age profile info (adults, children...)\n * @property {Object[]} occupancies - Relates age profiles with room distribution\n * @property {Object[]} occupancies.ageProfileGroups - Age Profiles can come in either groups or thresholds\n * @property {Object[]} occupancies.ageProfileThresholds\n * @property {Object[]} packages - Package booking unit info (price, departure, occupancy, roomType...)\n * @property {String} packages.roomId - Room's id\n * @property {String} packages.occupancyId - Occupancy's id\n * @property {String} packages.roomFormattedPrice - Package's room formatted price\n */\n\nconst defaults = {\n departures: [],\n packages: [],\n occupancies: [],\n roomTypes: [],\n ageProfiles: [],\n locales: {}\n}\n\nconst iconForProfile = {\n // occupancy: ['adult', 'adult', '2-persons', '3-persons'],\n occupancy: ['adult'],\n adults: 'adult',\n children: 'child',\n babies: 'baby'\n}\n\n/**\n * A PriceTableData model\n */\nexport default class PriceTableDataModel {\n /**\n * Creates a new PriceTableDataModel\n *\n * @constructor\n * @param {PriceTableApiData|{}} [attributes={}] - The model attributes\n */\n constructor (attributes = {}) {\n this._setPriceTableData({\n ...defaults,\n ...attributes\n })\n }\n\n /**\n * Sets a price table model\n * @param {PriceTableApiData} priceTableApiData\n *\n * @returns {PriceTableDataModel} Self instance.\n */\n _setPriceTableData (priceTableApiData) {\n this.priceTableData = {\n ...priceTableApiData,\n periodName: priceTableApiData.periodName,\n currency: priceTableApiData.currencySymbol,\n roomData: JSON.parse(JSON.stringify(priceTableApiData.roomTypes\n .reduce((obj, { id, occupancyIds, characteristics, description, subtitle, title, images }) => ({\n ...obj,\n [id]: {\n id,\n characteristics,\n images,\n description,\n subtitle,\n title,\n occupancyData: occupancyIds.reduce((obj, occupancyId) => ({\n ...obj,\n [occupancyId]: {\n ...[priceTableApiData.occupancies.find(({ id }) => id === occupancyId)]\n .reduce((obj, occupancy) => ({\n ...obj,\n ...occupancy,\n ageProfileGroups: occupancy.ageProfileThresholds\n ? [{\n ageProfileId: occupancy.ageProfileThresholds[0].ageProfileId,\n quantity: occupancy.ageProfileThresholds[0].min\n }]\n : occupancy.ageProfileGroups\n }), {}),\n id: undefined,\n packageData: priceTableApiData.packages.filter((_package) => _package.roomGroup === id && _package.occupancyId === occupancyId).reduce((obj, _package) => ({\n ...obj,\n [_package.departureDate]: {\n ..._package,\n formattedPrice: _package.formattedPrice,\n occupancyId: undefined,\n roomGroup: undefined,\n roomName: undefined\n }\n }), {})\n }\n }), {})\n }\n }), {}))),\n ageProfileDictionary: priceTableApiData.ageProfiles.reduce((obj, ageProfile) => ({\n ...obj,\n [ageProfile.id]: {\n ...ageProfile,\n icon: iconForProfile[ageProfile.id] || ''\n }\n }), {}),\n departureDictionary: priceTableApiData.departures.reduce((obj, departure) => ({\n ...obj,\n [departure.date]: departure\n }), {})\n }\n return this\n }\n\n /**\n * Gets a price table model\n *\n * @returns {PriceTableTemplateData} Self instance.\n */\n getPriceTableData () {\n return this.priceTableData\n }\n}\n","import { encodeAttributes } from '../../../js/helpers/string'\n\n/**\n * The PriceTableTemplateData contains all data organized to be easily displayed in a table\n *\n * @typedef {Object} PriceTableTemplateDiscountBulletData\n * @property {String} extraClasses - Extra classes to add to the element\n * @property {Object} attributes - Element attributes (i.e. data-attributes)\n * @property {String} hexColor - The color of the bullet\n * @property {String} description - The description of the discount\n */\n\nexport const defaultPriceTableTemplateDiscountBulletData = {\n extraClasses: '',\n attributtes: {}\n}\n\n/**\n * Returns an html price table template/string\n *\n * @param {PriceTableTemplateDiscountBulletData} d\n *\n * @returns {String} Price Table HTML string\n */\n\nexport const PriceTableTemplateDiscountBullet = (d) => {\n d = { ...defaultPriceTableTemplateDiscountBulletData, ...d }\n\n return `<div ${d.attributes ? encodeAttributes(d.attributes) : ''}\n title=\"${d.description}\"\n class=\"c-price-table__discount_bullet ${d.extraClasses}\"\n style=\"background-color:${d.hexColor};\">\n </div>`\n}\n","import { encodeAttributes } from '../../../js/helpers/string'\nimport { PriceTableTemplateDiscountBullet } from './c-price-table.discount.bullet.template'\nimport { CollapseTemplate, defaultCollapseData } from '../../components/collapse/c-collapse.template'\nimport { PhotoGalleryTemplate } from '../../components/photo-gallery/c-photo-gallery.template'\nimport { getTokenClass } from '../../../js/helpers/tokens'\n\n// Import tokens\nconst tokensShared = require('./data/c-price-table__tokens.json')['c-price-table']\nconst tokensBrand = (() => {\n try {\n return require(`../../../../brands/${WEBPACK_BRAND}/modules/components/price-table/data/c-price-table__tokens.json`)['c-price-table'] // eslint-disable-line\n } catch (error) {\n return {}\n }\n})()\nconst tokens = { ...tokensShared, ...tokensBrand }\n\n/**\n * The PriceTableTemplateData contains all data organized to be easily displayed in a table\n *\n * @typedef {Object} PriceTableTemplateData\n *\n * @property {String} id - Price table element's id\n * @property {String} extraClasses - Element extra CSS classes\n * @property {Object} attributes - Element attributes (i.e. data-attributes)\n * @property {String} currency - Price Currency\n * @property {String} periodName - Period for the package in days\n * @property {Object} ageProfileDictionary - Age profiles info\n * @property {String} ageProfileDictionary.icon - Icon for specific age profile\n * @property {String} ageProfileDictionary.i18nString - Humanized string for specific age profile\n * @property {Object} departureDictionary - Available departure dates info\n * @property {String[]} departureDictionary.descriptionLines - Humanized date info\n * @property {Object} roomData - Info about room type and its available occupancy\n * @property {String} roomData.title - Room type title\n * @property {String} roomData.subtitle - Room type subtitle\n * @property {String[]} roomData.characteristics - Room type characteristics\n * @property {Object[]} roomData.images - Array of objects representing the images of the room\n * @property {Object} roomData.occupancyData - Info about age profile distribution\n * @property {Object[]} roomData.occupancyData.ageProfileGroups - Exact quantity of every age profile\n * @property {Object[]} roomData.occupancyData.ageProfileThresholds - Exact quantity of every age profile\n * @property {Object} roomData.occupancyData.packageData - Info about the package for a specific roomType and occupancy\n * @property {Object} roomData.occupancyData.packageData.id - {roomTypeId}_{occupancyId}_{departureDate}\n * @property {Object} roomData.occupancyData.packageData.stock - Available packages of this type\n * @property {Object} roomData.occupancyData.packageData.formattedPrice - Formatted price without any currency text\n * @property {Object} roomData.occupancyData.packageData.transportType - Type of transport (Flight, bus...)\n * @property {Boolean} [hasUiTest] - Indicate if the component has a UI applied to it or not\n */\n\nexport const defaultPriceTableData = {\n id: '',\n extraClasses: '',\n attributtes: {},\n isCompactMode: false,\n hasUiTest: true\n}\n\n/**\n * Returns an html price table template/string\n *\n * @param {PriceTableTemplateData} d\n * @param {Object} options\n *\n * @returns {String} Price Table HTML string\n */\n\nexport const PriceTableTemplate = (d, options = {}) => {\n d = { ...defaultPriceTableData, ...d, ...options }\n\n return `\n<div id=\"${d.id}\" class=\"c-price-table\"\n data-compact-mode='${d.isCompactMode.toString()}' ${d.attributes ? encodeAttributes(d.attributes) : ''}\n ${d.bestValues ? d.bestValues.map(el => `data-threshold-${el.name}=${el.threshold}`).join(' ') : ''}>\n <div class=\"c-price-table__wrapper\">\n ${d.legendHighlightPrices ? _getLegend(d.legendHighlightPrices) : ''}\n <div class=\"c-price-table__navigation-wrapper\">\n <button type=\"button\" class=\"c-btn c-btn--icon-only c-price-table__navigation c-price-table__navigation--right\">\n <i class=\"c-btn__icon c-btn__icon--right m-icon--chevron-right\"></i>\n <span class=\"c-btn__text\"></span>\n </button>\n <div class=\"c-price-table__row c-price-table__row--heading o-pack o-pack--middle\">\n <div class=\"c-price-table__cell c-price-table__cell--title o-pack__item\">\n <i class=\"c-price-table__title-icon m-icon m-icon--calendar\"></i>\n <div class=\"c-price-table__title-text\">\n <span class=\"c-price-table__title-period\">${d.periodName} </span>\n ${d.periodNameExtraInfo ? `<span class=\"c-price-table__title-period-extra-info\">${d.periodNameExtraInfo}</span>` : ''}\n </div>\n <button type=\"button\" class=\"c-btn c-btn--icon-only c-price-table__navigation c-price-table__navigation--left\">\n <i class=\"c-btn__icon c-btn__icon--left m-icon--chevron-left\"></i>\n <span class=\"c-btn__text\"></span>\n </button>\n </div>\n ${Object.keys(d.departureDictionary).map((departureDate, departureDateIndex) => `\n <div class=\"c-price-table__cell c-price-table__cell--date o-pack__item ${d.hasUiTest ? 'ui-test-pricetable-column' : ''}\" data-date=\"${departureDate}\" data-position=\"${departureDateIndex}\">\n <div class=\"c-price-table__day-name m-body m-body--tiny\">${d.departureDictionary[departureDate].descriptionLines[0]}</div>\n <div class=\"c-price-table__day-month ${getTokenClass('room-name', 'default', tokens)}\">${d.departureDictionary[departureDate].descriptionLines[1]}</div>\n </div>\n `).join('')}\n </div>\n </div>\n ${Object.entries(d.roomData).map(([roomId, roomItem], roomTypeIndex) => {\n const isRoomCharacteristicList = roomItem.characteristics && roomItem.characteristics.length > 1\n const roomContentColumnsToken = (isRoomCharacteristicList) ? 'default' : 'singleColumn'\n return `\n <div class=\"c-price-table__room\">\n <div class=\"c-price-table__room-info\">\n <div class=\"c-price-table__room-title\">\n <i class=\"c-price-table__room-icon m-icon m-icon--bed\"></i>\n <div class=\"c-price-table__room-name ${getTokenClass('room-name', 'default', tokens)}\">${roomItem.title}</div>\n <div class=\"c-price-table__room-description m-body m-body--small\">${roomItem.subtitle}</div>\n ${roomItem.characteristics\n ? `<button class=\"m-button--clean c-collapse__trigger c-price-table__room-trigger\"\n data-c-collapse__id=\"${d.id}-room-collapse-${roomTypeIndex}\"\n data-c-collapse__action=\"toggle\" data-c-collapse__opened=\"false\">\n <span class=\"c-collapse__trigger-text\">${d.locales.moreInfo ? d.locales.moreInfo : ''}</span>\n <span class=\"m-icon m-icon--size-large m-icon--chevron-down c-collapse__trigger-icon\"></span>\n </button>`\n : ''}\n </div>\n ${roomItem.characteristics\n ? CollapseTemplate({\n ...defaultCollapseData,\n ...{\n id: `${d.id}-room-collapse-${roomTypeIndex}`,\n html: GetRoomCharacteristicsHtml(roomItem, isRoomCharacteristicList, roomContentColumnsToken)\n }\n })\n : ''}\n </div>\n ${Object.keys(roomItem.occupancyData)\n .sort(function (firstRoom, secondRoom) {\n return (roomItem.occupancyData[firstRoom].ageProfileGroups[0].quantity || 0) - (roomItem.occupancyData[secondRoom].ageProfileGroups[0].quantity || 0)\n })\n .map(occupancyId => {\n const occupancyItem = roomItem.occupancyData[occupancyId]\n return `\n <div class=\"c-price-table__row o-pack o-pack--middle\">\n <div class=\"c-price-table__cell c-price-table__cell--participants o-pack__item\">\n <span class=\"c-price-table__cell--participants-fine-detail\">\n ${occupancyItem.ageProfileGroups.map(({ ageProfileId, quantity }) => {\n const icon = d.ageProfileDictionary[ageProfileId].icon\n const iconIsArray = Array.isArray(icon)\n return `\n <span class=\"c-price-table__participant\" data-participants=\"${quantity}\">\n ${!iconIsArray || (quantity >= 3)\n ? `<i class=\"m-icon m-icon--${iconIsArray ? icon[0] : icon}\"></i> x${quantity}`\n : Array(quantity).fill(1).map(() => `<i class=\"m-icon m-icon--${icon[0]}\"></i>`).join('')}\n </span>\n `\n }).join('')}\n </span>\n <span class=\"c-price-table__cell--participants-coarse-detail\">\n ${_getOccupancyByAgeProfile(d.ageProfileDictionary, occupancyItem)}\n </span>\n </div>\n ${Object.keys(d.departureDictionary).map((departureDate, departureDateIndex) => {\n const packageData = occupancyItem.packageData[departureDate]\n const bestValueScore = (packageData && packageData.bestValueScore) ? packageData.bestValueScore : undefined\n return `\n <div class=\"c-price-table__cell c-price-table__cell--price o-pack__item ${_getCellThresholdExtraClasses(d.bestValues, bestValueScore)}\" data-position=\"${departureDateIndex}\"\n\n ${packageData ? `data-id=\"${packageData.id}\"` : ''}\n ${bestValueScore ? `data-best-value-score=\"${bestValueScore}\"` : ''}>\n ${packageData\n ? `<div class=\"c-price c-price--small\">\n <div class=\"c-price__number\">\n <span class=\"c-price__value\">${packageData.formattedPrice}</span>\n </div>\n ${_getPriceHighlight(packageData)}\n </div>`\n : '‒'}\n </div>\n `\n }).join('')}\n </div>`\n }).join('')}\n </div>\n `\n }).join('')}\n </div>\n ${d.mandatoryExtraCostsText || d.staticText || (d.bestValues && d.bestValuesCaption)\n ? `<div class=\"c-price-table__footer-wrapper\">\n ${d.mandatoryExtraCostsText || d.staticText ? _showMandatoryExtraInfo([d.mandatoryExtraCostsText, d.staticText]) : ''}\n ${d.bestValues && d.bestValuesCaption ? _showTitleWithDescription(d.bestValuesCaption.title, d.bestValuesCaption.description) : ''}\n </div>`\n : ''}\n </div>`\n}\n\nfunction _getOccupancyByAgeProfile (ageProfileDictionary, occupancyItem) {\n const result = occupancyItem.ageProfileGroups\n .filter(x => x.quantity > 0)\n .map(x => {\n const text = ageProfileDictionary[x.ageProfileId].i18nString.split('||||')[x.quantity > 1 ? 1 : 0]\n return `${x.quantity} ${text}`\n })\n .join(' + ')\n\n return result\n}\n\nfunction _getPriceHighlight (packagePrice) {\n return `\n ${packagePrice.highlightPriceOption\n ? _isOnRequest(packagePrice.highlightPriceOption)\n ? `<div class=\"c-price-table__onrequest\">${packagePrice.highlightPriceOption.description}</div>`\n : PriceTableTemplateDiscountBullet({ ...packagePrice.highlightPriceOption, extraClasses: 'c-price-table__discount_bullet_placement' })\n : ' '}`\n}\n\nfunction _getLegend (legendHighlightPrices) {\n return `<div class=\"c-price-table__legend_wrapper\"><div class=\"c-price-table__legend\">${Object.entries(legendHighlightPrices).map(([legendItemId, legendItem]) =>\n `${_isOnRequest(legendItem)\n ? ''\n : legendItem.hexColor\n ? `${PriceTableTemplateDiscountBullet({ ...legendItem, extraClasses: 'c-price-table__legend_item_bullet' })}<div class=\"c-price-table__legend_item_description\">${legendItem.description}</div>`\n : ''\n }`).join('')}</div></div>`\n}\n\nfunction _isOnRequest (item) {\n return item\n ? item.code\n ? item.code.toUpperCase() === 'ONREQUEST'\n : false\n : false\n}\n\nfunction _getCellThresholdExtraClasses (thresholds, bestValueScore) {\n if (thresholds && bestValueScore !== undefined) {\n return thresholds.map(\n el => `${(bestValueScore >= el.threshold) ? ('c-price-table__cell-threshold-' + el.name) : ''}`\n ).join(' ')\n } else {\n return ''\n }\n}\n\nconst GetRoomCharacteristicsHtml = (roomItem, isRoomCharacteristicList, roomContentColumnsToken) => {\n let html = ''\n if (roomItem.images) {\n html = PhotoGalleryTemplate({ popupTitle: roomItem.title, elements: roomItem.images })\n }\n return `${html}\n <div class=\"c-price-table__room-content sp-stack-children--medium o-columns ${getTokenClass('room-content-columns', roomContentColumnsToken, tokens)}\">\n ${(isRoomCharacteristicList)\n ? `<ul>\n ${roomItem.characteristics.map((item) => `<li class=\"c-price-table__room-characteristic\">${item}</li>`).join('')}\n </ul>`\n : `<div class=\"c-price-table__room-characteristic-single\">${roomItem.characteristics[0]}</div>`}\n</div>\n`\n}\n\nfunction _showMandatoryExtraInfo (extraInfo) {\n return `<div class=\"c-price-table__footer-extra-info m-body--tiny\">${extraInfo.filter(text => !!text).join(' ')}</div>`\n}\n\nfunction _showTitleWithDescription (title, description) {\n return `\n <div class=\"c-price-table__footer-caption m-body--tiny\">\n <div class=\"c-price-table__footer-caption-title\">${title || ''}</div>\n <div class=\"c-price-table__footer-caption-description\">${description || ''}</div>\n </div>`\n}\n","import PriceTableDataModel from './price-table-data-model'\nimport { EventEmitter } from 'eventemitter3'\nimport { elementFromString, flush, isTargetBefore, moveChildrenFrom } from '../../../js/document/html-helper'\nimport Component from '../../../js/core/component/component'\nimport { PriceTableTemplate } from './c-price-table.template'\n\nconst componentAPI = 'c-price-table'\n\nconst componentQueries = {\n navWrapperElement: `.${componentAPI}__navigation-wrapper`,\n prevElement: `.${componentAPI}__navigation--left`,\n nextElement: `.${componentAPI}__navigation--right`,\n priceElement: `.${componentAPI}__price`,\n headerCell: `.${componentAPI}__cell--date`,\n priceCell: `.${componentAPI}__cell--price`,\n priceRow: `.${componentAPI}__row:not(.c-price-table__row--heading)`,\n isHighlightedClassName: 'is-highlighted',\n isActiveClassName: 'is-active'\n}\n\nconst defaults = {\n prevMonth: true,\n nextMonth: true,\n origin: 'start',\n data: {}\n}\n\n/**\n * PriceTable content\n *\n */\nexport default class PriceTable {\n /**\n * Creates a new PriceTable behaviour, exposes an API to the element.\n *\n * @constructor\n * @param {HTMLElement} element - The HTML element.\n * @param {Object} [options={}] - Options object\n * @param {PriceTableApiData} [options.data] - Price table info (departures, packages, occupancies...)\n * @param {Boolean} [options.prevMonth|nextMonth] - Enable or disable arrow when there is no other Price Table to be created\n * @param {String} [options.origin] - Checks if table needs to be created showing the first or the last dates (month-wide navigation)\n */\n constructor (element, options = {}) {\n this.element = element\n this.options = {\n ...defaults,\n ...options\n }\n this.events = (this.element[componentAPI] && this.element[componentAPI].events) || new EventEmitter()\n\n this._init()\n\n // Expose component public API\n this.element[componentAPI] = {\n refresh: this.refresh.bind(this),\n updateArrows: this.updateArrows.bind(this),\n toggleNavVisibility: this.toggleNavVisibility.bind(this),\n events: this.events,\n priceTableData: this.priceTableData,\n prev: (this.prev).bind(this),\n next: (this.next).bind(this),\n goTo: (this.goTo).bind(this),\n move: (this.move).bind(this)\n }\n }\n\n /**\n * Initializes a priceTable\n *\n * @param {PriceTableApiData} [data] - Options object\n */\n _init (data = this.options.data) {\n const hasData = (data && Object.keys(data).length > 0)\n if (this.element[componentAPI] && this.element[componentAPI].priceTableDataModel) {\n delete this.element[componentAPI].priceTableDataModel\n }\n flush(this.element)\n\n if (!hasData) return\n\n this._createHtml()\n this._initElements()\n this._addListeners()\n if (this.options.origin === 'end') {\n this.move(1, 'last', { silent: true })\n }\n this.updateArrows()\n }\n\n /**\n * Shows the previous dates of the month (if if none, fires event 'prevEdge'\n *\n * @param {Object} [options] - Options object\n * @param {Boolean} options.silent - If true, does not fire events\n *\n * @returns {PriceTable} self instance\n */\n prev (options = {}) { return this.move(-1, null, options) }\n\n /**\n * Shows the next dates of the month (if if none, fires event 'nextEdge'\n *\n * @param {Object} [options] - Options object\n * @param {Boolean} options.silent - If true, does not fire events\n *\n * @returns {PriceTable} self instance\n */\n next (options = {}) { return this.move(1, null, options) }\n\n /**\n * Place focus on the date specified by DateString in the price table\n *\n * @param {DateString} date - The date to be shown\n * @param {Object} [options] - Options object\n * @param {Boolean} options.silent - If true, does not fire events\n *\n * @returns {PriceTable} self instance\n */\n goTo (date, options = {}) { return this.move(1, date, options) }\n\n _createHtml () {\n this.element[componentAPI] = this.element[componentAPI] || {}\n this.element[componentAPI].priceTableDataModel = new PriceTableDataModel({ ...this.options.data, id: this.element.id })\n this.priceTableData = this.element[componentAPI].priceTableDataModel.getPriceTableData()\n const priceTableHtml = elementFromString(PriceTableTemplate(this.priceTableData, this.options))\n moveChildrenFrom(priceTableHtml, this.element, { flush: true, attributes: true })\n Component.initDocumentComponentsFromAPI(this.element)\n }\n\n _initElements () {\n this.navWrapperElement = this.element.querySelector(componentQueries.navWrapperElement)\n this.prevElement = this.element.querySelector(componentQueries.prevElement)\n this.nextElement = this.element.querySelector(componentQueries.nextElement)\n this.dateHeaderElements = Array.from(this.element.querySelectorAll(componentQueries.headerCell))\n this.datePriceElements = Array.from(this.element.querySelectorAll(componentQueries.priceCell))\n this.allElements = [...this.dateHeaderElements, ...this.datePriceElements]\n this.priceRowElements = Array.from(this.element.querySelectorAll(componentQueries.priceRow))\n }\n\n _addListeners () {\n this.prevElement && this.prevElement.addEventListener('click', () => this.prev())\n this.nextElement && this.nextElement.addEventListener('click', () => this.next())\n this.datePriceElements && this.datePriceElements.forEach((datePriceElement) => {\n datePriceElement.addEventListener('mouseover', (ev) => {\n const target = ev.target && ev.target.closest(componentQueries.priceCell)\n if (target) {\n const targetPosition = target.dataset.position\n const currentRow = target.closest(componentQueries.priceRow)\n this.priceRowElements.forEach((element) => {\n element.classList[(element === currentRow) ? 'add' : 'remove'](componentQueries.isHighlightedClassName)\n })\n this.allElements.forEach((element) => {\n element.classList[((element.dataset.position === targetPosition) && isTargetBefore(target, element)) ? 'add' : 'remove'](componentQueries.isHighlightedClassName)\n })\n }\n })\n datePriceElement.addEventListener('mouseout', (ev) => {\n this.priceRowElements.forEach((element) => { element.classList.remove(componentQueries.isHighlightedClassName) })\n this.allElements.forEach((element) => { element.classList.remove(componentQueries.isHighlightedClassName) })\n })\n datePriceElement.addEventListener('click', (ev) => {\n const target = ev.target && ev.target.closest(componentQueries.priceCell)\n this._unselectPriceCell()\n target.classList.add(componentQueries.isActiveClassName)\n if (target && target.dataset.id) {\n const [room, occupancy, packageDate] = target.dataset.id.split('_')\n const occupancyData = this.priceTableData.roomData[room].occupancyData[occupancy]\n const occupation = occupancyData.ageProfileGroups.reduce((accum, { ageProfileId, quantity }) => {\n accum[ageProfileId] = quantity\n return accum\n },\n {})\n const selectedPackage = {\n ...occupancyData.packageData[packageDate],\n occupation\n }\n\n this.events.emit('dateSelected', {\n selectedPackage,\n selectedRowElement: target.closest(componentQueries.priceRow),\n priceClickedData: {\n price: selectedPackage.price,\n isPriceHighlighted: selectedPackage.highlightPriceOption !== undefined,\n currencyCode: this.priceTableData.currency,\n duration: selectedPackage.duration,\n departureDate: selectedPackage.departureDate\n },\n instance: this\n })\n }\n })\n })\n }\n\n _unselectPriceCell () {\n const priceCellElement = this.datePriceElements && this.datePriceElements\n .find(({ classList }) => classList.contains(componentQueries.isActiveClassName))\n priceCellElement && priceCellElement.classList.remove(componentQueries.isActiveClassName)\n }\n\n updateArrows () {\n const visibleElements = this.dateHeaderElements.filter((element) => element.offsetParent)\n if (this.dateHeaderElements[0] === visibleElements[0]) {\n this.prevElement.disabled = !this.options.prevMonth\n } else {\n this.prevElement.disabled = false\n }\n\n if (this.dateHeaderElements.slice(-1)[0] === visibleElements.slice(-1)[0]) {\n this.nextElement.disabled = !this.options.nextMonth\n } else {\n this.nextElement.disabled = false\n }\n\n return this\n }\n\n toggleNavVisibility (visible = true) {\n this.navWrapperElement.classList[!visible ? 'add' : 'remove']('is-hidden')\n }\n\n /**\n * Move withing the departure dates\n *\n * @param {Number} direction - The direction to move\n * @param {DateString|String} goTo - Where to move\n * @param {Object} [options] - Options object\n * @param {Boolean} options.silent - If true, does not fire events\n *\n * @returns {PriceTable} self instance\n */\n move (direction = 1, goTo, options = {}) {\n direction = (direction < 0) ? -1 : 1\n\n // Gets the currentVisibleElements from CSS pseudo-element attribute on root element\n // Because CSS will be only responsible to decide how many elements are shown when\n const visibleElementsAmount = parseInt(\n document.defaultView.getComputedStyle(this.element, ':before')\n .content.replace(/((\"|')|\\\\)/g, '')\n )\n const visibleElements = this.dateHeaderElements.filter((element) => {\n const currentPosition = parseInt(element.dataset.position)\n return currentPosition >= 0 && currentPosition < visibleElementsAmount\n })\n let edgePosition = parseInt(visibleElements.slice(-1)[0].dataset.position) + 1\n\n if (goTo === 'last') {\n edgePosition = this.dateHeaderElements.length - edgePosition\n } else if (goTo) {\n let elementIndex = this.dateHeaderElements.findIndex((element) => element.dataset.date === goTo)\n elementIndex = (elementIndex < 0) ? 0 : elementIndex\n if ((this.dateHeaderElements.length - elementIndex) < edgePosition) {\n elementIndex = this.dateHeaderElements.length - edgePosition\n }\n edgePosition = parseInt(this.dateHeaderElements[elementIndex || 0].dataset.position)\n direction = 1\n } else {\n if (direction < 0 && (parseInt(this.dateHeaderElements[0].dataset.position) + edgePosition) > 0) {\n edgePosition = Math.abs(parseInt(this.dateHeaderElements[0].dataset.position))\n if (this.options.prevMonth && this.dateHeaderElements[0] === visibleElements[0]) {\n if (!options.silent) {\n this.events.emit('prevEdge', {\n direction: 'prev',\n instance: this\n })\n }\n this._unselectPriceCell()\n return this\n }\n } else if (direction > 0 && (parseInt(this.dateHeaderElements.slice(-1)[0].dataset.position) - edgePosition) < edgePosition) {\n edgePosition = Math.abs(parseInt(this.dateHeaderElements.slice(-1)[0].dataset.position)) - edgePosition + 1\n if (this.options.nextMonth && this.dateHeaderElements.slice(-1)[0] === visibleElements.slice(-1)[0]) {\n if (!options.silent) {\n this.events.emit('nextEdge', {\n direction: 'next',\n instance: this\n })\n }\n this._unselectPriceCell()\n return this\n }\n }\n }\n\n this.allElements.forEach((element) => {\n element.dataset.position = parseInt(element.dataset.position) + (edgePosition * -direction)\n })\n this._unselectPriceCell()\n if (!options.silent) {\n this.events.emit('move', {\n direction,\n instance: this\n })\n }\n\n this.updateArrows()\n\n return this\n }\n\n /**\n * Recreates Price table content and listeners\n *\n * @param {Object} [options]\n *\n * @returns {PriceTable} self instance\n */\n refresh (options = {}) {\n this.options = {\n ...defaults,\n ...options\n }\n this._init()\n\n return this\n }\n}\n","import { getUrlFromString } from '../../../js/document/url'\nimport { BtnTemplate, defaultButtonData } from '../../components/btn/c-btn.template'\n\n/**\n * The PriceData contains all data needed to hydrate a Price view\n *\n * @typedef {Object} PriceData\n *\n * @property {String} value - The price number itself\n * @property {String} currency - The currency symbol\n * @property {String} currencyPosition - The currency position (before, after)\n * @property {String} [priceSuffix] - Price suffix text\n * @property {String} [pricePrefix] - Price prefix text\n * @property {String} [size] - The optional price size modifier (small, large)\n * @property {String} [saleText] - Discount or sale text to be highlighted\n * @property {String} [oldPrice] - Previous public price\n * @property {String} [legend] - Price legend as text, like: 'price per person'\n * @property {String} [acmUrl] - ACM url where to request info to be displayed\n * @property {String} [acmModalId] - Modal ID where the ACM info will be shown at\n * @property {Boolean} [acmHideInfoIcon] - Hide the ACM info icon (an 'i' in an circle).\n * @property {String} [publicPrice] - Extra string to append below the price, like public price if you book elsewhere\n * @property {String} [publicPriceDetail] - Extra string for the public price detail text\n * @property {String} [extraClasses] - Extra classes to be appended\n * @property {Boolean} [hasUiTest] - Flag to indicate if this component is subjected to a UI test.\n */\nexport const defaultPriceData = {\n value: '',\n currency: '€',\n currencyPosition: 'after',\n priceSuffix: '',\n pricePrefix: '',\n size: '',\n saleText: '',\n oldPrice: '',\n legend: '',\n acmUrl: '',\n acmModalId: '',\n acmHideInfoIcon: false,\n publicPrice: '',\n publicPriceDetail: '',\n extraClasses: '',\n hasUiTest: false\n}\nexport const defaultDemoPriceData = {\n value: '1.245',\n currency: '€',\n currencyPosition: 'before',\n priceSuffix: 'p.p.',\n pricePrefix: '',\n size: 'medium',\n saleText: '-15%',\n oldPrice: '1.900',\n label: 'This is the label',\n label2: 'This is the labe2',\n labelGrayed: true,\n legend: 'Price per person',\n acmUrl: '',\n acmModalId: '',\n acmHideInfoIcon: false,\n publicPrice: 'Public price 299€',\n publicPriceDetail: 'pulic ski pass 99€',\n extraClasses: '',\n hasUiTest: false\n}\n\nexport const PriceTemplate = (d) => {\n d = { ...defaultPriceData, ...d }\n\n return `\n <div class=\"c-price ${d.size ? `c-price--${d.size}` : ''} ${d.extraClasses ? d.extraClasses : ''}\">\n ${d.discount ? discountTemplate(d) : ''}\n ${d.saleText || d.oldPrice\n ? `<div class=\"c-price__sale-info\">\n ${d.saleText ? `<span class=\"c-label c-price__sale-text c-label--sale\">${d.saleText}</span>` : ''}\n ${d.oldPrice && d.publicPrice === undefined ? `<span class=\"c-price__old-price\">${d.currencyPosition === 'before' ? d.currency : ''}${d.oldPrice}${d.currencyPosition === 'after' ? d.currency : ''}</span>` : ''}\n ${d.publicPrice ? `<div class=\"c-price__public-price m-body m-body--tiny\">${d.publicPrice}</div>` : ''}\n </div>`\n : ''}\n ${d.acmUrl || d.legend\n ? `<div class=\"c-price__info m-body m-body--small\">\n ${d.legend ? `<span class=\"c-price__legend\">${d.legend}</span>` : ''}\n ${d.acmUrl && !d.acmHideInfoIcon\n ? `<button type=\"button\" class=\"c-btn c-btn--icon-only c-price__info-icon\" data-js-component=\"c-btn\" data-c-modal__action=\"open\" data-c-modal__source=\"${d.acmUrl}\" data-c-modal__id=\"${d.acmModalId}\"><i class=\"c-btn__icon c-btn__icon--left m-icon--information-circle\"></i></button>`\n : ''}\n ${d.icon\n ? `${BtnTemplate({\n ...defaultButtonData,\n ...{\n text: '',\n variant: 'icon-only',\n block: false,\n icon: d.icon,\n link: false,\n extraClasses: 'c-price__info-icon'\n }\n })}`\n : ''}\n </div>`\n : ''}\n <div class=\"c-price__number m-price ${d.size ? `m-price--${d.size}` : ''}\">\n ${d.oldPrice ? `<span class=\"c-price__old-price discount-ab-test\">${d.currencyPosition === 'before' ? d.currency : ''}${d.oldPrice}${d.currencyPosition === 'after' ? d.currency : ''}</span>` : ''}\n ${d.pricePrefix ? `<span class=\"c-price__prefix m-price__prefix\">${d.pricePrefix}</span>` : ''}\n ${d.currency && d.currencyPosition === 'before' ? `<span class=\"c-price__currency m-price__currency\">${d.currency}</span>` : ''}` +\n `<span class=\"c-price__value m-price__value ${d.hasUiTest ? 'qa-price-value' : ''}\">${d.value}</span>` +\n `${d.currency && d.currencyPosition === 'after' ? `<span class=\"c-price__currency m-price__currency\">${d.currency}</span>` : ''}` +\n `${d.priceSuffix ? `<span class=\"c-price__suffix m-price__suffix\">${d.priceSuffix}</span>` : ''}\n </div>\n ${d.label\n ? `<div class=\"c-price__info m-body m-body--small\">\n <span class=\"c-price__label ${d.labelGrayed ? 'c-price__label-grayed' : ''}\">${d.label}</span>\n </div>`\n : ''}\n ${d.label2\n ? `<div class=\"c-price__info m-body m-body--small\">\n <span class=\"c-price__label ${d.labelGrayed ? 'c-price__label-grayed' : ''}\">${d.label2}</span>\n </div>`\n : ''}\n ${d.publicPriceDetail\n ? publicPriceDetailTemplate(d)\n : ''}\n </div>`\n}\n\n/**\n * Transform formatted price into {value, currency, currencyPosition}\n *\n * @param {String} formattedPrice - (\"201 kr\", \"€ 500\")\n * @param {String} [symbol] - Support for +, - or any desirable one\n *\n * @returns {PriceData}\n */\nexport const parseFormattedPrice = (formattedPrice, symbol = '') => {\n const currency = (formattedPrice.match(/([^., \\d])+/g) || [])[0]\n const { value, currencyPosition } = formattedPrice.split(currency).map((numberString, index) => ({\n value: numberString.trim(),\n currencyPosition: (index ? 'before' : 'after')\n })\n ).filter(({ value }) => !isNaN(parseFloat(value)))[0]\n return { value: symbol + value, currency, currencyPosition }\n}\n\n/**\n * ACM params keys are different from acmInformation keys returned by price object from APIs.\n * This maps ones to others, where the key is from acmInformation and value ACM api param keys.\n */\nconst ACM_PARAMS_MAP = {\n transportType: 'transporttype',\n departureDateRaw: 'departuredate',\n durationRaw: 'duration',\n birthdates: 'participants',\n mealplanCode: 'mealplan',\n allocation: 'allocation'\n}\n\nexport const createAcmUrlFromParams = (baseUrl, params) => {\n const fixedParams = Object.keys(params).reduce((result, paramKey) => {\n result[ACM_PARAMS_MAP[paramKey] || paramKey] = params[paramKey]\n return result\n }, {})\n return getUrlFromString(baseUrl, fixedParams)\n}\n\nfunction discountTemplate (d) {\n return `\n <div class=\"c-price__discount\"> \n <span class=\"m-icon--wallet c-price__discount-icon\"></span>\n <span class=\"c-price__discount-text\">${d.discountText}</span>\n <span class=\"c-price__discount-value\">${d.currencyPosition === 'before' ? d.currency : ''}${d.discount}${d.currencyPosition === 'after' ? d.currency : ''}</span>\n </div>`\n}\n\nexport function getACMPriceLabel (d) {\n return BtnTemplate({\n text: `${d.text.replace('<a>', '<a class=\"m-link c-price__extra-info-link\">')} ${d.staticText || ''}`,\n attributes: { 'data-c-modal__action': 'open', 'data-c-modal__source': d.acmUrl, 'data-c-modal__id': d.modalId },\n variant: 'icon-only',\n extraClasses: 'c-price__info-icon c-price__extra-info-label'\n })\n}\n\nexport function publicPriceDetailTemplate ({ publicPriceDetail }) {\n return `<div class=\"c-price__public-price-detail m-body m-body--tiny\">\n <span class=\"m-icon m-icon--snowflake\"></span>\n <span class=\"c-price__public-price-detail-text\">${publicPriceDetail}</span>\n </div>`\n}\n","import { fromCamelCase } from '../../../js/helpers/string'\n\n/**\n * The SideDrawerData contains all data needed to hydrate a Side Drawer selector view\n *\n * @typedef {Object} SideDrawerData\n *\n * @property {String} id - The item's id\n * @property {String} origin - Which side the side drawer will appear from\n * @property {String} until - Breakpoint where sidedrawer starts to be shown\n * @property {String} extraClasses\n * @property {String} html - HTML snippet\n * @property {String} closable - If true, it will be hidden at some breakpoint\n */\n\nexport const defaultSideDrawerData = {\n id: '',\n origin: 'right',\n until: '',\n extraClasses: '',\n html: '',\n closable: true\n}\n\nexport const SideDrawerTemplate = (d) => {\n d = { ...defaultSideDrawerData, ...d }\n return `\n<div ${d.id ? `id=\"${d.id}\"` : ''}\n class=\"c-side-drawer c-side-drawer--origin-${d.origin} sp-stack-children--small ${d.until ? `c-side-drawer--until@${d.until}` : ''} ${d.extraClasses}\"\n ` + // FIXME {{get-token-class @root.ds-tokens-components \"c-side-drawer.space-stack-children\" \"default\"}}\n `data-js-component=\"c-side-drawer\"\n data-c-side-drawer__origin=\"${d.origin}\"\n ${d.until ? `data-c-side-drawer__until=\"${d.until}\"` : ''}\n ${d.attributes ? Object.keys(d.attributes).map(k => `${fromCamelCase(k)}=\"${d.attributes[k]}\"`).join(' ') : ''}>\n ${d.html}\n</div>\n`\n}\n","/**\n * The SideDrawerBodyData contains all data needed to hydrate a Side Drawer Body selector view\n *\n * @typedef {Object} SideDrawerBodyData\n *\n * @property {String} html - HTML snippet\n */\n\nexport const defaultSideDrawerBodyData = {\n html: ''\n}\n\nexport const SideDrawerBodyTemplate = (d) => {\n d = { ...defaultSideDrawerBodyData, ...d }\n return `\n<div class=\"c-side-drawer__body o-block__body\">\n <div class=\"c-side-drawer__body-content m-body--medium\">` +\n// FIXME {{get-token-class @root.ds-tokens-components \"c-side-drawer.body__size\" \"default\"}}\">\n` ${d.html}\n </div>\n</div>\n`\n}\n","import { defaultSideDrawerBodyData } from './c-side-drawer__body.template'\n\nexport const SideDrawerFooterTemplate = (d) => {\n d = { ...defaultSideDrawerBodyData, ...d }\n return `\n<div class=\"c-side-drawer__footer o-block__footer\">\n ${d.html}\n</div>\n`\n}\n","/**\n * The SideDrawerHeaderData contains all data needed to hydrate a Side Drawer Header selector view\n *\n * @typedef {Object} SideDrawerHeaderData\n *\n * @property {String} id - The item's id\n * @property {String} headerTag - HTML snippet\n * @property {String} title - HTML snippet\n * @property {String} extraClasses\n * @property {String} closable - If true, it will be hidden at some breakpoint\n */\n\nimport { defaultSideDrawerData } from './c-side-drawer.template'\n\nexport const defaultSideDrawerHeaderData = {\n ...defaultSideDrawerData,\n headerTag: '',\n title: ''\n}\n\nexport const SideDrawerHeaderTemplate = (d) => {\n d = { ...defaultSideDrawerHeaderData, ...d }\n return `\n<div class=\"c-side-drawer__header o-block__header ${d.extraClasses}\">\n ${d.title\n ? `<${d.headerTag || 'h2'}\n class=\"m-heading m-heading--small c-side-drawer__header-title\">` + // {{get-token-class @root.ds-tokens-components \"c-side-drawer.header__size\" \"default\"}}\n `${d.title}\n </${d.headerTag || 'h2'}>`\n : ''}\n ${d.id && d.closable\n ? `<button type=\"button\" \n class=\"c-btn c-btn--icon-only c-side-drawer__close\"\n data-c-side-drawer__action=\"close\"\n data-c-side-drawer__id=\"${d.id}\">\n <i class=\"c-btn__icon c-btn__icon--left m-icon--cross\"></i>\n <span class=\"c-btn__text\"></span>\n </button>`\n : ''}\n</div>\n`\n}\n","import { fromCamelCase, encodeAttributes } from '../../../js/helpers/string'\nimport { ModalTemplate } from '../modal/c-modal.template'\nimport { BtnTemplate } from '../btn/c-btn.template'\n\n/**\n * The SwitchData contains all data needed to hydrate a Switch view\n *\n * @typedef {Object} SwitchData\n *\n * @property {String} id - The element id\n * @property {String} name - The element/group name\n * @property {String} text - Label text\n * @property {Boolean} [checked]\n * @property {Boolean} [disabled]\n * @property {String} [state] - Component state, eg. validation\n * @property {String} [extraClasses] - Extra classes to append to the view\n * @property {Object} [dataset] - Extra attributes for the input element\n * @property {String} modal - Modal\n * @property {String} modal - Modal\n */\n\nexport const defaultSwitchData = {\n id: '',\n name: '',\n text: '',\n value: null,\n checked: true,\n disabled: false,\n modal: {\n id: '',\n bodyContent: '',\n title: ''\n }\n}\n\nexport const SwitchTemplate = (d) => `\n<div class=\"c-switch\n ${d.disabled ? 'is-disabled' : ''}\n ${d.state ? `has-${d.state}` : ''}\n ${d.variant ? `c-switch--${d.variant}` : ''}\n ${d.extraClasses ? d.extraClasses : ''}\n ${d.modal ? 'c-switch--with-modal' : ''}\"\n ${d.attributes ? encodeAttributes(d.attributes) : ''}>\n ${d.modal\n ? `${ModalTemplate({\n size: 'medium',\n id: d.modal.id,\n async: false,\n extraClasses: 'c-switch__modal',\n attributes: {\n 'data-c-modal__action': 'close',\n 'data-c-modal__id': d.modal.id\n },\n closable: true,\n style: 'neutral',\n bodyContent: d.modal.bodyContent,\n title: d.modal.title\n })}\n <div class=\"c-switch__container\">\n ${BtnTemplate({\n variant: 'icon-only',\n icon: 'information-circle',\n attributes: {\n 'data-c-modal__action': 'open',\n 'data-c-modal__id': d.modal.id\n },\n extraClasses: 'c-switch__icon'\n })}\n `\n : ''}\n <label class=\"c-switch__slider \">\n <input type=\"checkbox\" class=\"c-switch__checkbox\"\n id=\"${d.id}\"\n name=\"${d.name}\"\n ${d.value ? `value=\"${d.value}\"` : ''}\n ${d.disabled ? 'disabled=\"\"' : ''}\n ${d.checked ? 'checked=\"\"' : ''}\n ${d.dataset ? Object.keys(d.dataset).map(k => `data-${fromCamelCase(k)}=\"${d.dataset[k]}\"`).join(' ') : ''}/>\n <span class=\"c-switch__circle\"></span>\n </label>\n ${d.modal\n ? '</div>'\n : ''}\n <span class=\"c-switch__text \">${d.text}</span>\n</div>`\n","/**\n * The TableTemplate contains all the data needed to hydrate a Table component\n *\n * @typedef {Object} TableTemplate\n *\n * @property {String} variant - The variant that will be used\n * @property {String} extraClasses - Extra classes if needed\n * @property {String} innerHTML - The content that should be shown inside the table\n */\n\nimport { getTokenClass } from '../../../js/helpers/tokens'\n\n// Import tokens\nconst tokensShared = require('./data/c-table__tokens.json')['c-table']\nconst tokensBrand = (() => {\n try {\n return require(`../../../../brands/${WEBPACK_BRAND}/modules/components/table/data/c-table__tokens.json`)['c-table'] // eslint-disable-line\n } catch (error) {\n return {}\n }\n})()\nconst tokens = { ...tokensShared, ...tokensBrand }\n\nexport const defaultTableData = {\n variant: 'default',\n extraClasses: ''\n}\n\nexport const TableTemplate = (d) => `\n <div\n class=\"c-table\n ${d.variant ? getTokenClass('variant', d.variant, tokens) : ''} \n ${d.extraClasses ? `${d.extraClasses}` : ''} \">\n ${d.innerHTML ? `${d.innerHTML}` : ''}\n </div>\n`\n","/**\n * The TableItemTemplate contains all the data needed to hydrate a TableItem component\n *\n * @typedef {Object} TableItemTemplate\n *\n * @property {String} extraClasses - Extra classes if needed\n * @property {String} innerHTML - The content inside the table item\n */\n\nexport const defaultTableItemData = {\n extraClasses: ''\n}\n\nexport const TableItemTemplate = (d) => `\n <div \n class=\"c-table__item \n ${d.extraClasses ? `${d.extraClasses}` : ''}\">\n ${d.innerHTML ? `${d.innerHTML}` : ''}\n </div>\n`\n","import { encodeAttributes } from '../../../js/helpers/string'\n/**\n * The TabsContentWrapperData contains all data needed to hydrate a Tab Content Wrapper selector view\n *\n * @typedef {Object} TabsContentWrapperData\n *\n * @property {String} id - Tab content's id\n * @property {String} html - HTML snippet\n * @property {Boolean} scrollOnChange - If true, scroll will to top when changing tab\n * @property {String} [extraClasses] - CSS extra classes.\n */\n\nexport const defaultTabsContentWrapperData = {\n id: '',\n html: '',\n scrollOnChange: false,\n track: '',\n extraClasses: '',\n anchorable: false\n}\n\nexport const TabsContentWrapperTemplate = (d) => {\n d = { ...defaultTabsContentWrapperData, ...d }\n return `\n<div id=\"${d.id}\" class=\"c-tabs__content-wrapper ${d.extraClasses}\"\n data-js-component=\"c-tabs\"\n ${d.anchorable ? 'data-c-tabs__anchorable' : ''} \n ${d.track ? `data-track=${d.track}` : ''} \n ${d.scrollOnChange ? 'data-c-tabs__scroll-on-change' : ''}\n ${d.attributes ? encodeAttributes(d.attributes) : ''}>\n ${d.html}\n</div>\n`\n}\n","/**\n * The TabsContentData contains all data needed to hydrate a Tab Content selector view\n *\n * @typedef {Object} TabsContentData\n *\n * @property {String} id - Tab content's id\n * @property {String} html - HTML snippet\n * @property {String} extraClasses - CSS extra classes\n * @property {Object} attributes - HTML attributes\n * @property {Boolean} isOpen - If true, content will be shown\n */\n\nimport { encodeAttributes } from '../../../js/helpers/string'\n\nexport const defaultTabsContentData = {\n id: '',\n html: '',\n extraClasses: '',\n attributes: {},\n isOpen: false\n}\n\nexport const TabsContentTemplate = (d) => {\n d = { ...defaultTabsContentData, ...d }\n return `\n<div ${d.id ? `id=\"${d.id}\"` : ''} data-c-tabs__tab-content\n class=\"c-tabs__content ${d.isOpen ? 'is-open' : ''} ${d.extraClasses}\"\n ${d.attributes ? encodeAttributes(d.attributes) : ''}>\n ${d.html}\n</div>\n`\n}\n","/**\n * The TabsNavItemData contains all data needed to hydrate a Tabs Nav Item selector view.\n *\n * @typedef {Object} TabsNavItemData\n *\n * @property {String} text - The tab text.\n * @property {String} [id] - The component ID.\n * @property {String} [componentId] - The parent tabs ID (binds functionallity)\n * @property {String} [icon] - The tab icon name.\n * @property {Boolean} [featured] - If true, the tab item is featured.\n * @property {Boolean} [isOpen] - If true, the tab item has been selected (is open).\n * @property {Object} [attributes] - Extra button attributes.\n * @property {String} [ExtraClasses] - Extra classes.\n\n */\n\nimport { BtnTemplate } from '../btn/c-btn.template'\n\nexport const defaultTabsNavItemData = {\n text: '',\n id: '',\n componentId: '',\n icon: '',\n featured: false,\n isOpen: false,\n attributes: {},\n extraClasses: '',\n anchorable: false\n}\n\nexport const TabsNavItemTemplate = (d) => {\n d = { ...defaultTabsNavItemData, ...d }\n\n const attributes = d.componentId\n ? {\n ...{\n 'data-c-tabs__id': d.componentId,\n 'data-c-tabs__tab-id': d.id,\n 'data-c-tabs__action': 'showTab'\n },\n ...d.attributes\n }\n : d.attributes\n\n return `<li class=\"c-tabs__nav-item ${d.featured ? 'c-tabs__nav-item--featured' : ''} ${d.isOpen ? 'is-open' : ''} ${d.extraClasses}\">\n ${BtnTemplate({ icon: d.icon, text: d.text, variant: 'flat', iconPosition: 'left', extraClasses: 'c-tabs__nav-button', track: d.track, attributes })}\n</li>\n`\n}\n","import { TabsNavItemTemplate } from '../tabs/c-tabs__nav-item.template'\nimport { SwipeTemplate } from '../../objects/swipe/o-swipe.template'\n\nimport { encodeAttributes } from '../../../js/helpers/string'\nimport { getTokenClass } from '../../../js/helpers/tokens'\n\n// Import tokens\nconst tokensShared = require('./data/c-tabs__tokens.json')['c-tabs']\nconst tokensBrand = (() => {\n try {\n return require(`../../../../brands/${WEBPACK_BRAND}/modules/components/tabs/data/c-tabs__tokens.json`)['c-tabs'] // eslint-disable-line\n } catch (error) {\n return {}\n }\n})()\nconst tokens = { ...tokensShared, ...tokensBrand }\n\n/**\n * The TabsNavData contains all data needed to hydrate a Tabs Nav selector view.\n *\n * @typedef {Object} TabsNavData\n *\n * @property {String} id - The component ID.\n * @property {TabsNavItemData[]} items - List of items that represent each one a tab item.\n * @property {Boolean} [swipeable] - True if the tabs are swipeable (true by default).\n * @property {String} [variant] - Variant of the component.\n * @property {String} [extraClasses] - CSS extra classes.\n * @property {Object} [attributes] - Extra attributes.\n */\nexport const defaultTabsNavData = {\n id: '',\n items: [],\n swipeable: true,\n variant: '',\n extraClasses: '',\n attributes: {}\n}\n\nconst swipeAttributes = {\n 'data-list-class': 'c-tabs__nav-list--swipe',\n 'data-list-item-class': 'c-tabs__nav-item',\n 'data-active-class': 'is-active',\n 'data-js-swipe': true\n}\n\nexport const TabsNavTemplate = (d) => {\n d = { ...defaultTabsNavData, ...d }\n\n return `<div class=\"c-tabs__nav ${getTokenClass('variant', d.variant || 'default', tokens)} ${d.extraClasses}\" ${encodeAttributes(d.attributes)} >\n <div class=\"c-tabs__nav-list-wrapper\" ${d.swipeable ? encodeAttributes(swipeAttributes) : ''} >\n <ul class=\"c-tabs__nav-list ${d.swipeable ? 'c-tabs__nav-list--swipe' : ''} o-list-bare o-list-inline\">\n ${d.items.map(item => !item.featured ? TabsNavItemTemplate({ ...item, componentId: d.id }) : '').join('')}\n </ul>\n ${d.swipeable ? SwipeTemplate() : ''}\n </div>\n \n ${d.items.find(item => item.featured)\n ? `<ul class=\"c-tabs__nav-list c-tabs__nav-list--featured o-list-bare o-list-inline\">\n ${d.items.map(item => item.featured ? TabsNavItemTemplate({ ...item, componentId: d.id, anchorable: d.anchorable }) : '').join('')}\n </ul>`\n : ''}\n</div>`\n}\n","/**\n * List of events used by tabs component\n *\n */\nexport const tabsEvents = {\n CLICKED: 'clicked',\n LOADED: 'loaded',\n TAB_CHANGED: 'tabChanged',\n PROP_CHANGED: 'propChanged'\n}\n","import { defaultRadioButtonData, RadioButtonTemplate } from '../../components/radio-button/c-radio-button.template'\nimport { defaultPriceData, PriceTemplate } from '../../components/price/c-price.template'\nimport { getTokenClass } from '../../../js/helpers/tokens'\nimport { TooltipTemplate, defaultTooltipData } from '../../components/tooltip/c-tooltip.template'\n\n// Import tokens\nconst tokensShared = require('./data/c-transport-ticket__tokens.json')['c-transport-ticket']\nconst tokensBrand = (() => {\n try {\n return require(`../../../../brands/${WEBPACK_BRAND}/modules/components/transport-ticket/data/c-transport-ticket__tokens.json`)['c-transport-ticket'] // eslint-disable-line\n } catch (error) {\n return {}\n }\n})()\nconst tokens = { ...tokensShared, ...tokensBrand }\n\n/**\n * The transportTicketTemplate contains all data needed to hydrate a ticker of transport\n *\n * @typedef {Object} transportTicketTemplate\n *\n * @property {String} id - The item's ID.\n * @property {String} name - The item's name.\n * @property {String} type - Whether it is a flight or a bus selector.\n * @property {String} [companyId] - Airline or company ID.\n * @property {String} companyName - Airline or company name.\n * @property {String} flightNumber - Flight number, if any\n * @property {String} departureName - Departure's location name.\n * @property {String} oldDepartureName - Departure's location name before the change (old airport).\n * @property {String} [departureTime] - Departure humanized time.\n * @property {String} [oldDepartureTime] - Departure humanized time before change (old time).\n * @property {String} [arrivalName] - Arrival's location name.\n * @property {String} [oldArrivalName] - Arrival's location name before the change (old airport).\n * @property {String} [arrivalTime] - Arrival humanized time.\n * @property {String} [oldArrivalTime] - Arrival humanized time before change (old time).\n * @property {String} selectorIsHidden - It is hiding the radio button.\n * @property {Boolean} [isInbound] - If true, flight/bus is inbound (arrival), else it's departure.\n * @property {Boolean} [checked] - If true, flight/bus item is selected.\n * @property {Boolean} [disabled] - Mark as disabled the transport.\n * @property {PriceData} price - Shows the price of the transport.\n * @property {Boolean} maxHandLuggageWeight - Hand luggage weight.\n * @property {String} maxCheckedLuggageWeight - Checked luggage weight.\n * @property {String} handLuggageDescription - Hand luggage description.\n * @property {String} handLuggageNotIncludedText - Text to show when hand luggage is not included (so 0 kg)\n * @property {String} checkedLuggageDescription - Checked luggage description.\n * @property {Boolean} isFlexibleTicket - Whether is flexible flight or not.\n * @property {String} flexibleTicketText - Text to indicate is flexible ticket.\n * @property {String} regularTicketText - Text to indicate is regular ticket.\n * @property {String} weightLuggageSymbol - Unit of the luggage weight.\n */\n\nexport const defaultTransportTicketData = {\n id: '',\n name: '',\n type: 'flight',\n companyId: '',\n companyName: '',\n flightNumber: '',\n departureName: '',\n oldDepartureName: '',\n departureTime: '',\n oldDepartureTime: '',\n arrivalName: '',\n oldArrivalName: '',\n arrivalTime: '',\n oldArrivalTime: '',\n isInbound: false,\n checked: false,\n disabled: false,\n price: {},\n selectorIsHidden: false,\n isDepartureTimeSpecified: true,\n isArrivalTimeSpecified: true,\n remark: '',\n unknownTimeText: 'unknown time',\n enRouteTransportIcon: 'airplane-right',\n maxHandLuggageWeight: 0,\n maxCheckedLuggageWeight: 0,\n handLuggageDescription: '',\n handLuggageNotIncludedText: '',\n checkedLuggageDescription: '',\n isFlexibleTicket: false,\n flexibleTicketText: '',\n regularTicketText: '',\n weightLuggageSymbol: '',\n supplierReservationNumber: '',\n supplierReservationNumberInfo: ''\n}\n\nexport const TransportTicketTemplate = (d) => {\n d = { ...defaultTransportTicketData, ...d }\n d.name += `_${d.isInbound ? 'inbound' : 'outbound'}`\n const hasOldDepartureTime = !!d.oldDepartureTime && (d.oldDepartureTime !== d.departureTime)\n const departureTimeAdditionalClass = hasOldDepartureTime ? 'c-transport-ticket__data--new' : ''\n const hasOldArrivalTime = !!d.oldArrivalTime && (d.oldArrivalTime !== d.arrivalTime)\n const arrivalTimeAdditionalClass = hasOldArrivalTime ? 'c-transport-ticket__data--new' : ''\n const hasOldDepartureName = !!d.oldDepartureName && (d.oldDepartureName !== d.departureName)\n const departureNameAdditionalClass = hasOldDepartureName ? 'c-transport-ticket__data--new' : ''\n const hasOldArrivalName = !!d.oldArrivalName && (d.oldArrivalName !== d.arrivalName)\n const arrivalNameAdditionalClass = hasOldArrivalName ? 'c-transport-ticket__data--new' : ''\n\n return `\n<div class=\"c-transport-ticket\n ${d.checked ? 'is-checked' : ''}\n ${d.disabled ? 'is-disabled' : ''}\n ${d.selectorIsHidden ? 'c-transport-ticket__no-radio' : ''}\n ${d.type === 'bus' ? 'c-transport-ticket--bus' : ''}\"\n ${d.id ? `id=\"${d.id}\"` : ''}>\n ${d.selectorIsHidden === false\n ? `<div class=\"c-transport-ticket__radio\">\n ${RadioButtonTemplate({ ...defaultRadioButtonData, id: `${d.name}_${d.id}`, name: d.name, value: d.id, checked: d.checked })}\n </div>`\n : ''}\n\n <div class=\"c-transport-ticket__contents\">\n <div class=\"c-transport-ticket__detailed-info-top\">\n <span class=\"c-transport-ticket__detailed-info-departure\">\n ${hasOldDepartureName ? `<span class=\"c-transport-ticket__data--old\">${d.oldDepartureName}</span>` : ''}\n <span class=\"${departureNameAdditionalClass}\">${d.departureName}</span>\n </span>\n ${d.type === 'flight'\n ? `<span class=\"c-transport-ticket__detailed-info-arrival\">\n ${hasOldArrivalName ? `<span class=\"c-transport-ticket__data--old\">${d.oldArrivalName}</span>` : ''}\n <span class=\"${arrivalNameAdditionalClass}\">${d.arrivalName}</span>\n </span>`\n : ''}\n </div>\n\n ${(d.type === 'flight' || !d.isInbound)\n ? `<div class=\"c-transport-ticket__detailed-info-bottom\">\n <div class=\"c-transport-ticket__detailed-info-departure\">\n ${(d.isDepartureTimeSpecified)\n ? ` <span class=\"${getTokenClass('dates__material', 'default', tokens)}\">\n ${hasOldDepartureTime ? `<span class=\"c-transport-ticket__data--old\">${d.oldDepartureTime}</span>` : ''}\n <span class=\"${departureTimeAdditionalClass}\">${d.departureTime}</span>\n </span >`\n : `<span class=\"${getTokenClass('dates__material', 'default', tokens)}\">\n --:--\n </span>\n <span class=\"c-transport-ticket__detailed-info-unknownTime\"> ${d.unknownTimeText} </span >`}\n </div>\n\n ${d.type === 'flight'\n ? `<div class=\"c-transport-ticket__detailed-info-icon\">\n <span class=\"m-icon m-icon--${d.enRouteTransportIcon}\"></span>\n </div>\n <div class=\"c-transport-ticket__detailed-info-arrival\">\n ${(d.isArrivalTimeSpecified)\n ? `\n <span class=\"${getTokenClass('dates__material', 'default', tokens)}\">\n ${hasOldArrivalTime ? `<span class=\"c-transport-ticket__data--old\">${d.oldArrivalTime}</span>` : ''}\n <span class=\"${arrivalTimeAdditionalClass}\">${d.arrivalTime}</span>\n </span >`\n : `\n <span class=\"${getTokenClass('dates__material', 'default', tokens)}\">\n --:--\n </span >\n <span class=\"c-transport-ticket__detailed-info-unknownTime\"> ${d.unknownTimeText} </span >`}\n </div>`\n : ''}\n </div>`\n : ''}\n\n <div class=\"${getTokenClass('airline-name__material', 'default', tokens)} c-transport-ticket__airline-info\">\n ${d.companyId ? `<span class=\"c-transport-ticket__airline-logo m-airline-logo\" data-airline-id=\"${d.companyId}\"></span>` : ''}\n <span class=\"c-transport-ticket__airline-name\">${d.companyName}</span>\n ${d.flightNumber\n ? d.companyName\n ? `<span> - </span><span class=\"c-transport-ticket__flight-number\">${d.flightNumber}</span>`\n : `<span class=\"c-transport-ticket__flight-number\">${d.flightNumber}</span>`\n : ''}\n </div>\n\n ${d.type === 'flight'\n ? `<div class=\"c-transport-ticket__detailed-info-additional\">\n ${(d.maxHandLuggageWeight || d.maxCheckedLuggageWeight)\n ? `<div class=\"c-transport-ticket__luggage-info-container\">\n ${d.maxCheckedLuggageWeight\n ? `<div class=\"c-transport-ticket__luggage-info\" title=\"${d.checkedLuggageDescription}\">\n <span class=\"m-icon m-icon--size-large m-icon--luggage-check c-transport-ticket__luggage-info-icon\"></span>\n <div class=\"c-transport-ticket__luggage-info-text\">${d.maxCheckedLuggageWeight} ${d.weightLuggageSymbol}</div>\n </div>`\n : ''}\n ${d.maxHandLuggageWeight && d.maxHandLuggageWeight !== '0'\n ? `<div class=\"c-transport-ticket__luggage-info\" title=\"${d.handLuggageDescription}\">\n <span class=\"m-icon m-icon--size-large m-icon--backpack-checkmark c-transport-ticket__luggage-info-icon\"></span>\n <div class=\"c-transport-ticket__luggage-info-text\">${d.maxHandLuggageWeight} ${d.weightLuggageSymbol}</div>\n </div>`\n : ''}\n ${d.maxHandLuggageWeight && d.maxHandLuggageWeight === '0' && d.handLuggageNotIncludedText\n ? `<div class=\"c-transport-ticket__luggage-info\">\n <span class=\"m-icon m-icon--size-large m-icon--backpack-checkmark c-transport-ticket__luggage-info-icon\"></span>\n <div class=\"c-transport-ticket__luggage-info-text\">${d.handLuggageNotIncludedText}</div>\n </div>`\n : ''}\n \n </div>`\n : ''}\n <div class=\"c-transport-ticket__type-ticket\">\n <span class=\"m-icon m-icon--size-large m-icon--${d.isFlexibleTicket ? 'airplane-flexible' : 'airplane'} c-transport-ticket__type-ticket-icon\"></span>\n <div class=\"c-transport-ticket__type-ticket-text-container\">\n <div class=\"c-transport-ticket__type-ticket-text\">\n ${d.isFlexibleTicket ? d.flexibleTicketText : d.regularTicketText}\n </div>\n ${d.supplierReservationNumber\n ? `<div class=\"c-transport-ticket__pnr-number-container\">\n ${d.supplierReservationNumberInfo\n ? `${TooltipTemplate({\n ...defaultTooltipData,\n html: `<div class=\"c-transport-ticket__pnr-number\"><b>PNR: </b>${d.supplierReservationNumber}</div>`,\n displayOn: 'left',\n text: d.supplierReservationNumberInfo,\n displayOnBottomFrom: 'sml'\n})}`\n : `<div class=\"c-transport-ticket__pnr-number\"><b>PNR: </b>${d.supplierReservationNumber}</div>`}\n </div>`\n: ''}\n </div>\n </div>\n </div>\n ${d.remark\n ? `<p class=\"c-transport-ticket__detailed-info-remark\">${d.remark}</p>`\n : ''}`\n : ''}\n\n\n </div>\n\n ${(d.price && d.price.value !== undefined)\n ? `<div class=\"c-transport-ticket__price\">\n ${PriceTemplate({ ...defaultPriceData, ...d.price })}\n </div>`\n : ' '}\n</div>`\n}\n"],"names":["defaultActionableListRoomData","priceConfig","extraClasses","defaultActionableListItemExtendedData","defaultActionableListData","config","itemType","items","attributes","jsApi","ActionableListTemplate","d","_objectSpread","concat","encodeAttributes","map","item","id","isDisabled","ActionableListTypeTemplate","join","stock","lastRoomAvailable","roomStockThresholdToShowLowAvailability","roomsLeftAvailable","replace","onRequest","onRequestLabel","title","description","price","PriceTemplate","defaultPriceData","priceDefaults","value","icon","ActionableListItemExtendedTemplate","autocomplete","INPUT_CHANGED","NO_RESULTS","defaultBreadcrumbsData","structuredData","unclickable","BreadcrumbsTemplate","model","length","last","index","BreadcrumbsItemTemplate","trim","href","text","defaultBreakdownTableData","topItemsExtraClasses","preItemsExtraClasses","extraContent","variant","tableItemExtraClasses","childrenExtraClasses","BreakdownTableTemplate","innerHTML","extraClass","total","isDiscount","TableItemTemplate","Object","assign","defaultTableItemData","preitem","concept","subitems","subitem","SubItemTemplate","child","TableTemplate","defaultTableData","isInfo","tokensShared","require","tokensBrand","error","tokens","defaultButtonGroupData","html","proportional","disabled","ButtonGroupTemplate","getTokenClass","choiceList","CHOICE_LIST_VALIDATION_ERROR","collapseEvents","OPEN","OPENED","CLOSE","CLOSED","defaultDropdownData","placeholder","required","isMultiple","highlighted","state","messageRequired","hideRequiredSymbol","track","syncSelectedOnLoad","options","DropdownTemplate","isAnyOptionSelected","hiddenLabel","label","DropdownMultipleTemplate","DropdownSingleTemplate","tokensCollections","tokensStates","defaultLabelData","collection","size","iconSize","LabelTemplate","currentCollectionToken","getToken","toLowerCase","undefined","currentCollectionColorScheme","colorScheme","currentStateToken","currentStateModifier","modifier","currentStateColorScheme","currentStateColorSchemeWhite","colorSchemeWhite","defaultNavLinkFormActionData","method","action","inputs","defaultNavLinkData","link","isCollapsible","collapsibleId","defaultNavItemData","isBack","isMore","isActive","isCurrent","isFavoriteCollector","isOpened","until","shownOnMoreUntil","shownOnMoreFrom","itemDefinition","parentId","form","more","NavItemTemplate","itemExtraClassesBack","itemExtraClassesMore","itemExtraClassesShowOnMoreUntil","itemExtraClassesShowOnMoreFrom","itemExtraClassesActive","itemExtraClassesOpened","itemExtraClassesCurrent","itemExtraClassesFavoriteCollector","itemExtraClassesChild","level","Set","filter","e","retrieveExtraClassesForItem","input","name","NavLinkFormActionTemplate","target","NavLinkTemplate","CollapseTemplate","opened","groupId","NavListTemplate","defaultNavListData","multilevel","backText","moreText","navListData","navMoreData","navItems","breakpoints","i","biggestBreakpointIndex","reduce","bpIndex","currentIndex","indexOf","defaultNavData","tag","currentLevel","NavTemplate","SwipeTemplate","navigation","CLICK_NAVIGATION","defaultGalleryImageThumbnailData","sync","resolve","placeholderSrc","resolvedSrc","ratio","defaultGalleryImageData","galleryImageDescription","GetRatioStringFromRatioModel","width","height","PhotoGalleryTemplate","newGUID","modalId","elements","template","apiKey","thumbnail","position","url","videoId","ImgTemplate","defaultImgData","PhotoGalleryVideoTemplate","galleryImageThumbnail","originalImage","GetOriginalImage","galleryImageOriginalImage","GetThumbnail","PhotoGalleryImageTemplate","PhotoGalleryElementTemplate","popupTitle","ModalTemplate","selectorNames","definition","props","type","PhotoGallery","_Component","_inherits","_super","element","_this","_classCallCheck","call","modal","querySelector","modalContent","modalFooter","_attachEvents","_setGalleryListeners","modalContentRendered","sliderInitialized","sliderIndex","Img","createInstancesOnDocument","key","this","modalApi","events","on","_isOpened","_isClosed","videos","querySelectorAll","video","pauseVideo","sliderTransitionElement","style","transition","_setSliderIndex","_renderModalFooter","SliderTemplate","luminosity","outerButtons","_getImageElements","_this2","slider","_getSliderElement","sliderApi","descriptions","_getDescriptions","_updateDescription","images","forEach","getAttribute","image","VideoTemplate","push","setProp","forceUpdate","sliderElement","_this3","addEventListener","ev","preventDefault","_renderModalContent","Component","initDocumentComponentsFromAPI","initComponentActionElements","closest","parseInt","dataset","cPhotoGalleryItem","registerComponent","defaults","departures","packages","occupancies","roomTypes","ageProfiles","locales","iconForProfile","occupancy","adults","children","babies","PriceTableDataModel","arguments","_setPriceTableData","priceTableApiData","priceTableData","periodName","currency","currencySymbol","roomData","JSON","parse","stringify","obj","_ref","occupancyIds","characteristics","subtitle","_defineProperty","occupancyData","occupancyId","find","_ref2","ageProfileGroups","ageProfileThresholds","ageProfileId","quantity","min","packageData","_package","roomGroup","departureDate","formattedPrice","roomName","ageProfileDictionary","ageProfile","departureDictionary","departure","date","defaultPriceTableTemplateDiscountBulletData","attributtes","PriceTableTemplateDiscountBullet","hexColor","defaultPriceTableData","isCompactMode","hasUiTest","_isOnRequest","code","toUpperCase","GetRoomCharacteristicsHtml","roomItem","isRoomCharacteristicList","roomContentColumnsToken","componentAPI","componentQueries","navWrapperElement","prevElement","nextElement","priceElement","headerCell","priceCell","priceRow","isHighlightedClassName","isActiveClassName","prevMonth","nextMonth","origin","data","PriceTable","EventEmitter","_init","refresh","bind","updateArrows","toggleNavVisibility","prev","next","goTo","move","hasData","keys","priceTableDataModel","flush","_createHtml","_initElements","_addListeners","silent","getPriceTableData","priceTableHtml","elementFromString","extraInfo","legendHighlightPrices","toString","bestValues","el","threshold","entries","_ref4","_ref5","_slicedToArray","legendItem","periodNameExtraInfo","departureDateIndex","descriptionLines","roomTypeIndex","moreInfo","defaultCollapseData","sort","firstRoom","secondRoom","occupancyItem","_ref3","iconIsArray","Array","isArray","fill","x","i18nString","split","_getOccupancyByAgeProfile","packagePrice","bestValueScore","thresholds","_getCellThresholdExtraClasses","highlightPriceOption","mandatoryExtraCostsText","staticText","bestValuesCaption","PriceTableTemplate","moveChildrenFrom","dateHeaderElements","from","datePriceElements","allElements","_toConsumableArray","priceRowElements","datePriceElement","targetPosition","currentRow","classList","isTargetBefore","remove","_unselectPriceCell","add","_target$dataset$id$sp2","room","packageDate","occupation","accum","selectedPackage","emit","selectedRowElement","priceClickedData","isPriceHighlighted","currencyCode","duration","instance","priceCellElement","contains","visibleElements","offsetParent","slice","visible","direction","visibleElementsAmount","document","defaultView","getComputedStyle","content","currentPosition","edgePosition","elementIndex","findIndex","Math","abs","currencyPosition","priceSuffix","pricePrefix","saleText","oldPrice","legend","acmUrl","acmModalId","acmHideInfoIcon","publicPrice","publicPriceDetail","discount","discountText","discountTemplate","BtnTemplate","defaultButtonData","block","labelGrayed","label2","parseFormattedPrice","symbol","match","_formattedPrice$split","numberString","isNaN","parseFloat","ACM_PARAMS_MAP","transportType","departureDateRaw","durationRaw","birthdates","mealplanCode","allocation","createAcmUrlFromParams","baseUrl","params","fixedParams","result","paramKey","getUrlFromString","getACMPriceLabel","defaultSideDrawerData","closable","SideDrawerTemplate","k","fromCamelCase","defaultSideDrawerBodyData","SideDrawerBodyTemplate","SideDrawerFooterTemplate","defaultSideDrawerHeaderData","headerTag","SideDrawerHeaderTemplate","SwitchTemplate","async","bodyContent","checked","defaultTabsContentWrapperData","scrollOnChange","anchorable","TabsContentWrapperTemplate","defaultTabsContentData","isOpen","TabsContentTemplate","defaultTabsNavItemData","componentId","featured","TabsNavItemTemplate","iconPosition","defaultTabsNavData","swipeable","swipeAttributes","TabsNavTemplate","tabsEvents","CLICKED","LOADED","TAB_CHANGED","PROP_CHANGED","defaultTransportTicketData","companyId","companyName","flightNumber","departureName","oldDepartureName","departureTime","oldDepartureTime","arrivalName","oldArrivalName","arrivalTime","oldArrivalTime","isInbound","selectorIsHidden","isDepartureTimeSpecified","isArrivalTimeSpecified","remark","unknownTimeText","enRouteTransportIcon","maxHandLuggageWeight","maxCheckedLuggageWeight","handLuggageDescription","handLuggageNotIncludedText","checkedLuggageDescription","isFlexibleTicket","flexibleTicketText","regularTicketText","weightLuggageSymbol","supplierReservationNumber","supplierReservationNumberInfo","TransportTicketTemplate","hasOldDepartureTime","departureTimeAdditionalClass","hasOldArrivalTime","arrivalTimeAdditionalClass","hasOldDepartureName","departureNameAdditionalClass","hasOldArrivalName","arrivalNameAdditionalClass","RadioButtonTemplate","defaultRadioButtonData","TooltipTemplate","defaultTooltipData","displayOn","displayOnBottomFrom"],"sourceRoot":""}