{"version":3,"file":"query-summary-0e053ec0.js","sources":["../../../../src/scripts/coveo/components/pagination.tsx","../../../../src/scripts/coveo/components/query-summary.tsx"],"sourcesContent":["import React, { useState, useEffect, useContext } from 'react';\nimport { Pager, PagerState } from '@coveo/headless';\nimport { headlessEngine } from '../engine';\nimport { pager } from '../controllers/controller';\nimport PaginationModule from '../../react-components/pagination';\nimport { labelsObj } from '../controllers/controller';\nimport SecondCall from './second-call-context';\nimport { maxResultsPerPage } from '../controllers/controller';\n\nexport const COVEO_PAGINATION_EVENTS = {\n reset: 'pagination:reset'\n};\n\nconst Pagination = () => {\n const [controller, setController] = useState(pager as Pager);\n const [state, setState] = useState(null);\n const secondCallContext = useContext(SecondCall);\n\n useEffect(() => {\n if (headlessEngine) {\n setController(pager as Pager);\n setState((pager as Pager).state);\n (pager as Pager).subscribe(() => {\n setState((pager as Pager).state);\n });\n }\n\n window.addEventListener(COVEO_PAGINATION_EVENTS.reset, resetPagination);\n\n return () => {\n window.removeEventListener(\n COVEO_PAGINATION_EVENTS.reset,\n resetPagination\n );\n };\n }, []);\n\n const resetPagination = () => {\n if (secondCallContext.secondCall && secondCallContext.setSelectedPage) {\n secondCallContext.setSelectedPage(1);\n return;\n }\n controller?.selectPage(1);\n };\n\n const handleGoToPage = (pageNumber: number) => {\n if (secondCallContext.secondCall && secondCallContext.setSelectedPage) {\n secondCallContext.setSelectedPage(pageNumber);\n return;\n }\n controller?.selectPage(pageNumber);\n };\n\n if (secondCallContext.secondCall) {\n const _totalPages = Math.ceil(\n secondCallContext.filteredResults.length / maxResultsPerPage\n );\n const _currentPages = Array.from(Array(_totalPages).keys()) || [];\n return (\n <>\n {state && (\n \n )}\n \n );\n }\n\n return (\n <>\n {state && (\n \n )}\n \n );\n};\n\nexport default Pagination;\n","/* eslint-disable no-use-before-define */\nimport React, { useContext, useEffect, useState } from 'react';\nimport { querySummary } from '../controllers/controller';\nimport { QuerySummary as QuerySummaryType } from '@coveo/headless';\nimport SecondCall from './second-call-context';\n\ntype QuerySummaryProps = {\n extraClasses?: string;\n};\n\nconst SUMMARY_PLACEHOLDERS = Object.freeze({\n firstResult: '{{firstResult}}',\n lastResult: '{{lastResult}}',\n total: '{{totalResults}}',\n query: '{{query}}'\n});\n\nfunction QuerySummary({ extraClasses = '' }: QuerySummaryProps) {\n const { dataset } = document.getElementsByClassName(\n 'coveo-listing__data-wrapper'\n )[0] as HTMLElement;\n const summaryText = (dataset.summaryText as string).split('|')[0];\n const queryText = (dataset.summaryText as string).split('|')[1];\n const [state, setState] = useState((querySummary as QuerySummaryType).state);\n const secondCallContext = useContext(SecondCall);\n\n const text = Object.keys(SUMMARY_PLACEHOLDERS).reduce((acc, placeholder) => {\n if (\n acc.includes(\n SUMMARY_PLACEHOLDERS[placeholder as keyof typeof SUMMARY_PLACEHOLDERS]\n )\n ) {\n if (placeholder === 'query' && state.query != '') {\n acc += queryText;\n }\n\n let replaceVal = state[placeholder as keyof typeof SUMMARY_PLACEHOLDERS]\n ? state[placeholder as keyof typeof SUMMARY_PLACEHOLDERS].toString()\n : '';\n\n if (secondCallContext.secondCall) {\n if (placeholder === 'firstResult') {\n if (secondCallContext.selectedPage === 1) {\n replaceVal = '1';\n } else if (secondCallContext.selectedPage === 2) {\n replaceVal = '11';\n }\n }\n\n if (placeholder === 'lastResult') {\n if (secondCallContext.selectedPage === 1) {\n if (secondCallContext.filteredResults.length < 10)\n replaceVal = secondCallContext.filteredResults.length.toString();\n else {\n replaceVal = '10';\n }\n } else if (secondCallContext.selectedPage === 2) {\n if (\n secondCallContext.limitValue &&\n parseInt(replaceVal) > secondCallContext.limitValue\n ) {\n replaceVal = secondCallContext.limitValue.toString();\n }\n\n if (\n secondCallContext.filteredResults.length <\n secondCallContext.limitValue\n )\n replaceVal = secondCallContext.filteredResults.length.toString();\n }\n }\n\n if (placeholder === 'total') {\n if (parseInt(replaceVal) > secondCallContext.limitValue) {\n replaceVal = secondCallContext.limitValue.toString();\n }\n if (parseInt(replaceVal) > secondCallContext.filteredResults.length)\n replaceVal = secondCallContext.filteredResults.length.toString();\n }\n }\n acc = acc.replace(\n SUMMARY_PLACEHOLDERS[placeholder as keyof typeof SUMMARY_PLACEHOLDERS],\n replaceVal\n );\n }\n\n return acc;\n }, summaryText);\n\n useEffect(\n () =>\n (querySummary as QuerySummaryType).subscribe(() =>\n setState((querySummary as QuerySummaryType).state)\n ),\n [querySummary]\n );\n\n return (\n <>\n {state.total > 0 && (\n \n )}\n \n );\n}\n\nexport default QuerySummary;\n"],"names":["COVEO_PAGINATION_EVENTS","Pagination","controller","setController","useState","pager","state","setState","secondCallContext","useContext","SecondCall","useEffect","headlessEngine","resetPagination","handleGoToPage","pageNumber","_totalPages","maxResultsPerPage","_currentPages","React","PaginationModule","labelsObj","SUMMARY_PLACEHOLDERS","QuerySummary","extraClasses","dataset","summaryText","queryText","querySummary","text","acc","placeholder","replaceVal"],"mappings":"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"}