{"version":3,"file":"801.a2a97859e3c058cccd46.min.js","mappings":"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","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\"> 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\"> 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":""}