{"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":""}