{"version":3,"sources":["webpack:///./Scripts/_PandoNexis/Actions/GenericLoader.action.js","webpack:///./Scripts/_Addons/PNCollectionPage/Actions/CollectionPage.action.js","webpack:///./Scripts/_PandoNexis/Components/ConditionalLinkWrapper.js","webpack:///./Scripts/_Addons/PNCollectionPage/Components/CollectionPageContainer.js"],"names":["loaderCounter","toggleGenericLoader","visible","type","loaderEl","document","getElementById","createElement","id","classList","innerHTML","querySelector","append","contains","add","remove","loadError","error","dispatch","getState","COLLECTION_PAGE_ERROR","payload","fillCollectionPageStructure","response","COLLECTION_PAGE_LOAD","pageStructure","condition","wrapper","children","collectionPageSystemId","link","linkText","useDispatch","setChildren","useState","filters","setFilters","selectedFilters","setSelectedFilters","selectedFilterValues1","setSelectedFilterValues1","selectedFilterValues2","setSelectedFilterValues2","selectedFilterValues3","setSelectedFilterValues3","componentInit","setComponentInit","activeFilterIndex","setActiveFilterIndex","filterContainerRef","useRef","useClickOutside","useSelector","state","collectionPage","useEffect","pageSystemId","get","rootRoute","then","json","catch","ex","catchError","length","filteredChildren","filter","e","some","x","toLowerCase","filterValue1","filterValue2","filterValue3","values","y","Fragment","useFilters","className","ref","map","child","indexFilter","key","onClick","title","childValue","indexFilterValue","onChange","event","filterValue","filterOrder","target","checked","toggleFilterValue","htmlFor","href","index","image","button","src","imageUrl","alt","width","height","dangerouslySetInnerHTML","__html","introduction","class"],"mappings":"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","file":"539.d95e6623a0271a912ae6.js","sourcesContent":["let loaderCounter = 0;\nexport const toggleGenericLoader = (visible, type ='spinner') => () => {\n // type = 'ripple' or 'spinner'\n let loaderEl = document.getElementById('mainGenericLoader__' + type);\n\n if (!loaderEl) {\n loaderEl = document.createElement('div');\n loaderEl.id = 'mainGenericLoader__' + type;\n loaderEl.classList = 'generic-loader__' + type;\n\n if (type === 'ripple') {\n loaderEl.innerHTML = '<div></div><div></div>';\n }\n\n document.querySelector('body').append(loaderEl);\n }\n\n // Handle multiple calls\n if (visible) {\n loaderCounter++;\n }\n else {\n loaderCounter--;\n if (loaderCounter < 0)\n loaderCounter = 0;\n }\n\n if (visible && loaderEl.classList.contains('active')) {\n return;\n }\n\n if (loaderEl) {\n if (visible) {\n loaderEl.classList.add('active');\n } else if (loaderCounter < 1) {\n loaderEl.classList.remove('active');\n }\n }\n return true;\n}","import { get, post } from '../../../Services/http';\nimport { catchError } from '../../../Actions/Error.action';\nimport { toggleGenericLoader } from '../../../_PandoNexis/Actions/GenericLoader.action';\n\nimport { COLLECTION_PAGE_LOAD, COLLECTION_PAGE_ERROR } from '../constants';\n\nconst rootRoute = '/api/collectionpage/';\n\nexport const getCollectionPageData = (pageSystemId) => (dispatch, getState) => {\n let pagenationActive = false;\n dispatch(toggleGenericLoader(true));\n return get(rootRoute + `getGetCollectionPageData?pageSystemId=` + pageSystemId)\n .then((response) => response.json())\n .then((response) => dispatch(fillCollectionPageStructure(response)))\n .catch((ex) => dispatch(catchError(ex, (error) => loadError(error))));\n};\n\nexport const loadError = (error) => (dispatch, getState) => {\n dispatch(toggleGenericLoader(false));\n return dispatch({\n type: COLLECTION_PAGE_ERROR,\n payload: {\n error,\n },\n });\n};\n\nexport const fillCollectionPageStructure = (response) => (dispatch, getState) => {\n dispatch(toggleGenericLoader(false));\n\n return dispatch({\n type: COLLECTION_PAGE_LOAD,\n payload: {\n pageStructure: response,\n },\n });\n};\n","import React, { Fragment } from 'react';\n\nconst ConditionalLinkWrapper = ({ condition, wrapper, children }) =>\n condition ? wrapper(children) : children;\n\nexport default ConditionalLinkWrapper;","import React, { Fragment, useEffect, useState, useRef } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { getCollectionPageData } from '../Actions/CollectionPage.action';\nimport { useClickOutside } from 'react-browser-hooks';\nimport ConditionalLinkWrapper from '../../../_PandoNexis/Components/ConditionalLinkWrapper';\n//import Fuse from 'fuse.js'\n//import { translate } from '../../../Services/translation';\n//import Search from './Search';\n\nconst CollectionPageContainer = ({\n collectionPageSystemId, link, linkText\n}) => {\n const dispatch = useDispatch();\n const [children, setChildren] = useState([]);\n const [filters, setFilters] = useState([]);\n const [selectedFilters, setSelectedFilters] = useState([]);\n const [selectedFilterValues1, setSelectedFilterValues1] = useState([]);\n const [selectedFilterValues2, setSelectedFilterValues2] = useState([]);\n const [selectedFilterValues3, setSelectedFilterValues3] = useState([]);\n const [componentInit, setComponentInit] = useState(false);\n const [activeFilterIndex, setActiveFilterIndex] = useState(-1);\n const filterContainerRef = useRef(false);\n useClickOutside(filterContainerRef, () => setActiveFilterIndex(-1));\n const { pageStructure } = useSelector(\n (state) => state.collectionPage\n );\n\n const clearStructure = () => {\n const obj = { folderName: firstFolderName || pageStructure.folderName };\n setCurrentStructure([obj]);\n };\n const toggleFilterValue = (event, filterValue, filterOrder) => {\n const target = event.target;\n switch (filterOrder) {\n case 1:\n if (!target.checked) {\n setSelectedFilterValues1(selectedFilterValues1.filter(e => e.toLowerCase() !== filterValue.toLowerCase()))\n }\n else if (!(selectedFilterValues1.some(e => e.toLowerCase() === filterValue.toLowerCase()))) {\n setSelectedFilterValues1([...selectedFilterValues1, filterValue.toLowerCase()])\n }\n break;\n case 2:\n if (!target.checked) {\n setSelectedFilterValues2(selectedFilterValues2.filter(e => e.toLowerCase() !== filterValue.toLowerCase()))\n }\n else if (!(selectedFilterValues2.some(e => e.toLowerCase() === filterValue.toLowerCase()))) {\n setSelectedFilterValues2([...selectedFilterValues2, filterValue.toLowerCase()])\n }\n break;\n case 3:\n if (!target.checked) {\n setSelectedFilterValues3(selectedFilterValues3.filter(e => e.toLowerCase() !== filterValue.toLowerCase()))\n }\n else if (!(selectedFilterValues3.some(e => e.toLowerCase() === filterValue.toLowerCase()))) {\n setSelectedFilterValues3([...selectedFilterValues3, filterValue.toLowerCase()])\n }\n break;\n default: break;\n }\n\n };\n const toggleFilter = (event, filterObj) => {\n const target = event.target;\n if (!target.checked) {\n setSelectedFilters(selectedFilters.filter(e => e.title !== filterObj.title))\n }\n else if (!(selectedFilters.some(e => e.title === filterObj.title))) {\n setSelectedFilters([...selectedFilters, filterObj])\n }\n };\n // When Component is initialized\n useEffect(() => {\n if (collectionPageSystemId) {\n dispatch(getCollectionPageData(collectionPageSystemId));\n }\n }, []);\n\n // When pageStructure is updated (Reducer value)\n useEffect(() => {\n if (pageStructure) {\n if (pageStructure.children && pageStructure.children.length > 0) {\n setChildren(pageStructure.children);\n }\n if (pageStructure.filters && pageStructure.filters.length > 0) {\n\n setFilters(pageStructure.filters);\n }\n setComponentInit(true);\n }\n }, [pageStructure]);\n\n // When Filter values is updated\n useEffect(() => {\n if (componentInit) {\n if (selectedFilterValues1.length < 1 && selectedFilterValues2.length < 1 && selectedFilterValues3.length < 1) {\n setChildren(pageStructure.children);\n return;\n }\n let filteredChildren = pageStructure.children;\n\n if (selectedFilterValues1 && selectedFilterValues1.length > 0) {\n filteredChildren = filteredChildren.filter(e => selectedFilterValues1.some(x => x.toLowerCase() === e.filterValue1?.toLowerCase()));\n }\n if (selectedFilterValues2 && selectedFilterValues2.length > 0) {\n filteredChildren = filteredChildren.filter(e => selectedFilterValues2.some(x => x.toLowerCase() === e.filterValue2?.toLowerCase()));\n }\n if (selectedFilterValues3 && selectedFilterValues3.length > 0) {\n filteredChildren = filteredChildren.filter(e => selectedFilterValues3.some(x => x.toLowerCase() === e.filterValue3?.toLowerCase()));\n }\n setChildren(filteredChildren);\n //setChildren(pageStructure.children.filter(e => selectedFilterValues1.some(x => x.toLowerCase() === e.filterValue1?.toLowerCase() || x.toLowerCase() === e.filterValue2?.toLowerCase() || x.toLowerCase() === e.filterValue3?.toLowerCase())));\n }\n }, [selectedFilterValues1, selectedFilterValues2, selectedFilterValues3]);\n\n // When Filter is updated\n useEffect(() => {\n if (componentInit) {\n if (selectedFilters.length < 1) {\n setChildren(pageStructure.children);\n return;\n }\n setChildren(pageStructure.children.filter(e => selectedFilters.some(x => x.values.some(y => y.toLowerCase() === e.filterValue1?.toLowerCase() || y.toLowerCase() === e.filterValue2?.toLowerCase() || y.toLowerCase() === e.filterValue3?.toLowerCase()))));\n }\n }, [selectedFilters]);\n\n\n if (!children || children.length < 0) {\n <div>No children</div>\n }\n return (\n <Fragment>\n {pageStructure?.useFilters && filters && filters.length > 0 &&\n <div className=\"row collection-page__filters\" ref={filterContainerRef}>\n <div className=\"small-12 columns\">\n {filters.map((child, indexFilter) => {\n return (<ul className=\"collection-page__filter-categories\" id={`filter-${indexFilter}`} key={`filter-${indexFilter}`}><li>\n <div className={`dropdown-selector ${activeFilterIndex === indexFilter ? 'dropdown-selector__current' : ''}`}>\n <div className=\" button button__tertiary collection-page__filter-button\" onClick={() => setActiveFilterIndex(activeFilterIndex === indexFilter ? -1 : indexFilter)}>\n {child.title}\n <i className=\"chevron__dropdown\"></i>\n </div>\n <ul className=\"collection-page__filter-values dropdown-selector__items\">\n {child.values.map((childValue, indexFilterValue) => {\n return (\n <li className=\"collection-page__filter-title\" key={`filterValue-${indexFilterValue}`}>\n <input id={`filter_${indexFilter}-${indexFilterValue}`} type=\"checkbox\" onChange={(e) => toggleFilterValue(e, childValue, indexFilter + 1)} /><label htmlFor={`filter_${indexFilter}-${indexFilterValue}`}>{childValue}</label>\n </li>\n );\n })}\n\n </ul></div>\n {/*<input id={`filter_${indexFilter}`} type=\"checkbox\" onChange={(e) => toggleFilter(e, child)} /><label htmlFor={`filter_${indexFilter}`}>{child.title}</label>*/}\n </li></ul>);\n })}\n {link && linkText &&\n <a className=\"collection-page__filter-button-link button\" href={link} title={linkText}>{linkText}</a>\n }\n </div>\n </div>\n }\n <div className=\"collection-page__data row small-up-1 medium-up-3 large-up-4\">\n {children && children.map((child, index) => {\n return (\n <div className=\"column collection-page__child-container\" key={`child-${index}`}>\n <article className=\"collection-page__child\">\n <figure className=\"collection-page__child-image\">\n {child.image &&\n <ConditionalLinkWrapper\n condition={child.button && child.button.href}\n wrapper={children => <a href={child.button.href} target={`${child.button.target ? child.button.target : ''}`}>{children}</a>}\n >\n <Fragment><img src={child.image.imageUrl} alt={child.image.title} width={child.image.width} height={child.image.height} /></Fragment>\n </ConditionalLinkWrapper>\n }\n </figure>\n <ConditionalLinkWrapper\n condition={child.button && child.button.href}\n wrapper={children => <a href={child.button.href} target={`${child.button.target ? child.button.target : ''}`}>{children}</a>}\n >\n <section className=\"collection-page__child-text\">\n <h3>{child.title}</h3>\n <div dangerouslySetInnerHTML={{ __html: child.introduction }}></div>\n </section>\n </ConditionalLinkWrapper>\n {child.button && child.button.href && child.button.linkText &&\n <a className={`button button__primary collection-page__child-cta ${child.button.class}`} href={child.button.href} target={`${child.button.target ? child.button.target : ''}`}>{child.button.linkText}</a>\n }\n </article>\n </div>\n );\n }\n )}\n </div >\n </Fragment>\n );\n};\nexport default CollectionPageContainer;\n"],"sourceRoot":""}