{"version":3,"file":"872.facaae1f1d601726fc25.js","mappings":"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","sources":["webpack://pratt-parent/./static/js/components/algolia/article-search.js","webpack://pratt-parent/./static/js/components/algolia/templates/refinement-list.js","webpack://pratt-parent/./static/js/components/algolia/pagination.js","webpack://pratt-parent/./static/js/components/algolia/panel.js"],"sourcesContent":["import instantsearch from 'instantsearch.js';\nimport { configure, searchBox, clearRefinements, hits } from 'instantsearch.js/es/widgets';\nimport { history } from 'instantsearch.js/es/lib/routers';\nimport searchClient from './search-client';\nimport { customPagination } from './pagination';\nimport { HitHelpers } from './hit-helpers';\nimport { refinementListWithPanel } from './panel';\nimport { refinementListTemplate } from './templates/refinement-list';\n\nclass ArticleSearch {\n constructor(rootEl) {\n this.rootEl = rootEl;\n if (!this.rootEl) {\n throw new Error('Root article search element not found.');\n }\n\n this.siteId = Number(this.rootEl.dataset['siteId']);\n\n this.hitsPerPage = 24;\n\n this.search = instantsearch({\n indexName: this.rootEl.dataset['algoliaIndex'],\n searchClient: searchClient,\n routing: {\n router: history({\n cleanUrlOnDispose: true,\n }),\n },\n insights: true,\n future: {\n preserveSharedStateOnUnmount: true,\n },\n });\n\n this.init();\n this.search.start();\n }\n\n init() {\n // Function to extract the numeric value after \"publish_date: \"\n function extractPublishDate(label) {\n const match = label.match(/publish_date:\\s*(\\d+)/);\n return match ? parseInt(match[1], 10) : null;\n }\n this.search.addWidgets([\n // https://www.algolia.com/doc/api-reference/widgets/configure/js/\n // Parameter options: https://www.algolia.com/doc/api-reference/search-api-parameters/\n configure({\n hitsPerPage: this.hitsPerPage,\n distinct: true,\n // Force faceting to be applied after de-duplication (via the Distinct setting)\n facetingAfterDistinct: true,\n // Filter results by 'type' facet\n // https://www.algolia.com/doc/api-reference/api-parameters/filters/#facet-filters\n filters: `type:\"post\"${this.siteId !== 1 ? ` AND blogID:${this.siteId}` : ''} OR type:\"prattfolio-story\"`,\n }),\n\n searchBox({\n container: '.js-article-search-input',\n placeholder: 'Search Articles',\n showSubmit: false,\n }),\n\n clearRefinements({\n container: '.js-article-search-clear',\n templates: {\n resetLabel: 'Reset',\n },\n }),\n\n refinementListWithPanel('Type')({\n container: '.js-article-search-types-input',\n attribute: 'type',\n operator: 'and',\n limit: 10,\n showMore: true,\n showMoreLimit: 100,\n sortBy: ['name:asc'],\n templates: {\n item: refinementListTemplate,\n },\n transformItems: items =>\n items.map(item => ({\n ...item,\n highlighted: HitHelpers.getTypeDisplay(item.highlighted),\n })),\n }),\n\n refinementListWithPanel('Prattfolio Department')({\n container: '.js-article-search-prattfolio-departments-input',\n attribute: 'prattfolio_departments',\n operator: 'and',\n sortBy: ['name:asc'],\n templates: {\n item: refinementListTemplate,\n },\n showMore: true,\n }),\n\n refinementListWithPanel('Prattfolio Issue')({\n container: '.js-article-search-issues-input',\n attribute: 'issue',\n operator: 'and',\n templates: {\n item: refinementListTemplate,\n },\n transformItems: items => {\n // Sort items by the numeric value after \"publish_date: \"\n items.sort((a, b) => {\n const dateA = extractPublishDate(a.label);\n const dateB = extractPublishDate(b.label);\n\n if (dateA && dateB) {\n return dateB - dateA;\n }\n\n return 0;\n });\n\n // Modify items to display only the string before \"|\"\n return items.map(item => {\n const label = item.label.split(' | ')[0]; // Extract the string before \"|\"\n return {\n ...item,\n highlighted: label,\n };\n });\n },\n }),\n\n refinementListWithPanel('School')({\n container: '.js-article-search-schools-input',\n attribute: 'schools',\n operator: 'and',\n limit: 10,\n showMore: true,\n showMoreLimit: 100,\n sortBy: ['name:asc'],\n templates: {\n item: refinementListTemplate,\n },\n }),\n\n refinementListWithPanel('Department')({\n container: '.js-article-search-departments-input',\n attribute: 'departments',\n operator: 'and',\n limit: 10,\n showMore: true,\n showMoreLimit: 100,\n sortBy: ['name:asc'],\n templates: {\n item: refinementListTemplate,\n },\n }),\n\n refinementListWithPanel('Office')({\n container: '.js-article-search-offices-input',\n attribute: 'offices',\n operator: 'and',\n limit: 10,\n showMore: true,\n showMoreLimit: 100,\n sortBy: ['name:asc'],\n templates: {\n item: refinementListTemplate,\n },\n }),\n\n // https://www.algolia.com/doc/api-reference/widgets/hits/js/\n hits({\n container: '.js-article-search-hits',\n templates: {\n /* eslint-disable */\n item(hit) {\n // prettier-ignore\n return `\n
${window.PRATT_SITES[hit.blogID]}
\n ` : ''}\n