{"version":3,"file":"909.58b54ee429a3ce39247f.min.js","mappings":"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","sources":["webpack://Vollrath.Kentico.Web/./js/shared/react/pages/downloads-library.jsx"],"sourcesContent":["import React, { Component } from 'react';\r\nimport { getDocuments, getProductDocuments, getMatchingProduct, getDocCount } from '../../apis/search';\r\nimport LoaderSection from '../components/loader-section.jsx';\r\nimport DocumentCard from '../components/document-card.jsx';\r\nimport SearchSection from '../components/search-section.jsx';\r\nimport Product from '../components/product-item.jsx';\r\nimport Filters from '../components/filters.jsx';\r\nimport ReactPaginate from 'react-paginate';\r\nimport animatedScrollTo from 'animated-scroll-to';\r\nimport { getUrlParams } from '../../utils/';\r\nimport toast from '../../components/toast';\r\nimport { transformBytes } from '../../utils/';\r\n\r\nclass DownloadsLibrary extends Component {\r\n constructor(props) {\r\n super(props);\r\n \r\n this.state = {\r\n documentItems: [],\r\n isLoading: false,\r\n pagePath: location.pathname,\r\n q: '',\r\n totalRecords: 0,\r\n directProduct: {},\r\n productDocs: [],\r\n pageSize: 12,\r\n page: 1,\r\n showDocs: true,\r\n docTypes: {},\r\n showFilters: true,\r\n categoryList: [],\r\n directMatch: false,\r\n firstLoad: true,\r\n docCount: {}\r\n }\r\n\r\n this.loadDocuments = this.loadDocuments.bind(this);\r\n this.loadDirectMatch = this.loadDirectMatch.bind(this);\r\n this.handlePageClick = this.handlePageClick.bind(this);\r\n this.onCheckBoxChange = this.onCheckBoxChange.bind(this);\r\n this.onSubmit = this.onSubmit.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.getUrl = this.getUrl.bind(this);\r\n this.searchInput = React.createRef();\r\n this.resetSearch = this.resetSearch.bind(this);\r\n this.resetFilters = this.resetFilters.bind(this);\r\n this.getDocTypeCount = this.getDocTypeCount.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const docTypes = this.props.docCodes;\r\n this.getDocTypeCount();\r\n let params = getUrlParams();\r\n let pageNum, q;\r\n\r\n if (Object.keys(params).length) {\r\n pageNum = params.page && params.page !== '1' ? params.page : 1;\r\n q = params.q ? params.q : '';\r\n this.setState({\r\n page: pageNum,\r\n docTypes: docTypes, \r\n categoryList: [],\r\n q: q\r\n }, () => {\r\n this.loadDocuments(this.state.categoryList, true);\r\n });\r\n } else {\r\n this.setState({\r\n docTypes: docTypes,\r\n categoryList: []\r\n }, () => { this.loadDocuments(this.state.categoryList, true); });\r\n\r\n }\r\n\r\n window.addEventListener('popstate', e => { \r\n let params = getUrlParams();\r\n let pageNum;\r\n let q;\r\n \r\n if (Object.keys(params).length) {\r\n this.cleanUpState();\r\n pageNum = params.page && params.page !== '1' ? params.page : 1;\r\n q = params.q && params.q !== '' ? params.q : '';\r\n this.setState({\r\n page: pageNum,\r\n q: q,\r\n categoryList: []\r\n }, () => {\r\n \r\n this.loadDirectMatch(false);\r\n });\r\n } else {\r\n this.setState({ page: 1 }, () => {\r\n this.resetSearch(e); \r\n // this.loadDirectMatch(false);\r\n });\r\n }\r\n });\r\n }\r\n\r\n onSubmit(e) {\r\n e.preventDefault();\r\n this.cleanUpState();\r\n this.setState({ q: this.searchInput.current.value }, () => {\r\n this.loadDirectMatch();\r\n });\r\n }\r\n\r\n resetFilters() {\r\n Array.from(document.querySelectorAll('.document-checkbox')).map((item, key) => {\r\n if (item.checked) item.checked = false;\r\n });\r\n }\r\n\r\n resetSearch(e) {\r\n e.preventDefault();\r\n this.cleanUpState();\r\n this.setState({ q: '' }, () => {\r\n this.loadDirectMatch(false);\r\n });\r\n this.resetFilters();\r\n this.searchInput.current.focus();\r\n }\r\n\r\n handleChange(e) {\r\n this.setState({ [e.target.name]: e.target.value });\r\n }\r\n\r\n //logic for filters\r\n onCheckBoxChange(e) {\r\n const target = e.target,\r\n isChecked = target.checked,\r\n name = target.name;\r\n let categories = [...this.state.categoryList];\r\n\r\n if (isChecked) {\r\n categories.push(name);\r\n this.setState({\r\n showDocs: true,\r\n categoryList: categories\r\n }, () => {\r\n this.loadDocuments(categories);\r\n });\r\n }\r\n else {\r\n const filtered = categories.filter(item => item !== name);\r\n\r\n this.setState({\r\n categoryList: filtered\r\n }, () => {\r\n this.loadDocuments(filtered);\r\n });\r\n }\r\n }\r\n\r\n cleanUpState() {\r\n this.setState({\r\n documentItems: [],\r\n directProduct: {},\r\n productDocs: [],\r\n page: 1\r\n });\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;\r\n }\r\n\r\n handlePageClick(data) {\r\n this.setState({\r\n page: data.selected + 1\r\n }, () => {\r\n this.loadDocuments(this.state.categoryList, true);\r\n animatedScrollTo(document.querySelector('.documents-search-section'));\r\n });\r\n }\r\n\r\n getUrl() {\r\n const filters = {\r\n q: this.state.q,\r\n page: this.state.page\r\n };\r\n const baseUrl = `${window.location.pathname}`,\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 getDocTypeCount() {\r\n let q = this.state.q;\r\n if (this.state.q === '') q = '*';\r\n\r\n let params = {\r\n q: q\r\n }\r\n\r\n getDocCount(params)\r\n .then(data => {\r\n this.setState\r\n ({\r\n docCount: data\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 });\r\n }\r\n\r\n //check if direct product match or send to get search related documents\r\n loadDirectMatch(pushState = true) {\r\n let q = this.state.q;\r\n if (!this.state.q) q = '*';\r\n this.setState({\r\n isLoading: true,\r\n showFilters: true,\r\n showDocs: true,\r\n // categoryList: [],\r\n directMatch: false\r\n });\r\n\r\n const params = {\r\n q: q\r\n } \r\n\r\n this.setState({ productDocs: [] });\r\n\r\n const getProductMatch = getMatchingProduct(params)\r\n .then(data => {\r\n if (data) {\r\n if (pushState && !this.state.firstLoad) history.pushState(null, document.title, this.getUrl());\r\n toast.success('We found a matching product');\r\n this.setState({\r\n directProduct: data,\r\n directMatch: true,\r\n firstLoad: false\r\n });\r\n\r\n return data;\r\n\r\n } else {\r\n this.loadDocuments(this.state.categoryList, pushState);\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 });\r\n\r\n const getProductDocs = getProductDocuments(params)\r\n .then(data => {\r\n if (data) {\r\n this.setState({\r\n productDocs: data\r\n });\r\n return data;\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 });\r\n\r\n Promise.all([getProductMatch, getProductDocs])\r\n .then(() => {\r\n \r\n\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n //load search related documents if no direct match found\r\n loadDocuments(category, pushState) {\r\n console.log(category);\r\n let q = this.state.q;\r\n\r\n if (!this.state.q) q = '*';\r\n\r\n this.setState({\r\n isLoading: true\r\n });\r\n if (pushState && !this.state.firstLoad) history.pushState(null, document.title, this.getUrl());\r\n const params = {\r\n q: q,\r\n page: this.state.page,\r\n pageSize: this.state.pageSize,\r\n type: category\r\n };\r\n\r\n this.getDocTypeCount();\r\n\r\n getDocuments(params)\r\n .then(data => {\r\n this.setState({\r\n documentItems: data.records,\r\n totalRecords: data.totalRecords,\r\n isLoading: false,\r\n showDocs: true,\r\n firstLoad: false\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 });\r\n }\r\n\r\n render() {\r\n let documents,\r\n loader,\r\n productDocs,\r\n documentList,\r\n showPagination,\r\n showFilters,\r\n searchClearBtn;\r\n\r\n if (this.state.isLoading) {\r\n loader = <LoaderSection show={true} />;\r\n }\r\n\r\n const 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 />;\r\n\r\n if (this.showPagination()) {\r\n showPagination = pagination;\r\n }\r\n\r\n //section with components used with a direct product match\r\n documentList = <h5>{this.props.noDocs}</h5>;\r\n\r\n if (this.state.productDocs.length) {\r\n documentList = this.state.productDocs.map(\r\n (document, index) => (\r\n <DocumentCard key={index} colClass=\"media-card-container\" {...document} />\r\n ));\r\n }\r\n\r\n if (this.state.showFilters) {\r\n showFilters =\r\n <Filters q={this.state.q} showSearch={false}>\r\n <div className=\"filter-accordion-content\">\r\n {Object.entries(this.state.docTypes).map(([key, value], index) => {\r\n const count = Object.entries(this.state.docCount).filter(item => item[0] === key);\r\n const finalCount = count[0];\r\n return <div key={key}>\r\n <input type=\"checkbox\" className=\"custom-checkbox square\" id={index} ref={this.filterBox} name={key} value={value} autocomplete=\"off\" onChange={this.onCheckBoxChange} />\r\n <label htmlFor={index}>\r\n <span>{value}</span>\r\n {finalCount && finalCount.length &&\r\n <span className=\"dull\">({finalCount[1]})</span>\r\n }\r\n </label>\r\n </div>\r\n })}\r\n </div>\r\n </Filters>;\r\n } else {\r\n showFilters = <div></div>;\r\n }\r\n\r\n if (Object.keys(this.state.directProduct).length && this.state.directMatch) {\r\n productDocs =\r\n <SearchSection className=\"documents-match-section\" titleBold=\"Direct Product Match\">\r\n {loader}\r\n <div className=\"row\">\r\n <Product colClass=\"col-lg-3\" {...this.state.directProduct} />\r\n <div className=\"col-lg-9\">\r\n {documentList}\r\n </div>\r\n </div>\r\n </SearchSection>;\r\n }\r\n\r\n const searchTitle = !this.state.q ? 'All Product Documents' : `Search Results for \"${this.state.q}\"`;\r\n if (this.state.q) {\r\n searchClearBtn = <button className=\"search-drawer-btn document-reset\" type=\"button\" onClick={this.resetSearch}>x</button>;\r\n }\r\n\r\n //product documents not related to a specific product match\r\n if (this.state.documentItems.length >= 0 && this.state.showDocs && !this.state.directMatch) {\r\n documents =\r\n <div className=\"documents-search-section\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-3\">\r\n {showFilters}\r\n </div>\r\n <div className=\"col-lg-9\">\r\n <h4 className=\"download-quantity\">{searchTitle} ({`${this.state.totalRecords} found`})</h4>\r\n {loader}\r\n {this.state.documentItems.map(\r\n (document, index) => (\r\n <DocumentCard key={index} colClass=\"media-card-container\" {...document} />\r\n ))}\r\n {showPagination}\r\n </div >\r\n </div>\r\n </div>;\r\n }\r\n\r\n return (\r\n <div>\r\n <div className=\"row download-input\">\r\n <div className=\"col-lg-7 col-md-6\">\r\n <p className=\"download-description download-description-bold\">\r\n {this.props.searchMsg}\r\n </p>\r\n </div>\r\n <form action={this.state.pagePath} method=\"get\" onSubmit={this.onSubmit} className=\"col-lg-4 col-md-6\">\r\n <div className=\"downloads-input-box\">\r\n <label className=\"sr-only\" htmlFor=\"search-field\">Search</label>\r\n <input ref={this.searchInput} className=\"search-drawer-input document-search-input\" value={this.state.q} id=\"search-field\" type=\"text\" name=\"q\" placeholder=\"Search...\" required autoCapitalize=\"none\" autoCorrect=\"off\" autoFocus=\"true\" />\r\n {searchClearBtn}\r\n <button className=\"search-drawer-btn document-search\">\r\n <img src=\"/img/search-glass.svg\" alt=\"Search\" height=\"40\" width=\"40\" />\r\n <span className=\"sr-only\">Search</span>\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n {productDocs}\r\n {documents}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default DownloadsLibrary;"],"names":["DownloadsLibrary","props","state","documentItems","isLoading","pagePath","location","pathname","q","totalRecords","directProduct","productDocs","pageSize","page","showDocs","docTypes","showFilters","categoryList","directMatch","firstLoad","docCount","loadDocuments","bind","loadDirectMatch","handlePageClick","onCheckBoxChange","onSubmit","handleChange","getUrl","searchInput","React","resetSearch","resetFilters","getDocTypeCount","this","docCodes","pageNum","params","getUrlParams","Object","keys","length","setState","window","addEventListener","e","cleanUpState","preventDefault","current","value","Array","from","document","querySelectorAll","map","item","key","checked","focus","target","name","isChecked","categories","push","filtered","filter","Math","ceil","data","selected","animatedScrollTo","querySelector","filters","baseUrl","val","toLowerCase","encodeURIComponent","join","getDocCount","then","error","console","log","pushState","getProductMatch","getMatchingProduct","history","title","toast","getProductDocs","getProductDocuments","Promise","all","category","type","getDocuments","records","documents","loader","documentList","showPagination","searchClearBtn","show","pagination","previousLabel","nextLabel","breakLabel","breakClassName","pageCount","pages","marginPagesDisplayed","pageRangeDisplayed","onPageChange","containerClassName","subContainerClassName","activeClassName","forcePage","noDocs","index","colClass","showSearch","className","entries","finalCount","id","ref","filterBox","autocomplete","onChange","htmlFor","titleBold","searchTitle","onClick","searchMsg","action","method","placeholder","required","autoCapitalize","autoCorrect","autoFocus","src","alt","height","width","Component"],"sourceRoot":""}