39508.js 301 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982
  1. exports.id = 39508;
  2. exports.ids = [39508,9581,4461,92799,38646];
  3. exports.modules = {
  4. /***/ 69457:
  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, _path2;
  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 SvgBook = function SvgBook(props) {
  15. return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  16. xmlns: "http://www.w3.org/2000/svg",
  17. width: 24,
  18. height: 24,
  19. viewBox: "0 0 24 24",
  20. fill: "none",
  21. stroke: "currentColor",
  22. strokeWidth: 2,
  23. strokeLinecap: "round",
  24. strokeLinejoin: "round",
  25. className: "feather feather-book"
  26. }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  27. d: "M4 19.5A2.5 2.5 0 0 1 6.5 17H20"
  28. })), _path2 || (_path2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  29. d: "M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"
  30. })));
  31. };
  32. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgBook);
  33. /***/ }),
  34. /***/ 99241:
  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 SvgBookmark = function SvgBookmark(props) {
  45. return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  46. xmlns: "http://www.w3.org/2000/svg",
  47. width: 24,
  48. height: 24,
  49. viewBox: "0 0 24 24",
  50. fill: "currentColor",
  51. stroke: "currentColor",
  52. strokeWidth: 2,
  53. strokeLinecap: "round",
  54. strokeLinejoin: "round",
  55. className: "feather feather-bookmark"
  56. }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  57. d: "m19 21-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"
  58. })));
  59. };
  60. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgBookmark);
  61. /***/ }),
  62. /***/ 23359:
  63. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  64. "use strict";
  65. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  66. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  67. /* harmony export */ });
  68. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  69. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  70. var _path;
  71. 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); }
  72. var SvgInfo = function SvgInfo(props) {
  73. return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  74. width: 24,
  75. height: 24,
  76. viewBox: "0 0 24 24",
  77. fill: "none",
  78. xmlns: "http://www.w3.org/2000/svg"
  79. }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  80. d: "M11.625 0C5.208 0 0 5.208 0 11.625S5.208 23.25 11.625 23.25 23.25 18.042 23.25 11.625 18.042 0 11.625 0Zm1.162 17.438h-2.325v-6.975h2.325v6.975Zm0-9.3h-2.325V5.812h2.325v2.324Z",
  81. fill: "currentColor"
  82. })));
  83. };
  84. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgInfo);
  85. /***/ }),
  86. /***/ 52150:
  87. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  88. "use strict";
  89. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  90. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  91. /* harmony export */ });
  92. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  93. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  94. var _path;
  95. 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); }
  96. var SvgNotesEmpty = function SvgNotesEmpty(props) {
  97. return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  98. width: 15,
  99. height: 15,
  100. viewBox: "0 0 15 15",
  101. fill: "none",
  102. xmlns: "http://www.w3.org/2000/svg"
  103. }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  104. d: "M3 2.5a.5.5 0 0 1 .5-.5h5.586a.5.5 0 0 1 .353.146l2.415 2.415a.5.5 0 0 1 .146.353V12.5a.5.5 0 0 1-.5.5h-8a.5.5 0 0 1-.5-.5v-10ZM3.5 1A1.5 1.5 0 0 0 2 2.5v10A1.5 1.5 0 0 0 3.5 14h8a1.5 1.5 0 0 0 1.5-1.5V4.914a1.5 1.5 0 0 0-.44-1.06l-2.414-2.415A1.5 1.5 0 0 0 9.086 1H3.5Zm1 3a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3Zm0 3a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1h-6Zm0 3a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1h-6Z",
  105. fill: "currentColor",
  106. fillRule: "evenodd",
  107. clipRule: "evenodd"
  108. })));
  109. };
  110. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgNotesEmpty);
  111. /***/ }),
  112. /***/ 38293:
  113. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  114. "use strict";
  115. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  116. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  117. /* harmony export */ });
  118. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  119. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  120. var _path, _path2;
  121. 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); }
  122. var SvgNotesFilled = function SvgNotesFilled(props) {
  123. return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  124. viewBox: "1.928 0.875 11.023 13.01",
  125. width: 11.023,
  126. height: 13.01,
  127. xmlns: "http://www.w3.org/2000/svg"
  128. }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  129. d: "M3.451.875a1.5 1.5 0 0 0-1.5 1.5v10a1.5 1.5 0 0 0 1.5 1.5h8a1.5 1.5 0 0 0 1.5-1.5V4.789c0-.398-.158-.779-.439-1.061l-2.414-2.414A1.5 1.5 0 0 0 9.037.875H3.451Z",
  130. fill: "#00abff",
  131. fillRule: "evenodd",
  132. clipRule: "evenodd"
  133. })), _path2 || (_path2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  134. d: "M2.928 2.385a.5.5 0 0 1 .5-.5h5.586a.5.5 0 0 1 .354.146l2.414 2.414a.5.5 0 0 1 .146.354v7.586a.5.5 0 0 1-.5.5h-8a.5.5 0 0 1-.5-.5v-10Zm.5-1.5a1.5 1.5 0 0 0-1.5 1.5v10a1.5 1.5 0 0 0 1.5 1.5h8a1.5 1.5 0 0 0 1.5-1.5V4.799c0-.398-.158-.779-.439-1.061l-2.414-2.414A1.5 1.5 0 0 0 9.014.885H3.428Zm1 3a.5.5 0 0 0 0 1h3a.5.5 0 1 0 0-1h-3Zm0 3a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1h-6Zm0 3a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1h-6Z",
  135. fillRule: "evenodd",
  136. clipRule: "evenodd"
  137. })));
  138. };
  139. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgNotesFilled);
  140. /***/ }),
  141. /***/ 51512:
  142. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  143. "use strict";
  144. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  145. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  146. /* harmony export */ });
  147. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  148. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  149. var _path;
  150. 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); }
  151. var SvgPause = function SvgPause(props) {
  152. return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  153. width: 24,
  154. height: 24,
  155. viewBox: "0 0 24 24",
  156. fill: "none",
  157. xmlns: "http://www.w3.org/2000/svg"
  158. }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  159. d: "M5 20h4.571V4H5v16Zm9.143-16v16h4.571V4h-4.571Z",
  160. fill: "currentColor"
  161. })));
  162. };
  163. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgPause);
  164. /***/ }),
  165. /***/ 27333:
  166. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  167. "use strict";
  168. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  169. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  170. /* harmony export */ });
  171. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  172. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  173. var _path;
  174. 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); }
  175. var SvgPlayArrow = function SvgPlayArrow(props) {
  176. return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  177. width: 24,
  178. height: 24,
  179. viewBox: "0 0 24 24",
  180. fill: "none",
  181. xmlns: "http://www.w3.org/2000/svg"
  182. }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  183. d: "M4 2v20.364l16-10.182L4 2Z",
  184. fill: "currentColor"
  185. })));
  186. };
  187. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgPlayArrow);
  188. /***/ }),
  189. /***/ 45446:
  190. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  191. "use strict";
  192. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  193. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  194. /* harmony export */ });
  195. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  196. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  197. var _path;
  198. 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); }
  199. var SvgReader = function SvgReader(props) {
  200. return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  201. width: 24,
  202. height: 24,
  203. viewBox: "0 0 24 24",
  204. fill: "currentColor",
  205. xmlns: "http://www.w3.org/2000/svg"
  206. }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  207. d: "M3 .623v22.004c0 .165.067.324.186.44a.64.64 0 0 0 .448.183h17.332a.64.64 0 0 0 .448-.182.617.617 0 0 0 .186-.44V.622a.617.617 0 0 0-.186-.44.64.64 0 0 0-.448-.183H3.634a.64.64 0 0 0-.448.182.617.617 0 0 0-.186.44Zm10.146 13.493H7.227v-1.66h5.918v1.66Zm4.227-4.152H7.227v-1.66h10.146v1.66Zm0-4.152H7.227v-1.66h10.146v1.66Z"
  208. })));
  209. };
  210. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgReader);
  211. /***/ }),
  212. /***/ 85822:
  213. /***/ ((module) => {
  214. // Exports
  215. module.exports = {
  216. "container": "ContextMenu_container__M7_N3",
  217. "hide": "ContextMenu_hide__l1kVd",
  218. "visibleContainer": "ContextMenu_visibleContainer__KnWDa",
  219. "withVisibleBanner": "ContextMenu_withVisibleBanner__0U0w_",
  220. "expandedContainer": "ContextMenu_expandedContainer__W_YZP",
  221. "withVisibleSideBar": "ContextMenu_withVisibleSideBar__8iHQu",
  222. "chapter": "ContextMenu_chapter__VKK2w",
  223. "bold": "ContextMenu_bold__jqCU4",
  224. "sectionsContainer": "ContextMenu_sectionsContainer__x91pr",
  225. "halfSection": "ContextMenu_halfSection__vu5Iq",
  226. "section": "ContextMenu_section__hi_wD",
  227. "alignStart": "ContextMenu_alignStart__D4EZD",
  228. "alignEnd": "ContextMenu_alignEnd__4YQyB",
  229. "row": "ContextMenu_row__3Hf3R",
  230. "primaryInfo": "ContextMenu_primaryInfo__QL1fr",
  231. "secondaryInfo": "ContextMenu_secondaryInfo__FEnWx",
  232. "surahName": "ContextMenu_surahName__9ovH0",
  233. "chevronIconContainer": "ContextMenu_chevronIconContainer__Bfc57",
  234. "rotate180": "ContextMenu_rotate180__ar3NZ",
  235. "rotateAuto": "ContextMenu_rotateAuto__xUm9n",
  236. "disabledOnMobile": "ContextMenu_disabledOnMobile__Pjaj9"
  237. };
  238. /***/ }),
  239. /***/ 11726:
  240. /***/ ((module) => {
  241. // Exports
  242. module.exports = {
  243. "container": "ObserverWindow_container__yPD6c",
  244. "readingMode": "ObserverWindow_readingMode__fiRzr"
  245. };
  246. /***/ }),
  247. /***/ 71910:
  248. /***/ ((module) => {
  249. // Exports
  250. module.exports = {
  251. "container": "Notes_container__P4U6p",
  252. "visibleContainer": "Notes_visibleContainer__8hC3J"
  253. };
  254. /***/ }),
  255. /***/ 1889:
  256. /***/ ((module) => {
  257. // Exports
  258. module.exports = {
  259. "container": "PlayButton_container__CTTxf"
  260. };
  261. /***/ }),
  262. /***/ 10994:
  263. /***/ ((module) => {
  264. // Exports
  265. module.exports = {
  266. "container": "QueryParamMessage_container__qZWgn",
  267. "link": "QueryParamMessage_link__apDAP"
  268. };
  269. /***/ }),
  270. /***/ 53543:
  271. /***/ ((module) => {
  272. // Exports
  273. module.exports = {
  274. "infiniteScroll": "QuranReader_infiniteScroll__IAfrZ",
  275. "readingView": "QuranReader_readingView__gmING",
  276. "loading": "QuranReader_loading__Wo_w6",
  277. "container": "QuranReader_container__8c0FU",
  278. "withVisibleSideBar": "QuranReader_withVisibleSideBar__STTiz",
  279. "withSidebarNavigationOpenOrAuto": "QuranReader_withSidebarNavigationOpenOrAuto__s2YDZ",
  280. "playButton": "QuranReader_playButton__dVd11"
  281. };
  282. /***/ }),
  283. /***/ 82541:
  284. /***/ ((module) => {
  285. // Exports
  286. module.exports = {
  287. "container": "ReadingPreference_container__bK6Hm",
  288. "spinner": "ReadingPreference_spinner__DAbUN",
  289. "preferenceTextContainer": "ReadingPreference_preferenceTextContainer___J7Dx",
  290. "iconContainer": "ReadingPreference_iconContainer__Jk5Rm"
  291. };
  292. /***/ }),
  293. /***/ 70406:
  294. /***/ ((module) => {
  295. // Exports
  296. module.exports = {
  297. "container": "ReadingPreferenceSwitcher_container__0Dzn6",
  298. "surahHeaderContainer": "ReadingPreferenceSwitcher_surahHeaderContainer__L6XJx",
  299. "contextMenuContainer": "ReadingPreferenceSwitcher_contextMenuContainer__RALtU"
  300. };
  301. /***/ }),
  302. /***/ 53831:
  303. /***/ ((module) => {
  304. // Exports
  305. module.exports = {
  306. "sideDrawerViewContainer": "RevelationOrderNavigationNotice_sideDrawerViewContainer__R0aka",
  307. "endOfScrollingViewContainer": "RevelationOrderNavigationNotice_endOfScrollingViewContainer__moJQq",
  308. "link": "RevelationOrderNavigationNotice_link__NY714"
  309. };
  310. /***/ }),
  311. /***/ 45515:
  312. /***/ ((module) => {
  313. // Exports
  314. module.exports = {
  315. "container": "SidebarNavigation_container__IooCv",
  316. "visibleContainer": "SidebarNavigation_visibleContainer__Y6E1c",
  317. "containerAuto": "SidebarNavigation_containerAuto__WRE2m",
  318. "header": "SidebarNavigation_header__fqOtn",
  319. "switchContainer": "SidebarNavigation_switchContainer__DU_JH",
  320. "contentContainer": "SidebarNavigation_contentContainer__FeDCs",
  321. "surahBodyContainer": "SidebarNavigation_surahBodyContainer__bZs9R",
  322. "verseListContainer": "SidebarNavigation_verseListContainer__tE5ut",
  323. "scrollableSectionContainer": "SidebarNavigation_scrollableSectionContainer__DEA47",
  324. "listContainer": "SidebarNavigation_listContainer__Z4xaB",
  325. "list": "SidebarNavigation_list__5GJEm",
  326. "listItem": "SidebarNavigation_listItem__geBUW",
  327. "selectedItem": "SidebarNavigation_selectedItem__swGQH",
  328. "surahListContainer": "SidebarNavigation_surahListContainer__IYouq",
  329. "searchInput": "SidebarNavigation_searchInput__vhw5Z",
  330. "spaceOnTop": "SidebarNavigation_spaceOnTop__VHaMe",
  331. "chapterNumber": "SidebarNavigation_chapterNumber__39NUY",
  332. "tip": "SidebarNavigation_tip__g4nzj",
  333. "revelationOrderHeader": "SidebarNavigation_revelationOrderHeader___cG5Q"
  334. };
  335. /***/ }),
  336. /***/ 29654:
  337. /***/ ((module) => {
  338. // Exports
  339. module.exports = {
  340. "skeletonContainer": "SidebarSelectionSkeleton_skeletonContainer__Pl7tL",
  341. "row": "SidebarSelectionSkeleton_row__AF4Qi"
  342. };
  343. /***/ }),
  344. /***/ 78789:
  345. /***/ ((module) => {
  346. // Exports
  347. module.exports = {
  348. "container": "TranslationView_container__M0fhJ",
  349. "wrapper": "TranslationView_wrapper__C8vfW"
  350. };
  351. /***/ }),
  352. /***/ 18355:
  353. /***/ ((module) => {
  354. // Exports
  355. module.exports = {
  356. "container": "Notes_container__IGuVA",
  357. "newLabel": "Notes_newLabel__mLbXd",
  358. "newLabelContainer": "Notes_newLabelContainer__kHpCe"
  359. };
  360. /***/ }),
  361. /***/ 57303:
  362. /***/ ((module) => {
  363. // Exports
  364. module.exports = {
  365. "verseLink": "VerseLink_verseLink__m_uNh"
  366. };
  367. /***/ }),
  368. /***/ 28946:
  369. /***/ ((module) => {
  370. // Exports
  371. module.exports = {
  372. "container": "ChapterHeader_container__UANyL",
  373. "left": "ChapterHeader_left__9GlxX",
  374. "right": "ChapterHeader_right__IcBU9",
  375. "chapterId": "ChapterHeader_chapterId__Z_Pey",
  376. "bismillahContainer": "ChapterHeader_bismillahContainer__EXMlw",
  377. "translatedName": "ChapterHeader_translatedName__2sqjR",
  378. "arabicSurahNameContainer": "ChapterHeader_arabicSurahNameContainer__xn14U",
  379. "transliteratedName": "ChapterHeader_transliteratedName__V9dup",
  380. "actionContainer": "ChapterHeader_actionContainer__tbdf_",
  381. "translation": "ChapterHeader_translation__ERRFK",
  382. "translationBy": "ChapterHeader_translationBy__DDZAE",
  383. "changeTranslation": "ChapterHeader_changeTranslation__UlDJ5",
  384. "header": "ChapterHeader_header__kguEh",
  385. "chapterIconContainer": "ChapterHeader_chapterIconContainer__CJN7h"
  386. };
  387. /***/ }),
  388. /***/ 77928:
  389. /***/ ((module) => {
  390. // Exports
  391. module.exports = {
  392. "iconContainer": "ChapterIconContainer_iconContainer__5umYV",
  393. "iconContainerSmall": "ChapterIconContainer_iconContainerSmall__gvmyy",
  394. "iconContainerLarge": "ChapterIconContainer_iconContainerLarge__z49r_",
  395. "iconContainerMega": "ChapterIconContainer_iconContainerMega__rKWtt"
  396. };
  397. /***/ }),
  398. /***/ 19182:
  399. /***/ ((module) => {
  400. // Exports
  401. module.exports = {
  402. "container": "Badge_container__GXfIf",
  403. "content": "Badge_content__Ue8Y7",
  404. "positionBottomRight": "Badge_positionBottomRight__1JJDw"
  405. };
  406. /***/ }),
  407. /***/ 25746:
  408. /***/ ((module) => {
  409. // Exports
  410. module.exports = {
  411. "label": "NewLabel_label__azDvj"
  412. };
  413. /***/ }),
  414. /***/ 56419:
  415. /***/ ((module) => {
  416. // Exports
  417. module.exports = {
  418. "container": "KeyboardInput_container__Zwe4F",
  419. "invertedColors": "KeyboardInput_invertedColors__2s3F3"
  420. };
  421. /***/ }),
  422. /***/ 86193:
  423. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  424. "use strict";
  425. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  426. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  427. /* harmony export */ });
  428. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  429. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  430. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  431. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  432. /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(40968);
  433. /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_2__);
  434. const DEFAULT_LOCALE = "en";
  435. const SURAH_NAMES_FONT = {
  436. type: "font/woff2",
  437. location: "/fonts/quran/surah-names/v1/sura_names.woff2"
  438. };
  439. const LOCALE_PRELOADED_FONTS = {
  440. [DEFAULT_LOCALE]: [
  441. {
  442. type: "font/woff2",
  443. location: "/fonts/lang/ProximaVara/ProximaVara.woff2"
  444. },
  445. {
  446. ...SURAH_NAMES_FONT
  447. },
  448. ],
  449. ar: [
  450. {
  451. type: "font/woff2",
  452. location: "/fonts/lang/arabic/NotoNaskhArabic-Regular.woff2"
  453. },
  454. {
  455. ...SURAH_NAMES_FONT
  456. },
  457. ],
  458. bn: [
  459. {
  460. type: "font/woff2",
  461. location: "/fonts/lang/bengali/NotoSerifBengali-Regular.woff2"
  462. },
  463. {
  464. ...SURAH_NAMES_FONT
  465. },
  466. ],
  467. ur: [
  468. {
  469. type: "font/woff2",
  470. location: "/fonts/lang/urdu/MehrNastaliqWeb.woff2"
  471. },
  472. {
  473. ...SURAH_NAMES_FONT
  474. },
  475. ]
  476. };
  477. const INDOPAK = {
  478. type: "font/woff2",
  479. location: "/fonts/quran/hafs/nastaleeq/indopak/indopak-nastaleeq-waqf-lazim-v4.2.1.woff2"
  480. };
  481. const QURAN_READER_LOCALE_PRELOADED_FONTS = {
  482. [DEFAULT_LOCALE]: [
  483. {
  484. type: "font/woff2",
  485. location: "/fonts/quran/hafs/uthmanic_hafs/UthmanicHafs1Ver18.woff2"
  486. },
  487. ],
  488. bn: [
  489. INDOPAK
  490. ],
  491. ur: [
  492. INDOPAK
  493. ],
  494. id: [
  495. INDOPAK
  496. ]
  497. };
  498. const getToBePreLoadedFonts = (locale, isQuranReader)=>{
  499. if (!isQuranReader) {
  500. return LOCALE_PRELOADED_FONTS[locale] || LOCALE_PRELOADED_FONTS[DEFAULT_LOCALE];
  501. }
  502. return QURAN_READER_LOCALE_PRELOADED_FONTS[locale] || QURAN_READER_LOCALE_PRELOADED_FONTS[DEFAULT_LOCALE];
  503. };
  504. const FontPreLoader = ({ locale , isQuranReader =false })=>{
  505. const toBePreLoadedFonts = getToBePreLoadedFonts(locale, isQuranReader);
  506. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx((next_head__WEBPACK_IMPORTED_MODULE_2___default()), {
  507. children: toBePreLoadedFonts.map((fontDetails)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("link", {
  508. rel: "preload",
  509. as: "font",
  510. type: fontDetails.type,
  511. href: fontDetails.location,
  512. crossOrigin: "anonymous"
  513. }, fontDetails.location))
  514. });
  515. };
  516. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FontPreLoader);
  517. /***/ }),
  518. /***/ 11877:
  519. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  520. "use strict";
  521. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  522. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  523. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  524. /* harmony export */ });
  525. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  526. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  527. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  528. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  529. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
  530. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
  531. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60866);
  532. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__);
  533. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6022);
  534. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
  535. /* harmony import */ var _ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(85822);
  536. /* harmony import */ var _ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20__);
  537. /* harmony import */ var _ReadingPreferenceSwitcher__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(87272);
  538. /* harmony import */ var _components_Onboarding_OnboardingProvider__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(51879);
  539. /* harmony import */ var _dls_Switch_Switch__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(66025);
  540. /* harmony import */ var _icons_chevron_down_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(24868);
  541. /* harmony import */ var _redux_slices_navbar__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(44177);
  542. /* harmony import */ var _redux_slices_QuranReader_contextMenu__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(3638);
  543. /* harmony import */ var _redux_slices_QuranReader_notes__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(66093);
  544. /* harmony import */ var _redux_slices_QuranReader_readingTracker__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(16143);
  545. /* harmony import */ var _redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(12547);
  546. /* harmony import */ var _utils_chapter__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(95892);
  547. /* harmony import */ var _utils_eventLogger__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(55943);
  548. /* harmony import */ var _utils_juz__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(28156);
  549. /* harmony import */ var _utils_locale__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(24709);
  550. /* harmony import */ var _utils_responsive__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(6902);
  551. /* harmony import */ var _utils_verse__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(44519);
  552. /* harmony import */ var src_contexts_DataContext__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(70813);
  553. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_ReadingPreferenceSwitcher__WEBPACK_IMPORTED_MODULE_5__, _components_Onboarding_OnboardingProvider__WEBPACK_IMPORTED_MODULE_6__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_15__]);
  554. ([_ReadingPreferenceSwitcher__WEBPACK_IMPORTED_MODULE_5__, _components_Onboarding_OnboardingProvider__WEBPACK_IMPORTED_MODULE_6__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_15__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  555. /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */ /* eslint-disable jsx-a11y/click-events-have-key-events */
  556. const ContextMenu = ()=>{
  557. const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
  558. const chaptersData = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(src_contexts_DataContext__WEBPACK_IMPORTED_MODULE_19__/* ["default"] */ .Z);
  559. const isSidebarNavigationVisible = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_13__/* .selectIsSidebarNavigationVisible */ .rS);
  560. const { t , lang } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default()("common");
  561. const isSideBarVisible = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_notes__WEBPACK_IMPORTED_MODULE_11__/* .selectNotes */ .$p, react_redux__WEBPACK_IMPORTED_MODULE_4__.shallowEqual).isVisible;
  562. const { isExpanded , showReadingPreferenceSwitcher: isReadingPreferenceSwitcherVisible } = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_contextMenu__WEBPACK_IMPORTED_MODULE_10__/* .selectContextMenu */ .nl, react_redux__WEBPACK_IMPORTED_MODULE_4__.shallowEqual);
  563. const { isActive } = (0,_components_Onboarding_OnboardingProvider__WEBPACK_IMPORTED_MODULE_6__/* .useOnboarding */ .P)();
  564. const { isVisible: isNavbarVisible } = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_navbar__WEBPACK_IMPORTED_MODULE_9__/* .selectNavbar */ .wK, react_redux__WEBPACK_IMPORTED_MODULE_4__.shallowEqual);
  565. const showNavbar = isNavbarVisible || isActive;
  566. const showReadingPreferenceSwitcher = isReadingPreferenceSwitcherVisible && !isActive;
  567. const { verseKey , chapterId , page , hizb } = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_readingTracker__WEBPACK_IMPORTED_MODULE_12__/* .selectLastReadVerseKey */ .eQ, react_redux__WEBPACK_IMPORTED_MODULE_4__.shallowEqual);
  568. const chapterData = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{
  569. return chapterId ? (0,_utils_chapter__WEBPACK_IMPORTED_MODULE_14__/* .getChapterData */ .dy)(chaptersData, chapterId) : null;
  570. }, [
  571. chapterId,
  572. chaptersData
  573. ]);
  574. const juzNumber = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{
  575. return hizb ? (0,_utils_locale__WEBPACK_IMPORTED_MODULE_17__/* .toLocalizedNumber */ .rQ)((0,_utils_juz__WEBPACK_IMPORTED_MODULE_16__/* .getJuzNumberByHizb */ .yd)(Number(hizb)), lang) : null;
  576. }, [
  577. hizb,
  578. lang
  579. ]);
  580. const localizedHizb = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{
  581. return (0,_utils_locale__WEBPACK_IMPORTED_MODULE_17__/* .toLocalizedNumber */ .rQ)(Number(hizb), lang);
  582. }, [
  583. hizb,
  584. lang
  585. ]);
  586. const localizedPageNumber = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{
  587. return (0,_utils_locale__WEBPACK_IMPORTED_MODULE_17__/* .toLocalizedNumber */ .rQ)(Number(page), lang);
  588. }, [
  589. page,
  590. lang
  591. ]);
  592. // if it's SSR or the first time we render this
  593. if (!verseKey) {
  594. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {});
  595. }
  596. const verse = (0,_utils_verse__WEBPACK_IMPORTED_MODULE_18__/* .getVerseNumberFromKey */ .tR)(verseKey);
  597. const progress = (0,_utils_chapter__WEBPACK_IMPORTED_MODULE_14__/* .getChapterReadingProgress */ ._L)(verse, chapterData.versesCount);
  598. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  599. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().container), {
  600. [(_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().visibleContainer)]: showNavbar,
  601. [(_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().expandedContainer)]: isExpanded,
  602. [(_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().withVisibleSideBar)]: isSideBarVisible
  603. }),
  604. // @ts-ignore
  605. // eslint-disable-next-line @typescript-eslint/naming-convention
  606. style: {
  607. "--progress": `${progress}%`
  608. },
  609. children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  610. className: (_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().sectionsContainer),
  611. children: [
  612. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  613. className: showReadingPreferenceSwitcher ? (_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().section) : (_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().halfSection),
  614. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  615. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().row)),
  616. children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("p", {
  617. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().bold), (_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().alignStart), (_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().surahName), {
  618. [(_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().disabledOnMobile)]: isSidebarNavigationVisible
  619. }),
  620. onClick: (e)=>{
  621. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_15__/* .logEvent */ .Kz)(`sidebar_navigation_${isSidebarNavigationVisible ? "close" : "open"}_trigger`);
  622. e.stopPropagation();
  623. if (isSidebarNavigationVisible === "auto") {
  624. // eslint-disable-next-line no-unneeded-ternary
  625. const shouldBeVisible = (0,_utils_responsive__WEBPACK_IMPORTED_MODULE_21__/* .isMobile */ .t)() ? true : false;
  626. dispatch((0,_redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_13__/* .setIsVisible */ .u)(shouldBeVisible));
  627. } else {
  628. dispatch((0,_redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_13__/* .setIsVisible */ .u)(!isSidebarNavigationVisible));
  629. }
  630. },
  631. children: [
  632. chapterData.transliteratedName,
  633. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  634. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().chevronIconContainer), {
  635. [(_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().rotate180)]: isSidebarNavigationVisible === true,
  636. [(_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().rotateAuto)]: isSidebarNavigationVisible === "auto"
  637. }),
  638. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_chevron_down_svg__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {})
  639. })
  640. ]
  641. })
  642. })
  643. }),
  644. showReadingPreferenceSwitcher && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  645. className: (_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().halfSection),
  646. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ReadingPreferenceSwitcher__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
  647. size: _dls_Switch_Switch__WEBPACK_IMPORTED_MODULE_7__/* .SwitchSize.XSmall */ .E.XSmall,
  648. isIconsOnly: true,
  649. type: _ReadingPreferenceSwitcher__WEBPACK_IMPORTED_MODULE_5__/* .ReadingPreferenceSwitcherType.ContextMenu */ .q.ContextMenu
  650. })
  651. }),
  652. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  653. className: showReadingPreferenceSwitcher ? (_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().section) : (_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().halfSection),
  654. children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  655. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().row)),
  656. children: [
  657. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("p", {
  658. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().alignEnd), {
  659. [(_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().hide)]: !isExpanded
  660. })
  661. }),
  662. /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("p", {
  663. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().alignEnd)),
  664. children: [
  665. isExpanded && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("span", {
  666. className: (_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().secondaryInfo),
  667. children: [
  668. t("juz"),
  669. " ",
  670. juzNumber,
  671. " / ",
  672. t("hizb"),
  673. " ",
  674. localizedHizb,
  675. " -",
  676. " "
  677. ]
  678. }),
  679. /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("span", {
  680. className: (_ContextMenu_module_scss__WEBPACK_IMPORTED_MODULE_20___default().primaryInfo),
  681. children: [
  682. t("page"),
  683. " ",
  684. localizedPageNumber
  685. ]
  686. })
  687. ]
  688. })
  689. ]
  690. })
  691. })
  692. ]
  693. })
  694. });
  695. };
  696. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ContextMenu);
  697. __webpack_async_result__();
  698. } catch(e) { __webpack_async_result__(e); } });
  699. /***/ }),
  700. /***/ 43598:
  701. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  702. "use strict";
  703. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  704. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  705. /* harmony export */ });
  706. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  707. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  708. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  709. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  710. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
  711. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
  712. /* harmony import */ var _ObserverWindow_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11726);
  713. /* harmony import */ var _ObserverWindow_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_ObserverWindow_module_scss__WEBPACK_IMPORTED_MODULE_3__);
  714. const DebuggingObserverWindow = ({ isReadingMode })=>{
  715. if (process.env.NEXT_PUBLIC_DEBUG_OBSERVER_WINDOW !== "true") {
  716. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {});
  717. }
  718. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  719. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_ObserverWindow_module_scss__WEBPACK_IMPORTED_MODULE_3___default().container), {
  720. [(_ObserverWindow_module_scss__WEBPACK_IMPORTED_MODULE_3___default().readingMode)]: isReadingMode
  721. })
  722. });
  723. };
  724. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DebuggingObserverWindow);
  725. /***/ }),
  726. /***/ 28800:
  727. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  728. "use strict";
  729. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  730. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  731. /* harmony export */ });
  732. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  733. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  734. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  735. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  736. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
  737. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
  738. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
  739. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
  740. /* harmony import */ var _Notes_module_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(71910);
  741. /* harmony import */ var _Notes_module_scss__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_Notes_module_scss__WEBPACK_IMPORTED_MODULE_5__);
  742. /* harmony import */ var _redux_slices_QuranReader_notes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(66093);
  743. /* eslint-disable i18next/no-literal-string */
  744. const Notes = ()=>{
  745. const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
  746. const { isVisible } = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useSelector)(_redux_slices_QuranReader_notes__WEBPACK_IMPORTED_MODULE_4__/* .selectNotes */ .$p, react_redux__WEBPACK_IMPORTED_MODULE_3__.shallowEqual);
  747. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  748. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Notes_module_scss__WEBPACK_IMPORTED_MODULE_5___default().container), {
  749. [(_Notes_module_scss__WEBPACK_IMPORTED_MODULE_5___default().visibleContainer)]: isVisible
  750. }),
  751. children: [
  752. "Notes placeholders",
  753. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("br", {}),
  754. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("button", {
  755. type: "button",
  756. onClick: ()=>dispatch({
  757. type: _redux_slices_QuranReader_notes__WEBPACK_IMPORTED_MODULE_4__/* .setIsVisible.type */ .u.type,
  758. payload: false
  759. }),
  760. children: "close"
  761. })
  762. ]
  763. });
  764. };
  765. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Notes);
  766. /***/ }),
  767. /***/ 39323:
  768. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  769. "use strict";
  770. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  771. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  772. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  773. /* harmony export */ });
  774. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  775. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  776. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  777. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  778. /* harmony import */ var _xstate_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59456);
  779. /* harmony import */ var _xstate_react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_xstate_react__WEBPACK_IMPORTED_MODULE_2__);
  780. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60866);
  781. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__);
  782. /* harmony import */ var _dls_Spinner_Spinner__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7190);
  783. /* harmony import */ var _PlayButton_module_scss__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(1889);
  784. /* harmony import */ var _PlayButton_module_scss__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_PlayButton_module_scss__WEBPACK_IMPORTED_MODULE_15__);
  785. /* harmony import */ var _dls_Button_Button__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50497);
  786. /* harmony import */ var _hooks_useGetQueryParamOrXstateValue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(93134);
  787. /* harmony import */ var _icons_pause_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(51512);
  788. /* harmony import */ var _icons_play_arrow_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(27333);
  789. /* harmony import */ var _types_QueryParam__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(11721);
  790. /* harmony import */ var _utils_chapter__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(95892);
  791. /* harmony import */ var _utils_eventLogger__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(55943);
  792. /* harmony import */ var src_contexts_DataContext__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(70813);
  793. /* harmony import */ var src_xstate_actors_audioPlayer_selectors__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(16119);
  794. /* harmony import */ var src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(64564);
  795. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_dls_Button_Button__WEBPACK_IMPORTED_MODULE_5__, _hooks_useGetQueryParamOrXstateValue__WEBPACK_IMPORTED_MODULE_6__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_11__, src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_14__]);
  796. ([_dls_Button_Button__WEBPACK_IMPORTED_MODULE_5__, _hooks_useGetQueryParamOrXstateValue__WEBPACK_IMPORTED_MODULE_6__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_11__, src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_14__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  797. const PlayChapterAudioButton = ({ chapterId })=>{
  798. const { t } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default()("common");
  799. const chaptersData = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(src_contexts_DataContext__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z);
  800. const chapterData = (0,_utils_chapter__WEBPACK_IMPORTED_MODULE_10__/* .getChapterData */ .dy)(chaptersData, chapterId.toString());
  801. const audioService = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_14__/* .AudioPlayerMachineContext */ .c);
  802. const isLoadingCurrentChapter = (0,_xstate_react__WEBPACK_IMPORTED_MODULE_2__.useSelector)(audioService, (state)=>(0,src_xstate_actors_audioPlayer_selectors__WEBPACK_IMPORTED_MODULE_13__/* .selectIsLoadingCurrentChapter */ .XL)(state, chapterId));
  803. const isPlayingCurrentChapter = (0,_xstate_react__WEBPACK_IMPORTED_MODULE_2__.useSelector)(audioService, (state)=>(0,src_xstate_actors_audioPlayer_selectors__WEBPACK_IMPORTED_MODULE_13__/* .selectIsPlayingCurrentChapter */ .sI)(state, chapterId));
  804. const { value: reciterId , isQueryParamDifferent: reciterQueryParamDifferent , } = (0,_hooks_useGetQueryParamOrXstateValue__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z)(_types_QueryParam__WEBPACK_IMPORTED_MODULE_9__/* ["default"].Reciter */ .Z.Reciter);
  805. const play = ()=>{
  806. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_11__/* .logButtonClick */ .MY)("chapter_header_play_audio");
  807. audioService.send({
  808. type: "PLAY_SURAH",
  809. surah: chapterId,
  810. reciterId: reciterQueryParamDifferent ? reciterId : undefined
  811. });
  812. };
  813. const pause = ()=>{
  814. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_11__/* .logButtonClick */ .MY)("chapter_header_pause_audio");
  815. audioService.send({
  816. type: "TOGGLE"
  817. });
  818. };
  819. if (isLoadingCurrentChapter) {
  820. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  821. className: (_PlayButton_module_scss__WEBPACK_IMPORTED_MODULE_15___default().container),
  822. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .ZP, {
  823. variant: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_5__/* .ButtonVariant.Ghost */ .Wu.Ghost,
  824. type: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_5__/* .ButtonType.Success */ .L$.Success,
  825. size: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_5__/* .ButtonSize.Small */ .qE.Small,
  826. prefix: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Spinner_Spinner__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {}),
  827. hasSidePadding: false,
  828. shouldFlipOnRTL: false,
  829. isDisabled: true,
  830. children: t("loading")
  831. })
  832. });
  833. }
  834. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  835. className: (_PlayButton_module_scss__WEBPACK_IMPORTED_MODULE_15___default().container),
  836. children: isPlayingCurrentChapter ? /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .ZP, {
  837. variant: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_5__/* .ButtonVariant.Ghost */ .Wu.Ghost,
  838. type: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_5__/* .ButtonType.Success */ .L$.Success,
  839. size: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_5__/* .ButtonSize.Small */ .qE.Small,
  840. prefix: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_pause_svg__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {}),
  841. onClick: pause,
  842. hasSidePadding: false,
  843. shouldFlipOnRTL: false,
  844. children: t("audio.player.pause-audio")
  845. }) : /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .ZP, {
  846. variant: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_5__/* .ButtonVariant.Ghost */ .Wu.Ghost,
  847. type: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_5__/* .ButtonType.Success */ .L$.Success,
  848. size: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_5__/* .ButtonSize.Small */ .qE.Small,
  849. prefix: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_play_arrow_svg__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {}),
  850. onClick: play,
  851. hasSidePadding: false,
  852. shouldFlipOnRTL: false,
  853. ariaLabel: t("aria.play-surah", {
  854. surahName: chapterData.transliteratedName
  855. }),
  856. children: t("audio.play")
  857. })
  858. });
  859. };
  860. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PlayChapterAudioButton);
  861. __webpack_async_result__();
  862. } catch(e) { __webpack_async_result__(e); } });
  863. /***/ }),
  864. /***/ 61269:
  865. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  866. "use strict";
  867. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  868. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  869. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  870. /* harmony export */ });
  871. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  872. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  873. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  874. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  875. /* harmony import */ var _xstate_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59456);
  876. /* harmony import */ var _xstate_react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_xstate_react__WEBPACK_IMPORTED_MODULE_2__);
  877. /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71853);
  878. /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_3__);
  879. /* harmony import */ var next_translate_Trans__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(74137);
  880. /* harmony import */ var next_translate_Trans__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_translate_Trans__WEBPACK_IMPORTED_MODULE_4__);
  881. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(60866);
  882. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_5__);
  883. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6022);
  884. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_6__);
  885. /* harmony import */ var _QueryParamMessage_module_scss__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(10994);
  886. /* harmony import */ var _QueryParamMessage_module_scss__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_QueryParamMessage_module_scss__WEBPACK_IMPORTED_MODULE_16__);
  887. /* harmony import */ var _hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(19583);
  888. /* harmony import */ var _redux_slices_QuranReader_readingPreferences__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(90264);
  889. /* harmony import */ var _redux_slices_QuranReader_translations__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(88548);
  890. /* harmony import */ var _types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(13591);
  891. /* harmony import */ var _types_QuranReader__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(50467);
  892. /* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(5639);
  893. /* harmony import */ var _utils_queryParamValidator__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(88584);
  894. /* harmony import */ var src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(64564);
  895. /* harmony import */ var types_QueryParam__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(11721);
  896. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_7__, src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_12__]);
  897. ([_hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_7__, src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_12__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  898. /* eslint-disable react-func/max-lines-per-function */ /* eslint-disable jsx-a11y/click-events-have-key-events */ /* eslint-disable jsx-a11y/no-static-element-interactions */
  899. const QueryParamMessage = ({ translationsQueryParamDifferent , reciterQueryParamDifferent , wordByWordLocaleQueryParamDifferent , })=>{
  900. const { lang } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_5___default()("common");
  901. const router = (0,next_router__WEBPACK_IMPORTED_MODULE_3__.useRouter)();
  902. const audioService = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_12__/* .AudioPlayerMachineContext */ .c);
  903. const selectedTranslations = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useSelector)(_redux_slices_QuranReader_translations__WEBPACK_IMPORTED_MODULE_9__/* .selectSelectedTranslations */ .qw, _utils_array__WEBPACK_IMPORTED_MODULE_14__/* .areArraysEqual */ .Hj);
  904. const selectedReciterId = (0,_xstate_react__WEBPACK_IMPORTED_MODULE_2__.useSelector)(audioService, (state)=>state.context.reciterId);
  905. const selectedWordByWordLocale = (0,react_redux__WEBPACK_IMPORTED_MODULE_6__.useSelector)(_redux_slices_QuranReader_readingPreferences__WEBPACK_IMPORTED_MODULE_8__/* .selectWordByWordLocale */ .lt, react_redux__WEBPACK_IMPORTED_MODULE_6__.shallowEqual);
  906. const { actions: { onSettingsChange , onXstateSettingsChange } , } = (0,_hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z)();
  907. /**
  908. * When the use clicks on use Redux, we will import the values from redux and
  909. * push them into the url params so that the useGetQueryParamOrReduxValue hook
  910. * picks and applies them.
  911. */ const onResetToReduxStateClicked = ()=>{
  912. if (translationsQueryParamDifferent) {
  913. router.query[types_QueryParam__WEBPACK_IMPORTED_MODULE_13__/* ["default"].Translations */ .Z.Translations] = selectedTranslations.join(",");
  914. }
  915. if (reciterQueryParamDifferent) {
  916. router.query[types_QueryParam__WEBPACK_IMPORTED_MODULE_13__/* ["default"].Reciter */ .Z.Reciter] = String(selectedReciterId);
  917. }
  918. if (wordByWordLocaleQueryParamDifferent) {
  919. router.query[types_QueryParam__WEBPACK_IMPORTED_MODULE_13__/* ["default"].WBW_LOCALE */ .Z.WBW_LOCALE] = selectedWordByWordLocale;
  920. }
  921. // if is in Quranic Calendar flow, remove the flow query param
  922. if (router.query[types_QueryParam__WEBPACK_IMPORTED_MODULE_13__/* ["default"].FLOW */ .Z.FLOW] === _types_QuranReader__WEBPACK_IMPORTED_MODULE_11__/* .QuranReaderFlow.QURANIC_CALENDER */ .Bc.QURANIC_CALENDER) {
  923. delete router.query[types_QueryParam__WEBPACK_IMPORTED_MODULE_13__/* ["default"].FLOW */ .Z.FLOW];
  924. // if hide arabic is true, remove it so that the arabic text get shown again
  925. if (router.query[types_QueryParam__WEBPACK_IMPORTED_MODULE_13__/* ["default"].HIDE_ARABIC */ .Z.HIDE_ARABIC] === "true") {
  926. delete router.query[types_QueryParam__WEBPACK_IMPORTED_MODULE_13__/* ["default"].HIDE_ARABIC */ .Z.HIDE_ARABIC];
  927. }
  928. }
  929. router.push(router, undefined, {
  930. shallow: true
  931. });
  932. };
  933. /**
  934. * When the use clicks on persist query params, we will persist the values
  935. * from the query params into Redux.
  936. */ const onPersistQueryParamsClicked = ()=>{
  937. if (translationsQueryParamDifferent && (0,_utils_queryParamValidator__WEBPACK_IMPORTED_MODULE_15__/* .isValidTranslationsQueryParamValue */ .W)(router.query[types_QueryParam__WEBPACK_IMPORTED_MODULE_13__/* ["default"].Translations */ .Z.Translations])) {
  938. const nextTranslations = router.query[types_QueryParam__WEBPACK_IMPORTED_MODULE_13__/* ["default"].Translations */ .Z.Translations].split(",").map((stringValue)=>Number(stringValue));
  939. onSettingsChange("selectedTranslations", nextTranslations, (0,_redux_slices_QuranReader_translations__WEBPACK_IMPORTED_MODULE_9__/* .setSelectedTranslations */ .uz)({
  940. translations: nextTranslations,
  941. locale: lang
  942. }), (0,_redux_slices_QuranReader_translations__WEBPACK_IMPORTED_MODULE_9__/* .setSelectedTranslations */ .uz)({
  943. translations: selectedTranslations,
  944. locale: lang
  945. }), _types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_10__/* ["default"].TRANSLATIONS */ .Z.TRANSLATIONS);
  946. }
  947. if (wordByWordLocaleQueryParamDifferent) {
  948. const nextWordByWord = router.query[types_QueryParam__WEBPACK_IMPORTED_MODULE_13__/* ["default"].WBW_LOCALE */ .Z.WBW_LOCALE];
  949. onSettingsChange("selectedWordByWordLocale", nextWordByWord, (0,_redux_slices_QuranReader_readingPreferences__WEBPACK_IMPORTED_MODULE_8__/* .setSelectedWordByWordLocale */ .Ud)({
  950. value: nextWordByWord,
  951. locale: lang
  952. }), (0,_redux_slices_QuranReader_readingPreferences__WEBPACK_IMPORTED_MODULE_8__/* .setSelectedWordByWordLocale */ .Ud)({
  953. value: selectedWordByWordLocale,
  954. locale: lang
  955. }), _types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_10__/* ["default"].READING */ .Z.READING);
  956. }
  957. if (reciterQueryParamDifferent) {
  958. const nextReciterId = Number(router.query[types_QueryParam__WEBPACK_IMPORTED_MODULE_13__/* ["default"].Reciter */ .Z.Reciter]);
  959. onXstateSettingsChange("reciter", nextReciterId, ()=>audioService.send({
  960. type: "CHANGE_RECITER",
  961. reciterId: nextReciterId
  962. }), ()=>audioService.send({
  963. type: "CHANGE_RECITER",
  964. reciterId: selectedReciterId
  965. }), _types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_10__/* ["default"].AUDIO */ .Z.AUDIO);
  966. }
  967. };
  968. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  969. className: (_QueryParamMessage_module_scss__WEBPACK_IMPORTED_MODULE_16___default().container),
  970. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx((next_translate_Trans__WEBPACK_IMPORTED_MODULE_4___default()), {
  971. i18nKey: "quran-reader:query-param-message",
  972. components: [
  973. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  974. onClick: onResetToReduxStateClicked,
  975. className: (_QueryParamMessage_module_scss__WEBPACK_IMPORTED_MODULE_16___default().link)
  976. }, 0),
  977. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  978. onClick: onPersistQueryParamsClicked,
  979. className: (_QueryParamMessage_module_scss__WEBPACK_IMPORTED_MODULE_16___default().link)
  980. }, 1),
  981. ]
  982. })
  983. });
  984. };
  985. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (QueryParamMessage);
  986. __webpack_async_result__();
  987. } catch(e) { __webpack_async_result__(e); } });
  988. /***/ }),
  989. /***/ 6846:
  990. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  991. "use strict";
  992. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  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 next_dynamic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(96954);
  1001. /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dynamic__WEBPACK_IMPORTED_MODULE_2__);
  1002. /* harmony import */ var _hooks_useSyncReadingProgress__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5766);
  1003. /* harmony import */ var _ReadingPreferenceSwitcher__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(87272);
  1004. /* harmony import */ var _TranslationView__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55413);
  1005. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_hooks_useSyncReadingProgress__WEBPACK_IMPORTED_MODULE_3__, _ReadingPreferenceSwitcher__WEBPACK_IMPORTED_MODULE_4__, _TranslationView__WEBPACK_IMPORTED_MODULE_5__]);
  1006. ([_hooks_useSyncReadingProgress__WEBPACK_IMPORTED_MODULE_3__, _ReadingPreferenceSwitcher__WEBPACK_IMPORTED_MODULE_4__, _TranslationView__WEBPACK_IMPORTED_MODULE_5__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  1007. /* eslint-disable react/no-multi-comp */
  1008. const ReadingView = next_dynamic__WEBPACK_IMPORTED_MODULE_2___default()(()=>__webpack_require__.e(/* import() */ 29078).then(__webpack_require__.bind(__webpack_require__, 29078)), {
  1009. loadableGenerated: {
  1010. modules: [
  1011. "../components/QuranReader/QuranReaderView.tsx -> " + "./ReadingView"
  1012. ]
  1013. }
  1014. });
  1015. const QuranReaderView = ({ isReadingPreference , quranReaderStyles , quranReaderDataType , initialData , resourceId , })=>{
  1016. (0,_hooks_useSyncReadingProgress__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({
  1017. isReadingPreference
  1018. });
  1019. if (isReadingPreference) {
  1020. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
  1021. children: [
  1022. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ReadingPreferenceSwitcher__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {}),
  1023. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(ReadingView, {
  1024. quranReaderStyles: quranReaderStyles,
  1025. quranReaderDataType: quranReaderDataType,
  1026. initialData: initialData,
  1027. resourceId: resourceId
  1028. })
  1029. ]
  1030. });
  1031. }
  1032. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
  1033. children: [
  1034. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ReadingPreferenceSwitcher__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {}),
  1035. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_TranslationView__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
  1036. quranReaderStyles: quranReaderStyles,
  1037. quranReaderDataType: quranReaderDataType,
  1038. initialData: initialData,
  1039. resourceId: resourceId
  1040. })
  1041. ]
  1042. });
  1043. };
  1044. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (QuranReaderView);
  1045. __webpack_async_result__();
  1046. } catch(e) { __webpack_async_result__(e); } });
  1047. /***/ }),
  1048. /***/ 13256:
  1049. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  1050. "use strict";
  1051. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  1052. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  1053. /* harmony export */ });
  1054. /* unused harmony export readingPreferenceIcons */
  1055. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  1056. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  1057. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  1058. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  1059. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
  1060. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
  1061. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60866);
  1062. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__);
  1063. /* harmony import */ var _components_QuranReader_ReadingPreferenceSwitcher_ReadingPreference_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(82541);
  1064. /* harmony import */ var _components_QuranReader_ReadingPreferenceSwitcher_ReadingPreference_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_components_QuranReader_ReadingPreferenceSwitcher_ReadingPreference_module_scss__WEBPACK_IMPORTED_MODULE_8__);
  1065. /* harmony import */ var _dls_Spinner_Spinner__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7190);
  1066. /* harmony import */ var _icons_book_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(69457);
  1067. /* harmony import */ var _icons_reader_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(45446);
  1068. /* harmony import */ var types_QuranReader__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(50467);
  1069. const readingPreferenceIcons = {
  1070. [types_QuranReader__WEBPACK_IMPORTED_MODULE_7__/* .ReadingPreference.Reading */ .m3.Reading]: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_reader_svg__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {}),
  1071. [types_QuranReader__WEBPACK_IMPORTED_MODULE_7__/* .ReadingPreference.Translation */ .m3.Translation]: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_book_svg__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {})
  1072. };
  1073. const LoadingSwitcher = ({ readingPreference , selectedReadingPreference , isIconsOnly =false , isLoading , })=>{
  1074. const { t } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default()("common");
  1075. return isLoading && readingPreference === selectedReadingPreference ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  1076. className: (_components_QuranReader_ReadingPreferenceSwitcher_ReadingPreference_module_scss__WEBPACK_IMPORTED_MODULE_8___default().container),
  1077. children: [
  1078. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  1079. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Spinner_Spinner__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
  1080. className: (_components_QuranReader_ReadingPreferenceSwitcher_ReadingPreference_module_scss__WEBPACK_IMPORTED_MODULE_8___default().spinner)
  1081. })
  1082. }),
  1083. !isIconsOnly && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  1084. className: (_components_QuranReader_ReadingPreferenceSwitcher_ReadingPreference_module_scss__WEBPACK_IMPORTED_MODULE_8___default().preferenceTextContainer),
  1085. children: t(`reading-preference.${selectedReadingPreference}`)
  1086. })
  1087. ]
  1088. }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  1089. className: (_components_QuranReader_ReadingPreferenceSwitcher_ReadingPreference_module_scss__WEBPACK_IMPORTED_MODULE_8___default().container),
  1090. children: [
  1091. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  1092. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_components_QuranReader_ReadingPreferenceSwitcher_ReadingPreference_module_scss__WEBPACK_IMPORTED_MODULE_8___default().iconContainer), isIconsOnly && (_components_QuranReader_ReadingPreferenceSwitcher_ReadingPreference_module_scss__WEBPACK_IMPORTED_MODULE_8___default().iconsCenter)),
  1093. children: readingPreferenceIcons[selectedReadingPreference]
  1094. }),
  1095. !isIconsOnly && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  1096. className: (_components_QuranReader_ReadingPreferenceSwitcher_ReadingPreference_module_scss__WEBPACK_IMPORTED_MODULE_8___default().preferenceTextContainer),
  1097. children: t(`reading-preference.${selectedReadingPreference}`)
  1098. })
  1099. ]
  1100. });
  1101. };
  1102. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LoadingSwitcher);
  1103. /***/ }),
  1104. /***/ 87272:
  1105. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  1106. "use strict";
  1107. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  1108. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  1109. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__),
  1110. /* harmony export */ "q": () => (/* binding */ ReadingPreferenceSwitcherType)
  1111. /* harmony export */ });
  1112. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  1113. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  1114. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
  1115. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
  1116. /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(71853);
  1117. /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_2__);
  1118. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
  1119. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
  1120. /* harmony import */ var _ReadingPreferenceOption__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13256);
  1121. /* harmony import */ var _ReadingPreferenceSwitcher_module_scss__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(70406);
  1122. /* harmony import */ var _ReadingPreferenceSwitcher_module_scss__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_ReadingPreferenceSwitcher_module_scss__WEBPACK_IMPORTED_MODULE_12__);
  1123. /* harmony import */ var _dls_Switch_Switch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(66025);
  1124. /* harmony import */ var _hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(19583);
  1125. /* harmony import */ var _redux_slices_QuranReader_readingPreferences__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(90264);
  1126. /* harmony import */ var _redux_slices_QuranReader_readingTracker__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(16143);
  1127. /* harmony import */ var _utils_eventLogger__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(55943);
  1128. /* harmony import */ var types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(13591);
  1129. /* harmony import */ var types_QuranReader__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(50467);
  1130. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_6__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_9__]);
  1131. ([_hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_6__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_9__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  1132. var ReadingPreferenceSwitcherType;
  1133. (function(ReadingPreferenceSwitcherType) {
  1134. ReadingPreferenceSwitcherType["SurahHeader"] = "surah_header";
  1135. ReadingPreferenceSwitcherType["ContextMenu"] = "context_menu";
  1136. })(ReadingPreferenceSwitcherType || (ReadingPreferenceSwitcherType = {}));
  1137. const ReadingPreferenceSwitcher = ({ size , isIconsOnly =false , type =ReadingPreferenceSwitcherType.SurahHeader , })=>{
  1138. const readingPreferences = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useSelector)(_redux_slices_QuranReader_readingPreferences__WEBPACK_IMPORTED_MODULE_7__/* .selectReadingPreferences */ .Xg);
  1139. const lastReadVerseKey = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useSelector)(_redux_slices_QuranReader_readingTracker__WEBPACK_IMPORTED_MODULE_8__/* .selectLastReadVerseKey */ .eQ);
  1140. const lastReadVerse = lastReadVerseKey.verseKey?.split(":")[1];
  1141. const { readingPreference } = readingPreferences;
  1142. const { actions: { onSettingsChange } , isLoading , } = (0,_hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z)();
  1143. const router = (0,next_router__WEBPACK_IMPORTED_MODULE_2__.useRouter)();
  1144. const readingPreferencesOptions = [
  1145. {
  1146. name: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ReadingPreferenceOption__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
  1147. readingPreference: readingPreference,
  1148. selectedReadingPreference: types_QuranReader__WEBPACK_IMPORTED_MODULE_11__/* .ReadingPreference.Translation */ .m3.Translation,
  1149. isLoading: isLoading,
  1150. isIconsOnly: isIconsOnly
  1151. }),
  1152. value: types_QuranReader__WEBPACK_IMPORTED_MODULE_11__/* .ReadingPreference.Translation */ .m3.Translation
  1153. },
  1154. {
  1155. name: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ReadingPreferenceOption__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
  1156. readingPreference: readingPreference,
  1157. selectedReadingPreference: types_QuranReader__WEBPACK_IMPORTED_MODULE_11__/* .ReadingPreference.Reading */ .m3.Reading,
  1158. isLoading: isLoading,
  1159. isIconsOnly: isIconsOnly
  1160. }),
  1161. value: types_QuranReader__WEBPACK_IMPORTED_MODULE_11__/* .ReadingPreference.Reading */ .m3.Reading
  1162. },
  1163. ];
  1164. const onViewSwitched = (view)=>{
  1165. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_9__/* .logValueChange */ .Q8)(`${type}_reading_preference`, readingPreference, view);
  1166. const newQueryParams = {
  1167. ...router.query
  1168. };
  1169. // Track `startingVerse` once we're past the start of the page so we can
  1170. // continue from the same ayah when switching views. Without the > 1 check,
  1171. // switching views at the start of the page causes unnecessary scrolls
  1172. if (type === ReadingPreferenceSwitcherType.SurahHeader) {
  1173. delete newQueryParams.startingVerse;
  1174. } else if (parseInt(lastReadVerse, 10) > 1) {
  1175. newQueryParams.startingVerse = lastReadVerse;
  1176. }
  1177. const newUrlObject = {
  1178. pathname: router.pathname,
  1179. query: newQueryParams
  1180. };
  1181. router.replace(newUrlObject, null, {
  1182. shallow: true
  1183. }).then(()=>{
  1184. onSettingsChange("readingPreference", view, (0,_redux_slices_QuranReader_readingPreferences__WEBPACK_IMPORTED_MODULE_7__/* .setReadingPreference */ .GW)(view), (0,_redux_slices_QuranReader_readingPreferences__WEBPACK_IMPORTED_MODULE_7__/* .setReadingPreference */ .GW)(readingPreference), types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_10__/* ["default"].READING */ .Z.READING);
  1185. });
  1186. };
  1187. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1188. className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_ReadingPreferenceSwitcher_module_scss__WEBPACK_IMPORTED_MODULE_12___default().container), {
  1189. [(_ReadingPreferenceSwitcher_module_scss__WEBPACK_IMPORTED_MODULE_12___default().surahHeaderContainer)]: type === ReadingPreferenceSwitcherType.SurahHeader,
  1190. [(_ReadingPreferenceSwitcher_module_scss__WEBPACK_IMPORTED_MODULE_12___default().contextMenuContainer)]: type === ReadingPreferenceSwitcherType.ContextMenu
  1191. }),
  1192. id: "reading-preference-switcher",
  1193. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Switch_Switch__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
  1194. items: readingPreferencesOptions,
  1195. selected: readingPreference,
  1196. onSelect: onViewSwitched,
  1197. size: size
  1198. })
  1199. });
  1200. };
  1201. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReadingPreferenceSwitcher);
  1202. __webpack_async_result__();
  1203. } catch(e) { __webpack_async_result__(e); } });
  1204. /***/ }),
  1205. /***/ 48588:
  1206. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  1207. "use strict";
  1208. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  1209. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  1210. /* harmony export */ "E": () => (/* binding */ RevelationOrderNavigationNoticeView),
  1211. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  1212. /* harmony export */ });
  1213. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  1214. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  1215. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
  1216. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
  1217. /* harmony import */ var next_translate_Trans__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(74137);
  1218. /* harmony import */ var next_translate_Trans__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_translate_Trans__WEBPACK_IMPORTED_MODULE_2__);
  1219. /* harmony import */ var _RevelationOrderNavigationNotice_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(53831);
  1220. /* harmony import */ var _RevelationOrderNavigationNotice_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_RevelationOrderNavigationNotice_module_scss__WEBPACK_IMPORTED_MODULE_8__);
  1221. /* harmony import */ var _dls_Spinner_Spinner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7190);
  1222. /* harmony import */ var _hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(19583);
  1223. /* harmony import */ var _redux_slices_revelationOrder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88795);
  1224. /* harmony import */ var _types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(13591);
  1225. /* harmony import */ var _utils_eventLogger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(55943);
  1226. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_4__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_7__]);
  1227. ([_hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_4__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  1228. var RevelationOrderNavigationNoticeView;
  1229. (function(RevelationOrderNavigationNoticeView) {
  1230. RevelationOrderNavigationNoticeView["SideDrawer"] = "side-drawer";
  1231. RevelationOrderNavigationNoticeView["EndOfScrollingControls"] = "end-of-scrolling-controls";
  1232. })(RevelationOrderNavigationNoticeView || (RevelationOrderNavigationNoticeView = {}));
  1233. // A notice that lets users know that the ordering and navigation are not the default ones.
  1234. const RevelationOrderNavigationNotice = ({ view })=>{
  1235. const { actions: { onSettingsChange } , isLoading , } = (0,_hooks_auth_usePersistPreferenceGroup__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)();
  1236. const revertToDefaultOrdering = ()=>{
  1237. onSettingsChange("isReadingByRevelationOrder", false, (0,_redux_slices_revelationOrder__WEBPACK_IMPORTED_MODULE_5__/* .setIsReadingByRevelationOrder */ .N4)(false), (0,_redux_slices_revelationOrder__WEBPACK_IMPORTED_MODULE_5__/* .setIsReadingByRevelationOrder */ .N4)(true), _types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_6__/* ["default"].READING */ .Z.READING);
  1238. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_7__/* .logButtonClick */ .MY)(`revert_to_default_ordering_${view}`);
  1239. };
  1240. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  1241. className: classnames__WEBPACK_IMPORTED_MODULE_1___default()({
  1242. [(_RevelationOrderNavigationNotice_module_scss__WEBPACK_IMPORTED_MODULE_8___default().sideDrawerViewContainer)]: view === RevelationOrderNavigationNoticeView.SideDrawer,
  1243. [(_RevelationOrderNavigationNotice_module_scss__WEBPACK_IMPORTED_MODULE_8___default().endOfScrollingViewContainer)]: view === RevelationOrderNavigationNoticeView.EndOfScrollingControls
  1244. }),
  1245. children: [
  1246. isLoading && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Spinner_Spinner__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {}),
  1247. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx((next_translate_Trans__WEBPACK_IMPORTED_MODULE_2___default()), {
  1248. components: {
  1249. link: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  1250. className: (_RevelationOrderNavigationNotice_module_scss__WEBPACK_IMPORTED_MODULE_8___default().link),
  1251. onClick: revertToDefaultOrdering,
  1252. "aria-hidden": "true"
  1253. })
  1254. },
  1255. i18nKey: "quran-reader:revelation-order-notice"
  1256. })
  1257. ]
  1258. });
  1259. };
  1260. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RevelationOrderNavigationNotice);
  1261. __webpack_async_result__();
  1262. } catch(e) { __webpack_async_result__(e); } });
  1263. /***/ }),
  1264. /***/ 53980:
  1265. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  1266. "use strict";
  1267. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  1268. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  1269. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  1270. /* harmony export */ });
  1271. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  1272. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  1273. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  1274. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  1275. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
  1276. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
  1277. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60866);
  1278. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__);
  1279. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6022);
  1280. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
  1281. /* harmony import */ var _SidebarNavigation_module_scss__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(45515);
  1282. /* harmony import */ var _SidebarNavigation_module_scss__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_SidebarNavigation_module_scss__WEBPACK_IMPORTED_MODULE_17__);
  1283. /* harmony import */ var _SidebarNavigationSelections__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(27234);
  1284. /* harmony import */ var _components_QuranReader_RevelationOrderNavigationNotice__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48588);
  1285. /* harmony import */ var _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(50497);
  1286. /* harmony import */ var _dls_KeyboardInput__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(55557);
  1287. /* harmony import */ var _dls_Switch_Switch__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(66025);
  1288. /* harmony import */ var _hooks_useOutsideClickDetector__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(38646);
  1289. /* harmony import */ var _icons_close_svg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(51053);
  1290. /* harmony import */ var _redux_slices_QuranReader_contextMenu__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(3638);
  1291. /* harmony import */ var _redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(12547);
  1292. /* harmony import */ var _redux_slices_revelationOrder__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(88795);
  1293. /* harmony import */ var _utils_eventLogger__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(55943);
  1294. /* harmony import */ var _utils_responsive__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(6902);
  1295. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_components_QuranReader_RevelationOrderNavigationNotice__WEBPACK_IMPORTED_MODULE_6__, _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_15__]);
  1296. ([_components_QuranReader_RevelationOrderNavigationNotice__WEBPACK_IMPORTED_MODULE_6__, _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_15__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  1297. /* eslint-disable react/no-multi-comp */
  1298. const SidebarNavigation = ()=>{
  1299. const { isExpanded: isContextMenuExpanded } = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_contextMenu__WEBPACK_IMPORTED_MODULE_12__/* .selectContextMenu */ .nl, react_redux__WEBPACK_IMPORTED_MODULE_4__.shallowEqual);
  1300. const isVisible = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_13__/* .selectIsSidebarNavigationVisible */ .rS);
  1301. const selectedNavigationItem = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_13__/* .selectSelectedNavigationItem */ .tD);
  1302. const isReadingByRevelationOrder = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_revelationOrder__WEBPACK_IMPORTED_MODULE_14__/* .selectIsReadingByRevelationOrder */ .kW);
  1303. const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
  1304. const { t } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default()("common");
  1305. const sidebarRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)();
  1306. (0,_hooks_useOutsideClickDetector__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z)(sidebarRef, ()=>{
  1307. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_15__/* .logEvent */ .Kz)("sidebar_navigation_close_outside_click");
  1308. dispatch((0,_redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_13__/* .setIsVisible */ .u)(false));
  1309. }, isVisible && (0,_utils_responsive__WEBPACK_IMPORTED_MODULE_16__/* .isMobile */ .t)());
  1310. const navigationItems = [
  1311. {
  1312. name: t("surah"),
  1313. value: _redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_13__/* .NavigationItem.Surah */ .Dx.Surah
  1314. },
  1315. {
  1316. name: t("juz"),
  1317. value: _redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_13__/* .NavigationItem.Juz */ .Dx.Juz
  1318. },
  1319. // {
  1320. // name: t('hizb'),
  1321. // value: NavigationItem.Hizb,
  1322. // },
  1323. {
  1324. name: t("page"),
  1325. value: _redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_13__/* .NavigationItem.Page */ .Dx.Page
  1326. },
  1327. ];
  1328. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1329. ref: sidebarRef,
  1330. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_SidebarNavigation_module_scss__WEBPACK_IMPORTED_MODULE_17___default().container), {
  1331. [(_SidebarNavigation_module_scss__WEBPACK_IMPORTED_MODULE_17___default().visibleContainer)]: isVisible === true,
  1332. [(_SidebarNavigation_module_scss__WEBPACK_IMPORTED_MODULE_17___default().containerAuto)]: isVisible === "auto",
  1333. [(_SidebarNavigation_module_scss__WEBPACK_IMPORTED_MODULE_17___default().spaceOnTop)]: isContextMenuExpanded
  1334. }),
  1335. children: !isReadingByRevelationOrder ? // Default ordering
  1336. /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
  1337. children: [
  1338. /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  1339. className: (_SidebarNavigation_module_scss__WEBPACK_IMPORTED_MODULE_17___default().header),
  1340. children: [
  1341. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1342. className: (_SidebarNavigation_module_scss__WEBPACK_IMPORTED_MODULE_17___default().switchContainer),
  1343. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Switch_Switch__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {
  1344. items: navigationItems,
  1345. selected: selectedNavigationItem,
  1346. onSelect: (value)=>{
  1347. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_15__/* .logValueChange */ .Q8)("sidebar_navigation_view", selectedNavigationItem, value);
  1348. dispatch((0,_redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_13__/* .selectNavigationItem */ .eY)(value));
  1349. }
  1350. })
  1351. }),
  1352. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP, {
  1353. tooltip: t("close"),
  1354. shape: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* .ButtonShape.Circle */ .jL.Circle,
  1355. size: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* .ButtonSize.Small */ .qE.Small,
  1356. variant: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* .ButtonVariant.Ghost */ .Wu.Ghost,
  1357. onClick: ()=>{
  1358. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_15__/* .logButtonClick */ .MY)("sidebar_navigation_close");
  1359. dispatch((0,_redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_13__/* .setIsVisible */ .u)(false));
  1360. },
  1361. ariaLabel: t("aria.sidebar-nav-close"),
  1362. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_close_svg__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {})
  1363. })
  1364. ]
  1365. }),
  1366. /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("p", {
  1367. className: (_SidebarNavigation_module_scss__WEBPACK_IMPORTED_MODULE_17___default().tip),
  1368. children: [
  1369. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  1370. children: t("sidebar.try-navigating-with")
  1371. }),
  1372. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_KeyboardInput__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
  1373. meta: true,
  1374. keyboardKey: "K"
  1375. })
  1376. ]
  1377. }),
  1378. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1379. className: (_SidebarNavigation_module_scss__WEBPACK_IMPORTED_MODULE_17___default().contentContainer),
  1380. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_SidebarNavigationSelections__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
  1381. isVisible: isVisible,
  1382. selectedNavigationItem: selectedNavigationItem
  1383. })
  1384. })
  1385. ]
  1386. }) : // Revelation ordering
  1387. /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
  1388. children: [
  1389. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1390. className: (_SidebarNavigation_module_scss__WEBPACK_IMPORTED_MODULE_17___default().revelationOrderHeader),
  1391. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP, {
  1392. tooltip: t("close"),
  1393. shape: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* .ButtonShape.Circle */ .jL.Circle,
  1394. size: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* .ButtonSize.Small */ .qE.Small,
  1395. variant: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* .ButtonVariant.Ghost */ .Wu.Ghost,
  1396. onClick: ()=>{
  1397. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_15__/* .logButtonClick */ .MY)("sidebar_navigation_close");
  1398. dispatch((0,_redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_13__/* .setIsVisible */ .u)(false));
  1399. },
  1400. ariaLabel: t("aria.sidebar-nav-close"),
  1401. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_close_svg__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {})
  1402. })
  1403. }),
  1404. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_QuranReader_RevelationOrderNavigationNotice__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
  1405. view: _components_QuranReader_RevelationOrderNavigationNotice__WEBPACK_IMPORTED_MODULE_6__/* .RevelationOrderNavigationNoticeView.SideDrawer */ .E.SideDrawer
  1406. }),
  1407. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_SidebarNavigationSelections__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
  1408. isVisible: isVisible,
  1409. selectedNavigationItem: _redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_13__/* .NavigationItem.Surah */ .Dx.Surah
  1410. }),
  1411. " "
  1412. ]
  1413. })
  1414. });
  1415. };
  1416. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SidebarNavigation);
  1417. __webpack_async_result__();
  1418. } catch(e) { __webpack_async_result__(e); } });
  1419. /***/ }),
  1420. /***/ 27234:
  1421. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  1422. "use strict";
  1423. // EXPORTS
  1424. __webpack_require__.d(__webpack_exports__, {
  1425. "Z": () => (/* binding */ SidebarNavigation_SidebarNavigationSelections)
  1426. });
  1427. // EXTERNAL MODULE: external "react/jsx-runtime"
  1428. var jsx_runtime_ = __webpack_require__(20997);
  1429. // EXTERNAL MODULE: external "react"
  1430. var external_react_ = __webpack_require__(16689);
  1431. // EXTERNAL MODULE: ./node_modules/next/dynamic.js
  1432. var dynamic = __webpack_require__(96954);
  1433. var dynamic_default = /*#__PURE__*/__webpack_require__.n(dynamic);
  1434. // EXTERNAL MODULE: ./src/components/QuranReader/SidebarNavigation/SidebarSelectionSkeleton.module.scss
  1435. var SidebarSelectionSkeleton_module = __webpack_require__(29654);
  1436. var SidebarSelectionSkeleton_module_default = /*#__PURE__*/__webpack_require__.n(SidebarSelectionSkeleton_module);
  1437. // EXTERNAL MODULE: ./src/components/dls/Skeleton/Skeleton.tsx
  1438. var Skeleton = __webpack_require__(77048);
  1439. ;// CONCATENATED MODULE: ./src/components/QuranReader/SidebarNavigation/SidebarSelectionSkeleton.tsx
  1440. const ROWS_COUNT = 12;
  1441. const rowsArr = Array(ROWS_COUNT).fill(null);
  1442. const SidebarSelectionSkeleton = ()=>{
  1443. return /*#__PURE__*/ jsx_runtime_.jsx("div", {
  1444. className: (SidebarSelectionSkeleton_module_default()).skeletonContainer,
  1445. children: rowsArr.map((k, i)=>// eslint-disable-next-line react/no-array-index-key
  1446. /*#__PURE__*/ jsx_runtime_.jsx(Skeleton/* default */.Z, {
  1447. isActive: true,
  1448. isSquared: true,
  1449. className: (SidebarSelectionSkeleton_module_default()).row
  1450. }, `skeleton_${i}`))
  1451. });
  1452. };
  1453. /* harmony default export */ const SidebarNavigation_SidebarSelectionSkeleton = (SidebarSelectionSkeleton);
  1454. // EXTERNAL MODULE: ./src/redux/slices/QuranReader/sidebarNavigation.ts
  1455. var sidebarNavigation = __webpack_require__(12547);
  1456. ;// CONCATENATED MODULE: ./src/components/QuranReader/SidebarNavigation/SidebarNavigationSelections.tsx
  1457. const PageSelection = dynamic_default()(()=>Promise.all(/* import() */[__webpack_require__.e(92631), __webpack_require__.e(66192)]).then(__webpack_require__.bind(__webpack_require__, 66192)), {
  1458. loadableGenerated: {
  1459. modules: [
  1460. "../components/QuranReader/SidebarNavigation/SidebarNavigationSelections.tsx -> " + "./PageSelection"
  1461. ]
  1462. },
  1463. loading: SidebarNavigation_SidebarSelectionSkeleton
  1464. });
  1465. const SurahSelection = dynamic_default()(()=>__webpack_require__.e(/* import() */ 99741).then(__webpack_require__.bind(__webpack_require__, 99741)), {
  1466. loadableGenerated: {
  1467. modules: [
  1468. "../components/QuranReader/SidebarNavigation/SidebarNavigationSelections.tsx -> " + "./SurahSelection"
  1469. ]
  1470. },
  1471. loading: SidebarNavigation_SidebarSelectionSkeleton
  1472. });
  1473. const JuzSelection = dynamic_default()(()=>Promise.all(/* import() */[__webpack_require__.e(92631), __webpack_require__.e(73540)]).then(__webpack_require__.bind(__webpack_require__, 73540)), {
  1474. loadableGenerated: {
  1475. modules: [
  1476. "../components/QuranReader/SidebarNavigation/SidebarNavigationSelections.tsx -> " + "./JuzSelection"
  1477. ]
  1478. },
  1479. loading: SidebarNavigation_SidebarSelectionSkeleton
  1480. });
  1481. const SidebarNavigationSelections = ({ isVisible , selectedNavigationItem })=>{
  1482. // we skip requesting any selection list if the drawer is not open.
  1483. if (!isVisible) return /*#__PURE__*/ jsx_runtime_.jsx(jsx_runtime_.Fragment, {});
  1484. if (selectedNavigationItem === sidebarNavigation/* NavigationItem.Surah */.Dx.Surah) return /*#__PURE__*/ jsx_runtime_.jsx(SurahSelection, {});
  1485. if (selectedNavigationItem === sidebarNavigation/* NavigationItem.Juz */.Dx.Juz) return /*#__PURE__*/ jsx_runtime_.jsx(JuzSelection, {});
  1486. // if (selectedNavigationItem === NavigationItem.Hizb) return <HizbSelection />;
  1487. return /*#__PURE__*/ jsx_runtime_.jsx(PageSelection, {});
  1488. };
  1489. /* harmony default export */ const SidebarNavigation_SidebarNavigationSelections = (SidebarNavigationSelections);
  1490. /***/ }),
  1491. /***/ 38416:
  1492. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  1493. "use strict";
  1494. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  1495. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  1496. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  1497. /* harmony export */ });
  1498. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  1499. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  1500. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  1501. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  1502. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
  1503. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
  1504. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60866);
  1505. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__);
  1506. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6022);
  1507. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
  1508. /* harmony import */ var swr__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15941);
  1509. /* harmony import */ var _TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(40608);
  1510. /* harmony import */ var _TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_17__);
  1511. /* harmony import */ var _dls_Button_Button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(50497);
  1512. /* harmony import */ var _dls_Toast_Toast__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(79717);
  1513. /* harmony import */ var _icons_bookmark_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(99241);
  1514. /* harmony import */ var _redux_slices_QuranReader_bookmarks__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(24213);
  1515. /* harmony import */ var _redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(62093);
  1516. /* harmony import */ var _utils_api__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(4917);
  1517. /* harmony import */ var _utils_auth_api__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(37883);
  1518. /* harmony import */ var _utils_auth_apiPaths__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(13830);
  1519. /* harmony import */ var _utils_auth_login__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(22197);
  1520. /* harmony import */ var _utils_eventLogger__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(55943);
  1521. /* harmony import */ var types_BookmarkType__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(45788);
  1522. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr__WEBPACK_IMPORTED_MODULE_5__, _dls_Button_Button__WEBPACK_IMPORTED_MODULE_6__, _dls_Toast_Toast__WEBPACK_IMPORTED_MODULE_7__, _utils_auth_login__WEBPACK_IMPORTED_MODULE_14__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_15__]);
  1523. ([swr__WEBPACK_IMPORTED_MODULE_5__, _dls_Button_Button__WEBPACK_IMPORTED_MODULE_6__, _dls_Toast_Toast__WEBPACK_IMPORTED_MODULE_7__, _utils_auth_login__WEBPACK_IMPORTED_MODULE_14__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_15__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  1524. /* eslint-disable react-func/max-lines-per-function */
  1525. const BookmarkIcon = ({ verse , pageBookmarks , bookmarksRangeUrl })=>{
  1526. const { t } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default()("quran-reader");
  1527. const quranReaderStyles = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_10__/* .selectQuranReaderStyles */ .Pt, react_redux__WEBPACK_IMPORTED_MODULE_4__.shallowEqual);
  1528. const bookmarkedVerses = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_bookmarks__WEBPACK_IMPORTED_MODULE_9__/* .selectBookmarks */ .it, react_redux__WEBPACK_IMPORTED_MODULE_4__.shallowEqual);
  1529. const { cache , mutate } = (0,swr__WEBPACK_IMPORTED_MODULE_5__.useSWRConfig)();
  1530. const toast = (0,_dls_Toast_Toast__WEBPACK_IMPORTED_MODULE_7__/* .useToast */ .pm)();
  1531. const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
  1532. const isVerseBookmarked = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{
  1533. const isUserLoggedIn = (0,_utils_auth_login__WEBPACK_IMPORTED_MODULE_14__/* .isLoggedIn */ .jl)();
  1534. if (isUserLoggedIn && pageBookmarks) {
  1535. return !!pageBookmarks[verse.verseKey];
  1536. }
  1537. return !!bookmarkedVerses[verse.verseKey];
  1538. }, [
  1539. bookmarkedVerses,
  1540. pageBookmarks,
  1541. verse.verseKey
  1542. ]);
  1543. if (!isVerseBookmarked) return null;
  1544. const mushafId = (0,_utils_api__WEBPACK_IMPORTED_MODULE_11__/* .getMushafId */ .$P)(quranReaderStyles.quranFont, quranReaderStyles.mushafLines).mushaf;
  1545. const onClick = ()=>{
  1546. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_15__/* .logButtonClick */ .MY)("translation_view_un_bookmark_verse");
  1547. if ((0,_utils_auth_login__WEBPACK_IMPORTED_MODULE_14__/* .isLoggedIn */ .jl)()) {
  1548. const bookmarkedVersesRange = cache.get(bookmarksRangeUrl);
  1549. const nextBookmarkedVersesRange = {
  1550. ...bookmarkedVersesRange,
  1551. [verse.verseKey]: !isVerseBookmarked
  1552. };
  1553. mutate(bookmarksRangeUrl, nextBookmarkedVersesRange, {
  1554. revalidate: false
  1555. });
  1556. cache.delete((0,_utils_auth_apiPaths__WEBPACK_IMPORTED_MODULE_13__/* .makeBookmarkUrl */ .Wn)(mushafId, Number(verse.chapterId), types_BookmarkType__WEBPACK_IMPORTED_MODULE_16__/* ["default"].Ayah */ .Z.Ayah, Number(verse.verseNumber)));
  1557. const bookmarkId = pageBookmarks[verse.verseKey].id;
  1558. if (bookmarkId) {
  1559. (0,_utils_auth_api__WEBPACK_IMPORTED_MODULE_12__/* .deleteBookmarkById */ .ez)(bookmarkId).catch((err)=>{
  1560. if (err.status === 400) {
  1561. toast(t("common:error.bookmark-sync"), {
  1562. status: _dls_Toast_Toast__WEBPACK_IMPORTED_MODULE_7__/* .ToastStatus.Error */ .YZ.Error
  1563. });
  1564. return;
  1565. }
  1566. toast(t("common:error.general"), {
  1567. status: _dls_Toast_Toast__WEBPACK_IMPORTED_MODULE_7__/* .ToastStatus.Error */ .YZ.Error
  1568. });
  1569. });
  1570. }
  1571. } else {
  1572. dispatch((0,_redux_slices_QuranReader_bookmarks__WEBPACK_IMPORTED_MODULE_9__/* .toggleVerseBookmark */ .b2)(verse.verseKey));
  1573. }
  1574. };
  1575. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .ZP, {
  1576. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_17___default().iconContainer), (_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_17___default().verseAction)),
  1577. onClick: onClick,
  1578. tooltip: t("remove-bookmark"),
  1579. variant: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_6__/* .ButtonVariant.Ghost */ .Wu.Ghost,
  1580. size: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_6__/* .ButtonSize.Small */ .qE.Small,
  1581. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_bookmark_svg__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {})
  1582. });
  1583. };
  1584. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (BookmarkIcon);
  1585. __webpack_async_result__();
  1586. } catch(e) { __webpack_async_result__(e); } });
  1587. /***/ }),
  1588. /***/ 69033:
  1589. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  1590. "use strict";
  1591. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  1592. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  1593. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  1594. /* harmony export */ });
  1595. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  1596. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  1597. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  1598. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  1599. /* harmony import */ var _xstate_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59456);
  1600. /* harmony import */ var _xstate_react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_xstate_react__WEBPACK_IMPORTED_MODULE_2__);
  1601. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(59003);
  1602. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);
  1603. /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(71853);
  1604. /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_4__);
  1605. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6022);
  1606. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_5__);
  1607. /* harmony import */ var _utils_memoization__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(52544);
  1608. /* harmony import */ var _BookmarkIcon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(38416);
  1609. /* harmony import */ var _TranslationText__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(18809);
  1610. /* harmony import */ var _TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(40608);
  1611. /* harmony import */ var _TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21__);
  1612. /* harmony import */ var _components_Onboarding_OnboardingProvider__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(51879);
  1613. /* harmony import */ var _components_QuranReader_QuranReflectButton__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(87920);
  1614. /* harmony import */ var _components_QuranReader_TafsirButton__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(5369);
  1615. /* harmony import */ var _components_Verse_Notes__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(2401);
  1616. /* harmony import */ var _components_Verse_OverflowVerseActionsMenu__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(35527);
  1617. /* harmony import */ var _components_Verse_PlayVerseAudioButton__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(70256);
  1618. /* harmony import */ var _components_Verse_VerseLink__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(16413);
  1619. /* harmony import */ var _components_Verse_VerseText__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(36716);
  1620. /* harmony import */ var _dls_Separator_Separator__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(94400);
  1621. /* harmony import */ var _hooks_useScrollToElement__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(56748);
  1622. /* harmony import */ var _redux_slices_AudioPlayer_state__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(53800);
  1623. /* harmony import */ var _utils_verse__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(44519);
  1624. /* harmony import */ var src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(64564);
  1625. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_BookmarkIcon__WEBPACK_IMPORTED_MODULE_6__, _TranslationText__WEBPACK_IMPORTED_MODULE_7__, _components_Onboarding_OnboardingProvider__WEBPACK_IMPORTED_MODULE_8__, _components_QuranReader_QuranReflectButton__WEBPACK_IMPORTED_MODULE_9__, _components_QuranReader_TafsirButton__WEBPACK_IMPORTED_MODULE_10__, _components_Verse_Notes__WEBPACK_IMPORTED_MODULE_11__, _components_Verse_OverflowVerseActionsMenu__WEBPACK_IMPORTED_MODULE_12__, _components_Verse_PlayVerseAudioButton__WEBPACK_IMPORTED_MODULE_13__, _components_Verse_VerseLink__WEBPACK_IMPORTED_MODULE_14__, _components_Verse_VerseText__WEBPACK_IMPORTED_MODULE_15__, _dls_Separator_Separator__WEBPACK_IMPORTED_MODULE_16__, src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_20__]);
  1626. ([_BookmarkIcon__WEBPACK_IMPORTED_MODULE_6__, _TranslationText__WEBPACK_IMPORTED_MODULE_7__, _components_Onboarding_OnboardingProvider__WEBPACK_IMPORTED_MODULE_8__, _components_QuranReader_QuranReflectButton__WEBPACK_IMPORTED_MODULE_9__, _components_QuranReader_TafsirButton__WEBPACK_IMPORTED_MODULE_10__, _components_Verse_Notes__WEBPACK_IMPORTED_MODULE_11__, _components_Verse_OverflowVerseActionsMenu__WEBPACK_IMPORTED_MODULE_12__, _components_Verse_PlayVerseAudioButton__WEBPACK_IMPORTED_MODULE_13__, _components_Verse_VerseLink__WEBPACK_IMPORTED_MODULE_14__, _components_Verse_VerseText__WEBPACK_IMPORTED_MODULE_15__, _dls_Separator_Separator__WEBPACK_IMPORTED_MODULE_16__, src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_20__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  1627. const TranslationViewCell = ({ verse , quranReaderStyles , verseIndex , pageBookmarks , bookmarksRangeUrl , hasNotes , })=>{
  1628. const router = (0,next_router__WEBPACK_IMPORTED_MODULE_4__.useRouter)();
  1629. const { startingVerse } = router.query;
  1630. const audioService = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(src_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_20__/* .AudioPlayerMachineContext */ .c);
  1631. const isHighlighted = (0,_xstate_react__WEBPACK_IMPORTED_MODULE_2__.useSelector)(audioService, (state)=>{
  1632. const { ayahNumber , surah } = state.context;
  1633. return (0,_utils_verse__WEBPACK_IMPORTED_MODULE_19__/* .makeVerseKey */ .u)(surah, ayahNumber) === verse.verseKey;
  1634. });
  1635. const { isActive } = (0,_components_Onboarding_OnboardingProvider__WEBPACK_IMPORTED_MODULE_8__/* .useOnboarding */ .P)();
  1636. // disable auto scrolling when the user is onboarding
  1637. const enableAutoScrolling = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(_redux_slices_AudioPlayer_state__WEBPACK_IMPORTED_MODULE_18__/* .selectEnableAutoScrolling */ .Mj) && !isActive;
  1638. const [scrollToSelectedItem, selectedItemRef] = (0,_hooks_useScrollToElement__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .ZP)(_hooks_useScrollToElement__WEBPACK_IMPORTED_MODULE_17__/* .SMOOTH_SCROLL_TO_TOP */ .gZ);
  1639. (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{
  1640. if (isHighlighted && enableAutoScrolling || Number(startingVerse) === verseIndex + 1) {
  1641. scrollToSelectedItem();
  1642. }
  1643. }, [
  1644. isHighlighted,
  1645. scrollToSelectedItem,
  1646. enableAutoScrolling,
  1647. startingVerse,
  1648. verseIndex
  1649. ]);
  1650. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  1651. ref: selectedItemRef,
  1652. children: [
  1653. /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  1654. className: classnames__WEBPACK_IMPORTED_MODULE_3___default()((_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().cellContainer), {
  1655. [(_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().highlightedContainer)]: isHighlighted
  1656. }),
  1657. children: [
  1658. /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  1659. className: (_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().actionContainer),
  1660. children: [
  1661. /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  1662. className: (_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().actionContainerLeft),
  1663. children: [
  1664. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1665. className: (_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().actionItem),
  1666. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_Verse_VerseLink__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z, {
  1667. verseKey: verse.verseKey
  1668. })
  1669. }),
  1670. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1671. className: (_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().actionItem),
  1672. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_BookmarkIcon__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
  1673. verse: verse,
  1674. pageBookmarks: pageBookmarks,
  1675. bookmarksRangeUrl: bookmarksRangeUrl
  1676. })
  1677. }),
  1678. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1679. className: (_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().actionItem),
  1680. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_Verse_Notes__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {
  1681. verseKey: verse.verseKey,
  1682. isTranslationView: true,
  1683. hasNotes: hasNotes
  1684. })
  1685. }),
  1686. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1687. className: classnames__WEBPACK_IMPORTED_MODULE_3___default()((_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().actionItem), (_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().priorityAction)),
  1688. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_Verse_PlayVerseAudioButton__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, {
  1689. verseKey: verse.verseKey
  1690. })
  1691. }),
  1692. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1693. className: classnames__WEBPACK_IMPORTED_MODULE_3___default()((_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().actionItem)),
  1694. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_QuranReader_TafsirButton__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
  1695. verseKey: verse.verseKey
  1696. })
  1697. }),
  1698. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1699. className: classnames__WEBPACK_IMPORTED_MODULE_3___default()((_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().actionItem)),
  1700. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_QuranReader_QuranReflectButton__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {
  1701. verseKey: verse.verseKey
  1702. })
  1703. })
  1704. ]
  1705. }),
  1706. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1707. className: (_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().actionContainerRight),
  1708. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1709. className: (_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().actionItem),
  1710. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_Verse_OverflowVerseActionsMenu__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z, {
  1711. bookmarksRangeUrl: bookmarksRangeUrl,
  1712. verse: verse
  1713. })
  1714. })
  1715. })
  1716. ]
  1717. }),
  1718. /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  1719. className: classnames__WEBPACK_IMPORTED_MODULE_3___default()((_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().contentContainer)),
  1720. children: [
  1721. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1722. className: (_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().arabicVerseContainer),
  1723. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_Verse_VerseText__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .Z, {
  1724. words: (0,_utils_verse__WEBPACK_IMPORTED_MODULE_19__/* .getVerseWords */ .LQ)(verse),
  1725. shouldShowH1ForSEO: verseIndex === 0
  1726. })
  1727. }),
  1728. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1729. className: (_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().verseTranslationsContainer),
  1730. children: verse.translations?.map((translation)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1731. className: (_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_21___default().verseTranslationContainer),
  1732. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_TranslationText__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
  1733. translationFontScale: quranReaderStyles.translationFontScale,
  1734. text: translation.text,
  1735. languageId: translation.languageId,
  1736. resourceName: verse.translations?.length > 1 ? translation.resourceName : null
  1737. })
  1738. }, translation.id))
  1739. })
  1740. ]
  1741. })
  1742. ]
  1743. }),
  1744. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Separator_Separator__WEBPACK_IMPORTED_MODULE_16__/* ["default"] */ .Z, {})
  1745. ]
  1746. });
  1747. };
  1748. /**
  1749. * Since we are passing verse and it's an object
  1750. * even if the same verse is passed, its reference will change
  1751. * on fetching a new page and since Memo only does shallow comparison,
  1752. * we need to use custom comparing logic:
  1753. *
  1754. * 1. Check if the verse id is the same.
  1755. * 2. Check if the font changed.
  1756. * 3. Check if number of translations are the same since on translation change, it should change.
  1757. *
  1758. * If the above condition is met, it's safe to assume that the result
  1759. * of both renders are the same.
  1760. *
  1761. * @param {TranslationViewCellProps} prevProps
  1762. * @param {TranslationViewCellProps} nextProps
  1763. * @returns {boolean}
  1764. */ const areVersesEqual = (prevProps, nextProps)=>prevProps.verse.id === nextProps.verse.id && prevProps.hasNotes === nextProps.hasNotes && !(0,_utils_memoization__WEBPACK_IMPORTED_MODULE_22__/* .verseFontChanged */ .RG)(prevProps.quranReaderStyles, nextProps.quranReaderStyles, prevProps.verse.words, nextProps.verse.words) && !(0,_utils_memoization__WEBPACK_IMPORTED_MODULE_22__/* .verseTranslationChanged */ .UH)(prevProps.verse, nextProps.verse) && !(0,_utils_memoization__WEBPACK_IMPORTED_MODULE_22__/* .verseTranslationFontChanged */ .r4)(prevProps.quranReaderStyles, nextProps.quranReaderStyles) && JSON.stringify(prevProps.pageBookmarks) === JSON.stringify(nextProps.pageBookmarks) && prevProps.bookmarksRangeUrl === nextProps.bookmarksRangeUrl;
  1765. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.memo)(TranslationViewCell, areVersesEqual));
  1766. __webpack_async_result__();
  1767. } catch(e) { __webpack_async_result__(e); } });
  1768. /***/ }),
  1769. /***/ 16706:
  1770. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  1771. "use strict";
  1772. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  1773. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  1774. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  1775. /* harmony export */ });
  1776. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  1777. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  1778. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  1779. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  1780. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60866);
  1781. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__);
  1782. /* harmony import */ var swr_immutable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(79847);
  1783. /* harmony import */ var _contexts_VerseTrackerContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(94921);
  1784. /* harmony import */ var _TranslationViewCell__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(69033);
  1785. /* harmony import */ var _components_chapters_ChapterHeader__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(59459);
  1786. /* harmony import */ var _hooks_auth_useCountRangeNotes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(54934);
  1787. /* harmony import */ var _utils_auth_api__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(37883);
  1788. /* harmony import */ var _utils_locale__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(24709);
  1789. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr_immutable__WEBPACK_IMPORTED_MODULE_3__, _TranslationViewCell__WEBPACK_IMPORTED_MODULE_5__, _components_chapters_ChapterHeader__WEBPACK_IMPORTED_MODULE_6__, _hooks_auth_useCountRangeNotes__WEBPACK_IMPORTED_MODULE_7__]);
  1790. ([swr_immutable__WEBPACK_IMPORTED_MODULE_3__, _TranslationViewCell__WEBPACK_IMPORTED_MODULE_5__, _components_chapters_ChapterHeader__WEBPACK_IMPORTED_MODULE_6__, _hooks_auth_useCountRangeNotes__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  1791. const TranslationPageVerse = ({ verse , selectedTranslations , bookmarksRangeUrl , mushafId , verseIdx , quranReaderStyles , initialData , firstVerseInPage , isLastVerseInView , notesRange , })=>{
  1792. const { t , lang } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default()("common");
  1793. const containerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
  1794. const { verseKeysQueue } = (0,_contexts_VerseTrackerContext__WEBPACK_IMPORTED_MODULE_4__/* .useVerseTrackerContext */ .h)();
  1795. const { data: pageBookmarks } = (0,swr_immutable__WEBPACK_IMPORTED_MODULE_3__["default"])(bookmarksRangeUrl, async ()=>{
  1796. const response = await (0,_utils_auth_api__WEBPACK_IMPORTED_MODULE_8__/* .getPageBookmarks */ .W7)(mushafId, Number(firstVerseInPage.chapterId), Number(firstVerseInPage.verseNumber), initialData.pagination.perPage);
  1797. return response;
  1798. });
  1799. const { data: notesCount } = (0,_hooks_auth_useCountRangeNotes__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z)(notesRange);
  1800. const getTranslationNameString = (translations)=>{
  1801. let translationName = t("settings.no-translation-selected");
  1802. if (translations?.length === 1) translationName = translations?.[0].resourceName;
  1803. if (translations?.length === 2) {
  1804. translationName = t("settings.value-and-other", {
  1805. value: translations?.[0].resourceName,
  1806. othersCount: (0,_utils_locale__WEBPACK_IMPORTED_MODULE_9__/* .toLocalizedNumber */ .rQ)(translations.length - 1, lang)
  1807. });
  1808. }
  1809. if (translations?.length > 2) {
  1810. translationName = t("settings.value-and-others", {
  1811. value: translations?.[0].resourceName,
  1812. othersCount: (0,_utils_locale__WEBPACK_IMPORTED_MODULE_9__/* .toLocalizedNumber */ .rQ)(translations.length - 1, lang)
  1813. });
  1814. }
  1815. return translationName;
  1816. };
  1817. (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{
  1818. let observer = null;
  1819. if (containerRef.current) {
  1820. observer = new IntersectionObserver((entries)=>{
  1821. if (entries[0].isIntersecting) {
  1822. verseKeysQueue.current.add(verse.verseKey);
  1823. }
  1824. }, {
  1825. root: null,
  1826. rootMargin: "0px",
  1827. threshold: 0.5
  1828. });
  1829. observer.observe(containerRef.current);
  1830. }
  1831. return ()=>{
  1832. observer?.disconnect();
  1833. };
  1834. }, [
  1835. isLastVerseInView,
  1836. verse,
  1837. verseKeysQueue
  1838. ]);
  1839. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  1840. ref: isLastVerseInView ? containerRef : undefined,
  1841. children: [
  1842. verse.verseNumber === 1 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_chapters_ChapterHeader__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
  1843. translationName: getTranslationNameString(verse.translations),
  1844. chapterId: String(verse.chapterId),
  1845. pageNumber: verse.pageNumber,
  1846. hizbNumber: verse.hizbNumber,
  1847. isTranslationSelected: selectedTranslations?.length > 0
  1848. }),
  1849. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_TranslationViewCell__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
  1850. verseIndex: verseIdx,
  1851. verse: verse,
  1852. quranReaderStyles: quranReaderStyles,
  1853. pageBookmarks: pageBookmarks,
  1854. bookmarksRangeUrl: bookmarksRangeUrl,
  1855. hasNotes: notesCount && notesCount[verse.verseKey] > 0
  1856. }, verse.id)
  1857. ]
  1858. });
  1859. };
  1860. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TranslationPageVerse);
  1861. __webpack_async_result__();
  1862. } catch(e) { __webpack_async_result__(e); } });
  1863. /***/ }),
  1864. /***/ 94031:
  1865. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  1866. "use strict";
  1867. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  1868. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  1869. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  1870. /* harmony export */ });
  1871. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  1872. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  1873. /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71853);
  1874. /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_1__);
  1875. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60866);
  1876. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__);
  1877. /* harmony import */ var swr_immutable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(79847);
  1878. /* harmony import */ var _components_QuranReader_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(96435);
  1879. /* harmony import */ var _hooks_useIsUsingDefaultSettings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(35507);
  1880. /* harmony import */ var _types_QuranReader__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(50467);
  1881. /* harmony import */ var _utils_auth_apiPaths__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13830);
  1882. /* harmony import */ var _utils_auth_login__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(22197);
  1883. /* harmony import */ var _utils_number__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(19303);
  1884. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr_immutable__WEBPACK_IMPORTED_MODULE_3__, _hooks_useIsUsingDefaultSettings__WEBPACK_IMPORTED_MODULE_5__, _utils_auth_login__WEBPACK_IMPORTED_MODULE_8__]);
  1885. ([swr_immutable__WEBPACK_IMPORTED_MODULE_3__, _hooks_useIsUsingDefaultSettings__WEBPACK_IMPORTED_MODULE_5__, _utils_auth_login__WEBPACK_IMPORTED_MODULE_8__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  1886. /**
  1887. * This hook fetches the verse of the given `verseIdx` and dedupes the data based on their page number.
  1888. *
  1889. * For an example, passing `verseIdx` of `0 | 1 | 2 | 3 | 4` should only trigger one API request because they are all in the same page.
  1890. *
  1891. * @param {QuranReaderParams} params
  1892. * @returns {UseDedupedFetchVerseResult}
  1893. */ const useDedupedFetchVerse = ({ quranReaderDataType , quranReaderStyles , wordByWordLocale , reciterId , resourceId , selectedTranslations , initialData , setApiPageToVersesMap , mushafId , verseIdx })=>{
  1894. const router = (0,next_router__WEBPACK_IMPORTED_MODULE_1__.useRouter)();
  1895. const { lang } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default()();
  1896. const translationParams = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>router.query.translations?.split(",")?.map((translation)=>Number(translation)), [
  1897. router.query.translations
  1898. ]);
  1899. const pageNumber = (0,_utils_number__WEBPACK_IMPORTED_MODULE_9__/* .getPageNumberFromIndexAndPerPage */ .XN)(verseIdx, initialData.pagination.perPage);
  1900. const idxInPage = verseIdx % initialData.pagination.perPage;
  1901. const isUsingDefaultSettings = (0,_hooks_useIsUsingDefaultSettings__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z)({
  1902. translationParams,
  1903. selectedTranslations
  1904. });
  1905. const shouldUseInitialData = pageNumber === 1 && isUsingDefaultSettings;
  1906. const { data: verses } = (0,swr_immutable__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_components_QuranReader_api__WEBPACK_IMPORTED_MODULE_4__/* .getTranslationViewRequestKey */ .rB)({
  1907. quranReaderDataType,
  1908. pageNumber,
  1909. initialData,
  1910. quranReaderStyles,
  1911. selectedTranslations,
  1912. isVerseData: quranReaderDataType === _types_QuranReader__WEBPACK_IMPORTED_MODULE_6__/* .QuranReaderDataType.Verse */ .Qi.Verse,
  1913. id: resourceId,
  1914. reciter: reciterId,
  1915. locale: lang,
  1916. wordByWordLocale
  1917. }), _components_QuranReader_api__WEBPACK_IMPORTED_MODULE_4__/* .verseFetcher */ .f3, {
  1918. fallbackData: shouldUseInitialData ? initialData.verses : undefined
  1919. });
  1920. (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
  1921. if (verses) {
  1922. // @ts-ignore
  1923. setApiPageToVersesMap((prevMushafPageToVersesMap)=>({
  1924. ...prevMushafPageToVersesMap,
  1925. [pageNumber]: verses
  1926. }));
  1927. }
  1928. }, [
  1929. pageNumber,
  1930. setApiPageToVersesMap,
  1931. verses
  1932. ]);
  1933. const bookmarksRangeUrl = verses && verses.length && (0,_utils_auth_login__WEBPACK_IMPORTED_MODULE_8__/* .isLoggedIn */ .jl)() ? (0,_utils_auth_apiPaths__WEBPACK_IMPORTED_MODULE_7__/* .makeBookmarksRangeUrl */ .SH)(mushafId, Number(verses?.[0].chapterId), Number(verses?.[0].verseNumber), initialData.pagination.perPage) : null;
  1934. const verse = verses ? verses[idxInPage] : null;
  1935. // This part handles an edge case where the user has no selected translations but the `initialData` sent from server-side rendering has a default translation.
  1936. // So, we need to remove the translations from the verse if the user has no selected translations.
  1937. if (verse && selectedTranslations.length === 0) {
  1938. verse.translations = [];
  1939. }
  1940. return {
  1941. verse,
  1942. firstVerseInPage: verses ? verses[0] : null,
  1943. bookmarksRangeUrl,
  1944. notesRange: verses && verses.length > 0 ? {
  1945. from: verses?.[0].verseKey,
  1946. to: verses?.[verses.length - 1].verseKey
  1947. } : null
  1948. };
  1949. };
  1950. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useDedupedFetchVerse);
  1951. __webpack_async_result__();
  1952. } catch(e) { __webpack_async_result__(e); } });
  1953. /***/ }),
  1954. /***/ 68249:
  1955. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  1956. "use strict";
  1957. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  1958. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  1959. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  1960. /* harmony export */ });
  1961. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  1962. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  1963. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  1964. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  1965. /* harmony import */ var _TranslationView_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(78789);
  1966. /* harmony import */ var _TranslationView_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_TranslationView_module_scss__WEBPACK_IMPORTED_MODULE_6__);
  1967. /* harmony import */ var _TranslationViewCellSkeleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80587);
  1968. /* harmony import */ var _hooks_useDedupedFetchVerse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(94031);
  1969. /* harmony import */ var _TranslationPageVerse__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16706);
  1970. /* harmony import */ var _utils_api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4917);
  1971. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_TranslationViewCellSkeleton__WEBPACK_IMPORTED_MODULE_2__, _hooks_useDedupedFetchVerse__WEBPACK_IMPORTED_MODULE_3__, _TranslationPageVerse__WEBPACK_IMPORTED_MODULE_4__]);
  1972. ([_TranslationViewCellSkeleton__WEBPACK_IMPORTED_MODULE_2__, _hooks_useDedupedFetchVerse__WEBPACK_IMPORTED_MODULE_3__, _TranslationPageVerse__WEBPACK_IMPORTED_MODULE_4__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  1973. /* eslint-disable max-lines */
  1974. const TranslationViewVerse = ({ quranReaderDataType , wordByWordLocale , reciterId , resourceId , setApiPageToVersesMap , initialData , quranReaderStyles , selectedTranslations , verseIdx , totalVerses , })=>{
  1975. const mushafId = (0,_utils_api__WEBPACK_IMPORTED_MODULE_5__/* .getMushafId */ .$P)(quranReaderStyles.quranFont, quranReaderStyles.mushafLines).mushaf;
  1976. const { verse , firstVerseInPage , bookmarksRangeUrl , notesRange } = (0,_hooks_useDedupedFetchVerse__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({
  1977. verseIdx,
  1978. quranReaderDataType,
  1979. quranReaderStyles,
  1980. wordByWordLocale,
  1981. reciterId,
  1982. resourceId,
  1983. selectedTranslations,
  1984. initialData,
  1985. setApiPageToVersesMap,
  1986. mushafId
  1987. });
  1988. if (!verse) {
  1989. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1990. className: (_TranslationView_module_scss__WEBPACK_IMPORTED_MODULE_6___default().container),
  1991. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_TranslationViewCellSkeleton__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {})
  1992. });
  1993. }
  1994. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  1995. className: (_TranslationView_module_scss__WEBPACK_IMPORTED_MODULE_6___default().container),
  1996. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_TranslationPageVerse__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
  1997. isLastVerseInView: verseIdx + 1 === totalVerses,
  1998. verse: verse,
  1999. verseIdx: verseIdx,
  2000. mushafId: mushafId,
  2001. quranReaderStyles: quranReaderStyles,
  2002. selectedTranslations: selectedTranslations,
  2003. bookmarksRangeUrl: bookmarksRangeUrl,
  2004. initialData: initialData,
  2005. firstVerseInPage: firstVerseInPage,
  2006. notesRange: notesRange
  2007. })
  2008. });
  2009. };
  2010. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TranslationViewVerse);
  2011. __webpack_async_result__();
  2012. } catch(e) { __webpack_async_result__(e); } });
  2013. /***/ }),
  2014. /***/ 23712:
  2015. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  2016. "use strict";
  2017. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  2018. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  2019. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  2020. /* harmony export */ });
  2021. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  2022. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  2023. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6022);
  2024. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
  2025. /* harmony import */ var _components_QuranReader_hooks_useFetchPagesLookup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24881);
  2026. /* harmony import */ var _contexts_DataContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70813);
  2027. /* harmony import */ var _redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(62093);
  2028. /* harmony import */ var _utils_verseKeys__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(36495);
  2029. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_components_QuranReader_hooks_useFetchPagesLookup__WEBPACK_IMPORTED_MODULE_2__]);
  2030. _components_QuranReader_hooks_useFetchPagesLookup__WEBPACK_IMPORTED_MODULE_2__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
  2031. /**
  2032. * This hooks calculates the total number of verses based on the verses range
  2033. * and the current Mushaf settings
  2034. *
  2035. * @param {number|string} resourceId
  2036. * @param {QuranReaderDataType} quranReaderDataType
  2037. * @param {VersesResponse} initialData
  2038. * @param {QuranReaderStyles} quranReaderStyles
  2039. *
  2040. * @returns {number} versesCount
  2041. */ const useGetVersesCount = ({ resourceId , quranReaderDataType , initialData , quranReaderStyles , })=>{
  2042. const isUsingDefaultFont = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__.useSelector)(_redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_4__/* .selectIsUsingDefaultFont */ .i9);
  2043. const { lookupRange } = (0,_components_QuranReader_hooks_useFetchPagesLookup__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(resourceId, quranReaderDataType, initialData, quranReaderStyles, isUsingDefaultFont);
  2044. const chaptersData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_contexts_DataContext__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z);
  2045. const versesCount = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>{
  2046. return (0,_utils_verseKeys__WEBPACK_IMPORTED_MODULE_5__/* .generateVerseKeysBetweenTwoVerseKeys */ .h)(chaptersData, lookupRange.from, lookupRange.to).length;
  2047. }, [
  2048. chaptersData,
  2049. lookupRange.from,
  2050. lookupRange.to
  2051. ]);
  2052. return versesCount;
  2053. };
  2054. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useGetVersesCount);
  2055. __webpack_async_result__();
  2056. } catch(e) { __webpack_async_result__(e); } });
  2057. /***/ }),
  2058. /***/ 38945:
  2059. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  2060. "use strict";
  2061. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  2062. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  2063. /* harmony export */ });
  2064. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  2065. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  2066. /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71853);
  2067. /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_1__);
  2068. /* harmony import */ var _contexts_VerseTrackerContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94921);
  2069. /* harmony import */ var _contexts_DataContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70813);
  2070. /* harmony import */ var _utils_number__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(19303);
  2071. /* harmony import */ var _utils_validator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41051);
  2072. /* harmony import */ var _utils_verse__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44519);
  2073. /* harmony import */ var types_QuranReader__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(50467);
  2074. /* harmony import */ var types_ScrollAlign__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(57070);
  2075. /**
  2076. * This hook listens to startingVerse query param and navigate to
  2077. * the location where the verse is in the virtualized list.
  2078. *
  2079. * [NOTE]: This is meant to be used for TranslationView only.
  2080. *
  2081. * @param {QuranReaderDataType} quranReaderDataType
  2082. * @param {React.MutableRefObject<VirtuosoHandle>} virtuosoRef
  2083. * @param {Record<number, Verse[]>} apiPageToVersesMap
  2084. * @param {string} chapterId
  2085. * @param {number} versesPerPage
  2086. */ const useScrollToVirtualizedTranslationView = (quranReaderDataType, virtuosoRef, apiPageToVersesMap, chapterId, versesPerPage)=>{
  2087. const router = (0,next_router__WEBPACK_IMPORTED_MODULE_1__.useRouter)();
  2088. const chaptersData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_contexts_DataContext__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z);
  2089. const { 0: shouldReadjustScroll , 1: setShouldReadjustScroll } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
  2090. const timeoutId = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
  2091. const { verseKeysQueue , shouldTrackObservedVerses } = (0,_contexts_VerseTrackerContext__WEBPACK_IMPORTED_MODULE_2__/* .useVerseTrackerContext */ .h)();
  2092. const { startingVerse } = router.query;
  2093. const startingVerseNumber = Number(startingVerse);
  2094. const isValidStartingVerse = startingVerse && (0,_utils_validator__WEBPACK_IMPORTED_MODULE_4__/* .isValidVerseId */ .tW)(chaptersData, chapterId, String(startingVerse));
  2095. const scrollToBeginningOfVerseCell = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((verseNumber)=>{
  2096. const verseIndex = verseNumber - 1;
  2097. virtuosoRef.current.scrollToIndex({
  2098. index: verseIndex,
  2099. align: types_ScrollAlign__WEBPACK_IMPORTED_MODULE_7__/* ["default"].Start */ .Z.Start,
  2100. // this offset is to push the scroll a little bit down so that the context menu doesn't cover the verse
  2101. offset: -70
  2102. });
  2103. }, [
  2104. virtuosoRef
  2105. ]);
  2106. // this effect runs when there is initially a `startingVerse` in the url or when the user navigates to a new verse
  2107. // it scrolls to the beginning of the verse cell and we set `shouldReadjustScroll` to true so that the other effect
  2108. // adjusts the scroll to the correct position
  2109. (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
  2110. if (quranReaderDataType === types_QuranReader__WEBPACK_IMPORTED_MODULE_6__/* .QuranReaderDataType.Chapter */ .Qi.Chapter && isValidStartingVerse) {
  2111. scrollToBeginningOfVerseCell(startingVerseNumber);
  2112. setShouldReadjustScroll(true);
  2113. }
  2114. }, [
  2115. quranReaderDataType,
  2116. startingVerseNumber,
  2117. isValidStartingVerse,
  2118. scrollToBeginningOfVerseCell,
  2119. ]);
  2120. // this effect handles the case when the user navigates to a verse that is not yet loaded
  2121. // we need to wait for the verse to be loaded and then scroll to it
  2122. (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
  2123. if (quranReaderDataType === types_QuranReader__WEBPACK_IMPORTED_MODULE_6__/* .QuranReaderDataType.Chapter */ .Qi.Chapter && isValidStartingVerse && // we only want to run this effect when the user navigates to a new verse
  2124. // and not when the user is scrolling through the verses while apiPageToVersesMap is being populated
  2125. shouldReadjustScroll) {
  2126. shouldTrackObservedVerses.current = false;
  2127. const pageNumber = (0,_utils_number__WEBPACK_IMPORTED_MODULE_8__/* .getPageNumberFromIndexAndPerPage */ .XN)(startingVerseNumber - 1, versesPerPage);
  2128. const isFirstVerseInPage = startingVerseNumber % versesPerPage === 1;
  2129. const isBeforeDoneLoading = pageNumber > 1 && isFirstVerseInPage ? !!apiPageToVersesMap[pageNumber - 1] : true;
  2130. const isDoneLoading = !!apiPageToVersesMap[pageNumber] && isBeforeDoneLoading;
  2131. // if the verse finished loading, or the one right before, we `setTimeout` and scroll to the beginning of the verse cell (this is a hacky solution so that the verse renders before we scroll to it)
  2132. // and set `shouldReadjustScroll` to false so that this effect doesn't run again
  2133. //
  2134. // otherwise, we use `scrollToBeginningOfVerseCell` to scroll near the beginning of the verse cell without setting `shouldReadjustScroll` to false so that this effect runs again when the data loads
  2135. if (isDoneLoading) {
  2136. if (timeoutId.current !== null) {
  2137. clearTimeout(timeoutId.current);
  2138. }
  2139. timeoutId.current = setTimeout(()=>{
  2140. scrollToBeginningOfVerseCell(startingVerseNumber);
  2141. shouldTrackObservedVerses.current = true;
  2142. // we need to add the verse we scrolled to to the queue
  2143. verseKeysQueue.current.add((0,_utils_verse__WEBPACK_IMPORTED_MODULE_5__/* .makeVerseKey */ .u)(chapterId, startingVerseNumber));
  2144. }, 1000);
  2145. setShouldReadjustScroll(false);
  2146. } else {
  2147. scrollToBeginningOfVerseCell(startingVerseNumber);
  2148. }
  2149. }
  2150. }, [
  2151. shouldReadjustScroll,
  2152. startingVerseNumber,
  2153. isValidStartingVerse,
  2154. apiPageToVersesMap,
  2155. quranReaderDataType,
  2156. versesPerPage,
  2157. scrollToBeginningOfVerseCell,
  2158. virtuosoRef,
  2159. shouldTrackObservedVerses,
  2160. verseKeysQueue,
  2161. chapterId,
  2162. ]);
  2163. // this effect clears the timeout when the component unmounts
  2164. (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
  2165. return ()=>{
  2166. if (timeoutId.current !== null) {
  2167. clearTimeout(timeoutId.current);
  2168. }
  2169. };
  2170. }, []);
  2171. };
  2172. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useScrollToVirtualizedTranslationView);
  2173. /***/ }),
  2174. /***/ 55413:
  2175. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  2176. "use strict";
  2177. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  2178. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  2179. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  2180. /* harmony export */ });
  2181. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  2182. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  2183. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  2184. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  2185. /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(96954);
  2186. /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dynamic__WEBPACK_IMPORTED_MODULE_2__);
  2187. /* harmony import */ var react_virtuoso__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(78404);
  2188. /* harmony import */ var react_virtuoso__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_virtuoso__WEBPACK_IMPORTED_MODULE_3__);
  2189. /* harmony import */ var _onCopyQuranWords__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(12383);
  2190. /* harmony import */ var _QueryParamMessage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(61269);
  2191. /* harmony import */ var _hooks_useGetVersesCount__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(23712);
  2192. /* harmony import */ var _hooks_useScrollToVirtualizedVerse__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(38945);
  2193. /* harmony import */ var _TranslationView_module_scss__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(78789);
  2194. /* harmony import */ var _TranslationView_module_scss__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_TranslationView_module_scss__WEBPACK_IMPORTED_MODULE_14__);
  2195. /* harmony import */ var _TranslationViewVerse__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(68249);
  2196. /* harmony import */ var _dls_Spinner_Spinner__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7190);
  2197. /* harmony import */ var _hooks_useGetQueryParamOrReduxValue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(80211);
  2198. /* harmony import */ var _hooks_useGetQueryParamOrXstateValue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(93134);
  2199. /* harmony import */ var _hooks_useQcfFont__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(38102);
  2200. /* harmony import */ var types_QueryParam__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(11721);
  2201. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_onCopyQuranWords__WEBPACK_IMPORTED_MODULE_4__, _QueryParamMessage__WEBPACK_IMPORTED_MODULE_5__, _hooks_useGetVersesCount__WEBPACK_IMPORTED_MODULE_6__, _TranslationViewVerse__WEBPACK_IMPORTED_MODULE_8__, _hooks_useGetQueryParamOrXstateValue__WEBPACK_IMPORTED_MODULE_11__]);
  2202. ([_onCopyQuranWords__WEBPACK_IMPORTED_MODULE_4__, _QueryParamMessage__WEBPACK_IMPORTED_MODULE_5__, _hooks_useGetVersesCount__WEBPACK_IMPORTED_MODULE_6__, _TranslationViewVerse__WEBPACK_IMPORTED_MODULE_8__, _hooks_useGetQueryParamOrXstateValue__WEBPACK_IMPORTED_MODULE_11__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  2203. /* eslint-disable max-lines */ /* eslint-disable react/no-multi-comp */
  2204. const EndOfScrollingControls = next_dynamic__WEBPACK_IMPORTED_MODULE_2___default()(null, {
  2205. loadableGenerated: {
  2206. modules: [
  2207. "../components/QuranReader/TranslationView/index.tsx -> " + "../EndOfScrollingControls"
  2208. ]
  2209. },
  2210. ssr: false,
  2211. loading: ()=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Spinner_Spinner__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {})
  2212. });
  2213. const INCREASE_VIEWPORT_BY_PIXELS = 1000;
  2214. const TranslationView = ({ quranReaderStyles , quranReaderDataType , initialData , resourceId })=>{
  2215. const { 0: apiPageToVersesMap , 1: setApiPageToVersesMap } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({
  2216. 1: initialData.verses
  2217. });
  2218. const { value: reciterId , isQueryParamDifferent: reciterQueryParamDifferent , } = (0,_hooks_useGetQueryParamOrXstateValue__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z)(types_QueryParam__WEBPACK_IMPORTED_MODULE_13__/* ["default"].Reciter */ .Z.Reciter);
  2219. const { value: selectedTranslations , isQueryParamDifferent: translationsQueryParamDifferent , } = (0,_hooks_useGetQueryParamOrReduxValue__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z)(types_QueryParam__WEBPACK_IMPORTED_MODULE_13__/* ["default"].Translations */ .Z.Translations);
  2220. const { value: wordByWordLocale , isQueryParamDifferent: wordByWordLocaleQueryParamDifferent , } = (0,_hooks_useGetQueryParamOrReduxValue__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z)(types_QueryParam__WEBPACK_IMPORTED_MODULE_13__/* ["default"].WBW_LOCALE */ .Z.WBW_LOCALE);
  2221. const versesCount = (0,_hooks_useGetVersesCount__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z)({
  2222. resourceId,
  2223. quranReaderDataType,
  2224. initialData,
  2225. quranReaderStyles
  2226. });
  2227. const virtuosoRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
  2228. (0,_hooks_useScrollToVirtualizedVerse__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z)(quranReaderDataType, virtuosoRef, apiPageToVersesMap, String(resourceId), initialData.pagination.perPage);
  2229. const verses = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>Object.values(apiPageToVersesMap).flat(), [
  2230. apiPageToVersesMap
  2231. ]);
  2232. (0,_hooks_useQcfFont__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z)(quranReaderStyles.quranFont, verses);
  2233. const itemContentRenderer = (verseIdx)=>{
  2234. if (verseIdx === versesCount) {
  2235. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(EndOfScrollingControls, {
  2236. quranReaderDataType: quranReaderDataType,
  2237. lastVerse: verses[verses.length - 1],
  2238. initialData: initialData
  2239. });
  2240. }
  2241. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_TranslationViewVerse__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
  2242. verseIdx: verseIdx,
  2243. totalVerses: versesCount,
  2244. quranReaderDataType: quranReaderDataType,
  2245. quranReaderStyles: quranReaderStyles,
  2246. setApiPageToVersesMap: setApiPageToVersesMap,
  2247. selectedTranslations: selectedTranslations,
  2248. wordByWordLocale: wordByWordLocale,
  2249. reciterId: reciterId,
  2250. initialData: initialData,
  2251. resourceId: resourceId
  2252. });
  2253. };
  2254. const shouldShowQueryParamMessage = translationsQueryParamDifferent || reciterQueryParamDifferent || wordByWordLocaleQueryParamDifferent;
  2255. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
  2256. children: [
  2257. shouldShowQueryParamMessage && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_QueryParamMessage__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
  2258. translationsQueryParamDifferent: translationsQueryParamDifferent,
  2259. reciterQueryParamDifferent: reciterQueryParamDifferent,
  2260. wordByWordLocaleQueryParamDifferent: wordByWordLocaleQueryParamDifferent
  2261. }),
  2262. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  2263. className: (_TranslationView_module_scss__WEBPACK_IMPORTED_MODULE_14___default().wrapper),
  2264. onCopy: (event)=>(0,_onCopyQuranWords__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(event, verses, quranReaderStyles.quranFont),
  2265. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_virtuoso__WEBPACK_IMPORTED_MODULE_3__.Virtuoso, {
  2266. ref: virtuosoRef,
  2267. useWindowScroll: true,
  2268. totalCount: versesCount + 1,
  2269. increaseViewportBy: INCREASE_VIEWPORT_BY_PIXELS,
  2270. initialItemCount: 1,
  2271. itemContent: itemContentRenderer
  2272. })
  2273. })
  2274. ]
  2275. });
  2276. };
  2277. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TranslationView);
  2278. __webpack_async_result__();
  2279. } catch(e) { __webpack_async_result__(e); } });
  2280. /***/ }),
  2281. /***/ 96435:
  2282. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  2283. "use strict";
  2284. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  2285. /* harmony export */ "MD": () => (/* binding */ getPagesLookupParams),
  2286. /* harmony export */ "f3": () => (/* binding */ verseFetcher),
  2287. /* harmony export */ "oA": () => (/* binding */ getReaderViewRequestKey),
  2288. /* harmony export */ "rB": () => (/* binding */ getTranslationViewRequestKey)
  2289. /* harmony export */ });
  2290. /* harmony import */ var _utils_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4917);
  2291. /* harmony import */ var _utils_apiPaths__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(46127);
  2292. /* harmony import */ var src_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(92684);
  2293. /* harmony import */ var types_QuranReader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50467);
  2294. /* eslint-disable max-lines */ /* eslint-disable react-func/max-lines-per-function */
  2295. /**
  2296. * Generate the request key (the API url based on the params)
  2297. * which will be used by useSwr to determine whether to call BE
  2298. * again or return the cached response.
  2299. *
  2300. * @returns {string}
  2301. */ const getTranslationViewRequestKey = ({ id , isVerseData , initialData , pageNumber , quranReaderStyles , quranReaderDataType , selectedTranslations , reciter , locale , wordByWordLocale })=>{
  2302. // if the response has only 1 verse it means we should set the page to that verse this will be combined with perPage which will be set to only 1.
  2303. const page = isVerseData ? initialData.verses[0].verseNumber : pageNumber;
  2304. const commonParams = {
  2305. page,
  2306. reciter,
  2307. wordTranslationLanguage: wordByWordLocale,
  2308. translations: selectedTranslations.join(","),
  2309. ...(0,_utils_api__WEBPACK_IMPORTED_MODULE_0__/* .getDefaultWordFields */ .hD)(quranReaderStyles.quranFont),
  2310. ...(0,_utils_api__WEBPACK_IMPORTED_MODULE_0__/* .getMushafId */ .$P)(quranReaderStyles.quranFont, quranReaderStyles.mushafLines)
  2311. };
  2312. if (quranReaderDataType === types_QuranReader__WEBPACK_IMPORTED_MODULE_3__/* .QuranReaderDataType.Juz */ .Qi.Juz) {
  2313. return (0,_utils_apiPaths__WEBPACK_IMPORTED_MODULE_1__/* .makeJuzVersesUrl */ .IC)(id, locale, {
  2314. ...commonParams,
  2315. perPage: initialData.pagination.perPage
  2316. });
  2317. }
  2318. if (quranReaderDataType === types_QuranReader__WEBPACK_IMPORTED_MODULE_3__/* .QuranReaderDataType.Hizb */ .Qi.Hizb) {
  2319. return (0,_utils_apiPaths__WEBPACK_IMPORTED_MODULE_1__/* .makeHizbVersesUrl */ .Y8)(id, locale, {
  2320. ...commonParams,
  2321. perPage: initialData.pagination.perPage
  2322. });
  2323. }
  2324. if (quranReaderDataType === types_QuranReader__WEBPACK_IMPORTED_MODULE_3__/* .QuranReaderDataType.Page */ .Qi.Page) {
  2325. return (0,_utils_apiPaths__WEBPACK_IMPORTED_MODULE_1__/* .makePageVersesUrl */ .K2)(id, locale, {
  2326. perPage: "all",
  2327. ...commonParams
  2328. });
  2329. }
  2330. if (quranReaderDataType === types_QuranReader__WEBPACK_IMPORTED_MODULE_3__/* .QuranReaderDataType.Rub */ .Qi.Rub) {
  2331. return (0,_utils_apiPaths__WEBPACK_IMPORTED_MODULE_1__/* .makeRubVersesUrl */ .Im)(id, locale, {
  2332. from: initialData.metaData.from,
  2333. perPage: initialData.pagination.perPage,
  2334. to: initialData.metaData.to,
  2335. ...commonParams
  2336. });
  2337. }
  2338. if (quranReaderDataType === types_QuranReader__WEBPACK_IMPORTED_MODULE_3__/* .QuranReaderDataType.ChapterVerseRanges */ .Qi.ChapterVerseRanges) {
  2339. return (0,_utils_apiPaths__WEBPACK_IMPORTED_MODULE_1__/* .makeVersesUrl */ .ML)(id, locale, {
  2340. from: initialData.metaData.from,
  2341. perPage: initialData.pagination.perPage,
  2342. to: initialData.metaData.to,
  2343. ...commonParams
  2344. });
  2345. }
  2346. if (quranReaderDataType === types_QuranReader__WEBPACK_IMPORTED_MODULE_3__/* .QuranReaderDataType.Ranges */ .Qi.Ranges) {
  2347. return (0,_utils_apiPaths__WEBPACK_IMPORTED_MODULE_1__/* .makeByRangeVersesUrl */ .Eo)(locale, {
  2348. from: initialData.pagesLookup.lookupRange.from,
  2349. perPage: initialData.pagination.perPage,
  2350. to: initialData.pagesLookup.lookupRange.to,
  2351. ...commonParams
  2352. });
  2353. }
  2354. return (0,_utils_apiPaths__WEBPACK_IMPORTED_MODULE_1__/* .makeVersesUrl */ .ML)(id, locale, {
  2355. perPage: isVerseData ? 1 : initialData.pagination.perPage,
  2356. ...commonParams
  2357. });
  2358. };
  2359. const getReaderViewRequestKey = ({ pageNumber , locale , quranReaderStyles , reciter , wordByWordLocale , pageVersesRange })=>{
  2360. return (0,_utils_apiPaths__WEBPACK_IMPORTED_MODULE_1__/* .makePageVersesUrl */ .K2)(pageNumber, locale, {
  2361. ...(0,_utils_api__WEBPACK_IMPORTED_MODULE_0__/* .getDefaultWordFields */ .hD)(quranReaderStyles.quranFont),
  2362. ...(0,_utils_api__WEBPACK_IMPORTED_MODULE_0__/* .getMushafId */ .$P)(quranReaderStyles.quranFont, quranReaderStyles.mushafLines),
  2363. reciter,
  2364. perPage: "all",
  2365. wordTranslationLanguage: wordByWordLocale,
  2366. filterPageWords: true,
  2367. ...pageVersesRange && {
  2368. ...pageVersesRange
  2369. }
  2370. }, false);
  2371. };
  2372. const getPagesLookupParams = (resourceId, quranReaderDataType, mushafId, initialData)=>{
  2373. const params = {
  2374. mushaf: mushafId
  2375. };
  2376. const resourceIdNumber = Number(resourceId);
  2377. switch(quranReaderDataType){
  2378. case types_QuranReader__WEBPACK_IMPORTED_MODULE_3__/* .QuranReaderDataType.Chapter */ .Qi.Chapter:
  2379. params.chapterNumber = resourceIdNumber;
  2380. break;
  2381. case types_QuranReader__WEBPACK_IMPORTED_MODULE_3__/* .QuranReaderDataType.Hizb */ .Qi.Hizb:
  2382. params.hizbNumber = resourceIdNumber;
  2383. break;
  2384. case types_QuranReader__WEBPACK_IMPORTED_MODULE_3__/* .QuranReaderDataType.Juz */ .Qi.Juz:
  2385. params.juzNumber = resourceIdNumber;
  2386. break;
  2387. case types_QuranReader__WEBPACK_IMPORTED_MODULE_3__/* .QuranReaderDataType.Page */ .Qi.Page:
  2388. params.pageNumber = resourceIdNumber;
  2389. break;
  2390. case types_QuranReader__WEBPACK_IMPORTED_MODULE_3__/* .QuranReaderDataType.Rub */ .Qi.Rub:
  2391. params.rubElHizbNumber = resourceIdNumber;
  2392. break;
  2393. case types_QuranReader__WEBPACK_IMPORTED_MODULE_3__/* .QuranReaderDataType.Verse */ .Qi.Verse:
  2394. params.chapterNumber = resourceIdNumber;
  2395. params.from = initialData.verses[0].verseKey;
  2396. params.to = initialData.verses[0].verseKey;
  2397. break;
  2398. case types_QuranReader__WEBPACK_IMPORTED_MODULE_3__/* .QuranReaderDataType.ChapterVerseRanges */ .Qi.ChapterVerseRanges:
  2399. params.chapterNumber = resourceIdNumber;
  2400. params.from = initialData.metaData.from;
  2401. params.to = initialData.metaData.to;
  2402. break;
  2403. case types_QuranReader__WEBPACK_IMPORTED_MODULE_3__/* .QuranReaderDataType.Ranges */ .Qi.Ranges:
  2404. params.from = initialData.pagesLookup.lookupRange.from;
  2405. params.to = initialData.pagesLookup.lookupRange.to;
  2406. break;
  2407. default:
  2408. break;
  2409. }
  2410. return params;
  2411. };
  2412. /**
  2413. * A custom fetcher that returns the verses array from the api result.
  2414. * We need this workaround as useSWRInfinite requires the data from the api
  2415. * to be an array, while the result we get is formatted as {meta: {}, verses: Verse[]}
  2416. *
  2417. * @returns {Promise<Verse[]>}
  2418. */ const verseFetcher = async (input, init)=>{
  2419. const res = await (0,src_api__WEBPACK_IMPORTED_MODULE_2__/* .fetcher */ ._i)(input, init);
  2420. // @ts-ignore ignore this typing for now, we'll get back into this when we fix the "initial data not being used" issue
  2421. return res.verses;
  2422. };
  2423. /***/ }),
  2424. /***/ 94921:
  2425. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  2426. "use strict";
  2427. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  2428. /* harmony export */ "N": () => (/* binding */ VerseTrackerContextProvider),
  2429. /* harmony export */ "h": () => (/* binding */ useVerseTrackerContext)
  2430. /* harmony export */ });
  2431. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  2432. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  2433. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  2434. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  2435. const VerseTrackerContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(null);
  2436. const VerseTrackerContextProvider = ({ children })=>{
  2437. const verseKeysQueue = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(new Set());
  2438. const shouldTrackObservedVerses = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(true);
  2439. const value = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>({
  2440. verseKeysQueue,
  2441. shouldTrackObservedVerses
  2442. }), []);
  2443. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(VerseTrackerContext.Provider, {
  2444. value: value,
  2445. children: children
  2446. });
  2447. };
  2448. const useVerseTrackerContext = ()=>(0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(VerseTrackerContext);
  2449. /***/ }),
  2450. /***/ 24881:
  2451. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  2452. "use strict";
  2453. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  2454. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  2455. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  2456. /* harmony export */ });
  2457. /* harmony import */ var swr_immutable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79847);
  2458. /* harmony import */ var _components_QuranReader_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(96435);
  2459. /* harmony import */ var _utils_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4917);
  2460. /* harmony import */ var _utils_apiPaths__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(46127);
  2461. /* harmony import */ var src_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92684);
  2462. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr_immutable__WEBPACK_IMPORTED_MODULE_0__]);
  2463. swr_immutable__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
  2464. /**
  2465. * This hooks fetches the total number of pages of a specific Mushaf of
  2466. * a resource e.g. a page/juz/verse/range/hiz etc.
  2467. *
  2468. * @param {number|string} resourceId
  2469. * @param {QuranReaderDataType} quranReaderDataType
  2470. * @param {VersesResponse} initialData
  2471. * @param {QuranReaderStyles} quranReaderStyles
  2472. *
  2473. * @returns {{ pagesCount: number; hasError: boolean }}
  2474. */ const useFetchPagesLookup = (resourceId, quranReaderDataType, initialData, quranReaderStyles, isUsingDefaultFont)=>{
  2475. const { data , error , isValidating } = (0,swr_immutable__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_utils_apiPaths__WEBPACK_IMPORTED_MODULE_3__/* .makePagesLookupUrl */ .I$)((0,_components_QuranReader_api__WEBPACK_IMPORTED_MODULE_1__/* .getPagesLookupParams */ .MD)(resourceId, quranReaderDataType, (0,_utils_api__WEBPACK_IMPORTED_MODULE_2__/* .getMushafId */ .$P)(quranReaderStyles.quranFont, quranReaderStyles.mushafLines).mushaf, initialData)), src_api__WEBPACK_IMPORTED_MODULE_4__/* .fetcher */ ._i, {
  2476. fallbackData: initialData.pagesLookup,
  2477. revalidateOnMount: !isUsingDefaultFont
  2478. });
  2479. return {
  2480. data,
  2481. pagesCount: data.totalPage,
  2482. pagesVersesRange: data.pages,
  2483. lookupRange: data.lookupRange,
  2484. hasError: !!error,
  2485. isLoading: isValidating && !data
  2486. };
  2487. };
  2488. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useFetchPagesLookup);
  2489. __webpack_async_result__();
  2490. } catch(e) { __webpack_async_result__(e); } });
  2491. /***/ }),
  2492. /***/ 5766:
  2493. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  2494. "use strict";
  2495. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  2496. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  2497. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  2498. /* harmony export */ });
  2499. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  2500. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  2501. /* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(93908);
  2502. /* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);
  2503. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6022);
  2504. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
  2505. /* harmony import */ var swr__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15941);
  2506. /* harmony import */ var _contexts_VerseTrackerContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(94921);
  2507. /* harmony import */ var _observer__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(94082);
  2508. /* harmony import */ var _contexts_DataContext__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(70813);
  2509. /* harmony import */ var _hooks_useGlobalIntersectionObserver__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(97678);
  2510. /* harmony import */ var _redux_slices_QuranReader_readingTracker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(16143);
  2511. /* harmony import */ var _redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(62093);
  2512. /* harmony import */ var _types_auth_ActivityDay__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(97043);
  2513. /* harmony import */ var _utils_activity_day__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(26332);
  2514. /* harmony import */ var _utils_api__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(4917);
  2515. /* harmony import */ var _utils_auth_api__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(37883);
  2516. /* harmony import */ var _utils_auth_apiPaths__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(13830);
  2517. /* harmony import */ var _utils_auth_login__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(22197);
  2518. /* harmony import */ var _utils_mergeVerseKeys__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(26498);
  2519. /* harmony import */ var _utils_verse__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(44519);
  2520. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr__WEBPACK_IMPORTED_MODULE_3__, _utils_auth_login__WEBPACK_IMPORTED_MODULE_14__]);
  2521. ([swr__WEBPACK_IMPORTED_MODULE_3__, _utils_auth_login__WEBPACK_IMPORTED_MODULE_14__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  2522. /* eslint-disable react-func/max-lines-per-function */
  2523. const READING_DAY_SYNC_TIME_MS = 5000; // 5 seconds
  2524. const READING_SESSION_DEBOUNCE_WAIT_TIME = 2000; // 5 seconds
  2525. /**
  2526. * This hook is responsible for syncing the user's reading progress with the backend.
  2527. *
  2528. * @param {UseSyncReadingProgressProps} options
  2529. */ const useSyncReadingProgress = ({ isReadingPreference })=>{
  2530. const chaptersData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_contexts_DataContext__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z);
  2531. const quranFont = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(_redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_8__/* .selectQuranFont */ .Ho, react_redux__WEBPACK_IMPORTED_MODULE_2__.shallowEqual);
  2532. const mushafLines = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(_redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_8__/* .selectQuranMushafLines */ .z$, react_redux__WEBPACK_IMPORTED_MODULE_2__.shallowEqual);
  2533. const { mushaf } = (0,_utils_api__WEBPACK_IMPORTED_MODULE_11__/* .getMushafId */ .$P)(quranFont, mushafLines);
  2534. /**
  2535. * `verseKeysQueue` is a queue of verse keys that we need to send to the backend
  2536. * we will clear the queue every {READING_DAY_SYNC_TIME} milliseconds after sending the data to the backend
  2537. * it is also a Set not an array to avoid duplicate verse keys
  2538. */ const { verseKeysQueue , shouldTrackObservedVerses } = (0,_contexts_VerseTrackerContext__WEBPACK_IMPORTED_MODULE_4__/* .useVerseTrackerContext */ .h)();
  2539. const elapsedReadingTimeInSeconds = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);
  2540. const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
  2541. const { cache , mutate } = (0,swr__WEBPACK_IMPORTED_MODULE_3__.useSWRConfig)();
  2542. const addReadingSessionAndClearCache = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((chapterNumber, verseNumber)=>{
  2543. (0,_utils_auth_api__WEBPACK_IMPORTED_MODULE_12__/* .addReadingSession */ .c7)(chapterNumber, verseNumber).then(()=>{
  2544. cache.delete((0,_utils_auth_apiPaths__WEBPACK_IMPORTED_MODULE_13__/* .makeReadingSessionsUrl */ .Tj)());
  2545. });
  2546. }, [
  2547. cache
  2548. ]);
  2549. const debouncedAddReadingSession = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default()(addReadingSessionAndClearCache, READING_SESSION_DEBOUNCE_WAIT_TIME), [
  2550. addReadingSessionAndClearCache
  2551. ]);
  2552. // send the data to the backend and clear the SWR cache
  2553. const updateReadingDayAndClearCache = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((body)=>{
  2554. (0,_utils_auth_api__WEBPACK_IMPORTED_MODULE_12__/* .updateActivityDay */ .i1)(body).then(()=>{
  2555. // invalidate the current month's history cache to refetch the data if we navigated to it
  2556. const currentMonthHistoryUrl = (0,_utils_auth_apiPaths__WEBPACK_IMPORTED_MODULE_13__/* .makeFilterActivityDaysUrl */ .W_)((0,_utils_activity_day__WEBPACK_IMPORTED_MODULE_10__/* .getFilterActivityDaysParamsOfCurrentMonth */ .F)());
  2557. cache.delete(currentMonthHistoryUrl);
  2558. mutate((0,_utils_auth_apiPaths__WEBPACK_IMPORTED_MODULE_13__/* .makeStreakUrl */ .G_)());
  2559. });
  2560. }, [
  2561. mutate,
  2562. cache
  2563. ]);
  2564. // this function will be called when an element is triggered by the intersection observer
  2565. const onElementVisible = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((element)=>{
  2566. const lastReadVerse = (0,_observer__WEBPACK_IMPORTED_MODULE_17__/* .getObservedVersePayload */ .s$)(element);
  2567. dispatch((0,_redux_slices_QuranReader_readingTracker__WEBPACK_IMPORTED_MODULE_7__/* .setLastReadVerse */ .ge)({
  2568. lastReadVerse,
  2569. chaptersData
  2570. }));
  2571. if ((0,_utils_auth_login__WEBPACK_IMPORTED_MODULE_14__/* .isLoggedIn */ .jl)() && shouldTrackObservedVerses.current) {
  2572. /**
  2573. * Add the verse key to the queue.
  2574. * We make sure the user is logged-in first so that we don't add it to the queue and never clear it (which causes a memory leak).
  2575. */ verseKeysQueue.current.add(lastReadVerse.verseKey);
  2576. const [chapterNumber, verseNumber] = (0,_utils_verse__WEBPACK_IMPORTED_MODULE_16__/* .getVerseAndChapterNumbersFromKey */ .bV)(lastReadVerse.verseKey);
  2577. debouncedAddReadingSession(Number(chapterNumber), Number(verseNumber));
  2578. }
  2579. }, [
  2580. chaptersData,
  2581. debouncedAddReadingSession,
  2582. dispatch,
  2583. verseKeysQueue,
  2584. shouldTrackObservedVerses
  2585. ]);
  2586. // eslint-disable-next-line consistent-return
  2587. (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
  2588. // if the user is not logged in, we don't need to sync the reading day
  2589. // TODO: maybe we can save this in the local storage and sync it when the user logs in?
  2590. if (!(0,_utils_auth_login__WEBPACK_IMPORTED_MODULE_14__/* .isLoggedIn */ .jl)()) {
  2591. return ()=>null;
  2592. }
  2593. const interval = setInterval(()=>{
  2594. // nothing to send
  2595. if (verseKeysQueue.current.size === 0 && elapsedReadingTimeInSeconds.current === 0) {
  2596. return;
  2597. }
  2598. // an array of verse ranges that we will send to the backend
  2599. // we will get them by merging the verse keys in the queue
  2600. let verseRanges = null;
  2601. if (verseKeysQueue.current.size > 0) {
  2602. // merge the verse keys and clear the queue
  2603. verseRanges = Array.from((0,_utils_mergeVerseKeys__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .Z)(verseKeysQueue.current));
  2604. verseKeysQueue.current.clear();
  2605. }
  2606. let seconds = null;
  2607. if (elapsedReadingTimeInSeconds.current > 0) {
  2608. seconds = elapsedReadingTimeInSeconds.current;
  2609. elapsedReadingTimeInSeconds.current = 0;
  2610. }
  2611. const body = {
  2612. mushafId: mushaf,
  2613. type: _types_auth_ActivityDay__WEBPACK_IMPORTED_MODULE_9__/* .ActivityDayType.QURAN */ .t.QURAN
  2614. };
  2615. if (verseRanges) {
  2616. body.ranges = verseRanges;
  2617. }
  2618. if (seconds) {
  2619. body.seconds = seconds;
  2620. }
  2621. updateReadingDayAndClearCache(body);
  2622. }, READING_DAY_SYNC_TIME_MS);
  2623. return ()=>{
  2624. clearInterval(interval);
  2625. };
  2626. }, [
  2627. chaptersData,
  2628. updateReadingDayAndClearCache,
  2629. verseKeysQueue,
  2630. mushaf
  2631. ]);
  2632. // this will track user's reading time
  2633. // also, if the user is not on the same tab, we will pause the timer
  2634. (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
  2635. if (!(0,_utils_auth_login__WEBPACK_IMPORTED_MODULE_14__/* .isLoggedIn */ .jl)()) {
  2636. return ()=>null;
  2637. }
  2638. let interval = null;
  2639. const handleFocus = ()=>{
  2640. if (interval) clearInterval(interval);
  2641. interval = setInterval(()=>{
  2642. elapsedReadingTimeInSeconds.current += 1;
  2643. }, 1000);
  2644. };
  2645. const handleBlur = ()=>{
  2646. clearInterval(interval);
  2647. };
  2648. window.addEventListener("focus", handleFocus);
  2649. window.addEventListener("blur", handleBlur);
  2650. handleFocus();
  2651. return ()=>{
  2652. window.removeEventListener("focus", handleFocus);
  2653. window.removeEventListener("blur", handleBlur);
  2654. };
  2655. }, []);
  2656. (0,_hooks_useGlobalIntersectionObserver__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z)((0,_observer__WEBPACK_IMPORTED_MODULE_17__/* .getOptions */ .FW)(isReadingPreference), onElementVisible, _observer__WEBPACK_IMPORTED_MODULE_17__/* .QURAN_READER_OBSERVER_ID */ .NM);
  2657. };
  2658. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useSyncReadingProgress);
  2659. __webpack_async_result__();
  2660. } catch(e) { __webpack_async_result__(e); } });
  2661. /***/ }),
  2662. /***/ 14116:
  2663. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  2664. "use strict";
  2665. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  2666. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  2667. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  2668. /* harmony export */ });
  2669. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  2670. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  2671. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  2672. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  2673. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
  2674. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
  2675. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60866);
  2676. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__);
  2677. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6022);
  2678. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
  2679. /* harmony import */ var _ContextMenu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(11877);
  2680. /* harmony import */ var _contexts_VerseTrackerContext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(94921);
  2681. /* harmony import */ var _DebuggingObserverWindow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(43598);
  2682. /* harmony import */ var _Notes_Notes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(28800);
  2683. /* harmony import */ var _QuranReader_module_scss__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(53543);
  2684. /* harmony import */ var _QuranReader_module_scss__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_QuranReader_module_scss__WEBPACK_IMPORTED_MODULE_17__);
  2685. /* harmony import */ var _QuranReaderView__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(6846);
  2686. /* harmony import */ var _SidebarNavigation_SidebarNavigation__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(53980);
  2687. /* harmony import */ var _components_Fonts_FontPreLoader__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(86193);
  2688. /* harmony import */ var _redux_slices_QuranReader_notes__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(66093);
  2689. /* harmony import */ var _redux_slices_QuranReader_readingPreferences__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(90264);
  2690. /* harmony import */ var _redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(12547);
  2691. /* harmony import */ var _redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(62093);
  2692. /* harmony import */ var types_QuranReader__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(50467);
  2693. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_ContextMenu__WEBPACK_IMPORTED_MODULE_5__, _QuranReaderView__WEBPACK_IMPORTED_MODULE_9__, _SidebarNavigation_SidebarNavigation__WEBPACK_IMPORTED_MODULE_10__]);
  2694. ([_ContextMenu__WEBPACK_IMPORTED_MODULE_5__, _QuranReaderView__WEBPACK_IMPORTED_MODULE_9__, _SidebarNavigation_SidebarNavigation__WEBPACK_IMPORTED_MODULE_10__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  2695. /* eslint-disable react/no-multi-comp */
  2696. const QuranReader = ({ initialData , id , quranReaderDataType =types_QuranReader__WEBPACK_IMPORTED_MODULE_16__/* .QuranReaderDataType.Chapter */ .Qi.Chapter })=>{
  2697. const { lang } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default()();
  2698. const isSideBarVisible = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_notes__WEBPACK_IMPORTED_MODULE_12__/* .selectNotes */ .$p, react_redux__WEBPACK_IMPORTED_MODULE_4__.shallowEqual).isVisible;
  2699. const quranReaderStyles = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_15__/* .selectQuranReaderStyles */ .Pt, react_redux__WEBPACK_IMPORTED_MODULE_4__.shallowEqual);
  2700. const isSidebarNavigationVisible = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_sidebarNavigation__WEBPACK_IMPORTED_MODULE_14__/* .selectIsSidebarNavigationVisible */ .rS);
  2701. const readingPreference = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_readingPreferences__WEBPACK_IMPORTED_MODULE_13__/* .selectReadingPreference */ .EA);
  2702. const isReadingPreference = readingPreference === types_QuranReader__WEBPACK_IMPORTED_MODULE_16__/* .ReadingPreference.Reading */ .m3.Reading;
  2703. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
  2704. children: [
  2705. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_Fonts_FontPreLoader__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {
  2706. isQuranReader: true,
  2707. locale: lang
  2708. }),
  2709. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ContextMenu__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {}),
  2710. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_DebuggingObserverWindow__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
  2711. isReadingMode: isReadingPreference
  2712. }),
  2713. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  2714. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_QuranReader_module_scss__WEBPACK_IMPORTED_MODULE_17___default().container), {
  2715. [(_QuranReader_module_scss__WEBPACK_IMPORTED_MODULE_17___default().withVisibleSideBar)]: isSideBarVisible,
  2716. [(_QuranReader_module_scss__WEBPACK_IMPORTED_MODULE_17___default().withSidebarNavigationOpenOrAuto)]: isSidebarNavigationVisible
  2717. }),
  2718. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  2719. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_QuranReader_module_scss__WEBPACK_IMPORTED_MODULE_17___default().infiniteScroll), {
  2720. [(_QuranReader_module_scss__WEBPACK_IMPORTED_MODULE_17___default().readingView)]: isReadingPreference
  2721. }),
  2722. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_contexts_VerseTrackerContext__WEBPACK_IMPORTED_MODULE_6__/* .VerseTrackerContextProvider */ .N, {
  2723. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_QuranReaderView__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {
  2724. isReadingPreference: isReadingPreference,
  2725. quranReaderStyles: quranReaderStyles,
  2726. initialData: initialData,
  2727. quranReaderDataType: quranReaderDataType,
  2728. resourceId: id
  2729. })
  2730. })
  2731. })
  2732. }),
  2733. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_SidebarNavigation_SidebarNavigation__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {}),
  2734. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Notes_Notes__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {})
  2735. ]
  2736. });
  2737. };
  2738. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (QuranReader);
  2739. __webpack_async_result__();
  2740. } catch(e) { __webpack_async_result__(e); } });
  2741. /***/ }),
  2742. /***/ 12383:
  2743. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  2744. "use strict";
  2745. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  2746. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  2747. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  2748. /* harmony export */ });
  2749. /* harmony import */ var clipboard_copy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(34741);
  2750. /* harmony import */ var clipboard_copy__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(clipboard_copy__WEBPACK_IMPORTED_MODULE_0__);
  2751. /* harmony import */ var _dls_QuranWord_QuranWord__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17543);
  2752. /* harmony import */ var _utils_verse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44519);
  2753. /* harmony import */ var _utils_word__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(94675);
  2754. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_dls_QuranWord_QuranWord__WEBPACK_IMPORTED_MODULE_1__]);
  2755. _dls_QuranWord_QuranWord__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
  2756. /**
  2757. * 1) select all DOM nodes that contain data attribute `data-word-location`
  2758. * 2) see if those nodes are within `selection`
  2759. * 3) extract uthmani_text for those nodes
  2760. * 4) copy those uthmani_text to clipboard
  2761. *
  2762. * We need to use uthmani_text instead of the rendered text to support unicode based fonts like v1 and v2.
  2763. *
  2764. * @param {React.ClipboardEvent<HTMLDivElement>} event
  2765. * @param {Verse[]} verses all verses to scan for `data-word-location`
  2766. * @param {QuranFont} quranFont font to copy, if not `text_indopak` or `text_uthmani` then will use `text_uthmani` to support unicode based fonts
  2767. */ const onCopyQuranWords = (event, verses, quranFont)=>{
  2768. const selection = document.getSelection();
  2769. const quranWordsToCopy = Array.from(document.querySelectorAll(`[${_dls_QuranWord_QuranWord__WEBPACK_IMPORTED_MODULE_1__/* .DATA_ATTRIBUTE_WORD_LOCATION */ .q}]`)).filter((node)=>selection.containsNode(node, true)).map((node)=>{
  2770. const wordLocation = node.getAttribute(_dls_QuranWord_QuranWord__WEBPACK_IMPORTED_MODULE_1__/* .DATA_ATTRIBUTE_WORD_LOCATION */ .q);
  2771. return extractText(wordLocation, verses, quranFont);
  2772. });
  2773. if (quranWordsToCopy.length > 0) {
  2774. // only do prevent default & call clipboardCopy when there are quran words to copy
  2775. // otherwise, user can't copy the translation text
  2776. event.preventDefault();
  2777. clipboard_copy__WEBPACK_IMPORTED_MODULE_0___default()(quranWordsToCopy.join(" "));
  2778. }
  2779. };
  2780. /**
  2781. *
  2782. * @param {string} wordLocation example: "1:1:1" (chapter 1, verse 1, word position 1)
  2783. * @param {Verse[]} verses list of verses to search for wordLocation
  2784. * @param {QuranFont} quranFont font to copy, if not `text_indopak` or `text_uthmani` then will use `text_uthmani` to support unicode based fonts
  2785. * @returns {string} text of the wordLocation. example "ٱلْحَمْدُ"
  2786. */ const extractText = (wordLocation, verses, quranFont)=>{
  2787. const [chapter, verse, location] = (0,_utils_verse__WEBPACK_IMPORTED_MODULE_2__/* .getWordDataByLocation */ .TO)(wordLocation);
  2788. // find the verse
  2789. const selectedVerse = verses.find((v)=>v.verseKey === `${chapter}:${verse}`);
  2790. if (!selectedVerse) {
  2791. return "";
  2792. }
  2793. // find the word
  2794. const selectedWord = selectedVerse.words.find((word)=>Number(word.position) === Number(location));
  2795. if (!selectedWord) {
  2796. return "";
  2797. }
  2798. return selectedWord[(0,_utils_word__WEBPACK_IMPORTED_MODULE_3__/* .getWordTextFieldNameByFont */ .U)(quranFont)];
  2799. };
  2800. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (onCopyQuranWords);
  2801. __webpack_async_result__();
  2802. } catch(e) { __webpack_async_result__(e); } });
  2803. /***/ }),
  2804. /***/ 52544:
  2805. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  2806. "use strict";
  2807. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  2808. /* harmony export */ "RG": () => (/* binding */ verseFontChanged),
  2809. /* harmony export */ "UH": () => (/* binding */ verseTranslationChanged),
  2810. /* harmony export */ "r4": () => (/* binding */ verseTranslationFontChanged)
  2811. /* harmony export */ });
  2812. /**
  2813. * If the number of translations has changed between 2 renders it's due to the
  2814. * user choosing/un-choosing a translation.
  2815. *
  2816. * @param {Verse} prevVerse
  2817. * @param {Verse} nextVerse
  2818. * @returns {boolean}
  2819. */ const verseTranslationChanged = (prevVerse, nextVerse)=>prevVerse?.translations?.length !== nextVerse?.translations?.length;
  2820. /**
  2821. * Checks whether the translation font styles has changed between the re-renders
  2822. *
  2823. * @param {QuranReaderStyles} prevQuranStyles
  2824. * @param {QuranReaderStyles} nextQuranStyles
  2825. * @returns {boolean}
  2826. */ const verseTranslationFontChanged = (prevQuranStyles, nextQuranStyles)=>prevQuranStyles.translationFontScale !== nextQuranStyles.translationFontScale;
  2827. /**
  2828. * Check whether the font has changed or not between 2 renders. We consider the font
  2829. * has changed also when the number of lines in indopak has changed or when the word
  2830. * by word tooltip locale has changed.
  2831. *
  2832. * @param {QuranReaderStyles} prevQuranStyles
  2833. * @param {QuranReaderStyles} nextQuranStyles
  2834. * @param {Word[]} prevWords
  2835. * @param {Word[]} nextWords
  2836. * @returns {boolean}
  2837. */ const verseFontChanged = (prevQuranStyles, nextQuranStyles, prevWords, nextWords)=>prevQuranStyles.mushafLines !== nextQuranStyles.mushafLines || prevWords.length !== nextWords.length || prevWords[0].text !== nextWords[0].text || prevWords[0].translation.languageName !== nextWords[0].translation.languageName;
  2838. /***/ }),
  2839. /***/ 2401:
  2840. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  2841. "use strict";
  2842. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  2843. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  2844. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  2845. /* harmony export */ });
  2846. /* unused harmony export VerseNotesTrigger */
  2847. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  2848. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  2849. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  2850. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  2851. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
  2852. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
  2853. /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71853);
  2854. /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_3__);
  2855. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(60866);
  2856. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_4__);
  2857. /* harmony import */ var swr_immutable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(79847);
  2858. /* harmony import */ var _Notes_module_scss__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(18355);
  2859. /* harmony import */ var _Notes_module_scss__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_Notes_module_scss__WEBPACK_IMPORTED_MODULE_20__);
  2860. /* harmony import */ var _components_Notes_NoteModal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(93636);
  2861. /* harmony import */ var _components_QuranReader_TranslationView_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(40608);
  2862. /* harmony import */ var _components_QuranReader_TranslationView_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_components_QuranReader_TranslationView_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_18__);
  2863. /* harmony import */ var _components_Wrapper_Wrapper__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(41701);
  2864. /* harmony import */ var _dls_Badge_Badge__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(80729);
  2865. /* harmony import */ var _dls_Badge_NewLabel__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(62703);
  2866. /* harmony import */ var _dls_Button_Button__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(50497);
  2867. /* harmony import */ var _icons_notes_empty_svg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(52150);
  2868. /* harmony import */ var _icons_notes_filled_svg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(38293);
  2869. /* harmony import */ var _types_auth_ConsentType__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(39433);
  2870. /* harmony import */ var _utils_auth_api__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(37883);
  2871. /* harmony import */ var _utils_auth_apiPaths__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(13830);
  2872. /* harmony import */ var _utils_auth_login__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(22197);
  2873. /* harmony import */ var _utils_eventLogger__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(55943);
  2874. /* harmony import */ var _utils_navigation__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(57933);
  2875. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr_immutable__WEBPACK_IMPORTED_MODULE_5__, _components_Notes_NoteModal__WEBPACK_IMPORTED_MODULE_6__, _dls_Button_Button__WEBPACK_IMPORTED_MODULE_9__, _utils_auth_login__WEBPACK_IMPORTED_MODULE_15__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_16__, _utils_navigation__WEBPACK_IMPORTED_MODULE_17__]);
  2876. ([swr_immutable__WEBPACK_IMPORTED_MODULE_5__, _components_Notes_NoteModal__WEBPACK_IMPORTED_MODULE_6__, _dls_Button_Button__WEBPACK_IMPORTED_MODULE_9__, _utils_auth_login__WEBPACK_IMPORTED_MODULE_15__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_16__, _utils_navigation__WEBPACK_IMPORTED_MODULE_17__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  2877. var VerseNotesTrigger;
  2878. (function(VerseNotesTrigger) {
  2879. VerseNotesTrigger["IconButton"] = "button";
  2880. VerseNotesTrigger["PopoverItem"] = "popoverItem";
  2881. })(VerseNotesTrigger || (VerseNotesTrigger = {}));
  2882. const VerseNotes = ({ verseKey , isTranslationView , hasNotes })=>{
  2883. const { 0: isModalOpen , 1: setIsModalOpen } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);
  2884. const { t } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_4___default()("common");
  2885. const router = (0,next_router__WEBPACK_IMPORTED_MODULE_3__.useRouter)();
  2886. const { data: userData } = (0,swr_immutable__WEBPACK_IMPORTED_MODULE_5__["default"])((0,_utils_auth_login__WEBPACK_IMPORTED_MODULE_15__/* .isLoggedIn */ .jl)() ? (0,_utils_auth_apiPaths__WEBPACK_IMPORTED_MODULE_14__/* .makeUserProfileUrl */ .bo)() : null, _utils_auth_api__WEBPACK_IMPORTED_MODULE_13__/* .getUserProfile */ .et);
  2887. const onItemClicked = ()=>{
  2888. const isUserLoggedIn = (0,_utils_auth_login__WEBPACK_IMPORTED_MODULE_15__/* .isLoggedIn */ .jl)();
  2889. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_16__/* .logButtonClick */ .MY)("verse_actions_menu_note", {
  2890. isTranslationView,
  2891. isLoggedIn: _utils_auth_login__WEBPACK_IMPORTED_MODULE_15__/* .isLoggedIn */ .jl
  2892. });
  2893. if (!isUserLoggedIn) {
  2894. router.push((0,_utils_navigation__WEBPACK_IMPORTED_MODULE_17__/* .getLoginNavigationUrl */ .gk)((0,_utils_navigation__WEBPACK_IMPORTED_MODULE_17__/* .getChapterWithStartingVerseUrl */ .P6)(verseKey)));
  2895. } else {
  2896. setIsModalOpen(true);
  2897. }
  2898. };
  2899. const onClose = ()=>{
  2900. setIsModalOpen(false);
  2901. };
  2902. // TODO: consents is used as a temporary solution until we have a proper way to check if the user has notes
  2903. const shouldShowNewLabel = !userData?.consents?.[_types_auth_ConsentType__WEBPACK_IMPORTED_MODULE_12__/* ["default"].HAS_NOTES */ .Z.HAS_NOTES];
  2904. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
  2905. children: [
  2906. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_Notes_NoteModal__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
  2907. isOpen: isModalOpen,
  2908. onClose: onClose,
  2909. verseKey: verseKey
  2910. }),
  2911. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .ZP, {
  2912. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_components_QuranReader_TranslationView_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_18___default().iconContainer), (_components_QuranReader_TranslationView_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_18___default().verseAction), (_components_QuranReader_TranslationView_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_18___default().fadedVerseAction)),
  2913. onClick: onItemClicked,
  2914. tooltip: t("notes.title"),
  2915. type: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_9__/* .ButtonType.Primary */ .L$.Primary,
  2916. shape: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_9__/* .ButtonShape.Circle */ .jL.Circle,
  2917. variant: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_9__/* .ButtonVariant.Ghost */ .Wu.Ghost,
  2918. size: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_9__/* .ButtonSize.Small */ .qE.Small,
  2919. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  2920. className: (_components_QuranReader_TranslationView_TranslationViewCell_module_scss__WEBPACK_IMPORTED_MODULE_18___default().icon),
  2921. children: hasNotes ? /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_notes_filled_svg__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {}) : /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_Wrapper_Wrapper__WEBPACK_IMPORTED_MODULE_19__/* ["default"] */ .Z, {
  2922. shouldWrap: shouldShowNewLabel,
  2923. wrapper: (children)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Badge_Badge__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
  2924. className: (_Notes_module_scss__WEBPACK_IMPORTED_MODULE_20___default().newLabelContainer),
  2925. contentClassName: (_Notes_module_scss__WEBPACK_IMPORTED_MODULE_20___default().newLabel),
  2926. content: shouldShowNewLabel && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Badge_NewLabel__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {}),
  2927. children: children
  2928. }),
  2929. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_notes_empty_svg__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {})
  2930. })
  2931. })
  2932. })
  2933. ]
  2934. });
  2935. };
  2936. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VerseNotes);
  2937. __webpack_async_result__();
  2938. } catch(e) { __webpack_async_result__(e); } });
  2939. /***/ }),
  2940. /***/ 16413:
  2941. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  2942. "use strict";
  2943. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  2944. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  2945. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  2946. /* harmony export */ });
  2947. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  2948. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  2949. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  2950. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  2951. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60866);
  2952. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__);
  2953. /* harmony import */ var _VerseLink_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(57303);
  2954. /* harmony import */ var _VerseLink_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_VerseLink_module_scss__WEBPACK_IMPORTED_MODULE_7__);
  2955. /* harmony import */ var _dls_Button_Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50497);
  2956. /* harmony import */ var _utils_eventLogger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(55943);
  2957. /* harmony import */ var _utils_locale__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(24709);
  2958. /* harmony import */ var _utils_navigation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(57933);
  2959. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_dls_Button_Button__WEBPACK_IMPORTED_MODULE_3__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_4__, _utils_navigation__WEBPACK_IMPORTED_MODULE_6__]);
  2960. ([_dls_Button_Button__WEBPACK_IMPORTED_MODULE_3__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_4__, _utils_navigation__WEBPACK_IMPORTED_MODULE_6__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  2961. const VerseLink = ({ verseKey })=>{
  2962. const { lang } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default()("");
  2963. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP, {
  2964. className: (_VerseLink_module_scss__WEBPACK_IMPORTED_MODULE_7___default().verseLink),
  2965. size: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_3__/* .ButtonSize.Small */ .qE.Small,
  2966. shape: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_3__/* .ButtonShape.Circle */ .jL.Circle,
  2967. href: (0,_utils_navigation__WEBPACK_IMPORTED_MODULE_6__/* .getChapterWithStartingVerseUrl */ .P6)(verseKey),
  2968. shouldShallowRoute: true,
  2969. variant: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_3__/* .ButtonVariant.Ghost */ .Wu.Ghost,
  2970. shouldPrefetch: false,
  2971. onClick: ()=>{
  2972. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_4__/* .logButtonClick */ .MY)("translation_view_verse_link");
  2973. },
  2974. children: (0,_utils_locale__WEBPACK_IMPORTED_MODULE_5__/* .toLocalizedVerseKey */ .Tj)(verseKey, lang)
  2975. });
  2976. };
  2977. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VerseLink);
  2978. __webpack_async_result__();
  2979. } catch(e) { __webpack_async_result__(e); } });
  2980. /***/ }),
  2981. /***/ 36716:
  2982. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  2983. "use strict";
  2984. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  2985. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  2986. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  2987. /* harmony export */ });
  2988. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  2989. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  2990. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  2991. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  2992. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
  2993. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
  2994. /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71853);
  2995. /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_3__);
  2996. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6022);
  2997. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_4__);
  2998. /* harmony import */ var _QuranReader_observer__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(94082);
  2999. /* harmony import */ var _pageUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(76345);
  3000. /* harmony import */ var _VerseText_module_scss__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(29702);
  3001. /* harmony import */ var _VerseText_module_scss__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_VerseText_module_scss__WEBPACK_IMPORTED_MODULE_17__);
  3002. /* harmony import */ var _components_QuranReader_hooks_useIsFontLoaded__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(97226);
  3003. /* harmony import */ var _dls_QuranWord_QuranWord__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(17543);
  3004. /* harmony import */ var _hooks_useObserveElement__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(13758);
  3005. /* harmony import */ var _redux_slices_QuranReader_readingPreferences__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(90264);
  3006. /* harmony import */ var _redux_slices_QuranReader_readingViewVerse__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(31922);
  3007. /* harmony import */ var _redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(62093);
  3008. /* harmony import */ var _types_QueryParam__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(11721);
  3009. /* harmony import */ var _utils_fontFaceHelper__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(64198);
  3010. /* harmony import */ var _utils_verse__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(44519);
  3011. /* harmony import */ var types_QuranReader__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(50467);
  3012. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_dls_QuranWord_QuranWord__WEBPACK_IMPORTED_MODULE_7__]);
  3013. _dls_QuranWord_QuranWord__WEBPACK_IMPORTED_MODULE_7__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
  3014. const VerseText = ({ words , isReadingMode =false , isHighlighted , shouldShowH1ForSEO =false })=>{
  3015. const router = (0,next_router__WEBPACK_IMPORTED_MODULE_3__.useRouter)();
  3016. const textRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
  3017. (0,_hooks_useObserveElement__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)(textRef, _QuranReader_observer__WEBPACK_IMPORTED_MODULE_16__/* .QURAN_READER_OBSERVER_ID */ .NM);
  3018. const { quranFont , quranTextFontScale , mushafLines } = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_11__/* .selectQuranReaderStyles */ .Pt, react_redux__WEBPACK_IMPORTED_MODULE_4__.shallowEqual);
  3019. const [firstWord] = words;
  3020. const { lineNumber , pageNumber , location , verseKey , hizbNumber } = firstWord;
  3021. const isFontLoaded = (0,_components_QuranReader_hooks_useIsFontLoaded__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z)(firstWord.pageNumber, quranFont);
  3022. const { showWordByWordTranslation , showWordByWordTransliteration } = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_readingPreferences__WEBPACK_IMPORTED_MODULE_9__/* .selectInlineDisplayWordByWordPreferences */ .eB, react_redux__WEBPACK_IMPORTED_MODULE_4__.shallowEqual);
  3023. const selectedVerseKey = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_readingViewVerse__WEBPACK_IMPORTED_MODULE_10__/* .selectReadingViewSelectedVerseKey */ .AV, react_redux__WEBPACK_IMPORTED_MODULE_4__.shallowEqual);
  3024. const hoveredVerseKey = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(_redux_slices_QuranReader_readingViewVerse__WEBPACK_IMPORTED_MODULE_10__/* .selectReadingViewHoveredVerseKey */ ._H, react_redux__WEBPACK_IMPORTED_MODULE_4__.shallowEqual);
  3025. const centerAlignPage = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>(0,_pageUtils__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z)(pageNumber, lineNumber, quranFont), [
  3026. pageNumber,
  3027. lineNumber,
  3028. quranFont
  3029. ]);
  3030. // if it's translation mode and hideArabic query param is true, don't show the verse text
  3031. if (isReadingMode === false && router?.query?.[_types_QueryParam__WEBPACK_IMPORTED_MODULE_12__/* ["default"].HIDE_ARABIC */ .Z.HIDE_ARABIC] === "true") {
  3032. return null;
  3033. }
  3034. const firstWordData = (0,_utils_verse__WEBPACK_IMPORTED_MODULE_14__/* .getFirstWordOfSurah */ .ZZ)(location);
  3035. const isTajweedFont = quranFont === types_QuranReader__WEBPACK_IMPORTED_MODULE_15__/* .QuranFont.Tajweed */ .fr.Tajweed;
  3036. const isBigTextLayout = isReadingMode && (quranTextFontScale > 3 || showWordByWordTranslation || showWordByWordTransliteration) || isTajweedFont;
  3037. const { chapterId } = firstWordData;
  3038. const VerseTextContainer = shouldShowH1ForSEO ? "h1" : "div";
  3039. const fontClassName = isFontLoaded ? (0,_utils_fontFaceHelper__WEBPACK_IMPORTED_MODULE_13__/* .getFontClassName */ .bZ)(quranFont, quranTextFontScale, mushafLines) : (0,_utils_fontFaceHelper__WEBPACK_IMPORTED_MODULE_13__/* .getFontClassName */ .bZ)(types_QuranReader__WEBPACK_IMPORTED_MODULE_15__/* .FALLBACK_FONT */ .v3, quranTextFontScale, mushafLines, true);
  3040. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
  3041. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(VerseTextContainer, {
  3042. ref: textRef,
  3043. "data-verse-key": verseKey,
  3044. "data-page": pageNumber,
  3045. "data-chapter-id": chapterId,
  3046. "data-hizb": hizbNumber,
  3047. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_VerseText_module_scss__WEBPACK_IMPORTED_MODULE_17___default().verseTextContainer), {
  3048. [(_VerseText_module_scss__WEBPACK_IMPORTED_MODULE_17___default().largeQuranTextLayoutContainer)]: isBigTextLayout,
  3049. [(_VerseText_module_scss__WEBPACK_IMPORTED_MODULE_17___default().highlighted)]: isHighlighted,
  3050. [(_VerseText_module_scss__WEBPACK_IMPORTED_MODULE_17___default())[fontClassName]]: !isTajweedFont,
  3051. [(_VerseText_module_scss__WEBPACK_IMPORTED_MODULE_17___default().tafsirOrTranslationMode)]: !isReadingMode
  3052. }),
  3053. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  3054. translate: "no",
  3055. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_VerseText_module_scss__WEBPACK_IMPORTED_MODULE_17___default().verseText), {
  3056. [(_VerseText_module_scss__WEBPACK_IMPORTED_MODULE_17___default().verseTextWrap)]: !isReadingMode,
  3057. [(_VerseText_module_scss__WEBPACK_IMPORTED_MODULE_17___default().largeQuranTextLayout)]: isBigTextLayout,
  3058. [(_VerseText_module_scss__WEBPACK_IMPORTED_MODULE_17___default().verseTextCenterAlign)]: isReadingMode && centerAlignPage,
  3059. [(_VerseText_module_scss__WEBPACK_IMPORTED_MODULE_17___default().verseTextSpaceBetween)]: isReadingMode && !centerAlignPage
  3060. }),
  3061. children: words?.map((word)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_QuranWord_QuranWord__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
  3062. word: word,
  3063. font: quranFont,
  3064. isFontLoaded: isFontLoaded,
  3065. isHighlighted: word.verseKey === selectedVerseKey,
  3066. shouldShowSecondaryHighlight: word.verseKey === hoveredVerseKey
  3067. }, word.location))
  3068. })
  3069. })
  3070. });
  3071. };
  3072. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().memo(VerseText));
  3073. __webpack_async_result__();
  3074. } catch(e) { __webpack_async_result__(e); } });
  3075. /***/ }),
  3076. /***/ 76345:
  3077. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  3078. "use strict";
  3079. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3080. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  3081. /* harmony export */ });
  3082. /* harmony import */ var types_QuranReader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50467);
  3083. // Pages where we want to have center align text to resemble the Madani Mushaf
  3084. const CENTER_ALIGNED_PAGES = [
  3085. 1,
  3086. 2
  3087. ];
  3088. // Lines that need to be center aligned
  3089. const CENTER_ALIGNED_PAGE_LINES = {
  3090. 255: [
  3091. 2
  3092. ],
  3093. 528: [
  3094. 9
  3095. ],
  3096. 534: [
  3097. 6
  3098. ],
  3099. 545: [
  3100. 6
  3101. ],
  3102. 586: [
  3103. 1
  3104. ],
  3105. 593: [
  3106. 2
  3107. ],
  3108. 594: [
  3109. 5
  3110. ],
  3111. 600: [
  3112. 10
  3113. ],
  3114. 602: [
  3115. 5,
  3116. 15
  3117. ],
  3118. 603: [
  3119. 10,
  3120. 15
  3121. ],
  3122. 604: [
  3123. 4,
  3124. 9,
  3125. 14,
  3126. 15
  3127. ]
  3128. };
  3129. /**
  3130. * Util function to check if page or specific line should be center aligned to
  3131. * resemble the printed Madani Mushaf.
  3132. *
  3133. * @param {number} pageNumber
  3134. * @param {number} lineNumber
  3135. * @param {QuranFont} quranFont
  3136. * @returns {boolean}
  3137. */ const isCenterAlignedPage = (pageNumber, lineNumber, quranFont)=>{
  3138. if (quranFont === types_QuranReader__WEBPACK_IMPORTED_MODULE_0__/* .QuranFont.IndoPak */ .fr.IndoPak) {
  3139. return false;
  3140. }
  3141. const centerAlignedLines = CENTER_ALIGNED_PAGE_LINES[pageNumber] || [];
  3142. return CENTER_ALIGNED_PAGES.includes(pageNumber) || centerAlignedLines.includes(lineNumber);
  3143. };
  3144. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isCenterAlignedPage);
  3145. /***/ }),
  3146. /***/ 59459:
  3147. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  3148. "use strict";
  3149. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  3150. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3151. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  3152. /* harmony export */ });
  3153. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  3154. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  3155. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  3156. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  3157. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60866);
  3158. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__);
  3159. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
  3160. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
  3161. /* harmony import */ var _ChapterHeader_module_scss__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(28946);
  3162. /* harmony import */ var _ChapterHeader_module_scss__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_ChapterHeader_module_scss__WEBPACK_IMPORTED_MODULE_14__);
  3163. /* harmony import */ var _components_chapters_ChapterIcon_ChapterIconContainer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92799);
  3164. /* harmony import */ var _components_QuranReader_observer__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(94082);
  3165. /* harmony import */ var _components_QuranReader_PlayChapterAudioButton__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(39323);
  3166. /* harmony import */ var _dls_Bismillah_Bismillah__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(17172);
  3167. /* harmony import */ var _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(50497);
  3168. /* harmony import */ var _hooks_useObserveElement__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(13758);
  3169. /* harmony import */ var _icons_info_svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(23359);
  3170. /* harmony import */ var _redux_slices_navbar__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(44177);
  3171. /* harmony import */ var _utils_eventLogger__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(55943);
  3172. /* harmony import */ var _utils_navigation__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(57933);
  3173. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_components_QuranReader_PlayChapterAudioButton__WEBPACK_IMPORTED_MODULE_5__, _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_11__, _utils_navigation__WEBPACK_IMPORTED_MODULE_12__]);
  3174. ([_components_QuranReader_PlayChapterAudioButton__WEBPACK_IMPORTED_MODULE_5__, _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_11__, _utils_navigation__WEBPACK_IMPORTED_MODULE_12__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  3175. /* eslint-disable i18next/no-literal-string */
  3176. const CHAPTERS_WITHOUT_BISMILLAH = [
  3177. "1",
  3178. "9"
  3179. ];
  3180. const ChapterHeader = ({ chapterId , pageNumber , hizbNumber , translationName , isTranslationSelected , })=>{
  3181. const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
  3182. const { t } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default()("common");
  3183. const headerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
  3184. /**
  3185. * the intersection observer is needed so that we know that the first verse
  3186. * of the current chapter is being read when the ChapterHeader appears within
  3187. * the intersection observer root's borders.
  3188. */ (0,_hooks_useObserveElement__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)(headerRef, _components_QuranReader_observer__WEBPACK_IMPORTED_MODULE_13__/* .QURAN_READER_OBSERVER_ID */ .NM);
  3189. const onChangeTranslationClicked = ()=>{
  3190. dispatch((0,_redux_slices_navbar__WEBPACK_IMPORTED_MODULE_10__/* .setIsSettingsDrawerOpen */ .ZY)(true));
  3191. dispatch((0,_redux_slices_navbar__WEBPACK_IMPORTED_MODULE_10__/* .setSettingsView */ .Mi)(_redux_slices_navbar__WEBPACK_IMPORTED_MODULE_10__/* .SettingsView.Translation */ .US.Translation));
  3192. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_11__/* .logButtonClick */ .MY)("change_translation");
  3193. };
  3194. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  3195. ref: headerRef,
  3196. "data-verse-key": `${chapterId}:1`,
  3197. "data-page": pageNumber,
  3198. "data-chapter-id": chapterId,
  3199. "data-hizb": hizbNumber,
  3200. children: [
  3201. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  3202. className: (_ChapterHeader_module_scss__WEBPACK_IMPORTED_MODULE_14___default().header),
  3203. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  3204. className: (_ChapterHeader_module_scss__WEBPACK_IMPORTED_MODULE_14___default().chapterIconContainer),
  3205. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_chapters_ChapterIcon_ChapterIconContainer__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
  3206. chapterId: chapterId,
  3207. size: _components_chapters_ChapterIcon_ChapterIconContainer__WEBPACK_IMPORTED_MODULE_4__/* .ChapterIconsSize.Mega */ ._.Mega
  3208. })
  3209. })
  3210. }),
  3211. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  3212. className: (_ChapterHeader_module_scss__WEBPACK_IMPORTED_MODULE_14___default().bismillahContainer),
  3213. children: !CHAPTERS_WITHOUT_BISMILLAH.includes(chapterId) && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Bismillah_Bismillah__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {})
  3214. }),
  3215. /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  3216. className: (_ChapterHeader_module_scss__WEBPACK_IMPORTED_MODULE_14___default().container),
  3217. children: [
  3218. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  3219. className: (_ChapterHeader_module_scss__WEBPACK_IMPORTED_MODULE_14___default().left),
  3220. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  3221. className: (_ChapterHeader_module_scss__WEBPACK_IMPORTED_MODULE_14___default().infoContainer),
  3222. children: translationName ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  3223. className: (_ChapterHeader_module_scss__WEBPACK_IMPORTED_MODULE_14___default().translation),
  3224. children: [
  3225. isTranslationSelected && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  3226. className: (_ChapterHeader_module_scss__WEBPACK_IMPORTED_MODULE_14___default().translationBy),
  3227. children: t("quran-reader:translation-by")
  3228. }),
  3229. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  3230. children: translationName
  3231. }),
  3232. " ",
  3233. /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("span", {
  3234. onKeyPress: onChangeTranslationClicked,
  3235. tabIndex: 0,
  3236. role: "button",
  3237. onClick: onChangeTranslationClicked,
  3238. className: (_ChapterHeader_module_scss__WEBPACK_IMPORTED_MODULE_14___default().changeTranslation),
  3239. children: [
  3240. "(",
  3241. t("quran-reader:trans-change"),
  3242. ")"
  3243. ]
  3244. }),
  3245. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  3246. className: (_ChapterHeader_module_scss__WEBPACK_IMPORTED_MODULE_14___default().changeTranslation)
  3247. })
  3248. ]
  3249. }) : /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP, {
  3250. size: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* .ButtonSize.Small */ .qE.Small,
  3251. variant: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* .ButtonVariant.Ghost */ .Wu.Ghost,
  3252. prefix: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_info_svg__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {}),
  3253. href: (0,_utils_navigation__WEBPACK_IMPORTED_MODULE_12__/* .getSurahInfoNavigationUrl */ .Zm)(chapterId),
  3254. shouldPrefetch: false,
  3255. hasSidePadding: false,
  3256. onClick: ()=>{
  3257. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_11__/* .logButtonClick */ .MY)("chapter_header_info");
  3258. },
  3259. id: "surah-info-button",
  3260. children: t("quran-reader:surah-info")
  3261. })
  3262. })
  3263. }),
  3264. /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  3265. className: (_ChapterHeader_module_scss__WEBPACK_IMPORTED_MODULE_14___default().right),
  3266. children: [
  3267. translationName && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .ZP, {
  3268. size: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* .ButtonSize.Small */ .qE.Small,
  3269. variant: _dls_Button_Button__WEBPACK_IMPORTED_MODULE_7__/* .ButtonVariant.Ghost */ .Wu.Ghost,
  3270. prefix: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_icons_info_svg__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {}),
  3271. href: (0,_utils_navigation__WEBPACK_IMPORTED_MODULE_12__/* .getSurahInfoNavigationUrl */ .Zm)(chapterId),
  3272. shouldPrefetch: false,
  3273. hasSidePadding: false,
  3274. onClick: ()=>{
  3275. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_11__/* .logButtonClick */ .MY)("chapter_header_info");
  3276. },
  3277. id: "surah-info-button",
  3278. children: t("quran-reader:surah-info")
  3279. }),
  3280. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  3281. className: (_ChapterHeader_module_scss__WEBPACK_IMPORTED_MODULE_14___default().actionContainer),
  3282. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_QuranReader_PlayChapterAudioButton__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
  3283. chapterId: Number(chapterId)
  3284. })
  3285. })
  3286. ]
  3287. })
  3288. ]
  3289. })
  3290. ]
  3291. });
  3292. };
  3293. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ChapterHeader);
  3294. __webpack_async_result__();
  3295. } catch(e) { __webpack_async_result__(e); } });
  3296. /***/ }),
  3297. /***/ 92799:
  3298. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  3299. "use strict";
  3300. // EXPORTS
  3301. __webpack_require__.d(__webpack_exports__, {
  3302. "_": () => (/* binding */ ChapterIconsSize),
  3303. "Z": () => (/* binding */ ChapterIconContainer)
  3304. });
  3305. // EXTERNAL MODULE: external "react/jsx-runtime"
  3306. var jsx_runtime_ = __webpack_require__(20997);
  3307. // EXTERNAL MODULE: external "react"
  3308. var external_react_ = __webpack_require__(16689);
  3309. // EXTERNAL MODULE: external "classnames"
  3310. var external_classnames_ = __webpack_require__(59003);
  3311. var external_classnames_default = /*#__PURE__*/__webpack_require__.n(external_classnames_);
  3312. // EXTERNAL MODULE: ./src/components/chapters/ChapterIcon/ChapterIconContainer.module.scss
  3313. var ChapterIconContainer_module = __webpack_require__(77928);
  3314. var ChapterIconContainer_module_default = /*#__PURE__*/__webpack_require__.n(ChapterIconContainer_module);
  3315. ;// CONCATENATED MODULE: ./src/components/chapters/ChapterIcon/index.tsx
  3316. const ChapterIcon = ({ id })=>/*#__PURE__*/ jsx_runtime_.jsx("span", {
  3317. translate: "no",
  3318. children: id.padStart(3, "0")
  3319. });
  3320. /* harmony default export */ const chapters_ChapterIcon = (ChapterIcon);
  3321. ;// CONCATENATED MODULE: ./src/components/chapters/ChapterIcon/ChapterIconContainer.tsx
  3322. var ChapterIconsSize;
  3323. (function(ChapterIconsSize) {
  3324. ChapterIconsSize["Small"] = "small";
  3325. ChapterIconsSize["Medium"] = "medium";
  3326. ChapterIconsSize["Large"] = "large";
  3327. ChapterIconsSize["Mega"] = "mega";
  3328. })(ChapterIconsSize || (ChapterIconsSize = {}));
  3329. const IconContainer = ({ chapterId , size =ChapterIconsSize.Medium , hasSurahPrefix =true , })=>/*#__PURE__*/ (0,jsx_runtime_.jsxs)("span", {
  3330. className: external_classnames_default()((ChapterIconContainer_module_default()).iconContainer, {
  3331. [(ChapterIconContainer_module_default()).iconContainerSmall]: size === ChapterIconsSize.Small,
  3332. [(ChapterIconContainer_module_default()).iconContainerLarge]: size === ChapterIconsSize.Large,
  3333. [(ChapterIconContainer_module_default()).iconContainerMega]: size === ChapterIconsSize.Mega
  3334. }),
  3335. children: [
  3336. /*#__PURE__*/ jsx_runtime_.jsx(chapters_ChapterIcon, {
  3337. id: chapterId
  3338. }),
  3339. hasSurahPrefix && /*#__PURE__*/ jsx_runtime_.jsx(chapters_ChapterIcon, {
  3340. id: "surah"
  3341. })
  3342. ]
  3343. });
  3344. /* harmony default export */ const ChapterIconContainer = (IconContainer);
  3345. /***/ }),
  3346. /***/ 80729:
  3347. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  3348. "use strict";
  3349. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3350. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  3351. /* harmony export */ });
  3352. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  3353. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  3354. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
  3355. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
  3356. /* harmony import */ var _Badge_module_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19182);
  3357. /* harmony import */ var _Badge_module_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Badge_module_scss__WEBPACK_IMPORTED_MODULE_2__);
  3358. const Badge = ({ content , children , contentClassName , className })=>{
  3359. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  3360. className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Badge_module_scss__WEBPACK_IMPORTED_MODULE_2___default().container), className),
  3361. children: [
  3362. children,
  3363. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
  3364. className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(contentClassName, (_Badge_module_scss__WEBPACK_IMPORTED_MODULE_2___default().content), (_Badge_module_scss__WEBPACK_IMPORTED_MODULE_2___default().positionBottomRight)),
  3365. children: content
  3366. })
  3367. ]
  3368. });
  3369. };
  3370. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Badge);
  3371. /***/ }),
  3372. /***/ 62703:
  3373. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  3374. "use strict";
  3375. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3376. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  3377. /* harmony export */ });
  3378. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  3379. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  3380. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  3381. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  3382. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60866);
  3383. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__);
  3384. /* harmony import */ var _NewLabel_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(25746);
  3385. /* harmony import */ var _NewLabel_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_NewLabel_module_scss__WEBPACK_IMPORTED_MODULE_3__);
  3386. const NewLabel = ()=>{
  3387. const { t } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default()("common");
  3388. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("p", {
  3389. className: (_NewLabel_module_scss__WEBPACK_IMPORTED_MODULE_3___default().label),
  3390. children: t("new")
  3391. });
  3392. };
  3393. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewLabel);
  3394. /***/ }),
  3395. /***/ 17172:
  3396. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  3397. "use strict";
  3398. // EXPORTS
  3399. __webpack_require__.d(__webpack_exports__, {
  3400. "Z": () => (/* binding */ Bismillah_Bismillah)
  3401. });
  3402. // EXTERNAL MODULE: external "react/jsx-runtime"
  3403. var jsx_runtime_ = __webpack_require__(20997);
  3404. // EXTERNAL MODULE: external "react"
  3405. var external_react_ = __webpack_require__(16689);
  3406. ;// CONCATENATED MODULE: ./public/bismillah.svg
  3407. var _switch;
  3408. 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); }
  3409. var SvgBismillah = function SvgBismillah(props) {
  3410. return /*#__PURE__*/external_react_.createElement("svg", _extends({
  3411. baseProfile: "tiny",
  3412. xmlns: "http://www.w3.org/2000/svg",
  3413. width: 220,
  3414. height: 45,
  3415. viewBox: "0 0 176 36",
  3416. overflow: "inherit",
  3417. xmlSpace: "preserve"
  3418. }, props), _switch || (_switch = /*#__PURE__*/external_react_.createElement("switch", null, /*#__PURE__*/external_react_.createElement("g", null, /*#__PURE__*/external_react_.createElement("path", {
  3419. fill: "currentColor",
  3420. d: "M165.716 11.67c-.586-.089-1.021-.134-1.306-.134-.277 0-.644.273-1.099.818-.391.472-.586.781-.586.928a.217.217 0 0 0 .03.061c.012.016.03.024.055.024.008 0 .09-.063.244-.189s.301-.189.439-.189c.969 0 1.64.094 2.014.281-.357.26-.943.521-1.757.781-.659.211-.981.354-.965.427.024.081.366.094 1.025.037.651-.057 1.099-.143 1.343-.256.31-.146.667-.464 1.074-.952.439-.521.659-.932.659-1.233.002-.148-.389-.282-1.17-.404zm1.953 6.835c-.024 0-.092.13-.201.391-.11.26-.279.391-.507.391-.334 0-.501-.203-.501-.611 0-.179.051-.429.153-.75.102-.321.152-.535.152-.641 0-.065-.021-.105-.062-.122-.138-.073-.321.191-.549.793-.22.57-.329.989-.329 1.257 0 .277.081.546.243.807.188.284.411.427.672.427.342 0 .614-.179.817-.537.171-.301.257-.639.257-1.013.001-.277-.047-.408-.145-.392zm4.571 9.026c-.533-.271-.856-.408-.971-.408-.057 0-.207.258-.451.775-.244.516-.366.836-.366.958 0 .057.262.235.787.537.524.301.84.451.946.451.089 0 .254-.269.494-.806.239-.537.359-.879.359-1.025.001-.048-.266-.208-.798-.482zm2.203 3.449c-.058-.025-.92.346-2.588 1.11-1.701.781-2.648 1.257-2.844 1.429-.163.138-.362.361-.599.671-.284.366-.427.614-.427.745 0 .016.008.027.024.036-.073 0 .765-.411 2.515-1.233.919-.432 1.814-.846 2.685-1.244.163-.106.407-.338.732-.696.351-.391.525-.651.525-.781.002-.017-.007-.029-.023-.037zm-1.025-13.061c-1.074-2.034-1.733-3.051-1.978-3.051-.236 0-.354.504-.354 1.514 0 .35.04.785.122 1.306.089.545.166.818.231.818.122 0 .184-.403.184-1.208.398.529.956 1.489 1.672 2.881.789 1.529 1.184 2.502 1.184 2.917 0 .285-.211.428-.635.428-.301 0-.667-.062-1.099-.184-.488-.13-.817-.28-.988-.451.073-.488.041-.749-.098-.781-.114-.024-.293.265-.537.866-.244.603-.443.903-.598.903-.586 0-1.07-.142-1.453-.427.154-.521.244-.83.269-.928 0-.098-.028-.167-.085-.208-.106-.032-.257.114-.452.44-.261.438-.513.752-.757.939-.333.26-.813.391-1.44.391-.724 0-1.114-.057-1.171-.172.122-.072.237-.235.348-.488.109-.252.164-.459.164-.622 0-.098-.028-.15-.085-.158-.073-.017-.188.069-.342.256a2.502 2.502 0 0 1-.684.586c-.911.521-4.374 1.11-10.388 1.771-2.913.316-6.615.598-11.107.842-4.825.26-9.085.391-12.779.391-7.683 0-14.961-.342-21.837-1.025-2.971-.293-4.932-.537-5.884-.732-2.449-.496-4.142-1.266-5.078-2.307-.431-.48-.748-.717-.951-.708-.424.017-.854.415-1.294 1.196-.407.707-.61 1.298-.61 1.77 0 .326.187.659.562 1.001-2.222 1.603-3.942 2.815-5.163 3.638-.334.22-.484.357-.452.415.008.024.037.036.086.036.366 0 1.172-.252 2.416-.756 1.245-.506 2.011-.888 2.295-1.148.488-.447.903-1.082 1.245-1.904.269.18.738.362 1.41.55.671.187 1.166.272 1.482.257.098-.009.229-.257.391-.745 2.312.554 5.619 1.038 9.924 1.452 2.922.285 6.689.525 11.303.721 4.158.179 7.52.269 10.083.269 3.011 0 7.12-.163 12.328-.488 4.979-.31 9-.64 12.06-.989 4.833-.553 7.999-1.191 9.496-1.916a1.735 1.735 0 0 0-.085.439c0 .326.618.488 1.854.488.854 0 1.575-.342 2.161-1.025.586.473 1.232.708 1.94.708.398 0 .798-.603 1.196-1.807.212.188.582.432 1.11.732.627.358 1.059.537 1.294.537.236 0 .493-.179.77-.537.357-.472.537-1.082.537-1.831 0-1.052-.578-2.673-1.733-4.862zM96.61 4.59c-.109-.122-.229-.183-.359-.183-.847 0-1.567.635-2.161 1.904-.139-.008-.313-.063-.524-.165-.212-.102-.366-.152-.464-.152-.317 0-.647.22-.988.659-.31.399-.465.72-.465.964 0 .082.033.122.098.122.033 0 .161-.132.385-.397.224-.264.417-.396.58-.396.13 0 .34.071.629.213.288.143.563.214.823.214.684 0 1.29-.232 1.819-.696.528-.464.793-1.033.793-1.709a.566.566 0 0 0-.166-.378zm-1.788 10.669a1763.66 1763.66 0 0 0-.977-4.492c-.252-1.253-.406-1.879-.464-1.879-.235 0-.354.85-.354 2.551l.744 3.271c.529 2.278.858 3.812.989 4.601l.293 2.063c.105.7.183 1.05.231 1.05.236 0 .354-.766.354-2.295.003-.708-.271-2.332-.816-4.87zM85.998 6.91a7.41 7.41 0 0 0-.391 1.135c.879.968 1.363 2.079 1.453 3.332.024.366.061.549.109.549.18 0 .269-.435.269-1.306 0-1.383-.48-2.62-1.44-3.71zm2.514 6.298c-.081-.504-.188-.752-.317-.745-.105 0-.146.138-.122.415.032.326.024.529-.024.61a.632.632 0 0 1-.366.159c-.162.017-.276-.024-.342-.122-.032-.057-.057-.228-.073-.513-.008-.228-.053-.342-.134-.342-.082.017-.139.159-.171.427-.041.35-.077.562-.11.635-.105.236-.321.378-.646.427-.244 0-.395-.143-.452-.427 0-.089.028-.222.085-.397.057-.175.085-.303.085-.384 0-.065-.024-.11-.073-.134-.008-.008-.021-.012-.037-.012-.098 0-.236.24-.415.72-.13.342-.179.635-.146.879.073.578.391.838.952.781.293-.024.59-.228.891-.61.122.114.293.171.513.171.627 0 .94-.375.94-1.123a2.7 2.7 0 0 0-.038-.415zm-10.4-8.911c-.854 0-1.583.635-2.185 1.904-.114-.016-.279-.08-.494-.189-.216-.11-.38-.165-.495-.165-.301 0-.626.228-.977.684-.317.415-.476.741-.476.977 0 .089.032.134.098.134.041 0 .175-.134.402-.403.228-.269.427-.403.598-.403.123 0 .33.065.623.195s.559.196.794.196c.684 0 1.282-.22 1.794-.659.545-.472.818-1.042.818-1.709.001-.374-.166-.562-.5-.562zm13.793 16.82-1.953-5.053c-.057-.139-.114-.208-.171-.208-.017.008-.041.114-.073.317-.098.602-.146.976-.146 1.123 0 .391.336 1.402 1.007 3.033.672 1.632 1.008 2.565 1.008 2.802 0 .163-.139.244-.415.244a2 2 0 0 1-.317.024 1.862 1.862 0 0 1-1.526-.732c-.285-.358-.603-1.258-.952-2.697a485.636 485.636 0 0 1-.671-2.918c-.122-.521-.229-.781-.317-.781-.285.537-.428 1.046-.428 1.526 0 .114.062.407.184.879.423 1.644.635 2.707.635 3.186 0 .603-.24 1.074-.721 1.415-.423.302-.948.452-1.574.452-.977 0-1.53-.472-1.66-1.416-.049-.35-.073-1.126-.073-2.331 0-.659-.024-.989-.073-.989-.139 0-.269.273-.391.818a2.77 2.77 0 0 0-.073.599c0 .049-.354.24-1.062.573-.854.407-1.513.851-1.977 1.33-.277.285-.533.725-.769 1.318-.155.374-.057.655.293.843.26.139.598.207 1.013.207.903 0 1.501-.199 1.794-.598.024-.025.122-.191.293-.501.114-.212.232-.35.354-.415.033.773.183 1.339.452 1.697.439.586 1.042.879 1.807.879.806 0 1.465-.33 1.978-.989.276-.35.483-.769.622-1.257.098-.326.171-.518.22-.574.024.017.077.188.159.513.105.415.244.761.415 1.038.146.236.402.445.769.629.366.183.696.273.989.273.626 0 1.078-.346 1.354-1.037.138-.342.208-.875.208-1.599-.004-.715-.074-1.256-.212-1.623zm-10.247-7.665c-.542-.496-1.121-.745-1.739-.745-.261 0-.391.167-.391.5 0 .301.093.513.281.635-.09.236-.134.553-.134.952 0 .472.269.752.806.842-.285.407-.753.842-1.404 1.306a86.19 86.19 0 0 1-1.367.928c-.497.334-.724.545-.684.635.016.041.061.061.134.061.22 0 .626-.163 1.221-.488.562-.309 1.005-.59 1.331-.842.513-.398.984-.919 1.416-1.562.106 0 .271.047.495.14.224.094.376.14.458.14.261 0 .391-.28.391-.842-.002-.61-.273-1.163-.814-1.66zm15.679 16.075c-.203 0-.899.285-2.087.854-1.156.554-1.859.928-2.112 1.123-.398.399-.646.659-.744.781-.261.325-.366.524-.317.599.008.008.024.012.049.012a69.57 69.57 0 0 0 1.465-.793 95.53 95.53 0 0 1 2.941-1.404c.105-.081.269-.271.488-.567.22-.298.33-.494.33-.592 0-.009-.005-.013-.013-.013zM75.781 12.952c-.415-2.278-.639-3.548-.671-3.808-.073-.57-.154-.854-.244-.854-.041 0-.14.476-.299 1.428-.159.952-.222 1.514-.189 1.685.643 3.678 1.099 6.27 1.367 7.775.179 1.05.346 2.579.5 4.589.016.213.073.318.171.318.122 0 .183-.069.183-.208.154-.813.204-1.993.146-3.54-.057-1.701-.378-4.163-.964-7.385zm-5.859-7.556c-.049-.016-1.086.439-3.112 1.367-2.059.944-3.21 1.509-3.455 1.697-.146.114-.342.333-.586.659-.269.35-.403.59-.403.72 0 .024.008.037.024.037-.114 0 .712-.411 2.478-1.233 1.505-.7 2.775-1.278 3.808-1.733.163-.098.413-.336.751-.714.337-.378.506-.636.506-.775.001-.008-.003-.017-.011-.025zm-1.38 5.761c-.106-.569-.236-.842-.39-.818-.082.017-.123.085-.123.208 0 .082.012.202.037.36.024.159.037.279.037.36 0 .407-.171.61-.513.61a.33.33 0 0 1-.317-.195c-.024-.049-.062-.248-.11-.598-.041-.276-.102-.407-.183-.391-.09.017-.151.171-.183.464a8.914 8.914 0 0 1-.098.708c-.082.261-.305.411-.671.452-.261.065-.423-.077-.488-.427a1.056 1.056 0 0 1 .037-.403 2.17 2.17 0 0 0 .073-.415c0-.089-.024-.146-.073-.171-.017 0-.029-.004-.037-.012-.09 0-.232.265-.427.793-.09.391-.114.708-.073.952a.936.936 0 0 0 .366.623.842.842 0 0 0 .696.159c.447-.082.752-.305.916-.671a.788.788 0 0 0 .634.293c.635 0 .952-.427.952-1.282 0-.179-.021-.379-.062-.599zm11.536 16.4c-1.18.573-1.88.958-2.1 1.153-.448.398-.708.647-.781.744-.26.334-.354.537-.281.61a.052.052 0 0 0 .037.013c.049 0 .224-.09.525-.269.423-.252.732-.428.928-.525a216.721 216.721 0 0 1 2.966-1.416c.26-.195.5-.427.72-.695.269-.317.297-.477.085-.477-.22 0-.92.287-2.099.862zM59.547 7.3c-.586-.089-1.025-.134-1.318-.134-.277 0-.643.276-1.099.83-.399.48-.598.785-.598.916a.194.194 0 0 0 .037.048.08.08 0 0 0 .061.024c.016 0 .1-.062.25-.189.15-.126.291-.189.421-.189.195 0 .545.037 1.05.11.545.081.867.15.964.208-.358.244-.94.496-1.746.757-.659.211-.985.35-.977.415.024.057.167.085.427.085.83 0 1.477-.102 1.941-.305.301-.13.663-.444 1.086-.94.456-.521.684-.924.684-1.208.001-.164-.394-.306-1.183-.428zM72.4 16.271c-.57-3.222-.854-4.858-.854-4.907.26-.781.391-1.204.391-1.27-.008-.032-.082-.098-.22-.195-.383-.269-.598-.7-.647-1.294-.024-.261-.065-.391-.122-.391-.114 0-.252.293-.415.879-.146.529-.22.907-.22 1.135 0 .342.094.639.281.891l1.001 5.419c.651 3.516.977 5.525.977 6.03 0 .553-.464.83-1.392.83-.212 0-.362-.021-.452-.062a6.783 6.783 0 0 1-.769-.769c-.211.61-.403 1.232-.574 1.867.497.334.745.725.745 1.172 0 .285-.309.732-.928 1.343-1.286 1.27-2.754 1.904-4.406 1.904-.26 0-.647-.036-1.16-.11a8.954 8.954 0 0 0-1.147-.109c-.122 0-.183.032-.183.098 0 .146.277.361.83.646a8.06 8.06 0 0 0 1.233.537c.952.326 1.624.488 2.014.488.683 0 1.518-.464 2.502-1.391 1.123-1.059 1.798-2.242 2.026-3.553.781 0 1.375-.357 1.782-1.074.342-.586.513-1.298.513-2.136 0-.948-.269-2.942-.806-5.978zm-19.261-8.47c-.155.35-.285.724-.391 1.123.545.594.932 1.229 1.159 1.904.13.399.22.875.269 1.428.032.375.073.562.122.562.188 0 .281-.435.281-1.306 0-1.384-.48-2.621-1.44-3.711zM50.38 4.334c-.822 0-1.542.635-2.16 1.904-.146-.008-.324-.069-.531-.183-.208-.114-.36-.171-.458-.171-.317 0-.647.224-.989.671-.31.399-.464.729-.464.989 0 .089.037.134.11.134.041 0 .171-.134.391-.403s.407-.403.562-.403c.138 0 .352.065.641.195.289.13.56.195.812.195.692 0 1.3-.226 1.825-.678.525-.451.787-1.015.787-1.69-.001-.373-.177-.56-.526-.56zm2.325 10.791c-.525-.293-.84-.439-.946-.439-.082 0-.208.24-.378.72-.171.48-.256.793-.256.939 0 .122.23.33.69.623.459.292.758.439.897.439.081 0 .232-.264.452-.793s.33-.854.33-.976c-.001-.05-.264-.221-.789-.513zm-4.095-2.1c-.383-1.847-.631-3.121-.745-3.821-.089-.537-.183-.805-.281-.805-.041 0-.13.478-.268 1.434-.139.956-.191 1.516-.159 1.678a860.271 860.271 0 0 0 1.379 7.031c.211 1.14.403 2.669.574 4.59.049.212.118.317.208.317.065 0 .122-.082.171-.244.13-.847.155-2.014.073-3.504-.098-1.83-.415-4.056-.952-6.676zm-8.129-1.55c-.106-.569-.236-.842-.391-.818-.082.017-.122.085-.122.208 0 .082.014.202.042.36s.043.279.043.36c0 .407-.175.61-.525.61-.139 0-.244-.065-.317-.195a12.877 12.877 0 0 1-.085-.476l-.012-.122c-.041-.269-.102-.398-.183-.391-.098.017-.163.171-.195.464-.041.432-.069.667-.085.708-.082.261-.305.411-.671.452-.261.065-.427-.073-.5-.415-.017-.081-.002-.226.043-.433.044-.208.067-.344.067-.409 0-.089-.024-.15-.073-.183-.09-.049-.244.22-.464.806-.09.35-.11.667-.061.952.081.529.362.793.842.793.529 0 .907-.228 1.135-.684a.753.753 0 0 0 .623.293c.635 0 .952-.427.952-1.282a3.583 3.583 0 0 0-.063-.598zm15.422 17.552c-1.176.562-1.874.939-2.093 1.135a7.49 7.49 0 0 0-.745.781c-.277.334-.383.533-.317.598.008 0 .513-.26 1.514-.781a94.169 94.169 0 0 1 2.941-1.402c.285-.229.525-.461.72-.696.26-.317.289-.476.085-.476-.227 0-.929.28-2.105.841zM44.667 13.708c-.659-3.613-1.079-5.383-1.257-5.31-.22.089-.395.691-.525 1.806a17.57 17.57 0 0 0-.146 2.039c0 1.359.065 2.576.195 3.65.114.96.228 1.44.342 1.44.057 0 .085-.24.085-.72l-.073-2.587c-.024-1.196-.004-2.095.061-2.698l.891 4.651c.513 2.685.769 4.281.769 4.785 0 .252-.261.428-.781.525-.472.089-.802.094-.989.012-.309-.229-.533-.419-.671-.574-.269-.179-.48.033-.635.635-.163.595-.126 1.01.11 1.246.537.422.806.821.806 1.195 0 .619-.496 1.335-1.489 2.148-1.042.854-2.018 1.281-2.929 1.281-.912 0-1.546-.293-1.904-.879-.179-.293-.297-.756-.354-1.391-.049-.537-.106-.807-.171-.807-.171 0-.256.334-.256 1.002 0 .635.118 1.221.354 1.758.594 1.342 1.57 2.014 2.93 2.014 1.123 0 2.177-.68 3.161-2.039.928-1.277 1.371-2.461 1.331-3.552.83-.073 1.412-.407 1.746-1.001.252-.455.378-1.143.378-2.062-.002-.83-.328-3.019-.979-6.567zm-14.452-6.2c-6.274 1.57-10.225 2.75-11.852 3.54-.79.383-1.433.863-1.929 1.44-.399.464-.598.814-.598 1.05 0 .049.021.073.061.073-.016-.008.171-.142.562-.403.545-.366 1.298-.732 2.258-1.099 2.596-.993 5.989-1.994 10.18-3.002 4.28-1.034 8.78-2.071 13.5-3.113.529-.545.985-1.042 1.367-1.489-3.214.545-7.73 1.546-13.549 3.003zm35.325 8.593c-.407-.163-1.249-.578-2.527-1.245-.675-.35-1.293-.525-1.855-.525-1.058 0-1.791.5-2.197 1.501-.049.171-.094.342-.134.512a23.147 23.147 0 0 1 1.575-.061c.586 0 1.062.032 1.428.098.439.122 1.038.333 1.794.634-2.628.35-4.357.916-5.188 1.697-.204.188-.497.586-.879 1.196-.366.569-.627.915-.781 1.038-.358.284-.903.427-1.636.427-.333 0-.563-.047-.689-.141-.126-.093-.285-.308-.476-.641s-.352-.558-.482-.671c-.065-.058-.214.199-.446.769s-.262.973-.091 1.208c.496.66.745 1.294.745 1.904 0 1.855-2.673 3.801-8.02 5.835-4.378 1.668-9.313 2.502-14.806 2.502-5.477 0-10.306-1.106-14.489-3.319a18.333 18.333 0 0 1-3.039-2.027 24.436 24.436 0 0 1-1.831-1.696c-.448-.456-.7-.663-.757-.622-.008.008-.012.028-.012.061 0 .342.452 1.188 1.355 2.539 1.001 1.497 1.908 2.539 2.722 3.125 1.53 1.098 3.593 2.01 6.188 2.734 2.995.838 6.189 1.257 9.582 1.257 5.696 0 11.197-1.119 16.503-3.356 4.605-1.938 7.087-4.48 7.445-7.629.122.008.236.012.342.012 1.05 0 1.843-.557 2.38-1.672.789.96 1.782 1.44 2.979 1.44.333 0 .63-.302.891-.903.228-.521.341-.973.341-1.355 0-.602-.297-1.154-.891-1.66.391-.17 1.074-.354 2.05-.549 1.09-.22 2.01-.33 2.759-.33 1.204 0 2.547.249 4.028.745.822-.968 1.212-1.453 1.172-1.453-2.254-.472-3.938-.932-5.053-1.379zm-49.618-9.02c-.578-.089-1.013-.134-1.306-.134-.285 0-.655.276-1.11.83-.383.472-.574.777-.574.916 0 .057.024.085.073.085.016 0 .1-.063.25-.189s.287-.189.409-.189c.212 0 .566.032 1.062.098.537.081.867.155.989.22-.358.244-.944.496-1.757.756-.667.212-.989.346-.964.403.006.064.153.096.438.096.822 0 1.465-.089 1.929-.268.301-.155.659-.48 1.074-.977.439-.529.659-.936.659-1.221 0-.162-.391-.304-1.172-.426zm6.042 8.495a11.1 11.1 0 0 0-.11.549c-.073.334-.248.501-.525.501-.512 0-.769-.399-.769-1.196 0-.073.004-.183.012-.33.008-.146.012-.256.012-.33 0-.163-.024-.248-.073-.256-.106-.016-.204.228-.293.732a5.963 5.963 0 0 0-.122 1.025c0 .383.089.737.269 1.062.211.383.496.574.854.574.325 0 .582-.175.769-.525.146-.285.22-.606.22-.964 0-.626-.081-.907-.244-.842zm7.25 7.738c-.016-.016-.083.137-.201.458-.118.321-.177.519-.177.592 0 .024.008.049.024.073.838.92 1.314 2.03 1.428 3.332.032.375.073.562.122.562.163 0 .244-.428.244-1.282.001-1.399-.479-2.644-1.44-3.735zm8.899-6.078c-.797-.203-1.77-.525-2.917-.964-.854-.325-1.367-.488-1.538-.488-.7 0-1.257.313-1.672.939-.301.456-.452.854-.452 1.196 0 .024.004.041.012.049.358-.032.716-.049 1.074-.049 1.44 0 2.791.252 4.052.757-1.603.855-2.832 1.282-3.686 1.282-.48 0-.863-.118-1.147-.354-.195-.162-.293-.305-.293-.427 0 .058.02-.053.061-.33.024-.154-.008-.244-.098-.269-.057-.016-.188.09-.391.317-.277.317-.643.574-1.099.769-.968.415-2.437.785-4.406 1.11-2.238.367-4.492.55-6.762.55-4.134 0-6.958-.834-8.471-2.502-.439-.48-.749-.716-.928-.708-.448.017-.887.411-1.318 1.184-.39.7-.585 1.294-.585 1.782 0 .325.187.655.561.989-2.14 1.545-3.857 2.75-5.151 3.612-.342.228-.497.378-.464.452.008.023.041.036.098.036.358 0 1.166-.254 2.423-.763 1.257-.509 2.021-.889 2.289-1.142.48-.439.891-1.078 1.233-1.916.277.171.753.354 1.428.549s1.164.285 1.465.269c.203-.064.358-.338.464-.817 1.131.569 3.121.854 5.969.854 2.954 0 5.7-.261 8.239-.781 2.832-.578 4.447-1.33 4.846-2.258.496.968 1.038 1.452 1.624 1.452.415 0 1.615-.407 3.601-1.221s3.41-1.221 4.272-1.221c.667 0 1.293.081 1.879.244.065.017.256-.265.574-.842.26-.48.391-.757.391-.83 0-.016-.004-.024-.012-.024-2.183.002-3.904-.16-5.165-.486zm-15.118 7.116c-.565-.268-.885-.391-.958-.365-.26.455-.472.891-.635 1.306l-1.05-.464c-.431-.188-.683-.269-.756-.244-.082.024-.214.301-.397.83s-.262.842-.238.939c.016.065.293.223.83.471.537.248.863.372.977.372.098 0 .31-.436.635-1.306.977.545 1.554.793 1.733.744.073-.024.224-.303.452-.836s.325-.844.293-.934c-.025-.074-.32-.244-.886-.513zm-14.72 4.822c-1.176.562-1.882.943-2.118 1.147-.896.765-1.245 1.208-1.05 1.33.008.009.024.013.049.013.122-.09.614-.354 1.477-.794a180.24 180.24 0 0 1 2.93-1.416c.244-.146.488-.362.732-.646.269-.317.297-.476.085-.476-.228 0-.929.28-2.105.842zM95.494 6.238c-.375.122-.7.171-.977.146.431-.781.842-1.172 1.232-1.172.285 0 .428.143.428.427.001.245-.228.445-.683.599zm.61 17.284c0-.106.081-.251.244-.434.162-.183.293-.274.391-.274.081-.008.231.188.451.586.276.504.517.85.721 1.037-1.205-.251-1.807-.556-1.807-.915zM77.331 6.128c-.375.122-.7.171-.977.146.415-.797.826-1.196 1.233-1.196.285 0 .427.151.427.452.001.244-.227.444-.683.598zm4.663 8.935c-.13 0-.35-.053-.66-.159.041-.171.062-.322.062-.452a.74.74 0 0 0-.062-.33c.114.016.285.146.513.391.187.204.28.35.28.439a.114.114 0 0 1-.012.049c-.008.042-.048.062-.121.062zm-1.196-.231c-.448 0-.671-.085-.671-.256 0-.374.13-.562.391-.562.236 0 .354.143.354.427a1.287 1.287 0 0 1-.074.391zm2.306 7.628a3.531 3.531 0 0 1-1.916.366c-.375-.032-.562-.085-.562-.158 0-.154.838-.659 2.514-1.514-.023.211-.036.647-.036 1.306zM49.623 6.153c-.382.13-.708.183-.977.159.432-.781.842-1.172 1.233-1.172.285 0 .427.143.427.427.001.236-.227.432-.683.586zm10.705 15.05c-.358 0-.777-.135-1.257-.402a2.052 2.052 0 0 1-.5-.391c-.195-.204-.252-.367-.171-.488.057-.074.208-.102.452-.086.269.024.496.086.684.184.643.342.964.699.964 1.074-.001.072-.058.109-.172.109zM8.745 19.922c0-.105.082-.252.244-.439s.297-.289.403-.306c.073 0 .22.204.439.61.269.505.509.854.72 1.05-1.204-.252-1.806-.558-1.806-.915z"
  3421. })))));
  3422. };
  3423. /* harmony default export */ const bismillah = (SvgBismillah);
  3424. ;// CONCATENATED MODULE: ./src/components/dls/Bismillah/Bismillah.tsx
  3425. const Bismillah = ()=>/*#__PURE__*/ jsx_runtime_.jsx(bismillah, {});
  3426. /* harmony default export */ const Bismillah_Bismillah = (Bismillah);
  3427. /***/ }),
  3428. /***/ 55557:
  3429. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  3430. "use strict";
  3431. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3432. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  3433. /* harmony export */ });
  3434. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  3435. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  3436. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  3437. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  3438. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59003);
  3439. /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
  3440. /* harmony import */ var _KeyboardInput_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(56419);
  3441. /* harmony import */ var _KeyboardInput_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_KeyboardInput_module_scss__WEBPACK_IMPORTED_MODULE_3__);
  3442. /* eslint-disable i18next/no-literal-string */
  3443. const KeyboardInput = ({ keyboardKey , meta , shift , alt , ctrl , invertColors =false , })=>{
  3444. const isMacOs = false && 0;
  3445. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("kbd", {
  3446. className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_KeyboardInput_module_scss__WEBPACK_IMPORTED_MODULE_3___default().container), {
  3447. [(_KeyboardInput_module_scss__WEBPACK_IMPORTED_MODULE_3___default().invertedColors)]: invertColors
  3448. }),
  3449. children: [
  3450. meta && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  3451. children: isMacOs ? "⌘" : "ctrl"
  3452. }),
  3453. shift && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  3454. children: "⇧"
  3455. }),
  3456. alt && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  3457. children: "⌥"
  3458. }),
  3459. ctrl && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  3460. children: "⌃"
  3461. }),
  3462. keyboardKey && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
  3463. children: keyboardKey
  3464. })
  3465. ]
  3466. });
  3467. };
  3468. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (KeyboardInput);
  3469. /***/ }),
  3470. /***/ 54934:
  3471. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  3472. "use strict";
  3473. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  3474. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3475. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  3476. /* harmony export */ });
  3477. /* harmony import */ var swr_immutable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79847);
  3478. /* harmony import */ var _utils_auth_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(37883);
  3479. /* harmony import */ var _utils_auth_login__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22197);
  3480. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr_immutable__WEBPACK_IMPORTED_MODULE_0__, _utils_auth_login__WEBPACK_IMPORTED_MODULE_2__]);
  3481. ([swr_immutable__WEBPACK_IMPORTED_MODULE_0__, _utils_auth_login__WEBPACK_IMPORTED_MODULE_2__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  3482. const useCountRangeNotes = (notesRange)=>{
  3483. const { data , isValidating , error } = (0,swr_immutable__WEBPACK_IMPORTED_MODULE_0__["default"])(notesRange && (0,_utils_auth_login__WEBPACK_IMPORTED_MODULE_2__/* .isLoggedIn */ .jl)() ? `countNotes/${notesRange.from}-${notesRange.to}` : null, async ()=>{
  3484. return (0,_utils_auth_api__WEBPACK_IMPORTED_MODULE_1__/* .countNotesWithinRange */ .jm)(notesRange.from, notesRange.to);
  3485. });
  3486. return {
  3487. data,
  3488. isLoading: isValidating && !data,
  3489. error
  3490. };
  3491. };
  3492. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useCountRangeNotes);
  3493. __webpack_async_result__();
  3494. } catch(e) { __webpack_async_result__(e); } });
  3495. /***/ }),
  3496. /***/ 97678:
  3497. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  3498. "use strict";
  3499. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3500. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  3501. /* harmony export */ });
  3502. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  3503. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  3504. /* harmony import */ var _hooks_useBrowserLayoutEffect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44063);
  3505. /**
  3506. * A hook that will create a global observer and inject it into window so that it's
  3507. * globally available. Once it's created, it can be used by any element that would like
  3508. * to be observed using that observer using {@see useObserverElement} hook.
  3509. *
  3510. * @param {IntersectionObserverInit} options
  3511. * @param {(element:Element)=>void} onElementVisible
  3512. * @param {string} observerId the name of the observer
  3513. */ const useGlobalIntersectionObserver = ({ threshold =1 , root =null , rootMargin ="0%" }, onElementVisible, observerId)=>{
  3514. const updateEntry = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((entries)=>{
  3515. entries.filter((entry)=>entry.isIntersecting).forEach((visibleEntry)=>{
  3516. onElementVisible(visibleEntry.target);
  3517. });
  3518. }, [
  3519. onElementVisible
  3520. ]);
  3521. /**
  3522. * We need to assign to window before render is done since we want to the observer to be available by the time rendering is done so that the elements to be observed can use it.
  3523. * {@see https://kentcdodds.com/blog/useeffect-vs-uselayouteffect}
  3524. */ (0,_hooks_useBrowserLayoutEffect__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(()=>{
  3525. const hasIOSupport = !!window.IntersectionObserver;
  3526. if (!hasIOSupport) return undefined;
  3527. // no need to create a new observer if it already exists.
  3528. if (!window[observerId]) {
  3529. window[observerId] = new IntersectionObserver(updateEntry, {
  3530. threshold,
  3531. root,
  3532. rootMargin
  3533. });
  3534. }
  3535. return ()=>{
  3536. window[observerId].disconnect();
  3537. window[observerId] = undefined;
  3538. };
  3539. }, [
  3540. root,
  3541. rootMargin,
  3542. threshold,
  3543. updateEntry,
  3544. observerId
  3545. ]);
  3546. };
  3547. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useGlobalIntersectionObserver);
  3548. /***/ }),
  3549. /***/ 35507:
  3550. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  3551. "use strict";
  3552. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  3553. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3554. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  3555. /* harmony export */ });
  3556. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  3557. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  3558. /* harmony import */ var _xstate_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59456);
  3559. /* harmony import */ var _xstate_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_xstate_react__WEBPACK_IMPORTED_MODULE_1__);
  3560. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60866);
  3561. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2__);
  3562. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
  3563. /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
  3564. /* harmony import */ var _redux_defaultSettings_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(17241);
  3565. /* harmony import */ var _redux_slices_QuranReader_readingPreferences__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(90264);
  3566. /* harmony import */ var _redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(62093);
  3567. /* harmony import */ var _redux_slices_QuranReader_translations__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(88548);
  3568. /* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(5639);
  3569. /* harmony import */ var _xstate_actors_audioPlayer_selectors__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(16119);
  3570. /* harmony import */ var _xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(64564);
  3571. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_9__]);
  3572. _xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_9__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
  3573. const useIsUsingDefaultSettings = ({ translationParams , selectedTranslations } = {})=>{
  3574. const { lang } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_2___default()();
  3575. const audioService = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_xstate_AudioPlayerMachineContext__WEBPACK_IMPORTED_MODULE_9__/* .AudioPlayerMachineContext */ .c);
  3576. const isUsingDefaultReciter = (0,_xstate_react__WEBPACK_IMPORTED_MODULE_1__.useSelector)(audioService, (state)=>(0,_xstate_actors_audioPlayer_selectors__WEBPACK_IMPORTED_MODULE_8__/* .selectIsUsingDefaultReciter */ .iX)(state));
  3577. const isUsingDefaultWordByWordLocale = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useSelector)(_redux_slices_QuranReader_readingPreferences__WEBPACK_IMPORTED_MODULE_5__/* .selectIsUsingDefaultWordByWordLocale */ .SL);
  3578. const isUsingDefaultTranslations = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useSelector)(_redux_slices_QuranReader_translations__WEBPACK_IMPORTED_MODULE_7__/* .selectIsUsingDefaultTranslations */ .z2);
  3579. const quranFont = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useSelector)(_redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_6__/* .selectQuranFont */ .Ho);
  3580. const mushafLines = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useSelector)(_redux_slices_QuranReader_styles__WEBPACK_IMPORTED_MODULE_6__/* .selectQuranMushafLines */ .z$);
  3581. const defaultState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>{
  3582. return {
  3583. quranReaderStyles: (0,_redux_defaultSettings_util__WEBPACK_IMPORTED_MODULE_4__/* .getQuranReaderStylesInitialState */ .kq)(lang),
  3584. translations: (0,_redux_defaultSettings_util__WEBPACK_IMPORTED_MODULE_4__/* .getTranslationsInitialState */ .h0)(lang)
  3585. };
  3586. }, [
  3587. lang
  3588. ]);
  3589. const isUsingDefaultFont = defaultState.quranReaderStyles.quranFont === quranFont && defaultState.quranReaderStyles.mushafLines === mushafLines;
  3590. const areTranslationsEqual = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>{
  3591. if (!translationParams && !selectedTranslations) {
  3592. return false;
  3593. }
  3594. const translations = (0,_utils_array__WEBPACK_IMPORTED_MODULE_10__/* .mergeTwoArraysUniquely */ .sp)(translationParams ?? [], selectedTranslations ?? []);
  3595. return (0,_utils_array__WEBPACK_IMPORTED_MODULE_10__/* .areArraysEqual */ .Hj)(defaultState.translations.selectedTranslations, translations);
  3596. }, [
  3597. translationParams,
  3598. selectedTranslations,
  3599. defaultState.translations.selectedTranslations
  3600. ]);
  3601. const isUsingDefaultSettings = isUsingDefaultFont && isUsingDefaultReciter && isUsingDefaultWordByWordLocale;
  3602. if (translationParams || selectedTranslations) {
  3603. return isUsingDefaultSettings && isUsingDefaultTranslations && areTranslationsEqual;
  3604. }
  3605. return isUsingDefaultSettings;
  3606. };
  3607. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useIsUsingDefaultSettings);
  3608. __webpack_async_result__();
  3609. } catch(e) { __webpack_async_result__(e); } });
  3610. /***/ }),
  3611. /***/ 13758:
  3612. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  3613. "use strict";
  3614. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3615. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  3616. /* harmony export */ });
  3617. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  3618. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  3619. /**
  3620. * This is a hook that is mean to be used in combination with {@see useGlobalIntersectionObserver}
  3621. * that will use the global observer that had been created by the above hook to observe an element.
  3622. *
  3623. * @param {RefObject<Element>} elementRef the ref of the object that will be observed.
  3624. * @param {string} observerId the name of the global observer that the element wants to use.
  3625. */ const useObserveElement = (elementRef, observerId)=>{
  3626. (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
  3627. const node = elementRef?.current; // DOM Ref
  3628. const hasIOSupport = !!window.IntersectionObserver;
  3629. if (!hasIOSupport || !node) return undefined;
  3630. // in-case useGlobalIntersectionObserver hasn't been used.
  3631. if (window[observerId]) {
  3632. window[observerId].observe(node);
  3633. }
  3634. return ()=>{
  3635. if (window[observerId]) {
  3636. window[observerId].unobserve(node);
  3637. }
  3638. };
  3639. }, [
  3640. elementRef,
  3641. observerId
  3642. ]);
  3643. };
  3644. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useObserveElement);
  3645. /***/ }),
  3646. /***/ 38646:
  3647. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  3648. "use strict";
  3649. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3650. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  3651. /* harmony export */ });
  3652. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  3653. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  3654. /**
  3655. * A hook that detects clicking outside an element.
  3656. *
  3657. * @param {React.RefObject<HTMLElement>} ref
  3658. * @param {()=> void} onClickOutsideDetected
  3659. * @param {boolean} enableDetection
  3660. */ const useOutsideClickDetector = (ref, onClickOutsideDetected, enableDetection)=>{
  3661. (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
  3662. const handleClickOutside = (event)=>{
  3663. // if we click on an element inside the document that is not an inclusive descendant of the ref node.
  3664. if (ref.current && !ref.current.contains(event.target)) {
  3665. onClickOutsideDetected();
  3666. }
  3667. };
  3668. // no need to attach the listener if the parent component's visibility is controlled.
  3669. if (enableDetection) {
  3670. // Bind the event listener
  3671. document.addEventListener("mousedown", handleClickOutside);
  3672. }
  3673. return ()=>{
  3674. // Unbind the event listener on clean up
  3675. document.removeEventListener("mousedown", handleClickOutside);
  3676. };
  3677. }, [
  3678. ref,
  3679. onClickOutsideDetected,
  3680. enableDetection
  3681. ]);
  3682. };
  3683. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useOutsideClickDetector);
  3684. /***/ }),
  3685. /***/ 56748:
  3686. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  3687. "use strict";
  3688. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3689. /* harmony export */ "Oz": () => (/* binding */ useScrollToElement),
  3690. /* harmony export */ "ZP": () => (__WEBPACK_DEFAULT_EXPORT__),
  3691. /* harmony export */ "gZ": () => (/* binding */ SMOOTH_SCROLL_TO_TOP),
  3692. /* harmony export */ "lT": () => (/* binding */ SCROLL_TO_NEAREST_ELEMENT),
  3693. /* harmony export */ "nv": () => (/* binding */ SMOOTH_SCROLL_TO_CENTER)
  3694. /* harmony export */ });
  3695. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
  3696. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
  3697. /**
  3698. * A hook that scrolls to a specific element in the DOM.
  3699. * The scrolling will only happen when executeScroll function
  3700. * is invoked.
  3701. *
  3702. * @param {ScrollIntoViewOptions} options
  3703. * @returns {[() => void, RefObject<T>]}
  3704. */ const useScrollToElement = (options)=>{
  3705. const elementRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
  3706. // a function that will be invoked by the component using this hook to scroll to the element being referenced (if found).
  3707. const executeScroll = ()=>{
  3708. // only scroll when the ref has a value
  3709. if (elementRef.current) {
  3710. elementRef.current.scrollIntoView(options);
  3711. }
  3712. };
  3713. return [
  3714. executeScroll,
  3715. elementRef
  3716. ];
  3717. };
  3718. const SMOOTH_SCROLL_TO_CENTER = {
  3719. block: "center",
  3720. behavior: "smooth"
  3721. };
  3722. const SMOOTH_SCROLL_TO_TOP = {
  3723. block: "start",
  3724. behavior: "smooth"
  3725. };
  3726. const SCROLL_TO_NEAREST_ELEMENT = {
  3727. block: "nearest"
  3728. };
  3729. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useScrollToElement);
  3730. /***/ }),
  3731. /***/ 11670:
  3732. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  3733. "use strict";
  3734. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3735. /* harmony export */ "KT": () => (/* binding */ getAboutTheQuranImageUrl),
  3736. /* harmony export */ "dJ": () => (/* binding */ getLearningPlansImageUrl),
  3737. /* harmony export */ "oJ": () => (/* binding */ getChapterOgImageUrl),
  3738. /* harmony export */ "qW": () => (/* binding */ getDefaultOgImageUrl)
  3739. /* harmony export */ });
  3740. const BASE_OG_URL = "https://og.qurancdn.com";
  3741. const getDefaultOgImageUrl = ({ locale })=>`${BASE_OG_URL}/api/og?lang=${locale}`;
  3742. const getAboutTheQuranImageUrl = ({ locale })=>`${BASE_OG_URL}/api/og/about-the-quran?lang=${locale}`;
  3743. const getLearningPlansImageUrl = ({ locale })=>`${BASE_OG_URL}/api/og/learning-plans?lang=${locale}`;
  3744. const getChapterOgImageUrl = ({ chapterId , locale , verseNumber })=>{
  3745. const url = `${BASE_OG_URL}/api/og/chapter/${chapterId}?lang=${locale}`;
  3746. if (!verseNumber) return url;
  3747. return `${url}&verse=${verseNumber}`;
  3748. };
  3749. /***/ }),
  3750. /***/ 24213:
  3751. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  3752. "use strict";
  3753. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3754. /* harmony export */ "ZP": () => (__WEBPACK_DEFAULT_EXPORT__),
  3755. /* harmony export */ "b2": () => (/* binding */ toggleVerseBookmark),
  3756. /* harmony export */ "it": () => (/* binding */ selectBookmarks)
  3757. /* harmony export */ });
  3758. /* unused harmony exports bookmarksSlice, selectOrderedBookmarkedVerses */
  3759. /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75184);
  3760. /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__);
  3761. const initialState = {
  3762. bookmarkedVerses: {}
  3763. };
  3764. const bookmarksSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSlice)({
  3765. name: "bookmarks",
  3766. initialState,
  3767. reducers: {
  3768. toggleVerseBookmark: (state, action)=>{
  3769. const verseKey = action.payload;
  3770. // if the verseKey exists, we should remove it.
  3771. if (state.bookmarkedVerses[verseKey]) {
  3772. const newBookmarkedVerses = {
  3773. ...state.bookmarkedVerses
  3774. };
  3775. delete newBookmarkedVerses[verseKey];
  3776. return {
  3777. ...state,
  3778. bookmarkedVerses: newBookmarkedVerses
  3779. };
  3780. }
  3781. return {
  3782. ...state,
  3783. // inserting the new pair at beginning of the object will make it sorted by the date verses were bookmarked
  3784. // +new Date() gets the timestamp that we bookmarked the verse at.
  3785. bookmarkedVerses: {
  3786. [verseKey]: +new Date(),
  3787. ...state.bookmarkedVerses
  3788. }
  3789. };
  3790. }
  3791. }
  3792. });
  3793. const { toggleVerseBookmark } = bookmarksSlice.actions;
  3794. const selectBookmarks = (state)=>state.bookmarks.bookmarkedVerses;
  3795. const selectOrderedBookmarkedVerses = (state)=>// sort the bookmarked verses by the order they appear in the Mushaf.
  3796. Object.fromEntries(Object.entries(state.bookmarks.bookmarkedVerses).sort());
  3797. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (bookmarksSlice.reducer);
  3798. /***/ }),
  3799. /***/ 3638:
  3800. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  3801. "use strict";
  3802. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3803. /* harmony export */ "Q7": () => (/* binding */ setIsExpanded),
  3804. /* harmony export */ "ZP": () => (__WEBPACK_DEFAULT_EXPORT__),
  3805. /* harmony export */ "nl": () => (/* binding */ selectContextMenu),
  3806. /* harmony export */ "qk": () => (/* binding */ setShowReadingPreferenceSwitcher)
  3807. /* harmony export */ });
  3808. /* unused harmony export contextMenuSlice */
  3809. /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75184);
  3810. /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__);
  3811. /* harmony import */ var _redux_types_SliceName__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(61243);
  3812. const initialState = {
  3813. isExpanded: true,
  3814. showReadingPreferenceSwitcher: false
  3815. };
  3816. const contextMenuSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSlice)({
  3817. name: _redux_types_SliceName__WEBPACK_IMPORTED_MODULE_1__/* ["default"].CONTEXT_MENU */ .Z.CONTEXT_MENU,
  3818. initialState,
  3819. reducers: {
  3820. setIsExpanded: (state, action)=>({
  3821. ...state,
  3822. isExpanded: action.payload
  3823. }),
  3824. setShowReadingPreferenceSwitcher: (state, action)=>({
  3825. ...state,
  3826. showReadingPreferenceSwitcher: action.payload
  3827. })
  3828. }
  3829. });
  3830. const { setIsExpanded , setShowReadingPreferenceSwitcher } = contextMenuSlice.actions;
  3831. const selectContextMenu = (state)=>state.contextMenu;
  3832. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (contextMenuSlice.reducer);
  3833. /***/ }),
  3834. /***/ 66093:
  3835. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  3836. "use strict";
  3837. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3838. /* harmony export */ "$p": () => (/* binding */ selectNotes),
  3839. /* harmony export */ "ZP": () => (__WEBPACK_DEFAULT_EXPORT__),
  3840. /* harmony export */ "u": () => (/* binding */ setIsVisible)
  3841. /* harmony export */ });
  3842. /* unused harmony export notesSlice */
  3843. /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75184);
  3844. /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__);
  3845. /* harmony import */ var _redux_types_SliceName__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(61243);
  3846. const initialState = {
  3847. isVisible: false
  3848. };
  3849. const notesSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSlice)({
  3850. name: _redux_types_SliceName__WEBPACK_IMPORTED_MODULE_1__/* ["default"].NOTES */ .Z.NOTES,
  3851. initialState,
  3852. reducers: {
  3853. setIsVisible: (state, action)=>({
  3854. ...state,
  3855. isVisible: action.payload
  3856. })
  3857. }
  3858. });
  3859. const { setIsVisible } = notesSlice.actions;
  3860. const selectNotes = (state)=>state.notes;
  3861. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (notesSlice.reducer);
  3862. /***/ }),
  3863. /***/ 16143:
  3864. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  3865. "use strict";
  3866. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3867. /* harmony export */ "E9": () => (/* binding */ selectedLastReadPage),
  3868. /* harmony export */ "GF": () => (/* binding */ selectRecentReadingSessions),
  3869. /* harmony export */ "ZP": () => (__WEBPACK_DEFAULT_EXPORT__),
  3870. /* harmony export */ "eQ": () => (/* binding */ selectLastReadVerseKey),
  3871. /* harmony export */ "ge": () => (/* binding */ setLastReadVerse),
  3872. /* harmony export */ "jM": () => (/* binding */ selectIsVerseKeySelected)
  3873. /* harmony export */ });
  3874. /* unused harmony export readingTrackerSlice */
  3875. /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75184);
  3876. /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__);
  3877. /* harmony import */ var _redux_types_SliceName__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(61243);
  3878. /* harmony import */ var _utils_verse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44519);
  3879. /* eslint-disable react-func/max-lines-per-function */
  3880. const initialState = {
  3881. lastReadVerse: {
  3882. verseKey: null,
  3883. chapterId: null,
  3884. page: null,
  3885. hizb: null
  3886. },
  3887. recentReadingSessions: {}
  3888. };
  3889. const NEW_SESSION_BOUNDARY = 20;
  3890. const MAXIMUM_NUMBER_OF_SESSIONS = 10;
  3891. const readingTrackerSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSlice)({
  3892. name: _redux_types_SliceName__WEBPACK_IMPORTED_MODULE_1__/* ["default"].READING_TRACKER */ .Z.READING_TRACKER,
  3893. initialState,
  3894. reducers: {
  3895. setLastReadVerse: (state, action)=>{
  3896. const { lastReadVerse , chaptersData } = action.payload;
  3897. let newRecentReadingSessions = {
  3898. ...state.recentReadingSessions
  3899. };
  3900. // if the verse key already exists, and he re-visited it again, we need to mark it as the latest session.
  3901. if (newRecentReadingSessions[lastReadVerse.verseKey]) {
  3902. // delete the old entry
  3903. delete newRecentReadingSessions[lastReadVerse.verseKey];
  3904. // insert the same entry again but at the beginning
  3905. newRecentReadingSessions = {
  3906. [lastReadVerse.verseKey]: +new Date(),
  3907. ...newRecentReadingSessions
  3908. };
  3909. return generateNewState(state, lastReadVerse, newRecentReadingSessions);
  3910. }
  3911. const sessionsVerseKeys = Object.keys(newRecentReadingSessions);
  3912. const numberOfSessions = sessionsVerseKeys.length;
  3913. const [lastReadingSessionVerseKey] = sessionsVerseKeys;
  3914. // if there are some last read sessions already and the new verse key is not far enough to be considered a new session
  3915. if (numberOfSessions && (0,_utils_verse__WEBPACK_IMPORTED_MODULE_2__/* .getDistanceBetweenVerses */ .Bo)(chaptersData, lastReadingSessionVerseKey, lastReadVerse.verseKey) <= NEW_SESSION_BOUNDARY) {
  3916. delete newRecentReadingSessions[lastReadingSessionVerseKey];
  3917. newRecentReadingSessions = {
  3918. [lastReadVerse.verseKey]: +new Date(),
  3919. ...newRecentReadingSessions
  3920. };
  3921. return generateNewState(state, lastReadVerse, newRecentReadingSessions);
  3922. }
  3923. const earliestSession = sessionsVerseKeys[numberOfSessions - 1];
  3924. // insert a new entry at the beginning
  3925. newRecentReadingSessions = {
  3926. [lastReadVerse.verseKey]: +new Date(),
  3927. ...newRecentReadingSessions
  3928. };
  3929. // if the number of sessions already exceeded the maximum, delete the latest session
  3930. if (numberOfSessions + 1 > MAXIMUM_NUMBER_OF_SESSIONS) {
  3931. delete newRecentReadingSessions[earliestSession];
  3932. }
  3933. return generateNewState(state, lastReadVerse, newRecentReadingSessions);
  3934. }
  3935. }
  3936. });
  3937. /**
  3938. * Generate the new state.
  3939. *
  3940. * @param {ReadingTracker} state
  3941. * @param {LastReadVerse} lastReadVerse
  3942. * @param {Record<string, boolean>} newRecentReadingSessions
  3943. * @returns {ReadingTracker}
  3944. */ const generateNewState = (state, lastReadVerse, newRecentReadingSessions)=>{
  3945. return {
  3946. ...state,
  3947. lastReadVerse,
  3948. recentReadingSessions: newRecentReadingSessions
  3949. };
  3950. };
  3951. const { setLastReadVerse } = readingTrackerSlice.actions;
  3952. const selectLastReadVerseKey = (state)=>state.readingTracker.lastReadVerse;
  3953. const selectRecentReadingSessions = (state)=>state.readingTracker.recentReadingSessions;
  3954. const selectedLastReadPage = (state)=>state.readingTracker.lastReadVerse.page;
  3955. const selectIsVerseKeySelected = (verseKey)=>(state)=>{
  3956. const lastReadVerseKey = selectLastReadVerseKey(state);
  3957. return verseKey === lastReadVerseKey.verseKey;
  3958. };
  3959. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (readingTrackerSlice.reducer);
  3960. /***/ }),
  3961. /***/ 12547:
  3962. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  3963. "use strict";
  3964. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  3965. /* harmony export */ "Dx": () => (/* binding */ NavigationItem),
  3966. /* harmony export */ "X1": () => (/* binding */ initialSidebarIsVisible),
  3967. /* harmony export */ "ZP": () => (__WEBPACK_DEFAULT_EXPORT__),
  3968. /* harmony export */ "eY": () => (/* binding */ selectNavigationItem),
  3969. /* harmony export */ "rS": () => (/* binding */ selectIsSidebarNavigationVisible),
  3970. /* harmony export */ "tD": () => (/* binding */ selectSelectedNavigationItem),
  3971. /* harmony export */ "u": () => (/* binding */ setIsVisible)
  3972. /* harmony export */ });
  3973. /* unused harmony export sidebarNavigationSlice */
  3974. /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75184);
  3975. /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__);
  3976. /* harmony import */ var _redux_types_SliceName__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(61243);
  3977. var NavigationItem;
  3978. (function(NavigationItem) {
  3979. NavigationItem["Surah"] = "surah";
  3980. NavigationItem["Juz"] = "juz";
  3981. NavigationItem["Page"] = "page";
  3982. NavigationItem["RubElHizb"] = "rub_el_hizb";
  3983. NavigationItem["Hizb"] = "hizb";
  3984. })(NavigationItem || (NavigationItem = {}));
  3985. const initialSidebarIsVisible = "auto"; // sidebar will be open on desktop and closed on mobile
  3986. const initialState = {
  3987. isVisible: initialSidebarIsVisible,
  3988. selectedNavigationItem: NavigationItem.Surah
  3989. };
  3990. const sidebarNavigationSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSlice)({
  3991. name: _redux_types_SliceName__WEBPACK_IMPORTED_MODULE_1__/* ["default"].SIDEBAR_NAVIGATION */ .Z.SIDEBAR_NAVIGATION,
  3992. initialState,
  3993. reducers: {
  3994. setIsVisible: (state, action)=>({
  3995. ...state,
  3996. isVisible: action.payload
  3997. }),
  3998. selectNavigationItem: (state, action)=>({
  3999. ...state,
  4000. selectedNavigationItem: action.payload
  4001. })
  4002. }
  4003. });
  4004. const { setIsVisible , selectNavigationItem } = sidebarNavigationSlice.actions;
  4005. const selectIsSidebarNavigationVisible = (state)=>state.sidebarNavigation.isVisible;
  4006. const selectSelectedNavigationItem = (state)=>state.sidebarNavigation.selectedNavigationItem;
  4007. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (sidebarNavigationSlice.reducer);
  4008. /***/ }),
  4009. /***/ 88795:
  4010. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  4011. "use strict";
  4012. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  4013. /* harmony export */ "N4": () => (/* binding */ setIsReadingByRevelationOrder),
  4014. /* harmony export */ "ZP": () => (__WEBPACK_DEFAULT_EXPORT__),
  4015. /* harmony export */ "kW": () => (/* binding */ selectIsReadingByRevelationOrder)
  4016. /* harmony export */ });
  4017. /* unused harmony exports initialState, revelationOrderSlice */
  4018. /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75184);
  4019. /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__);
  4020. /* harmony import */ var _actions_sync_user_preferences__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(91767);
  4021. /* harmony import */ var _redux_types_SliceName__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61243);
  4022. /* harmony import */ var _types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13591);
  4023. const initialState = {
  4024. isReadingByRevelationOrder: false
  4025. };
  4026. const revelationOrderSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSlice)({
  4027. name: _redux_types_SliceName__WEBPACK_IMPORTED_MODULE_2__/* ["default"].REVELATION_ORDER */ .Z.REVELATION_ORDER,
  4028. initialState,
  4029. reducers: {
  4030. setIsReadingByRevelationOrder: (state, action)=>({
  4031. ...state,
  4032. isReadingByRevelationOrder: action.payload
  4033. })
  4034. },
  4035. extraReducers: (builder)=>{
  4036. builder.addCase(_actions_sync_user_preferences__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, (state, action)=>{
  4037. const { payload: { userPreferences } , } = action;
  4038. const remoteReadingPreferences = userPreferences[_types_auth_PreferenceGroup__WEBPACK_IMPORTED_MODULE_3__/* ["default"].READING */ .Z.READING];
  4039. // if there are any reading preferences stored in the DB.
  4040. if (remoteReadingPreferences) {
  4041. return {
  4042. ...state,
  4043. isReadingByRevelationOrder: !!remoteReadingPreferences.isReadingByRevelationOrder
  4044. };
  4045. }
  4046. return state;
  4047. });
  4048. }
  4049. });
  4050. const selectIsReadingByRevelationOrder = (state)=>state.revelationOrder.isReadingByRevelationOrder;
  4051. const { setIsReadingByRevelationOrder } = revelationOrderSlice.actions;
  4052. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (revelationOrderSlice.reducer);
  4053. /***/ }),
  4054. /***/ 26332:
  4055. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  4056. "use strict";
  4057. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  4058. /* harmony export */ "F": () => (/* binding */ getFilterActivityDaysParamsOfCurrentMonth),
  4059. /* harmony export */ "o": () => (/* binding */ getFilterActivityDaysParams)
  4060. /* harmony export */ });
  4061. /* harmony import */ var _datetime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76410);
  4062. /* harmony import */ var _types_auth_ActivityDay__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(97043);
  4063. const getFilterActivityDaysParamsOfCurrentMonth = ()=>{
  4064. const currentMonth = (0,_datetime__WEBPACK_IMPORTED_MODULE_0__/* .getCurrentMonth */ .Cl)();
  4065. const currentYear = new Date().getFullYear();
  4066. return getFilterActivityDaysParams(currentMonth, currentYear);
  4067. };
  4068. const getFilterActivityDaysParams = (month, year)=>{
  4069. const { from , to } = (0,_datetime__WEBPACK_IMPORTED_MODULE_0__/* .makeDateRangeFromMonth */ .fR)(month, year);
  4070. const params = {
  4071. from,
  4072. to,
  4073. limit: 31,
  4074. type: _types_auth_ActivityDay__WEBPACK_IMPORTED_MODULE_1__/* .ActivityDayType.QURAN */ .t.QURAN
  4075. };
  4076. return params;
  4077. };
  4078. /***/ }),
  4079. /***/ 28156:
  4080. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  4081. "use strict";
  4082. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  4083. /* harmony export */ "WZ": () => (/* binding */ getJuzIds),
  4084. /* harmony export */ "yd": () => (/* binding */ getJuzNumberByHizb)
  4085. /* harmony export */ });
  4086. /* unused harmony exports isFirstJuz, isLastJuz */
  4087. /* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24709);
  4088. /**
  4089. * Get the juz number by the hiz number. One hizb is half a Juz.
  4090. *
  4091. * @param {number} hizb
  4092. * @returns {number}
  4093. */ const getJuzNumberByHizb = (hizb)=>Math.ceil(hizb / 2);
  4094. /**
  4095. * Whether the current juz is the first surah.
  4096. *
  4097. * @param {number} juzNumber
  4098. * @returns {boolean}
  4099. */ const isFirstJuz = (juzNumber)=>juzNumber === 1;
  4100. /**
  4101. * Whether the current juz is the last surah.
  4102. *
  4103. * @param {number} juzNumber
  4104. * @returns {boolean}
  4105. */ const isLastJuz = (juzNumber)=>juzNumber === 30;
  4106. const TOTAL_QURAN_JUZ = 30;
  4107. const getJuzIds = (lang)=>{
  4108. return [
  4109. ...Array(TOTAL_QURAN_JUZ)
  4110. ].map((n, index)=>{
  4111. const juz = index + 1;
  4112. return {
  4113. value: juz,
  4114. label: (0,_locale__WEBPACK_IMPORTED_MODULE_0__/* .toLocalizedNumber */ .rQ)(juz, lang)
  4115. };
  4116. });
  4117. };
  4118. /***/ }),
  4119. /***/ 26498:
  4120. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  4121. "use strict";
  4122. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  4123. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  4124. /* harmony export */ });
  4125. /* harmony import */ var _utils_verse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44519);
  4126. // given an array of verse keys, merge back to back verses into a single range like this:
  4127. // ['1:1', '1:2', '1:3', '1:7'] will be ['1:1-1:3', '1:7-1:7']
  4128. function mergeVerseKeys(verses) {
  4129. const combinedVerses = new Set();
  4130. const verseMap = {};
  4131. // Create a map of chapter to verse numbers
  4132. verses.forEach((verseKey)=>{
  4133. const [chapter, verseNumber] = (0,_utils_verse__WEBPACK_IMPORTED_MODULE_0__/* .getVerseAndChapterNumbersFromKey */ .bV)(verseKey);
  4134. if (!verseMap[chapter]) verseMap[chapter] = [];
  4135. verseMap[chapter].push(Number(verseNumber));
  4136. });
  4137. // Merge the verse numbers for each chapter
  4138. const entries = Object.entries(verseMap);
  4139. for(let i = 0; i < entries.length; i += 1){
  4140. // eslint-disable-next-line prefer-const
  4141. const [chapter, verseNumbers] = entries[i];
  4142. verseNumbers.sort((a, b)=>a - b);
  4143. let start = verseNumbers[0];
  4144. let end = start;
  4145. for(let j = 1; j < verseNumbers.length; j += 1){
  4146. // merge back to back verses into a single range
  4147. // OR
  4148. // merge verses into a single range if they are not back to back but the distance is 1
  4149. // e.g. 1:1, 1:2, 1:3, 1:5 will be merged into 1:1-1:5
  4150. if (verseNumbers[j] - end > 0 && verseNumbers[j] - end <= 5) {
  4151. end = verseNumbers[j];
  4152. } else {
  4153. combinedVerses.add(`${chapter}:${start}-${chapter}:${end}`);
  4154. start = verseNumbers[j];
  4155. end = start;
  4156. }
  4157. }
  4158. combinedVerses.add(`${chapter}:${start}-${chapter}:${end}`);
  4159. }
  4160. return combinedVerses;
  4161. }
  4162. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mergeVerseKeys);
  4163. /***/ }),
  4164. /***/ 45137:
  4165. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  4166. "use strict";
  4167. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  4168. /* harmony export */ "Dp": () => (/* binding */ ONE_WEEK_REVALIDATION_PERIOD_SECONDS),
  4169. /* harmony export */ "eW": () => (/* binding */ REVALIDATION_PERIOD_ON_ERROR_SECONDS),
  4170. /* harmony export */ "gi": () => (/* binding */ ONE_MONTH_REVALIDATION_PERIOD_SECONDS)
  4171. /* harmony export */ });
  4172. /* unused harmony export ONE_DAY_REVALIDATION_PERIOD_SECONDS */
  4173. const REVALIDATION_PERIOD_ON_ERROR_SECONDS = 604800; // 7 days. TODO: @osama update the naming + value when we revert this back
  4174. const ONE_DAY_REVALIDATION_PERIOD_SECONDS = 86400; // 1 day
  4175. const ONE_WEEK_REVALIDATION_PERIOD_SECONDS = 604800; // 7 days
  4176. const ONE_MONTH_REVALIDATION_PERIOD_SECONDS = 2592000; // 30 days
  4177. /***/ }),
  4178. /***/ 94675:
  4179. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  4180. "use strict";
  4181. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  4182. /* harmony export */ "U": () => (/* binding */ getWordTextFieldNameByFont)
  4183. /* harmony export */ });
  4184. /* unused harmony export getVerseTextByWords */
  4185. /* harmony import */ var types_QuranReader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50467);
  4186. /* harmony import */ var types_Word__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42217);
  4187. /* eslint-disable import/prefer-default-export */
  4188. /**
  4189. * Construct the verse text given an array of words.
  4190. *
  4191. * @param {Verse} verse
  4192. * @returns {string}
  4193. */ const getVerseTextByWords = (verse)=>{
  4194. let verseText = "";
  4195. verse.words.forEach((word)=>{
  4196. if (word.charTypeName !== CharType.End) {
  4197. verseText = `${verseText} ${word.text}`;
  4198. }
  4199. });
  4200. return verseText;
  4201. };
  4202. /**
  4203. * Get the text field name based on the currently
  4204. * selected quranFont.
  4205. *
  4206. * @param {QuranFont} quranFont
  4207. * @returns {string}
  4208. */ const getWordTextFieldNameByFont = (quranFont)=>{
  4209. switch(quranFont){
  4210. case types_QuranReader__WEBPACK_IMPORTED_MODULE_0__/* .QuranFont.IndoPak */ .fr.IndoPak:
  4211. return "textIndopak";
  4212. default:
  4213. return "textUthmani";
  4214. }
  4215. };
  4216. /***/ }),
  4217. /***/ 45788:
  4218. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  4219. "use strict";
  4220. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  4221. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  4222. /* harmony export */ });
  4223. var BookmarkType;
  4224. (function(BookmarkType) {
  4225. BookmarkType["Page"] = "page";
  4226. BookmarkType["Juz"] = "juz";
  4227. BookmarkType["Surah"] = "surah";
  4228. BookmarkType["Ayah"] = "ayah";
  4229. })(BookmarkType || (BookmarkType = {}));
  4230. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (BookmarkType);
  4231. /***/ }),
  4232. /***/ 57070:
  4233. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  4234. "use strict";
  4235. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  4236. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  4237. /* harmony export */ });
  4238. var ScrollAlign;
  4239. (function(ScrollAlign) {
  4240. ScrollAlign["Start"] = "start";
  4241. ScrollAlign["Center"] = "center";
  4242. ScrollAlign["End"] = "end";
  4243. })(ScrollAlign || (ScrollAlign = {}));
  4244. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ScrollAlign);
  4245. /***/ })
  4246. };
  4247. ;
  4248. //# sourceMappingURL=39508.js.map