60660-fb6caacfae5abcf8.js.map 48 KB

1
  1. {"version":3,"file":"static/chunks/60660-fb6caacfae5abcf8.js","mappings":"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","sources":["webpack://_N_E/./src/components/Search/NoResults/index.tsx","webpack://_N_E/./public/icons/trend-up.svg","webpack://_N_E/./src/components/Search/PreInput/Header/index.tsx","webpack://_N_E/./src/components/Search/PreInput/SearchItem.tsx","webpack://_N_E/./src/components/Search/PreInput/SearchQuerySuggestion/index.tsx","webpack://_N_E/./src/components/Search/SearchHistory/index.tsx","webpack://_N_E/./public/icons/caret-back.svg","webpack://_N_E/./src/components/Search/PreInput/index.tsx","webpack://_N_E/./src/components/Search/NavigationItem/index.tsx","webpack://_N_E/./public/icons/caret-forward.svg","webpack://_N_E/./src/components/dls/Pagination/Pagination.tsx","webpack://_N_E/./src/components/Search/SearchResults/index.tsx","webpack://_N_E/./src/components/Search/SearchBodyContainer.tsx","webpack://_N_E/./src/components/Search/SearchResults/SearchResultItem.tsx","webpack://_N_E/./src/components/dls/IconContainer/IconContainer.tsx","webpack://_N_E/./src/components/Search/NoResults/NoResults.module.scss","webpack://_N_E/./src/components/Search/PreInput/Header/Header.module.scss","webpack://_N_E/./src/components/Search/PreInput/PreInput.module.scss","webpack://_N_E/./src/components/Search/PreInput/SearchItem.module.scss","webpack://_N_E/./src/components/Search/PreInput/SearchQuerySuggestion/SearchQuerySuggestion.module.scss","webpack://_N_E/./src/components/Search/SearchBodyContainer.module.scss","webpack://_N_E/./src/components/Search/SearchHistory/SearchHistory.module.scss","webpack://_N_E/./src/components/Search/SearchResults/SearchResultItem.module.scss","webpack://_N_E/./src/components/Search/SearchResults/SearchResults.module.scss","webpack://_N_E/./src/components/dls/IconContainer/IconContainer.module.scss","webpack://_N_E/./src/components/dls/Pagination/Pagination.module.scss"],"sourcesContent":["import React from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './NoResults.module.scss';\n\nimport IconSearch from '@/icons/search.svg';\n\ninterface Props {\n searchQuery: string;\n}\n\nconst NoResults: React.FC<Props> = ({ searchQuery }) => {\n const { t } = useTranslation('common');\n return (\n <>\n <div className={styles.container}>\n <div className={styles.mainBody}>\n <div className={styles.iconContainer}>\n <IconSearch />\n </div>\n <p className={styles.mainMessage}>{t('search.no-results')}</p>\n <p className={styles.secondaryMessage}>\n {t('search.no-results-suggestion', { searchQuery })}\n </p>\n </div>\n </div>\n </>\n );\n};\n\nexport default NoResults;\n","var _g, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTrendUp = function SvgTrendUp(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 24,\n viewBox: \"0 0 25 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#a)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.5 6H13.932l4.759 4.759-4.8 5.331-5.553-5.553a1.056 1.056 0 0 0-1.494 0L1.56 15.82a1.056 1.056 0 1 0 1.494 1.494l4.537-4.537 5.594 5.594a1.054 1.054 0 0 0 1.532-.04l5.47-6.077 4.313 4.313V6Z\",\n fill: \"#000\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"a\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n transform: \"translate(.25)\",\n d: \"M0 0h24v24H0z\"\n })))));\n};\nexport default SvgTrendUp;","import React from 'react';\n\nimport styles from './Header.module.scss';\n\ninterface Props {\n text: string;\n}\n\nconst index: React.FC<Props> = ({ text }) => <p className={styles.header}>{text}</p>;\n\nexport default index;\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport styles from './SearchItem.module.scss';\n\nimport IconContainer, { IconColor, IconSize } from '@/dls/IconContainer/IconContainer';\n\ntype SearchItemProps = {\n prefix: React.ReactNode;\n title: string;\n suffix?: React.ReactNode;\n onClick?: () => void;\n};\n\nconst SearchItem = ({ title, prefix: icon, suffix, onClick }: SearchItemProps) => {\n return (\n <div className={styles.item}>\n <span className={styles.prefix}>\n <IconContainer size={IconSize.Small} color={IconColor.secondary} icon={icon} />\n </span>\n <span className={styles.itemContent} onClick={onClick}>\n {title}\n </span>\n {suffix && <span>{suffix}</span>}\n </div>\n );\n};\n\nexport default SearchItem;\n","import React, { MouseEvent, KeyboardEvent } from 'react';\n\nimport SearchItem from '../SearchItem';\n\nimport styles from './SearchQuerySuggestion.module.scss';\n\nimport Button, { ButtonShape, ButtonSize, ButtonVariant } from '@/dls/Button/Button';\nimport CloseIcon from '@/icons/close.svg';\nimport SearchIcon from '@/icons/search.svg';\n\ninterface Props {\n searchQuery: string;\n onSearchKeywordClicked: (searchQuery: string) => void;\n onRemoveSearchQueryClicked?: (searchQuery: string) => void;\n}\n\nconst SearchQuerySuggestion: React.FC<Props> = ({\n searchQuery,\n onSearchKeywordClicked,\n onRemoveSearchQueryClicked,\n}) => {\n const onRemoveClicked = (\n event: MouseEvent<HTMLElement> | KeyboardEvent<HTMLElement>,\n toBeDeletedSearchQuery: string,\n ) => {\n event.stopPropagation();\n onRemoveSearchQueryClicked(toBeDeletedSearchQuery);\n };\n\n return (\n <div className={styles.searchSuggestion}>\n <SearchItem\n title={searchQuery}\n prefix={<SearchIcon />}\n onClick={() => onSearchKeywordClicked(searchQuery)}\n suffix={\n onRemoveSearchQueryClicked && (\n <Button\n shape={ButtonShape.Circle}\n onClick={(event) =>\n onRemoveClicked(\n // @ts-ignore\n event,\n searchQuery,\n )\n }\n variant={ButtonVariant.Ghost}\n size={ButtonSize.Small}\n >\n <CloseIcon />\n </Button>\n )\n }\n />\n </div>\n );\n};\n\nexport default SearchQuerySuggestion;\n","import React, { useCallback } from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport styles from './SearchHistory.module.scss';\n\nimport Header from '@/components/Search/PreInput/Header';\nimport SearchQuerySuggestion from '@/components/Search/PreInput/SearchQuerySuggestion';\nimport { removeSearchHistoryRecord, selectSearchHistory } from '@/redux/slices/Search/search';\nimport { areArraysEqual } from '@/utils/array';\nimport { logButtonClick } from '@/utils/eventLogger';\n\ninterface Props {\n onSearchKeywordClicked: (searchQuery: string) => void;\n isSearchDrawer: boolean;\n}\n\nconst SearchHistory: React.FC<Props> = ({ onSearchKeywordClicked, isSearchDrawer }) => {\n const { t } = useTranslation('common');\n const searchHistory = useSelector(selectSearchHistory, areArraysEqual);\n const dispatch = useDispatch();\n\n const onRemoveSearchQueryClicked = useCallback(\n (searchQuery: string) => {\n // eslint-disable-next-line i18next/no-literal-string\n logButtonClick(`search_${isSearchDrawer ? 'drawer' : 'page'}_remove_query`);\n dispatch({ type: removeSearchHistoryRecord.type, payload: searchQuery });\n },\n [dispatch, isSearchDrawer],\n );\n\n // if there are no recent search queries.\n if (!searchHistory.length) {\n return <></>;\n }\n return (\n <div className={styles.container}>\n <Header text={t('search.recent')} />\n {searchHistory.map((recentSearchQuery) => (\n <SearchQuerySuggestion\n searchQuery={recentSearchQuery}\n key={`${recentSearchQuery}`}\n onSearchKeywordClicked={(searchQuery: string) => {\n logButtonClick(`search_${isSearchDrawer ? 'drawer' : 'page'}_history_item`);\n onSearchKeywordClicked(searchQuery);\n }}\n onRemoveSearchQueryClicked={onRemoveSearchQueryClicked}\n />\n ))}\n </div>\n );\n};\n\nexport default SearchHistory;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCaretBack = function SvgCaretBack(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m17.25 3-10.5 9 10.5 9V3Z\",\n fill: \"currentColor\"\n })));\n};\nexport default SvgCaretBack;","import React from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport Header from './Header';\nimport styles from './PreInput.module.scss';\nimport SearchItem from './SearchItem';\nimport SearchQuerySuggestion from './SearchQuerySuggestion';\n\nimport SearchHistory from '@/components/Search/SearchHistory';\nimport Link from '@/dls/Link/Link';\nimport useGetChaptersData from '@/hooks/useGetChaptersData';\nimport TrendUpIcon from '@/icons/trend-up.svg';\nimport { getChapterData } from '@/utils/chapter';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport { toLocalizedNumber, toLocalizedVerseKey } from '@/utils/locale';\nimport { getSurahNavigationUrl } from '@/utils/navigation';\n\ninterface Props {\n onSearchKeywordClicked: (searchQuery: string) => void;\n isSearchDrawer: boolean;\n}\n\nconst POPULAR_SEARCH_QUERIES = { Mulk: 67, Noah: 71, Kahf: 18, Yaseen: 36 };\n\nconst PreInput: React.FC<Props> = ({ onSearchKeywordClicked, isSearchDrawer }) => {\n const { t, lang } = useTranslation('common');\n const chaptersData = useGetChaptersData(lang);\n if (!chaptersData) {\n return <></>;\n }\n const SEARCH_FOR_KEYWORDS = [\n `${t('juz')} ${toLocalizedNumber(1, lang)}`,\n `${t('page')} ${toLocalizedNumber(1, lang)}`,\n getChapterData(chaptersData, '36').transliteratedName,\n toLocalizedNumber(36, lang),\n toLocalizedVerseKey('2:255', lang),\n ];\n return (\n <div className={styles.container}>\n <div>\n <Header text={t('search.popular')} />\n <div>\n {Object.keys(POPULAR_SEARCH_QUERIES).map((popularSearchQuery) => {\n const chapterId = POPULAR_SEARCH_QUERIES[popularSearchQuery];\n const url = getSurahNavigationUrl(POPULAR_SEARCH_QUERIES[popularSearchQuery]);\n const chapterData = getChapterData(chaptersData, chapterId);\n return (\n <Link href={url} key={url} className={styles.popularSearchItem}>\n <SearchItem\n prefix={<TrendUpIcon />}\n title={chapterData.transliteratedName}\n key={url}\n onClick={() => {\n logButtonClick(\n `search_${\n isSearchDrawer ? 'drawer' : 'page'\n }_popular_search_${popularSearchQuery}`,\n );\n }}\n />\n </Link>\n );\n })}\n </div>\n <SearchHistory\n onSearchKeywordClicked={onSearchKeywordClicked}\n isSearchDrawer={isSearchDrawer}\n />\n <Header text={t('search.hint')} />\n {SEARCH_FOR_KEYWORDS.map((keyword, index) => {\n return (\n <SearchQuerySuggestion\n searchQuery={keyword}\n key={keyword}\n onSearchKeywordClicked={(searchQuery: string) => {\n logButtonClick(`search_${isSearchDrawer ? 'drawer' : 'page'}_search_hint_${index}`);\n onSearchKeywordClicked(searchQuery);\n }}\n />\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default PreInput;\n","import React, { useContext } from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport DataContext from '@/contexts/DataContext';\nimport Button from '@/dls/Button/Button';\nimport SearchService from '@/types/Search/SearchService';\nimport SearchQuerySource from '@/types/SearchQuerySource';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport { toLocalizedNumber, toLocalizedVerseKey } from '@/utils/locale';\nimport { resolveUrlBySearchNavigationType } from '@/utils/navigation';\nimport { getSearchNavigationResult } from '@/utils/search';\nimport { SearchNavigationResult, SearchNavigationType } from 'types/SearchNavigationResult';\n\ninterface Props {\n navigation: SearchNavigationResult;\n isSearchDrawer: boolean;\n service?: SearchService;\n}\n\nconst NavigationItem: React.FC<Props> = ({\n navigation,\n isSearchDrawer,\n service = SearchService.QDC,\n}) => {\n const { t, lang } = useTranslation('common');\n const chaptersData = useContext(DataContext);\n const isKalimatService = service === SearchService.KALIMAT;\n const url = resolveUrlBySearchNavigationType(\n navigation.resultType,\n navigation.key,\n isKalimatService,\n );\n\n const result = isKalimatService\n ? getSearchNavigationResult(chaptersData, navigation, t, lang)\n : navigation;\n const getKalimatResultSuffix = () => {\n if (navigation.resultType === SearchNavigationType.SURAH) {\n return `(${toLocalizedNumber(Number(result.key), lang)})`;\n }\n\n if (navigation.resultType === SearchNavigationType.AYAH) {\n return `(${toLocalizedVerseKey(result.key as string, lang)})`;\n }\n\n return undefined;\n };\n\n const suffix = isKalimatService ? getKalimatResultSuffix() : `(${navigation.key})`;\n\n const onNavigationItemClicked = () => {\n logButtonClick('search_navigation_result', {\n type: navigation.resultType,\n service,\n source: isSearchDrawer ? SearchQuerySource.SearchDrawer : SearchQuerySource.SearchPage,\n });\n };\n\n return (\n <Button onClick={onNavigationItemClicked} href={url} suffix={suffix}>\n {result.name}\n </Button>\n );\n};\n\nexport default NavigationItem;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCaretForward = function SvgCaretForward(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m6.75 21 10.5-9-10.5-9v18Z\",\n fill: \"currentColor\"\n })));\n};\nexport default SvgCaretForward;","/* eslint-disable react/no-array-index-key */\nimport React, { useMemo } from 'react';\n\nimport classNames from 'classnames';\nimport range from 'lodash/range';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './Pagination.module.scss';\n\nimport Button, { ButtonVariant } from '@/dls/Button/Button';\nimport PreviousIcon from '@/icons/caret-back.svg';\nimport NextIcon from '@/icons/caret-forward.svg';\nimport { toLocalizedNumber } from '@/utils/locale';\n\ninterface Props {\n currentPage: number;\n totalCount: number;\n onPageChange: (newPage: number) => void;\n pageSize?: number;\n siblingsCount?: number;\n showSummary?: boolean;\n}\n\nconst DOTS = '...';\nconst DEFAULT_PAGE_SIZE = 20;\nconst DEFAULT_SIBLINGS_COUNT = 1;\n\n/**\n * @param {number} start\n * @param {number} end\n * @returns {number[]}\n */\nconst generateRange = (start: number, end: number): number[] => range(start, end + 1);\nconst Pagination: React.FC<Props> = ({\n onPageChange,\n totalCount,\n currentPage,\n pageSize = DEFAULT_PAGE_SIZE,\n siblingsCount = DEFAULT_SIBLINGS_COUNT,\n showSummary = true,\n}) => {\n const { t, lang } = useTranslation('common');\n const paginationRange = useMemo(() => {\n // Math.ceil is used to round the number to the next higher integer value e.g. 0.7 gets rounded to 1, 1.1 gets rounded to 2. This ensures that we are reserving an extra page for the remaining data.\n const totalPageCount = Math.ceil(totalCount / pageSize);\n // Pages count is the sum of siblingsCount + firstPage + lastPage + currentPage + 2*DOTS\n const totalPageNumbers = siblingsCount + 5;\n // if the page numbers we want to show is >= the actual number of pages we have (e.g. only pages 1, 2), we just return the range [1..totalPageCount] without any addition like the dots before and after and first and last page since the range is too small.\n if (totalPageNumbers >= totalPageCount) {\n return generateRange(1, totalPageCount);\n }\n // Calculate left and right siblings index and make sure they are within the range 1 => totalPageCount\n const leftSiblingIndex = Math.max(currentPage - siblingsCount, 1);\n const rightSiblingIndex = Math.min(currentPage + siblingsCount, totalPageCount);\n // We do not want to show dots if there is only one position left after/before the left/right page count.\n const shouldShowLeftDots = leftSiblingIndex > 2;\n const shouldShowRightDots = rightSiblingIndex < totalPageCount - 2;\n\n const firstPageIndex = 1;\n const lastPageIndex = totalPageCount;\n // No left dots to be shown, but the right dots should be shown\n if (!shouldShowLeftDots && shouldShowRightDots) {\n const leftItemCount = 3 + 2 * siblingsCount;\n const leftRange = generateRange(1, leftItemCount);\n return [...leftRange, DOTS, totalPageCount];\n }\n // No right dots to be shown, but the left dots should be shown\n if (shouldShowLeftDots && !shouldShowRightDots) {\n const rightItemCount = 3 + 2 * siblingsCount;\n const rightRange = generateRange(totalPageCount - rightItemCount + 1, totalPageCount);\n return [firstPageIndex, DOTS, ...rightRange];\n }\n // the right and left dots should be shown\n if (shouldShowLeftDots && shouldShowRightDots) {\n const middleRange = generateRange(leftSiblingIndex, rightSiblingIndex);\n return [firstPageIndex, DOTS, ...middleRange, DOTS, lastPageIndex];\n }\n return [];\n }, [totalCount, pageSize, siblingsCount, currentPage]);\n\n if (currentPage === 0 || paginationRange.length < 1) {\n return null;\n }\n\n const onNext = () => {\n onPageChange(currentPage + 1);\n };\n\n const onPrevious = () => {\n onPageChange(currentPage - 1);\n };\n\n const showingUntilItem = currentPage * pageSize;\n return (\n <div className={styles.container}>\n <div className={styles.buttonContainer}>\n <Button\n tooltip={t('prev')}\n variant={ButtonVariant.Ghost}\n isDisabled={currentPage === 1}\n onClick={onPrevious}\n >\n <PreviousIcon />\n </Button>\n </div>\n {paginationRange.map((pageNumber, index) => {\n if (pageNumber === DOTS) {\n return <div key={`${pageNumber}-${index}`}>{DOTS}</div>;\n }\n\n return (\n <div\n className={classNames(styles.buttonContainer, {\n [styles.selectedButton]: pageNumber === currentPage,\n })}\n key={`${pageNumber}-${index}`}\n >\n <Button\n variant={ButtonVariant.Ghost}\n onClick={() => onPageChange(pageNumber as number)}\n >\n {toLocalizedNumber(Number(pageNumber), lang)}\n </Button>\n </div>\n );\n })}\n <div className={styles.buttonContainer}>\n <Button\n tooltip={t('next')}\n variant={ButtonVariant.Ghost}\n isDisabled={currentPage === paginationRange[paginationRange.length - 1]}\n onClick={onNext}\n >\n <NextIcon />\n </Button>\n </div>\n {showSummary && (\n <p className={styles.uppercase}>\n {t('pagination-summary', {\n currentResultNumber: toLocalizedNumber(showingUntilItem - (pageSize - 1), lang),\n endOfResultNumber: toLocalizedNumber(\n totalCount < showingUntilItem ? totalCount : showingUntilItem,\n lang,\n ),\n totalNumberOfResults: toLocalizedNumber(totalCount, lang),\n })}\n </p>\n )}\n </div>\n );\n};\n\nexport default Pagination;\n","import React from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport SearchResultItem from './SearchResultItem';\nimport styles from './SearchResults.module.scss';\n\nimport NavigationItem from '@/components/Search/NavigationItem';\nimport Link from '@/dls/Link/Link';\nimport Pagination from '@/dls/Pagination/Pagination';\nimport SearchQuerySource from '@/types/SearchQuerySource';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport { toLocalizedNumber } from '@/utils/locale';\nimport { SearchResponse } from 'types/ApiResponses';\n\ninterface Props {\n searchResult: SearchResponse;\n searchQuery: string;\n isSearchDrawer?: boolean;\n currentPage?: number;\n pageSize?: number;\n onPageChange?: (page: number) => void;\n onSearchResultClicked?: () => void;\n}\n\nconst SearchResults: React.FC<Props> = ({\n searchResult,\n searchQuery,\n isSearchDrawer = true,\n currentPage,\n onPageChange,\n pageSize,\n onSearchResultClicked,\n}) => {\n const { t, lang } = useTranslation();\n return (\n <>\n <div>\n {!!searchResult.result.navigation?.length && (\n <div className={styles.navigationItemsListContainer}>\n {searchResult.result.navigation.map((navigationResult) => (\n <span className={styles.navigationItemContainer} key={navigationResult.key}>\n <NavigationItem\n isSearchDrawer={isSearchDrawer}\n navigation={navigationResult}\n service={searchResult.service}\n />\n </span>\n ))}\n </div>\n )}\n <p className={styles.header}>\n {t('common:search-results', {\n count: toLocalizedNumber(searchResult.pagination.totalRecords, lang),\n })}\n </p>\n <>\n {searchResult.result.verses.map((result) => (\n <SearchResultItem\n key={result.verseKey}\n result={result}\n source={\n isSearchDrawer ? SearchQuerySource.SearchDrawer : SearchQuerySource.SearchPage\n }\n service={searchResult.service}\n />\n ))}\n {isSearchDrawer ? (\n <div className={styles.resultsSummaryContainer}>\n <p>\n {toLocalizedNumber(searchResult.pagination.totalRecords, lang)}{' '}\n {t('common:search.results')}\n </p>\n {searchResult.pagination.totalRecords > 0 && (\n <Link\n href={`/search?query=${searchQuery}`}\n shouldPassHref\n onClick={() => {\n if (onSearchResultClicked) onSearchResultClicked();\n logButtonClick('search_drawer_show_all');\n }}\n >\n <a>\n <p className={styles.showAll}>{t('common:search.show-all')}</p>\n </a>\n </Link>\n )}\n </div>\n ) : (\n <>\n {searchQuery && (\n <Pagination\n currentPage={currentPage}\n totalCount={searchResult.pagination.totalRecords}\n onPageChange={onPageChange}\n pageSize={pageSize}\n />\n )}\n </>\n )}\n </>\n </div>\n </>\n );\n};\n\nexport default SearchResults;\n","import React from 'react';\n\nimport classNames from 'classnames';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport NoResults from './NoResults';\nimport PreInput from './PreInput';\nimport styles from './SearchBodyContainer.module.scss';\n\nimport SearchResults from '@/components/Search/SearchResults';\nimport Spinner, { SpinnerSize } from '@/dls/Spinner/Spinner';\nimport { SearchResponse } from 'types/ApiResponses';\n\ninterface Props {\n searchQuery: string;\n isSearching: boolean;\n isSearchDrawer?: boolean;\n hasError: boolean;\n searchResult: SearchResponse;\n onSearchKeywordClicked: (keyword: string) => void;\n onSearchResultClicked?: () => void;\n currentPage?: number;\n pageSize?: number;\n onPageChange?: (page: number) => void;\n}\n\nconst SearchBodyContainer: React.FC<Props> = ({\n searchQuery,\n isSearching,\n hasError,\n searchResult,\n onSearchKeywordClicked,\n onSearchResultClicked,\n isSearchDrawer = true,\n currentPage,\n pageSize,\n onPageChange,\n}) => {\n const { t } = useTranslation('common');\n const isEmptyResponse =\n searchResult &&\n searchResult.pagination.totalRecords === 0 &&\n !searchResult.result.navigation.length;\n const isPreInputLayout =\n !searchQuery || isSearching || hasError || (!isSearching && !hasError && isEmptyResponse);\n return (\n <div\n className={classNames({\n [styles.internalContainer]: isPreInputLayout,\n })}\n >\n {!searchQuery ? (\n <PreInput onSearchKeywordClicked={onSearchKeywordClicked} isSearchDrawer={isSearchDrawer} />\n ) : (\n <>\n {isSearching ? (\n <Spinner size={SpinnerSize.Large} />\n ) : (\n <>\n {hasError && <div>{t('error.general')}</div>}\n {!hasError && searchResult && (\n <>\n {isEmptyResponse ? (\n <NoResults searchQuery={searchQuery} />\n ) : (\n <SearchResults\n onSearchResultClicked={onSearchResultClicked}\n searchResult={searchResult}\n searchQuery={searchQuery}\n isSearchDrawer={isSearchDrawer}\n currentPage={currentPage}\n onPageChange={onPageChange}\n pageSize={pageSize}\n />\n )}\n </>\n )}\n </>\n )}\n </>\n )}\n </div>\n );\n};\n\nexport default SearchBodyContainer;\n","/* eslint-disable react/no-danger */\n\nimport React, { useMemo } from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './SearchResultItem.module.scss';\n\nimport Link from '@/dls/Link/Link';\nimport QuranWord from '@/dls/QuranWord/QuranWord';\nimport useGetChaptersData from '@/hooks/useGetChaptersData';\nimport SearchService from '@/types/Search/SearchService';\nimport SearchQuerySource from '@/types/SearchQuerySource';\nimport { getChapterData } from '@/utils/chapter';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport { toLocalizedVerseKey } from '@/utils/locale';\nimport { getChapterWithStartingVerseUrl } from '@/utils/navigation';\nimport { getChapterNumberFromKey } from '@/utils/verse';\nimport Verse from 'types/Verse';\n\ninterface Props {\n result: Verse;\n source: SearchQuerySource;\n service?: SearchService;\n}\n\nconst SearchResultItem: React.FC<Props> = ({ result, source, service = SearchService.QDC }) => {\n const { lang } = useTranslation('quran-reader');\n const localizedVerseKey = useMemo(\n () => toLocalizedVerseKey(result.verseKey, lang),\n [lang, result.verseKey],\n );\n\n const chaptersData = useGetChaptersData(lang);\n\n if (!chaptersData) return null;\n\n const chapterNumber = getChapterNumberFromKey(result.verseKey);\n const chapterData = getChapterData(chaptersData, chapterNumber.toString());\n\n const onResultItemClicked = () => {\n logButtonClick(`search_result_item`, {\n service,\n source,\n });\n };\n\n return (\n <div className={styles.container}>\n <div className={styles.itemContainer}>\n <Link\n className={styles.verseKey}\n href={getChapterWithStartingVerseUrl(result.verseKey)}\n onClick={onResultItemClicked}\n >\n {chapterData.transliteratedName} {localizedVerseKey}\n </Link>\n <div className={styles.quranTextContainer}>\n <div className={styles.quranTextResult} translate=\"no\">\n {result.words.map((word, index) => {\n return (\n <QuranWord\n isHighlighted={!!word.highlight}\n key={`${result.verseKey}:${index + 1}`}\n word={word}\n isWordByWordAllowed={false}\n isAudioHighlightingAllowed={false}\n />\n );\n })}\n </div>\n </div>\n {result.translations?.map((translation) => (\n <div key={translation.resourceId} className={styles.translationContainer}>\n <div dangerouslySetInnerHTML={{ __html: translation.text }} />\n {/* eslint-disable-next-line i18next/no-literal-string */}\n <p className={styles.translationName}> - {translation.resourceName}</p>\n </div>\n ))}\n </div>\n </div>\n );\n};\nexport default SearchResultItem;\n","import React from 'react';\n\nimport classNames from 'classnames';\n\nimport styles from './IconContainer.module.scss';\n\nimport useDirection from '@/hooks/useDirection';\n\nexport enum IconColor {\n default = 'default',\n primary = 'primary',\n secondary = 'secondary',\n}\nexport enum IconSize {\n Xsmall = 'xsmall',\n Small = 'small',\n Medium = 'medium',\n Large = 'large',\n}\n\ntype IconContainerProps = {\n icon: React.ReactNode;\n size?: IconSize;\n color?: IconColor;\n className?: string;\n shouldFlipOnRTL?: boolean;\n shouldForceSetColors?: boolean;\n};\nconst IconContainer = ({\n icon,\n size = IconSize.Medium,\n color = IconColor.default,\n shouldFlipOnRTL = true,\n shouldForceSetColors = true,\n className,\n}: IconContainerProps) => {\n const dir = useDirection();\n return (\n <span\n className={classNames(className, styles.container, {\n [styles.defaultColor]:\n (shouldForceSetColors && color === IconColor.default) || color === IconColor.primary,\n [styles.secondaryColor]: shouldForceSetColors && color === IconColor.secondary,\n [styles.xsmallIcon]: size === IconSize.Xsmall,\n [styles.smallIcon]: size === IconSize.Small,\n [styles.mediumIcon]: size === IconSize.Medium,\n [styles.largeIcon]: size === IconSize.Large,\n })}\n data-auto-flip-icon={shouldFlipOnRTL}\n dir={dir}\n >\n {icon}\n </span>\n );\n};\n\nexport default IconContainer;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"NoResults_container__I2jHF\",\"mainBody\":\"NoResults_mainBody__GC8l_\",\"iconContainer\":\"NoResults_iconContainer__ks7uY\",\"mainMessage\":\"NoResults_mainMessage__o3ksN\",\"secondaryMessage\":\"NoResults_secondaryMessage__CNI0d\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"Header_header__r4qda\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"PreInput_container___K1DL\",\"popularSearchesContainer\":\"PreInput_popularSearchesContainer__30iiP\",\"popularSearchItem\":\"PreInput_popularSearchItem__R2cQD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"item\":\"SearchItem_item__eQZAY\",\"itemContent\":\"SearchItem_itemContent__h6vxl\",\"prefix\":\"SearchItem_prefix__SOnRa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"searchSuggestion\":\"SearchQuerySuggestion_searchSuggestion__BKIWB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"internalContainer\":\"SearchBodyContainer_internalContainer__Yb3_Y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SearchHistory_container__UwtT_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"translationName\":\"SearchResultItem_translationName__5mkDi\",\"translationContainer\":\"SearchResultItem_translationContainer__OaPZE\",\"container\":\"SearchResultItem_container__Cvqx0\",\"itemContainer\":\"SearchResultItem_itemContainer__NRd1r\",\"quranTextResult\":\"SearchResultItem_quranTextResult__texyH\",\"verseKey\":\"SearchResultItem_verseKey__dyumW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"resultsSummaryContainer\":\"SearchResults_resultsSummaryContainer__giFzL\",\"header\":\"SearchResults_header__WwvQ5\",\"showAll\":\"SearchResults_showAll__W5zdh\",\"navigationItemsListContainer\":\"SearchResults_navigationItemsListContainer__pt45x\",\"navigationItemContainer\":\"SearchResults_navigationItemContainer__mGz8h\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"IconContainer_container__kS6o8\",\"defaultColor\":\"IconContainer_defaultColor__jGhPh\",\"secondaryColor\":\"IconContainer_secondaryColor__KDGmK\",\"xsmallIcon\":\"IconContainer_xsmallIcon__QIQZu\",\"smallIcon\":\"IconContainer_smallIcon__slfID\",\"mediumIcon\":\"IconContainer_mediumIcon__WGpBm\",\"largeIcon\":\"IconContainer_largeIcon__oO0B9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Pagination_container__lcGYl\",\"uppercase\":\"Pagination_uppercase__OgSGf\",\"buttonContainer\":\"Pagination_buttonContainer__GsblO\",\"selectedButton\":\"Pagination_selectedButton__0o6Sb\"};"],"names":["searchQuery","useTranslation","t","div","className","styles","IconSearch","p","_g","_defs","text","title","prefix","suffix","onClick","span","IconContainer","size","IconSize","color","IconColor","icon","onSearchKeywordClicked","onRemoveSearchQueryClicked","SearchItem","SearchIcon","Button","shape","ButtonShape","event","toBeDeletedSearchQuery","stopPropagation","onRemoveClicked","variant","ButtonVariant","ButtonSize","CloseIcon","isSearchDrawer","searchHistory","useSelector","selectSearchHistory","areArraysEqual","dispatch","useDispatch","useCallback","logButtonClick","type","removeSearchHistoryRecord","payload","length","Header","map","recentSearchQuery","SearchQuerySuggestion","_extends","Object","assign","bind","n","e","arguments","r","hasOwnProperty","call","apply","_path","props","width","height","viewBox","fill","xmlns","clipPath","d","id","transform","POPULAR_SEARCH_QUERIES","Mulk","Noah","Kahf","Yaseen","lang","chaptersData","useGetChaptersData","SEARCH_FOR_KEYWORDS","toLocalizedNumber","getChapterData","transliteratedName","toLocalizedVerseKey","keys","popularSearchQuery","chapterId","url","getSurahNavigationUrl","chapterData","Link","href","TrendUpIcon","SearchHistory","keyword","index","navigation","service","SearchService","useContext","DataContext","isKalimatService","resolveUrlBySearchNavigationType","resultType","key","result","getSearchNavigationResult","SearchNavigationType","Number","source","SearchQuerySource","name","DOTS","generateRange","start","end","range","onPageChange","totalCount","currentPage","pageSize","siblingsCount","showSummary","paginationRange","useMemo","totalPageCount","Math","ceil","leftSiblingIndex","max","rightSiblingIndex","min","shouldShowLeftDots","shouldShowRightDots","firstPageIndex","lastPageIndex","leftRange","rightRange","middleRange","showingUntilItem","tooltip","isDisabled","PreviousIcon","pageNumber","classNames","NextIcon","currentResultNumber","endOfResultNumber","totalNumberOfResults","searchResult","onSearchResultClicked","navigationResult","NavigationItem","count","pagination","totalRecords","verses","SearchResultItem","verseKey","shouldPassHref","a","Pagination","isSearching","hasError","isEmptyResponse","isPreInputLayout","Spinner","SpinnerSize","NoResults","SearchResults","PreInput","localizedVerseKey","chapterNumber","getChapterNumberFromKey","toString","getChapterWithStartingVerseUrl","translate","words","word","QuranWord","isHighlighted","highlight","isWordByWordAllowed","isAudioHighlightingAllowed","translations","translation","dangerouslySetInnerHTML","__html","resourceName","resourceId","default","primary","secondary","Medium","shouldFlipOnRTL","shouldForceSetColors","dir","useDirection","Xsmall","Small","Large","data-auto-flip-icon","module","exports"],"sourceRoot":""}