{"version":3,"file":"801.a2a97859e3c058cccd46.min.js","mappings":"sbAYMA,EAAAA,SAAAA,I,6bACF,WAAYC,GAAO,6BACf,cAAMA,IAEDC,MAAQC,OAAOC,OAAO,GAAI,EAAKC,UAAW,CAC3CC,QAAS,GACTC,SAAU,GACVC,aAAa,EACbC,kBAAkB,IAGtB,EAAKC,cAAgB,EAAKA,cAAcC,MAAnB,WACrB,EAAKC,cAAgB,EAAKA,cAAcD,MAAnB,WACrB,EAAKE,aAAe,EAAKA,aAAaF,MAAlB,WACpB,EAAKG,mBAAqB,EAAKA,mBAAmBH,MAAxB,WAC1B,EAAKI,aAAeC,GAAAA,CAAS,EAAKC,KAAKN,MAAV,WAAsB,KACnD,EAAKO,eAAiBF,GAAAA,CAAS,EAAKG,cAAcR,MAAnB,WAA+B,KAf/C,E,iDAkBnB,SAAmBS,GAAM,WACrBC,KAAKC,SAAS,CACVC,KAAMH,EAAKI,SAAW,IACvB,WACCC,GAAAA,CAAiBC,SAASC,cAAc,yBACxC,EAAKV,Y,wBAIb,WAAa,WACHW,EAASP,KAAKQ,gBACpB,OAAOR,KAAKpB,MAAM6B,UAAUF,GAAQG,MAAK,SAAAX,GACrCY,QAAQC,IAAIb,GACZA,EAAKc,SAAQ,SAAAC,GAAC,OAAIA,EAAEX,UAAW,KAE/B,IAAMY,EAAShB,EAAKiB,QAAO,SAAAC,GAAC,MAAmB,UAAfA,EAAEC,YAC5BC,EAASpB,EAAKiB,QAAO,SAAAI,GAAC,MAAmB,WAAfA,EAAEF,YAWlC,OATA,EAAKjB,SAAS,CACVhB,QAAS,CACLoC,eAAgBN,EAChBO,iBAAkBH,KAGtB,WACI,EAAKI,mBAENxB,KAhBJ,OAiBE,SAAAyB,GACLb,QAAQC,IAAIY,GACRC,MAAMC,U,2BAIlB,WAAgB,WACNnB,EAASP,KAAKQ,gBAEpBR,KAAKC,SAAS,CACVb,kBAAkB,IAGtBY,KAAKpB,MAAM6B,UAAUF,GAAQG,MAAK,SAAAX,GAC9BY,QAAQC,IAAIb,GAEZ,IAAMgB,EAAShB,EAAKiB,QAAO,SAAAC,GAAC,MAAmB,UAAfA,EAAEC,YAC5BC,EAASpB,EAAKiB,QAAO,SAAAI,GAAC,MAAmB,WAAfA,EAAEF,YAElC,EAAKjB,SAAS,CACVhB,QAAS,CACLoC,eAAgBN,EAChBO,iBAAkBH,KAGtB,WACI,EAAKI,sBAbjB,OAeS,SAAAC,GACLb,QAAQC,IAAIY,MAhBhB,SAiBW,WACP,EAAKvB,SAAS,CACVb,kBAAkB,S,oDAK9B,yFACIY,KAAK2B,aAAajB,MAAK,SAACX,GACpBY,QAAQC,IAAIb,GACZ,IAAMQ,GAASqB,EAAAA,EAAAA,MAEf,GAAI9C,OAAO+C,KAAKtB,GAAQuB,OAAQ,CAC5B,IAAMC,EAAUxB,EAAOL,MAAwB,MAAhBK,EAAOL,KAAeK,EAAOL,KAAO,EACnE,EAAKD,SAAS,CAAEC,KAAM6B,IAClB,WACI,EAAKjC,gBACL,EAAKF,eAGb,EAAKE,gBACL,EAAKF,OAGToC,OAAOC,iBAAiB,YACpB,SAAAC,GACI,EAAKX,gBACL,IAAMhB,GAASqB,EAAAA,EAAAA,MAEf,GAAI9C,OAAO+C,KAAKtB,GAAQuB,OAAQ,CAC5B,IAAMC,EAAUxB,EAAOL,MAAwB,MAAhBK,EAAOL,KAAeK,EAAOL,KAAO,EACnE,EAAKD,SAAS,CAAEC,KAAM6B,IAClB,WACI,EAAKnC,MAAK,WAGlB,EAAKK,SAAS,CAAEC,KAAM,IAAK,WAAQ,EAAKN,MAAK,YA5B7D,OA+BS,SAAA4B,GACLb,QAAQC,IAAIY,MAjCpB,gD,+DAsCA,WAAuB,WAAlBW,IAAkB,yDACfnC,KAAKoC,aAAapC,KAAKoC,YAAYC,WAAWC,QAElDtC,KAAKC,SAAS,CACVsC,WAAW,EACXC,MAAO,KAGPL,IAAcnC,KAAKnB,MAAMM,aACzBsD,QAAQN,UAAU,KAAM9B,SAASqC,MAAO1C,KAAK2C,UAIjD,IAAMpC,EAASP,KAAKQ,gBAoCpB,OAlCAD,EAAOrB,SAAWc,KAAKnB,MAAMK,SAG7BJ,OAAO+C,KAAKtB,GAAQM,SAAQ,SAAA+B,GACnBrC,EAAOqC,WAAarC,EAAOqC,MAGpCrC,EAAOsC,SAAU,EAEjB7C,KAAKC,SAAS,CACVd,aAAa,IAGjBa,KAAKoC,YAAcpC,KAAKpB,MAAMkE,IAAIvC,GAElCP,KAAKoC,YAAY1B,MAAK,SAAAX,GAOlB,OANAY,QAAQC,IAAIb,GACZ,EAAKE,SAAS,CACVuC,MAAOzC,EAAKgD,QACZC,aAAcjD,EAAKiD,aACnBT,WAAW,IAERxC,KAPX,OASW,SAAA0B,GAEH,OADAd,QAAQC,IAAIa,GACO,eAAfA,EAAMC,OACV,EAAKzB,SAAS,CACVsC,WAAW,IAEfU,EAAAA,EAAAA,MAAY,uCAJ4BxB,KAQzCzB,KAAKoC,c,6BAKhB,SAAgBrC,GACZ,IAAK,IAAL,MAA2BjB,OAAOoE,QAAQnD,GAA1C,eAAiD,CAA5C,gCACKc,SAAQ,SAAAsC,GAAC,OAAIA,EAAEhD,UAAW,Q,2BAKxC,WACI,IAAMI,GAASqB,EAAAA,EAAAA,MACX3C,EAAUH,OAAOC,OAAO,GAAIiB,KAAKnB,MAAMI,SAG3Ce,KAAKoD,gBAAgBnE,GALT,eAODoE,GACP,IAAMC,EAAS/C,EAAO8C,GAAUE,MAAM,KAChCC,EAAgB1E,OAAOoE,QAAQjE,GAASwE,MAAK,gBAAEb,GAAF,sBAAWc,GAAAA,CAAUd,KAASS,KACjF1C,QAAQC,IAAI4C,EAAeF,GAEvBE,GACAF,EAAOzC,SAAQ,SAAA8C,GACX,IAAM3C,EAASwC,EAAc,GAAGC,MAAK,SAAArC,GAAC,OAAIA,EAAEwC,MAAQD,KAChD3C,IAAQA,EAAOb,UAAW,OAR1C,IAAK,IAAMkD,KAAY9C,EAAQ,EAApB8C,GAcP9C,EAAOsD,GAAG7D,KAAKC,SAAS,CAAE4D,EAAGtD,EAAOsD,IAExC7D,KAAKC,SAAS,CACVhB,QAASA,EACTiB,KAAMK,EAAM,MAAYA,EAAM,KAAW,M,2BAKjD,WAMI,IALA,IAAMA,EAAS,CACXsD,EAAG7D,KAAKnB,MAAMgF,EACd3D,KAAMF,KAAKnB,MAAMqB,MAHT,aAMP,sBAAO0C,EAAP,UACK/B,SAAQ,SAAAsC,GACV,GAAIA,EAAEhD,SAAU,CACZ,IAAMkD,EAAWK,GAAAA,CAAUd,GACvBkB,EAAeX,EAAES,GACjBrD,EAAO8C,GAAW9C,EAAO8C,GAAUU,KAAKD,GACvCvD,EAAO8C,GAAY,CAACS,QANrC,MAA2BhF,OAAOoE,QAAQlD,KAAKnB,MAAMI,SAArD,eAA+D,IAgB/D,OAJAH,OAAO+C,KAAKtB,GAAQM,SAAQ,SAAA+B,GACpBoB,MAAMC,QAAQ1D,EAAOqC,MAAOrC,EAAOqC,GAAOrC,EAAOqC,GAAKsB,KAAK,SAG5D3D,I,oBAIX,WACI,IAAM4D,EAAU,GAAH,OAAMnC,OAAOoC,SAASC,UAC/BpF,EAAUe,KAAKQ,gBACfD,EAAS,GACb,IAAK,IAAMqC,KAAO3D,EAAS,CACvB,IAAMqF,EAAMrF,EAAQ2D,IACN,SAARA,GAAkB0B,EAAM,GAAc,SAAR1B,IAC5B0B,GAAK/D,EAAOwD,KAAP,UAAenB,EAAf,YAAsB2B,mBAAmBD,KAI1D,MAAO,GAAP,OAAUH,GAAV,OAAoB5D,EAAOuB,OAAS,IAAM,IAA1C,OAA+CvB,EAAO2D,KAAK,Q,0BAG/D,SAAahC,GAAG,WACNsC,EAAStC,EAAEsC,OACbC,EAAYD,EAAOE,QACnBhD,EAAO8C,EAAO9C,KACdiC,GAASa,EAAOb,MAChB1E,EAAUH,OAAOC,OAAO,GAAIiB,KAAKnB,MAAMI,SAE3CH,OAAO+C,KAAK5C,GAAS4B,SAAQ,SAAA+B,GACzB,IAAM+B,EAAQ1F,EAAQ2D,GAAKa,MAAK,SAAArC,GAAC,OAAIA,EAAEwC,KAAOD,GAASf,IAAQlB,KAC3DiD,IAAOA,EAAMxE,SAAWsE,MAGhCzE,KAAKC,SAAS,CACVhB,QAASA,EACTiB,KAAM,IACP,WACC,EAAKJ,gBACL,EAAKF,Y,2BAIb,WAAgB,WACZI,KAAKC,SAAS,CACV4D,EAAG,KACJ,WACC,EAAKhE,iBACL,EAAKH,oB,2BAIb,SAAciE,GAAO,WAEjB3D,KAAKC,SAAS,CACV4D,EAAGF,IACJ,WACC,EAAK9D,iBACL,EAAKH,oB,oBAIb,WAAS,IACDkF,EACAC,EACAC,EACA9D,EAEAb,EANC,OAQDH,KAAK+E,mBACLH,EAAa,wBAAC,IAAD,CACTI,cAAe,IACfC,UAAW,IACXC,WAAY,MACZC,eAAgB,WAChBC,UAAWpF,KAAKqF,QAChBC,qBAAsB,EACtBC,mBAAoB,EACpBC,aAAcxF,KAAKP,mBACnBgG,mBAAoB,aACpBC,sBAAuB,mBACvBC,gBAAiB,SACjBC,UAAW5F,KAAKnB,MAAMqB,KAAO,EAC7B2F,YAAaC,EAAAA,MAMrB,IAAMC,EAAc/F,KAAKnB,MAAMgF,EACzB,+BAAKmC,UAAU,iBAAiBC,QAASjG,KAAKT,eAC5C,mDAAkB,gCAAMyG,UAAU,QAAhB,SAEpB,wBAAC,mBAAD,MAkEN,OAhEA7F,EACI,+BAAK6F,UAAU,OACVlH,OAAOoE,QAAQlD,KAAKnB,MAAMI,SAASiH,KAAI,+BAAEtD,EAAF,KAAOe,EAAP,YACpC,+BAAKf,IAAKA,GACLe,EAAM7B,OAAS,GACZ,mCACK6B,EAAM3C,QAAO,SAAAmF,GAAC,OAAIA,EAAEhG,YAAU+F,KAAI,SAAClF,EAAQoF,GAAT,OAC/B,+BAAKJ,UAAU,iBAAiBpD,IAAKwD,GACjC,iCAAOJ,UAAU,0BAA0BpC,GAAE,UAAK5C,EAAOU,MAAZ,OAAmB,EAAK9C,MAAMyH,QACzEC,KAAK,WAAW5E,KAAMkB,EAAKe,MAAO3C,EAAO4C,GACzC2C,SAAU,EAAK/G,aAAcgH,SAAU,EAAK3H,MAAMO,mBACpD,iCAAOqH,QAAO,UAAKzF,EAAOU,MAAZ,OAAmB,EAAK9C,MAAMyH,SACxC,oCAAOrF,EAAOU,KAAK,gCAAMsE,UAAU,QAAhB,kBAQ9CD,GAGT/E,EACI,+BAAKgF,UAAU,YACX,wBAAC,IAAD,CAASnC,EAAG7D,KAAKnB,MAAMgF,EAAG6C,mBAAoB1G,KAAKX,eAC9CP,OAAOoE,QAAQlD,KAAKnB,MAAMI,SAASiH,KAAI,+BAAEtD,EAAF,KAAOe,EAAP,YACpC,+BAAKf,IAAKA,GACLe,EAAM7B,OAAS,GACZ,mCAASkE,UAAU,mBAAmBW,MAAI,EAACC,KAAK,QAAQ,kBAAiB,UACrElD,GAAAA,CAAUd,IACV,mCAASoD,UAAU,0BAA0BpC,GAAI,UAAYF,GAAAA,CAAUd,IACrE,oCAAOA,EAAIiE,QAAQ,IAAK,OAC1B,+BAAKb,UAAU,4BACVrC,EAAMuC,KAAI,SAAClF,EAAQoF,GAAT,OACP,+BAAKxD,IAAKwD,GACN,iCAAOJ,UAAU,yBAAyBpC,GAAE,UAAK5C,EAAOU,MAAZ,OAAmB,EAAK9C,MAAMyH,QAAUC,KAAK,WAAW5E,KAAMkB,EAAKe,MAAO3C,EAAO4C,GAC3H2C,SAAU,EAAK/G,aAAckF,QAAS1D,EAAOb,SAAUqG,SAAU,EAAK3H,MAAMO,mBAC9E,iCAAOqH,QAAO,UAAKzF,EAAOU,MAAZ,OAAmB,EAAK9C,MAAMyH,SACxC,oCAAOrF,EAAOU,KAAK,gCAAMsE,UAAU,QAAhB,IAAyBhF,EAAO8F,MAAhC,mBAY3D9G,KAAKnB,MAAM2D,MAAMV,OAAS,EAC1BgD,EAAU,+BAAKkB,UAAU,2BACpBhG,KAAKnB,MAAM2D,MAAM0D,KAAI,SAACa,EAAMX,GAAP,OAClB,wBAAC,KAAD,QAAaxD,IAAKwD,EAAOY,UAAU,EAAMC,SAAU,EAAKrI,MAAMqI,UAAcF,QAI9E/G,KAAKnB,MAAM0D,YACjBuC,EAAU,sDAGV9E,KAAKnB,MAAM0D,YAAWsC,EAAS,wBAAC,IAAD,CAAeqC,MAAM,KAGpD,+BAAKlB,UAzEG,8BA0EHhF,EACD,+BAAK4C,GAAG,UAAUoC,UAAU,YACvB7F,EACA0E,EACAC,EACAF,Q,EA9YfjG,CAAwBwI,EAAAA,GAqZ9BxI,EAAgByI,aAAe,CAC3BC,WAAY,GACZJ,SAAU,YAGd","sources":["webpack://Vollrath.Kentico.Web/./js/shared/react/components/products-for-sale-widget.jsx"],"sourcesContent":["import React, { Component } from \"react\";\r\nimport ReactPaginate from 'react-paginate';\r\nimport LoaderSection from './loader-section.jsx';\r\nimport { getUrlParams, generatePaginationHref } from '../../utils/';\r\nimport debounce from 'lodash/debounce';\r\nimport kebabCase from 'lodash/kebabCase';\r\nimport Filters from './filters.jsx';\r\nimport toast from '../../components/toast';\r\nimport FilteringBase from './filtering-base';\r\nimport ProductBase from './product-base.jsx';\r\nimport animatedScrollTo from 'animated-scroll-to';\r\n\r\nclass ProductsForSale 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            pageSize: 15,\r\n            firstSearch: true,\r\n            isLoadingFilters: false\r\n        });\r\n\r\n        this.onSearchInput = this.onSearchInput.bind(this);\r\n        this.onSearchClear = this.onSearchClear.bind(this);\r\n        this.handleChange = this.handleChange.bind(this);\r\n        this.handleNewPageClick = this.handleNewPageClick.bind(this);\r\n        this.loadDebounce = debounce(this.load.bind(this), 1000);\r\n        this.filterDebounce = debounce(this.setNewFilters.bind(this), 1000);\r\n    }\r\n\r\n    handleNewPageClick(data) {\r\n        this.setState({\r\n            page: data.selected + 1\r\n        }, () => {\r\n            animatedScrollTo(document.querySelector('.product-results-top'));\r\n            this.load();\r\n        });\r\n    }\r\n\r\n    setFilters() {\r\n        const params = this.getAllFilters();\r\n        return this.props.filterApi(params).then(data => {\r\n            console.log(data);\r\n            data.forEach(c => c.selected = false);\r\n\r\n            const orders = data.filter(o => o.category === \"Order\");\r\n            const family = data.filter(f => f.category === \"Family\");\r\n\r\n            this.setState({\r\n                filters: {\r\n                    Product_Orders: orders,\r\n                    Product_Families: family\r\n                }\r\n            },\r\n                () => {\r\n                    this.updateFilters();\r\n                });\r\n            return data;\r\n        }).catch(err => {\r\n            console.log(err);\r\n            if (error.name === 'AbortError') return;\r\n        });\r\n    }\r\n\r\n    setNewFilters() {\r\n        const params = this.getAllFilters();\r\n\r\n        this.setState({\r\n            isLoadingFilters: true\r\n        });\r\n\r\n        this.props.filterApi(params).then(data => {\r\n            console.log(data);\r\n\r\n            const orders = data.filter(o => o.category === \"Order\");\r\n            const family = data.filter(f => f.category === \"Family\");\r\n\r\n            this.setState({\r\n                filters: {\r\n                    Product_Orders: orders,\r\n                    Product_Families: family\r\n                }\r\n            },\r\n                () => {\r\n                    this.updateFilters();\r\n                });\r\n        }).catch(err => {\r\n            console.log(err);\r\n        }).finally(() => {\r\n            this.setState({\r\n                isLoadingFilters: false\r\n            });\r\n        });\r\n    }\r\n\r\n    async componentDidMount() {\r\n        this.setFilters().then((data) => {\r\n            console.log(data);\r\n            const params = getUrlParams();\r\n\r\n            if (Object.keys(params).length) {\r\n                const pageNum = params.page && params.page !== '1' ? params.page : 1;\r\n                this.setState({ page: pageNum },\r\n                    () => {\r\n                        this.setNewFilters();\r\n                        this.load();\r\n                    });\r\n            } else {\r\n                this.setNewFilters();\r\n                this.load();\r\n            }\r\n\r\n            window.addEventListener('popstate',\r\n                e => {\r\n                    this.updateFilters();\r\n                    const params = getUrlParams();\r\n\r\n                    if (Object.keys(params).length) {\r\n                        const pageNum = params.page && params.page !== '1' ? params.page : 1;\r\n                        this.setState({ page: pageNum },\r\n                            () => {\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        }).catch(err => {\r\n            console.log(err);\r\n        });\r\n    }\r\n\r\n    // load products from the api\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\r\n        // put together api parameters\r\n        const params = this.getAllFilters();\r\n\r\n        params.pageSize = this.state.pageSize;\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\r\n        params.forSale = true;\r\n\r\n        this.setState({\r\n            firstSearch: false\r\n        });\r\n\r\n        this.ajaxPromise = this.props.api(params);\r\n\r\n        this.ajaxPromise.then(data => {\r\n            console.log(data);\r\n            this.setState({\r\n                items: data.records,\r\n                totalRecords: data.totalRecords,\r\n                isLoading: false\r\n            });\r\n            return data;\r\n        })\r\n            .catch(error => {\r\n                console.log(error);\r\n                if (error.name === 'AbortError') return error;\r\n                this.setState({\r\n                    isLoading: false\r\n                });\r\n                toast.error('There was an error getting results');\r\n                return error;\r\n            });\r\n\r\n        return this.ajaxPromise;\r\n    }\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('|');\r\n            const filterSection = Object.entries(filters).find(([key]) => kebabCase(key) === 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 => f.id === +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 = kebabCase(key),\r\n                        encodedValue = v.id;\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            const val = filters[key];\r\n            if (((key === 'page' && val > 1) || key !== 'page')) {\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    handleChange(e) {\r\n        const target = e.target,\r\n            isChecked = target.checked,\r\n            name = target.name,\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.id === value && key === name);\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.setNewFilters();\r\n            this.load();\r\n        });\r\n    }\r\n\r\n    onSearchClear() {\r\n        this.setState({\r\n            q: ''\r\n        }, () => {\r\n            this.filterDebounce();\r\n            this.loadDebounce();\r\n        });\r\n    }\r\n\r\n    onSearchInput(value) {\r\n\r\n        this.setState({\r\n            q: value\r\n        }, () => {\r\n            this.filterDebounce();\r\n            this.loadDebounce();\r\n        });\r\n    }\r\n\r\n    render() {\r\n        let pagination,\r\n            loader,\r\n            results,\r\n            filter,\r\n            filterRow,\r\n            selected;\r\n\r\n        if (this.showPagination()) {\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.handleNewPageClick}\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        filterRow = 'row justify-content-center';\r\n\r\n        const clearSearch = this.state.q\r\n            ? <div className=\"filter-bullets\" onClick={this.onSearchClear} >\r\n                <span>Clear Search<span className=\"dull\">&nbsp;&nbsp;X</span></span>\r\n            </div>\r\n            : <React.Fragment></React.Fragment>;\r\n\r\n        selected =\r\n            <div className=\"row\">\r\n                {Object.entries(this.state.filters).map(([key, value]) => (\r\n                    <div key={key}>\r\n                        {value.length > 0 &&\r\n                            <div>\r\n                                {value.filter(m => m.selected).map((filter, index) => (\r\n                                    <div className=\"filter-bullets\" key={index}>\r\n                                        <input className=\"filter-bullets-checkbox\" id={`${filter.name}${this.props.nodeId}`\r\n                                        } type=\"checkbox\" name={key} value={filter.id\r\n                                        } onChange={this.handleChange} disabled={this.state.isLoadingFilters} />\r\n                                        <label htmlFor={`${filter.name}${this.props.nodeId}`}>\r\n                                            <span>{filter.name}<span className=\"dull\">&nbsp;&nbsp;X</span></span>\r\n                                        </label>\r\n                                    </div>\r\n                                ))}\r\n                            </div>\r\n                        }\r\n                    </div>\r\n                ))}\r\n                {clearSearch}\r\n            </div>;\r\n\r\n        filter =\r\n            <div className=\"col-lg-3\">\r\n                <Filters q={this.state.q} handleSearchChange={this.onSearchInput}>\r\n                    {Object.entries(this.state.filters).map(([key, value]) => (\r\n                        <div key={key}>\r\n                            {value.length > 0 &&\r\n                                <details className=\"filter-accordion\" open role=\"group\" aria-labelledby={'filter-' +\r\n                                    kebabCase(key)}>\r\n                                    <summary className=\"filter-accordion-header\" id={'filter-' + kebabCase(key)\r\n                                    }><span>{key.replace('_', ' ')}</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.name}${this.props.nodeId}`} type=\"checkbox\" name={key} value={filter.id\r\n                                                } onChange={this.handleChange} checked={filter.selected} disabled={this.state.isLoadingFilters} />\r\n                                                <label htmlFor={`${filter.name}${this.props.nodeId}`}>\r\n                                                    <span>{filter.name}<span className=\"dull\">({filter.count})</span></span>\r\n                                                </label>\r\n                                            </div>\r\n                                        ))}\r\n                                    </div>\r\n                                </details>\r\n                            }\r\n                        </div>\r\n                    ))}\r\n                </Filters>\r\n            </div>;\r\n\r\n        if (this.state.items.length > 0) {\r\n            results = <div className=\"row product-results-top\">\r\n                {this.state.items.map((item, index) => (\r\n                    <ProductBase key={index} userType={true} colClass={this.props.colClass} {...item} />\r\n                ))}\r\n            </div>;\r\n        }\r\n        else if (!this.state.isLoading) {\r\n            results = <p>No results found</p>;\r\n        }\r\n\r\n        if (this.state.isLoading) loader = <LoaderSection show={true} />;\r\n\r\n        return (\r\n            <div className={filterRow}>\r\n                {filter}\r\n                <div id=\"results\" className=\"col-lg-9\">\r\n                    {selected}\r\n                    {loader}\r\n                    {results}\r\n                    {pagination}\r\n                </div>\r\n            </div>\r\n        );\r\n    }\r\n}\r\n\r\nProductsForSale.defaultProps = {\r\n    categories: [],\r\n    colClass: 'col-md-4'\r\n};\r\n\r\nexport default ProductsForSale;"],"names":["ProductsForSale","props","state","Object","assign","baseState","filters","pageSize","firstSearch","isLoadingFilters","onSearchInput","bind","onSearchClear","handleChange","handleNewPageClick","loadDebounce","debounce","load","filterDebounce","setNewFilters","data","this","setState","page","selected","animatedScrollTo","document","querySelector","params","getAllFilters","filterApi","then","console","log","forEach","c","orders","filter","o","category","family","f","Product_Orders","Product_Families","updateFilters","err","error","name","setFilters","getUrlParams","keys","length","pageNum","window","addEventListener","e","pushState","ajaxPromise","controller","abort","isLoading","items","history","title","getUrl","key","forSale","api","records","totalRecords","toast","entries","v","resetFilterData","paramKey","values","split","filterSection","find","kebabCase","value","id","q","encodedValue","push","Array","isArray","join","baseUrl","location","pathname","val","encodeURIComponent","target","isChecked","checked","match","pagination","loader","results","showPagination","previousLabel","nextLabel","breakLabel","breakClassName","pageCount","pages","marginPagesDisplayed","pageRangeDisplayed","onPageChange","containerClassName","subContainerClassName","activeClassName","forcePage","hrefBuilder","generatePaginationHref","clearSearch","className","onClick","map","m","index","nodeId","type","onChange","disabled","htmlFor","handleSearchChange","open","role","replace","count","item","userType","colClass","show","FilteringBase","defaultProps","categories"],"sourceRoot":""}