1 |
- {"version":3,"file":"static/chunks/95225.6c8c979d81f5282a.js","mappings":"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","sources":["webpack://_N_E/./node_modules/lodash/uniqBy.js","webpack://_N_E/./node_modules/next-translate/lib/esm/formatElements.js","webpack://_N_E/./node_modules/next-translate/lib/esm/Trans.js","webpack://_N_E/./src/components/Navbar/SettingsDrawer/QuranFontSectionFooter.tsx","webpack://_N_E/./src/utils/sampleVerse.ts","webpack://_N_E/./src/components/Navbar/SettingsDrawer/VersePreview.tsx","webpack://_N_E/./src/components/Navbar/SettingsDrawer/QuranFontSection.tsx","webpack://_N_E/./src/components/Navbar/SettingsDrawer/ResetButton.tsx","webpack://_N_E/./src/components/Navbar/SettingsDrawer/TranslationSection.tsx","webpack://_N_E/./src/components/Navbar/SettingsDrawer/WordByWordSection.tsx","webpack://_N_E/./src/components/Navbar/SettingsDrawer/SettingsBody.tsx","webpack://_N_E/./public/icons/divider-horizontal.svg","webpack://_N_E/./public/icons/tick.svg","webpack://_N_E/./src/components/dls/Forms/Checkbox/Checkbox.tsx","webpack://_N_E/./src/components/dls/SelectionCard/SelectionCard.tsx","webpack://_N_E/./src/components/Navbar/SettingsDrawer/QuranFontSection.module.scss","webpack://_N_E/./src/components/Navbar/SettingsDrawer/ResetButton.module.scss","webpack://_N_E/./src/components/Navbar/SettingsDrawer/TranslationSection.module.scss","webpack://_N_E/./src/components/Navbar/SettingsDrawer/VersePreview.module.scss","webpack://_N_E/./src/components/Navbar/SettingsDrawer/WordByWordSection.module.scss","webpack://_N_E/./src/components/dls/Forms/Checkbox/Checkbox.module.scss","webpack://_N_E/./src/components/dls/SelectionCard/SelectionCard.module.scss","webpack://_N_E/./node_modules/@radix-ui/react-checkbox/dist/index.mjs","webpack://_N_E/./node_modules/@radix-ui/react-use-previous/dist/index.mjs"],"sourcesContent":["var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","import React, { cloneElement, Fragment } from 'react';\nvar tagRe = /<(\\w+)>(.*?)<\\/\\1>|<(\\w+)\\/>/;\nvar nlRe = /(?:\\r\\n|\\r|\\n)/g;\nfunction getElements(parts) {\n if (!parts.length)\n return [];\n var _a = parts.slice(0, 4), paired = _a[0], children = _a[1], unpaired = _a[2], after = _a[3];\n return [\n [(paired || unpaired), children || '', after],\n ].concat(getElements(parts.slice(4, parts.length)));\n}\nexport default function formatElements(value, elements) {\n if (elements === void 0) { elements = []; }\n var parts = value.replace(nlRe, '').split(tagRe);\n if (parts.length === 1)\n return value;\n var tree = [];\n var before = parts.shift();\n if (before)\n tree.push(before);\n getElements(parts).forEach(function (_a, realIndex) {\n var key = _a[0], children = _a[1], after = _a[2];\n var element = elements[key] || React.createElement(Fragment, null);\n tree.push(cloneElement(element, { key: realIndex }, children ? formatElements(children, elements) : element.props.children));\n if (after)\n tree.push(after);\n });\n return tree;\n}\n","import { useMemo } from 'react';\nimport useTranslation from './useTranslation';\nimport formatElements from './formatElements';\nexport default function Trans(_a) {\n var i18nKey = _a.i18nKey, values = _a.values, components = _a.components, fallback = _a.fallback, defaultTrans = _a.defaultTrans, ns = _a.ns;\n var _b = useTranslation(ns), t = _b.t, lang = _b.lang;\n var result = useMemo(function () {\n var text = t(i18nKey, values, { fallback: fallback, default: defaultTrans });\n if (!components || components.length === 0)\n return text;\n return formatElements(text, components);\n }, [i18nKey, values, components, lang]);\n return result;\n}\n","import React from 'react';\n\nimport Link from 'next/link';\nimport Trans from 'next-translate/Trans';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport Section from './Section';\n\nimport { isQCFFont } from '@/utils/fontFaceHelper';\nimport { QuranFont } from 'types/QuranReader';\n\ninterface Props {\n quranFont: QuranFont;\n}\n\nconst QuranFontSectionFooter: React.FC<Props> = ({ quranFont }) => {\n const { t } = useTranslation('common');\n const isTajweed = quranFont === QuranFont.Tajweed;\n return (\n <Section.Footer visible={isQCFFont(quranFont) || isTajweed}>\n {isTajweed ? (\n <Trans\n i18nKey=\"common:fonts.tajweed-desc\"\n components={[<Link key={0} href=\"/tajweed-colors\" prefetch={false} />]}\n />\n ) : (\n t('fonts.qcf-desc')\n )}\n </Section.Footer>\n );\n};\n\nexport default QuranFontSectionFooter;\n","import Verse from 'types/Verse';\n\nconst getSampleVerse = async (): Promise<Verse> => {\n // @ts-ignore\n return import('@/utils/sample-verse.json').then((data) => data.default as Verse);\n};\n\nexport default getSampleVerse;\n","import { useEffect } from 'react';\n\nimport { useSelector, shallowEqual, useDispatch } from 'react-redux';\nimport useSWR from 'swr';\n\nimport styles from './VersePreview.module.scss';\n\nimport PlainVerseText from '@/components/Verse/PlainVerseText';\nimport Skeleton from '@/dls/Skeleton/Skeleton';\nimport { addLoadedFontFace } from '@/redux/slices/QuranReader/font-faces';\nimport { selectQuranReaderStyles } from '@/redux/slices/QuranReader/styles';\nimport { getFontFaceNameForPage, getV1OrV2FontFaceSource, isQCFFont } from '@/utils/fontFaceHelper';\nimport getSampleVerse from '@/utils/sampleVerse';\nimport { QuranFont } from 'types/QuranReader';\nimport Word from 'types/Word';\n\nconst SWR_SAMPLE_VERSE_KEY = 'sample-verse';\nconst VersePreview = () => {\n const quranReaderStyles = useSelector(selectQuranReaderStyles, shallowEqual);\n const isTajweed = quranReaderStyles.quranFont === QuranFont.Tajweed;\n const { data: sampleVerse } = useSWR(SWR_SAMPLE_VERSE_KEY, () => getSampleVerse());\n const dispatch = useDispatch();\n useEffect(() => {\n if (isQCFFont(quranReaderStyles.quranFont) && sampleVerse) {\n const isV1 = quranReaderStyles.quranFont === QuranFont.MadaniV1;\n // eslint-disable-next-line i18next/no-literal-string\n const fontFaceName = getFontFaceNameForPage(isV1, sampleVerse.pageNumber);\n const fontFace = new FontFace(\n fontFaceName,\n getV1OrV2FontFaceSource(isV1, sampleVerse.pageNumber),\n );\n document.fonts.add(fontFace);\n fontFace.load().then(() => {\n dispatch(addLoadedFontFace(fontFaceName));\n });\n }\n }, [dispatch, quranReaderStyles.quranFont, sampleVerse]);\n\n if (!sampleVerse) {\n return (\n <>\n <div className={styles.skeletonContainer}>\n <Skeleton>\n <div className={styles.skeletonPlaceholder} />\n </Skeleton>\n </div>\n <div className={styles.skeletonContainer}>\n <Skeleton>\n <div className={styles.skeletonPlaceholder} />\n </Skeleton>\n </div>\n </>\n );\n }\n\n // BE return the path to the png image of each word, instead of returning the text. So we're mocking the same behavior here\n let verse;\n if (isTajweed) {\n verse = {\n ...sampleVerse,\n words: sampleVerse.words.map((word) => ({ ...word, text: word.textImage })),\n };\n } else {\n verse = sampleVerse;\n }\n\n return (\n <div dir=\"rtl\">\n <PlainVerseText words={verse.words as Word[]} />\n </div>\n );\n};\n\nexport default VersePreview;\n","/* eslint-disable max-lines */\nimport React, { useMemo } from 'react';\n\nimport { Action } from '@reduxjs/toolkit';\nimport useTranslation from 'next-translate/useTranslation';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\n\nimport styles from './QuranFontSection.module.scss';\nimport QuranFontSectionFooter from './QuranFontSectionFooter';\nimport Section from './Section';\nimport VersePreview from './VersePreview';\n\nimport Counter from '@/dls/Counter/Counter';\nimport Select from '@/dls/Forms/Select';\nimport Switch from '@/dls/Switch/Switch';\nimport usePersistPreferenceGroup from '@/hooks/auth/usePersistPreferenceGroup';\nimport { getQuranReaderStylesInitialState } from '@/redux/defaultSettings/util';\nimport { resetLoadedFontFaces } from '@/redux/slices/QuranReader/font-faces';\nimport {\n decreaseQuranTextFontScale,\n increaseQuranTextFontScale,\n MINIMUM_FONT_STEP,\n selectQuranReaderStyles,\n setQuranFont,\n setMushafLines,\n MAXIMUM_QURAN_FONT_STEP,\n} from '@/redux/slices/QuranReader/styles';\nimport { logValueChange } from '@/utils/eventLogger';\nimport PreferenceGroup from 'types/auth/PreferenceGroup';\nimport { MushafLines, QuranFont } from 'types/QuranReader';\n\nconst QuranFontSection = () => {\n const { t, lang } = useTranslation('common');\n const dispatch = useDispatch();\n const quranReaderStyles = useSelector(selectQuranReaderStyles, shallowEqual);\n const {\n actions: { onSettingsChange },\n isLoading,\n } = usePersistPreferenceGroup();\n const { quranFont, quranTextFontScale, mushafLines } = quranReaderStyles;\n // when one of the view is selected, user can choose which font they want to use\n const fonts = useMemo(() => {\n return {\n [QuranFont.IndoPak]: [\n { id: QuranFont.IndoPak, label: t(`fonts.${QuranFont.IndoPak}`), value: QuranFont.IndoPak },\n ],\n [QuranFont.Tajweed]: [\n { id: QuranFont.Tajweed, label: t(`fonts.${QuranFont.Tajweed}`), value: QuranFont.Tajweed },\n ],\n [QuranFont.Uthmani]: [\n {\n id: QuranFont.MadaniV1,\n label: t(`fonts.${QuranFont.MadaniV1}`),\n value: QuranFont.MadaniV1,\n name: QuranFont.MadaniV1,\n },\n {\n id: QuranFont.MadaniV2,\n label: t(`fonts.${QuranFont.MadaniV2}`),\n value: QuranFont.MadaniV2,\n name: QuranFont.MadaniV2,\n },\n {\n id: QuranFont.QPCHafs,\n label: t(`fonts.${QuranFont.QPCHafs}`),\n value: QuranFont.QPCHafs,\n name: QuranFont.QPCHafs,\n },\n ],\n } as Record<QuranFont, { id: QuranFont; label: string; value: QuranFont; name: QuranFont }[]>;\n }, [t]);\n\n // given quranFont [all quran fonts variants], check whether it belongs to IndoPak or Uthmani\n // for example if it's QuranFont.MadaniV1, it belongs to QuranFont.Uthmani\n // if it's QuranFont.IndoPak, it belongs to QuranFont.IndoPak\n const getSelectedType = (font: QuranFont, locale: string) => {\n const selectedViewEntry = Object.entries(fonts).find(([, values]) =>\n values.some((v) => v.id === font),\n );\n if (selectedViewEntry) {\n const [view] = selectedViewEntry;\n return view;\n }\n // if no font is given, or invalid font is given, get type for default font\n return getSelectedType(getQuranReaderStylesInitialState(locale).quranFont, locale);\n };\n\n // get default font for selected type. We take the first font in this case\n // for example for QurantFont.Uthmani, it will be QuranFont.QPCHafs\n const getDefaultFont = (selectedType: QuranFont): QuranFont => {\n const [font] = fonts[selectedType];\n return font.value;\n };\n const selectedType = getSelectedType(quranFont, lang);\n const lines = useMemo(\n () =>\n Object.values(MushafLines).map((line) => ({\n id: line,\n label: t(`fonts.${line}`),\n value: line,\n name: line,\n })),\n [t],\n );\n\n const types = useMemo(\n () =>\n [QuranFont.Uthmani, QuranFont.IndoPak, QuranFont.Tajweed].map((font) => ({\n name: t(`fonts.${font}`),\n value: font,\n })),\n [t],\n );\n\n /**\n * Persist settings in the DB if the user is logged in before dispatching\n * Redux action, otherwise just dispatch it.\n *\n * @param {string} key\n * @param {string | number} value\n * @param {Action} action\n */\n const onFontSettingsChange = (\n key: string,\n value: string | number,\n action: Action,\n undoAction: Action,\n ) => {\n onSettingsChange(key, value, action, undoAction, PreferenceGroup.QURAN_READER_STYLES);\n\n // reset the loaded Fonts when we switch the font\n dispatch(resetLoadedFontFaces());\n };\n\n const onFontChange = (value: QuranFont) => {\n logValueChange('font_family', selectedType, value);\n const fontValue = getDefaultFont(value);\n onFontSettingsChange(\n 'quranFont',\n fontValue,\n setQuranFont({ quranFont: fontValue, locale: lang }),\n setQuranFont({ quranFont: quranReaderStyles.quranFont, locale: lang }),\n );\n };\n\n const onFontStyleChange = (value: QuranFont) => {\n logValueChange('font_style', quranFont, value);\n onFontSettingsChange(\n 'quranFont',\n value,\n setQuranFont({ quranFont: value, locale: lang }),\n setQuranFont({ quranFont: quranReaderStyles.quranFont, locale: lang }),\n );\n };\n\n const onMushafLinesChange = (value: MushafLines) => {\n logValueChange('mushaf_lines', mushafLines, value);\n onFontSettingsChange(\n 'mushafLines',\n value,\n setMushafLines({ mushafLines: value, locale: lang }),\n setMushafLines({ mushafLines: quranReaderStyles.mushafLines, locale: lang }),\n );\n };\n\n const onFontScaleDecreaseClicked = () => {\n const value = quranTextFontScale - 1;\n logValueChange('font_scale', quranTextFontScale, value);\n onFontSettingsChange(\n 'quranTextFontScale',\n value,\n decreaseQuranTextFontScale(),\n increaseQuranTextFontScale(),\n );\n };\n\n const onFontScaleIncreaseClicked = () => {\n const value = quranTextFontScale + 1;\n logValueChange('font_scale', quranTextFontScale, value);\n onFontSettingsChange(\n 'quranTextFontScale',\n value,\n increaseQuranTextFontScale(),\n decreaseQuranTextFontScale(),\n );\n };\n\n return (\n <Section id=\"quran-font-section\">\n <Section.Title isLoading={isLoading}>{t('fonts.quran-font')}</Section.Title>\n <Section.Row>\n <Switch items={types} selected={selectedType} onSelect={onFontChange} />\n </Section.Row>\n <Section.Row>\n <Section.Label>{t('style')}</Section.Label>\n <Select\n id=\"quranFontStyles\"\n name=\"quranFontStyles\"\n options={fonts[selectedType]}\n value={quranFont}\n onChange={onFontStyleChange}\n />\n </Section.Row>\n {selectedType === QuranFont.IndoPak && (\n <Section.Row>\n <Section.Label>{t('fonts.lines')}</Section.Label>\n <Select\n id=\"lines\"\n name=\"lines\"\n options={lines}\n value={mushafLines}\n onChange={onMushafLinesChange}\n />\n </Section.Row>\n )}\n <Section.Row id=\"font-size-section\">\n <Section.Label>{t('fonts.font-size')}</Section.Label>\n <Counter\n count={quranTextFontScale}\n onDecrement={quranTextFontScale === MINIMUM_FONT_STEP ? null : onFontScaleDecreaseClicked}\n onIncrement={\n quranTextFontScale === MAXIMUM_QURAN_FONT_STEP ? null : onFontScaleIncreaseClicked\n }\n />\n </Section.Row>\n <Section.Row>\n <QuranFontSectionFooter quranFont={quranFont} />\n </Section.Row>\n <Section.Row>\n <div className={styles.versePreviewContainer}>\n <VersePreview />\n </div>\n </Section.Row>\n </Section>\n );\n};\n\nexport default QuranFontSection;\n","/* eslint-disable react-func/max-lines-per-function */\nimport { useContext } from 'react';\n\nimport { unwrapResult } from '@reduxjs/toolkit';\nimport { useRouter } from 'next/router';\nimport useTranslation from 'next-translate/useTranslation';\nimport { useDispatch } from 'react-redux';\n\nimport styles from './ResetButton.module.scss';\n\nimport Button from '@/dls/Button/Button';\nimport { ToastStatus, useToast } from '@/dls/Toast/Toast';\nimport resetSettings from '@/redux/actions/reset-settings';\nimport { DEFAULT_XSTATE_INITIAL_STATE } from '@/redux/defaultSettings/defaultSettings';\nimport { persistDefaultSettings } from '@/redux/slices/defaultSettings';\nimport { isLoggedIn } from '@/utils/auth/login';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport { AudioPlayerMachineContext } from 'src/xstate/AudioPlayerMachineContext';\nimport QueryParam from 'types/QueryParam';\n\n// reset button will dispatch a `reset` action\n// reducers will listen to this action\n// for example, check slices/theme.ts. it has extra reducer that listens to `reset` action\nconst ResetButton = () => {\n const dispatch = useDispatch();\n const router = useRouter();\n const { t, lang } = useTranslation('common');\n const toast = useToast();\n const audioService = useContext(AudioPlayerMachineContext);\n\n const onResetSettingsClicked = async () => {\n logButtonClick('reset_settings');\n const resetAndSetInitialState = () => {\n dispatch(resetSettings(lang));\n audioService.send({\n type: 'SET_INITIAL_CONTEXT',\n ...DEFAULT_XSTATE_INITIAL_STATE,\n });\n };\n\n if (isLoggedIn()) {\n try {\n await dispatch(persistDefaultSettings(lang)).then(unwrapResult);\n resetAndSetInitialState();\n } catch {\n // TODO: show an error\n }\n } else {\n resetAndSetInitialState();\n }\n\n const queryParams = [\n QueryParam.Translations,\n QueryParam.Reciter,\n QueryParam.WBW_LOCALE,\n QueryParam.FLOW,\n ];\n const shouldUpdateUrl = queryParams.some((param) => router.query[param]);\n if (shouldUpdateUrl) {\n queryParams.forEach((param) => delete router.query[param]);\n router.push(router, undefined, { shallow: true });\n }\n toast(t('settings.reset-notif'), { status: ToastStatus.Success });\n };\n\n return (\n <>\n <div className={styles.resetButtonContainer}>\n <Button onClick={onResetSettingsClicked}>{t('settings.reset-cta')}</Button>\n </div>\n </>\n );\n};\n\nexport default ResetButton;\n","import { useCallback, useMemo } from 'react';\n\nimport { Action } from '@reduxjs/toolkit';\nimport useTranslation from 'next-translate/useTranslation';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\n\nimport Section from './Section';\nimport styles from './TranslationSection.module.scss';\n\nimport DataFetcher from '@/components/DataFetcher';\nimport { useOnboarding } from '@/components/Onboarding/OnboardingProvider';\nimport Counter from '@/dls/Counter/Counter';\nimport SelectionCard from '@/dls/SelectionCard/SelectionCard';\nimport Skeleton from '@/dls/Skeleton/Skeleton';\nimport usePersistPreferenceGroup from '@/hooks/auth/usePersistPreferenceGroup';\nimport { setSettingsView, SettingsView } from '@/redux/slices/navbar';\nimport {\n decreaseTranslationFontScale,\n increaseTranslationFontScale,\n MAXIMUM_TRANSLATIONS_FONT_STEP,\n MINIMUM_FONT_STEP,\n selectQuranReaderStyles,\n} from '@/redux/slices/QuranReader/styles';\nimport { selectSelectedTranslations } from '@/redux/slices/QuranReader/translations';\nimport { makeTranslationsUrl } from '@/utils/apiPaths';\nimport { areArraysEqual } from '@/utils/array';\nimport { logValueChange } from '@/utils/eventLogger';\nimport { toLocalizedNumber } from '@/utils/locale';\nimport { TranslationsResponse } from 'types/ApiResponses';\nimport PreferenceGroup from 'types/auth/PreferenceGroup';\n\nconst TranslationSection = () => {\n const {\n actions: { onSettingsChange },\n isLoading,\n } = usePersistPreferenceGroup();\n const { t, lang } = useTranslation('common');\n const dispatch = useDispatch();\n const selectedTranslations = useSelector(selectSelectedTranslations, areArraysEqual);\n const quranReaderStyles = useSelector(selectQuranReaderStyles, shallowEqual);\n const { translationFontScale } = quranReaderStyles;\n const { isActive, nextStep } = useOnboarding();\n\n const translationLoading = useCallback(\n () => (\n <div>\n {selectedTranslations.map((id) => (\n <Skeleton className={styles.skeleton} key={id} />\n ))}\n </div>\n ),\n [selectedTranslations],\n );\n\n const localizedSelectedTranslations = useMemo(\n () => toLocalizedNumber(selectedTranslations.length - 1, lang),\n [selectedTranslations, lang],\n );\n\n const onSelectionCardClicked = useCallback(() => {\n dispatch(setSettingsView(SettingsView.Translation));\n logValueChange('settings_view', SettingsView.Translation, SettingsView.Body);\n if (isActive) {\n nextStep();\n }\n }, [dispatch, isActive, nextStep]);\n\n const renderTranslations = useCallback(\n (data: TranslationsResponse) => {\n const firstSelectedTranslation = data.translations.find(\n (translation) => translation.id === selectedTranslations[0],\n );\n\n let selectedValueString = t('settings.no-translation-selected');\n if (selectedTranslations.length === 1) selectedValueString = firstSelectedTranslation?.name;\n if (selectedTranslations.length === 2) {\n selectedValueString = t('settings.value-and-other', {\n value: firstSelectedTranslation?.name,\n othersCount: localizedSelectedTranslations,\n });\n }\n if (selectedTranslations.length > 2) {\n selectedValueString = t('settings.value-and-others', {\n value: firstSelectedTranslation?.name,\n othersCount: localizedSelectedTranslations,\n });\n }\n\n return (\n <SelectionCard\n label={t('settings.selected-translations')}\n value={selectedValueString}\n onClick={onSelectionCardClicked}\n />\n );\n },\n [localizedSelectedTranslations, onSelectionCardClicked, selectedTranslations, t],\n );\n\n /**\n * Persist settings in the DB if the user is logged in before dispatching\n * Redux action, otherwise just dispatch it.\n *\n * @param {string} key\n * @param {number} value\n * @param {Action} action\n */\n const onTranslationSettingsChange = (\n key: string,\n value: number,\n action: Action,\n undoAction: Action,\n ) => {\n onSettingsChange(key, value, action, undoAction, PreferenceGroup.QURAN_READER_STYLES);\n };\n\n const onFontScaleDecreaseClicked = () => {\n const newValue = translationFontScale - 1;\n logValueChange('translation_font_scale', translationFontScale, newValue);\n onTranslationSettingsChange(\n 'translationFontScale',\n newValue,\n decreaseTranslationFontScale(),\n increaseTranslationFontScale(),\n );\n };\n\n const onFontScaleIncreaseClicked = () => {\n const newValue = translationFontScale + 1;\n logValueChange('translation_font_scale', translationFontScale, newValue);\n onTranslationSettingsChange(\n 'translationFontScale',\n newValue,\n increaseTranslationFontScale(),\n decreaseTranslationFontScale(),\n );\n };\n\n return (\n <div className={styles.container}>\n <Section id=\"translation-section\">\n <Section.Title isLoading={isLoading}>{t('translation')}</Section.Title>\n <Section.Row>\n <DataFetcher\n loading={translationLoading}\n queryKey={makeTranslationsUrl(lang)}\n render={renderTranslations}\n />\n </Section.Row>\n <Section.Row>\n <Section.Label>{t('fonts.font-size')}</Section.Label>\n\n {/* disable `onIncrement` function and UI, when translationFontScale is MAXIMUM_FONT_SCALE\n we do this by giving null to `onIncrement` prop\n same applies to `onDecrement` */}\n <Counter\n count={translationFontScale}\n onIncrement={\n MAXIMUM_TRANSLATIONS_FONT_STEP === translationFontScale\n ? null\n : onFontScaleIncreaseClicked\n }\n onDecrement={\n MINIMUM_FONT_STEP === translationFontScale ? null : onFontScaleDecreaseClicked\n }\n />\n </Section.Row>\n </Section>\n </div>\n );\n};\nexport default TranslationSection;\n","/* eslint-disable i18next/no-literal-string */\n/* eslint-disable max-lines */\n\nimport { Action } from '@reduxjs/toolkit';\nimport uniqBy from 'lodash/uniqBy';\nimport { useRouter } from 'next/router';\nimport Trans from 'next-translate/Trans';\nimport useTranslation from 'next-translate/useTranslation';\nimport { shallowEqual, useSelector } from 'react-redux';\n\nimport Section from './Section';\nimport styles from './WordByWordSection.module.scss';\n\nimport DataFetcher from '@/components/DataFetcher';\nimport Counter from '@/dls/Counter/Counter';\nimport Checkbox from '@/dls/Forms/Checkbox/Checkbox';\nimport Select, { SelectSize } from '@/dls/Forms/Select';\nimport Link, { LinkVariant } from '@/dls/Link/Link';\nimport Separator from '@/dls/Separator/Separator';\nimport usePersistPreferenceGroup from '@/hooks/auth/usePersistPreferenceGroup';\nimport {\n selectReadingPreferences,\n setSelectedWordByWordLocale,\n setWordByWordContentType,\n setWordByWordDisplay,\n setWordClickFunctionality,\n} from '@/redux/slices/QuranReader/readingPreferences';\nimport {\n MAXIMUM_WORD_BY_WORD_FONT_STEP,\n MINIMUM_FONT_STEP,\n decreaseWordByWordFontScale,\n increaseWordByWordFontScale,\n selectWordByWordFontScale,\n} from '@/redux/slices/QuranReader/styles';\nimport { WordByWordTranslationsResponse } from '@/types/ApiResponses';\nimport QueryParam from '@/types/QueryParam';\nimport { WordByWordDisplay, WordByWordType, WordClickFunctionality } from '@/types/QuranReader';\nimport { makeWordByWordTranslationsUrl } from '@/utils/apiPaths';\nimport { removeItemFromArray } from '@/utils/array';\nimport { logValueChange } from '@/utils/eventLogger';\nimport { getLocaleName } from '@/utils/locale';\nimport PreferenceGroup from 'types/auth/PreferenceGroup';\n\nconst WordByWordSection = () => {\n const { t, lang } = useTranslation('common');\n const {\n actions: { onSettingsChange },\n isLoading,\n } = usePersistPreferenceGroup();\n const router = useRouter();\n\n const readingPreferences = useSelector(selectReadingPreferences, shallowEqual);\n const {\n selectedWordByWordLocale: wordByWordLocale,\n wordByWordDisplay,\n wordByWordContentType,\n wordClickFunctionality,\n } = readingPreferences;\n\n const wordByWordFontScale = useSelector(selectWordByWordFontScale, shallowEqual);\n\n /**\n * Persist settings in the DB if the user is logged in before dispatching\n * Redux action, otherwise just dispatch it.\n *\n * @param {string} key\n * @param {string | number|boolean} value\n * @param {Action} action\n */\n const onWordByWordSettingsChange = (\n key: string,\n value: string | number | boolean | string[],\n action: Action,\n undoAction: Action,\n isReaderStyles = false,\n ) => {\n onSettingsChange(\n key,\n value,\n action,\n undoAction,\n isReaderStyles ? PreferenceGroup.QURAN_READER_STYLES : PreferenceGroup.READING,\n );\n };\n\n const onFontScaleIncreaseClicked = () => {\n const newValue = wordByWordFontScale + 1;\n logValueChange('word_by_word_font_scale', wordByWordFontScale, newValue);\n onWordByWordSettingsChange(\n 'wordByWordFontScale',\n newValue,\n increaseWordByWordFontScale(),\n decreaseWordByWordFontScale(),\n true,\n );\n };\n\n const onFontScaleDecreaseClicked = () => {\n const newValue = wordByWordFontScale - 1;\n logValueChange('word_by_word_font_scale', wordByWordFontScale, newValue);\n onWordByWordSettingsChange(\n 'wordByWordFontScale',\n newValue,\n decreaseWordByWordFontScale(),\n increaseWordByWordFontScale(),\n true,\n );\n };\n\n const onWordByWordLocaleChange = (value: string) => {\n logValueChange('wbw_locale', wordByWordLocale, value);\n router.query[QueryParam.WBW_LOCALE] = value;\n router.push(router, undefined, { shallow: true });\n onWordByWordSettingsChange(\n 'selectedWordByWordLocale',\n value,\n setSelectedWordByWordLocale({ value, locale: lang }),\n setSelectedWordByWordLocale({ value: wordByWordLocale, locale: lang }),\n );\n };\n\n const onRecitationChange = (isChecked: boolean) => {\n const newValue = isChecked ? WordClickFunctionality.PlayAudio : WordClickFunctionality.NoAudio;\n const oldValue =\n newValue === WordClickFunctionality.PlayAudio\n ? WordClickFunctionality.NoAudio\n : WordClickFunctionality.PlayAudio;\n logValueChange('audio_settings_word_click_functionality', oldValue, newValue);\n onWordByWordSettingsChange(\n 'wordClickFunctionality',\n newValue,\n setWordClickFunctionality(newValue),\n setWordClickFunctionality(oldValue),\n );\n };\n\n const onDisplaySettingChange = (isInlineCheckbox: boolean, isChecked: boolean) => {\n const type = isInlineCheckbox ? WordByWordDisplay.INLINE : WordByWordDisplay.TOOLTIP;\n const nextWordByWordDisplay = isChecked\n ? [...wordByWordDisplay, type]\n : removeItemFromArray(type, wordByWordDisplay);\n logValueChange('wbw_display', wordByWordDisplay, nextWordByWordDisplay);\n onWordByWordSettingsChange(\n 'wordByWordDisplay',\n nextWordByWordDisplay,\n setWordByWordDisplay(nextWordByWordDisplay),\n setWordByWordDisplay(wordByWordDisplay),\n );\n };\n\n const onContentTypeChange = (isTranslationCheckbox: boolean, isChecked: boolean) => {\n const type = isTranslationCheckbox\n ? WordByWordType.Translation\n : WordByWordType.Transliteration;\n const nextWordByWordContentType = isChecked\n ? [...wordByWordContentType, type]\n : removeItemFromArray(type, wordByWordContentType);\n logValueChange('wbw_content_type', wordByWordContentType, nextWordByWordContentType);\n onWordByWordSettingsChange(\n 'wordByWordContentType',\n nextWordByWordContentType,\n setWordByWordContentType(nextWordByWordContentType),\n setWordByWordContentType(wordByWordContentType),\n );\n };\n\n const shouldDisableWordByWordDisplay = !wordByWordContentType || !wordByWordContentType.length;\n const shouldDisableLanguageSelect =\n !wordByWordContentType || !wordByWordContentType.includes(WordByWordType.Translation);\n\n return (\n <Section>\n <Section.Title isLoading={isLoading}>{t('wbw')}</Section.Title>\n <Section.Row>\n <div className={styles.checkboxContainer}>\n <div id=\"wbw-translation-section\">\n <Checkbox\n checked={wordByWordContentType.includes(WordByWordType.Translation)}\n id=\"wbw-translation\"\n name=\"wbw-translation\"\n label={t('translation')}\n onChange={(isChecked) => onContentTypeChange(true, isChecked)}\n />\n </div>\n\n <div id=\"wbw-transliteration-section\">\n <Checkbox\n checked={wordByWordContentType.includes(WordByWordType.Transliteration)}\n id=\"wbw-transliteration\"\n name=\"wbw-transliteration\"\n label={t('transliteration')}\n onChange={(isChecked) => onContentTypeChange(false, isChecked)}\n />\n </div>\n\n <div id=\"wbw-recitation-section\">\n <Checkbox\n checked={wordClickFunctionality === WordClickFunctionality.PlayAudio}\n id=\"wbw-recitation\"\n name=\"wbw-recitation\"\n label={t('recitation')}\n onChange={onRecitationChange}\n />\n </div>\n\n <Section.Footer>\n <Trans\n components={{ span: <span className={styles.source} /> }}\n i18nKey=\"common:reciter-summary\"\n values={{ reciterName: 'Shaikh Wisam Sharieff' }}\n />\n </Section.Footer>\n </div>\n </Section.Row>\n <Separator className={styles.separator} />\n <Section.Row>\n <Section.Label>{t('trans-lang')}</Section.Label>\n <DataFetcher\n queryKey={makeWordByWordTranslationsUrl(lang)}\n render={(data: WordByWordTranslationsResponse) => {\n const uniqueData = uniqBy(data.wordByWordTranslations, 'isoCode');\n\n const options = uniqueData.map(({ isoCode }) => ({\n label: getLocaleName(isoCode),\n value: isoCode,\n }));\n\n return (\n <Select\n size={SelectSize.Small}\n id=\"wordByWord\"\n name=\"wordByWord\"\n options={options}\n value={wordByWordLocale}\n disabled={shouldDisableLanguageSelect}\n onChange={onWordByWordLocaleChange}\n />\n );\n }}\n />\n </Section.Row>\n <Section.Footer>\n <Trans\n components={{\n link: <Link isNewTab href=\"https://quranwbw.com/\" variant={LinkVariant.Blend} />,\n }}\n i18nKey=\"common:wbw-lang-summary\"\n values={{ source: 'quranwbw' }}\n />\n </Section.Footer>\n <div id=\"wbw-display-section\">\n <Section.Label>\n <p className={styles.label}>{t('display')}</p>\n </Section.Label>\n <Section.Row>\n <div className={styles.checkboxContainer}>\n <Checkbox\n checked={wordByWordDisplay.includes(WordByWordDisplay.INLINE)}\n id=\"inline\"\n name=\"inline\"\n label={t('inline')}\n disabled={shouldDisableWordByWordDisplay}\n onChange={(isChecked) => onDisplaySettingChange(true, isChecked)}\n />\n <Checkbox\n checked={wordByWordDisplay.includes(WordByWordDisplay.TOOLTIP)}\n id=\"tooltip\"\n name=\"word-tooltip\"\n label={t('tooltip')}\n disabled={shouldDisableWordByWordDisplay}\n onChange={(isChecked) => onDisplaySettingChange(false, isChecked)}\n />\n </div>\n </Section.Row>\n </div>\n <Section.Row>\n <Section.Label>{t('fonts.font-size')}</Section.Label>\n <Counter\n count={wordByWordFontScale}\n onIncrement={\n MAXIMUM_WORD_BY_WORD_FONT_STEP === wordByWordFontScale\n ? null\n : onFontScaleIncreaseClicked\n }\n onDecrement={\n MINIMUM_FONT_STEP === wordByWordFontScale ? null : onFontScaleDecreaseClicked\n }\n />\n </Section.Row>\n </Section>\n );\n};\n\nexport default WordByWordSection;\n","import React, { useEffect } from 'react';\n\nimport QuranFontSection from './QuranFontSection';\nimport ResetButton from './ResetButton';\nimport ThemeSection from './ThemeSection';\nimport TranslationSection from './TranslationSection';\nimport WordByWordSection from './WordByWordSection';\n\nimport { useOnboarding } from '@/components/Onboarding/OnboardingProvider';\n\nconst SettingsBody = () => {\n const { isActive, nextStep, activeStepIndex } = useOnboarding();\n\n useEffect(() => {\n let timeout: NodeJS.Timeout = null;\n\n // wait for transition to finish (.4s)\n if (isActive && activeStepIndex === 0) timeout = setTimeout(() => nextStep(), 400);\n\n return () => {\n if (timeout !== null) clearTimeout(timeout);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeStepIndex, isActive]);\n\n return (\n <>\n <ThemeSection />\n <QuranFontSection />\n <WordByWordSection />\n <TranslationSection />\n <ResetButton />\n </>\n );\n};\n\nexport default SettingsBody;\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 SvgDividerHorizontal = function SvgDividerHorizontal(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 20 20\",\n height: 16,\n width: 16,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"var(--color-secondary-medium)\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M5 10h10\"\n })));\n};\nexport default SvgDividerHorizontal;","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 SvgTick = function SvgTick(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 20 20\",\n height: 20,\n width: 20,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m14 7-5.5 5.5L6 10\",\n stroke: \"var(--color-background-default)\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n};\nexport default SvgTick;","import React from 'react';\n\nimport * as RadixCheckbox from '@radix-ui/react-checkbox';\nimport classNames from 'classnames';\n\nimport styles from './Checkbox.module.scss';\n\nimport DividerHorizontalIcon from '@/icons/divider-horizontal.svg';\nimport TickIcon from '@/icons/tick.svg';\n\nconst INDETERMINATE = 'indeterminate';\n\ninterface Props {\n id: string;\n onChange: (checked: boolean) => void;\n checked?: boolean | typeof INDETERMINATE;\n disabled?: boolean;\n required?: boolean;\n label?: string | JSX.Element;\n name?: string;\n defaultChecked?: boolean;\n}\n\nconst Checkbox: React.FC<Props> = ({\n disabled = false,\n required = false,\n defaultChecked,\n checked,\n id,\n label,\n name,\n onChange,\n}) => {\n /**\n * Handle when the value of the checkbox input changes.\n *\n * @param {boolean} newChecked\n * @returns {void}\n */\n const handleChange = (newChecked: boolean): void => {\n onChange(newChecked);\n };\n\n return (\n <div className={classNames(styles.container, { [styles.disabled]: disabled })}>\n <RadixCheckbox.Root\n disabled={disabled}\n name={name}\n required={required}\n onCheckedChange={handleChange}\n id={id}\n className={styles.checkbox}\n defaultChecked={defaultChecked}\n {...(checked !== undefined && { checked })} // make it controlled only when checked is passed.\n >\n <RadixCheckbox.Indicator\n className={classNames(styles.indicator, { [styles.disabledIndicator]: disabled })}\n >\n {checked === INDETERMINATE ? <DividerHorizontalIcon /> : <TickIcon />}\n </RadixCheckbox.Indicator>\n </RadixCheckbox.Root>\n {label && (\n <label className={styles.label} htmlFor={id}>\n {label}\n </label>\n )}\n </div>\n );\n};\n\nexport default Checkbox;\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport styles from './SelectionCard.module.scss';\n\nimport ChevronRightIcon from '@/icons/chevron-right.svg';\n\ntype SelectionCard = {\n label?: string;\n value?: string;\n onClick?: () => void;\n};\n\nconst SelectionCard = ({ label, value, onClick }: SelectionCard) => {\n return (\n <div className={styles.container} onClick={onClick}>\n <div className={styles.labelContainer}>\n <div className={styles.label}>{label}</div>\n <div className={styles.value}>{value}</div>\n </div>\n <div className={styles.iconContainer}>\n <ChevronRightIcon />\n </div>\n </div>\n );\n};\n\nexport default SelectionCard;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"versePreviewContainer\":\"QuranFontSection_versePreviewContainer__ZeHic\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"resetButtonContainer\":\"ResetButton_resetButtonContainer__6Rj9J\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"TranslationSection_container__UWdQ0\",\"changeReciterButtonContainer\":\"TranslationSection_changeReciterButtonContainer__ITJQ6\",\"skeleton\":\"TranslationSection_skeleton__kxGgM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"skeletonPlaceholder\":\"VersePreview_skeletonPlaceholder__HGF0n\",\"skeletonContainer\":\"VersePreview_skeletonContainer__CNF9R\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"checkboxContainer\":\"WordByWordSection_checkboxContainer__Op0oH\",\"separator\":\"WordByWordSection_separator__hXV_B\",\"source\":\"WordByWordSection_source__sabJE\",\"label\":\"WordByWordSection_label__a606F\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Checkbox_container__LWbsV\",\"checkbox\":\"Checkbox_checkbox__bbyfA\",\"label\":\"Checkbox_label__MrEvp\",\"disabled\":\"Checkbox_disabled__3XIf_\",\"indicator\":\"Checkbox_indicator__6umIV\",\"disabledIndicator\":\"Checkbox_disabledIndicator__Dmw2E\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SelectionCard_container__3fUza\",\"label\":\"SelectionCard_label__GXY5O\",\"value\":\"SelectionCard_value__VrbTY\",\"iconContainer\":\"SelectionCard_iconContainer__FjKYo\"};","import $1bpvS$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $1bpvS$forwardRef, useState as $1bpvS$useState, useRef as $1bpvS$useRef, useEffect as $1bpvS$useEffect, createElement as $1bpvS$createElement} from \"react\";\nimport {useComposedRefs as $1bpvS$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {createContextScope as $1bpvS$createContextScope} from \"@radix-ui/react-context\";\nimport {composeEventHandlers as $1bpvS$composeEventHandlers} from \"@radix-ui/primitive\";\nimport {useControllableState as $1bpvS$useControllableState} from \"@radix-ui/react-use-controllable-state\";\nimport {usePrevious as $1bpvS$usePrevious} from \"@radix-ui/react-use-previous\";\nimport {useSize as $1bpvS$useSize} from \"@radix-ui/react-use-size\";\nimport {Presence as $1bpvS$Presence} from \"@radix-ui/react-presence\";\nimport {Primitive as $1bpvS$Primitive} from \"@radix-ui/react-primitive\";\n\n\n\n\n\n\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Checkbox\n * -----------------------------------------------------------------------------------------------*/ const $e698a72e93240346$var$CHECKBOX_NAME = 'Checkbox';\nconst [$e698a72e93240346$var$createCheckboxContext, $e698a72e93240346$export$b566c4ff5488ea01] = $1bpvS$createContextScope($e698a72e93240346$var$CHECKBOX_NAME);\nconst [$e698a72e93240346$var$CheckboxProvider, $e698a72e93240346$var$useCheckboxContext] = $e698a72e93240346$var$createCheckboxContext($e698a72e93240346$var$CHECKBOX_NAME);\nconst $e698a72e93240346$export$48513f6b9f8ce62d = /*#__PURE__*/ $1bpvS$forwardRef((props, forwardedRef)=>{\n const { __scopeCheckbox: __scopeCheckbox , name: name , checked: checkedProp , defaultChecked: defaultChecked , required: required , disabled: disabled , value: value = 'on' , onCheckedChange: onCheckedChange , ...checkboxProps } = props;\n const [button, setButton] = $1bpvS$useState(null);\n const composedRefs = $1bpvS$useComposedRefs(forwardedRef, (node)=>setButton(node)\n );\n const hasConsumerStoppedPropagationRef = $1bpvS$useRef(false); // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = button ? Boolean(button.closest('form')) : true;\n const [checked = false, setChecked] = $1bpvS$useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = $1bpvS$useRef(checked);\n $1bpvS$useEffect(()=>{\n const form = button === null || button === void 0 ? void 0 : button.form;\n if (form) {\n const reset = ()=>setChecked(initialCheckedStateRef.current)\n ;\n form.addEventListener('reset', reset);\n return ()=>form.removeEventListener('reset', reset)\n ;\n }\n }, [\n button,\n setChecked\n ]);\n return /*#__PURE__*/ $1bpvS$createElement($e698a72e93240346$var$CheckboxProvider, {\n scope: __scopeCheckbox,\n state: checked,\n disabled: disabled\n }, /*#__PURE__*/ $1bpvS$createElement($1bpvS$Primitive.button, $1bpvS$babelruntimehelpersesmextends({\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": $e698a72e93240346$var$isIndeterminate(checked) ? 'mixed' : checked,\n \"aria-required\": required,\n \"data-state\": $e698a72e93240346$var$getState(checked),\n \"data-disabled\": disabled ? '' : undefined,\n disabled: disabled,\n value: value\n }, checkboxProps, {\n ref: composedRefs,\n onKeyDown: $1bpvS$composeEventHandlers(props.onKeyDown, (event)=>{\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n if (event.key === 'Enter') event.preventDefault();\n }),\n onClick: $1bpvS$composeEventHandlers(props.onClick, (event)=>{\n setChecked((prevChecked)=>$e698a72e93240346$var$isIndeterminate(prevChecked) ? true : !prevChecked\n );\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(); // if checkbox is in a form, stop propagation from the button so that we only propagate\n // one click event (from the input). We propagate changes from an input so that native\n // form validation works and form events reflect checkbox updates.\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n })), isFormControl && /*#__PURE__*/ $1bpvS$createElement($e698a72e93240346$var$BubbleInput, {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name: name,\n value: value,\n checked: checked,\n required: required,\n disabled: disabled // We transform because the input is absolutely positioned but we have\n ,\n style: {\n transform: 'translateX(-100%)'\n }\n }));\n});\n/*#__PURE__*/ Object.assign($e698a72e93240346$export$48513f6b9f8ce62d, {\n displayName: $e698a72e93240346$var$CHECKBOX_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * CheckboxIndicator\n * -----------------------------------------------------------------------------------------------*/ const $e698a72e93240346$var$INDICATOR_NAME = 'CheckboxIndicator';\nconst $e698a72e93240346$export$59aad738f51d1c05 = /*#__PURE__*/ $1bpvS$forwardRef((props, forwardedRef)=>{\n const { __scopeCheckbox: __scopeCheckbox , forceMount: forceMount , ...indicatorProps } = props;\n const context = $e698a72e93240346$var$useCheckboxContext($e698a72e93240346$var$INDICATOR_NAME, __scopeCheckbox);\n return /*#__PURE__*/ $1bpvS$createElement($1bpvS$Presence, {\n present: forceMount || $e698a72e93240346$var$isIndeterminate(context.state) || context.state === true\n }, /*#__PURE__*/ $1bpvS$createElement($1bpvS$Primitive.span, $1bpvS$babelruntimehelpersesmextends({\n \"data-state\": $e698a72e93240346$var$getState(context.state),\n \"data-disabled\": context.disabled ? '' : undefined\n }, indicatorProps, {\n ref: forwardedRef,\n style: {\n pointerEvents: 'none',\n ...props.style\n }\n })));\n});\n/*#__PURE__*/ Object.assign($e698a72e93240346$export$59aad738f51d1c05, {\n displayName: $e698a72e93240346$var$INDICATOR_NAME\n});\n/* ---------------------------------------------------------------------------------------------- */ const $e698a72e93240346$var$BubbleInput = (props)=>{\n const { control: control , checked: checked , bubbles: bubbles = true , ...inputProps } = props;\n const ref = $1bpvS$useRef(null);\n const prevChecked = $1bpvS$usePrevious(checked);\n const controlSize = $1bpvS$useSize(control); // Bubble checked change to parents (e.g form change event)\n $1bpvS$useEffect(()=>{\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'checked');\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event('click', {\n bubbles: bubbles\n });\n input.indeterminate = $e698a72e93240346$var$isIndeterminate(checked);\n setChecked.call(input, $e698a72e93240346$var$isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [\n prevChecked,\n checked,\n bubbles\n ]);\n return /*#__PURE__*/ $1bpvS$createElement(\"input\", $1bpvS$babelruntimehelpersesmextends({\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: $e698a72e93240346$var$isIndeterminate(checked) ? false : checked\n }, inputProps, {\n tabIndex: -1,\n ref: ref,\n style: {\n ...props.style,\n ...controlSize,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: 0,\n margin: 0\n }\n }));\n};\nfunction $e698a72e93240346$var$isIndeterminate(checked) {\n return checked === 'indeterminate';\n}\nfunction $e698a72e93240346$var$getState(checked) {\n return $e698a72e93240346$var$isIndeterminate(checked) ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n}\nconst $e698a72e93240346$export$be92b6f5f03c0fe9 = $e698a72e93240346$export$48513f6b9f8ce62d;\nconst $e698a72e93240346$export$adb584737d712b70 = $e698a72e93240346$export$59aad738f51d1c05;\n\n\n\n\nexport {$e698a72e93240346$export$b566c4ff5488ea01 as createCheckboxScope, $e698a72e93240346$export$48513f6b9f8ce62d as Checkbox, $e698a72e93240346$export$59aad738f51d1c05 as CheckboxIndicator, $e698a72e93240346$export$be92b6f5f03c0fe9 as Root, $e698a72e93240346$export$adb584737d712b70 as Indicator};\n//# sourceMappingURL=index.mjs.map\n","import {useRef as $8LvvK$useRef, useMemo as $8LvvK$useMemo} from \"react\";\n\n\nfunction $010c2913dbd2fe3d$export$5cae361ad82dce8b(value) {\n const ref = $8LvvK$useRef({\n value: value,\n previous: value\n }); // We compare values before making an update to ensure that\n // a change has been made. This ensures the previous value is\n // persisted correctly between renders.\n return $8LvvK$useMemo(()=>{\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [\n value\n ]);\n}\n\n\n\n\nexport {$010c2913dbd2fe3d$export$5cae361ad82dce8b as usePrevious};\n//# sourceMappingURL=index.mjs.map\n"],"names":["baseIteratee","baseUniq","module","exports","array","iteratee","length","tagRe","nlRe","getElements","parts","_a","slice","paired","children","unpaired","concat","formatElements","value","elements","replace","split","tree","before","shift","push","forEach","realIndex","key","after","element","Fragment","cloneElement","props","Trans","i18nKey","values","components","fallback","defaultTrans","ns","_b","useTranslation","t","lang","useMemo","text","default","quranFont","isTajweed","QuranFont","Section","visible","isQCFFont","Link","href","prefetch","getSampleVerse","then","data","verse","quranReaderStyles","useSelector","selectQuranReaderStyles","shallowEqual","useSWR","dispatch","useDispatch","useEffect","sampleVerse","isV1","fontFaceName","getFontFaceNameForPage","pageNumber","fontFace","FontFace","getV1OrV2FontFaceSource","document","fonts","add","load","addLoadedFontFace","words","map","word","textImage","div","dir","PlainVerseText","className","styles","Skeleton","usePersistPreferenceGroup","actions","onSettingsChange","isLoading","quranTextFontScale","mushafLines","id","label","name","getSelectedType","font","locale","selectedViewEntry","Object","entries","find","some","v","getQuranReaderStylesInitialState","selectedType","lines","MushafLines","line","types","onFontSettingsChange","action","undoAction","PreferenceGroup","resetLoadedFontFaces","Switch","items","selected","onSelect","logValueChange","fontValue","getDefaultFont","setQuranFont","Select","options","onChange","setMushafLines","Counter","count","onDecrement","MINIMUM_FONT_STEP","decreaseQuranTextFontScale","increaseQuranTextFontScale","onIncrement","MAXIMUM_QURAN_FONT_STEP","QuranFontSectionFooter","VersePreview","router","useRouter","toast","useToast","audioService","useContext","AudioPlayerMachineContext","onResetSettingsClicked","resetAndSetInitialState","queryParams","logButtonClick","resetSettings","send","type","DEFAULT_XSTATE_INITIAL_STATE","isLoggedIn","persistDefaultSettings","unwrapResult","QueryParam","param","query","undefined","shallow","status","ToastStatus","Button","onClick","selectedTranslations","selectSelectedTranslations","areArraysEqual","translationFontScale","useOnboarding","isActive","nextStep","translationLoading","useCallback","localizedSelectedTranslations","toLocalizedNumber","onSelectionCardClicked","setSettingsView","SettingsView","renderTranslations","firstSelectedTranslation","translations","translation","selectedValueString","othersCount","SelectionCard","onTranslationSettingsChange","DataFetcher","loading","queryKey","makeTranslationsUrl","render","MAXIMUM_TRANSLATIONS_FONT_STEP","newValue","increaseTranslationFontScale","decreaseTranslationFontScale","readingPreferences","selectReadingPreferences","selectedWordByWordLocale","wordByWordDisplay","wordByWordContentType","wordClickFunctionality","wordByWordFontScale","selectWordByWordFontScale","onWordByWordSettingsChange","isReaderStyles","onWordByWordLocaleChange","wordByWordLocale","setSelectedWordByWordLocale","onDisplaySettingChange","isInlineCheckbox","isChecked","WordByWordDisplay","nextWordByWordDisplay","removeItemFromArray","setWordByWordDisplay","onContentTypeChange","isTranslationCheckbox","WordByWordType","nextWordByWordContentType","setWordByWordContentType","shouldDisableWordByWordDisplay","shouldDisableLanguageSelect","includes","Checkbox","checked","WordClickFunctionality","oldValue","setWordClickFunctionality","span","reciterName","Separator","makeWordByWordTranslationsUrl","uniqBy","wordByWordTranslations","isoCode","getLocaleName","size","SelectSize","disabled","link","isNewTab","variant","LinkVariant","source","p","MAXIMUM_WORD_BY_WORD_FONT_STEP","increaseWordByWordFontScale","decreaseWordByWordFontScale","activeStepIndex","timeout","setTimeout","clearTimeout","ThemeSection","QuranFontSection","WordByWordSection","TranslationSection","ResetButton","_path","_extends","assign","bind","n","e","arguments","r","hasOwnProperty","call","apply","viewBox","height","width","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","required","defaultChecked","classNames","RadixCheckbox","onCheckedChange","newChecked","DividerHorizontalIcon","TickIcon","htmlFor","ChevronRightIcon","$e698a72e93240346$var$CHECKBOX_NAME","$e698a72e93240346$var$createCheckboxContext","$e698a72e93240346$export$b566c4ff5488ea01","$e698a72e93240346$var$CheckboxProvider","$e698a72e93240346$var$useCheckboxContext","$e698a72e93240346$export$48513f6b9f8ce62d","forwardedRef","__scopeCheckbox","checkedProp","checkboxProps","button","setButton","composedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","Boolean","closest","setChecked","prop","defaultProp","initialCheckedStateRef","form","reset","current","addEventListener","removeEventListener","scope","state","role","$e698a72e93240346$var$isIndeterminate","$e698a72e93240346$var$getState","ref","onKeyDown","event","preventDefault","prevChecked","isPropagationStopped","stopPropagation","$e698a72e93240346$var$BubbleInput","control","bubbles","style","transform","$e698a72e93240346$var$INDICATOR_NAME","$e698a72e93240346$export$59aad738f51d1c05","forceMount","indicatorProps","context","present","pointerEvents","inputProps","controlSize","input","inputProto","window","HTMLInputElement","prototype","getOwnPropertyDescriptor","set","Event","indeterminate","dispatchEvent","tabIndex","position","opacity","margin","$e698a72e93240346$export$be92b6f5f03c0fe9","$e698a72e93240346$export$adb584737d712b70","$010c2913dbd2fe3d$export$5cae361ad82dce8b","previous"],"sourceRoot":""}
|