57072.js.map 45 KB

1
  1. {"version":3,"file":"57072.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACLA;AAAuC;AAEiB;AAEO;AACnB;AACgC;AAC9B;AAQ9C,MAAMQ,gBAAgB,GAAoB,CAAC,EAAEC,MAAM,GAAEC,SAAS,GAAE,GAAK;IACnE,MAAM,EAAEC,SAAS,GAAE,GAAGR,wDAAW,CAACG,+FAAuB,EAAEJ,qDAAY,CAAC;IACxE,MAAMU,YAAY,GAAGX,8CAAO,CAC1B,IACEY,MAAM,CAACC,MAAM,CAACL,MAAM,CAAC,CAACM,GAAG,CAAC,CAACC,KAAK,GAAM;gBACpC,GAAGA,KAAK;gBACRC,UAAU,EAAED,KAAK,CAACE,KAAK,CAAC,CAAC,CAAC,CAACD,UAAU;aACtC,EAAE,EACL;QAACR,MAAM;KAAC,CACT;IACDJ,sEAAU,CAACM,SAAS,EAAEC,YAAY,CAAC,CAAC;IACpC,MAAMM,KAAK,GAAGjB,8CAAO,C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","sources":["webpack://quran.com/./src/components/Verse/PlainVerseText/PlainVerseTextWord/PlainVerseTextWord.module.scss","webpack://quran.com/./src/components/Verse/VerseText.module.scss","webpack://quran.com/./src/components/dls/InlineWordByWord/InlineWordByWord.module.scss","webpack://quran.com/./src/components/dls/QuranWord/GlyphWord.module.scss","webpack://quran.com/./src/components/dls/QuranWord/TajweedWordImage.module.scss","webpack://quran.com/./src/components/dls/QuranWord/TextWord.module.scss","webpack://quran.com/./src/components/QuranReader/VerseTextPreview/index.tsx","webpack://quran.com/./src/components/QuranReader/hooks/useIsFontLoaded.ts","webpack://quran.com/./src/components/Verse/PlainVerseText/PlainVerseTextWord/index.tsx","webpack://quran.com/./src/components/Verse/PlainVerseText/index.tsx","webpack://quran.com/./src/components/dls/InlineWordByWord/index.tsx","webpack://quran.com/./src/utils/device-detector.ts","webpack://quran.com/./src/components/dls/QuranWord/GlyphWord.tsx","webpack://quran.com/./src/components/dls/QuranWord/TajweedWordImage.tsx","webpack://quran.com/./src/components/dls/QuranWord/TextWord.tsx","webpack://quran.com/./src/hooks/useQcfFont.ts","webpack://quran.com/./src/utils/cdn.ts","webpack://quran.com/./src/utils/fontFaceHelper.ts","webpack://quran.com/./types/Word.ts"],"sourcesContent":["// Exports\nmodule.exports = {\n\t\"plainVerseWordContainer\": \"PlainVerseTextWord_plainVerseWordContainer__2pyxx\",\n\t\"plainVerseWbwText\": \"PlainVerseTextWord_plainVerseWbwText__DTrKx\"\n};\n","// Exports\nmodule.exports = {\n\t\"verseText\": \"VerseText_verseText__Fk0Fi\",\n\t\"verseTextContainer\": \"VerseText_verseTextContainer__hOUD0\",\n\t\"chapterHeaderContainer\": \"VerseText_chapterHeaderContainer__SaizB\",\n\t\"largeQuranTextLayoutContainer\": \"VerseText_largeQuranTextLayoutContainer__Fv3ec\",\n\t\"largeQuranTextLayout\": \"VerseText_largeQuranTextLayout__JsyGS\",\n\t\"verseTextCenterAlign\": \"VerseText_verseTextCenterAlign__Tz7Y4\",\n\t\"verseTextSpaceBetween\": \"VerseText_verseTextSpaceBetween__syJcK\",\n\t\"verseTextWrap\": \"VerseText_verseTextWrap__gOX9U\",\n\t\"code_v1-font-size-1\": \"VerseText_code_v1-font-size-1__9Rt0g\",\n\t\"code_v1-font-size-2\": \"VerseText_code_v1-font-size-2__VQjoR\",\n\t\"code_v1-font-size-3\": \"VerseText_code_v1-font-size-3__3x2lH\",\n\t\"code_v1-font-size-4\": \"VerseText_code_v1-font-size-4__LhpwQ\",\n\t\"code_v1-font-size-5\": \"VerseText_code_v1-font-size-5___K_MX\",\n\t\"code_v1-font-size-6\": \"VerseText_code_v1-font-size-6__SJ4l4\",\n\t\"code_v1-font-size-7\": \"VerseText_code_v1-font-size-7__c7wGl\",\n\t\"code_v1-font-size-8\": \"VerseText_code_v1-font-size-8__Rg__I\",\n\t\"code_v1-font-size-9\": \"VerseText_code_v1-font-size-9__QD8Sb\",\n\t\"code_v1-font-size-10\": \"VerseText_code_v1-font-size-10__r28R3\",\n\t\"code_v2-font-size-1\": \"VerseText_code_v2-font-size-1__F3Otn\",\n\t\"code_v2-font-size-2\": \"VerseText_code_v2-font-size-2__5pseo\",\n\t\"code_v2-font-size-3\": \"VerseText_code_v2-font-size-3__Lhu_B\",\n\t\"code_v2-font-size-4\": \"VerseText_code_v2-font-size-4__i8Qln\",\n\t\"code_v2-font-size-5\": \"VerseText_code_v2-font-size-5__paFu0\",\n\t\"code_v2-font-size-6\": \"VerseText_code_v2-font-size-6__0ofuY\",\n\t\"code_v2-font-size-7\": \"VerseText_code_v2-font-size-7__qY63H\",\n\t\"code_v2-font-size-8\": \"VerseText_code_v2-font-size-8__Jas77\",\n\t\"code_v2-font-size-9\": \"VerseText_code_v2-font-size-9__zKbDl\",\n\t\"code_v2-font-size-10\": \"VerseText_code_v2-font-size-10__RdYo_\",\n\t\"text_indopak_15_lines-font-size-1\": \"VerseText_text_indopak_15_lines-font-size-1__MpqYL\",\n\t\"text_indopak_15_lines-font-size-2\": \"VerseText_text_indopak_15_lines-font-size-2___O1LY\",\n\t\"text_indopak_15_lines-font-size-3\": \"VerseText_text_indopak_15_lines-font-size-3__va0v9\",\n\t\"text_indopak_15_lines-font-size-4\": \"VerseText_text_indopak_15_lines-font-size-4__lnUQq\",\n\t\"text_indopak_15_lines-font-size-5\": \"VerseText_text_indopak_15_lines-font-size-5__XOzo1\",\n\t\"text_indopak_15_lines-font-size-6\": \"VerseText_text_indopak_15_lines-font-size-6__gB6zb\",\n\t\"text_indopak_15_lines-font-size-7\": \"VerseText_text_indopak_15_lines-font-size-7__FekJW\",\n\t\"text_indopak_15_lines-font-size-8\": \"VerseText_text_indopak_15_lines-font-size-8__loZsT\",\n\t\"text_indopak_15_lines-font-size-9\": \"VerseText_text_indopak_15_lines-font-size-9__VmlCu\",\n\t\"text_indopak_15_lines-font-size-10\": \"VerseText_text_indopak_15_lines-font-size-10__O1PJG\",\n\t\"text_indopak_16_lines-font-size-1\": \"VerseText_text_indopak_16_lines-font-size-1__4ucyv\",\n\t\"text_indopak_16_lines-font-size-2\": \"VerseText_text_indopak_16_lines-font-size-2__3yXno\",\n\t\"text_indopak_16_lines-font-size-3\": \"VerseText_text_indopak_16_lines-font-size-3__G_OaF\",\n\t\"text_indopak_16_lines-font-size-4\": \"VerseText_text_indopak_16_lines-font-size-4__f3_iJ\",\n\t\"text_indopak_16_lines-font-size-5\": \"VerseText_text_indopak_16_lines-font-size-5__oUIOq\",\n\t\"text_indopak_16_lines-font-size-6\": \"VerseText_text_indopak_16_lines-font-size-6__FA5AG\",\n\t\"text_indopak_16_lines-font-size-7\": \"VerseText_text_indopak_16_lines-font-size-7__JFk0u\",\n\t\"text_indopak_16_lines-font-size-8\": \"VerseText_text_indopak_16_lines-font-size-8__Fni_s\",\n\t\"text_indopak_16_lines-font-size-9\": \"VerseText_text_indopak_16_lines-font-size-9__zXsnb\",\n\t\"text_indopak_16_lines-font-size-10\": \"VerseText_text_indopak_16_lines-font-size-10__I7RIN\",\n\t\"qpc_uthmani_hafs-font-size-1\": \"VerseText_qpc_uthmani_hafs-font-size-1__dcYI8\",\n\t\"qpc_uthmani_hafs-font-size-2\": \"VerseText_qpc_uthmani_hafs-font-size-2__BIcpt\",\n\t\"qpc_uthmani_hafs-font-size-3\": \"VerseText_qpc_uthmani_hafs-font-size-3___0I2d\",\n\t\"qpc_uthmani_hafs-font-size-4\": \"VerseText_qpc_uthmani_hafs-font-size-4__uAhrM\",\n\t\"qpc_uthmani_hafs-font-size-5\": \"VerseText_qpc_uthmani_hafs-font-size-5__qDztZ\",\n\t\"qpc_uthmani_hafs-font-size-6\": \"VerseText_qpc_uthmani_hafs-font-size-6__njx2U\",\n\t\"qpc_uthmani_hafs-font-size-7\": \"VerseText_qpc_uthmani_hafs-font-size-7__wJ6wZ\",\n\t\"qpc_uthmani_hafs-font-size-8\": \"VerseText_qpc_uthmani_hafs-font-size-8__E18cl\",\n\t\"qpc_uthmani_hafs-font-size-9\": \"VerseText_qpc_uthmani_hafs-font-size-9__9xc_5\",\n\t\"qpc_uthmani_hafs-font-size-10\": \"VerseText_qpc_uthmani_hafs-font-size-10__9KVZ2\",\n\t\"fallback_qpc_uthmani_hafs-font-size-1\": \"VerseText_fallback_qpc_uthmani_hafs-font-size-1__tEYKA\",\n\t\"fallback_qpc_uthmani_hafs-font-size-2\": \"VerseText_fallback_qpc_uthmani_hafs-font-size-2__WOpbV\",\n\t\"fallback_qpc_uthmani_hafs-font-size-3\": \"VerseText_fallback_qpc_uthmani_hafs-font-size-3__qTu4q\",\n\t\"fallback_qpc_uthmani_hafs-font-size-4\": \"VerseText_fallback_qpc_uthmani_hafs-font-size-4__vxCgd\",\n\t\"fallback_qpc_uthmani_hafs-font-size-5\": \"VerseText_fallback_qpc_uthmani_hafs-font-size-5__pBmKt\",\n\t\"fallback_qpc_uthmani_hafs-font-size-6\": \"VerseText_fallback_qpc_uthmani_hafs-font-size-6__Om3YR\",\n\t\"fallback_qpc_uthmani_hafs-font-size-7\": \"VerseText_fallback_qpc_uthmani_hafs-font-size-7__LqHcg\",\n\t\"fallback_qpc_uthmani_hafs-font-size-8\": \"VerseText_fallback_qpc_uthmani_hafs-font-size-8__H_0LM\",\n\t\"fallback_qpc_uthmani_hafs-font-size-9\": \"VerseText_fallback_qpc_uthmani_hafs-font-size-9__Uz0iX\",\n\t\"fallback_qpc_uthmani_hafs-font-size-10\": \"VerseText_fallback_qpc_uthmani_hafs-font-size-10__Eq184\",\n\t\"tajweed-font-size-1\": \"VerseText_tajweed-font-size-1__wW3aY\",\n\t\"tajweed-font-size-2\": \"VerseText_tajweed-font-size-2__HbkYL\",\n\t\"tajweed-font-size-3\": \"VerseText_tajweed-font-size-3__y6f3z\",\n\t\"tajweed-font-size-4\": \"VerseText_tajweed-font-size-4__Qocn9\",\n\t\"tajweed-font-size-5\": \"VerseText_tajweed-font-size-5__NbAoD\",\n\t\"tajweed-font-size-6\": \"VerseText_tajweed-font-size-6__EWfpu\",\n\t\"tajweed-font-size-7\": \"VerseText_tajweed-font-size-7__zvBX_\",\n\t\"tajweed-font-size-8\": \"VerseText_tajweed-font-size-8__FAAIf\",\n\t\"tajweed-font-size-9\": \"VerseText_tajweed-font-size-9__7nw_V\",\n\t\"tajweed-font-size-10\": \"VerseText_tajweed-font-size-10__cZt_J\",\n\t\"highlighted\": \"VerseText_highlighted__MSh4M\",\n\t\"tafsirOrTranslationMode\": \"VerseText_tafsirOrTranslationMode____xIz\"\n};\n","// Exports\nmodule.exports = {\n\t\"word\": \"InlineWordByWord_word__RguXH\",\n\t\"xs\": \"InlineWordByWord_xs__m6Asd\",\n\t\"sm\": \"InlineWordByWord_sm__j5xJp\",\n\t\"md\": \"InlineWordByWord_md__VTFxL\",\n\t\"lg\": \"InlineWordByWord_lg__0T__M\",\n\t\"xl\": \"InlineWordByWord_xl__NAWHF\",\n\t\"xxl\": \"InlineWordByWord_xxl__MZerA\"\n};\n","// Exports\nmodule.exports = {\n\t\"fallback_qpc_uthmani_hafs-font-size-1\": \"GlyphWord_fallback_qpc_uthmani_hafs-font-size-1__2KKwl\",\n\t\"fallback_qpc_uthmani_hafs-font-size-2\": \"GlyphWord_fallback_qpc_uthmani_hafs-font-size-2__MD0bo\",\n\t\"fallback_qpc_uthmani_hafs-font-size-3\": \"GlyphWord_fallback_qpc_uthmani_hafs-font-size-3__7jYJ0\",\n\t\"fallback_qpc_uthmani_hafs-font-size-4\": \"GlyphWord_fallback_qpc_uthmani_hafs-font-size-4__sH673\",\n\t\"fallback_qpc_uthmani_hafs-font-size-5\": \"GlyphWord_fallback_qpc_uthmani_hafs-font-size-5__hbPXS\",\n\t\"fallback_qpc_uthmani_hafs-font-size-6\": \"GlyphWord_fallback_qpc_uthmani_hafs-font-size-6__GkHoA\",\n\t\"fallback_qpc_uthmani_hafs-font-size-7\": \"GlyphWord_fallback_qpc_uthmani_hafs-font-size-7__jXA0B\",\n\t\"fallback_qpc_uthmani_hafs-font-size-8\": \"GlyphWord_fallback_qpc_uthmani_hafs-font-size-8__EuX_N\",\n\t\"fallback_qpc_uthmani_hafs-font-size-9\": \"GlyphWord_fallback_qpc_uthmani_hafs-font-size-9__lTWFh\",\n\t\"fallback_qpc_uthmani_hafs-font-size-10\": \"GlyphWord_fallback_qpc_uthmani_hafs-font-size-10__q6iVZ\",\n\t\"styledWord\": \"GlyphWord_styledWord__OfEEG\",\n\t\"wordSpacing\": \"GlyphWord_wordSpacing__VDcM6\",\n\t\"fallbackText\": \"GlyphWord_fallbackText__R32Ms\"\n};\n","// Exports\nmodule.exports = {\n\t\"imageContainer\": \"TajweedWordImage_imageContainer__BW9U2\",\n\t\"xs\": \"TajweedWordImage_xs__z56PS\",\n\t\"sm\": \"TajweedWordImage_sm__m8zZy\",\n\t\"md\": \"TajweedWordImage_md__Fo9Wj\",\n\t\"lg\": \"TajweedWordImage_lg__Ke7uV\",\n\t\"xl\": \"TajweedWordImage_xl__toP3N\",\n\t\"xl2\": \"TajweedWordImage_xl2__U2skV\",\n\t\"xl3\": \"TajweedWordImage_xl3__Pivm8\",\n\t\"xl4\": \"TajweedWordImage_xl4__dclGF\",\n\t\"xl5\": \"TajweedWordImage_xl5__xH4Is\",\n\t\"xl6\": \"TajweedWordImage_xl6__VCEAA\"\n};\n","// Exports\nmodule.exports = {\n\t\"word\": \"TextWord_word__mvLd7\",\n\t\"UthmanicHafs\": \"TextWord_UthmanicHafs__9DRAC\",\n\t\"IndoPak\": \"TextWord_IndoPak__Vois6\"\n};\n","import React, { useMemo } from 'react';\n\nimport { shallowEqual, useSelector } from 'react-redux';\n\nimport PlainVerseText from '@/components/Verse/PlainVerseText';\nimport useQcfFont from '@/hooks/useQcfFont';\nimport { selectQuranReaderStyles } from '@/redux/slices/QuranReader/styles';\nimport { getVerseWords } from '@/utils/verse';\nimport Verse from 'types/Verse';\n\ninterface Props {\n verses: Verse[];\n fontScale?: number;\n}\n\nconst VerseTextPreview: React.FC<Props> = ({ verses, fontScale }) => {\n const { quranFont } = useSelector(selectQuranReaderStyles, shallowEqual);\n const tafsirVerses = useMemo(\n () =>\n Object.values(verses).map((verse) => ({\n ...verse,\n pageNumber: verse.words[0].pageNumber,\n })),\n [verses],\n );\n useQcfFont(quranFont, tafsirVerses);\n const words = useMemo(() => verses.map((verse) => getVerseWords(verse)).flat(), [verses]);\n return <PlainVerseText fontScale={fontScale} words={words} />;\n};\n\nexport default VerseTextPreview;\n","import { useMemo } from 'react';\n\nimport { useSelector } from 'react-redux';\n\nimport { selectLoadedFontFaces } from '@/redux/slices/QuranReader/font-faces';\nimport { isQCFFont } from '@/utils/fontFaceHelper';\nimport { QuranFont } from 'types/QuranReader';\n\n/**\n * A hook that detects whether a font of a specific page\n * has been loaded or not.\n *\n * @param {number} pageNumber\n * @param {QuranFont} quranFont\n * @returns {boolean}\n */\nconst useIsFontLoaded = (pageNumber: number, quranFont: QuranFont): boolean => {\n const loadedFonts = useSelector(selectLoadedFontFaces);\n const isFontLoaded = useMemo(() => {\n if (!isQCFFont(quranFont)) {\n return true;\n }\n return loadedFonts.includes(`p${pageNumber}-${quranFont.replace('code_', '')}`);\n }, [loadedFonts, pageNumber, quranFont]);\n return isFontLoaded;\n};\n\nexport default useIsFontLoaded;\n","import React, { ReactNode } from 'react';\n\nimport styles from './PlainVerseTextWord.module.scss';\n\nimport InlineWordByWord from '@/dls/InlineWordByWord';\nimport Word from 'types/Word';\n\ninterface Props {\n word: Word;\n children: ReactNode;\n shouldShowWordByWordTranslation: boolean;\n shouldShowWordByWordTransliteration: boolean;\n}\n\nconst PlainVerseTextWord: React.FC<Props> = ({\n word,\n children,\n shouldShowWordByWordTransliteration,\n shouldShowWordByWordTranslation,\n}) => {\n return (\n <div className={styles.plainVerseWordContainer} key={word.location}>\n {children}\n {shouldShowWordByWordTranslation && (\n <InlineWordByWord className={styles.plainVerseWbwText} text={word?.translation?.text} />\n )}\n {shouldShowWordByWordTransliteration && (\n <InlineWordByWord className={styles.plainVerseWbwText} text={word?.transliteration?.text} />\n )}\n </div>\n );\n};\n\nexport default PlainVerseTextWord;\n","import React from 'react';\n\nimport classNames from 'classnames';\nimport { shallowEqual, useSelector } from 'react-redux';\n\nimport styles from '../VerseText.module.scss';\n\nimport PlainVerseTextWord from './PlainVerseTextWord';\n\nimport useIsFontLoaded from '@/components/QuranReader/hooks/useIsFontLoaded';\nimport GlyphWord from '@/dls/QuranWord/GlyphWord';\nimport TajweedWord from '@/dls/QuranWord/TajweedWordImage';\nimport TextWord from '@/dls/QuranWord/TextWord';\nimport { selectQuranReaderStyles } from '@/redux/slices/QuranReader/styles';\nimport { getFontClassName, isQCFFont } from '@/utils/fontFaceHelper';\nimport { QuranFont } from 'types/QuranReader';\nimport Word from 'types/Word';\n\ntype Props = {\n words: Word[];\n shouldShowWordByWordTranslation?: boolean;\n shouldShowWordByWordTransliteration?: boolean;\n fontScale?: number;\n};\n\n/**\n * A component to only show the verse text without extra functionalities such as ayah\n * highlighting when audio is playing or showing a tooltip when\n * hovering over a verse or showing the word by word translation/transliteration.\n *\n * @param {Props} param0\n * @returns {JSX.Element}\n */\nconst PlainVerseText: React.FC<Props> = ({\n words,\n shouldShowWordByWordTranslation = false,\n shouldShowWordByWordTransliteration = false,\n fontScale,\n}: Props): JSX.Element => {\n const { quranFont, quranTextFontScale, mushafLines } = useSelector(\n selectQuranReaderStyles,\n shallowEqual,\n );\n const isQcfFont = isQCFFont(quranFont);\n const isFontLoaded = useIsFontLoaded(words[0].pageNumber, quranFont);\n return (\n <div\n className={classNames(styles.verseTextContainer, styles.tafsirOrTranslationMode, {\n [styles[getFontClassName(quranFont, fontScale || quranTextFontScale, mushafLines)]]:\n quranFont !== QuranFont.Tajweed,\n })}\n >\n <div className={classNames(styles.verseText, styles.verseTextWrap)} translate=\"no\">\n {words?.map((word) => {\n if (isQcfFont) {\n return (\n <PlainVerseTextWord\n key={word.location}\n word={word}\n shouldShowWordByWordTranslation={shouldShowWordByWordTranslation}\n shouldShowWordByWordTransliteration={shouldShowWordByWordTransliteration}\n >\n <GlyphWord\n font={quranFont}\n qpcUthmaniHafs={word.qpcUthmaniHafs}\n pageNumber={word.pageNumber}\n textCodeV1={word.codeV1}\n textCodeV2={word.codeV2}\n isFontLoaded={isFontLoaded}\n />\n </PlainVerseTextWord>\n );\n }\n if (quranFont === QuranFont.Tajweed) {\n return (\n <PlainVerseTextWord\n key={word.location}\n word={word}\n shouldShowWordByWordTranslation={shouldShowWordByWordTranslation}\n shouldShowWordByWordTransliteration={shouldShowWordByWordTransliteration}\n >\n <TajweedWord key={word.location} path={word.text} alt={word.textUthmani} />\n </PlainVerseTextWord>\n );\n }\n return (\n <PlainVerseTextWord\n key={word.location}\n word={word}\n shouldShowWordByWordTranslation={shouldShowWordByWordTranslation}\n shouldShowWordByWordTransliteration={shouldShowWordByWordTransliteration}\n >\n <TextWord font={quranFont} text={word.text} charType={word.charTypeName} />\n </PlainVerseTextWord>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default PlainVerseText;\n","import React from 'react';\n\nimport classNames from 'classnames';\nimport { shallowEqual, useSelector } from 'react-redux';\n\nimport styles from './InlineWordByWord.module.scss';\n\nimport { selectWordByWordFontScale } from '@/redux/slices/QuranReader/styles';\n\nconst FONT_SIZE_CLASS_MAP = {\n 1: styles.xs,\n 2: styles.sm,\n 3: styles.md,\n 4: styles.lg,\n 5: styles.xl,\n 6: styles.xxl,\n};\n\ntype Props = {\n text?: string;\n className?: string;\n};\n\nconst InlineWordByWord: React.FC<Props> = ({ text, className }) => {\n const wordByWordFontScale = useSelector(selectWordByWordFontScale, shallowEqual);\n return (\n <p className={classNames(styles.word, className, FONT_SIZE_CLASS_MAP[wordByWordFontScale])}>\n {text}\n </p>\n );\n};\n\nexport default InlineWordByWord;\n","import isClient from './isClient';\n\nexport const isMacOs = () => {\n if (!isClient) {\n return false;\n }\n return window.navigator.userAgent.search('Mac') !== -1;\n};\n\nexport const isAppleDevice = () => {\n if (!isClient) {\n return false;\n }\n const isOSX = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\n return isOSX || isMacOs();\n};\n\nexport const isAppleWebKit = () => {\n const { userAgent } = navigator;\n return /AppleWebKit/.test(userAgent) && /Mobile/.test(userAgent);\n};\n\nexport const isFirefox = () => {\n if (!isClient) {\n return false;\n }\n\n const { userAgent } = navigator;\n return userAgent.toLowerCase().includes('firefox');\n};\n","/* eslint-disable react/no-danger */\n\nimport classNames from 'classnames';\nimport { shallowEqual, useSelector } from 'react-redux';\n\nimport styles from './GlyphWord.module.scss';\n\nimport { selectQuranReaderStyles } from '@/redux/slices/QuranReader/styles';\nimport { isFirefox } from '@/utils/device-detector';\nimport { getFontClassName } from '@/utils/fontFaceHelper';\nimport { FALLBACK_FONT, QuranFont } from 'types/QuranReader';\n\ntype UthmaniWordTextProps = {\n qpcUthmaniHafs: string;\n textCodeV1?: string;\n textCodeV2?: string;\n pageNumber: number;\n font: QuranFont;\n isFontLoaded: boolean;\n};\n\n/**\n * Get the text of the verse's word. This is used to show textUthmani as a fallback\n * until V1/V2 font faces of the current word's page (e.g. p1-v1 or p50-v2) has finished downloading.\n *\n * @param {string} qpcUthmaniHafs\n * @param {string} textCodeV1\n * @param {string} textCodeV2\n * @param {QuranFont} font\n * @param {boolean} isFontLoaded\n * @returns {string}\n */\nconst getWordText = (\n qpcUthmaniHafs: string,\n textCodeV1: string,\n textCodeV2: string,\n font: QuranFont,\n isFontLoaded: boolean,\n): string => {\n if (!isFontLoaded) {\n return qpcUthmaniHafs;\n }\n return font === QuranFont.MadaniV1 ? textCodeV1 : textCodeV2;\n};\n\nconst GlyphWord = ({\n qpcUthmaniHafs,\n textCodeV1,\n textCodeV2,\n pageNumber,\n font,\n isFontLoaded,\n}: UthmaniWordTextProps) => {\n const { quranTextFontScale, mushafLines } = useSelector(selectQuranReaderStyles, shallowEqual);\n\n // The extra space before the glyph should only be added where the issue occurs,\n // which is in firefox with the Madani V1 Mushaf and the font scale is less than 6\n const addExtraSpace = isFirefox() && font === QuranFont.MadaniV1 && quranTextFontScale < 6;\n\n return (\n <span\n dangerouslySetInnerHTML={{\n __html: `${addExtraSpace ? ` ` : ``}${getWordText(\n qpcUthmaniHafs,\n textCodeV1,\n textCodeV2,\n font,\n isFontLoaded,\n )}`,\n }}\n data-font-scale={quranTextFontScale}\n data-font={font}\n className={classNames(styles.styledWord, {\n [styles.wordSpacing]: addExtraSpace,\n [styles.fallbackText]: !isFontLoaded,\n [styles[getFontClassName(FALLBACK_FONT, quranTextFontScale, mushafLines, true)]]:\n !isFontLoaded,\n })}\n {...(isFontLoaded && {\n style: { fontFamily: `p${pageNumber}-${font.replace('code_', '')}` },\n })}\n />\n );\n};\nexport default GlyphWord;\n","/* eslint-disable @next/next/no-img-element */\nimport React from 'react';\n\nimport classNames from 'classnames';\nimport { useSelector } from 'react-redux';\n\nimport styles from './TajweedWordImage.module.scss';\n\nimport { selectQuranReaderStyles } from '@/redux/slices/QuranReader/styles';\nimport { makeCDNUrl } from '@/utils/cdn';\n\ninterface Props {\n path: string;\n alt: string;\n}\n\nconst FONT_SIZE_CLASS_MAP = {\n 1: styles.xs,\n 2: styles.sm,\n 3: styles.md,\n 4: styles.lg,\n 5: styles.xl,\n 6: styles.xl2,\n 7: styles.xl3,\n 8: styles.xl4,\n 9: styles.xl5,\n 10: styles.xl6,\n};\n\nconst TajweedWord: React.FC<Props> = ({ path, alt }) => {\n const { quranTextFontScale } = useSelector(selectQuranReaderStyles);\n return (\n <span className={classNames(styles.imageContainer, FONT_SIZE_CLASS_MAP[quranTextFontScale])}>\n <img src={`${makeCDNUrl(`images/${path}`)}`} alt={alt} />\n </span>\n );\n};\n\nexport default TajweedWord;\n","import React from 'react';\n\nimport classNames from 'classnames';\nimport { decamelizeKeys } from 'humps';\n\nimport styles from './TextWord.module.scss';\n\nimport { CharType } from 'types/Word';\n\ntype MadaniWordTextProps = {\n text: string;\n font: string;\n charType: CharType;\n};\n\nconst DEFAULT_FONT_FAMILY = 'UthmanicHafs';\nconst INDO_PAK = 'IndoPak';\n\nconst UTHMANI_HAFS_FONTS = decamelizeKeys({\n qpcUthmaniHafs: DEFAULT_FONT_FAMILY,\n textIndopak: INDO_PAK,\n});\n\nconst TextWord: React.FC<MadaniWordTextProps> = ({ text, font, charType }) => (\n <span\n className={classNames(styles.word, {\n [styles[DEFAULT_FONT_FAMILY]]:\n charType === CharType.End ||\n !UTHMANI_HAFS_FONTS[font] ||\n UTHMANI_HAFS_FONTS[font] === DEFAULT_FONT_FAMILY,\n [styles[INDO_PAK]]: UTHMANI_HAFS_FONTS[font] === INDO_PAK,\n })}\n >\n {text}\n </span>\n);\n\nexport default TextWord;\n","import { useEffect, useCallback, useRef } from 'react';\n\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { selectLoadedFontFaces, addLoadedFontFace } from '@/redux/slices/QuranReader/font-faces';\nimport { removeItemFromArray } from '@/utils/array';\nimport {\n getFontFaceNameForPage,\n getV1OrV2FontFaceSource,\n getPagesByVerses,\n isQCFFont,\n} from '@/utils/fontFaceHelper';\nimport { QuranFont } from 'types/QuranReader';\nimport Verse from 'types/Verse';\n\n/**\n * This hook manually request the browser to download the font for each page\n * of QCF's V1 and V2 Mushafs. After each resource has been downloaded, we\n * store it in redux so that VerseText can use it to determine whether the fallback\n * text and font should be font or not.\n *\n * Notes, loaded font is reset every time the user switch the font\n * see src/components/Navbar/SettingsDrawer/QuranFontSection.tsx\n *\n * @param {QuranFont} quranFont\n * @param {Verse[]} verses\n */\nconst useQcfFont = (quranFont: QuranFont, verses: Verse[]) => {\n const currentlyFetchingFonts = useRef([]);\n const dispatch = useDispatch();\n const isFontQCF = isQCFFont(quranFont);\n const loadedFonts = useSelector(selectLoadedFontFaces);\n const onFontLoaded = useCallback(\n (fontFace: string) => {\n dispatch(addLoadedFontFace(fontFace));\n },\n [dispatch],\n );\n\n // listen to changes in verses (this is due to infinite scrolling fetching more verses).\n useEffect(() => {\n if (isFontQCF && verses.length > 0) {\n // loop through unique page numbers of the current verses\n getPagesByVerses(verses).forEach((pageNumber) => {\n const isV1 = quranFont === QuranFont.MadaniV1;\n const fontFaceName = getFontFaceNameForPage(isV1, pageNumber);\n const fontFace = new FontFace(fontFaceName, getV1OrV2FontFaceSource(isV1, pageNumber));\n // we only want to load fonts that were not loaded and also are not currently being loaded\n if (\n !currentlyFetchingFonts.current.includes(fontFaceName) &&\n !loadedFonts.includes(fontFaceName)\n ) {\n currentlyFetchingFonts.current = [...currentlyFetchingFonts.current, fontFaceName];\n fontFace.display = 'block';\n document.fonts.add(fontFace);\n // load the font-face programmatically\n fontFace\n .load()\n .then(() => {\n // store the font face in Redux slice\n onFontLoaded(fontFaceName);\n })\n .finally(() => {\n // whether we failed or succeeded to fetch the fontFace, we remove it from currently fetching array\n currentlyFetchingFonts.current = removeItemFromArray(\n fontFaceName,\n currentlyFetchingFonts.current,\n );\n });\n }\n });\n }\n }, [quranFont, verses, loadedFonts, isFontQCF, currentlyFetchingFonts, onFontLoaded]);\n};\n\nexport default useQcfFont;\n","export const CDN_HOST = 'https://static.qurancdn.com';\nexport const CDN_ASSETS_VERSION = '1';\n\n/**\n * Generate versioned URL of static asset\n *\n * @param {string} path the path of static asset\n * @returns {string}\n */\n\nexport const makeCDNUrl = (path: string) => {\n return `${CDN_HOST}/${path}?v=${CDN_ASSETS_VERSION}`;\n};\n","import range from 'lodash/range';\n\nimport { MushafLines, QuranFont } from 'types/QuranReader';\nimport Verse from 'types/Verse';\n\nconst QCFFontCodes = [QuranFont.MadaniV1, QuranFont.MadaniV2];\nexport const isQCFFont = (font: QuranFont) => QCFFontCodes.includes(font);\n\n/**\n * Get the page numbers of a group of verses by getting\n * the page number of the first verse, the page number of the last verse\n * and generating the range between both of them.\n *\n * @param {Verse[]} verses\n * @returns {number[]}\n */\nexport const getPagesByVerses = (verses: Verse[]): number[] => {\n const firstPage = verses[0].pageNumber;\n const lastPage = verses[verses.length - 1].pageNumber;\n\n return range(firstPage, lastPage + 1);\n};\n\n/**\n * A function that will return the value of the src of QCF's font V1 and V2.\n * This will be used when we create a new instance of FontFace inside useQcfFont\n * hook.\n *\n * @param {boolean} isV1\n * @param {number} pageNumber\n * @returns {string}\n */\nexport const getV1OrV2FontFaceSource = (isV1: boolean, pageNumber: number): string => {\n const pageName = String(pageNumber).padStart(3, '0');\n\n if (isV1) {\n const woff2 = `/fonts/quran/hafs/v1/woff2/p${pageNumber}.woff2`;\n const woff = `/fonts/quran/hafs/v1/woff/p${pageNumber}.woff`;\n const ttf = `/fonts/quran/hafs/v1/ttf/p${pageNumber}.ttf`;\n return `local(QCF_P${pageName}), url('${woff2}') format('woff2'), url('${woff}') format('woff'), url('${ttf}') format('truetype')`;\n }\n\n const woff2 = `/fonts/quran/hafs/v2/woff2/p${pageNumber}.woff2`;\n const woff = `/fonts/quran/hafs/v2/woff/p${pageNumber}.woff`;\n const ttf = `/fonts/quran/hafs/v2/ttf/p${pageNumber}.ttf`;\n\n return `local(QCF2${pageName}), url('${woff2}') format('woff2'), url('${woff}') format('woff'), url('${ttf}') format('truetype')`;\n};\n\n/**\n * A function that will return the value of the font-face of QCF's font V1 and V2.\n * This will be used when we create a new instance of FontFace inside useQcfFont\n * hook.\n *\n * @param {boolean} isV1\n * @param {number} pageNumber\n * @returns {string}\n */\nexport const getFontFaceNameForPage = (isV1: boolean, pageNumber: number): string =>\n isV1 ? `p${pageNumber}-v1` : `p${pageNumber}-v2`;\n\n/**\n * Dynamically generate the className of the combination between the font\n * name + size + mushafLines(when its Indopak) that will match the output of\n * generate-font-scales function inside {@see _utility.scss}.\n *\n * @param {QuranFont} quranFont\n * @param {number} fontScale\n * @param {MushafLines} mushafLines\n * @param {boolean} isFallbackFont\n * @returns {string}\n */\nexport const getFontClassName = (\n quranFont: QuranFont,\n fontScale: number,\n mushafLines: MushafLines,\n isFallbackFont = false,\n): string => {\n if (quranFont === QuranFont.IndoPak) {\n return `${quranFont}_${mushafLines}-font-size-${fontScale}`;\n }\n return isFallbackFont\n ? `fallback_${quranFont}-font-size-${fontScale}`\n : `${quranFont}-font-size-${fontScale}`;\n};\n\n/**\n * Dynamically generate the className of the combination between the font\n * name + size that will match the output of\n * generate-font-scales function inside {@see _utility.scss}.\n *\n * @param {QuranFont} quranFont\n * @param {number} fontScale\n * @param {MushafLines} mushafLines\n * @param {boolean} isFallbackFont\n * @returns {string}\n */\nexport const getLineWidthClassName = (\n quranFont: QuranFont,\n fontScale: number,\n mushafLines: MushafLines,\n isFallbackFont = false,\n): string => {\n if (quranFont === QuranFont.IndoPak) {\n return `${quranFont}_${mushafLines}-line-width-${fontScale}`;\n }\n\n return isFallbackFont\n ? `fallback_${quranFont}-line-width-${fontScale}`\n : `${quranFont}-line-width-${fontScale}`;\n};\n","import Translation from './Translation';\nimport Transliteration from './Transliteration';\n\nexport enum CharType {\n Word = 'word',\n End = 'end',\n Pause = 'pause',\n Sajdah = 'sajdah',\n RubElHizb = 'rub-el-hizb',\n}\n\ninterface Word {\n verseKey?: string;\n charTypeName: CharType;\n codeV1?: string;\n codeV2?: string;\n pageNumber?: number;\n hizbNumber?: number;\n lineNumber?: number;\n position: number;\n location?: string;\n translation?: Translation;\n transliteration?: Transliteration;\n id?: number;\n textUthmani?: string;\n textIndopak?: string;\n highlight?: string | boolean;\n text?: string;\n audioUrl: $TsFixMe;\n [key: string]: $TsFixMe;\n}\n\nexport default Word;\n"],"names":["React","useMemo","shallowEqual","useSelector","PlainVerseText","useQcfFont","selectQuranReaderStyles","getVerseWords","VerseTextPreview","verses","fontScale","quranFont","tafsirVerses","Object","values","map","verse","pageNumber","words","flat","selectLoadedFontFaces","isQCFFont","useIsFontLoaded","loadedFonts","isFontLoaded","includes","replace","styles","InlineWordByWord","PlainVerseTextWord","word","children","shouldShowWordByWordTransliteration","shouldShowWordByWordTranslation","div","className","plainVerseWordContainer","plainVerseWbwText","text","translation","transliteration","location","classNames","GlyphWord","TajweedWord","TextWord","getFontClassName","QuranFont","quranTextFontScale","mushafLines","isQcfFont","verseTextContainer","tafsirOrTranslationMode","Tajweed","verseText","verseTextWrap","translate","font","qpcUthmaniHafs","textCodeV1","codeV1","textCodeV2","codeV2","path","alt","textUthmani","charType","charTypeName","selectWordByWordFontScale","FONT_SIZE_CLASS_MAP","xs","sm","md","lg","xl","xxl","wordByWordFontScale","p","isClient","isMacOs","window","navigator","userAgent","search","isAppleDevice","isOSX","test","platform","isAppleWebKit","isFirefox","toLowerCase","FALLBACK_FONT","getWordText","MadaniV1","addExtraSpace","span","dangerouslySetInnerHTML","__html","data-font-scale","data-font","styledWord","wordSpacing","fallbackText","style","fontFamily","makeCDNUrl","xl2","xl3","xl4","xl5","xl6","imageContainer","img","src","decamelizeKeys","CharType","DEFAULT_FONT_FAMILY","INDO_PAK","UTHMANI_HAFS_FONTS","textIndopak","End","useEffect","useCallback","useRef","useDispatch","addLoadedFontFace","removeItemFromArray","getFontFaceNameForPage","getV1OrV2FontFaceSource","getPagesByVerses","currentlyFetchingFonts","dispatch","isFontQCF","onFontLoaded","fontFace","length","forEach","isV1","fontFaceName","FontFace","current","display","document","fonts","add","load","then","finally","CDN_HOST","CDN_ASSETS_VERSION","range","QCFFontCodes","MadaniV2","firstPage","lastPage","pageName","String","padStart","woff2","woff","ttf","isFallbackFont","IndoPak","getLineWidthClassName","Word","Pause","Sajdah","RubElHizb"],"sourceRoot":""}