{"version":3,"file":"343.9861403cee8b56b3603e.min.js","mappings":"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","sources":["webpack://Stoelting.Kentico.Web/./js/shared/react/components/family-genus-grid.jsx","webpack://Stoelting.Kentico.Web/./js/shared/react/components/filtering-base.js","webpack://Stoelting.Kentico.Web/./js/shared/react/components/filters.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 = ;\r\n\r\n if (this.showPagination() && !this.state.isLoading) {\r\n pagination = ('}\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 = (
\r\n {this.state.items.map((genus, index) => (\r\n \r\n ))}\r\n
);\r\n }\r\n else if (!this.state.isLoading) {\r\n results =

No results found

;\r\n }\r\n\r\n return (\r\n
\r\n {/*
\r\n \r\n {Object.entries(this.state.filters).map(([key, value], index) => (\r\n
\r\n {key}\r\n
\r\n {value.map((filter, index) => (\r\n
\r\n \r\n \r\n
\r\n ))}\r\n
\r\n
\r\n ))}\r\n
\r\n
*/}\r\n \r\n
\r\n {loader}\r\n {results}\r\n {pagination}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default FamilyGenusContainer;","import React, { Component } from 'react';\r\nimport animatedScrollTo from 'animated-scroll-to';\r\n\r\nexport default class FilteringBase extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.baseState = {\r\n q: '',\r\n items: [],\r\n page: 1,\r\n pageSize: 15,\r\n totalRecords: 0,\r\n isLoading: true\r\n };\r\n\r\n this.resultsSelector = '#results';\r\n }\r\n\r\n pages() {\r\n return Math.ceil(this.state.totalRecords / this.state.pageSize);\r\n }\r\n\r\n showPagination() {\r\n return this.state.totalRecords > this.state.pageSize && !this.state.isLoading;\r\n }\r\n\r\n handlePageClick(data) {\r\n this.setState({\r\n page: data.selected + 1\r\n }, () => {\r\n this.load();\r\n animatedScrollTo(document.querySelector(this.resultsSelector));\r\n });\r\n }\r\n\r\n resetPaging() {\r\n this.setState({\r\n page: 1\r\n });\r\n }\r\n}","import React, { Component } from \"react\";\r\n\r\nclass Filters extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n q: this.props.q,\r\n isFilterOpen: false\r\n };\r\n\r\n this.onSearchInput = this.onSearchInput.bind(this);\r\n this.toggleFilter = this.toggleFilter.bind(this);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.q !== this.props.q) {\r\n this.setState({\r\n q: this.props.q\r\n });\r\n }\r\n }\r\n\r\n onSearchInput(e) {\r\n let value = '';\r\n if (e.target.value.trim()) {\r\n value = e.target.value;\r\n\r\n }\r\n this.setState({\r\n [e.target.name]: value\r\n });\r\n this.props.handleSearchChange(value);\r\n }\r\n\r\n toggleFilter() {\r\n this.setState({\r\n isFilterOpen: !this.state.isFilterOpen\r\n });\r\n }\r\n\r\n render() {\r\n let searchBox;\r\n\r\n\r\n if (this.props.showSearch !== false) {\r\n searchBox =\r\n
\r\n \r\n \r\n
;\r\n }\r\n else if (this.props.filterMsg) {\r\n searchBox =\r\n
\r\n

{this.props.filterMsg}

\r\n
;\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n {searchBox}\r\n {this.props.children}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nFilters.defaultProps = {\r\n q: '',\r\n handleSearchChange: function () { },\r\n filterMsg: 'Filter your search below...'\r\n};\r\n\r\nexport default Filters;"],"names":["_FilteringBase","FamilyGenusContainer","props","_this","_classCallCheck","_callSuper","state","Object","assign","baseState","filters","isLoadingFilters","queryParams","VirtualPassthrough","concat","virtualPassthrough","firstSearch","passthrough","split","filterKey","filterValue","handleChange","bind","handlePageClick","loadDebounce","debounce","load","_inherits","_createClass","key","value","_this2","this","loadFilters","then","data","updateFilters","keys","getUrlParams","length","pageNum","params","page","setState","window","addEventListener","e","console","log","location","pathname","search","error","isLoading","toast","_this3","pushState","arguments","undefined","ajaxPromise","controller","abort","items","history","document","title","getUrl","updatePassthrough","pageSize","selected","getSelectedApiParams","forEach","getFilteredClassificationsByClassification","id","records","totalRecords","name","_this4","filterPromise","getClassificationFilterOptions","resetFilterData","_i","_Object$entries","entries","_Object$entries$_i","_slicedToArray","v","push","lookupGuid","_i2","_Object$entries2","_Object$entries2$_i","indexOf","_i3","_Object$entries3","_Object$entries3$_i","join","_i4","_Object$entries4","_Object$entries4$_i","_loop","paramKey","values","filterSection","find","_ref","toClassName","filter","f","toLowerCase","q","_loop2","_Object$entries5$_i","_Object$entries5","_i5","encodedValue","Array","isArray","baseUrl","getAllFilters","val","encodeURIComponent","_this5","target","event","isChecked","checked","match","results","pagination","loader","_this6","React","LoaderSection","show","showPagination","ReactPaginate","previousLabel","nextLabel","breakLabel","breakClassName","pageCount","pages","marginPagesDisplayed","pageRangeDisplayed","onPageChange","containerClassName","subContainerClassName","activeClassName","forcePage","hrefBuilder","generatePaginationHref","className","map","genus","index","Genus","_extends","colClass","FilteringBase","_Component","resultsSelector","Math","ceil","animatedScrollTo","querySelector","Component","Filters","isFilterOpen","onSearchInput","toggleFilter","prevProps","trim","_defineProperty","handleSearchChange","searchBox","showSearch","htmlFor","type","placeholder","onChange","filterMsg","onClick","toString","class","xlinkHref","children","defaultProps"],"sourceRoot":""}