1 |
- {"version":3,"file":"../pages/notes-and-reflections.js","mappings":"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,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,mCAAmC,gDAAmB;AACzD;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA,GAAG,oCAAoC,gDAAmB,4BAA4B,gDAAmB;AACzG;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA,GAAG;AACH;AACA,iEAAe,aAAa;;;;;;;;;;;;;ACtB5B;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AACA,iEAAe,OAAO;;;;;;;;;;;;;ACnBtB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,iEAAe,OAAO;;;;;;;ACjBtB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRA;AAA0B;AAEiC;AAEV;AAEkC;AAE3B;AACH;AACL;AAOhD,MAAMqC,aAAa,GAAG,GAAG;AAEzB,MAAMC,aAAa,GAAiC,CAAC,EAAEC,IAAI,GAAEC,iBAAiB,GAAE,GAAK;IACnF,MAAM,EAAEtC,IAAI,GAAED,CAAC,GAAE,GAAGE,oEAAc,CAAC,OAAO,CAAC;IAE3C,MAAMsC,aAAa,GAAG,CAACC,MAAc,GAAK;QACxCP,4EAAc,CAAC,gBAAgB,EAAE;YAC/BO,MAAM;SACP,CAAC,CAAC;QACHF,iBAAiB,CAACE,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,qBACE,wDAACzB,KAAG;QACFC,SAAS,EAAEc,wEAAW;QAEtBW,IAAI,EAAC,QAAQ;QACbC,QAAQ,EAAE,CAAC;QACXC,OAAO,EAAE,IAAMJ,aAAa,CAACF,IAAI,CAACO,EAAE,CAAC;QACrCC,SAAS,EAAE,IAAMN,aAAa,CAACF,IAAI,CAACO,EAAE,CAAC;;0BAEvC,mDAACb,gGAAmB;gBAACe,MAAM,EAAET,IAAI,CAACS,MAAM;cAAI;0BAC5C,wDAACC,GAAC;gBAAC/B,SAAS,EAAEc,4EAAe;;oBAC1BI,uEAAc,CAACG,IAAI,CAACY,IAAI,EAAEd,aAAa,EAAE,KAAK,CAAC;oBAC/CE,IAAI,CAACY,IAAI,CAACC,MAAM,GAAGf,aAAa,kBAC/B,mDAACgB,MAAI;wBAACnC,SAAS,EAAEc,2EAAc;kCAAG,CAAC,EAAE,EAAE/B,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;sBAAQ;;cAEvE;0BACJ,mDAACsD,MAAI;gBAACrC,SAAS,EAAEc,4EAAe;gBAAEyB,QAAQ,EAAElB,IAAI,CAACmB,SAAS,CAACC,QAAQ,EAAE;0BAClEzB,+EAAoB,CAACK,IAAI,CAACmB,SAAS,EAAExD,IAAI,EAAE;oBAC1C0D,IAAI,EAAE,SAAS;iBAChB,CAAC;cACG;;OAjBFrB,IAAI,CAACO,EAAE,CAkBR,CACN;AACJ,CAAC;AAED,iEAAeR,aAAa,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtD7B;AAA0C;AAEiB;AACjB;AAEG;AACD;AAES;AACQ;AAW7D,MAAM6B,SAAS,GAAG,CAAC,EAAEC,IAAI,GAAEC,YAAY,GAAEC,IAAI,GAAEC,OAAO,GAAEC,WAAW,GAAkB,GAAK;IACxF,MAAM,EAAEvE,CAAC,GAAE,GAAGE,oEAAc,EAAE;IAC9B,MAAM,KAACsE,cAAc,MAAEjC,iBAAiB,MAAIsB,+CAAQ,CAAgB,IAAI,CAAC,EAAE,qBAAqB;IAEhG,MAAMY,YAAY,GAAGN,IAAI,CAACA,IAAI,CAAChB,MAAM,GAAG,CAAC,CAAC;IAC1C,MAAM,EAAEuB,WAAW,GAAE,GAAGD,YAAY,CAACE,UAAU;IAE/C,MAAMC,KAAK,GAAGhB,8CAAO,CAAC,IAAM;QAC1B,OAAOO,IAAI,GAAGA,IAAI,CAACU,GAAG,CAAC,CAACC,QAAQ,GAAKA,QAAQ,CAACX,IAAI,CAAC,CAACY,IAAI,EAAE,GAAG,EAAE,CAAC;IAClE,CAAC,EAAE;QAACZ,IAAI;KAAC,CAAC;IAEV,MAAMa,SAAS,GAAG,CAACb,IAAI,IAAIC,YAAY;IACvC,MAAMa,iBAAiB,GAAGL,KAAK,EAAEzB,MAAM,GAAG,CAAC,IAAIkB,IAAI,GAAG,CAAC,IAAID,YAAY;IACvE,MAAMc,OAAO,GAAG,CAACF,SAAS,IAAIJ,KAAK,CAACzB,MAAM,KAAK,CAAC;IAEhD,MAAMgC,QAAQ,GAAG,IAAM;QACrB,IAAI,CAACT,WAAW,IAAIN,YAAY,EAAE,OAAO;QACzCE,OAAO,CAACD,IAAI,GAAG,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAMe,UAAU,GAAG,CAACC,KAAa,EAAE/C,IAA4B,GAAK;QAClE,qBAAO,mDAACD,+DAAa;YAAeC,IAAI,EAAEA,IAAI;YAAEC,iBAAiB,EAAEA,iBAAiB;WAAzDD,IAAI,CAACO,EAAE,CAAsD,CAAC;IAC3F,CAAC;IAED,MAAMyC,aAAa,GAAG,IAAM;QAC1B,MAAM7C,MAAM,GAAG+B,cAAc;QAC7B,iCAAiC;QACjCD,WAAW,CAAC,CAACgB,WAAkC,GAAK;YAClD,MAAMC,QAAQ,GAAGD,WAAW;YAE5B,IAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,QAAQ,CAACrC,MAAM,EAAEsC,CAAC,IAAI,CAAC,CAAE;gBAC3C,MAAMC,IAAI,GAAGF,QAAQ,CAACC,CAAC,CAAC;gBACxB,MAAME,OAAO,GAAGD,IAAI,CAACvB,IAAI,CAACyB,MAAM,CAAC,CAACtD,IAAI,GAAKA,IAAI,CAACO,EAAE,KAAKJ,MAAM,CAAC;gBAE9D,IAAIkD,OAAO,CAACxC,MAAM,KAAKuC,IAAI,CAACvB,IAAI,CAAChB,MAAM,EAAE;oBACvCqC,QAAQ,CAACC,CAAC,CAAC,GAAG;wBACZ,GAAGC,IAAI;wBACPvB,IAAI,EAAEwB,OAAO;qBACd,CAAC;oBACF,MAAM;gBACR,CAAC;YACH,CAAC;YAED,OAAOH,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAMK,aAAa,GAAG,CAACC,WAAW,GAAK;QACrC,MAAMrD,MAAM,GAAG+B,cAAc;QAE7B,+BAA+B;QAC/BD,WAAW,CAAC,CAACgB,WAAkC,GAAK;YAClD,MAAMC,QAAQ,GAAGD,WAAW;YAE5B,IAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,QAAQ,CAACrC,MAAM,EAAEsC,CAAC,IAAI,CAAC,CAAE;gBAC3C,MAAMC,IAAI,GAAGF,QAAQ,CAACC,CAAC,CAAC;gBACxB,MAAMM,OAAO,GAAGL,IAAI,CAACvB,IAAI,CAAC6B,SAAS,CAAC,CAAC1D,IAAI,GAAKA,IAAI,CAACO,EAAE,KAAKJ,MAAM,CAAC;gBAEjE,IAAIsD,OAAO,KAAK,CAAC,CAAC,EAAE;oBAClB,MAAMJ,OAAO,GAAG;2BAAID,IAAI,CAACvB,IAAI;qBAAC;oBAC9BwB,OAAO,CAACI,OAAO,CAAC,GAAGD,WAAW,CAAC;oBAE/BN,QAAQ,CAACC,CAAC,CAAC,GAAG;wBACZ,GAAGC,IAAI;wBACPvB,IAAI,EAAEwB,OAAO;qBACd,CAAC;oBACF,MAAM;gBACR,CAAC;YACH,CAAC;YAED,OAAOH,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAIS,OAAO,GAAG,IAAI;IAClB,IAAIhB,iBAAiB,IAAID,SAAS,EAAE;QAClCiB,OAAO,iBAAG,mDAACjC,qEAAO;YAACK,IAAI,EAAEJ,kFAAiB;UAAI,CAAC;IACjD,OAAO,IAAIiB,OAAO,EAAE;QAClBe,OAAO,iBACL,mDAACjF,KAAG;YAACC,SAAS,EAAEc,mFAA0B;sBACxC,iEAACqB,MAAI;0BAAEpD,CAAC,CAAC,mBAAmB,CAAC;cAAQ;UACjC,CACN;IACJ,CAAC;IAED,qBACE;;YACGwE,cAAc,kBACb,mDAACT,4EAAS;gBACRqC,MAAM;gBACNC,OAAO,EAAE,IAAM9D,iBAAiB,CAAC,IAAI,CAAC;gBACtCE,MAAM,EAAE+B,cAAc;gBACtBc,aAAa,EAAEA,aAAa;gBAC5BO,aAAa,EAAEA,aAAa;cAC5B;0BAGJ,mDAAC/B,oDAAQ;gBACPK,IAAI,EAAES,KAAK;gBACX0B,QAAQ,EAAE,EAAE;gBACZC,kBAAkB,EAAE;oBAAEC,GAAG,EAAE,EAAE;oBAAEC,MAAM,EAAE,EAAE;iBAAE;gBAC3CxF,SAAS,EAAEc,kFAAyB;gBACpC4E,UAAU,EAAExB,QAAQ;gBACpByB,WAAW,EAAExB,UAAU;gBACvByB,eAAe;cACf;YAEDZ,OAAO;;MACP,CACH;AACJ,CAAC;AAED,iEAAe/B,SAAS,EAAC;;;;;;;;;;;;;;;;;;;;;;;;ACpIzB;AAA+C;AAES;AACD;AACR;AAE/C,MAAM+C,WAAW,GAAG,CAAC,EAAEC,OAAO,GAAEC,gBAAgB,GAAEC,QAAQ,GAAE,GAAK;IAC/D,MAAMC,cAAc,GAAGH,OAAO,CAACI,IAAI,CAAC,CAACC,MAAM,GAAKA,MAAM,CAAC1E,EAAE,KAAKsE,gBAAgB,CAAC;IAE/E,MAAMK,YAAY,GAAG,CAACpB,MAAe,GAAK;QACxC,IAAIA,MAAM,EAAE;YACVY,sEAAQ,CAAC,qBAAqB,CAAC,CAAC;QAClC,OAAO;YACLA,sEAAQ,CAAC,qBAAqB,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,qBACE,mDAAChG,KAAG;QAACC,SAAS,EAAEc,wEAAa;kBAC3B,iEAAC+E,6EAAW;YACVY,OAAO,gBACL,wDAACtE,MAAI;gBAACnC,SAAS,EAAEc,6EAAkB;;oBAChCsF,cAAc,CAACO,KAAK;kCACrB,mDAACxE,MAAI;wBAACnC,SAAS,EAAEc,0EAAe;kCAC9B,iEAACgF,wEAAe,KAAG;sBACd;;cACF;YAETS,YAAY,EAAEA,YAAY;sBAEzBN,OAAO,CAACrC,GAAG,CAAC,CAAC0C,MAAM,iBAClB,mDAACT,uFAAgB;oBACfiB,yBAAyB;oBAEzBnF,OAAO,EAAE,IAAMwE,QAAQ,CAACG,MAAM,CAAC1E,EAAE,CAAC;8BAEjC0E,MAAM,CAACK,KAAK;mBAHRL,MAAM,CAAC1E,EAAE,CAIG,CACnB;UACU;MACV,CACN;AACJ,CAAC;AAED,iEAAeoE,WAAW,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5C3B;AAAiC;AAEG;AACuB;AACjB;AAEW;AAEiC;AACgB;AACzC;AAC1B;AAEoB;AACL;AACG;AACL;AACK;AAErD,MAAMuB,YAAY,GAAG,IAAM;IACzB,MAAM,KAACC,MAAM,MAAEC,SAAS,MAAI7E,+CAAQ,CAACsE,sFAAsB,CAAC;IAE5D,MAAM,EAAEnI,CAAC,GAAE,GAAGE,oEAAc,EAAE;IAE9B,MAAM0I,WAAW,GAAG;QAClB;YAAE/F,EAAE,EAAEsF,sFAAsB;YAAEP,KAAK,EAAE5H,CAAC,CAAC,eAAe,CAAC;SAAE;QACzD;YAAE6C,EAAE,EAAEsF,sFAAsB;YAAEP,KAAK,EAAE5H,CAAC,CAAC,eAAe,CAAC;SAAE;KAC1D;IAED,MAAM8I,cAAc,GAAG,CAACC,YAAY,GAAK;QACvCR,6EAAc,CAAC,oBAAoB,EAAEE,MAAM,EAAEM,YAAY,CAAC,CAAC;QAC3DL,SAAS,CAACK,YAAY,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;;GAYC,GACD,MAAMC,MAAM,GAAG,CAACC,SAAiB,EAAEC,gBAAqC,GAAK;QAC3E,IAAI,CAACZ,wEAAU,EAAE,IAAKY,gBAAgB,IAAI,CAACA,gBAAgB,CAAC/E,IAAI,EAAG,OAAO,IAAI,CAAC;QAC/E,IAAI8E,SAAS,KAAK,CAAC,EAAE;YACnB,OAAOZ,4EAAY,CAAC;gBAClBI,MAAM;gBACNU,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAEC,SAAS,GAAE1E,WAAW,GAAE,GAAGwE,gBAAgB,CAACvE,UAAU;QAE9D,IAAI,CAACyE,SAAS,IAAI,CAAC1E,WAAW,EAAE,OAAO,IAAI,CAAC;QAE5C,OAAO2D,4EAAY,CAAC;YAClBI,MAAM;YACNY,MAAM,EAAED,SAAS;YACjBD,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAEhF,IAAI,GAAEE,IAAI,GAAEC,OAAO,GAAEF,YAAY,GAAEkF,KAAK,GAAEC,MAAM,GAAE,GAAGtB,wDAAc,CACzEe,MAAM,EACN,CAACQ,GAAG,GAAK;QACP,6BAA6B;QAC7B,OAAOpB,0EAAc,CAACoB,GAAG,CAAC,CAACC,IAAI,CAAC,CAAC3E,QAAQ,GAAK;YAC5C,OAAO;gBACL,GAAIA,QAAQ;gBACZ0E,GAAG;aACJ,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EACD;QACEE,iBAAiB,EAAE,KAAK;QACxBC,mBAAmB,EAAE,KAAK;QAC1BC,iBAAiB,EAAE,IAAI;KACxB,CACF;IAED,IAAIN,KAAK,EAAE;QACT,qBAAO,mDAACpB,oDAAK;YAAC2B,UAAU,EAAE,GAAG;YAAEC,YAAY,EAAE,KAAK;UAAI,CAAC;IACzD,CAAC;IAED,IAAI,CAAC3F,IAAI,EAAE;QACT,qBACE,mDAACnD,KAAG;YAACC,SAAS,EAAE+G,iDAAU,CAACjG,kFAAgB,EAAEA,yFAAuB,CAAC;sBACnE,iEAACiC,qEAAO;gBAACiG,qBAAqB;gBAAC5F,IAAI,EAAEJ,kFAAiB;cAAI;UACtD,CACN;IACJ,CAAC;IAED,qBACE;;0BACE,mDAACjD,KAAG;gBAACC,SAAS,EAAEc,wFAAsB;0BACpC,sEAACf,KAAG;oBAACC,SAAS,EAAEc,6FAA2B;;sCACzC,mDAACiB,GAAC;4BAAC/B,SAAS,EAAEc,6EAAW;sCAAG,CAAC,EAAE/B,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;0BAAK;sCAC3D,mDAACiH,2HAAW;4BAACC,OAAO,EAAE0B,WAAW;4BAAEzB,gBAAgB,EAAEsB,MAAM;4BAAErB,QAAQ,EAAE0B,cAAc;0BAAI;;kBACrF;cACF;0BACN,mDAAC5E,6GAAS;gBACRC,IAAI,EAAEA,IAAI;gBACVC,YAAY,EAAEA,YAAY;gBAC1BC,IAAI,EAAEA,IAAI;gBACVC,OAAO,EAAEA,OAAO;gBAChBC,WAAW,EAAEgF,MAAM;cACnB;;MACD,CACH;AACJ,CAAC;AAED,iEAAef,YAAY,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACpH5B;AAA0B;AAEe;AACkB;AAEG;AAEV;AAEpD,MAAMgC,0BAA0B,GAAG,IAAM;IACvC,MAAM,EAAExK,CAAC,GAAE,GAAGE,oEAAc,CAAC,OAAO,CAAC;IAErC,qBACE,wDAACc,KAAG;QAACC,SAAS,EAAEc,0FAAgB;;0BAC9B,mDAACf,KAAG;gBAACC,SAAS,EAAEc,sFAAY;0BAAG/B,CAAC,CAAC,yBAAyB,CAAC;cAAO;0BAClE,wDAACyK,IAAE;;kCACD,mDAACC,IAAE;kCACD,iEAACL,6DAAK;4BACJM,UAAU,EAAE;gCACVD,EAAE,gBAAE,mDAACA,IAAE,MAAM,CAAC,CAAI;gCAClBE,IAAI,gBACF,mDAACN,+DAAI;oCAEHO,IAAI,EAAC,0BAA0B;oCAC/BC,OAAO,EAAEP,4EAAiB;oCAC1BS,QAAQ;mCAHH,CAAC,CAIN;6BAEL;4BACDC,OAAO,EAAC,gCAAgC;0BACxC;sBACC;kCACL,mDAACP,IAAE;kCAAE1K,CAAC,CAAC,0BAA0B,CAAC;sBAAM;kCACxC,mDAAC0K,IAAE;kCAAE1K,CAAC,CAAC,0BAA0B,CAAC;sBAAM;;cACrC;;MACD,CACN;AACJ,CAAC;AAED,iEAAewK,0BAA0B,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvC1C;AAA0B;AAEiC;AAEM;AAE6B;AACoB;AAChB;AAE1C;AACH;AACR;AAO7C,MAAMpI,aAAa,GAAG,GAAG;AAEzB,MAAMkJ,6BAA6B,GAAiD,CAAC,EACnFC,UAAU,GACVC,qBAAqB,KACtB,GAAK;IACJ,MAAM,EAAEvL,IAAI,GAAED,CAAC,GAAE,GAAGE,oEAAc,CAAC,OAAO,CAAC;IAC3C,MAAMuL,aAAa,GAAGP,2GAAuB,CAACK,UAAU,CAACrI,IAAI,EAAEnB,2FAAc,CAAC;IAE9E,MAAM4J,mBAAmB,GAAG,CAACC,kBAAkC,GAAK;QAClE1J,4EAAc,CAAC,6BAA6B,EAAE;YAC5C2J,MAAM,EAAED,kBAAkB,CAAC/I,EAAE;SAC9B,CAAC,CAAC;QACH2I,qBAAqB,CAACI,kBAAkB,CAAC,CAAC;IAC5C,CAAC;IAED,qBACE,wDAAC5K,KAAG;QACFC,SAAS,EAAEc,wFAAW;QAEtBW,IAAI,EAAC,QAAQ;QACbC,QAAQ,EAAE,CAAC;QACXC,OAAO,EAAE,IAAM+I,mBAAmB,CAACJ,UAAU,CAAC;QAC9CzI,SAAS,EAAE,IAAM6I,mBAAmB,CAACJ,UAAU,CAAC;;YAE/CA,UAAU,CAACO,UAAU,kBACpB,mDAAC9K,KAAG;gBAACC,SAAS,EAAEc,uGAA0B;0BACvCwJ,UAAU,CAACO,UAAU,CAACjH,GAAG,CAAC,CAACmH,SAAS,GAAK;oBACxC,qBAAO,mDAACZ,sGAA4B;wBAAyBY,SAAS,EAAEA,SAAS;uBAAvCA,SAAS,CAACC,OAAO,CAA0B,CAAC;gBACxF,CAAC,CAAC;cACE;0BAER,wDAACjJ,GAAC;;kCACA,mDAACI,MAAI;wBACHnC,SAAS,EAAEc,4FAAe;wBAC1B,2CAA2C;wBAC3CoK,uBAAuB,EAAE;4BACvBC,MAAM,EAAEf,yEAAQ,CAACI,aAAa,EAAErJ,aAAa,CAAC;yBAC/C;sBACD;oBACDmJ,UAAU,CAACrI,IAAI,CAACC,MAAM,GAAGf,aAAa,kBACrC,mDAACgB,MAAI;wBAACnC,SAAS,EAAEc,2FAAc;kCAAG,CAAC,EAAE,EAAE/B,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;sBAAQ;;cAEvE;0BACJ,mDAACsD,MAAI;gBAACrC,SAAS,EAAEc,4FAAe;gBAAEyB,QAAQ,EAAE+H,UAAU,CAAC9H,SAAS,CAACC,QAAQ,EAAE;0BACxEzB,+EAAoB,CAACsJ,UAAU,CAAC9H,SAAS,EAAExD,IAAI,EAAE;oBAChD0D,IAAI,EAAE,SAAS;iBAChB,CAAC;cACG;0BACP,mDAACwH,sHAA4B;gBAACI,UAAU,EAAEA,UAAU;cAAI;;OA9BnDA,UAAU,CAAC1I,EAAE,CA+Bd,CACN;AACJ,CAAC;AAED,iEAAeyI,6BAA6B,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzE7C;AAA0C;AAEiB;AACjB;AAE4B;AACT;AACe;AAEJ;AACX;AAW7D,MAAMgB,yBAAyB,GAAG,CAAC,EACjCnI,IAAI,GACJC,YAAY,GACZC,IAAI,GACJC,OAAO,GACwB,GAAK;IACpC,MAAM,EAAEtE,CAAC,GAAE,GAAGE,oEAAc,CAAC,OAAO,CAAC;IACrC,MAAM,KAAC0L,kBAAkB,MAAEJ,qBAAqB,MAAI3H,+CAAQ,CAAwB,IAAI,CAAC,EAAE,qBAAqB;IAEhH,MAAMY,YAAY,GAAGN,IAAI,CAACA,IAAI,CAAChB,MAAM,GAAG,CAAC,CAAC;IAC1C,MAAM,EAAEuB,WAAW,GAAE,GAAGD,YAAY,CAACE,UAAU;IAE/C,MAAM4H,WAAW,GAAG3I,8CAAO,CAAC,IAAM;QAChC,OAAOO,IAAI,GAAGA,IAAI,CAACU,GAAG,CAAC,CAACC,QAAQ,GAAKA,QAAQ,CAACX,IAAI,CAAC,CAACY,IAAI,EAAE,GAAG,EAAE,CAAC;IAClE,CAAC,EAAE;QAACZ,IAAI;KAAC,CAAC;IAEV,MAAMa,SAAS,GAAG,CAACb,IAAI,IAAIC,YAAY;IACvC,MAAMa,iBAAiB,GAAGsH,WAAW,EAAEpJ,MAAM,GAAG,CAAC,IAAIkB,IAAI,GAAG,CAAC,IAAID,YAAY;IAC7E,MAAMc,OAAO,GAAG,CAACF,SAAS,IAAIuH,WAAW,CAACpJ,MAAM,KAAK,CAAC;IAEtD,MAAMgC,QAAQ,GAAG,IAAM;QACrB,IAAI,CAACT,WAAW,IAAIN,YAAY,EAAE,OAAO;QACzCE,OAAO,CAACD,IAAI,GAAG,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAMmI,gBAAgB,GAAG,CAACnH,KAAa,EAAEkG,UAAwC,GAAK;QACpF,qBACE,mDAACD,+EAA6B;YAE5BC,UAAU,EAAEA,UAAU;YACtBC,qBAAqB,EAAEA,qBAAqB;WAFvCD,UAAU,CAAC1I,EAAE,CAGlB,CACF;IACJ,CAAC;IAED,IAAIoD,OAAO,GAAG,IAAI;IAClB,IAAIhB,iBAAiB,IAAID,SAAS,EAAE;QAClCiB,OAAO,iBAAG,mDAACjC,qEAAO;YAACK,IAAI,EAAEJ,kFAAiB;UAAI,CAAC;IACjD,OAAO,IAAIiB,OAAO,EAAE;QAClBe,OAAO,iBACL,mDAACjF,KAAG;YAACC,SAAS,EAAEc,mGAA0B;sBACxC,iEAACqB,MAAI;0BAAEpD,CAAC,CAAC,mBAAmB,CAAC;cAAQ;UACjC,CACN;IACJ,CAAC;IAED,qBACE;;YACG4L,kBAAkB,kBACjB,mDAACS,yFAAe;gBACdjG,MAAM;gBACNC,OAAO,EAAE,IAAMmF,qBAAqB,CAAC,IAAI,CAAC;gBAC1CD,UAAU,EAAEK,kBAAkB;cAC9B;0BAGJ,mDAACpB,4EAA0B,KAAG;0BAC9B,mDAAC1G,oDAAQ;gBACPK,IAAI,EAAEoI,WAAW;gBACjBjG,QAAQ,EAAE,EAAE;gBACZC,kBAAkB,EAAE;oBAAEC,GAAG,EAAE,EAAE;oBAAEC,MAAM,EAAE,EAAE;iBAAE;gBAC3CxF,SAAS,EAAEc,kGAAyB;gBACpC4E,UAAU,EAAExB,QAAQ;gBACpByB,WAAW,EAAE4F,gBAAgB;gBAC7B3F,eAAe;cACf;YAEDZ,OAAO;;MACP,CACH;AACJ,CAAC;AAED,iEAAeqG,yBAAyB,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7FzC;AAAoC;AACM;AAEgB;AAEiE;AAC9D;AAC1B;AAEe;AACF;AACqB;AAErE,MAAMI,iBAAiB,GAAG,IAAM;IAC9B;;;;;;;;;;;;GAYC,GACD,MAAM1D,MAAM,GAAG,CAACC,SAAiB,EAAEC,gBAA4C,GAAK;QAClF,IAAI,CAACZ,uEAAU,EAAE,IAAKY,gBAAgB,IAAI,CAACA,gBAAgB,CAAC/E,IAAI,EAAG,OAAO,IAAI,CAAC;QAC/E,MAAMuB,IAAI,GAAGuD,SAAS,GAAG,CAAC;QAC1B,IAAIA,SAAS,KAAK,CAAC,EAAE;YACnB,OAAOwD,4FAAyB,CAAC;gBAC/B/G,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAEhB,WAAW,GAAE,GAAGwE,gBAAgB,CAACvE,UAAU;QAEnD,IAAI,CAACD,WAAW,EAAE,OAAO,IAAI,CAAC;QAE9B,OAAO+H,4FAAyB,CAAC;YAC/B/G,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAEvB,IAAI,GAAEE,IAAI,GAAEC,OAAO,GAAEF,YAAY,GAAEkF,KAAK,GAAE,GAAGrB,wDAAc,CACjEe,MAAM,EACN,CAACQ,GAAG,GAAK;QACP,6BAA6B;QAC7B,OAAOpB,yEAAc,CAACoB,GAAG,CAAC,CAACC,IAAI,CAAC,CAAC3E,QAAQ,GAAK;YAC5C,OAAO;gBACL,GAAIA,QAAQ;gBACZ0E,GAAG;aACJ,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EACD;QACEE,iBAAiB,EAAE,KAAK;QACxBC,mBAAmB,EAAE,KAAK;QAC1BC,iBAAiB,EAAE,IAAI;KACxB,CACF;IAED,IAAIN,KAAK,EAAE;QACT,qBAAO,mDAACpB,oDAAK;YAAC2B,UAAU,EAAE,GAAG;YAAEC,YAAY,EAAE,KAAK;UAAI,CAAC;IACzD,CAAC;IAED,IAAI,CAAC3F,IAAI,EAAE;QACT,qBACE,mDAACnD,KAAG;YAACC,SAAS,EAAE+G,iDAAU,CAACjG,sFAAgB,EAAEA,6FAAuB,CAAC;sBACnE,iEAACiC,qEAAO;gBAACiG,qBAAqB;gBAAC5F,IAAI,EAAEJ,kFAAiB;cAAI;UACtD,CACN;IACJ,CAAC;IAED,qBACE,mDAACqI,kIAAyB;QACxBnI,IAAI,EAAEA,IAAI;QACVC,YAAY,EAAEA,YAAY;QAC1BC,IAAI,EAAEA,IAAI;QACVC,OAAO,EAAEA,OAAO;MAChB,CACF;AACJ,CAAC;AAED,iEAAeoI,iBAAiB,EAAC;;;;;;;;;;;;;;;;;;;;ACrFjC;AAA0B;AAEyB;AAOnD,wDAAwD;AACxD,MAAMC,eAAe,GAAoB,CAAC,EAAEC,IAAI,GAAEC,KAAK,GAAE,GAAK;IAC5D,qBACE,wDAAC7L,KAAG;QAACC,SAAS,EAAEc,+EAAgB;;YAC7B6K,IAAI;YAAC,GAAC;0BAAA,mDAAC5J,GAAC;gBAAC/B,SAAS,EAAEc,2EAAY;0BAAG8K,KAAK;cAAK;;MAC1C,CACN;AACJ,CAAC;AAED,iEAAeF,eAAe,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClB/B;AAA4D;AAEpB;AACmB;AAEnB;AAE0C;AACU;AACZ;AACvC;AAC2B;AACnB;AACC;AACH;AACY;IAE3D,GAGC;UAHIW,GAAG;IAAHA,GAAG,CACNC,eAAa,IAAG,OAAO;IADpBD,GAAG,CAENE,oBAAkB,IAAG,aAAa;GAF/BF,GAAG,KAAHA,GAAG;AAKR,MAAMhM,SAAS,GAAG,IAAM;IACtB,MAAM,EAAEtB,CAAC,GAAE,GAAGE,oEAAc,CAAC,OAAO,CAAC;IACrC,MAAMuN,MAAM,GAAGV,sDAAS,EAAE;IAC1B,MAAM,KAACW,WAAW,MAAEC,cAAc,MAAI9J,+CAAQ,CAACyJ,GAAG,CAACC,aAAa,CAAC;IAEjE,MAAMK,WAAW,GAAGhK,8CAAO,CACzB,IAAO;YACLiK,GAAG,EAAEH,WAAW;SACjB,GACD;QAACA,WAAW;KAAC,CACd;IACDP,kFAAsB,CAAC/M,mFAAqB,EAAE,EAAEwN,WAAW,CAAC,CAAC;IAE7D,uDAAuD;IACvDd,gDAAS,CAAC,IAAM;QACd,MAAMgB,QAAQ,GAAGL,MAAM,CAACM,KAAK,CAACF,GAAG;QACjC,gDAAgD;QAChD,IAAIC,QAAQ,IAAIE,MAAM,CAACC,MAAM,CAACX,GAAG,CAAC,CAACY,QAAQ,CAACJ,QAAQ,CAAC,EAAE;YACrDH,cAAc,CAACG,QAAQ,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,EAAE;QAACL,MAAM,CAACM,KAAK,CAACF,GAAG;KAAC,CAAC,CAAC;IAEvB,MAAMM,WAAW,GAAG,CAACtB,KAAU,GAAK;QAClC7F,uEAAQ,CAAC,uBAAuB,EAAE;YAAE6F,KAAK;SAAE,CAAC,CAAC;QAC7Cc,cAAc,CAACd,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,MAAMuB,IAAI,GAAGxK,8CAAO,CAClB,IAAM;YACJ;gBACEyK,IAAI,gBAAE,mDAAC1B,iGAAe;oBAACC,IAAI,gBAAE,mDAACQ,sEAAW,KAAG;oBAAEP,KAAK,EAAE7M,CAAC,CAAC,eAAe,CAAC;kBAAI;gBAC3E6M,KAAK,EAAES,GAAG,CAACC,aAAa;aACzB;YACD;gBACEc,IAAI,gBAAE,mDAAC1B,iGAAe;oBAACC,IAAI,gBAAE,mDAACS,uEAAY,KAAG;oBAAER,KAAK,EAAE7M,CAAC,CAAC,oBAAoB,CAAC;kBAAI;gBACjF6M,KAAK,EAAES,GAAG,CAACE,kBAAkB;aAC9B;SACF,EACD;QAACxN,CAAC;KAAC,CACJ;IAED,MAAMsO,aAAa,GAAG1K,8CAAO,CAC3B,IAAO;YACL,CAAC0J,GAAG,CAACC,aAAa,CAAC,gBAAE,mDAACP,mGAAe,KAAG;YACxC,CAACM,GAAG,CAACE,kBAAkB,CAAC,gBAAE,mDAACP,wGAAoB,KAAG;SACnD,GACD,EAAE,CACH;IAED,IAAI,CAACQ,MAAM,CAACc,OAAO,EAAE;QACnB,qBAAO,+GAAK,CAAC;IACf,CAAC;IAED,qBACE,wDAACvN,KAAG;QAACC,SAAS,EAAEc,qEAAgB;;0BAC9B,mDAACf,KAAG;gBAACC,SAAS,EAAEc,kEAAa;0BAC3B,iEAACf,KAAG;oBAACC,SAAS,EAAEc,0EAAqB;8BACnC,iEAAC2M,IAAE;kCAAE1O,CAAC,CAAC,oBAAoB,CAAC;sBAAM;kBAC9B;cACF;0BACN,mDAACkN,mEAAM;gBAACyB,QAAQ,EAAEjB,WAAW;gBAAEkB,KAAK,EAAER,IAAI;gBAAES,QAAQ,EAAEV,WAAW;cAAI;YACpEG,aAAa,CAACZ,WAAW,CAAC;;MACvB,CACN;AACJ,CAAC;AAED,iEAAepM,SAAS,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxFzB;AAA0B;AAEiC;AAEK;AAEQ;AAChC;AACA;AAEa;AACF;AACsB;AAMzE,MAAM6J,4BAA4B,GAAoB,CAAC,EAAEI,UAAU,GAAE,GAAK;IACxE,MAAM,EAAEtL,IAAI,GAAED,CAAC,GAAE,GAAGE,oEAAc,CAAC,OAAO,CAAC;IAE3C,MAAMmP,mBAAmB,GAAG,CAACC,CAAC,GAAK;QACjCA,CAAC,CAACC,eAAe,EAAE,CAAC;QACpBrN,4EAAc,CAAC,kBAAkB,EAAE;YACjC2J,MAAM,EAAEN,UAAU,CAAC1I,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,MAAM2M,sBAAsB,GAAG,CAACF,CAAC,GAAK;QACpCA,CAAC,CAACC,eAAe,EAAE,CAAC;QACpBrN,4EAAc,CAAC,qBAAqB,EAAE;YACpC2J,MAAM,EAAEN,UAAU,CAAC1I,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,MAAM4M,iBAAiB,GAAG,CAACH,CAAC,GAAK;QAC/BA,CAAC,CAACC,eAAe,EAAE,CAAC;QACpBrN,4EAAc,CAAC,uBAAuB,EAAE;YACtC2J,MAAM,EAAEN,UAAU,CAAC1I,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,qBACE,wDAAC7B,KAAG;QAACC,SAAS,EAAEc,4FAAgB;;0BAC9B,wDAACf,KAAG;gBAACC,SAAS,EAAEc,6GAAiC;;kCAC/C,mDAAC+M,oEAAM;wBACL7N,SAAS,EAAEc,sGAA0B;wBACrC+I,OAAO,EAAEkE,uFAAqB;wBAC9BnE,IAAI,EAAEuE,gGAAsB,CAAC7D,UAAU,CAAC1I,EAAE,CAAC;wBAC3CmI,QAAQ;wBACR6E,MAAM,gBAAE,mDAACX,gEAAQ,KAAG;wBACpB7K,IAAI,EAAE0K,gFAAgB;wBACtBnM,OAAO,EAAEyM,mBAAmB;wBAC5BU,eAAe,EAAE,KAAK;kCAErBZ,0EAAiB,CAAC5D,UAAU,CAACyE,KAAK,EAAE/P,IAAI,CAAC;sBACnC;kCACT,mDAAC6O,oEAAM;wBACL7N,SAAS,EAAEc,sGAA0B;wBACrC+I,OAAO,EAAEkE,uFAAqB;wBAC9Ba,MAAM,gBAAE,mDAACZ,gEAAQ,KAAG;wBACpBpE,IAAI,EAAEuE,gGAAsB,CAAC7D,UAAU,CAAC1I,EAAE,EAAE,IAAI,CAAC;wBACjDmI,QAAQ;wBACR3G,IAAI,EAAE0K,gFAAgB;wBACtBnM,OAAO,EAAE4M,sBAAsB;wBAC/BO,eAAe,EAAE,KAAK;kCAErBZ,0EAAiB,CAAC5D,UAAU,CAAC0E,aAAa,EAAEhQ,IAAI,CAAC;sBAC3C;;cACL;0BACN,mDAAC6O,oEAAM;gBACLzK,IAAI,EAAE0K,gFAAgB;gBACtBlE,IAAI,EAAEuE,gGAAsB,CAAC7D,UAAU,CAAC1I,EAAE,CAAC;gBAC3CmI,QAAQ;gBACRpI,OAAO,EAAE6M,iBAAiB;0BAEzBzP,CAAC,CAAC,kBAAkB,CAAC;cACf;;MACL,CACN;AACJ,CAAC;AAED,iEAAemL,4BAA4B,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClF5C;AAA+B;AAE4B;AAER;AAE2C;AACZ;AACD;AAGzB;AAQxD,MAAMkB,eAAe,GAAmC,CAAC,EAAEhG,OAAO,GAAED,MAAM,GAAEmF,UAAU,GAAE,GAAK;IAC3F,MAAM+E,eAAe,GAAGJ,6CAAM,EAAuB;IACrD,MAAMzE,aAAa,GAAGP,2GAAuB,CAACK,UAAU,CAACrI,IAAI,EAAEnB,6EAAc,CAAC;IAC9E,MAAM,EAAE9B,IAAI,GAAE,GAAGC,oEAAc,EAAE;IAEjC,qBACE,wDAACkQ,+EAAY;QACXG,QAAQ,EAAED,eAAe;QACzBlK,MAAM,EAAEA,MAAM;QACdoI,MAAM,gBAAE,mDAACxN,KAAG;YAACC,SAAS,EAAEc,qFAAsB;UAAI;QAClD0O,cAAc;QACdpK,OAAO,EAAEA,OAAO;QAChBqK,eAAe,EAAErK,OAAO;QACxBhC,IAAI,EAAEgM,mGAAuB;;YAE5B9E,UAAU,CAACO,UAAU,kBAAI,mDAACqE,8FAAoB;gBAACrE,UAAU,EAAEP,UAAU,CAACO,UAAU;cAAI;0BACrF,mDAAC9K,KAAG;gBAACC,SAAS,EAAEc,yFAA0B;0BACxC,iEAACuB,MAAI;oBAACrC,SAAS,EAAEc,8EAAe;oBAAEyB,QAAQ,EAAE+H,UAAU,CAAC9H,SAAS,CAACC,QAAQ,EAAE;8BACxEzB,+EAAoB,CAACsJ,UAAU,CAAC9H,SAAS,EAAExD,IAAI,EAAE;wBAChD0D,IAAI,EAAE,SAAS;wBACfkN,OAAO,EAAEC,SAAS;wBAClBC,KAAK,EAAE,OAAO;qBACf,CAAC;kBACG;cACH;0BACN,mDAAC3N,MAAI;gBACHnC,SAAS,EAAEc,8EAAe;gBAC1B,2CAA2C;gBAC3CoK,uBAAuB,EAAE;oBACvBC,MAAM,EAAEX,aAAa;iBACtB;cACD;;MACW,CACf;AACJ,CAAC;AAED,iEAAeY,eAAe,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACvD/B;AAA0C;AAEiB;AAE2C;AACrD;AAEA;AACI;AAMrD,MAAMjB,4BAA4B,GAAoB,CAAC,EAAEY,SAAS,GAAE,GAAK;IACvE,MAAM,EAAE/L,IAAI,GAAED,CAAC,GAAE,GAAGE,oEAAc,CAAC,QAAQ,CAAC;IAC5C,MAAM0B,YAAY,GAAGoP,iDAAU,CAACC,sEAAW,CAAC;IAC5C,IAAI,CAACjF,SAAS,EAAE;QACd,qBAAO,+GAAK,CAAC;IACf,CAAC;IAED,MAAM,EAAEC,OAAO,GAAEmF,QAAQ,GAAEC,MAAM,GAAEC,OAAO,GAAE,GAAGtF,SAAS;IACxD,MAAMuF,WAAW,GAAGL,wEAAc,CAACtP,YAAY,EAAEqK,OAAO,CAACvI,QAAQ,EAAE,CAAC;IACpE,IAAI8N,YAAY,GAAG,CAAC,EAAExR,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAEuR,WAAW,CAACE,kBAAkB,CAAC,CAAC;IACpE,2BAA2B;IAC3B,IAAI,CAACH,OAAO,EAAE;QACZ,MAAMI,sBAAsB,GAAG,CAAC,EAAEF,YAAY,CAAC,CAAC,EAAEL,4EAAmB,CACnElF,OAAO,CAACvI,QAAQ,EAAE,EAClBzD,IAAI,CACL,CAAC,CAAC,EAAEkR,4EAAmB,CAACC,QAAQ,CAAC1N,QAAQ,EAAE,EAAEzD,IAAI,CAAC,CAAC,CAAC;QACrD,IAAImR,QAAQ,KAAKC,MAAM,EAAE;YACvB,YAAY;YACZG,YAAY,GAAGE,sBAAsB,CAAC;QACxC,OAAO;YACL,cAAc;YACdF,YAAY,GAAG,CAAC,EAAEE,sBAAsB,CAAC,CAAC,EAAEP,4EAAmB,CAACE,MAAM,CAAC3N,QAAQ,EAAE,EAAEzD,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IACD,qBAAO,mDAACe,KAAG;QAACC,SAAS,EAAEc,kIAAgB;kBAAGyP,YAAY;MAAO,CAAC;AAChE,CAAC;AAED,iEAAepG,4BAA4B,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzC5C;AAA0B;AAE8B;AAE0C;AACzB;AACtC;AACoB;AAEQ;AACM;AAMrE;;;;;;CAMC,GACD,MAAM+E,oBAAoB,GAAoB,CAAC,EAAErE,UAAU,GAAS,GAAK;IACvE,MAAMtE,YAAY,GAAG,CAACqK,cAAuB,GAAK;QAChD,IAAIA,cAAc,EAAE;YAClB7K,sEAAQ,CAAC,sCAAsC,CAAC,CAAC;QACnD,OAAO;YACLA,sEAAQ,CAAC,sCAAsC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,MAAM8K,2BAA2B,GAAG,IAAM;QACxC5P,4EAAc,CAAC,4BAA4B,CAAC,CAAC;IAC/C,CAAC;IAED,qBACE;kBACG4J,UAAU,CAACjH,GAAG,CAAC,CAACmH,SAAS,GAAK;YAC7B,MAAM,EAAEC,OAAO,GAAEmF,QAAQ,GAAEC,MAAM,GAAEC,OAAO,GAAE,GAAGtF,SAAS;YACxD,IAAIsF,OAAO,EAAE;gBACX,qBACE,mDAAChH,+DAAI;oBAEHrJ,SAAS,EAAEc,mFAAe;oBAC1B8I,IAAI,EAAE,CAAC,CAAC,EAAEoB,OAAO,CAAC,CAAC;oBACnBrJ,OAAO,EAAEkP,2BAA2B;oBACpC9G,QAAQ;8BAER,iEAAChK,KAAG;wBAACC,SAAS,EAAEc,0FAAsB;kCACpC,iEAACqJ,sGAA4B;4BAACY,SAAS,EAAEA,SAAS;0BAAI;sBAClD;mBARDA,SAAS,CAACC,OAAO,CASjB,CACP;YACJ,CAAC;YACD,qBACE,mDAAC2F,2FAAW;gBAEVnR,KAAK,gBACH,mDAACO,KAAG;oBAACC,SAAS,EAAEc,0FAAsB;8BACpC,iEAACqJ,sGAA4B;wBAACY,SAAS,EAAEA,SAAS;sBAAI;kBAClD;gBAER6D,MAAM,gBAAE,mDAAC9I,wEAAe,KAAG;gBAC3BiL,0BAA0B;gBAC1BxK,YAAY,EAAEA,YAAY;0BAEzB,CAAC,EAAEpB,MAAM,EAAE6L,gBAAgB,GAAE,GAAK;oBACjC,IAAI,CAACA,gBAAgB,EAAE,OAAO,IAAI,CAAC;oBACnC,qBAAO,mDAACN,sFAAmB;wBAACO,OAAO,EAAEC,MAAM,CAAClG,OAAO,CAAC;wBAAEmG,IAAI,EAAEhB,QAAQ;wBAAEiB,EAAE,EAAEhB,MAAM;sBAAI,CAAC;gBACvF,CAAC;eAbIrF,SAAS,CAACC,OAAO,CAcV,CACd;QACJ,CAAC,CAAC;MACD,CACH;AACJ,CAAC;AAED,iEAAekE,oBAAoB,EAAC;;;;;;;;;;;;;;;;;;;;;;AC9EpC,uDAAuD,GACvD,+CAA+C,GACM;AAErD;;;;;;;;CAQC,GACD,MAAMoC,SAAS,GAAG,CAACC,GAAW,EAAEC,YAAoB,GAAa;IAC/D,MAAMC,cAAc,GAAG,CAAC,CAAC,EAAEF,GAAG,CAAC,CAAC;IAChC,OAAO,CAAC,yBAAyB,EAAEF,4CAAqB,CACtDI,cAAc,CACf,CAAC,SAAS,EAAED,YAAY,CAAC,EAAE,EAAEC,cAAc,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;;;CAKC,GACD,MAAMC,oBAAoB,GAAG,CAACvI,IAAY,GAAa;IACrD,MAAMwI,KAAK,8EAA8E;IACzF,OAAOxI,IAAI,CAACyI,OAAO,CAACD,KAAK,EAAE,CAACE,GAAG,GAAK;QAClC,iCAAiC;QACjC,MAAMC,iBAAiB,GAAG,GAAG,EAAE,2DAA2D;QAC1F,MAAM1N,KAAK,GAAG+E,IAAI,CAAC4I,OAAO,CAACF,GAAG,CAAC;QAE/B,MAAMG,UAAU,GAAG7I,IAAI,CAAC8I,KAAK,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE/N,KAAK,GAAG0N,iBAAiB,CAAC,EAAE1N,KAAK,CAAC;QAC5E,MAAMgO,SAAS,GAAGjJ,IAAI,CAAC8I,KAAK,CAAC7N,KAAK,GAAGyN,GAAG,CAAC3P,MAAM,EAAEkC,KAAK,GAAGyN,GAAG,CAAC3P,MAAM,GAAG4P,iBAAiB,CAAC;QAExF,IAAIE,UAAU,CAAC/E,QAAQ,CAAC,UAAU,CAAC,IAAImF,SAAS,CAACnF,QAAQ,CAAC,MAAM,CAAC,EAAE;YACjE,oDAAoD;YACpD,OAAO4E,GAAG,CAAC;QACb,CAAC;QAED,wBAAwB;QACxB,OAAO,CAAC,SAAS,EAAEA,GAAG,CAAC,kBAAkB,EAAEA,GAAG,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,MAAMQ,mBAAmB,GAAG,CAACC,cAAsB,EAAEd,YAAoB,GAAa;IAC3F,OACE,qHAAqH;IACrHE,oBAAoB,CAACY,cAAc,CAAC,gIAC8F;KAC/HV,OAAO,WAAW,MAAM,CAAC,mKACyI;KAClKA,OAAO,YAAY,CAACW,CAAC,EAAEhB,GAAG,GAAKD,SAAS,CAACC,GAAG,EAAEC,YAAY,CAAC,CAAC,EAC/D;AACJ,CAAC,CAAC;;;ACvD8B;AAEsC;AAEtE;;;;;;;;CAQC,GACD,MAAMvH,uBAAuB,GAAG,CAACuI,cAAsB,EAAEhB,YAAoB,GAAa;IACxF,MAAMiB,UAAU,GAAG9P,2BAAO,CACxB,IAAM0P,mBAAmB,CAACG,cAAc,EAAEhB,YAAY,CAAC,EACvD;QAACA,YAAY;QAAEgB,cAAc;KAAC,CAC/B;IAED,OAAOC,UAAU,CAAC;AACpB,CAAC;AAED,oEAAexI,uBAAuB,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBvC;AAA2D;AACH;AACrB;AAEU;AACgC;AAE/B;AACS;AAEhB;AACK;AACgC;AACS;AACrB;AACf;AACF;AACD;AACZ;AAkBlC,MAAMyG,mBAAmB,GAAoB,CAAC,EAAEO,OAAO,GAAEE,IAAI,GAAEC,EAAE,GAAE,GAAK;IACtE,MAAM,EAAEpS,IAAI,GAAE,GAAGC,oEAAc,EAAE;IACjC,MAAMuU,YAAY,GAAGb,wDAAW,CAACM,yGAA0B,EAAEI,mEAAc,CAAC;IAC5E,MAAM,EAAEI,SAAS,GAAEC,WAAW,GAAEC,oBAAoB,GAAE,GAAGhB,wDAAW,CAClEK,+FAAuB,EACvBN,qDAAY,CACb;IAED,MAAMkB,QAAQ,GAAGT,kEAAW,CAACM,SAAS,EAAEC,WAAW,CAAC,CAACG,MAAM;IAC3D,MAAMC,SAAS,GAAG;QAChB,GAAGZ,2EAAoB,CAACO,SAAS,CAAC;QAClCM,iBAAiB,EAAE,2BAA2B;QAC9CP,YAAY,EAAEA,YAAY,CAACQ,IAAI,CAAC,GAAG,CAAC;QACpCH,MAAM,EAAED,QAAQ;QAChBzC,IAAI,EAAE,CAAC,EAAEF,OAAO,CAAC,CAAC,EAAEE,IAAI,CAAC,CAAC;QAC1BC,EAAE,EAAE,CAAC,EAAEH,OAAO,CAAC,CAAC,EAAEG,EAAE,CAAC,CAAC;KACvB;IAED,MAAM6C,eAAe,GAAG,CAAC,CAAC9C,IAAI;IAE9B,MAAM,EAAEjO,IAAI,GAAEmF,KAAK,GAAEC,MAAM,GAAE,GAAGsK,yDAAM,CACpCqB,eAAe,GAAGb,yEAAa,CAACnC,OAAO,EAAEjS,IAAI,EAAE8U,SAAS,CAAC,GAAG,IAAI,EAChEP,uDAAO,CACR;IAEDR,sEAAU,CAACU,SAAS,EAAEvQ,IAAI,EAAEgR,MAAM,GAAGhR,IAAI,CAACgR,MAAM,GAAG,EAAE,CAAC,CAAC;IAEvD,IAAI7L,KAAK,EAAE,qBAAO,mDAACpB,kEAAK;QAACoB,KAAK,EAAEA,KAAK;QAAE8L,cAAc,EAAE7L,MAAM;MAAI,CAAC;IAElE,IAAI,CAACpF,IAAI,EAAE,qBAAO,mDAACH,qEAAO,KAAG,CAAC;IAE9B,qBACE,mDAAChD,KAAG;QAACC,SAAS,EAAEc,oFAAgB;kBAC7BoC,IAAI,EAAEgR,MAAM,CAACtQ,GAAG,CAAC,CAACwQ,KAAK,iBACtB,wDAACrU,KAAG;gBAAsBC,SAAS,EAAEc,yFAAqB;;kCACxD,mDAACf,KAAG;wBAACC,SAAS,EAAEc,+FAA2B;kCACzC,iEAACgS,gEAAc;4BAACyB,KAAK,EAAEjB,sEAAa,CAACc,KAAK,CAAC;0BAAI;sBAC3C;kCACN,mDAACrU,KAAG;wBAACC,SAAS,EAAEc,oGAAgC;kCAC7CsT,KAAK,CAACZ,YAAY,EAAE5P,GAAG,CAAC,CAAC6Q,WAAW,iBACnC,mDAAC1U,KAAG;gCAAsBC,SAAS,EAAEc,+FAA2B;0CAC9D,iEAAC+R,6FAAe;oCACd8B,UAAU,EAAEF,WAAW,CAACE,UAAU;oCAClCC,YAAY,EAAEH,WAAW,CAACG,YAAY;oCACtCjB,oBAAoB,EAAEA,oBAAoB;oCAC1CxK,IAAI,EAAEsL,WAAW,CAACtL,IAAI;kCACtB;+BANMsL,WAAW,CAAC7S,EAAE,CAOlB,CACN;sBACE;;eAfEwS,KAAK,CAACtD,QAAQ,CAgBlB,CACN;MACE,CACN;AACJ,CAAC;AAED,iEAAeJ,mBAAmB,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5FnC;AAAkE;AAEjB;AACb;AACI;AAE8B;AAEtB;AAGN;AACG;IAEtC,gBAGN;UAHWtB,gBAAgB;IAAhBA,gBAAgB,CAC1B8F,OAAK,IAAG,OAAO;IADL9F,gBAAgB,CAE1BM,QAAM,IAAG,QAAQ;GAFPN,gBAAgB,KAAhBA,gBAAgB;AAoB5B,MAAM+F,eAAe,GAAG,EAAE;AAE1B,MAAMhG,YAAY,GAAG,CAAC,EACpBhK,MAAM,GACNC,OAAO,GACPqK,eAAe,GACfD,cAAc,GACd4F,QAAQ,GACR7H,MAAM,GACN+B,QAAQ,GACR+F,gBAAgB,GAChBjS,IAAI,EAAGgM,gBAAgB,CAACM,MAAM,GAC9B4F,aAAa,GACbC,SAAS,EAAG,IAAI,GACE,GAAK;IACvB,MAAMC,UAAU,GAAGvG,6CAAM,EAAkB;IAC3C,MAAM,EAAE1O,MAAM,GAAE,GAAGuL,sDAAS,EAAE;IAE9B+I,0DAAmB,CAACvF,QAAQ,EAAE,IAAO;YACnCmG,WAAW,EAAE,IAAM;gBACjB,IAAID,UAAU,CAACE,OAAO,EAAEF,UAAU,CAACE,OAAO,CAACC,SAAS,GAAG,CAAC,CAAC;YAC3D,CAAC;SACF,EAAE,CAAC;IAEJ;;;;;;;;;;;GAWC,GACD,MAAMC,oBAAoB,GAAG,CAACvH,CAAM,GAAK;QACvC,MAAMwH,aAAa,GAAGxH,CAAC,CAACwH,aAAa;QAErC,MAAMC,oBAAoB,GAAGb,oEAAW,CAAC1U,MAAM,CAAC,GAC5C8N,CAAC,CAAC0H,MAAM,CAACC,aAAa,CAACC,OAAO,GAAGd,eAAe,CAAC,kCAAkC;QAAnC,GAChD9G,CAAC,CAAC0H,MAAM,CAACC,aAAa,CAACC,OAAO,GAAGJ,aAAa,CAACK,WAAW,GAAGf,eAAe,EAAE,mCAAmC;QAErH,IAAIW,oBAAoB,EAAE;YACxBzH,CAAC,CAAC8H,cAAc,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI/Q,OAAO,EAAE;YACXA,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,qBACE,mDAAC0P,wDAAW;QAACuB,IAAI,EAAElR,MAAM;kBACvB,iEAAC2P,0DAAa;sBACZ,iEAACA,2DAAc;gBAAC9U,SAAS,EAAEc,0EAAc;gBAAE2V,GAAG,EAAEjB,UAAU;0BACxD,sEAACV,2DAAc;oBACb9U,SAAS,EAAE+G,iDAAU,CAACjG,iFAAqB,EAAE;wBAC3C,CAACuU,gBAAgB,CAAC,EAAEA,gBAAgB;wBACpC,CAACvU,wEAAY,CAAC,EAAEsC,IAAI,KAAKgM,gBAAgB,CAAC8F,KAAK;wBAC/C,CAACpU,yEAAa,CAAC,EAAEsC,IAAI,KAAKgM,gBAAgB,CAACM,MAAM;wBACjD,CAAC5O,6EAAiB,CAAC,EAAE,CAACwU,aAAa;qBACpC,CAAC;oBACF7F,eAAe,EAAEA,eAAe;oBAChCmG,oBAAoB,EAAEA,oBAAoB;;wBAEzCL,SAAS,kBACR,wDAACxV,KAAG;4BAACC,SAAS,EAAEc,yEAAa;;gCAC1B0O,cAAc,kBACb,mDAACsF,yDAAY;oCAAC9U,SAAS,EAAEc,4EAAgB;8CACvC,iEAAC+M,gEAAM;wCACLhE,OAAO,EAAEkE,+EAAmB;wCAC5BmJ,KAAK,EAAEnC,+EAAkB;wCACzBpT,OAAO,EAAEyD,OAAO;kDAEhB,iEAAC4P,iEAAS,KAAG;sCACN;kCACI;gCAEhBzH,MAAM;;0BACH;sCAGR,mDAACxN,KAAG;4BAACC,SAAS,EAAEc,0EAAc;sCAAGsU,QAAQ;0BAAO;;kBACjC;cACF;UACH;MACJ,CACd;AACJ,CAAC;AACD,iEAAejG,YAAY,EAAC;;;;;;;;;;;;;;;;;;;;;;;AC5H5B;AAAyC;AAEY;AACjB;AAepC;;;;;;;;CAQC,GACD,MAAMoI,gBAAgB,GAAoB,CAAC,EACzCvS,OAAO,GACPoQ,QAAQ,GACR7O,YAAY,GACZiR,WAAW,EAAGH,uEAAe,GAC7BK,GAAG,EAAG,IAAI,GACVC,YAAY,EAAG,CAAC,GAChBC,cAAc,EAAG,IAAI,GACrBzS,MAAM,GACN0S,aAAa,GACbC,eAAe,EAAG,KAAK,GACjB,iBACN,mDAACV,8DAAO;QACNf,IAAI,EAAElR,MAAM;QACZ0S,aAAa,EAAEA,aAAa;QAC5BL,WAAW,EAAEA,WAAW;QACxBO,gBAAgB;QACf,GAAIxR,YAAY,IAAI;YAAEA,YAAY;SAAE;QACrCqR,cAAc,EAAEA,cAAc;QAC9BE,eAAe,EAAEA,eAAe;QAChCrR,OAAO,gBACL,mDAAC6Q,8DAAO;YACNjB,IAAI,EAAElR,MAAM;YACZuS,GAAG,EAAEA,GAAG;YACRvO,IAAI,EAAEnE,OAAO;YACbwS,WAAW,EAAEA,WAAW;YACxBQ,KAAK,EAAEL,YAAY;YAClB,GAAIpR,YAAY,IAAI;gBAAEA,YAAY;aAAE;sBAEpC6O,QAAQ;UACD;QAEZsC,GAAG,EAAEA,GAAG;kBAEP1S,OAAO;MACA;AAGZ,iEAAeuS,gBAAgB,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjEhC;AAAyC;AAEe;AACpB;AAEO;IAEpC,WAKN;UALWF,WAAW;IAAXA,WAAW,CACrBI,KAAG,IAAG,KAAK;IADDJ,WAAW,CAErBa,OAAK,IAAG,OAAO;IAFLb,WAAW,CAGrBc,QAAM,IAAG,QAAQ;IAHPd,WAAW,CAIrBe,MAAI,IAAG,MAAM;GAJHf,WAAW,KAAXA,WAAW;IAOhB,YAIN;UAJWgB,YAAY;IAAZA,YAAY,CACtBC,OAAK,IAAG,OAAO;IADLD,YAAY,CAEtBE,QAAM,IAAG,QAAQ;IAFPF,YAAY,CAGtBG,KAAG,IAAG,KAAK;GAHDH,YAAY,KAAZA,YAAY;AAyBxB,MAAMjB,OAAO,GAAoB,CAAC,EAChChC,QAAQ,GACR3O,OAAO,GACPF,YAAY,GACZ8P,IAAI,GACJoC,OAAO,EAAG,KAAK,GACfjB,WAAW,EAAGH,WAAW,CAACc,MAAM,GAChCO,YAAY,EAAGL,YAAY,CAACE,MAAM,GAClCI,eAAe,EAAG,IAAI,GACtBjB,GAAG,EAAG,KAAK,GACXK,gBAAgB,EAAG,KAAK,GACxBH,cAAc,EAAG,IAAI,GACrBgB,WAAW,EAAG,IAAI,GAClBC,iBAAiB,EAAG,CAAC,GACrBhB,aAAa,GACbiB,aAAa,GACbhB,eAAe,EAAG,KAAK,KACxB,GAAK;IACJ,MAAM9S,OAAO,iBACX,wDAACiT,4DAAoB;QACnBc,UAAU,EAAEF,iBAAiB;QAC7BG,IAAI,EAAExB,WAAW;QACjByB,KAAK,EAAEP,YAAY;QACnBC,eAAe,EAAEA,eAAe;QAChC3Y,SAAS,EAAE+G,iDAAU,CAACjG,qEAAc,EAAE;YACpC,CAACA,4EAAqB,CAAC,EAAEiX,gBAAgB;YACzC,CAACe,aAAa,CAAC,EAAEA,aAAa;SAC/B,CAAC;;YAED1D,QAAQ;YACRsC,GAAG,kBAAI,mDAACO,0DAAkB,KAAG;;MACT;IAGzB,MAAMmB,cAAc,iBAClB,wDAACnB,yDAAiB;QAChBoB,KAAK,EAAEZ,OAAO;QACb,GAAI,OAAOpC,IAAI,KAAK,WAAW,IAAI;YAAEA,IAAI;SAAE;QAC3C,GAAI9P,YAAY,IAAI;YAAEA,YAAY;SAAE;;0BAErC,mDAAC0R,4DAAoB;gBAACsB,YAAU,EAAC,cAAc;gBAACC,OAAO;0BACrD,iEAACrX,MAAI;oBACHnC,SAAS,EAAE+G,iDAAU,CAACjG,qEAAc,EAAE;wBACpC,CAAC+W,aAAa,CAAC,EAAEA,aAAa;qBAC/B,CAAC;8BAEDpR,OAAO;kBACH;cACc;YACtBmS,WAAW,iBAAG,mDAACX,2DAAmB;0BAAEjT,OAAO;cAAuB,GAAGA,OAAO;;MAC3D;IAGtB,IAAI8S,eAAe,EAAE;QACnB,qBACE,mDAAC3V,MAAI;YAACnC,SAAS,EAAE+G,iDAAU,CAAC;gBAAE,CAACjG,uEAAgB,CAAC,EAAE8W,cAAc;aAAE,CAAC;sBAAGwB,cAAc;UAAQ,CAC5F;IACJ,CAAC;IAED,qBAAO,mDAACrZ,KAAG;QAACC,SAAS,EAAE+G,iDAAU,CAAC;YAAE,CAACjG,uEAAgB,CAAC,EAAE8W,cAAc;SAAE,CAAC;kBAAGwB,cAAc;MAAO,CAAC;AACpG,CAAC;AAED,iEAAehC,OAAO,EAAC;;;;;;;;;;;;;;;;ACrGW;AAElC;;;;;;CAMC,GACD,MAAMlL,sBAAsB,GAAG,CAACuN,WAAmB,EAAEC,MAA+B,GAAK;IACvF7N,gDAAS,CAAC,IAAM;QACd,IAAI,KAA6B,EAAE,EAYlC;IACH,CAAC,EAAE;QAAC4N,WAAW;QAAEC,MAAM;KAAC,CAAC,CAAC;AAC5B,CAAC;AAED,iEAAexN,sBAAsB,EAAC;;;;;;;;;;;;;;;;;AC3BU;AAGhD,MAAMoO,cAAc,GAAG,CAACzI,GAAW,GAAK,CAAC,GAAG,EAAEA,GAAG,CAAC,CAAC;AAE5C,MAAM0I,0BAA0B,GAAG,CAAC3P,MAAc,GACvDyP,uEAAO,CAACC,cAAc,CAAC,CAAC,MAAM,EAAE1P,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAE5C,MAAM4P,iBAAiB,GAAG,CAACC,YAAoB,GACpDJ,uEAAO,CAACC,cAAc,CAAC,CAAC,MAAM,EAAEG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnD,MAAMC,qBAAqB,GAAG,CAACD,YAAoB,GACxDJ,uEAAO,CAACC,cAAc,CAAC,CAAC,MAAM,EAAEG,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAExD,MAAMjP,yBAAyB,GAAG,CAACkO,MAAyC,GACjFW,uEAAO,CAACC,cAAc,CAAC,OAAO,CAAC,EAAEZ,MAAM,CAAQ,CAAC;AAE3C,MAAMiB,gCAAgC,GAAG,CAACC,UAAkB,GACjEP,uEAAO,CAACC,cAAc,CAAC,CAAC,iBAAiB,EAAEM,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;AClB5D,oDAAoD,GACpD,kBAAkB,GAClB,cAAc;AAEd,sFAAsF;AAEtF,SAASxQ,QAAQ,CAACyQ,MAAM,EAAEC,SAAS,EAAE7U,OAAO,EAAG;IAC7C,MAAM8U,YAAY,GAAG,EAAE;IACvB,MAAMC,YAAY,GAAG,EAAE;IACvB,MAAMC,uBAAuB,GAAG,KAAK;IACrC,MAAMC,YAAY,GAAGJ,SAAS,GAAG,EAAE,GAAGA,SAAS,GAAG,EAAE;IACpD,MAAMK,YAAY,GAAG;QAAC,KAAK;QAAE,IAAI;KAAC,EAAE,kBAAkB;IACtD,MAAMxN,KAAK,GAAG,EAAE,EAAE,wBAAwB;IAC1C,IAAIyN,KAAK,GAAG,CAAC,EAAE,8CAA8C;IAC7D,IAAIpW,OAAO,GAAGgW,YAAY,EAAE,yBAAyB;IACrD,MAAMK,eAAe,GAAG,iCAAiC;IACzD,MAAMC,cAAc,GAAG,cAAc;IACrC,MAAMC,WAAW,GAAG,aAAa;IACjC,MAAMC,gBAAgB,GAAG,IAAIC,MAAM,CAAC,CAAC,aAAa,EAAEJ,eAAe,CAAC,EAAEE,WAAW,CAAC,CAAC,CAAC,CAAC;IACrF,MAAMG,cAAc,GAAG,IAAID,MAAM,CAAC,CAAC,aAAa,EAAEJ,eAAe,CAAC,EAAEC,cAAc,CAAC,CAAC,CAAC,CAAC;IACtF,MAAMK,SAAS,uGACuF,EAAE,gBAAgB;IACxH,MAAMC,eAAe,GAAG,IAAIH,MAAM,CAAC,CAAC,QAAQ,EAAEJ,eAAe,CAAC,EAAEC,cAAc,CAAC,CAAC,CAAC,CAAC;IAClF,MAAMO,gBAAgB,GAAG,IAAIJ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAChD,IAAIK,OAAO,GAAG,IAAI;IAClB,IAAIC,MAAM;IACV,IAAI3X,KAAK;IACT,IAAI4X,IAAI;IACR,IAAIzK,GAAG;IACP,IAAI0K,SAAS;IAEb;;;;;;;GAOC,GACD,SAASC,eAAe,CAACrB,MAAM,EAAE;QAC/B,MAAMsB,KAAK,GAAGP,eAAe,CAACQ,IAAI,CAACvB,MAAM,CAAC;QAC1C,IAAIzW,KAAK;QACT,IAAIiY,GAAG;QAEP,IAAI,CAACF,KAAK,EAAE;YACV,OAAOtB,MAAM,CAAC;QAChB,CAAC;QAEDzW,KAAK,GAAG+X,KAAK,CAAC/X,KAAK,CAAC;QACpBiY,GAAG,GAAGF,KAAK,CAAC,CAAC,CAAC,CAACja,MAAM,CAAC;QAEtB,OAAO2Y,MAAM,CAACyB,SAAS,CAAC,CAAC,EAAElY,KAAK,CAAC,GAAGyW,MAAM,CAACyB,SAAS,CAAClY,KAAK,GAAGiY,GAAG,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;;GAOC,GACD,SAASE,aAAa,CAACC,IAAI,EAAE;QAC3B,IAAIC,IAAI,GAAG,EAAE;QAEbD,IAAI,CAACE,OAAO,EAAE,CAAC7C,OAAO,CAAC,CAACtI,GAAG,EAAEnN,KAAK,GAAK;YACrC,8BAA8B;YAC9B,IAAI+W,YAAY,CAACpJ,OAAO,CAACR,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBACpCkL,IAAI,IAAI,CAAC,EAAE,EAAElL,GAAG,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAOkL,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;GAOC,GACD,SAASE,OAAO,CAAC9B,MAAM,EAAE;QACvB,IAAImB,IAAI,GAAGnB,MAAM,CAAC9I,OAAO,CAAC,GAAG,CAAC;QAE9B,QAAQ;QACR,mEAAmE;QACnE,IAAIiK,IAAI,KAAK,CAAC,CAAC,EAAE;YACfA,IAAI,GAAGnB,MAAM,CAAC9I,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAIiK,IAAI,KAAK,CAAC,CAAC,EAAE;gBACf,MAAM,IAAI/U,KAAK,CAAC,CAAC,8BAA8B,EAAE4T,MAAM,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,OAAOA,MAAM,CAACyB,SAAS,CAAC,CAAC,EAAEN,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;GAWC,GACD,SAASY,eAAe,CAAC/B,MAAM,EAAEgC,OAAO,EAAE;QACxC,MAAMC,UAAU,GAAGhC,SAAS,GAAGM,KAAK;QACpC,IAAI2B,QAAQ,GAAGD,UAAU;QACzB,MAAME,OAAO,GAAGF,UAAU,GAAG7W,OAAO,CAACgX,IAAI;QACzC,MAAMC,OAAO,GAAGF,OAAO,GAAGF,UAAU,GAAG7W,OAAO,CAACgX,IAAI,GAAG,CAAC;QACvD,IAAIE,MAAM;QACV,MAAMC,UAAU,GAAGJ,OAAO,GAAG,CAAC,GAAGF,UAAU,GAAG7W,OAAO,CAACgX,IAAI;QAC1D,MAAMI,QAAQ,GAAGR,OAAO,IAAIC,UAAU,GAAG7W,OAAO,CAACgX,IAAI;QACrD,IAAIlB,MAAM;QAEV,IAAI,CAAC9V,OAAO,CAACqX,gBAAgB,EAAE;YAC7BH,MAAM,GAAGtC,MAAM,CAAC5I,KAAK,CAACmL,UAAU,EAAEC,QAAQ,CAAC,CAAC;YAE5C,IAAIR,OAAO,IAAIM,MAAM,CAACjb,MAAM,IAAI2a,OAAO,EAAE;gBACvCE,QAAQ,GAAGI,MAAM,CAACjb,MAAM,CAAC;YAC3B,OAAO;gBACL,MAAO,CAAC6Z,MAAM,GAAGF,gBAAgB,CAACO,IAAI,CAACe,MAAM,CAAC,MAAM,IAAI,CAAE;oBACxD,0DAA0D;oBAC1D,IAAIpB,MAAM,CAAC3X,KAAK,GAAG8Y,OAAO,EAAE;wBAC1BH,QAAQ,GAAGD,UAAU,GAAII,CAAAA,OAAO,GAAGnB,MAAM,CAAC3X,KAAK,EAAE;wBACjD,iDAAiD;wBACjD,0CAA0C;wBAC1C,IAAI2X,MAAM,CAAC3X,KAAK,KAAK,CAAC,IAAI0Y,UAAU,IAAI,CAAC,EAAE,MAAM;oBACnD,OAEK,IAAIf,MAAM,CAAC3X,KAAK,KAAK8Y,OAAO,EAAE;wBACjCH,QAAQ,GAAGD,UAAU,CAAC;wBACtB,MAAM,CAAC,eAAe;oBACxB,OAEK;wBACHC,QAAQ,GAAGD,UAAU,GAAIf,CAAAA,MAAM,CAAC3X,KAAK,GAAG8Y,OAAO,EAAE;wBACjD,MAAM,CAAC,eAAe;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAIrC,MAAM,CAAC0C,MAAM,CAACR,QAAQ,GAAG,CAAC,CAAC,CAACZ,KAAK,OAAO,EAAEY,QAAQ,EAAE,CAAC;QAC3D,CAAC;QACD,OAAOA,QAAQ,CAAC;IAClB,CAAC;IAED9W,OAAO,GAAGA,OAAO,IAAI8U,YAAY,CAAC;IAClC9U,OAAO,CAACuX,QAAQ,GAAG3N,SAAS,KAAK5J,OAAO,CAACuX,QAAQ,GAAGvX,OAAO,CAACuX,QAAQ,GAAGvC,uBAAuB,CAAC;IAC/FhV,OAAO,CAACqX,gBAAgB,GACtBzN,SAAS,KAAK5J,OAAO,CAACqX,gBAAgB,GAAGrX,OAAO,CAACqX,gBAAgB,GAAG,IAAI,CAAC;IAC3ErX,OAAO,CAACgX,IAAI,GAAGpN,SAAS,KAAK5J,OAAO,CAACgX,IAAI,GAAGhX,OAAO,CAACgX,IAAI,GAAG/B,YAAY,CAAC;IAExE,MAAOY,OAAO,CAAE;QACdA,OAAO,GAAGJ,cAAc,CAACU,IAAI,CAACvB,MAAM,CAAC,CAAC;QAEtC,IAAI,CAACiB,OAAO,EAAE;YACZ,IAAIV,KAAK,IAAIN,SAAS,EAAE;gBACtB,MAAM;YACR,CAAC;YAEDgB,OAAO,GAAGH,SAAS,CAACS,IAAI,CAACvB,MAAM,CAAC,CAAC;YACjC,IAAI,CAACiB,OAAO,IAAIA,OAAO,CAAC1X,KAAK,IAAI0W,SAAS,EAAE;gBAC1C9V,OAAO,IAAI6V,MAAM,CAACyB,SAAS,CAAC,CAAC,EAAEM,eAAe,CAAC/B,MAAM,CAAC,CAAC,CAAC;gBACxD,MAAM;YACR,CAAC;YAED,MAAOiB,OAAO,CAAE;gBACdC,MAAM,GAAGD,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpB1X,KAAK,GAAG0X,OAAO,CAAC1X,KAAK,CAAC;gBACtBY,OAAO,IAAI6V,MAAM,CAACyB,SAAS,CAAC,CAAC,EAAElY,KAAK,GAAG2X,MAAM,CAAC7Z,MAAM,GAAGkZ,KAAK,CAAC,CAAC;gBAC9DP,MAAM,GAAGA,MAAM,CAACyB,SAAS,CAAClY,KAAK,GAAG2X,MAAM,CAAC7Z,MAAM,CAAC,CAAC;gBACjD4Z,OAAO,GAAGH,SAAS,CAACS,IAAI,CAACvB,MAAM,CAAC,CAAC;YACnC,CAAC;YACD,MAAM;QACR,CAAC;QAEDkB,MAAM,GAAGD,OAAO,CAAC,CAAC,CAAC,CAAC;QACpB1X,KAAK,GAAG0X,OAAO,CAAC1X,KAAK,CAAC;QAEtB,IAAIgX,KAAK,GAAGhX,KAAK,GAAG0W,SAAS,EAAE;YAC7B,2DAA2D;YAC3D9V,OAAO,IAAI6V,MAAM,CAACyB,SAAS,CAAC,CAAC,EAAEM,eAAe,CAAC/B,MAAM,EAAEzW,KAAK,CAAC,CAAC,CAAC;YAC/D,MAAM;QACR,OAAO;YACLgX,KAAK,IAAIhX,KAAK,CAAC;YACfY,OAAO,IAAI6V,MAAM,CAACyB,SAAS,CAAC,CAAC,EAAElY,KAAK,CAAC,CAAC;QACxC,CAAC;QAED,IAAI2X,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACrB,oBAAoB;YACpBpO,KAAK,CAAC8P,GAAG,EAAE,CAAC;YACZxB,SAAS,GAAG,IAAI,CAAC;QACnB,OAAO;YACLA,SAAS,GAAGT,gBAAgB,CAACY,IAAI,CAACL,MAAM,CAAC,CAAC;YAC1C,IAAI,CAACE,SAAS,EAAE;gBACd1K,GAAG,GAAGoL,OAAO,CAACZ,MAAM,CAAC,CAAC;gBAEtBpO,KAAK,CAAC+P,IAAI,CAACnM,GAAG,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI0K,SAAS,EAAE;YACbjX,OAAO,IAAIiX,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,OAAO;YACLjX,OAAO,IAAI+W,MAAM,CAAC;QACpB,CAAC;QACDlB,MAAM,GAAGA,MAAM,CAACyB,SAAS,CAAClY,KAAK,GAAG2X,MAAM,CAAC7Z,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,IAAI2Y,MAAM,CAAC3Y,MAAM,GAAG4Y,SAAS,GAAGM,KAAK,IAAInV,OAAO,CAACuX,QAAQ,EAAE;QACzDxY,OAAO,IAAIiB,OAAO,CAACuX,QAAQ,CAAC;IAC9B,CAAC;IACDxY,OAAO,IAAIuX,aAAa,CAAC5O,KAAK,CAAC,CAAC;IAEhC,IAAI,CAAC1H,OAAO,CAAC0X,YAAY,EAAE;QACzB3Y,OAAO,GAAGkX,eAAe,CAAClX,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,OAAOA,OAAO,CAAC;AACjB,CAAC;AAED,iEAAeoF,QAAQ,EAAC;;;;;;;;;;;;AClOxB,mBAGC;UAHIlD,eAAe;IAAfA,eAAe,CAClBQ,QAAM,IAAG,QAAQ;IADdR,eAAe,CAElBU,QAAM,IAAG,QAAQ;GAFdV,eAAe,KAAfA,eAAe;AAKpB,iEAAeA,eAAe,EAAC;;;;;;;;;ACL/B;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA","sources":["webpack://quran.com/src/pages/notes-and-reflections/index.tsx","webpack://quran.com/sentry-wrapper-module","webpack://quran.com/./public/icons/chat.svg","webpack://quran.com/./public/icons/collection.svg","webpack://quran.com/./public/icons/developers.svg","webpack://quran.com/./public/icons/love.svg","webpack://quran.com/./public/icons/plus.svg","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/MyPrivateNotesTab/MyPrivateNotesTab.module.scss","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/MyPrivateNotesTab/NotesList/NotesList.module.scss","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/MyPrivateNotesTab/NotesList/NotesListItem/NotesListItem.module.scss","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/MyPrivateNotesTab/NotesSorter/NotesSorter.module.scss","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/MyPublicReflectionsTab/MyPublicReflectionsTab.module.scss","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/MyPublicReflectionsTab/UserPublicReflectionsList/ReflectionsTabIntroduction/ReflectionsTabIntroduction.module.scss","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/MyPublicReflectionsTab/UserPublicReflectionsList/UserPublicReflectionsList.module.scss","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/MyPublicReflectionsTab/UserPublicReflectionsList/UserPublicReflectionsListItem/UserPublicReflectionsListItem.module.scss","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/TabSwitcherItem/TabSwitcherItem.module.scss","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/Tabs.module.scss","webpack://quran.com/./src/components/QuranReflect/ReflectionModal/ReflectionModal.module.scss","webpack://quran.com/./src/components/QuranReflect/ReflectionModal/ReflectionSocialInteractions/ReflectionSocialInteractions.module.scss","webpack://quran.com/./src/components/QuranReflect/ReflectionReferences/ReflectionReferences.module.scss","webpack://quran.com/./src/components/Verse/VerseAndTranslation.module.scss","webpack://quran.com/./src/components/dls/ContentModal/ContentModal.module.scss","webpack://quran.com/./src/components/dls/Popover/Popover.module.scss","webpack://quran.com/./src/pages/index.module.scss","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/MyPrivateNotesTab/NotesList/NotesListItem/index.tsx","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/MyPrivateNotesTab/NotesList/index.tsx","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/MyPrivateNotesTab/NotesSorter/NotesSorter.tsx","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/MyPrivateNotesTab/index.tsx","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/MyPublicReflectionsTab/UserPublicReflectionsList/ReflectionsTabIntroduction/index.tsx","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/MyPublicReflectionsTab/UserPublicReflectionsList/UserPublicReflectionsListItem/index.tsx","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/MyPublicReflectionsTab/UserPublicReflectionsList/index.tsx","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/MyPublicReflectionsTab/index.tsx","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/TabSwitcherItem/index.tsx","webpack://quran.com/./src/components/Notes/NotesPage/Tabs/index.tsx","webpack://quran.com/./src/components/QuranReflect/ReflectionModal/ReflectionSocialInteractions/index.tsx","webpack://quran.com/./src/components/QuranReflect/ReflectionModal/index.tsx","webpack://quran.com/./src/components/QuranReflect/ReflectionReferenceIndicator/index.tsx","webpack://quran.com/./src/components/QuranReflect/ReflectionReferences/index.tsx","webpack://quran.com/./src/utils/quranReflect/bodyParser.ts","webpack://quran.com/./src/components/QuranReflect/hooks/useReflectionBodyParser.ts","webpack://quran.com/./src/components/Verse/VerseAndTranslation.tsx","webpack://quran.com/./src/components/dls/ContentModal/ContentModal.tsx","webpack://quran.com/./src/components/dls/Popover/HoverablePopover/index.tsx","webpack://quran.com/./src/components/dls/Popover/index.tsx","webpack://quran.com/./src/hooks/useAddQueryParamsToUrl.ts","webpack://quran.com/./src/utils/auth/qf/apiPaths.ts","webpack://quran.com/./src/utils/html-truncate.ts","webpack://quran.com/./types/NotesSortOptions.ts","webpack://quran.com/external commonjs \"@reduxjs/toolkit\"","webpack://quran.com/external commonjs \"@sentry/nextjs\"","webpack://quran.com/external commonjs \"classnames\"","webpack://quran.com/external commonjs \"humps\"","webpack://quran.com/external commonjs \"lodash/capitalize\"","webpack://quran.com/external commonjs \"lodash/findKey\"","webpack://quran.com/external commonjs \"lodash/groupBy\"","webpack://quran.com/external commonjs \"lodash/isArray\"","webpack://quran.com/external commonjs \"lodash/random\"","webpack://quran.com/external commonjs \"lodash/range\"","webpack://quran.com/external commonjs \"next-seo\"","webpack://quran.com/external commonjs \"next-translate/Trans\"","webpack://quran.com/external commonjs \"next-translate/useTranslation\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/app-router-context.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/head-manager-context.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/i18n/detect-domain-locale.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/i18n/normalize-locale-path.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/is-plain-object.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/mitt.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/page-path/denormalize-page-path.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router-context.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/add-locale.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/add-path-prefix.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/compare-states.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/format-next-pathname-info.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/format-url.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/get-asset-path-from-route.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/get-next-pathname-info.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/is-bot.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/is-dynamic.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/parse-path.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/parse-relative-url.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/path-has-prefix.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/querystring.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/remove-trailing-slash.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/resolve-rewrites.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/route-matcher.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/router/utils/route-regex.js\"","webpack://quran.com/external commonjs \"next/dist/shared/lib/utils.js\"","webpack://quran.com/external commonjs \"next/router\"","webpack://quran.com/external commonjs \"react\"","webpack://quran.com/external commonjs \"react-redux\"","webpack://quran.com/external commonjs \"react-virtuoso\"","webpack://quran.com/external commonjs \"react/jsx-runtime\"","webpack://quran.com/external commonjs \"refresh-fetch\"","webpack://quran.com/external module \"@radix-ui/react-checkbox\"","webpack://quran.com/external module \"@radix-ui/react-collapsible\"","webpack://quran.com/external module \"@radix-ui/react-dialog\"","webpack://quran.com/external module \"@radix-ui/react-dropdown-menu\"","webpack://quran.com/external module \"@radix-ui/react-popover\"","webpack://quran.com/external module \"@radix-ui/react-radio-group\"","webpack://quran.com/external module \"@radix-ui/react-tooltip\"","webpack://quran.com/external module \"@radix-ui/react-visually-hidden\"","webpack://quran.com/external module \"firebase/compat/analytics\"","webpack://quran.com/external module \"firebase/compat/app\"","webpack://quran.com/external module \"js-cookie\"","webpack://quran.com/external module \"react-hook-form\"","webpack://quran.com/external module \"react-toastify\"","webpack://quran.com/external module \"swr\"","webpack://quran.com/external module \"swr/immutable\"","webpack://quran.com/external module \"swr/infinite\"","webpack://quran.com/external node-commonjs \"querystring\""],"sourcesContent":["/* eslint-disable max-lines */\n\nimport { GetStaticProps } from 'next';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport withAuth from '@/components/Auth/withAuth';\nimport NextSeoWrapper from '@/components/NextSeoWrapper';\nimport NotesTabs from '@/components/Notes/NotesPage/Tabs';\nimport layoutStyles from '@/pages/index.module.scss';\nimport { getAllChaptersData } from '@/utils/chapter';\nimport { getLanguageAlternates } from '@/utils/locale';\nimport { getCanonicalUrl, getNotesNavigationUrl } from '@/utils/navigation';\n\nconst NotesAndReflectionsPage = () => {\n const { t, lang } = useTranslation();\n const navigationUrl = getNotesNavigationUrl();\n\n return (\n <>\n <NextSeoWrapper\n title={t('common:notes.title')}\n canonical={getCanonicalUrl(lang, navigationUrl)}\n languageAlternates={getLanguageAlternates(navigationUrl)}\n nofollow\n noindex\n />\n <div className={layoutStyles.pageContainer}>\n <div className={layoutStyles.flow}>\n <div className={layoutStyles.flowItem}>\n <NotesTabs />\n </div>\n </div>\n </div>\n </>\n );\n};\n\nexport const getStaticProps: GetStaticProps = async ({ locale }) => {\n const allChaptersData = await getAllChaptersData(locale);\n\n return {\n props: {\n chaptersData: allChaptersData,\n },\n };\n};\n\nexport default withAuth(NotesAndReflectionsPage);\n","import * as Sentry from '@sentry/nextjs';\nimport * as serverComponentModule from '__SENTRY_WRAPPING_TARGET_FILE__.cjs';\nexport * from '__SENTRY_WRAPPING_TARGET_FILE__.cjs';\n\n/*\n * This file is a template for the code which will be substituted when our webpack loader handles non-API files in the\n * `pages/` directory.\n *\n * We use `__SENTRY_WRAPPING_TARGET_FILE__.cjs` as a placeholder for the path to the file being wrapped. Because it's not a real package,\n * this causes both TS and ESLint to complain, hence the pragma comments below.\n */\n\nconst userPageModule = serverComponentModule ;\n\nconst pageComponent = userPageModule ? userPageModule.default : undefined;\n\nconst origGetInitialProps = pageComponent ? pageComponent.getInitialProps : undefined;\nconst origGetStaticProps = userPageModule ? userPageModule.getStaticProps : undefined;\nconst origGetServerSideProps = userPageModule ? userPageModule.getServerSideProps : undefined;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst getInitialPropsWrappers = {\n '/_app': Sentry.wrapAppGetInitialPropsWithSentry,\n '/_document': Sentry.wrapDocumentGetInitialPropsWithSentry,\n '/_error': Sentry.wrapErrorGetInitialPropsWithSentry,\n};\n\nconst getInitialPropsWrapper = getInitialPropsWrappers['/notes-and-reflections'] || Sentry.wrapGetInitialPropsWithSentry;\n\nif (pageComponent && typeof origGetInitialProps === 'function') {\n pageComponent.getInitialProps = getInitialPropsWrapper(origGetInitialProps) ;\n}\n\nconst getStaticProps =\n typeof origGetStaticProps === 'function'\n ? Sentry.wrapGetStaticPropsWithSentry(origGetStaticProps, '/notes-and-reflections')\n : undefined;\nconst getServerSideProps =\n typeof origGetServerSideProps === 'function'\n ? Sentry.wrapGetServerSidePropsWithSentry(origGetServerSideProps, '/notes-and-reflections')\n : undefined;\n\nconst pageWrapperTemplate = pageComponent ? Sentry.wrapPageComponentWithSentry(pageComponent ) : pageComponent;\n\nexport { pageWrapperTemplate as default, getServerSideProps, getStaticProps };\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgChat = function SvgChat(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.379 8.379 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5Z\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n};\nexport default SvgChat;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCollection = function SvgCollection(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.89 0H3.454C2.581 0 2 .581 2 1.453v20.344c0 .872.581 1.453 1.453 1.453h17.438c.872 0 1.453-.581 1.453-1.453V1.453C22.344.581 21.762 0 20.89 0ZM6.36 18.89c-.873 0-1.454-.58-1.454-1.453 0-.871.582-1.453 1.453-1.453.872 0 1.454.582 1.454 1.454 0 .871-.582 1.453-1.454 1.453Zm0-5.812c-.873 0-1.454-.581-1.454-1.453 0-.872.582-1.453 1.453-1.453.872 0 1.454.581 1.454 1.453 0 .872-.582 1.453-1.454 1.453Zm0-5.812c-.873 0-1.454-.582-1.454-1.454 0-.871.582-1.453 1.453-1.453.872 0 1.454.582 1.454 1.454 0 .871-.582 1.453-1.454 1.453Zm13.078 2.906h-8.72v-4.36h8.72v4.36Z\",\n fill: \"currentColor\"\n })));\n};\nexport default SvgCollection;","var _g, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgDevelopers = function SvgDevelopers(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#a)\",\n fill: \"currentColor\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.844 1H.969A.97.97 0 0 0 0 1.969v19.375a.97.97 0 0 0 .969.968h3.875V1ZM6.781 1v21.313h15.5a.97.97 0 0 0 .969-.97V1.97A.97.97 0 0 0 22.281 1h-15.5Zm3.875 3.875h2.906v1.938h-2.906V4.875Zm2.906 13.563h-2.906V16.5h2.906v1.938Zm2.907-3.875h-3.875v-1.938h3.875v1.938Zm2.906-3.876h-5.813V8.75h5.813v1.938Z\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"a\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M0 0h23.25v23.25H0z\"\n })))));\n};\nexport default SvgDevelopers;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLove = function SvgLove(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n className: \"feather feather-heart\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"\n })));\n};\nexport default SvgLove;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPlus = function SvgPlus(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 15,\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 2.75a.5.5 0 0 0-1 0V7H2.75a.5.5 0 0 0 0 1H7v4.25a.5.5 0 0 0 1 0V8h4.25a.5.5 0 0 0 0-1H8V2.75Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgPlus;","// Exports\nmodule.exports = {\n\t\"loadingContainer\": \"MyPrivateNotesTab_loadingContainer__d6rhd\",\n\t\"sorterContainer\": \"MyPrivateNotesTab_sorterContainer__pYPAf\",\n\t\"sorterInnerContainer\": \"MyPrivateNotesTab_sorterInnerContainer__xPtII\",\n\t\"text\": \"MyPrivateNotesTab_text__UcT7z\"\n};\n","// Exports\nmodule.exports = {\n\t\"notesListContainer\": \"NotesList_notesListContainer__HOvUN\",\n\t\"emptyNotesContainer\": \"NotesList_emptyNotesContainer__AVvkg\"\n};\n","// Exports\nmodule.exports = {\n\t\"note\": \"NotesListItem_note__yXqiP\",\n\t\"noteDate\": \"NotesListItem_noteDate__Rc6YB\",\n\t\"seeMore\": \"NotesListItem_seeMore__yewWc\",\n\t\"itemBody\": \"NotesListItem_itemBody__XYxrq\"\n};\n","// Exports\nmodule.exports = {\n\t\"sorter\": \"NotesSorter_sorter__WWWlL\",\n\t\"sortTrigger\": \"NotesSorter_sortTrigger__FH_V7\",\n\t\"itemIcon\": \"NotesSorter_itemIcon__R_TMP\"\n};\n","// Exports\nmodule.exports = {\n\t\"loadingContainer\": \"MyPublicReflectionsTab_loadingContainer__n85HV\"\n};\n","// Exports\nmodule.exports = {\n\t\"container\": \"ReflectionsTabIntroduction_container__PbD_C\",\n\t\"title\": \"ReflectionsTabIntroduction_title__63Caq\"\n};\n","// Exports\nmodule.exports = {\n\t\"notesListContainer\": \"UserPublicReflectionsList_notesListContainer__PeF9F\",\n\t\"emptyNotesContainer\": \"UserPublicReflectionsList_emptyNotesContainer__o30hX\"\n};\n","// Exports\nmodule.exports = {\n\t\"note\": \"UserPublicReflectionsListItem_note__hYmh5\",\n\t\"noteDate\": \"UserPublicReflectionsListItem_noteDate__KiBtY\",\n\t\"indicatorsContainer\": \"UserPublicReflectionsListItem_indicatorsContainer__GIk0H\",\n\t\"seeMore\": \"UserPublicReflectionsListItem_seeMore__UzzF2\",\n\t\"hashtag\": \"UserPublicReflectionsListItem_hashtag__NlvWq\",\n\t\"noteBody\": \"UserPublicReflectionsListItem_noteBody__ASZDZ\"\n};\n","// Exports\nmodule.exports = {\n\t\"container\": \"TabSwitcherItem_container__b7XGP\",\n\t\"value\": \"TabSwitcherItem_value__NJnY9\"\n};\n","// Exports\nmodule.exports = {\n\t\"container\": \"Tabs_container__6h1oV\",\n\t\"header\": \"Tabs_header__IhpVl\",\n\t\"titleContainer\": \"Tabs_titleContainer__grrtY\"\n};\n","// Exports\nmodule.exports = {\n\t\"headerContainer\": \"ReflectionModal_headerContainer__EJqwx\",\n\t\"noteHeaderContainer\": \"ReflectionModal_noteHeaderContainer__oE38x\",\n\t\"noteDate\": \"ReflectionModal_noteDate__gHr9a\",\n\t\"noteBody\": \"ReflectionModal_noteBody__qOQ3U\",\n\t\"hashtag\": \"ReflectionModal_hashtag__vo4NO\"\n};\n","// Exports\nmodule.exports = {\n\t\"socialInteractionContainer\": \"ReflectionSocialInteractions_socialInteractionContainer__M8M7_\",\n\t\"container\": \"ReflectionSocialInteractions_container__OH3l4\"\n};\n","// Exports\nmodule.exports = {\n\t\"headerContainer\": \"ReflectionReferences_headerContainer__gvcjY\"\n};\n","// Exports\nmodule.exports = {\n\t\"translationsListContainer\": \"VerseAndTranslation_translationsListContainer__n3W8A\",\n\t\"translationContainer\": \"VerseAndTranslation_translationContainer__h0X3S\",\n\t\"arabicVerseContainer\": \"VerseAndTranslation_arabicVerseContainer__VfIE8\",\n\t\"verseContainer\": \"VerseAndTranslation_verseContainer__nvg9w\"\n};\n","// Exports\nmodule.exports = {\n\t\"modalContainer\": \"ContentModal_modalContainer__i7bo0\",\n\t\"contentContainer\": \"ContentModal_contentContainer___ciX5\",\n\t\"overlay\": \"ContentModal_overlay__qZfQY\",\n\t\"contentWrapper\": \"ContentModal_contentWrapper__VaiRB\",\n\t\"autoHeight\": \"ContentModal_autoHeight__A3IW7\",\n\t\"medium\": \"ContentModal_medium__EKB5h\",\n\t\"small\": \"ContentModal_small__YBKtM\",\n\t\"fadeIn\": \"ContentModal_fadeIn__JGh_A\",\n\t\"fadeOut\": \"ContentModal_fadeOut__36m_B\",\n\t\"contentIn\": \"ContentModal_contentIn__EAwQw\",\n\t\"contentOut\": \"ContentModal_contentOut__2x8WN\",\n\t\"closeIcon\": \"ContentModal_closeIcon__xppin\",\n\t\"header\": \"ContentModal_header__384F2\",\n\t\"content\": \"ContentModal_content__9M2Iy\"\n};\n","// Exports\nmodule.exports = {\n\t\"container\": \"Popover_container__GOha0\",\n\t\"trigger\": \"Popover_trigger__qKXNN\",\n\t\"content\": \"Popover_content__gu5L4\",\n\t\"tooltipContent\": \"Popover_tooltipContent__AMPpT\"\n};\n","// Exports\nmodule.exports = {\n\t\"pageContainer\": \"index_pageContainer__Pxtn3\",\n\t\"loadingContainer\": \"index_loadingContainer__WEZFc\",\n\t\"flow\": \"index_flow__rCTR5\",\n\t\"flowItem\": \"index_flowItem__GnXWz\",\n\t\"additionalVerticalGap\": \"index_additionalVerticalGap__nzYz6\",\n\t\"fullWidth\": \"index_fullWidth__1n4ux\"\n};\n","import React from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './NotesListItem.module.scss';\n\nimport NoteRangesIndicator from '@/components/Notes/NoteModal/NoteRangesIndicator';\nimport { Note } from '@/types/auth/Note';\nimport { dateToReadableFormat } from '@/utils/datetime';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport { truncateString } from '@/utils/string';\n\ninterface NotesListItemProps {\n note: Note;\n setSelectedNoteId: (noteId: string) => void;\n}\n\nconst MAX_BODY_SIZE = 250;\n\nconst NotesListItem: React.FC<NotesListItemProps> = ({ note, setSelectedNoteId }) => {\n const { lang, t } = useTranslation('notes');\n\n const onNoteClicked = (noteId: string) => {\n logButtonClick('note_list_item', {\n noteId,\n });\n setSelectedNoteId(noteId);\n };\n\n return (\n <div\n className={styles.note}\n key={note.id}\n role=\"button\"\n tabIndex={0}\n onClick={() => onNoteClicked(note.id)}\n onKeyDown={() => onNoteClicked(note.id)}\n >\n <NoteRangesIndicator ranges={note.ranges} />\n <p className={styles.itemBody}>\n {truncateString(note.body, MAX_BODY_SIZE, '...')}\n {note.body.length > MAX_BODY_SIZE && (\n <span className={styles.seeMore}>{` ${t('click-to-see-more')}`}</span>\n )}\n </p>\n <time className={styles.noteDate} dateTime={note.createdAt.toString()}>\n {dateToReadableFormat(note.createdAt, lang, {\n year: 'numeric',\n })}\n </time>\n </div>\n );\n};\n\nexport default NotesListItem;\n","import { useMemo, useState } from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\nimport { Virtuoso } from 'react-virtuoso';\n\nimport styles from './NotesList.module.scss';\nimport NotesListItem from './NotesListItem';\n\nimport NoteModal from '@/components/Notes/NoteModal';\nimport Spinner, { SpinnerSize } from '@/dls/Spinner/Spinner';\nimport { GetAllNotesResponse } from '@/types/auth/Note';\n\ninterface NotesListProps {\n data: GetAllNotesResponse[];\n isValidating: boolean;\n size: number;\n setSize: (size: number) => void;\n mutateCache: (data: any) => void;\n}\n\nconst NotesList = ({ data, isValidating, size, setSize, mutateCache }: NotesListProps) => {\n const { t } = useTranslation();\n const [selectedNoteId, setSelectedNoteId] = useState<string | null>(null); // for the note modal\n\n const lastPageData = data[data.length - 1];\n const { hasNextPage } = lastPageData.pagination;\n\n const notes = useMemo(() => {\n return data ? data.map((response) => response.data).flat() : [];\n }, [data]);\n\n const isLoading = !data && isValidating;\n const isLoadingMoreData = notes?.length > 0 && size > 1 && isValidating;\n const isEmpty = !isLoading && notes.length === 0;\n\n const loadMore = () => {\n if (!hasNextPage || isValidating) return;\n setSize(size + 1);\n };\n\n const renderNote = (index: number, note: (typeof notes)[number]) => {\n return <NotesListItem key={note.id} note={note} setSelectedNoteId={setSelectedNoteId} />;\n };\n\n const onNoteDeleted = () => {\n const noteId = selectedNoteId;\n // remove the note from the cache\n mutateCache((cachedPages: GetAllNotesResponse[]) => {\n const newPages = cachedPages;\n\n for (let i = 0; i < newPages.length; i += 1) {\n const page = newPages[i];\n const newData = page.data.filter((note) => note.id !== noteId);\n\n if (newData.length !== page.data.length) {\n newPages[i] = {\n ...page,\n data: newData,\n };\n break;\n }\n }\n\n return newPages;\n });\n };\n\n const onNoteUpdated = (updatedNote) => {\n const noteId = selectedNoteId;\n\n // update the note in the cache\n mutateCache((cachedPages: GetAllNotesResponse[]) => {\n const newPages = cachedPages;\n\n for (let i = 0; i < newPages.length; i += 1) {\n const page = newPages[i];\n const noteIdx = page.data.findIndex((note) => note.id === noteId);\n\n if (noteIdx !== -1) {\n const newData = [...page.data];\n newData[noteIdx] = updatedNote;\n\n newPages[i] = {\n ...page,\n data: newData,\n };\n break;\n }\n }\n\n return newPages;\n });\n };\n\n let content = null;\n if (isLoadingMoreData || isLoading) {\n content = <Spinner size={SpinnerSize.Large} />;\n } else if (isEmpty) {\n content = (\n <div className={styles.emptyNotesContainer}>\n <span>{t('notes:empty-notes')}</span>\n </div>\n );\n }\n\n return (\n <>\n {selectedNoteId && (\n <NoteModal\n isOpen\n onClose={() => setSelectedNoteId(null)}\n noteId={selectedNoteId}\n onNoteDeleted={onNoteDeleted}\n onNoteUpdated={onNoteUpdated}\n />\n )}\n\n <Virtuoso\n data={notes}\n overscan={10}\n increaseViewportBy={{ top: 10, bottom: 10 }}\n className={styles.notesListContainer}\n endReached={loadMore}\n itemContent={renderNote}\n useWindowScroll\n />\n\n {content}\n </>\n );\n};\n\nexport default NotesList;\n","import styles from './NotesSorter.module.scss';\n\nimport PopoverMenu from '@/dls/PopoverMenu/PopoverMenu';\nimport ChevronDownIcon from '@/icons/chevron-down.svg';\nimport { logEvent } from '@/utils/eventLogger';\n\nconst NotesSorter = ({ options, selectedOptionId, onChange }) => {\n const selectedOption = options.find((option) => option.id === selectedOptionId);\n\n const onOpenChange = (isOpen: boolean) => {\n if (isOpen) {\n logEvent('notes_sorter_opened');\n } else {\n logEvent('notes_sorter_closed');\n }\n };\n\n return (\n <div className={styles.sorter}>\n <PopoverMenu\n trigger={\n <span className={styles.sortTrigger}>\n {selectedOption.label}\n <span className={styles.itemIcon}>\n <ChevronDownIcon />\n </span>\n </span>\n }\n onOpenChange={onOpenChange}\n >\n {options.map((option) => (\n <PopoverMenu.Item\n shouldCloseMenuAfterClick\n key={option.id}\n onClick={() => onChange(option.id)}\n >\n {option.label}\n </PopoverMenu.Item>\n ))}\n </PopoverMenu>\n </div>\n );\n};\n\nexport default NotesSorter;\n","import { useState } from 'react';\n\nimport classNames from 'classnames';\nimport useTranslation from 'next-translate/useTranslation';\nimport useSWRInfinite from 'swr/infinite';\n\nimport styles from './MyPrivateNotesTab.module.scss';\n\nimport NotesList from '@/components/Notes/NotesPage/Tabs/MyPrivateNotesTab/NotesList';\nimport NotesSorter from '@/components/Notes/NotesPage/Tabs/MyPrivateNotesTab/NotesSorter/NotesSorter';\nimport Spinner, { SpinnerSize } from '@/dls/Spinner/Spinner';\nimport Error from '@/pages/_error';\nimport { GetAllNotesResponse } from '@/types/auth/Note';\nimport NotesSortOption from '@/types/NotesSortOptions';\nimport { privateFetcher } from '@/utils/auth/api';\nimport { makeNotesUrl } from '@/utils/auth/apiPaths';\nimport { isLoggedIn } from '@/utils/auth/login';\nimport { logValueChange } from '@/utils/eventLogger';\n\nconst PrivateNotes = () => {\n const [sortBy, setSortBy] = useState(NotesSortOption.Newest);\n\n const { t } = useTranslation();\n\n const sortOptions = [\n { id: NotesSortOption.Newest, label: t('common:newest') },\n { id: NotesSortOption.Oldest, label: t('common:oldest') },\n ];\n\n const onSortByChange = (newSortByVal) => {\n logValueChange('notes_page_sort_by', sortBy, newSortByVal);\n setSortBy(newSortByVal);\n };\n\n /**\n * Get the SWR key for cursor based pagination\n * - when the page index is still 0 (first fetch). get the bookmarkByCollection url without `cursor` param\n * - on the next fetch, add `cursor` to the parameters\n *\n * corner case\n * - when previous fetch contains empty data, stop fetching\n * - when the user is logged out, don't fetch the data\n *\n * Reference: https://swr.vercel.app/docs/pagination#useswrinfinite\n *\n * @returns {string} swr key\n */\n const getKey = (pageIndex: number, previousPageData: GetAllNotesResponse) => {\n if (!isLoggedIn() || (previousPageData && !previousPageData.data)) return null;\n if (pageIndex === 0) {\n return makeNotesUrl({\n sortBy,\n limit: 10,\n });\n }\n\n const { endCursor, hasNextPage } = previousPageData.pagination;\n\n if (!endCursor || !hasNextPage) return null;\n\n return makeNotesUrl({\n sortBy,\n cursor: endCursor,\n limit: 10,\n });\n };\n\n const { data, size, setSize, isValidating, error, mutate } = useSWRInfinite<GetAllNotesResponse>(\n getKey,\n (key) => {\n // append key to the response\n return privateFetcher(key).then((response) => {\n return {\n ...(response as any),\n key,\n };\n });\n },\n {\n revalidateOnFocus: false,\n revalidateFirstPage: false,\n revalidateOnMount: true,\n },\n );\n\n if (error) {\n return <Error statusCode={403} hasFullWidth={false} />;\n }\n\n if (!data) {\n return (\n <div className={classNames(styles.container, styles.loadingContainer)}>\n <Spinner shouldDelayVisibility size={SpinnerSize.Large} />\n </div>\n );\n }\n\n return (\n <>\n <div className={styles.sorterContainer}>\n <div className={styles.sorterInnerContainer}>\n <p className={styles.text}>{`${t('common:sort.by')}: `}</p>\n <NotesSorter options={sortOptions} selectedOptionId={sortBy} onChange={onSortByChange} />\n </div>\n </div>\n <NotesList\n data={data}\n isValidating={isValidating}\n size={size}\n setSize={setSize}\n mutateCache={mutate}\n />\n </>\n );\n};\n\nexport default PrivateNotes;\n","import React from 'react';\n\nimport Trans from 'next-translate/Trans';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './ReflectionsTabIntroduction.module.scss';\n\nimport Link, { LinkVariant } from '@/dls/Link/Link';\n\nconst ReflectionsTabIntroduction = () => {\n const { t } = useTranslation('notes');\n\n return (\n <div className={styles.container}>\n <div className={styles.title}>{t('reflections-intro.title')}</div>\n <ul>\n <li>\n <Trans\n components={{\n li: <li key={0} />,\n link: (\n <Link\n key={0}\n href=\"https://quranreflect.com\"\n variant={LinkVariant.Blend}\n isNewTab\n />\n ),\n }}\n i18nKey=\"notes:reflections-intro.line-1\"\n />\n </li>\n <li>{t('reflections-intro.line-2')}</li>\n <li>{t('reflections-intro.line-3')}</li>\n </ul>\n </div>\n );\n};\n\nexport default ReflectionsTabIntroduction;\n","import React from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './UserPublicReflectionsListItem.module.scss';\n\nimport useReflectionBodyParser from '@/components/QuranReflect/hooks/useReflectionBodyParser';\nimport ReflectionSocialInteractions from '@/components/QuranReflect/ReflectionModal/ReflectionSocialInteractions';\nimport ReflectionReferenceIndicator from '@/components/QuranReflect/ReflectionReferenceIndicator';\nimport AyahReflection from '@/types/QuranReflect/AyahReflection';\nimport { dateToReadableFormat } from '@/utils/datetime';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport truncate from '@/utils/html-truncate';\n\ninterface UserPublicReflectionsListItemProps {\n reflection: AyahReflection;\n setSelectedReflection: (reflection: AyahReflection) => void;\n}\n\nconst MAX_BODY_SIZE = 250;\n\nconst UserPublicReflectionsListItem: React.FC<UserPublicReflectionsListItemProps> = ({\n reflection,\n setSelectedReflection,\n}) => {\n const { lang, t } = useTranslation('notes');\n const formattedText = useReflectionBodyParser(reflection.body, styles.hashtag);\n\n const onReflectionClicked = (selectedReflection: AyahReflection) => {\n logButtonClick('public_reflection_list_item', {\n postId: selectedReflection.id,\n });\n setSelectedReflection(selectedReflection);\n };\n\n return (\n <div\n className={styles.note}\n key={reflection.id}\n role=\"button\"\n tabIndex={0}\n onClick={() => onReflectionClicked(reflection)}\n onKeyDown={() => onReflectionClicked(reflection)}\n >\n {reflection.references && (\n <div className={styles.indicatorsContainer}>\n {reflection.references.map((reference) => {\n return <ReflectionReferenceIndicator key={reference.surahId} reference={reference} />;\n })}\n </div>\n )}\n <p>\n <span\n className={styles.noteBody}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: truncate(formattedText, MAX_BODY_SIZE),\n }}\n />\n {reflection.body.length > MAX_BODY_SIZE && (\n <span className={styles.seeMore}>{` ${t('click-to-see-more')}`}</span>\n )}\n </p>\n <time className={styles.noteDate} dateTime={reflection.createdAt.toString()}>\n {dateToReadableFormat(reflection.createdAt, lang, {\n year: 'numeric',\n })}\n </time>\n <ReflectionSocialInteractions reflection={reflection} />\n </div>\n );\n};\n\nexport default UserPublicReflectionsListItem;\n","import { useMemo, useState } from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\nimport { Virtuoso } from 'react-virtuoso';\n\nimport ReflectionsTabIntroduction from './ReflectionsTabIntroduction';\nimport styles from './UserPublicReflectionsList.module.scss';\nimport UserPublicReflectionsListItem from './UserPublicReflectionsListItem';\n\nimport ReflectionModal from '@/components/QuranReflect/ReflectionModal';\nimport Spinner, { SpinnerSize } from '@/dls/Spinner/Spinner';\nimport GetUserReflectionsResponse from '@/types/auth/GetUserReflectionsResponse';\nimport AyahReflection from '@/types/QuranReflect/AyahReflection';\n\ninterface UserPublicReflectionsListProps {\n data: GetUserReflectionsResponse[];\n isValidating: boolean;\n size: number;\n setSize: (size: number) => void;\n}\n\nconst UserPublicReflectionsList = ({\n data,\n isValidating,\n size,\n setSize,\n}: UserPublicReflectionsListProps) => {\n const { t } = useTranslation('notes');\n const [selectedReflection, setSelectedReflection] = useState<AyahReflection | null>(null); // for the note modal\n\n const lastPageData = data[data.length - 1];\n const { hasNextPage } = lastPageData.pagination;\n\n const reflections = useMemo(() => {\n return data ? data.map((response) => response.data).flat() : [];\n }, [data]);\n\n const isLoading = !data && isValidating;\n const isLoadingMoreData = reflections?.length > 0 && size > 1 && isValidating;\n const isEmpty = !isLoading && reflections.length === 0;\n\n const loadMore = () => {\n if (!hasNextPage || isValidating) return;\n setSize(size + 1);\n };\n\n const renderReflection = (index: number, reflection: (typeof reflections)[number]) => {\n return (\n <UserPublicReflectionsListItem\n key={reflection.id}\n reflection={reflection}\n setSelectedReflection={setSelectedReflection}\n />\n );\n };\n\n let content = null;\n if (isLoadingMoreData || isLoading) {\n content = <Spinner size={SpinnerSize.Large} />;\n } else if (isEmpty) {\n content = (\n <div className={styles.emptyNotesContainer}>\n <span>{t('empty-reflections')}</span>\n </div>\n );\n }\n\n return (\n <>\n {selectedReflection && (\n <ReflectionModal\n isOpen\n onClose={() => setSelectedReflection(null)}\n reflection={selectedReflection}\n />\n )}\n\n <ReflectionsTabIntroduction />\n <Virtuoso\n data={reflections}\n overscan={10}\n increaseViewportBy={{ top: 10, bottom: 10 }}\n className={styles.notesListContainer}\n endReached={loadMore}\n itemContent={renderReflection}\n useWindowScroll\n />\n\n {content}\n </>\n );\n};\n\nexport default UserPublicReflectionsList;\n","import classNames from 'classnames';\nimport useSWRInfinite from 'swr/infinite';\n\nimport styles from './MyPublicReflectionsTab.module.scss';\n\nimport UserPublicReflectionsList from '@/components/Notes/NotesPage/Tabs/MyPublicReflectionsTab/UserPublicReflectionsList';\nimport Spinner, { SpinnerSize } from '@/dls/Spinner/Spinner';\nimport Error from '@/pages/_error';\nimport GetUserReflectionsResponse from '@/types/auth/GetUserReflectionsResponse';\nimport { privateFetcher } from '@/utils/auth/api';\nimport { isLoggedIn } from '@/utils/auth/login';\nimport { makeGetUserReflectionsUrl } from '@/utils/auth/qf/apiPaths';\n\nconst PublicReflections = () => {\n /**\n * Get the SWR key for cursor based pagination\n * - when the page index is still 0 (first fetch). get the bookmarkByCollection url without `cursor` param\n * - on the next fetch, add `cursor` to the parameters\n *\n * corner case\n * - when previous fetch contains empty data, stop fetching\n * - when the user is logged out, don't fetch the data\n *\n * Reference: https://swr.vercel.app/docs/pagination#useswrinfinite\n *\n * @returns {string} swr key\n */\n const getKey = (pageIndex: number, previousPageData: GetUserReflectionsResponse) => {\n if (!isLoggedIn() || (previousPageData && !previousPageData.data)) return null;\n const page = pageIndex + 1;\n if (pageIndex === 0) {\n return makeGetUserReflectionsUrl({\n page,\n });\n }\n\n const { hasNextPage } = previousPageData.pagination;\n\n if (!hasNextPage) return null;\n\n return makeGetUserReflectionsUrl({\n page,\n });\n };\n\n const { data, size, setSize, isValidating, error } = useSWRInfinite<GetUserReflectionsResponse>(\n getKey,\n (key) => {\n // append key to the response\n return privateFetcher(key).then((response) => {\n return {\n ...(response as any),\n key,\n };\n });\n },\n {\n revalidateOnFocus: false,\n revalidateFirstPage: false,\n revalidateOnMount: true,\n },\n );\n\n if (error) {\n return <Error statusCode={403} hasFullWidth={false} />;\n }\n\n if (!data) {\n return (\n <div className={classNames(styles.container, styles.loadingContainer)}>\n <Spinner shouldDelayVisibility size={SpinnerSize.Large} />\n </div>\n );\n }\n\n return (\n <UserPublicReflectionsList\n data={data}\n isValidating={isValidating}\n size={size}\n setSize={setSize}\n />\n );\n};\n\nexport default PublicReflections;\n","import React from 'react';\n\nimport styles from './TabSwitcherItem.module.scss';\n\ntype Props = {\n icon: JSX.Element;\n value: string;\n};\n\n// TODO: move this to a standalone component called Tabs\nconst TabSwitcherItem: React.FC<Props> = ({ icon, value }) => {\n return (\n <div className={styles.container}>\n {icon} <p className={styles.value}>{value}</p>\n </div>\n );\n};\n\nexport default TabSwitcherItem;\n","import React, { useEffect, useMemo, useState } from 'react';\n\nimport { useRouter } from 'next/router';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './Tabs.module.scss';\n\nimport PrivateNotesTab from '@/components/Notes/NotesPage/Tabs/MyPrivateNotesTab';\nimport PublicReflectionsTab from '@/components/Notes/NotesPage/Tabs/MyPublicReflectionsTab';\nimport TabSwitcherItem from '@/components/Notes/NotesPage/Tabs/TabSwitcherItem';\nimport Switch from '@/dls/Switch/Switch';\nimport useAddQueryParamsToUrl from '@/hooks/useAddQueryParamsToUrl';\nimport DetailsIcon from '@/icons/collection.svg';\nimport SyllabusIcon from '@/icons/developers.svg';\nimport { logEvent } from '@/utils/eventLogger';\nimport { getNotesNavigationUrl } from '@/utils/navigation';\n\nenum Tab {\n PRIVATE_NOTES = 'notes',\n PUBLIC_REFLECTIONS = 'reflections',\n}\n\nconst NotesTabs = () => {\n const { t } = useTranslation('notes');\n const router = useRouter();\n const [selectedTab, setSelectedTab] = useState(Tab.PRIVATE_NOTES);\n\n const queryParams = useMemo(\n () => ({\n tab: selectedTab,\n }),\n [selectedTab],\n );\n useAddQueryParamsToUrl(getNotesNavigationUrl(), queryParams);\n\n // listen to the query param to update the selected tab\n useEffect(() => {\n const queryTab = router.query.tab as Tab;\n // validate the query param is a valid tab value\n if (queryTab && Object.values(Tab).includes(queryTab)) {\n setSelectedTab(queryTab);\n }\n }, [router.query.tab]);\n\n const onTabChange = (value: Tab) => {\n logEvent('notes_page_tab_change', { value });\n setSelectedTab(value);\n };\n\n const tabs = useMemo(\n () => [\n {\n name: <TabSwitcherItem icon={<DetailsIcon />} value={t('private-notes')} />,\n value: Tab.PRIVATE_NOTES,\n },\n {\n name: <TabSwitcherItem icon={<SyllabusIcon />} value={t('posted-reflections')} />,\n value: Tab.PUBLIC_REFLECTIONS,\n },\n ],\n [t],\n );\n\n const tabComponents = useMemo(\n () => ({\n [Tab.PRIVATE_NOTES]: <PrivateNotesTab />,\n [Tab.PUBLIC_REFLECTIONS]: <PublicReflectionsTab />,\n }),\n [],\n );\n\n if (!router.isReady) {\n return <></>;\n }\n\n return (\n <div className={styles.container}>\n <div className={styles.header}>\n <div className={styles.titleContainer}>\n <h1>{t('common:notes.title')}</h1>\n </div>\n </div>\n <Switch selected={selectedTab} items={tabs} onSelect={onTabChange} />\n {tabComponents[selectedTab]}\n </div>\n );\n};\n\nexport default NotesTabs;\n","import React from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './ReflectionSocialInteractions.module.scss';\n\nimport Button, { ButtonSize, ButtonVariant } from '@/dls/Button/Button';\nimport ChatIcon from '@/icons/chat.svg';\nimport LoveIcon from '@/icons/love.svg';\nimport AyahReflection from '@/types/QuranReflect/AyahReflection';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport { toLocalizedNumber } from '@/utils/locale';\nimport { getQuranReflectPostUrl } from '@/utils/quranReflect/navigation';\n\ntype Props = {\n reflection: AyahReflection;\n};\n\nconst ReflectionSocialInteractions: React.FC<Props> = ({ reflection }) => {\n const { lang, t } = useTranslation('notes');\n\n const onLikesCountClicked = (e) => {\n e.stopPropagation();\n logButtonClick('reflection_likes', {\n postId: reflection.id,\n });\n };\n\n const onCommentsCountClicked = (e) => {\n e.stopPropagation();\n logButtonClick('reflection_comments', {\n postId: reflection.id,\n });\n };\n\n const onViewOnQrClicked = (e) => {\n e.stopPropagation();\n logButtonClick('posted_ref_view_on_qr', {\n postId: reflection.id,\n });\n };\n\n return (\n <div className={styles.container}>\n <div className={styles.socialInteractionContainer}>\n <Button\n className={styles.actionItemContainer}\n variant={ButtonVariant.Compact}\n href={getQuranReflectPostUrl(reflection.id)}\n isNewTab\n prefix={<LoveIcon />}\n size={ButtonSize.Small}\n onClick={onLikesCountClicked}\n shouldFlipOnRTL={false}\n >\n {toLocalizedNumber(reflection.likes, lang)}\n </Button>\n <Button\n className={styles.actionItemContainer}\n variant={ButtonVariant.Compact}\n prefix={<ChatIcon />}\n href={getQuranReflectPostUrl(reflection.id, true)}\n isNewTab\n size={ButtonSize.Small}\n onClick={onCommentsCountClicked}\n shouldFlipOnRTL={false}\n >\n {toLocalizedNumber(reflection.commentsCount, lang)}\n </Button>\n </div>\n <Button\n size={ButtonSize.Small}\n href={getQuranReflectPostUrl(reflection.id)}\n isNewTab\n onClick={onViewOnQrClicked}\n >\n {t('notes:view-on-qr')}\n </Button>\n </div>\n );\n};\n\nexport default ReflectionSocialInteractions;\n","import { useRef } from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './ReflectionModal.module.scss';\n\nimport useReflectionBodyParser from '@/components/QuranReflect/hooks/useReflectionBodyParser';\nimport ReflectionReferences from '@/components/QuranReflect/ReflectionReferences';\nimport ContentModal, { ContentModalSize } from '@/dls/ContentModal/ContentModal';\nimport ContentModalHandles from '@/dls/ContentModal/types/ContentModalHandles';\nimport AyahReflection from '@/types/QuranReflect/AyahReflection';\nimport { dateToReadableFormat } from '@/utils/datetime';\n\ninterface ReflectionModalProps {\n isOpen: boolean;\n onClose: () => void;\n reflection: AyahReflection;\n}\n\nconst ReflectionModal: React.FC<ReflectionModalProps> = ({ onClose, isOpen, reflection }) => {\n const contentModalRef = useRef<ContentModalHandles>();\n const formattedText = useReflectionBodyParser(reflection.body, styles.hashtag);\n const { lang } = useTranslation();\n\n return (\n <ContentModal\n innerRef={contentModalRef}\n isOpen={isOpen}\n header={<div className={styles.headerContainer} />}\n hasCloseButton\n onClose={onClose}\n onEscapeKeyDown={onClose}\n size={ContentModalSize.MEDIUM}\n >\n {reflection.references && <ReflectionReferences references={reflection.references} />}\n <div className={styles.noteHeaderContainer}>\n <time className={styles.noteDate} dateTime={reflection.createdAt.toString()}>\n {dateToReadableFormat(reflection.createdAt, lang, {\n year: 'numeric',\n weekday: undefined,\n month: 'short',\n })}\n </time>\n </div>\n <span\n className={styles.noteBody}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: formattedText,\n }}\n />\n </ContentModal>\n );\n};\n\nexport default ReflectionModal;\n","import React, { useContext } from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from '@/components/Notes/NoteModal/NoteRangesIndicator/NoteRangesIndicator.module.scss';\nimport DataContext from '@/contexts/DataContext';\nimport ReflectionReference from '@/types/QuranReflect/ReflectionReference';\nimport { getChapterData } from '@/utils/chapter';\nimport { toLocalizedVerseKey } from '@/utils/locale';\n\ntype Props = {\n reference: ReflectionReference;\n};\n\nconst ReflectionReferenceIndicator: React.FC<Props> = ({ reference }) => {\n const { lang, t } = useTranslation('common');\n const chaptersData = useContext(DataContext);\n if (!reference) {\n return <></>;\n }\n\n const { surahId, fromAyah, toAyah, isSurah } = reference;\n const chapterData = getChapterData(chaptersData, surahId.toString());\n let referenceKey = `${t('surah')} ${chapterData.transliteratedName}`;\n // if it's not a full surah\n if (!isSurah) {\n const localizedStartVerseKey = `${referenceKey} ${toLocalizedVerseKey(\n surahId.toString(),\n lang,\n )}:${toLocalizedVerseKey(fromAyah.toString(), lang)}`;\n if (fromAyah === toAyah) {\n // e.g. 11:1\n referenceKey = localizedStartVerseKey;\n } else {\n // e.g. 11:1-6\n referenceKey = `${localizedStartVerseKey}-${toLocalizedVerseKey(toAyah.toString(), lang)}`;\n }\n }\n return <div className={styles.container}>{referenceKey}</div>;\n};\n\nexport default ReflectionReferenceIndicator;\n","import React from 'react';\n\nimport styles from './ReflectionReferences.module.scss';\n\nimport ReflectionReferenceIndicator from '@/components/QuranReflect/ReflectionReferenceIndicator';\nimport VerseAndTranslation from '@/components/Verse/VerseAndTranslation';\nimport Link from '@/dls/Link/Link';\nimport ChevronDownIcon from '@/icons/chevron-down.svg';\nimport ReflectionReferenceType from '@/types/QuranReflect/ReflectionReference';\nimport { logButtonClick, logEvent } from '@/utils/eventLogger';\nimport Collapsible from 'src/components/dls/Collapsible/Collapsible';\n\ntype Props = {\n references: ReflectionReferenceType[];\n};\n\n/**\n * A component that will be used to display the ranges of a reflection.\n * And also a ranges selector in the future.\n *\n * @param {React.FC<Props>} param\n * @returns {React.ReactElement<any, any>}\n */\nconst ReflectionReferences: React.FC<Props> = ({ references }: Props) => {\n const onOpenChange = (isCollapseOpen: boolean) => {\n if (isCollapseOpen) {\n logEvent('reflection_reference_collapse_opened');\n } else {\n logEvent('reflection_reference_collapse_closed');\n }\n };\n\n const onNoteSurahReferenceClicked = () => {\n logButtonClick('reflection_surah_reference');\n };\n\n return (\n <>\n {references.map((reference) => {\n const { surahId, fromAyah, toAyah, isSurah } = reference;\n if (isSurah) {\n return (\n <Link\n key={reference.surahId}\n className={styles.verseKey}\n href={`/${surahId}`}\n onClick={onNoteSurahReferenceClicked}\n isNewTab\n >\n <div className={styles.headerContainer}>\n <ReflectionReferenceIndicator reference={reference} />\n </div>\n </Link>\n );\n }\n return (\n <Collapsible\n key={reference.surahId}\n title={\n <div className={styles.headerContainer}>\n <ReflectionReferenceIndicator reference={reference} />\n </div>\n }\n prefix={<ChevronDownIcon />}\n shouldRotatePrefixOnToggle\n onOpenChange={onOpenChange}\n >\n {({ isOpen: isOpenRenderProp }) => {\n if (!isOpenRenderProp) return null;\n return <VerseAndTranslation chapter={Number(surahId)} from={fromAyah} to={toAyah} />;\n }}\n </Collapsible>\n );\n })}\n </>\n );\n};\n\nexport default ReflectionReferences;\n","/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable import/prefer-default-export */\nimport { getQuranReflectTagUrl } from './navigation';\n\n/**\n * Wraps hashtags in links: It finds all hashtags starting with # followed\n * by one or more word characters (\\w+). The captured hashtag is then\n * used to create a link.\n *\n * @param {string} tag\n * @param {string} hashtagStyle\n * @returns {string}\n */\nconst tagToLink = (tag: string, hashtagStyle: string): string => {\n const tagWithHashTag = `#${tag}`;\n return `<a target=\"_blank\" href=\"${getQuranReflectTagUrl(\n tagWithHashTag,\n )}\" class=\"${hashtagStyle}\">${tagWithHashTag}</a>`;\n};\n\n/**\n * Replaces URLs in a given text with HTML anchor tags.\n *\n * @param {string} text - The input text containing URLs.\n * @returns {string} The text with URLs replaced by anchor tags.\n */\nconst replaceUrlsWithLinks = (text: string): string => {\n const regex = /(\\b(https?|ftp|file):\\/\\/[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|])/gi;\n return text.replace(regex, (url) => {\n // Check if URL is already linked\n const surroundingLength = 100; // Number of characters around the URL to check for <a> tag\n const index = text.indexOf(url);\n\n const beforeText = text.slice(Math.max(0, index - surroundingLength), index);\n const afterText = text.slice(index + url.length, index + url.length + surroundingLength);\n\n if (beforeText.includes('<a href=') && afterText.includes('</a>')) {\n // URL is already inside an anchor tag, return as is\n return url;\n }\n\n // Convert URL to a link\n return `<a href='${url}' target='_blank'>${url}</a>`;\n });\n};\n\nexport const parseReflectionBody = (reflectionBody: string, hashtagStyle: string): string => {\n return (\n // 1. Wraps URLs in links: Find all URLs starting with http or https. The captured URL is then used to create a link.\n replaceUrlsWithLinks(reflectionBody)\n // 2. Replaces new lines: match all occurrences of new lines (\\n) and carriage returns (\\r) and replaces them with the <br> tag.\n .replace(/\\r?\\n/g, '<br>')\n // 3. Wraps hashtags in links: Find all hashtags starting with # followed by one or more word characters (\\w+). The captured hashtag is then used to create a link.\n .replace(/#(\\w+)/g, (_, tag) => tagToLink(tag, hashtagStyle))\n );\n};\n","import { useMemo } from 'react';\n\nimport { parseReflectionBody } from '@/utils/quranReflect/bodyParser';\n\n/**\n * A hook to parse the reflection body and replace the hashtags with links.\n *\n * TODO: make all usages of this hook DRY.\n *\n * @param {string} reflectionText\n * @param {string} hashtagStyle\n * @returns {string}\n */\nconst useReflectionBodyParser = (reflectionText: string, hashtagStyle: string): string => {\n const parsedBody = useMemo(\n () => parseReflectionBody(reflectionText, hashtagStyle),\n [hashtagStyle, reflectionText],\n );\n\n return parsedBody;\n};\n\nexport default useReflectionBodyParser;\n","import useTranslation from 'next-translate/useTranslation';\nimport { shallowEqual, useSelector } from 'react-redux';\nimport useSWR from 'swr/immutable';\n\nimport Spinner from '../dls/Spinner/Spinner';\nimport TranslationText from '../QuranReader/TranslationView/TranslationText';\n\nimport PlainVerseText from './PlainVerseText';\nimport styles from './VerseAndTranslation.module.scss';\n\nimport Error from '@/components/Error';\nimport useQcfFont from '@/hooks/useQcfFont';\nimport { selectQuranReaderStyles } from '@/redux/slices/QuranReader/styles';\nimport { selectSelectedTranslations } from '@/redux/slices/QuranReader/translations';\nimport { getDefaultWordFields, getMushafId } from '@/utils/api';\nimport { makeVersesUrl } from '@/utils/apiPaths';\nimport { areArraysEqual } from '@/utils/array';\nimport { getVerseWords } from '@/utils/verse';\nimport { fetcher } from 'src/api';\nimport { VersesResponse } from 'types/ApiResponses';\n\n/**\n * Given a verse range\n * - Fetch the verse + translations data\n * - and return it\n *\n * The use case of this component is mainly for Verse and Translation that needs to be fetched on client\n * dynamically (not SSR). For example, for the reflection's feature verse reference\n *\n */\ninterface Props {\n chapter: number;\n from: number;\n to: number;\n}\n\nconst VerseAndTranslation: React.FC<Props> = ({ chapter, from, to }) => {\n const { lang } = useTranslation();\n const translations = useSelector(selectSelectedTranslations, areArraysEqual);\n const { quranFont, mushafLines, translationFontScale } = useSelector(\n selectQuranReaderStyles,\n shallowEqual,\n );\n\n const mushafId = getMushafId(quranFont, mushafLines).mushaf;\n const apiParams = {\n ...getDefaultWordFields(quranFont),\n translationFields: 'resource_name,language_id',\n translations: translations.join(','),\n mushaf: mushafId,\n from: `${chapter}:${from}`,\n to: `${chapter}:${to}`,\n };\n\n const shouldFetchData = !!from;\n\n const { data, error, mutate } = useSWR<VersesResponse>(\n shouldFetchData ? makeVersesUrl(chapter, lang, apiParams) : null,\n fetcher,\n );\n\n useQcfFont(quranFont, data?.verses ? data.verses : []);\n\n if (error) return <Error error={error} onRetryClicked={mutate} />;\n\n if (!data) return <Spinner />;\n\n return (\n <div className={styles.container}>\n {data?.verses.map((verse) => (\n <div key={verse.verseKey} className={styles.verseContainer}>\n <div className={styles.arabicVerseContainer}>\n <PlainVerseText words={getVerseWords(verse)} />\n </div>\n <div className={styles.translationsListContainer}>\n {verse.translations?.map((translation) => (\n <div key={translation.id} className={styles.translationContainer}>\n <TranslationText\n languageId={translation.languageId}\n resourceName={translation.resourceName}\n translationFontScale={translationFontScale}\n text={translation.text}\n />\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nexport default VerseAndTranslation;\n","import { useRef, useImperativeHandle, ForwardedRef } from 'react';\n\nimport * as Dialog from '@radix-ui/react-dialog';\nimport classNames from 'classnames';\nimport { useRouter } from 'next/router';\n\nimport Button, { ButtonShape, ButtonVariant } from '../Button/Button';\n\nimport styles from './ContentModal.module.scss';\n\nimport ContentModalHandles from '@/dls/ContentModal/types/ContentModalHandles';\nimport CloseIcon from '@/icons/close.svg';\nimport { isRTLLocale } from '@/utils/locale';\n\nexport enum ContentModalSize {\n SMALL = 'small',\n MEDIUM = 'medium',\n}\n\ntype ContentModalProps = {\n isOpen?: boolean;\n onClose?: () => void;\n onEscapeKeyDown?: () => void;\n children: React.ReactNode;\n hasCloseButton?: boolean;\n hasHeader?: boolean;\n header?: React.ReactNode;\n innerRef?: ForwardedRef<ContentModalHandles>;\n // using innerRef instead of using function forwardRef so we can dynamically load this component https://github.com/vercel/next.js/issues/4957#issuecomment-413841689\n contentClassName?: string;\n size?: ContentModalSize;\n isFixedHeight?: boolean;\n};\n\nconst SCROLLBAR_WIDTH = 15;\n\nconst ContentModal = ({\n isOpen,\n onClose,\n onEscapeKeyDown,\n hasCloseButton,\n children,\n header,\n innerRef,\n contentClassName,\n size = ContentModalSize.MEDIUM,\n isFixedHeight,\n hasHeader = true,\n}: ContentModalProps) => {\n const overlayRef = useRef<HTMLDivElement>();\n const { locale } = useRouter();\n\n useImperativeHandle(innerRef, () => ({\n scrollToTop: () => {\n if (overlayRef.current) overlayRef.current.scrollTop = 0;\n },\n }));\n\n /**\n * We need to manually check what the user is targeting. If it lies at the\n * area where the scroll bar is (assuming the scrollbar width is equivalent\n * to SCROLLBAR_WIDTH), then we don't close the Modal, otherwise we do.\n * We also need to check if the current locale is RTL or LTR because the side\n * where the scrollbar is will be different and therefor the value of\n * {e.detail.originalEvent.offsetX} will be different.\n *\n * inspired by {@see https://github.com/radix-ui/primitives/issues/1280#issuecomment-1198248523}\n *\n * @param {any} e\n */\n const onPointerDownOutside = (e: any) => {\n const currentTarget = e.currentTarget as HTMLElement;\n\n const shouldPreventOnClose = isRTLLocale(locale)\n ? e.detail.originalEvent.offsetX < SCROLLBAR_WIDTH // left side of the screen clicked\n : e.detail.originalEvent.offsetX > currentTarget.clientWidth - SCROLLBAR_WIDTH; // right side of the screen clicked\n\n if (shouldPreventOnClose) {\n e.preventDefault();\n return;\n }\n if (onClose) {\n onClose();\n }\n };\n\n return (\n <Dialog.Root open={isOpen}>\n <Dialog.Portal>\n <Dialog.Overlay className={styles.overlay} ref={overlayRef}>\n <Dialog.Content\n className={classNames(styles.contentWrapper, {\n [contentClassName]: contentClassName,\n [styles.small]: size === ContentModalSize.SMALL,\n [styles.medium]: size === ContentModalSize.MEDIUM,\n [styles.autoHeight]: !isFixedHeight,\n })}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n >\n {hasHeader && (\n <div className={styles.header}>\n {hasCloseButton && (\n <Dialog.Close className={styles.closeIcon}>\n <Button\n variant={ButtonVariant.Ghost}\n shape={ButtonShape.Circle}\n onClick={onClose}\n >\n <CloseIcon />\n </Button>\n </Dialog.Close>\n )}\n {header}\n </div>\n )}\n\n <div className={styles.content}>{children}</div>\n </Dialog.Content>\n </Dialog.Overlay>\n </Dialog.Portal>\n </Dialog.Root>\n );\n};\nexport default ContentModal;\n","import React, { ReactNode } from 'react';\n\nimport Popover, { ContentSide } from '@/dls/Popover';\nimport Tooltip from '@/dls/Tooltip';\n\ninterface Props {\n content: ReactNode;\n children: ReactNode | ReactNode[];\n contentSide?: ContentSide;\n tip?: boolean;\n tooltipDelay?: number;\n onOpenChange?: (open: boolean) => void;\n defaultStyling?: boolean;\n isOpen?: boolean;\n triggerStyles?: string;\n isContainerSpan?: boolean;\n}\n\n/**\n * A component that combines the functionality of a Popover and a Tooltip together.\n * This is needed to handle the case when we want to show a Tooltip on mobile but\n * since Tooltip is only hoverable and there is no hovering on mobile devices,\n * we provide the same functionality by using a Popover which handles clicking.\n *\n * @param {Props} props\n * @returns {JSX.Element}\n */\nconst HoverablePopover: React.FC<Props> = ({\n content,\n children,\n onOpenChange,\n contentSide = ContentSide.TOP,\n tip = true,\n tooltipDelay = 0,\n defaultStyling = true,\n isOpen,\n triggerStyles,\n isContainerSpan = false,\n}: Props): JSX.Element => (\n <Popover\n open={isOpen}\n triggerStyles={triggerStyles}\n contentSide={contentSide}\n useTooltipStyles\n {...(onOpenChange && { onOpenChange })}\n defaultStyling={defaultStyling}\n isContainerSpan={isContainerSpan}\n trigger={\n <Tooltip\n open={isOpen}\n tip={tip}\n text={content}\n contentSide={contentSide}\n delay={tooltipDelay}\n {...(onOpenChange && { onOpenChange })}\n >\n {children}\n </Tooltip>\n }\n tip={tip}\n >\n {content}\n </Popover>\n);\n\nexport default HoverablePopover;\n","import React, { ReactNode } from 'react';\n\nimport * as RadixPopover from '@radix-ui/react-popover';\nimport classNames from 'classnames';\n\nimport styles from './Popover.module.scss';\n\nexport enum ContentSide {\n TOP = 'top',\n RIGHT = 'right',\n BOTTOM = 'bottom',\n LEFT = 'left',\n}\n\nexport enum ContentAlign {\n START = 'start',\n CENTER = 'center',\n END = 'end',\n}\n\ninterface Props {\n trigger: ReactNode;\n children: ReactNode | ReactNode[];\n onOpenChange?: (open: boolean) => void;\n open?: boolean;\n isModal?: boolean;\n contentSide?: ContentSide;\n contentAlign?: ContentAlign;\n tip?: boolean;\n avoidCollisions?: boolean;\n useTooltipStyles?: boolean;\n defaultStyling?: boolean;\n isPortalled?: boolean;\n triggerStyles?: string;\n contentStyles?: string;\n contentSideOffset?: number;\n isContainerSpan?: boolean;\n}\n\nconst Popover: React.FC<Props> = ({\n children,\n trigger,\n onOpenChange,\n open,\n isModal = false,\n contentSide = ContentSide.BOTTOM,\n contentAlign = ContentAlign.CENTER,\n avoidCollisions = true,\n tip = false,\n useTooltipStyles = false,\n defaultStyling = true,\n isPortalled = true,\n contentSideOffset = 2,\n triggerStyles,\n contentStyles,\n isContainerSpan = false,\n}) => {\n const content = (\n <RadixPopover.Content\n sideOffset={contentSideOffset}\n side={contentSide}\n align={contentAlign}\n avoidCollisions={avoidCollisions}\n className={classNames(styles.content, {\n [styles.tooltipContent]: useTooltipStyles,\n [contentStyles]: contentStyles,\n })}\n >\n {children}\n {tip && <RadixPopover.Arrow />}\n </RadixPopover.Content>\n );\n\n const containerChild = (\n <RadixPopover.Root\n modal={isModal}\n {...(typeof open !== 'undefined' && { open })}\n {...(onOpenChange && { onOpenChange })}\n >\n <RadixPopover.Trigger aria-label=\"Open popover\" asChild>\n <span\n className={classNames(styles.trigger, {\n [triggerStyles]: triggerStyles,\n })}\n >\n {trigger}\n </span>\n </RadixPopover.Trigger>\n {isPortalled ? <RadixPopover.Portal>{content}</RadixPopover.Portal> : content}\n </RadixPopover.Root>\n );\n\n if (isContainerSpan) {\n return (\n <span className={classNames({ [styles.container]: defaultStyling })}>{containerChild}</span>\n );\n }\n\n return <div className={classNames({ [styles.container]: defaultStyling })}>{containerChild}</div>;\n};\n\nexport default Popover;\n","import { useEffect } from 'react';\n\n/**\n * A hook that appends query parameters to the url. We could've used shallow routing for Next.js\n * but it causes re-rendering to the whole app @see https://github.com/vercel/next.js/discussions/18072\n *\n * @param {string} relativeUrl the relative url e.g. '/search' for the search page.\n * @param {Record<string, unknown>} params a map of each parameter and its value that we will listen to and in the event of changing any of them, we will re-generate the url.\n */\nconst useAddQueryParamsToUrl = (relativeUrl: string, params: Record<string, unknown>) => {\n useEffect(() => {\n if (typeof window !== 'undefined') {\n let url = relativeUrl;\n let isFirstParameter = true;\n Object.keys(params).forEach((parameter) => {\n const parameterValue = params[parameter];\n // if the value of the parameter exists\n if (parameterValue) {\n url = `${url}${isFirstParameter ? '?' : '&'}${parameter}=${parameterValue}`;\n isFirstParameter = false;\n }\n });\n window.history.replaceState({ ...window.history.state, as: url, url }, '', url);\n }\n }, [relativeUrl, params]);\n};\n\nexport default useAddQueryParamsToUrl;\n","import { makeUrl } from '@/utils/auth/apiPaths';\nimport GetAllUserReflectionsQueryParams from '@/utils/auth/types/GetAllUserReflectionsQueryParams';\n\nconst getPrefixedUrl = (url: string) => `qf/${url}`;\n\nexport const makePostReflectionViewsUrl = (postId: string) =>\n makeUrl(getPrefixedUrl(`posts/${postId}/views`));\n\nexport const makeFollowUserUrl = (userNameOrId: string) =>\n makeUrl(getPrefixedUrl(`users/${userNameOrId}/follow`));\n\nexport const makeIsUserFollowedUrl = (userNameOrId: string) =>\n makeUrl(getPrefixedUrl(`users/${userNameOrId}/is-followed`));\n\nexport const makeGetUserReflectionsUrl = (params?: GetAllUserReflectionsQueryParams) =>\n makeUrl(getPrefixedUrl('posts'), params as any);\n\nexport const makeQuranicCalendarPostOfWeekUrl = (weekNumber: number) =>\n makeUrl(getPrefixedUrl(`quranic-calendar/${weekNumber}`));\n","/* eslint-disable unicorn/no-abusive-eslint-disable */\n/* eslint-disable */\n// @ts-nocheck\n\n// Source: https://github.com/huang47/nodejs-html-truncate/blob/master/lib/truncate.js\n\nfunction truncate(string, maxLength, options?) {\n const EMPTY_OBJECT = {};\n const EMPTY_STRING = '';\n const DEFAULT_TRUNCATE_SYMBOL = '...';\n const DEFAULT_SLOP = maxLength < 10 ? maxLength : 10;\n const EXCLUDE_TAGS = ['img', 'br']; // non-closed tags\n const items = []; // stack for saving tags\n let total = 0; // record how many characters we traced so far\n let content = EMPTY_STRING; // truncated text storage\n const KEY_VALUE_REGEX = '([\\\\w|-]+\\\\s*=\\\\s*\"[^\"]*\"\\\\s*)*';\n const IS_CLOSE_REGEX = '\\\\s*\\\\/?\\\\s*';\n const CLOSE_REGEX = '\\\\s*\\\\/\\\\s*';\n const SELF_CLOSE_REGEX = new RegExp(`<\\\\/?\\\\w+\\\\s*${KEY_VALUE_REGEX}${CLOSE_REGEX}>`);\n const HTML_TAG_REGEX = new RegExp(`<\\\\/?\\\\w+\\\\s*${KEY_VALUE_REGEX}${IS_CLOSE_REGEX}>`);\n const URL_REGEX =\n /(((ftp|https?):\\/\\/)[\\-\\w@:%_\\+.~#?,&\\/\\/=]+)|((mailto:)?[_.\\w\\-]+@([\\w][\\w\\-]+\\.)+[a-zA-Z]{2,3})/g; // Simple regexp\n const IMAGE_TAG_REGEX = new RegExp(`<img\\\\s*${KEY_VALUE_REGEX}${IS_CLOSE_REGEX}>`);\n const WORD_BREAK_REGEX = new RegExp('\\\\W+', 'g');\n let matches = true;\n let result;\n let index;\n let tail;\n let tag;\n let selfClose;\n\n /**\n * Remove image tag\n *\n * @private\n * @function _removeImageTag\n * @param {string} string not-yet-processed string\n * @returns {string} string without image tags\n */\n function _removeImageTag(string) {\n const match = IMAGE_TAG_REGEX.exec(string);\n let index;\n let len;\n\n if (!match) {\n return string;\n }\n\n index = match.index;\n len = match[0].length;\n\n return string.substring(0, index) + string.substring(index + len);\n }\n\n /**\n * Dump all close tags and append to truncated content while reaching upperbound\n *\n * @private\n * @function _dumpCloseTag\n * @param {string[]} tags a list of tags which should be closed\n * @returns {string} well-formatted html\n */\n function _dumpCloseTag(tags) {\n let html = '';\n\n tags.reverse().forEach((tag, index) => {\n // dump non-excluded tags only\n if (EXCLUDE_TAGS.indexOf(tag) === -1) {\n html += `</${tag}>`;\n }\n });\n\n return html;\n }\n\n /**\n * Process tag string to get pure tag name\n *\n * @private\n * @function _getTag\n * @param {string} string original html\n * @returns {string} tag name\n */\n function _getTag(string) {\n let tail = string.indexOf(' ');\n\n // TODO:\n // we have to figure out how to handle non-well-formatted HTML case\n if (tail === -1) {\n tail = string.indexOf('>');\n if (tail === -1) {\n throw new Error(`HTML tag is not well-formed : ${string}`);\n }\n }\n\n return string.substring(1, tail);\n }\n\n /**\n * Get the end position for String#substring()\n *\n * If options.truncateLastWord is FALSE, we try to the end position up to\n * options.slop characters to avoid breaking in the middle of a word.\n *\n * @private\n * @function _getEndPosition\n * @param {string} string original html\n * @param {number} tailPos (optional) provided to avoid extending the slop into trailing HTML tag\n * @returns {number} maxLength\n */\n function _getEndPosition(string, tailPos) {\n const defaultPos = maxLength - total;\n let position = defaultPos;\n const isShort = defaultPos < options.slop;\n const slopPos = isShort ? defaultPos : options.slop - 1;\n let substr;\n const startSlice = isShort ? 0 : defaultPos - options.slop;\n const endSlice = tailPos || defaultPos + options.slop;\n let result;\n\n if (!options.truncateLastWord) {\n substr = string.slice(startSlice, endSlice);\n\n if (tailPos && substr.length <= tailPos) {\n position = substr.length;\n } else {\n while ((result = WORD_BREAK_REGEX.exec(substr)) !== null) {\n // a natural break position before the hard break position\n if (result.index < slopPos) {\n position = defaultPos - (slopPos - result.index);\n // keep seeking closer to the hard break position\n // unless a natural break is at position 0\n if (result.index === 0 && defaultPos <= 1) break;\n }\n // a natural break position exactly at the hard break position\n else if (result.index === slopPos) {\n position = defaultPos;\n break; // seek no more\n }\n // a natural break position after the hard break position\n else {\n position = defaultPos + (result.index - slopPos);\n break; // seek no more\n }\n }\n }\n if (string.charAt(position - 1).match(/\\s$/)) position--;\n }\n return position;\n }\n\n options = options || EMPTY_OBJECT;\n options.ellipsis = undefined !== options.ellipsis ? options.ellipsis : DEFAULT_TRUNCATE_SYMBOL;\n options.truncateLastWord =\n undefined !== options.truncateLastWord ? options.truncateLastWord : true;\n options.slop = undefined !== options.slop ? options.slop : DEFAULT_SLOP;\n\n while (matches) {\n matches = HTML_TAG_REGEX.exec(string);\n\n if (!matches) {\n if (total >= maxLength) {\n break;\n }\n\n matches = URL_REGEX.exec(string);\n if (!matches || matches.index >= maxLength) {\n content += string.substring(0, _getEndPosition(string));\n break;\n }\n\n while (matches) {\n result = matches[0];\n index = matches.index;\n content += string.substring(0, index + result.length - total);\n string = string.substring(index + result.length);\n matches = URL_REGEX.exec(string);\n }\n break;\n }\n\n result = matches[0];\n index = matches.index;\n\n if (total + index > maxLength) {\n // exceed given `maxLength`, dump everything to clear stack\n content += string.substring(0, _getEndPosition(string, index));\n break;\n } else {\n total += index;\n content += string.substring(0, index);\n }\n\n if (result[1] === '/') {\n // move out open tag\n items.pop();\n selfClose = null;\n } else {\n selfClose = SELF_CLOSE_REGEX.exec(result);\n if (!selfClose) {\n tag = _getTag(result);\n\n items.push(tag);\n }\n }\n\n if (selfClose) {\n content += selfClose[0];\n } else {\n content += result;\n }\n string = string.substring(index + result.length);\n }\n\n if (string.length > maxLength - total && options.ellipsis) {\n content += options.ellipsis;\n }\n content += _dumpCloseTag(items);\n\n if (!options.keepImageTag) {\n content = _removeImageTag(content);\n }\n\n return content;\n}\n\nexport default truncate;\n","enum NotesSortOption {\n Newest = 'newest',\n Oldest = 'oldest',\n}\n\nexport default NotesSortOption;\n","module.exports = require(\"@reduxjs/toolkit\");","module.exports = require(\"@sentry/nextjs\");","module.exports = require(\"classnames\");","module.exports = require(\"humps\");","module.exports = require(\"lodash/capitalize\");","module.exports = require(\"lodash/findKey\");","module.exports = require(\"lodash/groupBy\");","module.exports = require(\"lodash/isArray\");","module.exports = require(\"lodash/random\");","module.exports = require(\"lodash/range\");","module.exports = require(\"next-seo\");","module.exports = require(\"next-translate/Trans\");","module.exports = require(\"next-translate/useTranslation\");","module.exports = require(\"next/dist/shared/lib/app-router-context.js\");","module.exports = require(\"next/dist/shared/lib/head-manager-context.js\");","module.exports = require(\"next/dist/shared/lib/i18n/detect-domain-locale.js\");","module.exports = require(\"next/dist/shared/lib/i18n/normalize-locale-path.js\");","module.exports = require(\"next/dist/shared/lib/is-plain-object.js\");","module.exports = require(\"next/dist/shared/lib/mitt.js\");","module.exports = require(\"next/dist/shared/lib/page-path/denormalize-page-path.js\");","module.exports = require(\"next/dist/shared/lib/router-context.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/add-locale.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/add-path-prefix.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/compare-states.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/format-next-pathname-info.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/format-url.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/get-asset-path-from-route.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/get-next-pathname-info.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/is-bot.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/is-dynamic.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/parse-path.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/parse-relative-url.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/path-has-prefix.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/querystring.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/remove-trailing-slash.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/resolve-rewrites.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/route-matcher.js\");","module.exports = require(\"next/dist/shared/lib/router/utils/route-regex.js\");","module.exports = require(\"next/dist/shared/lib/utils.js\");","module.exports = require(\"next/router\");","module.exports = require(\"react\");","module.exports = require(\"react-redux\");","module.exports = require(\"react-virtuoso\");","module.exports = require(\"react/jsx-runtime\");","module.exports = require(\"refresh-fetch\");","module.exports = import(\"@radix-ui/react-checkbox\");;","module.exports = import(\"@radix-ui/react-collapsible\");;","module.exports = import(\"@radix-ui/react-dialog\");;","module.exports = import(\"@radix-ui/react-dropdown-menu\");;","module.exports = import(\"@radix-ui/react-popover\");;","module.exports = import(\"@radix-ui/react-radio-group\");;","module.exports = import(\"@radix-ui/react-tooltip\");;","module.exports = import(\"@radix-ui/react-visually-hidden\");;","module.exports = import(\"firebase/compat/analytics\");;","module.exports = import(\"firebase/compat/app\");;","module.exports = import(\"js-cookie\");;","module.exports = import(\"react-hook-form\");;","module.exports = import(\"react-toastify\");;","module.exports = import(\"swr\");;","module.exports = import(\"swr/immutable\");;","module.exports = import(\"swr/infinite\");;","module.exports = require(\"querystring\");"],"names":["NotesAndReflectionsPage","t","lang","useTranslation","navigationUrl","getNotesNavigationUrl","_jsxs","_Fragment","_jsx","NextSeoWrapper","title","canonical","getCanonicalUrl","languageAlternates","getLanguageAlternates","nofollow","noindex","div","className","layoutStyles","pageContainer","flow","flowItem","NotesTabs","getStaticProps","locale","allChaptersData","getAllChaptersData","props","chaptersData","withAuth","React","styles","NoteRangesIndicator","dateToReadableFormat","logButtonClick","truncateString","MAX_BODY_SIZE","NotesListItem","note","setSelectedNoteId","onNoteClicked","noteId","role","tabIndex","onClick","id","onKeyDown","ranges","p","itemBody","body","length","span","seeMore","time","noteDate","dateTime","createdAt","toString","year","useMemo","useState","Virtuoso","NoteModal","Spinner","SpinnerSize","NotesList","data","isValidating","size","setSize","mutateCache","selectedNoteId","lastPageData","hasNextPage","pagination","notes","map","response","flat","isLoading","isLoadingMoreData","isEmpty","loadMore","renderNote","index","onNoteDeleted","cachedPages","newPages","i","page","newData","filter","onNoteUpdated","updatedNote","noteIdx","findIndex","content","Large","emptyNotesContainer","isOpen","onClose","overscan","increaseViewportBy","top","bottom","notesListContainer","endReached","itemContent","useWindowScroll","PopoverMenu","ChevronDownIcon","logEvent","NotesSorter","options","selectedOptionId","onChange","selectedOption","find","option","onOpenChange","sorter","trigger","sortTrigger","label","itemIcon","Item","shouldCloseMenuAfterClick","classNames","useSWRInfinite","Error","NotesSortOption","privateFetcher","makeNotesUrl","isLoggedIn","logValueChange","PrivateNotes","sortBy","setSortBy","Newest","sortOptions","Oldest","onSortByChange","newSortByVal","getKey","pageIndex","previousPageData","limit","endCursor","cursor","error","mutate","key","then","revalidateOnFocus","revalidateFirstPage","revalidateOnMount","statusCode","hasFullWidth","container","loadingContainer","shouldDelayVisibility","sorterContainer","sorterInnerContainer","text","Trans","Link","LinkVariant","ReflectionsTabIntroduction","ul","li","components","link","href","variant","Blend","isNewTab","i18nKey","useReflectionBodyParser","ReflectionSocialInteractions","ReflectionReferenceIndicator","truncate","UserPublicReflectionsListItem","reflection","setSelectedReflection","formattedText","hashtag","onReflectionClicked","selectedReflection","postId","references","indicatorsContainer","reference","surahId","noteBody","dangerouslySetInnerHTML","__html","ReflectionModal","UserPublicReflectionsList","reflections","renderReflection","makeGetUserReflectionsUrl","PublicReflections","TabSwitcherItem","icon","value","useEffect","useRouter","PrivateNotesTab","PublicReflectionsTab","Switch","useAddQueryParamsToUrl","DetailsIcon","SyllabusIcon","Tab","PRIVATE_NOTES","PUBLIC_REFLECTIONS","router","selectedTab","setSelectedTab","queryParams","tab","queryTab","query","Object","values","includes","onTabChange","tabs","name","tabComponents","isReady","header","titleContainer","h1","selected","items","onSelect","Button","ButtonSize","ButtonVariant","ChatIcon","LoveIcon","toLocalizedNumber","getQuranReflectPostUrl","onLikesCountClicked","e","stopPropagation","onCommentsCountClicked","onViewOnQrClicked","socialInteractionContainer","actionItemContainer","Compact","prefix","Small","shouldFlipOnRTL","likes","commentsCount","useRef","ReflectionReferences","ContentModal","ContentModalSize","contentModalRef","innerRef","headerContainer","hasCloseButton","onEscapeKeyDown","MEDIUM","noteHeaderContainer","weekday","undefined","month","useContext","DataContext","getChapterData","toLocalizedVerseKey","fromAyah","toAyah","isSurah","chapterData","referenceKey","transliteratedName","localizedStartVerseKey","VerseAndTranslation","Collapsible","isCollapseOpen","onNoteSurahReferenceClicked","verseKey","shouldRotatePrefixOnToggle","isOpenRenderProp","chapter","Number","from","to","getQuranReflectTagUrl","tagToLink","tag","hashtagStyle","tagWithHashTag","replaceUrlsWithLinks","regex","replace","url","surroundingLength","indexOf","beforeText","slice","Math","max","afterText","parseReflectionBody","reflectionBody","_","reflectionText","parsedBody","shallowEqual","useSelector","useSWR","TranslationText","PlainVerseText","useQcfFont","selectQuranReaderStyles","selectSelectedTranslations","getDefaultWordFields","getMushafId","makeVersesUrl","areArraysEqual","getVerseWords","fetcher","translations","quranFont","mushafLines","translationFontScale","mushafId","mushaf","apiParams","translationFields","join","shouldFetchData","verses","onRetryClicked","verse","verseContainer","arabicVerseContainer","words","translationsListContainer","translation","translationContainer","languageId","resourceName","useImperativeHandle","Dialog","ButtonShape","CloseIcon","isRTLLocale","SMALL","SCROLLBAR_WIDTH","children","contentClassName","isFixedHeight","hasHeader","overlayRef","scrollToTop","current","scrollTop","onPointerDownOutside","currentTarget","shouldPreventOnClose","detail","originalEvent","offsetX","clientWidth","preventDefault","Root","open","Portal","Overlay","overlay","ref","Content","contentWrapper","small","medium","autoHeight","Close","closeIcon","Ghost","shape","Circle","Popover","ContentSide","Tooltip","HoverablePopover","contentSide","TOP","tip","tooltipDelay","defaultStyling","triggerStyles","isContainerSpan","useTooltipStyles","delay","RadixPopover","RIGHT","BOTTOM","LEFT","ContentAlign","START","CENTER","END","isModal","contentAlign","avoidCollisions","isPortalled","contentSideOffset","contentStyles","sideOffset","side","align","tooltipContent","Arrow","containerChild","modal","Trigger","aria-label","asChild","relativeUrl","params","isFirstParameter","keys","forEach","parameter","parameterValue","window","history","replaceState","state","as","makeUrl","getPrefixedUrl","makePostReflectionViewsUrl","makeFollowUserUrl","userNameOrId","makeIsUserFollowedUrl","makeQuranicCalendarPostOfWeekUrl","weekNumber","string","maxLength","EMPTY_OBJECT","EMPTY_STRING","DEFAULT_TRUNCATE_SYMBOL","DEFAULT_SLOP","EXCLUDE_TAGS","total","KEY_VALUE_REGEX","IS_CLOSE_REGEX","CLOSE_REGEX","SELF_CLOSE_REGEX","RegExp","HTML_TAG_REGEX","URL_REGEX","IMAGE_TAG_REGEX","WORD_BREAK_REGEX","matches","result","tail","selfClose","_removeImageTag","match","exec","len","substring","_dumpCloseTag","tags","html","reverse","_getTag","_getEndPosition","tailPos","defaultPos","position","isShort","slop","slopPos","substr","startSlice","endSlice","truncateLastWord","charAt","ellipsis","pop","push","keepImageTag"],"sourceRoot":""}
|