{"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>&nbsp;-&nbsp;</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":""}