{"version":3,"file":"js/8444.1b88220b.js","mappings":"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","sources":["webpack://@sunwebgroup/design-system/./shared/modules/widgets/product-ads/main.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/promoted-price/locales.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/rebooking-options/event-types.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/recommended-acco-lister/event-types.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/recommended-acco-lister/session-recorder.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/recommended-acco-lister/main.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/refund/w-refund-form.template.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/refund/w-refund-confirmation.template.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/refund/w-refund-response.template.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/refund/refund.template.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/refund/main.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/reviews-list/data-js-api.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/reviews-list/locales.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/reviews-list/w-reviews-list-item.template.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/reviews-list/main.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/reviews-teaser/locales.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/reviews-teaser/w-reviews-teaser-items.template.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/reviews-teaser/main.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/room-dropdown/locales.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/room-list/locales.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/room-selector/locales.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/search-map/event-types.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/search/locales.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/ski-prices/w-ski-prices.template.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/ski-prices/main.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/ski-prices/data-js-api.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/smart-app-banner/main.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/static-content-data/main.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/verify-account/main.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/voucher-check-balance/main.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/voucher-check-balance/w-voucher-check-balance.info.template.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/voucher-redeemer/w-voucher-redeemer.template.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/voucher/w-voucher.template.js","webpack://@sunwebgroup/design-system/./shared/modules/widgets/voucher/main.js"],"sourcesContent":["import { registerWidget } from '../../../js/core/widget/widget-directory'\nimport { fetchJsonData } from '../../../js/helpers/json-fetch'\nimport { getUrlFromString } from '../../../js/document/url'\nimport { CollectionItemTemplate } from '../../components/collection-row/c-collection-item'\nimport { CollectionRowTemplate } from '../../components/collection-row/c-collection-row'\nimport { AbsoluteDialogTemplate } from '../../components/absolute-dialog/c-absolute-dialog.template'\nimport Component from '../../../js/core/component/component'\n\nconst widgetApi = 'w-product-ads'\n\nconst widgetQueries = {\n adsContainer: `data-${widgetApi}__container`,\n apiUrl: `data-${widgetApi}__url`,\n adItem: `data-${widgetApi}__item`,\n noDataTitle: `data-${widgetApi}__no-data-title`,\n noDataMessage: `data-${widgetApi}__no-data-message`,\n loader: `data-${widgetApi}__loader`,\n extraParams: `data-${widgetApi}__extra-params`\n}\n\nconst classQueries = {\n adsContainerWrapper: `${widgetApi}--container`,\n adItem: `${widgetApi}--item`\n}\n\nexport default class ProductAds {\n /**\n * Creates a new product ads widget.\n *\n * @constructor\n * @param {HTMLElement} element - The HTML element.\n */\n constructor (element) {\n if (!element) {\n return\n }\n this.element = element\n this.adsContainer = this.element.querySelector(`[${widgetQueries.adsContainer}]`)\n this.apiUrl = this.element.getAttribute(widgetQueries.apiUrl)\n this.noDataTitle = this.element.getAttribute(widgetQueries.noDataTitle)\n this.noDataMessage = this.element.getAttribute(widgetQueries.noDataMessage)\n this.loader = this.element.querySelector(`[${widgetQueries.loader}]`)\n this.extraParams = this.getExtraParameters()\n\n this.init()\n }\n\n /**\n * Initializes the widget.\n */\n init () {\n if (!this.adsContainer) {\n return\n }\n\n this.fetch()\n }\n\n /**\n * Returns the extra parameters that are exposed in the DOM\n *\n * @returns {string} - Returns the api url\n */\n getExtraParameters () {\n const extraParamsElements = this.element.querySelectorAll(`[${widgetQueries.extraParams}]`)\n const extraParams = extraParamsElements\n ? [...extraParamsElements].reduce((obj, el) => {\n obj[el.name] = el.value\n return obj\n }, {})\n : undefined\n\n return extraParams\n }\n\n /**\n * Gets the data from the API\n */\n async fetch () {\n try {\n const fetchUrl = getUrlFromString(this.apiUrl, this.extraParams)\n const fetchedData = await fetchJsonData(fetchUrl).then(result => {\n const data = result && result.data ? result.data[0] : null\n if (data) {\n return {\n ads: data.ads\n }\n }\n })\n\n this.render(fetchedData)\n } catch (e) {\n if (window.newrelic) {\n window.newrelic.noticeError('[Product Ads] Error with:' + e)\n }\n }\n }\n\n /**\n * Renders the data\n *\n * @param {Object} data - The data to render.\n */\n render (data) {\n if (this.loader) {\n this.loader.remove()\n }\n\n if (!data) {\n const messageBox = AbsoluteDialogTemplate({\n title: this.noDataTitle ?? '',\n body: this.noDataMessage ?? '',\n closable: false,\n alertType: 'info'\n })\n\n this.adsContainer.innerHTML = messageBox\n\n return\n }\n\n const ads = data.ads\n if (ads) {\n let adsRendered = ''\n ads.forEach((ad, index) => {\n if (index < 5) {\n adsRendered += CollectionItemTemplate({\n title: ad.contentHeading ?? '',\n subTitle: ad.contentSubheading ? this.buildSubTitle(ad.contentSubheading) : '',\n link: ad.clickUrl ? { href: ad.clickUrl, target: '_blank', title: ad.contentHeading } : null,\n image:\n ad.contentImage && ad.contentImage !== ''\n ? {\n resolvedSrc: ad.contentImage,\n title: ad.contentHeading,\n ratio: '4:3',\n dynamicRatios: [\n {\n ratio: '3:2',\n bp: 'sml'\n }\n ]\n }\n : {\n title: ad.contentHeading,\n ratio: '4:3',\n dynamicRatios: [\n {\n ratio: '3:2',\n bp: 'sml'\n }\n ]\n },\n attributes: {\n 'data-rendered': ad.impressionUrl,\n 'data-impression': ad.viewableImpressionUrl,\n [`${widgetQueries.adItem}`]: ''\n },\n extraClasses: `FID__${ad.flightId} ${classQueries.adItem} ${\n ad.contentImage && ad.contentImage !== '' ? '' : 'no-image'\n }`\n })\n }\n })\n\n const collectionAdsRendered = CollectionRowTemplate({\n html: adsRendered,\n expandedFrom: 'sml',\n extraClasses: classQueries.adsContainerWrapper\n })\n\n this.adsContainer.innerHTML = collectionAdsRendered\n Component.initDocumentComponentsFromAPI(this.element)\n\n this.notifyEvents()\n this.observeAds()\n }\n }\n\n /**\n * Builds the subtitle\n * @param {String} contentSubheading - The content subheading.\n * @returns {String} The subtitle.\n */\n buildSubTitle (contentSubheading) {\n return `${contentSubheading}`\n }\n\n /**\n * Notify the events\n */\n notifyEvents () {\n const adItems = this.adsContainer.querySelectorAll(`[${widgetQueries.adItem}]`)\n adItems.forEach(adItem => {\n const rendered = adItem.getAttribute('data-rendered')\n this.notifyAd(rendered)\n })\n }\n\n /**\n * Observes the ads\n */\n observeAds () {\n const adItems = this.adsContainer.querySelectorAll(`[${widgetQueries.adItem}]`)\n const observedAds = new Map()\n\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n const adItem = entry.target\n\n if (entry.isIntersecting) {\n const timeoutId = setTimeout(() => {\n const viewed = entry.target.getAttribute('data-impression')\n this.notifyAd(viewed)\n observer.unobserve(entry.target)\n }, 1000)\n\n observedAds.set(adItem, timeoutId)\n } else {\n if (observedAds.has(adItem)) {\n clearTimeout(observedAds.get(adItem))\n observedAds.delete(adItem)\n }\n }\n })\n },\n { threshold: 0.5 }\n )\n\n adItems.forEach(adItem => {\n observer.observe(adItem)\n })\n }\n\n /**\n * Notify the ad\n *\n * @param {String} rendered - The rendered data.\n */\n async notifyAd (rendered) {\n try {\n const fetchUrl = getUrlFromString(rendered)\n const response = await fetch(fetchUrl)\n\n if (!response.ok) {\n if (window.newrelic) {\n const error = new Error(`[Product Ads] Response notifying status: ${response.status}`)\n window.newrelic.noticeError(error)\n }\n }\n } catch (error) {\n if (window.newrelic) {\n const errorMessage = new Error(`[Product Ads] Error notifyAd with: ${error}`)\n window.newrelic.noticeError(errorMessage)\n }\n }\n }\n}\n\nregisterWidget(ProductAds, widgetApi)\n","export const da = {\n priceLegend: 'pris pr. person',\n publicPrice: 'offentlig pris',\n textButton: 'Vælg'\n}\n\nexport const de = {\n priceLegend: 'Preis pro Person',\n publicPrice: 'wählen',\n textButton: 'select'\n}\n\nexport const en = {\n priceLegend: 'price per person',\n publicPrice: 'public price',\n textButton: 'select'\n}\n\nexport const nb = {\n priceLegend: 'pris per person',\n publicPrice: 'offentlig pris',\n textButton: 'å velge'\n}\nexport const fr = {\n priceLegend: 'prix par personne',\n publicPrice: 'prix public',\n textButton: 'sélectionner'\n}\n\nexport const nl = {\n priceLegend: 'prijs per persoon',\n publicPrice: 'openbare prijs',\n textButton: 'kiezen'\n}\n\nexport const sv = {\n priceLegend: 'pris per person',\n publicPrice: 'offentligt pris',\n textButton: 'Välj'\n}\n","/**\n * List of events used by rebooking options\n *\n */\n\nexport const rebookingOptions = {\n MODAL_OPENED: 'rebookingOptions.modalOpened',\n SAME_ACCO_LINK_CLICKED: 'rebookingOptions.sameAccoLinkClicked',\n DIFFERENT_ACCO_LINK_CLICKED: 'rebookingOptions.differentAccoLinkClicked',\n ANOTHER_PAGE_LINK_CLICKED: 'rebookingOptions.anotherPageLinkClicked'\n}\n","/**\n * List of events used by acco lister widget\n *\n */\nexport const recommendedAccoListerEvents = {\n RECOMMENDED_ACCO_LISTER_PRINTED: 'RecommendedAccoLister.Printed',\n RECOMMENDED_ACCO_LISTER_ITEM_CLICKED: 'RecommendedAccoLister.ItemClicked',\n RECOMMENDED_ACCO_LISTER_CTA_CLICKED: 'RecommendedAccoLister.CtaClicked'\n}\n","const pageTimerPrefix = 'session-time-'\n\n/**\n * SessionRecorder stores in LocalStorage the time a user spends on a given page.\n *\n * The method retrievePairscollects all diferent LocalStorage entries created by all SessionRecorder instances and returns\n * a list of pairs with the accoId and the time spent on the page\n */\nexport default class SessionRecorder {\n constructor (accoId) {\n this.accoId = accoId\n this.shouldTimePage = true // This setting governs everything, so we need to disable this in case we dont want to track usage\n this.timerStartName = `session-start-${this.accoId}`\n this.timeSpentTimerName = `${pageTimerPrefix}${this.accoId}`\n this.addListeners()\n }\n\n toggleTimer () {\n if (!this.shouldTimePage) return\n if (document.hasFocus()) {\n this.startTimer()\n } else {\n this.stopTimer()\n }\n }\n\n startTimer () {\n localStorage.setItem(this.timerStartName, Date.now())\n }\n\n stopTimer () {\n if (!this.shouldTimePage) return\n\n const startTime = localStorage.getItem(this.timerStartName)\n if (!startTime) {\n this.clearListeners()\n return\n }\n\n const existingTimeSpentItem = localStorage.getItem(this.timeSpentTimerName)\n const existingTimeSpent = existingTimeSpentItem\n ? parseInt(existingTimeSpentItem, 10)\n : 0\n\n const elapsedTime = Date.now() - parseInt(startTime, 10) + existingTimeSpent\n localStorage.setItem(this.timeSpentTimerName, elapsedTime)\n localStorage.removeItem(this.timerStartName)\n\n this.clearListeners()\n }\n\n clearListeners () {\n window.removeEventListener('focus', this.stopTimer.bind(this))\n window.removeEventListener('blur', this.stopTimer.bind(this))\n window.removeEventListener('beforeunload', this.stopTimer.bind(this))\n }\n\n addListeners () {\n window.addEventListener('focus', this.toggleTimer.bind(this))\n window.addEventListener('blur', this.toggleTimer.bind(this))\n window.addEventListener('beforeunload', this.stopTimer.bind(this))\n this.toggleTimer()\n }\n\n retrievePairs () {\n const pageTimers = Object.keys(localStorage).filter((key) =>\n key.startsWith(pageTimerPrefix)\n )\n\n return pageTimers.map((key) => {\n const timeSpent = localStorage[key]\n return {\n accoId: this.getAccoIdFromKey(key),\n timeSpent: parseInt(timeSpent, 10)\n }\n })\n }\n\n getAccoIdFromKey (key) {\n return key.replace(pageTimerPrefix, '')\n }\n}\n","import { registerWidget } from '../../../js/core/widget/widget-directory'\nimport { apiCaller } from '../../../js/helpers/api-caller'\nimport { getUrlFromString } from '../../../js/document/url'\nimport { processPackageItem } from '../../../js/data/data-processor'\nimport { AccoListerContentTemplate } from '../acco-lister/w-acco-lister__content.template'\nimport { observerAPI, documentObserver } from '../../../js/document/intersector'\nimport Component from '../../../js/core/component/component'\nimport Img from '../../components/img/main'\nimport { getACMPriceLabel } from '../../components/price/c-price.template'\nimport SessionRecorder from './session-recorder'\nimport { recommendedAccoListerEvents } from './event-types'\nimport { bindClickEventToResults } from '../../../js/helpers/event-binder'\nimport registeredEvents from '../../../js/helpers/registered-events'\n\nconst EventEmitter = require('eventemitter3')\n\nconst ACM_MODAL_ID_SUFFIX = '__acm-modal'\n\nconst widgetApi = 'w-recommended-acco-lister'\nconst widgetQueries = {\n urlAttr: `data-${widgetApi}__url`,\n urlAcmAttr: `data-${widgetApi}__acm-base-url`,\n priceLabelTextAttr: `data-${widgetApi}__price-label-text`,\n sliderAttr: `data-${widgetApi}-slider`,\n variantAttr: `data-${widgetApi}__variant`,\n showCtaButtonAttr: `data-${widgetApi}__show-cta-button`,\n ctaButtonTextAttr: `data-${widgetApi}__cta-button-text`,\n useSessionRecordingAttr: `data-${widgetApi}__session-recording`,\n extraParams: 'input[type=\"hidden\"]',\n resultsElement: '.w-acco-lister__results',\n trackAttr: 'data-track'\n}\n\n/**\n * Recommended Acco lister is ONLY used for the Recommendation spike\n *\n * Some shortcuts have been taken when creating this component, such as (but not limited to):\n * 1- Duplicating the acco-lister: Code duplication. This could become a variant, with time\n * 2- Removed data-layer events\n * 3- When possible, css class from acco-lister have been used (see 1-)\n */\nexport default class RecommendedAccoLister {\n constructor (element, options = {}) {\n this.element = element\n this.acmModalId = `${widgetApi}-${this.element.id}${ACM_MODAL_ID_SUFFIX}`\n this.resultsElement = this.element.querySelector(widgetQueries.resultsElement)\n this.packageItems = []\n this.events = new EventEmitter()\n this.track = this.element.hasAttribute(widgetQueries.trackAttr) ? this.element.attributes[widgetQueries.trackAttr].value : null\n\n registeredEvents.registerWidgetEvents(widgetApi, this.events, {\n ...this.element.hasAttribute(widgetQueries.trackAttr) && { track: this.element.attributes[widgetQueries.trackAttr].value }\n })\n\n this.options = {\n ...{\n url: this.element.getAttribute(widgetQueries.urlAttr),\n acmBaseUrl: this.element.getAttribute(widgetQueries.urlAcmAttr),\n priceLabelText: this.element.getAttribute(widgetQueries.priceLabelTextAttr),\n variant: this.element.getAttribute(widgetQueries.variantAttr) || 'default',\n showCtaButton: this.element.getAttribute(widgetQueries.showCtaButtonAttr) || false,\n ctaButtonText: this.element.getAttribute(widgetQueries.ctaButtonTextAttr) || '',\n useSessionRecording: this.element.hasAttribute(widgetQueries.useSessionRecordingAttr) || false,\n urlParams: this.getExtraParameters(),\n originList: 'recommended-acco-lister'\n },\n ...options\n }\n\n const observer = documentObserver()\n observer.observe(this.element)\n this.element[observerAPI].events.on('enter', () => {\n this.fetchAndUpdate()\n .catch(e => console.warn(e))\n observer.unobserve(this.element)\n })\n\n this.element[widgetApi] = {\n element: this.element,\n options: this.options\n }\n\n const [staticContentElement] = document.getElementsByClassName('w-static-data-content')\n this.accoId = staticContentElement.getAttribute('data-w-static-content-data-id')\n if (this.options.useSessionRecording) {\n this.sessionRecorder = new SessionRecorder(this.accoId)\n }\n }\n\n getAccoListerTipsTemplate (options = []) {\n if (!options.items || !options.items.length > 0) return null\n options.items = options.items.map(item => {\n const modalId = options.acmModalId ? options.acmModalId : this.acmModalId\n return processPackageItem(item,\n {\n acmModalId: modalId,\n acmHideInfoIcon: !!item.price.mandatoryExtraCostsText,\n priceLegend: this.options.priceLabelText,\n priceLabel: item.price.priceDiscounts?.description,\n priceLabel2: item.price.mandatoryExtraCostsText && item.price.acmInformation\n ? getACMPriceLabel({ ...item, text: item.price.mandatoryExtraCostsText, staticText: item.price.staticText, acmUrl: item.price.acmInformation.acmUrl, modalId })\n : item.price.staticText,\n priceLabelGrayed: true,\n acmBaseUrl: this.options.acmBaseUrl,\n originList: options.originList || this.options.originList\n })\n })\n\n this.packageItems = options.items\n options.showCtaButton = this.options.showCtaButton\n options.ctaButtonText = this.options.ctaButtonText\n const accoListerContent = AccoListerContentTemplate(options)\n return accoListerContent\n }\n\n getExtraParameters () {\n const extraParamsElements = this.element.querySelectorAll(widgetQueries.extraParams)\n return extraParamsElements\n ? [...extraParamsElements].reduce((obj, el) => {\n obj[el.name] = el.value\n return obj\n }, {})\n : undefined\n }\n\n async fetchAndUpdate () {\n this.element.classList.add('is-loading')\n\n const parentNode = this.element.parentNode\n if (!parentNode.classList.contains('fr-acco-lister')) return\n\n const weights = this.sessionRecorder ? this.sessionRecorder.retrievePairs() : {}\n const hideParent = () => {\n parentNode.setAttribute('hidden', 'true')\n }\n const absoluteUrl = getUrlFromString(this.options.url, this.options.urlParams)\n try {\n const response = await apiCaller(absoluteUrl.href, { method: 'post', body: { accoId: this.accoId, weights } })\n\n if (!response.success) {\n throw new Error('Network response was not ok')\n }\n this.element.classList.remove('is-loading')\n if (response?.response?.results?.length) {\n this.resultsElement.innerHTML = this.getAccoListerTipsTemplate({\n id: this.element.id,\n variant: this.options.variant,\n items: response.response.results,\n track: this.track ? this.track : null\n })\n bindClickEventToResults(this.packageItems, this._getLinksForEachResult(), this.onClickItem, this.events)\n Component.initDocumentComponentsFromAPI(this.element)\n Component.initComponentActionElements(this.element)\n Img.createInstancesOnDocument(this.element)\n } else {\n hideParent()\n }\n } catch (error) {\n hideParent()\n }\n }\n\n _getLinksForEachResult () {\n const resultElements = Array.from(this.resultsElement.querySelectorAll('.c-package-item'))\n return resultElements.map(result => Array.from(result.querySelectorAll('.c-package-item__link')))\n }\n\n onClickItem (ev, result, events) {\n events.emit(recommendedAccoListerEvents.RECOMMENDED_ACCO_LISTER_ITEM_CLICKED, { data: { ...result }, event: ev })\n }\n}\n\nregisterWidget(RecommendedAccoLister, widgetApi)\n","import { FormTemplate } from '../../components/form/c-form.template'\nimport { FormSectionTemplate } from '../../components/form/c-form__section.template'\nimport { FormFieldsetTemplate } from '../../components/form/c-form__fieldset.template'\nimport { ChoiceListTemplate } from '../../components/choice-list/c-choice-list.template'\nimport { BoxTemplate } from '../../components/box/c-box.template'\nimport { TitleTemplate } from '../../components/title/c-title.template'\nimport { DropdownTemplate } from '../../components/dropdown/c-dropdown.template'\nimport { TextboxTemplate } from '../../components/textbox/c-textbox.template'\n\nexport const RefundFormBankInfoTemplate = (d) => {\n return `\n
\n

${d.texts.text}

\n ${FormTemplate({\n hasSubmitButton: false,\n validate: true,\n track: d.track,\n attributes: {\n 'data-w-refund__form': ''\n },\n extraClasses: 'w-refund__form',\n html: ` \n
\n ${FormSectionTemplate({\n html: `${FormFieldsetTemplate({\n html: `${DropdownTemplate({\n id: `${d.id}type`,\n label: d.texts.typeFieldLabel,\n options: [{ value: d.sepaOption, text: d.texts.sepaFieldValue, selected: d.formData.type ? d.formData.type === d.sepaOption : true },\n { value: d.nonSepaOption, text: d.texts.nonSepaFieldValue, selected: d.formData.type ? d.formData.type === d.nonSepaOption : false }],\n attributes: {\n 'data-w-refund__type-choice-list': ''\n },\n required: true,\n hideRequiredSymbol: true,\n extraClasses: 'c-form__item c-form__item--medium'\n })}`\n })}\n ${d.fieldsets.map(fieldset => {\n return FormFieldsetTemplate({\n extraClasses: 'w-refund__form-fieldset',\n title: d.texts[`${fieldset.group}DetailsTitle`],\n html: `${fieldset.fields.filter(f => f.types.includes(d.type)).map(field => field.fieldType === 'dropdown' && d.data[field.data] && d.data[field.data].length > 0\n ? DropdownTemplate({\n id: `${d.id}${field.name}`,\n options: d.data[field.data].map(c => { return { value: c.id, text: c.name, selected: d.formData[field.name] === c.id, disabled: !!c.disabled } }),\n label: d.texts[`${field.name}FieldLabel`],\n placeholder: d.texts[`${field.name}FieldPlaceholder`],\n required: field.isRequired.includes(d.type),\n messageRequired: d.texts.isRequired,\n attributes: {\n 'data-w-refund__dropdown': field.name\n },\n extraClasses: 'c-form__item c-form__item--medium'\n })\n : TextboxTemplate({\n id: `${d.id}${field.name}`,\n name: field.name,\n value: d.formData[field.name] ? d.formData[field.name] : '',\n label: d.texts[`${field.name}FieldLabel`],\n placeholder: d.texts[`${field.name}FieldPlaceholder`],\n icon: field.validationUrl && field.validationQueryKeyWord ? 'checkmark' : '',\n iconPosition: field.validationUrl && field.validationQueryKeyWord ? 'right' : '',\n required: field.isRequired.includes(d.type),\n messageRequired: d.texts.isRequired,\n attributes: {\n 'data-w-refund__textbox': field.name,\n ...(d.texts[`${field.name}FieldValidationUrl`] && field.validationUrl) && { 'data-w-refund__validate-url': d.texts[`${field.name}FieldValidationUrl`] },\n 'data-w-refund__field-name': field.name\n },\n patternRule: !d.texts[`${field.name}FieldValidationUrl`] && d.texts[`${field.name}FieldPattern`],\n messageInvalid: d.texts[`${field.name}FieldMessagePattern`],\n extraClasses: `c-form__item c-form__item--${field.size}`\n })).join('')}`\n })\n }).join('')}\n `\n })}\n
`\n })}\n
\n `\n}\n\nexport const RefundFormRemarksAndConditionsTemplate = (d) => {\n return `\n
\n ${TitleTemplate({\n text: d.texts.filledData\n })}\n ${BoxTemplate({\n variant: 'flat',\n extraClasses: 'cs-state-info cs-state-info--light w-refund__filled-data-box',\n html: ``\n })}\n ${FormTemplate({\n hasSubmitButton: false,\n validate: true,\n track: d.track,\n attributes: {\n 'data-w-refund__form': ''\n },\n extraClasses: 'w-refund__form',\n html: ` \n
\n ${FormSectionTemplate({\n html: FormFieldsetTemplate({\n html: `\n
${d.texts.termsAndConditionsText}
\n ${ChoiceListTemplate({\n id: `${d.id}conditions`,\n name: 'conditions',\n method: 'multiple',\n required: true,\n items: [{ text: d.texts.conditionsLabel, value: 'accept', required: true, size: 'small' }],\n attributes: {\n 'data-w-refund__conditions': '',\n 'data-message-required': d.texts.conditionsRequiredMessage\n },\n extraClasses: 'c-form__item c-form__item--large'\n })}\n `\n })\n })}\n
`\n })}\n
\n `\n}\n","import { TitleTemplate } from '../../components/title/c-title.template'\nimport { BtnTemplate } from '../../components/btn/c-btn.template'\n\nexport const defaultRefundConfirmationData = {\n title: '',\n confirm: '',\n decline: '',\n back: '',\n html: ''\n}\n\nexport const RefundConfirmationTemplate = (d) => {\n d = { ...defaultRefundConfirmationData, ...d }\n return `\n
\n
\n ${d.back\n ? BtnTemplate({\n variant: 'flat-neutral',\n text: d.back,\n icon: 'chevron-left',\n extraClasses: 'w-refund__back-button',\n attributes: { 'data-w-refund__options-back': '' }\n })\n : ''}\n ${d.title\n ? TitleTemplate({\n text: d.title,\n size: 'default'\n })\n : ''}\n
\n ${d.html}\n
\n
\n
\n ${d.confirm\n ? `${BtnTemplate({\n text: d.confirm,\n jsApi: true,\n variant: 'flat-neutral',\n attributes: { 'data-w-refund__options-confirm': '' }\n })}`\n : ''}\n ${d.decline\n ? `${BtnTemplate({\n text: d.decline,\n jsApi: true,\n attributes: { 'data-w-refund__options-decline': '' }\n })}`\n : ''}\n
\n
\n `\n}\n","import { TitleTemplate } from '../../components/title/c-title.template'\nimport { BtnTemplate } from '../../components/btn/c-btn.template'\n\n/**\n * The RefundResponseTemplate contains all data to render confirmation screen\n */\n\nexport const defaultRefundResponseTemplate = {\n isSuccess: false,\n title: '',\n text: '',\n confirm: ''\n}\n\nexport const RefundResponseTemplate = (d) => {\n d = { ...defaultRefundResponseTemplate, ...d }\n return `\n
\n
\n ${TitleTemplate({\n text: d.title,\n size: 'default',\n extraClasses: (d.isSuccess ? 'w-refund__confirmed__title' : 'w-refund__error__title')\n })}\n
\n
\n ${d.text}\n
\n
\n ${d.confirm\n ? `${BtnTemplate({\n text: d.confirm,\n variant: 'flow',\n jsApi: true,\n attributes: d.isSuccess ? { 'data-w-refund__options-done': '' } : { 'data-w-refund__close-modal': '' }\n })}`\n : ''}\n
\n
\n `\n}\n","import { encodeAttributes } from '../../../js/helpers/string'\nimport { ModalV2Template } from '../../components/modal-v2/c-modal-v2.template'\n\nexport const defaultRefundTemplate = {\n id: '',\n extraClasses: '',\n refundRequestUrl: '',\n showAllCountries: false,\n modalId: '',\n attributes: null,\n track: null\n}\n\nexport const RefundTemplate = (d) => {\n d = { ...defaultRefundTemplate, ...d }\n return `\n
\n ${ModalV2Template({\n size: 'medium',\n id: d.modalId,\n async: false,\n extraClasses: 'w-refund__modal',\n attributes: { 'data-w-refund__modal': '' },\n closable: true,\n style: 'neutral',\n bodyContent: '
'\n })}\n
\n `\n}\n","import { registerWidget } from '../../../js/core/widget/widget-directory'\nimport { elementFromString, flush, getDataPrefixed, moveChildrenFrom } from '../../../js/document/html-helper'\nimport Component from '../../../js/core/component/component'\nimport {\n RefundFormBankInfoTemplate,\n RefundFormRemarksAndConditionsTemplate\n} from './w-refund-form.template'\nimport { RefundConfirmationTemplate } from './w-refund-confirmation.template'\nimport { apiCaller } from '../../../js/helpers/api-caller'\nimport { RefundResponseTemplate } from './w-refund-response.template'\nimport registeredEvents from '../../../js/helpers/registered-events'\nimport { refundEvents } from '../../../js/document/event-types'\nimport { RefundTemplate } from './refund.template'\n\nconst EventEmitter = require('eventemitter3')\nconst widgetApi = 'w-refund'\n\nconst fieldsets = [\n {\n group: 'personal',\n fields: [\n { types: ['sepa', 'nonSepa'], name: 'firstName', size: 'medium', isRequired: ['sepa', 'nonSepa'], fieldType: 'textbox' },\n { types: ['sepa', 'nonSepa'], name: 'lastName', size: 'medium', isRequired: ['sepa', 'nonSepa'], fieldType: 'textbox' },\n { types: ['nonSepa'], name: 'address', size: 'large', isRequired: ['nonSepa'], fieldType: 'textbox' }\n ]\n },\n {\n group: 'bank',\n fields: [\n { types: ['sepa', 'nonSepa'], name: 'iban', size: 'large', isRequired: ['sepa'], fieldType: 'textbox', validationUrl: true, validationQueryKeyWord: 'iban' },\n { types: ['sepa', 'nonSepa'], name: 'swiftCode', size: 'medium', isRequired: ['sepa', 'nonSepa'], fieldType: 'textbox', validationUrl: true, validationQueryKeyWord: 'swift' },\n { types: ['sepa', 'nonSepa'], name: 'country', size: 'medium', isRequired: ['sepa', 'nonSepa'], fieldType: 'dropdown', data: 'countries' },\n { types: ['nonSepa'], name: 'beneficiaryBankName', size: 'medium', isRequired: ['nonSepa'], fieldType: 'textbox' },\n { types: ['nonSepa'], name: 'beneficiaryBankCountry', size: 'medium', isRequired: ['nonSepa'], fieldType: 'dropdown', data: 'countries' },\n { types: ['nonSepa'], name: 'beneficiaryBankAddress', size: 'large', isRequired: ['nonSepa'], fieldType: 'textbox' },\n { types: ['nonSepa'], name: 'routingAndAccountNumber', size: 'large', isRequired: [], fieldType: 'textbox' }\n ]\n }\n]\n\nconst sepaOption = 'sepa'\nconst nonSepaOption = 'nonSepa'\n\nexport const attr = {\n refundRequestUrl: `data-${widgetApi}__refund-request-url`,\n showAllCountries: `data-${widgetApi}__show-all-countries`,\n modalId: `data-${widgetApi}__modal-id`,\n track: 'data-track',\n extraParam: 'wRefund__extraParam'\n}\n\nexport const widgetQueries = {\n form: `[data-${widgetApi}__form]`,\n optionsConfirm: `[data-${widgetApi}__options-confirm]`,\n optionsDecline: `[data-${widgetApi}__options-decline]`,\n optionsBack: `[data-${widgetApi}__options-back]`,\n optionsDone: `[data-${widgetApi}__options-done]`,\n conditions: `[data-${widgetApi}__conditions]`,\n closeModal: `[data-${widgetApi}__close-modal]`,\n modal: `[data-${widgetApi}__modal]`,\n choiceListApi: 'c-choice-list',\n modalApi: 'c-modal-v2',\n buttonApi: 'c-btn',\n modalContainer: `[data-${widgetApi}__modal-container]`,\n typeChoiceList: `[data-${widgetApi}__type-choice-list]`,\n textbox: `[data-${widgetApi}__textbox`,\n dropdown: `[data-${widgetApi}__dropdown`,\n textboxIcon: '.c-textbox__icon'\n}\n\nexport const classList = {\n icon: 'm-icon--checkmark',\n loader: ['c-loader', 'c-loader--tiny'],\n hidden: 'is-hidden',\n disabled: 'is-disabled'\n}\n\nexport default class Refund {\n constructor (element, options = {}) {\n this.element = element\n this.options = options\n this.currentType = sepaOption\n this.nextRender = null\n this.element[widgetApi] = this\n this.apis = {}\n this.data = {}\n this.events = new EventEmitter()\n this.formData = {}\n this.sendFormFlag = false\n this.validateServerSideFieldsFlag = false\n\n this.texts = this.getTexts((options.data && options.data.id) ? options.data.id : undefined)\n if (options.data) {\n this._createHtml()\n }\n\n registeredEvents.registerWidgetEvents(widgetApi, this.events, {\n ...this.element.hasAttribute(attr.track) && { track: this.element.attributes[attr.track].value }\n })\n this.extraParams = getDataPrefixed(this.element, attr.extraParam)\n this._getHtmlElements()\n this._getData()\n this._attachEvents()\n }\n\n _getData () {\n this.data.countries = []\n const countries = this.texts.countries && JSON.parse(this.texts.countries)\n const hasCountries = countries && countries.length > 0\n if (hasCountries) {\n this.data.countries = countries\n }\n const allCountries = (this.showAllCountries || !hasCountries) && this.texts.allCountries && JSON.parse(this.texts.allCountries)\n if (allCountries && allCountries.length > 0) {\n if (hasCountries) {\n this.data.countries = this.data.countries.concat([{ id: '-', name: '----------', disabled: true }])\n }\n this.data.countries = this.data.countries.concat(allCountries)\n }\n }\n\n _createHtml () {\n const html = elementFromString(RefundTemplate(this.options.data))\n moveChildrenFrom(html, this.element, { flush: true, attributes: true })\n Component.initDocumentComponentsFromAPI(this.element)\n }\n\n _attachEvents () {\n if (this.modalElement) {\n this.modalElement[widgetQueries.modalApi].events.on('closed', () => {\n this._closeModal()\n })\n this.modalElement[widgetQueries.modalApi].events.on('open', () => {\n this.events.emit(refundEvents.REFUND_REQUEST_CLICKED, this.extraParams)\n this._renderForm()\n })\n }\n }\n\n _getHtmlElements () {\n this.modalElement = this.element.querySelector(widgetQueries.modal)\n this.modalContainer = this.element.querySelector(widgetQueries.modalContainer)\n this.refundRequestUrl = this.element.getAttribute(attr.refundRequestUrl)\n this.showAllCountries = this.element.getAttribute(attr.showAllCountries) != null\n this.modalId = this.element.getAttribute(attr.modalId)\n const modal = this.modalId && this.element.querySelector(`[id='${this.modalId}']`)\n this.modalApi = modal && modal[widgetQueries.modalApi]\n }\n\n _renderForm () {\n const partialHtml = RefundFormBankInfoTemplate({\n id: this.element.id,\n sepaOption,\n nonSepaOption,\n formData: this.formData,\n fieldsets,\n type: this.currentType,\n texts: this.texts,\n data: this.data,\n track: this.element.hasAttribute(attr.track) ? this.element.attributes[attr.track].value : null\n })\n const html = RefundConfirmationTemplate({\n title: this.texts.refundTitle || '',\n confirm: this.texts.continueButton || '',\n decline: this.texts.declineButton || '',\n html: partialHtml\n })\n this.nextRender = this._renderConditions\n this.previousRender = null\n this._renderHTML(html)\n this._attachFormEvents()\n this._enableFormInputsErrors()\n this._attachInputEventsToValidateServerSide()\n }\n\n _renderConditions () {\n const partialHtml = RefundFormRemarksAndConditionsTemplate({\n id: this.element.id,\n formData: this.formData,\n texts: this.texts,\n url: this.refundRequestUrl,\n track: this.element.hasAttribute(attr.track) ? this.element.attributes[attr.track].value : null\n })\n const html = RefundConfirmationTemplate({\n texts: this.texts,\n back: this.texts.backButton || '',\n confirm: this.texts.continueButton || '',\n decline: this.texts.declineButton || '',\n html: partialHtml\n })\n this.nextRender = null\n this.previousRender = this._renderForm\n this._renderHTML(html)\n this._attachFormEvents()\n }\n\n _renderResponse (isSuccess, dataPosted) {\n const html = RefundResponseTemplate({\n isSuccess,\n title: isSuccess ? (this.texts.successfulTitle || '') : (this.texts.failureTitle || ''),\n text: isSuccess ? (this.texts.successfulText || '') : (this.texts.failureText || ''),\n confirm: this.texts.confirmButton || ''\n })\n\n if (isSuccess) {\n this.events.emit(refundEvents.REFUND_REQUESTED, dataPosted)\n }\n this.previousRender = null\n this._renderHTML(html)\n this._attachFormEvents()\n }\n\n _attachInputEventsToValidateServerSide () {\n const form = this.modalContainer.querySelector(widgetQueries.form)\n\n fieldsets.forEach(fieldset => {\n fieldset.fields.filter(f => f.types.includes(this.currentType) && f.validationUrl).forEach(f => {\n const icons = form.querySelectorAll(widgetQueries.textboxIcon)\n icons.forEach(icon => icon.classList.add(classList.hidden))\n\n if (f.validationQueryKeyWord && this.apis.form) {\n const el = this.apis.form.element.querySelector(`[data-w-refund__field-name=\"${f.name}\"]`)\n const textBoxWrapperIcon = el && el.querySelector(widgetQueries.textboxIcon)\n\n this.apis[f.name].events.on('blur', () => {\n if (this.apis[f.name].validate().isValid) {\n this._validateInputServerSide(f)\n } else {\n textBoxWrapperIcon && textBoxWrapperIcon.classList.add(classList.hidden)\n }\n })\n }\n })\n })\n }\n\n async _validateInputServerSide (field) {\n const el = this.apis.form.element.querySelector(`[data-w-refund__field-name=\"${field.name}\"]`)\n const partialUrl = el ? el.getAttribute('data-w-refund__validate-url') : null\n if (partialUrl) {\n let isValidAsync = false\n this._setInputFieldState(field, true, isValidAsync)\n\n const toBeValidated = []\n const data = this._prepareDataToBeValidated(field)\n if (Object.keys(data).length !== 0 && data.constructor === Object) {\n toBeValidated.push(data)\n }\n\n this.validateServerSideFieldsFlag = true\n if (this.validateServerSideFieldsFlag) {\n isValidAsync = await this._validateFieldsAsync(toBeValidated)\n this.validateServerSideFieldsFlag = false\n }\n this._setInputFieldState(field, false, isValidAsync)\n\n return isValidAsync\n }\n }\n\n _setInputFieldState (field, isValidating, isValid) {\n if (field.validationUrl && field.validationQueryKeyWord && this.apis.form) {\n const el = this.apis[field.name].element\n const partialUrl = el ? el.getAttribute('data-w-refund__validate-url') : null\n const textBoxWrapperIcon = el ? el.querySelector(widgetQueries.textboxIcon) : null\n if (isValidating) {\n partialUrl && this._setInputDisabledState(el, isValidating)\n partialUrl && this._setButtonsState(isValidating)\n if (partialUrl && textBoxWrapperIcon) {\n textBoxWrapperIcon.classList.remove(classList.icon)\n textBoxWrapperIcon.classList.add(...classList.loader)\n textBoxWrapperIcon.classList.remove(classList.hidden)\n }\n } else {\n partialUrl && this._setInputDisabledState(el)\n partialUrl && this._setButtonsState(isValidating)\n if (textBoxWrapperIcon) {\n textBoxWrapperIcon.classList.remove(...classList.loader)\n if (isValid) {\n textBoxWrapperIcon.classList.add(classList.icon)\n }\n }\n }\n }\n }\n\n _setInputDisabledState (el, isDisabled = false) {\n if (!el) { return }\n const input = el.querySelector('input')\n if (input) { input.disabled = isDisabled }\n isDisabled ? el.classList.add(classList.disabled) : el.classList.remove(classList.disabled)\n }\n\n _enableFormInputsErrors () {\n fieldsets.forEach(fieldset => {\n fieldset.fields.filter(f => f.types.includes(this.currentType)).forEach(f => {\n this.apis[f.name].enableErrors()\n })\n })\n }\n\n _attachFormEvents () {\n const confirm = this.modalContainer.querySelector(widgetQueries.optionsConfirm)\n const decline = this.modalContainer.querySelector(widgetQueries.optionsDecline)\n const back = this.modalContainer.querySelector(widgetQueries.optionsBack)\n const done = this.modalContainer.querySelector(widgetQueries.optionsDone)\n\n this.apis = {\n ...confirm && { confirmButton: confirm[widgetQueries.buttonApi] },\n ...decline && { declineButton: decline[widgetQueries.buttonApi] },\n ...back && { backButton: back[widgetQueries.buttonApi] },\n ...done && { doneButton: done[widgetQueries.buttonApi] }\n }\n\n confirm && confirm.addEventListener('click', this._clickedConfirm.bind(this))\n decline && decline.addEventListener('click', this._clickedClose.bind(this))\n back && back.addEventListener('click', this._clickedBack.bind(this))\n done && done.addEventListener('click', this._clickedClose.bind(this))\n\n const form = this.modalContainer.querySelector(widgetQueries.form)\n if (form) {\n this.apis = { ...this.apis, ...{ form: form['c-form'] }, ...this._getFormControls(form) }\n }\n\n this.apis && this.apis.type && this.apis.type.events.on('changedOptions', (data) => { this._changeType(data) })\n\n const closeModal = this.element.querySelector(widgetQueries.closeModal)\n closeModal && closeModal.addEventListener('click', this._clickedClose.bind(this))\n }\n\n _clickedConfirm (ev) {\n ev.preventDefault()\n this._sendForm()\n }\n\n _clickedBack (ev) {\n ev.preventDefault()\n if (this.previousRender) {\n this.previousRender()\n }\n }\n\n _clickedClose (ev) {\n ev.preventDefault()\n this._closeModal()\n }\n\n _closeModal () {\n this.modalApi.close()\n this.sendFormFlag = false\n this.validateServerSideFieldsFlag = false\n this.formData = {}\n this.currentType = sepaOption\n }\n\n _changeType () {\n this._getFormData()\n if (this.formData.type === sepaOption) {\n this.currentType = sepaOption\n } else if (this.formData.type === nonSepaOption) {\n this.currentType = nonSepaOption\n }\n this._renderForm()\n }\n\n _getFormControls (formEl) {\n const elements = {}\n const apis = {}\n\n elements.type = formEl.querySelector(widgetQueries.typeChoiceList)\n if (elements.type) { apis.type = elements.type['c-dropdown'] }\n fieldsets.forEach(fieldset => {\n fieldset.fields.filter(f => f.types.includes(this.currentType)).forEach(f => {\n elements[f.name] = formEl.querySelector(`${widgetQueries.textbox}=\"${f.name}\"]`)\n if (elements[f.name]) { apis[f.name] = elements[f.name]['c-textbox'] }\n elements[f.name] = formEl.querySelector(`${widgetQueries.dropdown}=\"${f.name}\"]`)\n if (elements[f.name]) { apis[f.name] = elements[f.name]['c-dropdown'] }\n })\n })\n\n return apis\n }\n\n _getFormData () {\n this.formData.type = this.apis.type ? this.apis.type.getProp('value') : this.formData.type\n fieldsets.forEach(fieldset => {\n fieldset.fields.filter(f => f.types.includes(this.currentType)).forEach(f => {\n this.formData[f.name] = this.apis[f.name] ? this.apis[f.name].getProp('value') : this.formData[f.name]\n })\n })\n }\n\n _getDataToBeValidatedServerSide () {\n const toBeValidated = []\n fieldsets.forEach(fieldset => {\n fieldset.fields.filter(f => f.types.includes(this.currentType)).forEach(field => {\n if (field.validationUrl && field.validationQueryKeyWord && this.apis.form) {\n const data = this._prepareDataToBeValidated(field)\n if (Object.keys(data).length !== 0 && data.constructor === Object) {\n toBeValidated.push(data)\n }\n }\n })\n })\n return toBeValidated\n }\n\n _prepareDataToBeValidated (field) {\n let dataToBeValidated = {}\n if (field.validationUrl && field.validationQueryKeyWord && this.apis.form) {\n const el = this.apis.form.element.querySelector(`[data-w-refund__field-name=\"${field.name}\"]`)\n if (el) {\n const partialUrl = el.getAttribute('data-w-refund__validate-url')\n if (partialUrl) {\n let val = this.apis[field.name].getProp('value')\n val = val.replace(/[/.]/g, '')\n if (val) {\n dataToBeValidated = {\n name: field.name,\n url: `${partialUrl}?${field.validationQueryKeyWord}=${val}&fieldName=${field.name}`,\n method: 'GET'\n }\n }\n }\n }\n }\n return dataToBeValidated\n }\n\n async _validateFieldsAsync (toBeValidated) {\n const validationPromises = toBeValidated.map(item => apiCaller(item.url, { method: item.method, timeout: 10000 }))\n return Promise.all(validationPromises).then(results => {\n let noErrors = true\n results.forEach((result, index) => {\n if (!result.success || (result.success && result.response && !result.response.isValid)) {\n noErrors = false\n const fieldName = toBeValidated[index].name\n this.apis[fieldName].setValidityResult(noErrors, [this.texts[`${fieldName}FieldMessagePattern`]])\n }\n })\n return noErrors\n })\n }\n\n async _sendForm () {\n this._setButtonsState(true, true)\n\n if (!this.apis.form || this.apis.form.validate().some(v => !v.isValid)) {\n this._setButtonsState(false)\n return\n }\n\n const toBeValidated = this._getDataToBeValidatedServerSide()\n const isValidAsync = await this._validateFieldsAsync(toBeValidated)\n if (!isValidAsync) {\n this._setButtonsState(false)\n return\n }\n\n if (this.nextRender) {\n this.formData = {}\n }\n this._getFormData()\n\n const data = {\n ...this.formData,\n ...this.extraParams,\n isSepa: this.formData.type === sepaOption,\n contextItemId: this.element.id\n }\n\n if (this.nextRender) {\n this.nextRender()\n return\n }\n\n this.sendFormFlag = true\n const result = await apiCaller(`${this.refundRequestUrl}`, { method: 'POST', body: data })\n if (this.sendFormFlag) {\n this.sendFormFlag = false\n this._renderResponse(result.success && result.response.isValid, data)\n }\n }\n\n _renderHTML (html) {\n const newContent = elementFromString(html)\n Component.initDocumentComponentsFromAPI(newContent)\n flush(this.modalContainer)\n this.modalContainer.appendChild(newContent)\n }\n\n _setButtonsState (isDisabled, isLoading = false) {\n this.apis.confirmButton && this.apis.confirmButton.setProps({ disabled: isDisabled, loading: isLoading })\n this.apis.declineButton && this.apis.declineButton.setProp('disabled', isDisabled)\n this.apis.backButton && this.apis.backButton.setProp('disabled', isDisabled)\n }\n\n getTexts (id = this.element.id) {\n const customLocaleElement = document.querySelector(`[data-uid=\"${id}\"]`)\n let customLocaleData = null\n try {\n customLocaleData = JSON.parse(customLocaleElement.textContent)\n } catch (err) {}\n\n return customLocaleData || {}\n }\n}\n\nregisterWidget(Refund, widgetApi)\n","import * as loadQueueHelper from '../../../js/document/load-queue'\nimport ReviewsList from './main'\n\nloadQueueHelper.add(function () {\n ReviewsList.createInstancesOnDocument()\n})\n","export const da = {\n stayedIn: 'Opholdt sig i',\n anonymous: 'anonym',\n noComment: 'Brugeren har ikke efterladt nogen kommentarer',\n translateButton: 'Translate this text',\n viewOriginalButton: 'View original text',\n\n // Party composition\n couple: 'Par',\n family: 'Familie',\n friends: 'Venner',\n other: 'Andet',\n\n // Extended Party Compositions\n alone: 'Alene',\n withfriends: 'Med venner',\n withpartner: 'Med partner',\n withfamily: 'Familie',\n withsingleparent: 'Med enlig forælder',\n group: 'Gruppe',\n\n // Review Categories\n holiday: 'Ferie',\n pricequality: 'Pris Kvalitet',\n location: 'Beliggenhed',\n hotel: 'Hotel',\n cleanliness: 'Renhed',\n personnel: 'Personale',\n children: 'Børn',\n meal: 'Måltid',\n pool: 'Pool',\n facilities: 'Faciliteter'\n}\n\nexport const de = {\n stayedIn: 'Waren im jahr',\n anonymous: 'anonym',\n noComment: 'Der Benutzer hat keine Kommentare hinterlassen',\n translateButton: 'Translate this text',\n viewOriginalButton: 'View original text',\n\n // Party composition\n couple: 'Paar',\n family: 'Familie',\n friends: 'Freunde',\n other: 'Sonstiges',\n\n // Extended Party Compositions\n alone: 'Allein',\n withfriends: 'Mit Freunden',\n withpartner: 'Mit Partner',\n withfamily: 'Familie',\n withsingleparent: 'Mit Alleinerziehenden',\n group: 'Gruppe',\n\n // Review Categories\n holiday: 'Urlaub',\n pricequality: 'Preis Qualität',\n location: 'Preis Qualität',\n hotel: 'Hotel',\n cleanliness: 'Sauberkeit',\n personnel: 'Personal',\n children: 'Kinder',\n meal: 'Mahlzeit',\n pool: 'Pool',\n facilities: 'Einrichtungen'\n}\n\nexport const en = {\n stayedIn: 'Stayed in',\n anonymous: 'anonymous',\n noComment: 'The user has left no comments',\n translateButton: 'Translate this text',\n viewOriginalButton: 'View original text',\n\n // Party composition\n couple: 'Couple',\n family: 'Family',\n friends: 'Friends',\n other: 'Other',\n\n // Extended Party Compositions\n alone: 'Alone',\n withfriends: 'With Friends',\n withpartner: 'With Partner',\n withfamily: 'Family',\n withsingleparent: 'With Single Parent',\n group: 'Group',\n\n // Review Categories\n holiday: 'Holiday',\n pricequality: 'Price Quality',\n location: 'Location',\n hotel: 'Hotel',\n cleanliness: 'Cleanliness',\n personnel: 'Personnel',\n children: 'Children',\n meal: 'Meal',\n pool: 'Pool',\n facilities: 'Facilities'\n}\nexport const nb = {\n stayedIn: 'Ble hjemme',\n anonymous: 'anonym',\n noComment: 'Brukeren har ikke lagt igjen kommentarer',\n translateButton: 'Translate this text',\n viewOriginalButton: 'View original text',\n\n // Party composition\n couple: 'Par',\n family: 'Familie',\n friends: 'venner',\n other: 'Annen',\n\n // Extended Party Compositions\n alone: 'Alene',\n withfriends: 'Med Venner',\n withpartner: 'Med Partner',\n withfamily: 'Med Familie',\n withsingleparent: 'Med Enslig Forsørger',\n group: 'Gruppe',\n\n // Review Categories\n holiday: 'Ferie',\n pricequality: 'Priskvalitet',\n location: 'plassering',\n hotel: 'Hotell',\n cleanliness: 'Renslighet',\n personnel: 'Staff',\n children: 'Barn',\n meal: 'Måltid',\n pool: 'Basseng',\n facilities: 'fasiliteter'\n}\n\nexport const fr = {\n stayedIn: \"J'ai séjourné en\",\n anonymous: 'anonyme',\n noComment: \"L'utilisateur n'a laissé aucun commentaire\",\n translateButton: 'Translate this text',\n viewOriginalButton: 'View original text',\n\n // Party composition\n couple: 'Couple',\n family: 'Familie',\n friends: 'Amis',\n other: 'Autre',\n\n // Extended Party Compositions\n alone: 'Alone',\n withfriends: 'Avec Des Amis',\n withpartner: 'Avec Partenairer',\n withfamily: 'Famille',\n withsingleparent: 'Avec Un Parent Seul',\n group: 'Grouper',\n\n // Review Categories\n holiday: 'Jour férié',\n pricequality: 'Prix Qualité',\n location: 'Lieu',\n hotel: 'Hôtel',\n cleanliness: 'Propreté',\n personnel: 'Personnel',\n children: 'Enfants',\n meal: 'Repas',\n pool: 'Piscine',\n facilities: 'Installations'\n}\n\nexport const nl = {\n stayedIn: 'Verbleven in',\n anonymous: 'anoniem',\n noComment: 'De gebruiker heeft geen opmerkingen achtergelaten',\n translateButton: 'Vertaal deze tekst',\n viewOriginalButton: 'View original text',\n\n // Party composition\n couple: 'Paar',\n family: 'Familie',\n friends: 'Vrienden',\n other: 'Andere',\n\n // Extended Party Compositions\n alone: 'Alleen',\n withfriends: 'Vrienden',\n withpartner: 'Met partner',\n withfamily: 'Familie',\n withsingleparent: 'Alleenstaande Ouder',\n group: 'groep',\n\n // Review Categories\n holiday: 'Vakantie',\n pricequality: 'Prijs kwaliteit',\n location: 'Plaats',\n hotel: 'Hotel',\n cleanliness: 'Zuiverheid',\n personnel: 'Personeel',\n children: 'Kinderen',\n meal: 'Maaltijd',\n pool: 'Zwembad',\n facilities: 'Faciliteiten'\n}\n\nexport const sv = {\n stayedIn: 'Stannade i',\n anonymous: 'anonym',\n noComment: 'Användaren har inte lämnat några kommentarer',\n translateButton: 'Translate this text',\n viewOriginalButton: 'View original text',\n\n // Party composition\n couple: 'Par',\n family: 'Familj',\n friends: 'Vänner',\n other: 'Andra',\n\n // Extended Party Compositions\n alone: 'Ensam',\n withfriends: 'Med vänner',\n withpartner: 'Med Partner',\n withfamily: 'Familj',\n withsingleparent: 'Med Ensamstående förälder',\n group: 'Grupp',\n\n // Review Categories\n holiday: 'Semester',\n pricequality: 'Priskvalitet',\n location: 'Plats',\n hotel: 'Hotell',\n cleanliness: 'Renlighet',\n personnel: 'Personal',\n children: 'Barn',\n meal: 'Måltid',\n pool: 'Slå samman',\n facilities: 'Faciliteter'\n}\n","/**\n * The ReviewsListItemTemplate contains all data needed to hydrate a Reviews List Item\n *\n * @typedef {Object} ReviewsListItemTemplate\n *\n * @property {String} id - ReviewListItem id\n * @property {String} departureDate - ReviewListItem departure date entered when did the review\n * @property {String} userFullName - ReviewListItem user complete name entered when did the review\n * @property {String} partyCompositionId - ReviewListItem party composition id selected by the user when did the review\n * @property {String} comment - ReviewListItem comment entered by the user\n *\n */\n\nimport { getTokenClass } from '../../../js/helpers/tokens'\nimport { CollapseTriggerTemplate } from '../../components/collapse/c-collapse__trigger.template'\nimport { CollapseTemplate } from '../../components/collapse/c-collapse.template'\nimport { NumberScoreTemplate } from '../../components/number-score/c-number-score.template'\nimport { BtnTemplate } from '../../components/btn/c-btn.template'\nimport { LoaderTemplate } from '../../components/loader/c-loader.template'\nimport { register } from '../../../js/document/namespace'\nimport { language } from '../../../js/user/locale-settings'\n\nconst globalLocales = register(`window.sundio.i18n.${language}.global`)\nconst componentLocales = register(`window.sundio.i18n.${language}.reviewsList`)\nconst languageSite = language\n\n// Import tokens\nconst tokensShared = require('./data/w-reviews-list__tokens.json')['w-reviews-list']\n\nconst tokensBrand = (() => {\n try {\n return require(`../../../../brands/${WEBPACK_BRAND}/modules/widgets/reviews-list/data/w-reviews-list__tokens.json`)['w-reviews-list'] // eslint-disable-line\n } catch (error) {\n return {}\n }\n})()\nconst tokens = { ...tokensShared, ...tokensBrand }\n\nexport const defaultReviewsListItemData = {\n id: '',\n departureDate: '',\n userFullName: '',\n partyCompositionId: '',\n comment: '',\n collapseHeight: 140,\n countryCode: '',\n languageCode: ''\n}\n\nexport const ReviewsListItemTemplate = (data, reviewsListId, showScores, showPartyComposition) => {\n data = { ...defaultReviewsListItemData, ...data }\n\n const customLocaleElement = document.querySelector(`[data-type=\"i18n\"][data-uid=\"${reviewsListId}\"]`)\n let customLocaleData = null\n try {\n customLocaleData = JSON.parse(customLocaleElement.textContent)\n } catch (err) {}\n\n const staticTexts = { ...globalLocales, ...componentLocales, ...(customLocaleData || {}) }\n\n return `\n
\n
\n ${data.rating\n ? NumberScoreTemplate({\n variant: 'bubbled',\n scoreGrade: (data.rating.toFixed(1).substr(-1) !== '0' ? data.rating.toFixed(1) : data.rating.toFixed(0)),\n scoreTitle: (data.score.scoreLabel ? data.score.scoreLabel : ''),\n scoreLabel: '',\n scoreBasis: '',\n arrowDirection: '',\n smallBasis: true,\n extraClasses: 'w-reviews-list__score',\n labelPosition: 'right'\n })\n : ''}\n
${data.userFullName ? data.userFullName : staticTexts.anonymous}
\n
${staticTexts.stayedIn} ${data.departureDate}
\n
\n ${data.languageCode ? `` : ''}\n ${showPartyComposition && data.partyCompositionId ? `
${staticTexts[data.partyCompositionId.toLowerCase()]}
` : ''}\n
\n
\n
\n
\n ${CollapseTemplate({\n id: `${data.id}__collapse`,\n extraClasses: 'w-reviews-list__item-text after-fading-light',\n attributes: { 'data-c-collapse__block-text': true, 'data-c-collapse__collapse-height': data.collapseHeight, 'data-w-reviews-list__item-text': '' },\n html: data.comment ? `
“${data.comment}”
` : `${staticTexts.noComment}`\n })}\n ${CollapseTriggerTemplate({\n id: `${data.id}__collapse`,\n text: staticTexts.readMore,\n action: 'open',\n extraClasses: 'w-reviews-list__item-trigger'\n })}\n ${CollapseTriggerTemplate({\n id: `${data.id}__collapse`,\n text: staticTexts.readLess,\n action: 'close',\n extraClasses: 'w-reviews-list__item-trigger'\n })}\n ${(languageSite !== data.languageCode.toLowerCase()) && data.comment && data.languageCode\n ? `
\n
\n ${BtnTemplate({\n type: 'button',\n variant: 'flat',\n extraClasses: 'w-reviews-list__comment-translated-button w-reviews-list__comment-translated-button-translate',\n attributes: { 'data-w-reviews-list__comment-translated-button-translate': '' },\n text: staticTexts.translateButton\n })}\n ${LoaderTemplate({ size: 'tiny', extraClasses: 'w-reviews-list__comment-translate-loader is-hidden' })}\n ${BtnTemplate({\n type: 'button',\n variant: 'flat',\n extraClasses: 'w-reviews-list__comment-translated-button is-hidden w-reviews-list__comment-translated-button-view-original',\n attributes: { 'data-w-reviews-list__comment-translated-button-view-original': '' },\n text: staticTexts.viewOriginalButton\n })}\n
`\n : ''\n }\n
\n
\n
\n ${showScores && data.categories\n ? `
\n ${data.categories.map((dataBar) => {\n return NumberScoreTemplate({\n variant: 'bubbled',\n scoreGrade: dataBar.rating.toString(),\n scoreTitle: dataBar.name ? staticTexts[dataBar.name.toLowerCase()] : '',\n scoreLabel: '',\n scoreBasis: '',\n arrowDirection: '',\n smallBasis: true,\n extraClasses: 'w-reviews-list__item-score',\n labelPosition: 'right'\n })\n }).join('')}\n
\n `\n : ''}\n
\n
\n `\n}\n","import { fetchJsonData } from '../../../js/helpers/json-fetch'\nimport { getUrlFromString } from '../../../js/document/url'\nimport { ReviewsListItemTemplate } from './w-reviews-list-item.template'\nimport Component from '../../../js/core/component/component'\nimport { reviewsListEvents } from '../../../js/document/event-types'\nimport { language } from '../../../js/user/locale-settings'\nimport { register } from '../../../js/document/namespace'\nimport registeredEvents from '../../../js/helpers/registered-events'\nimport { DropdownTemplate } from '../../components/dropdown/c-dropdown.template'\nimport { apiCaller } from '../../../js/helpers/api-caller'\nimport webStorage from '../../../js/document/web-storage'\nimport { reviewsListType as events } from '../data-layer/types'\n\nrequire('../../components/collapse/main')\nrequire('../../components/pagination/main')\nrequire('../../components/progress-bar/main')\n\nconst EventEmitter = require('eventemitter3')\nconst widgetApi = 'w-reviews-list'\nconst dropdownMultipleWidgetApi = 'c-dropdown-multiple'\nconst dropdowntApi = 'c-dropdown'\n\nconst scrollConfig = {\n block: 'start',\n behavior: 'smooth'\n}\n\nconst translationState = {\n translated: 'translated',\n original: 'original'\n}\n\nexport const attr = {\n extraParams: 'input[type=\"hidden\"]',\n track: 'data-track',\n isInsideModal: 'is-inside-modal'\n}\n\nconst widgetQueries = {\n itemElement: `data-${widgetApi}__item`,\n itemsElement: `data-${widgetApi}__items`,\n itemTextElement: `data-${widgetApi}__item-text`,\n noItemsArea: `data-${widgetApi}__no-items-area`,\n paginationElement: `data-${widgetApi}__pagination`,\n reviewCountryFlag: `data-${widgetApi}__country-flag`,\n reviewOverallRating: `data-${widgetApi}__main-rating`,\n reviewsOverallTitle: `data-${widgetApi}__title`,\n reviewPartyComp: `data-${widgetApi}__item-subtitle`,\n sortingElement: `data-${widgetApi}__sorting`,\n translateButton: `data-${widgetApi}__comment-translated-button-translate`,\n translatedTextArea: `data-${widgetApi}__comment-translate-text`,\n travellerFilterElementParent: `data-${widgetApi}__filters-area--typetraveler`,\n typeTravellerFilter: `data-${widgetApi}__typetraveller-dropdown`,\n viewOriginalTextButton: `data-${widgetApi}__comment-translated-button-view-original`,\n translateUrl: `data-${widgetApi}__translate-url`,\n url: `data-${widgetApi}__url`,\n method: `data-${widgetApi}__method`,\n showPartyComposition: `data-${widgetApi}__show-party-composition`,\n showScores: `data-${widgetApi}__show-scores`\n}\n\nconst classNames = {\n empty: 'empty',\n hasData: 'has-data',\n in: 'in',\n isLoading: 'is-loading',\n isHidden: 'is-hidden',\n isTransalted: 'is-translated',\n languageSwitch: `.${widgetApi}__filters-area--language-switch`,\n loaderIcon: `.${widgetApi}__comment-translate-loader`,\n noReviews: 'no-reviews',\n notLoaded: 'not-loaded',\n reviewSingleScore: `.${widgetApi}__item-score`,\n reviewsLoaderIcon: `.${widgetApi}__loader`,\n scoreGrade: '.c-number-score__grade',\n scoreTitle: '.c-number-score__title'\n}\n\nexport default class ReviewsList {\n /**\n * Creates a new ReviewsList\n *\n * @constructor\n *\n * @param {HTMLElement} element - The HTML widget element\n */\n constructor (element) {\n this.element = element\n this.elementId = this.element.id\n this.itemsElement = this.element.querySelector(`[${widgetQueries.itemsElement}]`)\n this.sortingElement = this.element.querySelector(`[${widgetQueries.sortingElement}]`)[dropdowntApi]\n this.travellerFilterElement = this.element.querySelector(`[${widgetQueries.typeTravellerFilter}]`)\n this.travellerFilterElementParent = this.element.querySelector(`[${widgetQueries.travellerFilterElementParent}]`)\n this.languageSwitchParent = this.element.querySelector(classNames.languageSwitch)\n if (this.languageSwitchParent) { this.languageSwitch = this.languageSwitchParent.querySelector('input') }\n this.url = this.element.getAttribute(widgetQueries.url)\n this.extraParams = this.getExtraParameters()\n this.extraParamsNoLimit = this.getExtraParametersNoLimit()\n this.showScores = this.element.hasAttribute(widgetQueries.showScores)\n this.componentInsideModal = this.element.hasAttribute(attr.isInsideModal)\n this.showPartyComposition = this.element.hasAttribute(widgetQueries.showPartyComposition)\n this.noItemsArea = this.element.querySelector(`[${widgetQueries.noItemsArea}]`)\n this.reviewsLoaderIcon = this.element.querySelector(classNames.reviewsLoaderIcon)\n this.reviewsOverallTitle = this.element.querySelector(`[${widgetQueries.reviewsOverallTitle}]`)\n this.overallTitleText = this.reviewsOverallTitle.innerHTML\n this.options = {\n method: this.element.getAttribute(widgetQueries.method),\n url: this.element.getAttribute(widgetQueries.translateUrl)\n }\n\n this.events = new EventEmitter()\n registeredEvents.registerWidgetEvents(widgetApi, this.events, {\n ...this.element.hasAttribute(attr.track) && { track: this.element.attributes[attr.track].value }\n })\n const paginationOffset = 'offset' in this.extraParams ? this.extraParams.offset : 0\n const paginationLimit = 'limit' in this.extraParams ? this.extraParams.limit : 10\n this.pagination = {\n element: this.element.querySelector(`[${widgetQueries.paginationElement}]`),\n limit: paginationLimit,\n offset: paginationOffset,\n currentPage: 1,\n totalPages: null\n }\n\n this.childComponents = {\n pagination: this.pagination.element ? this.pagination.element['c-pagination'] : null\n }\n\n this.bindEvents()\n\n if (!this.componentInsideModal) {\n this.fetch()\n }\n\n this.element[widgetApi] = {\n events: this.events,\n fetch: this.fetch.bind(this)\n }\n\n this.globalLocales = register(`window.sundio.i18n.${language}.global`)\n this.componentLocales = register(`window.sundio.i18n.${language}.reviewsList`)\n this.customLocaleElement = document.querySelector(`[data-type=\"i18n\"][data-uid=\"${this.elementId}\"]`)\n try {\n this.customLocaleData = JSON.parse(this.customLocaleElement.textContent)\n } catch (err) { }\n this.staticTexts = { ...this.globalLocales, ...this.componentLocales, ...(this.customLocaleData || {}) }\n\n this.sortingElement.events.on('change', e => {\n this.updateResults()\n })\n if (this.languageSwitch) {\n this.languageSwitch.addEventListener('change', e => {\n this.events.emit(reviewsListEvents.REVIEWS_LIST_LANGUAGE_SWITCH, { status: this.languageSwitch.checked })\n this.updateResults()\n })\n }\n }\n\n /**\n * get All Option is-selected inside filters dropdown\n */\n getOptionsSelected (dropdownElement) {\n return dropdownElement[dropdownMultipleWidgetApi].getSelectedValues()\n }\n\n /**\n * resolves the promise and sets travelFilter var\n */\n async resolveSetTravelFilterDropdownPromise (reviewsAmountOfTravelerTypes) {\n if (!this.travellerFilterElement) {\n return\n }\n this.travelFilter = await this.setTravelFilterDropdown(reviewsAmountOfTravelerTypes)\n }\n\n /**\n * set Party comp total amount for the travel filters dropdown and build the dropdown itself\n */\n async setTravelFilterDropdown (reviewsAmountOfTravelerTypes) {\n try {\n const partyCompGroup = []\n const selectedOptions = this.travelFilter ? this.getOptionsSelected(this.travelFilter) : []\n reviewsAmountOfTravelerTypes.forEach(group => {\n let partyCompositionText = ''\n const partyCompositionValue = group.travelerTypeId.toString()\n if (this.staticTexts[partyCompositionValue]) {\n partyCompositionText = this.staticTexts[partyCompositionValue]\n } else {\n partyCompositionText = this.staticTexts[group.travelerTypeName.toLowerCase()]\n }\n\n if (partyCompositionText) {\n partyCompGroup.push(\n {\n caption: partyCompositionText,\n count: group.amount,\n isSelected: selectedOptions.indexOf(partyCompositionValue) > -1,\n isAvailable: true,\n value: partyCompositionValue\n })\n }\n })\n\n const filterLabel = this.travellerFilterElement[dropdownMultipleWidgetApi].getLabel()\n const filterOkButtonText = this.travellerFilterElement[dropdownMultipleWidgetApi].getOkButtonLabelText()\n const filterCancelButtonText = this.travellerFilterElement[dropdownMultipleWidgetApi].getCancelButtonLabelText()\n const filterData = {\n id: this.elementId + '-party-comp-filter',\n isMultiple: true,\n variant: 'compact',\n label: filterLabel,\n icon: '1-person',\n extraClasses: this.travellerFilterElement.classList,\n okButtonText: filterOkButtonText,\n cancelButtonText: filterCancelButtonText,\n track: events.PARTY_COMPOSITION_FILTER,\n attributes: { [widgetQueries.typeTravellerFilter]: '' },\n options: partyCompGroup.map(filter => ({\n selected: filter.isSelected,\n disable: filter.isAvailable,\n text: filter.caption,\n value: filter.value,\n count: filter.count\n }))\n }\n\n this.travellerFilterElementParent.innerHTML = DropdownTemplate(filterData)\n this.travellerFilterElement = this.element.querySelector(`[${widgetQueries.typeTravellerFilter}]`)\n\n Component.initDocumentComponentsFromAPI(this.travellerFilterElement)\n\n this.dropdownFilterToFillButtonOk = this.travellerFilterElement[dropdownMultipleWidgetApi].getOkButton()\n this.dropdownFilterToFillButtonOk.addEventListener('click', () => {\n this.updateResults()\n })\n\n return this.travellerFilterElement\n } catch (e) {\n if (window.newrelic) {\n window.newrelic.noticeError('[ReviewsList] Error with Filters:' + e)\n }\n }\n }\n\n /**\n * Update results when sorting or Filtering\n */\n updateResults () {\n this.extraParams = this.getExtraParameters()\n this.pagination.offset = 0\n this.bindEvents()\n\n this.fetch()\n this.setTranslateListeners()\n }\n\n /**\n * Sets listeners for translate button\n */\n setTranslateListeners () {\n const updatedItemsElement = this.element.querySelectorAll(`[${widgetQueries.itemElement}]`)\n updatedItemsElement.forEach(item => {\n if (item.querySelector(`[${widgetQueries.translateButton}]`)) {\n item.querySelector(`[${widgetQueries.translateButton}]`).addEventListener('click', () => this.translateReview(item))\n item.querySelector(`[${widgetQueries.viewOriginalTextButton}]`).addEventListener('click', () => this.viewOriginalTextReview(item))\n }\n })\n }\n\n /**\n * view original review\n *\n * @param {Object} review - Review item that is going to turn back to show original text\n */\n viewOriginalTextReview (review) {\n const translatedTextContainer = review.querySelector(`[${widgetQueries.translatedTextArea}]`)\n const translateButton = review.querySelector(`[${widgetQueries.translateButton}]`)\n const viewOriginalTextButton = review.querySelector(`[${widgetQueries.viewOriginalTextButton}]`)\n\n review.classList.remove(classNames.isTransalted)\n translatedTextContainer.innerText = ''\n translatedTextContainer.classList.add(classNames.empty)\n translateButton.classList.remove(classNames.isHidden)\n translatedTextContainer.classList.add(classNames.isHidden)\n viewOriginalTextButton.classList.add(classNames.isHidden)\n\n this.translateDataLayer(review, translationState.original)\n }\n\n /**\n * Translate the review\n *\n * @param {Object} review - Review item that is going to be translated\n */\n async translateReview (review) {\n const reviewId = review.getAttribute('id')\n const loaderIcon = review.querySelector(classNames.loaderIcon)\n const translatedTextContainer = review.querySelector(`[${widgetQueries.translatedTextArea}]`)\n const translateButton = review.querySelector(`[${widgetQueries.translateButton}]`)\n const viewOriginalTextButton = review.querySelector(`[${widgetQueries.viewOriginalTextButton}]`)\n\n loaderIcon.classList.remove(classNames.isHidden)\n const originalText = review.querySelector(`[${widgetQueries.itemTextElement}]`).querySelector('.m-body').innerHTML\n\n const translationId = reviewId + '-' + language\n const storagedTranslation = webStorage.local.get(translationId)\n\n // first we check if the translate exist in the localstorage, if not, we proced with the translations\n try {\n let translatedText = ''\n if (storagedTranslation) {\n translatedText = storagedTranslation\n } else {\n const data = { text: originalText }\n const result = await apiCaller(this.options.url, { body: data, method: this.options.method })\n\n if (result.success) {\n translatedText = result.response.text\n webStorage.local.set(translationId, translatedText)\n }\n }\n\n if (translatedText !== '') {\n review.classList.add(classNames.isTransalted)\n translatedTextContainer.innerText = translatedText\n translatedTextContainer.classList.remove(classNames.empty)\n translateButton.classList.add(classNames.isHidden)\n loaderIcon.classList.add(classNames.isHidden)\n viewOriginalTextButton.classList.remove(classNames.isHidden)\n } else {\n loaderIcon.classList.add(classNames.isHidden)\n }\n } catch (e) {\n if (window.newrelic) {\n window.newrelic.noticeError('[ReviewsList] Error translating:' + e)\n }\n }\n\n this.translateDataLayer(review, translationState.translated)\n }\n\n /**\n * Pushes the review data to datalayer\n *\n * @param {Object} review - Review item that is going to be translated or get back to original text\n * @param {String} status - status of the translation text\n */\n translateDataLayer (review, status) {\n const reviewId = review.getAttribute('id')\n const reviewOverallRatingElement = review.querySelector(`[${widgetQueries.reviewOverallRating}]`)\n const overallRating = (reviewOverallRatingElement && reviewOverallRatingElement.querySelector(classNames.scoreGrade)) ? parseInt(reviewOverallRatingElement.querySelector(classNames.scoreGrade).innerHTML) : null\n const country = review.querySelector(`[${widgetQueries.reviewCountryFlag}]`) ? review.querySelector(`[${widgetQueries.reviewCountryFlag}]`).getAttribute('data-m-country-flag__country-id') : null\n const partyComp = review.querySelector(`[${widgetQueries.reviewPartyComp}]`) ? review.querySelector(`[${widgetQueries.reviewPartyComp}]`).innerHTML : null\n const categoryScores = []\n const categoryScoresItem = review.querySelectorAll(classNames.reviewSingleScore)\n\n categoryScoresItem.forEach(item => {\n const itemScore = item.querySelector(classNames.scoreGrade) ? parseInt(item.querySelector(classNames.scoreGrade).innerHTML) : null\n const itemLabel = item.querySelector(classNames.scoreTitle) ? item.querySelector(classNames.scoreTitle).innerHTML : null\n\n if (itemScore) {\n categoryScores.push({\n categoryLabel: itemLabel,\n categoryScore: itemScore\n })\n }\n })\n\n this.events.emit(reviewsListEvents.REVIEWS_LIST_REVIEW_TRANSLATED, {\n id: reviewId,\n status,\n overallRating,\n country,\n partyComp,\n categoryScores\n })\n }\n\n /**\n * Gets the data from the API\n */\n async fetch () {\n this.element.classList.add(classNames.isLoading)\n\n try {\n let fetchedData = null\n if (this.url) {\n const fetchUrl = getUrlFromString(this.url, this.extraParams)\n fetchedData = await fetchJsonData(fetchUrl).then((result) => {\n const data = result.data[0]\n\n let amount\n let reviews\n let reviewsAmountOfTravelerTypes\n\n if (data) {\n amount = data.amount\n reviews = data.reviews\n reviewsAmountOfTravelerTypes = data.reviewsAmountOfTravelerTypes\n } else {\n amount = 0\n reviews = []\n reviewsAmountOfTravelerTypes = []\n }\n\n this.events.emit(reviewsListEvents.REVIEWS_LIST_DATA_LOADED, data)\n\n this.updateTotalResults(amount)\n this.updatePagination(this.pagination, { silent: true })\n this.resolveSetTravelFilterDropdownPromise(reviewsAmountOfTravelerTypes)\n\n return {\n amount,\n reviews\n }\n })\n\n this.reviewsOverallTitle.innerHTML = fetchedData.amount + ' ' + this.overallTitleText\n }\n\n if (fetchedData && fetchedData.amount > 0) {\n this.element.classList.remove(classNames.isLoading)\n this.noItemsArea.classList.add(classNames.isHidden)\n this.element.classList.remove(classNames.noReviews)\n this.element.classList.add(classNames.hasData)\n this.render(fetchedData.reviews)\n this.setTranslateListeners()\n } else {\n this.element.classList.add(classNames.noReviews)\n this.noItemsArea.classList.remove(classNames.isHidden)\n this.element.classList.remove(classNames.isLoading)\n }\n\n this.element.classList.remove(classNames.notLoaded)\n this.element.classList.remove(classNames.isHidden)\n this.reviewsLoaderIcon.classList.add(classNames.isHidden)\n } catch (e) {\n if (window.newrelic) {\n window.newrelic.noticeError('[ReviewsList] Error fetching data:' + e)\n }\n }\n }\n\n /**\n * Update Total Results\n *\n * @param {Number} totalResults - Total results of the fetch\n */\n updateTotalResults (totalResults) {\n const currentPage = this.pagination.offset === 0 ? 1 : (this.pagination.offset / this.pagination.limit) + 1\n const totalPages = Math.ceil(totalResults / this.pagination.limit)\n this.pagination.currentPage = currentPage\n this.pagination.totalPages = totalPages\n }\n\n /**\n * Update Total Results\n *\n * @param {Object} props - The pagination props\n * @param {Object} options - The pagination options\n */\n updatePagination (props = this.pagination, options) {\n const { totalPages, currentPage } = props\n this.childComponents.pagination.setProps({ totalPages, currentPage }, options)\n }\n\n /**\n * Renders a reviews item\n *\n * @param {Number} reviewItems - Total results of the fetch\n */\n render (reviewItems) {\n this.itemsElement.innerHTML = reviewItems.map((item) => {\n return ReviewsListItemTemplate(item, this.elementId, this.showScores, this.showPartyComposition)\n }).join('')\n Component.initDocumentComponentsFromAPI(this.element)\n this.element.classList.add(classNames.in)\n }\n\n /**\n * Init child components events\n */\n bindEvents () {\n if (this.childComponents.pagination) {\n this.childComponents.pagination.events.on('change', (data) => {\n const newOffset = ((data.currentPage - 1) * this.pagination.limit) || null\n this.pagination.offset = newOffset\n this.setExtraParameters({\n offset: newOffset\n })\n\n this.element.scrollIntoView(scrollConfig)\n this.events.emit(reviewsListEvents.REVIEWS_LIST_PAGINATION, data)\n\n this.fetch()\n })\n }\n }\n\n /**\n * Returns the extra parameters that are exposed in the DOM\n *\n * @returns {string} - Returns the api url\n */\n getExtraParameters () {\n let travelFilterProcessed = ''\n let showOnlyInWebsiteLanguage = ''\n if (this.travelFilter) {\n travelFilterProcessed = this.getOptionsSelected(this.travelFilter).join(',')\n }\n if (this.languageSwitch) {\n showOnlyInWebsiteLanguage = this.languageSwitch.checked\n }\n\n const extraParamsElements = this.element.querySelectorAll(attr.extraParams)\n const extraParams = extraParamsElements\n ? [...extraParamsElements].reduce((obj, el) => {\n obj[el.name] = el.value\n obj.sorting = this.sortingElement.getValue()\n obj.travelertypes = travelFilterProcessed\n obj.showOnlyInWebsiteLanguage = showOnlyInWebsiteLanguage\n return obj\n }, {})\n : undefined\n\n return extraParams\n }\n\n /**\n * Returns the extra parameters that are exposed in the DOM but with no Page limit\n *\n * @returns {string} - Returns the api url\n */\n getExtraParametersNoLimit () {\n const extraParamsElements = this.element.querySelectorAll(attr.extraParams)\n const extraParams = extraParamsElements\n ? [...extraParamsElements].reduce((obj, el) => {\n if (el.name !== 'limit') {\n obj[el.name] = el.value\n }\n return obj\n }, {})\n : undefined\n\n return extraParams\n }\n\n /**\n * Sets extra params\n *\n * @param {Object} params - The params to be set (if null, input will be deleted)\n */\n setExtraParameters (params) {\n Object.entries(params).forEach(([paramName, paramValue]) => {\n if (paramValue === null) {\n delete this.extraParams[paramName]\n } else {\n this.extraParams[paramName] = paramValue\n }\n })\n }\n\n /**\n * Creates a new ReviewsList for every element on document with targeted attributes.\n *\n * @returns {ReviewsList[]} - The created instances.\n */\n static createInstancesOnDocument () {\n const currentWidgets = window.document.querySelectorAll(`[data-js-api=\"${widgetApi}\"]`)\n const instances = []\n for (let i = 0; i < currentWidgets.length; i++) {\n instances.push(ReviewsList.createInstanceOnElement(currentWidgets[i]))\n }\n return instances\n }\n\n /**\n * Creates a new ReviewsList for single element.\n *\n * @returns {ReviewsList} - Self instance.\n */\n static createInstanceOnElement (element, reviewsListData = {}) {\n return new ReviewsList(element, reviewsListData)\n }\n}\n","export const da = {\n noComment: 'Brugeren har ikke efterladt nogen kommentarer',\n translateButton: 'Oversæt anmeldelse',\n viewOriginalButton: 'Vis oprindelig anmeldelse'\n}\n\nexport const de = {\n noComment: 'Der Benutzer hat keine Kommentare hinterlassen',\n translateButton: 'Übersetzen Sie diese Bewertung',\n viewOriginalButton: 'Original text zeigen'\n}\n\nexport const en = {\n noComment: 'The user has left no comments',\n translateButton: 'Translate this text',\n viewOriginalButton: 'View original text'\n}\n\nexport const fr = {\n noComment: \"L'utilisateur n'a laissé aucun commentaire\",\n translateButton: 'Traduisez cette avis',\n viewOriginalButton: 'Voir original review'\n}\n\nexport const nl = {\n noComment: 'De gebruiker heeft geen opmerkingen achtergelaten',\n translateButton: 'Vertaal deze review',\n viewOriginalButton: 'Toon originele review'\n}\n\nexport const sv = {\n noComment: 'Användaren har inte lämnat några kommentarer',\n translateButton: 'Översätt recensionen',\n viewOriginalButton: 'Visa original texten'\n}\n","/**\n * The ReviewsTeaserItemsTemplate contains all data needed to hydrate a Reviews teaser widget\n *\n * @typedef {Object} ReviewsTeaserItemsTemplate\n *\n */\n\nimport { language } from '../../../js/user/locale-settings'\nimport { register } from '../../../js/document/namespace'\nimport { NumberScoreTemplate } from '../../components/number-score/c-number-score.template'\nimport { CollapseTriggerTemplate } from '../../components/collapse/c-collapse__trigger.template'\nimport { CollapseTemplate } from '../../components/collapse/c-collapse.template'\nimport { BtnTemplate } from '../../components/btn/c-btn.template'\nimport { LoaderTemplate } from '../../components/loader/c-loader.template'\n\nconst globalLocales = register(`window.sundio.i18n.${language}.global`)\nconst componentLocales = register(`window.sundio.i18n.${language}.reviewsTeaser`)\nconst languageSite = language\n\nexport const defaultReviewsTeaserItemsData = {\n id: '',\n comment: '',\n collapseHeight: 80,\n blockText: true,\n countryCode: '',\n languageCode: ''\n}\n\nexport const ReviewsTeaserItemsTemplate = (data, reviewsTeaserId) => {\n data = { ...defaultReviewsTeaserItemsData, ...data }\n\n const customLocaleElement = document.querySelector(`[data-type=\"i18n\"][data-uid=\"${reviewsTeaserId}\"]`)\n let customLocaleData = null\n try {\n customLocaleData = JSON.parse(customLocaleElement.textContent)\n } catch (err) {}\n\n const staticTexts = { ...globalLocales, ...componentLocales, ...(customLocaleData || {}) }\n\n let itemRendered = ''\n\n for (let index = 0; index < 2; index++) {\n if (data[index]) itemRendered += renderReviewsTeaserItem(data[index], data, index, staticTexts)\n }\n\n return itemRendered\n}\n\nfunction renderReviewsTeaserItem (review, data, index, staticTexts) {\n return `
\n
\n ${review.rating\n ? NumberScoreTemplate({\n variant: 'bubbled',\n scoreGrade: (review.rating.toFixed(1).substr(-1) !== '0' ? review.rating.toFixed(1) : review.rating.toFixed(0)),\n scoreTitle: (review.score.scoreLabel ? review.score.scoreLabel : ''),\n arrowDirection: '',\n labelPosition: 'right'\n })\n : ''}\n
\n
\n ${CollapseTemplate({\n id: `${review.id}-item-${index}`,\n extraClasses: 'w-reviews-teaser__item-text after-fading-light',\n collapseHeight: data.collapseHeight,\n blockText: true,\n attributes: { 'data-w-reviews-teaser--item': '' },\n track: 'reviewsTeaser.showMore',\n html: review.comment ? `
“${review.comment}”
` : `${staticTexts.noComment}`\n })}\n ${CollapseTriggerTemplate({\n id: `${review.id}-item-${index}`,\n text: staticTexts.readMore,\n action: 'open',\n extraClasses: 'w-reviews-teaser__item-trigger'\n })}\n ${CollapseTriggerTemplate({\n id: `${review.id}-item-${index}`,\n text: staticTexts.readLess,\n action: 'close',\n extraClasses: 'w-reviews-teaser__item-trigger'\n })}\n
\n
\n
\n ${(languageSite !== review.languageCode.toLowerCase()) && review.comment && review.languageCode\n ? `${BtnTemplate({\n type: 'button',\n variant: 'flat',\n extraClasses: 'w-reviews-teaser--review-translate--btn',\n attributes: { 'data-w-reviews-teaser--review-translate--btn': '' },\n text: staticTexts.translateButton,\n track: 'reviewsTeaser.translation'\n })}\n ${LoaderTemplate({ size: 'tiny', extraClasses: 'w-reviews-teaser__comment-translate-loader is-hidden' })}\n ${BtnTemplate({\n type: 'button',\n variant: 'flat',\n extraClasses: 'w-reviews-teaser--review-original--btn is-hidden',\n attributes: { 'data-w-reviews-teaser--review-original--btn': '' },\n text: staticTexts.viewOriginalButton,\n track: 'reviewsTeaser.original'\n })}`\n : ''\n }\n
\n
`\n}\n","import { registerWidget } from '../../../js/core/widget/widget-directory'\nimport { getUrlFromString } from '../../../js/document/url'\nimport { fetchJsonData } from '../../../js/helpers/json-fetch'\nimport { ReviewsTeaserItemsTemplate } from './w-reviews-teaser-items.template'\nimport { LoaderTemplate } from '../../components/loader/c-loader.template'\nimport Component from '../../../js/core/component/component'\nimport { language } from '../../../js/user/locale-settings'\nimport webStorage from '../../../js/document/web-storage'\nimport { apiCaller } from '../../../js/helpers/api-caller'\nimport { reviewsTeaserEvents } from '../../../js/document/event-types'\nimport registeredEvents from '../../../js/helpers/registered-events'\n\n// Ensure other child component APIs are loaded on time\nrequire('../reviews-list/main')\nrequire('../../components/number-score/main')\nrequire('../../components/collapse/main')\n\nconst EventEmitter = require('eventemitter3')\nconst widgetApi = 'w-reviews-teaser'\nconst reviewsListWidgetApi = 'w-reviews-list'\nconst numberScoreComponentApi = 'c-number-score'\nconst btnComponentApi = 'c-btn'\nconst modalV2Api = 'c-modal-v2'\n\nconst widgetQueries = {\n reviewsListWidgetsSelector: `[data-js-api=\"${reviewsListWidgetApi}\"]`,\n widgetWrapper: `[data-${widgetApi}--wrapper]`,\n reviewsElement: `[data-${widgetApi}--item]`,\n reviewsElementsWrapper: `[data-${widgetApi}--reviews-items]`,\n overviewNumberScore: `[data-${widgetApi}--overview__number-score]`,\n overviewLoader: `[data-${widgetApi}__loader`,\n numberScoreSelector: `[data-js-component=\"${numberScoreComponentApi}\"]`,\n url: `data-${widgetApi}__url`,\n messageArea: `[data-${widgetApi}--msg-area]`,\n goToReviewsBtn: `[data-${widgetApi}--btn]`,\n translateButton: `[data-${widgetApi}--review-translate--btn]`,\n viewOriginalTextButton: `[data-${widgetApi}--review-original--btn]`,\n translatedTextArea: `[data-${widgetApi}--review-translate]`,\n itemContent: `[data-${widgetApi}--review-content]`,\n reviewsModal: `[data-${widgetApi}--modal]`,\n reviewsTab: '[data-result=\"reviews\"]',\n overviewNumberScoreGrade: `[data-${numberScoreComponentApi}__grade]`,\n overviewNumberScoreTitle: `[data-${numberScoreComponentApi}__title]`,\n overviewNumberScoreLabelText: `[data-${numberScoreComponentApi}__label-text]`\n}\n\nconst classNames = {\n isHidden: 'is-hidden',\n isUnresolved: 'is-unresolved',\n isTransalted: 'is-translated',\n isLoaded: 'is-loaded',\n isClicable: 'is-clicable',\n empty: 'empty',\n loaderIcon: `${widgetApi}__comment-translate-loader`,\n numberScoreTeaser: `${widgetApi}__number-score-teaser`,\n numberScoreLabels: `${numberScoreComponentApi}__title-label`,\n numberScoreTitle: `${numberScoreComponentApi}__title`,\n loaderTeaserIcon: `${widgetApi}__number-score-teaser-loader`\n}\n\nexport const attr = {\n extraParams: `[data-${widgetApi}__extra-params]`,\n track: 'data-track',\n method: `data-${widgetApi}__method`,\n translateUrl: `data-${widgetApi}__translate-url`,\n modalId: `data-${modalV2Api}__id`\n}\n\nexport const settings = {\n numberScoreTeaser: 'number-score-teaser',\n numberScoreOverview: 'number-score-overview',\n seeAllReviews: 'see-all-reviews'\n}\n\nexport default class ReviewsTeaser {\n /**\n * Creates a new ReviewsTeaser.\n *\n * @constructor\n * @param {HTMLElement} element - The HTML element.\n */\n constructor (element) {\n this.element = element\n this.elementId = this.element.id\n this.url = this.element.getAttribute(widgetQueries.url)\n this.extraParams = this.getExtraParameters()\n this.messageArea = this.element.querySelector(widgetQueries.messageArea)\n this.reviewsElementsWrapper = this.element.querySelector(widgetQueries.reviewsElementsWrapper)\n this.goToReviewsBtn = this.element.querySelector(widgetQueries.goToReviewsBtn)\n this.widgetWrapper = this.element.querySelector(widgetQueries.widgetWrapper)\n this.reviewsModal = this.element.querySelector(widgetQueries.reviewsModal)\n this.options = {\n method: this.element.getAttribute(attr.method),\n url: this.element.getAttribute(attr.translateUrl)\n }\n this.events = new EventEmitter()\n registeredEvents.registerWidgetEvents(widgetApi, this.events, {\n ...this.element.hasAttribute(attr.track) && { track: this.element.attributes[attr.track].value }\n })\n\n this._renderNumberScoreTeaser()\n\n this.fetch()\n }\n\n /**\n * If in the PDP, number score with overall rating is rendered, we need to render the same number score in the reviews number score teaser\n */\n _renderNumberScoreTeaser () {\n this.numberScoreTeaser = document.querySelector(`.${classNames.numberScoreTeaser}`) // number score teaser\n\n if (this.numberScoreTeaser) {\n const numberScoreTitle = this.numberScoreTeaser.querySelector(`.${classNames.numberScoreTitle}`) // number score title\n if (numberScoreTitle) {\n numberScoreTitle.innerHTML += LoaderTemplate({ size: 'tiny', extraClasses: classNames.loaderTeaserIcon }) // add loader icon;\n }\n\n this.events.on(reviewsTeaserEvents.REVIEWS_TEASER_LOADED, () => {\n const numberScoreDonorWrapper = this.element.querySelector(widgetQueries.overviewNumberScore)\n const numberScoreDonor = numberScoreDonorWrapper ? numberScoreDonorWrapper.querySelector(`[data-js-component=\"${numberScoreComponentApi}\"]`) : null\n\n if (numberScoreDonor) {\n this.numberScoreTeaser.querySelector(`.${classNames.numberScoreLabels}`).innerHTML = numberScoreDonor.querySelector(`.${classNames.numberScoreLabels}`).innerHTML\n Component.initDocumentComponentsFromAPI(this.numberScoreTeaser)\n\n const numberScoreTeaserInfoBtn = this.numberScoreTeaser.querySelector(`.${classNames.numberScoreLabels}`).querySelector(`[data-js-component=\"${btnComponentApi}\"]`)\n if (numberScoreTeaserInfoBtn) {\n const infoModal = document.querySelector(`#${numberScoreTeaserInfoBtn.getAttribute(attr.modalId)}`)\n if (infoModal) numberScoreTeaserInfoBtn.addEventListener('click', () => { infoModal[modalV2Api].open() })\n }\n }\n\n this.numberScoreTeaser.classList.add(classNames.isLoaded)\n })\n }\n }\n\n /**\n * Gets the data from the API\n */\n async fetch () {\n try {\n const fetchUrl = getUrlFromString(this.url, this.extraParams)\n const fetchedData = await fetchJsonData(fetchUrl).then((result) => {\n const data = result.data[0]\n if (data) {\n return {\n amount: data.amount,\n reviews: data.reviews,\n reviewsAmountOfTravelerTypes: data.reviewsAmountOfTravelerTypes\n }\n } else {\n return {\n amount: 0,\n reviews: [],\n reviewsAmountOfTravelerTypes: []\n }\n }\n })\n\n this.resolveTeaserReviews(fetchedData)\n this.events.emit(reviewsTeaserEvents.REVIEWS_TEASER_LOADED)\n } catch (e) {\n if (window.newrelic) {\n window.newrelic.noticeError('[ReviewsTeaser] Error with:' + e)\n }\n }\n }\n\n /**\n * Returns the extra parameters that are exposed in the DOM\n *\n * @returns {string} - Returns the api url\n */\n getExtraParameters () {\n const extraParamsElements = this.element.querySelectorAll(attr.extraParams)\n const extraParams = extraParamsElements\n ? [...extraParamsElements].reduce((obj, el) => {\n obj[el.name] = el.value\n return obj\n }, {})\n : undefined\n\n return extraParams\n }\n\n /**\n * Sets listeners for translate button\n */\n setTranslateListeners () {\n const reviewsElements = this.element.querySelectorAll(widgetQueries.reviewsElement)\n reviewsElements.forEach(item => {\n if (item.querySelector(widgetQueries.translateButton)) {\n item.querySelector(widgetQueries.translateButton).addEventListener('click', () => this.translateReview(item))\n item.querySelector(widgetQueries.viewOriginalTextButton).addEventListener('click', () => this.viewOriginalTextReview(item))\n }\n })\n }\n\n setCTAListeners (overviewNumber) {\n if (overviewNumber) {\n if (overviewNumber.querySelector(widgetQueries.overviewNumberScoreGrade)) overviewNumber.querySelector(widgetQueries.overviewNumberScoreGrade).addEventListener('click', (ev) => { this.openReviewsModal(settings.numberScoreOverview, ev) })\n if (overviewNumber.querySelector(widgetQueries.overviewNumberScoreTitle)) overviewNumber.querySelector(widgetQueries.overviewNumberScoreTitle).addEventListener('click', (ev) => { this.openReviewsModal(settings.numberScoreOverview, ev) })\n if (overviewNumber.querySelector(widgetQueries.overviewNumberScoreLabelText)) overviewNumber.querySelector(widgetQueries.overviewNumberScoreLabelText).addEventListener('click', (ev) => { this.openReviewsModal(settings.numberScoreOverview, ev) })\n }\n\n this.events.on(reviewsTeaserEvents.REVIEWS_TEASER_LOADED, () => {\n const numberScoreTeaser = document.querySelector(`.${classNames.numberScoreTeaser}`)\n if (numberScoreTeaser) {\n if (numberScoreTeaser.querySelector(widgetQueries.overviewNumberScoreGrade)) numberScoreTeaser.querySelector(widgetQueries.overviewNumberScoreGrade).addEventListener('click', (ev) => { this.openReviewsModal(settings.numberScoreTeaser, ev) })\n if (numberScoreTeaser.querySelector(widgetQueries.overviewNumberScoreTitle)) numberScoreTeaser.querySelector(widgetQueries.overviewNumberScoreTitle).addEventListener('click', (ev) => { this.openReviewsModal(settings.numberScoreTeaser, ev) })\n if (numberScoreTeaser.querySelector(widgetQueries.overviewNumberScoreLabelText)) numberScoreTeaser.querySelector(widgetQueries.overviewNumberScoreLabelText).addEventListener('click', (ev) => { this.openReviewsModal(settings.numberScoreTeaser, ev) })\n\n numberScoreTeaser.classList.add(classNames.isClicable)\n }\n })\n\n this.goToReviewsBtn.addEventListener('click', (ev) => { this.events.emit(reviewsTeaserEvents.REVIEWS_TEASER_MODAL_OPENED, settings.seeAllReviews, ev) })\n\n const reviewsListInsideModal = this.reviewsModal.querySelector(widgetQueries.reviewsListWidgetsSelector)\n if (reviewsListInsideModal) {\n this.reviewsModal[modalV2Api].events.on('opened', () => {\n reviewsListInsideModal[reviewsListWidgetApi].fetch()\n })\n }\n }\n\n openReviewsModal (source, event) {\n this.reviewsModal[modalV2Api].open()\n this.events.emit(reviewsTeaserEvents.REVIEWS_TEASER_MODAL_OPENED, source, event)\n }\n\n /**\n * Translate the review\n *\n * @param {Object} review - Review item that is going to be translated\n */\n async translateReview (review) {\n const reviewId = review.getAttribute('id')\n const loaderIcon = review.querySelector(`.${classNames.loaderIcon}`)\n const translatedTextContainer = review.querySelector(widgetQueries.translatedTextArea)\n const translateButton = review.querySelector(widgetQueries.translateButton)\n const viewOriginalTextButton = review.querySelector(widgetQueries.viewOriginalTextButton)\n\n loaderIcon.classList.remove(classNames.isHidden)\n const originalText = review.querySelector(widgetQueries.itemContent).querySelector('.m-body').innerHTML\n\n const translationId = reviewId + '-' + language\n const storagedTranslation = webStorage.local.get(translationId)\n\n // first we check if the translate exist in the localstorage, if not, we proced with the translations\n try {\n let translatedText = ''\n if (storagedTranslation) {\n translatedText = storagedTranslation\n } else {\n const data = { text: originalText }\n const result = await apiCaller(this.options.url, { body: data, method: this.options.method })\n\n if (result.success) {\n translatedText = result.response.text\n webStorage.local.set(translationId, translatedText)\n }\n }\n\n if (translatedText !== '') {\n review.classList.add(classNames.isTransalted)\n translatedTextContainer.innerText = translatedText\n translatedTextContainer.classList.remove(classNames.empty)\n translateButton.classList.add(classNames.isHidden)\n loaderIcon.classList.add(classNames.isHidden)\n viewOriginalTextButton.classList.remove(classNames.isHidden)\n } else {\n loaderIcon.classList.add(classNames.isHidden)\n }\n } catch (error) {\n if (window.newrelic) {\n window.newrelic.noticeError('[ReviewsTeaser] Error with translation:' + error)\n }\n }\n }\n\n /**\n * view original review\n *\n * @param {Object} review - Review item that is going to turn back to show original text\n */\n viewOriginalTextReview (review) {\n const translatedTextContainer = review.querySelector(widgetQueries.translatedTextArea)\n const translateButton = review.querySelector(widgetQueries.translateButton)\n const viewOriginalTextButton = review.querySelector(widgetQueries.viewOriginalTextButton)\n\n review.classList.remove(classNames.isTransalted)\n translatedTextContainer.innerText = ''\n translatedTextContainer.classList.add(classNames.empty)\n translateButton.classList.remove(classNames.isHidden)\n translatedTextContainer.classList.add(classNames.isHidden)\n viewOriginalTextButton.classList.add(classNames.isHidden)\n }\n\n /**\n * resolve teaser reviews\n *\n * @param {Object} response - response coming from the call of the API\n */\n resolveTeaserReviews (response) {\n if (response && response.amount > 0) {\n const overviewNumber = this.element.querySelector(widgetQueries.overviewNumberScore)\n if (overviewNumber) {\n this.element.querySelector(widgetQueries.overviewLoader).classList.add(classNames.isHidden)\n }\n this.setCTAListeners(overviewNumber)\n\n this.element.classList.remove(classNames.isUnresolved)\n this.reviewsElementsWrapper.innerHTML = ReviewsTeaserItemsTemplate(response.reviews, this.elementId)\n Component.initDocumentComponentsFromAPI(this.element)\n this.setTranslateListeners()\n } else {\n this.goToReviewsBtn.classList.add(classNames.isHidden)\n this.messageArea.classList.remove(classNames.isHidden)\n this.widgetWrapper.classList.add(classNames.isHidden)\n }\n }\n}\n\nregisterWidget(ReviewsTeaser, widgetApi)\n","export const da = {\n placeholder: 'Vælg et værelse',\n roomsLeftAvailable: '{n} værelser tilbage',\n lastRoomAvailable: 'Sidste værelse til rådighed'\n}\n\nexport const de = {\n placeholder: 'Wählen Sie einen Raum aus',\n roomsLeftAvailable: '{n} zimmer übrig',\n lastRoomAvailable: 'Letztes freies Zimmer'\n}\n\nexport const en = {\n placeholder: 'Select a room',\n roomsLeftAvailable: '{n} rooms left',\n lastRoomAvailable: 'Last room available'\n}\n\nexport const nb = {\n placeholder: 'Velg et rom',\n roomsLeftAvailable: '{n} rom igjen',\n lastRoomAvailable: 'Siste rom tilgjengelig'\n}\n\nexport const fr = {\n placeholder: 'Choisissez une chambre',\n roomsLeftAvailable: '{n} chambres restantes',\n lastRoomAvailable: 'Dernière chambre disponible'\n}\n\nexport const nl = {\n placeholder: 'Kies een kamer',\n roomsLeftAvailable: '{n} kamers over',\n lastRoomAvailable: 'Laatste kamer beschikbaar'\n}\n\nexport const sv = {\n placeholder: 'Välj ett rum',\n roomsLeftAvailable: '{n} rum kvar',\n lastRoomAvailable: 'Sista rum tillgängligt'\n}\n","export const da = {\n selectRoomButtonText: 'Vælg værelse',\n onRequestLabel: 'På anmodning',\n roomTypeDescriptionTitle: 'Værelse beskrivelse',\n emptyFilteredRooms: 'Der er ingen værelser, der matcher din belægning. Skift belægning, eller lad det hele være nul for ikke at filtrere.',\n roomsNotMatchingOccupancyHeader: 'Der er {n} værelser, der ikke kan bruges med den valgte belægning:',\n priceFromWord: 'fra'\n}\n\nexport const de = {\n selectRoomButtonText: 'Raum auswählen',\n onRequestLabel: 'Auf Anfrage',\n roomTypeDescriptionTitle: 'Zimmerbeschreibung',\n emptyFilteredRooms: 'Es gibt keine Zimmer, die Ihrer Belegung entsprechen. Bitte ändern Sie die Belegung oder lassen Sie alles auf Null, um nicht zu filtern.',\n roomsNotMatchingOccupancyHeader: 'Es gibt {n} Räume, die bei ausgewählter Belegung nicht genutzt werden können:',\n priceFromWord: 'ab'\n}\n\nexport const en = {\n selectRoomButtonText: 'Select room',\n onRequestLabel: 'On request',\n roomTypeDescriptionTitle: 'Room description',\n emptyFilteredRooms: 'There are no rooms matching your occupancy. Please change the occupancy or leave it all to zero to not filter.',\n roomsNotMatchingOccupancyHeader: 'There are {n} rooms that cannot be used with selected occupancy:',\n priceFromWord: 'from'\n}\n\nexport const nb = {\n selectRoomButtonText: 'Velg rom',\n onRequestLabel: 'På forespørsel',\n roomTypeDescriptionTitle: 'Rombeskrivelse',\n emptyFilteredRooms: 'Det er ingen rom som passer til ditt belegg. Vennligst endre belegget eller la alt være på null for ikke å filtrere.',\n roomsNotMatchingOccupancyHeader: 'Det er {n} rom som ikke kan brukes med valgt belegg:',\n priceFromWord: 'fra'\n}\n\nexport const fr = {\n selectRoomButtonText: 'Sélectionnez la chambre',\n onRequestLabel: 'Sur demande',\n roomTypeDescriptionTitle: 'Description de la pièce',\n emptyFilteredRooms: 'Aucune chambre ne correspond à votre occupation. Veuillez modifier l\\'occupation ou laisser le tout à zéro pour ne pas filtrer.',\n roomsNotMatchingOccupancyHeader: 'Il y a {n} chambres qui ne peuvent pas être utilisées avec l\\'occupation sélectionnée:',\n priceFromWord: 'à partir de'\n}\n\nexport const nl = {\n selectRoomButtonText: 'Selecteer kamer',\n onRequestLabel: 'Op verzoek',\n roomTypeDescriptionTitle: 'Kamer beschrijving',\n emptyFilteredRooms: 'Er zijn geen kamers die overeenkomen met uw bezetting. Wijzig de bezetting of laat alles op nul staan om niet te filteren.',\n roomsNotMatchingOccupancyHeader: 'Er zijn {n} kamers die niet kunnen worden gebruikt met de geselecteerde bezetting:',\n priceFromWord: 'vanaf'\n}\n\nexport const sv = {\n selectRoomButtonText: 'Välj rum',\n onRequestLabel: 'På förfrågan',\n roomTypeDescriptionTitle: 'Rumsbeskrivning',\n emptyFilteredRooms: 'Det finns inga rum som matchar ditt boende. Ändra beläggningen eller lämna allt till noll för att inte filtrera.',\n roomsNotMatchingOccupancyHeader: 'Det finns {n} rum som inte kan användas med vald beläggning:',\n priceFromWord: 'från'\n}\n","export const da = {\n headerText: 'Vælg dine værelser',\n invalidRoomAllocation: 'Færre er blevet valgt i rummet end muligt. Det mindste antal mennesker er {MIN_ROOM_OCCUPANCY}. Ændr markeringen.',\n adultsWord: 'Adults',\n adultWord: 'Adult',\n adultsAgeRange: '(From {minAge} years old)',\n childrenWord: 'Children',\n childWord: 'Child',\n childrenAgeRange: '(From {minAge} to {maxAge} years old)',\n babiesWord: 'Babies',\n babyWord: 'Baby',\n babiesAgeRange: '(From {minAge} to {maxAge} years old)',\n roomStockThresholdToShowLowAvailability: 5,\n roomsLeftAvailable: '{n} rooms left',\n lastRoomAvailable: 'Last room available',\n moreBabiesThanAdults: 'You can\\'t allocate in a room more babies than adults',\n peoplePendingToAllocateText: 'Der er stadig {pendingPeople} uden plads tildelt. Venligst fordel dem',\n peopleAllocatedInExcess: '{PARTICIPANTS_NUM} {AGE_PROFILE_NAME} are assigned in excess. Please, move them to another room',\n noCompatibleRoomsForPeoplePendingToAllocateText: 'Der er ingen kompatible værelser til de mennesker, der afventer at distribuere. Fjernelse fra personer, der er tildelt i de foregående værelser, kan muligvis have tilgængelige værelser.',\n wrongDistributionInRooms: 'The participants distribution in a room is wrong. Please check it all',\n pricePerPerson: 'price per person',\n pricePerPersonAbbreviation: 'p.p.',\n roomWord: 'Room',\n noValidDistributionInRoom: 'Current distribution it´is not valid for this room, please allocate travellers differently',\n noMoreRoomAvailable: 'No rooms available, try a different combination of rooms',\n wrongAllocationMessageToContinue: 'Du skal vælge værelserne, inden du fortsætter',\n roomTypeDescriptionTitle: 'Værelse beskrivelse',\n specialAgeProfileHeaderTitle: 'Alderkategoriseringen er blevet opdateret automatisk for dem, der er på den aktuelle bolig',\n specialAgeProfileHeaderToggleText: 'vide mere',\n specialAgeProfileContentTitle: 'Visse overnatningssteder har deres egen alderskategorisering. Overvej aldringsklassificeringen for den aktuelle bolig er:'\n}\n\nexport const de = {\n headerText: 'Wählen Sie Ihre Räume aus',\n invalidRoomAllocation: 'Es wurden weniger Personen im Raum ausgewählt als möglich. Die Mindestanzahl von Personen ist {MIN_ROOM_OCCUPANCY}. Ändern Sie die Auswahl.',\n adultsWord: 'Adults',\n adultWord: 'Adult',\n adultsAgeRange: '(From {minage} years old)',\n childrenWord: 'Children',\n childWord: 'Child',\n childrenAgeRange: '(From {minage} to {maxage} years old)',\n babiesWord: 'Babies',\n babyWord: 'Baby',\n babiesAgeRange: '(Until {maxage} years old)',\n roomStockThresholdToShowLowAvailability: 5,\n roomsLeftAvailable: '{n} rooms left',\n lastRoomAvailable: 'Last room available',\n moreBabiesThanAdults: 'You can\\'t allocate in a room more babies than adults',\n peoplePendingToAllocateText: 'Es sind noch {pendingPeople} ohne Zimmer zugewiesen. Bitte ordnen Sie sie zu',\n peopleAllocatedInExcess: '{PARTICIPANTS_NUM} {AGE_PROFILE_NAME} are assigned in excess. Please, move them to another room',\n noCompatibleRoomsForPeoplePendingToAllocateText: 'Es gibt keine kompatiblen Räume für die Personen, deren Verteilung ansteht. Durch das Entfernen von Personen, die in den vorherigen Räumen zugewiesen wurden, können möglicherweise verfügbare Räume verfügbar sein.',\n wrongDistributionInRooms: 'The participants distribution in a room is wrong. Please check it all',\n pricePerPerson: 'price per person',\n pricePerPersonAbbreviation: 'p.p.',\n roomWord: 'Room',\n noValidDistributionInRoom: 'Current distribution it´is not valid for this room, please allocate travellers differently',\n noMoreRoomAvailable: 'No rooms available, try a different combination of rooms',\n wrongAllocationMessageToContinue: 'Sie sollten die Räume auswählen, bevor Sie fortfahren',\n roomTypeDescriptionTitle: 'Zimmerbeschreibung',\n specialAgeProfileHeaderTitle: 'Die Alterskategorisierung wurde automatisch für die aktuelle Unterkunft aktualisiert',\n specialAgeProfileHeaderToggleText: 'mehr wissen',\n specialAgeProfileContentTitle: 'Bestimmte Unterkünfte haben ihre eigene Alterskategorie. Bitte beachten Sie, dass die Altersklassifizierung für die aktuelle Unterkunft wie folgt lautet:'\n}\n\nexport const en = {\n headerText: 'Select your rooms',\n invalidRoomAllocation: 'Fewer people have been selected in the room than possible. The minimum number of people is {MIN_ROOM_OCCUPANCY}. Change the selection.',\n adultsWord: 'Adults',\n adultWord: 'Adult',\n adultsAgeRange: '(From {minage} years old)',\n childrenWord: 'Children',\n childWord: 'Child',\n childrenAgeRange: '(From {minage} to {maxage} years old)',\n babiesWord: 'Babies',\n babyWord: 'Baby',\n babiesAgeRange: '(Until {maxage} years old)',\n roomStockThresholdToShowLowAvailability: 5,\n roomsLeftAvailable: '{n} rooms left',\n lastRoomAvailable: 'Last room available',\n moreBabiesThanAdults: 'You can\\'t allocate in a room more babies than adults',\n peoplePendingToAllocateText: 'There are still {pendingPeople} without room assigned. Please, allocate them',\n peopleAllocatedInExcess: '{PARTICIPANTS_NUM} {AGE_PROFILE_NAME} are assigned in excess. Please, move them to another room',\n noCompatibleRoomsForPeoplePendingToAllocateText: 'There are no compatible rooms for the people pending to distribute. Removing from people allocated in the previous rooms may allow to have available rooms.',\n wrongDistributionInRooms: 'The participants distribution in a room is wrong. Please check it all',\n pricePerPerson: 'price per person',\n pricePerPersonAbbreviation: 'p.p.',\n roomWord: 'Room',\n noValidDistributionInRoom: 'Current distribution it´is not valid for this room, please allocate travellers differently',\n noMoreRoomAvailable: 'No rooms available, try a different combination of rooms',\n wrongAllocationMessageToContinue: 'You should select the rooms before continuing',\n roomTypeDescriptionTitle: 'Room description',\n specialAgeProfileHeaderTitle: 'The ages categorisation has been automatically updated for the ones on the current accommodation',\n specialAgeProfileHeaderToggleText: 'know more',\n specialAgeProfileContentTitle: 'Certain accommodations has teir own age caegorization, please consider the age classification for the current accommodation is:'\n}\n\nexport const nb = {\n headerText: 'Velg rommene',\n invalidRoomAllocation: 'Færre er valgt ut i rommet enn mulig. Minste antall personer er {MIN_ROOM_OCCUPANCY}. Endre utvalget.',\n adultsWord: 'Adults',\n adultWord: 'Adult',\n adultsAgeRange: '(From {minage} years old)',\n childrenWord: 'Children',\n childWord: 'Child',\n childrenAgeRange: '(From {minage} to {maxage} years old)',\n babiesWord: 'Babies',\n babyWord: 'Baby',\n babiesAgeRange: '(Until {maxage} years old)',\n roomStockThresholdToShowLowAvailability: 5,\n roomsLeftAvailable: '{n} rooms left',\n lastRoomAvailable: 'Last room available',\n moreBabiesThanAdults: 'You can\\'t allocate in a room more babies than adults',\n peoplePendingToAllocateText: 'Det er fortsatt {PENDING_PEOPLE} uten plass tildelt. Vær så snill, tildel dem',\n peopleAllocatedInExcess: '{PARTICIPANTS_NUM} {AGE_PROFILE_NAME} are assigned in excess. Please, move them to another room',\n noCompatibleRoomsForPeoplePendingToAllocateText: 'Det er ingen kompatible rom for folk som venter på å distribuere. Å fjerne fra personer som er tildelt i de forrige rommene, kan tillate å ha tilgjengelige rom.',\n wrongDistributionInRooms: 'The participants distribution in a room is wrong. Please check it all',\n pricePerPerson: 'price per person',\n pricePerPersonAbbreviation: 'p.p.',\n roomWord: 'Room',\n noValidDistributionInRoom: 'Current distribution it´is not valid for this room, please allocate travellers differently',\n noMoreRoomAvailable: 'No rooms available, try a different combination of rooms',\n wrongAllocationMessageToContinue: 'Du bør velge rom før du fortsetter',\n roomTypeDescriptionTitle: 'Rombeskrivelse',\n specialAgeProfileHeaderTitle: 'Alderkategoriseringen er automatisk oppdatert for de som er på gjeldende innkvartering',\n specialAgeProfileHeaderToggleText: 'vite mer',\n specialAgeProfileContentTitle: 'Enkelte overnattingssteder har sin egen alderskategori. Vennligst vurder aldersklassifiseringen for gjeldende innkvartering:'\n}\n\nexport const fr = {\n headerText: 'Sélectionnez vos chambres',\n invalidRoomAllocation: 'Moins de personnes ont été sélectionnées dans la salle que possible. Le nombre minimum de personnes est {MIN_ROOM_OCCUPANCY}. Changer la sélection.',\n adultsWord: 'Adults',\n adultWord: 'Adult',\n adultsAgeRange: '(From {minage} years old)',\n childrenWord: 'Children',\n childWord: 'Child',\n childrenAgeRange: '(From {minage} to {maxage} years old)',\n babiesWord: 'Babies',\n babyWord: 'Baby',\n babiesAgeRange: '(Until {maxage} years old)',\n roomStockThresholdToShowLowAvailability: 5,\n roomsLeftAvailable: '{n} rooms left',\n lastRoomAvailable: 'Last room available',\n moreBabiesThanAdults: 'You can\\'t allocate in a room more babies than adults',\n peoplePendingToAllocateText: 'Il y a encore {pendingPeople} sans chambre assignée. Veuillez les attribuer',\n peopleAllocatedInExcess: '{PARTICIPANTS_NUM} {AGE_PROFILE_NAME} are assigned in excess. Please, move them to another room',\n noCompatibleRoomsForPeoplePendingToAllocateText: 'Il n\\'y a pas de salles compatibles pour les personnes en attente de distribution. Le retrait des personnes attribuées dans les chambres précédentes peut permettre d\\'avoir des chambres disponibles.',\n wrongDistributionInRooms: 'The participants distribution in a room is wrong. Please check it all',\n pricePerPerson: 'price per person',\n pricePerPersonAbbreviation: 'p.p.',\n roomWord: 'Room',\n noValidDistributionInRoom: 'Current distribution it´is not valid for this room, please allocate travellers differently',\n noMoreRoomAvailable: 'No rooms available, try a different combination of rooms',\n wrongAllocationMessageToContinue: 'Vous devez sélectionner les salles avant de continuer',\n roomTypeDescriptionTitle: 'Description de la pièce',\n specialAgeProfileHeaderTitle: 'La catégorisation des âges a été automatiquement mise à jour pour celles du logement actuel',\n specialAgeProfileHeaderToggleText: 'savoir plus',\n specialAgeProfileContentTitle: 'Certains hébergements ont leur propre catégorie d\\'âge, veuillez considérer que la classification par âge du logement actuel est:'\n}\n\nexport const nl = {\n headerText: 'Selecteer uw kamers',\n invalidRoomAllocation: 'Er zijn minder mensen in de kamer geselecteerd dan mogelijk. Het minimum aantal personen is {MIN_ROOM_OCCUPANCY}. Wijzig de selectie.',\n adultsWord: 'Adults',\n adultWord: 'Adult',\n adultsAgeRange: '(From {minage} years old)',\n childrenWord: 'Children',\n childWord: 'Child',\n childrenAgeRange: '(From {minage} to {maxage} years old)',\n babiesWord: 'Babies',\n babyWord: 'Baby',\n babiesAgeRange: '(Until {maxage} years old)',\n roomStockThresholdToShowLowAvailability: 5,\n roomsLeftAvailable: '{n} rooms left',\n lastRoomAvailable: 'Last room available',\n moreBabiesThanAdults: 'You can\\'t allocate in a room more babies than adults',\n peoplePendingToAllocateText: 'Er zijn nog steeds {pendingPeople} zonder toegewezen kamer. Gelieve hen toe te wijzen',\n peopleAllocatedInExcess: '{PARTICIPANTS_NUM} {AGE_PROFILE_NAME} are assigned in excess. Please, move them to another room',\n noCompatibleRoomsForPeoplePendingToAllocateText: 'Er zijn geen compatibele kamers voor de mensen die in afwachting zijn om te verdelen. Verwijderen van personen die in de vorige kamers zijn toegewezen, kan ervoor zorgen dat er beschikbare kamers beschikbaar zijn.',\n wrongDistributionInRooms: 'The participants distribution in a room is wrong. Please check it all',\n pricePerPerson: 'price per person',\n pricePerPersonAbbreviation: 'p.p.',\n roomWord: 'Room',\n noValidDistributionInRoom: 'Current distribution it´is not valid for this room, please allocate travellers differently',\n noMoreRoomAvailable: 'No rooms available, try a different combination of rooms',\n wrongAllocationMessageToContinue: 'U moet de kamers selecteren voordat u verder gaat',\n roomTypeDescriptionTitle: 'Kamer beschrijving',\n specialAgeProfileHeaderTitle: 'De leeftijdscategorisatie is automatisch bijgewerkt voor die van de huidige accommodatie',\n specialAgeProfileHeaderToggleText: 'meer weten',\n specialAgeProfileContentTitle: 'Bepaalde accommodaties hebben hun eigen leeftijdscategorie, houd er rekening mee dat de leeftijdsclassificatie voor de huidige accommodatie is:'\n\n}\n\nexport const sv = {\n headerText: 'Välj dina rum',\n invalidRoomAllocation: 'Färre har valts ut i rummet än möjligt. Minsta antal personer är {MIN_ROOM_OCCUPANCY}. Ändra markeringen.',\n adultsWord: 'Adults',\n adultWord: 'Adult',\n adultsAgeRange: '(From {minage} years old)',\n childrenWord: 'Children',\n childWord: 'Child',\n childrenAgeRange: '(From {minage} to {maxage} years old)',\n babiesWord: 'Babies',\n babyWord: 'Baby',\n babiesAgeRange: '(Until {maxage} years old)',\n roomStockThresholdToShowLowAvailability: 5,\n roomsLeftAvailable: '{n} rooms left',\n lastRoomAvailable: 'Last room available',\n moreBabiesThanAdults: 'You can\\'t allocate in a room more babies than adults',\n peoplePendingToAllocateText: 'Det finns fortfarande {pendingPeople} utan tilldelat rum. Snälla, fördela dem',\n peopleAllocatedInExcess: '{PARTICIPANTS_NUM} {AGE_PROFILE_NAME} are assigned in excess. Please, move them to another room',\n noCompatibleRoomsForPeoplePendingToAllocateText: 'Det finns inga kompatibla rum för personer som väntar på att distribuera. Att ta bort från personer tilldelade i de tidigare rummen kan göra det möjligt att ha tillgängliga rum.',\n wrongDistributionInRooms: 'The participants distribution in a room is wrong. Please check it all',\n pricePerPerson: 'price per person',\n pricePerPersonAbbreviation: 'p.p.',\n roomWord: 'Room',\n noValidDistributionInRoom: 'Current distribution it´is not valid for this room, please allocate travellers differently',\n noMoreRoomAvailable: 'No rooms available, try a different combination of rooms',\n wrongAllocationMessageToContinue: 'Du bör välja rum innan du fortsätter',\n roomTypeDescriptionTitle: 'Rumsbeskrivning',\n specialAgeProfileHeaderTitle: 'Åldersgruppskategoriseringen har automatiskt uppdaterats för de som finns på det aktuella boendet',\n specialAgeProfileHeaderToggleText: 'veta mer',\n specialAgeProfileContentTitle: 'Vissa boenden har sin egen åldersindelning, tänk på att åldersklassificeringen för det aktuella boendet är:'\n}\n","export const searchMap = {\n SEARCH_MAP_CLOSED: 'Search.MapClosed',\n SEARCH_MAP_REFRESH: 'Search.MapRefresh'\n}\n","export const da = {\n userRating: 'Brugernes bedømmelse',\n priceLegend: 'Pris pr. Person',\n button: 'Vælg',\n publicPrice: 'Offentlig Pris',\n unAvailableTitle: 'Opmærksomhed!',\n unAvailableText: 'Denne indkvartering vil snart være tilgængelig. Tilmeld dig Alert Service for at holde dig opdateret.',\n onRequest: 'Denne pakke er på forespørgsel',\n discountSaveText: 'Spar',\n sustainable: 'Bæredygtighedscertificeret',\n sunwebOnly: 'Sunweb Only'\n}\n\nexport const de = {\n userRating: 'Benutzerbewertung',\n priceLegend: 'Preis pro Person',\n button: 'Wählen',\n publicPrice: 'Öffentlicher Preis',\n unAvailableTitle: 'Beachtung!',\n unAvailableText: 'Diese Unterkunft wird in Kürze verfügbar sein. Melden Sie sich beim Alert Service an, um immer auf dem neuesten Stand zu sein.',\n onRequest: 'Dieses Paket ist auf Anfrage',\n discountSaveText: 'Sparen',\n sustainable: 'Nachhaltig zertifiziert',\n sunwebOnly: 'Sunweb Only'\n}\n\nexport const en = {\n userRating: 'User\\'s rating',\n priceLegend: 'Price per person',\n button: 'Select',\n publicPrice: 'Public price',\n unAvailableTitle: 'Attention!',\n unAvailableText: 'This accommodation will be available soon. Sign up for the Alert Service to stay up to date.',\n onRequest: 'This package is on request',\n discountSaveText: 'Save',\n sustainable: 'Sustainability label',\n sunwebOnly: 'Sunweb Only'\n}\n\nexport const nb = {\n userRating: 'Brukernes vurdering',\n priceLegend: 'Pris per person',\n button: 'Å velge',\n publicPrice: 'Openbare Prijs',\n unAvailableTitle: 'Merk følgende!',\n unAvailableText: 'Dette overnattingsstedet vil være tilgjengelig snart. Registrer deg for varslingstjenesten for å holde deg oppdatert.',\n onRequest: 'Denne pakken er på forespørsel',\n discountSaveText: 'Spar',\n sustainable: 'Sustainably certified',\n sunwebOnly: 'Sunweb Only'\n}\n\nexport const fr = {\n userRating: 'Note de l\\'utilisateur',\n priceLegend: 'Prix par personne',\n button: 'Prix par personne',\n publicPrice: 'Public Prix',\n unAvailableTitle: 'Attention!',\n unAvailableText: 'Cet hébergement sera disponible bientôt. Inscrivez-vous au service d\\'alerte pour rester à jour.',\n onRequest: 'Ce forfait est sur demande',\n discountSaveText: 'Economisez',\n sustainable: 'Certifié durable',\n sunwebOnly: 'Exclu Sunweb'\n}\n\nexport const nl = {\n userRating: 'Gebruikerswaardering',\n priceLegend: 'Prijs per persoon',\n button: 'Kiezen',\n publicPrice: 'Openbare Prijs',\n unAvailableTitle: 'Aandacht!',\n unAvailableText: 'Deze accommodatie zal binnenkort beschikbaar zijn. Meld u aan voor de Alert Service om op de hoogte te blijven.',\n onRequest: 'Dit pakket is op aanvraag',\n discountSaveText: 'Bespaar',\n sustainable: 'Duurzaam gecertificeerd',\n sunwebOnly: 'Sunweb Only'\n}\n\nexport const sv = {\n userRating: 'Användarens betyg',\n priceLegend: 'Pris per person',\n button: 'Välj',\n publicPrice: 'Offentligt Pris',\n unAvailableTitle: 'Uppmärksamhet!',\n unAvailableText: 'Detta boende kommer snart att finnas tillgängligt. Anmäl dig för varningstjänsten att hålla dig uppdaterad.',\n onRequest: 'Detta paket är på begäran',\n discountSaveText: 'Spara',\n sustainable: 'Hållbarhetscertifierad',\n sunwebOnly: 'Sunweb Only'\n}\n","/**\n * The SkiPricesTemplate contains all data needed to hydrate a CarRental Item\n *\n * @typedef {Object} SkiPricesItemTemplate\n *\n * @property {String} tableHeaders - Header texts for the ski prices tables\n *\n */\n\nimport { TableTemplate } from '../../components/table/c-table.template'\nimport { TableItemTemplate } from '../../components/table/c-table__item.template'\nimport { AccordionTemplate, defaultAccordionData } from '../../components/accordion/c-accordion.template'\nimport { TitleTemplate, defaultTitleData } from '../../components/title/c-title.template'\n\nexport const defaultSkiPricesData = {\n tableHeaders: []\n}\n\nexport const SkiPricesTemplate = (data, skiPriceSection) => {\n data = {\n ...defaultSkiPricesData,\n ...data\n }\n\n return `\n
\n ${skiPriceSection.titleSection ? TitleTemplate(Object.assign({}, defaultTitleData, { size: 'medium', text: skiPriceSection.titleSection, extraClasses: 'sp-stack--medium' })) : ''}\n ${AccordionTemplate(Object.assign({}, defaultAccordionData, {\n items: skiPriceSection.skiPriceGroups.map((skiPriceGroup, index) => {\n return {\n title: skiPriceGroup.titleGroup,\n innerHTML: SkiPriceDetailsGroupsTemplate(data, skiPriceGroup.skiPriceDetailsGroups),\n id: `${data.id}-ski-prices-group-${data.sectionCount}-${index}`\n }\n }),\n id: `${data.id}-ski-prices-group-${data.sectionCount}`\n }))}\n
\n `\n}\n\nconst SkiPriceDetailsGroupsTemplate = (data, skiPriceDetailsGroups) => {\n return `${TableTemplate({\n variant: 'stripped',\n extraClasses: 'w-ski-prices__item-table m-body m-body--small',\n innerHTML: `\n ${TableItemTemplate({\n extraClasses: 'w-ski-prices__item-row',\n innerHTML: `\n
${data.tableHeaders[0] !== undefined ? data.tableHeaders[0] : ''}
\n
${data.tableHeaders[1] !== undefined ? data.tableHeaders[1] : ''}
\n
${data.tableHeaders[2] !== undefined ? data.tableHeaders[2] : ''}
\n `\n })}\n\n ${skiPriceDetailsGroups.map(skiPriceDetailsGroup => {\n return skiPriceDetailsGroup.details.map((detail, index) => {\n return `\n ${TableItemTemplate({\n extraClasses: 'w-car-rental__item-row',\n innerHTML: `\n
${skiPriceDetailsGroup.description}
\n
${detail.durationText}
\n
${detail.priceText}
\n `\n })}\n `\n }).join('')\n }).join('')}\n `\n })}\n `\n}\n","import { apiCaller } from '../../../../shared/js/helpers/api-caller'\nimport { SkiPricesTemplate } from './w-ski-prices.template'\nimport Component from '../../../js/core/component/component'\nimport { getUrlFromString } from '../../../js/document/url'\nimport { elementFromString } from '../../../js/document/html-helper'\nimport { observerAPI, documentObserver } from '../../../js/document/intersector'\n\nconst widgetApi = 'w-ski-prices'\n\nconst widgetQueries = {\n urlAttr: `data-${widgetApi}__url`,\n extraParams: 'input[type=\"hidden\"]',\n tableHeaders: `data-${widgetApi}__table-headers`\n}\n\nexport default class SkiPrices {\n /**\n * Creates a new SkiPrices\n *\n * @constructor\n *\n * @param {HTMLElement} element - The element where to attach TabsFilter\n * @param options\n */\n constructor (element, options = {}) {\n this.element = element\n this.element[widgetApi] = this\n this.extraParams = this.getExtraParamsFromDom()\n this.url = options.url || this.element.getAttribute(widgetQueries.urlAttr)\n this.tableHeaders = this.element.getAttribute(widgetQueries.tableHeaders).split(',')\n\n this.extraData = {\n contextitemid: '',\n id: '',\n servicetype: ''\n }\n\n this.defaultAccordionData = {\n id: `${this.element.id}__accordion`,\n size: 'default',\n extraClasses: ''\n }\n\n const observer = documentObserver()\n observer.observe(this.element)\n this.element[observerAPI].events.on('enter', () => {\n this.fetch()\n observer.unobserve(this.element)\n })\n }\n\n /**\n * Gets extra params through hidden inputs on DOM\n *\n * @returns {Object|undefined}\n */\n getExtraParamsFromDom () {\n const extraParamsElements = this.element.querySelectorAll(widgetQueries.extraParams)\n return extraParamsElements\n ? [...extraParamsElements].reduce((obj, el) => {\n obj[el.name] = el.value\n return obj\n }, {})\n : undefined\n }\n\n /**\n * Fetches the ski prices data\n *\n * @returns {Object|undefined}\n */\n async fetch () {\n const url = getUrlFromString(this.url, this.extraParams)\n const result = await apiCaller(url.href)\n if (result.success) {\n this.renderSkiPrices(result.response.data[0])\n }\n }\n\n /**\n * Render the ski prices from current data.\n */\n renderSkiPrices (data) {\n const fragment = document.createDocumentFragment()\n data.skiPriceSections.forEach((skiPriceSection, index) => {\n fragment.appendChild(elementFromString(SkiPricesTemplate(\n {\n tableHeaders: this.tableHeaders,\n id: this.element.id,\n sectionCount: index\n },\n skiPriceSection)))\n })\n this.element.innerHTML = ''\n this.element.appendChild(fragment)\n Component.initDocumentComponentsFromAPI(this.element)\n }\n\n /**\n * Creates a new SkiPrices for every element on document with targeted attributes.\n *\n * @returns {SkiPrices[]} - The created instances.\n */\n static createInstancesOnDocument () {\n const currentWidgets = window.document.querySelectorAll(`[data-js-api=\"${widgetApi}\"]`)\n const instances = []\n for (let i = 0; i < currentWidgets.length; i++) {\n instances.push(SkiPrices.createInstanceOnElement(currentWidgets[i]))\n }\n return instances\n }\n\n /**\n * Creates a new SkiPrices for single element.\n *\n * @returns {SkiPrices} - Self instance.\n */\n static createInstanceOnElement (element, skiPricesData = {}) {\n return new SkiPrices(element, skiPricesData)\n }\n}\n","import * as loadQueueHelper from '../../../js/document/load-queue'\nimport SkiPrices from './main'\n\nloadQueueHelper.add(function () {\n SkiPrices.createInstancesOnDocument()\n})\n","import { registerWidget } from '../../../js/core/widget/widget-directory'\nimport { getDataPrefixed } from '../../../js/document/html-helper'\n\nconst SmartBanner = require('smart-app-banner/index')\n\nconst widgetApi = 'w-smart-app-banner'\nconst widgetDataPrefix = 'wSmartAppBanner__'\nconst widgetQueries = {\n linkElement: '.smartbanner-button'\n}\n\nconst options = {\n language: 'nl',\n buttonText: '',\n appName: '',\n appAuthor: '',\n appIosOnStoreText: '',\n appAndroidOnStoreText: '',\n appIosPriceText: '',\n appAndroidPriceText: '',\n appIcon: null\n}\n\n/**\n * Smart App Banner\n *\n */\nexport default class SmartAppBanner {\n /**\n * Creates a new smart app banner, exposes an API to the element.\n *\n * @constructor\n * @param {HTMLElement} element - The HTML element.\n */\n constructor (element) {\n if (!element) { return }\n this.element = element\n this.options = {\n ...options,\n ...getDataPrefixed(this.element, widgetDataPrefix)\n }\n this._getInnerBannerApi()\n }\n\n _createBanner () {\n const kudagoOptions = {\n daysHidden: parseInt(this.options.closedExpirationDays) || 15,\n daysReminder: parseInt(this.options.viewedExpirationDays) || 90,\n appStoreLanguage: this.options.language,\n title: this.options.appName,\n author: this.options.appAuthor,\n button: this.options.buttonText,\n store: {\n ios: this.options.appIosOnStoreText,\n android: this.options.appAndroidOnStoreText,\n windows: null\n },\n price: {\n ios: this.options.appIosPriceText,\n android: this.options.appAndroidPriceText,\n windows: ''\n },\n theme: 'ios', // force single theme\n icon: this.options.appIcon // full path to icon image if not using website icon image\n //, force: 'android' // Uncomment for platform emulation\n }\n const banner = new SmartBanner(kudagoOptions)\n const link = document.querySelector(widgetQueries.linkElement)\n if (link) {\n link.href = link.href.replace('http://', 'https://')\n }\n return banner\n }\n\n _getInnerBannerApi () {\n this.banner = this.banner || this._createBanner()\n return this.banner\n }\n}\n\nregisterWidget(SmartAppBanner, widgetApi)\n","import { registerWidget } from '../../../js/core/widget/widget-directory'\nimport registeredEvents from '../../../js/helpers/registered-events'\nimport { staticContentDataEvents } from '../../../js/document/event-types'\nconst EventEmitter = require('eventemitter3')\n\nconst widgetApi = 'w-static-content-data'\n\nconst widgetQueries = {\n trackAttr: 'data-track'\n}\n\nexport default class StaticContentData {\n /**\n * Creates a new StaticContentData\n *\n * @constructor\n *\n * @param {HTMLElement} element - The HTML widget element.\n *\n */\n constructor (element) {\n this.element = element\n\n this.events = new EventEmitter()\n registeredEvents.registerWidgetEvents(widgetApi, this.events, {\n ...this.element.hasAttribute(widgetQueries.trackAttr) && { track: this.element.attributes[widgetQueries.trackAttr].value }\n })\n\n const dataset = Object.assign({}, this.element.dataset)\n\n const queryString = window.location.search\n const urlParams = new window.URLSearchParams(queryString)\n const originList = urlParams.get('originList') || 'acco-page'\n\n this.events.emit(staticContentDataEvents.STATIC_CONTENT_DATA_READY, { dataset, originList })\n }\n}\n\nregisterWidget(StaticContentData, widgetApi)\n","import { registerWidget } from '../../../js/core/widget/widget-directory'\nimport { apiCaller } from '../../../js/helpers/api-caller'\n\nexport const widgetApi = 'w-verify-account'\n\nexport const attr = {\n method: `data-${widgetApi}__method`,\n url: `data-${widgetApi}__url`\n}\n\nconst token = 'token'\nconst tokenExpired = 'ExpiredToken'\n\nexport default class VerifyAccount {\n /**\n * Creates a new VerifyAccount\n *\n * @constructor\n *\n * @param {HTMLElement} element - The HTML widget element\n * @param options\n */\n constructor (element, options = {}) {\n if (!element) { return }\n this.element = element\n this.options = {\n method: this.element.getAttribute(attr.method),\n url: this.element.getAttribute(attr.url),\n ...options\n }\n this.elements = {\n errorMessage: element.querySelector('[data-w-verify-account__error]'),\n expiredTokenMessage: element.querySelector('[data-w-verify-account__expired-token]'),\n loader: element.querySelector('[data-w-verify-account__loader]')\n }\n\n this.fetchAndUpdate()\n }\n\n async fetchAndUpdate () {\n const token = this._getVerifyTokenFromUrl()\n const { response, success } = await apiCaller(this.options.url, { method: this.options.method, body: { token } })\n if (success && response.url) this._redirect(response.url)\n if (!success || response.error) this._displayMessage(success ? response.error : null)\n }\n\n _displayMessage (error) {\n if (error === tokenExpired) {\n this.elements.expiredTokenMessage.classList.remove('is-hidden')\n } else {\n this.elements.errorMessage.classList.remove('is-hidden')\n }\n this.elements.loader.classList.add('is-hidden')\n }\n\n _redirect (subPath) {\n const url = new URL(window.location.href).origin\n window.location.replace(`${url}${subPath}`)\n }\n\n _getVerifyTokenFromUrl () {\n const queryString = window.location.search\n const urlParams = new URLSearchParams(queryString)\n const tokenValue = urlParams.get(token)\n return tokenValue || null\n }\n}\n\nregisterWidget(VerifyAccount, widgetApi)\n","import { registerWidget } from '../../../js/core/widget/widget-directory'\nimport { VoucherCheckBalanceInfoTemplate } from './w-voucher-check-balance.info.template'\nimport Voucher from '../voucher/main'\nimport Component from '../../../js/core/component/component'\nimport { elementFromString, flush } from '../../../js/document/html-helper'\n\nconst widgetApi = 'w-voucher-check-balance'\n\nexport const attr = {\n enableRefund: `data-${widgetApi}__enable-refund`,\n refundRequestUrl: `data-${widgetApi}__refund-request-url`,\n refundShowAllCountries: `data-${widgetApi}__refund-show-all-countries`,\n refundTrack: `data-${widgetApi}__refund-track`\n}\n\nconst widgetQueries = {\n voucherRedeemer: `[data-${widgetApi}__voucher-redeemer]`,\n voucher: `[data-${widgetApi}__voucher]`,\n content: `[data-${widgetApi}__content]`\n}\n\nexport default class VoucherCheckBalance {\n /**\n * Creates a new Voucher Check Balance\n *\n * @constructor\n *\n * @param {HTMLElement} element - The element where to attach Voucher Check Balance\n * @param options\n */\n constructor (element, options = {}) {\n this.element = element\n this.element[widgetApi] = this\n this.locales = this.getLocales()\n this._getHtmlElements()\n this._attachEvents()\n }\n\n _getHtmlElements () {\n this.enableRefund = this.element.getAttribute(attr.enableRefund)\n this.contentElement = this.element.querySelector(widgetQueries.content)\n const voucherRedeemer = this.element.querySelector(widgetQueries.voucherRedeemer)\n if (voucherRedeemer) {\n this.voucherRedeemerApi = voucherRedeemer['w-voucher-redeemer']\n }\n }\n\n _attachEvents () {\n this.voucherRedeemerApi && this.voucherRedeemerApi.events.on('voucherFetched', this._render, this)\n }\n\n _render (data) {\n const isExpired = !data.isActive || !data.canBeUsed\n const html = isExpired ? this._renderExpired() : this._renderBalance(data)\n this.voucherRedeemerApi.destroy()\n const newContent = elementFromString(html)\n Component.initDocumentComponentsFromAPI(newContent)\n Component.initComponentActionElements(newContent)\n flush(this.contentElement)\n this.contentElement.appendChild(newContent)\n const voucherElement = this.contentElement.querySelector(widgetQueries.voucher)\n if (voucherElement) {\n this.voucherApis = []\n const voucherApi = new Voucher(voucherElement, {\n data: {\n id: `${this.element.id}Voucher`,\n price: {\n ...(data.amount && data.amount.value) && { value: data.amount.value },\n currencyPosition: data.amount.currencySettings.symbolPosition === 'BeforeAmount' ? 'before' : 'after',\n ...(data.amount && data.amount.currencySettings && data.amount.currencySettings.symbol) && { currency: data.amount.currencySettings.symbol }\n },\n bonus: {\n ...(data.bonus && data.bonus.amountLabel) && { amountLabel: data.bonus.amountLabel },\n ...(data.bonus && data.bonus.bonusLabel) && { bonusLabel: data.bonus.bonusLabel }\n },\n attributes: {\n 'data-w-voucher__refund-extra-param-voucher-code': data.voucherCode,\n 'data-w-voucher__refund-extra-param-email': data.email,\n 'data-w-voucher__refund-extra-param-birthdate': data.birthdate\n },\n refundRequestUrl: this.element.getAttribute(attr.refundRequestUrl),\n showAllCountries: this.element.getAttribute(attr.refundShowAllCountries) !== null,\n refundId: `${this.element.id}Refund`,\n refundTrack: this.element.getAttribute(attr.refundTrack),\n enableRefund: this.enableRefund != null,\n canRequestRefund: data.refund && data.refund.canRequestRefund,\n isAlreadyRefunded: data.refund && data.refund.isAlreadyRefunded,\n isAlreadyRequestedAndPendingToBeRefunded: data.refund && data.refund.isAlreadyRequestedAndPendingToBeRefunded,\n ...this.locales.balanceAmountText && { description: this.locales.balanceAmountText },\n ...this.locales.balanceExtraText && { expirationText: this.locales.balanceExtraText.replace('{EXPIRATION_DATE}', data.expirationDate) }\n }\n })\n this.voucherApis.push(voucherApi)\n }\n }\n\n _renderExpired () {\n return VoucherCheckBalanceInfoTemplate({\n isExpired: true,\n ...this.locales.expiredIcon && { expiredIcon: this.locales.expiredIcon },\n ...this.locales.expiredText && { expiredText: this.locales.expiredText },\n ...this.locales.expiredExtraText && { expiredExtraText: this.locales.expiredExtraText }\n })\n }\n\n _renderBalance (data) {\n return VoucherCheckBalanceInfoTemplate({\n isExpired: false,\n voucherCode: data.voucherCode\n })\n }\n\n getLocales () {\n const customLocaleElement = document.querySelector(`[data-type=\"i18n\"][data-uid=\"${this.element.id}\"]`)\n let customLocaleData = null\n try {\n customLocaleData = JSON.parse(customLocaleElement.textContent)\n } catch (err) {}\n\n return customLocaleData || {}\n }\n}\n\nregisterWidget(VoucherCheckBalance, widgetApi)\n","/**\n * The VoucherCheckBalanceInfo contains all data to render voucher information\n *\n * @typedef {Object} SliderData\n *\n * @property {String} expiredIcon - Icon for the header when balance is expired\n * @property {String} voucherCode - Voucher code\n */\nimport { BoxTemplate } from '../../components/box/c-box.template'\n\nexport const defaultVoucherCheckBalanceInfoData = {\n expiredIcon: 'clock',\n voucherCode: '',\n refundModalId: '',\n refundButtonText: '',\n refundRequestAlreadySentText: '',\n canRequestRefund: false,\n isAlreadyRequestedAndPendingToBeRefunded: false,\n refundAlreadyRequestedAndPendingToBeRefundedText: '',\n isAlreadyRefunded: false,\n alreadyRefundedText: ''\n}\n\nexport const VoucherCheckBalanceInfoTemplate = (d) => {\n d = { ...defaultVoucherCheckBalanceInfoData, ...d }\n return `${d.isExpired\n ? `
\n \n
\n ${d.expiredText}\n ${d.expiredExtraText}\n
\n
`\n : `
\n
\n
`}`\n}\n\nexport const RefundInfoTemplate = (d) => {\n return `${d.text\n ? BoxTemplate({\n variant: 'flat',\n extraClasses: `cs-state-${d.state} cs-state-${d.state}--light w-voucher-check-balance__refund-message`,\n html: d.text\n })\n : ''}`\n}\n","import { encodeAttributes } from '../../../js/helpers/string'\nimport { FormSectionTemplate } from '../../components/form/c-form__section.template'\nimport { FormFieldsetTemplate } from '../../components/form/c-form__fieldset.template'\nimport { TextboxTemplate } from '../../components/textbox/c-textbox.template'\nimport { FormTemplate } from '../../components/form/c-form.template'\nimport { BtnTemplate } from '../../components/btn/c-btn.template'\nimport { DateSelectorTemplate } from '../../components/date-selector/c-date-selector.template'\n\n/**\n * The VoucherRedeemer contains all data to render voucher redeemer form\n *\n * @typedef {Object} SliderData\n *\n * @property {String} id - Id of the widget\n * @property {String} url - Url where make the ajax call\n * @property {String} method - Method where make the ajax call\n * @property {Boolean} jsApi - Enable js widget\n */\n\nexport const defaultVoucherRedeemerTemplate = {\n id: '',\n attributes: {\n 'data-url': '',\n 'data-method': 'GET',\n 'data-component-id': ''\n },\n jsApi: false,\n voucherCodeLabel: '',\n voucherCodePlaceholder: '',\n voucherCodePattern: '',\n voucherCodeWarningRequiredMessage: '',\n voucherCodeWarningInvalidMessage: '',\n voucherCodeExtraClasses: '',\n emailLabel: '',\n emailPlaceholder: '',\n emailWarningRequiredMessage: '',\n emailWarningInvalidMessage: '',\n emailExtraClasses: '',\n birthdateLabel: '',\n birthdateDayPlaceholder: '',\n birthdateMonthPlaceholder: '',\n birthdateYearPlaceholder: '',\n birthdateWarningRequiredMessage: '',\n birthdateWarningInvalidMessage: '',\n birthdateExtraClasses: '',\n submitButtonText: '',\n submitButtonCheckingText: '',\n errorMessage: '',\n track: '',\n showCancelButton: '',\n cancelButtonText: ''\n}\n\nexport const VoucherRedeemerTemplate = (d) => {\n d = { ...defaultVoucherRedeemerTemplate, ...d }\n return `\n
\n\n ${FormTemplate({\n hasSubmitButton: false,\n validate: true,\n attributes: {\n 'data-w-voucher-redeemer__form': ''\n },\n html: FormContentTemplate(d),\n track: d.track\n })}\n
\n `\n}\n\nconst FormContentTemplate = (d) => {\n return `\n
\n ${FormSectionTemplate({\n html: FormSection(d)\n })}\n
\n
${d.errorMessage}
\n
\n ${d.showCancelButton\n ? BtnTemplate({\n jsApi: true,\n variant: 'flat-neutral',\n ...d.cancelButtonText && { text: d.cancelButtonText },\n extraClasses: 'w-voucher-redeemer__cancel-button',\n attributes: {\n 'data-w-voucher-redeemer--cancel-button': ''\n }\n })\n : ''}\n ${BtnTemplate({\n jsApi: true,\n variant: 'secondary',\n ...d.submitButtonText && { text: d.submitButtonText },\n extraClasses: 'w-voucher-redeemer__submit-button',\n attributes: {\n 'data-w-voucher-redeemer--submit-button': '',\n 'data-w-voucher-redeemer--submit-button-text': d.submitButtonText || '',\n 'data-w-voucher-redeemer--submit-button-checking-text': d.submitButtonCheckingText || ''\n }\n })}\n
\n `\n}\n\nconst FormSection = (d) => {\n return `\n ${FormFieldsetTemplate({\n html: `${TextboxTemplate({\n id: `${d.id}_voucher_redeemer_voucher_code`,\n ...d.voucherCodelabel && { label: d.voucherCodelabel },\n hiddenLabel: false,\n ...d.voucherCodePlaceholder && { placeholder: d.voucherCodePlaceholder },\n elementAttributes: {\n ...d.voucherCodePattern && { pattern: d.voucherCodePattern },\n ...d.voucherCodeWarningRequiredMessage && { 'data-message-required': d.voucherCodeWarningRequiredMessage },\n ...d.voucherCodeWarningInvalidMessage && { 'data-message-pattern': d.voucherCodeWarningInvalidMessage },\n 'data-track-value': ''\n },\n required: true,\n extraClasses: 'c-form__item ' + (d.voucherCodeExtraClasses ? d.voucherCodeExtraClasses : 'c-form__item--large'),\n attributes: {\n 'data-w-voucher-redeemer--voucher-code-input': ''\n }\n })}\n ${TextboxTemplate({\n id: `${d.id}_voucher_redeemer_email`,\n type: 'email',\n ...d.emailLabel && { label: d.emailLabel },\n hiddenLabel: false,\n ...d.emailPlaceholder && { placeholder: d.emailPlaceholder },\n elementAttributes: {\n ...d.emailWarningRequiredMessage && { 'data-message-required': d.emailWarningRequiredMessage },\n ...d.emailWarningInvalidMessage && { 'data-message-typemismatch': d.emailWarningInvalidMessage }\n },\n required: true,\n extraClasses: 'c-form__item ' + (d.emailExtraClasses ? d.emailExtraClasses : 'c-form__item--large'),\n attributes: {\n 'data-w-voucher-redeemer--email-input': ''\n }\n })}\n ${DateSelectorTemplate({\n id: `${d.id}_voucher_redeemer_birthdate`,\n ...d.birthdateLabel && { mainLabel: d.birthdateLabel },\n ...d.birthdateDayPlaceholder && { dayPlaceholder: d.birthdateDayPlaceholder },\n ...d.birthdateMonthPlaceholder && { monthPlaceholder: d.birthdateMonthPlaceholder },\n ...d.birthdateYearPlaceholder && { yearPlaceholder: d.birthdateYearPlaceholder },\n ...d.birthdateWarningRequiredMessage && { messageRequired: d.birthdateWarningRequiredMessage },\n ...d.birthdateWarningInvalidMessage && { messageInvalid: d.birthdateWarningInvalidMessage },\n required: true,\n blockModifier: true,\n extraClasses: 'c-form__item ' + (d.birthdateExtraClasses ? d.birthdateExtraClasses : 'c-form__item--large'),\n attributes: {\n 'data-w-voucher-redeemer--birthdate-selector': ''\n }\n })}\n `\n })}\n `\n}\n","import { encodeAttributes } from '../../../js/helpers/string'\nimport { PriceTemplate } from '../../components/price/c-price.template'\nimport { getTokenClass } from '../../../js/helpers/tokens'\nimport { BoxTemplate } from '../../components/box/c-box.template'\nimport { LabelTemplate } from '../../components/label/c-label.template'\nimport { BtnTemplate } from '../../components/btn/c-btn.template'\n\n// Import tokens\nconst tokensShared = require('./data/w-voucher__tokens.json')['w-voucher']\nconst tokensBrand = (() => {\n try {\n return require(`../../../../brands/${WEBPACK_BRAND}/modules/widgets/voucher/data/w-voucher__tokens.json`)['w-voucher'] // eslint-disable-line\n } catch (error) {\n return {}\n }\n})()\nconst tokens = { ...tokensShared, ...tokensBrand }\n\n/**\n * The Voucher contains all data to render voucher\n *\n * @typedef {Object} SliderData\n *\n * @property {Boolean} jsApi - Enable js widget\n */\n\nexport const defaultVoucherTemplate = {\n jsApi: false,\n extraClasses: '',\n attributes: {},\n description: '',\n expirationText: '',\n price: '',\n bonus: '',\n link: {},\n voucherCodeTitle: '',\n voucherCodeValue: '',\n voucherCodeClickToCopyText: '',\n voucherCodeCopiedCodeText: '',\n variant: 'default',\n icon: 'default',\n refundModalId: '',\n refundButtonText: '',\n refundRequestAlreadySentText: '',\n refundAlreadyRequestedAndPendingToBeRefundedText: '',\n alreadyRefundedText: '',\n enableRefund: false,\n canRequestRefund: false,\n isAlreadyRequestedAndPendingToBeRefunded: false,\n isAlreadyRefunded: false\n}\n\nexport const VoucherTemplate = (d) => {\n d = { ...defaultVoucherTemplate, ...d }\n return `\n
\n ${BoxTemplate({\n extraClasses: 'w-voucher__container',\n html: BoxContent(d)\n })}\n ${d.enableRefund\n ? `
\n ${d.refundModalId && d.canRequestRefund && d.refundButtonText\n ? `${BtnTemplate({\n jsApi: true,\n variant: 'flat-neutral',\n block: true,\ntext: d.refundButtonText,\n extraClasses: 'w-voucher__refund-button',\n attributes: { 'data-c-modal-v2__action': 'open', 'data-c-modal-v2__id': d.refundModalId }\n })}`\n : ''}\n ${d.isAlreadyRequestedAndPendingToBeRefunded && d.refundAlreadyRequestedAndPendingToBeRefundedText\n ? `${RefundInfoTemplate({\n state: 'info',\n text: d.refundAlreadyRequestedAndPendingToBeRefundedText\n })}`\n : ''}\n ${d.isAlreadyRefunded && d.alreadyRefundedText\n ? `${RefundInfoTemplate({\n state: 'info',\n text: d.alreadyRefundedText\n })}`\n : ''}\n
\n
`\n : ''}\n
\n `\n}\n\nexport const RefundInfoTemplate = (d) => {\n return `${d.text\n ? BoxTemplate({\n variant: 'flat',\n extraClasses: `cs-state-${d.state} cs-state-${d.state}--light w-voucher__refund-message`,\n html: d.text\n })\n : ''}`\n}\n\nconst BoxContent = (d) => {\n return `${d.link && d.link.href ? LinkInnerContent(d) : DivInnerContent(d)}\n ${d.voucherCodeValue\n ? `
\n
${d.voucherCodeTitle}
\n
${d.voucherCodeValue}
\n
${d.voucherCodeClickToCopyText}
\n
`\n : ''}\n `\n}\n\nconst LinkInnerContent = (d) => {\n return `\n \n ${InnerContent(d)}\n `\n}\n\nconst DivInnerContent = (d) => {\n return `\n
\n ${InnerContent(d)}\n
`\n}\n\nconst InnerContent = (d) => {\n return `\n
\n
\n
\n
\n
${d.description}
\n ${d.bonus && d.bonus.bonusLabel\n ? `
\n
${d.bonus.amountLabel}
\n ${LabelTemplate({\n extraClasses: 'w-voucher__balance_bonus_info_label',\n variant: 'info',\n text: d.bonus.bonusLabel\n })}\n
`\n : ''}\n ${d.price\n ? PriceTemplate({\n ...d.price,\n size: getTokenClass('priceSize', d.variant, tokens),\n extraClasses: 'w-voucher__balance-price'\n })\n : ''}\n
${d.expirationText}
\n
\n ${d.link && d.link.href ? '' : ''}\n `\n}\n","import { registerWidget } from '../../../js/core/widget/widget-directory'\nimport { elementFromString, flush, getDataPrefixed, moveChildrenFrom } from '../../../js/document/html-helper'\nimport Component from '../../../js/core/component/component'\nimport { VoucherTemplate } from './w-voucher.template'\nimport { RefundInfoTemplate } from '../voucher-check-balance/w-voucher-check-balance.info.template'\nimport RefundWidget from '../refund/main'\nimport { fromCamelCase } from '../../../js/helpers/string'\n\nconst EventEmitter = require('eventemitter3')\n\nconst widgetApi = 'w-voucher'\n\nconst attr = {\n voucherCode: `data-${widgetApi}__code`,\n extraParam: 'wVoucher__refundExtraParam'\n}\n\nconst widgetQueries = {\n refund: `[data-${widgetApi}__refund]`,\n refundLink: `[data-${widgetApi}__refund-link]`\n}\n\nexport default class Voucher {\n /**\n * Creates a voucher widget\n *\n * @constructor\n *\n * @param {HTMLElement} element -\n * @param options\n */\n constructor (element, options = {}) {\n if (!element) { return }\n this.element = element\n this.options = options\n this.events = new EventEmitter()\n\n this.voucherCode = this.element.getAttribute(attr.voucherCode)\n\n this.texts = this.getTexts((options.data && options.data.id) ? options.data.id : undefined)\n if (options.data) {\n this._createHtml()\n }\n this._getHtmlElements()\n this._bindEvents()\n }\n\n _getHtmlElements () {\n if (!this.refundApi) {\n const refundElement = this.element.querySelector(widgetQueries.refund)\n if (refundElement) {\n this.refundApi = refundElement['w-refund']\n }\n }\n this.refundLinkElement = this.element.querySelector(widgetQueries.refundLink)\n }\n\n _createHtml () {\n const refundModalId = this.options.data.attributes ? `${this.options.data.attributes[attr.refundId]}Modal` : ''\n const html = elementFromString(VoucherTemplate({ ...this.texts, ...this.options.data, refundModalId }))\n moveChildrenFrom(html, this.element, { flush: true, attributes: true })\n Component.initDocumentComponentsFromAPI(this.element)\n const refundElement = this.element.querySelector(widgetQueries.refund)\n if (refundElement) {\n this.refundApi = new RefundWidget(refundElement, {\n data: {\n id: this.options.data.refundId,\n refundRequestUrl: this.options.data.refundRequestUrl,\n showAllCountries: this.options.data.showAllCountries,\n modalId: refundModalId,\n track: this.options.data.refundTrack,\n attributes: this._getRefundAttributes()\n }\n })\n }\n }\n\n _getRefundAttributes () {\n const extraParams = getDataPrefixed(this.element, attr.extraParam)\n const attributes = {}\n Object.entries(extraParams).forEach(([field, value]) => {\n const newField = `data-w-refund__extra-param-${fromCamelCase(field)}`\n attributes[newField] = value\n })\n return attributes\n }\n\n _bindEvents () {\n this.element.querySelectorAll('.w-voucher__code').forEach(el => {\n el.addEventListener('click', (e) => {\n e.preventDefault()\n window.getSelection().selectAllChildren(\n el.querySelector('.w-voucher__code-guid')\n )\n\n document.execCommand('copy')\n\n window.getSelection().empty()\n\n const tooltip = el.querySelector('.w-voucher__code-tooltip')\n tooltip.innerHTML = this.element.dataset.wVoucher__copiedCodeText\n })\n\n el.addEventListener('mouseleave', (e) => {\n const tooltip = el.querySelector('.w-voucher__code-tooltip')\n tooltip.innerHTML = this.element.dataset.wVoucher__clickToCopyText\n })\n })\n\n this.voucherCode && this.element.addEventListener('click', (ev) => this.events.emit('voucherSelected', this.voucherCode, ev))\n this.refundApi && this.refundApi.events.on('refundRequested', this._renderRefundRequested, this)\n }\n\n _renderRefundRequested () {\n const html = RefundInfoTemplate({\n ...this.texts.refundAlreadyRequestedAndPendingToBeRefundedText && { text: this.texts.refundAlreadyRequestedAndPendingToBeRefundedText },\n state: 'success'\n })\n const newContent = elementFromString(html)\n flush(this.refundLinkElement)\n this.refundLinkElement.appendChild(newContent)\n }\n\n getTexts (id = this.element.id) {\n const customLocaleElement = document.querySelector(`[data-uid=\"${id}\"]`)\n let customLocaleData = null\n try {\n customLocaleData = JSON.parse(customLocaleElement.textContent)\n } catch (err) {}\n\n return customLocaleData || {}\n }\n}\n\nregisterWidget(Voucher, widgetApi)\n"],"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_arrayLikeToArray","arr","len","arr2","Array","_defineProperties","target","props","descriptor","_toPropertyKey","input","hint","prim","toPrimitive","res","String","_toPrimitive","widgetApi","widgetQueries","adsContainer","concat","apiUrl","adItem","noDataTitle","noDataMessage","loader","extraParams","classQueries","adsContainerWrapper","ProductAds","_fetch","_notifyAd","element","instance","Constructor","_classCallCheck","this","querySelector","getAttribute","getExtraParameters","init","protoProps","fetch","extraParamsElements","querySelectorAll","isArray","_arrayWithoutHoles","iter","from","_iterableToArray","minLen","toString","test","_unsupportedIterableToArray","_nonIterableSpread","reduce","obj","el","_callee","fetchUrl","fetchedData","_context","getUrlFromString","fetchJsonData","result","data","ads","render","t0","window","newrelic","noticeError","_this","remove","adsRendered","ad","index","_ad$contentHeading","CollectionItemTemplate","title","contentHeading","subTitle","contentSubheading","buildSubTitle","link","clickUrl","href","image","contentImage","resolvedSrc","ratio","dynamicRatios","bp","attributes","impressionUrl","viewableImpressionUrl","extraClasses","flightId","collectionAdsRendered","CollectionRowTemplate","html","expandedFrom","innerHTML","Component","initDocumentComponentsFromAPI","notifyEvents","observeAds","_this$noDataTitle","_this$noDataMessage","messageBox","AbsoluteDialogTemplate","body","closable","alertType","_this2","rendered","notifyAd","_this3","adItems","observedAds","Map","observer","IntersectionObserver","entries","entry","isIntersecting","timeoutId","setTimeout","viewed","unobserve","set","has","clearTimeout","get","delete","threshold","observe","_x","_callee2","response","errorMessage","_context2","ok","status","registerWidget","da","priceLegend","publicPrice","textButton","de","en","nb","fr","nl","sv","rebookingOptions","MODAL_OPENED","SAME_ACCO_LINK_CLICKED","DIFFERENT_ACCO_LINK_CLICKED","ANOTHER_PAGE_LINK_CLICKED","recommendedAccoListerEvents","RECOMMENDED_ACCO_LISTER_PRINTED","RECOMMENDED_ACCO_LISTER_ITEM_CLICKED","RECOMMENDED_ACCO_LISTER_CTA_CLICKED","pageTimerPrefix","SessionRecorder","accoId","shouldTimePage","timerStartName","timeSpentTimerName","addListeners","document","hasFocus","startTimer","stopTimer","localStorage","setItem","Date","now","startTime","getItem","existingTimeSpentItem","existingTimeSpent","parseInt","elapsedTime","removeItem","clearListeners","removeEventListener","bind","addEventListener","toggleTimer","filter","startsWith","map","timeSpent","getAccoIdFromKey","replace","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","_objectSpread","getOwnPropertyDescriptors","defineProperties","EventEmitter","require","urlAttr","urlAcmAttr","priceLabelTextAttr","sliderAttr","variantAttr","showCtaButtonAttr","ctaButtonTextAttr","useSessionRecordingAttr","resultsElement","trackAttr","RecommendedAccoLister","_fetchAndUpdate","options","acmModalId","id","packageItems","events","track","hasAttribute","registeredEvents","registerWidgetEvents","url","acmBaseUrl","priceLabelText","variant","showCtaButton","ctaButtonText","useSessionRecording","urlParams","originList","documentObserver","observerAPI","on","fetchAndUpdate","console","warn","staticContentElement","getElementsByClassName","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","sessionRecorder","items","item","_item$price$priceDisc","modalId","processPackageItem","acmHideInfoIcon","price","mandatoryExtraCostsText","priceLabel","priceDiscounts","description","priceLabel2","acmInformation","getACMPriceLabel","text","staticText","acmUrl","priceLabelGrayed","AccoListerContentTemplate","parentNode","weights","hideParent","absoluteUrl","_response$response","classList","add","contains","retrievePairs","setAttribute","apiCaller","success","results","getAccoListerTipsTemplate","bindClickEventToResults","_getLinksForEachResult","onClickItem","initComponentActionElements","Img","createInstancesOnDocument","ev","emit","event","defaultRefundConfirmationData","confirm","decline","back","RefundConfirmationTemplate","BtnTemplate","icon","TitleTemplate","size","jsApi","defaultRefundResponseTemplate","isSuccess","defaultRefundTemplate","refundRequestUrl","showAllCountries","fieldsets","group","fields","types","isRequired","fieldType","validationUrl","validationQueryKeyWord","sepaOption","nonSepaOption","attr","extraParam","form","optionsConfirm","optionsDecline","optionsBack","optionsDone","conditions","closeModal","modal","choiceListApi","modalApi","buttonApi","modalContainer","typeChoiceList","textbox","dropdown","textboxIcon","hidden","disabled","Refund","_validateInputServerSide2","_validateFieldsAsync2","_sendForm2","currentType","nextRender","apis","formData","sendFormFlag","validateServerSideFieldsFlag","texts","getTexts","_createHtml","getDataPrefixed","_getHtmlElements","_getData","_attachEvents","countries","JSON","parse","hasCountries","allCountries","elementFromString","encodeAttributes","ModalV2Template","style","bodyContent","moveChildrenFrom","flush","modalElement","_closeModal","refundEvents","REFUND_REQUEST_CLICKED","_renderForm","partialHtml","FormTemplate","hasSubmitButton","validate","FormSectionTemplate","FormFieldsetTemplate","DropdownTemplate","label","typeFieldLabel","sepaFieldValue","selected","nonSepaFieldValue","required","hideRequiredSymbol","fieldset","includes","field","placeholder","messageRequired","TextboxTemplate","iconPosition","patternRule","messageInvalid","join","refundTitle","continueButton","declineButton","_renderConditions","previousRender","_renderHTML","_attachFormEvents","_enableFormInputsErrors","_attachInputEventsToValidateServerSide","filledData","BoxTemplate","termsAndConditionsText","ChoiceListTemplate","conditionsLabel","conditionsRequiredMessage","backButton","dataPosted","successfulTitle","failureTitle","successfulText","failureText","confirmButton","REFUND_REQUESTED","textBoxWrapperIcon","isValid","_validateInputServerSide","isValidAsync","toBeValidated","_setInputFieldState","_prepareDataToBeValidated","_validateFieldsAsync","isValidating","_textBoxWrapperIcon$c","_textBoxWrapperIcon$c2","partialUrl","_setInputDisabledState","_setButtonsState","_toConsumableArray","isDisabled","enableErrors","_this4","doneButton","_clickedConfirm","_clickedClose","_clickedBack","_getFormControls","_changeType","preventDefault","_sendForm","close","_getFormData","formEl","_this5","elements","_this6","getProp","_this7","dataToBeValidated","val","_x2","validationPromises","_this8","timeout","all","noErrors","fieldName","setValidityResult","_callee3","_context3","some","_getDataToBeValidatedServerSide","isSepa","contextItemId","_renderResponse","newContent","appendChild","isLoading","setProps","loading","setProp","customLocaleElement","customLocaleData","textContent","loadQueueHelper","ReviewsList","stayedIn","anonymous","noComment","translateButton","viewOriginalButton","couple","family","friends","other","alone","withfriends","withpartner","withfamily","withsingleparent","holiday","pricequality","location","hotel","cleanliness","personnel","children","meal","pool","facilities","globalLocales","register","language","componentLocales","languageSite","tokensShared","tokensBrand","tokens","defaultReviewsListItemData","departureDate","userFullName","partyCompositionId","comment","collapseHeight","countryCode","languageCode","_defineProperty","dropdownMultipleWidgetApi","scrollConfig","block","behavior","isInsideModal","itemElement","itemsElement","itemTextElement","noItemsArea","paginationElement","reviewCountryFlag","reviewOverallRating","reviewsOverallTitle","reviewPartyComp","sortingElement","translatedTextArea","travellerFilterElementParent","typeTravellerFilter","viewOriginalTextButton","translateUrl","showPartyComposition","showScores","classNames","empty","hasData","in","isHidden","isTransalted","languageSwitch","loaderIcon","noReviews","notLoaded","reviewSingleScore","reviewsLoaderIcon","scoreGrade","scoreTitle","_resolveSetTravelFilterDropdownPromise","_setTravelFilterDropdown","_translateReview","elementId","travellerFilterElement","languageSwitchParent","extraParamsNoLimit","getExtraParametersNoLimit","componentInsideModal","overallTitleText","paginationOffset","offset","paginationLimit","limit","pagination","currentPage","totalPages","childComponents","bindEvents","staticTexts","updateResults","reviewsListEvents","REVIEWS_LIST_LANGUAGE_SWITCH","checked","staticProps","dropdownElement","getSelectedValues","reviewsAmountOfTravelerTypes","setTravelFilterDropdown","travelFilter","partyCompGroup","selectedOptions","filterLabel","filterOkButtonText","filterCancelButtonText","filterData","getOptionsSelected","partyCompositionText","partyCompositionValue","travelerTypeId","travelerTypeName","toLowerCase","caption","count","amount","isSelected","indexOf","isAvailable","getLabel","getOkButtonLabelText","getCancelButtonLabelText","isMultiple","okButtonText","cancelButtonText","PARTY_COMPOSITION_FILTER","disable","dropdownFilterToFillButtonOk","getOkButton","setTranslateListeners","translateReview","viewOriginalTextReview","review","translatedTextContainer","innerText","translateDataLayer","_x3","reviewId","originalText","translationId","storagedTranslation","translatedText","webStorage","local","reviewOverallRatingElement","overallRating","country","partyComp","categoryScores","itemScore","itemLabel","categoryLabel","categoryScore","REVIEWS_LIST_REVIEW_TRANSLATED","_callee4","_context4","reviews","REVIEWS_LIST_DATA_LOADED","updateTotalResults","updatePagination","silent","resolveSetTravelFilterDropdownPromise","totalResults","Math","ceil","reviewItems","reviewsListId","getTokenClass","rating","NumberScoreTemplate","toFixed","substr","score","scoreLabel","scoreBasis","arrowDirection","smallBasis","labelPosition","CollapseTemplate","CollapseTriggerTemplate","readMore","action","readLess","LoaderTemplate","categories","dataBar","ReviewsListItemTemplate","newOffset","setExtraParameters","scrollIntoView","REVIEWS_LIST_PAGINATION","travelFilterProcessed","showOnlyInWebsiteLanguage","sorting","getValue","travelertypes","params","_ref","_ref2","paramName","paramValue","currentWidgets","instances","createInstanceOnElement","defaultReviewsTeaserItemsData","blockText","renderReviewsTeaserItem","reviewsListWidgetApi","numberScoreComponentApi","modalV2Api","reviewsListWidgetsSelector","widgetWrapper","reviewsElement","reviewsElementsWrapper","overviewNumberScore","overviewLoader","numberScoreSelector","messageArea","goToReviewsBtn","itemContent","reviewsModal","reviewsTab","overviewNumberScoreGrade","overviewNumberScoreTitle","overviewNumberScoreLabelText","isUnresolved","isLoaded","isClicable","numberScoreTeaser","numberScoreLabels","numberScoreTitle","loaderTeaserIcon","settings","numberScoreOverview","seeAllReviews","ReviewsTeaser","_renderNumberScoreTeaser","reviewsTeaserEvents","REVIEWS_TEASER_LOADED","numberScoreDonorWrapper","numberScoreDonor","numberScoreTeaserInfoBtn","infoModal","open","resolveTeaserReviews","overviewNumber","openReviewsModal","REVIEWS_TEASER_MODAL_OPENED","reviewsListInsideModal","source","setCTAListeners","reviewsTeaserId","itemRendered","ReviewsTeaserItemsTemplate","roomsLeftAvailable","lastRoomAvailable","selectRoomButtonText","onRequestLabel","roomTypeDescriptionTitle","emptyFilteredRooms","roomsNotMatchingOccupancyHeader","priceFromWord","headerText","invalidRoomAllocation","adultsWord","adultWord","adultsAgeRange","childrenWord","childWord","childrenAgeRange","babiesWord","babyWord","babiesAgeRange","roomStockThresholdToShowLowAvailability","moreBabiesThanAdults","peoplePendingToAllocateText","peopleAllocatedInExcess","noCompatibleRoomsForPeoplePendingToAllocateText","wrongDistributionInRooms","pricePerPerson","pricePerPersonAbbreviation","roomWord","noValidDistributionInRoom","noMoreRoomAvailable","wrongAllocationMessageToContinue","specialAgeProfileHeaderTitle","specialAgeProfileHeaderToggleText","specialAgeProfileContentTitle","searchMap","SEARCH_MAP_CLOSED","SEARCH_MAP_REFRESH","userRating","button","unAvailableTitle","unAvailableText","onRequest","discountSaveText","sustainable","sunwebOnly","defaultSkiPricesData","tableHeaders","SkiPriceDetailsGroupsTemplate","skiPriceDetailsGroups","TableTemplate","TableItemTemplate","skiPriceDetailsGroup","details","detail","durationText","priceText","SkiPrices","getExtraParamsFromDom","split","extraData","contextitemid","servicetype","defaultAccordionData","renderSkiPrices","fragment","createDocumentFragment","skiPriceSections","skiPriceSection","titleSection","assign","defaultTitleData","AccordionTemplate","skiPriceGroups","skiPriceGroup","titleGroup","sectionCount","SkiPricesTemplate","SmartBanner","buttonText","appName","appAuthor","appIosOnStoreText","appAndroidOnStoreText","appIosPriceText","appAndroidPriceText","appIcon","SmartAppBanner","_getInnerBannerApi","kudagoOptions","daysHidden","closedExpirationDays","daysReminder","viewedExpirationDays","appStoreLanguage","author","store","ios","android","windows","theme","banner","_createBanner","StaticContentData","_createClass","dataset","queryString","search","URLSearchParams","staticContentDataEvents","STATIC_CONTENT_DATA_READY","VerifyAccount","expiredTokenMessage","token","_yield$apiCaller","_getVerifyTokenFromUrl","_redirect","_displayMessage","subPath","URL","origin","enableRefund","refundShowAllCountries","refundTrack","voucherRedeemer","voucher","content","VoucherCheckBalance","locales","getLocales","contentElement","voucherRedeemerApi","_render","isActive","canBeUsed","_renderBalance","_renderExpired","destroy","voucherElement","voucherApis","voucherApi","Voucher","currencyPosition","currencySettings","symbolPosition","symbol","currency","bonus","amountLabel","bonusLabel","voucherCode","email","birthdate","refundId","canRequestRefund","refund","isAlreadyRefunded","isAlreadyRequestedAndPendingToBeRefunded","balanceAmountText","balanceExtraText","expirationText","expirationDate","VoucherCheckBalanceInfoTemplate","isExpired","expiredIcon","expiredText","expiredExtraText","defaultVoucherCheckBalanceInfoData","refundModalId","refundButtonText","refundRequestAlreadySentText","refundAlreadyRequestedAndPendingToBeRefundedText","alreadyRefundedText","RefundInfoTemplate","state","defaultVoucherRedeemerTemplate","voucherCodeLabel","voucherCodePlaceholder","voucherCodePattern","voucherCodeWarningRequiredMessage","voucherCodeWarningInvalidMessage","voucherCodeExtraClasses","emailLabel","emailPlaceholder","emailWarningRequiredMessage","emailWarningInvalidMessage","emailExtraClasses","birthdateLabel","birthdateDayPlaceholder","birthdateMonthPlaceholder","birthdateYearPlaceholder","birthdateWarningRequiredMessage","birthdateWarningInvalidMessage","birthdateExtraClasses","submitButtonText","submitButtonCheckingText","showCancelButton","VoucherRedeemerTemplate","FormContentTemplate","FormSection","voucherCodelabel","hiddenLabel","elementAttributes","pattern","DateSelectorTemplate","mainLabel","dayPlaceholder","monthPlaceholder","yearPlaceholder","blockModifier","defaultVoucherTemplate","voucherCodeTitle","voucherCodeValue","voucherCodeClickToCopyText","voucherCodeCopiedCodeText","BoxContent","LinkInnerContent","DivInnerContent","InnerContent","LabelTemplate","PriceTemplate","refundLink","_bindEvents","refundApi","refundElement","refundLinkElement","RefundWidget","_getRefundAttributes","newField","fromCamelCase","getSelection","selectAllChildren","execCommand","wVoucher__copiedCodeText","wVoucher__clickToCopyText","_renderRefundRequested"],"sourceRoot":""}