{"version":3,"file":"./content/js/widgets-module.js","mappings":"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","sources":["webpack:///./scripts/widgets-module/mixins/event-emitter.mixin.ts","webpack:///./scripts/widgets-module/services/browser.service.ts","webpack:///./scripts/widgets-module/services/device.service.ts","webpack:///./scripts/widgets-module/services/cookie.service.ts","webpack:///./scripts/widgets-module/components/accessibility/accessibility.component.ts","webpack:///./scripts/apps-module/app/shared-library/mixins/lock.mixin.ts","webpack:///./scripts/widgets-module/components/homeslick.component.ts","webpack:///./scripts/widgets-module/components/page-rating/page-rating.component.ts","webpack:///./scripts/widgets-module/components/search-page/search-page.component.ts","webpack:///./scripts/widgets-module/app.ts","webpack:///./scripts/widgets-module/entry.ts"],"sourcesContent":["import { Constructor } from \"core-library/types/constructor\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { EventArg } from \"widgets-module/types/event-arg\";\r\n\r\nexport interface IEventEmitter {\r\n on(event: string): Observable;\r\n emit(event: string, arg?: EventArg): void;\r\n}\r\n\r\n// TODO-VTA: implement disposing (with pipe?)\r\nexport const EventEmitterMixin = > (\r\n BaseClass: TBaseClass\r\n): TBaseClass & Constructor => {\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 const observable = this._subjects.get(event)?.asObservable();\r\n if (observable) {\r\n return observable;\r\n }\r\n\r\n throw new Error(\"Observable was undefined\");\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\r\n if (subject) {\r\n subject.complete();\r\n this._subjects.delete(event);\r\n }\r\n }\r\n\r\n private getSubject(event: string): Subject | undefined {\r\n const subject = this._subjects.get(event);\r\n\r\n return subject;\r\n }\r\n };\r\n};\r\n","class BrowserService {\r\n private _userAgent: string = null;\r\n\r\n public isChrome: boolean = false;\r\n public isInternetExplorer: boolean = false;\r\n public isFirefox: boolean = false;\r\n public isSafari: boolean = false;\r\n public isOpera: boolean = false;\r\n\r\n private setProperties(): void {\r\n const CHROME = \"Chrome\";\r\n const INTERNET_EXPLORER = \"MSIE\";\r\n const INTERNET_EXPLORER_ALT = \"rv:\";\r\n const FIREFOX = \"Firefox\";\r\n const SAFARI = \"Safari\";\r\n const OPERA = \"OP\";\r\n\r\n this.isFirefox = this.hasAgent(FIREFOX);\r\n this.isChrome = this.hasAgent(CHROME);\r\n this.isInternetExplorer = this.hasAgent(INTERNET_EXPLORER) || this.hasAgent(INTERNET_EXPLORER_ALT);\r\n this.isSafari = this.hasAgent(SAFARI) && !this.isChrome; // Discard Chrome since it also matches Safari\r\n this.isOpera = this.hasAgent(OPERA) && !this.isChrome; // Discard Chrome since it also matches Opera\r\n }\r\n\r\n private hasAgent(agentAlias: string): boolean {\r\n return this._userAgent.indexOf(agentAlias) > -1;\r\n }\r\n\r\n public init(): void {\r\n this._userAgent = navigator.userAgent;\r\n this.setProperties();\r\n }\r\n}\r\n\r\nexport const browserService = new BrowserService();\r\n","import { BehaviorSubject, Subject } from \"rxjs\";\r\n\r\nclass DeviceService {\r\n private static MOBILE_DEVICE_WIDTH: number = 991.98;\r\n\r\n private _window: JQuery = null!;\r\n\r\n private _isMobile: BehaviorSubject = null!;\r\n\r\n public get isMobile(): Subject {\r\n return this._isMobile;\r\n }\r\n\r\n public checkIsMobile(): boolean {\r\n return this._window.get(0)!.matchMedia(`(max-width: ${DeviceService.MOBILE_DEVICE_WIDTH}px)`).matches;\r\n }\r\n\r\n private handleResize(): void {\r\n this._isMobile.next(this.checkIsMobile());\r\n }\r\n\r\n private bindEvents(): void {\r\n this._window.on(\"orientationchange resize\", () => this.handleResize());\r\n }\r\n\r\n private initContext(): void {\r\n this._window = $(window);\r\n this._isMobile = new BehaviorSubject(this.checkIsMobile());\r\n }\r\n\r\n public init(): void {\r\n this.initContext();\r\n this.bindEvents();\r\n }\r\n}\r\n\r\nexport const deviceService = new DeviceService();\r\n","// TODO: Fix all eslint warnings\r\n\r\nclass CookieService {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n public set(name: string, value: string, options: Record): 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\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n const optionValue = options[optionKey];\r\n\r\n if (optionValue !== true) {\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 | null {\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\r\nexport const cookieService = new CookieService();\r\n","import { LockMixin } from \"apps-module/app/shared-library/mixins/lock.mixin\";\r\nimport { EmptyInstance } from \"core-library/mixins/empty-instance\";\r\nimport { EventEmitterMixin } from \"widgets-module/mixins/event-emitter.mixin\";\r\nimport { cookieService } from \"widgets-module/services/cookie.service\";\r\n\r\nimport { AccessibilityModel } from \"./models/accessibility.model\";\r\n\r\nexport class AccessibilityComponent extends EventEmitterMixin(LockMixin(EmptyInstance)) {\r\n private readonly COOKIE_NAME = \"assist_accessibilityComponent\";\r\n\r\n private _currentContext: JQuery = $();\r\n\r\n private _moduleOptions: AccessibilityModel = {\r\n fontSizes: {\r\n normal: \"16px\",\r\n large: \"18px\",\r\n largest: \"20px\"\r\n },\r\n cookie: null,\r\n styles: {\r\n normal: \"normal\",\r\n contrast: \"contrast\"\r\n },\r\n currentStyle: null,\r\n currentFontSize: null\r\n };\r\n\r\n private saveCookie(): void {\r\n const cookieValue = `${this._moduleOptions.currentFontSize}|${this._moduleOptions.currentStyle}`;\r\n cookieService.set(this.COOKIE_NAME, cookieValue, { expires: 100, path: \"/\" });\r\n }\r\n\r\n private setFontSize(size: string | null): void {\r\n if (!size) {\r\n return;\r\n }\r\n\r\n this._moduleOptions.currentFontSize = size;\r\n\r\n $(\"html\").css(\"font-size\", this._moduleOptions.fontSizes[size]);\r\n\r\n this.saveCookie();\r\n }\r\n\r\n private setStyleSheet(name: string | null): void {\r\n if (!name) {\r\n return;\r\n }\r\n\r\n this._moduleOptions.currentStyle = name;\r\n\r\n $(\".js-contrast-style\").each((i, element) => {\r\n $(element).prop(\"disabled\", true);\r\n\r\n if (this._moduleOptions.styles.contrast === name) {\r\n $(element).prop(\"disabled\", false);\r\n }\r\n });\r\n\r\n this.saveCookie();\r\n }\r\n\r\n private setModuleOptions(): void {\r\n try {\r\n const myCookie = cookieService.get(this.COOKIE_NAME);\r\n\r\n if (myCookie) {\r\n this._moduleOptions.cookie = myCookie.split(\"|\");\r\n this._moduleOptions.currentFontSize = this._moduleOptions.cookie[0];\r\n this._moduleOptions.currentStyle = this._moduleOptions.cookie[1];\r\n } else {\r\n this._moduleOptions.currentFontSize = this._moduleOptions.fontSizes.normal;\r\n this._moduleOptions.currentStyle = this._moduleOptions.styles.normal;\r\n }\r\n } catch (e) {\r\n // Error handling\r\n console.log(e);\r\n }\r\n }\r\n\r\n private bindEvents(): void {\r\n // font size events\r\n $(\".js-fontsize-normal\", this._currentContext).on(\"click\", (e) => {\r\n e.preventDefault();\r\n this.setFontSize(\"normal\");\r\n });\r\n\r\n $(\".js-fontsize-medium\", this._currentContext).on(\"click\", (e) => {\r\n e.preventDefault();\r\n this.setFontSize(\"large\");\r\n });\r\n\r\n $(\".js-fontsize-large\", this._currentContext).on(\"click\", (e) => {\r\n e.preventDefault();\r\n this.setFontSize(\"largest\");\r\n });\r\n\r\n // style events\r\n $(\".js-switch-css-normal\", this._currentContext).on(\"click\", (e) => {\r\n e.preventDefault();\r\n this.setStyleSheet(this._moduleOptions.styles.normal);\r\n });\r\n\r\n $(\".js-switch-css-contrast\", this._currentContext).on(\"click\", (e) => {\r\n e.preventDefault();\r\n this.setStyleSheet(this._moduleOptions.styles.contrast);\r\n });\r\n }\r\n\r\n public init(context: JQuery, options: object): void {\r\n this._currentContext = context || this._currentContext;\r\n\r\n $.extend(this._moduleOptions, options);\r\n\r\n this.setModuleOptions();\r\n this.bindEvents();\r\n\r\n this.setFontSize(this._moduleOptions.currentFontSize);\r\n this.setStyleSheet(this._moduleOptions.currentStyle);\r\n }\r\n}\r\n","import { Constructor } from \"core-library/types/constructor\";\r\n\r\nexport interface ILockable {\r\n isLocked: boolean;\r\n lock(): void;\r\n unlock(): void;\r\n}\r\n\r\nexport const LockMixin = >(\r\n BaseClass: TBaseClass\r\n): TBaseClass & Constructor => {\r\n return class LockableExtension extends BaseClass implements ILockable {\r\n private _isLocked: boolean = false;\r\n\r\n public get isLocked(): boolean {\r\n return this._isLocked;\r\n }\r\n\r\n public lock(): void {\r\n this._isLocked = true;\r\n }\r\n\r\n public unlock(): void {\r\n this._isLocked = false;\r\n }\r\n };\r\n};\r\n","export class HomeSlickComponent {\r\n protected _currentContext: JQuery = $();\r\n\r\n protected _countView: JQuery = $();\r\n protected _currentNumber: JQuery = $();\r\n protected _totalAmount: JQuery = $();\r\n\r\n protected moduleOptions: JQuerySlickOptions = {\r\n dots: false,\r\n slidesToShow: 3,\r\n slidesToScroll: 1,\r\n infinite: false,\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2\r\n }\r\n },\r\n {\r\n breakpoint: 540,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n }\r\n ]\r\n };\r\n\r\n private _classMap = {\r\n currentNumber: \".js-current-number\",\r\n totalAmount: \".js-all-number\"\r\n };\r\n\r\n private _window: JQuery = $(window);\r\n\r\n public getSlick(): JQuerySlick {\r\n return this._currentContext.slick(\"getSlick\");\r\n }\r\n\r\n public refresh(): void {\r\n this._currentContext.slick(\"refresh\");\r\n }\r\n\r\n public destroy(): void {\r\n this._currentContext.slick(\"unslick\");\r\n }\r\n\r\n public isInitialized(): boolean {\r\n return this._currentContext.hasClass(\"slick-initialized\");\r\n }\r\n\r\n protected bindEvents(): void {\r\n this._window.on(\"orientationchange resize\", () => {\r\n if (!this.isInitialized()) {\r\n this._currentContext.slick(this.moduleOptions);\r\n } else {\r\n this._currentContext.slick(\"resize\");\r\n }\r\n });\r\n }\r\n\r\n public init(context: JQuery, options: JQuerySlickOptions): void {\r\n this._currentContext = context || this._currentContext;\r\n this.moduleOptions = $.extend({}, options);\r\n\r\n this._currentContext.slick(this.moduleOptions);\r\n\r\n this.bindEvents();\r\n }\r\n\r\n public static init(context: JQuery, options: JQuerySlickOptions): HomeSlickComponent {\r\n const slider = new HomeSlickComponent();\r\n slider.init(context, options);\r\n return slider;\r\n }\r\n}\r\n","import { PageRatingComponentOptions } from \"./models/page-rating-options.model\";\r\nimport { PageRatingComponentModel } from \"./models/page-rating.model\";\r\n\r\nexport class PageRatingComponent {\r\n public static SELECTOR: string = \".js-pcg-rating\";\r\n\r\n private _currentContext: JQuery = $();\r\n\r\n private _moduleOptions: PageRatingComponentOptions = {\r\n submitRatingUrl: \"\",\r\n pageId: null,\r\n modalMessages: []\r\n };\r\n\r\n private _classMap = {\r\n js: {\r\n control: \".js-pcg-rating__control\",\r\n modalWindow: \".js-pcg-rating__modal\",\r\n submitComment: \".js-pcg-rating__submit-comment\",\r\n comment: \".js-pcg-rating__comment\",\r\n modalTitle: \".js-pcg-rating__modal-title\",\r\n modalSubTitle: \".js-pcg-rating__modal-subtitle\"\r\n },\r\n css: {\r\n beforeChoice: \"pcg-vote-element--beforeChoice\",\r\n afterChoice: \"pcg-vote-element--afterChoice\",\r\n selected: \"pcg-vote-element--selected\"\r\n }\r\n };\r\n\r\n private _controls: JQuery = $();\r\n private _modal: JQuery = $();\r\n private _modalControls: JQuery = $();\r\n private _modalTitle: JQuery = $();\r\n private _modalSubTitle: JQuery = $();\r\n private _chosenStar: JQuery = $();\r\n\r\n private _isAlreadyRated = false;\r\n\r\n private _data: PageRatingComponentModel = {\r\n rating: null,\r\n comment: \"\"\r\n };\r\n\r\n private postRating(data: PageRatingComponentModel): void {\r\n this._isAlreadyRated = true;\r\n\r\n const comment = {\r\n message: data.comment,\r\n recommendation: \"\"\r\n };\r\n\r\n void $.ajax({\r\n type: \"POST\",\r\n url: this._moduleOptions.submitRatingUrl,\r\n data: {\r\n pageId: this._moduleOptions.pageId,\r\n rating: data.rating,\r\n comment: JSON.stringify(comment)\r\n }\r\n }).fail(() => {\r\n this._isAlreadyRated = false;\r\n });\r\n }\r\n\r\n private changeUiState(chosenStar: JQuery, ratingValue: number): void {\r\n chosenStar.addClass(this._classMap.css.selected);\r\n\r\n const modalTitle = this._moduleOptions.modalMessages[ratingValue - 1].title;\r\n const modalSubTitle = this._moduleOptions.modalMessages[ratingValue - 1].subTitle;\r\n\r\n this._controls.removeClass(this._classMap.css.beforeChoice);\r\n this._controls.addClass(this._classMap.css.afterChoice);\r\n\r\n this._modalControls.eq(ratingValue - 1).addClass(this._classMap.css.selected);\r\n this._modalTitle.text(modalTitle);\r\n this._modalSubTitle.text(modalSubTitle);\r\n\r\n this._modal.modal(\"show\");\r\n }\r\n\r\n private setRating(): void {\r\n if (!this._isAlreadyRated) {\r\n if (this._chosenStar.data().ratingValue) { // TODO: Delete JS class from stars in modal, then delete this check\r\n this._data.rating = this._chosenStar.data().ratingValue as number;\r\n console.log(\"rating \" + this._data.rating);\r\n this.changeUiState(this._chosenStar, this._data.rating);\r\n }\r\n }\r\n }\r\n\r\n private setComment(): void {\r\n this._data.comment = $(this._classMap.js.comment, this._currentContext).val() as string;\r\n this._modal.modal(\"hide\");\r\n }\r\n\r\n private bindEvents(): void {\r\n const control = $(this._classMap.js.control, this._currentContext);\r\n\r\n control.on(\"click\", (e) => {\r\n this._chosenStar = $(e.target).closest(this._classMap.js.control);\r\n this.setRating();\r\n });\r\n\r\n $(this._classMap.js.submitComment, this._currentContext).on(\"click\", () => this.setComment());\r\n\r\n this._modal.on(\"hide.bs.modal\", () => {\r\n this.postRating(this._data);\r\n });\r\n }\r\n\r\n private initContext(): void {\r\n this._controls = $(this._classMap.js.control, this._currentContext);\r\n this._modal = $(this._classMap.js.modalWindow, this._currentContext);\r\n\r\n this._modalControls = $(this._classMap.js.control, this._modal);\r\n this._modalTitle = $(this._classMap.js.modalTitle, this._modal);\r\n this._modalSubTitle = $(this._classMap.js.modalSubTitle, this._modal);\r\n }\r\n\r\n public init(context: JQuery, options: object): void {\r\n this._currentContext = context || this._currentContext;\r\n\r\n $.extend(this._moduleOptions, options);\r\n\r\n this.initContext();\r\n this.bindEvents();\r\n }\r\n}\r\n","export class SearchPageComponent {\r\n private _currentContext: JQuery = $();\r\n\r\n private _selectContext: JQuery = $();\r\n\r\n private _moduleOptions = {\r\n managedElement: \"\",\r\n paramsObject: {\r\n searchText: \"\",\r\n pageNumber: 1,\r\n sortOption: \"0\"\r\n }\r\n };\r\n\r\n private _classMap = {\r\n js: {\r\n select: \".js-pcg-sort-select\"\r\n }\r\n };\r\n\r\n private parseContext(): void {\r\n this._selectContext = $(this._classMap.js.select, this._currentContext);\r\n }\r\n\r\n private bindEvents(): void {\r\n this._selectContext.on(\"change\", (e) => {\r\n this._moduleOptions.paramsObject.sortOption = $(e.currentTarget).val() as string;\r\n const paramsString = $.param(this._moduleOptions.paramsObject);\r\n window.open(`?${paramsString}`, \"_self\");\r\n });\r\n }\r\n\r\n public init(context: JQuery, options: object): void {\r\n this._currentContext = context || this._currentContext;\r\n\r\n $.extend(this._moduleOptions, options);\r\n\r\n this.parseContext();\r\n this.bindEvents();\r\n }\r\n}\r\n","import { browserService } from \"widgets-module/services/browser.service\";\r\nimport { deviceService } from \"widgets-module/services/device.service\";\r\n\r\nimport { AccessibilityComponent } from \"./components/accessibility/accessibility.component\";\r\nimport { HomeSlickComponent } from \"./components/homeslick.component\";\r\nimport { PageRatingComponent } from \"./components/page-rating/page-rating.component\";\r\nimport { SearchPageComponent } from \"./components/search-page/search-page.component\";\r\n\r\nclass WidgetsModule {\r\n public init(): void {\r\n browserService.init();\r\n deviceService.init();\r\n\r\n $.extend($, {\r\n pcg: {\r\n widgets: {\r\n accessibilityComponent: new AccessibilityComponent(),\r\n homeSlickComponent: HomeSlickComponent,\r\n pageRatingComponent: new PageRatingComponent(),\r\n searchPageComponent: new SearchPageComponent()\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\nconst widgets = new WidgetsModule();\r\n\r\n$(() => widgets.init());\r\n","import $ from \"jquery\";\r\nimport \"jquery-validation\";\r\nimport \"jquery-validation-unobtrusive\";\r\nimport \"./components/vendors/bootstrap\";\r\nimport \"slick-carousel\";\r\n\r\nimport \"widgets-module/app\";\r\n\r\nwindow.$ = window.jQuery = $;\r\n"],"names":["BaseClass","browserService","_userAgent","isChrome","isInternetExplorer","isFirefox","isSafari","isOpera","setProperties","this","hasAgent","agentAlias","indexOf","init","navigator","userAgent","deviceService","_window","_isMobile","checkIsMobile","get","matchMedia","DeviceService","MOBILE_DEVICE_WIDTH","matches","handleResize","next","bindEvents","on","initContext","$","window","BehaviorSubject","cookieService","set","name","value","options","path","expires","Date","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","document","cookie","match","RegExp","replace","decodeURIComponent","COOKIE_NAME","_currentContext","_moduleOptions","fontSizes","normal","large","largest","styles","contrast","currentStyle","currentFontSize","saveCookie","cookieValue","setFontSize","size","css","setStyleSheet","each","i","element","prop","setModuleOptions","myCookie","split","e","console","log","preventDefault","context","extend","_isLocked","lock","unlock","args","_subjects","Map","event","has","Subject","observable","asObservable","Error","emit","arg","subject","getSubject","complete","delete","_countView","_currentNumber","_totalAmount","moduleOptions","dots","slidesToShow","slidesToScroll","infinite","responsive","breakpoint","settings","_classMap","currentNumber","totalAmount","getSlick","slick","refresh","destroy","isInitialized","hasClass","slider","HomeSlickComponent","submitRatingUrl","pageId","modalMessages","js","control","modalWindow","submitComment","comment","modalTitle","modalSubTitle","beforeChoice","afterChoice","selected","_controls","_modal","_modalControls","_modalTitle","_modalSubTitle","_chosenStar","_isAlreadyRated","_data","rating","postRating","data","message","recommendation","ajax","type","url","JSON","stringify","fail","changeUiState","chosenStar","ratingValue","addClass","title","subTitle","removeClass","eq","text","modal","setRating","setComment","val","target","closest","SELECTOR","_selectContext","managedElement","paramsObject","searchText","pageNumber","sortOption","select","parseContext","currentTarget","paramsString","param","open","widgets","pcg","accessibilityComponent","AccessibilityComponent","homeSlickComponent","pageRatingComponent","PageRatingComponent","searchPageComponent","SearchPageComponent","jQuery"],"sourceRoot":""}