{"version":3,"file":"472.82156ea56988bf971296.min.js","mappings":"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","sources":["webpack://Vollrath.Kentico.Web/./js/shared/react/components/family-genus-grid.jsx"],"sourcesContent":["import React, { Component } from \"react\";\r\nimport Genus from './genus-item.jsx';\r\nimport ReactPaginate from 'react-paginate';\r\nimport { getClassificationFilterOptions, getFilteredClassificationsByClassification } from '../../apis/filters';\r\nimport toast from '../../components/toast';\r\nimport { getUrlParams, generatePaginationHref, toClassName } from '../../utils/';\r\nimport LoaderSection from './loader-section.jsx';\r\nimport Filters from './filters.jsx';\r\nimport debounce from 'lodash/debounce';\r\nimport FilteringBase from './filtering-base';\r\n\r\nclass FamilyGenusContainer extends FilteringBase {\r\n    constructor(props) {\r\n        super(props);\r\n\r\n        this.state = Object.assign({}, this.baseState, {\r\n            filters: [],\r\n            isLoadingFilters: false,\r\n            queryParams: props.VirtualPassthrough ? `?${props.virtualPassthrough}` : '',\r\n            firstSearch: true\r\n        });\r\n\r\n        if (props.virtualPassthrough) {\r\n            const passthrough = props.virtualPassthrough.split('=');\r\n            this.filterKey = passthrough[0];\r\n            this.filterValue = passthrough[1];\r\n        }\r\n\r\n        this.handleChange = this.handleChange.bind(this);\r\n        this.handlePageClick = this.handlePageClick.bind(this);\r\n        this.loadDebounce = debounce(this.load.bind(this), 1000);\r\n    }\r\n\r\n    componentDidMount() {\r\n               \r\n        // get filters\r\n        this.loadFilters()\r\n            .then(data => {\r\n                this.updateFilters();\r\n                // reload filters if any are set\r\n                if (Object.keys(getUrlParams()).length) this.loadFilters();\r\n                let params = getUrlParams();\r\n                let pageNum;\r\n                if (Object.keys(params).length) {\r\n                    pageNum = params.page !== '1' ? params.page : 1;\r\n                    this.setState({ page: pageNum }, () => {\r\n                        this.load();\r\n                    });\r\n                } else {\r\n                    this.load();\r\n                }          \r\n                window.addEventListener('popstate', e => {\r\n                    this.updateFilters();\r\n                    console.log(location.pathname + location.search);\r\n                    let params = getUrlParams();\r\n                    let pageNum;\r\n                    if (Object.keys(params).length) {\r\n                        pageNum = params.page !== '1' ? params.page : 1;\r\n                        this.setState({ page: pageNum }, () => {                           \r\n                            this.load(false);\r\n                        });\r\n                    } else {\r\n                        this.setState({ page: 1 }, () => { this.load(false) });                      \r\n                    }                   \r\n                });\r\n            })\r\n            .catch(error => {\r\n                console.log(error);\r\n                this.setState({\r\n                    isLoading: false\r\n                });\r\n                toast.error('There was an error getting product family filters');\r\n            });\r\n    }\r\n\r\n    load(pushState = true) {\r\n        if (this.ajaxPromise) this.ajaxPromise.controller.abort();\r\n\r\n        this.setState({\r\n            isLoading: true,\r\n            items: []\r\n        });\r\n\r\n        if (pushState && !this.state.firstSearch) {\r\n            history.pushState(null, document.title, this.getUrl());\r\n        }\r\n        this.updatePassthrough();\r\n\r\n        // grab filter data from query string\r\n        const params = {\r\n                page: this.state.page,\r\n                pageSize: this.state.pageSize,\r\n                selected: this.getSelectedApiParams()\r\n            };\r\n        // remove empty or undefined params\r\n        Object.keys(params).forEach(key => {\r\n            if (!params[key]) delete params[key];\r\n        });\r\n        // add in virtual category passthrough if available\r\n        if (this.filterKey && this.filterValue) {\r\n            params['filterkey'] = this.filterKey;\r\n            params['filtervalue'] = this.filterValue;\r\n        }\r\n\r\n        this.setState({\r\n            firstSearch: false\r\n        });\r\n\r\n        this.ajaxPromise = getFilteredClassificationsByClassification(this.props.id, params);\r\n        return this.ajaxPromise\r\n            .then(data => {\r\n                this.setState({\r\n                    items: data.records,\r\n                    totalRecords: data.totalRecords\r\n                });\r\n            })\r\n            .catch(error => {\r\n                console.log(error);\r\n                if (error.name === 'AbortError') return;\r\n                toast.error('There was an error loading products');\r\n            })\r\n            .finally(() => {\r\n                this.setState({\r\n                    isLoading: false\r\n                });\r\n            });\r\n    }\r\n\r\n    loadFilters() {\r\n        if (this.filterPromise) this.filterPromise.controller.abort();\r\n\r\n        const params = {\r\n            selected: this.getSelectedApiParams()\r\n        };\r\n        if (!params.selected) delete params['selected'];\r\n        this.setState({\r\n            isLoadingFilters: true\r\n        });\r\n\r\n        this.filterPromise = getClassificationFilterOptions(this.props.id, params);\r\n        return this.filterPromise\r\n            .then(data => {\r\n                this.resetFilterData(data);\r\n                // map currently selected filters to new filters\r\n                const selected = [];\r\n                for (const [key, value] of Object.entries(this.state.filters)) {\r\n                    value.forEach(v => {\r\n                        if (v.selected) selected.push(v.lookupGuid);\r\n                    });\r\n                }\r\n                for (const [key, value] of Object.entries(data)) {\r\n                    value.forEach(v => {\r\n                        if (selected.indexOf(v.lookupGuid) >= 0) v.selected = true;\r\n                    });\r\n                }\r\n                this.setState({\r\n                    filters: data\r\n                });\r\n                return data;\r\n            })\r\n            .catch(error => {\r\n                console.log(error);\r\n                if (error.name === 'AbortError') return;\r\n            })\r\n            .finally(() => {\r\n                this.setState({\r\n                    isLoadingFilters: false\r\n                });\r\n            });\r\n    }\r\n\r\n    getSelectedApiParams() {\r\n        const selected = [];\r\n        for (const [key, value] of Object.entries(this.state.filters)) {\r\n            value.forEach(v => {\r\n                if (v.selected) selected.push(v.lookupGuid);\r\n            });\r\n        }\r\n\r\n        return selected.join(',');\r\n    }\r\n\r\n    // set the selected state of the filters to false\r\n    resetFilterData(data) {\r\n        for (const [key, value] of Object.entries(data)) {\r\n            value.forEach(v => v.selected = false);\r\n        }\r\n    }\r\n\r\n    // update filters on page using the url parameters\r\n    updateFilters() {\r\n        const params = getUrlParams(),\r\n            filters = Object.assign({}, this.state.filters);\r\n\r\n        // reset filters to be unselected\r\n        this.resetFilterData(filters);\r\n        // go through params and update selected filters\r\n        for (const paramKey in params) {\r\n            const values = params[paramKey].split('|').join(',').split(',');\r\n            const filterSection = Object.entries(filters).find(([key]) => toClassName(key) === toClassName(paramKey));\r\n            // console.log(filterSection, values);\r\n\r\n            if (filterSection) {\r\n                values.forEach(value => {\r\n                    const filter = filterSection[1].find(f => toClassName(f.value.toLowerCase()) === value);\r\n                    if (filter) filter.selected = true;\r\n                });\r\n            }\r\n        }\r\n\r\n        // update search query\r\n        if (params.q) this.setState({ q: params.q });\r\n\r\n        this.setState({\r\n            filters: filters,\r\n            page: params['page'] ? +params['page'] : 1\r\n        });\r\n    }\r\n\r\n    // get all the selected filters at this time\r\n    getAllFilters() {\r\n        const params = {\r\n            q: this.state.q,\r\n            page: this.state.page\r\n        };\r\n\r\n        for (const [key, value] of Object.entries(this.state.filters)) {\r\n            value.forEach(v => {\r\n                if (v.selected) {\r\n                    const paramKey = toClassName(key),\r\n                        encodedValue = v.value;\r\n                    if (params[paramKey]) params[paramKey].push(encodedValue);\r\n                    else params[paramKey] = [encodedValue];\r\n                }\r\n            });\r\n        }\r\n\r\n        // pipe delimit array values\r\n        Object.keys(params).forEach(key => {\r\n            if (Array.isArray(params[key])) params[key] = params[key].join('|');\r\n        });\r\n\r\n        return params;\r\n    }\r\n\r\n    // get the url for the current window location\r\n    getUrl() {\r\n        const baseUrl = `${window.location.pathname}`,\r\n            filters = this.getAllFilters(),\r\n            params = [];\r\n        for (const key in filters) {\r\n            let val = filters[key];\r\n            if (((key === 'page' && val > 1) || key !== 'page')) {\r\n                if (typeof val === 'string') val = val.toLowerCase();\r\n                if (val) params.push(`${key}=${encodeURIComponent(val)}`);\r\n            }\r\n        }\r\n\r\n        return `${baseUrl}${params.length ? '?' : ''}${params.join('&')}`;\r\n    }\r\n\r\n    updatePassthrough() {\r\n        const params = getUrlParams(),\r\n            queryParams = [];\r\n\r\n        // make sure passthrough is always set\r\n        if (this.filterKey && !params[this.filterKey]) {\r\n            params[this.filterKey] = this.filterValue;\r\n        }\r\n        // go through params and update selected filters\r\n        for (const paramKey in params) {\r\n            if (paramKey !== 'q' && paramKey !== 'page') queryParams.push(`${toClassName(paramKey)}=${params[paramKey]}`);\r\n        }\r\n\r\n        // console.log(queryParams, this.filterKey);\r\n        this.setState({\r\n            queryParams: queryParams.length ? `?${queryParams.join('&')}` : ''\r\n        });\r\n    }\r\n\r\n    handleChange(e) {\r\n        const target = event.target,\r\n            isChecked = target.checked,\r\n            value = target.value,\r\n            filters = Object.assign({}, this.state.filters);\r\n\r\n        Object.keys(filters).forEach(key => {\r\n            const match = filters[key].find(f => f.lookupGuid === value);\r\n            if (match) match.selected = isChecked;\r\n        });\r\n\r\n        this.setState({\r\n            filters: filters,\r\n            page: 1\r\n        }, () => {\r\n            this.loadFilters();\r\n            this.load();\r\n        });\r\n    }\r\n    \r\n    render() {\r\n        let results,\r\n            pagination,\r\n            loader;\r\n\r\n        if (this.state.isLoading) loader = <LoaderSection show={true} />;\r\n\r\n        if (this.showPagination() && !this.state.isLoading) {\r\n            pagination = (<ReactPaginate\r\n                previousLabel={'<'}\r\n                nextLabel={'>'}\r\n                breakLabel={'...'}\r\n                breakClassName={'break-me'}\r\n                pageCount={this.pages()}\r\n                marginPagesDisplayed={2}\r\n                pageRangeDisplayed={5}\r\n                onPageChange={this.handlePageClick}\r\n                containerClassName={'pagination'}\r\n                subContainerClassName={'pages pagination'}\r\n                activeClassName={'active'}\r\n                forcePage={this.state.page - 1}\r\n                hrefBuilder={generatePaginationHref}\r\n            />);\r\n        }\r\n\r\n        if (this.state.items.length > 0) {\r\n            results = (<div className=\"row\">\r\n                {this.state.items.map((genus, index) => (\r\n                    <Genus key={index} {...genus} queryParams={this.state.queryParams} colClass=\"col-lg-4 col-6 item-col\" />\r\n                ))}\r\n            </div>);\r\n        }\r\n        else if (!this.state.isLoading) {\r\n            results = <div><p className=\"no-results\">No results found</p></div>;\r\n        }\r\n\r\n        return (\r\n            <div className=\"row justify-content-center\">\r\n                {/* <div className=\"col-lg-3\">\r\n                    <Filters showSearch={false} filterMsg=\"\">\r\n                        {Object.entries(this.state.filters).map(([key, value], index) => (\r\n                            <details className=\"filter-accordion\" open key={key} role=\"group\" aria-labelledby={'filter-' + toClassName(key)}>\r\n                                <summary className=\"filter-accordion-header\" id={'filter-' + toClassName(key)}><span>{key}</span></summary>\r\n                                <div className=\"filter-accordion-content\">\r\n                                    {value.map((filter, index) => (\r\n                                        <div key={index}>\r\n                                            <input className=\"custom-checkbox square\" id={filter.LookupGuid} type=\"checkbox\" name={key} value={filter.LookupGuid} onChange={this.handleChange} checked={filter.Selected} disabled={this.state.isLoadingFilters} />\r\n                                            <label htmlFor={filter.LookupGuid}>\r\n                                                <span>{filter.Name}  <span className=\"dull\">({filter.NumberOfGenus})</span></span>\r\n                                            </label>\r\n                                        </div>\r\n                                    ))}\r\n                                </div>\r\n                            </details>\r\n                        ))}\r\n                    </Filters>\r\n                </div>*/}\r\n                  \r\n                <div id=\"results\" className=\"col-lg-10\">\r\n                    {loader}\r\n                    {results}\r\n                    {pagination}\r\n                </div>\r\n            </div>\r\n        );\r\n    }\r\n}\r\n\r\nexport default FamilyGenusContainer;"],"names":["FamilyGenusContainer","props","state","Object","assign","baseState","filters","isLoadingFilters","queryParams","VirtualPassthrough","virtualPassthrough","firstSearch","passthrough","split","filterKey","filterValue","handleChange","bind","handlePageClick","loadDebounce","debounce","load","this","loadFilters","then","data","updateFilters","keys","getUrlParams","length","pageNum","params","page","setState","window","addEventListener","e","console","log","location","pathname","search","error","isLoading","toast","pushState","ajaxPromise","controller","abort","items","history","document","title","getUrl","updatePassthrough","pageSize","selected","getSelectedApiParams","forEach","key","getFilteredClassificationsByClassification","id","records","totalRecords","name","filterPromise","getClassificationFilterOptions","resetFilterData","entries","v","push","lookupGuid","indexOf","join","paramKey","values","filterSection","find","toClassName","value","filter","f","toLowerCase","q","encodedValue","Array","isArray","baseUrl","getAllFilters","val","encodeURIComponent","target","event","isChecked","checked","match","results","pagination","loader","show","showPagination","previousLabel","nextLabel","breakLabel","breakClassName","pageCount","pages","marginPagesDisplayed","pageRangeDisplayed","onPageChange","containerClassName","subContainerClassName","activeClassName","forcePage","hrefBuilder","generatePaginationHref","className","map","genus","index","colClass","FilteringBase"],"sourceRoot":""}