{"version":3,"sources":["webpack:///./modules/JobFilter.ts","webpack:///./modules/Select.ts"],"names":["__webpack_require__","r","__webpack_exports__","_FilterExpandElement__WEBPACK_IMPORTED_MODULE_0__","_JobFilterAction__WEBPACK_IMPORTED_MODULE_1__","_helpers_helperFunctions__WEBPACK_IMPORTED_MODULE_2__","_Select__WEBPACK_IMPORTED_MODULE_3__","_autocomplete__WEBPACK_IMPORTED_MODULE_4__","_helpers_DOMHelpers__WEBPACK_IMPORTED_MODULE_5__","JobFilter","element","options","this","suppressEvents","Object","assign","getDefaultOptions","resetBtn","querySelector","resetBtnSelector","filterNode","filterSelector","jobList","jobListNodeSelector","searchField","searchFieldSelector","searchIcon","searchIconSelector","init","setup","selector","Array","from","document","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","prototype","showLoadingSpinner","initFilterItems","initSelects","initFilterAction","initAutoComplete","initSearchField","addHandlerOnFilterChange","addHandlerOnResetBtn","addHandlerOnFilterClick","addHandlerOnPaginationClick","synchronize","hideLoadingSpinner","_this","_Select","item","autoCompleteSelect","closeAutoSelect","classList","contains","remove","value","autocompleteValue","updateFilterAction","showSpinner","spinner","createElement","innerHTML","appendChild","hideSpinner","hidden","loadingSpinner","setTimeout","selectItemSelector","map","addEventListener","event","keyCode","callbacks","loadMoreLoaded","loadMoreTriggered","filterAction","filterItems","filterItemSelector","reset","onClick","onPaginationClick","bind","paginationItemSelector","paginationClick","removeHandlerOnPaginationClick","removeEventListener","target","page","undefined","loadPage","scrollToResultNode","resetSearchField","resetState","filterItem","refreshFilters","updateUrl","updateSearchSuggestAjaxUrl","reload","ajaxUrl","searchSuggestionUrl","currentUrl","autocomplete","updateAllFilterItems","fItm","update","onFilterChange","input","closest","checkboxSelector","easyDropDownSelector","onDocumentClick","currentFilterItem","closeExpander","jobStageButtonSelector","easydropdown_dist_Easydropdown_Easydropdown_js__WEBPACK_IMPORTED_MODULE_0__","easydropdown_dist_Easydropdown_Easydropdown_js__WEBPACK_IMPORTED_MODULE_0___default","n","Select","dropdown","getDropDown","a","behavior","useNativeUiOnMobile","showPlaceholderWhenOpen","getSelectedValue","getParameter","selected","key"],"mappings":"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","file":"./modules/JobFilter.eecbbbc0.js","sourcesContent":["import FilterExpandElement from './FilterExpandElement';\r\nimport JobFilterAction from './JobFilterAction';\r\nimport { Optional } from '../typings/mapped-types';\r\nimport { getOptions } from '../helpers/helperFunctions';\r\nimport Select from \"./Select\";\r\nimport AutoComplete from \"./autocomplete\";\r\nimport { hasClass, removeClass } from \"../helpers/DOMHelpers\";\r\n\r\nconst moduleSelector = '[data-module=\"JobFilter\"]';\r\n\r\nexport default class JobFilter {\r\n private filterNode: HTMLElement;\r\n private resetBtn: HTMLElement;\r\n private filterItems: FilterExpandElement[];\r\n private filterAction: JobFilterAction;\r\n private suppressEvents: boolean = false;\r\n private spinner: HTMLElement;\r\n private jobList: HTMLElement;\r\n private paginationClick: any;\r\n private searchField: HTMLInputElement;\r\n private searchIcon: HTMLElement;\r\n private loadingSpinner: 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 JobFilter(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.resetBtn = this.element.querySelector(this.options.resetBtnSelector);\r\n this.filterNode = this.element.querySelector(this.options.filterSelector);\r\n this.jobList = this.element.querySelector(this.options.jobListNodeSelector);\r\n this.searchField = this.element.querySelector(this.options.searchFieldSelector);\r\n this.searchIcon = this.element.querySelector(this.options.searchIconSelector);\r\n this.init();\r\n }\r\n\r\n init(): JobFilter {\r\n this.showLoadingSpinner()\r\n .initFilterItems(this.filterNode)\r\n .initSelects(this.filterNode)\r\n .initFilterAction(this.element)\r\n .initAutoComplete()\r\n .initSearchField()\r\n .addHandlerOnFilterChange()\r\n .addHandlerOnResetBtn()\r\n .addHandlerOnFilterClick()\r\n .addHandlerOnPaginationClick()\r\n .synchronize()\r\n .hideLoadingSpinner();\r\n\r\n return this;\r\n }\r\n\r\n private initAutoComplete(): JobFilter {\r\n new AutoComplete({\r\n _Select: (item: HTMLElement) => this.autoCompleteSelect(item)\r\n });\r\n return this;\r\n }\r\n\r\n private closeAutoSelect(): void {\r\n Array.from(this.element.querySelectorAll('.autocomplete')).forEach((element: HTMLElement) => {\r\n if (element.classList.contains('open'))\r\n element.classList.remove('open');\r\n });\r\n }\r\n\r\n private autoCompleteSelect(item: HTMLElement): void {\r\n this.searchField.value = item.dataset.autocompleteValue;\r\n this.updateFilterAction();\r\n }\r\n\r\n private showSpinner(): void {\r\n this.spinner = document.createElement('div');\r\n this.spinner.innerHTML = '
';\r\n this.jobList.appendChild(this.spinner);\r\n }\r\n\r\n private hideSpinner(): void {\r\n this.spinner.hidden = true;\r\n }\r\n\r\n private showLoadingSpinner(): JobFilter {\r\n this.loadingSpinner = document.createElement('div');\r\n this.loadingSpinner.innerHTML = '
';\r\n this.element.appendChild(this.loadingSpinner);\r\n return this;\r\n }\r\n\r\n private hideLoadingSpinner(): JobFilter {\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 initSelects(element: HTMLElement): JobFilter {\r\n Array.from(element.querySelectorAll(this.options.selectItemSelector))\r\n .map((item: HTMLElement) => new Select(item));\r\n return this;\r\n }\r\n\r\n private initSearchField(): JobFilter {\r\n this.searchField.addEventListener('keyup', (event: KeyboardEvent) => {\r\n if (event.keyCode === 13) {\r\n this.closeAutoSelect();\r\n this.updateFilterAction();\r\n }\r\n });\r\n\r\n this.searchIcon.addEventListener('click', () => {\r\n this.closeAutoSelect();\r\n this.updateFilterAction();\r\n });\r\n return this;\r\n }\r\n\r\n private initFilterAction(element: HTMLElement): JobFilter {\r\n const callbacks = {\r\n loadMoreLoaded: () => this.loadMoreLoaded(),\r\n loadMoreTriggered: () => this.loadMoreTriggered()\r\n };\r\n\r\n this.filterAction = this.filterAction || new JobFilterAction(element, { callbacks });\r\n\r\n return this;\r\n }\r\n\r\n private initFilterItems(element: HTMLElement): JobFilter {\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(): JobFilter {\r\n this.resetBtn.addEventListener('click', () => this.reset());\r\n return this;\r\n }\r\n\r\n private addHandlerOnPaginationClick(): JobFilter {\r\n let onClick: any = this.onPaginationClick.bind(this);\r\n Array.from(this.element.querySelectorAll(this.options.paginationItemSelector)).forEach((element: HTMLElement) => {\r\n element.addEventListener('click', onClick);\r\n });\r\n this.paginationClick = onClick;\r\n return this;\r\n }\r\n\r\n private removeHandlerOnPaginationClick(): JobFilter {\r\n Array.from(this.element.querySelectorAll(this.options.paginationItemSelector)).forEach((element: HTMLElement) => {\r\n element.removeEventListener('click', this.paginationClick);\r\n });\r\n return this;\r\n }\r\n\r\n private onPaginationClick(event: Event): JobFilter {\r\n const element: HTMLElement = event.target,\r\n page: string = element.dataset.page;\r\n\r\n if (hasClass(element, \"disabled\"))\r\n return this;\r\n\r\n if (page != undefined) {\r\n this.removeHandlerOnPaginationClick();\r\n this.filterAction.loadPage(page);\r\n this.filterAction.scrollToResultNode();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n private reset(): JobFilter {\r\n this.suppressEvents = true;\r\n this.resetSearchField();\r\n this.filterAction.resetState();\r\n this.filterItems.forEach((filterItem: FilterExpandElement) => {\r\n filterItem.refreshFilters();\r\n });\r\n this.suppressEvents = false;\r\n this.filterAction.updateUrl();\r\n this.updateSearchSuggestAjaxUrl();\r\n this.filterAction.reload();\r\n return this;\r\n }\r\n\r\n private updateSearchSuggestAjaxUrl(): JobFilter {\r\n const ajaxUrl: string = this.filterAction.searchSuggestionUrl(),\r\n currentUrl: string = this.searchField.dataset.autocomplete;\r\n\r\n if (ajaxUrl !== \"\" && ajaxUrl !== currentUrl)\r\n this.searchField.dataset.autocomplete = ajaxUrl;\r\n\r\n return this;\r\n }\r\n\r\n private resetSearchField(): JobFilter {\r\n this.searchField.value = '';\r\n return this;\r\n }\r\n\r\n private loadMoreLoaded(): void {\r\n this.addHandlerOnPaginationClick();\r\n this.hideSpinner();\r\n }\r\n\r\n private loadMoreTriggered(): void {\r\n this.removeHandlerOnPaginationClick();\r\n this.updateSearchSuggestAjaxUrl();\r\n this.showSpinner();\r\n }\r\n\r\n private updateAllFilterItems(): JobFilter {\r\n this.filterItems.forEach(fItm => fItm.refreshFilters());\r\n return this;\r\n }\r\n\r\n private updateFilterAction(): JobFilter {\r\n this.filterAction.update();\r\n this.filterAction.updateUrl();\r\n this.filterAction.reload();\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 input.closest(this.options.easyDropDownSelector)) {\r\n this.updateFilterAction();\r\n }\r\n }\r\n }\r\n\r\n private addHandlerOnFilterChange(): JobFilter {\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(): JobFilter {\r\n document.addEventListener('click', this.onDocumentClick.bind(this));\r\n\r\n return this;\r\n }\r\n\r\n private synchronize(): JobFilter {\r\n this.updateAllFilterItems();\r\n return this;\r\n }\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 easyDropDownSelector: '.edd-select',\r\n searchFieldSelector: '.cw-search',\r\n filterItemSelector: '.cw-tag-filter__item',\r\n resetBtnSelector: '.cw-sort-filters__reset-btn',\r\n selectItemSelector: '.cw-select-single',\r\n paginationItemSelector: '.cw-pagination-item, .cw-btn--next, .cw-btn--prev',\r\n jobListNodeSelector: '.cw-job-list',\r\n searchIconSelector: '.cw-search__wrapper .search-icon',\r\n jobStageButtonSelector: '.cw-job-stage-trigger'\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 JobFilter.setup(moduleSelector);\r\n\r\n module.hot.accept(() => {\r\n new JobFilter.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 JobFilter.setup(moduleSelector);\r\n}","/// \r\n/// \r\n\r\nimport easydropdown from 'easydropdown/dist/Easydropdown/Easydropdown.js';\r\n\r\nexport default class Select {\r\n private dropdown: easydropdown;\r\n\r\n constructor(public element: HTMLElement) {\r\n this.dropdown = this.getDropDown();\r\n }\r\n\r\n private getDropDown(): easydropdown {\r\n return new easydropdown(this.element.querySelector(\"select\"),\r\n {\r\n behavior: {\r\n useNativeUiOnMobile: false,\r\n showPlaceholderWhenOpen: true\r\n }\r\n });\r\n }\r\n\r\n public getSelectedValue(): string {\r\n return this.dropdown.value;\r\n }\r\n\r\n public getParameter(): string {\r\n const selected: string = this.getSelectedValue();\r\n if (typeof (selected) == \"undefined\" || selected === \"\")\r\n return \"\";\r\n return this.element.dataset.key + \"=\" + selected;\r\n }\r\n}"],"sourceRoot":""}