21608.js 85 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523
  1. exports.id = 21608;
  2. exports.ids = [21608];
  3. exports.modules = {
  4. /***/ 85970:
  5. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  6. "use strict";
  7. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  8. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  9. /* harmony export */ });
  10. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  11. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  12. var _path;
  13. function _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); }
  14. var SvgCaretDown = function SvgCaretDown(props) {
  15. return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  16. viewBox: "0 0 24 24",
  17. width: 18,
  18. height: 18,
  19. stroke: "currentColor",
  20. strokeWidth: 1.5,
  21. strokeLinecap: "round",
  22. strokeLinejoin: "round",
  23. fill: "none",
  24. shapeRendering: "geometricPrecision",
  25. style: {
  26. color: "currentcolor"
  27. }
  28. }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  29. d: "m6 9 6 6 6-6"
  30. })));
  31. };
  32. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgCaretDown);
  33. /***/ }),
  34. /***/ 49039:
  35. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  36. "use strict";
  37. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  38. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  39. /* harmony export */ });
  40. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  41. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  42. var _path;
  43. function _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); }
  44. var SvgMinus = function SvgMinus(props) {
  45. return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  46. width: 15,
  47. height: 15,
  48. viewBox: "0 0 15 15",
  49. fill: "none",
  50. xmlns: "http://www.w3.org/2000/svg"
  51. }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  52. d: "M2.25 7.5a.5.5 0 0 1 .5-.5h9.5a.5.5 0 0 1 0 1h-9.5a.5.5 0 0 1-.5-.5Z",
  53. fill: "currentColor",
  54. fillRule: "evenodd",
  55. clipRule: "evenodd"
  56. })));
  57. };
  58. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgMinus);
  59. /***/ }),
  60. /***/ 4474:
  61. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  62. "use strict";
  63. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  64. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  65. /* harmony export */ });
  66. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  67. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  68. var _path;
  69. function _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); }
  70. var SvgPlus = function SvgPlus(props) {
  71. return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  72. width: 15,
  73. height: 15,
  74. viewBox: "0 0 15 15",
  75. fill: "none",
  76. xmlns: "http://www.w3.org/2000/svg"
  77. }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  78. d: "M8 2.75a.5.5 0 0 0-1 0V7H2.75a.5.5 0 0 0 0 1H7v4.25a.5.5 0 0 0 1 0V8h4.25a.5.5 0 0 0 0-1H8V2.75Z",
  79. fill: "currentColor",
  80. fillRule: "evenodd",
  81. clipRule: "evenodd"
  82. })));
  83. };
  84. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgPlus);
  85. /***/ }),
  86. /***/ 40574:
  87. /***/ ((module) => {
  88. // Exports
  89. module.exports = {
  90. "container": "TafsirEndOfScrollingActions_container__tcWLj"
  91. };
  92. /***/ }),
  93. /***/ 43576:
  94. /***/ ((module) => {
  95. // Exports
  96. module.exports = {
  97. "tafsirMessage": "TafsirMessage_tafsirMessage__Gr_S9"
  98. };
  99. /***/ }),
  100. /***/ 99719:
  101. /***/ ((module) => {
  102. // Exports
  103. module.exports = {
  104. "counter": "TafsirText_counter__xlNaF",
  105. "xs": "TafsirText_xs__P5Qjv",
  106. "sm": "TafsirText_sm__BbfQ0",
  107. "md": "TafsirText_md__mJWtv",
  108. "lg": "TafsirText_lg__t_oGB",
  109. "xl": "TafsirText_xl__3hmwr"
  110. };
  111. /***/ }),
  112. /***/ 5293:
  113. /***/ ((module) => {
  114. // Exports
  115. module.exports = {
  116. "container": "TafsirView_container__R9G7I",
  117. "tafsirName": "TafsirView_tafsirName__QPOiO",
  118. "tafsirContainer": "TafsirView_tafsirContainer__g2rhW",
  119. "rtl": "TafsirView_rtl__8pRLP",
  120. "surahAndAyahSelectionContainer": "TafsirView_surahAndAyahSelectionContainer__W96nf",
  121. "tafsirSelectionContainer": "TafsirView_tafsirSelectionContainer__QSkE3",
  122. "tafsirSelectionItem": "TafsirView_tafsirSelectionItem__GTJvw",
  123. "tafsirItemSelected": "TafsirView_tafsirItemSelected__SXceL",
  124. "separatorContainer": "TafsirView_separatorContainer__diS8n",
  125. "verseTextContainer": "TafsirView_verseTextContainer__A7tZ_",
  126. "selectionItem": "TafsirView_selectionItem__FJdhi",
  127. "ayahSelection": "TafsirView_ayahSelection__jWULb",
  128. "tafsirSkeletonItem": "TafsirView_tafsirSkeletonItem__q5sNk",
  129. "ayahSekletonItem": "TafsirView_ayahSekletonItem__B_nJN",
  130. "tafsirSkeletonItem1": "TafsirView_tafsirSkeletonItem1__nLGRk",
  131. "tafsirSkeletonItem2": "TafsirView_tafsirSkeletonItem2__aaEJy",
  132. "tafsirSkeletonItem3": "TafsirView_tafsirSkeletonItem3__NqYKV",
  133. "tafsirSelectionSkeleton": "TafsirView_tafsirSelectionSkeleton__3oq7k",
  134. "languageSelection": "TafsirView_languageSelection__8EFqZ",
  135. "tafsir-font-size-1": "TafsirView_tafsir-font-size-1__sLRnq",
  136. "tafsir-font-size-2": "TafsirView_tafsir-font-size-2__JLiR2",
  137. "tafsir-font-size-3": "TafsirView_tafsir-font-size-3__K0LBa",
  138. "tafsir-font-size-4": "TafsirView_tafsir-font-size-4__KrD1k",
  139. "tafsir-font-size-5": "TafsirView_tafsir-font-size-5__ri_Mr",
  140. "tafsir-font-size-6": "TafsirView_tafsir-font-size-6__FvBko",
  141. "tafsir-font-size-7": "TafsirView_tafsir-font-size-7__oS0XU",
  142. "tafsir-font-size-8": "TafsirView_tafsir-font-size-8__1U_43",
  143. "tafsir-font-size-9": "TafsirView_tafsir-font-size-9__6VJC2",
  144. "tafsir-font-size-10": "TafsirView_tafsir-font-size-10__zRYWI"
  145. };
  146. /***/ }),
  147. /***/ 16962:
  148. /***/ ((module) => {
  149. // Exports
  150. module.exports = {
  151. "container": "Counter_container__WfR1A",
  152. "count": "Counter_count__Q6LdA"
  153. };
  154. /***/ }),
  155. /***/ 40458:
  156. /***/ ((module) => {
  157. // Exports
  158. module.exports = {
  159. "container": "Select_container___DCC_",
  160. "withBackground": "Select_withBackground__rpdEL",
  161. "defaultStyledContainer": "Select_defaultStyledContainer__b32Mm",
  162. "smallContainer": "Select_smallContainer__L2Lff",
  163. "mediumContainer": "Select_mediumContainer__MF_Vq",
  164. "largeContainer": "Select_largeContainer___qGs0",
  165. "disabledContainer": "Select_disabledContainer__gi7YD",
  166. "arrow": "Select_arrow__WAbAk",
  167. "disabledArrow": "Select_disabledArrow__V4nEO",
  168. "select": "Select_select__BnH2G",
  169. "defaultStyledSelect": "Select_defaultStyledSelect__LmeKj",
  170. "disabledSelect": "Select_disabledSelect___R3Jd"
  171. };
  172. /***/ }),
  173. /***/ 26628:
  174. /***/ ((module) => {
  175. // Exports
  176. module.exports = {
  177. "base": "Separator_base__2kP0d",
  178. "semiBold": "Separator_semiBold__9Eu4c",
  179. "bold": "Separator_bold__412WT"
  180. };
  181. /***/ }),
  182. /***/ 96318:
  183. /***/ ((module) => {
  184. // Exports
  185. module.exports = {
  186. "baseSize": "Skeleton_baseSize__RsOkc",
  187. "skeleton": "Skeleton_skeleton__u2Uso",
  188. "active": "Skeleton_active__5df2K",
  189. "loading": "Skeleton_loading__iZh50",
  190. "rounded": "Skeleton_rounded__ftYYr",
  191. "content": "Skeleton_content__knKtV"
  192. };
  193. /***/ }),
  194. /***/ 35902:
  195. /***/ ((module) => {
  196. // Exports
  197. module.exports = {
  198. "internalContainer": "SpinnerContainer_internalContainer__kt2ni",
  199. "spinner": "SpinnerContainer_spinner__kzDgO"
  200. };
  201. /***/ }),
  202. /***/ 93662:
  203. /***/ ((module) => {
  204. // Exports
  205. module.exports = {
  206. "tafsirContainer": "tafsirs_tafsirContainer__DIxKj"
  207. };
  208. /***/ }),
  209. /***/ 28137:
  210. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  211. "use strict";
  212. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  213. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  214. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  215. /* harmony export */ });
  216. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  217. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  218. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
  219. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
  220. /* harmony import */ var _TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(5293);
  221. /* harmony import */ var _TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_7__);
  222. /* harmony import */ var _dls_Button_Button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(50497);
  223. /* harmony import */ var _dls_Forms_Select__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58087);
  224. /* harmony import */ var _dls_Skeleton_Skeleton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(77048);
  225. /* harmony import */ var _dls_Spinner_SpinnerContainer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(18470);
  226. /* harmony import */ var _utils_locale__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(24709);
  227. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_dls_Button_Button__WEBPACK_IMPORTED_MODULE_2__]);
  228. _dls_Button_Button__WEBPACK_IMPORTED_MODULE_2__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
  229. const LanguageAndTafsirSelection = ({ selectedTafsirIdOrSlug , onTafsirSelected , selectedLanguage , onSelectLanguage , languageOptions , data , isLoading })=>{
  230. if (!data) {
  231. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Skeleton_Skeleton__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
  232. className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_7___default().tafsirSkeletonItem), (_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_7___default().tafsirSelectionSkeleton))
  233. });
  234. }
  235. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Spinner_SpinnerContainer__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
  236. isLoading: isLoading,
  237. children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  238. className: (_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_7___default().tafsirSelectionContainer),
  239. children: [
  240. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Forms_Select__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
  241. className: (_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_7___default().languageSelection),
  242. size: _dls_Forms_Select__WEBPACK_IMPORTED_MODULE_3__/* .SelectSize.Small */ .h.Small,
  243. id: "lang-selection",
  244. name: "lang-selection",
  245. options: languageOptions.map((lng)=>({
  246. label: (0,_utils_locale__WEBPACK_IMPORTED_MODULE_6__/* .getLocaleNameByFullName */ .Dl)(lng),
  247. value: lng
  248. })),
  249. onChange: onSelectLanguage,
  250. value: selectedLanguage
  251. }),
  252. data.tafsirs.filter((tafsir)=>tafsir.languageName === selectedLanguage || selectedTafsirIdOrSlug === tafsir.slug || Number(selectedTafsirIdOrSlug) === tafsir.id).map((tafsir)=>{
  253. const selected = selectedTafsirIdOrSlug === tafsir.slug || Number(selectedTafsirIdOrSlug) === tafsir.id;
  254. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .ZP, {
  255. onClick: ()=>onTafsirSelected(tafsir.id, tafsir.slug),
  256. size: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_2__/* .ButtonSize.Small */ .qE.Small,
  257. className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_7___default().tafsirSelectionItem), {
  258. [(_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_7___default().tafsirItemSelected)]: selected
  259. }),
  260. children: tafsir.translatedName.name
  261. }, tafsir.id);
  262. })
  263. ]
  264. })
  265. });
  266. };
  267. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LanguageAndTafsirSelection);
  268. __webpack_async_result__();
  269. } catch(e) { __webpack_async_result__(e); } });
  270. /***/ }),
  271. /***/ 62727:
  272. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  273. "use strict";
  274. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  275. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  276. /* harmony export */ });
  277. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  278. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  279. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  280. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  281. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60866);
  282. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__);
  283. /* harmony import */ var _TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(5293);
  284. /* harmony import */ var _TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_7__);
  285. /* harmony import */ var _dls_Forms_Select__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58087);
  286. /* harmony import */ var _utils_locale__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(24709);
  287. /* harmony import */ var _utils_verse__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44519);
  288. /* harmony import */ var src_contexts_DataContext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(70813);
  289. const SurahAndAyahSelection = ({ selectedChapterId , selectedVerseNumber , onChapterIdChange , onVerseNumberChange , })=>{
  290. const { lang } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default()();
  291. const chaptersData = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(src_contexts_DataContext__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z);
  292. const verses = (0,_utils_verse__WEBPACK_IMPORTED_MODULE_5__/* .generateChapterVersesKeys */ .qB)(chaptersData, selectedChapterId);
  293. const surahOptions = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>Object.entries(chaptersData).map(([id, chapter])=>({
  294. label: chapter.transliteratedName,
  295. value: id
  296. })), [
  297. chaptersData
  298. ]);
  299. const ayahOptions = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>verses.map((verseKey)=>{
  300. const verseNumber = (0,_utils_verse__WEBPACK_IMPORTED_MODULE_5__/* .getVerseNumberFromKey */ .tR)(verseKey).toString();
  301. return {
  302. label: (0,_utils_locale__WEBPACK_IMPORTED_MODULE_4__/* .toLocalizedNumber */ .rQ)(Number(verseNumber), lang),
  303. value: verseNumber
  304. };
  305. }), [
  306. lang,
  307. verses
  308. ]);
  309. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  310. className: (_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_7___default().surahAndAyahSelectionContainer),
  311. children: [
  312. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Forms_Select__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
  313. size: _dls_Forms_Select__WEBPACK_IMPORTED_MODULE_3__/* .SelectSize.Small */ .h.Small,
  314. id: "surah-selection",
  315. name: "surah-selection",
  316. options: surahOptions,
  317. onChange: onChapterIdChange,
  318. value: selectedChapterId
  319. }),
  320. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  321. className: (_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_7___default().selectionItem),
  322. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Forms_Select__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
  323. className: (_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_7___default().ayahSelection),
  324. size: _dls_Forms_Select__WEBPACK_IMPORTED_MODULE_3__/* .SelectSize.Small */ .h.Small,
  325. id: "ayah-selection",
  326. name: "ayah-selection",
  327. options: ayahOptions,
  328. onChange: onVerseNumberChange,
  329. value: selectedVerseNumber
  330. })
  331. })
  332. ]
  333. });
  334. };
  335. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SurahAndAyahSelection);
  336. /***/ }),
  337. /***/ 47261:
  338. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  339. "use strict";
  340. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  341. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  342. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  343. /* harmony export */ });
  344. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  345. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  346. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  347. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  348. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
  349. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
  350. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60866);
  351. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__);
  352. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6022);
  353. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
  354. /* harmony import */ var swr_immutable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(79847);
  355. /* harmony import */ var _VerseTextPreview__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(57072);
  356. /* harmony import */ var _LanguageAndTafsirSelection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(28137);
  357. /* harmony import */ var _SurahAndAyahSelection__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(62727);
  358. /* harmony import */ var _TafsirEndOfScrollingActions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(52760);
  359. /* harmony import */ var _TafsirGroupMessage__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(78153);
  360. /* harmony import */ var _TafsirMessage__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(32068);
  361. /* harmony import */ var _TafsirSkeleton__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(1627);
  362. /* harmony import */ var _TafsirText__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(20301);
  363. /* harmony import */ var _TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(5293);
  364. /* harmony import */ var _TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_28__);
  365. /* harmony import */ var _components_DataFetcher__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(12951);
  366. /* harmony import */ var _dls_Separator_Separator__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(94400);
  367. /* harmony import */ var _hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(19583);
  368. /* harmony import */ var _redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(62093);
  369. /* harmony import */ var _redux_slices_QuranReader_tafsirs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(11983);
  370. /* harmony import */ var _utils_apiPaths__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(46127);
  371. /* harmony import */ var _utils_eventLogger__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(55943);
  372. /* harmony import */ var _utils_locale__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(24709);
  373. /* harmony import */ var _utils_navigation__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(57933);
  374. /* harmony import */ var _utils_tafsir__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(17773);
  375. /* harmony import */ var _utils_verse__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(44519);
  376. /* harmony import */ var src_api__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(92684);
  377. /* harmony import */ var src_contexts_DataContext__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(70813);
  378. /* harmony import */ var types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(13591);
  379. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr_immutable__WEBPACK_IMPORTED_MODULE_5__, _LanguageAndTafsirSelection__WEBPACK_IMPORTED_MODULE_7__, _TafsirEndOfScrollingActions__WEBPACK_IMPORTED_MODULE_9__, _TafsirText__WEBPACK_IMPORTED_MODULE_13__, _components_DataFetcher__WEBPACK_IMPORTED_MODULE_14__, _dls_Separator_Separator__WEBPACK_IMPORTED_MODULE_15__, _hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_16__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_20__, _utils_navigation__WEBPACK_IMPORTED_MODULE_22__]);
  380. ([swr_immutable__WEBPACK_IMPORTED_MODULE_5__, _LanguageAndTafsirSelection__WEBPACK_IMPORTED_MODULE_7__, _TafsirEndOfScrollingActions__WEBPACK_IMPORTED_MODULE_9__, _TafsirText__WEBPACK_IMPORTED_MODULE_13__, _components_DataFetcher__WEBPACK_IMPORTED_MODULE_14__, _dls_Separator_Separator__WEBPACK_IMPORTED_MODULE_15__, _hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_16__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_20__, _utils_navigation__WEBPACK_IMPORTED_MODULE_22__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  381. /* eslint-disable react-func/max-lines-per-function */ /* eslint-disable max-lines */ /* eslint-disable i18next/no-literal-string */
  382. const TafsirBody = ({ initialChapterId , initialVerseNumber , initialTafsirIdOrSlug , render , scrollToTop , shouldRender })=>{
  383. const quranReaderStyles = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_17__/* .selectQuranReaderStyles */ .Pt, react_redux__WEBPACK_IMPORTED_MODULE_4__.shallowEqual);
  384. const { lang , t } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default()("common");
  385. const tafsirsState = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_tafsirs__WEBPACK_IMPORTED_MODULE_18__/* .selectTafsirs */ .OW);
  386. const { selectedTafsirs: userPreferredTafsirIds } = tafsirsState;
  387. const chaptersData = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(src_contexts_DataContext__WEBPACK_IMPORTED_MODULE_26__/* ["default"] */ .Z);
  388. const { actions: { onSettingsChange } , isLoading , } = (0,_hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_16__/* ["default"] */ .Z)();
  389. const { 0: selectedChapterId , 1: setSelectedChapterId } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(initialChapterId);
  390. const { 0: selectedVerseNumber , 1: setSelectedVerseNumber } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(initialVerseNumber);
  391. const { 0: selectedLanguage , 1: setSelectedLanguage } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)("");
  392. const selectedVerseKey = (0,_utils_verse__WEBPACK_IMPORTED_MODULE_24__/* .makeVerseKey */ .u)(Number(selectedChapterId), Number(selectedVerseNumber));
  393. const { 0: selectedTafsirIdOrSlug , 1: setSelectedTafsirIdOrSlug } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(initialTafsirIdOrSlug || userPreferredTafsirIds?.[0]);
  394. // if user opened tafsirBody via a url, we will have initialTafsirIdOrSlug
  395. // we need to set this `initialTafsirIdOrSlug` as a selectedTafsirIdOrSlug
  396. // we did not use `useState(initialTafsirIdOrSlug)` because `useRouter`'s query string is undefined on first render
  397. (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{
  398. if (initialTafsirIdOrSlug) {
  399. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_20__/* .logEvent */ .Kz)("tafsir_url_access");
  400. setSelectedTafsirIdOrSlug(initialTafsirIdOrSlug);
  401. }
  402. }, [
  403. initialTafsirIdOrSlug
  404. ]);
  405. const onTafsirSelected = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((id, slug)=>{
  406. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_20__/* .logItemSelectionChange */ .u8)("tafsir", id);
  407. setSelectedTafsirIdOrSlug(slug);
  408. (0,_utils_navigation__WEBPACK_IMPORTED_MODULE_22__/* .fakeNavigate */ ._V)((0,_utils_navigation__WEBPACK_IMPORTED_MODULE_22__/* .getVerseSelectedTafsirNavigationUrl */ .I8)(Number(selectedChapterId), Number(selectedVerseNumber), slug), lang);
  409. onSettingsChange("selectedTafsirs", [
  410. slug
  411. ], (0,_redux_slices_QuranReader_tafsirs__WEBPACK_IMPORTED_MODULE_18__/* .setSelectedTafsirs */ .ZY)({
  412. tafsirs: [
  413. slug
  414. ],
  415. locale: lang
  416. }), (0,_redux_slices_QuranReader_tafsirs__WEBPACK_IMPORTED_MODULE_18__/* .setSelectedTafsirs */ .ZY)({
  417. tafsirs: tafsirsState.selectedTafsirs,
  418. locale: lang
  419. }), types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_27__/* ["default"].TAFSIRS */ .Z.TAFSIRS);
  420. }, [
  421. lang,
  422. onSettingsChange,
  423. selectedChapterId,
  424. selectedVerseNumber,
  425. tafsirsState
  426. ]);
  427. const { data: tafsirSelectionList } = (0,swr_immutable__WEBPACK_IMPORTED_MODULE_5__["default"])(shouldRender ? (0,_utils_apiPaths__WEBPACK_IMPORTED_MODULE_19__/* .makeTafsirsUrl */ .A9)(lang) : null, src_api__WEBPACK_IMPORTED_MODULE_25__/* .fetcher */ ._i);
  428. // selectedLanguage is based on selectedTafsir's language
  429. // but we need to fetch the data from the API first to know what is the language of `selectedTafsirIdOrSlug`
  430. // so we get the data from the API and set the selectedLanguage once it is loaded
  431. (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{
  432. if (tafsirSelectionList) {
  433. setSelectedLanguage((prevSelectedLanguage)=>{
  434. // if we haven't set the language already, we need to detect which language the current tafsir is in.
  435. return prevSelectedLanguage || (0,_utils_tafsir__WEBPACK_IMPORTED_MODULE_23__/* .getSelectedTafsirLanguage */ .BF)(tafsirSelectionList, selectedTafsirIdOrSlug);
  436. });
  437. }
  438. }, [
  439. onTafsirSelected,
  440. selectedTafsirIdOrSlug,
  441. tafsirSelectionList
  442. ]);
  443. // there's no 1:1 data that can map our locale options to the tafsir language options
  444. // so we're using options that's available from tafsir for now
  445. // TODO: update language options, to use the same options as our LanguageSelector
  446. const languageOptions = tafsirSelectionList ? (0,_utils_tafsir__WEBPACK_IMPORTED_MODULE_23__/* .getTafsirsLanguageOptions */ .O3)(tafsirSelectionList.tafsirs) : [];
  447. /**
  448. * Handle when the language of the Tafsir is changed. When it does,
  449. * we auto-select the first Tafsir of the new language based on the
  450. * response from BE.
  451. *
  452. * @param {string} newLang
  453. */ const onLanguageSelected = (newLang)=>{
  454. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_20__/* .logValueChange */ .Q8)("tafsir_locale", selectedLanguage, newLang);
  455. setSelectedLanguage(newLang);
  456. if (tafsirSelectionList) {
  457. const firstTafsirOfLanguage = (0,_utils_tafsir__WEBPACK_IMPORTED_MODULE_23__/* .getFirstTafsirOfLanguage */ .K8)(tafsirSelectionList, newLang);
  458. if (firstTafsirOfLanguage) {
  459. const { id , slug } = firstTafsirOfLanguage;
  460. onTafsirSelected(id, slug);
  461. }
  462. }
  463. };
  464. const renderTafsir = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((data)=>{
  465. if (!data || !data.tafsir) return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_TafsirSkeleton__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z, {});
  466. const { verses , text , languageId } = data.tafsir;
  467. const langData = (0,_utils_locale__WEBPACK_IMPORTED_MODULE_21__/* .getLanguageDataById */ .j2)(languageId);
  468. const [firstVerseKey, lastVerseKey] = (0,_utils_verse__WEBPACK_IMPORTED_MODULE_24__/* .getFirstAndLastVerseKeys */ .cI)(verses);
  469. const [chapterNumber, verseNumber] = (0,_utils_verse__WEBPACK_IMPORTED_MODULE_24__/* .getVerseAndChapterNumbersFromKey */ .bV)(lastVerseKey);
  470. const hasNextVerseGroup = !(0,_utils_verse__WEBPACK_IMPORTED_MODULE_24__/* .isLastVerseOfSurah */ .kC)(chaptersData, chapterNumber, Number(verseNumber));
  471. const hasPrevVerseGroup = (0,_utils_verse__WEBPACK_IMPORTED_MODULE_24__/* .getVerseNumberFromKey */ .tR)(firstVerseKey) !== 1;
  472. const loadNextVerseGroup = ()=>{
  473. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_20__/* .logButtonClick */ .MY)("tafsir_next_verse");
  474. scrollToTop();
  475. const newVerseNumber = String(Number((0,_utils_verse__WEBPACK_IMPORTED_MODULE_24__/* .getVerseNumberFromKey */ .tR)(lastVerseKey)) + 1);
  476. (0,_utils_navigation__WEBPACK_IMPORTED_MODULE_22__/* .fakeNavigate */ ._V)((0,_utils_navigation__WEBPACK_IMPORTED_MODULE_22__/* .getVerseSelectedTafsirNavigationUrl */ .I8)(Number(selectedChapterId), Number(newVerseNumber), selectedTafsirIdOrSlug), lang);
  477. setSelectedVerseNumber(newVerseNumber);
  478. };
  479. const loadPrevVerseGroup = ()=>{
  480. const newVerseNumber = String(Number((0,_utils_verse__WEBPACK_IMPORTED_MODULE_24__/* .getVerseNumberFromKey */ .tR)(firstVerseKey)) - 1);
  481. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_20__/* .logButtonClick */ .MY)("tafsir_prev_verse");
  482. scrollToTop();
  483. (0,_utils_navigation__WEBPACK_IMPORTED_MODULE_22__/* .fakeNavigate */ ._V)((0,_utils_navigation__WEBPACK_IMPORTED_MODULE_22__/* .getVerseSelectedTafsirNavigationUrl */ .I8)(Number(selectedChapterId), Number(newVerseNumber), selectedTafsirIdOrSlug), lang);
  484. setSelectedVerseNumber(newVerseNumber);
  485. };
  486. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  487. children: [
  488. !text && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_TafsirMessage__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {
  489. children: t("tafsir.no-text", {
  490. tafsirName: data.tafsir.translatedName.name
  491. })
  492. }),
  493. Object.values(verses).length > 1 && !!text && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_TafsirGroupMessage__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
  494. from: firstVerseKey,
  495. to: lastVerseKey
  496. }),
  497. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  498. className: (_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_28___default().verseTextContainer),
  499. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_VerseTextPreview__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
  500. verses: Object.values(verses)
  501. })
  502. }),
  503. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  504. className: (_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_28___default().separatorContainer),
  505. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Separator_Separator__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .Z, {})
  506. }),
  507. !!text && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_TafsirText__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, {
  508. direction: langData.direction,
  509. languageCode: langData.code,
  510. text: text
  511. }),
  512. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_TafsirEndOfScrollingActions__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {
  513. hasNextVerseGroup: hasNextVerseGroup,
  514. hasPrevVerseGroup: hasPrevVerseGroup,
  515. onNextButtonClicked: loadNextVerseGroup,
  516. onPreviousButtonClicked: loadPrevVerseGroup
  517. })
  518. ]
  519. });
  520. }, [
  521. chaptersData,
  522. lang,
  523. scrollToTop,
  524. selectedChapterId,
  525. selectedTafsirIdOrSlug,
  526. t
  527. ]);
  528. const onChapterIdChange = (newChapterId)=>{
  529. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_20__/* .logItemSelectionChange */ .u8)("tafsir_chapter_id", newChapterId);
  530. (0,_utils_navigation__WEBPACK_IMPORTED_MODULE_22__/* .fakeNavigate */ ._V)((0,_utils_navigation__WEBPACK_IMPORTED_MODULE_22__/* .getVerseSelectedTafsirNavigationUrl */ .I8)(Number(newChapterId), Number(1), selectedTafsirIdOrSlug), lang);
  531. setSelectedChapterId(newChapterId.toString());
  532. setSelectedVerseNumber("1"); // reset verse number to 1 every time chapter changes
  533. };
  534. const onVerseNumberChange = (newVerseNumber)=>{
  535. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_20__/* .logItemSelectionChange */ .u8)("tafsir_verse_number", newVerseNumber);
  536. setSelectedVerseNumber(newVerseNumber);
  537. (0,_utils_navigation__WEBPACK_IMPORTED_MODULE_22__/* .fakeNavigate */ ._V)((0,_utils_navigation__WEBPACK_IMPORTED_MODULE_22__/* .getVerseSelectedTafsirNavigationUrl */ .I8)(Number(selectedChapterId), Number(newVerseNumber), selectedTafsirIdOrSlug), lang);
  538. };
  539. const surahAndAyahSelection = /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_SurahAndAyahSelection__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
  540. selectedChapterId: selectedChapterId,
  541. selectedVerseNumber: selectedVerseNumber,
  542. onChapterIdChange: onChapterIdChange,
  543. onVerseNumberChange: onVerseNumberChange
  544. });
  545. const languageAndTafsirSelection = /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_LanguageAndTafsirSelection__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
  546. selectedTafsirIdOrSlug: selectedTafsirIdOrSlug,
  547. selectedLanguage: selectedLanguage,
  548. onTafsirSelected: onTafsirSelected,
  549. onSelectLanguage: onLanguageSelected,
  550. languageOptions: languageOptions,
  551. data: tafsirSelectionList,
  552. isLoading: isLoading
  553. });
  554. const body = /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  555. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_28___default().tafsirContainer), (_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_28___default())[`tafsir-font-size-${quranReaderStyles.tafsirFontScale}`]),
  556. // disable browser translation for tafsir content
  557. // @see {https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/translate}
  558. translate: "no",
  559. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_DataFetcher__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z, {
  560. loading: _TafsirSkeleton__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z,
  561. queryKey: (0,_utils_apiPaths__WEBPACK_IMPORTED_MODULE_19__/* .makeTafsirContentUrl */ .Wy)(selectedTafsirIdOrSlug, selectedVerseKey, {
  562. lang,
  563. quranFont: quranReaderStyles.quranFont,
  564. mushafLines: quranReaderStyles.mushafLines
  565. }),
  566. render: renderTafsir
  567. })
  568. });
  569. return render({
  570. surahAndAyahSelection,
  571. languageAndTafsirSelection,
  572. body
  573. });
  574. };
  575. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TafsirBody);
  576. __webpack_async_result__();
  577. } catch(e) { __webpack_async_result__(e); } });
  578. /***/ }),
  579. /***/ 52760:
  580. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  581. "use strict";
  582. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  583. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  584. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  585. /* harmony export */ });
  586. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  587. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  588. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60866);
  589. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_1__);
  590. /* harmony import */ var _TafsirEndOfScrollingActions_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(40574);
  591. /* harmony import */ var _TafsirEndOfScrollingActions_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_TafsirEndOfScrollingActions_module_scss__WEBPACK_IMPORTED_MODULE_3__);
  592. /* harmony import */ var _dls_Button_Button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(50497);
  593. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_dls_Button_Button__WEBPACK_IMPORTED_MODULE_2__]);
  594. _dls_Button_Button__WEBPACK_IMPORTED_MODULE_2__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
  595. const TafsirEndOfScrollingActions = ({ hasNextVerseGroup , hasPrevVerseGroup , onNextButtonClicked , onPreviousButtonClicked })=>{
  596. const { t } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_1___default()("common");
  597. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  598. className: (_TafsirEndOfScrollingActions_module_scss__WEBPACK_IMPORTED_MODULE_3___default().container),
  599. children: [
  600. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  601. children: hasPrevVerseGroup && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .ZP, {
  602. type: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_2__/* .ButtonType.Secondary */ .L$.Secondary,
  603. onClick: onPreviousButtonClicked,
  604. children: t("previous-ayah")
  605. })
  606. }),
  607. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  608. children: hasNextVerseGroup && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .ZP, {
  609. type: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_2__/* .ButtonType.Secondary */ .L$.Secondary,
  610. onClick: onNextButtonClicked,
  611. children: t("next-ayah")
  612. })
  613. })
  614. ]
  615. });
  616. };
  617. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TafsirEndOfScrollingActions);
  618. __webpack_async_result__();
  619. } catch(e) { __webpack_async_result__(e); } });
  620. /***/ }),
  621. /***/ 78153:
  622. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  623. "use strict";
  624. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  625. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  626. /* harmony export */ });
  627. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  628. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  629. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60866);
  630. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_1__);
  631. /* harmony import */ var _TafsirMessage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(32068);
  632. const TafsirGroupMessage = ({ from , to })=>{
  633. const { t } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_1___default()("common");
  634. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_TafsirMessage__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
  635. children: t("tafsir.group-message", {
  636. from,
  637. to
  638. })
  639. });
  640. };
  641. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TafsirGroupMessage);
  642. /***/ }),
  643. /***/ 32068:
  644. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  645. "use strict";
  646. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  647. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  648. /* harmony export */ });
  649. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  650. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  651. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  652. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  653. /* harmony import */ var _TafsirMessage_module_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(43576);
  654. /* harmony import */ var _TafsirMessage_module_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_TafsirMessage_module_scss__WEBPACK_IMPORTED_MODULE_2__);
  655. const TafsirMessage = ({ children })=>{
  656. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  657. className: (_TafsirMessage_module_scss__WEBPACK_IMPORTED_MODULE_2___default().tafsirMessage),
  658. children: children
  659. });
  660. };
  661. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TafsirMessage);
  662. /***/ }),
  663. /***/ 1627:
  664. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  665. "use strict";
  666. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  667. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  668. /* harmony export */ });
  669. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  670. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  671. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
  672. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
  673. /* harmony import */ var lodash_range__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(64042);
  674. /* harmony import */ var lodash_range__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_range__WEBPACK_IMPORTED_MODULE_2__);
  675. /* harmony import */ var _TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5293);
  676. /* harmony import */ var _TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_4__);
  677. /* harmony import */ var _dls_Skeleton_Skeleton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(77048);
  678. const TafsirSkeleton = ()=>{
  679. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
  680. children: [
  681. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Skeleton_Skeleton__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
  682. className: ((_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_4___default().tafsirSkeletonItem), (_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_4___default().ayahSekletonItem))
  683. }),
  684. lodash_range__WEBPACK_IMPORTED_MODULE_2___default()(1, 15).map((i)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Skeleton_Skeleton__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
  685. className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_4___default().tafsirSkeletonItem), {
  686. [(_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_4___default().tafsirSkeletonItem1)]: i % 1 === 0,
  687. [(_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_4___default().tafsirSkeletonItem2)]: i % 2 === 0,
  688. [(_TafsirView_module_scss__WEBPACK_IMPORTED_MODULE_4___default().tafsirSkeletonItem3)]: i % 3 === 0
  689. })
  690. }, i))
  691. ]
  692. });
  693. };
  694. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TafsirSkeleton);
  695. /***/ }),
  696. /***/ 20301:
  697. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  698. "use strict";
  699. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  700. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  701. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  702. /* harmony export */ });
  703. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  704. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  705. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  706. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  707. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6022);
  708. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
  709. /* harmony import */ var _TafsirText_module_scss__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(99719);
  710. /* harmony import */ var _TafsirText_module_scss__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_TafsirText_module_scss__WEBPACK_IMPORTED_MODULE_9__);
  711. /* harmony import */ var _dls_Counter_Counter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12550);
  712. /* harmony import */ var _dls_Spinner_SpinnerContainer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18470);
  713. /* harmony import */ var _hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(19583);
  714. /* harmony import */ var _redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(62093);
  715. /* harmony import */ var _utils_eventLogger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(55943);
  716. /* harmony import */ var types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(13591);
  717. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_dls_Counter_Counter__WEBPACK_IMPORTED_MODULE_3__, _hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_5__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_7__]);
  718. ([_dls_Counter_Counter__WEBPACK_IMPORTED_MODULE_3__, _hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_5__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  719. /* eslint-disable react/no-danger */
  720. const FONT_SIZE_CLASS_MAP = {
  721. 1: (_TafsirText_module_scss__WEBPACK_IMPORTED_MODULE_9___default().xs),
  722. 2: (_TafsirText_module_scss__WEBPACK_IMPORTED_MODULE_9___default().sm),
  723. 3: (_TafsirText_module_scss__WEBPACK_IMPORTED_MODULE_9___default().md),
  724. 4: (_TafsirText_module_scss__WEBPACK_IMPORTED_MODULE_9___default().lg),
  725. 5: (_TafsirText_module_scss__WEBPACK_IMPORTED_MODULE_9___default().xl)
  726. };
  727. const TafsirText = ({ direction , languageCode , text })=>{
  728. const quranReaderStyles = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(_redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_6__/* .selectQuranReaderStyles */ .Pt);
  729. const { actions: { onSettingsChange } , isLoading , } = (0,_hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z)();
  730. const { tafsirFontScale } = quranReaderStyles;
  731. /**
  732. * Persist settings in the DB if the user is logged in before dispatching
  733. * Redux action, otherwise just dispatch it.
  734. *
  735. * @param {string} key
  736. * @param {number} value
  737. * @param {Action} action
  738. */ const onTafsirsSettingsChange = (key, value, action, undoAction)=>{
  739. onSettingsChange(key, value, action, undoAction, types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_8__/* ["default"].QURAN_READER_STYLES */ .Z.QURAN_READER_STYLES);
  740. };
  741. const onFontScaleDecreaseClicked = ()=>{
  742. const newValue = tafsirFontScale - 1;
  743. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_7__/* .logValueChange */ .Q8)("tafsir_font_scale", tafsirFontScale, newValue);
  744. onTafsirsSettingsChange("tafsirFontScale", newValue, (0,_redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_6__/* .decreaseTafsirFontScale */ .fT)(), (0,_redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_6__/* .increaseTafsirFontScale */ .$U)());
  745. };
  746. const onFontScaleIncreaseClicked = ()=>{
  747. const newValue = tafsirFontScale + 1;
  748. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_7__/* .logValueChange */ .Q8)("tafsir_font_scale", tafsirFontScale, newValue);
  749. onTafsirsSettingsChange("tafsirFontScale", newValue, (0,_redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_6__/* .increaseTafsirFontScale */ .$U)(), (0,_redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_6__/* .decreaseTafsirFontScale */ .fT)());
  750. };
  751. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
  752. children: [
  753. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  754. dir: direction,
  755. className: (_TafsirText_module_scss__WEBPACK_IMPORTED_MODULE_9___default().counter),
  756. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Spinner_SpinnerContainer__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
  757. isLoading: isLoading,
  758. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Counter_Counter__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
  759. count: tafsirFontScale,
  760. onDecrement: tafsirFontScale === _redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_6__/* .MINIMUM_FONT_STEP */ .P0 ? null : onFontScaleDecreaseClicked,
  761. onIncrement: tafsirFontScale === _redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_6__/* .MAXIMUM_TAFSIR_FONT_STEP */ .Jf ? null : onFontScaleIncreaseClicked
  762. })
  763. })
  764. }),
  765. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  766. className: FONT_SIZE_CLASS_MAP[tafsirFontScale],
  767. dir: direction,
  768. lang: languageCode,
  769. dangerouslySetInnerHTML: {
  770. __html: text
  771. }
  772. })
  773. ]
  774. });
  775. };
  776. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TafsirText);
  777. __webpack_async_result__();
  778. } catch(e) { __webpack_async_result__(e); } });
  779. /***/ }),
  780. /***/ 12550:
  781. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  782. "use strict";
  783. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  784. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  785. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  786. /* harmony export */ });
  787. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  788. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  789. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  790. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  791. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60866);
  792. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__);
  793. /* harmony import */ var _Counter_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(16962);
  794. /* harmony import */ var _Counter_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Counter_module_scss__WEBPACK_IMPORTED_MODULE_7__);
  795. /* harmony import */ var _dls_Button_Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50497);
  796. /* harmony import */ var _icons_minus_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49039);
  797. /* harmony import */ var _icons_plus_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4474);
  798. /* harmony import */ var _utils_locale__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(24709);
  799. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_dls_Button_Button__WEBPACK_IMPORTED_MODULE_3__]);
  800. _dls_Button_Button__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
  801. /**
  802. *
  803. * @param {CounterProps} props - the props of the this component
  804. * @param {number} props.count - the current count
  805. * @param {() => void} props.onIncrement - the function to call when the increment button is clicked.
  806. * Button is disabled when the value is `undefined` or `null`
  807. * @param {() => void} props.onDecrement - the function to call when the decrement button is clicked.
  808. * Button is disabled when the value is `undefined` or `null`
  809. * @returns {JSX.Element}
  810. */ const Counter = ({ count , onIncrement , onDecrement })=>{
  811. const { t , lang } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default()("common");
  812. const localizedCount = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>(0,_utils_locale__WEBPACK_IMPORTED_MODULE_6__/* .toLocalizedNumber */ .rQ)(Number(count), lang), [
  813. count,
  814. lang
  815. ]);
  816. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  817. className: (_Counter_module_scss__WEBPACK_IMPORTED_MODULE_7___default().container),
  818. children: [
  819. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP, {
  820. tooltip: t("counter.decrease"),
  821. shape: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_3__/* .ButtonShape.Circle */ .jL.Circle,
  822. variant: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_3__/* .ButtonVariant.Ghost */ .Wu.Ghost,
  823. isDisabled: !onDecrement,
  824. onClick: onDecrement,
  825. ariaLabel: t("counter.decrease"),
  826. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_minus_svg__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {})
  827. }),
  828. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  829. className: (_Counter_module_scss__WEBPACK_IMPORTED_MODULE_7___default().count),
  830. children: localizedCount
  831. }),
  832. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP, {
  833. tooltip: t("counter.increase"),
  834. variant: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_3__/* .ButtonVariant.Ghost */ .Wu.Ghost,
  835. shape: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_3__/* .ButtonShape.Circle */ .jL.Circle,
  836. isDisabled: !onIncrement,
  837. onClick: onIncrement,
  838. ariaLabel: t("counter.increase"),
  839. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_plus_svg__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {})
  840. })
  841. ]
  842. });
  843. };
  844. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Counter);
  845. __webpack_async_result__();
  846. } catch(e) { __webpack_async_result__(e); } });
  847. /***/ }),
  848. /***/ 58087:
  849. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  850. "use strict";
  851. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  852. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__),
  853. /* harmony export */ "h": () => (/* binding */ SelectSize)
  854. /* harmony export */ });
  855. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  856. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  857. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  858. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  859. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
  860. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
  861. /* harmony import */ var _Select_module_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(40458);
  862. /* harmony import */ var _Select_module_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_Select_module_scss__WEBPACK_IMPORTED_MODULE_4__);
  863. /* harmony import */ var _icons_caret_down_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(85970);
  864. var SelectSize;
  865. (function(SelectSize) {
  866. SelectSize["Small"] = "small";
  867. SelectSize["Medium"] = "medium";
  868. SelectSize["Large"] = "large";
  869. })(SelectSize || (SelectSize = {}));
  870. const Select = ({ name , id , onChange , options , value , disabled =false , required =false , size =SelectSize.Medium , placeholder ="Select an option" , defaultStyle =true , className , withBackground =true , })=>{
  871. const onSelectChange = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((e)=>{
  872. if (onChange) {
  873. onChange(e.target.value);
  874. }
  875. }, [
  876. onChange
  877. ]);
  878. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  879. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Select_module_scss__WEBPACK_IMPORTED_MODULE_4___default().container), {
  880. [(_Select_module_scss__WEBPACK_IMPORTED_MODULE_4___default().defaultStyledContainer)]: defaultStyle,
  881. [className]: className,
  882. [(_Select_module_scss__WEBPACK_IMPORTED_MODULE_4___default().disabledContainer)]: disabled,
  883. [(_Select_module_scss__WEBPACK_IMPORTED_MODULE_4___default().smallContainer)]: size === SelectSize.Small,
  884. [(_Select_module_scss__WEBPACK_IMPORTED_MODULE_4___default().mediumContainer)]: size === SelectSize.Medium,
  885. [(_Select_module_scss__WEBPACK_IMPORTED_MODULE_4___default().largeContainer)]: size === SelectSize.Large,
  886. [(_Select_module_scss__WEBPACK_IMPORTED_MODULE_4___default().withBackground)]: withBackground
  887. }),
  888. children: [
  889. /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("select", {
  890. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Select_module_scss__WEBPACK_IMPORTED_MODULE_4___default().select), {
  891. [(_Select_module_scss__WEBPACK_IMPORTED_MODULE_4___default().defaultStyledSelect)]: defaultStyle,
  892. [(_Select_module_scss__WEBPACK_IMPORTED_MODULE_4___default().disabledSelect)]: disabled
  893. }),
  894. name: name,
  895. id: id,
  896. onChange: onSelectChange,
  897. disabled: disabled,
  898. required: required,
  899. ...value ? {
  900. value
  901. } : {
  902. defaultValue: ""
  903. },
  904. children: [
  905. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("option", {
  906. value: "",
  907. disabled: true,
  908. hidden: true,
  909. children: placeholder
  910. }),
  911. options.map((option)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("option", {
  912. value: option.value,
  913. disabled: option.disabled || false,
  914. children: option.label
  915. }, option.value))
  916. ]
  917. }),
  918. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  919. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Select_module_scss__WEBPACK_IMPORTED_MODULE_4___default().arrow), {
  920. [(_Select_module_scss__WEBPACK_IMPORTED_MODULE_4___default().disabledArrow)]: disabled
  921. }),
  922. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_caret_down_svg__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {})
  923. })
  924. ]
  925. });
  926. };
  927. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Select);
  928. /***/ }),
  929. /***/ 94400:
  930. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  931. "use strict";
  932. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  933. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  934. /* harmony export */ "B": () => (/* binding */ SeparatorWeight),
  935. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  936. /* harmony export */ });
  937. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  938. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  939. /* harmony import */ var _radix_ui_react_separator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72994);
  940. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
  941. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
  942. /* harmony import */ var _Separator_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26628);
  943. /* harmony import */ var _Separator_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_Separator_module_scss__WEBPACK_IMPORTED_MODULE_3__);
  944. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_radix_ui_react_separator__WEBPACK_IMPORTED_MODULE_1__]);
  945. _radix_ui_react_separator__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
  946. var SeparatorWeight;
  947. (function(SeparatorWeight) {
  948. SeparatorWeight["Bold"] = "bold";
  949. SeparatorWeight["SemiBold"] = "semiBold";
  950. })(SeparatorWeight || (SeparatorWeight = {}));
  951. const Separator = ({ isVertical =false , className , weight =SeparatorWeight.SemiBold })=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_radix_ui_react_separator__WEBPACK_IMPORTED_MODULE_1__.Separator, {
  952. orientation: isVertical ? "vertical" : "horizontal",
  953. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Separator_module_scss__WEBPACK_IMPORTED_MODULE_3___default().base), (_Separator_module_scss__WEBPACK_IMPORTED_MODULE_3___default())[weight], {
  954. [className]: className
  955. })
  956. });
  957. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Separator);
  958. __webpack_async_result__();
  959. } catch(e) { __webpack_async_result__(e); } });
  960. /***/ }),
  961. /***/ 77048:
  962. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  963. "use strict";
  964. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  965. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  966. /* harmony export */ });
  967. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  968. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  969. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
  970. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
  971. /* harmony import */ var _Skeleton_module_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(96318);
  972. /* harmony import */ var _Skeleton_module_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Skeleton_module_scss__WEBPACK_IMPORTED_MODULE_2__);
  973. const Skeleton = ({ children , isRounded , isSquared , isActive =true , className })=>{
  974. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  975. className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Skeleton_module_scss__WEBPACK_IMPORTED_MODULE_2___default().skeleton), {
  976. [(_Skeleton_module_scss__WEBPACK_IMPORTED_MODULE_2___default().baseSize)]: !children && !className,
  977. [(_Skeleton_module_scss__WEBPACK_IMPORTED_MODULE_2___default().active)]: isActive,
  978. [(_Skeleton_module_scss__WEBPACK_IMPORTED_MODULE_2___default().rounded)]: isRounded,
  979. [(_Skeleton_module_scss__WEBPACK_IMPORTED_MODULE_2___default().squared)]: isSquared,
  980. [className]: className
  981. }),
  982. children: children && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  983. className: (_Skeleton_module_scss__WEBPACK_IMPORTED_MODULE_2___default().content),
  984. children: children
  985. })
  986. });
  987. };
  988. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Skeleton);
  989. /***/ }),
  990. /***/ 18470:
  991. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  992. "use strict";
  993. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  994. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  995. /* harmony export */ });
  996. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  997. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  998. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  999. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  1000. /* harmony import */ var _SpinnerContainer_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(35902);
  1001. /* harmony import */ var _SpinnerContainer_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_SpinnerContainer_module_scss__WEBPACK_IMPORTED_MODULE_3__);
  1002. /* harmony import */ var _dls_Spinner_Spinner__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7190);
  1003. const SpinnerContainer = ({ children , isLoading })=>{
  1004. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  1005. className: (_SpinnerContainer_module_scss__WEBPACK_IMPORTED_MODULE_3___default().internalContainer),
  1006. children: [
  1007. children,
  1008. isLoading && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Spinner_Spinner__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
  1009. className: (_SpinnerContainer_module_scss__WEBPACK_IMPORTED_MODULE_3___default().spinner)
  1010. })
  1011. ]
  1012. });
  1013. };
  1014. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SpinnerContainer);
  1015. /***/ }),
  1016. /***/ 70813:
  1017. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  1018. "use strict";
  1019. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  1020. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  1021. /* harmony export */ });
  1022. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  1023. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  1024. const DataContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({});
  1025. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DataContext);
  1026. /***/ }),
  1027. /***/ 19583:
  1028. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  1029. "use strict";
  1030. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  1031. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  1032. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  1033. /* harmony export */ });
  1034. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  1035. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  1036. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60866);
  1037. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_1__);
  1038. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6022);
  1039. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
  1040. /* harmony import */ var _dls_Toast_Toast__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(79717);
  1041. /* harmony import */ var _redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(62093);
  1042. /* harmony import */ var _utils_api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4917);
  1043. /* harmony import */ var _utils_auth_api__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(37883);
  1044. /* harmony import */ var _utils_auth_login__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(22197);
  1045. /* harmony import */ var types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(13591);
  1046. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_dls_Toast_Toast__WEBPACK_IMPORTED_MODULE_3__, _utils_auth_login__WEBPACK_IMPORTED_MODULE_7__]);
  1047. ([_dls_Toast_Toast__WEBPACK_IMPORTED_MODULE_3__, _utils_auth_login__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  1048. /* eslint-disable max-lines */ /* eslint-disable react-func/max-lines-per-function */
  1049. /**
  1050. * A hook that will be used to:
  1051. * 1. If the user is logged in, we persist settings
  1052. * to the DB then dispatch the redux action that
  1053. * would apply the changes locally (and might also persist
  1054. * it locally in the localStorage depending on the slice)
  1055. * 2. If not, just dispatch the action.
  1056. *
  1057. * @returns {PersistPreferences}
  1058. */ const usePersistPreferenceGroup = ()=>{
  1059. const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
  1060. const toast = (0,_dls_Toast_Toast__WEBPACK_IMPORTED_MODULE_3__/* .useToast */ .pm)();
  1061. const { t } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_1___default()("common");
  1062. const { 0: isLoading , 1: setIsLoading } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
  1063. const quranFont = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(_redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_4__/* .selectQuranFont */ .Ho, react_redux__WEBPACK_IMPORTED_MODULE_2__.shallowEqual);
  1064. const mushafLines = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(_redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_4__/* .selectQuranMushafLines */ .z$, react_redux__WEBPACK_IMPORTED_MODULE_2__.shallowEqual);
  1065. // this function is used to get the updated mushafId and pass it to addOrUpdateUserPreference
  1066. // if the preferenceGroup is not QURAN_READER_STYLES, it will return undefined
  1067. const getUpdatedMushafId = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((preferenceGroup, key, value)=>{
  1068. if (preferenceGroup !== types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_8__/* ["default"].QURAN_READER_STYLES */ .Z.QURAN_READER_STYLES) return undefined;
  1069. const font = key === "quranFont" ? value : quranFont;
  1070. const lines = key === "mushafLines" ? value : mushafLines;
  1071. return (0,_utils_api__WEBPACK_IMPORTED_MODULE_5__/* .getMushafId */ .$P)(font, lines).mushaf;
  1072. }, [
  1073. quranFont,
  1074. mushafLines
  1075. ]);
  1076. const actions = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>({
  1077. onSettingsChangeWithoutDispatch: (key, value, preferenceGroup, callback)=>{
  1078. if ((0,_utils_auth_login__WEBPACK_IMPORTED_MODULE_7__/* .isLoggedIn */ .jl)()) {
  1079. setIsLoading(true);
  1080. (0,_utils_auth_api__WEBPACK_IMPORTED_MODULE_6__/* .addOrUpdateUserPreference */ .b9)(key, value, preferenceGroup, getUpdatedMushafId(preferenceGroup, key, value)).then(()=>{
  1081. callback();
  1082. }).finally(()=>{
  1083. setIsLoading(false);
  1084. });
  1085. } else {
  1086. callback();
  1087. }
  1088. },
  1089. onXstateSettingsChange: (key, value, action, undoAction, preferenceGroup, successCallback)=>{
  1090. if ((0,_utils_auth_login__WEBPACK_IMPORTED_MODULE_7__/* .isLoggedIn */ .jl)()) {
  1091. action();
  1092. setIsLoading(true);
  1093. (0,_utils_auth_api__WEBPACK_IMPORTED_MODULE_6__/* .addOrUpdateUserPreference */ .b9)(key, value, preferenceGroup, getUpdatedMushafId(preferenceGroup, key, value)).then(()=>{
  1094. if (successCallback) {
  1095. successCallback();
  1096. }
  1097. }).catch(()=>{
  1098. toast(t("error.pref-persist-fail"), {
  1099. status: _dls_Toast_Toast__WEBPACK_IMPORTED_MODULE_3__/* .ToastStatus.Warning */ .YZ.Warning,
  1100. actions: [
  1101. {
  1102. text: t("undo"),
  1103. primary: true,
  1104. onClick: ()=>{
  1105. undoAction();
  1106. }
  1107. },
  1108. {
  1109. text: t("continue"),
  1110. primary: false,
  1111. onClick: ()=>{
  1112. if (successCallback) {
  1113. successCallback();
  1114. }
  1115. }
  1116. },
  1117. ]
  1118. });
  1119. }).finally(()=>{
  1120. setIsLoading(false);
  1121. });
  1122. } else {
  1123. action();
  1124. }
  1125. },
  1126. onSettingsChange: (key, value, action, undoAction, preferenceGroup, successCallback)=>{
  1127. if ((0,_utils_auth_login__WEBPACK_IMPORTED_MODULE_7__/* .isLoggedIn */ .jl)()) {
  1128. // 1. dispatch the action first
  1129. dispatch(action);
  1130. setIsLoading(true);
  1131. (0,_utils_auth_api__WEBPACK_IMPORTED_MODULE_6__/* .addOrUpdateUserPreference */ .b9)(key, value, preferenceGroup, getUpdatedMushafId(preferenceGroup, key, value)).then(()=>{
  1132. if (successCallback) {
  1133. successCallback();
  1134. }
  1135. }).catch(()=>{
  1136. toast(t("error.pref-persist-fail"), {
  1137. status: _dls_Toast_Toast__WEBPACK_IMPORTED_MODULE_3__/* .ToastStatus.Warning */ .YZ.Warning,
  1138. actions: [
  1139. {
  1140. text: t("undo"),
  1141. primary: true,
  1142. onClick: ()=>{
  1143. dispatch(undoAction);
  1144. }
  1145. },
  1146. {
  1147. text: t("continue"),
  1148. primary: false,
  1149. onClick: ()=>{
  1150. if (successCallback) {
  1151. successCallback();
  1152. }
  1153. }
  1154. },
  1155. ]
  1156. });
  1157. }).finally(()=>{
  1158. setIsLoading(false);
  1159. });
  1160. } else {
  1161. dispatch(action);
  1162. }
  1163. }
  1164. }), [
  1165. dispatch,
  1166. t,
  1167. toast,
  1168. getUpdatedMushafId
  1169. ]);
  1170. return {
  1171. actions,
  1172. isLoading
  1173. };
  1174. };
  1175. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (usePersistPreferenceGroup);
  1176. __webpack_async_result__();
  1177. } catch(e) { __webpack_async_result__(e); } });
  1178. /***/ }),
  1179. /***/ 11983:
  1180. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  1181. "use strict";
  1182. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  1183. /* harmony export */ "OW": () => (/* binding */ selectTafsirs),
  1184. /* harmony export */ "XG": () => (/* binding */ selectSelectedTafsirs),
  1185. /* harmony export */ "ZP": () => (__WEBPACK_DEFAULT_EXPORT__),
  1186. /* harmony export */ "ZY": () => (/* binding */ setSelectedTafsirs)
  1187. /* harmony export */ });
  1188. /* unused harmony exports tafsirsSlice, selectIsUsingDefaultTafsirs */
  1189. /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75184);
  1190. /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__);
  1191. /* harmony import */ var _redux_actions_reset_settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(78733);
  1192. /* harmony import */ var _redux_actions_sync_user_preferences__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91767);
  1193. /* harmony import */ var _redux_defaultSettings_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17241);
  1194. /* harmony import */ var _redux_types_SliceName__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(61243);
  1195. /* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5639);
  1196. /* harmony import */ var types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13591);
  1197. const tafsirsSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSlice)({
  1198. name: _redux_types_SliceName__WEBPACK_IMPORTED_MODULE_4__/* ["default"].TAFSIRS */ .Z.TAFSIRS,
  1199. initialState: (0,_redux_defaultSettings_util__WEBPACK_IMPORTED_MODULE_3__/* .getTafsirsInitialState */ .Fy)(),
  1200. reducers: {
  1201. setSelectedTafsirs: (state, action)=>({
  1202. ...state,
  1203. // we need to before we compare because there is a corner case when the user changes the default tafsirs then re-selects them which results in the same array as the default one but reversed e.g. instead of [20, 131] it becomes [131, 20].
  1204. isUsingDefaultTafsirs: (0,_utils_array__WEBPACK_IMPORTED_MODULE_6__/* .areArraysEqual */ .Hj)((0,_redux_defaultSettings_util__WEBPACK_IMPORTED_MODULE_3__/* .getTafsirsInitialState */ .Fy)(action.payload.locale).selectedTafsirs, action.payload.tafsirs),
  1205. selectedTafsirs: action.payload.tafsirs
  1206. })
  1207. },
  1208. // reset the tafsirs to initial state
  1209. // when reset action is dispatched
  1210. extraReducers: (builder)=>{
  1211. builder.addCase(_redux_actions_reset_settings__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, (state, action)=>{
  1212. return (0,_redux_defaultSettings_util__WEBPACK_IMPORTED_MODULE_3__/* .getTafsirsInitialState */ .Fy)(action.payload.locale);
  1213. });
  1214. builder.addCase(_redux_actions_sync_user_preferences__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, (state, action)=>{
  1215. const { payload: { userPreferences , locale } , } = action;
  1216. const remotePreferences = userPreferences[types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_5__/* ["default"].TAFSIRS */ .Z.TAFSIRS];
  1217. if (remotePreferences) {
  1218. const { selectedTafsirs: defaultTafsirs } = (0,_redux_defaultSettings_util__WEBPACK_IMPORTED_MODULE_3__/* .getTafsirsInitialState */ .Fy)(locale);
  1219. const { selectedTafsirs: remoteTafsirs } = remotePreferences;
  1220. return {
  1221. ...state,
  1222. ...remotePreferences,
  1223. isUsingDefaultTafsirs: (0,_utils_array__WEBPACK_IMPORTED_MODULE_6__/* .areArraysEqual */ .Hj)(defaultTafsirs, remoteTafsirs)
  1224. };
  1225. }
  1226. return state;
  1227. });
  1228. }
  1229. });
  1230. const { setSelectedTafsirs } = tafsirsSlice.actions;
  1231. const selectTafsirs = (state)=>state.tafsirs;
  1232. const selectSelectedTafsirs = (state)=>state.tafsirs.selectedTafsirs;
  1233. const selectIsUsingDefaultTafsirs = (state)=>state.tafsirs.isUsingDefaultTafsirs;
  1234. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (tafsirsSlice.reducer);
  1235. /***/ }),
  1236. /***/ 45137:
  1237. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  1238. "use strict";
  1239. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  1240. /* harmony export */ "Dp": () => (/* binding */ ONE_WEEK_REVALIDATION_PERIOD_SECONDS),
  1241. /* harmony export */ "eW": () => (/* binding */ REVALIDATION_PERIOD_ON_ERROR_SECONDS),
  1242. /* harmony export */ "gi": () => (/* binding */ ONE_MONTH_REVALIDATION_PERIOD_SECONDS)
  1243. /* harmony export */ });
  1244. /* unused harmony export ONE_DAY_REVALIDATION_PERIOD_SECONDS */
  1245. const REVALIDATION_PERIOD_ON_ERROR_SECONDS = 604800; // 7 days. TODO: @osama update the naming + value when we revert this back
  1246. const ONE_DAY_REVALIDATION_PERIOD_SECONDS = 86400; // 1 day
  1247. const ONE_WEEK_REVALIDATION_PERIOD_SECONDS = 604800; // 7 days
  1248. const ONE_MONTH_REVALIDATION_PERIOD_SECONDS = 2592000; // 30 days
  1249. /***/ }),
  1250. /***/ 17773:
  1251. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  1252. "use strict";
  1253. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  1254. /* harmony export */ "BF": () => (/* binding */ getSelectedTafsirLanguage),
  1255. /* harmony export */ "K8": () => (/* binding */ getFirstTafsirOfLanguage),
  1256. /* harmony export */ "O3": () => (/* binding */ getTafsirsLanguageOptions)
  1257. /* harmony export */ });
  1258. /* harmony import */ var lodash_uniq__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(18459);
  1259. /* harmony import */ var lodash_uniq__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_uniq__WEBPACK_IMPORTED_MODULE_0__);
  1260. /**
  1261. * Get the language of the selected Tafsir.
  1262. *
  1263. * @param {TafsirsResponse} tafsirListData
  1264. * @param {number|string} selectedTafsirIdOrSlug
  1265. * @returns {string}
  1266. */ const getSelectedTafsirLanguage = (tafsirListData, selectedTafsirIdOrSlug)=>{
  1267. const selectedTafsir = tafsirListData?.tafsirs.find((tafsir)=>tafsir.slug === selectedTafsirIdOrSlug || tafsir.id === Number(selectedTafsirIdOrSlug));
  1268. return selectedTafsir?.languageName;
  1269. };
  1270. /**
  1271. * Get the first Tafsir of a language.
  1272. *
  1273. * @param {TafsirsResponse} tafsirListData
  1274. * @param {string} language
  1275. * @returns {TafsirInfo}
  1276. */ const getFirstTafsirOfLanguage = (tafsirListData, language)=>{
  1277. const selectedTafsir = tafsirListData?.tafsirs.find((tafsir)=>tafsir.languageName === language);
  1278. return selectedTafsir;
  1279. };
  1280. /**
  1281. * Given list of tafsirs, get all available language options
  1282. *
  1283. * @param {Tafsir[]} tafsirs
  1284. * @returns {string[]} list of available language options
  1285. */ const getTafsirsLanguageOptions = (tafsirs)=>lodash_uniq__WEBPACK_IMPORTED_MODULE_0___default()(tafsirs.map((tafsir)=>tafsir.languageName));
  1286. /***/ })
  1287. };
  1288. ;
  1289. //# sourceMappingURL=21608.js.map