{"version":3,"file":"./content/js/widgets-module.js","mappings":"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","sources":["webpack:///./scripts/widgets-module/services/cookie.service.ts","webpack:///./scripts/widgets-module/components/accessibility-pane/accessibility-pane.component.ts","webpack:///./scripts/widgets-module/components/countdown-timer/countdown-timer.component.ts","webpack:///./scripts/widgets-module/components/favourites/favourites-storage.service.ts","webpack:///./scripts/widgets-module/components/favourites/favourites-control.service.ts","webpack:///./scripts/widgets-module/mixins/event-emitter.mixin.ts","webpack:///./scripts/widgets-module/components/favourites/favourites-item.component.ts","webpack:///./scripts/widgets-module/components/favourites/favourites-list-control.service.ts","webpack:///./scripts/widgets-module/components/map/map.component.ts","webpack:///./scripts/widgets-module/components/navigation-bar/navigation-bar.component.ts","webpack:///./scripts/widgets-module/components/notification/notification-modal.component.ts","webpack:///./scripts/widgets-module/components/notification/notification-pane.component.ts","webpack:///./scripts/widgets-module/components/notification/notification.service.ts","webpack:///./scripts/widgets-module/components/smart-suggest/smart-suggest.component.ts","webpack:///./scripts/widgets-module/components/slick-slider/slick-slider.component.ts","webpack:///./scripts/widgets-module/components/date-picker/date-picker.component.ts","webpack:///./scripts/widgets-module/components/assistant-contact-form/assistant-contact-form.component.ts","webpack:///./scripts/widgets-module/components/character-counter/character-counter.component.ts","webpack:///./scripts/widgets-module/components/image-upload-preview/image-upload-preview.component.ts","webpack:///./scripts/widgets-module/components/hide-page-button/hide-page-button.component.ts","webpack:///./scripts/widgets-module/app.ts","webpack:///./scripts/widgets-module/entry.ts"],"sourcesContent":["\r\n// TODO: fix warnings\r\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\r\n/* eslint-disable @typescript-eslint/dot-notation */\r\nexport class CookieService {\r\n public set(name: string, value: string, options: object): void {\r\n options = {\r\n path: \"/\",\r\n ...options\r\n };\r\n\r\n if (options[\"expires\"] instanceof Date) {\r\n options[\"expires\"] = options[\"expires\"].toUTCString();\r\n }\r\n\r\n let updatedCookie = encodeURIComponent(name) + \"=\" + encodeURIComponent(value);\r\n\r\n for (const optionKey in options) {\r\n updatedCookie += \"; \" + optionKey;\r\n const optionValue = options[optionKey];\r\n if (optionValue !== true) {\r\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\r\n updatedCookie += \"=\" + optionValue;\r\n }\r\n }\r\n\r\n document.cookie = updatedCookie;\r\n }\r\n\r\n public get(name: string): string {\r\n const matches = document.cookie.match(new RegExp(\"(?:^|; )\" + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, \"\\\\$1\") + \"=([^;]*)\"));\r\n return matches ? decodeURIComponent(matches[1]) : null;\r\n }\r\n}\r\n","import { CookieService } from \"widgets-module/services/cookie.service\";\r\n\r\nexport class AccessibilityPaneComponent {\r\n\r\n private readonly _cookieService = new CookieService();\r\n\r\n private _currentStyle = \"\";\r\n private _currentFontSize = \"\";\r\n private _cookieKey: string = null;\r\n private _cookieSplitter: string = null;\r\n\r\n private _currentContext: JQuery = null;\r\n private _fontSizeButtons: JQuery = null;\r\n private _styleButtons: JQuery = null;\r\n private _stylesheets: JQuery = null;\r\n private _html: JQuery = null;\r\n\r\n private _cookieOptions: object = { };\r\n\r\n private setCookie(): void {\r\n this._cookieService.set(this._cookieKey, `${this._currentFontSize}${this._cookieSplitter}${this._currentStyle}`, this._cookieOptions);\r\n }\r\n\r\n private getCookie(): string {\r\n return this._cookieService.get(this._cookieKey);\r\n }\r\n\r\n private setFontSize(size: string): void {\r\n this._html.css(\"font-size\", size);\r\n\r\n this._currentFontSize = size;\r\n this.setCookie();\r\n }\r\n\r\n private setStyleSheet(style: string): void {\r\n this._stylesheets.each((index: number, element: HTMLElement) => {\r\n const stylesheet = $(element);\r\n const isStylesheetDisabled = stylesheet.attr(\"data-contrast\") !== style;\r\n stylesheet.prop(\"disabled\", isStylesheetDisabled);\r\n });\r\n\r\n this._currentStyle = style;\r\n this.setCookie();\r\n }\r\n\r\n private tryReadCookie(): boolean {\r\n try {\r\n const cookie = this.getCookie();\r\n if (!cookie) {\r\n return false;\r\n }\r\n\r\n const cookieContent = cookie.split(this._cookieSplitter);\r\n this._currentFontSize = cookieContent[0];\r\n this._currentStyle = cookieContent[1];\r\n return true;\r\n }\r\n catch (e) {\r\n console.log(e);\r\n return false;\r\n }\r\n }\r\n\r\n private setInitialValues(): void {\r\n if (this.tryReadCookie()) {\r\n this.setFontSize(this._currentFontSize);\r\n this.setStyleSheet(this._currentStyle);\r\n }\r\n\r\n const now = new Date();\r\n // eslint-disable-next-line @typescript-eslint/dot-notation\r\n this._cookieOptions[\"expires\"] = now.setTime(now.getTime() + (100 * 24 * 60 * 60 * 1000)); // 100 days to expire\r\n }\r\n\r\n private bindEvents(): void {\r\n this._fontSizeButtons.on(\"click\", (event: Event) => {\r\n const fontSize = $(event.target).attr(\"data-font-size\");\r\n this.setFontSize(fontSize);\r\n });\r\n\r\n this._styleButtons.on(\"click\", () => {\r\n const contrast = $(event.target).attr(\"data-contrast\");\r\n this.setStyleSheet(contrast);\r\n });\r\n }\r\n\r\n private parseContext(): void {\r\n this._html = $(\"html\");\r\n this._fontSizeButtons = $(\".js-accessibility-pane__font-size\", this._currentContext);\r\n this._styleButtons = $(\".js-accessibility-pane__contrast\", this._currentContext);\r\n this._stylesheets = $(\".js-contrast-style\");\r\n }\r\n\r\n public init(context: JQuery, cookieKey: string, cookieSplitter: string): void {\r\n this._currentContext = context || this._currentContext;\r\n this._cookieKey = cookieKey || this._cookieKey;\r\n this._cookieSplitter = cookieSplitter || this._cookieSplitter;\r\n\r\n this.parseContext();\r\n this.bindEvents();\r\n this.setInitialValues();\r\n }\r\n\r\n public static init(context: JQuery, cookieKey: string, cookieSplitter: string): AccessibilityPaneComponent {\r\n const component = new AccessibilityPaneComponent();\r\n component.init(context, cookieKey, cookieSplitter);\r\n return component;\r\n }\r\n}\r\n\r\n","\r\n// TODO: fix eslint\r\n/* eslint-disable @typescript-eslint/no-unsafe-call */\r\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\r\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\r\n\r\nexport class CountdownTimerComponent {\r\n private _currentContext: JQuery = null;\r\n\r\n // jquery-countdown docs: http://hilios.github.io/jQuery.countdown/documentation.html#event-object\r\n private readonly _yearsTemplate = \"%-Y year%!Y \";\r\n private readonly _monthsTemplate = \"%-m month%!m \";\r\n private readonly _weeksTemplate = \"%-W week%!W \";\r\n private readonly _daysTemplate = \"%-d day%!d \";\r\n private readonly _hoursTemplate = \"%-H hour%!H \";\r\n private readonly _minutesTemplate = \"%-M minute%!M \";\r\n private readonly _secondsTemplate = \"%-S second%!S\";\r\n\r\n private getTemplate(offset: jQueryCountdown.OffsetEvent): string {\r\n if (offset.years > 0) {\r\n return `${this._yearsTemplate}${this._monthsTemplate}`;\r\n } else if (offset.months > 0) {\r\n return `${this._monthsTemplate}${this._weeksTemplate}`;\r\n } else if(offset.weeks > 0) {\r\n return `${this._weeksTemplate}${this._daysTemplate}`;\r\n } else if(offset.days > 0) {\r\n return `${this._daysTemplate}${this._hoursTemplate}${this._minutesTemplate}`;\r\n } else {\r\n return `${this._hoursTemplate}${this._minutesTemplate}${this._secondsTemplate}`;\r\n }\r\n }\r\n\r\n public init(context: JQuery, finalDateTime: string): void {\r\n this._currentContext = context || this._currentContext;\r\n\r\n this._currentContext.countdown(finalDateTime, (event: jQueryCountdown.Event) => {\r\n this._currentContext.html(event.strftime(this.getTemplate(event.offset)));\r\n });\r\n }\r\n\r\n public static init(context: JQuery, finalDateTime: string): CountdownTimerComponent {\r\n const component = new CountdownTimerComponent();\r\n component.init(context, finalDateTime);\r\n return component;\r\n }\r\n}\r\n\r\n","import { CookieService } from \"widgets-module/services/cookie.service\";\r\n\r\nexport class FavouritesStorage {\r\n\r\n private readonly _cookieService = new CookieService();\r\n private readonly _cookieName: string;\r\n private readonly _cookieSplitter: string;\r\n private readonly _cookieSettings = {\r\n expires: new Date().setDate(365) // sliding expiration\r\n };\r\n\r\n public constructor(cookieName: string, cookieSplitter: string) {\r\n this._cookieName = cookieName;\r\n this._cookieSplitter = cookieSplitter;\r\n }\r\n\r\n public add(pageKey: string): void {\r\n const favourites = this.getFavourites();\r\n if (favourites.includes(pageKey)) {\r\n return;\r\n }\r\n favourites.push(pageKey);\r\n this.setFavourites(favourites);\r\n }\r\n\r\n public remove(pageKey: string): void {\r\n const favourites = this.getFavourites().filter(x => x !== pageKey);\r\n this.setFavourites(favourites);\r\n }\r\n\r\n public has(pageKey: string): boolean {\r\n return this.getFavourites().includes(pageKey);\r\n }\r\n\r\n private getFavourites(): Array {\r\n const favourites = this._cookieService.get(this._cookieName);\r\n if (!favourites) {\r\n return new Array();\r\n }\r\n return favourites.split(this._cookieSplitter);\r\n }\r\n\r\n private setFavourites(favourites: Array): void {\r\n const favouritesCookie = favourites.join(this._cookieSplitter);\r\n this._cookieService.set(this._cookieName, favouritesCookie, this._cookieSettings);\r\n }\r\n}\r\n","import { FavouritesStorage } from \"widgets-module/components/favourites/favourites-storage.service\";\r\n\r\nexport class FavouritesControl {\r\n\r\n private _storage: FavouritesStorage = null;\r\n private _currentContext: JQuery = null;\r\n private _pageKey: string = null;\r\n private _addButton: JQuery = null;\r\n private _removeButton: JQuery = null;\r\n\r\n private _classMap = {\r\n addButton: \".js-add-to-favourites\",\r\n removeButton: \".js-remove-from-favourites\"\r\n };\r\n\r\n private toggleButtons(isAddToFavourite: boolean): void {\r\n this._addButton.toggle(isAddToFavourite);\r\n this._removeButton.toggle(!isAddToFavourite);\r\n }\r\n\r\n private bindEvents(): void {\r\n this._addButton.on(\"click\", (e) => {\r\n e.preventDefault();\r\n this._storage.add(this._pageKey);\r\n this.toggleButtons(false);\r\n });\r\n\r\n this._removeButton.on(\"click\", (e) => {\r\n e.preventDefault();\r\n this._storage.remove(this._pageKey);\r\n this.toggleButtons(true);\r\n });\r\n }\r\n\r\n private setState(): void {\r\n const currentPageIsVafourite = this._storage.has(this._pageKey);\r\n this.toggleButtons(!currentPageIsVafourite);\r\n }\r\n\r\n private parseContext(): void {\r\n this._addButton = $(this._classMap.addButton, this._currentContext);\r\n this._removeButton = $(this._classMap.removeButton, this._currentContext);\r\n }\r\n\r\n public init(context: JQuery, pageKey: string, cookieName: string, cookieSplitter: string): void {\r\n this._currentContext = context || this._currentContext;\r\n this._pageKey = pageKey || this._pageKey;\r\n this._storage = new FavouritesStorage(cookieName, cookieSplitter);\r\n\r\n this.parseContext();\r\n this.setState();\r\n this.bindEvents();\r\n }\r\n\r\n}\r\n","import { Constructor } from \"widgets-module/types/constructor\";\r\nimport { EventArg } from \"widgets-module/types/event-arg\";\r\nimport { Observable, Subject } from \"rxjs\";\r\n\r\nexport interface IEventEmitter {\r\n complete(event: string): void;\r\n on(event: string): Observable;\r\n emit(event: string, arg?: EventArg): void;\r\n}\r\n\r\nexport const EventEmitterMixin = > (\r\n BaseClass: TBaseClass\r\n): TBaseClass & Constructor => {\r\n\r\n return class EventEmitterExtension extends BaseClass implements IEventEmitter {\r\n protected _subjects: Map> = new Map>();\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n public constructor(...args: Array) {\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\r\n super(...args);\r\n }\r\n\r\n public on(event: string): Observable {\r\n if (!this._subjects.has(event)) {\r\n this._subjects.set(event, new Subject());\r\n }\r\n\r\n return this._subjects.get(event).asObservable();\r\n }\r\n\r\n public emit(event: string, arg?: EventArg): void {\r\n const subject = this.getSubject(event);\r\n\r\n if(subject) {\r\n subject.next(arg);\r\n }\r\n }\r\n\r\n public complete(event: string): void {\r\n const subject = this.getSubject(event);\r\n subject.complete();\r\n\r\n this._subjects.delete(event);\r\n }\r\n\r\n private getSubject = (event: string): Subject => this._subjects.get(event);\r\n };\r\n};\r\n","import { EmptyInstance } from \"core-library/mixins/empty-instance\";\r\nimport { EventEmitterMixin } from \"widgets-module/mixins/event-emitter.mixin\";\r\n\r\nexport class FavoutitesItemComponent extends EventEmitterMixin(EmptyInstance) {\r\n public static readonly SELECTOR = \".js-article\";\r\n public static readonly REMOVE_EVENT = \"favourite-item/remove\";\r\n\r\n private readonly _classMap = {\r\n closeButtonSelector: \".js-remove-favourite\"\r\n };\r\n\r\n private _currentContext: JQuery = null;\r\n private _closeButton: JQuery = null;\r\n\r\n private _id: string = null;\r\n public get id(): string {\r\n return this._id;\r\n }\r\n\r\n public destroy = (): void => this.complete(FavoutitesItemComponent.REMOVE_EVENT);\r\n\r\n private bindEvents(): void {\r\n this._closeButton.on(\"click\", () => {\r\n this._currentContext.hide();\r\n this.emit(FavoutitesItemComponent.REMOVE_EVENT, this);\r\n });\r\n }\r\n\r\n private parseContext(): void {\r\n this._closeButton = $(this._classMap.closeButtonSelector, this._currentContext);\r\n this._id = this._closeButton?.data(\"id\") as string;\r\n }\r\n\r\n public init(context: JQuery): void {\r\n this._currentContext = context || this._currentContext;\r\n\r\n this.parseContext();\r\n this.bindEvents();\r\n }\r\n}\r\n","import { FavoutitesItemComponent } from \"widgets-module/components/favourites/favourites-item.component\";\r\nimport { FavouritesStorage } from \"widgets-module/components/favourites/favourites-storage.service\";\r\n\r\nexport class FavouritesListControlService{\r\n\r\n private _storage: FavouritesStorage = null;\r\n private _currentContext: JQuery = null;\r\n private _items: Array = [];\r\n\r\n private bindEvents(): void {\r\n this._items.forEach(item => {\r\n item.on(FavoutitesItemComponent.REMOVE_EVENT)\r\n .subscribe((x: FavoutitesItemComponent) => {\r\n this._storage.remove(x.id);\r\n x.destroy();\r\n });\r\n });\r\n }\r\n\r\n private parseContext(): void {\r\n const items = $(FavoutitesItemComponent.SELECTOR, this._currentContext);\r\n items.each((index, entry) => {\r\n const context = $(entry);\r\n const item = new FavoutitesItemComponent();\r\n item.init(context);\r\n this._items.push(item);\r\n });\r\n }\r\n\r\n public init(context: JQuery, cookieName: string, cookieSplitter: string): void {\r\n this._currentContext = context || this._currentContext;\r\n this._storage = new FavouritesStorage(cookieName, cookieSplitter);\r\n\r\n this.parseContext();\r\n this.bindEvents();\r\n }\r\n}\r\n","import { Loader } from \"@googlemaps/js-api-loader\";\r\n\r\nexport class MapComponent {\r\n\r\n private _currentContext: HTMLElement = null;\r\n private _loader: Loader = null;\r\n private _mapOptions: google.maps.MapOptions = null; // https://developers.google.com/maps/documentation/javascript/reference/map#MapOptions\r\n private _markerOptions: google.maps.MarkerOptions = null; // https://developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions\r\n\r\n private loadMap(): void {\r\n void this._loader.importLibrary(\"maps\")\r\n .then(() => new google.maps.Map(this._currentContext, this._mapOptions))\r\n .then((map) => {\r\n if (this._markerOptions) {\r\n this._markerOptions.map = map;\r\n new google.maps.Marker(this._markerOptions);\r\n }\r\n });\r\n\r\n }\r\n\r\n public init(context: HTMLElement, key: string, mapOptions: google.maps.MapOptions, markerOptions: google.maps.MarkerOptions): void {\r\n this._currentContext = context || this._currentContext;\r\n this._mapOptions = mapOptions || this._mapOptions;\r\n this._markerOptions = markerOptions || this._markerOptions;\r\n\r\n this._loader = new Loader({apiKey: key});\r\n\r\n this.loadMap();\r\n }\r\n\r\n public static init(context: HTMLElement, key: string, mapOptions: google.maps.MapOptions, markerOptions: google.maps.MarkerOptions): MapComponent {\r\n const component = new MapComponent();\r\n component.init(context, key, mapOptions, markerOptions);\r\n return component;\r\n }\r\n}\r\n","export class NavigationBarComponent {\r\n\r\n private _buttonsContext: JQuery = null;\r\n private _dropdownsContext: JQuery = null;\r\n private _document: JQuery = null;\r\n\r\n private _menuItems: Map, Array>> = new Map();\r\n\r\n private readonly SHOW_CLASS = \"show\";\r\n\r\n private bindEvents(): void {\r\n this._menuItems.forEach((items, button) => {\r\n button.on(\"click\", () => {\r\n this._dropdownsContext.removeClass(this.SHOW_CLASS);\r\n items.forEach(item => item.toggleClass(this.SHOW_CLASS));\r\n });\r\n });\r\n\r\n this._document.on(\"click\", (event) => {\r\n const clickedInsideElement = this._dropdownsContext.get().find(x => x.contains(event.target));\r\n const clickedButtonElement = this._buttonsContext.get().find(x => x.contains(event.target));\r\n if (!clickedInsideElement && !clickedButtonElement) {\r\n this._dropdownsContext.removeClass(this.SHOW_CLASS);\r\n }\r\n });\r\n }\r\n\r\n private parseContext(): void {\r\n this._document = $(document);\r\n this._buttonsContext.each((index: number, element: HTMLElement) => {\r\n const button = $(element);\r\n const id = button.attr(\"data-dropdown-id\");\r\n const items = this.getItemsById(id);\r\n this._menuItems.set(button, items);\r\n });\r\n }\r\n\r\n private getItemsById(id: string): Array> {\r\n const items = new Array>();\r\n this._dropdownsContext.each((index: number, element: HTMLElement) => {\r\n const item = $(element);\r\n if (item.attr(\"data-menu-id\") === id) {\r\n items.push(item);\r\n }\r\n });\r\n\r\n return items;\r\n }\r\n\r\n public init(buttonsContext: JQuery, dropdownsContext: JQuery): void {\r\n this._buttonsContext = buttonsContext || this._buttonsContext;\r\n this._dropdownsContext = dropdownsContext || this._dropdownsContext;\r\n\r\n this.parseContext();\r\n this.bindEvents();\r\n }\r\n\r\n public static init(context: JQuery, dropdownsContext: JQuery): NavigationBarComponent {\r\n const component = new NavigationBarComponent();\r\n component.init(context, dropdownsContext);\r\n return component;\r\n }\r\n}\r\n\r\n","import { Modal } from \"bootstrap\";\r\nimport { EmptyInstance } from \"core-library/mixins/empty-instance\";\r\nimport { EventEmitterMixin } from \"widgets-module/mixins/event-emitter.mixin\";\r\n\r\nexport class NotificationModalComponent extends EventEmitterMixin(EmptyInstance){\r\n public static readonly SELECTOR = \".js-pcg-notification-modal\";\r\n public static readonly REMOVE_EVENT = \"notification-modal/remove\";\r\n\r\n private _modal: Modal = null; // we use bootstrap.Modal as workaround for cookiebot issue to fix bug \".modal(...) is not a function\"\r\n private _currentContext: JQuery = null;\r\n private _displayDelayInMilliseconds: number = 0;\r\n\r\n private _id: string = null;\r\n public get id(): string {\r\n return this._id;\r\n }\r\n\r\n public show(): void {\r\n setTimeout(() => this._modal.show(), this._displayDelayInMilliseconds);\r\n // setTimeout(() => this._currentContext.modal(\"show\"), this._displayDelayInMilliseconds);\r\n }\r\n\r\n public destroy = (): void => this.complete(NotificationModalComponent.REMOVE_EVENT);\r\n\r\n private bindEvents(): void {\r\n this._currentContext.on(\"hide.bs.modal\", () => {\r\n this.emit(NotificationModalComponent.REMOVE_EVENT, this);\r\n });\r\n }\r\n\r\n private parseContext(): void {\r\n this._modal = new Modal(this._currentContext[0], {} as Partial);\r\n // this._id = this._currentContext[0].id;\r\n this._id = this._currentContext.data(\"id\") as string;\r\n }\r\n\r\n public init(context: JQuery, displayDelayInMilliseconds: number): void {\r\n this._currentContext = context || this._currentContext;\r\n this._displayDelayInMilliseconds = displayDelayInMilliseconds || this._displayDelayInMilliseconds;\r\n\r\n this.parseContext();\r\n this.bindEvents();\r\n }\r\n}\r\n","import { EmptyInstance } from \"core-library/mixins/empty-instance\";\r\nimport { EventEmitterMixin } from \"widgets-module/mixins/event-emitter.mixin\";\r\n\r\nexport class NotificationPaneComponent extends EventEmitterMixin(EmptyInstance) {\r\n public static readonly SELECTOR = \".js-pcg-notification-pane\";\r\n public static readonly REMOVE_EVENT = \"notification-pane/remove\";\r\n\r\n private readonly _classMap = {\r\n closeButtonSelector: \".js-pcg-notification-pane__close-btn\"\r\n };\r\n\r\n private _currentContext: JQuery = null;\r\n private _closeButton: JQuery = null;\r\n private _closed: boolean = false;\r\n\r\n private _id: string = null;\r\n public get id(): string {\r\n return this._id;\r\n }\r\n\r\n public show(): void {\r\n if (!this._closed) {\r\n this._currentContext.show();\r\n }\r\n }\r\n\r\n public close(): void {\r\n this._currentContext.hide();\r\n this._closed = true;\r\n }\r\n\r\n public destroy = (): void => this.complete(NotificationPaneComponent.REMOVE_EVENT);\r\n\r\n private bindEvents(): void {\r\n this._closeButton.on(\"click\", () => {\r\n this.close();\r\n this.emit(NotificationPaneComponent.REMOVE_EVENT, this);\r\n });\r\n }\r\n\r\n private parseContext(): void {\r\n this._closeButton = $(this._classMap.closeButtonSelector, this._currentContext);\r\n this._id = this._currentContext?.data(\"id\") as string;\r\n }\r\n\r\n public init(context: JQuery): void {\r\n this._currentContext = context || this._currentContext;\r\n\r\n this.parseContext();\r\n this.bindEvents();\r\n }\r\n}\r\n","import { NotificationModalComponent } from \"widgets-module/components/notification/notification-modal.component\";\r\nimport { NotificationOptionsModel } from \"widgets-module/components/notification/notification-options.model\";\r\nimport { NotificationPaneComponent } from \"widgets-module/components/notification/notification-pane.component\";\r\n\r\nexport class NotificationService {\r\n private _currentContext: JQuery = null;\r\n private _options: NotificationOptionsModel = null;\r\n\r\n private _panes: Array = [];\r\n private _modal: NotificationModalComponent = null;\r\n\r\n private bindEvents(): void {\r\n this._panes.forEach((pane) => {\r\n pane.on(NotificationPaneComponent.REMOVE_EVENT)\r\n .subscribe((x: NotificationPaneComponent) => {\r\n this.markAsClosed(x.id);\r\n x.destroy();\r\n });\r\n });\r\n\r\n if (this._modal) {\r\n this._modal.on(NotificationModalComponent.REMOVE_EVENT).subscribe((x: NotificationModalComponent) => {\r\n this.markAsClosed(x.id);\r\n x.destroy();\r\n });\r\n }\r\n }\r\n\r\n private get closedNotificationIds(): Array {\r\n const closedIdsValue = sessionStorage.getItem(this._options.sessionKey) || \"[]\";\r\n return JSON.parse(closedIdsValue) as Array || new Array();\r\n }\r\n\r\n private markAsClosed(id: string): void {\r\n const closedIds = this.closedNotificationIds;\r\n closedIds.push(id);\r\n sessionStorage.setItem(this._options.sessionKey, JSON.stringify(closedIds));\r\n }\r\n\r\n private parseContext(): void {\r\n const panes = $(NotificationPaneComponent.SELECTOR, this._currentContext);\r\n panes.each((index, entry) => {\r\n const paneContext = $(entry);\r\n const pane = new NotificationPaneComponent();\r\n pane.init(paneContext);\r\n this._panes.push(pane);\r\n });\r\n\r\n const modalContext = $(NotificationModalComponent.SELECTOR, this._currentContext);\r\n if (modalContext && modalContext.length) {\r\n this._modal = new NotificationModalComponent();\r\n this._modal.init(modalContext.first(), this._options.displayDelayInMilliseconds);\r\n }\r\n }\r\n\r\n private showNotifications(): void {\r\n const closedIds = this.closedNotificationIds;\r\n\r\n this._panes.forEach(x => {\r\n if (!closedIds.includes(x.id)) {\r\n x.show();\r\n }\r\n });\r\n\r\n if (this._modal && !!this._modal.id && !closedIds.includes(this._modal.id)) {\r\n this._modal.show();\r\n }\r\n }\r\n\r\n public init(context: JQuery, options: NotificationOptionsModel): void {\r\n this._currentContext = context || this._currentContext;\r\n this._options = options || this._options;\r\n\r\n this.parseContext();\r\n this.showNotifications();\r\n this.bindEvents();\r\n }\r\n}\r\n","import { SmartSuggestService } from \"core-library/components/smart-suggest/smart-suggest.service\";\r\nimport { SearchResponseModel } from \"core-library/components/smart-suggest/suggest-response.model\";\r\nimport { debounce } from \"lodash\";\r\n\r\nexport class SmartSuggestComponent {\r\n\r\n private _apiUrl: string = null;\r\n private _searchPageUrl: string = null;\r\n private _homePageId: string = null;\r\n private _context: JQuery = null;\r\n\r\n private _input: JQuery = null;\r\n private _suggestions: JQuery = null;\r\n\r\n private readonly _classMap = {\r\n input: \".js-pcg-search-bar__input\",\r\n suggestions: \".js-pcg-smart-search\"\r\n };\r\n\r\n private bindEvents(): void {\r\n this._input\r\n .on(\"keyup\", (event) => {\r\n const searchText = event.target.value.toString().trim();\r\n if (searchText) {\r\n this.debounceSetSuggestions(searchText);\r\n }\r\n })\r\n .on(\"focusin\", (event) => {\r\n const searchText = event.target.value.toString().trim();\r\n if (searchText) {\r\n this.setSuggestions(searchText);\r\n }\r\n })\r\n .on(\"focusout\", () => setTimeout(() => this.clearSuggestions(), 150)); // workaround to prevent clear before click on link triggered\r\n }\r\n\r\n private debounceSetSuggestions = debounce((searchText: string) => this.setSuggestions(searchText), 700);\r\n\r\n private clearSuggestions(): void {\r\n this._suggestions.html(\"\");\r\n }\r\n\r\n private setSuggestions(searchText: string): void {\r\n this.clearSuggestions();\r\n\r\n if (searchText.length <= 2) {\r\n return;\r\n }\r\n\r\n const url = `${this._apiUrl}?&homePageId=${this._homePageId}&searchText=${searchText}`;\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const _ = $.getJSON(url).then((response: SearchResponseModel) => {\r\n SmartSuggestService.getSuggestionElements(response.suggestions.filter(x => x.isRecommended), \"Recommended Links\")\r\n .forEach((element: string) => this._suggestions.append(element));\r\n SmartSuggestService.getSuggestionElements(response.suggestions.filter(x => !x.isRecommended), \"Content / Articles\")\r\n .forEach((element: string) => this._suggestions.append(element));\r\n this._suggestions.append(SmartSuggestService.getShowMoreElement(response.showMoreCount, searchText, this._searchPageUrl));\r\n });\r\n }\r\n\r\n private parseContext(): void {\r\n this._input = $(this._classMap.input, this._context);\r\n this._suggestions = $(this._classMap.suggestions, this._context);\r\n }\r\n\r\n public init(context: JQuery, homePageId: string, apiUrl: string, searchPageUrl: string): void {\r\n this._context = context || this._context;\r\n this._homePageId = homePageId || this._homePageId;\r\n this._apiUrl = apiUrl || this._apiUrl;\r\n this._searchPageUrl = searchPageUrl || this._searchPageUrl;\r\n\r\n this.parseContext();\r\n this.bindEvents();\r\n }\r\n\r\n public static init(context: JQuery, homePageId: string, apiUrl: string, searchPageUrl: string): SmartSuggestComponent {\r\n const component = new SmartSuggestComponent();\r\n component.init(context, homePageId, apiUrl, searchPageUrl);\r\n return component;\r\n }\r\n}\r\n\r\n","import { SlickSliderOptions } from \"widgets-module/components/slick-slider/slick-slider-options.model\";\r\n\r\nexport class SlickSliderComponent {\r\n\r\n private _window: JQuery = null;\r\n private _currentContext: JQuery = null;\r\n\r\n private _sliderSelector: string = null;\r\n private _sliderContext: JQuery = null;\r\n private _sliderOptions: JQuerySlickOptions = null;\r\n\r\n private _navigationSelector: string = null;\r\n private _navigationContext: JQuery = null;\r\n private _navigationOptions: JQuerySlickOptions = null;\r\n\r\n private get isSliderInitialized(): boolean {\r\n return this._sliderContext.hasClass(\"slick-initialized\");\r\n }\r\n\r\n private bindEvents(): void {\r\n this._window.on(\"orientationchange resize\", () => {\r\n if (this.isSliderInitialized) {\r\n this._sliderContext.slick(\"resize\");\r\n this._navigationContext?.slick(\"resize\");\r\n } else {\r\n this.initSlider();\r\n }\r\n });\r\n }\r\n\r\n private initSlider(): void {\r\n this._sliderContext.slick(this._sliderOptions);\r\n this._navigationContext?.slick(this._navigationOptions);\r\n }\r\n\r\n private parseContext(): void {\r\n this._window = $(window);\r\n this._sliderContext = $(this._sliderSelector, this._currentContext);\r\n if (this._navigationSelector) {\r\n this._navigationContext = $(this._navigationSelector, this._currentContext);\r\n }\r\n }\r\n\r\n public init(options: SlickSliderOptions): void {\r\n this._currentContext = options.context || this._currentContext;\r\n\r\n this._sliderOptions = options.sliderOptions || this._sliderOptions;\r\n this._sliderSelector = options.sliderSelector || this._sliderSelector;\r\n\r\n this._navigationOptions = options.navigationOptions || this._navigationOptions;\r\n this._navigationSelector = options.navigationSelector || this._navigationSelector;\r\n\r\n this.parseContext();\r\n this.initSlider();\r\n this.bindEvents();\r\n }\r\n\r\n public static init(options: SlickSliderOptions): SlickSliderComponent {\r\n const component = new SlickSliderComponent();\r\n component.init(options);\r\n return component;\r\n }\r\n}\r\n","\r\nexport class DatePickerComponent {\r\n\r\n private _currentContext: JQuery = null;\r\n private _datepicker: JQuery = null;\r\n private _datepickerHidden: JQuery = null;\r\n private _button: JQuery = null;\r\n\r\n private bindEvents(): void {\r\n this._button.on(\"click\", () => {\r\n this._datepicker.datepicker(\"show\");\r\n });\r\n this._datepicker.on(\"changeDate\", () => {\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n const value = this._datepicker.datepicker(\"getDate\") as Date;\r\n this._datepickerHidden.val(this.getFormattedDate(value));\r\n });\r\n }\r\n\r\n private getFormattedDate(date: Date): string {\r\n const month = date.getMonth() + 1;\r\n const day = date.getDate();\r\n\r\n const monthString = month > 10 ? month.toString() : `0${month}`;\r\n const dayString = day > 10 ? day.toString() : `0${day}`;\r\n const yearString = date.getFullYear().toString();\r\n\r\n return `${yearString}-${monthString}-${dayString}`;\r\n }\r\n\r\n private parseContext(): void {\r\n this._button = $(\".js-pcg-datepicker__button\", this._currentContext);\r\n this._datepicker = $(\".js-pcg-datepicker\", this._currentContext);\r\n this._datepickerHidden = $(\".js-pcg-datepicker__hidden\", this._currentContext);\r\n }\r\n\r\n public init(context: JQuery, options: DatepickerOptions): void {\r\n this._currentContext = context || this._currentContext;\r\n\r\n this.parseContext();\r\n this._datepicker.datepicker(options);\r\n this.bindEvents();\r\n }\r\n\r\n public static init(context: JQuery, options: DatepickerOptions): DatePickerComponent {\r\n const component = new DatePickerComponent();\r\n component.init(context, options);\r\n return component;\r\n }\r\n}\r\n","import { Modal } from \"bootstrap\";\r\nimport { AssistantContactFormResponseModel } from \"widgets-module/components/assistant-contact-form/assistant-contact-form-response.model\";\r\n\r\nexport class AssistantContactFormComponent {\r\n\r\n private _form: JQuery = null;\r\n private _currentContext: JQuery = null;\r\n private _warning: JQuery = null;\r\n private _contactMethod: JQuery = null;\r\n private _email: JQuery = null;\r\n private _phone: JQuery = null;\r\n private _modal: Modal = null; // we use bootstrap.Modal as workaround for cookiebot issue to fix bug \".modal(...) is not a function\"\r\n\r\n private bindEvents(): void {\r\n this._form.on(\"submit\", (event) => {\r\n if (!this._form.valid()) {\r\n return;\r\n }\r\n\r\n this._warning.hide();\r\n event.preventDefault();\r\n\r\n const formValues = $(this._form).serialize();\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const _ = $.post(\"/api/assistants-profile-details/contact\", formValues)\r\n .done((data: AssistantContactFormResponseModel) => {\r\n if (data?.success) {\r\n this._modal.hide();\r\n this._form.trigger(\"reset\");\r\n } else {\r\n this._warning.show();\r\n }\r\n })\r\n .fail(() => {\r\n this._warning.show();\r\n });\r\n });\r\n\r\n this._contactMethod.on(\"change\", (event) => {\r\n const value = $(event.target).val();\r\n this._email.toggle(value === \"Email\");\r\n this._phone.toggle(value !== \"Email\");\r\n });\r\n }\r\n\r\n private parseContext(): void {\r\n this._warning = $(\".js-pcg-validation-result\", this._currentContext);\r\n this._form = $(\".js-pcg-contact-form\", this._currentContext);\r\n this._contactMethod = $(\".js-pcg-custom-radio--contact-method\", this._currentContext);\r\n this._email = $(\".js-pcg-form-group-email\", this._currentContext);\r\n this._phone = $(\".js-pcg-form-group-phone\", this._currentContext);\r\n this._modal = new Modal(this._currentContext[0], {} as Partial);\r\n }\r\n\r\n public init(context: JQuery): void {\r\n this._currentContext = context || this._currentContext;\r\n\r\n this.parseContext();\r\n this.bindEvents();\r\n }\r\n\r\n public static init(context: JQuery): AssistantContactFormComponent {\r\n const component = new AssistantContactFormComponent();\r\n component.init(context);\r\n return component;\r\n }\r\n}\r\n\r\n","export class CharacterCounter {\r\n private _currentContext: JQuery = null;\r\n private _max: number = 0;\r\n private _label: JQuery = null;\r\n private _input: JQuery = null;\r\n\r\n private bindEvents(): void {\r\n this._input.on(\"keyup\", () => this.updateLabelValue());\r\n }\r\n\r\n private parseContext(): void {\r\n this._label = $(\".js-pcg-counter\", this._currentContext);\r\n this._input = $(\".js-pcg-input-for-counter\", this._currentContext);\r\n }\r\n\r\n private updateLabelValue(): void {\r\n const count = this._max - this._input.val().toString().length;\r\n this._label.text(`Characters left: ${Math.max(0, count)}`);\r\n }\r\n\r\n public init(context: JQuery, maxCharactersCount: number): void {\r\n this._currentContext = context || this._currentContext;\r\n this._max = maxCharactersCount || this._max;\r\n\r\n this.parseContext();\r\n this.bindEvents();\r\n this.updateLabelValue();\r\n }\r\n\r\n public static init(context: JQuery, maxCharactersCount: number): CharacterCounter {\r\n const component = new CharacterCounter();\r\n component.init(context, maxCharactersCount);\r\n return component;\r\n }\r\n}\r\n","export class ImageUploadPreviewComponent {\r\n\r\n private _inputSelector: string = null;\r\n private _previewSelector: string = null;\r\n\r\n private _input: JQuery = null;\r\n private _preview: JQuery = null;\r\n private _previewImage: JQuery = null;\r\n\r\n private bindEvents(): void {\r\n this._input.on(\"change\", (event: Event) => {\r\n const value = this._input.val() as string;\r\n if (value.length) {\r\n const inputTarget = event.target as HTMLInputElement;\r\n this._previewImage.attr(\"src\", URL.createObjectURL(inputTarget.files.item(0)));\r\n this._preview.show();\r\n } else {\r\n this._preview.hide();\r\n }\r\n });\r\n }\r\n\r\n private parseContext(): void {\r\n this._input = $(this._inputSelector);\r\n this._preview = $(this._previewSelector);\r\n this._previewImage = $(\"img\", this._previewSelector);\r\n }\r\n\r\n public init(inputSelector: string, previewSelector: string): void {\r\n this._inputSelector = inputSelector || this._inputSelector;\r\n this._previewSelector = previewSelector || this._previewSelector;\r\n\r\n this.parseContext();\r\n this.bindEvents();\r\n }\r\n\r\n public static init(inputSelector: string, previewSelector: string): ImageUploadPreviewComponent {\r\n const component = new ImageUploadPreviewComponent();\r\n component.init(inputSelector, previewSelector);\r\n return component;\r\n }\r\n}\r\n\r\n","export class HidePageButton {\r\n private _currentContext: JQuery = null;\r\n private _url: string = null;\r\n\r\n private bindEvents(): void {\r\n this._currentContext.on(\"click\", () => window.location.replace(this._url));\r\n }\r\n\r\n public init(context: JQuery, url: string): void {\r\n this._currentContext = context || this._currentContext;\r\n this._url = url || this._url;\r\n\r\n this.bindEvents();\r\n }\r\n\r\n public static init(context: JQuery, url: string): HidePageButton {\r\n const component = new HidePageButton();\r\n component.init(context, url);\r\n return component;\r\n }\r\n}\r\n","import { AccessibilityPaneComponent } from \"widgets-module/components/accessibility-pane/accessibility-pane.component\";\r\nimport { CountdownTimerComponent } from \"widgets-module/components/countdown-timer/countdown-timer.component\";\r\nimport { FavouritesControl } from \"widgets-module/components/favourites/favourites-control.service\";\r\nimport { FavouritesListControlService } from \"widgets-module/components/favourites/favourites-list-control.service\";\r\nimport { MapComponent } from \"widgets-module/components/map/map.component\";\r\nimport { NavigationBarComponent } from \"widgets-module/components/navigation-bar/navigation-bar.component\";\r\nimport { NotificationService } from \"widgets-module/components/notification/notification.service\";\r\nimport { SmartSuggestComponent } from \"widgets-module/components/smart-suggest/smart-suggest.component\";\r\nimport { SlickSliderComponent } from \"widgets-module/components/slick-slider/slick-slider.component\";\r\nimport { DatePickerComponent } from \"widgets-module/components/date-picker/date-picker.component\";\r\nimport { AssistantContactFormComponent } from \"widgets-module/components/assistant-contact-form/assistant-contact-form.component\";\r\nimport { CharacterCounter } from \"widgets-module/components/character-counter/character-counter.component\";\r\nimport { ImageUploadPreviewComponent } from \"widgets-module/components/image-upload-preview/image-upload-preview.component\";\r\nimport { HidePageButton } from \"widgets-module/components/hide-page-button/hide-page-button.component\";\r\n\r\nclass FrontendModule {\r\n public init(): void {\r\n $.extend($, {\r\n pcg: {\r\n frontend: {\r\n accessibilityPane: AccessibilityPaneComponent,\r\n assistantContactForm: AssistantContactFormComponent,\r\n characterCounter: CharacterCounter,\r\n countdownTimer: CountdownTimerComponent,\r\n datePicker: DatePickerComponent,\r\n favouritesControl: new FavouritesControl(),\r\n favouritesListService: new FavouritesListControlService(),\r\n hidePageButton: HidePageButton,\r\n imageUploadPreview: ImageUploadPreviewComponent,\r\n map: MapComponent,\r\n navigationBar: NavigationBarComponent,\r\n notificationService: new NotificationService(),\r\n slickSlider: SlickSliderComponent,\r\n smartSuggest: SmartSuggestComponent\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport const frontend = new FrontendModule();\r\n","import $ from \"jquery\";\r\nimport \"jquery-validation\";\r\nimport \"jquery-validation-unobtrusive\";\r\nimport \"jquery-countdown\";\r\nimport \"bootstrap\";\r\nimport \"bootstrap-datepicker\";\r\nimport \"slick-carousel\";\r\n\r\nimport { frontend } from \"widgets-module/app\";\r\n\r\nwindow.$ = window.jQuery = $;\r\n\r\n$(() => frontend.init());\r\n"],"names":["set","name","value","options","path","Date","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","document","cookie","get","matches","match","RegExp","replace","decodeURIComponent","_cookieService","CookieService","_currentStyle","_currentFontSize","_cookieKey","_cookieSplitter","_currentContext","_fontSizeButtons","_styleButtons","_stylesheets","_html","_cookieOptions","setCookie","this","getCookie","setFontSize","size","css","setStyleSheet","style","each","index","element","stylesheet","$","isStylesheetDisabled","attr","prop","tryReadCookie","cookieContent","split","e","console","log","setInitialValues","now","setTime","getTime","bindEvents","on","event","fontSize","target","contrast","parseContext","init","context","cookieKey","cookieSplitter","component","AccessibilityPaneComponent","_yearsTemplate","_monthsTemplate","_weeksTemplate","_daysTemplate","_hoursTemplate","_minutesTemplate","_secondsTemplate","getTemplate","offset","years","months","weeks","days","finalDateTime","countdown","html","strftime","CountdownTimerComponent","cookieName","_cookieSettings","expires","setDate","_cookieName","add","pageKey","favourites","getFavourites","includes","push","setFavourites","remove","filter","x","has","Array","favouritesCookie","join","_storage","_pageKey","_addButton","_removeButton","_classMap","addButton","removeButton","toggleButtons","isAddToFavourite","toggle","preventDefault","setState","currentPageIsVafourite","FavouritesStorage","EventEmitterMixin","BaseClass","args","_subjects","Map","getSubject","Subject","asObservable","emit","arg","subject","next","complete","delete","closeButtonSelector","_closeButton","_id","destroy","FavoutitesItemComponent","REMOVE_EVENT","hide","data","SELECTOR","_items","forEach","item","subscribe","id","entry","_loader","_mapOptions","_markerOptions","loadMap","importLibrary","then","google","maps","map","Marker","key","mapOptions","markerOptions","apiKey","MapComponent","_buttonsContext","_dropdownsContext","_document","_menuItems","SHOW_CLASS","items","button","removeClass","toggleClass","clickedInsideElement","find","contains","clickedButtonElement","getItemsById","buttonsContext","dropdownsContext","NavigationBarComponent","_modal","_displayDelayInMilliseconds","NotificationModalComponent","show","setTimeout","displayDelayInMilliseconds","_closed","NotificationPaneComponent","close","_options","_panes","pane","markAsClosed","closedIdsValue","sessionStorage","getItem","sessionKey","JSON","parse","closedIds","closedNotificationIds","setItem","stringify","paneContext","modalContext","length","first","showNotifications","_apiUrl","_searchPageUrl","_homePageId","_context","_input","_suggestions","input","suggestions","debounceSetSuggestions","debounce","searchText","setSuggestions","toString","trim","clearSuggestions","url","getJSON","response","isRecommended","append","showMoreCount","homePageId","apiUrl","searchPageUrl","SmartSuggestComponent","_window","_sliderSelector","_sliderContext","_sliderOptions","_navigationSelector","_navigationContext","_navigationOptions","hasClass","isSliderInitialized","slick","initSlider","window","sliderOptions","sliderSelector","navigationOptions","navigationSelector","SlickSliderComponent","_datepicker","_datepickerHidden","_button","datepicker","val","getFormattedDate","date","month","getMonth","day","getDate","monthString","dayString","yearString","getFullYear","DatePickerComponent","_form","_warning","_contactMethod","_email","_phone","valid","formValues","serialize","post","done","success","trigger","fail","AssistantContactFormComponent","_max","_label","updateLabelValue","count","text","Math","max","maxCharactersCount","CharacterCounter","_inputSelector","_previewSelector","_preview","_previewImage","inputTarget","URL","createObjectURL","files","inputSelector","previewSelector","ImageUploadPreviewComponent","_url","location","HidePageButton","frontend","extend","pcg","accessibilityPane","assistantContactForm","characterCounter","countdownTimer","datePicker","favouritesControl","FavouritesControl","favouritesListService","FavouritesListControlService","hidePageButton","imageUploadPreview","navigationBar","notificationService","NotificationService","slickSlider","smartSuggest","jQuery"],"sourceRoot":""}