{"version":3,"file":"./modules/PublicationsFilter.xxxxxxxx.js","mappings":"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","sources":["webpack:///./modules/Expandable.ts","webpack:///./helpers/UrlHelper.ts","webpack:///./modules/Expander.ts","webpack:///./modules/FilterExpandElement.ts","webpack:///./modules/PublicationsFilterAction.ts","webpack:///./modules/PublicationsFilter.ts"],"sourcesContent":["import { getOptions } from '../helpers/helperFunctions';\r\n\r\nexport default class Expandable {\r\n private height: number;\r\n private width: number;\r\n private active: boolean;\r\n\r\n constructor(private container: HTMLElement, private options: ExpandableOptions = {}) {\r\n this.active = this.container.className.includes('active');\r\n this.options = getOptions(this.container, Object.assign(this.getDefaultOptions(), this.options));\r\n\r\n this.init();\r\n }\r\n\r\n private init(): Expandable {\r\n this.saveInitialHeight()\r\n .setElementHeight(this.container, this.getSuitableHeight());\r\n return this;\r\n }\r\n\r\n private saveInitialHeight(): Expandable {\r\n this.height = this.options.maxHeight || this.getElementHeight(this.container);\r\n this.width = this.getElementWidth(this.container);\r\n this.container.dataset.elementHeight = this.height != null ? this.height.toString() : '';\r\n this.container.dataset.elementWidth = this.height != null ? this.width.toString() : '';\r\n return this;\r\n }\r\n\r\n private getElementHeight(element: HTMLElement): number {\r\n return element.offsetHeight;\r\n }\r\n\r\n private getElementWidth(element: HTMLElement): number {\r\n return element.offsetWidth;\r\n }\r\n\r\n private getSuitableHeight(): number {\r\n return this.active ? this.height : this.options.collapsedHeight;\r\n }\r\n\r\n private setElementHeight(element: HTMLElement, height?: number): Expandable {\r\n element.style.maxHeight = height != null ? height + 'px' : '';\r\n return this;\r\n }\r\n\r\n private toggleState(): Expandable {\r\n this.active = !this.active;\r\n return this;\r\n }\r\n\r\n private getDefaultOptions(): ExpandableOptions {\r\n return {\r\n collapsedHeight: 115\r\n };\r\n }\r\n\r\n public setCollapsedHeight(value: number): Expandable {\r\n this.options.collapsedHeight = value;\r\n return this;\r\n }\r\n\r\n public toggle(): Expandable {\r\n this.toggleState()\r\n .setElementHeight(this.container, this.getSuitableHeight());\r\n return this;\r\n }\r\n\r\n public isActive(): boolean {\r\n return this.active;\r\n }\r\n\r\n public needToBeShown(): boolean {\r\n return this.height > this.options.collapsedHeight * 1.25;\r\n }\r\n\r\n public clear(): Expandable {\r\n this.setElementHeight(this.container)\r\n .saveInitialHeight();\r\n return this;\r\n }\r\n\r\n public render(): Expandable {\r\n this.setElementHeight(this.container, this.getSuitableHeight());\r\n return this;\r\n }\r\n\r\n public getContainer(): HTMLElement {\r\n return this.container;\r\n }\r\n}","export class UrlHelper {\r\n static all(url: string): any {\r\n return url.match(/[^&\\?]*=[^&]*/gi) || [];\r\n }\r\n\r\n static addWithoutDecode(url: string, parameters: any): string {\r\n var keyValuePairs = this.all(url);\r\n\r\n for (var key in parameters) {\r\n var k = encodeURIComponent(key);\r\n var v = encodeURIComponent(parameters[key]);\r\n if (url.search(new RegExp(key + '=', 'i')) === -1) {\r\n keyValuePairs.push(k + '=' + v);\r\n } else {\r\n url = this.updateWithoutDecode(url, { k: v });\r\n }\r\n }\r\n\r\n return [url.split('?')[0], keyValuePairs.join('&')].join('?');\r\n }\r\n\r\n static removeWithoutDecode(url: string, keys: string[]): string {\r\n for (var i = 0; i < keys.length; i++) {\r\n url = url.replace(new RegExp(keys[i] + '=.*?&|&?' + keys[i] + '=[^&]*', 'i'), '');\r\n }\r\n\r\n return url;\r\n }\r\n\r\n static updateWithoutDecode(url: string, parameters: any): string {\r\n for (var key in parameters) {\r\n url = url.replace(new RegExp('(' + key + ')(=)([^&]*)', 'i'), '$1$2' + parameters[key]);\r\n }\r\n\r\n return url;\r\n }\r\n\r\n static getWithoutDecode(url: string, keys: string[]):any {\r\n var parameters = {};\r\n\r\n if (keys !== undefined) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var value = new RegExp(keys[i] + '=([^&]*)').exec(url);\r\n if (value != null && value[1] !== undefined) {\r\n parameters[keys[i]] = value[1];\r\n }\r\n }\r\n } else {\r\n var keyValuePairs = this.all(url);\r\n\r\n for (var i = 0; i < keyValuePairs.length; i++) {\r\n var keyValue = /([^&\\?]*)=([^&]*)/i.exec(keyValuePairs[i]);\r\n if (keyValue[1] !== undefined && keyValue[2] !== undefined) {\r\n parameters[keyValue[1]] = keyValue[2];\r\n }\r\n }\r\n }\r\n\r\n return parameters;\r\n }\r\n}","import Expandable from './Expandable';\r\nimport { getOptions } from '../helpers/helperFunctions';\r\n\r\nconst moduleSelector = '[data-module=\"Expander\"]';\r\n\r\nexport default class Expander {\r\n private container: HTMLElement;\r\n private button: HTMLElement;\r\n private expandable: Expandable;\r\n\r\n static setup(selector: string = moduleSelector): void {\r\n Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n new Expander(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement, private options: ExpanderOptions = {}) {\r\n this.options = getOptions(this.element, Object.assign(this.getDefaultOptions(), this.options));\r\n this.container = this.element.querySelector(`.${this.options.contaiterSelector}`) || this.element;\r\n this.button = this.element.querySelector(`.${this.options.buttonSelector}`);\r\n \r\n this.expandable = new Expandable(this.container, this.options.expandableOptions);\r\n\r\n this.init();\r\n }\r\n\r\n private init(): Expander {\r\n\r\n this.showExpanderButton()\r\n .setButtonEventHandler()\r\n // .setOnResizeHandler()\r\n .adjustAppearance()\r\n .applyActiveFromOptions();\r\n\r\n return this;\r\n }\r\n\r\n private showExpanderButton(): Expander {\r\n this.button.hidden = false;\r\n return this;\r\n }\r\n\r\n private setButtonEventHandler(): Expander {\r\n this.button.addEventListener('click', this.toggleExpander.bind(this));\r\n return this;\r\n }\r\n\r\n private toggleActiveModifier(force?: boolean): Expander {\r\n (force)\r\n ? this.element.classList.add(`${this.options.elementSelector}--active`)\r\n : this.element.classList.remove(`${this.options.elementSelector}--active`);\r\n\r\n return this;\r\n }\r\n\r\n private showFade(force?: boolean): Expander {\r\n (force)\r\n ? this.options.hasFade && this.container.classList.add(`${this.options.contaiterSelector}--with-fade`)\r\n : this.options.hasFade && this.container.classList.remove(`${this.options.contaiterSelector}--with-fade`);\r\n\r\n return this;\r\n }\r\n\r\n private toggleExpander(clickedEvent: boolean = true): void {\r\n debugger;\r\n this.expandable.toggle();\r\n this.toggleActiveModifier(this.expandable.isActive());\r\n }\r\n\r\n // private onResize(): void {\r\n // this.options.beforeResize();\r\n // this.adjustAppearance();\r\n // }\r\n\r\n private applyActiveFromOptions() {\r\n if (this.options.isActive) {\r\n this.toggleExpander(false);\r\n }\r\n return this;\r\n }\r\n\r\n // private setOnResizeHandler(): Expander {\r\n // Beiersdorf.addToEventStore('resize', this.onResize.bind(this), window);\r\n // return this;\r\n // }\r\n\r\n private setupExpander(): Expander {\r\n this.expandable.render();\r\n\r\n this.showFade(true)\r\n .hideButton(false);\r\n\r\n return this;\r\n }\r\n\r\n private destroyExpander(): Expander {\r\n this.expandable.clear();\r\n\r\n this.showFade(false)\r\n .hideButton(true);\r\n\r\n return this;\r\n }\r\n\r\n private hideButton(value: boolean): Expander {\r\n this.button.hidden = value;\r\n return this;\r\n }\r\n\r\n private getDefaultOptions(): ExpanderOptions {\r\n return {\r\n elementSelector: 'cw-expander',\r\n contaiterSelector: 'cw-expander__content',\r\n buttonSelector: 'cw-expander__button',\r\n hasFade: true,\r\n beforeResize: () => { }\r\n };\r\n }\r\n\r\n public adjustAppearance(): Expander {\r\n this.expandable.clear();\r\n\r\n this.expandable.needToBeShown()\r\n ? this.setupExpander()\r\n : this.destroyExpander();\r\n return this;\r\n }\r\n\r\n public setCollapsedHeight(value: number): Expander {\r\n this.expandable.setCollapsedHeight(value);\r\n return this;\r\n }\r\n\r\n public setBeforResizeCB(cb: Callback): Expander {\r\n this.options.beforeResize = cb;\r\n return this;\r\n }\r\n\r\n public isActive(): boolean {\r\n return this.expandable.isActive();\r\n }\r\n\r\n public toggle(): Expander {\r\n this.toggleExpander();\r\n return this;\r\n }\r\n}\r\n\r\n// Hot Module Replacement\r\nif (module.hot) {\r\n let nodesCache: HMRNodes[] = Array.from(document.querySelectorAll(moduleSelector)).map((element: Node) => ({ nodeToReplace: element, nodeOrigin: element.cloneNode(true) }));\r\n\r\n new Expander.setup(moduleSelector);\r\n\r\n module.hot.accept(() => {\r\n new Expander.setup(moduleSelector);\r\n });\r\n module.hot.dispose(() => {\r\n nodesCache.forEach(({ nodeToReplace, nodeOrigin }) => { nodeToReplace = nodeToReplace.parentElement.replaceChild(nodeOrigin.cloneNode(true), nodeToReplace) });\r\n });\r\n} else {\r\n new Expander.setup(moduleSelector);\r\n}","/// \r\n\r\nimport Expander from './Expander';\r\nimport { getNamesOfInputs } from '../helpers/helperFunctions';\r\n\r\nexport default class FilterExpandElement {\r\n private expander: Expander;\r\n private checkBoxes: HTMLInputElement[];\r\n private selectedContainer: HTMLElement;\r\n\r\n constructor(public element: HTMLElement) {\r\n this.expander = this.getExpander();\r\n this.checkBoxes = this.getCheckBoxes();\r\n this.selectedContainer = this.getContainerForSelectedFilters();\r\n\r\n this.init();\r\n }\r\n\r\n private init(): FilterExpandElement {\r\n this.addHandlerOnCheckBoxChange();\r\n return this;\r\n }\r\n\r\n private getExpander(): Expander {\r\n return new Expander(this.element, {\r\n elementSelector: 'cw-tag-filter__item',\r\n contaiterSelector: 'cw-filters',\r\n buttonSelector: 'cw-tag-filter__title',\r\n hasFade: false\r\n });\r\n }\r\n\r\n private getCheckBoxes(): HTMLInputElement[] {\r\n return Array.from(this.element.querySelectorAll('.cw-cat-item__tag-value'));\r\n }\r\n\r\n private getContainerForSelectedFilters(): HTMLElement {\r\n return this.element.querySelector('.cw-title__selected-filters');\r\n }\r\n\r\n private addHandlerOnCheckBoxChange(): FilterExpandElement {\r\n this.element.addEventListener('change', (e: Event) => {\r\n const target = e.target as HTMLInputElement | null;\r\n if (!target) return;\r\n\r\n requestAnimationFrame(() => {\r\n this.setTimeStamp(target)\r\n .showSelectedFilters()\r\n .adjustAppearance();\r\n });\r\n });\r\n\r\n return this;\r\n }\r\n\r\n\r\n private getSelectedCheckBoxes(checkBoxes: HTMLInputElement[]): HTMLInputElement[] {\r\n return checkBoxes.filter((chbox: HTMLInputElement) => chbox.checked);\r\n }\r\n\r\n private showSelectedFilters(): FilterExpandElement {\r\n const counter: number = this.getSelectedCheckBoxes(this.checkBoxes).length,\r\n label: string = this.element.dataset.selectedTitle,\r\n max: number = parseInt(this.element.dataset.showSelected);\r\n\r\n if (this.getSelectedCheckBoxes(this.checkBoxes).length < max) {\r\n // console.log(this.getSelectedCheckBoxes(this.checkBoxes));\r\n const selectedInputs = getNamesOfInputs(this.getSelectedCheckBoxes(this.checkBoxes)).join(', ');\r\n this.selectedContainer.innerHTML = selectedInputs;\r\n }\r\n else {\r\n this.selectedContainer.innerHTML = `${counter} ${label}`;\r\n }\r\n return this;\r\n }\r\n\r\n private setTimeStamp(checkbox: FilterCheckBox): FilterExpandElement {\r\n checkbox.timeStamp = Date.now();\r\n return this;\r\n }\r\n\r\n private adjustAppearance(): FilterExpandElement {\r\n this.expander.adjustAppearance();\r\n return this;\r\n }\r\n\r\n public refreshFilters(): FilterExpandElement {\r\n this.showSelectedFilters();\r\n\r\n return this;\r\n }\r\n\r\n public closeExpander(): FilterExpandElement {\r\n if (this.expander.isActive()) {\r\n this.expander.toggle();\r\n }\r\n return this;\r\n }\r\n\r\n public getCheckedFilters(): FilterCheckBox[] {\r\n return this.getSelectedCheckBoxes(this.checkBoxes);\r\n }\r\n}","import { getOptions } from '../helpers/helperFunctions';\r\nimport { getSibling, createElementFromString } from '../helpers/DOMHelpers';\r\nimport { Optional } from '../typings/mapped-types';\r\nimport { UrlHelper } from \"../helpers/UrlHelper\";\r\n\r\nexport default class PublicationsFilterAction {\r\n private filterTag: HTMLElement;\r\n private tagsMap: TagMap;\r\n private filters: FilterItem[];\r\n private ajaxUrl: string;\r\n private baseContextUrl: string;\r\n private filterAjaxUrl: string;\r\n\r\n constructor(public element: HTMLElement, private options: Optional = {}) {\r\n this.options = getOptions(this.element, Object.assign(this.getDefaultOptions(), this.options));\r\n this.filterTag = this.element.querySelector(this.options.filterTagSelector);\r\n this.ajaxUrl = this.filterTag.dataset.ajaxUrl;\r\n this.baseContextUrl = this.getBaseUrl();\r\n this.filterAjaxUrl = this.filterTag.dataset.filterAjaxUrl;\r\n this.tagsMap = {\r\n tagsStr: window.atob(this.filterTag.getAttribute(this.options.tagsMapAttrs.tagsStrAttr)),\r\n tagCount: parseInt(this.filterTag.getAttribute(this.options.tagsMapAttrs.tagCountAttr)),\r\n itemsCount: parseInt(this.filterTag.getAttribute(this.options.tagsMapAttrs.itemsCountAttr))\r\n };\r\n this.init();\r\n\r\n /* const filterButton = document.querySelector(\".cw-publication-button\");\r\n filterButton.addEventListener(\"click\", () => {\r\n location.reload();\r\n });*/\r\n }\r\n\r\n private init(): PublicationsFilterAction {\r\n this.update();\r\n return this;\r\n }\r\n\r\n\r\n\r\n private getFilters(): FilterItem[] {\r\n const filters = [];\r\n const filterNodes = Array.from(this.element.querySelectorAll(this.options.filterItemSelector));\r\n\r\n filterNodes.forEach((filterNode: HTMLElement) => {\r\n const filterKey: string = filterNode.dataset.key,\r\n isAnd: boolean = filterNode.dataset.isAnd === 'True',\r\n valueNodes = Array.from(filterNode.querySelectorAll(this.options.checkboxSelector)),\r\n values = [];\r\n\r\n valueNodes.forEach((valueNode: HTMLInputElement) => {\r\n\r\n values.push({\r\n node: valueNode,\r\n key: valueNode.value,\r\n checked: valueNode.checked,\r\n index: parseInt(valueNode.dataset.index)\r\n });\r\n });\r\n\r\n const filter = {\r\n node: filterNode,\r\n key: filterKey,\r\n values: values,\r\n isAnd: isAnd,\r\n cache: [],\r\n };\r\n\r\n filters.push(filter);\r\n\r\n });\r\n return filters;\r\n }\r\n\r\n private isItemTagged(item: number, tag: number): boolean {\r\n const i = item * this.tagsMap.tagCount + tag;\r\n return (this.tagsMap.tagsStr.charCodeAt(Math.floor(i / 8)) & (1 << (i % 8))) !== 0;\r\n }\r\n\r\n private isItemIncludedInFilter(i: number, filter: FilterItem): boolean {\r\n let values: FilterValue[] = filter.values,\r\n isAndFilter: boolean = filter.isAnd,\r\n anyValueChecked: boolean = false;\r\n\r\n for (let v: number = 0; v < values.length; v++) {\r\n const value: FilterValue = values[v];\r\n\r\n if (value.checked) {\r\n anyValueChecked = true;\r\n if (this.isItemTagged(i, value.index)) {\r\n if (!isAndFilter)\r\n return true;\r\n } else {\r\n if (isAndFilter)\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n if (isAndFilter)\r\n return true;\r\n\r\n if (!anyValueChecked)\r\n return true;\r\n\r\n return false;\r\n }\r\n private isItemVisible(i: number): boolean {\r\n for (let f: number = 0; f < this.filters.length; f++) {\r\n const filter: FilterItem = this.filters[f],\r\n cacheEntry = filter.cache[i];\r\n\r\n if (cacheEntry === true) {\r\n continue;\r\n }\r\n\r\n if (cacheEntry === false) {\r\n return false;\r\n }\r\n\r\n var isIncluded = this.isItemIncludedInFilter(i, filter);\r\n filter.cache[i] = isIncluded;\r\n if (!isIncluded) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n private getSearchFieldValue(): string {\r\n let input: HTMLInputElement = this.element.querySelector(this.options.searchFieldSelector);\r\n if (typeof input !== \"undefined\" && input != null)\r\n return input.value;\r\n return \"\";\r\n }\r\n\r\n\r\n private countResults(): number {\r\n let count = 0;\r\n for (var i: number = 0; i < this.tagsMap.itemsCount; i++) {\r\n if (this.isItemVisible(i)) {\r\n count++;\r\n }\r\n\r\n }\r\n return count;\r\n }\r\n\r\n private countSimulateChecked(f: number, v: number, checkedValue: boolean): number {\r\n const filter: FilterItem = this.filters[f];\r\n const oldCache: any = filter.cache;\r\n filter.cache = [];\r\n const value: FilterValue = filter.values[v];\r\n const oldChecked: boolean = value.checked;\r\n value.checked = checkedValue;\r\n const count: number = this.countResults();\r\n value.checked = oldChecked;\r\n filter.cache = oldCache;\r\n return count;\r\n }\r\n\r\n private countSimulateOnlyThisChecked(f: number, v: number): number {\r\n const oldFilter = this.filters[f];\r\n\r\n this.filters[f] = {\r\n cache: [],\r\n values: [\r\n {\r\n index: oldFilter.values[v].index,\r\n checked: true\r\n }\r\n ]\r\n };\r\n\r\n const count: number = this.countResults();\r\n this.filters[f] = oldFilter;\r\n\r\n return count;\r\n }\r\n\r\n private setCount(value: FilterValue, count: string, isDisabled: boolean): PublicationsFilterAction {\r\n let countNode: HTMLElement;\r\n countNode = getSibling(value.node, this.options.countNodeSelector) || value.node.nextSibling.nextSibling;\r\n value.node.disabled = isDisabled;\r\n\r\n countNode.innerText = count;\r\n return this;\r\n }\r\n\r\n private anyValueChecked(filter: FilterItem): boolean {\r\n const values = filter.values;\r\n\r\n for (let v = 0; v < values.length; v++) {\r\n if (values[v].checked)\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private getReloadUrl(): string {\r\n const paramsStr: string = this.encodeParams(this.getParams()),\r\n ajaxUrl: string = this.ajaxUrl + '&' + paramsStr;\r\n return ajaxUrl;\r\n }\r\n\r\n public getFilterAjaxUrl(): string {\r\n const paramsStr: string = this.encodeParams(this.getParams()),\r\n ajaxUrl: string = this.filterAjaxUrl + '&' + paramsStr;\r\n return ajaxUrl;\r\n }\r\n public getPublicationFilterRedirectUrl(): string {\r\n const paramsStr: string = this.encodeParams(this.getParams()),\r\n ajaxUrl: string = this.ajaxUrl + '?' + paramsStr;\r\n return ajaxUrl;\r\n }\r\n\r\n private getParams(offset?: number): FilterActionState {\r\n const filters: FilterItem[] = this.getFilters(),\r\n searchValue: string = this.getSearchFieldValue(),\r\n params = {};\r\n filters.forEach((filter: FilterItem) => {\r\n const keys = [];\r\n\r\n filter.values.forEach(value => {\r\n if (value.checked) {\r\n keys.push(value.key);\r\n }\r\n });\r\n\r\n if (keys.length > 0) {\r\n params[filter.key] = keys;\r\n }\r\n });\r\n\r\n if (searchValue != null && searchValue !== \"\")\r\n params[\"query\"] = [searchValue];\r\n\r\n\r\n if (offset != null && offset > 0)\r\n params[\"offset\"] = [offset];\r\n\r\n return params;\r\n }\r\n\r\n private getBaseUrl(): string {\r\n const url: string = location.href,\r\n keys: string[] = this.getParamKeys();\r\n\r\n return UrlHelper.removeWithoutDecode(url, keys);\r\n }\r\n\r\n private getParamKeys(): string[] {\r\n const filters: FilterItem[] = this.getFilters(),\r\n keys: string[] = [];\r\n\r\n filters.forEach((filter: FilterItem) => {\r\n keys.push(filter.key);\r\n });\r\n\r\n keys.push(\"query\");\r\n keys.push(\"offset\");\r\n\r\n return keys;\r\n }\r\n\r\n private encodeParams(params: FilterActionState): string {\r\n return Object.entries(params).map(([key, value]) => `${encodeURIComponent(key)}=${value.map(v => encodeURIComponent(v)).join(',')}`).join('&');\r\n }\r\n\r\n public update(): PublicationsFilterAction {\r\n this.filters = this.getFilters();\r\n /* const currentCount: number = this.countResults();*/\r\n\r\n this.filters.forEach((filter: FilterItem, fIdx: number) => {\r\n\r\n filter.values.forEach((value: FilterValue, vIdx: number) => {\r\n let countStr: string;\r\n if (!value.checked) {\r\n const count: number = this.countSimulateChecked(fIdx, vIdx, true);\r\n if (!this.anyValueChecked(filter)) {\r\n countStr = count.toString();\r\n } else {\r\n if (this.countSimulateOnlyThisChecked(fIdx, vIdx) === 0) {\r\n countStr = \"0\";\r\n } else {\r\n countStr = `+${this.countSimulateOnlyThisChecked(fIdx, vIdx)}`;\r\n }\r\n }\r\n } else {\r\n countStr = \"\";\r\n }\r\n\r\n const resetButton = document.querySelector('.cw-reset-filter');\r\n const searchFieldValue = this.getSearchFieldValue();\r\n if (this.anyValueChecked(filter) || searchFieldValue.trim() !== '') {\r\n resetButton.classList.remove('disabled-class');\r\n } else {\r\n resetButton.classList.add('disabled-class');\r\n }\r\n /* let isDisabled: boolean = countStr === \"0\";\r\n this.setCount(value, countStr, isDisabled);*/\r\n this.setCount(value, countStr, false);\r\n });\r\n\r\n /* let allValuesDisabled = Array.from(filter.values).every(({ node: { disabled } }) => disabled);\r\n toggleClass(filter.node, 'cw-filter-tag--disabled', allValuesDisabled);*/\r\n });\r\n\r\n return this;\r\n }\r\n\r\n public updateUrl(): PublicationsFilterAction {\r\n const params: FilterActionState = this.getParams();\r\n let url: string = this.baseContextUrl;\r\n\r\n url = UrlHelper.addWithoutDecode(url, params);\r\n history.pushState(\"\", \"\", url);\r\n return this;\r\n }\r\n\r\n public reload(): PublicationsFilterAction {\r\n const ajaxUrl: string = this.getReloadUrl();\r\n this.executeAjax(ajaxUrl);\r\n return this;\r\n }\r\n\r\n\r\n public scrollToResultNode(): PublicationsFilterAction {\r\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > -1) {\r\n location.href = \"#\";\r\n location.href = \"#result\";\r\n } else {\r\n const resultNode: HTMLElement = this.element.querySelector(this.options.resultNodeSelector);\r\n resultNode.scrollIntoView(true);\r\n }\r\n return this;\r\n }\r\n\r\n private executeAjax(url: string): PublicationsFilterAction {\r\n\r\n this.options.callbacks.loadMoreTriggered();\r\n const container: HTMLElement = document.querySelector(this.options.gridNodeSelector),\r\n ajaxUrl: string = url,\r\n xhr: XMLHttpRequest = new XMLHttpRequest();\r\n\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n const responseElement = createElementFromString(xhr.responseText),\r\n gridNode: HTMLElement = responseElement.querySelector(this.options.gridNodeSelector) || responseElement,\r\n count: string = gridNode.dataset.resultCount,\r\n offset: string = gridNode.dataset.offset,\r\n resultNode: HTMLElement = this.element.querySelector(this.options.resultNodeSelector),\r\n tagFilter: HTMLElement = this.element.querySelector(this.options.filterTagSelector);\r\n if (count != null) {\r\n resultNode.innerHTML = count;\r\n container.dataset.resultCount = count;\r\n tagFilter.dataset.resultCount = count;\r\n }\r\n\r\n if (offset != null) {\r\n tagFilter.dataset.offset = offset;\r\n container.dataset.offset = offset;\r\n }\r\n\r\n\r\n if (gridNode.innerHTML !== \"\")\r\n container.innerHTML = gridNode.innerHTML;\r\n\r\n } else {\r\n console.log('The request failed!');\r\n }\r\n this.options.callbacks.loadMoreLoaded();\r\n };\r\n\r\n xhr.open('GET', ajaxUrl);\r\n xhr.send();\r\n\r\n return this;\r\n }\r\n\r\n public resetState(): PublicationsFilterAction {\r\n Array.from(>this.filterTag.querySelectorAll(this.options.checkboxSelector + ':checked')).forEach(input => input.checked = false);\r\n this.update();\r\n return this;\r\n }\r\n\r\n private getDefaultOptions(): Optional {\r\n return {\r\n tagsMapAttrs: {\r\n tagsStrAttr: 'data-atob',\r\n tagCountAttr: 'data-tab-count',\r\n itemsCountAttr: 'data-teaser-count'\r\n },\r\n filterTagSelector: '.cw-tag-filter',\r\n filterItemSelector: '.cw-tag-filter__item',\r\n dateSelector: '.cw-tag-filter__date',\r\n loadMoreSelector: '.cw-show-more',\r\n searchFieldSelector: '.cw-search',\r\n checkboxSelector: '.cw-cat-item__tag-value',\r\n countNodeSelector: '.cw-cat-item__count',\r\n resultNodeSelector: '.cw-publications-results span',\r\n gridNodeSelector: '.cw-publications-list',\r\n callbacks: {\r\n loadMoreLoaded: () => { },\r\n loadMoreTriggered: () => { }\r\n }\r\n };\r\n }\r\n}","import FilterExpandElement from './FilterExpandElement';\r\nimport FilterAction from './PublicationsFilterAction';\r\nimport { Optional } from '../typings/mapped-types';\r\nimport { getOptions } from '../helpers/helperFunctions';\r\nimport { removeClass, addClass, createElementFromString } from \"../helpers/DOMHelpers\";\r\nconst moduleSelector = '[data-module=\"PublicationsFilter\"]';\r\n\r\n\r\nexport default class PublicationsFilter {\r\n private filterNode: HTMLElement;\r\n private resetBtn: HTMLElement;\r\n private filterItems: FilterExpandElement[];\r\n private filterAction: FilterAction;\r\n private suppressEvents: boolean = false;\r\n private searchField: HTMLInputElement;\r\n private searchIcon: HTMLElement;\r\n private filterButton: HTMLElement;\r\n private loadingSpinner: HTMLElement;\r\n private resultsContainer: HTMLElement;\r\n\r\n static setup(selector: string = moduleSelector): void {\r\n Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n new PublicationsFilter(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n \r\n constructor(public element: HTMLElement, private options: Optional = {}) {\r\n this.options = getOptions(this.element, Object.assign(this.getDefaultOptions(), this.options));\r\n this.init();\r\n document.addEventListener(\"click\", (event) => {\r\n const target = event.target as Element;\r\n // Check if the clicked element or one of its parents is a \".cw-publications-items\"\r\n const item = target.closest(\".cw-publications-items\");\r\n if (item) {\r\n const parentElement = item.closest(\".cw-publications-accordion\");\r\n if (parentElement) {\r\n parentElement.classList.toggle(\"publications-expanded\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n private initFields(): PublicationsFilter {\r\n this.resetBtn = this.element.querySelector(this.options.resetBtnSelector);\r\n this.filterNode = this.element.querySelector(this.options.filterSelector);\r\n this.searchField = this.element.querySelector(this.options.searchFieldSelector);\r\n this.searchIcon = this.element.querySelector(this.options.searchIconSelector);\r\n this.filterButton = this.element.querySelector(this.options.filterButton); \r\n this.resultsContainer = this.element.querySelector(this.options.resultsContainerSelector);\r\n this.loadingSpinner = null;\r\n this.suppressEvents = false;\r\n\r\n return this;\r\n }\r\n\r\n private init(): PublicationsFilter {\r\n this.initFields()\r\n .showLoadingSpinner()\r\n .initFilterItems(this.filterNode)\r\n .initFilterAction(this.element)\r\n .initSearchField()\r\n .initFilterActivated()\r\n .addHandlerOnFilterChange()\r\n .addHandlerOnResetBtn()\r\n .addHandlerOnFilterClick()\r\n .synchronize()\r\n .shouldShowResults()\r\n .hideLoadingSpinner();\r\n\r\n this.suppressEvents = false;\r\n return this;\r\n\r\n }\r\n\r\n private showLoadingSpinner(): PublicationsFilter {\r\n const spinner: HTMLElement = this.element.querySelector(this.options.filterLoadingSpinnerSelector);\r\n if (spinner == null || this.loadingSpinner == null) {\r\n this.loadingSpinner = document.createElement('div');\r\n this.loadingSpinner.innerHTML = `
`;\r\n this.element.appendChild(this.loadingSpinner);\r\n }\r\n else {\r\n this.loadingSpinner.hidden = false;\r\n }\r\n return this;\r\n }\r\n\r\n private hideLoadingSpinner(): PublicationsFilter {\r\n setTimeout(() => {\r\n this.loadingSpinner.hidden = true;\r\n removeClass(this.filterNode, \"loading\");\r\n }, 1000);\r\n return this;\r\n }\r\n\r\n private initSearchField(): PublicationsFilter {\r\n this.searchField.addEventListener('keyup', (event: KeyboardEvent) => {\r\n if (event.keyCode === 13) {\r\n this.searchFieldChanged();\r\n }\r\n });\r\n\r\n this.searchIcon.addEventListener('click', () => {\r\n this.searchFieldChanged();\r\n });\r\n return this;\r\n }\r\n\r\n private initFilterActivated(): PublicationsFilter {\r\n this.filterButton.addEventListener('click', () => {\r\n this.filterFieldsChecked();\r\n });\r\n return this;\r\n }\r\n private filterFieldsChecked(): PublicationsFilter {\r\n if (!this.suppressEvents)\r\n this.reloadFilter();\r\n return this;\r\n }\r\n private searchFieldChanged(): PublicationsFilter {\r\n if (!this.suppressEvents)\r\n this.reloadFilter();\r\n return this;\r\n }\r\n\r\n public reloadFilter(): PublicationsFilter {\r\n this.filterAction.updateUrl();\r\n this.executeReloadFilterAjax(this.filterAction.getFilterAjaxUrl());\r\n return this;\r\n }\r\n\r\n private executeReloadFilterAjax(url: string) {\r\n fetch(url, {})\r\n .then((res) => res.text())\r\n .then((res) => {\r\n const responseElement = createElementFromString(\"
\" + res + \"
\"),\r\n newNode: HTMLElement = responseElement.querySelector(this.options.publicationsFilterContainerSelector),\r\n currentNode: HTMLElement = this.element.querySelector(this.options.containerSelector);\r\n\r\n currentNode.innerHTML = newNode.innerHTML;\r\n this.init();\r\n });\r\n }\r\n\r\n\r\n private initFilterAction(element: HTMLElement): PublicationsFilter {\r\n \r\n\r\n this.filterAction = new FilterAction(element, { });\r\n\r\n return this;\r\n }\r\n\r\n private initFilterItems(element: HTMLElement): PublicationsFilter {\r\n this.filterItems = Array.from(element.querySelectorAll(this.options.filterItemSelector))\r\n .map((item: HTMLElement) => new FilterExpandElement(item));\r\n\r\n return this;\r\n }\r\n\r\n private addHandlerOnResetBtn(): PublicationsFilter {\r\n this.resetBtn.addEventListener('click', () => this.reset());\r\n return this;\r\n }\r\n\r\n private reset(): PublicationsFilter {\r\n this.suppressEvents = true;\r\n\r\n this.resetSearchField();\r\n this.filterAction.resetState();\r\n this.filterItems.forEach((filterItem: FilterExpandElement) => {\r\n filterItem.refreshFilters();\r\n });\r\n \r\n this.reloadFilter();\r\n \r\n this.suppressEvents = false;\r\n return this;\r\n }\r\n\r\n private resetSearchField(): PublicationsFilter {\r\n this.searchField.value = '';\r\n return this;\r\n }\r\n\r\n\r\n private updateAllFilterItems(): PublicationsFilter {\r\n this.filterItems.forEach(fItm => fItm.refreshFilters());\r\n return this;\r\n }\r\n\r\n private updateFilterAction(): PublicationsFilter {\r\n this.filterAction.update();\r\n this.filterAction.updateUrl();\r\n return this;\r\n }\r\n\r\n private onFilterChange(): void {\r\n const input = event.target;\r\n\r\n if (!this.suppressEvents) {\r\n if (input.closest(this.options.checkboxSelector)) {\r\n this.updateFilterAction();\r\n }\r\n }\r\n }\r\n\r\n private addHandlerOnFilterChange(): PublicationsFilter {\r\n this.filterNode.addEventListener('change', () => this.onFilterChange());\r\n return this;\r\n }\r\n\r\n private onDocumentClick(event: Event): void {\r\n const target = event.target,\r\n currentFilterItem = target.closest(this.options.filterItemSelector + '--active') || target;\r\n\r\n this.filterItems.forEach(fItm => fItm.element !== currentFilterItem && fItm.closeExpander());\r\n }\r\n\r\n private addHandlerOnFilterClick(): PublicationsFilter {\r\n document.addEventListener('click', this.onDocumentClick.bind(this));\r\n return this;\r\n }\r\n\r\n private synchronize(): PublicationsFilter {\r\n this.updateAllFilterItems();\r\n return this;\r\n }\r\n\r\n private shouldShowResults(): PublicationsFilter {\r\n this.shouldshowResultsContainer();\r\n return this;\r\n }\r\n private shouldshowResultsContainer(): PublicationsFilter {\r\n if (this.filterNode.dataset.resultCount === '0' || this.filterNode.dataset.teaserCount === '0') {\r\n this.hideResultsContainer();\r\n }\r\n else {\r\n this.showResultsContainer();\r\n }\r\n return this;\r\n }\r\n\r\n private showResultsContainer(): PublicationsFilter {\r\n removeClass(this.resultsContainer, 'cw-hidden');\r\n return this;\r\n }\r\n\r\n private hideResultsContainer(): PublicationsFilter {\r\n addClass(this.resultsContainer, 'cw-hidden');\r\n return this;\r\n }\r\n private getDefaultOptions(): Optional {\r\n return {\r\n filterSelector: '.cw-tag-filter',\r\n checkboxSelector: '.cw-cat-item__tag-value',\r\n searchFieldSelector: '.cw-search',\r\n filterItemSelector: '.cw-tag-filter__item',\r\n resetBtnSelector: '.cw-sort-filters__reset-btn',\r\n listNodeSelector: '.cw-publications-list',\r\n searchIconSelector: '.cw-search__wrapper .search-icon',\r\n filterButton: '.cw-publication-button',\r\n loadMoreSelector: '.cw-show-more',\r\n filterLoadingSpinnerSelector: '.cw-newsfilter-loading-spinner',\r\n ajaxSpinnerSelector: '.cw-newsfilter-ajax-spinner',\r\n publicationsFilterContainerSelector: '.cw-publications-filter .cw-container',\r\n containerSelector: '.cw-container',\r\n resultsContainerSelector: '.cw-publications-results',\r\n loadedTitleSelector: '.loaded-title'\r\n };\r\n }\r\n}\r\n\r\n\r\n\r\n// Hot Module Replacement\r\nif (module.hot) {\r\n let nodesCache: HMRNodes[] = Array.from(document.querySelectorAll(moduleSelector)).map((element: Node) => ({ nodeToReplace: element, nodeOrigin: element.cloneNode(true) }));\r\n\r\n new PublicationsFilter.setup(moduleSelector);\r\n\r\n module.hot.accept(() => {\r\n new PublicationsFilter.setup(moduleSelector);\r\n });\r\n module.hot.dispose(() => {\r\n nodesCache.forEach(({ nodeToReplace, nodeOrigin }) => { nodeToReplace = nodeToReplace.parentElement.replaceChild(nodeOrigin.cloneNode(true), nodeToReplace) });\r\n });\r\n} else {\r\n new PublicationsFilter.setup(moduleSelector);\r\n}"],"names":["container","options","this","active","className","includes","Object","assign","getDefaultOptions","init","saveInitialHeight","setElementHeight","getSuitableHeight","height","maxHeight","getElementHeight","width","getElementWidth","dataset","elementHeight","toString","elementWidth","element","offsetHeight","offsetWidth","collapsedHeight","style","toggleState","setCollapsedHeight","value","toggle","isActive","needToBeShown","clear","render","getContainer","all","url","match","addWithoutDecode","parameters","keyValuePairs","key","k","encodeURIComponent","v","search","RegExp","push","updateWithoutDecode","split","join","removeWithoutDecode","keys","i","length","replace","getWithoutDecode","undefined","exec","keyValue","moduleSelector","querySelector","contaiterSelector","button","buttonSelector","expandable","expandableOptions","setup","selector","Array","from","document","querySelectorAll","filter","node","moduleInitialized","forEach","Expander","showExpanderButton","setButtonEventHandler","adjustAppearance","applyActiveFromOptions","hidden","addEventListener","toggleExpander","bind","toggleActiveModifier","force","classList","add","elementSelector","remove","showFade","hasFade","clickedEvent","setupExpander","hideButton","destroyExpander","beforeResize","setBeforResizeCB","cb","expander","getExpander","checkBoxes","getCheckBoxes","selectedContainer","getContainerForSelectedFilters","addHandlerOnCheckBoxChange","e","target","requestAnimationFrame","setTimeStamp","showSelectedFilters","getSelectedCheckBoxes","chbox","checked","counter","label","selectedTitle","max","parseInt","showSelected","selectedInputs","innerHTML","checkbox","timeStamp","Date","now","refreshFilters","closeExpander","getCheckedFilters","filterTag","filterTagSelector","ajaxUrl","baseContextUrl","getBaseUrl","filterAjaxUrl","tagsMap","tagsStr","window","atob","getAttribute","tagsMapAttrs","tagsStrAttr","tagCount","tagCountAttr","itemsCount","itemsCountAttr","update","getFilters","filters","filterItemSelector","filterNode","filterKey","isAnd","valueNodes","checkboxSelector","values","valueNode","index","cache","isItemTagged","item","tag","charCodeAt","Math","floor","isItemIncludedInFilter","isAndFilter","anyValueChecked","isItemVisible","f","cacheEntry","isIncluded","getSearchFieldValue","input","searchFieldSelector","countResults","count","countSimulateChecked","checkedValue","oldCache","oldChecked","countSimulateOnlyThisChecked","oldFilter","setCount","isDisabled","countNode","countNodeSelector","nextSibling","disabled","innerText","getReloadUrl","paramsStr","encodeParams","getParams","getFilterAjaxUrl","getPublicationFilterRedirectUrl","offset","searchValue","params","location","href","getParamKeys","entries","map","fIdx","vIdx","countStr","resetButton","searchFieldValue","trim","updateUrl","history","pushState","reload","executeAjax","scrollToResultNode","navigator","userAgent","indexOf","appVersion","resultNodeSelector","scrollIntoView","callbacks","loadMoreTriggered","gridNodeSelector","xhr","XMLHttpRequest","onload","status","responseElement","responseText","gridNode","resultCount","resultNode","tagFilter","console","log","loadMoreLoaded","open","send","resetState","dateSelector","loadMoreSelector","suppressEvents","event","closest","parentElement","PublicationsFilter","initFields","resetBtn","resetBtnSelector","filterSelector","searchField","searchIcon","searchIconSelector","filterButton","resultsContainer","resultsContainerSelector","loadingSpinner","showLoadingSpinner","initFilterItems","initFilterAction","initSearchField","initFilterActivated","addHandlerOnFilterChange","addHandlerOnResetBtn","addHandlerOnFilterClick","synchronize","shouldShowResults","hideLoadingSpinner","filterLoadingSpinnerSelector","createElement","appendChild","setTimeout","keyCode","searchFieldChanged","filterFieldsChecked","reloadFilter","filterAction","executeReloadFilterAjax","fetch","then","res","text","newNode","publicationsFilterContainerSelector","containerSelector","filterItems","reset","resetSearchField","filterItem","updateAllFilterItems","fItm","updateFilterAction","onFilterChange","onDocumentClick","currentFilterItem","shouldshowResultsContainer","teaserCount","hideResultsContainer","showResultsContainer","listNodeSelector","ajaxSpinnerSelector","loadedTitleSelector"],"sourceRoot":""}