scope360-core 1.1.28 → 1.1.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Account-C4PqGVCy.js +34 -0
- package/dist/Account-C4PqGVCy.js.map +1 -0
- package/dist/AccountDuotone-CznSIeHd.js +19 -0
- package/dist/AccountDuotone-CznSIeHd.js.map +1 -0
- package/dist/ActivePair-BoGpLwJE.js +24 -0
- package/dist/ActivePair-BoGpLwJE.js.map +1 -0
- package/dist/AiSearchOutline-CKkXcjAL.js +20 -0
- package/dist/AiSearchOutline-CKkXcjAL.js.map +1 -0
- package/dist/Apple-2bDfkUz3.js +25 -0
- package/dist/Apple-2bDfkUz3.js.map +1 -0
- package/dist/ArrowBottom-DOcT4xGT.js +22 -0
- package/dist/ArrowBottom-DOcT4xGT.js.map +1 -0
- package/dist/ArrowRightBottom-BVx2Vsmw.js +24 -0
- package/dist/ArrowRightBottom-BVx2Vsmw.js.map +1 -0
- package/dist/ArrowRightTop-CYrRpkem.js +22 -0
- package/dist/ArrowRightTop-CYrRpkem.js.map +1 -0
- package/dist/ArrowStrategyFilled-DKJqioA8.js +41 -0
- package/dist/ArrowStrategyFilled-DKJqioA8.js.map +1 -0
- package/dist/ArrowTop-DtE9oDSG.js +22 -0
- package/dist/ArrowTop-DtE9oDSG.js.map +1 -0
- package/dist/ArrowTurnRightOutline-DdLh5g1k.js +22 -0
- package/dist/ArrowTurnRightOutline-DdLh5g1k.js.map +1 -0
- package/dist/B-CSHnOlKi.js +22 -0
- package/dist/B-CSHnOlKi.js.map +1 -0
- package/dist/Bell-Df3lhYNf.js +28 -0
- package/dist/Bell-Df3lhYNf.js.map +1 -0
- package/dist/Binance-Bdv9_q1m.js +22 -0
- package/dist/Binance-Bdv9_q1m.js.map +1 -0
- package/dist/Brain-B33m7WXy.js +24 -0
- package/dist/Brain-B33m7WXy.js.map +1 -0
- package/dist/Bybit-Jz8g1rS2.js +19 -0
- package/dist/Bybit-Jz8g1rS2.js.map +1 -0
- package/dist/BybitWhite-CiWbGDdP.js +19 -0
- package/dist/BybitWhite-CiWbGDdP.js.map +1 -0
- package/dist/CIrcleCheckFilled-Drt9OKa9.js +24 -0
- package/dist/CIrcleCheckFilled-Drt9OKa9.js.map +1 -0
- package/dist/Calendar-Cw9T5McL.js +19 -0
- package/dist/Calendar-Cw9T5McL.js.map +1 -0
- package/dist/CalendarCheckin-57fy-omP.js +28 -0
- package/dist/CalendarCheckin-57fy-omP.js.map +1 -0
- package/dist/CalendarCheckout-B-_VwCsD.js +28 -0
- package/dist/CalendarCheckout-B-_VwCsD.js.map +1 -0
- package/dist/CalendarDays-kgB8bCUd.js +19 -0
- package/dist/CalendarDays-kgB8bCUd.js.map +1 -0
- package/dist/CalendarDuotone-Yx_G5pe_.js +19 -0
- package/dist/CalendarDuotone-Yx_G5pe_.js.map +1 -0
- package/dist/CalendarFilled-Csbfghqr.js +26 -0
- package/dist/CalendarFilled-Csbfghqr.js.map +1 -0
- package/dist/Camera-DkvoBuug.js +36 -0
- package/dist/Camera-DkvoBuug.js.map +1 -0
- package/dist/CardView-TxqTex8K.js +42 -0
- package/dist/CardView-TxqTex8K.js.map +1 -0
- package/dist/Checkbox-q8auGSco.js +33 -0
- package/dist/Checkbox-q8auGSco.js.map +1 -0
- package/dist/CheckboxCheckedDoutone-BixK4TfE.js +36 -0
- package/dist/CheckboxCheckedDoutone-BixK4TfE.js.map +1 -0
- package/dist/CheckboxUnchecked-trc3rgde.js +26 -0
- package/dist/CheckboxUnchecked-trc3rgde.js.map +1 -0
- package/dist/ChevronDown-CeoPynhB.js +25 -0
- package/dist/ChevronDown-CeoPynhB.js.map +1 -0
- package/dist/ChevronLeft-DbVpQFAR.js +25 -0
- package/dist/ChevronLeft-DbVpQFAR.js.map +1 -0
- package/dist/ChevronRight-BRuTJMz1.js +25 -0
- package/dist/ChevronRight-BRuTJMz1.js.map +1 -0
- package/dist/ChevronUp-BKJdO6r_.js +25 -0
- package/dist/ChevronUp-BKJdO6r_.js.map +1 -0
- package/dist/CircleChevronDownFilled-C0ibD4VM.js +22 -0
- package/dist/CircleChevronDownFilled-C0ibD4VM.js.map +1 -0
- package/dist/CircleChevronLeftFilled-DPhAZtJr.js +22 -0
- package/dist/CircleChevronLeftFilled-DPhAZtJr.js.map +1 -0
- package/dist/CircleChevronRightFilled--faHSM54.js +22 -0
- package/dist/CircleChevronRightFilled--faHSM54.js.map +1 -0
- package/dist/CircleChevronTopFilled-CQauYi6f.js +22 -0
- package/dist/CircleChevronTopFilled-CQauYi6f.js.map +1 -0
- package/dist/Clock-qh8t54SV.js +28 -0
- package/dist/Clock-qh8t54SV.js.map +1 -0
- package/dist/ClockDuotone-B2K_b9vl.js +19 -0
- package/dist/ClockDuotone-B2K_b9vl.js.map +1 -0
- package/dist/CloseCircle-Gk3Beao7.js +30 -0
- package/dist/CloseCircle-Gk3Beao7.js.map +1 -0
- package/dist/CloseDate-Bn_niZRq.js +28 -0
- package/dist/CloseDate-Bn_niZRq.js.map +1 -0
- package/dist/Collapse-DwnJlvkw.js +24 -0
- package/dist/Collapse-DwnJlvkw.js.map +1 -0
- package/dist/Command-BVis-WAo.js +24 -0
- package/dist/Command-BVis-WAo.js.map +1 -0
- package/dist/Commission-DjFKBkpf.js +28 -0
- package/dist/Commission-DjFKBkpf.js.map +1 -0
- package/dist/ConnectionManager-CcQBwZFx.js +26 -0
- package/dist/ConnectionManager-CcQBwZFx.js.map +1 -0
- package/dist/Copy-D8KZdvoG.js +28 -0
- package/dist/Copy-D8KZdvoG.js.map +1 -0
- package/dist/CopyOutline-wi-ZsL3k.js +23 -0
- package/dist/CopyOutline-wi-ZsL3k.js.map +1 -0
- package/dist/Cross-DyIRBLU9.js +24 -0
- package/dist/Cross-DyIRBLU9.js.map +1 -0
- package/dist/DailyBalances-C_XpI3p8.js +28 -0
- package/dist/DailyBalances-C_XpI3p8.js.map +1 -0
- package/dist/DailyStats-Cyw3LXo1.js +35 -0
- package/dist/DailyStats-Cyw3LXo1.js.map +1 -0
- package/dist/Dashboard-D9SGRi9p.js +27 -0
- package/dist/Dashboard-D9SGRi9p.js.map +1 -0
- package/dist/DefaulltChartMode-CYqZPtZL.js +19 -0
- package/dist/DefaulltChartMode-CYqZPtZL.js.map +1 -0
- package/dist/DiscoverOutline-Bt-0J8Uf.js +30 -0
- package/dist/DiscoverOutline-Bt-0J8Uf.js.map +1 -0
- package/dist/DotGridMenu-BIDxQs5j.js +19 -0
- package/dist/DotGridMenu-BIDxQs5j.js.map +1 -0
- package/dist/Download-B12dgF9A.js +25 -0
- package/dist/Download-B12dgF9A.js.map +1 -0
- package/dist/DownloadBoxOutline-CVe9q4-p.js +24 -0
- package/dist/DownloadBoxOutline-CVe9q4-p.js.map +1 -0
- package/dist/Edit-CzVuX1vW.js +28 -0
- package/dist/Edit-CzVuX1vW.js.map +1 -0
- package/dist/EntryPrice-BJ2NNEvO.js +26 -0
- package/dist/EntryPrice-BJ2NNEvO.js.map +1 -0
- package/dist/Error-VVr0aE2B.js +35 -0
- package/dist/Error-VVr0aE2B.js.map +1 -0
- package/dist/ExitPrice-i9e9c2ml.js +26 -0
- package/dist/ExitPrice-i9e9c2ml.js.map +1 -0
- package/dist/External-CZLUnpqP.js +26 -0
- package/dist/External-CZLUnpqP.js.map +1 -0
- package/dist/ExternalLink-BlUnJBnO.js +26 -0
- package/dist/ExternalLink-BlUnJBnO.js.map +1 -0
- package/dist/EyeClosed-B-eEvTZC.js +22 -0
- package/dist/EyeClosed-B-eEvTZC.js.map +1 -0
- package/dist/EyeClosedOutline-BnjYhnmE.js +24 -0
- package/dist/EyeClosedOutline-BnjYhnmE.js.map +1 -0
- package/dist/EyeOpened-Bdo2Kqgh.js +19 -0
- package/dist/EyeOpened-Bdo2Kqgh.js.map +1 -0
- package/dist/EyeOpenedOutline-BFtju8VH.js +28 -0
- package/dist/EyeOpenedOutline-BFtju8VH.js.map +1 -0
- package/dist/Filter-C2yu89C-.js +24 -0
- package/dist/Filter-C2yu89C-.js.map +1 -0
- package/dist/FloppyDisk-cOv6jWAG.js +39 -0
- package/dist/FloppyDisk-cOv6jWAG.js.map +1 -0
- package/dist/Folder-CHRPGeFc.js +24 -0
- package/dist/Folder-CHRPGeFc.js.map +1 -0
- package/dist/FolderColored-CSZkkLUL.js +19 -0
- package/dist/FolderColored-CSZkkLUL.js.map +1 -0
- package/dist/FoldersFilled-DltXRmvi.js +33 -0
- package/dist/FoldersFilled-DltXRmvi.js.map +1 -0
- package/dist/FullscreenChartMode-CFMx3vcM.js +19 -0
- package/dist/FullscreenChartMode-CFMx3vcM.js.map +1 -0
- package/dist/Fullsreen-BVTaokEj.js +26 -0
- package/dist/Fullsreen-BVTaokEj.js.map +1 -0
- package/dist/Futures-DS8q_rFt.js +19 -0
- package/dist/Futures-DS8q_rFt.js.map +1 -0
- package/dist/Fx-CWs73-eE.js +19 -0
- package/dist/Fx-CWs73-eE.js.map +1 -0
- package/dist/GettingStarted-gJwGJtFR.js +26 -0
- package/dist/GettingStarted-gJwGJtFR.js.map +1 -0
- package/dist/Ghost-Cg2HzN5x.js +19 -0
- package/dist/Ghost-Cg2HzN5x.js.map +1 -0
- package/dist/Gift-DgFV5TUI.js +24 -0
- package/dist/Gift-DgFV5TUI.js.map +1 -0
- package/dist/GiftFilled-DiIWPFDn.js +33 -0
- package/dist/GiftFilled-DiIWPFDn.js.map +1 -0
- package/dist/Google-fkCeRBXO.js +19 -0
- package/dist/Google-fkCeRBXO.js.map +1 -0
- package/dist/GridDots-Bc5xIy6b.js +19 -0
- package/dist/GridDots-Bc5xIy6b.js.map +1 -0
- package/dist/GridFilled-DIz75L0K.js +50 -0
- package/dist/GridFilled-DIz75L0K.js.map +1 -0
- package/dist/Guides-DI2YlDH0.js +25 -0
- package/dist/Guides-DI2YlDH0.js.map +1 -0
- package/dist/Hashtag-Bk6MSsEX.js +46 -0
- package/dist/Hashtag-Bk6MSsEX.js.map +1 -0
- package/dist/Heading1-De8jFZhh.js +26 -0
- package/dist/Heading1-De8jFZhh.js.map +1 -0
- package/dist/Heading2-Dzmolb5j.js +26 -0
- package/dist/Heading2-Dzmolb5j.js.map +1 -0
- package/dist/Heading3-BYtLnReH.js +26 -0
- package/dist/Heading3-BYtLnReH.js.map +1 -0
- package/dist/Holdtime-BbyE9iE6.js +30 -0
- package/dist/Holdtime-BbyE9iE6.js.map +1 -0
- package/dist/HugeGreenCheck-CCUW6oPo.js +24 -0
- package/dist/HugeGreenCheck-CCUW6oPo.js.map +1 -0
- package/dist/HugeRedCross-D_b4nk0J.js +31 -0
- package/dist/HugeRedCross-D_b4nk0J.js.map +1 -0
- package/dist/HyperLiquid-CbFkT9hw.js +22 -0
- package/dist/HyperLiquid-CbFkT9hw.js.map +1 -0
- package/dist/Image-Brz-fGOr.js +28 -0
- package/dist/Image-Brz-fGOr.js.map +1 -0
- package/dist/Info-oaOHZYjI.js +26 -0
- package/dist/Info-oaOHZYjI.js.map +1 -0
- package/dist/InlineView-2kNB0Enp.js +30 -0
- package/dist/InlineView-2kNB0Enp.js.map +1 -0
- package/dist/Journal-CbwQcUDO.js +28 -0
- package/dist/Journal-CbwQcUDO.js.map +1 -0
- package/dist/JournalMistake-Bp4iWVu6.js +19 -0
- package/dist/JournalMistake-Bp4iWVu6.js.map +1 -0
- package/dist/LaptopMobile-Bzw5dynP.js +28 -0
- package/dist/LaptopMobile-Bzw5dynP.js.map +1 -0
- package/dist/LaptopMobileFilled-2rX6HmAI.js +26 -0
- package/dist/LaptopMobileFilled-2rX6HmAI.js.map +1 -0
- package/dist/Leaderboard2Outline-AL0nJTO-.js +32 -0
- package/dist/Leaderboard2Outline-AL0nJTO-.js.map +1 -0
- package/dist/Leverage-DPcdOSep.js +30 -0
- package/dist/Leverage-DPcdOSep.js.map +1 -0
- package/dist/Link-C8OzPjgn.js +39 -0
- package/dist/Link-C8OzPjgn.js.map +1 -0
- package/dist/LiquidationClearing-DzJI_Xj7.js +24 -0
- package/dist/LiquidationClearing-DzJI_Xj7.js.map +1 -0
- package/dist/LiquidationPrice-DcNv9QBb.js +24 -0
- package/dist/LiquidationPrice-DcNv9QBb.js.map +1 -0
- package/dist/Loader-BBCLE52H.js +19 -0
- package/dist/Loader-BBCLE52H.js.map +1 -0
- package/dist/LoaderBtn-COzijlE5.js +44 -0
- package/dist/LoaderBtn-COzijlE5.js.map +1 -0
- package/dist/Lock-BuVOB86t.js +25 -0
- package/dist/Lock-BuVOB86t.js.map +1 -0
- package/dist/LogoWithText-BahBdROu.js +19 -0
- package/dist/LogoWithText-BahBdROu.js.map +1 -0
- package/dist/LogoWithTextDark-XjSj90Fv.js +19 -0
- package/dist/LogoWithTextDark-XjSj90Fv.js.map +1 -0
- package/dist/LogoWithoutIcon-BYZD4g32.js +19 -0
- package/dist/LogoWithoutIcon-BYZD4g32.js.map +1 -0
- package/dist/Logout-BNha9COb.js +26 -0
- package/dist/Logout-BNha9COb.js.map +1 -0
- package/dist/MAE-MFE-BsTFwl5I.js +36 -0
- package/dist/MAE-MFE-BsTFwl5I.js.map +1 -0
- package/dist/MAE-MFEAlt-Cqs9r4rc.js +36 -0
- package/dist/MAE-MFEAlt-Cqs9r4rc.js.map +1 -0
- package/dist/Map-DsTW17sR.js +39 -0
- package/dist/Map-DsTW17sR.js.map +1 -0
- package/dist/MarginUse-DZl1p-uI.js +30 -0
- package/dist/MarginUse-DZl1p-uI.js.map +1 -0
- package/dist/MarketPrice-wwIDYo6R.js +22 -0
- package/dist/MarketPrice-wwIDYo6R.js.map +1 -0
- package/dist/Menu-CjwwEAj1.js +30 -0
- package/dist/Menu-CjwwEAj1.js.map +1 -0
- package/dist/Message-8vJK5D8k.js +25 -0
- package/dist/Message-8vJK5D8k.js.map +1 -0
- package/dist/Metatrader4-CMnzLUUk.js +18 -0
- package/dist/Metatrader4-CMnzLUUk.js.map +1 -0
- package/dist/Metatrader5-MHKYTSCa.js +19 -0
- package/dist/Metatrader5-MHKYTSCa.js.map +1 -0
- package/dist/MetricsLine-D_IFJ11s.js +36 -0
- package/dist/MetricsLine-D_IFJ11s.js.map +1 -0
- package/dist/Mexc-CAGUhPVD.js +30 -0
- package/dist/Mexc-CAGUhPVD.js.map +1 -0
- package/dist/Microphone-DqWOWCQn.js +26 -0
- package/dist/Microphone-DqWOWCQn.js.map +1 -0
- package/dist/Minus-B5h1wgoj.js +24 -0
- package/dist/Minus-B5h1wgoj.js.map +1 -0
- package/dist/Mistake-CmdpjiGj.js +31 -0
- package/dist/Mistake-CmdpjiGj.js.map +1 -0
- package/dist/Moon-DxFGxk9L.js +24 -0
- package/dist/Moon-DxFGxk9L.js.map +1 -0
- package/dist/Multiselect-BvbCI8ih.js +46 -0
- package/dist/Multiselect-BvbCI8ih.js.map +1 -0
- package/dist/Notes-iY3oVJ-g.js +36 -0
- package/dist/Notes-iY3oVJ-g.js.map +1 -0
- package/dist/OKX-DDtA_TMD.js +75 -0
- package/dist/OKX-DDtA_TMD.js.map +1 -0
- package/dist/OneTwoChartMode-CLGLbNBr.js +36 -0
- package/dist/OneTwoChartMode-CLGLbNBr.js.map +1 -0
- package/dist/OpenDate-B1LqU1mX.js +28 -0
- package/dist/OpenDate-B1LqU1mX.js.map +1 -0
- package/dist/OpenedAsPlanned-E8JWa74y.js +32 -0
- package/dist/OpenedAsPlanned-E8JWa74y.js.map +1 -0
- package/dist/OpenedAsPlannedAlt-BEBBRawZ.js +32 -0
- package/dist/OpenedAsPlannedAlt-BEBBRawZ.js.map +1 -0
- package/dist/Overview-D5BM7Uza.js +36 -0
- package/dist/Overview-D5BM7Uza.js.map +1 -0
- package/dist/Pair-CDNU2EiD.js +19 -0
- package/dist/Pair-CDNU2EiD.js.map +1 -0
- package/dist/Paperclip-CocKy5jy.js +22 -0
- package/dist/Paperclip-CocKy5jy.js.map +1 -0
- package/dist/PlanBase-CPvrJaLo.js +36 -0
- package/dist/PlanBase-CPvrJaLo.js.map +1 -0
- package/dist/PlanFree-C4oHVxFf.js +46 -0
- package/dist/PlanFree-C4oHVxFf.js.map +1 -0
- package/dist/PlanPro-kKJINxBN.js +36 -0
- package/dist/PlanPro-kKJINxBN.js.map +1 -0
- package/dist/PlataByMono-C-T_rCul.js +19 -0
- package/dist/PlataByMono-C-T_rCul.js.map +1 -0
- package/dist/PlayFilled-CgAhP-mS.js +22 -0
- package/dist/PlayFilled-CgAhP-mS.js.map +1 -0
- package/dist/Plus-BY-gUhOK.js +22 -0
- package/dist/Plus-BY-gUhOK.js.map +1 -0
- package/dist/Pnl-NetPnl-Dj9EW9Ig.js +30 -0
- package/dist/Pnl-NetPnl-Dj9EW9Ig.js.map +1 -0
- package/dist/PositionBottom-BGZl_627.js +28 -0
- package/dist/PositionBottom-BGZl_627.js.map +1 -0
- package/dist/PositionCriteria-UUjvMzlv.js +36 -0
- package/dist/PositionCriteria-UUjvMzlv.js.map +1 -0
- package/dist/PositionSide-DT-N0ixx.js +24 -0
- package/dist/PositionSide-DT-N0ixx.js.map +1 -0
- package/dist/PositionStatus-DrF0Un2w.js +19 -0
- package/dist/PositionStatus-DrF0Un2w.js.map +1 -0
- package/dist/PositionTop-C0N8SY1T.js +28 -0
- package/dist/PositionTop-C0N8SY1T.js.map +1 -0
- package/dist/PositionType-DE8vzisR.js +30 -0
- package/dist/PositionType-DE8vzisR.js.map +1 -0
- package/dist/PresentationScreenOutline-h4rT_BOe.js +24 -0
- package/dist/PresentationScreenOutline-h4rT_BOe.js.map +1 -0
- package/dist/PrizepoolDuotone-aOF_B53r.js +19 -0
- package/dist/PrizepoolDuotone-aOF_B53r.js.map +1 -0
- package/dist/PrizepoolDuotone2-73jYIOzN.js +19 -0
- package/dist/PrizepoolDuotone2-73jYIOzN.js.map +1 -0
- package/dist/Progress0Futures-CLvDRcxF.js +28 -0
- package/dist/Progress0Futures-CLvDRcxF.js.map +1 -0
- package/dist/Progress1Futures-CiPvuwRT.js +32 -0
- package/dist/Progress1Futures-CiPvuwRT.js.map +1 -0
- package/dist/Progress2Futures-DQuY8H45.js +32 -0
- package/dist/Progress2Futures-DQuY8H45.js.map +1 -0
- package/dist/ProgressBox-COx8877W.js +24 -0
- package/dist/ProgressBox-COx8877W.js.map +1 -0
- package/dist/ProgressBoxChecked-Czcodp6n.js +21 -0
- package/dist/ProgressBoxChecked-Czcodp6n.js.map +1 -0
- package/dist/QRCode-DhVk6qgA.js +19 -0
- package/dist/QRCode-DhVk6qgA.js.map +1 -0
- package/dist/Question-D0eA-sQ7.js +32 -0
- package/dist/Question-D0eA-sQ7.js.map +1 -0
- package/dist/RiskPerTrade-4zWTx9BW.js +40 -0
- package/dist/RiskPerTrade-4zWTx9BW.js.map +1 -0
- package/dist/RiskReward-DKj_cRCM.js +40 -0
- package/dist/RiskReward-DKj_cRCM.js.map +1 -0
- package/dist/Roadmap-BNwbNnnf.js +28 -0
- package/dist/Roadmap-BNwbNnnf.js.map +1 -0
- package/dist/SackDollar-Dl15Yx-9.js +19 -0
- package/dist/SackDollar-Dl15Yx-9.js.map +1 -0
- package/dist/Search-rKzDkTDi.js +24 -0
- package/dist/Search-rKzDkTDi.js.map +1 -0
- package/dist/Session-BJ85-kZn.js +28 -0
- package/dist/Session-BJ85-kZn.js.map +1 -0
- package/dist/SessionAlt-Bszn9dMi.js +28 -0
- package/dist/SessionAlt-Bszn9dMi.js.map +1 -0
- package/dist/Settings-D94YRSt0.js +24 -0
- package/dist/Settings-D94YRSt0.js.map +1 -0
- package/dist/Settings_2-sZyogOQG.js +24 -0
- package/dist/Settings_2-sZyogOQG.js.map +1 -0
- package/dist/Setup-BysuwHdN.js +19 -0
- package/dist/Setup-BysuwHdN.js.map +1 -0
- package/dist/Share-D8d1xWVC.js +25 -0
- package/dist/Share-D8d1xWVC.js.map +1 -0
- package/dist/ShareOutline-Cc69kCKh.js +26 -0
- package/dist/ShareOutline-Cc69kCKh.js.map +1 -0
- package/dist/Shield-ClyYmKuA.js +25 -0
- package/dist/Shield-ClyYmKuA.js.map +1 -0
- package/dist/Side-B0HnvgFU.js +24 -0
- package/dist/Side-B0HnvgFU.js.map +1 -0
- package/dist/Sidebar-C6vmoZ2M.js +30 -0
- package/dist/Sidebar-C6vmoZ2M.js.map +1 -0
- package/dist/Size-BwW5dazY.js +24 -0
- package/dist/Size-BwW5dazY.js.map +1 -0
- package/dist/Social-Dsr_J_Vw.js +36 -0
- package/dist/Social-Dsr_J_Vw.js.map +1 -0
- package/dist/SortArrows-C_8NoFRA.js +26 -0
- package/dist/SortArrows-C_8NoFRA.js.map +1 -0
- package/dist/SortDown-DaspJou1.js +22 -0
- package/dist/SortDown-DaspJou1.js.map +1 -0
- package/dist/SortUp-DfwL2EQ8.js +22 -0
- package/dist/SortUp-DfwL2EQ8.js.map +1 -0
- package/dist/SparkleFilled-BfEJnYa8.js +22 -0
- package/dist/SparkleFilled-BfEJnYa8.js.map +1 -0
- package/dist/Spot-BZ1VhI6I.js +19 -0
- package/dist/Spot-BZ1VhI6I.js.map +1 -0
- package/dist/Star-BFovVEHJ.js +24 -0
- package/dist/Star-BFovVEHJ.js.map +1 -0
- package/dist/StarFilled-BsZj4dnr.js +40 -0
- package/dist/StarFilled-BsZj4dnr.js.map +1 -0
- package/dist/Status-D7ijq83r.js +19 -0
- package/dist/Status-D7ijq83r.js.map +1 -0
- package/dist/StopLoss-BUFvexJ4.js +30 -0
- package/dist/StopLoss-BUFvexJ4.js.map +1 -0
- package/dist/Stripe-WuPtpk62.js +30 -0
- package/dist/Stripe-WuPtpk62.js.map +1 -0
- package/dist/Sun-6CTP_49b.js +19 -0
- package/dist/Sun-6CTP_49b.js.map +1 -0
- package/dist/Swap-Funding-D1QIftkz.js +28 -0
- package/dist/Swap-Funding-D1QIftkz.js.map +1 -0
- package/dist/Sync-BuKvF6Nu.js +26 -0
- package/dist/Sync-BuKvF6Nu.js.map +1 -0
- package/dist/Table-Dd5dSJkU.js +24 -0
- package/dist/Table-Dd5dSJkU.js.map +1 -0
- package/dist/TableSocialFirstPlace-Du_tPtKo.js +57 -0
- package/dist/TableSocialFirstPlace-Du_tPtKo.js.map +1 -0
- package/dist/TableSocialSecondPlace-CdL4BBFe.js +57 -0
- package/dist/TableSocialSecondPlace-CdL4BBFe.js.map +1 -0
- package/dist/TableSocialTrirdPlace-Cl8bJm9G.js +57 -0
- package/dist/TableSocialTrirdPlace-Cl8bJm9G.js.map +1 -0
- package/dist/TableView-CSe_OuBc.js +39 -0
- package/dist/TableView-CSe_OuBc.js.map +1 -0
- package/dist/Tag-BiSXjgYS.js +24 -0
- package/dist/Tag-BiSXjgYS.js.map +1 -0
- package/dist/TakeProfit-trC676Ox.js +34 -0
- package/dist/TakeProfit-trC676Ox.js.map +1 -0
- package/dist/Target-CoKqPk94.js +19 -0
- package/dist/Target-CoKqPk94.js.map +1 -0
- package/dist/Terminal-Cx6MA8OY.js +19 -0
- package/dist/Terminal-Cx6MA8OY.js.map +1 -0
- package/dist/Tether-CQNLPR9e.js +28 -0
- package/dist/Tether-CQNLPR9e.js.map +1 -0
- package/dist/TetherCircle-BlUbEFMq.js +19 -0
- package/dist/TetherCircle-BlUbEFMq.js.map +1 -0
- package/dist/Text-Dsvq64xA.js +25 -0
- package/dist/Text-Dsvq64xA.js.map +1 -0
- package/dist/ThreeDots-BRAobhqU.js +30 -0
- package/dist/ThreeDots-BRAobhqU.js.map +1 -0
- package/dist/Todolist-DcD4Ixgh.js +32 -0
- package/dist/Todolist-DcD4Ixgh.js.map +1 -0
- package/dist/TournamentOutline-aBVpvgqo.js +24 -0
- package/dist/TournamentOutline-aBVpvgqo.js.map +1 -0
- package/dist/Tower-BpgMCQdJ.js +19 -0
- package/dist/Tower-BpgMCQdJ.js.map +1 -0
- package/dist/Trash-Ce1Zh37Z.js +28 -0
- package/dist/Trash-Ce1Zh37Z.js.map +1 -0
- package/dist/TrashAlt-cwhXT89G.js +22 -0
- package/dist/TrashAlt-cwhXT89G.js.map +1 -0
- package/dist/TriangleWarningDuotone-5_azgb83.js +40 -0
- package/dist/TriangleWarningDuotone-5_azgb83.js.map +1 -0
- package/dist/User-CHbVqZ8s.js +32 -0
- package/dist/User-CHbVqZ8s.js.map +1 -0
- package/dist/Users-C_Iotu0x.js +19 -0
- package/dist/Users-C_Iotu0x.js.map +1 -0
- package/dist/UsersCheck-DOrUmm2x.js +46 -0
- package/dist/UsersCheck-DOrUmm2x.js.map +1 -0
- package/dist/Volume-CDRIluEt.js +19 -0
- package/dist/Volume-CDRIluEt.js.map +1 -0
- package/dist/Warning-DJYhbbYr.js +32 -0
- package/dist/Warning-DJYhbbYr.js.map +1 -0
- package/dist/Weekday-DJJGrLGw.js +19 -0
- package/dist/Weekday-DJJGrLGw.js.map +1 -0
- package/dist/Youtube-Bjod0pGy.js +22 -0
- package/dist/Youtube-Bjod0pGy.js.map +1 -0
- package/dist/index-BKAQinjO.js +20061 -0
- package/dist/index-BKAQinjO.js.map +1 -0
- package/dist/index.css +1 -1
- package/dist/scope360-core.js +67 -61
- package/dist/scope360-core.umd.cjs +8 -8
- package/dist/scope360-core.umd.cjs.map +1 -1
- package/package.json +15 -12
- package/dist/Account-iJz7E4ug.js +0 -34
- package/dist/Account-iJz7E4ug.js.map +0 -1
- package/dist/AccountDuotone-hORN9ecU.js +0 -19
- package/dist/AccountDuotone-hORN9ecU.js.map +0 -1
- package/dist/ActivePair-BExYHVoq.js +0 -24
- package/dist/ActivePair-BExYHVoq.js.map +0 -1
- package/dist/AiSearchOutline-DXprkpYT.js +0 -20
- package/dist/AiSearchOutline-DXprkpYT.js.map +0 -1
- package/dist/Apple-BWT4crDO.js +0 -25
- package/dist/Apple-BWT4crDO.js.map +0 -1
- package/dist/ArrowBottom-C24w1ok-.js +0 -22
- package/dist/ArrowBottom-C24w1ok-.js.map +0 -1
- package/dist/ArrowRightBottom-DctQac-J.js +0 -24
- package/dist/ArrowRightBottom-DctQac-J.js.map +0 -1
- package/dist/ArrowRightTop-DwgUZRM-.js +0 -22
- package/dist/ArrowRightTop-DwgUZRM-.js.map +0 -1
- package/dist/ArrowStrategyFilled-K3ZK6V0Y.js +0 -41
- package/dist/ArrowStrategyFilled-K3ZK6V0Y.js.map +0 -1
- package/dist/ArrowTop-JU3AGHHS.js +0 -22
- package/dist/ArrowTop-JU3AGHHS.js.map +0 -1
- package/dist/ArrowTurnRightOutline-7-fPFhXJ.js +0 -22
- package/dist/ArrowTurnRightOutline-7-fPFhXJ.js.map +0 -1
- package/dist/B-r_heKu-a.js +0 -22
- package/dist/B-r_heKu-a.js.map +0 -1
- package/dist/Bell-evZNOu9r.js +0 -28
- package/dist/Bell-evZNOu9r.js.map +0 -1
- package/dist/Binance-A9fU92TT.js +0 -22
- package/dist/Binance-A9fU92TT.js.map +0 -1
- package/dist/Brain-DSHOkW-H.js +0 -24
- package/dist/Brain-DSHOkW-H.js.map +0 -1
- package/dist/Bybit-CZP7pmgS.js +0 -19
- package/dist/Bybit-CZP7pmgS.js.map +0 -1
- package/dist/BybitWhite-CKjlwmk7.js +0 -19
- package/dist/BybitWhite-CKjlwmk7.js.map +0 -1
- package/dist/CIrcleCheckFilled-r16akPPj.js +0 -24
- package/dist/CIrcleCheckFilled-r16akPPj.js.map +0 -1
- package/dist/Calendar-sg1DxlWA.js +0 -19
- package/dist/Calendar-sg1DxlWA.js.map +0 -1
- package/dist/CalendarCheckin-7kdgRqYM.js +0 -28
- package/dist/CalendarCheckin-7kdgRqYM.js.map +0 -1
- package/dist/CalendarCheckout-DOlx5bK2.js +0 -28
- package/dist/CalendarCheckout-DOlx5bK2.js.map +0 -1
- package/dist/CalendarDays-Cs3FW_Ew.js +0 -19
- package/dist/CalendarDays-Cs3FW_Ew.js.map +0 -1
- package/dist/CalendarDuotone-BMnaTTbA.js +0 -19
- package/dist/CalendarDuotone-BMnaTTbA.js.map +0 -1
- package/dist/CalendarFilled-uxnd5tvR.js +0 -26
- package/dist/CalendarFilled-uxnd5tvR.js.map +0 -1
- package/dist/Camera-DCD_45j9.js +0 -36
- package/dist/Camera-DCD_45j9.js.map +0 -1
- package/dist/CardView-htGJr1rG.js +0 -42
- package/dist/CardView-htGJr1rG.js.map +0 -1
- package/dist/Checkbox-RaPPJpGM.js +0 -33
- package/dist/Checkbox-RaPPJpGM.js.map +0 -1
- package/dist/CheckboxCheckedDoutone-DI7Hly_F.js +0 -36
- package/dist/CheckboxCheckedDoutone-DI7Hly_F.js.map +0 -1
- package/dist/CheckboxUnchecked-BtDzUrOf.js +0 -26
- package/dist/CheckboxUnchecked-BtDzUrOf.js.map +0 -1
- package/dist/ChevronDown-y4n6Yll0.js +0 -25
- package/dist/ChevronDown-y4n6Yll0.js.map +0 -1
- package/dist/ChevronLeft-BeE_8A9E.js +0 -25
- package/dist/ChevronLeft-BeE_8A9E.js.map +0 -1
- package/dist/ChevronRight-zxSo9h0Z.js +0 -25
- package/dist/ChevronRight-zxSo9h0Z.js.map +0 -1
- package/dist/ChevronUp-DK1dFuBp.js +0 -25
- package/dist/ChevronUp-DK1dFuBp.js.map +0 -1
- package/dist/CircleChevronDownFilled-DUav0peb.js +0 -22
- package/dist/CircleChevronDownFilled-DUav0peb.js.map +0 -1
- package/dist/CircleChevronLeftFilled-DYEAtCk0.js +0 -22
- package/dist/CircleChevronLeftFilled-DYEAtCk0.js.map +0 -1
- package/dist/CircleChevronRightFilled-BjQTLp9M.js +0 -22
- package/dist/CircleChevronRightFilled-BjQTLp9M.js.map +0 -1
- package/dist/CircleChevronTopFilled-CBHVq9rn.js +0 -22
- package/dist/CircleChevronTopFilled-CBHVq9rn.js.map +0 -1
- package/dist/Clock-Do0hsnXT.js +0 -28
- package/dist/Clock-Do0hsnXT.js.map +0 -1
- package/dist/ClockDuotone-DHYUsLu-.js +0 -19
- package/dist/ClockDuotone-DHYUsLu-.js.map +0 -1
- package/dist/CloseCircle-LZ8kLe-y.js +0 -30
- package/dist/CloseCircle-LZ8kLe-y.js.map +0 -1
- package/dist/CloseDate-BXqLYCh8.js +0 -28
- package/dist/CloseDate-BXqLYCh8.js.map +0 -1
- package/dist/Collapse-COvhzEvN.js +0 -24
- package/dist/Collapse-COvhzEvN.js.map +0 -1
- package/dist/Command-Dz0DkLjG.js +0 -24
- package/dist/Command-Dz0DkLjG.js.map +0 -1
- package/dist/Commission-DL7pK81A.js +0 -28
- package/dist/Commission-DL7pK81A.js.map +0 -1
- package/dist/ConnectionManager-D_l8rYQZ.js +0 -26
- package/dist/ConnectionManager-D_l8rYQZ.js.map +0 -1
- package/dist/Copy-137Vc7qb.js +0 -28
- package/dist/Copy-137Vc7qb.js.map +0 -1
- package/dist/CopyOutline-DYsJeigo.js +0 -23
- package/dist/CopyOutline-DYsJeigo.js.map +0 -1
- package/dist/Cross-Cts5SbjF.js +0 -24
- package/dist/Cross-Cts5SbjF.js.map +0 -1
- package/dist/DailyBalances-xuz9usQJ.js +0 -28
- package/dist/DailyBalances-xuz9usQJ.js.map +0 -1
- package/dist/DailyStats-D4atoDG1.js +0 -35
- package/dist/DailyStats-D4atoDG1.js.map +0 -1
- package/dist/Dashboard-B5DUffPk.js +0 -27
- package/dist/Dashboard-B5DUffPk.js.map +0 -1
- package/dist/DefaulltChartMode-DJQE5zfw.js +0 -19
- package/dist/DefaulltChartMode-DJQE5zfw.js.map +0 -1
- package/dist/DotGridMenu-DmpKL-cr.js +0 -19
- package/dist/DotGridMenu-DmpKL-cr.js.map +0 -1
- package/dist/Download-YDFSgewF.js +0 -25
- package/dist/Download-YDFSgewF.js.map +0 -1
- package/dist/DownloadBoxOutline-pJ4rpFac.js +0 -24
- package/dist/DownloadBoxOutline-pJ4rpFac.js.map +0 -1
- package/dist/Edit-CcfZy9dJ.js +0 -28
- package/dist/Edit-CcfZy9dJ.js.map +0 -1
- package/dist/EntryPrice-Bv7Xbex6.js +0 -26
- package/dist/EntryPrice-Bv7Xbex6.js.map +0 -1
- package/dist/Error-d-ExB71o.js +0 -35
- package/dist/Error-d-ExB71o.js.map +0 -1
- package/dist/ExitPrice-D1ub0kLv.js +0 -26
- package/dist/ExitPrice-D1ub0kLv.js.map +0 -1
- package/dist/External-bp-dmbog.js +0 -26
- package/dist/External-bp-dmbog.js.map +0 -1
- package/dist/ExternalLink-QbU1QvbJ.js +0 -26
- package/dist/ExternalLink-QbU1QvbJ.js.map +0 -1
- package/dist/EyeClosed-CP0Ybe21.js +0 -22
- package/dist/EyeClosed-CP0Ybe21.js.map +0 -1
- package/dist/EyeClosedOutline-BPwkwlXq.js +0 -24
- package/dist/EyeClosedOutline-BPwkwlXq.js.map +0 -1
- package/dist/EyeOpened-ZurIbWJ1.js +0 -19
- package/dist/EyeOpened-ZurIbWJ1.js.map +0 -1
- package/dist/EyeOpenedOutline-B8kiWSfs.js +0 -28
- package/dist/EyeOpenedOutline-B8kiWSfs.js.map +0 -1
- package/dist/Filter-D11gQDCI.js +0 -24
- package/dist/Filter-D11gQDCI.js.map +0 -1
- package/dist/FloppyDisk-IqKGwtCN.js +0 -39
- package/dist/FloppyDisk-IqKGwtCN.js.map +0 -1
- package/dist/Folder-C_3EdZbD.js +0 -24
- package/dist/Folder-C_3EdZbD.js.map +0 -1
- package/dist/FolderColored-BjVQOhxE.js +0 -19
- package/dist/FolderColored-BjVQOhxE.js.map +0 -1
- package/dist/FoldersFilled-DadrSeW2.js +0 -33
- package/dist/FoldersFilled-DadrSeW2.js.map +0 -1
- package/dist/FullscreenChartMode-Cor4YZg6.js +0 -19
- package/dist/FullscreenChartMode-Cor4YZg6.js.map +0 -1
- package/dist/Fullsreen-CN9D6dth.js +0 -26
- package/dist/Fullsreen-CN9D6dth.js.map +0 -1
- package/dist/Futures-utDlePYx.js +0 -19
- package/dist/Futures-utDlePYx.js.map +0 -1
- package/dist/Fx-DNvywySW.js +0 -19
- package/dist/Fx-DNvywySW.js.map +0 -1
- package/dist/GettingStarted-DdNcB0_d.js +0 -26
- package/dist/GettingStarted-DdNcB0_d.js.map +0 -1
- package/dist/Ghost-CkA9Hd_2.js +0 -19
- package/dist/Ghost-CkA9Hd_2.js.map +0 -1
- package/dist/Gift-BvqCaQ-l.js +0 -24
- package/dist/Gift-BvqCaQ-l.js.map +0 -1
- package/dist/GiftFilled-DMoY_-4A.js +0 -33
- package/dist/GiftFilled-DMoY_-4A.js.map +0 -1
- package/dist/Google-DzLx999-.js +0 -19
- package/dist/Google-DzLx999-.js.map +0 -1
- package/dist/GridDots-BtrJ1czq.js +0 -19
- package/dist/GridDots-BtrJ1czq.js.map +0 -1
- package/dist/GridFilled-D-jX0O1v.js +0 -50
- package/dist/GridFilled-D-jX0O1v.js.map +0 -1
- package/dist/Guides-LqiUtsMj.js +0 -25
- package/dist/Guides-LqiUtsMj.js.map +0 -1
- package/dist/Hashtag-BGWgwEom.js +0 -46
- package/dist/Hashtag-BGWgwEom.js.map +0 -1
- package/dist/Heading1-DFv005yP.js +0 -26
- package/dist/Heading1-DFv005yP.js.map +0 -1
- package/dist/Heading2-rUg55hOE.js +0 -26
- package/dist/Heading2-rUg55hOE.js.map +0 -1
- package/dist/Heading3-C4o9UtoI.js +0 -26
- package/dist/Heading3-C4o9UtoI.js.map +0 -1
- package/dist/Holdtime-CYS-llox.js +0 -30
- package/dist/Holdtime-CYS-llox.js.map +0 -1
- package/dist/HugeGreenCheck-COeR94W7.js +0 -24
- package/dist/HugeGreenCheck-COeR94W7.js.map +0 -1
- package/dist/HugeRedCross-aYzioGaT.js +0 -31
- package/dist/HugeRedCross-aYzioGaT.js.map +0 -1
- package/dist/HyperLiquid-Dh7utbv6.js +0 -22
- package/dist/HyperLiquid-Dh7utbv6.js.map +0 -1
- package/dist/Image--XkKJZP7.js +0 -28
- package/dist/Image--XkKJZP7.js.map +0 -1
- package/dist/Info-9mlRfZ_V.js +0 -26
- package/dist/Info-9mlRfZ_V.js.map +0 -1
- package/dist/InlineView-Bk5BSwWS.js +0 -30
- package/dist/InlineView-Bk5BSwWS.js.map +0 -1
- package/dist/Journal-DMGX9JB9.js +0 -28
- package/dist/Journal-DMGX9JB9.js.map +0 -1
- package/dist/JournalMistake-q4ZBij6w.js +0 -19
- package/dist/JournalMistake-q4ZBij6w.js.map +0 -1
- package/dist/LaptopMobile-FrfLHl90.js +0 -28
- package/dist/LaptopMobile-FrfLHl90.js.map +0 -1
- package/dist/LaptopMobileFilled-BPOrKUhe.js +0 -26
- package/dist/LaptopMobileFilled-BPOrKUhe.js.map +0 -1
- package/dist/Leverage-iGrbUsOX.js +0 -30
- package/dist/Leverage-iGrbUsOX.js.map +0 -1
- package/dist/Link-MlfYU83b.js +0 -39
- package/dist/Link-MlfYU83b.js.map +0 -1
- package/dist/LiquidationClearing-DCBVe3EU.js +0 -24
- package/dist/LiquidationClearing-DCBVe3EU.js.map +0 -1
- package/dist/LiquidationPrice-3nh6zCFD.js +0 -24
- package/dist/LiquidationPrice-3nh6zCFD.js.map +0 -1
- package/dist/Loader-B6mgXUaN.js +0 -19
- package/dist/Loader-B6mgXUaN.js.map +0 -1
- package/dist/LoaderBtn-BTcH7iZp.js +0 -44
- package/dist/LoaderBtn-BTcH7iZp.js.map +0 -1
- package/dist/Lock-BH4yrjZg.js +0 -25
- package/dist/Lock-BH4yrjZg.js.map +0 -1
- package/dist/LogoWithText-Cvn3P_ND.js +0 -19
- package/dist/LogoWithText-Cvn3P_ND.js.map +0 -1
- package/dist/LogoWithTextDark-Cs7C6qU7.js +0 -19
- package/dist/LogoWithTextDark-Cs7C6qU7.js.map +0 -1
- package/dist/LogoWithoutIcon-B9wnIAvE.js +0 -19
- package/dist/LogoWithoutIcon-B9wnIAvE.js.map +0 -1
- package/dist/Logout-B4B4oyOP.js +0 -26
- package/dist/Logout-B4B4oyOP.js.map +0 -1
- package/dist/MAE-MFE-C5js0Cb1.js +0 -36
- package/dist/MAE-MFE-C5js0Cb1.js.map +0 -1
- package/dist/MAE-MFEAlt-By8nS5m8.js +0 -36
- package/dist/MAE-MFEAlt-By8nS5m8.js.map +0 -1
- package/dist/Map-BU16I5qa.js +0 -39
- package/dist/Map-BU16I5qa.js.map +0 -1
- package/dist/MarginUse-B2bkeM3l.js +0 -30
- package/dist/MarginUse-B2bkeM3l.js.map +0 -1
- package/dist/MarketPrice-CR-BDYw2.js +0 -22
- package/dist/MarketPrice-CR-BDYw2.js.map +0 -1
- package/dist/Menu-Cx00blTe.js +0 -30
- package/dist/Menu-Cx00blTe.js.map +0 -1
- package/dist/Message-CgtJqmvv.js +0 -25
- package/dist/Message-CgtJqmvv.js.map +0 -1
- package/dist/Metatrader4-YtVRH_1x.js +0 -18
- package/dist/Metatrader4-YtVRH_1x.js.map +0 -1
- package/dist/Metatrader5-TT0t3fsh.js +0 -19
- package/dist/Metatrader5-TT0t3fsh.js.map +0 -1
- package/dist/MetricsLine-JtGO6INZ.js +0 -36
- package/dist/MetricsLine-JtGO6INZ.js.map +0 -1
- package/dist/Mexc-CEvx2Gg1.js +0 -30
- package/dist/Mexc-CEvx2Gg1.js.map +0 -1
- package/dist/Microphone-BZA9IaWj.js +0 -26
- package/dist/Microphone-BZA9IaWj.js.map +0 -1
- package/dist/Minus-BqEz1z6s.js +0 -24
- package/dist/Minus-BqEz1z6s.js.map +0 -1
- package/dist/Mistake-Ca9OhaZ-.js +0 -31
- package/dist/Mistake-Ca9OhaZ-.js.map +0 -1
- package/dist/Moon-CAxJI1ts.js +0 -24
- package/dist/Moon-CAxJI1ts.js.map +0 -1
- package/dist/Multiselect-KGf84U2m.js +0 -46
- package/dist/Multiselect-KGf84U2m.js.map +0 -1
- package/dist/Notes-BpZ4-wjN.js +0 -36
- package/dist/Notes-BpZ4-wjN.js.map +0 -1
- package/dist/OKX-igIWJB8k.js +0 -75
- package/dist/OKX-igIWJB8k.js.map +0 -1
- package/dist/OneTwoChartMode-As9AymLi.js +0 -36
- package/dist/OneTwoChartMode-As9AymLi.js.map +0 -1
- package/dist/OpenDate-WDQ84PLS.js +0 -28
- package/dist/OpenDate-WDQ84PLS.js.map +0 -1
- package/dist/OpenedAsPlanned-C4_H9hdG.js +0 -32
- package/dist/OpenedAsPlanned-C4_H9hdG.js.map +0 -1
- package/dist/OpenedAsPlannedAlt-z1qu-r9n.js +0 -32
- package/dist/OpenedAsPlannedAlt-z1qu-r9n.js.map +0 -1
- package/dist/Overview-C_takM6A.js +0 -36
- package/dist/Overview-C_takM6A.js.map +0 -1
- package/dist/Pair-ZMBxZ8Le.js +0 -19
- package/dist/Pair-ZMBxZ8Le.js.map +0 -1
- package/dist/Paperclip-xEmP_02T.js +0 -22
- package/dist/Paperclip-xEmP_02T.js.map +0 -1
- package/dist/PlanBase-DPk_MpAe.js +0 -36
- package/dist/PlanBase-DPk_MpAe.js.map +0 -1
- package/dist/PlanFree-Czo6zQyj.js +0 -46
- package/dist/PlanFree-Czo6zQyj.js.map +0 -1
- package/dist/PlanPro-Ddh4r8Kc.js +0 -36
- package/dist/PlanPro-Ddh4r8Kc.js.map +0 -1
- package/dist/PlataByMono-Cu-Xyhq8.js +0 -19
- package/dist/PlataByMono-Cu-Xyhq8.js.map +0 -1
- package/dist/PlayFilled-DxyD7xHG.js +0 -22
- package/dist/PlayFilled-DxyD7xHG.js.map +0 -1
- package/dist/Plus-48YCG1jm.js +0 -22
- package/dist/Plus-48YCG1jm.js.map +0 -1
- package/dist/Pnl-NetPnl-pZnMQLPS.js +0 -30
- package/dist/Pnl-NetPnl-pZnMQLPS.js.map +0 -1
- package/dist/PositionBottom-S2Ln-DWJ.js +0 -28
- package/dist/PositionBottom-S2Ln-DWJ.js.map +0 -1
- package/dist/PositionCriteria-DyAW81T6.js +0 -36
- package/dist/PositionCriteria-DyAW81T6.js.map +0 -1
- package/dist/PositionSide-DH-2YicG.js +0 -24
- package/dist/PositionSide-DH-2YicG.js.map +0 -1
- package/dist/PositionStatus-Chrx6KeZ.js +0 -19
- package/dist/PositionStatus-Chrx6KeZ.js.map +0 -1
- package/dist/PositionTop-DjVPRLgD.js +0 -28
- package/dist/PositionTop-DjVPRLgD.js.map +0 -1
- package/dist/PositionType-BfXa0UNd.js +0 -30
- package/dist/PositionType-BfXa0UNd.js.map +0 -1
- package/dist/PresentationScreenOutline-CWqGz_hi.js +0 -24
- package/dist/PresentationScreenOutline-CWqGz_hi.js.map +0 -1
- package/dist/PrizepoolDuotone-D5QgewkC.js +0 -19
- package/dist/PrizepoolDuotone-D5QgewkC.js.map +0 -1
- package/dist/PrizepoolDuotone2-C2hIC0Y9.js +0 -19
- package/dist/PrizepoolDuotone2-C2hIC0Y9.js.map +0 -1
- package/dist/Progress0Futures-Df7RL9Zu.js +0 -28
- package/dist/Progress0Futures-Df7RL9Zu.js.map +0 -1
- package/dist/Progress1Futures-B6Jt-n7V.js +0 -32
- package/dist/Progress1Futures-B6Jt-n7V.js.map +0 -1
- package/dist/Progress2Futures-THrZVOou.js +0 -32
- package/dist/Progress2Futures-THrZVOou.js.map +0 -1
- package/dist/ProgressBox-D3q3iOpf.js +0 -24
- package/dist/ProgressBox-D3q3iOpf.js.map +0 -1
- package/dist/ProgressBoxChecked-CiwKKs1a.js +0 -21
- package/dist/ProgressBoxChecked-CiwKKs1a.js.map +0 -1
- package/dist/QRCode-CI4v_p-E.js +0 -19
- package/dist/QRCode-CI4v_p-E.js.map +0 -1
- package/dist/Question-C9yI0DqX.js +0 -32
- package/dist/Question-C9yI0DqX.js.map +0 -1
- package/dist/RiskPerTrade-BrnnpQjO.js +0 -40
- package/dist/RiskPerTrade-BrnnpQjO.js.map +0 -1
- package/dist/RiskReward-ClTyAaNC.js +0 -40
- package/dist/RiskReward-ClTyAaNC.js.map +0 -1
- package/dist/Roadmap-FGs0ZiyJ.js +0 -28
- package/dist/Roadmap-FGs0ZiyJ.js.map +0 -1
- package/dist/SackDollar-_l8AjkCX.js +0 -19
- package/dist/SackDollar-_l8AjkCX.js.map +0 -1
- package/dist/Search-B-_HDKuZ.js +0 -24
- package/dist/Search-B-_HDKuZ.js.map +0 -1
- package/dist/Session-BD_LmpQH.js +0 -28
- package/dist/Session-BD_LmpQH.js.map +0 -1
- package/dist/SessionAlt-D5P35mlm.js +0 -28
- package/dist/SessionAlt-D5P35mlm.js.map +0 -1
- package/dist/Settings-CRl9r9fr.js +0 -24
- package/dist/Settings-CRl9r9fr.js.map +0 -1
- package/dist/Settings_2-CuZLIRpz.js +0 -24
- package/dist/Settings_2-CuZLIRpz.js.map +0 -1
- package/dist/Setup-dUa7X4t9.js +0 -19
- package/dist/Setup-dUa7X4t9.js.map +0 -1
- package/dist/Share-CMm8g_qY.js +0 -25
- package/dist/Share-CMm8g_qY.js.map +0 -1
- package/dist/ShareOutline-Cb8G_nuQ.js +0 -26
- package/dist/ShareOutline-Cb8G_nuQ.js.map +0 -1
- package/dist/Shield-NjEQ1eJh.js +0 -25
- package/dist/Shield-NjEQ1eJh.js.map +0 -1
- package/dist/Side-CMRKEnLC.js +0 -24
- package/dist/Side-CMRKEnLC.js.map +0 -1
- package/dist/Sidebar-DsneEvQH.js +0 -30
- package/dist/Sidebar-DsneEvQH.js.map +0 -1
- package/dist/Size-CMTTMsh5.js +0 -24
- package/dist/Size-CMTTMsh5.js.map +0 -1
- package/dist/Social-BvvGQZxc.js +0 -36
- package/dist/Social-BvvGQZxc.js.map +0 -1
- package/dist/SortArrows-ZNXVyJaO.js +0 -26
- package/dist/SortArrows-ZNXVyJaO.js.map +0 -1
- package/dist/SortDown-BXWdGwjx.js +0 -22
- package/dist/SortDown-BXWdGwjx.js.map +0 -1
- package/dist/SortUp-rhNaTYf9.js +0 -22
- package/dist/SortUp-rhNaTYf9.js.map +0 -1
- package/dist/SparkleFilled-DrdSNQYK.js +0 -22
- package/dist/SparkleFilled-DrdSNQYK.js.map +0 -1
- package/dist/Spot-DxR2vH9q.js +0 -19
- package/dist/Spot-DxR2vH9q.js.map +0 -1
- package/dist/Star-DteWNonX.js +0 -24
- package/dist/Star-DteWNonX.js.map +0 -1
- package/dist/StarFilled-CMh2LVnn.js +0 -40
- package/dist/StarFilled-CMh2LVnn.js.map +0 -1
- package/dist/Status-CjpRpac6.js +0 -19
- package/dist/Status-CjpRpac6.js.map +0 -1
- package/dist/StopLoss-BpCY0DHP.js +0 -30
- package/dist/StopLoss-BpCY0DHP.js.map +0 -1
- package/dist/Stripe-DUdqaPUV.js +0 -30
- package/dist/Stripe-DUdqaPUV.js.map +0 -1
- package/dist/Sun-CHoFSVtf.js +0 -19
- package/dist/Sun-CHoFSVtf.js.map +0 -1
- package/dist/Swap-Funding-BFVwuC9K.js +0 -28
- package/dist/Swap-Funding-BFVwuC9K.js.map +0 -1
- package/dist/Sync-D9riNlez.js +0 -26
- package/dist/Sync-D9riNlez.js.map +0 -1
- package/dist/Table-DYtCQEf4.js +0 -24
- package/dist/Table-DYtCQEf4.js.map +0 -1
- package/dist/TableSocialFirstPlace-B3snPZ4L.js +0 -57
- package/dist/TableSocialFirstPlace-B3snPZ4L.js.map +0 -1
- package/dist/TableSocialSecondPlace-B5QNJ6Fj.js +0 -57
- package/dist/TableSocialSecondPlace-B5QNJ6Fj.js.map +0 -1
- package/dist/TableSocialTrirdPlace-CHFNnn1s.js +0 -57
- package/dist/TableSocialTrirdPlace-CHFNnn1s.js.map +0 -1
- package/dist/TableView-0grVLdJm.js +0 -39
- package/dist/TableView-0grVLdJm.js.map +0 -1
- package/dist/Tag-0y3plcYH.js +0 -24
- package/dist/Tag-0y3plcYH.js.map +0 -1
- package/dist/TakeProfit-DjyM5UVd.js +0 -34
- package/dist/TakeProfit-DjyM5UVd.js.map +0 -1
- package/dist/Target-CkpAZQMx.js +0 -19
- package/dist/Target-CkpAZQMx.js.map +0 -1
- package/dist/Terminal-CoRL7bSb.js +0 -19
- package/dist/Terminal-CoRL7bSb.js.map +0 -1
- package/dist/Tether-DE4j6Gra.js +0 -28
- package/dist/Tether-DE4j6Gra.js.map +0 -1
- package/dist/TetherCircle-BRJ0m2lf.js +0 -19
- package/dist/TetherCircle-BRJ0m2lf.js.map +0 -1
- package/dist/Text-DsFbWURT.js +0 -25
- package/dist/Text-DsFbWURT.js.map +0 -1
- package/dist/ThreeDots-sUAg7FvV.js +0 -30
- package/dist/ThreeDots-sUAg7FvV.js.map +0 -1
- package/dist/Todolist-CSZsMexR.js +0 -32
- package/dist/Todolist-CSZsMexR.js.map +0 -1
- package/dist/Tower-D1QhxlxM.js +0 -19
- package/dist/Tower-D1QhxlxM.js.map +0 -1
- package/dist/Trash-C_YWD24s.js +0 -28
- package/dist/Trash-C_YWD24s.js.map +0 -1
- package/dist/TrashAlt-qklTfnqD.js +0 -22
- package/dist/TrashAlt-qklTfnqD.js.map +0 -1
- package/dist/TriangleWarningDuotone-Bs5rr0Cj.js +0 -40
- package/dist/TriangleWarningDuotone-Bs5rr0Cj.js.map +0 -1
- package/dist/User-AE068Kdy.js +0 -32
- package/dist/User-AE068Kdy.js.map +0 -1
- package/dist/Users-CQ5Yrl_e.js +0 -19
- package/dist/Users-CQ5Yrl_e.js.map +0 -1
- package/dist/UsersCheck-NjsL36Go.js +0 -46
- package/dist/UsersCheck-NjsL36Go.js.map +0 -1
- package/dist/Volume-TCIgU_Vf.js +0 -19
- package/dist/Volume-TCIgU_Vf.js.map +0 -1
- package/dist/Warning-0pl5ixUK.js +0 -32
- package/dist/Warning-0pl5ixUK.js.map +0 -1
- package/dist/Weekday-BV5TJAYC.js +0 -19
- package/dist/Weekday-BV5TJAYC.js.map +0 -1
- package/dist/Youtube-Dhfe1Typ.js +0 -22
- package/dist/Youtube-Dhfe1Typ.js.map +0 -1
- package/dist/index-CmEhRgEL.js +0 -19469
- package/dist/index-CmEhRgEL.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BKAQinjO.js","sources":["../node_modules/js-cookie/dist/js.cookie.mjs","../src/helpers/cookieManager.ts","../src/utils/adaptiveNumber.js","../src/utils/numberFormat.js","../src/firebase/index.js","../node_modules/luxon/src/errors.js","../node_modules/luxon/src/impl/formats.js","../node_modules/luxon/src/zone.js","../node_modules/luxon/src/zones/systemZone.js","../node_modules/luxon/src/zones/IANAZone.js","../node_modules/luxon/src/impl/locale.js","../node_modules/luxon/src/zones/fixedOffsetZone.js","../node_modules/luxon/src/zones/invalidZone.js","../node_modules/luxon/src/impl/zoneUtil.js","../node_modules/luxon/src/impl/digits.js","../node_modules/luxon/src/settings.js","../node_modules/luxon/src/impl/invalid.js","../node_modules/luxon/src/impl/conversions.js","../node_modules/luxon/src/impl/util.js","../node_modules/luxon/src/impl/english.js","../node_modules/luxon/src/impl/formatter.js","../node_modules/luxon/src/impl/regexParser.js","../node_modules/luxon/src/duration.js","../node_modules/luxon/src/interval.js","../node_modules/luxon/src/info.js","../node_modules/luxon/src/impl/diff.js","../node_modules/luxon/src/impl/tokenParser.js","../node_modules/luxon/src/datetime.js","../src/constants/fx_currencies.js","../src/helpers/filters.ts","../src/helpers/create-component.ts","../src/components-new/Icon.vue","../src/components-new/Toast.vue","../src/composables/use-toast.ts","../node_modules/vue-sonner/lib/index.js","../src/composables/use-toast-new.ts","../src/composables/use-app-switcher.ts","../src/components-new/Button.vue","../node_modules/date-fns/toDate.mjs","../node_modules/date-fns/constructFrom.mjs","../node_modules/date-fns/addDays.mjs","../node_modules/date-fns/addMonths.mjs","../node_modules/date-fns/add.mjs","../node_modules/date-fns/addMilliseconds.mjs","../node_modules/date-fns/constants.mjs","../node_modules/date-fns/addHours.mjs","../node_modules/date-fns/_lib/defaultOptions.mjs","../node_modules/date-fns/startOfWeek.mjs","../node_modules/date-fns/startOfISOWeek.mjs","../node_modules/date-fns/getISOWeekYear.mjs","../node_modules/date-fns/startOfDay.mjs","../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs","../node_modules/date-fns/differenceInCalendarDays.mjs","../node_modules/date-fns/startOfISOWeekYear.mjs","../node_modules/date-fns/addQuarters.mjs","../node_modules/date-fns/addYears.mjs","../node_modules/date-fns/compareAsc.mjs","../node_modules/date-fns/isDate.mjs","../node_modules/date-fns/isValid.mjs","../node_modules/date-fns/getQuarter.mjs","../node_modules/date-fns/differenceInCalendarYears.mjs","../node_modules/date-fns/differenceInYears.mjs","../node_modules/date-fns/eachDayOfInterval.mjs","../node_modules/date-fns/startOfQuarter.mjs","../node_modules/date-fns/eachQuarterOfInterval.mjs","../node_modules/date-fns/startOfMonth.mjs","../node_modules/date-fns/endOfYear.mjs","../node_modules/date-fns/startOfYear.mjs","../node_modules/date-fns/endOfWeek.mjs","../node_modules/date-fns/endOfQuarter.mjs","../node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs","../node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs","../node_modules/date-fns/locale/en-US/_lib/formatLong.mjs","../node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs","../node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs","../node_modules/date-fns/locale/en-US/_lib/localize.mjs","../node_modules/date-fns/locale/_lib/buildMatchFn.mjs","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs","../node_modules/date-fns/locale/en-US/_lib/match.mjs","../node_modules/date-fns/locale/en-US.mjs","../node_modules/date-fns/getDayOfYear.mjs","../node_modules/date-fns/getISOWeek.mjs","../node_modules/date-fns/getWeekYear.mjs","../node_modules/date-fns/startOfWeekYear.mjs","../node_modules/date-fns/getWeek.mjs","../node_modules/date-fns/_lib/addLeadingZeros.mjs","../node_modules/date-fns/_lib/format/lightFormatters.mjs","../node_modules/date-fns/_lib/format/formatters.mjs","../node_modules/date-fns/_lib/format/longFormatters.mjs","../node_modules/date-fns/_lib/protectedTokens.mjs","../node_modules/date-fns/format.mjs","../node_modules/date-fns/getDay.mjs","../node_modules/date-fns/getDaysInMonth.mjs","../node_modules/date-fns/getDefaultOptions.mjs","../node_modules/date-fns/getHours.mjs","../node_modules/date-fns/getISODay.mjs","../node_modules/date-fns/getMinutes.mjs","../node_modules/date-fns/getMonth.mjs","../node_modules/date-fns/getSeconds.mjs","../node_modules/date-fns/getYear.mjs","../node_modules/date-fns/isAfter.mjs","../node_modules/date-fns/isBefore.mjs","../node_modules/date-fns/isEqual.mjs","../node_modules/date-fns/transpose.mjs","../node_modules/date-fns/parse/_lib/Setter.mjs","../node_modules/date-fns/parse/_lib/Parser.mjs","../node_modules/date-fns/parse/_lib/parsers/EraParser.mjs","../node_modules/date-fns/parse/_lib/constants.mjs","../node_modules/date-fns/parse/_lib/utils.mjs","../node_modules/date-fns/parse/_lib/parsers/YearParser.mjs","../node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.mjs","../node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.mjs","../node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.mjs","../node_modules/date-fns/parse/_lib/parsers/QuarterParser.mjs","../node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.mjs","../node_modules/date-fns/parse/_lib/parsers/MonthParser.mjs","../node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.mjs","../node_modules/date-fns/setWeek.mjs","../node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.mjs","../node_modules/date-fns/setISOWeek.mjs","../node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.mjs","../node_modules/date-fns/parse/_lib/parsers/DateParser.mjs","../node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.mjs","../node_modules/date-fns/setDay.mjs","../node_modules/date-fns/parse/_lib/parsers/DayParser.mjs","../node_modules/date-fns/parse/_lib/parsers/LocalDayParser.mjs","../node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.mjs","../node_modules/date-fns/setISODay.mjs","../node_modules/date-fns/parse/_lib/parsers/ISODayParser.mjs","../node_modules/date-fns/parse/_lib/parsers/AMPMParser.mjs","../node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.mjs","../node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.mjs","../node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.mjs","../node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.mjs","../node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.mjs","../node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.mjs","../node_modules/date-fns/parse/_lib/parsers/MinuteParser.mjs","../node_modules/date-fns/parse/_lib/parsers/SecondParser.mjs","../node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.mjs","../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.mjs","../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.mjs","../node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.mjs","../node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.mjs","../node_modules/date-fns/parse/_lib/parsers.mjs","../node_modules/date-fns/parse.mjs","../node_modules/date-fns/isSameQuarter.mjs","../node_modules/date-fns/subDays.mjs","../node_modules/date-fns/setMonth.mjs","../node_modules/date-fns/set.mjs","../node_modules/date-fns/setHours.mjs","../node_modules/date-fns/setMilliseconds.mjs","../node_modules/date-fns/setMinutes.mjs","../node_modules/date-fns/setSeconds.mjs","../node_modules/date-fns/setYear.mjs","../node_modules/date-fns/subMonths.mjs","../node_modules/date-fns/sub.mjs","../node_modules/date-fns/subYears.mjs","../node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js","../src/components-new/Calendar.vue","../src/components-new/CheckBox.vue","../src/components-new/Popper/popperState.js","../src/components-new/Popper/popperContext.js","../src/components-new/Popper/middleware/constrainToViewport.js","../src/components-new/Popper/usePopperCore.js","../src/utils/resolveDomElement.js","../src/components-new/Popper/Popper.vue","../src/components-new/Popper/PopperContent.vue","../src/components-new/AppSwitcher.vue","../node_modules/@vueuse/shared/index.mjs","../node_modules/@vueuse/components/index.mjs","../src/components-new/DropdownPanel.vue","../src/components-new/svg/Check.vue","../src/components-new/svg/TriangleWarningFilled.vue","../src/components-new/svg/InfoFilled.vue","../src/components-new/svg/BanDuotone.vue","../node_modules/vue-multiselect/dist/vue-multiselect.esm.js","../src/components-new/Dropdown.vue","../src/components-new/DropdownWithPrefix.vue","../src/components-new/IconOld.vue","../src/components-new/InlineTabs.vue","../src/components-new/Input.vue","../src/components-new/Menu.vue","../src/components-new/Tooltip.vue","../src/components-new/Modal.vue","../src/components-new/NavigationTab.vue","../src/components-new/NumberInput.vue","../src/components-new/Radio.vue","../src/components-new/Selector.vue","../src/components-new/Sidebar.vue","../src/components-new/Toggle.vue","../src/components-new/SidebarPopup.vue","../src/components-new/Switcher.vue","../src/components-new/Textarea.vue","../src/components-new/Popper/PopperOption.vue"],"sourcesContent":["/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","// @ts-ignore\r\nimport Cookies from 'js-cookie';\r\n\r\nclass CookieManager {\r\n static setItem(\r\n name: string,\r\n value: string,\r\n expires: number = Date.now() + 31449600, // 1 year by default\r\n ) {\r\n Cookies.set(name, value,\r\n {\r\n domain: window.location.hostname === 'localhost' ? 'localhost' : '.scope360.io',\r\n expires: new Date(expires * 1000),\r\n secure: true,\r\n sameSite: 'strict',\r\n }\r\n );\r\n }\r\n\r\n static getItem(name: string): string | undefined {\r\n return Cookies.get(name);\r\n }\r\n\r\n static removeItem(name: string) {\r\n Cookies.remove(name, { domain: window.location.hostname === 'localhost' ? 'localhost' : '.scope360.io' });\r\n }\r\n\r\n static clear() {\r\n const cookies = Object.keys(Cookies.get());\r\n for (const cookie of cookies) {\r\n Cookies.remove(cookie, { domain: window.location.hostname === 'localhost' ? 'localhost' : '.scope360.io' });\r\n }\r\n }\r\n\r\n static getAll(): Record<string, string> {\r\n return Cookies.get();\r\n }\r\n}\r\n\r\nexport default CookieManager;\r\n","const AdaptiveNumber = {\r\n format(value) {\r\n if (!Number.isFinite(value)) {\r\n throw new Error('Invalid number');\r\n }\r\n\r\n const isNegative = value < 0;\r\n const abs = Math.abs(value);\r\n\r\n const decimals = this._getMaxDecimals(abs);\r\n const truncated = this._truncate(abs, decimals);\r\n const parts = truncated.split('.');\r\n\r\n const formattedInt = this._addThousands(parts[0]);\r\n const result = parts[1] ? formattedInt + '.' + parts[1] : formattedInt;\r\n\r\n return isNegative ? '-' + result : result;\r\n },\r\n\r\n _getMaxDecimals(abs) {\r\n if (abs < 0.0001) return 8;\r\n if (abs < 0.01) return 6;\r\n if (abs < 1) return 5;\r\n if (abs < 100) return 4;\r\n return 2;\r\n },\r\n\r\n _truncate(abs, decimals) {\r\n const str = abs.toString();\r\n\r\n if (str.includes('e')) return abs.toFixed(decimals);\r\n\r\n const [int, frac = ''] = str.split('.');\r\n if (!frac || decimals === 0) return int;\r\n\r\n return int + '.' + frac.slice(0, decimals);\r\n },\r\n\r\n _addThousands(intPart) {\r\n return intPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n }\r\n};\r\n\r\nexport default AdaptiveNumber;\r\n","const integerFormatter = new Intl.NumberFormat('en-US', {\r\n useGrouping: true,\r\n maximumFractionDigits: 0\r\n});\r\n\r\n/**\r\n * Format Number\r\n *\r\n * \"0\" => \"0.00\"\r\n * \"-0\" => \"-0.00\"\r\n * \"117243\" => \"117,243.00\"\r\n * \"115372.23414\" => \"115,372.23414\"\r\n * \"1615220.9\" => \"1,615,220.9\"\r\n * \"101.84360000000001\" => \"101.8436\" (with maxFraction: 8)\r\n * \"103.12064000\" => \"103.12064\" (trim zeros after maxFraction)\r\n * \"103.00000000\" => \"103.00\" (keep .00 for integers)\r\n * \"0.07207360\" => \"0.0720736\" (trim trailing zeros)\r\n * \"abc1234.56789\" => \"1,234.57\" (strip letters, adaptive rounding)\r\n * \"0.0000001234\" => \"0.0000001234\" (preserve ultra-small, no zeroing)\r\n * \"0.0056789123\" => \"0.005679\" (adaptive rounding)\r\n * \"0.12345678\" => \"0.12346\" (adaptive rounding)\r\n * \"12.987654\" => \"12.9877\" (adaptive rounding)\r\n * \"1234.56789\" => \"1,234.57\" (adaptive rounding)\r\n * \"1234567.89123\" => \"1,234,567.89\" (adaptive rounding)\r\n */\r\nexport function formatNumber(value, { maxFraction, abs = false } = {}) {\r\n if (value === null || value === undefined || value === '') return '';\r\n\r\n if (typeof value === 'number' && !Number.isFinite(value)) return '';\r\n\r\n const isNegativeZero = typeof value === 'number' && Object.is(value, -0);\r\n\r\n let raw = `${value}`.trim();\r\n if (!raw) return '';\r\n\r\n raw = raw.replace(/\\p{L}/gu, '').trim();\r\n if (!raw) return '';\r\n\r\n let sign = '';\r\n if (raw[0] === '-') {\r\n sign = abs ? '' : '-';\r\n raw = raw.slice(1);\r\n } else if (raw[0] === '+') {\r\n raw = raw.slice(1);\r\n }\r\n\r\n if (isNegativeZero && !abs) {\r\n sign = '-';\r\n }\r\n\r\n raw = raw.replace(/,/g, '');\r\n if (!/^\\d*\\.?\\d*$/.test(raw)) return '';\r\n\r\n let [intPart, ...decParts] = raw.split('.');\r\n let decPart = decParts.length ? decParts.join('') : '';\r\n\r\n intPart = intPart.replace(/\\D/g, '');\r\n decPart = decPart.replace(/\\D/g, '');\r\n\r\n const shouldUseAdaptive = typeof maxFraction !== 'number';\r\n const adaptiveConfig = shouldUseAdaptive\r\n ? getAdaptiveFormatConfig(intPart, decPart)\r\n : null;\r\n const resolvedMaxFraction = shouldUseAdaptive\r\n ? adaptiveConfig.maxFraction\r\n : maxFraction;\r\n\r\n if (typeof resolvedMaxFraction === 'number' && resolvedMaxFraction >= 0) {\r\n if (shouldUseAdaptive && adaptiveConfig.rounding === 'round') {\r\n const rounded = roundDecimalParts(\r\n intPart,\r\n decPart,\r\n resolvedMaxFraction\r\n );\r\n intPart = rounded.intPart;\r\n decPart = rounded.decPart;\r\n } else {\r\n const sliced = decPart.slice(0, resolvedMaxFraction);\r\n if (shouldUseAdaptive && adaptiveConfig.rounding === 'truncate') {\r\n const slicedHasValue = sliced.replace(/0/g, '');\r\n const originalHasValue = decPart.replace(/0/g, '');\r\n decPart = slicedHasValue || !originalHasValue ? sliced : decPart;\r\n } else {\r\n decPart = sliced;\r\n }\r\n }\r\n\r\n decPart = decPart.replace(/0+$/, '');\r\n }\r\n\r\n if (!intPart && !decPart) return '';\r\n\r\n if (!intPart) intPart = '0';\r\n\r\n let formattedInt = '';\r\n try {\r\n formattedInt = integerFormatter.format(BigInt(intPart));\r\n } catch (error) {\r\n formattedInt = integerFormatter.format(Number(intPart));\r\n }\r\n\r\n let formatted = formattedInt;\r\n if (decPart.length) {\r\n formatted += `.${decPart}`;\r\n } else {\r\n formatted += '.00';\r\n }\r\n\r\n return sign ? `${sign}${formatted}` : formatted;\r\n}\r\n\r\nfunction normalizeIntString(value) {\r\n const normalized = value.replace(/^0+/, '');\r\n return normalized ? normalized : '0';\r\n}\r\n\r\nfunction compareIntStrings(a, b) {\r\n const left = normalizeIntString(a);\r\n const right = normalizeIntString(b);\r\n if (left.length !== right.length) {\r\n return left.length > right.length ? 1 : -1;\r\n }\r\n if (left === right) return 0;\r\n return left > right ? 1 : -1;\r\n}\r\n\r\nfunction incrementIntString(value) {\r\n const digits = value.split('');\r\n let carry = 1;\r\n\r\n for (let i = digits.length - 1; i >= 0; i -= 1) {\r\n const sum = (digits[i].charCodeAt(0) - 48) + carry;\r\n if (sum === 10) {\r\n digits[i] = '0';\r\n carry = 1;\r\n } else {\r\n digits[i] = String(sum);\r\n carry = 0;\r\n break;\r\n }\r\n }\r\n\r\n if (carry) {\r\n digits.unshift('1');\r\n }\r\n\r\n return digits.join('');\r\n}\r\n\r\nfunction roundDecimalParts(intPart, decPart, maxFraction) {\r\n if (maxFraction <= 0) {\r\n if (decPart[0] && decPart[0] >= '5') {\r\n return { intPart: incrementIntString(intPart), decPart: '' };\r\n }\r\n return { intPart, decPart: '' };\r\n }\r\n\r\n if (decPart.length <= maxFraction) {\r\n return { intPart, decPart };\r\n }\r\n\r\n const roundDigit = decPart[maxFraction];\r\n let kept = decPart.slice(0, maxFraction);\r\n\r\n if (roundDigit >= '5') {\r\n const digits = kept.split('');\r\n let carry = 1;\r\n\r\n for (let i = digits.length - 1; i >= 0; i -= 1) {\r\n const sum = (digits[i].charCodeAt(0) - 48) + carry;\r\n if (sum === 10) {\r\n digits[i] = '0';\r\n carry = 1;\r\n } else {\r\n digits[i] = String(sum);\r\n carry = 0;\r\n break;\r\n }\r\n }\r\n\r\n if (carry) {\r\n intPart = incrementIntString(intPart);\r\n kept = '0'.repeat(maxFraction);\r\n } else {\r\n kept = digits.join('');\r\n }\r\n }\r\n\r\n return { intPart, decPart: kept };\r\n}\r\n\r\nfunction getAdaptiveFormatConfig(intPart, decPart) {\r\n const normalizedInt = normalizeIntString(intPart);\r\n const normalizedDec = decPart.replace(/0+$/, '');\r\n const firstNonZero = normalizedDec.search(/[1-9]/);\r\n\r\n if (normalizedInt !== '0') {\r\n const cmp = compareIntStrings(normalizedInt, '100');\r\n if (cmp > 0 || (cmp === 0 && normalizedDec)) {\r\n return { maxFraction: 2, rounding: 'round' };\r\n }\r\n return { maxFraction: 4, rounding: 'round' };\r\n }\r\n\r\n if (firstNonZero === -1) {\r\n return { maxFraction: 2, rounding: 'round' };\r\n }\r\n\r\n if (firstNonZero >= 4) {\r\n return { maxFraction: 8, rounding: 'truncate' };\r\n }\r\n\r\n if (firstNonZero >= 2) {\r\n return { maxFraction: 6, rounding: 'round' };\r\n }\r\n\r\n return { maxFraction: 5, rounding: 'round' };\r\n}\r\n\r\n/**\r\n * Format Number With Sign\r\n *\r\n * \"12\" => \"+12.00\"\r\n * \"-12\" => \"-12.00\"\r\n * \"-0\" => \"-0.00\"\r\n * \"0.07207360\" => \"+0.0720736\" (with maxFraction: 8)\r\n */\r\nexport function formatNumberWithSign(\r\n value,\r\n { showPlus = true, maxFraction } = {}\r\n) {\r\n if (value === null || value === undefined || value === '') return '';\r\n\r\n const isNegativeZero = typeof value === 'number' && Object.is(value, -0);\r\n let raw = `${value}`.trim();\r\n if (!raw) return '';\r\n\r\n let sign = '';\r\n if (raw[0] === '-') {\r\n sign = '-';\r\n raw = raw.slice(1);\r\n } else if (raw[0] === '+') {\r\n sign = showPlus ? '+' : '';\r\n raw = raw.slice(1);\r\n }\r\n\r\n if (isNegativeZero) {\r\n sign = '-';\r\n }\r\n\r\n const formatted = formatNumber(raw, { maxFraction });\r\n if (!formatted) return '';\r\n\r\n if (!sign && showPlus) {\r\n const numericValue = Number(value);\r\n if (!Number.isNaN(numericValue) && numericValue > 0) {\r\n sign = '+';\r\n }\r\n }\r\n\r\n return sign ? `${sign}${formatted}` : formatted;\r\n}\r\n\r\n/**\r\n * Format Currency With Sign\r\n *\r\n * \"12\", \"$\" => \"+$12.00\"\r\n * \"-12\", \"$\" => \"-$12.00\"\r\n * \"-0\", \"$\" => \"-$0.00\"\r\n * \"101.84360000000001\", \"$\" => \"+$101.8436\" (with maxFraction: 8)\r\n * \"103.12064000\", \"$\" => \"+$103.12064\" (trim zeros after maxFraction)\r\n * \"103.00000000\", \"$\" => \"+$103.00\" (keep .00 for integers)\r\n */\r\nexport function formatCurrencyWithSign(\r\n value,\r\n currencySymbol,\r\n { showPlus = true, maxFraction } = {}\r\n) {\r\n const formatted = formatNumberWithSign(value, {\r\n showPlus,\r\n maxFraction\r\n });\r\n\r\n if (!formatted) return '';\r\n if (!currencySymbol) return formatted;\r\n\r\n const firstChar = formatted[0];\r\n if (firstChar === '+' || firstChar === '-') {\r\n return `${firstChar}${currencySymbol}${formatted.slice(1)}`;\r\n }\r\n\r\n return `${currencySymbol}${formatted}`;\r\n}\r\n","export const firebaseConfig = {\r\n apiKey: 'AIzaSyDwLEHd1JLMMuJ9fKNP4FLb0sjhSuZiIHA',\r\n authDomain: 'scope-360.firebaseapp.com',\r\n projectId: 'scope-360',\r\n storageBucket: 'scope-360.firebasestorage.app',\r\n messagingSenderId: '952738485980',\r\n appId: '1:952738485980:web:2f37b1d3fefd696dddc619'\r\n};\r\n","// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n","/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nexport const DATE_SHORT = {\n year: n,\n month: n,\n day: n,\n};\n\nexport const DATE_MED = {\n year: n,\n month: s,\n day: n,\n};\n\nexport const DATE_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n};\n\nexport const DATE_FULL = {\n year: n,\n month: l,\n day: n,\n};\n\nexport const DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n};\n\nexport const TIME_SIMPLE = {\n hour: n,\n minute: n,\n};\n\nexport const TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s,\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l,\n};\n\nexport const TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hourCycle: \"h23\",\n};\n\nexport const TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n};\n\nexport const TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n timeZoneName: s,\n};\n\nexport const TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n timeZoneName: l,\n};\n\nexport const DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n};\n\nexport const DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n,\n};\n\nexport const DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n,\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n,\n};\n\nexport const DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s,\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s,\n};\n\nexport const DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l,\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l,\n};\n","import { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The IANA name of this zone.\n * Defaults to `name` if not overwritten by a subclass.\n * @abstract\n * @type {string}\n */\n get ianaName() {\n return this.name;\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get isUniversal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this JavaScript environment.\n * @implements {Zone}\n */\nexport default class SystemZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {SystemZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new SystemZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"system\";\n }\n\n /** @override **/\n get name() {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"system\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n era: \"short\",\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n era: 3,\n hour: 4,\n minute: 5,\n second: 6,\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+) (AD|BC),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fadOrBc, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date);\n const filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i];\n const pos = typeToPos[type];\n\n if (type === \"era\") {\n filled[pos] = value;\n } else if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @deprecated For backward compatibility, this forwards to isValidZone, better use `isValidZone()` directly instead.\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return this.isValidZone(s);\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n if (!zone) {\n return false;\n }\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /**\n * The type of zone. `iana` for all instances of `IANAZone`.\n * @override\n * @type {string}\n */\n get type() {\n return \"iana\";\n }\n\n /**\n * The name of this zone (i.e. the IANA zone name).\n * @override\n * @type {string}\n */\n get name() {\n return this.zoneName;\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year:\n * Always returns false for all IANA zones.\n * @override\n * @type {boolean}\n */\n get isUniversal() {\n return false;\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @override\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /**\n * Returns the offset's value as a string\n * @override\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @override\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n const date = new Date(ts);\n\n if (isNaN(date)) return NaN;\n\n const dtf = makeDTF(this.name);\n let [year, month, day, adOrBc, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date);\n\n if (adOrBc === \"BC\") {\n year = -Math.abs(year) + 1;\n }\n\n // because we're using hour12 and https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n const adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0,\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @override\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /**\n * Return whether this Zone is valid.\n * @override\n * @type {boolean}\n */\n get isValid() {\n return this.valid;\n }\n}\n","import { hasLocaleWeekInfo, hasRelative, padStart, roundTo, validateWeekSettings } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n// todo - remap caching\n\nlet intlLFCache = {};\nfunction getCachedLF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlLFCache[key];\n if (!dtf) {\n dtf = new Intl.ListFormat(locString, opts);\n intlLFCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else {\n sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale;\n return sysLocaleCache;\n }\n}\n\nlet weekInfoCache = {};\nfunction getCachedWeekInfo(locString) {\n let data = weekInfoCache[locString];\n if (!data) {\n const locale = new Intl.Locale(locString);\n // browsers currently implement this as a property, but spec says it should be a getter function\n data = \"getWeekInfo\" in locale ? locale.getWeekInfo() : locale.weekInfo;\n weekInfoCache[locString] = data;\n }\n return data;\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n // private subtags and unicode subtags have ordering requirements,\n // and we're not properly parsing this, so just strip out the\n // private ones if they exist.\n const xIndex = localeStr.indexOf(\"-x-\");\n if (xIndex !== -1) {\n localeStr = localeStr.substring(0, xIndex);\n }\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n let selectedStr;\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n selectedStr = localeStr;\n } catch (e) {\n const smaller = localeStr.substring(0, uIndex);\n options = getCachedDTF(smaller).resolvedOptions();\n selectedStr = smaller;\n }\n\n const { numberingSystem, calendar } = options;\n return [selectedStr, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (outputCalendar || numberingSystem) {\n if (!localeStr.includes(\"-u-\")) {\n localeStr += \"-u\";\n }\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2009, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, englishFn, intlFn) {\n const mode = loc.listingMode();\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\"\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n const { padTo, floor, ...otherOpts } = opts;\n\n if (!forceSimple || Object.keys(otherOpts).length > 0) {\n const intlOpts = { useGrouping: false, ...opts };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.originalZone = undefined;\n\n let z = undefined;\n if (this.opts.timeZone) {\n // Don't apply any workarounds if a timeZone is explicitly provided in opts\n this.dt = dt;\n } else if (dt.zone.type === \"fixed\") {\n // UTC-8 or Etc/UTC-8 are not part of tzdata, only Etc/GMT+8 and the like.\n // That is why fixed-offset TZ is set to that unless it is:\n // 1. Representing offset 0 when UTC is used to maintain previous behavior and does not become GMT.\n // 2. Unsupported by the browser:\n // - some do not support Etc/\n // - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata\n const gmtOffset = -1 * (dt.offset / 60);\n const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`;\n if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) {\n z = offsetZ;\n this.dt = dt;\n } else {\n // Not all fixed-offset zones like Etc/+4:30 are present in tzdata so\n // we manually apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.offset === 0 ? dt : dt.setZone(\"UTC\").plus({ minutes: dt.offset });\n this.originalZone = dt.zone;\n }\n } else if (dt.zone.type === \"system\") {\n this.dt = dt;\n } else if (dt.zone.type === \"iana\") {\n this.dt = dt;\n z = dt.zone.name;\n } else {\n // Custom zones can have any offset / offsetName so we just manually\n // apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.setZone(\"UTC\").plus({ minutes: dt.offset });\n this.originalZone = dt.zone;\n }\n\n const intlOpts = { ...this.opts };\n intlOpts.timeZone = intlOpts.timeZone || z;\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n\n format() {\n if (this.originalZone) {\n // If we have to substitute in the actual zone name, we have to use\n // formatToParts so that the timezone can be replaced.\n return this.formatToParts()\n .map(({ value }) => value)\n .join(\"\");\n }\n return this.dtf.format(this.dt.toJSDate());\n }\n\n formatToParts() {\n const parts = this.dtf.formatToParts(this.dt.toJSDate());\n if (this.originalZone) {\n return parts.map((part) => {\n if (part.type === \"timeZoneName\") {\n const offsetName = this.originalZone.offsetName(this.dt.ts, {\n locale: this.dt.locale,\n format: this.opts.timeZoneName,\n });\n return {\n ...part,\n value: offsetName,\n };\n } else {\n return part;\n }\n });\n }\n return parts;\n }\n\n resolvedOptions() {\n return this.dtf.resolvedOptions();\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = { style: \"long\", ...opts };\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\nconst fallbackWeekSettings = {\n firstDay: 1,\n minimalDays: 4,\n weekend: [6, 7],\n};\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(\n opts.locale,\n opts.numberingSystem,\n opts.outputCalendar,\n opts.weekSettings,\n opts.defaultToEN\n );\n }\n\n static create(locale, numberingSystem, outputCalendar, weekSettings, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale;\n // the system locale is useful for human-readable strings but annoying for parsing/formatting known formats\n const localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale());\n const numberingSystemR = numberingSystem || Settings.defaultNumberingSystem;\n const outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n const weekSettingsR = validateWeekSettings(weekSettings) || Settings.defaultWeekSettings;\n return new Locale(localeR, numberingSystemR, outputCalendarR, weekSettingsR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar, weekSettings } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar, weekSettings);\n }\n\n constructor(locale, numbering, outputCalendar, weekSettings, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.weekSettings = weekSettings;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode() {\n const isActuallyEn = this.isEnglish();\n const hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n return isActuallyEn && hasNoWeirdness ? \"en\" : \"intl\";\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n validateWeekSettings(alts.weekSettings) || this.weekSettings,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone({ ...alts, defaultToEN: true });\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone({ ...alts, defaultToEN: false });\n }\n\n months(length, format = false) {\n return listStuff(this, length, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths((dt) => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false) {\n return listStuff(this, length, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays((dt) =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems() {\n return listStuff(\n this,\n undefined,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hourCycle: \"h12\" };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n (dt) => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length) {\n return listStuff(this, length, English.eras, () => {\n const intl = { era: length };\n\n // This is problematic. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map((dt) =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find((m) => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n listFormatter(opts = {}) {\n return getCachedLF(this.intl, opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\")\n );\n }\n\n getWeekSettings() {\n if (this.weekSettings) {\n return this.weekSettings;\n } else if (!hasLocaleWeekInfo()) {\n return fallbackWeekSettings;\n } else {\n return getCachedWeekInfo(this.locale);\n }\n }\n\n getStartOfWeek() {\n return this.getWeekSettings().firstDay;\n }\n\n getMinDaysInFirstWeek() {\n return this.getWeekSettings().minimalDays;\n }\n\n getWeekendDays() {\n return this.getWeekSettings().weekend;\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n\n toString() {\n return `Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`;\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /**\n * The type of zone. `fixed` for all instances of `FixedOffsetZone`.\n * @override\n * @type {string}\n */\n get type() {\n return \"fixed\";\n }\n\n /**\n * The name of this zone.\n * All fixed zones' names always start with \"UTC\" (plus optional offset)\n * @override\n * @type {string}\n */\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n /**\n * The IANA name of this zone, i.e. `Etc/UTC` or `Etc/GMT+/-nn`\n *\n * @override\n * @type {string}\n */\n get ianaName() {\n if (this.fixed === 0) {\n return \"Etc/UTC\";\n } else {\n return `Etc/GMT${formatOffset(-this.fixed, \"narrow\")}`;\n }\n }\n\n /**\n * Returns the offset's common name at the specified timestamp.\n *\n * For fixed offset zones this equals to the zone name.\n * @override\n */\n offsetName() {\n return this.name;\n }\n\n /**\n * Returns the offset's value as a string\n * @override\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year:\n * Always returns true for all fixed offset zones.\n * @override\n * @type {boolean}\n */\n get isUniversal() {\n return true;\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n *\n * For fixed offset zones, this is constant and does not depend on a timestamp.\n * @override\n * @return {number}\n */\n offset() {\n return this.fixed;\n }\n\n /**\n * Return whether this Zone is equal to another zone (i.e. also fixed and same offset)\n * @override\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /**\n * Return whether this Zone is valid:\n * All fixed offset zones are valid.\n * @override\n * @type {boolean}\n */\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\nimport SystemZone from \"../zones/systemZone.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"default\") return defaultZone;\n else if (lowered === \"local\" || lowered === \"system\") return SystemZone.instance;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && \"offset\" in input && typeof input.offset === \"function\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\",\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881],\n};\n\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\n// cache of {numberingSystem: {append: regex}}\nlet digitRegexCache = {};\nexport function resetDigitRegexCache() {\n digitRegexCache = {};\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n const ns = numberingSystem || \"latn\";\n\n if (!digitRegexCache[ns]) {\n digitRegexCache[ns] = {};\n }\n if (!digitRegexCache[ns][append]) {\n digitRegexCache[ns][append] = new RegExp(`${numberingSystems[ns]}${append}`);\n }\n\n return digitRegexCache[ns][append];\n}\n","import SystemZone from \"./zones/systemZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport DateTime from \"./datetime.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport { validateWeekSettings } from \"./impl/util.js\";\nimport { resetDigitRegexCache } from \"./impl/digits.js\";\n\nlet now = () => Date.now(),\n defaultZone = \"system\",\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n twoDigitCutoffYear = 60,\n throwOnInvalid,\n defaultWeekSettings = null;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * Use the value \"system\" to reset this value to the system's time zone.\n * @type {string}\n */\n static set defaultZone(zone) {\n defaultZone = zone;\n }\n\n /**\n * Get the default time zone object currently used to create DateTimes. Does not affect existing instances.\n * The default value is the system's time zone (the one set on the machine that runs this code).\n * @type {Zone}\n */\n static get defaultZone() {\n return normalizeZone(defaultZone, SystemZone.instance);\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * @typedef {Object} WeekSettings\n * @property {number} firstDay\n * @property {number} minimalDays\n * @property {number[]} weekend\n */\n\n /**\n * @return {WeekSettings|null}\n */\n static get defaultWeekSettings() {\n return defaultWeekSettings;\n }\n\n /**\n * Allows overriding the default locale week settings, i.e. the start of the week, the weekend and\n * how many days are required in the first week of a year.\n * Does not affect existing instances.\n *\n * @param {WeekSettings|null} weekSettings\n */\n static set defaultWeekSettings(weekSettings) {\n defaultWeekSettings = validateWeekSettings(weekSettings);\n }\n\n /**\n * Get the cutoff year for whether a 2-digit year string is interpreted in the current or previous century. Numbers higher than the cutoff will be considered to mean 19xx and numbers lower or equal to the cutoff will be considered 20xx.\n * @type {number}\n */\n static get twoDigitCutoffYear() {\n return twoDigitCutoffYear;\n }\n\n /**\n * Set the cutoff year for whether a 2-digit year string is interpreted in the current or previous century. Numbers higher than the cutoff will be considered to mean 19xx and numbers lower or equal to the cutoff will be considered 20xx.\n * @type {number}\n * @example Settings.twoDigitCutoffYear = 0 // all 'yy' are interpreted as 20th century\n * @example Settings.twoDigitCutoffYear = 99 // all 'yy' are interpreted as 21st century\n * @example Settings.twoDigitCutoffYear = 50 // '49' -> 2049; '50' -> 1950\n * @example Settings.twoDigitCutoffYear = 1950 // interpreted as 50\n * @example Settings.twoDigitCutoffYear = 2050 // ALSO interpreted as 50\n */\n static set twoDigitCutoffYear(cutoffYear) {\n twoDigitCutoffYear = cutoffYear % 100;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n DateTime.resetCache();\n resetDigitRegexCache();\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger,\n isUndefined,\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nexport function dayOfWeek(year, month, day) {\n const d = new Date(Date.UTC(year, month - 1, day));\n\n if (year < 100 && year >= 0) {\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n\n const js = d.getUTCDay();\n\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex((i) => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\nexport function isoWeekdayToLocal(isoWeekday, startOfWeek) {\n return ((isoWeekday - startOfWeek + 7) % 7) + 1;\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = isoWeekdayToLocal(dayOfWeek(year, month, day), startOfWeek);\n\n let weekNumber = Math.floor((ordinal - weekday + 14 - minDaysInFirstWeek) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear, minDaysInFirstWeek, startOfWeek);\n } else if (weekNumber > weeksInWeekYear(year, minDaysInFirstWeek, startOfWeek)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return { weekYear, weekNumber, weekday, ...timeObject(gregObj) };\n}\n\nexport function weekToGregorian(weekData, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = isoWeekdayToLocal(dayOfWeek(weekYear, 1, minDaysInFirstWeek), startOfWeek),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 7 + minDaysInFirstWeek,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n return { year, month, day, ...timeObject(weekData) };\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData;\n const ordinal = computeOrdinal(year, month, day);\n return { year, ordinal, ...timeObject(gregData) };\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData;\n const { month, day } = uncomputeOrdinal(year, ordinal);\n return { year, month, day, ...timeObject(ordinalData) };\n}\n\n/**\n * Check if local week units like localWeekday are used in obj.\n * If so, validates that they are not mixed with ISO week units and then copies them to the normal week unit properties.\n * Modifies obj in-place!\n * @param obj the object values\n */\nexport function usesLocalWeekValues(obj, loc) {\n const hasLocaleWeekData =\n !isUndefined(obj.localWeekday) ||\n !isUndefined(obj.localWeekNumber) ||\n !isUndefined(obj.localWeekYear);\n if (hasLocaleWeekData) {\n const hasIsoWeekData =\n !isUndefined(obj.weekday) || !isUndefined(obj.weekNumber) || !isUndefined(obj.weekYear);\n\n if (hasIsoWeekData) {\n throw new ConflictingSpecificationError(\n \"Cannot mix locale-based week fields with ISO-based week fields\"\n );\n }\n if (!isUndefined(obj.localWeekday)) obj.weekday = obj.localWeekday;\n if (!isUndefined(obj.localWeekNumber)) obj.weekNumber = obj.localWeekNumber;\n if (!isUndefined(obj.localWeekYear)) obj.weekYear = obj.localWeekYear;\n delete obj.localWeekday;\n delete obj.localWeekNumber;\n delete obj.localWeekYear;\n return {\n minDaysInFirstWeek: loc.getMinDaysInFirstWeek(),\n startOfWeek: loc.getStartOfWeek(),\n };\n } else {\n return { minDaysInFirstWeek: 4, startOfWeek: 1 };\n }\n}\n\nexport function hasInvalidWeekData(obj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(\n obj.weekNumber,\n 1,\n weeksInWeekYear(obj.weekYear, minDaysInFirstWeek, startOfWeek)\n ),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.weekNumber);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\nimport Settings from \"../settings.js\";\nimport { dayOfWeek, isoWeekdayToLocal } from \"./conversions.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nexport function hasLocaleWeekInfo() {\n try {\n return (\n typeof Intl !== \"undefined\" &&\n !!Intl.Locale &&\n (\"weekInfo\" in Intl.Locale.prototype || \"getWeekInfo\" in Intl.Locale.prototype)\n );\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport function validateWeekSettings(settings) {\n if (settings == null) {\n return null;\n } else if (typeof settings !== \"object\") {\n throw new InvalidArgumentError(\"Week settings must be an object\");\n } else {\n if (\n !integerBetween(settings.firstDay, 1, 7) ||\n !integerBetween(settings.minimalDays, 1, 7) ||\n !Array.isArray(settings.weekend) ||\n settings.weekend.some((v) => !integerBetween(v, 1, 7))\n ) {\n throw new InvalidArgumentError(\"Invalid week settings\");\n }\n return {\n firstDay: settings.firstDay,\n minimalDays: settings.minimalDays,\n weekend: Array.from(settings.weekend),\n };\n }\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n const isNeg = input < 0;\n let padded;\n if (isNeg) {\n padded = \"-\" + (\"\" + -input).padStart(n, \"0\");\n } else {\n padded = (\"\" + input).padStart(n, \"0\");\n }\n return padded;\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseFloating(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseFloat(string);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// convert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n // set the month and day again, this is necessary because year 2000 is a leap year, but year 100 is not\n // so if obj.year is in 99, but obj.day makes it roll over into year 100,\n // the calculations done by Date.UTC are using year 2000 - which is incorrect\n d.setUTCFullYear(obj.year, obj.month - 1, obj.day);\n }\n return +d;\n}\n\n// adapted from moment.js: https://github.com/moment/moment/blob/000ac1800e620f770f4eb31b5ae908f6167b0ab2/src/lib/units/week-calendar-utils.js\nfunction firstWeekOffset(year, minDaysInFirstWeek, startOfWeek) {\n const fwdlw = isoWeekdayToLocal(dayOfWeek(year, 1, minDaysInFirstWeek), startOfWeek);\n return -fwdlw + minDaysInFirstWeek - 1;\n}\n\nexport function weeksInWeekYear(weekYear, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const weekOffset = firstWeekOffset(weekYear, minDaysInFirstWeek, startOfWeek);\n const weekOffsetNext = firstWeekOffset(weekYear + 1, minDaysInFirstWeek, startOfWeek);\n return (daysInYear(weekYear) - weekOffset + weekOffsetNext) / 7;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > Settings.twoDigitCutoffYear ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hourCycle: \"h23\",\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = { timeZoneName: offsetFormat, ...intlOpts };\n\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find((m) => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\n/**\n * Returns the offset's value as a string\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return `${sign}${hours}${minutes > 0 ? `:${minutes}` : \"\"}`;\n case \"techie\":\n return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return [...monthsNarrow];\n case \"short\":\n return [...monthsShort];\n case \"long\":\n return [...monthsLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return [...weekdaysNarrow];\n case \"short\":\n return [...weekdaysShort];\n case \"long\":\n return [...weekdaysLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return [...erasNarrow];\n case \"short\":\n return [...erasShort];\n case \"long\":\n return [...erasLong];\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"],\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hourCycle\",\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_MED_WITH_WEEKDAY):\n return \"EEE, LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS,\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n // white-space is always considered a literal in user-provided formats\n // the \" \" token has a special meaning (see unitForToken)\n\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed || /^\\s+$/.test(currentFull), val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: /^\\s+$/.test(currentFull), val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed || /^\\s+$/.test(currentFull), val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, { ...this.opts, ...opts });\n return df.format();\n }\n\n dtFormatter(dt, opts = {}) {\n return this.loc.dtFormatter(dt, { ...this.opts, ...opts });\n }\n\n formatDateTime(dt, opts) {\n return this.dtFormatter(dt, opts).format();\n }\n\n formatDateTimeParts(dt, opts) {\n return this.dtFormatter(dt, opts).formatToParts();\n }\n\n formatInterval(interval, opts) {\n const df = this.dtFormatter(interval.start, opts);\n return df.dtf.formatRange(interval.start.toJSDate(), interval.end.toJSDate());\n }\n\n resolvedOptions(dt, opts) {\n return this.dtFormatter(dt, opts).resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = { ...this.opts };\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\",\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = (opts) => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hourCycle: \"h12\" }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = (token) => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = (length) =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = (token) => {\n // Where possible: https://cldr.unicode.org/translation/date-time/date-time-symbols\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // fractional seconds\n case \"uu\":\n return this.num(Math.floor(dt.millisecond / 10), 2);\n case \"uuu\":\n return this.num(Math.floor(dt.millisecond / 100));\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"n\":\n return this.num(dt.localWeekNumber);\n case \"nn\":\n return this.num(dt.localWeekNumber, 2);\n case \"ii\":\n return this.num(dt.localWeekYear.toString().slice(-2), 2);\n case \"iiii\":\n return this.num(dt.localWeekYear, 4);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = (token) => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"w\":\n return \"week\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = (lildur) => (token) => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter((t) => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n isUndefined,\n parseFloating,\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nconst ianaRegex = /[A-Za-z_+-]{1,256}(?::?\\/[A-Za-z0-9_+-]{1,256}(?:\\/[A-Za-z0-9_+-]{1,256})?)?/;\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return (m) =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [{ ...mergedVals, ...val }, zone || mergedZone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/;\nconst isoExtendedZone = `(?:${offsetRegex.source}?(?:\\\\[(${ianaRegex.source})\\\\])?)?`;\nconst isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/;\nconst isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${isoExtendedZone}`);\nconst isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`);\nconst isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/;\nconst isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/;\nconst isoOrdinalRegex = /(\\d{4})-?(\\d{3})/;\nconst extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\");\nconst extractISOOrdinalData = simpleParse(\"year\", \"ordinal\");\nconst sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/; // dumbed-down version of the ISO one\nconst sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n);\nconst sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1),\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hours: int(match, cursor, 0),\n minutes: int(match, cursor + 1, 0),\n seconds: int(match, cursor + 2, 0),\n milliseconds: parseMillis(match[cursor + 3]),\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO time parsing\n\nconst isoTimeOnly = RegExp(`^T?${isoTimeBaseRegex.source}$`);\n\n// ISO duration parsing\n\nconst isoDuration =\n /^-?P(?:(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)Y)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)W)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)D)?(?:T(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)H)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20})(?:[.,](-?\\d{1,20}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n const [s, yearStr, monthStr, weekStr, dayStr, hourStr, minuteStr, secondStr, millisecondsStr] =\n match;\n\n const hasNegativePrefix = s[0] === \"-\";\n const negativeSeconds = secondStr && secondStr[0] === \"-\";\n\n const maybeNegate = (num, force = false) =>\n num !== undefined && (force || (num && hasNegativePrefix)) ? -num : num;\n\n return [\n {\n years: maybeNegate(parseFloating(yearStr)),\n months: maybeNegate(parseFloating(monthStr)),\n weeks: maybeNegate(parseFloating(weekStr)),\n days: maybeNegate(parseFloating(dayStr)),\n hours: maybeNegate(parseFloating(hourStr)),\n minutes: maybeNegate(parseFloating(minuteStr)),\n seconds: maybeNegate(parseFloating(secondStr), secondStr === \"-0\"),\n milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds),\n },\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr),\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\\d\\d)(\\d\\d)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr,\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 =\n /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n rfc850 =\n /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n ascii =\n /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOOrdinalDateAndTime = combineExtractors(\n extractISOOrdinalData,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeAndOffset = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\n/*\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst extractISOTimeOnly = combineExtractors(extractISOTime);\n\nexport function parseISOTimeOnly(s) {\n return parse(s, [isoTimeOnly, extractISOTimeOnly]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration, parseISOTimeOnly } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo,\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\nimport DateTime from \"./datetime.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nexport const lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000,\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000,\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 },\n },\n casualMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000,\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000,\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000,\n },\n\n ...lowOrderMatrix,\n },\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000,\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4,\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000,\n },\n ...lowOrderMatrix,\n };\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\",\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : { ...dur.values, ...(alts.values || {}) },\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy,\n matrix: alts.matrix || dur.matrix,\n };\n return new Duration(conf);\n}\n\nfunction durationToMillis(matrix, vals) {\n let sum = vals.milliseconds ?? 0;\n for (const unit of reverseUnits.slice(1)) {\n if (vals[unit]) {\n sum += vals[unit] * matrix[unit][\"milliseconds\"];\n }\n }\n return sum;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n // the logic below assumes the overall value of the duration is positive\n // if this is not the case, factor is used to make it so\n const factor = durationToMillis(matrix, vals) < 0 ? -1 : 1;\n\n orderedUnits.reduceRight((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n const previousVal = vals[previous] * factor;\n const conv = matrix[current][previous];\n\n // if (previousVal < 0):\n // lower order unit is negative (e.g. { years: 2, days: -2 })\n // normalize this by reducing the higher order unit by the appropriate amount\n // and increasing the lower order unit\n // this can never make the higher order unit negative, because this function only operates\n // on positive durations, so the amount of time represented by the lower order unit cannot\n // be larger than the higher order unit\n // else:\n // lower order unit is positive (e.g. { years: 2, days: 450 } or { years: -2, days: 450 })\n // in this case we attempt to convert as much as possible from the lower order unit into\n // the higher order one\n //\n // Math.floor takes care of both of these cases, rounding away from 0\n // if previousVal < 0 it makes the absolute value larger\n // if previousVal >= it makes the absolute value smaller\n const rollUp = Math.floor(previousVal / conv);\n vals[current] += rollUp * factor;\n vals[previous] -= rollUp * conv * factor;\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n\n // try to convert any decimals into smaller units if possible\n // for example for { years: 2.5, days: 0, seconds: 0 } we want to get { years: 2, days: 182, hours: 12 }\n orderedUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n const fraction = vals[previous] % 1;\n vals[previous] -= fraction;\n vals[current] += fraction * matrix[previous][current];\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n// Remove all properties with a value of 0 from an object\nfunction removeZeroes(vals) {\n const newVals = {};\n for (const [key, value] of Object.entries(vals)) {\n if (value !== 0) {\n newVals[key] = value;\n }\n }\n return newVals;\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime#plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration#years}, {@link Duration#months}, {@link Duration#weeks}, {@link Duration#days}, {@link Duration#hours}, {@link Duration#minutes}, {@link Duration#seconds}, {@link Duration#milliseconds} accessors.\n * * **Configuration** See {@link Duration#locale} and {@link Duration#numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration#plus}, {@link Duration#minus}, {@link Duration#normalize}, {@link Duration#set}, {@link Duration#reconfigure}, {@link Duration#shiftTo}, and {@link Duration#negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration#as}, {@link Duration#toISO}, {@link Duration#toFormat}, and {@link Duration#toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n let matrix = accurate ? accurateMatrix : casualMatrix;\n\n if (config.matrix) {\n matrix = config.matrix;\n }\n\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = matrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject({ milliseconds: count }, opts);\n }\n\n /**\n * Create a Duration from a JavaScript object with keys like 'years' and 'hours'.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {Object} [opts=[]] - options for creating this Duration\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the custom conversion system to use\n * @return {Duration}\n */\n static fromObject(obj, opts = {}) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit),\n loc: Locale.fromObject(opts),\n conversionAccuracy: opts.conversionAccuracy,\n matrix: opts.matrix,\n });\n }\n\n /**\n * Create a Duration from DurationLike.\n *\n * @param {Object | number | Duration} durationLike\n * One of:\n * - object with keys like 'years' and 'hours'.\n * - number representing milliseconds\n * - Duration instance\n * @return {Duration}\n */\n static fromDurationLike(durationLike) {\n if (isNumber(durationLike)) {\n return Duration.fromMillis(durationLike);\n } else if (Duration.isDuration(durationLike)) {\n return durationLike;\n } else if (typeof durationLike === \"object\") {\n return Duration.fromObject(durationLike);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationLike} of type ${typeof durationLike}`\n );\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the preset conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 time string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 }\n * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @return {Duration}\n */\n static fromISOTime(text, opts) {\n const [parsed] = parseISOTimeOnly(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\",\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `w` for weeks\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * Tokens can be escaped by wrapping with single quotes.\n * * The duration will be converted to the set of units in the format string using {@link Duration#shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = {\n ...opts,\n floor: opts.round !== false && opts.floor !== false,\n };\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a string representation of a Duration with all units included.\n * To modify its behavior, use `listStyle` and any Intl.NumberFormat option, though `unitDisplay` is especially relevant.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options\n * @param {Object} opts - Formatting options. Accepts the same keys as the options parameter of the native `Intl.NumberFormat` constructor, as well as `listStyle`.\n * @param {string} [opts.listStyle='narrow'] - How to format the merged list. Corresponds to the `style` property of the options parameter of the native `Intl.ListFormat` constructor.\n * @example\n * ```js\n * var dur = Duration.fromObject({ days: 1, hours: 5, minutes: 6 })\n * dur.toHuman() //=> '1 day, 5 hours, 6 minutes'\n * dur.toHuman({ listStyle: \"long\" }) //=> '1 day, 5 hours, and 6 minutes'\n * dur.toHuman({ unitDisplay: \"short\" }) //=> '1 day, 5 hr, 6 min'\n * ```\n */\n toHuman(opts = {}) {\n if (!this.isValid) return INVALID;\n\n const l = orderedUnits\n .map((unit) => {\n const val = this.values[unit];\n if (isUndefined(val)) {\n return null;\n }\n return this.loc\n .numberFormatter({ style: \"unit\", unitDisplay: \"long\", ...opts, unit: unit.slice(0, -1) })\n .format(val);\n })\n .filter((n) => n);\n\n return this.loc\n .listFormatter({ type: \"conjunction\", style: opts.listStyle || \"narrow\", ...opts })\n .format(l);\n }\n\n /**\n * Returns a JavaScript object with this Duration's values.\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject() {\n if (!this.isValid) return {};\n return { ...this.values };\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day.\n * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000'\n * @return {string}\n */\n toISOTime(opts = {}) {\n if (!this.isValid) return null;\n\n const millis = this.toMillis();\n if (millis < 0 || millis >= 86400000) return null;\n\n opts = {\n suppressMilliseconds: false,\n suppressSeconds: false,\n includePrefix: false,\n format: \"extended\",\n ...opts,\n includeOffset: false,\n };\n\n const dateTime = DateTime.fromMillis(millis, { zone: \"UTC\" });\n return dateTime.toISOTime(opts);\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns a string representation of this Duration appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `Duration { values: ${JSON.stringify(this.values)} }`;\n } else {\n return `Duration { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n toMillis() {\n if (!this.isValid) return NaN;\n\n return durationToMillis(this.matrix, this.values);\n }\n\n /**\n * Returns an milliseconds value of this Duration. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = Duration.fromDurationLike(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = Duration.fromDurationLike(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === \"hours\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = { ...this.values, ...normalizeObject(values, Duration.normalizeUnit) };\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy, matrix } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem });\n const opts = { loc, matrix, conversionAccuracy };\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * Assuming the overall value of the Duration is positive, this means:\n * - excessive values for lower-order units are converted to higher-order units (if possible, see first and second example)\n * - negative lower-order units are converted to higher order units (there must be such a higher order unit, otherwise\n * the overall value would be negative, see third example)\n * - fractional values for higher-order units are converted to lower-order units (if possible, see fourth example)\n *\n * If the overall value is negative, the result of this method is equivalent to `this.negate().normalize().negate()`.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ days: 5000 }).normalize().toObject() //=> { days: 5000 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @example Duration.fromObject({ years: 2.5, days: 0, hours: 0 }).normalize().toObject() //=> { years: 2, days: 182, hours: 12 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Rescale units to its largest representation\n * @example Duration.fromObject({ milliseconds: 90000 }).rescale().toObject() //=> { minutes: 1, seconds: 30 }\n * @return {Duration}\n */\n rescale() {\n if (!this.isValid) return this;\n const vals = removeZeroes(this.normalize().shiftToAll().toObject());\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map((u) => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n // only keep the integer part for now in the hopes of putting any decimal part\n // into a smaller unit later\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = (own * 1000 - i * 1000) / 1000;\n\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n normalizeValues(this.matrix, built);\n return clone(this, { values: built }, true);\n }\n\n /**\n * Shift this Duration to all available units.\n * Same as shiftTo(\"years\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"milliseconds\")\n * @return {Duration}\n */\n shiftToAll() {\n if (!this.isValid) return this;\n return this.shiftTo(\n \"years\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n );\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = this.values[k] === 0 ? 0 : -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n function eq(v1, v2) {\n // Consider 0 and undefined as equal\n if (v1 === undefined || v1 === 0) return v2 === undefined || v2 === 0;\n return v1 === v2;\n }\n\n for (const u of orderedUnits) {\n if (!eq(this.values[u], other.values[u])) {\n return false;\n }\n }\n return true;\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport * as Formats from \"./impl/formats.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link Interval.fromDateTimes}, {@link Interval.after}, {@link Interval.before}, or {@link Interval.fromISO}.\n * * **Accessors** Use {@link Interval#start} and {@link Interval#end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link Interval#count}, {@link Interval#length}, {@link Interval#hasSame}, {@link Interval#contains}, {@link Interval#isAfter}, or {@link Interval#isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link Interval#set}, {@link Interval#splitAt}, {@link Interval#splitBy}, {@link Interval#divideEqually}, {@link Interval.merge}, {@link Interval.xor}, {@link Interval#union}, {@link Interval#intersection}, or {@link Interval#difference}.\n * * **Comparison** To compare this Interval to another one, use {@link Interval#equals}, {@link Interval#overlaps}, {@link Interval#abutsStart}, {@link Interval#abutsEnd}, {@link Interval#engulfs}\n * * **Output** To convert the Interval into other representations, see {@link Interval#toString}, {@link Interval#toLocaleString}, {@link Interval#toISO}, {@link Interval#toISODate}, {@link Interval#toISOTime}, {@link Interval#toFormat}, and {@link Interval#toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd,\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `<start>/<end>`, `<start>/<duration>`, and `<duration>/<end>` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime#fromISO} and optionally {@link Duration#fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n let start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n\n let end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (startIsValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link Interval#length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; this operation will always use the locale of the start DateTime\n * @return {number}\n */\n count(unit = \"milliseconds\", opts) {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit, opts);\n let end;\n if (opts?.useLocaleWeeks) {\n end = this.end.reconfigure({ locale: start.locale });\n } else {\n end = this.end;\n }\n end = end.startOf(unit, opts);\n return Math.floor(end.diff(start, unit).get(unit)) + (end.valueOf() !== this.end.valueOf());\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...DateTime} dateTimes - the unit of time to count.\n * @return {Array}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter((d) => this.contains(d))\n .sort((a, b) => a.toMillis() - b.toMillis()),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {Array}\n */\n splitBy(duration) {\n const dur = Duration.fromDurationLike(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n idx = 1,\n next;\n\n const results = [];\n while (s < this.e) {\n const added = this.start.plus(dur.mapUnits((x) => x * idx));\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n idx += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {Array}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Returns true if this Interval fully contains the specified Interval, specifically if the intersect (of this Interval and the other Interval) is equal to the other Interval; false otherwise.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s >= e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {Array} intervals\n * @return {Array}\n */\n static merge(intervals) {\n const [found, final] = intervals\n .sort((a, b) => a.s - b.s)\n .reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {Array} intervals\n * @return {Array}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map((i) => [\n { time: i.s, type: \"s\" },\n { time: i.e, type: \"e\" },\n ]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {Array}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map((i) => this.intersection(i))\n .filter((i) => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns a string representation of this Interval appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`;\n } else {\n return `Interval { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns a localized string representing this Interval. Accepts the same options as the\n * Intl.DateTimeFormat constructor and any presets defined by Luxon, such as\n * {@link DateTime.DATE_FULL} or {@link DateTime.TIME_SIMPLE}. The exact behavior of this method\n * is browser-specific, but in general it will return an appropriate representation of the\n * Interval in the assigned locale. Defaults to the system's locale if no locale has been\n * specified.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {Object} [formatOpts=DateTime.DATE_SHORT] - Either a DateTime preset or\n * Intl.DateTimeFormat constructor options.\n * @param {Object} opts - Options to override the configuration of the start DateTime.\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(); //=> 11/7/2022 – 11/8/2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL); //=> November 7 – 8, 2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL, { locale: 'fr-FR' }); //=> 7–8 novembre 2022\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString(DateTime.TIME_SIMPLE); //=> 6:00 – 8:00 PM\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> Mon, Nov 07, 6:00 – 8:00 p\n * @return {string}\n */\n toLocaleString(formatOpts = Formats.DATE_SHORT, opts = {}) {\n return this.isValid\n ? Formatter.create(this.s.loc.clone(opts), formatOpts).formatInterval(this)\n : INVALID;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format\n * string. **You may not want this.** See {@link Interval#toLocaleString} for a more flexible\n * formatting tool.\n * @param {string} dateFormat - The format string. This string formats the start and end time.\n * See {@link DateTime#toFormat} for details.\n * @param {Object} opts - Options.\n * @param {string} [opts.separator = ' – '] - A separator to place between the start and end\n * representations.\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasLocaleWeekInfo, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.now().setZone(zone).set({ month: 12 });\n\n return !zone.isUniversal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone#isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Get the weekday on which the week starts according to the given locale.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number} the start of the week, 1 for Monday through 7 for Sunday\n */\n static getStartOfWeek({ locale = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale)).getStartOfWeek();\n }\n\n /**\n * Get the minimum number of days necessary in a week before it is considered part of the next year according\n * to the given locale.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number}\n */\n static getMinimumDaysInFirstWeek({ locale = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale)).getMinDaysInFirstWeek();\n }\n\n /**\n * Get the weekdays, which are considered the weekend according to the given locale\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number[]} an array of weekdays, 1 for Monday through 7 for Sunday\n */\n static getWeekendWeekdays({ locale = null, locObj = null } = {}) {\n // copy the array, because we cache it internally\n return (locObj || Locale.create(locale)).getWeekendDays().slice();\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {Array}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link Info#months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {Array}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {Array}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link Info#weekdays}\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @return {Array}\n */\n static weekdaysFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {Array}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {Array}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, relative time formatting support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `relative`: whether this environment supports relative time formatting\n * * `localeWeek`: whether this environment supports different weekdays for the start of the week based on the locale\n * @example Info.features() //=> { relative: false, localeWeek: true }\n * @return {Object}\n */\n static features() {\n return { relative: hasRelative(), localeWeek: hasLocaleWeekInfo() };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = (dt) => dt.toUTC(0, { keepLocalTime: true }).startOf(\"day\").valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"quarters\", (a, b) => b.quarter - a.quarter + (b.year - a.year) * 4],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n },\n ],\n [\"days\", dayDiff],\n ];\n\n const results = {};\n const earlier = cursor;\n let lowestOrder, highWater;\n\n /* This loop tries to diff using larger units first.\n If we overshoot, we backtrack and try the next smaller unit.\n \"cursor\" starts out at the earlier timestamp and moves closer and closer to \"later\"\n as we use smaller and smaller units.\n highWater keeps track of where we would be if we added one more of the smallest unit,\n this is used later to potentially convert any difference smaller than the smallest higher order unit\n into a fraction of that smallest higher order unit\n */\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n results[unit] = differ(cursor, later);\n highWater = earlier.plus(results);\n\n if (highWater > later) {\n // we overshot the end point, backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n\n // if we are still overshooting now, we need to backtrack again\n // this happens in certain situations when diffing times in different zones,\n // because this calculation ignores time zones\n if (cursor > later) {\n // keep the \"overshot by 1\" around as highWater\n highWater = cursor;\n // backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n }\n } else {\n cursor = highWater;\n }\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function (earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n (u) => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(results, opts);\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = (i) => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nconst NBSP = String.fromCharCode(160);\nconst spaceOrNBSP = `[ ${NBSP}]`;\nconst spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\n\nfunction stripInsensitivities(s) {\n return s\n .replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex((i) => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex,\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\n/**\n * @param token\n * @param {Locale} loc\n */\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = (t) => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = (t) => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\"), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\"), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n case \"uu\":\n return simple(oneOrTwo);\n case \"uuu\":\n return intUnit(one);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n // this special-case \"token\" represents a place where a macro-token expanded into a white-space literal\n // in this case we accept any non-newline white-space\n case \" \":\n return simple(/[^\\S\\n\\r]/);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP,\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\",\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\",\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\",\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\",\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour12: {\n numeric: \"h\",\n \"2-digit\": \"hh\",\n },\n hour24: {\n numeric: \"H\",\n \"2-digit\": \"HH\",\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\",\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\",\n },\n timeZoneName: {\n long: \"ZZZZZ\",\n short: \"ZZZ\",\n },\n};\n\nfunction tokenForPart(part, formatOpts, resolvedOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n const isSpace = /^\\s+$/.test(value);\n return {\n literal: !isSpace,\n val: isSpace ? \" \" : value,\n };\n }\n\n const style = formatOpts[type];\n\n // The user might have explicitly specified hour12 or hourCycle\n // if so, respect their decision\n // if not, refer back to the resolvedOpts, which are based on the locale\n let actualType = type;\n if (type === \"hour\") {\n if (formatOpts.hour12 != null) {\n actualType = formatOpts.hour12 ? \"hour12\" : \"hour24\";\n } else if (formatOpts.hourCycle != null) {\n if (formatOpts.hourCycle === \"h11\" || formatOpts.hourCycle === \"h12\") {\n actualType = \"hour12\";\n } else {\n actualType = \"hour24\";\n }\n } else {\n // tokens only differentiate between 24 hours or not,\n // so we do not need to check hourCycle here, which is less supported anyways\n actualType = resolvedOpts.hour12 ? \"hour12\" : \"hour24\";\n }\n }\n let val = partTypeStyleToTokenVal[actualType];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val,\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map((u) => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = (token) => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone = null;\n let specificOffset;\n if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n }\n\n if (!isUndefined(matches.Z)) {\n if (!zone) {\n zone = new FixedOffsetZone(matches.Z);\n }\n specificOffset = matches.Z;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone, specificOffset];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n const tokens = formatOptsToTokens(formatOpts, locale);\n\n if (tokens == null || tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nexport function expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map((t) => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport class TokenParser {\n constructor(locale, format) {\n this.locale = locale;\n this.format = format;\n this.tokens = expandMacroTokens(Formatter.parseFormat(format), locale);\n this.units = this.tokens.map((t) => unitForToken(t, locale));\n this.disqualifyingUnit = this.units.find((t) => t.invalidReason);\n\n if (!this.disqualifyingUnit) {\n const [regexString, handlers] = buildRegex(this.units);\n this.regex = RegExp(regexString, \"i\");\n this.handlers = handlers;\n }\n }\n\n explainFromTokens(input) {\n if (!this.isValid) {\n return { input, tokens: this.tokens, invalidReason: this.invalidReason };\n } else {\n const [rawMatches, matches] = match(input, this.regex, this.handlers),\n [result, zone, specificOffset] = matches\n ? dateTimeFromMatches(matches)\n : [null, null, undefined];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return {\n input,\n tokens: this.tokens,\n regex: this.regex,\n rawMatches,\n matches,\n result,\n zone,\n specificOffset,\n };\n }\n }\n\n get isValid() {\n return !this.disqualifyingUnit;\n }\n\n get invalidReason() {\n return this.disqualifyingUnit ? this.disqualifyingUnit.invalidReason : null;\n }\n}\n\nexport function explainFromTokens(locale, input, format) {\n const parser = new TokenParser(locale, format);\n return parser.explainFromTokens(input);\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, specificOffset, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, specificOffset, invalidReason];\n}\n\nexport function formatOptsToTokens(formatOpts, locale) {\n if (!formatOpts) {\n return null;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const df = formatter.dtFormatter(getDummyDateTime());\n const parts = df.formatToParts();\n const resolvedOpts = df.resolvedOptions();\n return parts.map((p) => tokenForPart(p, formatOpts, resolvedOpts));\n}\n","import Duration from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS,\n padStart,\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport {\n parseFromTokens,\n explainFromTokens,\n formatOptsToTokens,\n expandMacroTokens,\n TokenParser,\n} from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData,\n usesLocalWeekValues,\n isoWeekdayToLocal,\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError,\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedLocalWeekData(dt) {\n if (dt.localWeekData === null) {\n dt.localWeekData = gregorianToWeek(\n dt.c,\n dt.loc.getMinDaysInFirstWeek(),\n dt.loc.getStartOfWeek()\n );\n }\n return dt.localWeekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid,\n };\n return new DateTime({ ...current, ...alts, old: current });\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds(),\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = {\n ...inst.c,\n year,\n month,\n day:\n Math.min(inst.c.day, daysInMonth(year, month)) +\n Math.trunc(dur.days) +\n Math.trunc(dur.weeks) * 7,\n },\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds,\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) {\n const { setZone, zone } = opts;\n if ((parsed && Object.keys(parsed).length !== 0) || parsedZone) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(parsed, {\n ...opts,\n zone: interpretationZone,\n specificOffset,\n });\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true,\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\nfunction toISODate(o, extended) {\n const longFormat = o.c.year > 9999 || o.c.year < 0;\n let c = \"\";\n if (longFormat && o.c.year >= 0) c += \"+\";\n c += padStart(o.c.year, longFormat ? 6 : 4);\n\n if (extended) {\n c += \"-\";\n c += padStart(o.c.month);\n c += \"-\";\n c += padStart(o.c.day);\n } else {\n c += padStart(o.c.month);\n c += padStart(o.c.day);\n }\n return c;\n}\n\nfunction toISOTime(\n o,\n extended,\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone\n) {\n let c = padStart(o.c.hour);\n if (extended) {\n c += \":\";\n c += padStart(o.c.minute);\n if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) {\n c += \":\";\n }\n } else {\n c += padStart(o.c.minute);\n }\n\n if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) {\n c += padStart(o.c.second);\n\n if (o.c.millisecond !== 0 || !suppressMilliseconds) {\n c += \".\";\n c += padStart(o.c.millisecond, 3);\n }\n }\n\n if (includeOffset) {\n if (o.isOffsetFixed && o.offset === 0 && !extendedZone) {\n c += \"Z\";\n } else if (o.o < 0) {\n c += \"-\";\n c += padStart(Math.trunc(-o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(-o.o % 60));\n } else {\n c += \"+\";\n c += padStart(Math.trunc(o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(o.o % 60));\n }\n }\n\n if (extendedZone) {\n c += \"[\" + o.zone.ianaName + \"]\";\n }\n return c;\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\",\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\",\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\nfunction normalizeUnitWithLocalWeeks(unit) {\n switch (unit.toLowerCase()) {\n case \"localweekday\":\n case \"localweekdays\":\n return \"localWeekday\";\n case \"localweeknumber\":\n case \"localweeknumbers\":\n return \"localWeekNumber\";\n case \"localweekyear\":\n case \"localweekyears\":\n return \"localWeekYear\";\n default:\n return normalizeUnit(unit);\n }\n}\n\n// cache offsets for zones based on the current timestamp when this function is\n// first called. When we are handling a datetime from components like (year,\n// month, day, hour) in a time zone, we need a guess about what the timezone\n// offset is so that we can convert into a UTC timestamp. One way is to find the\n// offset of now in the zone. The actual date may have a different offset (for\n// example, if we handle a date in June while we're in December in a zone that\n// observes DST), but we can check and adjust that.\n//\n// When handling many dates, calculating the offset for now every time is\n// expensive. It's just a guess, so we can cache the offset to use even if we\n// are right on a time change boundary (we'll just correct in the other\n// direction). Using a timestamp from first read is a slight optimization for\n// handling dates close to the current date, since those dates will usually be\n// in the same offset (we could set the timestamp statically, instead). We use a\n// single timestamp for all zones to make things a bit more predictable.\n//\n// This is safe for quickDT (used by local() and utc()) because we don't fill in\n// higher-order units from tsNow (as we do in fromObject, this requires that\n// offset is calculated from tsNow).\nfunction guessOffsetForZone(zone) {\n if (!zoneOffsetGuessCache[zone]) {\n if (zoneOffsetTs === undefined) {\n zoneOffsetTs = Settings.now();\n }\n\n zoneOffsetGuessCache[zone] = zone.offset(zoneOffsetTs);\n }\n return zoneOffsetGuessCache[zone];\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, opts) {\n const zone = normalizeZone(opts.zone, Settings.defaultZone);\n if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n }\n\n const loc = Locale.fromObject(opts);\n\n let ts, o;\n\n // assume we have the higher-order units\n if (!isUndefined(obj.year)) {\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const offsetProvis = guessOffsetForZone(zone);\n [ts, o] = objToTS(obj, offsetProvis, zone);\n } else {\n ts = Settings.now();\n }\n\n return new DateTime({ ts, zone, loc, o });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = (unit) => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end.startOf(unit).diff(start.startOf(unit), unit).get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]);\n}\n\nfunction lastOpts(argList) {\n let opts = {},\n args;\n if (argList.length > 0 && typeof argList[argList.length - 1] === \"object\") {\n opts = argList[argList.length - 1];\n args = Array.from(argList).slice(0, argList.length - 1);\n } else {\n args = Array.from(argList);\n }\n return [opts, args];\n}\n\n/**\n * Timestamp to use for cached zone offset guesses (exposed for test)\n */\nlet zoneOffsetTs;\n/**\n * Cache for zone offset guesses (exposed for test).\n *\n * This optimizes quickDT via guessOffsetForZone to avoid repeated calls of\n * zone.offset().\n */\nlet zoneOffsetGuessCache = {};\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link DateTime.local}, {@link DateTime.utc}, and (most flexibly) {@link DateTime.fromObject}. To create one from a standard string format, use {@link DateTime.fromISO}, {@link DateTime.fromHTTP}, and {@link DateTime.fromRFC2822}. To create one from a custom string format, use {@link DateTime.fromFormat}. To create one from a native JS date, use {@link DateTime.fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link DateTime#toObject}), use the {@link DateTime#year}, {@link DateTime#month},\n * {@link DateTime#day}, {@link DateTime#hour}, {@link DateTime#minute}, {@link DateTime#second}, {@link DateTime#millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link DateTime#weekYear}, {@link DateTime#weekNumber}, and {@link DateTime#weekday} accessors.\n * * **Configuration** See the {@link DateTime#locale} and {@link DateTime#numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link DateTime#set}, {@link DateTime#reconfigure}, {@link DateTime#setZone}, {@link DateTime#setLocale}, {@link DateTime.plus}, {@link DateTime#minus}, {@link DateTime#endOf}, {@link DateTime#startOf}, {@link DateTime#toUTC}, and {@link DateTime#toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link DateTime#toRelative}, {@link DateTime#toRelativeCalendar}, {@link DateTime#toJSON}, {@link DateTime#toISO}, {@link DateTime#toHTTP}, {@link DateTime#toObject}, {@link DateTime#toRFC2822}, {@link DateTime#toString}, {@link DateTime#toLocaleString}, {@link DateTime#toFormat}, {@link DateTime#toMillis} and {@link DateTime#toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n // If an offset has been passed and we have not been called from\n // clone(), we can trust it and avoid the offset calculation.\n const ot = isNumber(config.o) && !config.old ? config.o : zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.localWeekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a DateTime for the current instant, in the system's time zone.\n *\n * Use Settings to override these default values if needed.\n * @example DateTime.now().toISO() //~> now in the ISO format\n * @return {DateTime}\n */\n static now() {\n return new DateTime({});\n }\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month, 1-indexed\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local({ zone: \"America/New_York\" }) //~> now, in US east coast time\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12, { locale: \"fr\" }) //~> 2017-03-12T00:00:00, with a French locale\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, { zone: \"utc\" }) //~> 2017-03-12T05:00:00, in UTC\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @param {Object} options - configuration options for the DateTime\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} [options.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [options.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @param {string} [options.weekSettings] - the week settings to set on the resulting DateTime instance\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, { locale: \"fr\" }) //~> 2017-03-12T05:45:00Z with a French locale\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765, { locale: \"fr\" }) //~> 2017-03-12T05:45:10.765Z with a French locale\n * @return {DateTime}\n */\n static utc() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n\n opts.zone = FixedOffsetZone.utcInstance;\n return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n }\n\n /**\n * Create a DateTime from a JavaScript Date object. Uses the default zone.\n * @param {Date} date - a JavaScript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options),\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} options.weekSettings - the week settings to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options),\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} options.weekSettings - the week settings to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options),\n });\n }\n }\n\n /**\n * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.localWeekYear - a week year, according to the locale\n * @param {number} obj.localWeekNumber - a week number, between 1 and 52 or 53, depending on the year, according to the locale\n * @param {number} obj.localWeekday - a weekday, 1-7, where 1 is the first and 7 is the last day of the week, according to the locale\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {Object} opts - options for creating this DateTime\n * @param {string|Zone} [opts.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [opts.locale='system\\'s locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @example DateTime.fromObject({ localWeekYear: 2022, localWeekNumber: 1, localWeekday: 1 }, { locale: \"en-US\" }).toISODate() //=> '2021-12-26'\n * @return {DateTime}\n */\n static fromObject(obj, opts = {}) {\n obj = obj || {};\n const zoneToUse = normalizeZone(opts.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const loc = Locale.fromObject(opts);\n const normalized = normalizeObject(obj, normalizeUnitWithLocalWeeks);\n const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, loc);\n\n const tsNow = Settings.now(),\n offsetProvis = !isUndefined(opts.specificOffset)\n ? opts.specificOffset\n : zoneToUse.offset(tsNow),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow, minDaysInFirstWeek, startOfWeek);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized, minDaysInFirstWeek, startOfWeek)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized, minDaysInFirstWeek, startOfWeek)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc,\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n if (!inst.isValid) {\n return DateTime.invalid(inst.invalid);\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @param {string} [opts.weekSettings] - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/parsing?id=table-of-tokens).\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n }),\n [vals, parsedZone, specificOffset, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text, specificOffset);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent.\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is an instance of DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n /**\n * Produce the format string for a set of options\n * @param formatOpts\n * @param localeOpts\n * @returns {string}\n */\n static parseFormatForOpts(formatOpts, localeOpts = {}) {\n const tokenList = formatOptsToTokens(formatOpts, Locale.fromObject(localeOpts));\n return !tokenList ? null : tokenList.map((t) => (t ? t.val : null)).join(\"\");\n }\n\n /**\n * Produce the the fully expanded format token for the locale\n * Does NOT quote characters, so quoted tokens will not round trip correctly\n * @param fmt\n * @param localeOpts\n * @returns {string}\n */\n static expandFormat(fmt, localeOpts = {}) {\n const expanded = expandMacroTokens(Formatter.parseFormat(fmt), Locale.fromObject(localeOpts));\n return expanded.map((t) => t.val).join(\"\");\n }\n\n static resetCache() {\n zoneOffsetTs = undefined;\n zoneOffsetGuessCache = {};\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 12, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Returns true if this date is on a weekend according to the locale, false otherwise\n * @returns {boolean}\n */\n get isWeekend() {\n return this.isValid && this.loc.getWeekendDays().includes(this.weekday);\n }\n\n /**\n * Get the day of the week according to the locale.\n * 1 is the first day of the week and 7 is the last day of the week.\n * If the locale assigns Sunday as the first day of the week, then a date which is a Sunday will return 1,\n * @returns {number}\n */\n get localWeekday() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the week number of the week year according to the locale. Different locales assign week numbers differently,\n * because the week can start on different days of the week (see localWeekday) and because a different number of days\n * is required for a week to count as the first week of a year.\n * @returns {number}\n */\n get localWeekNumber() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the week year according to the locale. Different locales assign week numbers (and therefor week years)\n * differently, see localWeekNumber.\n * @returns {number}\n */\n get localWeekYear() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.now().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale,\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale,\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.isUniversal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1, day: 1 }).offset ||\n this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Get those DateTimes which have the same local time as this DateTime, but a different offset from UTC\n * in this DateTime's zone. During DST changes local time can be ambiguous, for example\n * `2023-10-29T02:30:00` in `Europe/Berlin` can have offset `+01:00` or `+02:00`.\n * This method will return both possible DateTimes if this DateTime's local time is ambiguous.\n * @returns {DateTime[]}\n */\n getPossibleOffsets() {\n if (!this.isValid || this.isOffsetFixed) {\n return [this];\n }\n const dayMs = 86400000;\n const minuteMs = 60000;\n const localTS = objToLocalTS(this.c);\n const oEarlier = this.zone.offset(localTS - dayMs);\n const oLater = this.zone.offset(localTS + dayMs);\n\n const o1 = this.zone.offset(localTS - oEarlier * minuteMs);\n const o2 = this.zone.offset(localTS - oLater * minuteMs);\n if (o1 === o2) {\n return [this];\n }\n const ts1 = localTS - o1 * minuteMs;\n const ts2 = localTS - o2 * minuteMs;\n const c1 = tsToObj(ts1, o1);\n const c2 = tsToObj(ts2, o2);\n if (\n c1.hour === c2.hour &&\n c1.minute === c2.minute &&\n c1.second === c2.second &&\n c1.millisecond === c2.millisecond\n ) {\n return [clone(this, { ts: ts1 }), clone(this, { ts: ts2 })];\n }\n return [this];\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's local week year\n * @example DateTime.local(2020, 6, {locale: 'en-US'}).weeksInLocalWeekYear //=> 52\n * @example DateTime.local(2020, 6, {locale: 'de-DE'}).weeksInLocalWeekYear //=> 53\n * @type {number}\n */\n get weeksInLocalWeekYear() {\n return this.isValid\n ? weeksInWeekYear(\n this.localWeekYear,\n this.loc.getMinDaysInFirstWeek(),\n this.loc.getStartOfWeek()\n )\n : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOptions(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link DateTime#setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link DateTime#plus}. You may wish to use {@link DateTime#toLocal} and {@link DateTime#toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link DateTime#Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link DateTime#reconfigure} and {@link DateTime#setZone}.\n *\n * This method also supports setting locale-based week units, i.e. `localWeekday`, `localWeekNumber` and `localWeekYear`.\n * They cannot be mixed with ISO-week units like `weekday`.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnitWithLocalWeeks);\n const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, this.loc);\n\n const settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(\n { ...gregorianToWeek(this.c, minDaysInFirstWeek, startOfWeek), ...normalized },\n minDaysInFirstWeek,\n startOfWeek\n );\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian({ ...gregorianToOrdinal(this.c), ...normalized });\n } else {\n mixed = { ...this.toObject(), ...normalized };\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.now().plus(123) //~> in 123 milliseconds\n * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link DateTime#plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit, { useLocaleWeeks = false } = {}) {\n if (!this.isValid) return this;\n\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n if (useLocaleWeeks) {\n const startOfWeek = this.loc.getStartOfWeek();\n const { weekday } = this;\n if (weekday < startOfWeek) {\n o.weekNumber = this.weekNumber - 1;\n }\n o.weekday = startOfWeek;\n } else {\n o.weekday = 1;\n }\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit, opts) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit, opts)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link DateTime#toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/formatting?id=table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.now().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.now().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param formatOpts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toLocaleString(); //=> 4/20/2017\n * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL, { locale: 'fr' }); //=> '28 août 2022'\n * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hourCycle: 'h23' }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(formatOpts = Formats.DATE_SHORT, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), formatOpts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.now().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=false] - add the time zone format extension\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO({\n format = \"extended\",\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset = true,\n extendedZone = false,\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n const ext = format === \"extended\";\n\n let c = toISODate(this, ext);\n c += \"T\";\n c += toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone);\n return c;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return toISODate(this, format === \"extended\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=true] - add the time zone format extension\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n includePrefix = false,\n extendedZone = false,\n format = \"extended\",\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n let c = includePrefix ? \"T\" : \"\";\n return (\n c +\n toISOTime(\n this,\n format === \"extended\",\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone\n )\n );\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers. The output is always expressed in GMT.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n if (!this.isValid) {\n return null;\n }\n return toISODate(this, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false, includeOffsetSpace = true } = {}) {\n let fmt = \"HH:mm:ss.SSS\";\n\n if (includeZone || includeOffset) {\n if (includeOffsetSpace) {\n fmt += \" \";\n }\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += \"ZZ\";\n }\n }\n\n return toTechFormat(this, fmt, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`;\n } else {\n return `DateTime { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link DateTime#toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns the epoch seconds (as a whole number) of this DateTime.\n * @return {number}\n */\n toUnixInteger() {\n return this.isValid ? Math.floor(this.ts / 1000) : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a JavaScript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = { ...this.c };\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a JavaScript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\"created by diffing an invalid DateTime\");\n }\n\n const durOpts = { locale: this.locale, numberingSystem: this.numberingSystem, ...opts };\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link DateTime#diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.now(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime.\n * Higher-order units must also be identical for this function to return `true`.\n * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link DateTime#setZone} to convert one of the dates if needed.\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; only the locale of this DateTime is used\n * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit, opts) {\n if (!this.isValid) return false;\n\n const inputMs = otherDateTime.valueOf();\n const adjustedToZone = this.setZone(otherDateTime.zone, { keepLocalTime: true });\n return (\n adjustedToZone.startOf(unit, opts) <= inputMs && inputMs <= adjustedToZone.endOf(unit, opts)\n );\n }\n\n /**\n * Equality check\n * Two DateTimes are equal if and only if they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.now().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.now().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({}, { zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n let units = [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"];\n let unit = options.unit;\n if (Array.isArray(options.unit)) {\n units = options.unit;\n unit = undefined;\n }\n return diffRelative(base, this.plus(padding), {\n ...options,\n numeric: \"always\",\n units,\n unit,\n });\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.now().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(options.base || DateTime.fromObject({}, { zone: this.zone }), this, {\n ...options,\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true,\n });\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, (i) => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, (i) => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n /**\n * Build a parser for `fmt` using the given locale. This parser can be passed\n * to {@link DateTime.fromFormatParser} to a parse a date in this format. This\n * can be used to optimize cases where many dates need to be parsed in a\n * specific format.\n *\n * @param {String} fmt - the format the string is expected to be in (see\n * description)\n * @param {Object} options - options used to set locale and numberingSystem\n * for parser\n * @returns {TokenParser} - opaque object to be used\n */\n static buildFormatParser(fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n });\n return new TokenParser(localeToUse, fmt);\n }\n\n /**\n * Create a DateTime from an input string and format parser.\n *\n * The format parser must have been created with the same locale as this call.\n *\n * @param {String} text - the string to parse\n * @param {TokenParser} formatParser - parser from {@link DateTime.buildFormatParser}\n * @param {Object} opts - options taken by fromFormat()\n * @returns {DateTime}\n */\n static fromFormatParser(text, formatParser, opts = {}) {\n if (isUndefined(text) || isUndefined(formatParser)) {\n throw new InvalidArgumentError(\n \"fromFormatParser requires an input string and a format parser\"\n );\n }\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n });\n\n if (!localeToUse.equals(formatParser.locale)) {\n throw new InvalidArgumentError(\n `fromFormatParser called with a locale of ${localeToUse}, ` +\n `but the format parser was created for ${formatParser.locale}`\n );\n }\n\n const { result, zone, specificOffset, invalidReason } = formatParser.explainFromTokens(text);\n\n if (invalidReason) {\n return DateTime.invalid(invalidReason);\n } else {\n return parseDataToDateTime(\n result,\n zone,\n opts,\n `format ${formatParser.format}`,\n text,\n specificOffset\n );\n }\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link DateTime#toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED_WITH_WEEKDAY() {\n return Formats.DATE_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n","export default [\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AED',\r\n 'AFN',\r\n 'AFN',\r\n 'AFN',\r\n 'ALL',\r\n 'ALL',\r\n 'ALL',\r\n 'AMD',\r\n 'AMD',\r\n 'AMD',\r\n 'ARS',\r\n 'ARS',\r\n 'ARS',\r\n 'ARS',\r\n 'ARS',\r\n 'ARS',\r\n 'ARS',\r\n 'ARS',\r\n 'ARS',\r\n 'ARS',\r\n 'ARS',\r\n 'ARS',\r\n 'ARS',\r\n 'ARS',\r\n 'ARS',\r\n 'ARS',\r\n 'ARS',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AUD',\r\n 'AWG',\r\n 'AWG',\r\n 'BAM',\r\n 'BAM',\r\n 'BAM',\r\n 'BBD',\r\n 'BBD',\r\n 'BBD',\r\n 'BBD',\r\n 'BDT',\r\n 'BDT',\r\n 'BDT',\r\n 'BDT',\r\n 'BGN',\r\n 'BGN',\r\n 'BGN',\r\n 'BGN',\r\n 'BGN',\r\n 'BGN',\r\n 'BGN',\r\n 'BHD',\r\n 'BHD',\r\n 'BHD',\r\n 'BHD',\r\n 'BHD',\r\n 'BIF',\r\n 'BIF',\r\n 'BIF',\r\n 'BMD',\r\n 'BMD',\r\n 'BMD',\r\n 'BMD',\r\n 'BMD',\r\n 'BMD',\r\n 'BND',\r\n 'BND',\r\n 'BND',\r\n 'BOB',\r\n 'BOB',\r\n 'BOB',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BRL',\r\n 'BSD',\r\n 'BSD',\r\n 'BSD',\r\n 'BTN',\r\n 'BTN',\r\n 'BWP',\r\n 'BWP',\r\n 'BWP',\r\n 'BWP',\r\n 'BWP',\r\n 'BZD',\r\n 'BZD',\r\n 'BZD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CAD',\r\n 'CDF',\r\n 'CDF',\r\n 'CDF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CHF',\r\n 'CLP',\r\n 'CLP',\r\n 'CLP',\r\n 'CLP',\r\n 'CLP',\r\n 'CLP',\r\n 'CLP',\r\n 'CLP',\r\n 'CLP',\r\n 'CLP',\r\n 'CLP',\r\n 'CLP',\r\n 'CNH',\r\n 'CNH',\r\n 'CNH',\r\n 'CNH',\r\n 'CNH',\r\n 'CNH',\r\n 'CNH',\r\n 'CNH',\r\n 'CNH',\r\n 'CNH',\r\n 'CNH',\r\n 'CNH',\r\n 'CNH',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'CNY',\r\n 'COP',\r\n 'COP',\r\n 'COP',\r\n 'COP',\r\n 'COP',\r\n 'COP',\r\n 'COP',\r\n 'COP',\r\n 'COP',\r\n 'COP',\r\n 'COP',\r\n 'CRC',\r\n 'CRC',\r\n 'CRC',\r\n 'CUP',\r\n 'CUP',\r\n 'CUP',\r\n 'CVE',\r\n 'CVE',\r\n 'CYP',\r\n 'CZK',\r\n 'CZK',\r\n 'CZK',\r\n 'CZK',\r\n 'CZK',\r\n 'CZK',\r\n 'CZK',\r\n 'CZK',\r\n 'CZK',\r\n 'CZK',\r\n 'CZK',\r\n 'CZK',\r\n 'CZK',\r\n 'CZK',\r\n 'DJF',\r\n 'DJF',\r\n 'DJF',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DKK',\r\n 'DOP',\r\n 'DOP',\r\n 'DOP',\r\n 'DZD',\r\n 'DZD',\r\n 'DZD',\r\n 'EGP',\r\n 'EGP',\r\n 'EGP',\r\n 'EGP',\r\n 'EGP',\r\n 'EGP',\r\n 'ETB',\r\n 'ETB',\r\n 'ETB',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'EUR',\r\n 'FJD',\r\n 'FJD',\r\n 'FJD',\r\n 'FJD',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GBP',\r\n 'GEL',\r\n 'GHS',\r\n 'GHS',\r\n 'GHS',\r\n 'GHS',\r\n 'GMD',\r\n 'GNF',\r\n 'GNF',\r\n 'GNF',\r\n 'GTQ',\r\n 'GTQ',\r\n 'GTQ',\r\n 'GYD',\r\n 'GYD',\r\n 'GYD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HKD',\r\n 'HNL',\r\n 'HNL',\r\n 'HNL',\r\n 'HRK',\r\n 'HRK',\r\n 'HRK',\r\n 'HTG',\r\n 'HTG',\r\n 'HTG',\r\n 'HUF',\r\n 'HUF',\r\n 'HUF',\r\n 'HUF',\r\n 'HUF',\r\n 'HUF',\r\n 'HUF',\r\n 'HUF',\r\n 'HUF',\r\n 'HUF',\r\n 'HUF',\r\n 'IDR',\r\n 'IDR',\r\n 'IDR',\r\n 'IDR',\r\n 'IDR',\r\n 'IDR',\r\n 'IDR',\r\n 'IDR',\r\n 'IDR',\r\n 'IDR',\r\n 'IDR',\r\n 'IDR',\r\n 'IDR',\r\n 'IDR',\r\n 'IDR',\r\n 'IDR',\r\n 'IDR',\r\n 'IDR',\r\n 'ILS',\r\n 'ILS',\r\n 'ILS',\r\n 'ILS',\r\n 'ILS',\r\n 'ILS',\r\n 'ILS',\r\n 'ILS',\r\n 'ILS',\r\n 'ILS',\r\n 'ILS',\r\n 'ILS',\r\n 'ILS',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'INR',\r\n 'IQD',\r\n 'IQD',\r\n 'IQD',\r\n 'ISK',\r\n 'ISK',\r\n 'ISK',\r\n 'ISK',\r\n 'ISK',\r\n 'ISK',\r\n 'ISK',\r\n 'ISK',\r\n 'ISK',\r\n 'JMD',\r\n 'JMD',\r\n 'JMD',\r\n 'JOD',\r\n 'JOD',\r\n 'JOD',\r\n 'JOD',\r\n 'JOD',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'JPY',\r\n 'KES',\r\n 'KES',\r\n 'KES',\r\n 'KES',\r\n 'KHR',\r\n 'KHR',\r\n 'KHR',\r\n 'KMF',\r\n 'KMF',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KRW',\r\n 'KWD',\r\n 'KWD',\r\n 'KWD',\r\n 'KWD',\r\n 'KWD',\r\n 'KWD',\r\n 'KWD',\r\n 'KYD',\r\n 'KYD',\r\n 'KYD',\r\n 'KYD',\r\n 'KYD',\r\n 'KZT',\r\n 'KZT',\r\n 'KZT',\r\n 'LAK',\r\n 'LAK',\r\n 'LAK',\r\n 'LBP',\r\n 'LBP',\r\n 'LBP',\r\n 'LKR',\r\n 'LKR',\r\n 'LKR',\r\n 'LKR',\r\n 'LRD',\r\n 'LRD',\r\n 'LRD',\r\n 'LSL',\r\n 'LSL',\r\n 'LSL',\r\n 'LTL',\r\n 'LYD',\r\n 'LYD',\r\n 'LYD',\r\n 'MAD',\r\n 'MAD',\r\n 'MAD',\r\n 'MAD',\r\n 'MAD',\r\n 'MDL',\r\n 'MDL',\r\n 'MDL',\r\n 'MGA',\r\n 'MGA',\r\n 'MGA',\r\n 'MKD',\r\n 'MKD',\r\n 'MKD',\r\n 'MMK',\r\n 'MMK',\r\n 'MMK',\r\n 'MOP',\r\n 'MOP',\r\n 'MOP',\r\n 'MUR',\r\n 'MUR',\r\n 'MUR',\r\n 'MVR',\r\n 'MVR',\r\n 'MVR',\r\n 'MWK',\r\n 'MWK',\r\n 'MWK',\r\n 'MWK',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXN',\r\n 'MXV',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MYR',\r\n 'MZN',\r\n 'MZN',\r\n 'NAD',\r\n 'NAD',\r\n 'NAD',\r\n 'NGN',\r\n 'NGN',\r\n 'NGN',\r\n 'NGN',\r\n 'NGN',\r\n 'NIO',\r\n 'NIO',\r\n 'NIO',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NOK',\r\n 'NPR',\r\n 'NPR',\r\n 'NPR',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'NZD',\r\n 'OMR',\r\n 'OMR',\r\n 'OMR',\r\n 'OMR',\r\n 'OMR',\r\n 'OMR',\r\n 'PAB',\r\n 'PAB',\r\n 'PAB',\r\n 'PEN',\r\n 'PEN',\r\n 'PEN',\r\n 'PEN',\r\n 'PEN',\r\n 'PEN',\r\n 'PEN',\r\n 'PEN',\r\n 'PEN',\r\n 'PGK',\r\n 'PGK',\r\n 'PGK',\r\n 'PGK',\r\n 'PHP',\r\n 'PHP',\r\n 'PHP',\r\n 'PHP',\r\n 'PHP',\r\n 'PHP',\r\n 'PHP',\r\n 'PHP',\r\n 'PHP',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PKR',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PLN',\r\n 'PYG',\r\n 'PYG',\r\n 'PYG',\r\n 'QAR',\r\n 'QAR',\r\n 'QAR',\r\n 'QAR',\r\n 'QAR',\r\n 'QAR',\r\n 'RON',\r\n 'RON',\r\n 'RON',\r\n 'RON',\r\n 'RON',\r\n 'RSD',\r\n 'RSD',\r\n 'RSD',\r\n 'RSD',\r\n 'RSD',\r\n 'RSD',\r\n 'RUB',\r\n 'RUB',\r\n 'RUB',\r\n 'RUB',\r\n 'RUB',\r\n 'RUB',\r\n 'RUB',\r\n 'RUB',\r\n 'RUB',\r\n 'RUB',\r\n 'RUB',\r\n 'RUB',\r\n 'RUB',\r\n 'RUB',\r\n 'RWF',\r\n 'RWF',\r\n 'RWF',\r\n 'RWF',\r\n 'SAR',\r\n 'SAR',\r\n 'SAR',\r\n 'SAR',\r\n 'SAR',\r\n 'SAR',\r\n 'SAR',\r\n 'SAR',\r\n 'SAR',\r\n 'SAR',\r\n 'SCR',\r\n 'SCR',\r\n 'SCR',\r\n 'SDG',\r\n 'SDG',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SEK',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SGD',\r\n 'SHP',\r\n 'SLL',\r\n 'SLL',\r\n 'SLL',\r\n 'SOS',\r\n 'SOS',\r\n 'SOS',\r\n 'SVC',\r\n 'SVC',\r\n 'SVC',\r\n 'SZL',\r\n 'SZL',\r\n 'SZL',\r\n 'SZL',\r\n 'SZL',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'THB',\r\n 'TJS',\r\n 'TJS',\r\n 'TMT',\r\n 'TND',\r\n 'TND',\r\n 'TND',\r\n 'TND',\r\n 'TRY',\r\n 'TRY',\r\n 'TRY',\r\n 'TRY',\r\n 'TRY',\r\n 'TRY',\r\n 'TRY',\r\n 'TRY',\r\n 'TRY',\r\n 'TRY',\r\n 'TRY',\r\n 'TRY',\r\n 'TRY',\r\n 'TRY',\r\n 'TTD',\r\n 'TTD',\r\n 'TTD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TWD',\r\n 'TZS',\r\n 'TZS',\r\n 'TZS',\r\n 'TZS',\r\n 'UAH',\r\n 'UAH',\r\n 'UAH',\r\n 'UAH',\r\n 'UGX',\r\n 'UGX',\r\n 'UGX',\r\n 'UGX',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'USD',\r\n 'UYU',\r\n 'UYU',\r\n 'UYU',\r\n 'UZS',\r\n 'UZS',\r\n 'UZS',\r\n 'VND',\r\n 'VND',\r\n 'VND',\r\n 'VND',\r\n 'VND',\r\n 'XAF',\r\n 'XAF',\r\n 'XAF',\r\n 'XAG',\r\n 'XAG',\r\n 'XAG',\r\n 'XAG',\r\n 'XAG',\r\n 'XAG',\r\n 'XAG',\r\n 'XAG',\r\n 'XAG',\r\n 'XAG',\r\n 'XAG',\r\n 'XAG',\r\n 'XAG',\r\n 'XAG',\r\n 'XAG',\r\n 'XAG',\r\n 'XAG',\r\n 'XAU',\r\n 'XAU',\r\n 'XAU',\r\n 'XAU',\r\n 'XAU',\r\n 'XAU',\r\n 'XAU',\r\n 'XAU',\r\n 'XAU',\r\n 'XAU',\r\n 'XAU',\r\n 'XAU',\r\n 'XAU',\r\n 'XAU',\r\n 'XAU',\r\n 'XAU',\r\n 'XAU',\r\n 'XAU',\r\n 'XCD',\r\n 'XDR',\r\n 'XOF',\r\n 'XOF',\r\n 'XPF',\r\n 'XPF',\r\n 'XPF',\r\n 'YER',\r\n 'YER',\r\n 'YER',\r\n 'ZAC',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZAR',\r\n 'ZMW',\r\n 'ZMW',\r\n 'ZMW',\r\n 'ZMW'\r\n];\r\n","import { DateTime } from 'luxon';\r\nimport { CookieManager } from '../index.ts';\r\nimport FX_CURRECIES from '../constants/fx_currencies.js';\r\n\r\ntype Day = {\r\n date: number;\r\n day: string;\r\n};\r\n\r\ntype Week = Day[];\r\n\r\ntype Month = Week[];\r\n\r\nconst currencies = ['BTC', 'ETH', 'USDT', 'USDC', ...FX_CURRECIES];\r\n\r\nconst forexMarketHours = [\r\n { name: 'Sydney', open: '21:00', close: '6:00' },\r\n { name: 'Tokyo', open: '00:00', close: '9:00' },\r\n { name: 'London', open: '7:00', close: '16:00' },\r\n { name: 'New-York', open: '12:00', close: '21:00' }\r\n];\r\n\r\nexport function toFix(value: string | number, fixed = 2) {\r\n if (isNaN(+value)) return 0;\r\n\r\n const num = parseFloat(String(value));\r\n if (Number.isInteger(num)) return num;\r\n\r\n const stringValue = num.toString();\r\n const decimalIndex = stringValue.indexOf('.');\r\n if (decimalIndex === -1) return num;\r\n\r\n const fractionalPart = stringValue.slice(decimalIndex + 1);\r\n\r\n const firstSignificantIndex = fractionalPart.search(/[^0]/);\r\n if (firstSignificantIndex === -1) return num;\r\n\r\n const fix = firstSignificantIndex + fixed;\r\n\r\n const multiplier = 10 ** fix;\r\n return Math.round(num * multiplier) / multiplier;\r\n}\r\n\r\nexport function addSpaces(num: string | number) {\r\n if (num) {\r\n const str = num.toString();\r\n const regex = /\\B(?=(\\d{3})+(?!\\d))/g;\r\n if (regex.test(str)) {\r\n if (str.includes('.')) {\r\n let strArr = str.split('.');\r\n strArr[0] = strArr[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\r\n return strArr.join('.');\r\n } else {\r\n return str.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\r\n }\r\n } else {\r\n return str;\r\n }\r\n } else {\r\n return num;\r\n }\r\n}\r\nexport function calculatePNLFX(\r\n position: any,\r\n marketData: { bid: number; ask: number }\r\n) {\r\n const entryPrice = parseFloat(position.entry_price);\r\n\r\n const positionAmount = position.amount;\r\n const pair = position.pair.toLowerCase();\r\n const side = position.side;\r\n const leverage = position.leverage;\r\n\r\n const getMultiplier = (pair: string): number => {\r\n if (\r\n pair.endsWith('sek') ||\r\n pair.endsWith('mxn') ||\r\n pair.endsWith('jpy')\r\n )\r\n return 1000;\r\n if (pair.startsWith('xau')) return 100;\r\n if (\r\n pair.endsWith('f.t') ||\r\n pair.endsWith('.b') ||\r\n pair.endsWith('xpd') ||\r\n pair.endsWith('xag') ||\r\n pair.endsWith('xbr') ||\r\n pair.endsWith('xng') ||\r\n pair.endsWith('xpt') ||\r\n pair.endsWith('xti')\r\n )\r\n return 100;\r\n if (pair === 'cocoa' || pair === 'coffee') return 1;\r\n if (pair === 'brent') return 100;\r\n else return 100000;\r\n };\r\n\r\n const multiplier = getMultiplier(pair);\r\n\r\n let pnl = 0;\r\n let pnl_roi = 0;\r\n\r\n if (side === 'LONG') {\r\n pnl = (marketData.bid - entryPrice) * positionAmount * multiplier;\r\n pnl_roi = pnl / ((positionAmount * entryPrice * multiplier) / leverage);\r\n } else if (side === 'SHORT') {\r\n pnl = (entryPrice - marketData.ask) * positionAmount * multiplier;\r\n pnl_roi = pnl / ((positionAmount * entryPrice * multiplier) / leverage);\r\n }\r\n\r\n return { pnl, pnl_roi };\r\n}\r\n\r\nexport function calculatePNL(position: any, marketPrice: any) {\r\n const entryPrice = parseFloat(position.entry_price);\r\n const positionAmount = position.amount;\r\n const multiplier = position.multiplier;\r\n const side = position.side;\r\n\r\n let pnl = 0;\r\n let pnlToBalanceRatio = 0;\r\n\r\n if (side === 'SHORT') {\r\n pnl = (entryPrice - marketPrice) * Math.abs(positionAmount);\r\n pnlToBalanceRatio =\r\n (((entryPrice - marketPrice) * positionAmount * multiplier) /\r\n (entryPrice * Math.abs(positionAmount))) *\r\n 100;\r\n } else if (side === 'LONG') {\r\n pnl = (marketPrice - entryPrice) * Math.abs(positionAmount);\r\n pnlToBalanceRatio =\r\n (((marketPrice - entryPrice) * positionAmount * multiplier) /\r\n (entryPrice * Math.abs(positionAmount))) *\r\n 100;\r\n }\r\n\r\n return { pnl, pnlToBalanceRatio };\r\n}\r\n\r\nexport function toDynamicFix(value: string | number): number {\r\n if (isNaN(+value)) return 0;\r\n\r\n const num = parseFloat(String(value));\r\n if (Number.isInteger(num)) return num;\r\n\r\n const stringValue = num.toString();\r\n const decimalIndex = stringValue.indexOf('.');\r\n if (decimalIndex === -1) return num;\r\n\r\n const fractionalPart = stringValue.slice(decimalIndex + 1);\r\n\r\n const firstSignificantIndex = fractionalPart.search(/[^0]/);\r\n if (firstSignificantIndex === -1) return num;\r\n\r\n const fix = firstSignificantIndex + 4;\r\n\r\n const multiplier = 10 ** fix;\r\n return Math.round(num * multiplier) / multiplier;\r\n}\r\n\r\nexport function numFormat(value: string | number) {\r\n let parts = value.toString().split('.');\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n return parts.join('.');\r\n}\r\n\r\nexport function maskData(\r\n isMask: boolean,\r\n value: any,\r\n options: {\r\n repeat?: number;\r\n mask?: string;\r\n prefix?: string;\r\n suffix?: string;\r\n } = {}\r\n): any {\r\n const { repeat = 4, mask = '*', prefix = '', suffix = '' } = options;\r\n\r\n let finalPrefix, finalSuffix;\r\n\r\n if (isMask) {\r\n // change currency\r\n finalPrefix = prefix === '$' ? getCurrencySymbol() : prefix;\r\n finalSuffix = suffix === '$' ? getCurrencySymbol() : suffix;\r\n\r\n return finalPrefix + mask.repeat(repeat) + finalSuffix;\r\n } else {\r\n return value;\r\n }\r\n}\r\n\r\n// return key=1&key=2 || only active\r\nexport function transformKeysToQuery(keys: any) {\r\n return keys.reduce((accumulator: any, value: any, index: number) => {\r\n if (index === 0) {\r\n return `key=${encodeURIComponent(value.id)}`;\r\n } else {\r\n return accumulator + `&key=${encodeURIComponent(value.id)}`;\r\n }\r\n }, '');\r\n}\r\n\r\nexport function getTimezoneOffset() {\r\n function isFloat(n: number) {\r\n return Number(n) === n && n % 1 !== 0;\r\n }\r\n function toUTCOffset(n: number) {\r\n let nString = String(n);\r\n if (nString.includes('.75')) {\r\n return nString.replace('.75', ':45');\r\n } else if (nString.includes('.25')) {\r\n return nString.replace('.25', ':15');\r\n } else {\r\n return nString.replace('.5', ':30');\r\n }\r\n }\r\n const timezone_offset =\r\n Number(CookieManager.getItem('scope360::timezone')) || 0;\r\n\r\n const timezone_number = isFloat(timezone_offset)\r\n ? toUTCOffset(timezone_offset)\r\n : timezone_offset;\r\n\r\n return `UTC${timezone_offset >= 0 ? '+' : ''}${timezone_number}`;\r\n}\r\n\r\nexport function getFullYear(value: any) {\r\n return new Date(value).getFullYear();\r\n}\r\n\r\nexport function toBaseDate(value: any, offset = true) {\r\n const offsetString = offset ? getTimezoneOffset() : 'UTC+0';\r\n const dt = DateTime.fromISO(value, { setZone: true }).setZone(offsetString);\r\n return dt.toFormat('dd LLLL, y, TT');\r\n}\r\n\r\nexport function formatDate(value: any, format = 'dd/LL/y', offset = true) {\r\n const offsetString = offset ? getTimezoneOffset() : 'UTC+0';\r\n const dt = DateTime.fromISO(value, { setZone: true }).setZone(offsetString);\r\n return dt.toFormat(format);\r\n}\r\n\r\nexport function getFormattedDate(date: Date) {\r\n return date.toISOString().split('T')[0];\r\n}\r\n\r\nexport function getMonth(value: any) {\r\n const monthsArray = [\r\n 'January',\r\n 'February',\r\n 'March',\r\n 'April',\r\n 'May',\r\n 'June',\r\n 'July',\r\n 'August',\r\n 'September',\r\n 'October',\r\n 'November',\r\n 'December'\r\n ];\r\n return monthsArray[new Date(value).getMonth()];\r\n}\r\n\r\nexport function getDate(value: any) {\r\n return new Date(value).getDate();\r\n}\r\n\r\nexport function getDay(value: any) {\r\n const dt = DateTime.fromISO(value, { setZone: true });\r\n return dt.toFormat('cccc');\r\n}\r\n\r\nexport function getDaysDifference(dateString: string) {\r\n // Parse the input date\r\n const inputDate: any = new Date(dateString);\r\n\r\n // Get the current date\r\n const currentDate: any = new Date();\r\n\r\n // Calculate the difference in time\r\n const differenceInTime = currentDate - inputDate;\r\n\r\n // Convert the difference in time to days\r\n const differenceInDays = Math.floor(differenceInTime / (1000 * 3600 * 24));\r\n\r\n return differenceInDays;\r\n}\r\n\r\nexport function getCurrencySymbol(): string {\r\n const currencySymbols: { [key: string]: string } = {\r\n USD: '$',\r\n EUR: '€',\r\n JPY: '¥',\r\n GBP: '£',\r\n AUD: '$',\r\n CAD: '$',\r\n CHF: 'Fr.',\r\n CNY: '¥',\r\n INR: '₹',\r\n BRL: 'R$',\r\n ZAR: 'R',\r\n MXN: '$',\r\n NOK: 'kr',\r\n SGD: '$',\r\n NZD: '$',\r\n HKD: 'hk$',\r\n SEK: 'kr',\r\n DKK: 'kr',\r\n HRK: 'kn',\r\n EGP: '£'\r\n };\r\n\r\n const currency: string | undefined = getCookieCurrency();\r\n\r\n if (currency && currencySymbols[currency?.split('::')[0]]) {\r\n return currencySymbols[currency?.split('::')[0]];\r\n }\r\n\r\n return currencySymbols['USD'];\r\n}\r\n\r\nexport function isFx(): boolean {\r\n if (window !== undefined) {\r\n return (\r\n window.location.hostname.includes('fx') ||\r\n window.location.host === 'localhost:5173'\r\n );\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport function getCookieCurrency() {\r\n return isFx()\r\n ? CookieManager.getItem('scope360::currency_fx')\r\n : CookieManager.getItem('scope360::currency');\r\n}\r\n\r\nexport function getCurrencyRate(): number {\r\n const currency: string | undefined = getCookieCurrency();\r\n\r\n if (currency && currency?.split('::')[1]) {\r\n return +currency?.split('::')[1];\r\n }\r\n\r\n return 1;\r\n}\r\n\r\nexport const withSign = (\r\n value: any,\r\n options: {\r\n isPercentage?: boolean;\r\n isFixed?: boolean;\r\n isPlus?: boolean;\r\n isDynamicFix?: boolean;\r\n } = {\r\n isPercentage: false,\r\n isFixed: true,\r\n isPlus: false,\r\n isDynamicFix: false\r\n }\r\n) => {\r\n let sign;\r\n if (value >= 0) {\r\n sign = options.isPlus && value !== 0 ? '+' : '';\r\n } else {\r\n sign = '-';\r\n }\r\n let newValue = Math.abs(value);\r\n\r\n if (options.isDynamicFix) {\r\n newValue = toDynamicFix(newValue);\r\n } else if (options.isFixed) {\r\n newValue = toFix(newValue);\r\n }\r\n if (isFx()) {\r\n return options.isPercentage\r\n ? addSpaces(`${sign}${newValue}%`)\r\n : addSpaces(`${sign}${getCurrencySymbol()}${toFix(newValue)}`);\r\n }\r\n return options.isPercentage\r\n ? addSpaces(`${sign}${newValue}%`)\r\n : addSpaces(\r\n `${sign}${getCurrencySymbol()}${toFix(\r\n newValue * getCurrencyRate()\r\n )}`\r\n );\r\n};\r\n\r\nexport function calculateTimeDifference(\r\n startTime: any,\r\n endTime: any,\r\n isTable = false\r\n): string {\r\n const difference: any = +new Date(endTime) - +new Date(startTime);\r\n return getFormattedDuration(difference, isTable);\r\n}\r\n\r\nfunction parseTimezoneOffset(offsetString: string): number {\r\n const matches = offsetString.match(/([+-]?)(\\d+):?(\\d+)?/);\r\n if (!matches) return 0; // fallback if the format is unexpected\r\n\r\n const sign = matches[1] === '-' ? -1 : 1;\r\n const hours = parseInt(matches[2], 10);\r\n const minutes = matches[3] ? parseInt(matches[3], 10) : 0;\r\n\r\n return sign * (hours + minutes / 60); // Convert minutes to fractional hours\r\n}\r\n\r\nexport function convertMarketHoursToUserTime(\r\n timezoneOffset = getTimezoneOffset()\r\n) {\r\n function parseTime(timeString: string): number {\r\n const [hours, minutes] = timeString.split(':').map(Number);\r\n return hours + minutes / 60; // Convert time to hours as a float\r\n }\r\n\r\n function formatTime(time: number): string {\r\n const hours = Math.floor(time);\r\n const minutes = (time % 1) * 60;\r\n return `${String(hours).padStart(2, '0')}:${String(minutes).padStart(\r\n 2,\r\n '0'\r\n )}`;\r\n }\r\n\r\n const userOffset = parseTimezoneOffset(timezoneOffset);\r\n\r\n return forexMarketHours.map((market) => {\r\n const openUserTime = (parseTime(market.open) + userOffset + 24) % 24;\r\n const closeUserTime = (parseTime(market.close) + userOffset + 24) % 24;\r\n\r\n return {\r\n name: market.name,\r\n open: formatTime(openUserTime),\r\n close: formatTime(closeUserTime)\r\n };\r\n });\r\n}\r\nexport function getMarketStatus(timezone: string = getTimezoneOffset()) {\r\n const currentTime = new Date();\r\n const userOffset = parseTimezoneOffset(timezone);\r\n\r\n const currentTimeInSeconds =\r\n ((currentTime.getUTCHours() + userOffset + 24) % 24) * 3600 +\r\n currentTime.getUTCMinutes() * 60 +\r\n currentTime.getUTCSeconds();\r\n\r\n function timeToSeconds(time: string): number {\r\n const [hours, minutes] = time.split(':').map(Number);\r\n return hours * 3600 + minutes * 60;\r\n }\r\n\r\n const activeMarkets = forexMarketHours.filter(({ open, close }) => {\r\n const openTime =\r\n (timeToSeconds(open) + userOffset * 3600 + 86400) % 86400;\r\n const closeTime =\r\n (timeToSeconds(close) + userOffset * 3600 + 86400) % 86400;\r\n\r\n return openTime < closeTime\r\n ? currentTimeInSeconds >= openTime &&\r\n currentTimeInSeconds < closeTime\r\n : currentTimeInSeconds >= openTime ||\r\n currentTimeInSeconds < closeTime;\r\n });\r\n\r\n if (activeMarkets.length > 1) {\r\n const overlapEndInSeconds = Math.min(\r\n ...activeMarkets.map(\r\n ({ close }) =>\r\n (timeToSeconds(close) + userOffset * 3600 + 86400) % 86400\r\n )\r\n );\r\n return {\r\n activeMarkets: activeMarkets.map(({ name }) => name),\r\n overlapTime: Math.max(\r\n 0,\r\n Math.floor((overlapEndInSeconds - currentTimeInSeconds) / 60)\r\n )\r\n };\r\n }\r\n\r\n if (activeMarkets.length === 1) {\r\n return {\r\n activeMarkets: activeMarkets.map(({ name }) => name),\r\n overlapTime: 0\r\n };\r\n }\r\n\r\n const nextMarket = forexMarketHours\r\n .map(({ name, open }) => ({\r\n name,\r\n timeUntilOpenInSeconds:\r\n (timeToSeconds(open) + userOffset * 3600 + 86400) % 86400 >=\r\n currentTimeInSeconds\r\n ? ((timeToSeconds(open) + userOffset * 3600 + 86400) %\r\n 86400) -\r\n currentTimeInSeconds\r\n : 86400 -\r\n currentTimeInSeconds +\r\n ((timeToSeconds(open) + userOffset * 3600 + 86400) %\r\n 86400)\r\n }))\r\n .reduce((a, b) =>\r\n a.timeUntilOpenInSeconds < b.timeUntilOpenInSeconds ? a : b\r\n );\r\n\r\n return {\r\n activeMarkets: [],\r\n nextMarket: nextMarket.name,\r\n timeUntilNextOpen: Math.floor(nextMarket.timeUntilOpenInSeconds / 60),\r\n timeUntilNextOpenInSeconds: nextMarket.timeUntilOpenInSeconds\r\n };\r\n}\r\n\r\nexport function yTicksCallback(data: any, isMask: boolean) {\r\n if (data >= 1000 || data <= -1000)\r\n return maskData(isMask, toFix(data / 1000, 2) + 'k', { repeat: 3 });\r\n else return maskData(isMask, toFix(data, 2), { repeat: 3 });\r\n}\r\n\r\nexport function getFormattedDuration(duration: any, isTable = false) {\r\n const days = Math.floor(duration / (1000 * 60 * 60 * 24));\r\n const hours = Math.floor(\r\n (duration % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)\r\n );\r\n const minutes = Math.floor((duration % (1000 * 60 * 60)) / (1000 * 60));\r\n const seconds = Math.floor((duration % (1000 * 60)) / 1000);\r\n\r\n if (isTable) {\r\n if (days > 0) {\r\n return `${days} day${days > 1 ? 's' : ''} ${hours} hr${\r\n hours > 1 ? 's' : ''\r\n }`;\r\n }\r\n if (hours > 0) {\r\n return `${hours} hr${hours > 1 ? 's' : ''} ${minutes} min${\r\n minutes > 1 ? 's' : ''\r\n }`;\r\n }\r\n if (minutes > 0) {\r\n return `${minutes} min${minutes > 1 ? 's' : ''} ${seconds} sec${\r\n seconds > 1 ? 's' : ''\r\n }`;\r\n }\r\n return `${seconds} sec`;\r\n } else {\r\n const parts = [];\r\n if (days > 0) parts.push(`${days}d`);\r\n if (hours > 0) parts.push(`${hours}h`);\r\n if (minutes > 0) parts.push(`${minutes}m`);\r\n if (seconds > 0) parts.push(`${seconds}s`);\r\n\r\n return parts.join(' ');\r\n }\r\n}\r\n\r\nexport function addSlashToPair(pair: string) {\r\n const suffixMatch = pair.match(/(-[A-Za-z0-9]+)$/);\r\n const suffix = suffixMatch ? suffixMatch[1] : '';\r\n const pairWithoutSuffix = suffix ? pair.slice(0, -suffix.length) : pair;\r\n\r\n const regex = new RegExp(`^(.*?)(${currencies.join('|')})$`);\r\n const matches = pairWithoutSuffix.match(regex);\r\n\r\n if (matches) {\r\n const firstPart = matches[1];\r\n const secondPart = matches[2];\r\n if (firstPart && secondPart) {\r\n return `${firstPart}/${secondPart}${suffix}`;\r\n }\r\n }\r\n\r\n for (let i = 1; i < pairWithoutSuffix.length; i++) {\r\n const firstPart = pairWithoutSuffix.substring(0, i);\r\n const secondPart = pairWithoutSuffix.substring(i);\r\n\r\n if (currencies.includes(firstPart) && currencies.includes(secondPart)) {\r\n return `${firstPart}/${secondPart}${suffix}`;\r\n }\r\n }\r\n\r\n return pair;\r\n}\r\n\r\nexport function addSlashToFxPair(pair: string) {\r\n const currencies = [\r\n 'BTC',\r\n 'ETH',\r\n 'USDT',\r\n 'USD',\r\n 'EUR',\r\n 'GBP',\r\n 'JPY',\r\n 'CAD',\r\n 'CHF',\r\n 'USDC',\r\n 'CNH'\r\n ];\r\n\r\n for (let i = 1; i < pair.length; i++) {\r\n const firstPart = pair.substring(0, i);\r\n const secondPart = pair.substring(i);\r\n\r\n if (currencies.includes(firstPart) || currencies.includes(secondPart)) {\r\n return `${firstPart}/${secondPart}`;\r\n }\r\n }\r\n\r\n return pair; // Return original if no match found\r\n}\r\n\r\nexport function getCurrency(name: string, index: number) {\r\n const pair = addSlashToFxPair(name);\r\n const currency = pair.split('/')[index];\r\n if (currency) return currency.toLowerCase();\r\n}\r\nexport function getFullWeeksStartAndEndInMonth(month: number, year: number) {\r\n let weeks = [],\r\n firstDate = new Date(year, month, 1),\r\n lastDate = new Date(year, month + 1, 0),\r\n numDays = lastDate.getDate();\r\n\r\n let start = 1;\r\n let end;\r\n if (firstDate.getDay() === 1) {\r\n end = 7;\r\n } else if (firstDate.getDay() === 0) {\r\n let preMonthEndDay = new Date(year, month, 0);\r\n start = preMonthEndDay.getDate() - 6 + 1;\r\n end = 1;\r\n } else {\r\n let preMonthEndDay = new Date(year, month, 0);\r\n start = preMonthEndDay.getDate() + 1 - firstDate.getDay() + 1;\r\n end = 7 - firstDate.getDay() + 1;\r\n weeks.push({\r\n start: start,\r\n end: end\r\n });\r\n start = end + 1;\r\n end = end + 7;\r\n }\r\n while (start <= numDays) {\r\n weeks.push({\r\n start: start,\r\n end: end\r\n });\r\n start = end + 1;\r\n end = end + 7;\r\n end = start === 1 && end === 8 ? 1 : end;\r\n if (end > numDays && start <= numDays) {\r\n end = end - numDays;\r\n weeks.push({\r\n start: start,\r\n end: end\r\n });\r\n break;\r\n }\r\n }\r\n // *** the magic starts here\r\n return weeks.map(({ start, end }, index) => {\r\n const sub = +(start > end && index === 0);\r\n return Array.from({ length: 7 }, (_, index) => {\r\n const date = new Date(year, month - sub, start + index);\r\n return {\r\n date: date.getDate(),\r\n month: date.getMonth(),\r\n day: date.toLocaleString('en', { weekday: 'long' })\r\n };\r\n });\r\n });\r\n}\r\nexport function getMonthsBetweenDates(\r\n startDate: string | Date,\r\n endDate: string | Date,\r\n withId: boolean\r\n) {\r\n let start = new Date(startDate);\r\n let end = new Date(endDate);\r\n\r\n if (start > end) {\r\n [start, end] = [end, start];\r\n }\r\n\r\n let months = [];\r\n let current = new Date(start.getFullYear(), start.getMonth(), 1);\r\n let id = 0;\r\n\r\n while (current <= end) {\r\n let monthYear = current.toLocaleString('en', {\r\n month: 'long',\r\n year: 'numeric'\r\n });\r\n withId\r\n ? months.push({\r\n month: current.getMonth(),\r\n year: current.getFullYear(),\r\n name: monthYear,\r\n id\r\n })\r\n : months.push(monthYear);\r\n id = id + 1;\r\n current.setMonth(current.getMonth() + 1);\r\n }\r\n\r\n return months;\r\n}\r\n\r\nexport function getYearsBetweenDates(\r\n startDate: string | Date,\r\n endDate: string | Date,\r\n withId: boolean\r\n) {\r\n let start = new Date(startDate);\r\n let end = new Date(endDate);\r\n\r\n if (start > end) {\r\n [start, end] = [end, start];\r\n }\r\n\r\n let years = [];\r\n let startYear = start.getFullYear();\r\n let endYear = end.getFullYear();\r\n let id = 0;\r\n\r\n for (let year = startYear; year <= endYear; year++) {\r\n withId\r\n ? years.push({ value: year, name: year.toString(), id })\r\n : years.push(year.toString());\r\n id = id + 1;\r\n }\r\n\r\n return years;\r\n}\r\nexport function subtractDays(isoString: string, days: number) {\r\n let date = new Date(isoString);\r\n let timestamp = date.getTime();\r\n\r\n let newTimestamp = timestamp - days * 24 * 60 * 60 * 1000;\r\n\r\n let newDate = new Date(newTimestamp).toISOString().split('.')[0] + 'Z';\r\n\r\n return newDate;\r\n}\r\n\r\nexport function getYearStructure(year: number): Month[] {\r\n function getMonthWeeks(month: number, year: number): Month {\r\n let weeks: { start: number; end: number }[] = [],\r\n firstDate = new Date(year, month, 1),\r\n lastDate = new Date(year, month + 1, 0),\r\n numDays = lastDate.getDate();\r\n\r\n let start = 1;\r\n let end;\r\n if (firstDate.getDay() === 1) {\r\n end = 7;\r\n } else if (firstDate.getDay() === 0) {\r\n let preMonthEndDay = new Date(year, month, 0);\r\n start = preMonthEndDay.getDate() - 6 + 1;\r\n end = 1;\r\n } else {\r\n let preMonthEndDay = new Date(year, month, 0);\r\n start = preMonthEndDay.getDate() + 1 - firstDate.getDay() + 1;\r\n end = 7 - firstDate.getDay() + 1;\r\n weeks.push({\r\n start: start,\r\n end: end\r\n });\r\n start = end + 1;\r\n end = end + 7;\r\n }\r\n while (start <= numDays) {\r\n weeks.push({\r\n start: start,\r\n end: end\r\n });\r\n start = end + 1;\r\n end = end + 7;\r\n end = start === 1 && end === 8 ? 1 : end;\r\n if (end > numDays && start <= numDays) {\r\n end = end - numDays;\r\n weeks.push({\r\n start: start,\r\n end: end\r\n });\r\n break;\r\n }\r\n }\r\n\r\n return weeks.map(({ start, end }, index): Week => {\r\n const sub = +(start > end && index === 0);\r\n return Array.from({ length: 7 }, (_, index): Day => {\r\n const date = new Date(year, month - sub, start + index);\r\n return {\r\n date: date.getMonth() === month ? date.getDate() : 0,\r\n day: date.toLocaleString('en', { weekday: 'long' })\r\n };\r\n });\r\n });\r\n }\r\n\r\n let yearStructure = [];\r\n for (let month = 0; month < 12; month++) {\r\n yearStructure.push(getMonthWeeks(month, year));\r\n }\r\n\r\n return yearStructure;\r\n}\r\nexport function findEarliestDate(dateStrings: string[]) {\r\n const dates = dateStrings.map((dateStr) => new Date(dateStr));\r\n const earliestDate = new Date(\r\n Math.min(...dates.map((date) => date.getTime()))\r\n );\r\n\r\n return earliestDate;\r\n}\r\n","import { h, render, type Component } from 'vue';\r\n\r\nexport const createComponent = (\r\n component: Component,\r\n props: Record<string, unknown>,\r\n parentContainer: Element,\r\n slots: Record<string, unknown> = {},\r\n id?: string,\r\n) => {\r\n const vNode = h(component, props, slots);\r\n const container = document.createElement('div');\r\n container.setAttribute('id', id || '');\r\n parentContainer.appendChild(container);\r\n render(vNode, container);\r\n\r\n return vNode.component;\r\n};\r\n","<template>\n <component :is=\"iconComponent\" :key=\"icon\" :name=\"icon\" />\n</template>\n<script setup>\nimport { computed, defineAsyncComponent, defineProps } from 'vue';\n\r\nconst props = defineProps({\r\n icon: String\r\n});\r\n\r\nconst iconComponent = computed(() =>\n defineAsyncComponent(() =>\n import(`../components-new/svg/${props.icon}.vue`)\n )\n);\n</script>\n","<template>\r\n <Transition>\r\n <div ref=\"toast\" class=\"toast\">\r\n <div class=\"toast__content\">\r\n <div :class=\"['toast__icon-wrapper', iconClass]\">\r\n <Icon :icon=\"icon\" />\r\n </div>\r\n <div class=\"toast__content-wrapper\">\r\n <div v-show=\"title.length\" class=\"toast__title\">\r\n {{ title }}\r\n </div>\r\n <div\r\n v-show=\"message.length\"\r\n v-html=\"message\"\r\n class=\"toast__text\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"toast__dismiss\"\r\n @click=\"onClose\"\r\n v-if=\"type !== 'progress'\"\r\n >\r\n {{ action?.label ? action.label : textOnClose }}\r\n </div>\r\n </div>\r\n </Transition>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport Icon from './Icon.vue';\r\nimport { computed, ref } from 'vue';\r\n\r\nconst props = defineProps({\r\n type: { type: String, default: 'success' }, // success, info, error\r\n textOnClose: { type: String },\r\n message: { type: String, default: '' },\r\n title: { type: String, default: '' },\r\n action: { type: Object, default: undefined }, // { label, callback }\r\n duration: { type: Number }\r\n});\r\n\r\nconst toast = ref<Element | null>(null);\r\n\r\nconst onClose = () => {\r\n if (props.action?.label) {\r\n props.action?.callback();\r\n } else {\r\n toast.value?.parentElement?.remove();\r\n }\r\n};\r\n\r\nconst icon = computed(() => {\r\n if (props.type === 'success') {\r\n return 'CheckboxCheckedDoutone';\r\n } else if (props.type === 'progress') {\r\n return 'Loader';\r\n } else if (props.type === 'error') {\r\n return 'BanDuotone';\r\n } else if (props.type === 'info') {\r\n return 'TriangleWarningDuotone';\r\n }\r\n});\r\n\r\nconst iconClass = computed(() => {\r\n if (props.type === 'success') {\r\n return '-success';\r\n } else if (props.type === 'info') {\r\n return '-info';\r\n } else if (props.type === 'progress') {\r\n return '-progress';\r\n } else {\r\n return '-error';\r\n }\r\n});\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n@import '../assets/styles/_main.scss';\r\n\r\n.toast {\r\n display: flex;\r\n height: max-content;\r\n border-radius: 10px;\r\n border: 1px solid $border;\r\n @include shadow-small;\r\n\r\n position: fixed;\r\n right: 24px;\r\n bottom: 24px;\r\n background-color: $card-background;\r\n z-index: 120;\r\n\r\n max-width: calc(100vw - 48px);\r\n\r\n &__content {\r\n display: flex;\r\n align-items: center;\r\n padding: 10px 12px;\r\n gap: 8px;\r\n\r\n &-wrapper {\r\n display: flex;\r\n flex-direction: column;\r\n max-width: 350px;\r\n }\r\n }\r\n\r\n &__title {\r\n }\r\n\r\n &__text {\r\n @include fz-14;\r\n font-weight: 500;\r\n color: $text-high-emphasis;\r\n }\r\n\r\n &__icon-wrapper {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 24px;\r\n height: 24px;\r\n }\r\n\r\n &__dismiss {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 88px;\r\n border-left: 1px solid $border;\r\n cursor: pointer;\r\n\r\n @include fz-14;\r\n font-weight: 500;\r\n color: $text-high-emphasis;\r\n }\r\n}\r\n\r\n.v-enter-active,\r\n.v-leave-active {\r\n @include transition-default(opacity);\r\n}\r\n\r\n.v-enter-from,\r\n.v-leave-to {\r\n opacity: 0;\r\n}\r\n</style>\r\n","// @ts-ignore\r\nimport { createComponent } from '../helpers/create-component';\r\n// @ts-ignore\r\n// import { Toast } from '../index';\r\n// New ui toast\r\nimport Toast from '../components-new/Toast.vue';\r\n\r\nimport { watch } from 'vue';\r\n\r\nexport interface ToastOptions {\r\n type: 'success' | 'error' | 'info' | 'progress';\r\n textOnClose?: string;\r\n duration?: number;\r\n message?: string;\r\n title?: string;\r\n hideOnRouteChange?: boolean;\r\n action?: { label: string; callback: () => void };\r\n}\r\n\r\nexport const DEFAULT_TOAST_OPTIONS: ToastOptions = {\r\n type: 'info',\r\n textOnClose: 'Dismiss',\r\n duration: 5000,\r\n hideOnRouteChange: true\r\n};\r\n\r\nexport type DismissFunc = () => void;\r\nexport type ToastDismissHandler = { dismiss: DismissFunc } | undefined;\r\n\r\nconst open = (options: Partial<ToastOptions>): ToastDismissHandler => {\r\n if (!options?.message) {\r\n return;\r\n }\r\n\r\n const props: ToastOptions = { ...DEFAULT_TOAST_OPTIONS, ...options };\r\n const instance = createComponent(\r\n Toast,\r\n props as Record<string, any>,\r\n document.body,\r\n undefined,\r\n 'toast'\r\n );\r\n\r\n const dismiss = () => {\r\n (instance?.refs?.toast as Element)?.parentElement?.remove();\r\n };\r\n\r\n setTimeout(dismiss, props.duration);\r\n\r\n if (props?.hideOnRouteChange) {\r\n const unwatch = watch(\r\n () => window.location.href,\r\n () => {\r\n dismiss();\r\n unwatch();\r\n }\r\n );\r\n }\r\n\r\n return {\r\n dismiss\r\n };\r\n};\r\n\r\nconst success = (\r\n message: string,\r\n options?: Pick<\r\n ToastOptions,\r\n 'duration' | 'hideOnRouteChange' | 'action' | 'textOnClose' | 'title'\r\n >\r\n) => {\r\n return open({\r\n ...options,\r\n message,\r\n type: 'success'\r\n });\r\n};\r\n\r\nconst error = (\r\n message: string,\r\n options?: Pick<\r\n ToastOptions,\r\n 'duration' | 'hideOnRouteChange' | 'action' | 'textOnClose' | 'title'\r\n >\r\n) => {\r\n return open({\r\n ...options,\r\n message,\r\n type: 'error'\r\n });\r\n};\r\n\r\nconst progress = (\r\n message: string,\r\n options?: Pick<\r\n ToastOptions,\r\n 'duration' | 'hideOnRouteChange' | 'action' | 'textOnClose' | 'title'\r\n >\r\n) => {\r\n return open({\r\n ...options,\r\n message,\r\n type: 'progress'\r\n });\r\n};\r\n\r\nconst info = (\r\n message: string,\r\n options?: Pick<\r\n ToastOptions,\r\n 'duration' | 'hideOnRouteChange' | 'action' | 'textOnClose' | 'title'\r\n >\r\n) => {\r\n return open({\r\n ...options,\r\n message,\r\n type: 'info'\r\n });\r\n};\r\n\r\nexport const useToast = () => {\r\n return {\r\n open,\r\n success,\r\n progress,\r\n error,\r\n info\r\n };\r\n};\r\n","import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, isVNode, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, openBlock, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, unref, useAttrs, watch, watchEffect, withCtx } from \"vue\";\n\n//#region src/packages/state.ts\nlet toastsCounter = 1;\nvar Observer = class {\n\tsubscribers;\n\ttoasts;\n\tdismissedToasts;\n\tconstructor() {\n\t\tthis.subscribers = [];\n\t\tthis.toasts = [];\n\t\tthis.dismissedToasts = new Set();\n\t}\n\tsubscribe = (subscriber) => {\n\t\tthis.subscribers.push(subscriber);\n\t\treturn () => {\n\t\t\tconst index = this.subscribers.indexOf(subscriber);\n\t\t\tthis.subscribers.splice(index, 1);\n\t\t};\n\t};\n\tpublish = (data) => {\n\t\tthis.subscribers.forEach((subscriber) => subscriber(data));\n\t};\n\taddToast = (data) => {\n\t\tthis.publish(data);\n\t\tthis.toasts = [...this.toasts, data];\n\t};\n\tcreate = (data) => {\n\t\tconst { message,...rest } = data;\n\t\tconst id = typeof data.id === \"number\" || data.id && data.id?.length > 0 ? data.id : toastsCounter++;\n\t\tconst alreadyExists = this.toasts.find((toast$1) => {\n\t\t\treturn toast$1.id === id;\n\t\t});\n\t\tconst dismissible = data.dismissible === void 0 ? true : data.dismissible;\n\t\tif (this.dismissedToasts.has(id)) this.dismissedToasts.delete(id);\n\t\tif (alreadyExists) this.toasts = this.toasts.map((toast$1) => {\n\t\t\tif (toast$1.id === id) {\n\t\t\t\tthis.publish({\n\t\t\t\t\t...toast$1,\n\t\t\t\t\t...data,\n\t\t\t\t\tid,\n\t\t\t\t\ttitle: message\n\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\t...toast$1,\n\t\t\t\t\t...data,\n\t\t\t\t\tid,\n\t\t\t\t\tdismissible,\n\t\t\t\t\ttitle: message\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn toast$1;\n\t\t});\n\t\telse this.addToast({\n\t\t\ttitle: message,\n\t\t\t...rest,\n\t\t\tdismissible,\n\t\t\tid\n\t\t});\n\t\treturn id;\n\t};\n\tdismiss = (id) => {\n\t\tif (id) {\n\t\t\tthis.dismissedToasts.add(id);\n\t\t\trequestAnimationFrame(() => this.subscribers.forEach((subscriber) => subscriber({\n\t\t\t\tid,\n\t\t\t\tdismiss: true\n\t\t\t})));\n\t\t} else this.toasts.forEach((toast$1) => {\n\t\t\tthis.subscribers.forEach((subscriber) => subscriber({\n\t\t\t\tid: toast$1.id,\n\t\t\t\tdismiss: true\n\t\t\t}));\n\t\t});\n\t\treturn id;\n\t};\n\tmessage = (message, data) => {\n\t\treturn this.create({\n\t\t\t...data,\n\t\t\tmessage,\n\t\t\ttype: \"default\"\n\t\t});\n\t};\n\terror = (message, data) => {\n\t\treturn this.create({\n\t\t\t...data,\n\t\t\ttype: \"error\",\n\t\t\tmessage\n\t\t});\n\t};\n\tsuccess = (message, data) => {\n\t\treturn this.create({\n\t\t\t...data,\n\t\t\ttype: \"success\",\n\t\t\tmessage\n\t\t});\n\t};\n\tinfo = (message, data) => {\n\t\treturn this.create({\n\t\t\t...data,\n\t\t\ttype: \"info\",\n\t\t\tmessage\n\t\t});\n\t};\n\twarning = (message, data) => {\n\t\treturn this.create({\n\t\t\t...data,\n\t\t\ttype: \"warning\",\n\t\t\tmessage\n\t\t});\n\t};\n\tloading = (message, data) => {\n\t\treturn this.create({\n\t\t\t...data,\n\t\t\ttype: \"loading\",\n\t\t\tmessage\n\t\t});\n\t};\n\tpromise = (promise, data) => {\n\t\tif (!data) return;\n\t\tlet id;\n\t\tif (data.loading !== void 0) id = this.create({\n\t\t\t...data,\n\t\t\tpromise,\n\t\t\ttype: \"loading\",\n\t\t\tmessage: data.loading,\n\t\t\tdescription: typeof data.description !== \"function\" ? data.description : void 0\n\t\t});\n\t\tconst p = Promise.resolve(promise instanceof Function ? promise() : promise);\n\t\tlet shouldDismiss = id !== void 0;\n\t\tlet result;\n\t\tconst originalPromise = p.then(async (response) => {\n\t\t\tresult = [\"resolve\", response];\n\t\t\tconst isVueComponent = isVNode(response);\n\t\t\tif (isVueComponent) {\n\t\t\t\tshouldDismiss = false;\n\t\t\t\tthis.create({\n\t\t\t\t\tid,\n\t\t\t\t\ttype: \"default\",\n\t\t\t\t\tmessage: response\n\t\t\t\t});\n\t\t\t} else if (isHttpResponse(response) && !response.ok) {\n\t\t\t\tshouldDismiss = false;\n\t\t\t\tconst promiseData = typeof data.error === \"function\" ? await data.error(`HTTP error! status: ${response.status}`) : data.error;\n\t\t\t\tconst description = typeof data.description === \"function\" ? await data.description(`HTTP error! status: ${response.status}`) : data.description;\n\t\t\t\tconst isExtendedResult = typeof promiseData === \"object\" && !isVNode(promiseData);\n\t\t\t\tconst toastSettings = isExtendedResult ? promiseData : {\n\t\t\t\t\tmessage: promiseData || \"\",\n\t\t\t\t\tid: id || \"\"\n\t\t\t\t};\n\t\t\t\tthis.create({\n\t\t\t\t\tid,\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tdescription,\n\t\t\t\t\t...toastSettings\n\t\t\t\t});\n\t\t\t} else if (response instanceof Error) {\n\t\t\t\tshouldDismiss = false;\n\t\t\t\tconst promiseData = typeof data.error === \"function\" ? await data.error(response) : data.error;\n\t\t\t\tconst description = typeof data.description === \"function\" ? await data.description(response) : data.description;\n\t\t\t\tconst isExtendedResult = typeof promiseData === \"object\" && !isVNode(promiseData);\n\t\t\t\tconst toastSettings = isExtendedResult ? promiseData : {\n\t\t\t\t\tmessage: promiseData || \"\",\n\t\t\t\t\tid: id || \"\"\n\t\t\t\t};\n\t\t\t\tthis.create({\n\t\t\t\t\tid,\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tdescription,\n\t\t\t\t\t...toastSettings\n\t\t\t\t});\n\t\t\t} else if (data.success !== void 0) {\n\t\t\t\tshouldDismiss = false;\n\t\t\t\tconst promiseData = typeof data.success === \"function\" ? await data.success(response) : data.success;\n\t\t\t\tconst description = typeof data.description === \"function\" ? await data.description(response) : data.description;\n\t\t\t\tconst isExtendedResult = typeof promiseData === \"object\" && !isVNode(promiseData);\n\t\t\t\tconst toastSettings = isExtendedResult ? promiseData : {\n\t\t\t\t\tmessage: promiseData || \"\",\n\t\t\t\t\tid: id || \"\"\n\t\t\t\t};\n\t\t\t\tthis.create({\n\t\t\t\t\tid,\n\t\t\t\t\ttype: \"success\",\n\t\t\t\t\tdescription,\n\t\t\t\t\t...toastSettings\n\t\t\t\t});\n\t\t\t}\n\t\t}).catch(async (error) => {\n\t\t\tresult = [\"reject\", error];\n\t\t\tif (data.error !== void 0) {\n\t\t\t\tshouldDismiss = false;\n\t\t\t\tconst promiseData = typeof data.error === \"function\" ? await data.error(error) : data.error;\n\t\t\t\tconst description = typeof data.description === \"function\" ? await data.description(error) : data.description;\n\t\t\t\tconst isExtendedResult = typeof promiseData === \"object\" && !isVNode(promiseData);\n\t\t\t\tconst toastSettings = isExtendedResult ? promiseData : {\n\t\t\t\t\tmessage: promiseData || \"\",\n\t\t\t\t\tid: id || \"\"\n\t\t\t\t};\n\t\t\t\tthis.create({\n\t\t\t\t\tid,\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tdescription,\n\t\t\t\t\t...toastSettings\n\t\t\t\t});\n\t\t\t}\n\t\t}).finally(() => {\n\t\t\tif (shouldDismiss) {\n\t\t\t\tthis.dismiss(id);\n\t\t\t\tid = void 0;\n\t\t\t}\n\t\t\tdata.finally?.();\n\t\t});\n\t\tconst unwrap = () => new Promise((resolve, reject) => originalPromise.then(() => result[0] === \"reject\" ? reject(result[1]) : resolve(result[1])).catch(reject));\n\t\tif (typeof id !== \"string\" && typeof id !== \"number\") return { unwrap };\n\t\telse return Object.assign(id, { unwrap });\n\t};\n\tcustom = (component, data) => {\n\t\tconst id = data?.id || toastsCounter++;\n\t\tconst alreadyExists = this.toasts.find((toast$1) => {\n\t\t\treturn toast$1.id === id;\n\t\t});\n\t\tconst dismissible = data?.dismissible === void 0 ? true : data.dismissible;\n\t\tif (this.dismissedToasts.has(id)) this.dismissedToasts.delete(id);\n\t\tif (alreadyExists) this.toasts = this.toasts.map((toast$1) => {\n\t\t\tif (toast$1.id === id) {\n\t\t\t\tthis.publish({\n\t\t\t\t\t...toast$1,\n\t\t\t\t\tcomponent,\n\t\t\t\t\tdismissible,\n\t\t\t\t\tid,\n\t\t\t\t\t...data\n\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\t...toast$1,\n\t\t\t\t\tcomponent,\n\t\t\t\t\tdismissible,\n\t\t\t\t\tid,\n\t\t\t\t\t...data\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn toast$1;\n\t\t});\n\t\telse this.addToast({\n\t\t\tcomponent,\n\t\t\tdismissible,\n\t\t\tid,\n\t\t\t...data\n\t\t});\n\t\treturn id;\n\t};\n\tgetActiveToasts = () => {\n\t\treturn this.toasts.filter((toast$1) => !this.dismissedToasts.has(toast$1.id));\n\t};\n};\nconst ToastState = new Observer();\nfunction toastFunction(message, data) {\n\tconst id = data?.id || toastsCounter++;\n\tToastState.create({\n\t\tmessage,\n\t\tid,\n\t\ttype: \"default\",\n\t\t...data\n\t});\n\treturn id;\n}\nconst isHttpResponse = (data) => {\n\treturn data && typeof data === \"object\" && \"ok\" in data && typeof data.ok === \"boolean\" && \"status\" in data && typeof data.status === \"number\";\n};\nconst basicToast = toastFunction;\nconst getHistory = () => ToastState.toasts;\nconst getToasts = () => ToastState.getActiveToasts();\nconst toast = Object.assign(basicToast, {\n\tsuccess: ToastState.success,\n\tinfo: ToastState.info,\n\twarning: ToastState.warning,\n\terror: ToastState.error,\n\tcustom: ToastState.custom,\n\tmessage: ToastState.message,\n\tpromise: ToastState.promise,\n\tdismiss: ToastState.dismiss,\n\tloading: ToastState.loading\n}, {\n\tgetHistory,\n\tgetToasts\n});\n\n//#endregion\n//#region src/packages/types.ts\nfunction isAction(action) {\n\treturn action.label !== void 0;\n}\n\n//#endregion\n//#region src/packages/constant.ts\nconst VISIBLE_TOASTS_AMOUNT = 3;\nconst VIEWPORT_OFFSET = \"24px\";\nconst MOBILE_VIEWPORT_OFFSET = \"16px\";\nconst TOAST_LIFETIME = 4e3;\nconst TOAST_WIDTH = 356;\nconst GAP = 14;\nconst SWIPE_THRESHOLD = 45;\nconst TIME_BEFORE_UNMOUNT = 200;\n\n//#endregion\n//#region src/packages/hooks.ts\nfunction useIsDocumentHidden() {\n\tconst isDocumentHidden = ref(false);\n\twatchEffect(() => {\n\t\tconst callback = () => {\n\t\t\tisDocumentHidden.value = document.hidden;\n\t\t};\n\t\tdocument.addEventListener(\"visibilitychange\", callback);\n\t\treturn () => window.removeEventListener(\"visibilitychange\", callback);\n\t});\n\treturn { isDocumentHidden };\n}\nfunction cn(...classes) {\n\treturn classes.filter(Boolean).join(\" \");\n}\nfunction getDefaultSwipeDirections(position) {\n\tconst [y, x] = position.split(\"-\");\n\tconst directions = [];\n\tif (y) directions.push(y);\n\tif (x) directions.push(x);\n\treturn directions;\n}\nfunction assignOffset(defaultOffset, mobileOffset) {\n\tconst styles = {};\n\t[defaultOffset, mobileOffset].forEach((offset, index) => {\n\t\tconst isMobile = index === 1;\n\t\tconst prefix = isMobile ? \"--mobile-offset\" : \"--offset\";\n\t\tconst defaultValue = isMobile ? MOBILE_VIEWPORT_OFFSET : VIEWPORT_OFFSET;\n\t\tfunction assignAll(offset$1) {\n\t\t\t[\n\t\t\t\t\"top\",\n\t\t\t\t\"right\",\n\t\t\t\t\"bottom\",\n\t\t\t\t\"left\"\n\t\t\t].forEach((key) => {\n\t\t\t\tstyles[`${prefix}-${key}`] = typeof offset$1 === \"number\" ? `${offset$1}px` : offset$1;\n\t\t\t});\n\t\t}\n\t\tif (typeof offset === \"number\" || typeof offset === \"string\") assignAll(offset);\n\t\telse if (typeof offset === \"object\") [\n\t\t\t\"top\",\n\t\t\t\"right\",\n\t\t\t\"bottom\",\n\t\t\t\"left\"\n\t\t].forEach((key) => {\n\t\t\tif (offset[key] === void 0) styles[`${prefix}-${key}`] = defaultValue;\n\t\t\telse styles[`${prefix}-${key}`] = typeof offset[key] === \"number\" ? `${offset[key]}px` : offset[key];\n\t\t});\n\t\telse assignAll(defaultValue);\n\t});\n\treturn styles;\n}\nfunction useVueSonner() {\n\tconst activeToasts = ref([]);\n\twatchEffect((onInvalidate) => {\n\t\tconst unsubscribe = ToastState.subscribe((toast$1) => {\n\t\t\tif (\"dismiss\" in toast$1 && toast$1.dismiss) {\n\t\t\t\tactiveToasts.value = activeToasts.value.filter((t) => t.id !== toast$1.id);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tnextTick(() => {\n\t\t\t\tconst existingToastIndex = activeToasts.value.findIndex((t) => t.id === toast$1.id);\n\t\t\t\tif (existingToastIndex !== -1) {\n\t\t\t\t\tconst updatedToasts = [...activeToasts.value];\n\t\t\t\t\tupdatedToasts[existingToastIndex] = {\n\t\t\t\t\t\t...updatedToasts[existingToastIndex],\n\t\t\t\t\t\t...toast$1\n\t\t\t\t\t};\n\t\t\t\t\tactiveToasts.value = updatedToasts;\n\t\t\t\t} else activeToasts.value = [toast$1, ...activeToasts.value];\n\t\t\t});\n\t\t});\n\t\tonInvalidate(() => {\n\t\t\tunsubscribe();\n\t\t});\n\t});\n\treturn { activeToasts };\n}\n\n//#endregion\n//#region src/packages/Toast.vue?vue&type=script&setup=true&lang.ts\nconst _hoisted_1$7 = [\n\t\"data-rich-colors\",\n\t\"data-styled\",\n\t\"data-mounted\",\n\t\"data-promise\",\n\t\"data-swiped\",\n\t\"data-removed\",\n\t\"data-visible\",\n\t\"data-y-position\",\n\t\"data-x-position\",\n\t\"data-index\",\n\t\"data-front\",\n\t\"data-swiping\",\n\t\"data-dismissible\",\n\t\"data-type\",\n\t\"data-invert\",\n\t\"data-swipe-out\",\n\t\"data-swipe-direction\",\n\t\"data-expanded\",\n\t\"data-testid\"\n];\nconst _hoisted_2$2 = [\n\t\"aria-label\",\n\t\"data-disabled\",\n\t\"data-close-button-position\"\n];\nvar Toast_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\t__name: \"Toast\",\n\tprops: {\n\t\ttoast: {},\n\t\ttoasts: {},\n\t\tindex: {},\n\t\tswipeDirections: {},\n\t\texpanded: { type: Boolean },\n\t\tinvert: { type: Boolean },\n\t\theights: {},\n\t\tgap: {},\n\t\tposition: {},\n\t\tcloseButtonPosition: {},\n\t\tvisibleToasts: {},\n\t\texpandByDefault: { type: Boolean },\n\t\tcloseButton: { type: Boolean },\n\t\tinteracting: { type: Boolean },\n\t\tstyle: {},\n\t\tcancelButtonStyle: {},\n\t\tactionButtonStyle: {},\n\t\tduration: {},\n\t\tclass: {},\n\t\tunstyled: { type: Boolean },\n\t\tdescriptionClass: {},\n\t\tloadingIcon: {},\n\t\tclasses: {},\n\t\ticons: {},\n\t\tcloseButtonAriaLabel: {},\n\t\tdefaultRichColors: { type: Boolean }\n\t},\n\temits: [\n\t\t\"update:heights\",\n\t\t\"update:height\",\n\t\t\"removeToast\"\n\t],\n\tsetup(__props, { emit: __emit }) {\n\t\tconst props = __props;\n\t\tconst emit = __emit;\n\t\tconst swipeDirection = ref(null);\n\t\tconst swipeOutDirection = ref(null);\n\t\tconst mounted = ref(false);\n\t\tconst removed = ref(false);\n\t\tconst swiping = ref(false);\n\t\tconst swipeOut = ref(false);\n\t\tconst swiped = ref(false);\n\t\tconst offsetBeforeRemove = ref(0);\n\t\tconst initialHeight = ref(0);\n\t\tconst remainingTime = ref(props.toast.duration || props.duration || TOAST_LIFETIME);\n\t\tconst dragStartTime = ref(null);\n\t\tconst toastRef = ref(null);\n\t\tconst isFront = computed(() => props.index === 0);\n\t\tconst isVisible = computed(() => props.index + 1 <= props.visibleToasts);\n\t\tconst toastType = computed(() => props.toast.type);\n\t\tconst dismissible = computed(() => props.toast.dismissible !== false);\n\t\tconst toastClass = computed(() => props.toast.class || \"\");\n\t\tconst toastDescriptionClass = computed(() => props.descriptionClass || \"\");\n\t\tconst heightIndex = computed(() => {\n\t\t\tconst currentPosition = props.toast.position || props.position;\n\t\t\tconst samePositionHeights = props.heights.filter((h) => h.position === currentPosition);\n\t\t\tconst index = samePositionHeights.findIndex((height) => height.toastId === props.toast.id);\n\t\t\treturn index >= 0 ? index : 0;\n\t\t});\n\t\tconst toastsHeightBefore = computed(() => {\n\t\t\tconst currentPosition = props.toast.position || props.position;\n\t\t\tconst samePositionHeights = props.heights.filter((h) => h.position === currentPosition);\n\t\t\treturn samePositionHeights.reduce((prev, curr, reducerIndex) => {\n\t\t\t\tif (reducerIndex >= heightIndex.value) return prev;\n\t\t\t\treturn prev + curr.height;\n\t\t\t}, 0);\n\t\t});\n\t\tconst offset = computed(() => heightIndex.value * props.gap + toastsHeightBefore.value || 0);\n\t\tconst closeButton = computed(() => props.toast.closeButton ?? props.closeButton);\n\t\tconst duration = computed(() => props.toast.duration || props.duration || TOAST_LIFETIME);\n\t\tconst closeTimerStartTimeRef = ref(0);\n\t\tconst lastCloseTimerStartTimeRef = ref(0);\n\t\tconst pointerStartRef = ref(null);\n\t\tconst coords = computed(() => props.position.split(\"-\"));\n\t\tconst y = computed(() => coords.value[0]);\n\t\tconst x = computed(() => coords.value[1]);\n\t\tconst isStringOfTitle = computed(() => typeof props.toast.title !== \"string\");\n\t\tconst isStringOfDescription = computed(() => typeof props.toast.description !== \"string\");\n\t\tconst { isDocumentHidden } = useIsDocumentHidden();\n\t\tconst disabled = computed(() => toastType.value && toastType.value === \"loading\");\n\t\tonMounted(() => {\n\t\t\tmounted.value = true;\n\t\t\tremainingTime.value = duration.value;\n\t\t});\n\t\twatchEffect(async () => {\n\t\t\tif (!mounted.value || !toastRef.value) return;\n\t\t\tawait nextTick();\n\t\t\tconst toastNode = toastRef.value;\n\t\t\tconst originalHeight = toastNode.style.height;\n\t\t\ttoastNode.style.height = \"auto\";\n\t\t\tconst newHeight = toastNode.getBoundingClientRect().height;\n\t\t\ttoastNode.style.height = originalHeight;\n\t\t\tinitialHeight.value = newHeight;\n\t\t\temit(\"update:height\", {\n\t\t\t\ttoastId: props.toast.id,\n\t\t\t\theight: newHeight,\n\t\t\t\tposition: props.toast.position || props.position\n\t\t\t});\n\t\t});\n\t\tfunction deleteToast() {\n\t\t\tremoved.value = true;\n\t\t\toffsetBeforeRemove.value = offset.value;\n\t\t\tsetTimeout(() => {\n\t\t\t\temit(\"removeToast\", props.toast);\n\t\t\t}, TIME_BEFORE_UNMOUNT);\n\t\t}\n\t\tfunction handleCloseToast() {\n\t\t\tif (disabled.value || !dismissible.value) return {};\n\t\t\tdeleteToast();\n\t\t\tprops.toast.onDismiss?.(props.toast);\n\t\t}\n\t\tfunction onPointerDown(event) {\n\t\t\tif (event.button === 2) return;\n\t\t\tif (disabled.value || !dismissible.value) return;\n\t\t\tdragStartTime.value = new Date();\n\t\t\toffsetBeforeRemove.value = offset.value;\n\t\t\tevent.target.setPointerCapture(event.pointerId);\n\t\t\tif (event.target.tagName === \"BUTTON\") return;\n\t\t\tswiping.value = true;\n\t\t\tpointerStartRef.value = {\n\t\t\t\tx: event.clientX,\n\t\t\t\ty: event.clientY\n\t\t\t};\n\t\t}\n\t\tfunction onPointerUp() {\n\t\t\tif (swipeOut.value || !dismissible.value) return;\n\t\t\tpointerStartRef.value = null;\n\t\t\tconst swipeAmountX = Number(toastRef.value?.style.getPropertyValue(\"--swipe-amount-x\").replace(\"px\", \"\") || 0);\n\t\t\tconst swipeAmountY = Number(toastRef.value?.style.getPropertyValue(\"--swipe-amount-y\").replace(\"px\", \"\") || 0);\n\t\t\tconst timeTaken = new Date().getTime() - (dragStartTime.value?.getTime() || 0);\n\t\t\tconst swipeAmount = swipeDirection.value === \"x\" ? swipeAmountX : swipeAmountY;\n\t\t\tconst velocity = Math.abs(swipeAmount) / timeTaken;\n\t\t\tif (Math.abs(swipeAmount) >= SWIPE_THRESHOLD || velocity > .11) {\n\t\t\t\toffsetBeforeRemove.value = offset.value;\n\t\t\t\tprops.toast.onDismiss?.(props.toast);\n\t\t\t\tif (swipeDirection.value === \"x\") swipeOutDirection.value = swipeAmountX > 0 ? \"right\" : \"left\";\n\t\t\t\telse swipeOutDirection.value = swipeAmountY > 0 ? \"down\" : \"up\";\n\t\t\t\tdeleteToast();\n\t\t\t\tswipeOut.value = true;\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\ttoastRef.value?.style.setProperty(\"--swipe-amount-x\", `0px`);\n\t\t\t\ttoastRef.value?.style.setProperty(\"--swipe-amount-y\", `0px`);\n\t\t\t}\n\t\t\tswiped.value = false;\n\t\t\tswiping.value = false;\n\t\t\tswipeDirection.value = null;\n\t\t}\n\t\tfunction onPointerMove(event) {\n\t\t\tif (!pointerStartRef.value || !dismissible.value) return;\n\t\t\tconst isHighlighted = window?.getSelection()?.toString()?.length ?? false;\n\t\t\tif (isHighlighted) return;\n\t\t\tconst yDelta = event.clientY - pointerStartRef.value.y;\n\t\t\tconst xDelta = event.clientX - pointerStartRef.value.x;\n\t\t\tconst swipeDirections = props.swipeDirections ?? getDefaultSwipeDirections(props.position);\n\t\t\tif (!swipeDirection.value && (Math.abs(xDelta) > 1 || Math.abs(yDelta) > 1)) swipeDirection.value = Math.abs(xDelta) > Math.abs(yDelta) ? \"x\" : \"y\";\n\t\t\tlet swipeAmount = {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t};\n\t\t\tconst getDampening = (delta) => {\n\t\t\t\tconst factor = Math.abs(delta) / 20;\n\t\t\t\treturn 1 / (1.5 + factor);\n\t\t\t};\n\t\t\tif (swipeDirection.value === \"y\") {\n\t\t\t\tif (swipeDirections.includes(\"top\") || swipeDirections.includes(\"bottom\")) if (swipeDirections.includes(\"top\") && yDelta < 0 || swipeDirections.includes(\"bottom\") && yDelta > 0) swipeAmount.y = yDelta;\n\t\t\t\telse {\n\t\t\t\t\tconst dampenedDelta = yDelta * getDampening(yDelta);\n\t\t\t\t\tswipeAmount.y = Math.abs(dampenedDelta) < Math.abs(yDelta) ? dampenedDelta : yDelta;\n\t\t\t\t}\n\t\t\t} else if (swipeDirection.value === \"x\") {\n\t\t\t\tif (swipeDirections.includes(\"left\") || swipeDirections.includes(\"right\")) if (swipeDirections.includes(\"left\") && xDelta < 0 || swipeDirections.includes(\"right\") && xDelta > 0) swipeAmount.x = xDelta;\n\t\t\t\telse {\n\t\t\t\t\tconst dampenedDelta = xDelta * getDampening(xDelta);\n\t\t\t\t\tswipeAmount.x = Math.abs(dampenedDelta) < Math.abs(xDelta) ? dampenedDelta : xDelta;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (Math.abs(swipeAmount.x) > 0 || Math.abs(swipeAmount.y) > 0) swiped.value = true;\n\t\t\ttoastRef.value?.style.setProperty(\"--swipe-amount-x\", `${swipeAmount.x}px`);\n\t\t\ttoastRef.value?.style.setProperty(\"--swipe-amount-y\", `${swipeAmount.y}px`);\n\t\t}\n\t\tonMounted(() => {\n\t\t\tmounted.value = true;\n\t\t\tif (!toastRef.value) return;\n\t\t\tconst height = toastRef.value.getBoundingClientRect().height;\n\t\t\tinitialHeight.value = height;\n\t\t\tconst newHeights = [{\n\t\t\t\ttoastId: props.toast.id,\n\t\t\t\theight,\n\t\t\t\tposition: props.toast.position\n\t\t\t}, ...props.heights];\n\t\t\temit(\"update:heights\", newHeights);\n\t\t});\n\t\tonBeforeUnmount(() => {\n\t\t\tif (toastRef.value) emit(\"removeToast\", props.toast);\n\t\t});\n\t\twatchEffect((onInvalidate) => {\n\t\t\tif (props.toast.promise && toastType.value === \"loading\" || props.toast.duration === Infinity || props.toast.type === \"loading\") return;\n\t\t\tlet timeoutId;\n\t\t\tconst pauseTimer = () => {\n\t\t\t\tif (lastCloseTimerStartTimeRef.value < closeTimerStartTimeRef.value) {\n\t\t\t\t\tconst elapsedTime = new Date().getTime() - closeTimerStartTimeRef.value;\n\t\t\t\t\tremainingTime.value = remainingTime.value - elapsedTime;\n\t\t\t\t}\n\t\t\t\tlastCloseTimerStartTimeRef.value = new Date().getTime();\n\t\t\t};\n\t\t\tconst startTimer = () => {\n\t\t\t\tif (remainingTime.value === Infinity) return;\n\t\t\t\tcloseTimerStartTimeRef.value = new Date().getTime();\n\t\t\t\ttimeoutId = setTimeout(() => {\n\t\t\t\t\tprops.toast.onAutoClose?.(props.toast);\n\t\t\t\t\tdeleteToast();\n\t\t\t\t}, remainingTime.value);\n\t\t\t};\n\t\t\tif (props.expanded || props.interacting || isDocumentHidden.value) pauseTimer();\n\t\t\telse startTimer();\n\t\t\tonInvalidate(() => {\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t});\n\t\t});\n\t\twatch(() => props.toast.delete, (value) => {\n\t\t\tif (value !== void 0 && value) {\n\t\t\t\tdeleteToast();\n\t\t\t\tprops.toast.onDismiss?.(props.toast);\n\t\t\t}\n\t\t}, { deep: true });\n\t\tfunction handleDragEnd() {\n\t\t\tswiping.value = false;\n\t\t\tswipeDirection.value = null;\n\t\t\tpointerStartRef.value = null;\n\t\t}\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createElementBlock(\"li\", {\n\t\t\t\ttabindex: \"0\",\n\t\t\t\tref_key: \"toastRef\",\n\t\t\t\tref: toastRef,\n\t\t\t\tclass: normalizeClass(unref(cn)(props.class, toastClass.value, _ctx.classes?.toast, _ctx.toast.classes?.toast, _ctx.classes?.[toastType.value], _ctx.toast?.classes?.[toastType.value])),\n\t\t\t\t\"data-sonner-toast\": \"\",\n\t\t\t\t\"data-rich-colors\": _ctx.toast.richColors ?? _ctx.defaultRichColors,\n\t\t\t\t\"data-styled\": !Boolean(_ctx.toast.component || _ctx.toast?.unstyled || _ctx.unstyled),\n\t\t\t\t\"data-mounted\": mounted.value,\n\t\t\t\t\"data-promise\": Boolean(_ctx.toast.promise),\n\t\t\t\t\"data-swiped\": swiped.value,\n\t\t\t\t\"data-removed\": removed.value,\n\t\t\t\t\"data-visible\": isVisible.value,\n\t\t\t\t\"data-y-position\": y.value,\n\t\t\t\t\"data-x-position\": x.value,\n\t\t\t\t\"data-index\": _ctx.index,\n\t\t\t\t\"data-front\": isFront.value,\n\t\t\t\t\"data-swiping\": swiping.value,\n\t\t\t\t\"data-dismissible\": dismissible.value,\n\t\t\t\t\"data-type\": toastType.value,\n\t\t\t\t\"data-invert\": _ctx.toast.invert || _ctx.invert,\n\t\t\t\t\"data-swipe-out\": swipeOut.value,\n\t\t\t\t\"data-swipe-direction\": swipeOutDirection.value,\n\t\t\t\t\"data-expanded\": Boolean(_ctx.expanded || _ctx.expandByDefault && mounted.value),\n\t\t\t\t\"data-testid\": _ctx.toast.testId,\n\t\t\t\tstyle: normalizeStyle({\n\t\t\t\t\t\"--index\": _ctx.index,\n\t\t\t\t\t\"--toasts-before\": _ctx.index,\n\t\t\t\t\t\"--z-index\": _ctx.toasts.length - _ctx.index,\n\t\t\t\t\t\"--offset\": `${removed.value ? offsetBeforeRemove.value : offset.value}px`,\n\t\t\t\t\t\"--initial-height\": _ctx.expandByDefault ? \"auto\" : `${initialHeight.value}px`,\n\t\t\t\t\t..._ctx.style,\n\t\t\t\t\t...props.toast.style\n\t\t\t\t}),\n\t\t\t\tonDragend: handleDragEnd,\n\t\t\t\tonPointerdown: onPointerDown,\n\t\t\t\tonPointerup: onPointerUp,\n\t\t\t\tonPointermove: onPointerMove\n\t\t\t}, [closeButton.value && !_ctx.toast.component && toastType.value !== \"loading\" ? (openBlock(), createElementBlock(\"button\", {\n\t\t\t\tkey: 0,\n\t\t\t\t\"aria-label\": _ctx.closeButtonAriaLabel || \"Close toast\",\n\t\t\t\t\"data-disabled\": disabled.value,\n\t\t\t\t\"data-close-button\": \"true\",\n\t\t\t\t\"data-close-button-position\": _ctx.closeButtonPosition,\n\t\t\t\tclass: normalizeClass(unref(cn)(_ctx.classes?.closeButton, _ctx.toast?.classes?.closeButton)),\n\t\t\t\tonClick: handleCloseToast\n\t\t\t}, [_ctx.icons?.close ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.icons?.close), { key: 0 })) : renderSlot(_ctx.$slots, \"close-icon\", { key: 1 })], 10, _hoisted_2$2)) : createCommentVNode(\"v-if\", true), _ctx.toast.component ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.toast.component), mergeProps({ key: 1 }, _ctx.toast.componentProps, {\n\t\t\t\tonCloseToast: handleCloseToast,\n\t\t\t\tisPaused: _ctx.$props.expanded || _ctx.$props.interacting || unref(isDocumentHidden)\n\t\t\t}), null, 16, [\"isPaused\"])) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [\n\t\t\t\ttoastType.value !== \"default\" || _ctx.toast.icon || _ctx.toast.promise ? (openBlock(), createElementBlock(\"div\", {\n\t\t\t\t\tkey: 0,\n\t\t\t\t\t\"data-icon\": \"\",\n\t\t\t\t\tclass: normalizeClass(unref(cn)(_ctx.classes?.icon, _ctx.toast?.classes?.icon))\n\t\t\t\t}, [_ctx.toast.icon ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.toast.icon), { key: 0 })) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [toastType.value === \"loading\" ? renderSlot(_ctx.$slots, \"loading-icon\", { key: 0 }) : toastType.value === \"success\" ? renderSlot(_ctx.$slots, \"success-icon\", { key: 1 }) : toastType.value === \"error\" ? renderSlot(_ctx.$slots, \"error-icon\", { key: 2 }) : toastType.value === \"warning\" ? renderSlot(_ctx.$slots, \"warning-icon\", { key: 3 }) : toastType.value === \"info\" ? renderSlot(_ctx.$slots, \"info-icon\", { key: 4 }) : createCommentVNode(\"v-if\", true)], 64))], 2)) : createCommentVNode(\"v-if\", true),\n\t\t\t\tcreateElementVNode(\"div\", {\n\t\t\t\t\t\"data-content\": \"\",\n\t\t\t\t\tclass: normalizeClass(unref(cn)(_ctx.classes?.content, _ctx.toast?.classes?.content))\n\t\t\t\t}, [createElementVNode(\"div\", {\n\t\t\t\t\t\"data-title\": \"\",\n\t\t\t\t\tclass: normalizeClass(unref(cn)(_ctx.classes?.title, _ctx.toast.classes?.title))\n\t\t\t\t}, [isStringOfTitle.value ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.toast.title), normalizeProps(mergeProps({ key: 0 }, _ctx.toast.componentProps)), null, 16)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(_ctx.toast.title), 1)], 64))], 2), _ctx.toast.description ? (openBlock(), createElementBlock(\"div\", {\n\t\t\t\t\tkey: 0,\n\t\t\t\t\t\"data-description\": \"\",\n\t\t\t\t\tclass: normalizeClass(unref(cn)(_ctx.descriptionClass, toastDescriptionClass.value, _ctx.classes?.description, _ctx.toast.classes?.description))\n\t\t\t\t}, [isStringOfDescription.value ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.toast.description), normalizeProps(mergeProps({ key: 0 }, _ctx.toast.componentProps)), null, 16)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(_ctx.toast.description), 1)], 64))], 2)) : createCommentVNode(\"v-if\", true)], 2),\n\t\t\t\t_ctx.toast.cancel ? (openBlock(), createElementBlock(\"button\", {\n\t\t\t\t\tkey: 1,\n\t\t\t\t\tstyle: normalizeStyle(_ctx.toast.cancelButtonStyle || _ctx.cancelButtonStyle),\n\t\t\t\t\tclass: normalizeClass(unref(cn)(_ctx.classes?.cancelButton, _ctx.toast.classes?.cancelButton)),\n\t\t\t\t\t\"data-button\": \"\",\n\t\t\t\t\t\"data-cancel\": \"\",\n\t\t\t\t\tonClick: _cache[0] || (_cache[0] = (event) => {\n\t\t\t\t\t\tif (!unref(isAction)(_ctx.toast.cancel)) return;\n\t\t\t\t\t\tif (!dismissible.value) return;\n\t\t\t\t\t\t_ctx.toast.cancel.onClick?.(event);\n\t\t\t\t\t\tdeleteToast();\n\t\t\t\t\t})\n\t\t\t\t}, toDisplayString(unref(isAction)(_ctx.toast.cancel) ? _ctx.toast.cancel?.label : _ctx.toast.cancel), 7)) : createCommentVNode(\"v-if\", true),\n\t\t\t\t_ctx.toast.action ? (openBlock(), createElementBlock(\"button\", {\n\t\t\t\t\tkey: 2,\n\t\t\t\t\tstyle: normalizeStyle(_ctx.toast.actionButtonStyle || _ctx.actionButtonStyle),\n\t\t\t\t\tclass: normalizeClass(unref(cn)(_ctx.classes?.actionButton, _ctx.toast.classes?.actionButton)),\n\t\t\t\t\t\"data-button\": \"\",\n\t\t\t\t\t\"data-action\": \"\",\n\t\t\t\t\tonClick: _cache[1] || (_cache[1] = (event) => {\n\t\t\t\t\t\tif (!unref(isAction)(_ctx.toast.action)) return;\n\t\t\t\t\t\t_ctx.toast.action.onClick?.(event);\n\t\t\t\t\t\tif (event.defaultPrevented) return;\n\t\t\t\t\t\tdeleteToast();\n\t\t\t\t\t})\n\t\t\t\t}, toDisplayString(unref(isAction)(_ctx.toast.action) ? _ctx.toast.action?.label : _ctx.toast.action), 7)) : createCommentVNode(\"v-if\", true)\n\t\t\t], 64))], 46, _hoisted_1$7);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/packages/Toast.vue\nvar Toast_default = Toast_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\n//#region \\0/plugin-vue/export-helper\nvar export_helper_default = (sfc, props) => {\n\tconst target = sfc.__vccOpts || sfc;\n\tfor (const [key, val] of props) target[key] = val;\n\treturn target;\n};\n\n//#endregion\n//#region src/packages/assets/CloseIcon.vue\nconst _sfc_main$4 = {};\nconst _hoisted_1$6 = {\n\txmlns: \"http://www.w3.org/2000/svg\",\n\twidth: \"12\",\n\theight: \"12\",\n\tviewBox: \"0 0 24 24\",\n\tfill: \"none\",\n\tstroke: \"currentColor\",\n\t\"stoke-width\": \"1.5\",\n\t\"stroke-linecap\": \"round\",\n\t\"stroke-linejoin\": \"round\"\n};\nfunction _sfc_render$4(_ctx, _cache) {\n\treturn openBlock(), createElementBlock(\"svg\", _hoisted_1$6, _cache[0] || (_cache[0] = [createElementVNode(\"line\", {\n\t\tx1: \"18\",\n\t\ty1: \"6\",\n\t\tx2: \"6\",\n\t\ty2: \"18\"\n\t}, null, -1), createElementVNode(\"line\", {\n\t\tx1: \"6\",\n\t\ty1: \"6\",\n\t\tx2: \"18\",\n\t\ty2: \"18\"\n\t}, null, -1)]));\n}\nvar CloseIcon_default = /* @__PURE__ */ export_helper_default(_sfc_main$4, [[\"render\", _sfc_render$4]]);\n\n//#endregion\n//#region src/packages/assets/Loader.vue?vue&type=script&setup=true&lang.ts\nconst _hoisted_1$5 = [\"data-visible\"];\nconst _hoisted_2$1 = { class: \"sonner-spinner\" };\nvar Loader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\t__name: \"Loader\",\n\tprops: { visible: { type: Boolean } },\n\tsetup(__props) {\n\t\tconst bars = Array(12).fill(0);\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createElementBlock(\"div\", {\n\t\t\t\tclass: \"sonner-loading-wrapper\",\n\t\t\t\t\"data-visible\": _ctx.visible\n\t\t\t}, [createElementVNode(\"div\", _hoisted_2$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(bars), (bar) => {\n\t\t\t\treturn openBlock(), createElementBlock(\"div\", {\n\t\t\t\t\tkey: `spinner-bar-${bar}`,\n\t\t\t\t\tclass: \"sonner-loading-bar\"\n\t\t\t\t});\n\t\t\t}), 128))])], 8, _hoisted_1$5);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/packages/assets/Loader.vue\nvar Loader_default = Loader_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\n//#region src/packages/assets/SuccessIcon.vue\nconst _sfc_main$3 = {};\nconst _hoisted_1$4 = {\n\txmlns: \"http://www.w3.org/2000/svg\",\n\tviewBox: \"0 0 20 20\",\n\tfill: \"currentColor\",\n\theight: \"20\",\n\twidth: \"20\"\n};\nfunction _sfc_render$3(_ctx, _cache) {\n\treturn openBlock(), createElementBlock(\"svg\", _hoisted_1$4, _cache[0] || (_cache[0] = [createElementVNode(\"path\", {\n\t\t\"fill-rule\": \"evenodd\",\n\t\td: \"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z\",\n\t\t\"clip-rule\": \"evenodd\"\n\t}, null, -1)]));\n}\nvar SuccessIcon_default = /* @__PURE__ */ export_helper_default(_sfc_main$3, [[\"render\", _sfc_render$3]]);\n\n//#endregion\n//#region src/packages/assets/InfoIcon.vue\nconst _sfc_main$2 = {};\nconst _hoisted_1$3 = {\n\txmlns: \"http://www.w3.org/2000/svg\",\n\tviewBox: \"0 0 20 20\",\n\tfill: \"currentColor\",\n\theight: \"20\",\n\twidth: \"20\"\n};\nfunction _sfc_render$2(_ctx, _cache) {\n\treturn openBlock(), createElementBlock(\"svg\", _hoisted_1$3, _cache[0] || (_cache[0] = [createElementVNode(\"path\", {\n\t\t\"fill-rule\": \"evenodd\",\n\t\td: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z\",\n\t\t\"clip-rule\": \"evenodd\"\n\t}, null, -1)]));\n}\nvar InfoIcon_default = /* @__PURE__ */ export_helper_default(_sfc_main$2, [[\"render\", _sfc_render$2]]);\n\n//#endregion\n//#region src/packages/assets/WarningIcon.vue\nconst _sfc_main$1 = {};\nconst _hoisted_1$2 = {\n\txmlns: \"http://www.w3.org/2000/svg\",\n\tviewBox: \"0 0 24 24\",\n\tfill: \"currentColor\",\n\theight: \"20\",\n\twidth: \"20\"\n};\nfunction _sfc_render$1(_ctx, _cache) {\n\treturn openBlock(), createElementBlock(\"svg\", _hoisted_1$2, _cache[0] || (_cache[0] = [createElementVNode(\"path\", {\n\t\t\"fill-rule\": \"evenodd\",\n\t\td: \"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z\",\n\t\t\"clip-rule\": \"evenodd\"\n\t}, null, -1)]));\n}\nvar WarningIcon_default = /* @__PURE__ */ export_helper_default(_sfc_main$1, [[\"render\", _sfc_render$1]]);\n\n//#endregion\n//#region src/packages/assets/ErrorIcon.vue\nconst _sfc_main = {};\nconst _hoisted_1$1 = {\n\txmlns: \"http://www.w3.org/2000/svg\",\n\tviewBox: \"0 0 20 20\",\n\tfill: \"currentColor\",\n\theight: \"20\",\n\twidth: \"20\"\n};\nfunction _sfc_render(_ctx, _cache) {\n\treturn openBlock(), createElementBlock(\"svg\", _hoisted_1$1, _cache[0] || (_cache[0] = [createElementVNode(\"path\", {\n\t\t\"fill-rule\": \"evenodd\",\n\t\td: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\",\n\t\t\"clip-rule\": \"evenodd\"\n\t}, null, -1)]));\n}\nvar ErrorIcon_default = /* @__PURE__ */ export_helper_default(_sfc_main, [[\"render\", _sfc_render]]);\n\n//#endregion\n//#region src/packages/Toaster.vue?vue&type=script&setup=true&lang.ts\nconst _hoisted_1 = [\"aria-label\"];\nconst _hoisted_2 = [\n\t\"data-sonner-theme\",\n\t\"dir\",\n\t\"data-theme\",\n\t\"data-rich-colors\",\n\t\"data-y-position\",\n\t\"data-x-position\"\n];\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nfunction getDocumentDirection() {\n\tif (typeof window === \"undefined\") return \"ltr\";\n\tif (typeof document === \"undefined\") return \"ltr\";\n\tconst dirAttribute = document.documentElement.getAttribute(\"dir\");\n\tif (dirAttribute === \"auto\" || !dirAttribute) return window.getComputedStyle(document.documentElement).direction;\n\treturn dirAttribute;\n}\nvar Toaster_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\tname: \"Toaster\",\n\tinheritAttrs: false,\n\t__name: \"Toaster\",\n\tprops: {\n\t\tid: {},\n\t\tinvert: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\ttheme: { default: \"light\" },\n\t\tposition: { default: \"bottom-right\" },\n\t\tcloseButtonPosition: { default: \"top-left\" },\n\t\thotkey: { default: () => [\"altKey\", \"KeyT\"] },\n\t\trichColors: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\texpand: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\tduration: {},\n\t\tgap: { default: GAP },\n\t\tvisibleToasts: { default: VISIBLE_TOASTS_AMOUNT },\n\t\tcloseButton: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\ttoastOptions: { default: () => ({}) },\n\t\tclass: { default: \"\" },\n\t\tstyle: {},\n\t\toffset: { default: VIEWPORT_OFFSET },\n\t\tmobileOffset: { default: MOBILE_VIEWPORT_OFFSET },\n\t\tdir: { default: \"auto\" },\n\t\tswipeDirections: {},\n\t\ticons: {},\n\t\tcontainerAriaLabel: { default: \"Notifications\" }\n\t},\n\tsetup(__props) {\n\t\tconst props = __props;\n\t\tconst attrs = useAttrs();\n\t\tconst toasts = ref([]);\n\t\tconst filteredToastsById = computed(() => {\n\t\t\tif (props.id) return toasts.value.filter((toast$1) => toast$1.toasterId === props.id);\n\t\t\treturn toasts.value.filter((toast$1) => !toast$1.toasterId);\n\t\t});\n\t\tfunction filteredToasts(pos, index) {\n\t\t\treturn filteredToastsById.value.filter((toast$1) => !toast$1.position && index === 0 || toast$1.position === pos);\n\t\t}\n\t\tconst possiblePositions = computed(() => {\n\t\t\tconst posList = filteredToastsById.value.filter((toast$1) => toast$1.position).map((toast$1) => toast$1.position);\n\t\t\treturn posList.length > 0 ? Array.from(new Set([props.position].concat(posList))) : [props.position];\n\t\t});\n\t\tconst toastsByPosition = computed(() => {\n\t\t\tconst result = {};\n\t\t\tpossiblePositions.value.forEach((pos) => {\n\t\t\t\tresult[pos] = toasts.value.filter((t) => t.position === pos);\n\t\t\t});\n\t\t\treturn result;\n\t\t});\n\t\tconst heights = ref([]);\n\t\tconst expanded = ref({});\n\t\tconst interacting = ref(false);\n\t\twatchEffect(() => {\n\t\t\tpossiblePositions.value.forEach((pos) => {\n\t\t\t\tif (!(pos in expanded.value)) expanded.value[pos] = false;\n\t\t\t});\n\t\t});\n\t\tconst actualTheme = ref(props.theme !== \"system\" ? props.theme : typeof window !== \"undefined\" ? window.matchMedia && window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\" : \"light\");\n\t\tconst listRef = ref(null);\n\t\tconst lastFocusedElementRef = ref(null);\n\t\tconst isFocusWithinRef = ref(false);\n\t\tconst hotkeyLabel = props.hotkey.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\");\n\t\tfunction removeToast(toastToRemove) {\n\t\t\tif (!toasts.value.find((toast$1) => toast$1.id === toastToRemove.id)?.delete) ToastState.dismiss(toastToRemove.id);\n\t\t\ttoasts.value = toasts.value.filter(({ id }) => id !== toastToRemove.id);\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!toasts.value.find((t) => t.id === toastToRemove.id)) heights.value = heights.value.filter((h) => h.toastId !== toastToRemove.id);\n\t\t\t}, TIME_BEFORE_UNMOUNT + 50);\n\t\t}\n\t\tfunction onBlur(event) {\n\t\t\tif (isFocusWithinRef.value && !event.currentTarget?.contains?.(event.relatedTarget)) {\n\t\t\t\tisFocusWithinRef.value = false;\n\t\t\t\tif (lastFocusedElementRef.value) {\n\t\t\t\t\tlastFocusedElementRef.value.focus({ preventScroll: true });\n\t\t\t\t\tlastFocusedElementRef.value = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfunction onFocus(event) {\n\t\t\tconst isNotDismissible = event.target instanceof HTMLElement && event.target.dataset.dismissible === \"false\";\n\t\t\tif (isNotDismissible) return;\n\t\t\tif (!isFocusWithinRef.value) {\n\t\t\t\tisFocusWithinRef.value = true;\n\t\t\t\tlastFocusedElementRef.value = event.relatedTarget;\n\t\t\t}\n\t\t}\n\t\tfunction onPointerDown(event) {\n\t\t\tif (event.target) {\n\t\t\t\tconst isNotDismissible = event.target instanceof HTMLElement && event.target.dataset.dismissible === \"false\";\n\t\t\t\tif (isNotDismissible) return;\n\t\t\t}\n\t\t\tinteracting.value = true;\n\t\t}\n\t\twatchEffect((onInvalidate) => {\n\t\t\tconst unsubscribe = ToastState.subscribe((toast$1) => {\n\t\t\t\tif (toast$1.dismiss) {\n\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\ttoasts.value = toasts.value.map((t) => t.id === toast$1.id ? {\n\t\t\t\t\t\t\t...t,\n\t\t\t\t\t\t\tdelete: true\n\t\t\t\t\t\t} : t);\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tnextTick(() => {\n\t\t\t\t\tconst indexOfExistingToast = toasts.value.findIndex((t) => t.id === toast$1.id);\n\t\t\t\t\tif (indexOfExistingToast !== -1) toasts.value = [\n\t\t\t\t\t\t...toasts.value.slice(0, indexOfExistingToast),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...toasts.value[indexOfExistingToast],\n\t\t\t\t\t\t\t...toast$1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t...toasts.value.slice(indexOfExistingToast + 1)\n\t\t\t\t\t];\n\t\t\t\t\telse toasts.value = [toast$1, ...toasts.value];\n\t\t\t\t});\n\t\t\t});\n\t\t\tonInvalidate(unsubscribe);\n\t\t});\n\t\twatchEffect((onInvalidate) => {\n\t\t\tif (typeof window === \"undefined\") return;\n\t\t\t/**\n\t\t\t* If the theme prop is explicitly set (e.g., 'light' or 'dark'),\n\t\t\t* use it directly and stop watching for system preference.\n\t\t\t*/\n\t\t\tif (props.theme !== \"system\") {\n\t\t\t\tactualTheme.value = props.theme;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t/**\n\t\t\t* Handle \"system\" theme:\n\t\t\t* Watch the user's OS-level color scheme preference and\n\t\t\t* apply 'dark' or 'light' accordingly.\n\t\t\t*/\n\t\t\tconst darkMediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n\t\t\t/**\n\t\t\t* Helper function to update the actualTheme value\n\t\t\t* based on current media query match.\n\t\t\t*\n\t\t\t* @param {boolean} matches - true if dark mode is preferred\n\t\t\t*/\n\t\t\tconst updateTheme = (matches) => {\n\t\t\t\tactualTheme.value = matches ? \"dark\" : \"light\";\n\t\t\t};\n\t\t\tupdateTheme(darkMediaQuery.matches);\n\t\t\t/**\n\t\t\t* Media query listener for changes to system preference\n\t\t\t* Compatible with modern browsers and legacy Safari.\n\t\t\t*/\n\t\t\tconst handler = (event) => {\n\t\t\t\tupdateTheme(event.matches);\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tdarkMediaQuery.addEventListener(\"change\", handler);\n\t\t\t} catch {\n\t\t\t\tdarkMediaQuery.addListener(handler);\n\t\t\t}\n\t\t\tonInvalidate(() => {\n\t\t\t\ttry {\n\t\t\t\t\tdarkMediaQuery.removeEventListener(\"change\", handler);\n\t\t\t\t} catch {\n\t\t\t\t\tdarkMediaQuery.removeListener(handler);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\twatchEffect(() => {\n\t\t\tif (listRef.value && lastFocusedElementRef.value) {\n\t\t\t\tlastFocusedElementRef.value.focus({ preventScroll: true });\n\t\t\t\tlastFocusedElementRef.value = null;\n\t\t\t\tisFocusWithinRef.value = false;\n\t\t\t}\n\t\t});\n\t\twatchEffect(() => {\n\t\t\tif (toasts.value.length <= 1) Object.keys(expanded.value).forEach((pos) => {\n\t\t\t\texpanded.value[pos] = false;\n\t\t\t});\n\t\t});\n\t\twatchEffect((onInvalidate) => {\n\t\t\tfunction handleKeyDown(event) {\n\t\t\t\tconst isHotkeyPressed = props.hotkey.every((key) => event[key] || event.code === key);\n\t\t\t\tconst listRefItem = Array.isArray(listRef.value) ? listRef.value[0] : listRef.value;\n\t\t\t\tif (isHotkeyPressed) {\n\t\t\t\t\tpossiblePositions.value.forEach((pos) => {\n\t\t\t\t\t\texpanded.value[pos] = true;\n\t\t\t\t\t});\n\t\t\t\t\tlistRefItem?.focus();\n\t\t\t\t}\n\t\t\t\tconst isItemActive = document.activeElement === listRef.value || listRefItem?.contains(document.activeElement);\n\t\t\t\tif (event.code === \"Escape\" && isItemActive) possiblePositions.value.forEach((pos) => {\n\t\t\t\t\texpanded.value[pos] = false;\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (!isClient) return;\n\t\t\tdocument.addEventListener(\"keydown\", handleKeyDown);\n\t\t\tonInvalidate(() => {\n\t\t\t\tdocument.removeEventListener(\"keydown\", handleKeyDown);\n\t\t\t});\n\t\t});\n\t\tfunction handleMouseEnter(event) {\n\t\t\tconst target = event.currentTarget;\n\t\t\tconst position = target.getAttribute(\"data-y-position\") + \"-\" + target.getAttribute(\"data-x-position\");\n\t\t\texpanded.value[position] = true;\n\t\t}\n\t\tfunction handleMouseLeave(event) {\n\t\t\tif (!interacting.value) {\n\t\t\t\tconst target = event.currentTarget;\n\t\t\t\tconst position = target.getAttribute(\"data-y-position\") + \"-\" + target.getAttribute(\"data-x-position\");\n\t\t\t\texpanded.value[position] = false;\n\t\t\t}\n\t\t}\n\t\tfunction handleDragEnd() {\n\t\t\tObject.keys(expanded.value).forEach((pos) => {\n\t\t\t\texpanded.value[pos] = false;\n\t\t\t});\n\t\t}\n\t\tfunction handlePointerUp() {\n\t\t\tinteracting.value = false;\n\t\t}\n\t\tfunction updateHeights(h) {\n\t\t\theights.value = h;\n\t\t}\n\t\tfunction updateHeight(h) {\n\t\t\tconst index = heights.value.findIndex((item) => item.toastId === h.toastId);\n\t\t\tif (index !== -1) heights.value[index] = h;\n\t\t\telse {\n\t\t\t\tconst samePositionIndex = heights.value.findIndex((item) => item.position === h.position);\n\t\t\t\tif (samePositionIndex !== -1) heights.value.splice(samePositionIndex, 0, h);\n\t\t\t\telse heights.value.unshift(h);\n\t\t\t}\n\t\t}\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createElementBlock(Fragment, null, [createCommentVNode(\" Remove item from normal navigation flow, only available via hotkey \"), createElementVNode(\"section\", {\n\t\t\t\t\"aria-label\": `${_ctx.containerAriaLabel} ${unref(hotkeyLabel)}`,\n\t\t\t\ttabIndex: -1,\n\t\t\t\t\"aria-live\": \"polite\",\n\t\t\t\t\"aria-relevant\": \"additions text\",\n\t\t\t\t\"aria-atomic\": \"false\"\n\t\t\t}, [(openBlock(true), createElementBlock(Fragment, null, renderList(possiblePositions.value, (pos, index) => {\n\t\t\t\treturn openBlock(), createElementBlock(\"ol\", mergeProps({\n\t\t\t\t\tkey: pos,\n\t\t\t\t\tref_for: true,\n\t\t\t\t\tref_key: \"listRef\",\n\t\t\t\t\tref: listRef,\n\t\t\t\t\t\"data-sonner-toaster\": \"\",\n\t\t\t\t\t\"data-sonner-theme\": actualTheme.value,\n\t\t\t\t\tclass: props.class,\n\t\t\t\t\tdir: _ctx.dir === \"auto\" ? getDocumentDirection() : _ctx.dir,\n\t\t\t\t\ttabIndex: -1,\n\t\t\t\t\t\"data-theme\": _ctx.theme,\n\t\t\t\t\t\"data-rich-colors\": _ctx.richColors,\n\t\t\t\t\t\"data-y-position\": pos.split(\"-\")[0],\n\t\t\t\t\t\"data-x-position\": pos.split(\"-\")[1],\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\"--front-toast-height\": `${heights.value[0]?.height || 0}px`,\n\t\t\t\t\t\t\"--width\": `${unref(TOAST_WIDTH)}px`,\n\t\t\t\t\t\t\"--gap\": `${_ctx.gap}px`,\n\t\t\t\t\t\t..._ctx.style,\n\t\t\t\t\t\t...unref(attrs).style,\n\t\t\t\t\t\t...unref(assignOffset)(_ctx.offset, _ctx.mobileOffset)\n\t\t\t\t\t}\n\t\t\t\t}, { ref_for: true }, _ctx.$attrs, {\n\t\t\t\t\tonBlur,\n\t\t\t\t\tonFocus,\n\t\t\t\t\tonMouseenter: handleMouseEnter,\n\t\t\t\t\tonMousemove: handleMouseEnter,\n\t\t\t\t\tonMouseleave: handleMouseLeave,\n\t\t\t\t\tonDragend: handleDragEnd,\n\t\t\t\t\tonPointerdown: onPointerDown,\n\t\t\t\t\tonPointerup: handlePointerUp\n\t\t\t\t}), [(openBlock(true), createElementBlock(Fragment, null, renderList(filteredToasts(pos, index), (toast$1, idx) => {\n\t\t\t\t\treturn openBlock(), createBlock(Toast_default, {\n\t\t\t\t\t\tkey: toast$1.id,\n\t\t\t\t\t\theights: heights.value,\n\t\t\t\t\t\ticons: _ctx.icons,\n\t\t\t\t\t\tindex: idx,\n\t\t\t\t\t\ttoast: toast$1,\n\t\t\t\t\t\tdefaultRichColors: _ctx.richColors,\n\t\t\t\t\t\tduration: _ctx.toastOptions?.duration ?? _ctx.duration,\n\t\t\t\t\t\tclass: normalizeClass(_ctx.toastOptions?.class ?? \"\"),\n\t\t\t\t\t\tdescriptionClass: _ctx.toastOptions?.descriptionClass,\n\t\t\t\t\t\tinvert: _ctx.invert,\n\t\t\t\t\t\tvisibleToasts: _ctx.visibleToasts,\n\t\t\t\t\t\tcloseButton: _ctx.toastOptions?.closeButton ?? _ctx.closeButton,\n\t\t\t\t\t\tinteracting: interacting.value,\n\t\t\t\t\t\tposition: pos,\n\t\t\t\t\t\tcloseButtonPosition: _ctx.toastOptions?.closeButtonPosition ?? _ctx.closeButtonPosition,\n\t\t\t\t\t\tstyle: normalizeStyle(_ctx.toastOptions?.style),\n\t\t\t\t\t\tunstyled: _ctx.toastOptions?.unstyled,\n\t\t\t\t\t\tclasses: _ctx.toastOptions?.classes,\n\t\t\t\t\t\tcancelButtonStyle: _ctx.toastOptions?.cancelButtonStyle,\n\t\t\t\t\t\tactionButtonStyle: _ctx.toastOptions?.actionButtonStyle,\n\t\t\t\t\t\t\"close-button-aria-label\": _ctx.toastOptions?.closeButtonAriaLabel,\n\t\t\t\t\t\ttoasts: toastsByPosition.value[pos],\n\t\t\t\t\t\texpandByDefault: _ctx.expand,\n\t\t\t\t\t\tgap: _ctx.gap,\n\t\t\t\t\t\texpanded: expanded.value[pos] || false,\n\t\t\t\t\t\tswipeDirections: props.swipeDirections,\n\t\t\t\t\t\t\"onUpdate:heights\": updateHeights,\n\t\t\t\t\t\t\"onUpdate:height\": updateHeight,\n\t\t\t\t\t\tonRemoveToast: removeToast\n\t\t\t\t\t}, {\n\t\t\t\t\t\t\"close-icon\": withCtx(() => [renderSlot(_ctx.$slots, \"close-icon\", {}, () => [createVNode(CloseIcon_default)])]),\n\t\t\t\t\t\t\"loading-icon\": withCtx(() => [renderSlot(_ctx.$slots, \"loading-icon\", {}, () => [createVNode(Loader_default, { visible: toast$1.type === \"loading\" }, null, 8, [\"visible\"])])]),\n\t\t\t\t\t\t\"success-icon\": withCtx(() => [renderSlot(_ctx.$slots, \"success-icon\", {}, () => [createVNode(SuccessIcon_default)])]),\n\t\t\t\t\t\t\"error-icon\": withCtx(() => [renderSlot(_ctx.$slots, \"error-icon\", {}, () => [createVNode(ErrorIcon_default)])]),\n\t\t\t\t\t\t\"warning-icon\": withCtx(() => [renderSlot(_ctx.$slots, \"warning-icon\", {}, () => [createVNode(WarningIcon_default)])]),\n\t\t\t\t\t\t\"info-icon\": withCtx(() => [renderSlot(_ctx.$slots, \"info-icon\", {}, () => [createVNode(InfoIcon_default)])]),\n\t\t\t\t\t\t_: 2\n\t\t\t\t\t}, 1032, [\n\t\t\t\t\t\t\"heights\",\n\t\t\t\t\t\t\"icons\",\n\t\t\t\t\t\t\"index\",\n\t\t\t\t\t\t\"toast\",\n\t\t\t\t\t\t\"defaultRichColors\",\n\t\t\t\t\t\t\"duration\",\n\t\t\t\t\t\t\"class\",\n\t\t\t\t\t\t\"descriptionClass\",\n\t\t\t\t\t\t\"invert\",\n\t\t\t\t\t\t\"visibleToasts\",\n\t\t\t\t\t\t\"closeButton\",\n\t\t\t\t\t\t\"interacting\",\n\t\t\t\t\t\t\"position\",\n\t\t\t\t\t\t\"closeButtonPosition\",\n\t\t\t\t\t\t\"style\",\n\t\t\t\t\t\t\"unstyled\",\n\t\t\t\t\t\t\"classes\",\n\t\t\t\t\t\t\"cancelButtonStyle\",\n\t\t\t\t\t\t\"actionButtonStyle\",\n\t\t\t\t\t\t\"close-button-aria-label\",\n\t\t\t\t\t\t\"toasts\",\n\t\t\t\t\t\t\"expandByDefault\",\n\t\t\t\t\t\t\"gap\",\n\t\t\t\t\t\t\"expanded\",\n\t\t\t\t\t\t\"swipeDirections\"\n\t\t\t\t\t]);\n\t\t\t\t}), 128))], 16, _hoisted_2);\n\t\t\t}), 128))], 8, _hoisted_1)], 2112);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/packages/Toaster.vue\nvar Toaster_default = Toaster_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\n//#region src/packages/index.ts\nconst plugin = { install(app) {\n\tapp.component(\"Toaster\", Toaster_default);\n} };\nvar packages_default = plugin;\n\n//#endregion\nexport { Toaster_default as Toaster, packages_default as default, toast, useVueSonner };","import { toast } from 'vue-sonner';\r\n\r\nexport const SCOPE_TOAST_CLASSES = {\r\n toast: 'scope-toast',\r\n title: 'scope-toast__title',\r\n description: 'scope-toast__description',\r\n actionButton: 'scope-toast__action',\r\n closeButton: 'scope-toast__close',\r\n icon: 'scope-toast__icon'\r\n};\r\n\r\nexport const SCOPE_TOASTER_TOAST_OPTIONS = {\r\n unstyled: true,\r\n classes: SCOPE_TOAST_CLASSES\r\n};\r\n\r\nexport interface ToastOptions {\r\n type: 'success' | 'error' | 'warning' | 'info';\r\n duration?: number;\r\n message?: string;\r\n title?: string;\r\n action?: { label: string; callback: () => void };\r\n}\r\n\r\nexport const DEFAULT_TOAST_OPTIONS: ToastOptions = {\r\n type: 'info',\r\n duration: 5000\r\n};\r\n\r\nexport type DismissFunc = () => void;\r\nexport type ToastDismissHandler = { dismiss: DismissFunc } | undefined;\r\n\r\nconst open = (options: Partial<ToastOptions>): ToastDismissHandler => {\r\n if (!options?.message) {\r\n return;\r\n }\r\n\r\n const props: ToastOptions = { ...DEFAULT_TOAST_OPTIONS, ...options };\r\n const content = props.title\r\n ? {\r\n description: props.message\r\n }\r\n : {};\r\n\r\n const action = props.action\n ? {\n label: props.action.label,\n onClick: props.action.callback\n }\n : undefined;\n const closeButton = !props.action;\n const toastTitle = props.title ?? props.message;\n if (!toastTitle) {\n return;\n }\n\n let id: string | number;\n if (props.type === 'success') {\n id = toast.success(toastTitle, {\n ...SCOPE_TOASTER_TOAST_OPTIONS,\n ...content,\n action,\n closeButton,\n duration: props.duration\n });\n } else if (props.type === 'error') {\n id = toast.error(toastTitle, {\n ...SCOPE_TOASTER_TOAST_OPTIONS,\n ...content,\n action,\n closeButton,\n duration: props.duration\n });\n } else if (props.type === 'warning') {\n id = toast.warning(toastTitle, {\n ...SCOPE_TOASTER_TOAST_OPTIONS,\n ...content,\n action,\n closeButton,\n duration: props.duration\n });\n } else {\n id = toast.info(toastTitle, {\n ...SCOPE_TOASTER_TOAST_OPTIONS,\n ...content,\n action,\n closeButton,\n duration: props.duration\r\n });\r\n }\r\n\r\n const dismiss = () => toast.dismiss(id);\r\n\r\n return {\r\n dismiss\r\n };\r\n};\r\n\r\nconst success = (\r\n message: string,\r\n options?: Pick<ToastOptions, 'duration' | 'action' | 'title'>\r\n) => {\r\n return open({\r\n ...options,\r\n message,\r\n type: 'success'\r\n });\r\n};\r\n\r\nconst error = (\r\n message: string,\r\n options?: Pick<ToastOptions, 'duration' | 'action' | 'title'>\r\n) => {\r\n return open({\r\n ...options,\r\n message,\r\n type: 'error'\r\n });\r\n};\r\n\r\nconst info = (\r\n message: string,\r\n options?: Pick<ToastOptions, 'duration' | 'action' | 'title'>\r\n) => {\r\n return open({\r\n ...options,\r\n message,\r\n type: 'info'\r\n });\r\n};\r\n\r\nconst warning = (\r\n message: string,\r\n options?: Pick<ToastOptions, 'duration' | 'action' | 'title'>\r\n) => {\r\n return open({\r\n ...options,\r\n message,\r\n type: 'warning'\r\n });\r\n};\r\n\r\nexport const useToastNew = () => {\r\n return {\r\n open,\r\n success,\r\n error,\r\n info,\r\n warning\r\n };\r\n};\r\n","import { computed, toValue, type MaybeRefOrGetter } from 'vue';\n\nexport type AppSwitcherItem = {\n id: string | number;\n name: string;\n description?: string;\n logo: string;\n href?: string;\n disabled?: boolean;\n};\n\ntype UseAppSwitcherOptions = {\n apps: MaybeRefOrGetter<AppSwitcherItem[]>;\n currentAppId?: MaybeRefOrGetter<string | number | null | undefined>;\n onSelect?: (app: AppSwitcherItem) => void;\n};\n\nexport const useAppSwitcher = ({\n apps: appsSource,\n currentAppId: currentAppIdSource,\n onSelect\n}: UseAppSwitcherOptions) => {\n const apps = computed(() => toValue(appsSource) ?? []);\n const externalCurrentAppId = computed(\n () => toValue(currentAppIdSource) ?? null\n );\n\n const currentApp = computed(() => {\n if (!apps.value.length) return null;\n\n if (externalCurrentAppId.value != null) {\n return (\n apps.value.find(\n (item) => item.id === externalCurrentAppId.value\n ) ?? apps.value[0]\n );\n }\n\n return apps.value[0];\n });\n\n const currentAppId = computed(() => currentApp.value?.id ?? null);\n\n const onSelectApp = (app: AppSwitcherItem) => {\n if (app.disabled) return;\n onSelect?.(app);\n };\n\n return {\n apps,\n currentApp,\n currentAppId,\n onSelectApp\n };\n};\n","<template>\r\n <button\r\n :disabled=\"disabled\"\r\n :style=\"styles\"\r\n :class=\"[\r\n `-${size}`,\r\n `-${view}`,\r\n `-${iconAlignment}`,\r\n { '-no-icon': !icon },\r\n { '-only-icon': icon && !ctaText },\r\n { '-full-width': fullWidth }\r\n ]\"\r\n >\r\n <Icon v-if=\"isLoading\" icon=\"LoaderBtn\" />\r\n <Icon v-else-if=\"icon\" :icon=\"icon\" />\r\n <span v-if=\"ctaText\">\r\n {{ ctaText }}\r\n </span>\r\n </button>\r\n</template>\r\n\r\n<script setup>\r\nimport Icon from './Icon.vue';\r\nimport { computed } from 'vue';\r\n\r\nconst props = defineProps({\r\n size: {\r\n type: String,\r\n default: 'md'\r\n },\r\n view: {\r\n type: String,\r\n default: 'primary'\r\n },\r\n ctaText: String,\r\n icon: String,\r\n iconAlignment: String,\r\n isLoading: Boolean,\r\n width: String,\r\n disabled: Boolean,\r\n fullWidth: Boolean\r\n});\r\n\r\nconst styles = computed(() => (props.width ? { width: props.width } : null));\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '../assets/styles/_main.scss';\r\n\r\nbutton {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n border-radius: 10px;\r\n gap: 8px;\r\n cursor: pointer;\r\n\r\n @include fz-14;\r\n font-weight: 500;\r\n border: unset;\r\n background-color: unset;\r\n box-sizing: border-box;\r\n outline: none;\r\n\r\n @include transition-default;\r\n width: fit-content;\r\n\r\n &.-no-wrap {\r\n text-wrap: nowrap;\r\n }\r\n &.-right {\r\n flex-direction: row-reverse;\r\n }\r\n\r\n &.-no-icon {\r\n &.-md,\r\n &.-lg {\r\n padding: 0 12px;\r\n }\r\n }\r\n\r\n &.-full-width {\r\n width: 100%;\r\n }\r\n\r\n /* ---------- Sizes ---------- */\r\n &.-xl {\r\n height: 40px;\r\n padding: 0 12px;\r\n\r\n &.-only-icon {\r\n padding: unset;\r\n\r\n &:not(.-full-width) {\r\n width: 40px;\r\n }\r\n }\r\n }\r\n\r\n &.-lg {\r\n height: 36px;\r\n padding: 0 12px;\r\n\r\n &.-only-icon {\r\n padding: unset;\r\n\r\n &:not(.-full-width) {\r\n width: 36px;\r\n }\r\n }\r\n }\r\n\r\n &.-md {\r\n height: 32px;\r\n padding: 0 12px;\r\n border-radius: 8px;\r\n\r\n &.-only-icon {\r\n padding: unset;\r\n\r\n &:not(.-full-width) {\r\n width: 32px;\r\n }\r\n }\r\n }\r\n\r\n &.-sm {\r\n height: 28px;\r\n padding: 0 8px;\r\n border-radius: 8px;\r\n\r\n &.-only-icon {\r\n padding: unset;\r\n\r\n &:not(.-full-width) {\r\n width: 28px;\r\n }\r\n }\r\n }\r\n\r\n /* ----------- Views ----------- */\r\n &.-primary {\r\n background-color: $primary-accent;\r\n color: $text-light;\r\n\r\n &:hover {\r\n background-color: $primary-deep;\r\n }\r\n\r\n &:active {\r\n background-color: $primary-deep;\r\n }\r\n\r\n &:disabled {\r\n background-color: $card-neutral-background;\r\n color: $text-low-emphasis;\r\n }\r\n }\r\n\r\n &.-secondary {\r\n border: 1px solid $border;\r\n background-color: $card-background;\r\n\r\n span {\r\n color: $text-high-emphasis;\r\n }\r\n\r\n &:hover {\r\n border-color: $border;\r\n background-color: $card-neutral-background;\r\n }\r\n\r\n &:active {\r\n border-color: $primary-accent;\r\n background-color: $card-background;\r\n }\r\n\r\n &:disabled {\r\n border: unset;\r\n background-color: $card-neutral-background;\r\n color: $text-low-emphasis;\r\n }\r\n }\r\n\r\n &.-tertiary {\r\n color: $primary-accent;\r\n\r\n &:hover {\r\n background-color: $card-primary-background-light;\r\n }\r\n\r\n &:active {\r\n background-color: $card-primary-background-light;\r\n }\r\n\r\n &:disabled {\r\n color: $text-low-emphasis;\r\n }\r\n }\r\n\r\n &.-no-border {\r\n color: $text-mid-emphasis;\r\n\r\n &:hover {\r\n color: $text-high-emphasis;\r\n }\r\n\r\n &:active {\r\n color: $text-high-emphasis;\r\n }\r\n\r\n &:disabled {\r\n color: $text-low-emphasis;\r\n }\r\n }\r\n\r\n &.-crucial {\r\n background-color: $text-error-accent;\r\n color: $text-light;\r\n\r\n &:hover {\r\n background-color: $error-deep;\r\n }\r\n\r\n &:active {\r\n background-color: $error-deep;\r\n }\r\n\r\n &:disabled {\r\n background-color: $card-neutral-background;\r\n color: $text-low-emphasis;\r\n }\r\n }\r\n\r\n &:disabled {\r\n cursor: not-allowed;\r\n }\r\n}\r\n\r\nbody[theme='dark'] button {\r\n &.-secondary {\r\n border: 1px solid $border-secondary;\r\n background-color: $background-secondary;\r\n\r\n &:hover {\r\n border: 1px solid $border-secondary;\r\n background-color: $card-neutral-background;\r\n }\r\n\r\n &:active {\r\n border-color: $primary-accent;\r\n background-color: $card-background;\r\n }\r\n\r\n &:disabled {\r\n border: unset;\r\n background-color: $card-neutral-background;\r\n color: $text-low-emphasis;\r\n }\r\n }\r\n}\r\n</style>\r\n","/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date(date: DateType): DateType {\n * return constructFrom(\n * date, // Use contrustor from the given date\n * date.getTime() // Use the date value to create a new date\n * )\n * }\n */\nexport function constructFrom(date, value) {\n if (date instanceof Date) {\n return new date.constructor(value);\n } else {\n return new Date(value);\n }\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount) {\n const _date = toDate(date);\n if (isNaN(amount)) return constructFrom(date, NaN);\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be added.\n *\n * @returns The new date with the months added\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n *\n * // Add one month to 30 January 2023:\n * const result = addMonths(new Date(2023, 0, 30), 1)\n * //=> Tue Feb 28 2023 00:00:00\n */\nexport function addMonths(date, amount) {\n const _date = toDate(date);\n if (isNaN(amount)) return constructFrom(date, NaN);\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n const dayOfMonth = _date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n const endOfDesiredMonth = constructFrom(date, _date.getTime());\n endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);\n const daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n _date.setFullYear(\n endOfDesiredMonth.getFullYear(),\n endOfDesiredMonth.getMonth(),\n dayOfMonth,\n );\n return _date;\n }\n}\n\n// Fallback for modularized imports:\nexport default addMonths;\n","import { addDays } from \"./addDays.mjs\";\nimport { addMonths } from \"./addMonths.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param duration - The object with years, months, weeks, days, hours, minutes and seconds to be added.\n *\n * | Key | Description |\n * |----------------|------------------------------------|\n * | years | Amount of years to be added |\n * | months | Amount of months to be added |\n * | weeks | Amount of weeks to be added |\n * | days | Amount of days to be added |\n * | hours | Amount of hours to be added |\n * | minutes | Amount of minutes to be added |\n * | seconds | Amount of seconds to be added |\n *\n * All values default to 0\n *\n * @returns The new date with the seconds added\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * const result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\\\\-7\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\nexport function add(date, duration) {\n const {\n years = 0,\n months = 0,\n weeks = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n } = duration;\n\n // Add years and months\n const _date = toDate(date);\n const dateWithMonths =\n months || years ? addMonths(_date, months + years * 12) : _date;\n\n // Add weeks and days\n const dateWithDays =\n days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths;\n\n // Add days, hours, minutes and seconds\n const minutesToAdd = minutes + hours * 60;\n const secondsToAdd = seconds + minutesToAdd * 60;\n const msToAdd = secondsToAdd * 1000;\n const finalDate = constructFrom(date, dateWithDays.getTime() + msToAdd);\n\n return finalDate;\n}\n\n// Fallback for modularized imports:\nexport default add;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of milliseconds to be added.\n *\n * @returns The new date with the milliseconds added\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport function addMilliseconds(date, amount) {\n const timestamp = +toDate(date);\n return constructFrom(date, timestamp + amount);\n}\n\n// Fallback for modularized imports:\nexport default addMilliseconds;\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n","import { addMilliseconds } from \"./addMilliseconds.mjs\";\nimport { millisecondsInHour } from \"./constants.mjs\";\n\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of hours to be added.\n *\n * @returns The new date with the hours added\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nexport function addHours(date, amount) {\n return addMilliseconds(date, amount * millisecondsInHour);\n}\n\n// Fallback for modularized imports:\nexport default addHours;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.mjs\";\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date) {\n return startOfWeek(date, { weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date) {\n const _date = toDate(date);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { toDate } from \"../toDate.mjs\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { millisecondsInDay } from \"./constants.mjs\";\nimport { startOfDay } from \"./startOfDay.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.mjs\";\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(dateLeft, dateRight) {\n const startOfDayLeft = startOfDay(dateLeft);\n const startOfDayRight = startOfDay(dateRight);\n\n const timestampLeft =\n +startOfDayLeft - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n const timestampRight =\n +startOfDayRight - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((timestampLeft - timestampRight) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { getISOWeekYear } from \"./getISOWeekYear.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date) {\n const year = getISOWeekYear(date);\n const fourthOfJanuary = constructFrom(date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { addMonths } from \"./addMonths.mjs\";\n\n/**\n * @name addQuarters\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of quarters to be added.\n *\n * @returns The new date with the quarters added\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * const result = addQuarters(new Date(2014, 8, 1), 1)\n * //=> Mon Dec 01 2014 00:00:00\n */\nexport function addQuarters(date, amount) {\n const months = amount * 3;\n return addMonths(date, months);\n}\n\n// Fallback for modularized imports:\nexport default addQuarters;\n","import { addMonths } from \"./addMonths.mjs\";\n\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be added.\n *\n * @returns The new date with the years added\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nexport function addYears(date, amount) {\n return addMonths(date, amount * 12);\n}\n\n// Fallback for modularized imports:\nexport default addYears;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\nexport function compareAsc(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n\n const diff = _dateLeft.getTime() - _dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1;\n // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n\n// Fallback for modularized imports:\nexport default compareAsc;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n if (!isDate(date) && typeof date !== \"number\") {\n return false;\n }\n const _date = toDate(date);\n return !isNaN(Number(_date));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The quarter\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\nexport function getQuarter(date) {\n const _date = toDate(date);\n const quarter = Math.trunc(_date.getMonth() / 3) + 1;\n return quarter;\n}\n\n// Fallback for modularized imports:\nexport default getQuarter;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n\n * @returns The number of calendar years\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nexport function differenceInCalendarYears(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n\n return _dateLeft.getFullYear() - _dateRight.getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarYears;\n","import { compareAsc } from \"./compareAsc.mjs\";\nimport { differenceInCalendarYears } from \"./differenceInCalendarYears.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInYears\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of full years\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))\n * //=> 1\n */\nexport function differenceInYears(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n\n const sign = compareAsc(_dateLeft, _dateRight);\n const difference = Math.abs(differenceInCalendarYears(_dateLeft, _dateRight));\n\n // Set both dates to a valid leap year for accurate comparison when dealing\n // with leap days\n _dateLeft.setFullYear(1584);\n _dateRight.setFullYear(1584);\n\n // Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full\n // If so, result must be decreased by 1 in absolute value\n const isLastYearNotFull = compareAsc(_dateLeft, _dateRight) === -sign;\n const result = sign * (difference - +isLastYearNotFull);\n\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n\n// Fallback for modularized imports:\nexport default differenceInYears;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link eachDayOfInterval} function options.\n */\n\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of days from the day of the interval start to the day of the interval end\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nexport function eachDayOfInterval(interval, options) {\n const startDate = toDate(interval.start);\n const endDate = toDate(interval.end);\n\n let reversed = +startDate > +endDate;\n const endTime = reversed ? +startDate : +endDate;\n const currentDate = reversed ? endDate : startDate;\n currentDate.setHours(0, 0, 0, 0);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n dates.push(toDate(currentDate));\n currentDate.setDate(currentDate.getDate() + step);\n currentDate.setHours(0, 0, 0, 0);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachDayOfInterval;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a quarter\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\nexport function startOfQuarter(date) {\n const _date = toDate(date);\n const currentMonth = _date.getMonth();\n const month = currentMonth - (currentMonth % 3);\n _date.setMonth(month, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfQuarter;\n","import { addQuarters } from \"./addQuarters.mjs\";\nimport { startOfQuarter } from \"./startOfQuarter.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link eachQuarterOfInterval} function options.\n */\n\n/**\n * @name eachQuarterOfInterval\n * @category Interval Helpers\n * @summary Return the array of quarters within the specified time interval.\n *\n * @description\n * Return the array of quarters within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval\n *\n * @returns The array with starts of quarters from the quarter of the interval start to the quarter of the interval end\n *\n * @example\n * // Each quarter within interval 6 February 2014 - 10 August 2014:\n * const result = eachQuarterOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2014, 7, 10)\n * })\n * //=> [\n * // Wed Jan 01 2014 00:00:00,\n * // Tue Apr 01 2014 00:00:00,\n * // Tue Jul 01 2014 00:00:00,\n * // ]\n */\nexport function eachQuarterOfInterval(interval, options) {\n const startDate = toDate(interval.start);\n const endDate = toDate(interval.end);\n\n let reversed = +startDate > +endDate;\n const endTime = reversed\n ? +startOfQuarter(startDate)\n : +startOfQuarter(endDate);\n let currentDate = reversed\n ? startOfQuarter(endDate)\n : startOfQuarter(startDate);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n dates.push(toDate(currentDate));\n currentDate = addQuarters(currentDate, step);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachQuarterOfInterval;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfMonth(date) {\n const _date = toDate(date);\n _date.setDate(1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfMonth;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a year\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nexport function endOfYear(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n _date.setFullYear(year + 1, 0, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfYear;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date) {\n const cleanDate = toDate(date);\n const _date = constructFrom(date, 0);\n _date.setFullYear(cleanDate.getFullYear(), 0, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link endOfWeek} function options.\n */\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport function endOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n _date.setDate(_date.getDate() + diff);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfWeek;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfQuarter\n * @category Quarter Helpers\n * @summary Return the end of a year quarter for the given date.\n *\n * @description\n * Return the end of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a quarter\n *\n * @example\n * // The end of a quarter for 2 September 2014 11:55:00:\n * const result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport function endOfQuarter(date) {\n const _date = toDate(date);\n const currentMonth = _date.getMonth();\n const month = currentMonth - (currentMonth % 3) + 3;\n _date.setMonth(month, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfQuarter;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.mjs\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/* eslint-disable no-unused-vars */\n\n/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.mjs\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.mjs\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.mjs\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.mjs\";\nimport { formatLong } from \"./en-US/_lib/formatLong.mjs\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.mjs\";\nimport { localize } from \"./en-US/_lib/localize.mjs\";\nimport { match } from \"./en-US/_lib/match.mjs\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.mjs\";\nimport { startOfYear } from \"./startOfYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date) {\n const _date = toDate(date);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date) {\n const _date = toDate(date);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getWeekYear } from \"./getWeekYear.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { startOfWeekYear } from \"./startOfWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\n\nexport function getWeek(date, options) {\n const _date = toDate(date);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.mjs\";\nimport { getISOWeek } from \"../../getISOWeek.mjs\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.mjs\";\nimport { getWeek } from \"../../getWeek.mjs\";\nimport { getWeekYear } from \"../../getWeekYear.mjs\";\nimport { addLeadingZeros } from \"../addLeadingZeros.mjs\";\nimport { lightFormatters } from \"./lightFormatters.mjs\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(date.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n const timestamp = date.getTime();\n return addLeadingZeros(timestamp, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\nimport { formatters } from \"./_lib/format/formatters.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { isValid } from \"./isValid.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of week, 0 represents Sunday\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nexport function getDay(date) {\n const _date = toDate(date);\n const day = _date.getDay();\n return day;\n}\n\n// Fallback for modularized imports:\nexport default getDay;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The number of days in a month\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport function getDaysInMonth(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n const monthIndex = _date.getMonth();\n const lastDayOfMonth = constructFrom(date, 0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}\n\n// Fallback for modularized imports:\nexport default getDaysInMonth;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The hours\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\nexport function getHours(date) {\n const _date = toDate(date);\n const hours = _date.getHours();\n return hours;\n}\n\n// Fallback for modularized imports:\nexport default getHours;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date) {\n const _date = toDate(date);\n let day = _date.getDay();\n\n if (day === 0) {\n day = 7;\n }\n\n return day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The minutes\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\nexport function getMinutes(date) {\n const _date = toDate(date);\n const minutes = _date.getMinutes();\n return minutes;\n}\n\n// Fallback for modularized imports:\nexport default getMinutes;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The month index (0-11)\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nexport function getMonth(date) {\n const _date = toDate(date);\n const month = _date.getMonth();\n return month;\n}\n\n// Fallback for modularized imports:\nexport default getMonth;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The seconds\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\nexport function getSeconds(date) {\n const _date = toDate(date);\n const seconds = _date.getSeconds();\n return seconds;\n}\n\n// Fallback for modularized imports:\nexport default getSeconds;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The year\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nexport function getYear(date) {\n return toDate(date).getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default getYear;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date that should be after the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport function isAfter(date, dateToCompare) {\n const _date = toDate(date);\n const _dateToCompare = toDate(dateToCompare);\n return _date.getTime() > _dateToCompare.getTime();\n}\n\n// Fallback for modularized imports:\nexport default isAfter;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date that should be before the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport function isBefore(date, dateToCompare) {\n const _date = toDate(date);\n const _dateToCompare = toDate(dateToCompare);\n return +_date < +_dateToCompare;\n}\n\n// Fallback for modularized imports:\nexport default isBefore;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The dates are equal\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nexport function isEqual(leftDate, rightDate) {\n const _dateLeft = toDate(leftDate);\n const _dateRight = toDate(rightDate);\n return +_dateLeft === +_dateRight;\n}\n\n// Fallback for modularized imports:\nexport default isEqual;\n","import { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam DateInputType - The input `Date` type derived from the passed argument.\n * @typeParam DateOutputType - The output `Date` type derived from the passed constructor.\n *\n * @param fromDate - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(fromDate, constructor) {\n const date =\n constructor instanceof Date\n ? constructFrom(constructor, 0)\n : new constructor(0);\n date.setFullYear(\n fromDate.getFullYear(),\n fromDate.getMonth(),\n fromDate.getDate(),\n );\n date.setHours(\n fromDate.getHours(),\n fromDate.getMinutes(),\n fromDate.getSeconds(),\n fromDate.getMilliseconds(),\n );\n return date;\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { transpose } from \"../../transpose.mjs\";\nimport { constructFrom } from \"../../constructFrom.mjs\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateToSystemTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, Date));\n }\n}\n","import { ValueSetter } from \"./Setter.mjs\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","import { Parser } from \"../Parser.mjs\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.mjs\";\nimport { numericPatterns } from \"./constants.mjs\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const _date = toDate(date);\n const diff = getWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setWeek } from \"../../../setWeek.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week) {\n const _date = toDate(date);\n const diff = getISOWeek(_date) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { setISOWeek } from \"../../../setISOWeek.mjs\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const currentDay = _date.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.mjs\";\nimport { getISODay } from \"./getISODay.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day) {\n const _date = toDate(date);\n const currentDay = getISODay(_date);\n const diff = day - currentDay;\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { setISODay } from \"../../../setISODay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { EraParser } from \"./parsers/EraParser.mjs\";\nimport { YearParser } from \"./parsers/YearParser.mjs\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.mjs\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.mjs\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.mjs\";\nimport { QuarterParser } from \"./parsers/QuarterParser.mjs\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.mjs\";\nimport { MonthParser } from \"./parsers/MonthParser.mjs\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.mjs\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.mjs\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.mjs\";\nimport { DateParser } from \"./parsers/DateParser.mjs\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.mjs\";\nimport { DayParser } from \"./parsers/DayParser.mjs\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.mjs\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.mjs\";\nimport { ISODayParser } from \"./parsers/ISODayParser.mjs\";\nimport { AMPMParser } from \"./parsers/AMPMParser.mjs\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.mjs\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.mjs\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.mjs\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.mjs\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.mjs\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.mjs\";\nimport { MinuteParser } from \"./parsers/MinuteParser.mjs\";\nimport { SecondParser } from \"./parsers/SecondParser.mjs\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.mjs\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.mjs\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.mjs\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.mjs\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- It's ok, we want any here\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getDefaultOptions } from \"./getDefaultOptions.mjs\";\nimport { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { parsers } from \"./parse/_lib/parsers.mjs\";\nimport { DateToSystemTimezoneSetter } from \"./parse/_lib/Setter.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (formatStr === \"\") {\n if (dateStr === \"\") {\n return toDate(referenceDate);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n const setters = [new DateToSystemTimezoneSetter()];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return constructFrom(referenceDate, NaN);\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate);\n\n if (isNaN(date.getTime())) {\n return constructFrom(referenceDate, NaN);\n }\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return constructFrom(referenceDate, date);\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { startOfQuarter } from \"./startOfQuarter.mjs\";\n\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same quarter (and year)?\n *\n * @description\n * Are the given dates in the same quarter (and year)?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n\n * @returns The dates are in the same quarter (and year)\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\nexport function isSameQuarter(dateLeft, dateRight) {\n const dateLeftStartOfQuarter = startOfQuarter(dateLeft);\n const dateRightStartOfQuarter = startOfQuarter(dateRight);\n\n return +dateLeftStartOfQuarter === +dateRightStartOfQuarter;\n}\n\n// Fallback for modularized imports:\nexport default isSameQuarter;\n","import { addDays } from \"./addDays.mjs\";\n\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be subtracted.\n *\n * @returns The new date with the days subtracted\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nexport function subDays(date, amount) {\n return addDays(date, -amount);\n}\n\n// Fallback for modularized imports:\nexport default subDays;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getDaysInMonth } from \"./getDaysInMonth.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param month - The month index to set (0-11)\n *\n * @returns The new date with the month set\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nexport function setMonth(date, month) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n const day = _date.getDate();\n\n const dateWithDesiredMonth = constructFrom(date, 0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n const daysInMonth = getDaysInMonth(dateWithDesiredMonth);\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n _date.setMonth(month, Math.min(day, daysInMonth));\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setMonth;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { setMonth } from \"./setMonth.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param values - The date values to be set\n *\n * @returns The new date with options set\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * const result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * const result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\n\nexport function set(date, values) {\n let _date = toDate(date);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(+_date)) {\n return constructFrom(date, NaN);\n }\n\n if (values.year != null) {\n _date.setFullYear(values.year);\n }\n\n if (values.month != null) {\n _date = setMonth(_date, values.month);\n }\n\n if (values.date != null) {\n _date.setDate(values.date);\n }\n\n if (values.hours != null) {\n _date.setHours(values.hours);\n }\n\n if (values.minutes != null) {\n _date.setMinutes(values.minutes);\n }\n\n if (values.seconds != null) {\n _date.setSeconds(values.seconds);\n }\n\n if (values.milliseconds != null) {\n _date.setMilliseconds(values.milliseconds);\n }\n\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default set;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param hours - The hours of the new date\n *\n * @returns The new date with the hours set\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nexport function setHours(date, hours) {\n const _date = toDate(date);\n _date.setHours(hours);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setHours;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setMilliseconds\n * @category Millisecond Helpers\n * @summary Set the milliseconds to the given date.\n *\n * @description\n * Set the milliseconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param milliseconds - The milliseconds of the new date\n *\n * @returns The new date with the milliseconds set\n *\n * @example\n * // Set 300 milliseconds to 1 September 2014 11:30:40.500:\n * const result = setMilliseconds(new Date(2014, 8, 1, 11, 30, 40, 500), 300)\n * //=> Mon Sep 01 2014 11:30:40.300\n */\nexport function setMilliseconds(date, milliseconds) {\n const _date = toDate(date);\n _date.setMilliseconds(milliseconds);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setMilliseconds;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param minutes - The minutes of the new date\n *\n * @returns The new date with the minutes set\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nexport function setMinutes(date, minutes) {\n const _date = toDate(date);\n _date.setMinutes(minutes);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setMinutes;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param seconds - The seconds of the new date\n *\n * @returns The new date with the seconds set\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\nexport function setSeconds(date, seconds) {\n const _date = toDate(date);\n _date.setSeconds(seconds);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setSeconds;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param year - The year of the new date\n *\n * @returns The new date with the year set\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nexport function setYear(date, year) {\n const _date = toDate(date);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(+_date)) {\n return constructFrom(date, NaN);\n }\n\n _date.setFullYear(year);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setYear;\n","import { addMonths } from \"./addMonths.mjs\";\n\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be subtracted.\n *\n * @returns The new date with the months subtracted\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function subMonths(date, amount) {\n return addMonths(date, -amount);\n}\n\n// Fallback for modularized imports:\nexport default subMonths;\n","import { subDays } from \"./subDays.mjs\";\nimport { subMonths } from \"./subMonths.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name sub\n * @category Common Helpers\n * @summary Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @description\n * Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param duration - The object with years, months, weeks, days, hours, minutes and seconds to be subtracted\n *\n * | Key | Description |\n * |---------|------------------------------------|\n * | years | Amount of years to be subtracted |\n * | months | Amount of months to be subtracted |\n * | weeks | Amount of weeks to be subtracted |\n * | days | Amount of days to be subtracted |\n * | hours | Amount of hours to be subtracted |\n * | minutes | Amount of minutes to be subtracted |\n * | seconds | Amount of seconds to be subtracted |\n *\n * All values default to 0\n *\n * @returns The new date with the seconds subtracted\n *\n * @example\n * // Subtract the following duration from 15 June 2017 15:29:20\n * const result = sub(new Date(2017, 5, 15, 15, 29, 20), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> Mon Sep 1 2014 10:19:50\n */\nexport function sub(date, duration) {\n const {\n years = 0,\n months = 0,\n weeks = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n } = duration;\n\n // Subtract years and months\n const dateWithoutMonths = subMonths(date, months + years * 12);\n\n // Subtract weeks and days\n const dateWithoutDays = subDays(dateWithoutMonths, days + weeks * 7);\n\n // Subtract hours, minutes and seconds\n const minutestoSub = minutes + hours * 60;\n const secondstoSub = seconds + minutestoSub * 60;\n const mstoSub = secondstoSub * 1000;\n const finalDate = constructFrom(date, dateWithoutDays.getTime() - mstoSub);\n\n return finalDate;\n}\n\n// Fallback for modularized imports:\nexport default sub;\n","import { addYears } from \"./addYears.mjs\";\n\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be subtracted.\n *\n * @returns The new date with the years subtracted\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\nexport function subYears(date, amount) {\n return addYears(date, -amount);\n}\n\n// Fallback for modularized imports:\nexport default subYears;\n","import { useAttrs as jn, openBlock as T, createElementBlock as K, createElementVNode as ye, unref as o, reactive as Qt, computed as J, ref as ne, toRef as Vt, watch as at, defineComponent as Le, onMounted as We, onUnmounted as ua, renderSlot as ie, normalizeProps as Ne, mergeProps as Ee, Fragment as be, normalizeStyle as tt, createCommentVNode as Z, createTextVNode as ct, toDisplayString as Ue, onBeforeUpdate as Kn, nextTick as xe, normalizeClass as we, withModifiers as Wt, renderList as Re, withDirectives as na, vShow as la, createBlock as $e, withCtx as ke, withKeys as Gn, createVNode as Ze, Transition as Nt, createSlots as Ve, useSlots as Pt, guardReactiveProps as Qe, resolveDynamicComponent as ia, h as Qn, render as xa, getCurrentScope as qn, onScopeDispose as Xn, isRef as en, Teleport as Jn } from \"vue\";\nimport { format as ut, isEqual as Ot, set as Te, startOfMonth as Zn, isAfter as _t, getYear as pe, getMonth as De, setMonth as xn, setYear as st, addMonths as At, subMonths as jt, isValid as ra, isBefore as Kt, eachDayOfInterval as pn, setHours as el, setMinutes as tl, setSeconds as yn, setMilliseconds as gn, getHours as ft, getMinutes as ht, getSeconds as Bt, startOfWeek as La, endOfWeek as hn, parse as Ia, isDate as al, addHours as nl, addYears as bn, subYears as kn, endOfYear as wn, startOfYear as oa, differenceInYears as ll, add as Dn, sub as rl, getWeek as ol, getISOWeek as sl, addDays as $t, isSameQuarter as tn, eachQuarterOfInterval as ul, startOfQuarter as il, endOfQuarter as an, getQuarter as nn, getDay as dl, differenceInCalendarDays as cl } from \"date-fns\";\nfunction Et() {\n const e = jn();\n return T(), K(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\",\n ...e\n },\n [\n ye(\"path\", {\n d: \"M29.333 8c0-2.208-1.792-4-4-4h-18.667c-2.208 0-4 1.792-4 4v18.667c0 2.208 1.792 4 4 4h18.667c2.208 0 4-1.792 4-4v-18.667zM26.667 8v18.667c0 0.736-0.597 1.333-1.333 1.333 0 0-18.667 0-18.667 0-0.736 0-1.333-0.597-1.333-1.333 0 0 0-18.667 0-18.667 0-0.736 0.597-1.333 1.333-1.333 0 0 18.667 0 18.667 0 0.736 0 1.333 0.597 1.333 1.333z\"\n }),\n ye(\"path\", {\n d: \"M20 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n }),\n ye(\"path\", {\n d: \"M9.333 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n }),\n ye(\"path\", {\n d: \"M4 14.667h24c0.736 0 1.333-0.597 1.333-1.333s-0.597-1.333-1.333-1.333h-24c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333z\"\n })\n ]\n );\n}\nEt.compatConfig = {\n MODE: 3\n};\nfunction Mn() {\n return T(), K(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n ye(\"path\", {\n d: \"M23.057 7.057l-16 16c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l16-16c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0z\"\n }),\n ye(\"path\", {\n d: \"M7.057 8.943l16 16c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885l-16-16c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n })\n ]\n );\n}\nMn.compatConfig = {\n MODE: 3\n};\nfunction za() {\n return T(), K(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n ye(\"path\", {\n d: \"M20.943 23.057l-7.057-7.057c0 0 7.057-7.057 7.057-7.057 0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-8 8c-0.521 0.521-0.521 1.365 0 1.885l8 8c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z\"\n })\n ]\n );\n}\nza.compatConfig = {\n MODE: 3\n};\nfunction Ha() {\n return T(), K(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n ye(\"path\", {\n d: \"M12.943 24.943l8-8c0.521-0.521 0.521-1.365 0-1.885l-8-8c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885l7.057 7.057c0 0-7.057 7.057-7.057 7.057-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0z\"\n })\n ]\n );\n}\nHa.compatConfig = {\n MODE: 3\n};\nfunction Ua() {\n return T(), K(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n ye(\"path\", {\n d: \"M16 1.333c-8.095 0-14.667 6.572-14.667 14.667s6.572 14.667 14.667 14.667c8.095 0 14.667-6.572 14.667-14.667s-6.572-14.667-14.667-14.667zM16 4c6.623 0 12 5.377 12 12s-5.377 12-12 12c-6.623 0-12-5.377-12-12s5.377-12 12-12z\"\n }),\n ye(\"path\", {\n d: \"M14.667 8v8c0 0.505 0.285 0.967 0.737 1.193l5.333 2.667c0.658 0.329 1.46 0.062 1.789-0.596s0.062-1.46-0.596-1.789l-4.596-2.298c0 0 0-7.176 0-7.176 0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n })\n ]\n );\n}\nUa.compatConfig = {\n MODE: 3\n};\nfunction Va() {\n return T(), K(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n ye(\"path\", {\n d: \"M24.943 19.057l-8-8c-0.521-0.521-1.365-0.521-1.885 0l-8 8c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l7.057-7.057c0 0 7.057 7.057 7.057 7.057 0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z\"\n })\n ]\n );\n}\nVa.compatConfig = {\n MODE: 3\n};\nfunction Wa() {\n return T(), K(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n ye(\"path\", {\n d: \"M7.057 12.943l8 8c0.521 0.521 1.365 0.521 1.885 0l8-8c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-7.057 7.057c0 0-7.057-7.057-7.057-7.057-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n })\n ]\n );\n}\nWa.compatConfig = {\n MODE: 3\n};\nconst qe = (e, t) => t ? new Date(e.toLocaleString(\"en-US\", { timeZone: t })) : new Date(e), ja = (e, t, l) => {\n const a = Na(e, t, l);\n return a || G();\n}, fl = (e, t, l) => {\n const a = t.dateInTz ? qe(new Date(e), t.dateInTz) : G(e);\n return l ? Ge(a, !0) : a;\n}, Na = (e, t, l) => {\n if (!e) return null;\n const a = l ? Ge(G(e), !0) : G(e);\n return t ? t.exactMatch ? fl(e, t, l) : qe(a, t.timezone) : a;\n}, vl = (e) => {\n if (!e) return 0;\n const t = /* @__PURE__ */ new Date(), l = new Date(t.toLocaleString(\"en-US\", { timeZone: \"UTC\" })), a = new Date(t.toLocaleString(\"en-US\", { timeZone: e })), n = a.getTimezoneOffset() / 60;\n return (+l - +a) / (1e3 * 60 * 60) - n;\n};\nvar nt = /* @__PURE__ */ ((e) => (e.month = \"month\", e.year = \"year\", e))(nt || {}), Mt = /* @__PURE__ */ ((e) => (e.top = \"top\", e.bottom = \"bottom\", e))(Mt || {}), Tt = /* @__PURE__ */ ((e) => (e.header = \"header\", e.calendar = \"calendar\", e.timePicker = \"timePicker\", e))(Tt || {}), He = /* @__PURE__ */ ((e) => (e.month = \"month\", e.year = \"year\", e.calendar = \"calendar\", e.time = \"time\", e.minutes = \"minutes\", e.hours = \"hours\", e.seconds = \"seconds\", e))(He || {});\nconst ml = [\"timestamp\", \"date\", \"iso\"];\nvar je = /* @__PURE__ */ ((e) => (e.up = \"up\", e.down = \"down\", e.left = \"left\", e.right = \"right\", e))(je || {}), Pe = /* @__PURE__ */ ((e) => (e.arrowUp = \"ArrowUp\", e.arrowDown = \"ArrowDown\", e.arrowLeft = \"ArrowLeft\", e.arrowRight = \"ArrowRight\", e.enter = \"Enter\", e.space = \" \", e.esc = \"Escape\", e.tab = \"Tab\", e.home = \"Home\", e.end = \"End\", e.pageUp = \"PageUp\", e.pageDown = \"PageDown\", e))(Pe || {});\nfunction ln(e) {\n return (t) => new Intl.DateTimeFormat(e, { weekday: \"short\", timeZone: \"UTC\" }).format(/* @__PURE__ */ new Date(`2017-01-0${t}T00:00:00+00:00`)).slice(0, 2);\n}\nfunction pl(e) {\n return (t) => ut(qe(/* @__PURE__ */ new Date(`2017-01-0${t}T00:00:00+00:00`), \"UTC\"), \"EEEEEE\", { locale: e });\n}\nconst yl = (e, t, l) => {\n const a = [1, 2, 3, 4, 5, 6, 7];\n let n;\n if (e !== null)\n try {\n n = a.map(pl(e));\n } catch {\n n = a.map(ln(t));\n }\n else\n n = a.map(ln(t));\n const i = n.slice(0, l), d = n.slice(l + 1, n.length);\n return [n[l]].concat(...d).concat(...i);\n}, Ka = (e, t, l) => {\n const a = [];\n for (let n = +e[0]; n <= +e[1]; n++)\n a.push({ value: +n, text: Sn(n, t) });\n return l ? a.reverse() : a;\n}, $n = (e, t, l) => {\n const a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map((i) => {\n const d = i < 10 ? `0${i}` : i;\n return /* @__PURE__ */ new Date(`2017-${d}-01T00:00:00+00:00`);\n });\n if (e !== null)\n try {\n const i = l === \"long\" ? \"LLLL\" : \"LLL\";\n return a.map((d, b) => {\n const c = ut(qe(d, \"UTC\"), i, { locale: e });\n return {\n text: c.charAt(0).toUpperCase() + c.substring(1),\n value: b\n };\n });\n } catch {\n }\n const n = new Intl.DateTimeFormat(t, { month: l, timeZone: \"UTC\" });\n return a.map((i, d) => {\n const b = n.format(i);\n return {\n text: b.charAt(0).toUpperCase() + b.substring(1),\n value: d\n };\n });\n}, gl = (e) => [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11][e], Ie = (e) => {\n const t = o(e);\n return t != null && t.$el ? t == null ? void 0 : t.$el : t;\n}, hl = (e) => ({ type: \"dot\", ...e ?? {} }), An = (e) => Array.isArray(e) ? !!e[0] && !!e[1] : !1, Ga = {\n prop: (e) => `\"${e}\" prop must be enabled!`,\n dateArr: (e) => `You need to use array as \"model-value\" binding in order to support \"${e}\"`\n}, Ye = (e) => e, rn = (e) => e === 0 ? e : !e || isNaN(+e) ? null : +e, on = (e) => e === null, Tn = (e) => {\n if (e)\n return [...e.querySelectorAll(\"input, button, select, textarea, a[href]\")][0];\n}, bl = (e) => {\n const t = [], l = (a) => a.filter((n) => n);\n for (let a = 0; a < e.length; a += 3) {\n const n = [e[a], e[a + 1], e[a + 2]];\n t.push(l(n));\n }\n return t;\n}, Gt = (e, t, l) => {\n const a = l != null, n = t != null;\n if (!a && !n) return !1;\n const i = +l, d = +t;\n return a && n ? +e > i || +e < d : a ? +e > i : n ? +e < d : !1;\n}, Yt = (e, t) => bl(e).map((l) => l.map((a) => {\n const { active: n, disabled: i, isBetween: d, highlighted: b } = t(a);\n return {\n ...a,\n active: n,\n disabled: i,\n className: {\n dp__overlay_cell_active: n,\n dp__overlay_cell: !n,\n dp__overlay_cell_disabled: i,\n dp__overlay_cell_pad: !0,\n dp__overlay_cell_active_disabled: i && n,\n dp__cell_in_between: d,\n \"dp--highlighted\": b\n }\n };\n})), yt = (e, t, l = !1) => {\n e && t.allowStopPropagation && (l && e.stopImmediatePropagation(), e.stopPropagation());\n}, kl = () => [\n \"a[href]\",\n \"area[href]\",\n \"input:not([disabled]):not([type='hidden'])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"button:not([disabled])\",\n \"[tabindex]:not([tabindex='-1'])\",\n \"[data-datepicker-instance]\"\n].join(\", \");\nfunction wl(e, t) {\n let l = [...document.querySelectorAll(kl())];\n l = l.filter((n) => !e.contains(n) || n.hasAttribute(\"data-datepicker-instance\"));\n const a = l.indexOf(e);\n if (a >= 0 && (t ? a - 1 >= 0 : a + 1 <= l.length))\n return l[a + (t ? -1 : 1)];\n}\nconst Ea = (e, t) => e == null ? void 0 : e.querySelector(`[data-dp-element=\"${t}\"]`), Sn = (e, t) => new Intl.NumberFormat(t, { useGrouping: !1, style: \"decimal\" }).format(e), Qa = (e) => ut(e, \"dd-MM-yyyy\"), $a = (e) => Array.isArray(e), sa = (e, t) => t.get(Qa(e)), Dl = (e, t) => e ? t ? t instanceof Map ? !!sa(e, t) : t(G(e)) : !1 : !0, Ke = (e, t, l = !1, a) => {\n if (e.key === Pe.enter || e.key === Pe.space)\n return l && e.preventDefault(), t();\n if (a) return a(e);\n}, sn = () => [\"iPad Simulator\", \"iPhone Simulator\", \"iPod Simulator\", \"iPad\", \"iPhone\", \"iPod\"].some(\n (e) => navigator.userAgent.includes(e)\n) || navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document, un = (e, t, l, a, n, i) => {\n const d = Ia(e, t.slice(0, e.length), /* @__PURE__ */ new Date(), { locale: i });\n return ra(d) && al(d) ? a || n ? d : Te(d, {\n hours: +l.hours,\n minutes: +(l == null ? void 0 : l.minutes),\n seconds: +(l == null ? void 0 : l.seconds),\n milliseconds: 0\n }) : null;\n}, Ml = (e, t, l, a, n, i) => {\n const d = Array.isArray(l) ? l[0] : l;\n if (typeof t == \"string\")\n return un(e, t, d, a, n, i);\n if (Array.isArray(t)) {\n let b = null;\n for (const c of t)\n if (b = un(e, c, d, a, n, i), b)\n break;\n return b;\n }\n return typeof t == \"function\" ? t(e) : null;\n}, G = (e) => e ? new Date(e) : /* @__PURE__ */ new Date(), $l = (e, t, l) => {\n if (t) {\n const n = (e.getMonth() + 1).toString().padStart(2, \"0\"), i = e.getDate().toString().padStart(2, \"0\"), d = e.getHours().toString().padStart(2, \"0\"), b = e.getMinutes().toString().padStart(2, \"0\"), c = l ? e.getSeconds().toString().padStart(2, \"0\") : \"00\";\n return `${e.getFullYear()}-${n}-${i}T${d}:${b}:${c}.000Z`;\n }\n const a = Date.UTC(\n e.getUTCFullYear(),\n e.getUTCMonth(),\n e.getUTCDate(),\n e.getUTCHours(),\n e.getUTCMinutes(),\n e.getUTCSeconds()\n );\n return new Date(a).toISOString();\n}, Ge = (e, t) => {\n const l = G(JSON.parse(JSON.stringify(e))), a = Te(l, { hours: 0, minutes: 0, seconds: 0, milliseconds: 0 });\n return t ? Zn(a) : a;\n}, gt = (e, t, l, a) => {\n let n = e ? G(e) : G();\n return (t || t === 0) && (n = el(n, +t)), (l || l === 0) && (n = tl(n, +l)), (a || a === 0) && (n = yn(n, +a)), gn(n, 0);\n}, Oe = (e, t) => !e || !t ? !1 : Kt(Ge(e), Ge(t)), Me = (e, t) => !e || !t ? !1 : Ot(Ge(e), Ge(t)), Be = (e, t) => !e || !t ? !1 : _t(Ge(e), Ge(t)), da = (e, t, l) => e != null && e[0] && (e != null && e[1]) ? Be(l, e[0]) && Oe(l, e[1]) : e != null && e[0] && t ? Be(l, e[0]) && Oe(l, t) || Oe(l, e[0]) && Be(l, t) : !1, lt = (e) => {\n const t = Te(new Date(e), { date: 1 });\n return Ge(t);\n}, Aa = (e, t, l) => t && (l || l === 0) ? Object.fromEntries(\n [\"hours\", \"minutes\", \"seconds\"].map((a) => a === t ? [a, l] : [a, isNaN(+e[a]) ? void 0 : +e[a]])\n) : {\n hours: isNaN(+e.hours) ? void 0 : +e.hours,\n minutes: isNaN(+e.minutes) ? void 0 : +e.minutes,\n seconds: isNaN(+e.seconds) ? void 0 : +e.seconds\n}, St = (e) => ({\n hours: ft(e),\n minutes: ht(e),\n seconds: Bt(e)\n}), Pn = (e, t) => {\n if (t) {\n const l = pe(G(t));\n if (l > e) return 12;\n if (l === e) return De(G(t));\n }\n}, Rn = (e, t) => {\n if (t) {\n const l = pe(G(t));\n return l < e ? -1 : l === e ? De(G(t)) : void 0;\n }\n}, It = (e) => {\n if (e) return pe(G(e));\n}, Cn = (e, t) => {\n const l = Be(e, t) ? t : e, a = Be(t, e) ? t : e;\n return pn({ start: l, end: a });\n}, Al = (e) => {\n const t = At(e, 1);\n return { month: De(t), year: pe(t) };\n}, it = (e, t) => {\n const l = La(e, { weekStartsOn: +t }), a = hn(e, { weekStartsOn: +t });\n return [l, a];\n}, On = (e, t) => {\n const l = {\n hours: ft(G()),\n minutes: ht(G()),\n seconds: t ? Bt(G()) : 0\n };\n return Object.assign(l, e);\n}, pt = (e, t, l) => [Te(G(e), { date: 1 }), Te(G(), { month: t, year: l, date: 1 })], dt = (e, t, l) => {\n let a = e ? G(e) : G();\n return (t || t === 0) && (a = xn(a, t)), l && (a = st(a, l)), a;\n}, _n = (e, t, l, a, n) => {\n if (!a || n && !t || !n && !l) return !1;\n const i = n ? At(e, 1) : jt(e, 1), d = [De(i), pe(i)];\n return n ? !Sl(...d, t) : !Tl(...d, l);\n}, Tl = (e, t, l) => Oe(...pt(l, e, t)) || Me(...pt(l, e, t)), Sl = (e, t, l) => Be(...pt(l, e, t)) || Me(...pt(l, e, t)), Bn = (e, t, l, a, n, i, d) => {\n if (typeof t == \"function\" && !d) return t(e);\n const b = l ? { locale: l } : void 0;\n return Array.isArray(e) ? `${ut(e[0], i, b)}${n && !e[1] ? \"\" : a}${e[1] ? ut(e[1], i, b) : \"\"}` : ut(e, i, b);\n}, Rt = (e) => {\n if (e) return null;\n throw new Error(Ga.prop(\"partial-range\"));\n}, ta = (e, t) => {\n if (t) return e();\n throw new Error(Ga.prop(\"range\"));\n}, Fa = (e) => Array.isArray(e) ? ra(e[0]) && (e[1] ? ra(e[1]) : !0) : e ? ra(e) : !1, Pl = (e, t) => Te(t ?? G(), {\n hours: +e.hours || 0,\n minutes: +e.minutes || 0,\n seconds: +e.seconds || 0\n}), Ta = (e, t, l, a) => {\n if (!e) return !0;\n if (a) {\n const n = l === \"max\" ? Kt(e, t) : _t(e, t), i = { seconds: 0, milliseconds: 0 };\n return n || Ot(Te(e, i), Te(t, i));\n }\n return l === \"max\" ? e.getTime() <= t.getTime() : e.getTime() >= t.getTime();\n}, Sa = (e, t, l) => e ? Pl(e, t) : G(l ?? t), dn = (e, t, l, a, n) => {\n if (Array.isArray(a)) {\n const d = Sa(e, a[0], t), b = Sa(e, a[1], t);\n return Ta(a[0], d, l, !!t) && Ta(a[1], b, l, !!t) && n;\n }\n const i = Sa(e, a, t);\n return Ta(a, i, l, !!t) && n;\n}, Pa = (e) => Te(G(), St(e)), Rl = (e, t) => e instanceof Map ? Array.from(e.values()).filter((l) => pe(G(l)) === t).map((l) => De(l)) : [], Yn = (e, t, l) => typeof e == \"function\" ? e({ month: t, year: l }) : !!e.months.find((a) => a.month === t && a.year === l), qa = (e, t) => typeof e == \"function\" ? e(t) : e.years.includes(t), In = (e) => ut(e, \"yyyy-MM-dd\"), Ht = Qt({\n menuFocused: !1,\n shiftKeyInMenu: !1\n}), Nn = () => {\n const e = (a) => {\n Ht.menuFocused = a;\n }, t = (a) => {\n Ht.shiftKeyInMenu !== a && (Ht.shiftKeyInMenu = a);\n };\n return {\n control: J(() => ({ shiftKeyInMenu: Ht.shiftKeyInMenu, menuFocused: Ht.menuFocused })),\n setMenuFocused: e,\n setShiftKey: t\n };\n}, Se = Qt({\n monthYear: [],\n calendar: [],\n time: [],\n actionRow: [],\n selectionGrid: [],\n timePicker: {\n 0: [],\n 1: []\n },\n monthPicker: []\n}), Ra = ne(null), aa = ne(!1), Ca = ne(!1), Oa = ne(!1), _a = ne(!1), ze = ne(0), _e = ne(0), bt = () => {\n const e = J(() => aa.value ? [...Se.selectionGrid, Se.actionRow].filter((f) => f.length) : Ca.value ? [\n ...Se.timePicker[0],\n ...Se.timePicker[1],\n _a.value ? [] : [Ra.value],\n Se.actionRow\n ].filter((f) => f.length) : Oa.value ? [...Se.monthPicker, Se.actionRow] : [Se.monthYear, ...Se.calendar, Se.time, Se.actionRow].filter((f) => f.length)), t = (f) => {\n ze.value = f ? ze.value + 1 : ze.value - 1;\n let B = null;\n e.value[_e.value] && (B = e.value[_e.value][ze.value]), !B && e.value[_e.value + (f ? 1 : -1)] ? (_e.value = _e.value + (f ? 1 : -1), ze.value = f ? 0 : e.value[_e.value].length - 1) : B || (ze.value = f ? ze.value - 1 : ze.value + 1);\n }, l = (f) => {\n if (_e.value === 0 && !f || _e.value === e.value.length && f) return;\n _e.value = f ? _e.value + 1 : _e.value - 1, e.value[_e.value] ? e.value[_e.value] && !e.value[_e.value][ze.value] && ze.value !== 0 && (ze.value = e.value[_e.value].length - 1) : _e.value = f ? _e.value - 1 : _e.value + 1;\n }, a = (f) => {\n let B = null;\n e.value[_e.value] && (B = e.value[_e.value][ze.value]), B ? B.focus({ preventScroll: !aa.value }) : ze.value = f ? ze.value - 1 : ze.value + 1;\n }, n = () => {\n t(!0), a(!0);\n }, i = () => {\n t(!1), a(!1);\n }, d = () => {\n l(!1), a(!0);\n }, b = () => {\n l(!0), a(!0);\n }, c = (f, B) => {\n Se[B] = f;\n }, L = (f, B) => {\n Se[B] = f;\n }, v = () => {\n ze.value = 0, _e.value = 0;\n };\n return {\n buildMatrix: c,\n buildMultiLevelMatrix: L,\n setTimePickerBackRef: (f) => {\n Ra.value = f;\n },\n setSelectionGrid: (f) => {\n aa.value = f, v(), f || (Se.selectionGrid = []);\n },\n setTimePicker: (f, B = !1) => {\n Ca.value = f, _a.value = B, v(), f || (Se.timePicker[0] = [], Se.timePicker[1] = []);\n },\n setTimePickerElements: (f, B = 0) => {\n Se.timePicker[B] = f;\n },\n arrowRight: n,\n arrowLeft: i,\n arrowUp: d,\n arrowDown: b,\n clearArrowNav: () => {\n Se.monthYear = [], Se.calendar = [], Se.time = [], Se.actionRow = [], Se.selectionGrid = [], Se.timePicker[0] = [], Se.timePicker[1] = [], aa.value = !1, Ca.value = !1, _a.value = !1, Oa.value = !1, v(), Ra.value = null;\n },\n setMonthPicker: (f) => {\n Oa.value = f, v();\n },\n refSets: Se\n // exposed for testing\n };\n}, cn = (e) => ({\n menuAppearTop: \"dp-menu-appear-top\",\n menuAppearBottom: \"dp-menu-appear-bottom\",\n open: \"dp-slide-down\",\n close: \"dp-slide-up\",\n next: \"calendar-next\",\n previous: \"calendar-prev\",\n vNext: \"dp-slide-up\",\n vPrevious: \"dp-slide-down\",\n ...e ?? {}\n}), Cl = (e) => ({\n toggleOverlay: \"Toggle overlay\",\n menu: \"Datepicker menu\",\n input: \"Datepicker input\",\n openTimePicker: \"Open time picker\",\n closeTimePicker: \"Close time Picker\",\n incrementValue: (t) => `Increment ${t}`,\n decrementValue: (t) => `Decrement ${t}`,\n openTpOverlay: (t) => `Open ${t} overlay`,\n amPmButton: \"Switch AM/PM mode\",\n openYearsOverlay: \"Open years overlay\",\n openMonthsOverlay: \"Open months overlay\",\n nextMonth: \"Next month\",\n prevMonth: \"Previous month\",\n nextYear: \"Next year\",\n prevYear: \"Previous year\",\n day: void 0,\n weekDay: void 0,\n clearInput: \"Clear value\",\n calendarIcon: \"Calendar icon\",\n timePicker: \"Time picker\",\n monthPicker: (t) => `Month picker${t ? \" overlay\" : \"\"}`,\n yearPicker: (t) => `Year picker${t ? \" overlay\" : \"\"}`,\n timeOverlay: (t) => `${t} overlay`,\n ...e ?? {}\n}), fn = (e) => e ? typeof e == \"boolean\" ? e ? 2 : 0 : +e >= 2 ? +e : 2 : 0, Ol = (e) => {\n const t = typeof e == \"object\" && e, l = {\n static: !0,\n solo: !1\n };\n if (!e) return { ...l, count: fn(!1) };\n const a = t ? e : {}, n = t ? a.count ?? !0 : e, i = fn(n);\n return Object.assign(l, a, { count: i });\n}, _l = (e, t, l) => e || (typeof l == \"string\" ? l : t), Bl = (e) => typeof e == \"boolean\" ? e ? cn({}) : !1 : cn(e), Yl = (e) => {\n const t = {\n enterSubmit: !0,\n tabSubmit: !0,\n openMenu: \"open\",\n selectOnFocus: !1,\n rangeSeparator: \" - \"\n };\n return typeof e == \"object\" ? { ...t, ...e ?? {}, enabled: !0 } : { ...t, enabled: e };\n}, Il = (e) => ({\n months: [],\n years: [],\n times: { hours: [], minutes: [], seconds: [] },\n ...e ?? {}\n}), Nl = (e) => ({\n showSelect: !0,\n showCancel: !0,\n showNow: !1,\n showPreview: !0,\n ...e ?? {}\n}), El = (e) => {\n const t = { input: !1 };\n return typeof e == \"object\" ? { ...t, ...e ?? {}, enabled: !0 } : {\n enabled: e,\n ...t\n };\n}, Fl = (e) => ({ ...{\n allowStopPropagation: !0,\n closeOnScroll: !1,\n modeHeight: 255,\n allowPreventDefault: !1,\n closeOnClearValue: !0,\n closeOnAutoApply: !0,\n noSwipe: !1,\n keepActionRow: !1,\n onClickOutside: void 0,\n tabOutClosesMenu: !0,\n arrowLeft: void 0,\n keepViewOnOffsetClick: !1,\n timeArrowHoldThreshold: 0,\n shadowDom: !1\n}, ...e ?? {} }), Ll = (e) => {\n const t = {\n dates: Array.isArray(e) ? e.map((l) => G(l)) : [],\n years: [],\n months: [],\n quarters: [],\n weeks: [],\n weekdays: [],\n options: { highlightDisabled: !1 }\n };\n return typeof e == \"function\" ? e : { ...t, ...e ?? {} };\n}, zl = (e) => typeof e == \"object\" ? {\n type: (e == null ? void 0 : e.type) ?? \"local\",\n hideOnOffsetDates: (e == null ? void 0 : e.hideOnOffsetDates) ?? !1\n} : {\n type: e,\n hideOnOffsetDates: !1\n}, Hl = (e) => {\n const t = {\n noDisabledRange: !1,\n showLastInRange: !0,\n minMaxRawRange: !1,\n partialRange: !0,\n disableTimeRangeValidation: !1,\n maxRange: void 0,\n minRange: void 0,\n autoRange: void 0,\n fixedStart: !1,\n fixedEnd: !1\n };\n return typeof e == \"object\" ? { enabled: !0, ...t, ...e } : {\n enabled: e,\n ...t\n };\n}, Ul = (e) => e ? typeof e == \"string\" ? {\n timezone: e,\n exactMatch: !1,\n dateInTz: void 0,\n emitTimezone: void 0,\n convertModel: !0\n} : {\n timezone: e.timezone,\n exactMatch: e.exactMatch ?? !1,\n dateInTz: e.dateInTz ?? void 0,\n emitTimezone: e.emitTimezone ?? void 0,\n convertModel: e.convertModel ?? !0\n} : { timezone: void 0, exactMatch: !1, emitTimezone: void 0 }, Ba = (e, t, l) => new Map(\n e.map((a) => {\n const n = ja(a, t, l);\n return [Qa(n), n];\n })\n), Vl = (e, t) => e.length ? new Map(\n e.map((l) => {\n const a = ja(l.date, t);\n return [Qa(a), l];\n })\n) : null, Wl = (e) => {\n var t;\n return {\n minDate: Na(e.minDate, e.timezone, e.isSpecific),\n maxDate: Na(e.maxDate, e.timezone, e.isSpecific),\n disabledDates: $a(e.disabledDates) ? Ba(e.disabledDates, e.timezone, e.isSpecific) : e.disabledDates,\n allowedDates: $a(e.allowedDates) ? Ba(e.allowedDates, e.timezone, e.isSpecific) : null,\n highlight: typeof e.highlight == \"object\" && $a((t = e.highlight) == null ? void 0 : t.dates) ? Ba(e.highlight.dates, e.timezone) : e.highlight,\n markers: Vl(e.markers, e.timezone)\n };\n}, jl = (e) => typeof e == \"boolean\" ? { enabled: e, dragSelect: !0, limit: null } : {\n enabled: !!e,\n limit: e.limit ? +e.limit : null,\n dragSelect: e.dragSelect ?? !0\n}, Kl = (e) => ({\n ...Object.fromEntries(\n Object.keys(e).map((l) => {\n const a = l, n = e[a], i = typeof e[a] == \"string\" ? { [n]: !0 } : Object.fromEntries(n.map((d) => [d, !0]));\n return [l, i];\n })\n )\n}), Ce = (e) => {\n const t = () => {\n const oe = e.enableSeconds ? \":ss\" : \"\", ee = e.enableMinutes ? \":mm\" : \"\";\n return e.is24 ? `HH${ee}${oe}` : `hh${ee}${oe} aa`;\n }, l = () => {\n var oe;\n return e.format ? e.format : e.monthPicker ? \"MM/yyyy\" : e.timePicker ? t() : e.weekPicker ? `${((oe = U.value) == null ? void 0 : oe.type) === \"iso\" ? \"RR\" : \"ww\"}-yyyy` : e.yearPicker ? \"yyyy\" : e.quarterPicker ? \"QQQ/yyyy\" : e.enableTimePicker ? `MM/dd/yyyy, ${t()}` : \"MM/dd/yyyy\";\n }, a = (oe) => On(oe, e.enableSeconds), n = () => Q.value.enabled ? e.startTime && Array.isArray(e.startTime) ? [a(e.startTime[0]), a(e.startTime[1])] : null : e.startTime && !Array.isArray(e.startTime) ? a(e.startTime) : null, i = J(() => Ol(e.multiCalendars)), d = J(() => n()), b = J(() => Cl(e.ariaLabels)), c = J(() => Il(e.filters)), L = J(() => Bl(e.transitions)), v = J(() => Nl(e.actionRow)), _ = J(\n () => _l(e.previewFormat, e.format, l())\n ), h = J(() => Yl(e.textInput)), C = J(() => El(e.inline)), H = J(() => Fl(e.config)), E = J(() => Ll(e.highlight)), U = J(() => zl(e.weekNumbers)), f = J(() => Ul(e.timezone)), B = J(() => jl(e.multiDates)), P = J(\n () => Wl({\n minDate: e.minDate,\n maxDate: e.maxDate,\n disabledDates: e.disabledDates,\n allowedDates: e.allowedDates,\n highlight: E.value,\n markers: e.markers,\n timezone: f.value,\n isSpecific: e.monthPicker || e.yearPicker || e.quarterPicker\n })\n ), Q = J(() => Hl(e.range)), ae = J(() => Kl(e.ui));\n return {\n defaultedTransitions: L,\n defaultedMultiCalendars: i,\n defaultedStartTime: d,\n defaultedAriaLabels: b,\n defaultedFilters: c,\n defaultedActionRow: v,\n defaultedPreviewFormat: _,\n defaultedTextInput: h,\n defaultedInline: C,\n defaultedConfig: H,\n defaultedHighlight: E,\n defaultedWeekNumbers: U,\n defaultedRange: Q,\n propDates: P,\n defaultedTz: f,\n defaultedMultiDates: B,\n defaultedUI: ae,\n getDefaultPattern: l,\n getDefaultStartTime: n\n };\n}, Gl = (e, t, l) => {\n const a = ne(), { defaultedTextInput: n, defaultedRange: i, defaultedTz: d, defaultedMultiDates: b, getDefaultPattern: c } = Ce(t), L = ne(\"\"), v = Vt(t, \"format\"), _ = Vt(t, \"formatLocale\");\n at(\n a,\n () => {\n typeof t.onInternalModelChange == \"function\" && e(\"internal-model-change\", a.value, M(!0));\n },\n { deep: !0 }\n ), at(i, (u, le) => {\n u.enabled !== le.enabled && (a.value = null);\n }), at(v, () => {\n X();\n });\n const h = (u) => d.value.timezone && d.value.convertModel ? qe(u, d.value.timezone) : u, C = (u) => {\n if (d.value.timezone && d.value.convertModel) {\n const le = vl(d.value.timezone);\n return nl(u, le);\n }\n return u;\n }, H = (u, le, me = !1) => Bn(\n u,\n t.format,\n t.formatLocale,\n n.value.rangeSeparator,\n t.modelAuto,\n le ?? c(),\n me\n ), E = (u) => u ? t.modelType ? p(u) : {\n hours: ft(u),\n minutes: ht(u),\n seconds: t.enableSeconds ? Bt(u) : 0\n } : null, U = (u) => t.modelType ? p(u) : { month: De(u), year: pe(u) }, f = (u) => Array.isArray(u) ? b.value.enabled ? u.map((le) => B(le, st(G(), le))) : ta(\n () => [\n st(G(), u[0]),\n u[1] ? st(G(), u[1]) : Rt(i.value.partialRange)\n ],\n i.value.enabled\n ) : st(G(), +u), B = (u, le) => (typeof u == \"string\" || typeof u == \"number\") && t.modelType ? A(u) : le, P = (u) => Array.isArray(u) ? [\n B(\n u[0],\n gt(null, +u[0].hours, +u[0].minutes, u[0].seconds)\n ),\n B(\n u[1],\n gt(null, +u[1].hours, +u[1].minutes, u[1].seconds)\n )\n ] : B(u, gt(null, u.hours, u.minutes, u.seconds)), Q = (u) => {\n const le = Te(G(), { date: 1 });\n return Array.isArray(u) ? b.value.enabled ? u.map((me) => B(me, dt(le, +me.month, +me.year))) : ta(\n () => [\n B(u[0], dt(le, +u[0].month, +u[0].year)),\n B(\n u[1],\n u[1] ? dt(le, +u[1].month, +u[1].year) : Rt(i.value.partialRange)\n )\n ],\n i.value.enabled\n ) : B(u, dt(le, +u.month, +u.year));\n }, ae = (u) => {\n if (Array.isArray(u))\n return u.map((le) => A(le));\n throw new Error(Ga.dateArr(\"multi-dates\"));\n }, oe = (u) => {\n if (Array.isArray(u) && i.value.enabled) {\n const le = u[0], me = u[1];\n return [\n G(Array.isArray(le) ? le[0] : null),\n Array.isArray(me) && me.length ? G(me[0]) : null\n ];\n }\n return G(u[0]);\n }, ee = (u) => t.modelAuto ? Array.isArray(u) ? [A(u[0]), A(u[1])] : t.autoApply ? [A(u)] : [A(u), null] : Array.isArray(u) ? ta(\n () => u[1] ? [\n A(u[0]),\n u[1] ? A(u[1]) : Rt(i.value.partialRange)\n ] : [A(u[0])],\n i.value.enabled\n ) : A(u), S = () => {\n Array.isArray(a.value) && i.value.enabled && a.value.length === 1 && a.value.push(Rt(i.value.partialRange));\n }, x = () => {\n const u = a.value;\n return [\n p(u[0]),\n u[1] ? p(u[1]) : Rt(i.value.partialRange)\n ];\n }, Y = () => a.value[1] ? x() : p(Ye(a.value[0])), q = () => (a.value || []).map((u) => p(u)), de = (u = !1) => (u || S(), t.modelAuto ? Y() : b.value.enabled ? q() : Array.isArray(a.value) ? ta(() => x(), i.value.enabled) : p(Ye(a.value))), ve = (u) => !u || Array.isArray(u) && !u.length ? null : t.timePicker ? P(Ye(u)) : t.monthPicker ? Q(Ye(u)) : t.yearPicker ? f(Ye(u)) : b.value.enabled ? ae(Ye(u)) : t.weekPicker ? oe(Ye(u)) : ee(Ye(u)), y = (u) => {\n const le = ve(u);\n Fa(Ye(le)) ? (a.value = Ye(le), X()) : (a.value = null, L.value = \"\");\n }, z = () => {\n const u = (le) => ut(le, n.value.format);\n return `${u(a.value[0])} ${n.value.rangeSeparator} ${a.value[1] ? u(a.value[1]) : \"\"}`;\n }, te = () => l.value && a.value ? Array.isArray(a.value) ? z() : ut(a.value, n.value.format) : H(a.value), g = () => a.value ? b.value.enabled ? a.value.map((u) => H(u)).join(\"; \") : n.value.enabled && typeof n.value.format == \"string\" ? te() : H(a.value) : \"\", X = () => {\n !t.format || typeof t.format == \"string\" || n.value.enabled && typeof n.value.format == \"string\" ? L.value = g() : L.value = t.format(a.value);\n }, A = (u) => {\n if (t.utc) {\n const le = new Date(u);\n return t.utc === \"preserve\" ? new Date(le.getTime() + le.getTimezoneOffset() * 6e4) : le;\n }\n return t.modelType ? ml.includes(t.modelType) ? h(new Date(u)) : t.modelType === \"format\" && (typeof t.format == \"string\" || !t.format) ? h(\n Ia(u, c(), /* @__PURE__ */ new Date(), { locale: _.value })\n ) : h(\n Ia(u, t.modelType, /* @__PURE__ */ new Date(), { locale: _.value })\n ) : h(new Date(u));\n }, p = (u) => u ? t.utc ? $l(u, t.utc === \"preserve\", t.enableSeconds) : t.modelType ? t.modelType === \"timestamp\" ? +C(u) : t.modelType === \"iso\" ? C(u).toISOString() : t.modelType === \"format\" && (typeof t.format == \"string\" || !t.format) ? H(C(u)) : H(C(u), t.modelType, !0) : C(u) : \"\", se = (u, le = !1, me = !1) => {\n if (me) return u;\n if (e(\"update:model-value\", u), d.value.emitTimezone && le) {\n const $ = Array.isArray(u) ? u.map((ge) => qe(Ye(ge), d.value.emitTimezone)) : qe(Ye(u), d.value.emitTimezone);\n e(\"update:model-timezone-value\", $);\n }\n }, I = (u) => Array.isArray(a.value) ? b.value.enabled ? a.value.map((le) => u(le)) : [\n u(a.value[0]),\n a.value[1] ? u(a.value[1]) : Rt(i.value.partialRange)\n ] : u(Ye(a.value)), D = () => {\n if (Array.isArray(a.value)) {\n const u = it(a.value[0], t.weekStart), le = a.value[1] ? it(a.value[1], t.weekStart) : [];\n return [u.map((me) => G(me)), le.map((me) => G(me))];\n }\n return it(a.value, t.weekStart).map((u) => G(u));\n }, V = (u, le) => se(Ye(I(u)), !1, le), s = (u) => {\n const le = D();\n return u ? le : e(\"update:model-value\", D());\n }, M = (u = !1) => (u || X(), t.monthPicker ? V(U, u) : t.timePicker ? V(E, u) : t.yearPicker ? V(pe, u) : t.weekPicker ? s(u) : se(de(u), !0, u));\n return {\n inputValue: L,\n internalModelValue: a,\n checkBeforeEmit: () => a.value ? i.value.enabled ? i.value.partialRange ? a.value.length >= 1 : a.value.length === 2 : !!a.value : !1,\n parseExternalModelValue: y,\n formatInputValue: X,\n emitModelValue: M\n };\n}, Ql = (e, t) => {\n const { defaultedFilters: l, propDates: a } = Ce(e), { validateMonthYearInRange: n } = kt(e), i = (v, _) => {\n let h = v;\n return l.value.months.includes(De(h)) ? (h = _ ? At(v, 1) : jt(v, 1), i(h, _)) : h;\n }, d = (v, _) => {\n let h = v;\n return l.value.years.includes(pe(h)) ? (h = _ ? bn(v, 1) : kn(v, 1), d(h, _)) : h;\n }, b = (v, _ = !1) => {\n const h = Te(G(), { month: e.month, year: e.year });\n let C = v ? At(h, 1) : jt(h, 1);\n e.disableYearSelect && (C = st(C, e.year));\n let H = De(C), E = pe(C);\n l.value.months.includes(H) && (C = i(C, v), H = De(C), E = pe(C)), l.value.years.includes(E) && (C = d(C, v), E = pe(C)), n(H, E, v, e.preventMinMaxNavigation) && c(H, E, _);\n }, c = (v, _, h) => {\n t(\"update-month-year\", { month: v, year: _, fromNav: h });\n }, L = J(() => (v) => _n(\n Te(G(), { month: e.month, year: e.year }),\n a.value.maxDate,\n a.value.minDate,\n e.preventMinMaxNavigation,\n v\n ));\n return { handleMonthYearChange: b, isDisabled: L, updateMonthYear: c };\n}, ca = {\n multiCalendars: { type: [Boolean, Number, String, Object], default: void 0 },\n modelValue: { type: [String, Date, Array, Object, Number], default: null },\n modelType: { type: String, default: null },\n position: { type: String, default: \"center\" },\n dark: { type: Boolean, default: !1 },\n format: {\n type: [String, Function],\n default: () => null\n },\n autoPosition: { type: Boolean, default: !0 },\n altPosition: { type: Function, default: null },\n transitions: { type: [Boolean, Object], default: !0 },\n formatLocale: { type: Object, default: null },\n utc: { type: [Boolean, String], default: !1 },\n ariaLabels: { type: Object, default: () => ({}) },\n offset: { type: [Number, String], default: 10 },\n hideNavigation: { type: Array, default: () => [] },\n timezone: { type: [String, Object], default: null },\n vertical: { type: Boolean, default: !1 },\n disableMonthYearSelect: { type: Boolean, default: !1 },\n disableYearSelect: { type: Boolean, default: !1 },\n dayClass: {\n type: Function,\n default: null\n },\n yearRange: { type: Array, default: () => [1900, 2100] },\n enableTimePicker: { type: Boolean, default: !0 },\n autoApply: { type: Boolean, default: !1 },\n disabledDates: { type: [Array, Function], default: () => [] },\n monthNameFormat: { type: String, default: \"short\" },\n startDate: { type: [Date, String], default: null },\n startTime: { type: [Object, Array], default: null },\n hideOffsetDates: { type: Boolean, default: !1 },\n noToday: { type: Boolean, default: !1 },\n disabledWeekDays: { type: Array, default: () => [] },\n allowedDates: { type: Array, default: null },\n nowButtonLabel: { type: String, default: \"Now\" },\n markers: { type: Array, default: () => [] },\n escClose: { type: Boolean, default: !0 },\n spaceConfirm: { type: Boolean, default: !0 },\n monthChangeOnArrows: { type: Boolean, default: !0 },\n presetDates: { type: Array, default: () => [] },\n flow: { type: Array, default: () => [] },\n partialFlow: { type: Boolean, default: !1 },\n preventMinMaxNavigation: { type: Boolean, default: !1 },\n reverseYears: { type: Boolean, default: !1 },\n weekPicker: { type: Boolean, default: !1 },\n filters: { type: Object, default: () => ({}) },\n arrowNavigation: { type: Boolean, default: !1 },\n highlight: {\n type: [Function, Object],\n default: null\n },\n teleport: { type: [Boolean, String, Object], default: null },\n teleportCenter: { type: Boolean, default: !1 },\n locale: { type: String, default: \"en-Us\" },\n weekNumName: { type: String, default: \"W\" },\n weekStart: { type: [Number, String], default: 1 },\n weekNumbers: {\n type: [String, Function, Object],\n default: null\n },\n monthChangeOnScroll: { type: [Boolean, String], default: !0 },\n dayNames: {\n type: [Function, Array],\n default: null\n },\n monthPicker: { type: Boolean, default: !1 },\n customProps: { type: Object, default: null },\n yearPicker: { type: Boolean, default: !1 },\n modelAuto: { type: Boolean, default: !1 },\n selectText: { type: String, default: \"Select\" },\n cancelText: { type: String, default: \"Cancel\" },\n previewFormat: {\n type: [String, Function],\n default: () => \"\"\n },\n multiDates: { type: [Object, Boolean], default: !1 },\n ignoreTimeValidation: { type: Boolean, default: !1 },\n minDate: { type: [Date, String], default: null },\n maxDate: { type: [Date, String], default: null },\n minTime: { type: Object, default: null },\n maxTime: { type: Object, default: null },\n name: { type: String, default: null },\n placeholder: { type: String, default: \"\" },\n hideInputIcon: { type: Boolean, default: !1 },\n clearable: { type: Boolean, default: !0 },\n state: { type: Boolean, default: null },\n required: { type: Boolean, default: !1 },\n autocomplete: { type: String, default: \"off\" },\n timePicker: { type: Boolean, default: !1 },\n enableSeconds: { type: Boolean, default: !1 },\n is24: { type: Boolean, default: !0 },\n noHoursOverlay: { type: Boolean, default: !1 },\n noMinutesOverlay: { type: Boolean, default: !1 },\n noSecondsOverlay: { type: Boolean, default: !1 },\n hoursGridIncrement: { type: [String, Number], default: 1 },\n minutesGridIncrement: { type: [String, Number], default: 5 },\n secondsGridIncrement: { type: [String, Number], default: 5 },\n hoursIncrement: { type: [Number, String], default: 1 },\n minutesIncrement: { type: [Number, String], default: 1 },\n secondsIncrement: { type: [Number, String], default: 1 },\n range: { type: [Boolean, Object], default: !1 },\n uid: { type: String, default: null },\n disabled: { type: Boolean, default: !1 },\n readonly: { type: Boolean, default: !1 },\n inline: { type: [Boolean, Object], default: !1 },\n textInput: { type: [Boolean, Object], default: !1 },\n sixWeeks: { type: [Boolean, String], default: !1 },\n actionRow: { type: Object, default: () => ({}) },\n focusStartDate: { type: Boolean, default: !1 },\n disabledTimes: { type: [Function, Array], default: void 0 },\n timePickerInline: { type: Boolean, default: !1 },\n calendar: { type: Function, default: null },\n config: { type: Object, default: void 0 },\n quarterPicker: { type: Boolean, default: !1 },\n yearFirst: { type: Boolean, default: !1 },\n loading: { type: Boolean, default: !1 },\n onInternalModelChange: { type: [Function, Object], default: null },\n enableMinutes: { type: Boolean, default: !0 },\n ui: { type: Object, default: () => ({}) }\n}, rt = {\n ...ca,\n shadow: { type: Boolean, default: !1 },\n flowStep: { type: Number, default: 0 },\n internalModelValue: { type: [Date, Array], default: null },\n noOverlayFocus: { type: Boolean, default: !1 },\n collapse: { type: Boolean, default: !1 },\n menuWrapRef: { type: Object, default: null },\n getInputRect: { type: Function, default: () => ({}) },\n isTextInputDate: { type: Boolean, default: !1 }\n}, ql = [\"title\"], Xl = [\"disabled\"], Jl = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"ActionRow\",\n props: {\n menuMount: { type: Boolean, default: !1 },\n calendarWidth: { type: Number, default: 0 },\n ...rt\n },\n emits: [\"close-picker\", \"select-date\", \"select-now\", \"invalid-select\"],\n setup(e, { emit: t }) {\n const l = t, a = e, {\n defaultedActionRow: n,\n defaultedPreviewFormat: i,\n defaultedMultiCalendars: d,\n defaultedTextInput: b,\n defaultedInline: c,\n defaultedRange: L,\n defaultedMultiDates: v\n } = Ce(a), { isTimeValid: _, isMonthValid: h } = kt(a), { buildMatrix: C } = bt(), H = ne(null), E = ne(null), U = ne(!1), f = ne({}), B = ne(null), P = ne(null);\n We(() => {\n a.arrowNavigation && C([Ie(H), Ie(E)], \"actionRow\"), Q(), window.addEventListener(\"resize\", Q);\n }), ua(() => {\n window.removeEventListener(\"resize\", Q);\n });\n const Q = () => {\n U.value = !1, setTimeout(() => {\n var te, g;\n const y = (te = B.value) == null ? void 0 : te.getBoundingClientRect(), z = (g = P.value) == null ? void 0 : g.getBoundingClientRect();\n y && z && (f.value.maxWidth = `${z.width - y.width - 20}px`), U.value = !0;\n }, 0);\n }, ae = J(() => L.value.enabled && !L.value.partialRange && a.internalModelValue ? a.internalModelValue.length === 2 : !0), oe = J(\n () => !_.value(a.internalModelValue) || !h.value(a.internalModelValue) || !ae.value\n ), ee = () => {\n const y = i.value;\n return a.timePicker || a.monthPicker, y(Ye(a.internalModelValue));\n }, S = () => {\n const y = a.internalModelValue;\n return d.value.count > 0 ? `${x(y[0])} - ${x(y[1])}` : [x(y[0]), x(y[1])];\n }, x = (y) => Bn(\n y,\n i.value,\n a.formatLocale,\n b.value.rangeSeparator,\n a.modelAuto,\n i.value\n ), Y = J(() => !a.internalModelValue || !a.menuMount ? \"\" : typeof i.value == \"string\" ? Array.isArray(a.internalModelValue) ? a.internalModelValue.length === 2 && a.internalModelValue[1] ? S() : v.value.enabled ? a.internalModelValue.map((y) => `${x(y)}`) : a.modelAuto ? `${x(a.internalModelValue[0])}` : `${x(a.internalModelValue[0])} -` : x(a.internalModelValue) : ee()), q = () => v.value.enabled ? \"; \" : \" - \", de = J(\n () => Array.isArray(Y.value) ? Y.value.join(q()) : Y.value\n ), ve = () => {\n _.value(a.internalModelValue) && h.value(a.internalModelValue) && ae.value ? l(\"select-date\") : l(\"invalid-select\");\n };\n return (y, z) => (T(), K(\"div\", {\n ref_key: \"actionRowRef\",\n ref: P,\n class: \"dp__action_row\"\n }, [\n y.$slots[\"action-row\"] ? ie(y.$slots, \"action-row\", Ne(Ee({ key: 0 }, {\n internalModelValue: y.internalModelValue,\n disabled: oe.value,\n selectDate: () => y.$emit(\"select-date\"),\n closePicker: () => y.$emit(\"close-picker\")\n }))) : (T(), K(be, { key: 1 }, [\n o(n).showPreview ? (T(), K(\"div\", {\n key: 0,\n class: \"dp__selection_preview\",\n title: de.value,\n style: tt(f.value)\n }, [\n y.$slots[\"action-preview\"] && U.value ? ie(y.$slots, \"action-preview\", {\n key: 0,\n value: y.internalModelValue\n }) : Z(\"\", !0),\n !y.$slots[\"action-preview\"] && U.value ? (T(), K(be, { key: 1 }, [\n ct(Ue(de.value), 1)\n ], 64)) : Z(\"\", !0)\n ], 12, ql)) : Z(\"\", !0),\n ye(\"div\", {\n ref_key: \"actionBtnContainer\",\n ref: B,\n class: \"dp__action_buttons\",\n \"data-dp-element\": \"action-row\"\n }, [\n y.$slots[\"action-buttons\"] ? ie(y.$slots, \"action-buttons\", {\n key: 0,\n value: y.internalModelValue\n }) : Z(\"\", !0),\n y.$slots[\"action-buttons\"] ? Z(\"\", !0) : (T(), K(be, { key: 1 }, [\n !o(c).enabled && o(n).showCancel ? (T(), K(\"button\", {\n key: 0,\n ref_key: \"cancelButtonRef\",\n ref: H,\n type: \"button\",\n class: \"dp__action_button dp__action_cancel\",\n onClick: z[0] || (z[0] = (te) => y.$emit(\"close-picker\")),\n onKeydown: z[1] || (z[1] = (te) => o(Ke)(te, () => y.$emit(\"close-picker\")))\n }, Ue(y.cancelText), 545)) : Z(\"\", !0),\n o(n).showNow ? (T(), K(\"button\", {\n key: 1,\n type: \"button\",\n class: \"dp__action_button dp__action_cancel\",\n onClick: z[2] || (z[2] = (te) => y.$emit(\"select-now\")),\n onKeydown: z[3] || (z[3] = (te) => o(Ke)(te, () => y.$emit(\"select-now\")))\n }, Ue(y.nowButtonLabel), 33)) : Z(\"\", !0),\n o(n).showSelect ? (T(), K(\"button\", {\n key: 2,\n ref_key: \"selectButtonRef\",\n ref: E,\n type: \"button\",\n class: \"dp__action_button dp__action_select\",\n disabled: oe.value,\n \"data-test\": \"select-button\",\n onKeydown: z[4] || (z[4] = (te) => o(Ke)(te, () => ve())),\n onClick: ve\n }, Ue(y.selectText), 41, Xl)) : Z(\"\", !0)\n ], 64))\n ], 512)\n ], 64))\n ], 512));\n }\n}), Zl = [\"role\", \"aria-label\", \"tabindex\"], xl = { class: \"dp__selection_grid_header\" }, er = [\"aria-selected\", \"aria-disabled\", \"data-test\", \"onClick\", \"onKeydown\", \"onMouseover\"], tr = [\"aria-label\"], qt = /* @__PURE__ */ Le({\n __name: \"SelectionOverlay\",\n props: {\n items: {},\n type: {},\n isLast: { type: Boolean },\n arrowNavigation: { type: Boolean },\n skipButtonRef: { type: Boolean },\n headerRefs: {},\n hideNavigation: {},\n escClose: { type: Boolean },\n useRelative: { type: Boolean },\n height: {},\n textInput: { type: [Boolean, Object] },\n config: {},\n noOverlayFocus: { type: Boolean },\n focusValue: {},\n menuWrapRef: {},\n ariaLabels: {},\n overlayLabel: {}\n },\n emits: [\"selected\", \"toggle\", \"reset-flow\", \"hover-value\"],\n setup(e, { expose: t, emit: l }) {\n const { setSelectionGrid: a, buildMultiLevelMatrix: n, setMonthPicker: i } = bt(), d = l, b = e, { defaultedAriaLabels: c, defaultedTextInput: L, defaultedConfig: v } = Ce(\n b\n ), { hideNavigationButtons: _ } = ma(), h = ne(!1), C = ne(null), H = ne(null), E = ne([]), U = ne(), f = ne(null), B = ne(0), P = ne(null);\n Kn(() => {\n C.value = null;\n }), We(() => {\n xe().then(() => q()), b.noOverlayFocus || ae(), Q(!0);\n }), ua(() => Q(!1));\n const Q = (I) => {\n var D;\n b.arrowNavigation && ((D = b.headerRefs) != null && D.length ? i(I) : a(I));\n }, ae = () => {\n var D;\n const I = Ie(H);\n I && (L.value.enabled || (C.value ? (D = C.value) == null || D.focus({ preventScroll: !0 }) : I.focus({ preventScroll: !0 })), h.value = I.clientHeight < I.scrollHeight);\n }, oe = J(\n () => ({\n dp__overlay: !0,\n \"dp--overlay-absolute\": !b.useRelative,\n \"dp--overlay-relative\": b.useRelative\n })\n ), ee = J(\n () => b.useRelative ? { height: `${b.height}px`, width: \"var(--dp-menu-min-width)\" } : void 0\n ), S = J(() => ({\n dp__overlay_col: !0\n })), x = J(\n () => ({\n dp__btn: !0,\n dp__button: !0,\n dp__overlay_action: !0,\n dp__over_action_scroll: h.value,\n dp__button_bottom: b.isLast\n })\n ), Y = J(() => {\n var I, D;\n return {\n dp__overlay_container: !0,\n dp__container_flex: ((I = b.items) == null ? void 0 : I.length) <= 6,\n dp__container_block: ((D = b.items) == null ? void 0 : D.length) > 6\n };\n });\n at(\n () => b.items,\n () => q(!1),\n { deep: !0 }\n );\n const q = (I = !0) => {\n xe().then(() => {\n const D = Ie(C), V = Ie(H), s = Ie(f), M = Ie(P), F = s ? s.getBoundingClientRect().height : 0;\n V && (V.getBoundingClientRect().height ? B.value = V.getBoundingClientRect().height - F : B.value = v.value.modeHeight - F), D && M && I && (M.scrollTop = D.offsetTop - M.offsetTop - (B.value / 2 - D.getBoundingClientRect().height) - F);\n });\n }, de = (I) => {\n I.disabled || d(\"selected\", I.value);\n }, ve = () => {\n d(\"toggle\"), d(\"reset-flow\");\n }, y = () => {\n b.escClose && ve();\n }, z = (I, D, V, s) => {\n I && ((D.active || D.value === b.focusValue) && (C.value = I), b.arrowNavigation && (Array.isArray(E.value[V]) ? E.value[V][s] = I : E.value[V] = [I], te()));\n }, te = () => {\n var D, V;\n const I = (D = b.headerRefs) != null && D.length ? [b.headerRefs].concat(E.value) : E.value.concat([b.skipButtonRef ? [] : [f.value]]);\n n(Ye(I), (V = b.headerRefs) != null && V.length ? \"monthPicker\" : \"selectionGrid\");\n }, g = (I) => {\n b.arrowNavigation || yt(I, v.value, !0);\n }, X = (I) => {\n U.value = I, d(\"hover-value\", I);\n }, A = () => {\n if (ve(), !b.isLast) {\n const I = Ea(b.menuWrapRef ?? null, \"action-row\");\n if (I) {\n const D = Tn(I);\n D == null || D.focus();\n }\n }\n }, p = (I) => {\n switch (I.key) {\n case Pe.esc:\n return y();\n case Pe.arrowLeft:\n return g(I);\n case Pe.arrowRight:\n return g(I);\n case Pe.arrowUp:\n return g(I);\n case Pe.arrowDown:\n return g(I);\n default:\n return;\n }\n }, se = (I) => {\n if (I.key === Pe.enter) return ve();\n if (I.key === Pe.tab) return A();\n };\n return t({ focusGrid: ae }), (I, D) => {\n var V;\n return T(), K(\"div\", {\n ref_key: \"gridWrapRef\",\n ref: H,\n class: we(oe.value),\n style: tt(ee.value),\n role: I.useRelative ? void 0 : \"dialog\",\n \"aria-label\": I.overlayLabel,\n tabindex: I.useRelative ? void 0 : \"0\",\n onKeydown: p,\n onClick: D[0] || (D[0] = Wt(() => {\n }, [\"prevent\"]))\n }, [\n ye(\"div\", {\n ref_key: \"containerRef\",\n ref: P,\n class: we(Y.value),\n style: tt({ \"--dp-overlay-height\": `${B.value}px` }),\n role: \"grid\"\n }, [\n ye(\"div\", xl, [\n ie(I.$slots, \"header\")\n ]),\n I.$slots.overlay ? ie(I.$slots, \"overlay\", { key: 0 }) : (T(!0), K(be, { key: 1 }, Re(I.items, (s, M) => (T(), K(\"div\", {\n key: M,\n class: we([\"dp__overlay_row\", { dp__flex_row: I.items.length >= 3 }]),\n role: \"row\"\n }, [\n (T(!0), K(be, null, Re(s, (F, u) => (T(), K(\"div\", {\n key: F.value,\n ref_for: !0,\n ref: (le) => z(le, F, M, u),\n role: \"gridcell\",\n class: we(S.value),\n \"aria-selected\": F.active || void 0,\n \"aria-disabled\": F.disabled || void 0,\n tabindex: \"0\",\n \"data-test\": F.text,\n onClick: Wt((le) => de(F), [\"prevent\"]),\n onKeydown: (le) => o(Ke)(le, () => de(F), !0),\n onMouseover: (le) => X(F.value)\n }, [\n ye(\"div\", {\n class: we(F.className)\n }, [\n I.$slots.item ? ie(I.$slots, \"item\", {\n key: 0,\n item: F\n }) : Z(\"\", !0),\n I.$slots.item ? Z(\"\", !0) : (T(), K(be, { key: 1 }, [\n ct(Ue(F.text), 1)\n ], 64))\n ], 2)\n ], 42, er))), 128))\n ], 2))), 128))\n ], 6),\n I.$slots[\"button-icon\"] ? na((T(), K(\"button\", {\n key: 0,\n ref_key: \"toggleButton\",\n ref: f,\n type: \"button\",\n \"aria-label\": (V = o(c)) == null ? void 0 : V.toggleOverlay,\n class: we(x.value),\n tabindex: \"0\",\n onClick: ve,\n onKeydown: se\n }, [\n ie(I.$slots, \"button-icon\")\n ], 42, tr)), [\n [la, !o(_)(I.hideNavigation, I.type)]\n ]) : Z(\"\", !0)\n ], 46, Zl);\n };\n }\n}), fa = /* @__PURE__ */ Le({\n __name: \"InstanceWrap\",\n props: {\n multiCalendars: {},\n stretch: { type: Boolean },\n collapse: { type: Boolean }\n },\n setup(e) {\n const t = e, l = J(\n () => t.multiCalendars > 0 ? [...Array(t.multiCalendars).keys()] : [0]\n ), a = J(() => ({\n dp__instance_calendar: t.multiCalendars > 0\n }));\n return (n, i) => (T(), K(\"div\", {\n class: we({\n dp__menu_inner: !n.stretch,\n \"dp--menu--inner-stretched\": n.stretch,\n dp__flex_display: n.multiCalendars > 0,\n \"dp--flex-display-collapsed\": n.collapse\n })\n }, [\n (T(!0), K(be, null, Re(l.value, (d, b) => (T(), K(\"div\", {\n key: d,\n class: we(a.value)\n }, [\n ie(n.$slots, \"default\", {\n instance: d,\n index: b\n })\n ], 2))), 128))\n ], 2));\n }\n}), ar = [\"data-dp-element\", \"aria-label\", \"aria-disabled\"], Ut = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"ArrowBtn\",\n props: {\n ariaLabel: {},\n elName: {},\n disabled: { type: Boolean }\n },\n emits: [\"activate\", \"set-ref\"],\n setup(e, { emit: t }) {\n const l = t, a = ne(null);\n return We(() => l(\"set-ref\", a)), (n, i) => (T(), K(\"button\", {\n ref_key: \"elRef\",\n ref: a,\n type: \"button\",\n \"data-dp-element\": n.elName,\n class: \"dp__btn dp--arrow-btn-nav\",\n tabindex: \"0\",\n \"aria-label\": n.ariaLabel,\n \"aria-disabled\": n.disabled || void 0,\n onClick: i[0] || (i[0] = (d) => n.$emit(\"activate\")),\n onKeydown: i[1] || (i[1] = (d) => o(Ke)(d, () => n.$emit(\"activate\"), !0))\n }, [\n ye(\"span\", {\n class: we([\"dp__inner_nav\", { dp__inner_nav_disabled: n.disabled }])\n }, [\n ie(n.$slots, \"default\")\n ], 2)\n ], 40, ar));\n }\n}), nr = [\"aria-label\", \"data-test\"], En = /* @__PURE__ */ Le({\n __name: \"YearModePicker\",\n props: {\n ...rt,\n showYearPicker: { type: Boolean, default: !1 },\n items: { type: Array, default: () => [] },\n instance: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n isDisabled: { type: Function, default: () => !1 }\n },\n emits: [\"toggle-year-picker\", \"year-select\", \"handle-year\"],\n setup(e, { emit: t }) {\n const l = t, a = e, { showRightIcon: n, showLeftIcon: i } = ma(), { defaultedConfig: d, defaultedMultiCalendars: b, defaultedAriaLabels: c, defaultedTransitions: L, defaultedUI: v } = Ce(a), { showTransition: _, transitionName: h } = Xt(L), C = ne(!1), H = (f = !1, B) => {\n C.value = !C.value, l(\"toggle-year-picker\", { flow: f, show: B });\n }, E = (f) => {\n C.value = !1, l(\"year-select\", f);\n }, U = (f = !1) => {\n l(\"handle-year\", f);\n };\n return (f, B) => {\n var P, Q, ae, oe, ee;\n return T(), K(be, null, [\n ye(\"div\", {\n class: we([\"dp--year-mode-picker\", { \"dp--hidden-el\": C.value }])\n }, [\n o(i)(o(b), e.instance) ? (T(), $e(Ut, {\n key: 0,\n ref: \"mpPrevIconRef\",\n \"aria-label\": (P = o(c)) == null ? void 0 : P.prevYear,\n disabled: e.isDisabled(!1),\n class: we((Q = o(v)) == null ? void 0 : Q.navBtnPrev),\n onActivate: B[0] || (B[0] = (S) => U(!1))\n }, {\n default: ke(() => [\n f.$slots[\"arrow-left\"] ? ie(f.$slots, \"arrow-left\", { key: 0 }) : Z(\"\", !0),\n f.$slots[\"arrow-left\"] ? Z(\"\", !0) : (T(), $e(o(za), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Z(\"\", !0),\n ye(\"button\", {\n ref: \"mpYearButtonRef\",\n class: \"dp__btn dp--year-select\",\n type: \"button\",\n \"aria-label\": `${e.year}-${(ae = o(c)) == null ? void 0 : ae.openYearsOverlay}`,\n \"data-test\": `year-mode-btn-${e.instance}`,\n onClick: B[1] || (B[1] = () => H(!1)),\n onKeydown: B[2] || (B[2] = Gn(() => H(!1), [\"enter\"]))\n }, [\n f.$slots.year ? ie(f.$slots, \"year\", {\n key: 0,\n year: e.year\n }) : Z(\"\", !0),\n f.$slots.year ? Z(\"\", !0) : (T(), K(be, { key: 1 }, [\n ct(Ue(e.year), 1)\n ], 64))\n ], 40, nr),\n o(n)(o(b), e.instance) ? (T(), $e(Ut, {\n key: 1,\n ref: \"mpNextIconRef\",\n \"aria-label\": (oe = o(c)) == null ? void 0 : oe.nextYear,\n disabled: e.isDisabled(!0),\n class: we((ee = o(v)) == null ? void 0 : ee.navBtnNext),\n onActivate: B[3] || (B[3] = (S) => U(!0))\n }, {\n default: ke(() => [\n f.$slots[\"arrow-right\"] ? ie(f.$slots, \"arrow-right\", { key: 0 }) : Z(\"\", !0),\n f.$slots[\"arrow-right\"] ? Z(\"\", !0) : (T(), $e(o(Ha), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Z(\"\", !0)\n ], 2),\n Ze(Nt, {\n name: o(h)(e.showYearPicker),\n css: o(_)\n }, {\n default: ke(() => {\n var S, x;\n return [\n e.showYearPicker ? (T(), $e(qt, {\n key: 0,\n items: e.items,\n \"text-input\": f.textInput,\n \"esc-close\": f.escClose,\n config: f.config,\n \"is-last\": f.autoApply && !o(d).keepActionRow,\n \"hide-navigation\": f.hideNavigation,\n \"aria-labels\": f.ariaLabels,\n \"overlay-label\": (x = (S = o(c)) == null ? void 0 : S.yearPicker) == null ? void 0 : x.call(S, !0),\n type: \"year\",\n onToggle: H,\n onSelected: B[4] || (B[4] = (Y) => E(Y))\n }, Ve({\n \"button-icon\": ke(() => [\n f.$slots[\"calendar-icon\"] ? ie(f.$slots, \"calendar-icon\", { key: 0 }) : Z(\"\", !0),\n f.$slots[\"calendar-icon\"] ? Z(\"\", !0) : (T(), $e(o(Et), { key: 1 }))\n ]),\n _: 2\n }, [\n f.$slots[\"year-overlay-value\"] ? {\n name: \"item\",\n fn: ke(({ item: Y }) => [\n ie(f.$slots, \"year-overlay-value\", {\n text: Y.text,\n value: Y.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"text-input\", \"esc-close\", \"config\", \"is-last\", \"hide-navigation\", \"aria-labels\", \"overlay-label\"])) : Z(\"\", !0)\n ];\n }),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 64);\n };\n }\n}), Xa = (e, t, l) => {\n if (t.value && Array.isArray(t.value))\n if (t.value.some((a) => Me(e, a))) {\n const a = t.value.filter((n) => !Me(n, e));\n t.value = a.length ? a : null;\n } else (l && +l > t.value.length || !l) && t.value.push(e);\n else\n t.value = [e];\n}, Ja = (e, t, l) => {\n let a = e.value ? e.value.slice() : [];\n return a.length === 2 && a[1] !== null && (a = []), a.length ? Oe(t, a[0]) ? (a.unshift(t), l(\"range-start\", a[0]), l(\"range-start\", a[1])) : (a[1] = t, l(\"range-end\", t)) : (a = [t], l(\"range-start\", t)), a;\n}, va = (e, t, l, a) => {\n e && (e[0] && e[1] && l && t(\"auto-apply\"), e[0] && !e[1] && a && l && t(\"auto-apply\"));\n}, Fn = (e) => {\n Array.isArray(e.value) && e.value.length <= 2 && e.range ? e.modelValue.value = e.value.map((t) => qe(G(t), e.timezone)) : Array.isArray(e.value) || (e.modelValue.value = qe(G(e.value), e.timezone));\n}, Ln = (e, t, l, a) => Array.isArray(t.value) && (t.value.length === 2 || t.value.length === 1 && a.value.partialRange) ? a.value.fixedStart && (Be(e, t.value[0]) || Me(e, t.value[0])) ? [t.value[0], e] : a.value.fixedEnd && (Oe(e, t.value[1]) || Me(e, t.value[1])) ? [e, t.value[1]] : (l(\"invalid-fixed-range\", e), t.value) : [], zn = ({\n multiCalendars: e,\n range: t,\n highlight: l,\n propDates: a,\n calendars: n,\n modelValue: i,\n props: d,\n filters: b,\n year: c,\n month: L,\n emit: v\n}) => {\n const _ = J(() => Ka(d.yearRange, d.locale, d.reverseYears)), h = ne([!1]), C = J(() => (Y, q) => {\n const de = Te(lt(/* @__PURE__ */ new Date()), {\n month: L.value(Y),\n year: c.value(Y)\n }), ve = q ? wn(de) : oa(de);\n return _n(\n ve,\n a.value.maxDate,\n a.value.minDate,\n d.preventMinMaxNavigation,\n q\n );\n }), H = () => Array.isArray(i.value) && e.value.solo && i.value[1], E = () => {\n for (let Y = 0; Y < e.value.count; Y++)\n if (Y === 0)\n n.value[Y] = n.value[0];\n else if (Y === e.value.count - 1 && H())\n n.value[Y] = {\n month: De(i.value[1]),\n year: pe(i.value[1])\n };\n else {\n const q = Te(G(), n.value[Y - 1]);\n n.value[Y] = { month: De(q), year: pe(bn(q, 1)) };\n }\n }, U = (Y) => {\n if (!Y) return E();\n const q = Te(G(), n.value[Y]);\n return n.value[0].year = pe(kn(q, e.value.count - 1)), E();\n }, f = (Y, q) => {\n const de = ll(q, Y);\n return t.value.showLastInRange && de > 1 ? q : Y;\n }, B = (Y) => d.focusStartDate || e.value.solo ? Y[0] : Y[1] ? f(Y[0], Y[1]) : Y[0], P = () => {\n if (i.value) {\n const Y = Array.isArray(i.value) ? B(i.value) : i.value;\n n.value[0] = { month: De(Y), year: pe(Y) };\n }\n }, Q = () => {\n P(), e.value.count && E();\n };\n at(i, (Y, q) => {\n d.isTextInputDate && JSON.stringify(Y ?? {}) !== JSON.stringify(q ?? {}) && Q();\n }), We(() => {\n Q();\n });\n const ae = (Y, q) => {\n n.value[q].year = Y, v(\"update-month-year\", { instance: q, year: Y, month: n.value[q].month }), e.value.count && !e.value.solo && U(q);\n }, oe = J(() => (Y) => Yt(_.value, (q) => {\n var z;\n const de = c.value(Y) === q.value, ve = Gt(\n q.value,\n It(a.value.minDate),\n It(a.value.maxDate)\n ) || ((z = b.value.years) == null ? void 0 : z.includes(c.value(Y))), y = qa(l.value, q.value);\n return { active: de, disabled: ve, highlighted: y };\n })), ee = (Y, q) => {\n ae(Y, q), x(q);\n }, S = (Y, q = !1) => {\n if (!C.value(Y, q)) {\n const de = q ? c.value(Y) + 1 : c.value(Y) - 1;\n ae(de, Y);\n }\n }, x = (Y, q = !1, de) => {\n q || v(\"reset-flow\"), de !== void 0 ? h.value[Y] = de : h.value[Y] = !h.value[Y], h.value[Y] ? v(\"overlay-toggle\", { open: !0, overlay: He.year }) : (v(\"overlay-closed\"), v(\"overlay-toggle\", { open: !1, overlay: He.year }));\n };\n return {\n isDisabled: C,\n groupedYears: oe,\n showYearPicker: h,\n selectYear: ae,\n toggleYearPicker: x,\n handleYearSelect: ee,\n handleYear: S\n };\n}, lr = (e, t) => {\n const {\n defaultedMultiCalendars: l,\n defaultedAriaLabels: a,\n defaultedTransitions: n,\n defaultedConfig: i,\n defaultedRange: d,\n defaultedHighlight: b,\n propDates: c,\n defaultedTz: L,\n defaultedFilters: v,\n defaultedMultiDates: _\n } = Ce(e), h = () => {\n e.isTextInputDate && Q(pe(G(e.startDate)), 0);\n }, { modelValue: C, year: H, month: E, calendars: U } = Jt(e, t, h), f = J(() => $n(e.formatLocale, e.locale, e.monthNameFormat)), B = ne(null), { checkMinMaxRange: P } = kt(e), {\n selectYear: Q,\n groupedYears: ae,\n showYearPicker: oe,\n toggleYearPicker: ee,\n handleYearSelect: S,\n handleYear: x,\n isDisabled: Y\n } = zn({\n modelValue: C,\n multiCalendars: l,\n range: d,\n highlight: b,\n calendars: U,\n year: H,\n propDates: c,\n month: E,\n filters: v,\n props: e,\n emit: t\n });\n We(() => {\n e.startDate && (C.value && e.focusStartDate || !C.value) && Q(pe(G(e.startDate)), 0);\n });\n const q = (M) => M ? { month: De(M), year: pe(M) } : { month: null, year: null }, de = () => C.value ? Array.isArray(C.value) ? C.value.map((M) => q(M)) : q(C.value) : q(), ve = (M, F) => {\n const u = U.value[M], le = de();\n return Array.isArray(le) ? le.some((me) => me.year === (u == null ? void 0 : u.year) && me.month === F) : (u == null ? void 0 : u.year) === le.year && F === le.month;\n }, y = (M, F, u) => {\n var me, $;\n const le = de();\n return Array.isArray(le) ? H.value(F) === ((me = le[u]) == null ? void 0 : me.year) && M === (($ = le[u]) == null ? void 0 : $.month) : !1;\n }, z = (M, F) => {\n if (d.value.enabled) {\n const u = de();\n if (Array.isArray(C.value) && Array.isArray(u)) {\n const le = y(M, F, 0) || y(M, F, 1), me = dt(lt(G()), M, H.value(F));\n return da(C.value, B.value, me) && !le;\n }\n return !1;\n }\n return !1;\n }, te = J(() => (M) => Yt(f.value, (F) => {\n var ge;\n const u = ve(M, F.value), le = Gt(\n F.value,\n Pn(H.value(M), c.value.minDate),\n Rn(H.value(M), c.value.maxDate)\n ) || Rl(c.value.disabledDates, H.value(M)).includes(F.value) || ((ge = v.value.months) == null ? void 0 : ge.includes(F.value)), me = z(F.value, M), $ = Yn(b.value, F.value, H.value(M));\n return { active: u, disabled: le, isBetween: me, highlighted: $ };\n })), g = (M, F) => dt(lt(G()), M, H.value(F)), X = (M, F) => {\n const u = C.value ? C.value : lt(/* @__PURE__ */ new Date());\n C.value = dt(u, M, H.value(F)), t(\"auto-apply\"), t(\"update-flow-step\");\n }, A = (M, F) => {\n const u = g(M, F);\n d.value.fixedEnd || d.value.fixedStart ? C.value = Ln(u, C, t, d) : C.value ? P(u, C.value) && (C.value = Ja(C, g(M, F), t)) : C.value = [g(M, F)], xe().then(() => {\n va(C.value, t, e.autoApply, e.modelAuto);\n });\n }, p = (M, F) => {\n Xa(g(M, F), C, _.value.limit), t(\"auto-apply\", !0);\n }, se = (M, F) => (U.value[F].month = M, D(F, U.value[F].year, M), _.value.enabled ? p(M, F) : d.value.enabled ? A(M, F) : X(M, F)), I = (M, F) => {\n Q(M, F), D(F, M, null);\n }, D = (M, F, u) => {\n let le = u;\n if (!le && le !== 0) {\n const me = de();\n le = Array.isArray(me) ? me[M].month : me.month;\n }\n t(\"update-month-year\", { instance: M, year: F, month: le });\n };\n return {\n groupedMonths: te,\n groupedYears: ae,\n year: H,\n isDisabled: Y,\n defaultedMultiCalendars: l,\n defaultedAriaLabels: a,\n defaultedTransitions: n,\n defaultedConfig: i,\n showYearPicker: oe,\n modelValue: C,\n presetDate: (M, F) => {\n Fn({\n value: M,\n modelValue: C,\n range: d.value.enabled,\n timezone: F ? void 0 : L.value.timezone\n }), t(\"auto-apply\");\n },\n setHoverDate: (M, F) => {\n B.value = g(M, F);\n },\n selectMonth: se,\n selectYear: I,\n toggleYearPicker: ee,\n handleYearSelect: S,\n handleYear: x,\n getModelMonthYear: de\n };\n}, rr = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"MonthPicker\",\n props: {\n ...rt\n },\n emits: [\n \"update:internal-model-value\",\n \"overlay-closed\",\n \"reset-flow\",\n \"range-start\",\n \"range-end\",\n \"auto-apply\",\n \"update-month-year\",\n \"update-flow-step\",\n \"mount\",\n \"invalid-fixed-range\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = Pt(), i = Je(n, \"yearMode\"), d = e;\n We(() => {\n d.shadow || a(\"mount\", null);\n });\n const {\n groupedMonths: b,\n groupedYears: c,\n year: L,\n isDisabled: v,\n defaultedMultiCalendars: _,\n defaultedConfig: h,\n showYearPicker: C,\n modelValue: H,\n presetDate: E,\n setHoverDate: U,\n selectMonth: f,\n selectYear: B,\n toggleYearPicker: P,\n handleYearSelect: Q,\n handleYear: ae,\n getModelMonthYear: oe\n } = lr(d, a);\n return t({ getSidebarProps: () => ({\n modelValue: H,\n year: L,\n getModelMonthYear: oe,\n selectMonth: f,\n selectYear: B,\n handleYear: ae\n }), presetDate: E, toggleYearPicker: (S) => P(0, S) }), (S, x) => (T(), $e(fa, {\n \"multi-calendars\": o(_).count,\n collapse: S.collapse,\n stretch: \"\"\n }, {\n default: ke(({ instance: Y }) => [\n S.$slots[\"top-extra\"] ? ie(S.$slots, \"top-extra\", {\n key: 0,\n value: S.internalModelValue\n }) : Z(\"\", !0),\n S.$slots[\"month-year\"] ? ie(S.$slots, \"month-year\", Ne(Ee({ key: 1 }, {\n year: o(L),\n months: o(b)(Y),\n years: o(c)(Y),\n selectMonth: o(f),\n selectYear: o(B),\n instance: Y\n }))) : (T(), $e(qt, {\n key: 2,\n items: o(b)(Y),\n \"arrow-navigation\": S.arrowNavigation,\n \"is-last\": S.autoApply && !o(h).keepActionRow,\n \"esc-close\": S.escClose,\n height: o(h).modeHeight,\n config: S.config,\n \"no-overlay-focus\": !!(S.noOverlayFocus || S.textInput),\n \"use-relative\": \"\",\n type: \"month\",\n onSelected: (q) => o(f)(q, Y),\n onHoverValue: (q) => o(U)(q, Y)\n }, Ve({\n header: ke(() => [\n Ze(En, Ee(S.$props, {\n items: o(c)(Y),\n instance: Y,\n \"show-year-picker\": o(C)[Y],\n year: o(L)(Y),\n \"is-disabled\": (q) => o(v)(Y, q),\n onHandleYear: (q) => o(ae)(Y, q),\n onYearSelect: (q) => o(Q)(q, Y),\n onToggleYearPicker: (q) => o(P)(Y, q == null ? void 0 : q.flow, q == null ? void 0 : q.show)\n }), Ve({ _: 2 }, [\n Re(o(i), (q, de) => ({\n name: q,\n fn: ke((ve) => [\n ie(S.$slots, q, Ne(Qe(ve)))\n ])\n }))\n ]), 1040, [\"items\", \"instance\", \"show-year-picker\", \"year\", \"is-disabled\", \"onHandleYear\", \"onYearSelect\", \"onToggleYearPicker\"])\n ]),\n _: 2\n }, [\n S.$slots[\"month-overlay-value\"] ? {\n name: \"item\",\n fn: ke(({ item: q }) => [\n ie(S.$slots, \"month-overlay-value\", {\n text: q.text,\n value: q.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"arrow-navigation\", \"is-last\", \"esc-close\", \"height\", \"config\", \"no-overlay-focus\", \"onSelected\", \"onHoverValue\"]))\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\"]));\n }\n}), or = (e, t) => {\n const l = () => {\n e.isTextInputDate && (v.value = pe(G(e.startDate)));\n }, { modelValue: a } = Jt(e, t, l), n = ne(null), { defaultedHighlight: i, defaultedMultiDates: d, defaultedFilters: b, defaultedRange: c, propDates: L } = Ce(e), v = ne();\n We(() => {\n e.startDate && (a.value && e.focusStartDate || !a.value) && (v.value = pe(G(e.startDate)));\n });\n const _ = (f) => Array.isArray(a.value) ? a.value.some((B) => pe(B) === f) : a.value ? pe(a.value) === f : !1, h = (f) => c.value.enabled && Array.isArray(a.value) ? da(a.value, n.value, H(f)) : !1, C = J(() => Yt(Ka(e.yearRange, e.locale, e.reverseYears), (f) => {\n const B = _(f.value), P = Gt(\n f.value,\n It(L.value.minDate),\n It(L.value.maxDate)\n ) || b.value.years.includes(f.value), Q = h(f.value) && !B, ae = qa(i.value, f.value);\n return { active: B, disabled: P, isBetween: Q, highlighted: ae };\n })), H = (f) => st(lt(oa(/* @__PURE__ */ new Date())), f);\n return {\n groupedYears: C,\n modelValue: a,\n focusYear: v,\n setHoverValue: (f) => {\n n.value = st(lt(/* @__PURE__ */ new Date()), f);\n },\n selectYear: (f) => {\n var B;\n if (t(\"update-month-year\", { instance: 0, year: f }), d.value.enabled)\n return a.value ? Array.isArray(a.value) && (((B = a.value) == null ? void 0 : B.map((Q) => pe(Q))).includes(f) ? a.value = a.value.filter((Q) => pe(Q) !== f) : a.value.push(st(Ge(G()), f))) : a.value = [st(Ge(oa(G())), f)], t(\"auto-apply\", !0);\n c.value.enabled ? (a.value = Ja(a, H(f), t), xe().then(() => {\n va(a.value, t, e.autoApply, e.modelAuto);\n })) : (a.value = H(f), t(\"auto-apply\"));\n }\n };\n}, sr = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"YearPicker\",\n props: {\n ...rt\n },\n emits: [\n \"update:internal-model-value\",\n \"reset-flow\",\n \"range-start\",\n \"range-end\",\n \"auto-apply\",\n \"update-month-year\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, { groupedYears: i, modelValue: d, focusYear: b, selectYear: c, setHoverValue: L } = or(n, a), { defaultedConfig: v } = Ce(n);\n return t({ getSidebarProps: () => ({\n modelValue: d,\n selectYear: c\n }) }), (h, C) => (T(), K(\"div\", null, [\n h.$slots[\"top-extra\"] ? ie(h.$slots, \"top-extra\", {\n key: 0,\n value: h.internalModelValue\n }) : Z(\"\", !0),\n h.$slots[\"month-year\"] ? ie(h.$slots, \"month-year\", Ne(Ee({ key: 1 }, {\n years: o(i),\n selectYear: o(c)\n }))) : (T(), $e(qt, {\n key: 2,\n items: o(i),\n \"is-last\": h.autoApply && !o(v).keepActionRow,\n height: o(v).modeHeight,\n config: h.config,\n \"no-overlay-focus\": !!(h.noOverlayFocus || h.textInput),\n \"focus-value\": o(b),\n type: \"year\",\n \"use-relative\": \"\",\n onSelected: o(c),\n onHoverValue: o(L)\n }, Ve({ _: 2 }, [\n h.$slots[\"year-overlay-value\"] ? {\n name: \"item\",\n fn: ke(({ item: H }) => [\n ie(h.$slots, \"year-overlay-value\", {\n text: H.text,\n value: H.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"is-last\", \"height\", \"config\", \"no-overlay-focus\", \"focus-value\", \"onSelected\", \"onHoverValue\"]))\n ]));\n }\n}), ur = {\n key: 0,\n class: \"dp__time_input\"\n}, ir = [\"data-test\", \"aria-label\", \"onKeydown\", \"onClick\", \"onMousedown\"], dr = [\"aria-label\", \"disabled\", \"data-test\", \"onKeydown\", \"onClick\"], cr = [\"data-test\", \"aria-label\", \"onKeydown\", \"onClick\", \"onMousedown\"], fr = { key: 0 }, vr = [\"aria-label\"], mr = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimeInput\",\n props: {\n hours: { type: Number, default: 0 },\n minutes: { type: Number, default: 0 },\n seconds: { type: Number, default: 0 },\n closeTimePickerBtn: { type: Object, default: null },\n order: { type: Number, default: 0 },\n disabledTimesConfig: { type: Function, default: null },\n validateTime: { type: Function, default: () => !1 },\n ...rt\n },\n emits: [\n \"set-hours\",\n \"set-minutes\",\n \"update:hours\",\n \"update:minutes\",\n \"update:seconds\",\n \"reset-flow\",\n \"mounted\",\n \"overlay-closed\",\n \"overlay-opened\",\n \"am-pm-change\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, { setTimePickerElements: i, setTimePickerBackRef: d } = bt(), { defaultedAriaLabels: b, defaultedTransitions: c, defaultedFilters: L, defaultedConfig: v, defaultedRange: _ } = Ce(n), { transitionName: h, showTransition: C } = Xt(c), H = Qt({\n hours: !1,\n minutes: !1,\n seconds: !1\n }), E = ne(\"AM\"), U = ne(null), f = ne([]), B = ne(), P = ne(!1);\n We(() => {\n a(\"mounted\");\n });\n const Q = (r) => Te(/* @__PURE__ */ new Date(), {\n hours: r.hours,\n minutes: r.minutes,\n seconds: n.enableSeconds ? r.seconds : 0,\n milliseconds: 0\n }), ae = J(\n () => (r) => g(r, n[r]) || ee(r, n[r])\n ), oe = J(() => ({ hours: n.hours, minutes: n.minutes, seconds: n.seconds })), ee = (r, R) => _.value.enabled && !_.value.disableTimeRangeValidation ? !n.validateTime(r, R) : !1, S = (r, R) => {\n if (_.value.enabled && !_.value.disableTimeRangeValidation) {\n const O = R ? +n[`${r}Increment`] : -+n[`${r}Increment`], W = n[r] + O;\n return !n.validateTime(r, W);\n }\n return !1;\n }, x = J(() => (r) => !I(+n[r] + +n[`${r}Increment`], r) || S(r, !0)), Y = J(() => (r) => !I(+n[r] - +n[`${r}Increment`], r) || S(r, !1)), q = (r, R) => Dn(Te(G(), r), R), de = (r, R) => rl(Te(G(), r), R), ve = J(\n () => ({\n dp__time_col: !0,\n dp__time_col_block: !n.timePickerInline,\n dp__time_col_reg_block: !n.enableSeconds && n.is24 && !n.timePickerInline,\n dp__time_col_reg_inline: !n.enableSeconds && n.is24 && n.timePickerInline,\n dp__time_col_reg_with_button: !n.enableSeconds && !n.is24,\n dp__time_col_sec: n.enableSeconds && n.is24,\n dp__time_col_sec_with_button: n.enableSeconds && !n.is24\n })\n ), y = J(() => {\n const r = [{ type: \"hours\" }];\n return n.enableMinutes && r.push({ type: \"\", separator: !0 }, {\n type: \"minutes\"\n }), n.enableSeconds && r.push({ type: \"\", separator: !0 }, {\n type: \"seconds\"\n }), r;\n }), z = J(() => y.value.filter((r) => !r.separator)), te = J(() => (r) => {\n if (r === \"hours\") {\n const R = u(+n.hours);\n return { text: R < 10 ? `0${R}` : `${R}`, value: R };\n }\n return { text: n[r] < 10 ? `0${n[r]}` : `${n[r]}`, value: n[r] };\n }), g = (r, R) => {\n var W;\n if (!n.disabledTimesConfig) return !1;\n const O = n.disabledTimesConfig(n.order, r === \"hours\" ? R : void 0);\n return O[r] ? !!((W = O[r]) != null && W.includes(R)) : !0;\n }, X = (r, R) => R !== \"hours\" || E.value === \"AM\" ? r : r + 12, A = (r) => {\n const R = n.is24 ? 24 : 12, O = r === \"hours\" ? R : 60, W = +n[`${r}GridIncrement`], ue = r === \"hours\" && !n.is24 ? W : 0, w = [];\n for (let N = ue; N < O; N += W)\n w.push({ value: n.is24 ? N : X(N, r), text: N < 10 ? `0${N}` : `${N}` });\n return r === \"hours\" && !n.is24 && w.unshift({ value: E.value === \"PM\" ? 12 : 0, text: \"12\" }), Yt(w, (N) => ({ active: !1, disabled: L.value.times[r].includes(N.value) || !I(N.value, r) || g(r, N.value) || ee(r, N.value) }));\n }, p = (r) => r >= 0 ? r : 59, se = (r) => r >= 0 ? r : 23, I = (r, R) => {\n const O = n.minTime ? Q(Aa(n.minTime)) : null, W = n.maxTime ? Q(Aa(n.maxTime)) : null, ue = Q(\n Aa(\n oe.value,\n R,\n R === \"minutes\" || R === \"seconds\" ? p(r) : se(r)\n )\n );\n return O && W ? (Kt(ue, W) || Ot(ue, W)) && (_t(ue, O) || Ot(ue, O)) : O ? _t(ue, O) || Ot(ue, O) : W ? Kt(ue, W) || Ot(ue, W) : !0;\n }, D = (r) => n[`no${r[0].toUpperCase() + r.slice(1)}Overlay`], V = (r) => {\n D(r) || (H[r] = !H[r], H[r] ? (P.value = !0, a(\"overlay-opened\", r)) : (P.value = !1, a(\"overlay-closed\", r)));\n }, s = (r) => r === \"hours\" ? ft : r === \"minutes\" ? ht : Bt, M = () => {\n B.value && clearTimeout(B.value);\n }, F = (r, R = !0, O) => {\n const W = R ? q : de, ue = R ? +n[`${r}Increment`] : -+n[`${r}Increment`];\n I(+n[r] + ue, r) && a(\n `update:${r}`,\n s(r)(W({ [r]: +n[r] }, { [r]: +n[`${r}Increment`] }))\n ), !(O != null && O.keyboard) && v.value.timeArrowHoldThreshold && (B.value = setTimeout(() => {\n F(r, R);\n }, v.value.timeArrowHoldThreshold));\n }, u = (r) => n.is24 ? r : (r >= 12 ? E.value = \"PM\" : E.value = \"AM\", gl(r)), le = () => {\n E.value === \"PM\" ? (E.value = \"AM\", a(\"update:hours\", n.hours - 12)) : (E.value = \"PM\", a(\"update:hours\", n.hours + 12)), a(\"am-pm-change\", E.value);\n }, me = (r) => {\n H[r] = !0;\n }, $ = (r, R, O) => {\n if (r && n.arrowNavigation) {\n Array.isArray(f.value[R]) ? f.value[R][O] = r : f.value[R] = [r];\n const W = f.value.reduce(\n (ue, w) => w.map((N, ce) => [...ue[ce] || [], w[ce]]),\n []\n );\n d(n.closeTimePickerBtn), U.value && (W[1] = W[1].concat(U.value)), i(W, n.order);\n }\n }, ge = (r, R) => (V(r), a(`update:${r}`, R));\n return t({ openChildCmp: me }), (r, R) => {\n var O;\n return r.disabled ? Z(\"\", !0) : (T(), K(\"div\", ur, [\n (T(!0), K(be, null, Re(y.value, (W, ue) => {\n var w, N, ce;\n return T(), K(\"div\", {\n key: ue,\n class: we(ve.value)\n }, [\n W.separator ? (T(), K(be, { key: 0 }, [\n P.value ? Z(\"\", !0) : (T(), K(be, { key: 0 }, [\n ct(\":\")\n ], 64))\n ], 64)) : (T(), K(be, { key: 1 }, [\n ye(\"button\", {\n ref_for: !0,\n ref: (he) => $(he, ue, 0),\n type: \"button\",\n class: we({\n dp__btn: !0,\n dp__inc_dec_button: !r.timePickerInline,\n dp__inc_dec_button_inline: r.timePickerInline,\n dp__tp_inline_btn_top: r.timePickerInline,\n dp__inc_dec_button_disabled: x.value(W.type),\n \"dp--hidden-el\": P.value\n }),\n \"data-test\": `${W.type}-time-inc-btn-${n.order}`,\n \"aria-label\": (w = o(b)) == null ? void 0 : w.incrementValue(W.type),\n tabindex: \"0\",\n onKeydown: (he) => o(Ke)(he, () => F(W.type, !0, { keyboard: !0 }), !0),\n onClick: (he) => o(v).timeArrowHoldThreshold ? void 0 : F(W.type, !0),\n onMousedown: (he) => o(v).timeArrowHoldThreshold ? F(W.type, !0) : void 0,\n onMouseup: M\n }, [\n n.timePickerInline ? (T(), K(be, { key: 1 }, [\n r.$slots[\"tp-inline-arrow-up\"] ? ie(r.$slots, \"tp-inline-arrow-up\", { key: 0 }) : (T(), K(be, { key: 1 }, [\n R[2] || (R[2] = ye(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_l\" }, null, -1)),\n R[3] || (R[3] = ye(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_r\" }, null, -1))\n ], 64))\n ], 64)) : (T(), K(be, { key: 0 }, [\n r.$slots[\"arrow-up\"] ? ie(r.$slots, \"arrow-up\", { key: 0 }) : Z(\"\", !0),\n r.$slots[\"arrow-up\"] ? Z(\"\", !0) : (T(), $e(o(Va), { key: 1 }))\n ], 64))\n ], 42, ir),\n ye(\"button\", {\n ref_for: !0,\n ref: (he) => $(he, ue, 1),\n type: \"button\",\n \"aria-label\": `${te.value(W.type).text}-${(N = o(b)) == null ? void 0 : N.openTpOverlay(W.type)}`,\n class: we({\n dp__time_display: !0,\n dp__time_display_block: !r.timePickerInline,\n dp__time_display_inline: r.timePickerInline,\n \"dp--time-invalid\": ae.value(W.type),\n \"dp--time-overlay-btn\": !ae.value(W.type),\n \"dp--hidden-el\": P.value\n }),\n disabled: D(W.type),\n tabindex: \"0\",\n \"data-test\": `${W.type}-toggle-overlay-btn-${n.order}`,\n onKeydown: (he) => o(Ke)(he, () => V(W.type), !0),\n onClick: (he) => V(W.type)\n }, [\n r.$slots[W.type] ? ie(r.$slots, W.type, {\n key: 0,\n text: te.value(W.type).text,\n value: te.value(W.type).value\n }) : Z(\"\", !0),\n r.$slots[W.type] ? Z(\"\", !0) : (T(), K(be, { key: 1 }, [\n ct(Ue(te.value(W.type).text), 1)\n ], 64))\n ], 42, dr),\n ye(\"button\", {\n ref_for: !0,\n ref: (he) => $(he, ue, 2),\n type: \"button\",\n class: we({\n dp__btn: !0,\n dp__inc_dec_button: !r.timePickerInline,\n dp__inc_dec_button_inline: r.timePickerInline,\n dp__tp_inline_btn_bottom: r.timePickerInline,\n dp__inc_dec_button_disabled: Y.value(W.type),\n \"dp--hidden-el\": P.value\n }),\n \"data-test\": `${W.type}-time-dec-btn-${n.order}`,\n \"aria-label\": (ce = o(b)) == null ? void 0 : ce.decrementValue(W.type),\n tabindex: \"0\",\n onKeydown: (he) => o(Ke)(he, () => F(W.type, !1, { keyboard: !0 }), !0),\n onClick: (he) => o(v).timeArrowHoldThreshold ? void 0 : F(W.type, !1),\n onMousedown: (he) => o(v).timeArrowHoldThreshold ? F(W.type, !1) : void 0,\n onMouseup: M\n }, [\n n.timePickerInline ? (T(), K(be, { key: 1 }, [\n r.$slots[\"tp-inline-arrow-down\"] ? ie(r.$slots, \"tp-inline-arrow-down\", { key: 0 }) : (T(), K(be, { key: 1 }, [\n R[4] || (R[4] = ye(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_l\" }, null, -1)),\n R[5] || (R[5] = ye(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_r\" }, null, -1))\n ], 64))\n ], 64)) : (T(), K(be, { key: 0 }, [\n r.$slots[\"arrow-down\"] ? ie(r.$slots, \"arrow-down\", { key: 0 }) : Z(\"\", !0),\n r.$slots[\"arrow-down\"] ? Z(\"\", !0) : (T(), $e(o(Wa), { key: 1 }))\n ], 64))\n ], 42, cr)\n ], 64))\n ], 2);\n }), 128)),\n r.is24 ? Z(\"\", !0) : (T(), K(\"div\", fr, [\n r.$slots[\"am-pm-button\"] ? ie(r.$slots, \"am-pm-button\", {\n key: 0,\n toggle: le,\n value: E.value\n }) : Z(\"\", !0),\n r.$slots[\"am-pm-button\"] ? Z(\"\", !0) : (T(), K(\"button\", {\n key: 1,\n ref_key: \"amPmButton\",\n ref: U,\n type: \"button\",\n class: \"dp__pm_am_button\",\n role: \"button\",\n \"aria-label\": (O = o(b)) == null ? void 0 : O.amPmButton,\n tabindex: \"0\",\n onClick: le,\n onKeydown: R[0] || (R[0] = (W) => o(Ke)(W, () => le(), !0))\n }, Ue(E.value), 41, vr))\n ])),\n (T(!0), K(be, null, Re(z.value, (W, ue) => (T(), $e(Nt, {\n key: ue,\n name: o(h)(H[W.type]),\n css: o(C)\n }, {\n default: ke(() => {\n var w, N;\n return [\n H[W.type] ? (T(), $e(qt, {\n key: 0,\n items: A(W.type),\n \"is-last\": r.autoApply && !o(v).keepActionRow,\n \"esc-close\": r.escClose,\n type: W.type,\n \"text-input\": r.textInput,\n config: r.config,\n \"arrow-navigation\": r.arrowNavigation,\n \"aria-labels\": r.ariaLabels,\n \"overlay-label\": (N = (w = o(b)).timeOverlay) == null ? void 0 : N.call(w, W.type),\n onSelected: (ce) => ge(W.type, ce),\n onToggle: (ce) => V(W.type),\n onResetFlow: R[1] || (R[1] = (ce) => r.$emit(\"reset-flow\"))\n }, Ve({\n \"button-icon\": ke(() => [\n r.$slots[\"clock-icon\"] ? ie(r.$slots, \"clock-icon\", { key: 0 }) : Z(\"\", !0),\n r.$slots[\"clock-icon\"] ? Z(\"\", !0) : (T(), $e(ia(r.timePickerInline ? o(Et) : o(Ua)), { key: 1 }))\n ]),\n _: 2\n }, [\n r.$slots[`${W.type}-overlay-value`] ? {\n name: \"item\",\n fn: ke(({ item: ce }) => [\n ie(r.$slots, `${W.type}-overlay-value`, {\n text: ce.text,\n value: ce.value\n })\n ]),\n key: \"0\"\n } : void 0,\n r.$slots[`${W.type}-overlay-header`] ? {\n name: \"header\",\n fn: ke(() => [\n ie(r.$slots, `${W.type}-overlay-header`, {\n toggle: () => V(W.type)\n })\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"items\", \"is-last\", \"esc-close\", \"type\", \"text-input\", \"config\", \"arrow-navigation\", \"aria-labels\", \"overlay-label\", \"onSelected\", \"onToggle\"])) : Z(\"\", !0)\n ];\n }),\n _: 2\n }, 1032, [\"name\", \"css\"]))), 128))\n ]));\n };\n }\n}), pr = { class: \"dp--tp-wrap\" }, yr = [\"aria-label\", \"tabindex\"], gr = [\"role\", \"aria-label\", \"tabindex\"], hr = [\"aria-label\"], Hn = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimePicker\",\n props: {\n hours: { type: [Number, Array], default: 0 },\n minutes: { type: [Number, Array], default: 0 },\n seconds: { type: [Number, Array], default: 0 },\n disabledTimesConfig: { type: Function, default: null },\n validateTime: {\n type: Function,\n default: () => !1\n },\n ...rt\n },\n emits: [\n \"update:hours\",\n \"update:minutes\",\n \"update:seconds\",\n \"mount\",\n \"reset-flow\",\n \"overlay-opened\",\n \"overlay-closed\",\n \"am-pm-change\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, { buildMatrix: i, setTimePicker: d } = bt(), b = Pt(), { defaultedTransitions: c, defaultedAriaLabels: L, defaultedTextInput: v, defaultedConfig: _, defaultedRange: h } = Ce(n), { transitionName: C, showTransition: H } = Xt(c), { hideNavigationButtons: E } = ma(), U = ne(null), f = ne(null), B = ne([]), P = ne(null), Q = ne(!1);\n We(() => {\n a(\"mount\"), !n.timePicker && n.arrowNavigation ? i([Ie(U.value)], \"time\") : d(!0, n.timePicker);\n });\n const ae = J(() => h.value.enabled && n.modelAuto ? An(n.internalModelValue) : !0), oe = ne(!1), ee = (A) => ({\n hours: Array.isArray(n.hours) ? n.hours[A] : n.hours,\n minutes: Array.isArray(n.minutes) ? n.minutes[A] : n.minutes,\n seconds: Array.isArray(n.seconds) ? n.seconds[A] : n.seconds\n }), S = J(() => {\n const A = [];\n if (h.value.enabled)\n for (let p = 0; p < 2; p++)\n A.push(ee(p));\n else\n A.push(ee(0));\n return A;\n }), x = (A, p = !1, se = \"\") => {\n p || a(\"reset-flow\"), oe.value = A, a(A ? \"overlay-opened\" : \"overlay-closed\", He.time), n.arrowNavigation && d(A), xe(() => {\n se !== \"\" && B.value[0] && B.value[0].openChildCmp(se);\n });\n }, Y = J(() => ({\n dp__btn: !0,\n dp__button: !0,\n dp__button_bottom: n.autoApply && !_.value.keepActionRow\n })), q = Je(b, \"timePicker\"), de = (A, p, se) => h.value.enabled ? p === 0 ? [A, S.value[1][se]] : [S.value[0][se], A] : A, ve = (A) => {\n a(\"update:hours\", A);\n }, y = (A) => {\n a(\"update:minutes\", A);\n }, z = (A) => {\n a(\"update:seconds\", A);\n }, te = () => {\n if (P.value && !v.value.enabled && !n.noOverlayFocus) {\n const A = Tn(P.value);\n A && A.focus({ preventScroll: !0 });\n }\n }, g = (A) => {\n Q.value = !1, a(\"overlay-closed\", A);\n }, X = (A) => {\n Q.value = !0, a(\"overlay-opened\", A);\n };\n return t({ toggleTimePicker: x }), (A, p) => {\n var se;\n return T(), K(\"div\", pr, [\n !A.timePicker && !A.timePickerInline ? na((T(), K(\"button\", {\n key: 0,\n ref_key: \"openTimePickerBtn\",\n ref: U,\n type: \"button\",\n class: we({ ...Y.value, \"dp--hidden-el\": oe.value }),\n \"aria-label\": (se = o(L)) == null ? void 0 : se.openTimePicker,\n tabindex: A.noOverlayFocus ? void 0 : 0,\n \"data-test\": \"open-time-picker-btn\",\n onKeydown: p[0] || (p[0] = (I) => o(Ke)(I, () => x(!0))),\n onClick: p[1] || (p[1] = (I) => x(!0))\n }, [\n A.$slots[\"clock-icon\"] ? ie(A.$slots, \"clock-icon\", { key: 0 }) : Z(\"\", !0),\n A.$slots[\"clock-icon\"] ? Z(\"\", !0) : (T(), $e(o(Ua), { key: 1 }))\n ], 42, yr)), [\n [la, !o(E)(A.hideNavigation, \"time\")]\n ]) : Z(\"\", !0),\n Ze(Nt, {\n name: o(C)(oe.value),\n css: o(H) && !A.timePickerInline\n }, {\n default: ke(() => {\n var I, D;\n return [\n oe.value || A.timePicker || A.timePickerInline ? (T(), K(\"div\", {\n key: 0,\n ref_key: \"overlayRef\",\n ref: P,\n role: A.timePickerInline ? void 0 : \"dialog\",\n class: we({\n dp__overlay: !A.timePickerInline,\n \"dp--overlay-absolute\": !n.timePicker && !A.timePickerInline,\n \"dp--overlay-relative\": n.timePicker\n }),\n style: tt(A.timePicker ? { height: `${o(_).modeHeight}px` } : void 0),\n \"aria-label\": (I = o(L)) == null ? void 0 : I.timePicker,\n tabindex: A.timePickerInline ? void 0 : 0\n }, [\n ye(\"div\", {\n class: we(\n A.timePickerInline ? \"dp__time_picker_inline_container\" : \"dp__overlay_container dp__container_flex dp__time_picker_overlay_container\"\n ),\n style: { display: \"flex\" }\n }, [\n A.$slots[\"time-picker-overlay\"] ? ie(A.$slots, \"time-picker-overlay\", {\n key: 0,\n hours: e.hours,\n minutes: e.minutes,\n seconds: e.seconds,\n setHours: ve,\n setMinutes: y,\n setSeconds: z\n }) : Z(\"\", !0),\n A.$slots[\"time-picker-overlay\"] ? Z(\"\", !0) : (T(), K(\"div\", {\n key: 1,\n class: we(A.timePickerInline ? \"dp__flex\" : \"dp__overlay_row dp__flex_row\")\n }, [\n (T(!0), K(be, null, Re(S.value, (V, s) => na((T(), $e(mr, Ee({\n key: s,\n ref_for: !0\n }, {\n ...A.$props,\n order: s,\n hours: V.hours,\n minutes: V.minutes,\n seconds: V.seconds,\n closeTimePickerBtn: f.value,\n disabledTimesConfig: e.disabledTimesConfig,\n disabled: s === 0 ? o(h).fixedStart : o(h).fixedEnd\n }, {\n ref_for: !0,\n ref_key: \"timeInputRefs\",\n ref: B,\n \"validate-time\": (M, F) => e.validateTime(M, de(F, s, M)),\n \"onUpdate:hours\": (M) => ve(de(M, s, \"hours\")),\n \"onUpdate:minutes\": (M) => y(de(M, s, \"minutes\")),\n \"onUpdate:seconds\": (M) => z(de(M, s, \"seconds\")),\n onMounted: te,\n onOverlayClosed: g,\n onOverlayOpened: X,\n onAmPmChange: p[2] || (p[2] = (M) => A.$emit(\"am-pm-change\", M))\n }), Ve({ _: 2 }, [\n Re(o(q), (M, F) => ({\n name: M,\n fn: ke((u) => [\n ie(A.$slots, M, Ee({ ref_for: !0 }, u))\n ])\n }))\n ]), 1040, [\"validate-time\", \"onUpdate:hours\", \"onUpdate:minutes\", \"onUpdate:seconds\"])), [\n [la, s === 0 ? !0 : ae.value]\n ])), 128))\n ], 2)),\n !A.timePicker && !A.timePickerInline ? na((T(), K(\"button\", {\n key: 2,\n ref_key: \"closeTimePickerBtn\",\n ref: f,\n type: \"button\",\n class: we({ ...Y.value, \"dp--hidden-el\": Q.value }),\n \"aria-label\": (D = o(L)) == null ? void 0 : D.closeTimePicker,\n tabindex: \"0\",\n onKeydown: p[3] || (p[3] = (V) => o(Ke)(V, () => x(!1))),\n onClick: p[4] || (p[4] = (V) => x(!1))\n }, [\n A.$slots[\"calendar-icon\"] ? ie(A.$slots, \"calendar-icon\", { key: 0 }) : Z(\"\", !0),\n A.$slots[\"calendar-icon\"] ? Z(\"\", !0) : (T(), $e(o(Et), { key: 1 }))\n ], 42, hr)), [\n [la, !o(E)(A.hideNavigation, \"time\")]\n ]) : Z(\"\", !0)\n ], 2)\n ], 14, gr)) : Z(\"\", !0)\n ];\n }),\n _: 3\n }, 8, [\"name\", \"css\"])\n ]);\n };\n }\n}), Un = (e, t, l, a) => {\n const { defaultedRange: n } = Ce(e), i = (P, Q) => Array.isArray(t[P]) ? t[P][Q] : t[P], d = (P) => e.enableSeconds ? Array.isArray(t.seconds) ? t.seconds[P] : t.seconds : 0, b = (P, Q) => P ? Q !== void 0 ? gt(P, i(\"hours\", Q), i(\"minutes\", Q), d(Q)) : gt(P, t.hours, t.minutes, d()) : yn(G(), d(Q)), c = (P, Q) => {\n t[P] = Q;\n }, L = J(() => e.modelAuto && n.value.enabled ? Array.isArray(l.value) ? l.value.length > 1 : !1 : n.value.enabled), v = (P, Q) => {\n const ae = Object.fromEntries(\n Object.keys(t).map((oe) => oe === P ? [oe, Q] : [oe, t[oe]].slice())\n );\n if (L.value && !n.value.disableTimeRangeValidation) {\n const oe = (S) => l.value ? gt(\n l.value[S],\n ae.hours[S],\n ae.minutes[S],\n ae.seconds[S]\n ) : null, ee = (S) => gn(l.value[S], 0);\n return !(Me(oe(0), oe(1)) && (_t(oe(0), ee(1)) || Kt(oe(1), ee(0))));\n }\n return !0;\n }, _ = (P, Q) => {\n v(P, Q) && (c(P, Q), a && a());\n }, h = (P) => {\n _(\"hours\", P);\n }, C = (P) => {\n _(\"minutes\", P);\n }, H = (P) => {\n _(\"seconds\", P);\n }, E = (P, Q, ae, oe) => {\n Q && h(P), !Q && !ae && C(P), ae && H(P), l.value && oe(l.value);\n }, U = (P) => {\n if (P) {\n const Q = Array.isArray(P), ae = Q ? [+P[0].hours, +P[1].hours] : +P.hours, oe = Q ? [+P[0].minutes, +P[1].minutes] : +P.minutes, ee = Q ? [+P[0].seconds, +P[1].seconds] : +P.seconds;\n c(\"hours\", ae), c(\"minutes\", oe), e.enableSeconds && c(\"seconds\", ee);\n }\n }, f = (P, Q) => {\n const ae = {\n hours: Array.isArray(t.hours) ? t.hours[P] : t.hours,\n disabledArr: []\n };\n return (Q || Q === 0) && (ae.hours = Q), Array.isArray(e.disabledTimes) && (ae.disabledArr = n.value.enabled && Array.isArray(e.disabledTimes[P]) ? e.disabledTimes[P] : e.disabledTimes), ae;\n }, B = J(() => (P, Q) => {\n var ae;\n if (Array.isArray(e.disabledTimes)) {\n const { disabledArr: oe, hours: ee } = f(P, Q), S = oe.filter((x) => +x.hours === ee);\n return ((ae = S[0]) == null ? void 0 : ae.minutes) === \"*\" ? { hours: [ee], minutes: void 0, seconds: void 0 } : {\n hours: [],\n minutes: (S == null ? void 0 : S.map((x) => +x.minutes)) ?? [],\n seconds: (S == null ? void 0 : S.map((x) => x.seconds ? +x.seconds : void 0)) ?? []\n };\n }\n return { hours: [], minutes: [], seconds: [] };\n });\n return {\n setTime: c,\n updateHours: h,\n updateMinutes: C,\n updateSeconds: H,\n getSetDateTime: b,\n updateTimeValues: E,\n getSecondsValue: d,\n assignStartTime: U,\n validateTime: v,\n disabledTimesConfig: B\n };\n}, br = (e, t) => {\n const l = () => {\n e.isTextInputDate && Q();\n }, { modelValue: a, time: n } = Jt(e, t, l), { defaultedStartTime: i, defaultedRange: d, defaultedTz: b } = Ce(e), { updateTimeValues: c, getSetDateTime: L, setTime: v, assignStartTime: _, disabledTimesConfig: h, validateTime: C } = Un(e, n, a, H);\n function H() {\n t(\"update-flow-step\");\n }\n const E = (ee) => {\n const { hours: S, minutes: x, seconds: Y } = ee;\n return { hours: +S, minutes: +x, seconds: Y ? +Y : 0 };\n }, U = () => {\n if (e.startTime) {\n if (Array.isArray(e.startTime)) {\n const S = E(e.startTime[0]), x = E(e.startTime[1]);\n return [Te(G(), S), Te(G(), x)];\n }\n const ee = E(e.startTime);\n return Te(G(), ee);\n }\n return d.value.enabled ? [null, null] : null;\n }, f = () => {\n if (d.value.enabled) {\n const [ee, S] = U();\n a.value = [\n qe(L(ee, 0), b.value.timezone),\n qe(L(S, 1), b.value.timezone)\n ];\n } else\n a.value = qe(L(U()), b.value.timezone);\n }, B = (ee) => Array.isArray(ee) ? [St(G(ee[0])), St(G(ee[1]))] : [St(ee ?? G())], P = (ee, S, x) => {\n v(\"hours\", ee), v(\"minutes\", S), v(\"seconds\", e.enableSeconds ? x : 0);\n }, Q = () => {\n const [ee, S] = B(a.value);\n return d.value.enabled ? P(\n [ee.hours, S.hours],\n [ee.minutes, S.minutes],\n [ee.seconds, S.seconds]\n ) : P(ee.hours, ee.minutes, ee.seconds);\n };\n We(() => {\n if (!e.shadow)\n return _(i.value), a.value ? Q() : f();\n });\n const ae = () => {\n Array.isArray(a.value) ? a.value = a.value.map((ee, S) => ee && L(ee, S)) : a.value = L(a.value), t(\"time-update\");\n };\n return {\n modelValue: a,\n time: n,\n disabledTimesConfig: h,\n updateTime: (ee, S = !0, x = !1) => {\n c(ee, S, x, ae);\n },\n validateTime: C\n };\n}, kr = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimePickerSolo\",\n props: {\n ...rt\n },\n emits: [\n \"update:internal-model-value\",\n \"time-update\",\n \"am-pm-change\",\n \"mount\",\n \"reset-flow\",\n \"update-flow-step\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, i = Pt(), d = Je(i, \"timePicker\"), b = ne(null), { time: c, modelValue: L, disabledTimesConfig: v, updateTime: _, validateTime: h } = br(n, a);\n return We(() => {\n n.shadow || a(\"mount\", null);\n }), t({ getSidebarProps: () => ({\n modelValue: L,\n time: c,\n updateTime: _\n }), toggleTimePicker: (E, U = !1, f = \"\") => {\n var B;\n (B = b.value) == null || B.toggleTimePicker(E, U, f);\n } }), (E, U) => (T(), $e(fa, {\n \"multi-calendars\": 0,\n stretch: \"\"\n }, {\n default: ke(() => [\n Ze(Hn, Ee({\n ref_key: \"tpRef\",\n ref: b\n }, E.$props, {\n hours: o(c).hours,\n minutes: o(c).minutes,\n seconds: o(c).seconds,\n \"internal-model-value\": E.internalModelValue,\n \"disabled-times-config\": o(v),\n \"validate-time\": o(h),\n \"onUpdate:hours\": U[0] || (U[0] = (f) => o(_)(f)),\n \"onUpdate:minutes\": U[1] || (U[1] = (f) => o(_)(f, !1)),\n \"onUpdate:seconds\": U[2] || (U[2] = (f) => o(_)(f, !1, !0)),\n onAmPmChange: U[3] || (U[3] = (f) => E.$emit(\"am-pm-change\", f)),\n onResetFlow: U[4] || (U[4] = (f) => E.$emit(\"reset-flow\")),\n onOverlayClosed: U[5] || (U[5] = (f) => E.$emit(\"overlay-toggle\", { open: !1, overlay: f })),\n onOverlayOpened: U[6] || (U[6] = (f) => E.$emit(\"overlay-toggle\", { open: !0, overlay: f }))\n }), Ve({ _: 2 }, [\n Re(o(d), (f, B) => ({\n name: f,\n fn: ke((P) => [\n ie(E.$slots, f, Ne(Qe(P)))\n ])\n }))\n ]), 1040, [\"hours\", \"minutes\", \"seconds\", \"internal-model-value\", \"disabled-times-config\", \"validate-time\"])\n ]),\n _: 3\n }));\n }\n}), wr = { class: \"dp--header-wrap\" }, Dr = {\n key: 0,\n class: \"dp__month_year_wrap\"\n}, Mr = { key: 0 }, $r = { class: \"dp__month_year_wrap\" }, Ar = [\"data-dp-element\", \"aria-label\", \"data-test\", \"onClick\", \"onKeydown\"], Tr = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"DpHeader\",\n props: {\n month: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n instance: { type: Number, default: 0 },\n years: { type: Array, default: () => [] },\n months: { type: Array, default: () => [] },\n ...rt\n },\n emits: [\"update-month-year\", \"mount\", \"reset-flow\", \"overlay-closed\", \"overlay-opened\"],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, {\n defaultedTransitions: i,\n defaultedAriaLabels: d,\n defaultedMultiCalendars: b,\n defaultedFilters: c,\n defaultedConfig: L,\n defaultedHighlight: v,\n propDates: _,\n defaultedUI: h\n } = Ce(n), { transitionName: C, showTransition: H } = Xt(i), { buildMatrix: E } = bt(), { handleMonthYearChange: U, isDisabled: f, updateMonthYear: B } = Ql(n, a), { showLeftIcon: P, showRightIcon: Q } = ma(), ae = ne(!1), oe = ne(!1), ee = ne(!1), S = ne([null, null, null, null]);\n We(() => {\n a(\"mount\");\n });\n const x = (D) => ({\n get: () => n[D],\n set: (V) => {\n const s = D === nt.month ? nt.year : nt.month;\n a(\"update-month-year\", { [D]: V, [s]: n[s] }), D === nt.month ? g(!0) : X(!0);\n }\n }), Y = J(x(nt.month)), q = J(x(nt.year)), de = J(() => (D) => ({\n month: n.month,\n year: n.year,\n items: D === nt.month ? n.months : n.years,\n instance: n.instance,\n updateMonthYear: B,\n toggle: D === nt.month ? g : X\n })), ve = J(() => {\n const D = n.months.find((V) => V.value === n.month);\n return D || { text: \"\", value: 0 };\n }), y = J(() => Yt(n.months, (D) => {\n const V = n.month === D.value, s = Gt(\n D.value,\n Pn(n.year, _.value.minDate),\n Rn(n.year, _.value.maxDate)\n ) || c.value.months.includes(D.value), M = Yn(v.value, D.value, n.year);\n return { active: V, disabled: s, highlighted: M };\n })), z = J(() => Yt(n.years, (D) => {\n const V = n.year === D.value, s = Gt(\n D.value,\n It(_.value.minDate),\n It(_.value.maxDate)\n ) || c.value.years.includes(D.value), M = qa(v.value, D.value);\n return { active: V, disabled: s, highlighted: M };\n })), te = (D, V, s) => {\n s !== void 0 ? D.value = s : D.value = !D.value, D.value ? (ee.value = !0, a(\"overlay-opened\", V)) : (ee.value = !1, a(\"overlay-closed\", V));\n }, g = (D = !1, V) => {\n A(D), te(ae, He.month, V);\n }, X = (D = !1, V) => {\n A(D), te(oe, He.year, V);\n }, A = (D) => {\n D || a(\"reset-flow\");\n }, p = (D, V) => {\n n.arrowNavigation && (S.value[V] = Ie(D), E(S.value, \"monthYear\"));\n }, se = J(() => {\n var D, V, s, M, F, u;\n return [\n {\n type: nt.month,\n index: 1,\n toggle: g,\n modelValue: Y.value,\n updateModelValue: (le) => Y.value = le,\n text: ve.value.text,\n showSelectionGrid: ae.value,\n items: y.value,\n ariaLabel: (D = d.value) == null ? void 0 : D.openMonthsOverlay,\n overlayLabel: ((s = (V = d.value).monthPicker) == null ? void 0 : s.call(V, !0)) ?? void 0\n },\n {\n type: nt.year,\n index: 2,\n toggle: X,\n modelValue: q.value,\n updateModelValue: (le) => q.value = le,\n text: Sn(n.year, n.locale),\n showSelectionGrid: oe.value,\n items: z.value,\n ariaLabel: (M = d.value) == null ? void 0 : M.openYearsOverlay,\n overlayLabel: ((u = (F = d.value).yearPicker) == null ? void 0 : u.call(F, !0)) ?? void 0\n }\n ];\n }), I = J(() => n.disableYearSelect ? [se.value[0]] : n.yearFirst ? [...se.value].reverse() : se.value);\n return t({\n toggleMonthPicker: g,\n toggleYearPicker: X,\n handleMonthYearChange: U\n }), (D, V) => {\n var s, M, F, u, le, me;\n return T(), K(\"div\", wr, [\n D.$slots[\"month-year\"] ? (T(), K(\"div\", Dr, [\n ie(D.$slots, \"month-year\", Ne(Qe({ month: e.month, year: e.year, months: e.months, years: e.years, updateMonthYear: o(B), handleMonthYearChange: o(U), instance: e.instance })))\n ])) : (T(), K(be, { key: 1 }, [\n D.$slots[\"top-extra\"] ? (T(), K(\"div\", Mr, [\n ie(D.$slots, \"top-extra\", { value: D.internalModelValue })\n ])) : Z(\"\", !0),\n ye(\"div\", $r, [\n o(P)(o(b), e.instance) && !D.vertical ? (T(), $e(Ut, {\n key: 0,\n \"aria-label\": (s = o(d)) == null ? void 0 : s.prevMonth,\n disabled: o(f)(!1),\n class: we((M = o(h)) == null ? void 0 : M.navBtnPrev),\n \"el-name\": \"action-prev\",\n onActivate: V[0] || (V[0] = ($) => o(U)(!1, !0)),\n onSetRef: V[1] || (V[1] = ($) => p($, 0))\n }, {\n default: ke(() => [\n D.$slots[\"arrow-left\"] ? ie(D.$slots, \"arrow-left\", { key: 0 }) : Z(\"\", !0),\n D.$slots[\"arrow-left\"] ? Z(\"\", !0) : (T(), $e(o(za), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Z(\"\", !0),\n ye(\"div\", {\n class: we([\"dp__month_year_wrap\", {\n dp__year_disable_select: D.disableYearSelect\n }])\n }, [\n (T(!0), K(be, null, Re(I.value, ($, ge) => (T(), K(be, {\n key: $.type\n }, [\n ye(\"button\", {\n ref_for: !0,\n ref: (r) => p(r, ge + 1),\n type: \"button\",\n \"data-dp-element\": `overlay-${$.type}`,\n class: we([\"dp__btn dp__month_year_select\", { \"dp--hidden-el\": ee.value }]),\n \"aria-label\": `${$.text}-${$.ariaLabel}`,\n \"data-test\": `${$.type}-toggle-overlay-${e.instance}`,\n onClick: $.toggle,\n onKeydown: (r) => o(Ke)(r, () => $.toggle(), !0)\n }, [\n D.$slots[$.type] ? ie(D.$slots, $.type, {\n key: 0,\n text: $.text,\n value: n[$.type]\n }) : Z(\"\", !0),\n D.$slots[$.type] ? Z(\"\", !0) : (T(), K(be, { key: 1 }, [\n ct(Ue($.text), 1)\n ], 64))\n ], 42, Ar),\n Ze(Nt, {\n name: o(C)($.showSelectionGrid),\n css: o(H)\n }, {\n default: ke(() => [\n $.showSelectionGrid ? (T(), $e(qt, {\n key: 0,\n items: $.items,\n \"arrow-navigation\": D.arrowNavigation,\n \"hide-navigation\": D.hideNavigation,\n \"is-last\": D.autoApply && !o(L).keepActionRow,\n \"skip-button-ref\": !1,\n config: D.config,\n type: $.type,\n \"header-refs\": [],\n \"esc-close\": D.escClose,\n \"menu-wrap-ref\": D.menuWrapRef,\n \"text-input\": D.textInput,\n \"aria-labels\": D.ariaLabels,\n \"overlay-label\": $.overlayLabel,\n onSelected: $.updateModelValue,\n onToggle: $.toggle\n }, Ve({\n \"button-icon\": ke(() => [\n D.$slots[\"calendar-icon\"] ? ie(D.$slots, \"calendar-icon\", { key: 0 }) : Z(\"\", !0),\n D.$slots[\"calendar-icon\"] ? Z(\"\", !0) : (T(), $e(o(Et), { key: 1 }))\n ]),\n _: 2\n }, [\n D.$slots[`${$.type}-overlay-value`] ? {\n name: \"item\",\n fn: ke(({ item: r }) => [\n ie(D.$slots, `${$.type}-overlay-value`, {\n text: r.text,\n value: r.value\n })\n ]),\n key: \"0\"\n } : void 0,\n D.$slots[`${$.type}-overlay`] ? {\n name: \"overlay\",\n fn: ke(() => [\n ie(D.$slots, `${$.type}-overlay`, Ee({ ref_for: !0 }, de.value($.type)))\n ]),\n key: \"1\"\n } : void 0,\n D.$slots[`${$.type}-overlay-header`] ? {\n name: \"header\",\n fn: ke(() => [\n ie(D.$slots, `${$.type}-overlay-header`, {\n toggle: $.toggle\n })\n ]),\n key: \"2\"\n } : void 0\n ]), 1032, [\"items\", \"arrow-navigation\", \"hide-navigation\", \"is-last\", \"config\", \"type\", \"esc-close\", \"menu-wrap-ref\", \"text-input\", \"aria-labels\", \"overlay-label\", \"onSelected\", \"onToggle\"])) : Z(\"\", !0)\n ]),\n _: 2\n }, 1032, [\"name\", \"css\"])\n ], 64))), 128))\n ], 2),\n o(P)(o(b), e.instance) && D.vertical ? (T(), $e(Ut, {\n key: 1,\n \"aria-label\": (F = o(d)) == null ? void 0 : F.prevMonth,\n \"el-name\": \"action-prev\",\n disabled: o(f)(!1),\n class: we((u = o(h)) == null ? void 0 : u.navBtnPrev),\n onActivate: V[2] || (V[2] = ($) => o(U)(!1, !0))\n }, {\n default: ke(() => [\n D.$slots[\"arrow-up\"] ? ie(D.$slots, \"arrow-up\", { key: 0 }) : Z(\"\", !0),\n D.$slots[\"arrow-up\"] ? Z(\"\", !0) : (T(), $e(o(Va), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Z(\"\", !0),\n o(Q)(o(b), e.instance) ? (T(), $e(Ut, {\n key: 2,\n ref: \"rightIcon\",\n \"el-name\": \"action-next\",\n disabled: o(f)(!0),\n \"aria-label\": (le = o(d)) == null ? void 0 : le.nextMonth,\n class: we((me = o(h)) == null ? void 0 : me.navBtnNext),\n onActivate: V[3] || (V[3] = ($) => o(U)(!0, !0)),\n onSetRef: V[4] || (V[4] = ($) => p($, D.disableYearSelect ? 2 : 3))\n }, {\n default: ke(() => [\n D.$slots[D.vertical ? \"arrow-down\" : \"arrow-right\"] ? ie(D.$slots, D.vertical ? \"arrow-down\" : \"arrow-right\", { key: 0 }) : Z(\"\", !0),\n D.$slots[D.vertical ? \"arrow-down\" : \"arrow-right\"] ? Z(\"\", !0) : (T(), $e(ia(D.vertical ? o(Wa) : o(Ha)), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"disabled\", \"aria-label\", \"class\"])) : Z(\"\", !0)\n ])\n ], 64))\n ]);\n };\n }\n}), Sr = {\n class: \"dp__calendar_header\",\n role: \"row\"\n}, Pr = {\n key: 0,\n class: \"dp__calendar_header_item\",\n role: \"gridcell\"\n}, Rr = [\"aria-label\"], Cr = {\n key: 0,\n class: \"dp__calendar_item dp__week_num\",\n role: \"gridcell\"\n}, Or = { class: \"dp__cell_inner\" }, _r = [\"id\", \"aria-pressed\", \"aria-disabled\", \"aria-label\", \"tabindex\", \"data-test\", \"onClick\", \"onTouchend\", \"onKeydown\", \"onMouseenter\", \"onMouseleave\", \"onMousedown\"], Br = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"DpCalendar\",\n props: {\n mappedDates: { type: Array, default: () => [] },\n instance: { type: Number, default: 0 },\n month: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n ...rt\n },\n emits: [\n \"select-date\",\n \"set-hover-date\",\n \"handle-scroll\",\n \"mount\",\n \"handle-swipe\",\n \"handle-space\",\n \"tooltip-open\",\n \"tooltip-close\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, { buildMultiLevelMatrix: i } = bt(), {\n defaultedTransitions: d,\n defaultedConfig: b,\n defaultedAriaLabels: c,\n defaultedMultiCalendars: L,\n defaultedWeekNumbers: v,\n defaultedMultiDates: _,\n defaultedUI: h\n } = Ce(n), C = ne(null), H = ne({\n bottom: \"\",\n left: \"\",\n transform: \"\"\n }), E = ne([]), U = ne(null), f = ne(!0), B = ne(\"\"), P = ne({ startX: 0, endX: 0, startY: 0, endY: 0 }), Q = ne([]), ae = ne({ left: \"50%\" }), oe = ne(!1), ee = J(() => n.calendar ? n.calendar(n.mappedDates) : n.mappedDates), S = J(() => n.dayNames ? Array.isArray(n.dayNames) ? n.dayNames : n.dayNames(n.locale, +n.weekStart) : yl(n.formatLocale, n.locale, +n.weekStart));\n We(() => {\n a(\"mount\", { cmp: \"calendar\", refs: E }), b.value.noSwipe || U.value && (U.value.addEventListener(\"touchstart\", p, { passive: !1 }), U.value.addEventListener(\"touchend\", se, { passive: !1 }), U.value.addEventListener(\"touchmove\", I, { passive: !1 })), n.monthChangeOnScroll && U.value && U.value.addEventListener(\"wheel\", s, { passive: !1 });\n });\n const x = ($) => $ ? n.vertical ? \"vNext\" : \"next\" : n.vertical ? \"vPrevious\" : \"previous\", Y = ($, ge) => {\n if (n.transitions) {\n const r = Ge(dt(G(), n.month, n.year));\n B.value = Be(Ge(dt(G(), $, ge)), r) ? d.value[x(!0)] : d.value[x(!1)], f.value = !1, xe(() => {\n f.value = !0;\n });\n }\n }, q = J(\n () => ({\n ...h.value.calendar ?? {}\n })\n ), de = J(() => ($) => {\n const ge = hl($);\n return {\n dp__marker_dot: ge.type === \"dot\",\n dp__marker_line: ge.type === \"line\"\n };\n }), ve = J(() => ($) => Me($, C.value)), y = J(() => ({\n dp__calendar: !0,\n dp__calendar_next: L.value.count > 0 && n.instance !== 0\n })), z = J(() => ($) => n.hideOffsetDates ? $.current : !0), te = async ($, ge) => {\n const { width: r, height: R } = $.getBoundingClientRect();\n C.value = ge.value;\n let O = { left: `${r / 2}px` }, W = -50;\n if (await xe(), Q.value[0]) {\n const { left: ue, width: w } = Q.value[0].getBoundingClientRect();\n ue < 0 && (O = { left: \"0\" }, W = 0, ae.value.left = `${r / 2}px`), window.innerWidth < ue + w && (O = { right: \"0\" }, W = 0, ae.value.left = `${w - r / 2}px`);\n }\n H.value = {\n bottom: `${R}px`,\n ...O,\n transform: `translateX(${W}%)`\n };\n }, g = async ($, ge, r) => {\n var O, W, ue;\n const R = Ie(E.value[ge][r]);\n R && ((O = $.marker) != null && O.customPosition && ((ue = (W = $.marker) == null ? void 0 : W.tooltip) != null && ue.length) ? H.value = $.marker.customPosition(R) : await te(R, $), a(\"tooltip-open\", $.marker));\n }, X = async ($, ge, r) => {\n var R, O;\n if (oe.value && _.value.enabled && _.value.dragSelect)\n return a(\"select-date\", $);\n a(\"set-hover-date\", $), (O = (R = $.marker) == null ? void 0 : R.tooltip) != null && O.length && await g($, ge, r);\n }, A = ($) => {\n C.value && (C.value = null, H.value = JSON.parse(JSON.stringify({ bottom: \"\", left: \"\", transform: \"\" })), a(\"tooltip-close\", $.marker));\n }, p = ($) => {\n P.value.startX = $.changedTouches[0].screenX, P.value.startY = $.changedTouches[0].screenY;\n }, se = ($) => {\n P.value.endX = $.changedTouches[0].screenX, P.value.endY = $.changedTouches[0].screenY, D();\n }, I = ($) => {\n n.vertical && !n.inline && $.preventDefault();\n }, D = () => {\n const $ = n.vertical ? \"Y\" : \"X\";\n Math.abs(P.value[`start${$}`] - P.value[`end${$}`]) > 10 && a(\"handle-swipe\", P.value[`start${$}`] > P.value[`end${$}`] ? \"right\" : \"left\");\n }, V = ($, ge, r) => {\n $ && (Array.isArray(E.value[ge]) ? E.value[ge][r] = $ : E.value[ge] = [$]), n.arrowNavigation && i(E.value, \"calendar\");\n }, s = ($) => {\n n.monthChangeOnScroll && ($.preventDefault(), a(\"handle-scroll\", $));\n }, M = ($) => v.value.type === \"local\" ? ol($.value, { weekStartsOn: +n.weekStart }) : v.value.type === \"iso\" ? sl($.value) : typeof v.value.type == \"function\" ? v.value.type($.value) : \"\", F = ($) => {\n const ge = $[0];\n return v.value.hideOnOffsetDates ? $.some((r) => r.current) ? M(ge) : \"\" : M(ge);\n }, u = ($, ge, r = !0) => {\n r && sn() || !r && !sn() || _.value.enabled || (yt($, b.value), a(\"select-date\", ge));\n }, le = ($) => {\n yt($, b.value);\n }, me = ($) => {\n _.value.enabled && _.value.dragSelect ? (oe.value = !0, a(\"select-date\", $)) : _.value.enabled && a(\"select-date\", $);\n };\n return t({ triggerTransition: Y }), ($, ge) => (T(), K(\"div\", {\n class: we(y.value)\n }, [\n ye(\"div\", {\n ref_key: \"calendarWrapRef\",\n ref: U,\n class: we(q.value),\n role: \"grid\"\n }, [\n ye(\"div\", Sr, [\n $.weekNumbers ? (T(), K(\"div\", Pr, Ue($.weekNumName), 1)) : Z(\"\", !0),\n (T(!0), K(be, null, Re(S.value, (r, R) => {\n var O, W;\n return T(), K(\"div\", {\n key: R,\n class: \"dp__calendar_header_item\",\n role: \"gridcell\",\n \"data-test\": \"calendar-header\",\n \"aria-label\": (W = (O = o(c)) == null ? void 0 : O.weekDay) == null ? void 0 : W.call(O, R)\n }, [\n $.$slots[\"calendar-header\"] ? ie($.$slots, \"calendar-header\", {\n key: 0,\n day: r,\n index: R\n }) : Z(\"\", !0),\n $.$slots[\"calendar-header\"] ? Z(\"\", !0) : (T(), K(be, { key: 1 }, [\n ct(Ue(r), 1)\n ], 64))\n ], 8, Rr);\n }), 128))\n ]),\n ge[2] || (ge[2] = ye(\"div\", { class: \"dp__calendar_header_separator\" }, null, -1)),\n Ze(Nt, {\n name: B.value,\n css: !!$.transitions\n }, {\n default: ke(() => [\n f.value ? (T(), K(\"div\", {\n key: 0,\n class: \"dp__calendar\",\n role: \"rowgroup\",\n onMouseleave: ge[1] || (ge[1] = (r) => oe.value = !1)\n }, [\n (T(!0), K(be, null, Re(ee.value, (r, R) => (T(), K(\"div\", {\n key: R,\n class: \"dp__calendar_row\",\n role: \"row\"\n }, [\n $.weekNumbers ? (T(), K(\"div\", Cr, [\n ye(\"div\", Or, Ue(F(r.days)), 1)\n ])) : Z(\"\", !0),\n (T(!0), K(be, null, Re(r.days, (O, W) => {\n var ue, w, N;\n return T(), K(\"div\", {\n id: o(In)(O.value),\n ref_for: !0,\n ref: (ce) => V(ce, R, W),\n key: W + R,\n role: \"gridcell\",\n class: \"dp__calendar_item\",\n \"aria-pressed\": (O.classData.dp__active_date || O.classData.dp__range_start || O.classData.dp__range_start) ?? void 0,\n \"aria-disabled\": O.classData.dp__cell_disabled || void 0,\n \"aria-label\": (w = (ue = o(c)) == null ? void 0 : ue.day) == null ? void 0 : w.call(ue, O),\n tabindex: !O.current && $.hideOffsetDates ? void 0 : 0,\n \"data-test\": O.value,\n onClick: Wt((ce) => u(ce, O), [\"prevent\"]),\n onTouchend: (ce) => u(ce, O, !1),\n onKeydown: (ce) => o(Ke)(ce, () => $.$emit(\"select-date\", O)),\n onMouseenter: (ce) => X(O, R, W),\n onMouseleave: (ce) => A(O),\n onMousedown: (ce) => me(O),\n onMouseup: ge[0] || (ge[0] = (ce) => oe.value = !1)\n }, [\n ye(\"div\", {\n class: we([\"dp__cell_inner\", O.classData])\n }, [\n $.$slots.day && z.value(O) ? ie($.$slots, \"day\", {\n key: 0,\n day: +O.text,\n date: O.value\n }) : Z(\"\", !0),\n $.$slots.day ? Z(\"\", !0) : (T(), K(be, { key: 1 }, [\n ct(Ue(O.text), 1)\n ], 64)),\n O.marker && z.value(O) ? (T(), K(be, { key: 2 }, [\n $.$slots.marker ? ie($.$slots, \"marker\", {\n key: 0,\n marker: O.marker,\n day: +O.text,\n date: O.value\n }) : (T(), K(\"div\", {\n key: 1,\n class: we(de.value(O.marker)),\n style: tt(O.marker.color ? { backgroundColor: O.marker.color } : {})\n }, null, 6))\n ], 64)) : Z(\"\", !0),\n ve.value(O.value) ? (T(), K(\"div\", {\n key: 3,\n ref_for: !0,\n ref_key: \"activeTooltip\",\n ref: Q,\n class: \"dp__marker_tooltip\",\n style: tt(H.value)\n }, [\n (N = O.marker) != null && N.tooltip ? (T(), K(\"div\", {\n key: 0,\n class: \"dp__tooltip_content\",\n onClick: le\n }, [\n (T(!0), K(be, null, Re(O.marker.tooltip, (ce, he) => (T(), K(\"div\", {\n key: he,\n class: \"dp__tooltip_text\"\n }, [\n $.$slots[\"marker-tooltip\"] ? ie($.$slots, \"marker-tooltip\", {\n key: 0,\n tooltip: ce,\n day: O.value\n }) : Z(\"\", !0),\n $.$slots[\"marker-tooltip\"] ? Z(\"\", !0) : (T(), K(be, { key: 1 }, [\n ye(\"div\", {\n class: \"dp__tooltip_mark\",\n style: tt(ce.color ? { backgroundColor: ce.color } : {})\n }, null, 4),\n ye(\"div\", null, Ue(ce.text), 1)\n ], 64))\n ]))), 128)),\n ye(\"div\", {\n class: \"dp__arrow_bottom_tp\",\n style: tt(ae.value)\n }, null, 4)\n ])) : Z(\"\", !0)\n ], 4)) : Z(\"\", !0)\n ], 2)\n ], 40, _r);\n }), 128))\n ]))), 128))\n ], 32)) : Z(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 2)\n ], 2));\n }\n}), vn = (e) => Array.isArray(e), Yr = (e, t, l, a) => {\n const n = ne([]), i = ne(/* @__PURE__ */ new Date()), d = ne(), b = () => p(e.isTextInputDate), { modelValue: c, calendars: L, time: v, today: _ } = Jt(e, t, b), {\n defaultedMultiCalendars: h,\n defaultedStartTime: C,\n defaultedRange: H,\n defaultedConfig: E,\n defaultedTz: U,\n propDates: f,\n defaultedMultiDates: B\n } = Ce(e), { validateMonthYearInRange: P, isDisabled: Q, isDateRangeAllowed: ae, checkMinMaxRange: oe } = kt(e), { updateTimeValues: ee, getSetDateTime: S, setTime: x, assignStartTime: Y, validateTime: q, disabledTimesConfig: de } = Un(e, v, c, a), ve = J(\n () => (k) => L.value[k] ? L.value[k].month : 0\n ), y = J(\n () => (k) => L.value[k] ? L.value[k].year : 0\n ), z = (k) => !E.value.keepViewOnOffsetClick || k ? !0 : !d.value, te = (k, m, j, re = !1) => {\n var Ae, Fe;\n z(re) && (L.value[k] || (L.value[k] = { month: 0, year: 0 }), L.value[k].month = on(m) ? (Ae = L.value[k]) == null ? void 0 : Ae.month : m, L.value[k].year = on(j) ? (Fe = L.value[k]) == null ? void 0 : Fe.year : j);\n }, g = () => {\n e.autoApply && t(\"select-date\");\n };\n We(() => {\n e.shadow || (c.value || ($(), C.value && Y(C.value)), p(!0), e.focusStartDate && e.startDate && $());\n });\n const X = J(() => {\n var k;\n return (k = e.flow) != null && k.length && !e.partialFlow ? e.flowStep === e.flow.length : !0;\n }), A = () => {\n e.autoApply && X.value && t(\"auto-apply\", e.partialFlow ? e.flowStep !== e.flow.length : !1);\n }, p = (k = !1) => {\n if (c.value)\n return Array.isArray(c.value) ? (n.value = c.value, F(k)) : D(c.value, k);\n if (h.value.count && k && !e.startDate)\n return I(G(), k);\n }, se = () => Array.isArray(c.value) && H.value.enabled ? De(c.value[0]) === De(c.value[1] ?? c.value[0]) : !1, I = (k = /* @__PURE__ */ new Date(), m = !1) => {\n if ((!h.value.count || !h.value.static || m) && te(0, De(k), pe(k)), h.value.count && (!h.value.solo || !c.value || se()))\n for (let j = 1; j < h.value.count; j++) {\n const re = Te(G(), { month: ve.value(j - 1), year: y.value(j - 1) }), Ae = Dn(re, { months: 1 });\n L.value[j] = { month: De(Ae), year: pe(Ae) };\n }\n }, D = (k, m) => {\n I(k), x(\"hours\", ft(k)), x(\"minutes\", ht(k)), x(\"seconds\", Bt(k)), h.value.count && m && me();\n }, V = (k) => {\n if (h.value.count) {\n if (h.value.solo) return 0;\n const m = De(k[0]), j = De(k[1]);\n return Math.abs(j - m) < h.value.count ? 0 : 1;\n }\n return 1;\n }, s = (k, m) => {\n k[1] && H.value.showLastInRange ? I(k[V(k)], m) : I(k[0], m);\n const j = (re, Ae) => [\n re(k[0]),\n k[1] ? re(k[1]) : v[Ae][1]\n ];\n x(\"hours\", j(ft, \"hours\")), x(\"minutes\", j(ht, \"minutes\")), x(\"seconds\", j(Bt, \"seconds\"));\n }, M = (k, m) => {\n if ((H.value.enabled || e.weekPicker) && !B.value.enabled)\n return s(k, m);\n if (B.value.enabled && m) {\n const j = k[k.length - 1];\n return D(j, m);\n }\n }, F = (k) => {\n const m = c.value;\n M(m, k), h.value.count && h.value.solo && me();\n }, u = (k, m) => {\n const j = Te(G(), { month: ve.value(m), year: y.value(m) }), re = k < 0 ? At(j, 1) : jt(j, 1);\n P(De(re), pe(re), k < 0, e.preventMinMaxNavigation) && (te(m, De(re), pe(re)), t(\"update-month-year\", { instance: m, month: De(re), year: pe(re) }), h.value.count && !h.value.solo && le(m), l());\n }, le = (k) => {\n for (let m = k - 1; m >= 0; m--) {\n const j = jt(Te(G(), { month: ve.value(m + 1), year: y.value(m + 1) }), 1);\n te(m, De(j), pe(j));\n }\n for (let m = k + 1; m <= h.value.count - 1; m++) {\n const j = At(Te(G(), { month: ve.value(m - 1), year: y.value(m - 1) }), 1);\n te(m, De(j), pe(j));\n }\n }, me = () => {\n if (Array.isArray(c.value) && c.value.length === 2) {\n const k = G(\n G(c.value[1] ? c.value[1] : At(c.value[0], 1))\n ), [m, j] = [De(c.value[0]), pe(c.value[0])], [re, Ae] = [De(c.value[1]), pe(c.value[1])];\n (m !== re || m === re && j !== Ae) && h.value.solo && te(1, De(k), pe(k));\n } else c.value && !Array.isArray(c.value) && (te(0, De(c.value), pe(c.value)), I(G()));\n }, $ = () => {\n e.startDate && (te(0, De(G(e.startDate)), pe(G(e.startDate))), h.value.count && le(0));\n }, ge = (k, m) => {\n if (e.monthChangeOnScroll) {\n const j = (/* @__PURE__ */ new Date()).getTime() - i.value.getTime(), re = Math.abs(k.deltaY);\n let Ae = 500;\n re > 1 && (Ae = 100), re > 100 && (Ae = 0), j > Ae && (i.value = /* @__PURE__ */ new Date(), u(e.monthChangeOnScroll !== \"inverse\" ? -k.deltaY : k.deltaY, m));\n }\n }, r = (k, m, j = !1) => {\n e.monthChangeOnArrows && e.vertical === j && R(k, m);\n }, R = (k, m) => {\n u(k === \"right\" ? -1 : 1, m);\n }, O = (k) => {\n if (f.value.markers)\n return sa(k.value, f.value.markers);\n }, W = (k, m) => {\n switch (e.sixWeeks === !0 ? \"append\" : e.sixWeeks) {\n case \"prepend\":\n return [!0, !1];\n case \"center\":\n return [k == 0, !0];\n case \"fair\":\n return [k == 0 || m > k, !0];\n case \"append\":\n return [!1, !1];\n default:\n return [!1, !1];\n }\n }, ue = (k, m, j, re) => {\n if (e.sixWeeks && k.length < 6) {\n const Ae = 6 - k.length, Fe = (m.getDay() + 7 - re) % 7, xt = 6 - (j.getDay() + 7 - re) % 7, [zt, Da] = W(Fe, xt);\n for (let Dt = 1; Dt <= Ae; Dt++)\n if (Da ? !!(Dt % 2) == zt : zt) {\n const ea = k[0].days[0], Ma = w($t(ea.value, -7), De(m));\n k.unshift({ days: Ma });\n } else {\n const ea = k[k.length - 1], Ma = ea.days[ea.days.length - 1], Wn = w($t(Ma.value, 1), De(m));\n k.push({ days: Wn });\n }\n }\n return k;\n }, w = (k, m) => {\n const j = G(k), re = [];\n for (let Ae = 0; Ae < 7; Ae++) {\n const Fe = $t(j, Ae), wt = De(Fe) !== m;\n re.push({\n text: e.hideOffsetDates && wt ? \"\" : Fe.getDate(),\n value: Fe,\n current: !wt,\n classData: {}\n });\n }\n return re;\n }, N = (k, m) => {\n const j = [], re = new Date(m, k), Ae = new Date(m, k + 1, 0), Fe = e.weekStart, wt = La(re, { weekStartsOn: Fe }), xt = (zt) => {\n const Da = w(zt, k);\n if (j.push({ days: Da }), !j[j.length - 1].days.some(\n (Dt) => Me(Ge(Dt.value), Ge(Ae))\n )) {\n const Dt = $t(zt, 7);\n xt(Dt);\n }\n };\n return xt(wt), ue(j, re, Ae, Fe);\n }, ce = (k) => {\n const m = gt(G(k.value), v.hours, v.minutes, Xe());\n t(\"date-update\", m), B.value.enabled ? Xa(m, c, B.value.limit) : c.value = m, a(), xe().then(() => {\n A();\n });\n }, he = (k) => H.value.noDisabledRange ? Cn(n.value[0], k).some((j) => Q(j)) : !1, et = () => {\n n.value = c.value ? c.value.slice() : [], n.value.length === 2 && !(H.value.fixedStart || H.value.fixedEnd) && (n.value = []);\n }, fe = (k, m) => {\n const j = [\n G(k.value),\n $t(G(k.value), +H.value.autoRange)\n ];\n ae(j) ? (m && vt(k.value), n.value = j) : t(\"invalid-date\", k.value);\n }, vt = (k) => {\n const m = De(G(k)), j = pe(G(k));\n if (te(0, m, j), h.value.count > 0)\n for (let re = 1; re < h.value.count; re++) {\n const Ae = Al(\n Te(G(k), { year: y.value(re - 1), month: ve.value(re - 1) })\n );\n te(re, Ae.month, Ae.year);\n }\n }, ot = (k) => {\n if (he(k.value) || !oe(k.value, c.value, H.value.fixedStart ? 0 : 1))\n return t(\"invalid-date\", k.value);\n n.value = Ln(G(k.value), c, t, H);\n }, Ft = (k, m) => {\n if (et(), H.value.autoRange) return fe(k, m);\n if (H.value.fixedStart || H.value.fixedEnd) return ot(k);\n n.value[0] ? oe(G(k.value), c.value) && !he(k.value) ? Oe(G(k.value), G(n.value[0])) ? (n.value.unshift(G(k.value)), t(\"range-end\", n.value[0])) : (n.value[1] = G(k.value), t(\"range-end\", n.value[1])) : (e.autoApply && t(\"auto-apply-invalid\", k.value), t(\"invalid-date\", k.value)) : (n.value[0] = G(k.value), t(\"range-start\", n.value[0]));\n }, Xe = (k = !0) => e.enableSeconds ? Array.isArray(v.seconds) ? k ? v.seconds[0] : v.seconds[1] : v.seconds : 0, Lt = (k) => {\n n.value[k] = gt(\n n.value[k],\n v.hours[k],\n v.minutes[k],\n Xe(k !== 1)\n );\n }, pa = () => {\n var k, m;\n n.value[0] && n.value[1] && +((k = n.value) == null ? void 0 : k[0]) > +((m = n.value) == null ? void 0 : m[1]) && (n.value.reverse(), t(\"range-start\", n.value[0]), t(\"range-end\", n.value[1]));\n }, Zt = () => {\n n.value.length && (n.value[0] && !n.value[1] ? Lt(0) : (Lt(0), Lt(1), a()), pa(), c.value = n.value.slice(), va(n.value, t, e.autoApply, e.modelAuto));\n }, ya = (k, m = !1) => {\n if (Q(k.value) || !k.current && e.hideOffsetDates) return t(\"invalid-date\", k.value);\n if (d.value = JSON.parse(JSON.stringify(k)), !H.value.enabled) return ce(k);\n vn(v.hours) && vn(v.minutes) && !B.value.enabled && (Ft(k, m), Zt());\n }, ga = (k, m) => {\n var re;\n te(k, m.month, m.year, !0), h.value.count && !h.value.solo && le(k), t(\"update-month-year\", { instance: k, month: m.month, year: m.year }), l(h.value.solo ? k : void 0);\n const j = (re = e.flow) != null && re.length ? e.flow[e.flowStep] : void 0;\n !m.fromNav && (j === He.month || j === He.year) && a();\n }, ha = (k, m) => {\n Fn({\n value: k,\n modelValue: c,\n range: H.value.enabled,\n timezone: m ? void 0 : U.value.timezone\n }), g(), e.multiCalendars && xe().then(() => p(!0));\n }, ba = () => {\n const k = ja(G(), U.value);\n H.value.enabled ? c.value && Array.isArray(c.value) && c.value[0] ? c.value = Oe(k, c.value[0]) ? [k, c.value[0]] : [c.value[0], k] : c.value = [k] : c.value = k, g();\n }, ka = () => {\n if (Array.isArray(c.value))\n if (B.value.enabled) {\n const k = wa();\n c.value[c.value.length - 1] = S(k);\n } else\n c.value = c.value.map((k, m) => k && S(k, m));\n else\n c.value = S(c.value);\n t(\"time-update\");\n }, wa = () => Array.isArray(c.value) && c.value.length ? c.value[c.value.length - 1] : null;\n return {\n calendars: L,\n modelValue: c,\n month: ve,\n year: y,\n time: v,\n disabledTimesConfig: de,\n today: _,\n validateTime: q,\n getCalendarDays: N,\n getMarker: O,\n handleScroll: ge,\n handleSwipe: R,\n handleArrow: r,\n selectDate: ya,\n updateMonthYear: ga,\n presetDate: ha,\n selectCurrentDate: ba,\n updateTime: (k, m = !0, j = !1) => {\n ee(k, m, j, ka);\n },\n assignMonthAndYear: I\n };\n}, Ir = { key: 0 }, Nr = /* @__PURE__ */ Le({\n __name: \"DatePicker\",\n props: {\n ...rt\n },\n emits: [\n \"tooltip-open\",\n \"tooltip-close\",\n \"mount\",\n \"update:internal-model-value\",\n \"update-flow-step\",\n \"reset-flow\",\n \"auto-apply\",\n \"focus-menu\",\n \"select-date\",\n \"range-start\",\n \"range-end\",\n \"invalid-fixed-range\",\n \"time-update\",\n \"am-pm-change\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"recalculate-position\",\n \"update-month-year\",\n \"auto-apply-invalid\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, {\n calendars: i,\n month: d,\n year: b,\n modelValue: c,\n time: L,\n disabledTimesConfig: v,\n today: _,\n validateTime: h,\n getCalendarDays: C,\n getMarker: H,\n handleArrow: E,\n handleScroll: U,\n handleSwipe: f,\n selectDate: B,\n updateMonthYear: P,\n presetDate: Q,\n selectCurrentDate: ae,\n updateTime: oe,\n assignMonthAndYear: ee\n } = Yr(n, a, se, I), S = Pt(), { setHoverDate: x, getDayClassData: Y, clearHoverDate: q } = Jr(c, n), { defaultedMultiCalendars: de } = Ce(n), ve = ne([]), y = ne([]), z = ne(null), te = Je(S, \"calendar\"), g = Je(S, \"monthYear\"), X = Je(S, \"timePicker\"), A = (r) => {\n n.shadow || a(\"mount\", r);\n };\n at(\n i,\n () => {\n n.shadow || setTimeout(() => {\n a(\"recalculate-position\");\n }, 0);\n },\n { deep: !0 }\n ), at(\n de,\n (r, R) => {\n r.count - R.count > 0 && ee();\n },\n { deep: !0 }\n );\n const p = J(() => (r) => C(d.value(r), b.value(r)).map((R) => ({\n ...R,\n days: R.days.map((O) => (O.marker = H(O), O.classData = Y(O), O))\n })));\n function se(r) {\n var R;\n r || r === 0 ? (R = y.value[r]) == null || R.triggerTransition(d.value(r), b.value(r)) : y.value.forEach((O, W) => O.triggerTransition(d.value(W), b.value(W)));\n }\n function I() {\n a(\"update-flow-step\");\n }\n const D = (r, R = !1) => {\n B(r, R), n.spaceConfirm && a(\"select-date\");\n }, V = (r, R, O = 0) => {\n var W;\n (W = ve.value[O]) == null || W.toggleMonthPicker(r, R);\n }, s = (r, R, O = 0) => {\n var W;\n (W = ve.value[O]) == null || W.toggleYearPicker(r, R);\n }, M = (r, R, O) => {\n var W;\n (W = z.value) == null || W.toggleTimePicker(r, R, O);\n }, F = (r, R) => {\n var O;\n if (!n.range) {\n const W = c.value ? c.value : _, ue = R ? new Date(R) : W, w = r ? La(ue, { weekStartsOn: 1 }) : hn(ue, { weekStartsOn: 1 });\n B({\n value: w,\n current: De(ue) === d.value(0),\n text: \"\",\n classData: {}\n }), (O = document.getElementById(In(w))) == null || O.focus();\n }\n }, u = (r) => {\n var R;\n (R = ve.value[0]) == null || R.handleMonthYearChange(r, !0);\n }, le = (r) => {\n P(0, { month: d.value(0), year: b.value(0) + (r ? 1 : -1), fromNav: !0 });\n }, me = (r, R) => {\n r === He.time && a(`time-picker-${R ? \"open\" : \"close\"}`), a(\"overlay-toggle\", { open: R, overlay: r });\n }, $ = (r) => {\n a(\"overlay-toggle\", { open: !1, overlay: r }), a(\"focus-menu\");\n };\n return t({\n clearHoverDate: q,\n presetDate: Q,\n selectCurrentDate: ae,\n toggleMonthPicker: V,\n toggleYearPicker: s,\n toggleTimePicker: M,\n handleArrow: E,\n updateMonthYear: P,\n getSidebarProps: () => ({\n modelValue: c,\n month: d,\n year: b,\n time: L,\n updateTime: oe,\n updateMonthYear: P,\n selectDate: B,\n presetDate: Q\n }),\n changeMonth: u,\n changeYear: le,\n selectWeekDate: F\n }), (r, R) => (T(), K(be, null, [\n Ze(fa, {\n \"multi-calendars\": o(de).count,\n collapse: r.collapse\n }, {\n default: ke(({ instance: O, index: W }) => [\n r.disableMonthYearSelect ? Z(\"\", !0) : (T(), $e(Tr, Ee({\n key: 0,\n ref: (ue) => {\n ue && (ve.value[W] = ue);\n },\n months: o($n)(r.formatLocale, r.locale, r.monthNameFormat),\n years: o(Ka)(r.yearRange, r.locale, r.reverseYears),\n month: o(d)(O),\n year: o(b)(O),\n instance: O\n }, r.$props, {\n onMount: R[0] || (R[0] = (ue) => A(o(Tt).header)),\n onResetFlow: R[1] || (R[1] = (ue) => r.$emit(\"reset-flow\")),\n onUpdateMonthYear: (ue) => o(P)(O, ue),\n onOverlayClosed: $,\n onOverlayOpened: R[2] || (R[2] = (ue) => r.$emit(\"overlay-toggle\", { open: !0, overlay: ue }))\n }), Ve({ _: 2 }, [\n Re(o(g), (ue, w) => ({\n name: ue,\n fn: ke((N) => [\n ie(r.$slots, ue, Ne(Qe(N)))\n ])\n }))\n ]), 1040, [\"months\", \"years\", \"month\", \"year\", \"instance\", \"onUpdateMonthYear\"])),\n Ze(Br, Ee({\n ref: (ue) => {\n ue && (y.value[W] = ue);\n },\n \"mapped-dates\": p.value(O),\n month: o(d)(O),\n year: o(b)(O),\n instance: O\n }, r.$props, {\n onSelectDate: (ue) => o(B)(ue, O !== 1),\n onHandleSpace: (ue) => D(ue, O !== 1),\n onSetHoverDate: R[3] || (R[3] = (ue) => o(x)(ue)),\n onHandleScroll: (ue) => o(U)(ue, O),\n onHandleSwipe: (ue) => o(f)(ue, O),\n onMount: R[4] || (R[4] = (ue) => A(o(Tt).calendar)),\n onResetFlow: R[5] || (R[5] = (ue) => r.$emit(\"reset-flow\")),\n onTooltipOpen: R[6] || (R[6] = (ue) => r.$emit(\"tooltip-open\", ue)),\n onTooltipClose: R[7] || (R[7] = (ue) => r.$emit(\"tooltip-close\", ue))\n }), Ve({ _: 2 }, [\n Re(o(te), (ue, w) => ({\n name: ue,\n fn: ke((N) => [\n ie(r.$slots, ue, Ne(Qe({ ...N })))\n ])\n }))\n ]), 1040, [\"mapped-dates\", \"month\", \"year\", \"instance\", \"onSelectDate\", \"onHandleSpace\", \"onHandleScroll\", \"onHandleSwipe\"])\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\"]),\n r.enableTimePicker ? (T(), K(\"div\", Ir, [\n r.$slots[\"time-picker\"] ? ie(r.$slots, \"time-picker\", Ne(Ee({ key: 0 }, { time: o(L), updateTime: o(oe) }))) : (T(), $e(Hn, Ee({\n key: 1,\n ref_key: \"timePickerRef\",\n ref: z\n }, r.$props, {\n hours: o(L).hours,\n minutes: o(L).minutes,\n seconds: o(L).seconds,\n \"internal-model-value\": r.internalModelValue,\n \"disabled-times-config\": o(v),\n \"validate-time\": o(h),\n onMount: R[8] || (R[8] = (O) => A(o(Tt).timePicker)),\n \"onUpdate:hours\": R[9] || (R[9] = (O) => o(oe)(O)),\n \"onUpdate:minutes\": R[10] || (R[10] = (O) => o(oe)(O, !1)),\n \"onUpdate:seconds\": R[11] || (R[11] = (O) => o(oe)(O, !1, !0)),\n onResetFlow: R[12] || (R[12] = (O) => r.$emit(\"reset-flow\")),\n onOverlayClosed: R[13] || (R[13] = (O) => me(O, !1)),\n onOverlayOpened: R[14] || (R[14] = (O) => me(O, !0)),\n onAmPmChange: R[15] || (R[15] = (O) => r.$emit(\"am-pm-change\", O))\n }), Ve({ _: 2 }, [\n Re(o(X), (O, W) => ({\n name: O,\n fn: ke((ue) => [\n ie(r.$slots, O, Ne(Qe(ue)))\n ])\n }))\n ]), 1040, [\"hours\", \"minutes\", \"seconds\", \"internal-model-value\", \"disabled-times-config\", \"validate-time\"]))\n ])) : Z(\"\", !0)\n ], 64));\n }\n}), Er = (e, t) => {\n const l = ne(), {\n defaultedMultiCalendars: a,\n defaultedConfig: n,\n defaultedHighlight: i,\n defaultedRange: d,\n propDates: b,\n defaultedFilters: c,\n defaultedMultiDates: L\n } = Ce(e), { modelValue: v, year: _, month: h, calendars: C } = Jt(e, t), { isDisabled: H } = kt(e), { selectYear: E, groupedYears: U, showYearPicker: f, isDisabled: B, toggleYearPicker: P, handleYearSelect: Q, handleYear: ae } = zn({\n modelValue: v,\n multiCalendars: a,\n range: d,\n highlight: i,\n calendars: C,\n propDates: b,\n month: h,\n year: _,\n filters: c,\n props: e,\n emit: t\n }), oe = (g, X) => [g, X].map((A) => ut(A, \"MMMM\", { locale: e.formatLocale })).join(\"-\"), ee = J(() => (g) => v.value ? Array.isArray(v.value) ? v.value.some((X) => tn(g, X)) : tn(v.value, g) : !1), S = (g) => {\n if (d.value.enabled) {\n if (Array.isArray(v.value)) {\n const X = Me(g, v.value[0]) || Me(g, v.value[1]);\n return da(v.value, l.value, g) && !X;\n }\n return !1;\n }\n return !1;\n }, x = (g, X) => g.quarter === nn(X) && g.year === pe(X), Y = (g) => typeof i.value == \"function\" ? i.value({ quarter: nn(g), year: pe(g) }) : !!i.value.quarters.find((X) => x(X, g)), q = J(() => (g) => {\n const X = Te(/* @__PURE__ */ new Date(), { year: _.value(g) });\n return ul({\n start: oa(X),\n end: wn(X)\n }).map((A) => {\n const p = il(A), se = an(A), I = H(A), D = S(p), V = Y(p);\n return {\n text: oe(p, se),\n value: p,\n active: ee.value(p),\n highlighted: V,\n disabled: I,\n isBetween: D\n };\n });\n }), de = (g) => {\n Xa(g, v, L.value.limit), t(\"auto-apply\", !0);\n }, ve = (g) => {\n v.value = Ja(v, g, t), va(v.value, t, e.autoApply, e.modelAuto);\n }, y = (g) => {\n v.value = g, t(\"auto-apply\");\n };\n return {\n defaultedConfig: n,\n defaultedMultiCalendars: a,\n groupedYears: U,\n year: _,\n isDisabled: B,\n quarters: q,\n showYearPicker: f,\n modelValue: v,\n setHoverDate: (g) => {\n l.value = g;\n },\n selectYear: E,\n selectQuarter: (g, X, A) => {\n if (!A)\n return C.value[X].month = De(an(g)), L.value.enabled ? de(g) : d.value.enabled ? ve(g) : y(g);\n },\n toggleYearPicker: P,\n handleYearSelect: Q,\n handleYear: ae\n };\n}, Fr = { class: \"dp--quarter-items\" }, Lr = [\"data-test\", \"disabled\", \"onClick\", \"onMouseover\"], zr = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"QuarterPicker\",\n props: {\n ...rt\n },\n emits: [\n \"update:internal-model-value\",\n \"reset-flow\",\n \"overlay-closed\",\n \"auto-apply\",\n \"range-start\",\n \"range-end\",\n \"overlay-toggle\",\n \"update-month-year\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, i = Pt(), d = Je(i, \"yearMode\"), {\n defaultedMultiCalendars: b,\n defaultedConfig: c,\n groupedYears: L,\n year: v,\n isDisabled: _,\n quarters: h,\n modelValue: C,\n showYearPicker: H,\n setHoverDate: E,\n selectQuarter: U,\n toggleYearPicker: f,\n handleYearSelect: B,\n handleYear: P\n } = Er(n, a);\n return t({ getSidebarProps: () => ({\n modelValue: C,\n year: v,\n selectQuarter: U,\n handleYearSelect: B,\n handleYear: P\n }) }), (ae, oe) => (T(), $e(fa, {\n \"multi-calendars\": o(b).count,\n collapse: ae.collapse,\n stretch: \"\"\n }, {\n default: ke(({ instance: ee }) => [\n ye(\"div\", {\n class: \"dp-quarter-picker-wrap\",\n style: tt({ minHeight: `${o(c).modeHeight}px` })\n }, [\n ae.$slots[\"top-extra\"] ? ie(ae.$slots, \"top-extra\", {\n key: 0,\n value: ae.internalModelValue\n }) : Z(\"\", !0),\n ye(\"div\", null, [\n Ze(En, Ee(ae.$props, {\n items: o(L)(ee),\n instance: ee,\n \"show-year-picker\": o(H)[ee],\n year: o(v)(ee),\n \"is-disabled\": (S) => o(_)(ee, S),\n onHandleYear: (S) => o(P)(ee, S),\n onYearSelect: (S) => o(B)(S, ee),\n onToggleYearPicker: (S) => o(f)(ee, S == null ? void 0 : S.flow, S == null ? void 0 : S.show)\n }), Ve({ _: 2 }, [\n Re(o(d), (S, x) => ({\n name: S,\n fn: ke((Y) => [\n ie(ae.$slots, S, Ne(Qe(Y)))\n ])\n }))\n ]), 1040, [\"items\", \"instance\", \"show-year-picker\", \"year\", \"is-disabled\", \"onHandleYear\", \"onYearSelect\", \"onToggleYearPicker\"])\n ]),\n ye(\"div\", Fr, [\n (T(!0), K(be, null, Re(o(h)(ee), (S, x) => (T(), K(\"div\", { key: x }, [\n ye(\"button\", {\n type: \"button\",\n class: we([\"dp--qr-btn\", {\n \"dp--qr-btn-active\": S.active,\n \"dp--qr-btn-between\": S.isBetween,\n \"dp--qr-btn-disabled\": S.disabled,\n \"dp--highlighted\": S.highlighted\n }]),\n \"data-test\": S.value,\n disabled: S.disabled,\n onClick: (Y) => o(U)(S.value, ee, S.disabled),\n onMouseover: (Y) => o(E)(S.value)\n }, [\n ae.$slots.quarter ? ie(ae.$slots, \"quarter\", {\n key: 0,\n value: S.value,\n text: S.text\n }) : (T(), K(be, { key: 1 }, [\n ct(Ue(S.text), 1)\n ], 64))\n ], 42, Lr)\n ]))), 128))\n ])\n ], 4)\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\"]));\n }\n}), Hr = [\"id\", \"tabindex\", \"role\", \"aria-label\"], Ur = {\n key: 0,\n class: \"dp--menu-load-container\"\n}, Vr = {\n key: 1,\n class: \"dp--menu-header\"\n}, Wr = {\n key: 0,\n class: \"dp__sidebar_left\"\n}, jr = [\"data-test\", \"onClick\", \"onKeydown\"], Kr = {\n key: 2,\n class: \"dp__sidebar_right\"\n}, Gr = {\n key: 3,\n class: \"dp__action_extra\"\n}, mn = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"DatepickerMenu\",\n props: {\n ...ca,\n shadow: { type: Boolean, default: !1 },\n openOnTop: { type: Boolean, default: !1 },\n internalModelValue: { type: [Date, Array], default: null },\n noOverlayFocus: { type: Boolean, default: !1 },\n collapse: { type: Boolean, default: !1 },\n getInputRect: { type: Function, default: () => ({}) },\n isTextInputDate: { type: Boolean, default: !1 }\n },\n emits: [\n \"close-picker\",\n \"select-date\",\n \"auto-apply\",\n \"time-update\",\n \"flow-step\",\n \"update-month-year\",\n \"invalid-select\",\n \"update:internal-model-value\",\n \"recalculate-position\",\n \"invalid-fixed-range\",\n \"tooltip-open\",\n \"tooltip-close\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"am-pm-change\",\n \"range-start\",\n \"range-end\",\n \"auto-apply-invalid\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, i = ne(null), d = J(() => {\n const { openOnTop: w, ...N } = n;\n return {\n ...N,\n flowStep: x.value,\n collapse: n.collapse,\n noOverlayFocus: n.noOverlayFocus,\n menuWrapRef: i.value\n };\n }), { setMenuFocused: b, setShiftKey: c, control: L } = Nn(), v = Pt(), { defaultedTextInput: _, defaultedInline: h, defaultedConfig: C, defaultedUI: H } = Ce(n), E = ne(null), U = ne(0), f = ne(null), B = ne(!1), P = ne(null);\n We(() => {\n if (!n.shadow) {\n B.value = !0, Q(), window.addEventListener(\"resize\", Q);\n const w = Ie(i);\n if (w && !_.value.enabled && !h.value.enabled && (b(!0), te()), w) {\n const N = (ce) => {\n C.value.allowPreventDefault && ce.preventDefault(), yt(ce, C.value, !0);\n };\n w.addEventListener(\"pointerdown\", N), w.addEventListener(\"mousedown\", N);\n }\n }\n }), ua(() => {\n window.removeEventListener(\"resize\", Q);\n });\n const Q = () => {\n const w = Ie(f);\n w && (U.value = w.getBoundingClientRect().width);\n }, { arrowRight: ae, arrowLeft: oe, arrowDown: ee, arrowUp: S } = bt(), { flowStep: x, updateFlowStep: Y, childMount: q, resetFlow: de, handleFlow: ve } = Zr(n, a, P), y = J(() => n.monthPicker ? rr : n.yearPicker ? sr : n.timePicker ? kr : n.quarterPicker ? zr : Nr), z = J(() => {\n var ce;\n if (C.value.arrowLeft) return C.value.arrowLeft;\n const w = (ce = i.value) == null ? void 0 : ce.getBoundingClientRect(), N = n.getInputRect();\n return (N == null ? void 0 : N.width) < (U == null ? void 0 : U.value) && (N == null ? void 0 : N.left) <= ((w == null ? void 0 : w.left) ?? 0) ? `${(N == null ? void 0 : N.width) / 2}px` : (N == null ? void 0 : N.right) >= ((w == null ? void 0 : w.right) ?? 0) && (N == null ? void 0 : N.width) < (U == null ? void 0 : U.value) ? `${(U == null ? void 0 : U.value) - (N == null ? void 0 : N.width) / 2}px` : \"50%\";\n }), te = () => {\n const w = Ie(i);\n w && w.focus({ preventScroll: !0 });\n }, g = J(() => {\n var w;\n return ((w = P.value) == null ? void 0 : w.getSidebarProps()) || {};\n }), X = () => {\n n.openOnTop && a(\"recalculate-position\");\n }, A = Je(v, \"action\"), p = J(() => n.monthPicker || n.yearPicker ? Je(v, \"monthYear\") : n.timePicker ? Je(v, \"timePicker\") : Je(v, \"shared\")), se = J(() => n.openOnTop ? \"dp__arrow_bottom\" : \"dp__arrow_top\"), I = J(() => ({\n dp__menu_disabled: n.disabled,\n dp__menu_readonly: n.readonly,\n \"dp-menu-loading\": n.loading\n })), D = J(\n () => ({\n dp__menu: !0,\n dp__menu_index: !h.value.enabled,\n dp__relative: h.value.enabled,\n ...H.value.menu ?? {}\n })\n ), V = (w) => {\n yt(w, C.value, !0);\n }, s = () => {\n n.escClose && a(\"close-picker\");\n }, M = (w) => {\n if (n.arrowNavigation) {\n if (w === je.up) return S();\n if (w === je.down) return ee();\n if (w === je.left) return oe();\n if (w === je.right) return ae();\n } else w === je.left || w === je.up ? $(\"handleArrow\", je.left, 0, w === je.up) : $(\"handleArrow\", je.right, 0, w === je.down);\n }, F = (w) => {\n c(w.shiftKey), !n.disableMonthYearSelect && w.code === Pe.tab && w.target.classList.contains(\"dp__menu\") && L.value.shiftKeyInMenu && (w.preventDefault(), yt(w, C.value, !0), a(\"close-picker\"));\n }, u = () => {\n te(), a(\"time-picker-close\");\n }, le = (w) => {\n var N, ce, he;\n (N = P.value) == null || N.toggleTimePicker(!1, !1), (ce = P.value) == null || ce.toggleMonthPicker(!1, !1, w), (he = P.value) == null || he.toggleYearPicker(!1, !1, w);\n }, me = (w, N = 0) => {\n var ce, he, et;\n return w === \"month\" ? (ce = P.value) == null ? void 0 : ce.toggleMonthPicker(!1, !0, N) : w === \"year\" ? (he = P.value) == null ? void 0 : he.toggleYearPicker(!1, !0, N) : w === \"time\" ? (et = P.value) == null ? void 0 : et.toggleTimePicker(!0, !1) : le(N);\n }, $ = (w, ...N) => {\n var ce, he;\n (ce = P.value) != null && ce[w] && ((he = P.value) == null || he[w](...N));\n }, ge = () => {\n $(\"selectCurrentDate\");\n }, r = (w, N) => {\n $(\"presetDate\", w, N);\n }, R = () => {\n $(\"clearHoverDate\");\n }, O = (w, N) => {\n $(\"updateMonthYear\", w, N);\n }, W = (w, N) => {\n w.preventDefault(), M(N);\n }, ue = (w) => {\n var N, ce, he;\n if (F(w), w.key === Pe.home || w.key === Pe.end)\n return $(\n \"selectWeekDate\",\n w.key === Pe.home,\n w.target.getAttribute(\"id\")\n );\n switch ((w.key === Pe.pageUp || w.key === Pe.pageDown) && (w.shiftKey ? ($(\"changeYear\", w.key === Pe.pageUp), (N = Ea(i.value, \"overlay-year\")) == null || N.focus()) : ($(\"changeMonth\", w.key === Pe.pageUp), (ce = Ea(i.value, w.key === Pe.pageUp ? \"action-prev\" : \"action-next\")) == null || ce.focus()), w.target.getAttribute(\"id\") && ((he = i.value) == null || he.focus({ preventScroll: !0 }))), w.key) {\n case Pe.esc:\n return s();\n case Pe.arrowLeft:\n return W(w, je.left);\n case Pe.arrowRight:\n return W(w, je.right);\n case Pe.arrowUp:\n return W(w, je.up);\n case Pe.arrowDown:\n return W(w, je.down);\n default:\n return;\n }\n };\n return t({\n updateMonthYear: O,\n switchView: me,\n handleFlow: ve\n }), (w, N) => {\n var ce, he, et;\n return T(), K(\"div\", {\n id: w.uid ? `dp-menu-${w.uid}` : void 0,\n ref_key: \"dpMenuRef\",\n ref: i,\n tabindex: o(h).enabled ? void 0 : \"0\",\n role: o(h).enabled ? void 0 : \"dialog\",\n \"aria-label\": (ce = w.ariaLabels) == null ? void 0 : ce.menu,\n class: we(D.value),\n style: tt({ \"--dp-arrow-left\": z.value }),\n onMouseleave: R,\n onClick: V,\n onKeydown: ue\n }, [\n (w.disabled || w.readonly) && o(h).enabled || w.loading ? (T(), K(\"div\", {\n key: 0,\n class: we(I.value)\n }, [\n w.loading ? (T(), K(\"div\", Ur, N[19] || (N[19] = [\n ye(\"span\", { class: \"dp--menu-loader\" }, null, -1)\n ]))) : Z(\"\", !0)\n ], 2)) : Z(\"\", !0),\n w.$slots[\"menu-header\"] ? (T(), K(\"div\", Vr, [\n ie(w.$slots, \"menu-header\")\n ])) : Z(\"\", !0),\n !o(h).enabled && !w.teleportCenter ? (T(), K(\"div\", {\n key: 2,\n class: we(se.value)\n }, null, 2)) : Z(\"\", !0),\n ye(\"div\", {\n ref_key: \"innerMenuRef\",\n ref: f,\n class: we({\n dp__menu_content_wrapper: ((he = w.presetDates) == null ? void 0 : he.length) || !!w.$slots[\"left-sidebar\"] || !!w.$slots[\"right-sidebar\"],\n \"dp--menu-content-wrapper-collapsed\": e.collapse && (((et = w.presetDates) == null ? void 0 : et.length) || !!w.$slots[\"left-sidebar\"] || !!w.$slots[\"right-sidebar\"])\n }),\n style: tt({ \"--dp-menu-width\": `${U.value}px` })\n }, [\n w.$slots[\"left-sidebar\"] ? (T(), K(\"div\", Wr, [\n ie(w.$slots, \"left-sidebar\", Ne(Qe(g.value)))\n ])) : Z(\"\", !0),\n w.presetDates.length ? (T(), K(\"div\", {\n key: 1,\n class: we({ \"dp--preset-dates-collapsed\": e.collapse, \"dp--preset-dates\": !0 })\n }, [\n (T(!0), K(be, null, Re(w.presetDates, (fe, vt) => (T(), K(be, { key: vt }, [\n fe.slot ? ie(w.$slots, fe.slot, {\n key: 0,\n presetDate: r,\n label: fe.label,\n value: fe.value\n }) : (T(), K(\"button\", {\n key: 1,\n type: \"button\",\n style: tt(fe.style || {}),\n class: we([\"dp__btn dp--preset-range\", { \"dp--preset-range-collapsed\": e.collapse }]),\n \"data-test\": fe.testId ?? void 0,\n onClick: Wt((ot) => r(fe.value, fe.noTz), [\"prevent\"]),\n onKeydown: (ot) => o(Ke)(ot, () => r(fe.value, fe.noTz), !0)\n }, Ue(fe.label), 47, jr))\n ], 64))), 128))\n ], 2)) : Z(\"\", !0),\n ye(\"div\", {\n ref_key: \"calendarWrapperRef\",\n ref: E,\n class: \"dp__instance_calendar\",\n role: \"document\"\n }, [\n (T(), $e(ia(y.value), Ee({\n ref_key: \"dynCmpRef\",\n ref: P\n }, d.value, {\n \"flow-step\": o(x),\n onMount: o(q),\n onUpdateFlowStep: o(Y),\n onResetFlow: o(de),\n onFocusMenu: te,\n onSelectDate: N[0] || (N[0] = (fe) => w.$emit(\"select-date\")),\n onDateUpdate: N[1] || (N[1] = (fe) => w.$emit(\"date-update\", fe)),\n onTooltipOpen: N[2] || (N[2] = (fe) => w.$emit(\"tooltip-open\", fe)),\n onTooltipClose: N[3] || (N[3] = (fe) => w.$emit(\"tooltip-close\", fe)),\n onAutoApply: N[4] || (N[4] = (fe) => w.$emit(\"auto-apply\", fe)),\n onRangeStart: N[5] || (N[5] = (fe) => w.$emit(\"range-start\", fe)),\n onRangeEnd: N[6] || (N[6] = (fe) => w.$emit(\"range-end\", fe)),\n onInvalidFixedRange: N[7] || (N[7] = (fe) => w.$emit(\"invalid-fixed-range\", fe)),\n onTimeUpdate: N[8] || (N[8] = (fe) => w.$emit(\"time-update\")),\n onAmPmChange: N[9] || (N[9] = (fe) => w.$emit(\"am-pm-change\", fe)),\n onTimePickerOpen: N[10] || (N[10] = (fe) => w.$emit(\"time-picker-open\", fe)),\n onTimePickerClose: u,\n onRecalculatePosition: X,\n onUpdateMonthYear: N[11] || (N[11] = (fe) => w.$emit(\"update-month-year\", fe)),\n onAutoApplyInvalid: N[12] || (N[12] = (fe) => w.$emit(\"auto-apply-invalid\", fe)),\n onInvalidDate: N[13] || (N[13] = (fe) => w.$emit(\"invalid-date\", fe)),\n onOverlayToggle: N[14] || (N[14] = (fe) => w.$emit(\"overlay-toggle\", fe)),\n \"onUpdate:internalModelValue\": N[15] || (N[15] = (fe) => w.$emit(\"update:internal-model-value\", fe))\n }), Ve({ _: 2 }, [\n Re(p.value, (fe, vt) => ({\n name: fe,\n fn: ke((ot) => [\n ie(w.$slots, fe, Ne(Qe({ ...ot })))\n ])\n }))\n ]), 1040, [\"flow-step\", \"onMount\", \"onUpdateFlowStep\", \"onResetFlow\"]))\n ], 512),\n w.$slots[\"right-sidebar\"] ? (T(), K(\"div\", Kr, [\n ie(w.$slots, \"right-sidebar\", Ne(Qe(g.value)))\n ])) : Z(\"\", !0),\n w.$slots[\"action-extra\"] ? (T(), K(\"div\", Gr, [\n w.$slots[\"action-extra\"] ? ie(w.$slots, \"action-extra\", {\n key: 0,\n selectCurrentDate: ge\n }) : Z(\"\", !0)\n ])) : Z(\"\", !0)\n ], 6),\n !w.autoApply || o(C).keepActionRow ? (T(), $e(Jl, Ee({\n key: 3,\n \"menu-mount\": B.value\n }, d.value, {\n \"calendar-width\": U.value,\n onClosePicker: N[16] || (N[16] = (fe) => w.$emit(\"close-picker\")),\n onSelectDate: N[17] || (N[17] = (fe) => w.$emit(\"select-date\")),\n onInvalidSelect: N[18] || (N[18] = (fe) => w.$emit(\"invalid-select\")),\n onSelectNow: ge\n }), Ve({ _: 2 }, [\n Re(o(A), (fe, vt) => ({\n name: fe,\n fn: ke((ot) => [\n ie(w.$slots, fe, Ne(Qe({ ...ot })))\n ])\n }))\n ]), 1040, [\"menu-mount\", \"calendar-width\"])) : Z(\"\", !0)\n ], 46, Hr);\n };\n }\n});\nvar Ct = /* @__PURE__ */ ((e) => (e.center = \"center\", e.left = \"left\", e.right = \"right\", e))(Ct || {});\nconst Qr = ({\n menuRef: e,\n menuRefInner: t,\n inputRef: l,\n pickerWrapperRef: a,\n inline: n,\n emit: i,\n props: d,\n slots: b\n}) => {\n const { defaultedConfig: c } = Ce(d), L = ne({}), v = ne(!1), _ = ne({\n top: \"0\",\n left: \"0\"\n }), h = ne(!1), C = Vt(d, \"teleportCenter\");\n at(C, () => {\n _.value = JSON.parse(JSON.stringify({})), ae();\n });\n const H = (g) => {\n if (d.teleport) {\n const X = g.getBoundingClientRect();\n return {\n left: X.left + window.scrollX,\n top: X.top + window.scrollY\n };\n }\n return { top: 0, left: 0 };\n }, E = (g, X) => {\n _.value.left = `${g + X - L.value.width}px`;\n }, U = (g) => {\n _.value.left = `${g}px`;\n }, f = (g, X) => {\n d.position === Ct.left && U(g), d.position === Ct.right && E(g, X), d.position === Ct.center && (_.value.left = `${g + X / 2 - L.value.width / 2}px`);\n }, B = (g) => {\n const { width: X, height: A } = g.getBoundingClientRect(), { top: p, left: se } = d.altPosition ? d.altPosition(g) : H(g);\n return { top: +p, left: +se, width: X, height: A };\n }, P = () => {\n _.value.left = \"50%\", _.value.top = \"50%\", _.value.transform = \"translate(-50%, -50%)\", _.value.position = \"fixed\", delete _.value.opacity;\n }, Q = () => {\n const g = Ie(l), { top: X, left: A, transform: p } = d.altPosition(g);\n _.value = { top: `${X}px`, left: `${A}px`, transform: p ?? \"\" };\n }, ae = (g = !0) => {\n var X;\n if (!n.value.enabled) {\n if (C.value) return P();\n if (d.altPosition !== null) return Q();\n if (g) {\n const A = d.teleport ? (X = t.value) == null ? void 0 : X.$el : e.value;\n A && (L.value = A.getBoundingClientRect()), i(\"recalculate-position\");\n }\n return de();\n }\n }, oe = ({ inputEl: g, left: X, width: A }) => {\n window.screen.width > 768 && !v.value && f(X, A), x(g);\n }, ee = (g) => {\n const { top: X, left: A, height: p, width: se } = B(g);\n _.value.top = `${p + X + +d.offset}px`, h.value = !1, v.value || (_.value.left = `${A + se / 2 - L.value.width / 2}px`), oe({ inputEl: g, left: A, width: se });\n }, S = (g) => {\n const { top: X, left: A, width: p } = B(g);\n _.value.top = `${X - +d.offset - L.value.height}px`, h.value = !0, oe({ inputEl: g, left: A, width: p });\n }, x = (g) => {\n if (d.autoPosition) {\n const { left: X, width: A } = B(g), { left: p, right: se } = L.value;\n if (!v.value) {\n if (Math.abs(p) !== Math.abs(se)) {\n if (p <= 0)\n return v.value = !0, U(X);\n if (se >= document.documentElement.clientWidth)\n return v.value = !0, E(X, A);\n }\n return f(X, A);\n }\n }\n }, Y = () => {\n const g = Ie(l);\n if (g) {\n const { height: X } = L.value, { top: A, height: p } = g.getBoundingClientRect(), I = window.innerHeight - A - p, D = A;\n return X <= I ? Mt.bottom : X > I && X <= D ? Mt.top : I >= D ? Mt.bottom : Mt.top;\n }\n return Mt.bottom;\n }, q = (g) => Y() === Mt.bottom ? ee(g) : S(g), de = () => {\n const g = Ie(l);\n if (g)\n return d.autoPosition ? q(g) : ee(g);\n }, ve = function(g) {\n if (g) {\n const X = g.scrollHeight > g.clientHeight, p = window.getComputedStyle(g).overflowY.indexOf(\"hidden\") !== -1;\n return X && !p;\n }\n return !0;\n }, y = function(g) {\n return !g || g === document.body || g.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? window : ve(g) ? g : y(\n g.assignedSlot && c.value.shadowDom ? g.assignedSlot.parentNode : g.parentNode\n );\n }, z = (g) => {\n if (g)\n switch (d.position) {\n case Ct.left:\n return { left: 0, transform: \"translateX(0)\" };\n case Ct.right:\n return { left: `${g.width}px`, transform: \"translateX(-100%)\" };\n default:\n return { left: `${g.width / 2}px`, transform: \"translateX(-50%)\" };\n }\n return {};\n };\n return {\n openOnTop: h,\n menuStyle: _,\n xCorrect: v,\n setMenuPosition: ae,\n getScrollableParent: y,\n shadowRender: (g, X) => {\n var s, M, F;\n const A = document.createElement(\"div\"), p = (s = Ie(l)) == null ? void 0 : s.getBoundingClientRect();\n A.setAttribute(\"id\", \"dp--temp-container\");\n const se = (M = a.value) != null && M.clientWidth ? a.value : document.body;\n se.append(A);\n const I = z(p), D = c.value.shadowDom ? Object.keys(b).filter(\n (u) => [\"right-sidebar\", \"left-sidebar\", \"top-extra\", \"action-extra\"].includes(u)\n ) : Object.keys(b), V = Qn(\n g,\n {\n ...X,\n shadow: !0,\n style: { opacity: 0, position: \"absolute\", ...I }\n },\n Object.fromEntries(D.map((u) => [u, b[u]]))\n );\n xa(V, A), L.value = (F = V.el) == null ? void 0 : F.getBoundingClientRect(), xa(null, A), se.removeChild(A);\n }\n };\n}, mt = [\n { name: \"clock-icon\", use: [\"time\", \"calendar\", \"shared\"] },\n { name: \"arrow-left\", use: [\"month-year\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"arrow-right\", use: [\"month-year\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"arrow-up\", use: [\"time\", \"calendar\", \"month-year\", \"shared\"] },\n { name: \"arrow-down\", use: [\"time\", \"calendar\", \"month-year\", \"shared\"] },\n { name: \"calendar-icon\", use: [\"month-year\", \"time\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"day\", use: [\"calendar\", \"shared\"] },\n { name: \"month-overlay-value\", use: [\"calendar\", \"month-year\", \"shared\"] },\n { name: \"year-overlay-value\", use: [\"calendar\", \"month-year\", \"shared\", \"year-mode\"] },\n { name: \"year-overlay\", use: [\"month-year\", \"shared\"] },\n { name: \"month-overlay\", use: [\"month-year\", \"shared\"] },\n { name: \"month-overlay-header\", use: [\"month-year\", \"shared\"] },\n { name: \"year-overlay-header\", use: [\"month-year\", \"shared\"] },\n { name: \"hours-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"hours-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"seconds-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"seconds-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"hours\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"month\", use: [\"calendar\", \"month-year\", \"shared\"] },\n { name: \"year\", use: [\"calendar\", \"month-year\", \"shared\", \"year-mode\"] },\n { name: \"action-buttons\", use: [\"action\"] },\n { name: \"action-preview\", use: [\"action\"] },\n { name: \"calendar-header\", use: [\"calendar\", \"shared\"] },\n { name: \"marker-tooltip\", use: [\"calendar\", \"shared\"] },\n { name: \"action-extra\", use: [\"menu\"] },\n { name: \"time-picker-overlay\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"am-pm-button\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"left-sidebar\", use: [\"menu\"] },\n { name: \"right-sidebar\", use: [\"menu\"] },\n { name: \"month-year\", use: [\"month-year\", \"shared\"] },\n { name: \"time-picker\", use: [\"menu\", \"shared\"] },\n { name: \"action-row\", use: [\"action\"] },\n { name: \"marker\", use: [\"calendar\", \"shared\"] },\n { name: \"quarter\", use: [\"shared\"] },\n { name: \"top-extra\", use: [\"shared\", \"month-year\"] },\n { name: \"tp-inline-arrow-up\", use: [\"shared\", \"time\"] },\n { name: \"tp-inline-arrow-down\", use: [\"shared\", \"time\"] },\n { name: \"menu-header\", use: [\"menu\"] }\n], qr = [{ name: \"trigger\" }, { name: \"input-icon\" }, { name: \"clear-icon\" }, { name: \"dp-input\" }], Xr = {\n all: () => mt,\n monthYear: () => mt.filter((e) => e.use.includes(\"month-year\")),\n input: () => qr,\n timePicker: () => mt.filter((e) => e.use.includes(\"time\")),\n action: () => mt.filter((e) => e.use.includes(\"action\")),\n calendar: () => mt.filter((e) => e.use.includes(\"calendar\")),\n menu: () => mt.filter((e) => e.use.includes(\"menu\")),\n shared: () => mt.filter((e) => e.use.includes(\"shared\")),\n yearMode: () => mt.filter((e) => e.use.includes(\"year-mode\"))\n}, Je = (e, t, l) => {\n const a = [];\n return Xr[t]().forEach((n) => {\n e[n.name] && a.push(n.name);\n }), l != null && l.length && l.forEach((n) => {\n n.slot && a.push(n.slot);\n }), a;\n}, Xt = (e) => {\n const t = J(() => (a) => e.value ? a ? e.value.open : e.value.close : \"\"), l = J(() => (a) => e.value ? a ? e.value.menuAppearTop : e.value.menuAppearBottom : \"\");\n return { transitionName: t, showTransition: !!e.value, menuTransition: l };\n}, Jt = (e, t, l) => {\n const { defaultedRange: a, defaultedTz: n } = Ce(e), i = G(qe(G(), n.value.timezone)), d = ne([{ month: De(i), year: pe(i) }]), b = (h) => {\n const C = {\n hours: ft(i),\n minutes: ht(i),\n seconds: 0\n };\n return a.value.enabled ? [C[h], C[h]] : C[h];\n }, c = Qt({\n hours: b(\"hours\"),\n minutes: b(\"minutes\"),\n seconds: b(\"seconds\")\n });\n at(\n a,\n (h, C) => {\n h.enabled !== C.enabled && (c.hours = b(\"hours\"), c.minutes = b(\"minutes\"), c.seconds = b(\"seconds\"));\n },\n { deep: !0 }\n );\n const L = J({\n get: () => e.internalModelValue,\n set: (h) => {\n !e.readonly && !e.disabled && t(\"update:internal-model-value\", h);\n }\n }), v = J(\n () => (h) => d.value[h] ? d.value[h].month : 0\n ), _ = J(\n () => (h) => d.value[h] ? d.value[h].year : 0\n );\n return at(\n L,\n (h, C) => {\n l && JSON.stringify(h ?? {}) !== JSON.stringify(C ?? {}) && l();\n },\n { deep: !0 }\n ), {\n calendars: d,\n time: c,\n modelValue: L,\n month: v,\n year: _,\n today: i\n };\n}, Jr = (e, t) => {\n const {\n defaultedMultiCalendars: l,\n defaultedMultiDates: a,\n defaultedUI: n,\n defaultedHighlight: i,\n defaultedTz: d,\n propDates: b,\n defaultedRange: c\n } = Ce(t), { isDisabled: L } = kt(t), v = ne(null), _ = ne(qe(/* @__PURE__ */ new Date(), d.value.timezone)), h = (s) => {\n !s.current && t.hideOffsetDates || (v.value = s.value);\n }, C = () => {\n v.value = null;\n }, H = (s) => Array.isArray(e.value) && c.value.enabled && e.value[0] && v.value ? s ? Be(v.value, e.value[0]) : Oe(v.value, e.value[0]) : !0, E = (s, M) => {\n const F = () => e.value ? M ? e.value[0] || null : e.value[1] : null, u = e.value && Array.isArray(e.value) ? F() : null;\n return Me(G(s.value), u);\n }, U = (s) => {\n const M = Array.isArray(e.value) ? e.value[0] : null;\n return s ? !Oe(v.value ?? null, M) : !0;\n }, f = (s, M = !0) => (c.value.enabled || t.weekPicker) && Array.isArray(e.value) && e.value.length === 2 ? t.hideOffsetDates && !s.current ? !1 : Me(G(s.value), e.value[M ? 0 : 1]) : c.value.enabled ? E(s, M) && U(M) || Me(s.value, Array.isArray(e.value) ? e.value[0] : null) && H(M) : !1, B = (s, M) => {\n if (Array.isArray(e.value) && e.value[0] && e.value.length === 1) {\n const F = Me(s.value, v.value);\n return M ? Be(e.value[0], s.value) && F : Oe(e.value[0], s.value) && F;\n }\n return !1;\n }, P = (s) => !e.value || t.hideOffsetDates && !s.current ? !1 : c.value.enabled ? t.modelAuto && Array.isArray(e.value) ? Me(s.value, e.value[0] ? e.value[0] : _.value) : !1 : a.value.enabled && Array.isArray(e.value) ? e.value.some((M) => Me(M, s.value)) : Me(s.value, e.value ? e.value : _.value), Q = (s) => {\n if (c.value.autoRange || t.weekPicker) {\n if (v.value) {\n if (t.hideOffsetDates && !s.current) return !1;\n const M = $t(v.value, +c.value.autoRange), F = it(G(v.value), t.weekStart);\n return t.weekPicker ? Me(F[1], G(s.value)) : Me(M, G(s.value));\n }\n return !1;\n }\n return !1;\n }, ae = (s) => {\n if (c.value.autoRange || t.weekPicker) {\n if (v.value) {\n const M = $t(v.value, +c.value.autoRange);\n if (t.hideOffsetDates && !s.current) return !1;\n const F = it(G(v.value), t.weekStart);\n return t.weekPicker ? Be(s.value, F[0]) && Oe(s.value, F[1]) : Be(s.value, v.value) && Oe(s.value, M);\n }\n return !1;\n }\n return !1;\n }, oe = (s) => {\n if (c.value.autoRange || t.weekPicker) {\n if (v.value) {\n if (t.hideOffsetDates && !s.current) return !1;\n const M = it(G(v.value), t.weekStart);\n return t.weekPicker ? Me(M[0], s.value) : Me(v.value, s.value);\n }\n return !1;\n }\n return !1;\n }, ee = (s) => da(e.value, v.value, s.value), S = () => t.modelAuto && Array.isArray(t.internalModelValue) ? !!t.internalModelValue[0] : !1, x = () => t.modelAuto ? An(t.internalModelValue) : !0, Y = (s) => {\n if (t.weekPicker) return !1;\n const M = c.value.enabled ? !f(s) && !f(s, !1) : !0;\n return !L(s.value) && !P(s) && !(!s.current && t.hideOffsetDates) && M;\n }, q = (s) => c.value.enabled ? t.modelAuto ? S() && P(s) : !1 : P(s), de = (s) => i.value ? Dl(s.value, b.value.highlight) : !1, ve = (s) => {\n const M = L(s.value);\n return M && (typeof i.value == \"function\" ? !i.value(s.value, M) : !i.value.options.highlightDisabled);\n }, y = (s) => {\n var M;\n return typeof i.value == \"function\" ? i.value(s.value) : (M = i.value.weekdays) == null ? void 0 : M.includes(s.value.getDay());\n }, z = (s) => (c.value.enabled || t.weekPicker) && (!(l.value.count > 0) || s.current) && x() && !(!s.current && t.hideOffsetDates) && !P(s) ? ee(s) : !1, te = (s) => {\n const { isRangeStart: M, isRangeEnd: F } = p(s), u = c.value.enabled ? M || F : !1;\n return {\n dp__cell_offset: !s.current,\n dp__pointer: !t.disabled && !(!s.current && t.hideOffsetDates) && !L(s.value),\n dp__cell_disabled: L(s.value),\n dp__cell_highlight: !ve(s) && (de(s) || y(s)) && !q(s) && !u && !oe(s) && !(z(s) && t.weekPicker) && !F,\n dp__cell_highlight_active: !ve(s) && (de(s) || y(s)) && q(s),\n dp__today: !t.noToday && Me(s.value, _.value) && s.current,\n \"dp--past\": Oe(s.value, _.value),\n \"dp--future\": Be(s.value, _.value)\n };\n }, g = (s) => ({\n dp__active_date: q(s),\n dp__date_hover: Y(s)\n }), X = (s) => {\n if (e.value && !Array.isArray(e.value)) {\n const M = it(e.value, t.weekStart);\n return {\n ...I(s),\n dp__range_start: Me(M[0], s.value),\n dp__range_end: Me(M[1], s.value),\n dp__range_between_week: Be(s.value, M[0]) && Oe(s.value, M[1])\n };\n }\n return {\n ...I(s)\n };\n }, A = (s) => {\n if (e.value && Array.isArray(e.value)) {\n const M = it(e.value[0], t.weekStart), F = e.value[1] ? it(e.value[1], t.weekStart) : [];\n return {\n ...I(s),\n dp__range_start: Me(M[0], s.value) || Me(F[0], s.value),\n dp__range_end: Me(M[1], s.value) || Me(F[1], s.value),\n dp__range_between_week: Be(s.value, M[0]) && Oe(s.value, M[1]) || Be(s.value, F[0]) && Oe(s.value, F[1]),\n dp__range_between: Be(s.value, M[1]) && Oe(s.value, F[0])\n };\n }\n return {\n ...I(s)\n };\n }, p = (s) => {\n const M = l.value.count > 0 ? s.current && f(s) && x() : f(s) && x(), F = l.value.count > 0 ? s.current && f(s, !1) && x() : f(s, !1) && x();\n return { isRangeStart: M, isRangeEnd: F };\n }, se = (s) => {\n const { isRangeStart: M, isRangeEnd: F } = p(s);\n return {\n dp__range_start: M,\n dp__range_end: F,\n dp__range_between: z(s),\n dp__date_hover: Me(s.value, v.value) && !M && !F && !t.weekPicker,\n dp__date_hover_start: B(s, !0),\n dp__date_hover_end: B(s, !1)\n };\n }, I = (s) => ({\n ...se(s),\n dp__cell_auto_range: ae(s),\n dp__cell_auto_range_start: oe(s),\n dp__cell_auto_range_end: Q(s)\n }), D = (s) => c.value.enabled ? c.value.autoRange ? I(s) : t.modelAuto ? { ...g(s), ...se(s) } : t.weekPicker ? A(s) : se(s) : t.weekPicker ? X(s) : g(s);\n return {\n setHoverDate: h,\n clearHoverDate: C,\n getDayClassData: (s) => t.hideOffsetDates && !s.current ? {} : {\n ...te(s),\n ...D(s),\n [t.dayClass ? t.dayClass(s.value, t.internalModelValue) : \"\"]: !0,\n ...n.value.calendarCell ?? {}\n }\n };\n}, kt = (e) => {\n const { defaultedFilters: t, defaultedRange: l, propDates: a, defaultedMultiDates: n } = Ce(e), i = (y) => a.value.disabledDates ? typeof a.value.disabledDates == \"function\" ? a.value.disabledDates(G(y)) : !!sa(y, a.value.disabledDates) : !1, d = (y) => a.value.maxDate ? e.yearPicker ? pe(y) > pe(a.value.maxDate) : Be(y, a.value.maxDate) : !1, b = (y) => a.value.minDate ? e.yearPicker ? pe(y) < pe(a.value.minDate) : Oe(y, a.value.minDate) : !1, c = (y) => {\n const z = d(y), te = b(y), g = i(y), A = t.value.months.map((V) => +V).includes(De(y)), p = e.disabledWeekDays.length ? e.disabledWeekDays.some((V) => +V === dl(y)) : !1, se = C(y), I = pe(y), D = I < +e.yearRange[0] || I > +e.yearRange[1];\n return !(z || te || g || A || D || p || se);\n }, L = (y, z) => Oe(...pt(a.value.minDate, y, z)) || Me(...pt(a.value.minDate, y, z)), v = (y, z) => Be(...pt(a.value.maxDate, y, z)) || Me(...pt(a.value.maxDate, y, z)), _ = (y, z, te) => {\n let g = !1;\n return a.value.maxDate && te && v(y, z) && (g = !0), a.value.minDate && !te && L(y, z) && (g = !0), g;\n }, h = (y, z, te, g) => {\n let X = !1;\n return g && (a.value.minDate || a.value.maxDate) ? a.value.minDate && a.value.maxDate ? X = _(y, z, te) : (a.value.minDate && L(y, z) || a.value.maxDate && v(y, z)) && (X = !0) : X = !0, X;\n }, C = (y) => Array.isArray(a.value.allowedDates) && !a.value.allowedDates.length ? !0 : a.value.allowedDates ? !sa(y, a.value.allowedDates) : !1, H = (y) => !c(y), E = (y) => l.value.noDisabledRange ? !pn({ start: y[0], end: y[1] }).some((te) => H(te)) : !0, U = (y) => {\n if (y) {\n const z = pe(y);\n return z >= +e.yearRange[0] && z <= e.yearRange[1];\n }\n return !0;\n }, f = (y, z) => !!(Array.isArray(y) && y[z] && (l.value.maxRange || l.value.minRange) && U(y[z])), B = (y, z, te = 0) => {\n if (f(z, te) && U(y)) {\n const g = cl(y, z[te]), X = Cn(z[te], y), A = X.length === 1 ? 0 : X.filter((se) => H(se)).length, p = Math.abs(g) - (l.value.minMaxRawRange ? 0 : A);\n if (l.value.minRange && l.value.maxRange)\n return p >= +l.value.minRange && p <= +l.value.maxRange;\n if (l.value.minRange) return p >= +l.value.minRange;\n if (l.value.maxRange) return p <= +l.value.maxRange;\n }\n return !0;\n }, P = () => !e.enableTimePicker || e.monthPicker || e.yearPicker || e.ignoreTimeValidation, Q = (y) => Array.isArray(y) ? [y[0] ? Pa(y[0]) : null, y[1] ? Pa(y[1]) : null] : Pa(y), ae = (y, z, te) => y.find(\n (g) => +g.hours === ft(z) && g.minutes === \"*\" ? !0 : +g.minutes === ht(z) && +g.hours === ft(z)\n ) && te, oe = (y, z, te) => {\n const [g, X] = y, [A, p] = z;\n return !ae(g, A, te) && !ae(X, p, te) && te;\n }, ee = (y, z) => {\n const te = Array.isArray(z) ? z : [z];\n return Array.isArray(e.disabledTimes) ? Array.isArray(e.disabledTimes[0]) ? oe(e.disabledTimes, te, y) : !te.some((g) => ae(e.disabledTimes, g, y)) : y;\n }, S = (y, z) => {\n const te = Array.isArray(z) ? [St(z[0]), z[1] ? St(z[1]) : void 0] : St(z), g = !e.disabledTimes(te);\n return y && g;\n }, x = (y, z) => e.disabledTimes ? Array.isArray(e.disabledTimes) ? ee(z, y) : S(z, y) : z, Y = (y) => {\n let z = !0;\n if (!y || P()) return !0;\n const te = !a.value.minDate && !a.value.maxDate ? Q(y) : y;\n return (e.maxTime || a.value.maxDate) && (z = dn(\n e.maxTime,\n a.value.maxDate,\n \"max\",\n Ye(te),\n z\n )), (e.minTime || a.value.minDate) && (z = dn(\n e.minTime,\n a.value.minDate,\n \"min\",\n Ye(te),\n z\n )), x(y, z);\n }, q = (y) => {\n if (!e.monthPicker) return !0;\n let z = !0;\n const te = G(lt(y));\n if (a.value.minDate && a.value.maxDate) {\n const g = G(lt(a.value.minDate)), X = G(lt(a.value.maxDate));\n return Be(te, g) && Oe(te, X) || Me(te, g) || Me(te, X);\n }\n if (a.value.minDate) {\n const g = G(lt(a.value.minDate));\n z = Be(te, g) || Me(te, g);\n }\n if (a.value.maxDate) {\n const g = G(lt(a.value.maxDate));\n z = Oe(te, g) || Me(te, g);\n }\n return z;\n }, de = J(() => (y) => !e.enableTimePicker || e.ignoreTimeValidation ? !0 : Y(y)), ve = J(() => (y) => e.monthPicker ? Array.isArray(y) && (l.value.enabled || n.value.enabled) ? !y.filter((te) => !q(te)).length : q(y) : !0);\n return {\n isDisabled: H,\n validateDate: c,\n validateMonthYearInRange: h,\n isDateRangeAllowed: E,\n checkMinMaxRange: B,\n isValidTime: Y,\n isTimeValid: de,\n isMonthValid: ve\n };\n}, ma = () => {\n const e = J(() => (a, n) => a == null ? void 0 : a.includes(n)), t = J(() => (a, n) => a.count ? a.solo ? !0 : n === 0 : !0), l = J(() => (a, n) => a.count ? a.solo ? !0 : n === a.count - 1 : !0);\n return { hideNavigationButtons: e, showLeftIcon: t, showRightIcon: l };\n}, Zr = (e, t, l) => {\n const a = ne(0), n = Qt({\n [Tt.timePicker]: !e.enableTimePicker || e.timePicker || e.monthPicker,\n [Tt.calendar]: !1,\n [Tt.header]: !1\n }), i = J(() => e.monthPicker || e.timePicker), d = (_) => {\n var h;\n if ((h = e.flow) != null && h.length) {\n if (!_ && i.value) return v();\n n[_] = !0, Object.keys(n).filter((C) => !n[C]).length || v();\n }\n }, b = () => {\n var _, h;\n (_ = e.flow) != null && _.length && a.value !== -1 && (a.value += 1, t(\"flow-step\", a.value), v()), ((h = e.flow) == null ? void 0 : h.length) === a.value && xe().then(() => c());\n }, c = () => {\n a.value = -1;\n }, L = (_, h, ...C) => {\n var H, E;\n e.flow[a.value] === _ && l.value && ((E = (H = l.value)[h]) == null || E.call(H, ...C));\n }, v = (_ = 0) => {\n _ && (a.value += _), L(He.month, \"toggleMonthPicker\", !0), L(He.year, \"toggleYearPicker\", !0), L(He.calendar, \"toggleTimePicker\", !1, !0), L(He.time, \"toggleTimePicker\", !0, !0);\n const h = e.flow[a.value];\n (h === He.hours || h === He.minutes || h === He.seconds) && L(h, \"toggleTimePicker\", !0, !0, h);\n };\n return { childMount: d, updateFlowStep: b, resetFlow: c, handleFlow: v, flowStep: a };\n}, xr = {\n key: 1,\n class: \"dp__input_wrap\"\n}, eo = [\"id\", \"name\", \"inputmode\", \"placeholder\", \"disabled\", \"readonly\", \"required\", \"value\", \"autocomplete\", \"aria-label\", \"aria-disabled\", \"aria-invalid\"], to = {\n key: 2,\n class: \"dp--clear-btn\"\n}, ao = [\"aria-label\"], no = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"DatepickerInput\",\n props: {\n isMenuOpen: { type: Boolean, default: !1 },\n inputValue: { type: String, default: \"\" },\n ...ca\n },\n emits: [\n \"clear\",\n \"open\",\n \"update:input-value\",\n \"set-input-date\",\n \"close\",\n \"select-date\",\n \"set-empty-date\",\n \"toggle\",\n \"focus-prev\",\n \"focus\",\n \"blur\",\n \"real-blur\",\n \"text-input\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, {\n defaultedTextInput: i,\n defaultedAriaLabels: d,\n defaultedInline: b,\n defaultedConfig: c,\n defaultedRange: L,\n defaultedMultiDates: v,\n defaultedUI: _,\n getDefaultPattern: h,\n getDefaultStartTime: C\n } = Ce(n), { checkMinMaxRange: H } = kt(n), E = ne(), U = ne(null), f = ne(!1), B = ne(!1), P = J(\n () => ({\n dp__pointer: !n.disabled && !n.readonly && !i.value.enabled,\n dp__disabled: n.disabled,\n dp__input_readonly: !i.value.enabled,\n dp__input: !0,\n dp__input_icon_pad: !n.hideInputIcon,\n dp__input_valid: typeof n.state == \"boolean\" ? n.state : !1,\n dp__input_invalid: typeof n.state == \"boolean\" ? !n.state : !1,\n dp__input_focus: f.value || n.isMenuOpen,\n dp__input_reg: !i.value.enabled,\n ..._.value.input ?? {}\n })\n ), Q = () => {\n a(\"set-input-date\", null), n.clearable && n.autoApply && (a(\"set-empty-date\"), E.value = null);\n }, ae = (p) => {\n const se = C();\n return Ml(\n p,\n i.value.format ?? h(),\n se ?? On({}, n.enableSeconds),\n n.inputValue,\n B.value,\n n.formatLocale\n );\n }, oe = (p) => {\n const { rangeSeparator: se } = i.value, [I, D] = p.split(`${se}`);\n if (I) {\n const V = ae(I.trim()), s = D ? ae(D.trim()) : null;\n if (_t(V, s)) return;\n const M = V && s ? [V, s] : [V];\n H(s, M, 0) && (E.value = V ? M : null);\n }\n }, ee = () => {\n B.value = !0;\n }, S = (p) => {\n if (L.value.enabled)\n oe(p);\n else if (v.value.enabled) {\n const se = p.split(\";\");\n E.value = se.map((I) => ae(I.trim())).filter((I) => I);\n } else\n E.value = ae(p);\n }, x = (p) => {\n var I;\n const se = typeof p == \"string\" ? p : (I = p.target) == null ? void 0 : I.value;\n se !== \"\" ? (i.value.openMenu && !n.isMenuOpen && a(\"open\"), S(se), a(\"set-input-date\", E.value)) : Q(), B.value = !1, a(\"update:input-value\", se), a(\"text-input\", p, E.value);\n }, Y = (p) => {\n i.value.enabled ? (S(p.target.value), i.value.enterSubmit && Fa(E.value) && n.inputValue !== \"\" ? (a(\"set-input-date\", E.value, !0), E.value = null) : i.value.enterSubmit && n.inputValue === \"\" && (E.value = null, a(\"clear\"))) : ve(p);\n }, q = (p, se) => {\n i.value.enabled && i.value.tabSubmit && !se && S(p.target.value), i.value.tabSubmit && Fa(E.value) && n.inputValue !== \"\" ? (a(\"set-input-date\", E.value, !0, !0), E.value = null) : i.value.tabSubmit && n.inputValue === \"\" && (E.value = null, a(\"clear\", !0));\n }, de = () => {\n f.value = !0, a(\"focus\"), xe().then(() => {\n var p;\n i.value.enabled && i.value.selectOnFocus && ((p = U.value) == null || p.select());\n });\n }, ve = (p) => {\n if (yt(p, c.value, !0), i.value.enabled && i.value.openMenu && !b.value.input) {\n if (i.value.openMenu === \"open\" && !n.isMenuOpen) return a(\"open\");\n if (i.value.openMenu === \"toggle\") return a(\"toggle\");\n } else i.value.enabled || a(\"toggle\");\n }, y = () => {\n a(\"real-blur\"), f.value = !1, (!n.isMenuOpen || b.value.enabled && b.value.input) && a(\"blur\"), n.autoApply && i.value.enabled && E.value && !n.isMenuOpen && (a(\"set-input-date\", E.value), a(\"select-date\"), E.value = null);\n }, z = (p) => {\n yt(p, c.value, !0), a(\"clear\");\n }, te = (p) => {\n if (p.key === \"Tab\" && q(p), p.key === \"Enter\" && Y(p), !i.value.enabled) {\n if (p.code === \"Tab\") return;\n p.preventDefault();\n }\n }, g = () => {\n var p;\n (p = U.value) == null || p.focus({ preventScroll: !0 });\n }, X = (p) => {\n E.value = p;\n }, A = (p) => {\n p.key === Pe.tab && q(p, !0);\n };\n return t({\n focusInput: g,\n setParsedDate: X\n }), (p, se) => {\n var I, D, V;\n return T(), K(\"div\", { onClick: ve }, [\n p.$slots.trigger && !p.$slots[\"dp-input\"] && !o(b).enabled ? ie(p.$slots, \"trigger\", { key: 0 }) : Z(\"\", !0),\n !p.$slots.trigger && (!o(b).enabled || o(b).input) ? (T(), K(\"div\", xr, [\n p.$slots[\"dp-input\"] && !p.$slots.trigger && (!o(b).enabled || o(b).enabled && o(b).input) ? ie(p.$slots, \"dp-input\", {\n key: 0,\n value: e.inputValue,\n isMenuOpen: e.isMenuOpen,\n onInput: x,\n onEnter: Y,\n onTab: q,\n onClear: z,\n onBlur: y,\n onKeypress: te,\n onPaste: ee,\n onFocus: de,\n openMenu: () => p.$emit(\"open\"),\n closeMenu: () => p.$emit(\"close\"),\n toggleMenu: () => p.$emit(\"toggle\")\n }) : Z(\"\", !0),\n p.$slots[\"dp-input\"] ? Z(\"\", !0) : (T(), K(\"input\", {\n key: 1,\n id: p.uid ? `dp-input-${p.uid}` : void 0,\n ref_key: \"inputRef\",\n ref: U,\n \"data-test\": \"dp-input\",\n name: p.name,\n class: we(P.value),\n inputmode: o(i).enabled ? \"text\" : \"none\",\n placeholder: p.placeholder,\n disabled: p.disabled,\n readonly: p.readonly,\n required: p.required,\n value: e.inputValue,\n autocomplete: p.autocomplete,\n \"aria-label\": (I = o(d)) == null ? void 0 : I.input,\n \"aria-disabled\": p.disabled || void 0,\n \"aria-invalid\": p.state === !1 ? !0 : void 0,\n onInput: x,\n onBlur: y,\n onFocus: de,\n onKeypress: te,\n onKeydown: se[0] || (se[0] = (s) => te(s)),\n onPaste: ee\n }, null, 42, eo)),\n ye(\"div\", {\n onClick: se[3] || (se[3] = (s) => a(\"toggle\"))\n }, [\n p.$slots[\"input-icon\"] && !p.hideInputIcon ? (T(), K(\"span\", {\n key: 0,\n class: \"dp__input_icon\",\n onClick: se[1] || (se[1] = (s) => a(\"toggle\"))\n }, [\n ie(p.$slots, \"input-icon\")\n ])) : Z(\"\", !0),\n !p.$slots[\"input-icon\"] && !p.hideInputIcon && !p.$slots[\"dp-input\"] ? (T(), $e(o(Et), {\n key: 1,\n \"aria-label\": (D = o(d)) == null ? void 0 : D.calendarIcon,\n class: \"dp__input_icon dp__input_icons\",\n onClick: se[2] || (se[2] = (s) => a(\"toggle\"))\n }, null, 8, [\"aria-label\"])) : Z(\"\", !0)\n ]),\n p.$slots[\"clear-icon\"] && e.inputValue && p.clearable && !p.disabled && !p.readonly ? (T(), K(\"span\", to, [\n ie(p.$slots, \"clear-icon\", { clear: z })\n ])) : Z(\"\", !0),\n p.clearable && !p.$slots[\"clear-icon\"] && e.inputValue && !p.disabled && !p.readonly ? (T(), K(\"button\", {\n key: 3,\n \"aria-label\": (V = o(d)) == null ? void 0 : V.clearInput,\n class: \"dp--clear-btn\",\n type: \"button\",\n onKeydown: se[4] || (se[4] = (s) => o(Ke)(s, () => z(s), !0, A)),\n onClick: se[5] || (se[5] = Wt((s) => z(s), [\"prevent\"]))\n }, [\n Ze(o(Mn), {\n class: \"dp__input_icons\",\n \"data-test\": \"clear-icon\"\n })\n ], 40, ao)) : Z(\"\", !0)\n ])) : Z(\"\", !0)\n ]);\n };\n }\n}), lo = typeof window < \"u\" ? window : void 0, Ya = () => {\n}, ro = (e) => qn() ? (Xn(e), !0) : !1, oo = (e, t, l, a) => {\n if (!e) return Ya;\n let n = Ya;\n const i = at(\n () => o(e),\n (b) => {\n n(), b && (b.addEventListener(t, l, a), n = () => {\n b.removeEventListener(t, l, a), n = Ya;\n });\n },\n { immediate: !0, flush: \"post\" }\n ), d = () => {\n i(), n();\n };\n return ro(d), d;\n}, so = (e, t, l, a = {}) => {\n const { window: n = lo, event: i = \"pointerdown\" } = a;\n return n ? oo(n, i, (b) => {\n const c = Ie(e), L = Ie(t);\n !c || !L || c === b.target || b.composedPath().includes(c) || b.composedPath().includes(L) || l(b);\n }, { passive: !0 }) : void 0;\n}, uo = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"VueDatePicker\",\n props: {\n ...ca\n },\n emits: [\n \"update:model-value\",\n \"update:model-timezone-value\",\n \"text-submit\",\n \"closed\",\n \"cleared\",\n \"open\",\n \"focus\",\n \"blur\",\n \"internal-model-change\",\n \"recalculate-position\",\n \"flow-step\",\n \"update-month-year\",\n \"invalid-select\",\n \"invalid-fixed-range\",\n \"tooltip-open\",\n \"tooltip-close\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"am-pm-change\",\n \"range-start\",\n \"range-end\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\",\n \"text-input\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, i = Pt(), d = ne(!1), b = Vt(n, \"modelValue\"), c = Vt(n, \"timezone\"), L = ne(null), v = ne(null), _ = ne(null), h = ne(!1), C = ne(null), H = ne(!1), E = ne(!1), U = ne(!1), f = ne(!1), { setMenuFocused: B, setShiftKey: P } = Nn(), { clearArrowNav: Q } = bt(), { validateDate: ae, isValidTime: oe } = kt(n), {\n defaultedTransitions: ee,\n defaultedTextInput: S,\n defaultedInline: x,\n defaultedConfig: Y,\n defaultedRange: q,\n defaultedMultiDates: de\n } = Ce(n), { menuTransition: ve, showTransition: y } = Xt(ee);\n We(() => {\n s(n.modelValue), xe().then(() => {\n if (!x.value.enabled) {\n const m = se(C.value);\n m == null || m.addEventListener(\"scroll\", O), window == null || window.addEventListener(\"resize\", W);\n }\n }), x.value.enabled && (d.value = !0), window == null || window.addEventListener(\"keyup\", ue), window == null || window.addEventListener(\"keydown\", w);\n }), ua(() => {\n if (!x.value.enabled) {\n const m = se(C.value);\n m == null || m.removeEventListener(\"scroll\", O), window == null || window.removeEventListener(\"resize\", W);\n }\n window == null || window.removeEventListener(\"keyup\", ue), window == null || window.removeEventListener(\"keydown\", w);\n });\n const z = Je(i, \"all\", n.presetDates), te = Je(i, \"input\");\n at(\n [b, c],\n () => {\n s(b.value);\n },\n { deep: !0 }\n );\n const { openOnTop: g, menuStyle: X, xCorrect: A, setMenuPosition: p, getScrollableParent: se, shadowRender: I } = Qr({\n menuRef: L,\n menuRefInner: v,\n inputRef: _,\n pickerWrapperRef: C,\n inline: x,\n emit: a,\n props: n,\n slots: i\n }), {\n inputValue: D,\n internalModelValue: V,\n parseExternalModelValue: s,\n emitModelValue: M,\n formatInputValue: F,\n checkBeforeEmit: u\n } = Gl(a, n, h), le = J(\n () => ({\n dp__main: !0,\n dp__theme_dark: n.dark,\n dp__theme_light: !n.dark,\n dp__flex_display: x.value.enabled,\n \"dp--flex-display-collapsed\": U.value,\n dp__flex_display_with_input: x.value.input\n })\n ), me = J(() => n.dark ? \"dp__theme_dark\" : \"dp__theme_light\"), $ = J(() => n.teleport ? {\n to: typeof n.teleport == \"boolean\" ? \"body\" : n.teleport,\n disabled: !n.teleport || x.value.enabled\n } : {}), ge = J(() => ({ class: \"dp__outer_menu_wrap\" })), r = J(() => x.value.enabled && (n.timePicker || n.monthPicker || n.yearPicker || n.quarterPicker)), R = () => {\n var m, j;\n return (j = (m = _.value) == null ? void 0 : m.$el) == null ? void 0 : j.getBoundingClientRect();\n }, O = () => {\n d.value && (Y.value.closeOnScroll ? Xe() : p());\n }, W = () => {\n var j;\n d.value && p();\n const m = (j = v.value) == null ? void 0 : j.$el.getBoundingClientRect().width;\n U.value = document.body.offsetWidth <= m;\n }, ue = (m) => {\n m.key === \"Tab\" && !x.value.enabled && !n.teleport && Y.value.tabOutClosesMenu && (C.value.contains(document.activeElement) || Xe()), E.value = m.shiftKey;\n }, w = (m) => {\n E.value = m.shiftKey;\n }, N = () => {\n !n.disabled && !n.readonly && (I(mn, n), p(!1), d.value = !0, d.value && a(\"open\"), d.value || Ft(), s(n.modelValue));\n }, ce = () => {\n var m;\n D.value = \"\", Ft(), (m = _.value) == null || m.setParsedDate(null), a(\"update:model-value\", null), a(\"update:model-timezone-value\", null), a(\"cleared\"), Y.value.closeOnClearValue && Xe();\n }, he = () => {\n const m = V.value;\n return !m || !Array.isArray(m) && ae(m) ? !0 : Array.isArray(m) ? de.value.enabled || m.length === 2 && ae(m[0]) && ae(m[1]) ? !0 : q.value.partialRange && !n.timePicker ? ae(m[0]) : !1 : !1;\n }, et = () => {\n u() && he() ? (M(), Xe()) : a(\"invalid-select\", V.value);\n }, fe = (m) => {\n vt(), M(), Y.value.closeOnAutoApply && !m && Xe();\n }, vt = () => {\n _.value && S.value.enabled && _.value.setParsedDate(V.value);\n }, ot = (m = !1) => {\n n.autoApply && oe(V.value) && he() && (q.value.enabled && Array.isArray(V.value) ? (q.value.partialRange || V.value.length === 2) && fe(m) : fe(m));\n }, Ft = () => {\n S.value.enabled || (V.value = null);\n }, Xe = () => {\n x.value.enabled || (d.value && (d.value = !1, A.value = !1, B(!1), P(!1), Q(), a(\"closed\"), D.value && s(b.value)), Ft(), a(\"blur\"));\n }, Lt = (m, j, re = !1) => {\n if (!m) {\n V.value = null;\n return;\n }\n const Ae = Array.isArray(m) ? !m.some((wt) => !ae(wt)) : ae(m), Fe = oe(m);\n Ae && Fe ? (f.value = !0, V.value = m, j && (H.value = re, et(), a(\"text-submit\")), xe().then(() => {\n f.value = !1;\n })) : a(\"invalid-date\", m);\n }, pa = () => {\n n.autoApply && oe(V.value) && M(), vt();\n }, Zt = () => d.value ? Xe() : N(), ya = (m) => {\n V.value = m;\n }, ga = () => {\n S.value.enabled && (h.value = !0, F()), a(\"focus\");\n }, ha = () => {\n if (S.value.enabled && (h.value = !1, s(n.modelValue), H.value)) {\n const m = wl(C.value, E.value);\n m == null || m.focus();\n }\n a(\"blur\");\n }, ba = (m) => {\n v.value && v.value.updateMonthYear(0, {\n month: rn(m.month),\n year: rn(m.year)\n });\n }, ka = (m) => {\n s(m ?? n.modelValue);\n }, wa = (m, j) => {\n var re;\n (re = v.value) == null || re.switchView(m, j);\n }, Za = (m) => Y.value.onClickOutside ? Y.value.onClickOutside(m) : Xe(), k = (m = 0) => {\n var j;\n (j = v.value) == null || j.handleFlow(m);\n };\n return so(L, _, () => Za(he)), t({\n closeMenu: Xe,\n selectDate: et,\n clearValue: ce,\n openMenu: N,\n onScroll: O,\n formatInputValue: F,\n // exposed for testing purposes\n updateInternalModelValue: ya,\n // modify internal modelValue\n setMonthYear: ba,\n parseModel: ka,\n switchView: wa,\n toggleMenu: Zt,\n handleFlow: k,\n dpWrapMenuRef: L\n }), (m, j) => (T(), K(\"div\", {\n ref_key: \"pickerWrapperRef\",\n ref: C,\n class: we(le.value),\n \"data-datepicker-instance\": \"\"\n }, [\n Ze(no, Ee({\n ref_key: \"inputRef\",\n ref: _,\n \"input-value\": o(D),\n \"onUpdate:inputValue\": j[0] || (j[0] = (re) => en(D) ? D.value = re : null),\n \"is-menu-open\": d.value\n }, m.$props, {\n onClear: ce,\n onOpen: N,\n onSetInputDate: Lt,\n onSetEmptyDate: o(M),\n onSelectDate: et,\n onToggle: Zt,\n onClose: Xe,\n onFocus: ga,\n onBlur: ha,\n onRealBlur: j[1] || (j[1] = (re) => h.value = !1),\n onTextInput: j[2] || (j[2] = (re) => m.$emit(\"text-input\", re))\n }), Ve({ _: 2 }, [\n Re(o(te), (re, Ae) => ({\n name: re,\n fn: ke((Fe) => [\n ie(m.$slots, re, Ne(Qe(Fe)))\n ])\n }))\n ]), 1040, [\"input-value\", \"is-menu-open\", \"onSetEmptyDate\"]),\n (T(), $e(ia(m.teleport ? Jn : \"div\"), Ne(Qe($.value)), {\n default: ke(() => [\n Ze(Nt, {\n name: o(ve)(o(g)),\n css: o(y) && !o(x).enabled\n }, {\n default: ke(() => [\n d.value ? (T(), K(\"div\", Ee({\n key: 0,\n ref_key: \"dpWrapMenuRef\",\n ref: L\n }, ge.value, {\n class: { \"dp--menu-wrapper\": !o(x).enabled },\n style: o(x).enabled ? void 0 : o(X)\n }), [\n Ze(mn, Ee({\n ref_key: \"dpMenuRef\",\n ref: v\n }, m.$props, {\n \"internal-model-value\": o(V),\n \"onUpdate:internalModelValue\": j[3] || (j[3] = (re) => en(V) ? V.value = re : null),\n class: { [me.value]: !0, \"dp--menu-wrapper\": m.teleport },\n \"open-on-top\": o(g),\n \"no-overlay-focus\": r.value,\n collapse: U.value,\n \"get-input-rect\": R,\n \"is-text-input-date\": f.value,\n onClosePicker: Xe,\n onSelectDate: et,\n onAutoApply: ot,\n onTimeUpdate: pa,\n onFlowStep: j[4] || (j[4] = (re) => m.$emit(\"flow-step\", re)),\n onUpdateMonthYear: j[5] || (j[5] = (re) => m.$emit(\"update-month-year\", re)),\n onInvalidSelect: j[6] || (j[6] = (re) => m.$emit(\"invalid-select\", o(V))),\n onAutoApplyInvalid: j[7] || (j[7] = (re) => m.$emit(\"invalid-select\", re)),\n onInvalidFixedRange: j[8] || (j[8] = (re) => m.$emit(\"invalid-fixed-range\", re)),\n onRecalculatePosition: o(p),\n onTooltipOpen: j[9] || (j[9] = (re) => m.$emit(\"tooltip-open\", re)),\n onTooltipClose: j[10] || (j[10] = (re) => m.$emit(\"tooltip-close\", re)),\n onTimePickerOpen: j[11] || (j[11] = (re) => m.$emit(\"time-picker-open\", re)),\n onTimePickerClose: j[12] || (j[12] = (re) => m.$emit(\"time-picker-close\", re)),\n onAmPmChange: j[13] || (j[13] = (re) => m.$emit(\"am-pm-change\", re)),\n onRangeStart: j[14] || (j[14] = (re) => m.$emit(\"range-start\", re)),\n onRangeEnd: j[15] || (j[15] = (re) => m.$emit(\"range-end\", re)),\n onDateUpdate: j[16] || (j[16] = (re) => m.$emit(\"date-update\", re)),\n onInvalidDate: j[17] || (j[17] = (re) => m.$emit(\"invalid-date\", re)),\n onOverlayToggle: j[18] || (j[18] = (re) => m.$emit(\"overlay-toggle\", re))\n }), Ve({ _: 2 }, [\n Re(o(z), (re, Ae) => ({\n name: re,\n fn: ke((Fe) => [\n ie(m.$slots, re, Ne(Qe({ ...Fe })))\n ])\n }))\n ]), 1040, [\"internal-model-value\", \"class\", \"open-on-top\", \"no-overlay-focus\", \"collapse\", \"is-text-input-date\", \"onRecalculatePosition\"])\n ], 16)) : Z(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ]),\n _: 3\n }, 16))\n ], 2));\n }\n}), Vn = /* @__PURE__ */ (() => {\n const e = uo;\n return e.install = (t) => {\n t.component(\"Vue3DatePicker\", e);\n }, e;\n})(), io = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: Vn\n}, Symbol.toStringTag, { value: \"Module\" }));\nObject.entries(io).forEach(([e, t]) => {\n e !== \"default\" && (Vn[e] = t);\n});\nexport {\n Vn as default\n};\n","<template>\r\n <div class=\"scope-calendar scope-datepicker__wrapper\">\r\n <div v-if=\"label\" class=\"scope-datepicker__label\">\r\n {{ label }}\r\n </div>\r\n <div\r\n :class=\"[\r\n 'scope-datepicker__container',\r\n { '-full-width': fullWidth }\r\n ]\"\r\n >\r\n <VueDatePicker\r\n ref=\"vueDatePicker\"\r\n :style=\"{ width }\"\r\n :class=\"[\r\n 'scope-datepicker',\r\n `-${size}`,\r\n {\r\n '-invalid': invalid,\r\n '-range': range,\r\n '-multi': multiCalendars\r\n }\r\n ]\"\r\n v-model=\"modelValue\"\r\n :max-date=\"maxDate\"\r\n :min-date=\"minDate\"\r\n auto-apply\r\n month-name-format=\"long\"\r\n :multi-calendars=\"multiCalendars\"\r\n :enable-time-picker=\"false\"\r\n :range=\"range\"\r\n :placeholder=\"placeholder\"\r\n :prevent-min-max-navigation=\"Boolean(maxDate || minDate)\"\r\n :inline=\"inline\"\r\n :clearable=\"clearable\"\r\n :format=\"computedFormat\"\r\n @open=\"open\"\r\n @closed=\"close\"\r\n @cleared=\"emit('cleared')\"\r\n @update:model-value=\"emit('updated')\"\r\n >\r\n <template #calendar-icon>\r\n <slot name=\"calendar-icon\"></slot>\r\n </template>\r\n <template #arrow-left>\r\n <Icon icon=\"ChevronLeft\" />\r\n </template>\r\n <template #arrow-right>\r\n <Icon icon=\"ChevronRight\" />\r\n </template>\r\n </VueDatePicker>\r\n <div\r\n v-if=\"!inline\"\r\n :class=\"['scope-datepicker__icon-wrapper', `-${size}`]\"\r\n >\r\n <Icon\r\n v-if=\"!modelValue\"\r\n :class=\"[\r\n 'scope-datepicker__switcher',\r\n { '-active': opened }\r\n ]\"\r\n icon=\"ChevronDown\"\r\n />\r\n </div>\r\n </div>\r\n <div\r\n v-if=\"invalid && errorMessage\"\r\n class=\"scope-datepicker__error\"\r\n >\r\n {{ errorMessage }}\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport VueDatePicker from '@vuepic/vue-datepicker';\r\nimport '@vuepic/vue-datepicker/dist/main.css';\r\nimport {\r\n defineModel,\r\n defineProps,\r\n computed,\r\n nextTick,\r\n onMounted,\r\n ref\r\n} from 'vue';\r\nimport Icon from './Icon.vue';\r\n\r\nconst emit = defineEmits(['open', 'closed', 'updated', 'cleared']);\r\n\r\nconst vueDatePicker = ref(null);\r\n\r\nconst props = defineProps({\r\n invalid: Boolean,\r\n errorMessage: String,\r\n openOnMounted: Boolean,\r\n range: Boolean,\r\n width: String,\r\n inline: Boolean,\r\n format: [Function, String],\r\n dateFormat: {\r\n type: String,\r\n default: 'dd/MM/yyyy'\r\n },\r\n fullWidth: Boolean,\r\n clearable: {\r\n type: Boolean,\r\n default: true\r\n },\r\n label: String,\r\n multiCalendars: Boolean | Object,\r\n size: {\r\n type: String,\r\n default: 'md'\r\n },\r\n maxDate: {\r\n type: Date,\r\n default: null\r\n },\r\n minDate: {\r\n type: Date,\r\n default: null\r\n },\r\n placeholder: {\r\n type: String,\r\n default: 'Select Date'\r\n }\r\n});\r\n\r\nconst modelValue = defineModel();\r\n\r\nconst computedFormat = computed(() => props.format ?? props.dateFormat);\r\n\r\nconst opened = ref(false);\r\n\r\nconst open = () => {\r\n emit('open');\r\n opened.value = true;\r\n nextTick(() => {\r\n if (\r\n props.multiCalendars &&\r\n (props.maxDate || props.minDate) &&\r\n !modelValue.value\r\n ) {\r\n const currentDate = new Date();\r\n vueDatePicker.value.setMonthYear(\r\n currentDate.getFullYear(),\r\n currentDate.getMonth() - 1\r\n );\r\n }\r\n });\r\n};\r\nconst close = () => {\r\n emit('closed');\r\n opened.value = false;\r\n};\r\n\r\nonMounted(() => {\r\n if (props.openOnMounted) {\r\n vueDatePicker.value.openMenu();\r\n }\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import \"@/assets/styles/_main.scss\";\r\n\r\n.scope-datepicker {\r\n border: none;\r\n\r\n &__wrapper {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n }\r\n\r\n &__container {\r\n position: relative;\r\n width: fit-content;\r\n\r\n &.-full-width {\r\n width: 100%;\r\n\r\n :deep(.scope-datepicker) {\r\n width: 100%\r\n }\r\n\r\n }\r\n }\r\n\r\n &__icon-wrapper {\r\n position: absolute;\r\n width: 16px;\r\n height: 16px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n right: 8px;\r\n display: flex;\r\n align-items: center;\r\n pointer-events: none;\r\n color: $text-mid-emphasis;\r\n\r\n &.-sm {\r\n top: 9px;\r\n }\r\n\r\n &.-lg {\r\n top: 16px\r\n }\r\n }\r\n\r\n &__switcher {\r\n transition-duration: 0.4s;\r\n\r\n &.-active {\r\n transform: rotate(180deg);\r\n }\r\n }\r\n\r\n &__label {\r\n color: $text-high-emphasis;\r\n @include fz-14;\r\n font-weight: 500;\r\n }\r\n\r\n &__error {\r\n @include fz-12;\r\n font-weight: 500;\r\n color: $border-error;\r\n }\r\n}\r\n\r\n:deep(.scope-datepicker) {\r\n --dp-cell-size: 40px;\r\n --dp-cell-padding: 8px;\r\n --dp-menu-padding: 16px;\r\n --dp-row-margin: : 0;\r\n width: fit-content;\r\n\r\n .dp__calendar {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.5px;\r\n }\r\n\r\n .dp__input {\r\n padding: 4px 36px;\r\n @include fz-14;\r\n border-radius: 10px;\r\n\r\n &::placeholder {\r\n @include fz-14;\r\n font-weight: 500;\r\n color: $text-high-emphasis;\r\n }\r\n }\r\n\r\n .dp--menu-wrapper {\r\n background: $card-background;\r\n box-shadow: 0px 2px 22px 0px rgba(209, 209, 209, 0.40);\r\n border-radius: 16px;\r\n }\r\n\r\n .dp__btn {\r\n padding: 0;\r\n }\r\n\r\n .dp__menu {\r\n border-radius: 16px;\r\n }\r\n\r\n .dp__arrow_top {\r\n display: none;\r\n }\r\n\r\n .dp__calendar_header_separator {\r\n display: none;\r\n }\r\n\r\n .dp__flex_display {\r\n gap: 32px;\r\n }\r\n .dp__menu_inner {\r\n background: $card-background;\r\n border-radius: 16px;\r\n }\r\n .dp__menu_inner>div {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 12px;\r\n }\r\n .dp__calendar_header_item,\r\n .dp__cell_inner {\r\n font-family: 'Geist', sans-serif;\r\n font-optical-sizing: auto;\r\n @include fz-14;\r\n font-weight: 500;\r\n }\r\n\r\n .dp__cell_inner {\r\n border-radius: 12px;\r\n }\r\n\r\n .dp__calendar_header_item {\r\n color: $text-mid-emphasis;\r\n }\r\n\r\n .dp__calendar_item:has(> .dp__cell_disabled) {\r\n pointer-events: none;\r\n }\r\n\r\n .dp__calendar_item:has(> .dp__today:hover),\r\n .dp__calendar_item:has(> .dp__range_start),\r\n .dp__calendar_item:has(> .dp__range_end),\r\n .dp__calendar_item:has(> .dp__range_start:hover),\r\n .dp__calendar_item:has(> .dp__range_end:hover),\r\n .dp__calendar_item:has(> .dp__today),\r\n .dp__calendar_item:has(> .dp__active_date),\r\n .dp__calendar_item:has(> .dp__active_date:hover) {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 40px;\r\n width: 40px;\r\n padding: 4px;\r\n border-radius: 12px;\r\n }\r\n\r\n .dp__today {\r\n border: unset;\r\n }\r\n\r\n .dp__calendar_item:has(> .dp__today.dp__range_between),\r\n .dp__calendar_item:has(> .dp__today.dp__range_between:hover) {\r\n border-radius: 0;\r\n padding: 0;\r\n }\r\n\r\n .dp__calendar_item:has(.dp__range_start),\r\n .dp__calendar_item:has(.dp__range_start:hover) {\r\n border-radius: 12px 0 0 12px;\r\n }\r\n\r\n .dp__calendar_item:has(.dp__range_end),\r\n .dp__calendar_item:has(.dp__range_end:hover) {\r\n border-radius: 0 12px 12px 0;\r\n }\r\n\r\n .dp__active_date,\r\n .dp__range_start,\r\n .dp__range_end,\r\n .dp__active_date:hover,\r\n .dp__today:hover,\r\n .dp-today {\r\n height: 32px;\r\n width: 32px;\r\n padding: 8px;\r\n border-radius: 8px;\r\n }\r\n\r\n .dp__range_between,\r\n .dp__range_between:hover {\r\n border-radius: unset;\r\n border: 0;\r\n }\r\n\r\n .dp__month_year_wrap {\n justify-content: space-between;\n align-items: center;\n min-height: 24px;\n\n .dp--arrow-btn-nav {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 24px;\n height: 24px;\n padding: 0;\n border-radius: 0;\n border: 0;\n background: transparent;\n\n &:has(> .dp__inner_nav_disabled) {\n visibility: hidden;\n pointer-events: none;\n }\n &:hover {\n background-color: transparent !important;\n\n .dp__inner_nav {\n color: $icons-high-emphasis;\n }\n }\n\n .dp__inner_nav {\n color: $icons-mid-emphasis;\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n\n &:hover {\n background-color: transparent !important;\n }\n }\n }\n\r\n .dp__month_year_wrap {\n width: unset;\n gap: 4px;\n align-items: center;\n min-height: 24px;\n\n .dp__month_year_select {\n color: $text-high-emphasis;\n font-family: 'Geist', sans-serif;\n font-optical-sizing: auto;\n @include fz-14;\n font-weight: 500;\n background-color: transparent;\n width: fit-content;\n pointer-events: none;\n padding: 0;\n margin: 0;\n min-height: 20px;\n height: 20px;\n line-height: 20px;\n display: inline-flex;\n align-items: center;\n }\n }\n }\n}\r\n\r\n:deep(.scope-datepicker.-lg) {\r\n .dp__input {\r\n height: 48px;\r\n }\r\n}\r\n\r\n:deep(.scope-datepicker.-md) {\r\n .dp__input {\r\n height: 36px;\r\n }\r\n}\r\n\r\n:deep(.scope-datepicker.-sm) {\r\n .dp__input {\r\n height: 32px;\r\n }\r\n}\r\n\r\n\r\n:deep(.scope-datepicker.-range) {\r\n\r\n .dp__calendar_item:hover:has(> .dp--past),\r\n .dp__calendar_item:hover:has(> .dp--future),\r\n .dp__calendar_item:hover:has(> .dp--today) {\r\n border-radius: 0;\r\n\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n height: 40px;\r\n width: 40px;\r\n padding: 4px;\r\n\r\n .dp--past,\r\n .dp--future,\r\n .dp--today {\r\n\r\n height: 32px;\r\n width: 32px;\r\n padding: 8px;\r\n border-radius: 8px;\r\n }\r\n }\r\n}\r\n\r\n:deep(.scope-datepicker.-multi) {\r\n .dp__month_year_wrap {\r\n justify-content: center;\r\n\r\n .dp__month_year_wrap {\r\n width: 100%;\r\n }\r\n }\r\n}\r\n\r\n\r\n.scope-calendar {\r\n :deep(.scope-datepicker.-range) {\r\n\r\n .dp__calendar_item:hover:has(> .dp--past),\r\n .dp__calendar_item:hover:has(> .dp--future),\r\n .dp__calendar_item:hover:has(> .dp--today) {\r\n /* background-color: $card-primary-background-light; */\r\n\r\n .dp--past,\r\n .dp--future,\r\n .dp--today {\r\n background-color: $primary-accent;\r\n color: $text-light;\r\n }\r\n }\r\n }\r\n :deep(.scope-datepicker) {\r\n\r\n .dp__input {\r\n border: 1px solid $border;\r\n background: $card-background;\r\n color: $text-high-emphasis;\r\n }\r\n\r\n &.-invalid .dp__input {\r\n border-color: $border-error;\r\n }\r\n\r\n .dp--menu-wrapper {\r\n @include shadow-medium;\r\n }\r\n\r\n .dp__cell_inner {\r\n color: $text-high-emphasis;\r\n\r\n &:hover {\r\n background-color: $card-neutral-background;\r\n }\r\n }\r\n .dp__arrow_bottom {\r\n display: none;\r\n }\r\n .dp__cell_offset {\r\n color: $text-mid-emphasis;\r\n }\r\n\r\n .dp__calendar_header_item {\r\n color: $text-mid-emphasis;\r\n }\r\n\r\n .dp__cell_disabled {\r\n color: $text-mid-emphasis;\r\n }\r\n\r\n .dp__today {\r\n border: unset;\r\n color: $primary-accent;\r\n\r\n &:hover {\r\n background: $card-primary-background-light;\r\n border: 1px solid $primary-accent;\r\n }\r\n }\r\n\r\n .dp__calendar_item:has(> .dp__today:hover) {\r\n background: $card-primary-background-light;\r\n }\r\n\r\n .dp__calendar_item:has(> .dp__range_start),\r\n .dp__calendar_item:has(> .dp__range_end),\r\n .dp__calendar_item:has(> .dp__range_start:hover),\r\n .dp__calendar_item:has(> .dp__range_end:hover),\r\n .dp__calendar_item:has(> .dp__active_date),\r\n .dp__calendar_item:has(> .dp__active_date:hover) {\r\n background: $card-primary-background-light;\r\n }\r\n\r\n .dp__calendar_item:has(> .dp__today.dp__range_between),\r\n .dp__calendar_item:has(> .dp__today.dp__range_between:hover) {\r\n background-color: $card-primary-background-light;\r\n }\r\n\r\n .dp__range_start,\r\n .dp__range_end,\r\n .dp__range_start:hover,\r\n .dp__range_end:hover,\r\n .dp__active_date:hover,\r\n .dp__active_date {\r\n background-color: $primary-accent;\r\n color: $text-light;\r\n }\r\n\r\n .dp__range_between,\r\n .dp__range_between:hover {\r\n background-color: $card-primary-background-light;\r\n border-radius: unset;\r\n border: 0;\r\n }\r\n\r\n .dp__month_year_wrap {\r\n\r\n .dp--arrow-btn-nav {\n border: 0;\n border-radius: 0;\n background: transparent;\n\n .dp__inner_nav {\n color: $icons-mid-emphasis;\n\n &_disabled {\n background: $app-background !important;\n }\n }\n\n &:hover {\n background-color: transparent !important;\n\n .dp__inner_nav {\n color: $icons-high-emphasis;\n }\n }\n\n .dp__inner_nav {\n svg {\n width: 20px;\n height: 20px;\n }\n\n &:hover {\n background-color: transparent !important;\n }\n }\n }\n\r\n .dp__month_year_wrap {\r\n .dp__month_year_select {\r\n color: $text-high-emphasis;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nbody[theme=\"dark\"] {\r\n .scope-datepicker__label {\r\n color: $text-high-emphasis;\r\n }\r\n .scope-calendar {\r\n :deep(.scope-datepicker) {\r\n .dp__menu {\r\n border: unset;\r\n background-color: $app-background;\r\n border: 1px solid $border-secondary;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <div class=\"scope-checkbox-container\">\r\n <label class=\"scope-checkbox\" :class=\"{ disabled: disabled }\">\r\n <input\r\n v-model=\"model\"\r\n @click=\"emit('change')\"\r\n class=\"scope-checkbox__input\"\r\n :disabled=\"disabled\"\r\n :id=\"name\"\r\n type=\"checkbox\"\r\n />\r\n <svg\r\n class=\"scope-checkbox__check\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n >\r\n <polyline points=\"20 6 9 17 4 12\"></polyline>\r\n </svg>\r\n <span\r\n v-if=\"label && label.length\"\r\n class=\"scope-checkbox-label\"\r\n :class=\"{\r\n crossed: withCrossLabel && model,\r\n 'border-bottom': withBorderBottom\r\n }\"\r\n >\r\n {{ label }}\r\n </span>\r\n </label>\r\n </div>\r\n</template>\r\n<script setup>\r\nimport { defineModel, defineProps, watch } from 'vue';\r\nconst model = defineModel();\r\n\r\nconst emit = defineEmits(['change']);\r\n\r\ndefineProps({\r\n label: String,\r\n name: { type: String, default: () => Math.random().toString() },\r\n withCrossLabel: Boolean,\r\n withBorderBottom: Boolean,\r\n disabled: Boolean\r\n});\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n@import '../assets/styles/_main.scss';\r\n\r\n.scope-checkbox {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n\r\n &-container {\r\n display: flex;\r\n align-items: center;\r\n user-select: none;\r\n }\r\n\r\n &.disabled {\r\n cursor: not-allowed;\r\n }\r\n\r\n &-label {\r\n @include fz-14;\r\n font-weight: 500;\r\n color: $text-high-emphasis;\r\n margin-left: 8px;\r\n\r\n &.crossed {\r\n text-decoration: line-through;\r\n }\r\n\r\n &.border-bottom {\r\n border-bottom: 1px solid $border;\r\n }\r\n }\r\n &__input {\r\n width: 0;\r\n height: 0;\r\n opacity: 0;\r\n display: none;\r\n\r\n &:checked + .scope-checkbox__check {\r\n background-color: $primary-accent;\r\n border-color: $primary-accent;\r\n stroke-dashoffset: 0;\r\n stroke-opacity: 1;\r\n\r\n @include transition-default;\r\n }\r\n &:not(:checked) + .scope-checkbox__check {\r\n stroke-dashoffset: 20; // Animate back\r\n stroke-opacity: 0; // Fully hide after the animation\r\n @include transition-default;\r\n }\r\n }\r\n\r\n &__check {\r\n box-sizing: border-box;\r\n\r\n width: 16px;\r\n height: 16px;\r\n border: 1px solid var(--neutral-200);\r\n background: transparent;\r\n stroke: #f9f9f9;\r\n stroke-dasharray: 22;\r\n stroke-dashoffset: 20;\r\n stroke-linecap: round;\r\n stroke-opacity: 0;\r\n stroke-width: 2px;\r\n border-radius: 0.2rem;\r\n fill: none;\r\n @include transition-default;\r\n }\r\n\r\n &:not(.disabled):hover .scope-checkbox__input:not(:checked) + &__check {\r\n border-color: $icons-low-emphasis;\r\n background: transparent;\r\n }\r\n\r\n &:not(.disabled):hover .scope-checkbox__input:checked + &__check {\r\n background: $primary-soft;\r\n border-color: $primary-soft;\r\n }\r\n}\r\n\r\nbody[theme='dark'] .scope-checkbox {\r\n .scope-checkbox__check {\r\n stroke: $border-secondary;\r\n }\r\n}\r\n</style>\r\n","import { ref } from 'vue';\n\nexport const PopperStack = ref([]);\n\nexport const isPopperTopOfStack = (id) => PopperStack.value[0]?.id === id;\n\nexport const isPopperScopeActive = (scopeId) =>\n PopperStack.value.some((entry) => entry.scopeId === scopeId);\n\nconst getPopperById = (id) => PopperStack.value.find((item) => item.id === id);\n\nconst isLockedByDisabledPopper = (id) => {\n const stack = PopperStack.value;\n if (!stack.length) return false;\n\n const byId = new Map(stack.map((item) => [item.id, item]));\n\n return stack.some((item) => {\n if (!item.disableOutsideClose) return false;\n\n let current = item;\n\n while (current) {\n if (current.id === id) return true;\n if (!current.parentId) return false;\n current = byId.get(current.parentId) ?? null;\n }\n\n return false;\n });\n};\n\nexport const registerPopper = ({\n id,\n parentId,\n scopeId,\n close,\n disableOutsideClose = false\n}) => {\n const stack = PopperStack.value;\n const index = stack.findIndex((item) => item.id === id);\n if (index !== -1) {\n stack.splice(index, 1);\n }\n stack.unshift({ id, parentId, scopeId, close, disableOutsideClose });\n};\n\nexport const updatePopper = (id, patch = {}) => {\n const popper = getPopperById(id);\n if (!popper) return;\n\n Object.assign(popper, patch);\n};\n\nexport const unregisterPopper = (id) => {\n const stack = PopperStack.value;\n const index = stack.findIndex((item) => item.id === id);\n if (index !== -1) {\n stack.splice(index, 1);\n }\n};\n\nexport const closePopperStackForOpen = ({\n parentId = null,\n currentId = null\n} = {}) => {\n const stack = PopperStack.value\n .slice()\n .filter((item) => item.id !== currentId);\n\n if (!stack.length) return;\n\n if (!parentId) {\n stack.forEach((item) => item.close?.());\n return;\n }\n\n const parentIndex = stack.findIndex((item) => item.id === parentId);\n\n if (parentIndex === -1) {\n stack.forEach((item) => item.close?.());\n return;\n }\n\n for (let i = 0; i < parentIndex; i += 1) {\n stack[i]?.close?.();\n }\n};\n\nexport const closeTopPopperInScope = (scopeId) => {\n const item = PopperStack.value.find((entry) => entry.scopeId === scopeId);\n item?.close?.();\n};\n\nexport const canCloseByOutside = (id) => !isLockedByDisabledPopper(id);\n","import { computed, inject, provide } from 'vue';\nimport {\n closeTopPopperInScope,\n isPopperScopeActive\n} from './popperState.js';\n\nconst POPPER_SCOPE_KEY = 'POPPER-SCOPE';\nconst POPPER_PARENT_ID_KEY = 'POPPER-PARENT-ID';\n\nexport const usePopperParentId = () => inject(POPPER_PARENT_ID_KEY, null);\nexport const usePopperScopeId = () => inject(POPPER_SCOPE_KEY, null);\n\nexport const providePopperParentId = (id) => {\n provide(POPPER_PARENT_ID_KEY, id);\n};\n\nexport const usePopperScope = (scopeId) => {\n provide(POPPER_SCOPE_KEY, scopeId);\n\n const isActivePopper = computed(() => isPopperScopeActive(scopeId));\n\n const closeActivePopper = () => {\n closeTopPopperInScope(scopeId);\n };\n\n return {\n isActivePopper,\n closeActivePopper\n };\n};\n","import { detectOverflow } from '@floating-ui/vue';\n\nexport const constrainToViewport = ({\n referenceDom,\n to,\n parentId,\n constrainPadding = 12,\n avoidPopperElements = true,\n constrainBoundary = to,\n constrainDirection = 'both',\n detectOverflowPadding = null\n} = {}) => {\n const resolveConstrainPadding = () => {\n const resolvedPadding = constrainPadding;\n\n if (typeof resolvedPadding === 'number') {\n return {\n top: resolvedPadding,\n bottom: resolvedPadding,\n left: resolvedPadding,\n right: resolvedPadding\n };\n }\n\n return {\n top: resolvedPadding?.top ?? 0,\n bottom: resolvedPadding?.bottom ?? 0,\n left: resolvedPadding?.left ?? 0,\n right: resolvedPadding?.right ?? 0\n };\n };\n\n const resolveToElement = () => {\n const resolvedTo = to;\n\n if (resolvedTo === 'reference') {\n return referenceDom ?? null;\n }\n\n if (resolvedTo instanceof Element) {\n return resolvedTo;\n }\n\n if (typeof resolvedTo === 'string' && resolvedTo !== 'body') {\n return document.querySelector(resolvedTo);\n }\n\n if (!resolvedTo || resolvedTo === 'body') {\n return document.body;\n }\n\n const resolvedParentId = parentId;\n if (resolvedParentId) {\n return document.querySelector(`#${resolvedParentId}`);\n }\n\n return null;\n };\n\n const resolveBoundaryElement = () => {\n const resolvedBoundary = constrainBoundary;\n\n if (!resolvedBoundary) {\n return resolveToElement();\n }\n\n if (resolvedBoundary === 'viewport') return 'viewport';\n\n if (resolvedBoundary === 'clippingAncestors')\n return 'clippingAncestors';\n\n if (resolvedBoundary === 'reference') return referenceDom ?? null;\n\n if (resolvedBoundary instanceof Element) return resolvedBoundary;\n\n if (typeof resolvedBoundary === 'string') {\n if (resolvedBoundary === 'body') return document.body;\n return document.querySelector(resolvedBoundary);\n }\n\n return resolveToElement();\n };\n\n const resolveAvoidPadding = (boundaryRect, floatingRectArg) => {\n if (!avoidPopperElements) {\n return { top: 0, bottom: 0, left: 0, right: 0 };\n }\n\n const elements = Array.from(\n document.querySelectorAll('[data-popper-avoid]')\n );\n if (!elements.length) return { top: 0, bottom: 0, left: 0, right: 0 };\n\n const boundaryBox = boundaryRect ?? {\n top: 0,\n bottom: window.innerHeight,\n left: 0,\n right: window.innerWidth,\n height: window.innerHeight\n };\n\n const topEdge = boundaryBox.top;\n const bottomEdge = boundaryBox.bottom;\n const midEdge = (topEdge + bottomEdge) / 2;\n\n const floatingRect = floatingRectArg;\n\n if (!floatingRect) return { top: 0, bottom: 0, left: 0, right: 0 };\n\n const floatLeft = floatingRect.left;\n const floatRight = floatingRect.right;\n\n let top = 0;\n let bottom = 0;\n\n elements.forEach((element) => {\n const rect = element.getBoundingClientRect();\n\n const intersectsVertical =\n rect.bottom > topEdge && rect.top < bottomEdge;\n if (!intersectsVertical) return;\n\n const intersectsHorizontal =\n rect.left < floatRight && rect.right > floatLeft;\n if (!intersectsHorizontal) return;\n\n const isTopBar = rect.bottom <= midEdge;\n const isBottomBar = rect.top >= midEdge;\n\n if (isTopBar) {\n top = Math.max(top, rect.bottom - topEdge);\n }\n\n if (isBottomBar) {\n bottom = Math.max(bottom, bottomEdge - rect.top);\n }\n });\n\n return { top, bottom, left: 0, right: 0 };\n };\n\n const resolveBoundaryOptions = () => {\n const boundary = resolveBoundaryElement();\n\n return {\n boundary: boundary ?? document.body,\n rootBoundary: 'viewport'\n };\n };\n\n return {\n name: 'constrainToViewport',\n async fn(state) {\n const padding = resolveConstrainPadding();\n const boundaryOptions = resolveBoundaryOptions();\n\n const floatingRect =\n state.elements?.floating?.getBoundingClientRect?.();\n const referenceRect =\n state.elements?.reference?.getBoundingClientRect?.();\n\n const boundaryRect =\n boundaryOptions.boundary instanceof Element\n ? boundaryOptions.boundary.getBoundingClientRect()\n : {\n top: 0,\n bottom: window.innerHeight,\n height: window.innerHeight\n };\n\n const avoidPadding = await resolveAvoidPadding(\n boundaryRect,\n floatingRect\n );\n\n const basePadding = {\n top: padding.top + avoidPadding.top,\n bottom: padding.bottom + avoidPadding.bottom,\n left: padding.left + avoidPadding.left,\n right: padding.right + avoidPadding.right\n };\n\n const overflowPadding = {\n ...basePadding,\n ...(detectOverflowPadding?.({\n basePadding,\n padding,\n avoidPadding,\n state\n }) ?? {})\n };\n\n const overflow = await detectOverflow(state, {\n ...boundaryOptions,\n padding: overflowPadding\n });\n\n let y = state.y;\n let x = state.x;\n\n if (overflow.right > 0) {\n x -= overflow.right;\n }\n\n if (overflow.left > 0) {\n x += overflow.left;\n }\n\n const direction = constrainDirection;\n if (overflow.bottom > 0) {\n if (direction !== 'bottom') {\n y -= overflow.bottom;\n }\n }\n\n if (overflow.top > 0 && direction !== 'bottom') {\n y += overflow.top;\n }\n\n let maxHeight = Math.max(\n 0,\n boundaryRect.height -\n padding.top -\n padding.bottom -\n avoidPadding.top -\n avoidPadding.bottom\n );\n\n if (direction === 'bottom') {\n const startY = floatingRect?.top ?? referenceRect?.bottom;\n\n if (startY != null) {\n maxHeight = Math.max(\n 0,\n boundaryRect.bottom -\n padding.bottom -\n avoidPadding.bottom -\n startY\n );\n }\n }\n\n if (state.elements?.floating) {\n state.elements.floating.style.maxHeight = `${maxHeight}px`;\n state.elements.floating.style.setProperty(\n '--popper-max-height',\n `${maxHeight}px`\n );\n }\n\n return { x, y };\n }\n };\n};\n","import { computed, isRef, toValue, useId, watch } from 'vue';\nimport {\n autoUpdate,\n flip,\n hide,\n offset,\n size,\n useFloating\n} from '@floating-ui/vue';\nimport { onClickOutside, useEventListener } from '@vueuse/core';\nimport {\n canCloseByOutside,\n closePopperStackForOpen,\n isPopperTopOfStack,\n registerPopper,\n unregisterPopper,\n updatePopper\n} from './popperState.js';\nimport {\n providePopperParentId,\n usePopperParentId,\n usePopperScopeId\n} from './popperContext.js';\nimport {\n constrainToViewport as constrainToViewportMiddleware\n} from './middleware/constrainToViewport.js';\n\nconst shouldClose = (handler, reason, event) => {\n if (!handler) return true;\n return handler(reason, event) !== false;\n};\n\nexport const usePopperCore = ({\n open,\n referenceRef,\n floatingRef,\n to: toProp = 'body',\n placement: placementProp = 'bottom-start',\n offset: offsetProp = 0,\n flip: flipProp = {},\n options = {},\n fullWidth = false,\n constrainToViewport = false,\n constrainBoundary = toProp,\n constrainPadding = 12,\n avoidPopperElements = true,\n constrainDirection = 'both',\n disableOutsideClose = false,\n outsideClickIgnore = [],\n closeOnOutside = true,\n closeOnEsc = true,\n onOutsideClose = null,\n onEscClose = null,\n onClose = null\n} = {}) => {\n const id = useId();\n const parentId = usePopperParentId();\n const scopeId = usePopperScopeId();\n\n const resolveBleed = () => {\n const resolvedOffset = toValue(offsetProp);\n const offsetValue =\n resolvedOffset && typeof resolvedOffset === 'object'\n ? resolvedOffset\n : {};\n\n return toValue(fullWidth) && offsetValue.crossAxis\n ? Math.abs(offsetValue.crossAxis)\n : 0;\n };\n\n const offsetForFloating = computed(() => {\n const resolvedOffset = toValue(offsetProp);\n\n if (!toValue(fullWidth)) return resolvedOffset;\n\n if (resolvedOffset && typeof resolvedOffset === 'object') {\n return { ...resolvedOffset, crossAxis: 0 };\n }\n\n return resolvedOffset;\n });\n\n const { floatingStyles, middlewareData, placement, update } = useFloating(\n referenceRef,\n floatingRef,\n {\n open: computed(() => toValue(open)),\n middleware: computed(() => [\n offset(toValue(offsetForFloating)),\n hide(),\n flip(toValue(flipProp)),\n ...(toValue(fullWidth)\n ? [\n size({\n apply({ rects, elements }) {\n const bleed = resolveBleed();\n\n Object.assign(elements.floating.style, {\n width: `${\n rects.reference.width + bleed * 2\n }px`\n });\n },\n reset: { rects: true }\n }),\n {\n name: 'fullWidthBleedShift',\n fn(state) {\n const bleed = resolveBleed();\n if (!bleed) return {};\n\n const isVertical =\n state.placement.startsWith('top') ||\n state.placement.startsWith('bottom');\n\n return isVertical\n ? { x: state.x - bleed }\n : { y: state.y - bleed };\n }\n }\n ]\n : []),\n ...(toValue(constrainToViewport)\n ? [\n constrainToViewportMiddleware({\n referenceDom: toValue(referenceRef),\n to: toValue(toProp),\n parentId: toValue(parentId),\n constrainPadding: toValue(constrainPadding),\n avoidPopperElements: toValue(\n avoidPopperElements\n ),\n constrainBoundary: toValue(constrainBoundary),\n constrainDirection: toValue(constrainDirection),\n detectOverflowPadding: ({ basePadding }) => {\n const bleed = resolveBleed();\n if (!bleed) return {};\n\n return {\n left: basePadding.left + bleed,\n right: basePadding.right + bleed\n };\n }\n })\n ]\n : [])\n ]),\n placement: computed(() => toValue(placementProp)),\n ...(toValue(options) ?? {})\n }\n );\n\n const to = computed(() => {\n const resolvedTo = toValue(toProp);\n\n if (resolvedTo === 'reference') {\n return referenceRef?.value;\n }\n\n if (resolvedTo) {\n return resolvedTo;\n }\n\n const resolvedParentId = toValue(parentId);\n if (resolvedParentId) {\n return `#${resolvedParentId}`;\n }\n\n return 'body';\n });\n\n const closeSelf = () => {\n if (toValue(open) && isRef(open)) {\n open.value = false;\n }\n };\n\n watch([() => toValue(open), floatingRef], (openValue, _, onCleanup) => {\n let cleanUpAutoUpdate, cleanUpOnClickOutside, cleanUpEventListener;\n let didOpen = false;\n\n if (openValue && floatingRef?.value) {\n didOpen = true;\n const resolvedParentId = toValue(parentId);\n const resolvedScopeId = toValue(scopeId);\n\n closePopperStackForOpen({\n parentId: resolvedParentId,\n currentId: id\n });\n registerPopper({\n id,\n parentId: resolvedParentId,\n scopeId: resolvedScopeId,\n close: closeSelf,\n disableOutsideClose: toValue(disableOutsideClose)\n });\n\n cleanUpAutoUpdate = autoUpdate(\n referenceRef?.value,\n floatingRef.value,\n update\n );\n\n if (toValue(closeOnOutside)) {\n cleanUpOnClickOutside = onClickOutside(\n floatingRef,\n (event) => {\n if (\n isPopperTopOfStack(id) &&\n canCloseByOutside(id) &&\n shouldClose(onOutsideClose, 'outside', event)\n ) {\n if (isRef(open)) open.value = false;\n }\n },\n {\n ignore: [\n referenceRef,\n ...(toValue(outsideClickIgnore) ?? [])\n ]\n }\n );\n }\n\n if (toValue(closeOnEsc)) {\n cleanUpEventListener = useEventListener(\n document,\n 'keydown',\n (event) => {\n if (\n event.key === 'Escape' &&\n isPopperTopOfStack(id) &&\n canCloseByOutside(id) &&\n shouldClose(onEscClose, 'esc', event)\n ) {\n if (isRef(open)) open.value = false;\n }\n }\n );\n }\n }\n\n onCleanup(() => {\n cleanUpAutoUpdate?.();\n cleanUpOnClickOutside?.();\n cleanUpEventListener?.();\n unregisterPopper(id);\n if (didOpen) {\n onClose?.();\n }\n });\n });\n\n watch(\n () => toValue(disableOutsideClose),\n (isDisabled) => {\n if (!toValue(open)) return;\n updatePopper(id, { disableOutsideClose: !!isDisabled });\n }\n );\n\n watch(\n () => toValue(constrainToViewport),\n (enabled) => {\n if (!enabled && floatingRef?.value) {\n floatingRef.value.style.maxHeight = '';\n }\n }\n );\n\n providePopperParentId(id);\n\n return {\n id,\n parentId,\n scopeId,\n floatingStyles,\n middlewareData,\n placement,\n update,\n to,\n closeSelf\n };\n};\n","// Normalize refs that can be Vue instances or DOM nodes into a single Element.\n// Keeps slot ref wiring consistent and only warns when a non-null value\n// cannot be resolved to an Element (null during mount/unmount is ignored).\nconst isElementNode = (value) => Boolean(value && value.nodeType === 1);\n\nexport const resolveDomElement = (target, { onResolved, label } = {}) => {\n if (target == null) {\n onResolved?.(null);\n return null;\n }\n\n const candidate = target?.$el ?? target;\n\n if (isElementNode(candidate)) {\n onResolved?.(candidate);\n return candidate;\n }\n\n const prefix = label ? `${label}: ` : '';\n console.error(\n `${prefix}Unable to attach to a DOM element. Wrap content in a single element or expose a DOM element via defineExpose.`,\n candidate\n );\n\n onResolved?.(null);\n return null;\n};\n","<template>\n <slot :ref=\"setReference\" style=\"cursor: pointer\" :placement=\"placement\" />\n\n <Transition name=\"scale-fade\" :duration=\"animationDurationMs\">\n <Teleport v-if=\"modelOpen\" :to=\"to\">\n <div\n :style=\"[\n floatingStyles,\n {\n display: middlewareData.hide?.referenceHidden\n ? 'none'\n : 'block'\n }\n ]\"\n :id=\"id\"\n class=\"popper-floating\"\n ref=\"floating\"\n >\n <div\n class=\"transition-content\"\n :class=\"{ 'transition-content--full-width': props.fullWidth }\"\n >\n <slot name=\"content\" :placement=\"placement\" />\n </div>\n </div>\n </Teleport>\n </Transition>\n</template>\n\n<script setup>\nimport { computed, shallowRef, useTemplateRef } from 'vue';\nimport { usePopperCore } from './usePopperCore.js';\nimport { resolveDomElement } from '../../utils/resolveDomElement.js';\n\nconst modelOpen = defineModel({ default: false });\n\nconst props = defineProps({\n to: {\n type: String,\n default: null,\n required: false\n },\n offset: {\n type: [Number, Object],\n default: 0,\n required: false\n },\n flip: {\n type: Object,\n default: () => ({}),\n required: false\n },\n options: {\n type: Object,\n default: () => ({}),\n required: false\n },\n fullWidth: {\n type: Boolean,\n default: false,\n required: false\n },\n placement: {\n type: String,\n default: 'bottom-start',\n required: false\n },\n constrainToViewport: {\n type: Boolean,\n default: false,\n required: false\n },\n constrainBoundary: {\n type: [String, Object],\n default: null,\n required: false\n },\n constrainPadding: {\n type: [Number, Object],\n default: 12,\n required: false\n },\n constrainDirection: {\n type: String,\n default: 'both',\n required: false\n },\n avoidPopperElements: {\n type: Boolean,\n default: true,\n required: false\n },\n disableOutsideClose: {\n type: Boolean,\n default: false,\n required: false\n },\n outsideClickIgnore: {\n type: Array,\n default: () => [],\n required: false\n },\n zIndex: {\n type: Number,\n default: 8,\n required: false\n }\n});\n\nconst animationDurationMs = 100;\nconst animationDuration = `${animationDurationMs}ms`;\nconst transitionContentWidth = computed(() =>\n props.fullWidth ? '100%' : 'max-content'\n);\n\nconst $floating = useTemplateRef('floating');\nconst $reference = shallowRef(null);\n\nconst setReference = (ref) =>\n resolveDomElement(ref, {\n label: 'Popper reference',\n onResolved: (el) => {\n $reference.value = el;\n }\n });\n\nconst { id, floatingStyles, middlewareData, placement, to } = usePopperCore({\n open: modelOpen,\n referenceRef: $reference,\n floatingRef: $floating,\n to: computed(() => props.to),\n placement: computed(() => props.placement),\n offset: computed(() => props.offset),\n flip: computed(() => props.flip),\n options: computed(() => props.options),\n fullWidth: computed(() => props.fullWidth),\n constrainToViewport: computed(() => props.constrainToViewport),\n constrainBoundary: computed(() => props.constrainBoundary),\n constrainPadding: computed(() => props.constrainPadding),\n constrainDirection: computed(() => props.constrainDirection),\n disableOutsideClose: computed(() => props.disableOutsideClose),\n avoidPopperElements: computed(() => props.avoidPopperElements),\n outsideClickIgnore: computed(() => props.outsideClickIgnore)\n});\n\nconst transformOriginMap = {\n top: 'center bottom',\n 'top-start': 'left bottom',\n 'top-end': 'right bottom',\n bottom: 'center top',\n 'bottom-start': 'left top',\n 'bottom-end': 'right top',\n left: 'right center',\n 'left-start': 'right top',\n 'left-end': 'right bottom',\n right: 'left center',\n 'right-start': 'left top',\n 'right-end': 'left bottom'\n};\n\nconst transformOrigin = computed(() => {\n const value = placement.value || 'bottom-start';\n return transformOriginMap[value] || 'center center';\n});\n</script>\n\n<style scoped lang=\"scss\">\n@import '../../assets/styles/_main.scss';\n\n.popper-floating {\n z-index: v-bind(zIndex);\n}\n\n.transition-content {\n width: v-bind(transitionContentWidth);\n}\n\n.transition-content--full-width {\n width: 100%;\n}\n\n.scale-fade-enter-active .transition-content,\n.scale-fade-leave-active .transition-content {\n @include transition-default(\n (opacity, transform),\n v-bind(animationDuration)\n );\n transform-origin: v-bind(transformOrigin);\n}\n\n.scale-fade-enter-from .transition-content,\n.scale-fade-leave-to .transition-content {\n opacity: 0;\n transform: scale(0.96);\n transform-origin: v-bind(transformOrigin);\n}\n\n.scale-fade-enter-to .transition-content,\n.scale-fade-leave-from .transition-content {\n opacity: 1;\n transform: scale(1);\n transform-origin: v-bind(transformOrigin);\n}\n</style>\n","<template>\n <div class=\"wrapper-content\">\n <slot />\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n@import '../../assets/styles/_main.scss';\n\n.wrapper-content {\n box-shadow: 0 16px 32px -12px rgba($text-high-emphasis, 0.1);\n min-width: 230px;\n border-radius: 12px;\n border: 1px solid $border;\n background: $card-background;\n padding: 8px;\n}\n\nbody[theme='dark'] .wrapper-content {\n background-color: $card-neutral-background;\n}\n</style>\n","<template>\n <PopperNew\n v-model=\"open\"\n :placement=\"placement\"\n :offset=\"offset\"\n :constrain-to-viewport=\"constrainToViewport\"\n :constrain-padding=\"constrainPadding\"\n :z-index=\"zIndex\"\n :avoid-popper-elements=\"avoidPopperElements\"\n >\n <template #default=\"slotProps\">\n <button\n class=\"app-switcher\"\n :class=\"{ 'app-switcher--open': open }\"\n :style=\"triggerStyles\"\n v-bind=\"slotProps\"\n @click.stop=\"open = !open\"\n >\n <span class=\"app-switcher__icon\">\n <img\n v-if=\"currentApp?.logo\"\n :src=\"currentApp.logo\"\n :alt=\"currentApp.name\"\n />\n </span>\n <span class=\"app-switcher__name\">{{ currentApp?.name }}</span>\n <IconNew\n :icon=\"open ? 'ChevronUp' : 'ChevronDown'\"\n class=\"app-switcher__chevron\"\n />\n </button>\n </template>\n\n <template #content>\n <PopperContentNew>\n <div class=\"app-switcher-menu\" :style=\"menuStyles\">\n <a\n v-for=\"app in apps\"\n :key=\"app.id\"\n :href=\"app.href || '#'\"\n class=\"app-switcher-menu__item\"\n :class=\"{\n 'app-switcher-menu__item--active':\n app.id === currentApp?.id,\n 'app-switcher-menu__item--disabled': app.disabled\n }\"\n @click.stop.prevent=\"selectApp(app)\"\n >\n <span class=\"app-switcher-menu__logo\">\n <img :src=\"app.logo\" :alt=\"app.name\" />\n </span>\n <span class=\"app-switcher-menu__info\">\n <span class=\"app-switcher-menu__title\">\n {{ app.name }}\n </span>\n <span\n v-if=\"app.description\"\n class=\"app-switcher-menu__desc\"\n >\n {{ app.description }}\n </span>\n </span>\n </a>\n </div>\n </PopperContentNew>\n </template>\n </PopperNew>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport IconNew from './Icon.vue';\nimport PopperNew from './Popper/Popper.vue';\nimport PopperContentNew from './Popper/PopperContent.vue';\n\nexport type AppSwitcherItem = {\n id: string | number;\n name: string;\n description?: string;\n logo: string;\n href?: string;\n disabled?: boolean;\n};\n\nconst open = defineModel<boolean>({ default: false });\n\nconst props = defineProps<{\n apps?: AppSwitcherItem[];\n currentAppId?: string | number | null;\n placement?: string;\n offset?: number | { mainAxis?: number; crossAxis?: number };\n constrainToViewport?: boolean;\n constrainPadding?:\n | number\n | { top?: number; right?: number; bottom?: number; left?: number };\n avoidPopperElements?: boolean;\n zIndex?: number;\n triggerMinWidth?: string;\n menuWidth?: string;\n}>();\n\nconst emit = defineEmits<{\n (e: 'select', app: AppSwitcherItem): void;\n}>();\n\nconst apps = computed(() => props.apps ?? []);\nconst placement = computed(() => props.placement ?? 'bottom-start');\nconst offset = computed(() => props.offset ?? 8);\nconst constrainToViewport = computed(() => props.constrainToViewport ?? true);\nconst constrainPadding = computed(() => props.constrainPadding ?? 16);\nconst avoidPopperElements = computed(() => props.avoidPopperElements ?? false);\nconst zIndex = computed(() => props.zIndex ?? 200);\nconst triggerMinWidth = computed(() => props.triggerMinWidth ?? '130px');\nconst menuWidth = computed(() => props.menuWidth ?? '325px');\n\nconst currentApp = computed(() => {\n if (!apps.value.length) return null;\n\n return (\n apps.value.find((item) => item.id === props.currentAppId) ??\n apps.value[0]\n );\n});\n\nconst triggerStyles = computed(() => ({\n minWidth: triggerMinWidth.value\n}));\n\nconst menuStyles = computed(() => ({\n width: menuWidth.value\n}));\n\nconst selectApp = (app: AppSwitcherItem) => {\n if (app.disabled) return;\n open.value = false;\n emit('select', app);\n};\n</script>\n\n<style lang=\"scss\" scoped>\n@import '../assets/styles/_main.scss';\n\n.app-switcher {\n all: unset;\n display: inline-flex;\n align-items: center;\n align-self: flex-start;\n gap: 8px;\n padding: 6px 10px 6px 8px;\n border-radius: 10px;\n border: 1.5px solid $border;\n background: $card-background;\n cursor: pointer;\n box-sizing: border-box;\n @include transition-default(background, border-color);\n\n &:hover {\n background: $card-neutral-background;\n }\n\n &--open {\n border-color: var(--blue-500);\n }\n\n &__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 14px;\n height: 14px;\n flex-shrink: 0;\n\n img,\n svg {\n width: 100%;\n height: 100%;\n display: block;\n object-fit: contain;\n }\n }\n\n &__name {\n @include fz-14;\n font-weight: 500;\n color: var(--text-high-emphasis);\n }\n\n &__chevron {\n width: 16px;\n height: 16px;\n color: var(--neutral-400);\n margin-left: auto;\n }\n}\n\n.app-switcher-menu {\n display: flex;\n flex-direction: column;\n gap: 4px;\n max-width: calc(100vw - 32px);\n}\n\n.app-switcher-menu__item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 12px;\n border-radius: 10px;\n text-decoration: none;\n cursor: pointer;\n @include transition-default(background);\n\n &:hover {\n background: $card-neutral-background;\n }\n\n &--active {\n background: $card-neutral-background;\n\n &:hover {\n background: $card-neutral-background;\n }\n }\n\n &--disabled {\n pointer-events: none;\n opacity: 0.6;\n }\n}\n\n.app-switcher-menu__logo {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 23px;\n height: 23px;\n\n img,\n svg {\n width: 100%;\n height: 100%;\n display: block;\n object-fit: contain;\n }\n}\n\n.app-switcher-menu__info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.app-switcher-menu__title {\n @include fz-14;\n font-weight: 500;\n color: var(--text-high-emphasis);\n}\n\n.app-switcher-menu__desc {\n @include fz-12;\n color: var(--neutral-400);\n}\n\nbody[theme='dark'] .app-switcher:hover {\n background: $background-secondary;\n}\n\nbody[theme='dark'] .app-switcher-menu__item:hover,\nbody[theme='dark'] .app-switcher-menu__item--active {\n background: $background-secondary;\n}\n</style>\n","import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, getCurrentInstance, provide, inject, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get();\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (...args) => {\n return Promise.all(Array.from(fns).map((fn) => fn(...args)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n provide(key, value);\n};\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"injectLocal must be called in setup\");\n if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return inject(...args);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n const defaultValue = options == null ? void 0 : options.defaultValue;\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key, defaultValue);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a, _b;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(...args) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n let ms;\n let trailing;\n let leading;\n let rejectOnCancel;\n if (!isRef(args[0]) && typeof args[0] === \"object\")\n ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]);\n else\n [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?\\d+\\.?\\d*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nfunction getLifeCycleTarget(target) {\n return target || getCurrentInstance();\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = toValue(defaultValue);\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = toValue(defaultValue);\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\n\nfunction syncRef(left, right, ...[options]) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options || {};\n const watchers = [];\n const transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n const transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeMount(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeUnmount(fn, target);\n}\n\nfunction tryOnMounted(fn, sync = true, target) {\n const instance = getLifeCycleTarget();\n if (instance)\n onMounted(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onUnmounted(fn, target);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(\n toValue(element),\n toValue(value),\n index,\n toValue(array)\n )));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = unref(initialValue);\n const count = ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n const dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = num % 100;\n return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n Yo: () => formatOrdinal(years),\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n Mo: () => formatOrdinal(month + 1),\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n D: () => String(days),\n Do: () => formatOrdinal(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n Ho: () => formatOrdinal(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n ho: () => formatOrdinal(hours % 12 || 12),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mo: () => formatOrdinal(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n so: () => formatOrdinal(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return {\n counter,\n reset,\n ...controls\n };\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return {\n ready,\n ...controls\n };\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nfunction watchAtMost(source, cb, options) {\n const {\n count,\n ...watchOptions\n } = options;\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nfunction watchDebounced(source, cb, options = {}) {\n const {\n debounce = 0,\n maxWait = void 0,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: debounceFilter(debounce, { maxWait })\n }\n );\n}\n\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n deep: true\n }\n );\n}\n\nfunction watchIgnorable(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n { ...watchOptions, flush: \"sync\" }\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n immediate: true\n }\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n return stop;\n}\n\nfunction watchThrottled(source, cb, options = {}) {\n const {\n throttle = 0,\n trailing = true,\n leading = true,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: throttleFilter(throttle, trailing, leading)\n }\n );\n}\n\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return {\n ...res,\n trigger\n };\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n const stop = watch(\n source,\n (v, ov, onInvalidate) => {\n if (v) {\n if (options == null ? void 0 : options.once)\n nextTick(() => stop());\n cb(v, ov, onInvalidate);\n }\n },\n {\n ...options,\n once: false\n }\n );\n return stop;\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import { defineComponent, ref, h, watch, computed, reactive, shallowRef, nextTick, getCurrentInstance, onMounted, isVue2, watchEffect, toRefs } from 'vue-demi';\nimport { onClickOutside as onClickOutside$1, useActiveElement, useBattery, useBrowserLocation, useClipboard, useDark, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDocumentVisibility, useStorage as useStorage$1, isClient as isClient$1, useDraggable, useElementBounding, useElementSize as useElementSize$1, useElementVisibility as useElementVisibility$1, useEyeDropper, useFullscreen, useGeolocation, useIdle, useMouse, useMouseInElement, useMousePressed, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, usePointer, usePointerLock, usePreferredColorScheme, usePreferredContrast, usePreferredDark as usePreferredDark$1, usePreferredLanguages, usePreferredReducedMotion, useTimeAgo, useTimestamp, useVirtualList, useWindowFocus, useWindowSize } from '@vueuse/core';\nimport { toValue, isClient, noop, isObject, tryOnScopeDispose, isIOS, directiveHooks, pausableWatch, tryOnMounted, toRef, useToggle, notNullish, promiseTimeout, until, useDebounceFn, useThrottleFn } from '@vueuse/shared';\n\nconst OnClickOutside = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"OnClickOutside\",\n props: [\"as\", \"options\"],\n emits: [\"trigger\"],\n setup(props, { slots, emit }) {\n const target = ref();\n onClickOutside$1(target, (e) => {\n emit(\"trigger\", e);\n }, props.options);\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default());\n };\n }\n});\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return noop;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n window.document.documentElement.addEventListener(\"click\", noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement))) {\n handler(event);\n }\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nconst vOnClickOutside = {\n [directiveHooks.mounted](el, binding) {\n const capture = !binding.modifiers.bubble;\n if (typeof binding.value === \"function\") {\n el.__onClickOutside_stop = onClickOutside(el, binding.value, { capture });\n } else {\n const [handler, options] = binding.value;\n el.__onClickOutside_stop = onClickOutside(el, handler, Object.assign({ capture }, options));\n }\n },\n [directiveHooks.unmounted](el) {\n el.__onClickOutside_stop();\n }\n};\n\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\n\nconst vOnKeyStroke = {\n [directiveHooks.mounted](el, binding) {\n var _a, _b;\n const keys = (_b = (_a = binding.arg) == null ? void 0 : _a.split(\",\")) != null ? _b : true;\n if (typeof binding.value === \"function\") {\n onKeyStroke(keys, binding.value, {\n target: el\n });\n } else {\n const [handler, options] = binding.value;\n onKeyStroke(keys, handler, {\n target: el,\n ...options\n });\n }\n }\n};\n\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n let posStart;\n let startTimestamp;\n let hasLongPressed = false;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n posStart = void 0;\n startTimestamp = void 0;\n hasLongPressed = false;\n }\n function onRelease(ev) {\n var _a2, _b2, _c;\n const [_startTimestamp, _posStart, _hasLongPressed] = [startTimestamp, posStart, hasLongPressed];\n clear();\n if (!(options == null ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp)\n return;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - _posStart.x;\n const dy = ev.y - _posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n options.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed);\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n posStart = {\n x: ev.x,\n y: ev.y\n };\n startTimestamp = ev.timeStamp;\n timeout = setTimeout(\n () => {\n hasLongPressed = true;\n handler(ev);\n },\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n function onMove(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - posStart.x;\n const dy = ev.y - posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD))\n clear();\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n const cleanup = [\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n useEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n ];\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nconst OnLongPress = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"OnLongPress\",\n props: [\"as\", \"options\"],\n emits: [\"trigger\"],\n setup(props, { slots, emit }) {\n const target = ref();\n onLongPress(\n target,\n (e) => {\n emit(\"trigger\", e);\n },\n props.options\n );\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default());\n };\n }\n});\n\nconst vOnLongPress = {\n [directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\")\n onLongPress(el, binding.value, { modifiers: binding.modifiers });\n else\n onLongPress(el, ...binding.value);\n }\n};\n\nconst UseActiveElement = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseActiveElement\",\n setup(props, { slots }) {\n const data = reactive({\n element: useActiveElement()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseBattery = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseBattery\",\n setup(props, { slots }) {\n const data = reactive(useBattery(props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseBrowserLocation = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseBrowserLocation\",\n setup(props, { slots }) {\n const data = reactive(useBrowserLocation());\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseClipboard = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseClipboard\",\n props: [\n \"source\",\n \"read\",\n \"navigator\",\n \"copiedDuring\",\n \"legacy\"\n ],\n setup(props, { slots }) {\n const data = reactive(useClipboard(props));\n return () => {\n var _a;\n return (_a = slots.default) == null ? void 0 : _a.call(slots, data);\n };\n }\n});\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n },\n initOnMounted\n } = options;\n const data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n tryOnMounted(() => {\n useEventListener(window, \"storage\", update);\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n if (initOnMounted)\n update();\n });\n }\n if (!initOnMounted)\n update();\n function dispatchWriteEvent(oldValue, newValue) {\n if (window) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue,\n storageArea: storage\n }\n }));\n }\n }\n function write(v) {\n try {\n const oldValue = storage.getItem(key);\n if (v == null) {\n dispatchWriteEvent(oldValue, null);\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n dispatchWriteEvent(oldValue, serialized);\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit != null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n return data;\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n const instance = getCurrentInstance();\n if (instance) {\n onMounted(() => {\n isMounted.value = true;\n }, isVue2 ? void 0 : instance);\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window });\n const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n const styleString = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n style.appendChild(document.createTextNode(styleString));\n window.document.head.appendChild(style);\n }\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n el.classList.add(v);\n else\n el.classList.remove(v);\n });\n } else {\n el.setAttribute(attribute2, value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n tryOnMounted(() => onChanged(state.value));\n const auto = computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nconst UseColorMode = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseColorMode\",\n props: [\"selector\", \"attribute\", \"modes\", \"onChanged\", \"storageKey\", \"storage\", \"emitAuto\"],\n setup(props, { slots }) {\n const mode = useColorMode(props);\n const data = reactive({\n mode,\n system: mode.system,\n store: mode.store\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDark = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseDark\",\n props: [\"selector\", \"attribute\", \"valueDark\", \"valueLight\", \"onChanged\", \"storageKey\", \"storage\"],\n setup(props, { slots }) {\n const isDark = useDark(props);\n const data = reactive({\n isDark,\n toggleDark: useToggle(isDark)\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDeviceMotion = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseDeviceMotion\",\n setup(props, { slots }) {\n const data = reactive(useDeviceMotion());\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDeviceOrientation = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseDeviceOrientation\",\n setup(props, { slots }) {\n const data = reactive(useDeviceOrientation());\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDevicePixelRatio = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseDevicePixelRatio\",\n setup(props, { slots }) {\n const data = reactive({\n pixelRatio: useDevicePixelRatio()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDevicesList = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseDevicesList\",\n props: [\"onUpdated\", \"requestPermissions\", \"constraints\"],\n setup(props, { slots }) {\n const data = reactive(useDevicesList(props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDocumentVisibility = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseDocumentVisibility\",\n setup(props, { slots }) {\n const data = reactive({\n visibility: useDocumentVisibility()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDraggable = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseDraggable\",\n props: [\n \"storageKey\",\n \"storageType\",\n \"initialValue\",\n \"exact\",\n \"preventDefault\",\n \"stopPropagation\",\n \"pointerTypes\",\n \"as\",\n \"handle\",\n \"axis\",\n \"onStart\",\n \"onMove\",\n \"onEnd\",\n \"disabled\"\n ],\n setup(props, { slots }) {\n const target = ref();\n const handle = computed(() => {\n var _a;\n return (_a = props.handle) != null ? _a : target.value;\n });\n const disabled = computed(() => !!props.disabled);\n const storageValue = props.storageKey && useStorage$1(\n props.storageKey,\n toValue(props.initialValue) || { x: 0, y: 0 },\n isClient$1 ? props.storageType === \"session\" ? sessionStorage : localStorage : void 0\n );\n const initialValue = storageValue || props.initialValue || { x: 0, y: 0 };\n const onEnd = (position, event) => {\n var _a;\n (_a = props.onEnd) == null ? void 0 : _a.call(props, position, event);\n if (!storageValue)\n return;\n storageValue.value.x = position.x;\n storageValue.value.y = position.y;\n };\n const data = reactive(useDraggable(target, {\n ...props,\n handle,\n initialValue,\n onEnd,\n disabled\n }));\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target, style: `touch-action:none;${data.style}` }, slots.default(data));\n };\n }\n});\n\nconst UseElementBounding = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseElementBounding\",\n props: [\"box\", \"as\"],\n setup(props, { slots }) {\n const target = ref();\n const data = reactive(useElementBounding(target));\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nconst vElementHover = {\n [directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\") {\n const isHovered = useElementHover(el);\n watch(isHovered, (v) => binding.value(v));\n }\n }\n};\n\nconst UseElementSize = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseElementSize\",\n props: [\"width\", \"height\", \"box\", \"as\"],\n setup(props, { slots }) {\n const target = ref();\n const data = reactive(useElementSize$1(target, { width: props.width, height: props.height }, { box: props.box }));\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nfunction useResizeObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...observerOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]);\n const stopWatch = watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els)\n _el && observer.observe(_el, observerOptions);\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n const { stop: stop1 } = useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const rect = $elem.getBoundingClientRect();\n width.value = rect.width;\n height.value = rect.height;\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n tryOnMounted(() => {\n const ele = unrefElement(target);\n if (ele) {\n width.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n height.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n }\n });\n const stop2 = watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n function stop() {\n stop1();\n stop2();\n }\n return {\n width,\n height,\n stop\n };\n}\n\nconst vElementSize = {\n [directiveHooks.mounted](el, binding) {\n var _a;\n const handler = typeof binding.value === \"function\" ? binding.value : (_a = binding.value) == null ? void 0 : _a[0];\n const options = typeof binding.value === \"function\" ? [] : binding.value.slice(1);\n const { width, height } = useElementSize(el, ...options);\n watch([width, height], ([width2, height2]) => handler({ width: width2, height: height2 }));\n }\n};\n\nconst UseElementVisibility = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseElementVisibility\",\n props: [\"as\"],\n setup(props, { slots }) {\n const target = ref();\n const data = reactive({\n isVisible: useElementVisibility$1(target)\n });\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0.1,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = computed(() => {\n const _target = toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n });\n let cleanup = noop;\n const isActive = ref(immediate);\n const stopWatch = isSupported.value ? watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, options = {}) {\n const { window = defaultWindow, scrollTarget, threshold = 0 } = options;\n const elementIsVisible = ref(false);\n useIntersectionObserver(\n element,\n (intersectionObserverEntries) => {\n let isIntersecting = elementIsVisible.value;\n let latestTime = 0;\n for (const entry of intersectionObserverEntries) {\n if (entry.time >= latestTime) {\n latestTime = entry.time;\n isIntersecting = entry.isIntersecting;\n }\n }\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window,\n threshold\n }\n );\n return elementIsVisible;\n}\n\nconst vElementVisibility = {\n [directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\") {\n const handler = binding.value;\n const isVisible = useElementVisibility(el);\n watch(isVisible, (v) => handler(v), { immediate: true });\n } else {\n const [handler, options] = binding.value;\n const isVisible = useElementVisibility(el, options);\n watch(isVisible, (v) => handler(v), { immediate: true });\n }\n }\n};\n\nconst UseEyeDropper = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseEyeDropper\",\n props: {\n sRGBHex: String\n },\n setup(props, { slots }) {\n const data = reactive(useEyeDropper());\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseFullscreen = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseFullscreen\",\n props: [\"as\"],\n setup(props, { slots }) {\n const target = ref();\n const data = reactive(useFullscreen(target));\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nconst UseGeolocation = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseGeolocation\",\n props: [\"enableHighAccuracy\", \"maximumAge\", \"timeout\", \"navigator\"],\n setup(props, { slots }) {\n const data = reactive(useGeolocation(props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseIdle = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseIdle\",\n props: [\"timeout\", \"events\", \"listenForVisibilityChange\", \"initialState\"],\n setup(props, { slots }) {\n const data = reactive(useIdle(props.timeout, props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n };\n}\n\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(toValue(options)),\n void 0,\n {\n resetOnExecute: true,\n ...asyncStateOptions\n }\n );\n watch(\n () => toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nconst UseImage = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseImage\",\n props: [\n \"src\",\n \"srcset\",\n \"sizes\",\n \"as\",\n \"alt\",\n \"class\",\n \"loading\",\n \"crossorigin\",\n \"referrerPolicy\"\n ],\n setup(props, { slots }) {\n const data = reactive(useImage(props));\n return () => {\n if (data.isLoading && slots.loading)\n return slots.loading(data);\n else if (data.error && slots.error)\n return slots.error(data.error);\n if (slots.default)\n return slots.default(data);\n return h(props.as || \"img\", props);\n };\n }\n});\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c, _d;\n if (!window)\n return;\n const _element = toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = toValue(_y)) != null ? _a : y.value,\n left: (_b = toValue(_x)) != null ? _b : x.value,\n behavior: toValue(behavior)\n });\n const scrollContainer = ((_d = _element == null ? void 0 : _element.document) == null ? void 0 : _d.documentElement) || (_element == null ? void 0 : _element.documentElement) || _element;\n if (x != null)\n internalX.value = scrollContainer.scrollLeft;\n if (y != null)\n internalY.value = scrollContainer.scrollTop;\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n var _a;\n if (!window)\n return;\n const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target);\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n var _a;\n if (!window)\n return;\n const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n tryOnMounted(() => {\n try {\n const _element = toValue(element);\n if (!_element)\n return;\n setArrivedState(_element);\n } catch (e) {\n onError(e);\n }\n });\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100,\n canLoadMore = () => true\n } = options;\n const state = reactive(useScroll(\n element,\n {\n ...options,\n offset: {\n [direction]: (_a = options.distance) != null ? _a : 0,\n ...options.offset\n }\n }\n ));\n const promise = ref();\n const isLoading = computed(() => !!promise.value);\n const observedElement = computed(() => {\n return resolveElement(toValue(element));\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value))\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n nextTick(() => checkAndLoad());\n });\n }\n }\n }\n watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n return {\n isLoading\n };\n}\n\nconst vInfiniteScroll = {\n [directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\")\n useInfiniteScroll(el, binding.value);\n else\n useInfiniteScroll(el, ...binding.value);\n }\n};\n\nconst vIntersectionObserver = {\n [directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\")\n useIntersectionObserver(el, binding.value);\n else\n useIntersectionObserver(el, ...binding.value);\n }\n};\n\nconst UseMouse = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseMouse\",\n props: [\"touch\", \"resetOnTouchEnds\", \"initialValue\"],\n setup(props, { slots }) {\n const data = reactive(useMouse(props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseMouseInElement = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseMouseElement\",\n props: [\"handleOutside\", \"as\"],\n setup(props, { slots }) {\n const target = ref();\n const data = reactive(useMouseInElement(target, props));\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nconst UseMousePressed = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseMousePressed\",\n props: [\"touch\", \"initialValue\", \"as\"],\n setup(props, { slots }) {\n const target = ref();\n const data = reactive(useMousePressed({ ...props, target }));\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nconst UseNetwork = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseNetwork\",\n setup(props, { slots }) {\n const data = reactive(useNetwork());\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseNow = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseNow\",\n props: [\"interval\"],\n setup(props, { slots }) {\n const data = reactive(useNow({ ...props, controls: true }));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseObjectUrl = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseObjectUrl\",\n props: [\n \"object\"\n ],\n setup(props, { slots }) {\n const object = toRef(props, \"object\");\n const url = useObjectUrl(object);\n return () => {\n if (slots.default && url.value)\n return slots.default(url);\n };\n }\n});\n\nconst UseOffsetPagination = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseOffsetPagination\",\n props: [\n \"total\",\n \"page\",\n \"pageSize\",\n \"onPageChange\",\n \"onPageSizeChange\",\n \"onPageCountChange\"\n ],\n emits: [\n \"page-change\",\n \"page-size-change\",\n \"page-count-change\"\n ],\n setup(props, { slots, emit }) {\n const data = reactive(useOffsetPagination({\n ...props,\n onPageChange(...args) {\n var _a;\n (_a = props.onPageChange) == null ? void 0 : _a.call(props, ...args);\n emit(\"page-change\", ...args);\n },\n onPageSizeChange(...args) {\n var _a;\n (_a = props.onPageSizeChange) == null ? void 0 : _a.call(props, ...args);\n emit(\"page-size-change\", ...args);\n },\n onPageCountChange(...args) {\n var _a;\n (_a = props.onPageCountChange) == null ? void 0 : _a.call(props, ...args);\n emit(\"page-count-change\", ...args);\n }\n }));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseOnline = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseOnline\",\n setup(props, { slots }) {\n const data = reactive({\n isOnline: useOnline()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePageLeave = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UsePageLeave\",\n setup(props, { slots }) {\n const data = reactive({\n isLeft: usePageLeave()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePointer = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UsePointer\",\n props: [\n \"pointerTypes\",\n \"initialValue\",\n \"target\"\n ],\n setup(props, { slots }) {\n const el = ref(null);\n const data = reactive(usePointer({\n ...props,\n target: props.target === \"self\" ? el : defaultWindow\n }));\n return () => {\n if (slots.default)\n return slots.default(data, { ref: el });\n };\n }\n});\n\nconst UsePointerLock = /* #__PURE__ */ defineComponent({\n name: \"UsePointerLock\",\n props: [\"as\"],\n setup(props, { slots }) {\n const target = ref();\n const data = reactive(usePointerLock(target));\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nconst UsePreferredColorScheme = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UsePreferredColorScheme\",\n setup(props, { slots }) {\n const data = reactive({\n colorScheme: usePreferredColorScheme()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePreferredContrast = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UsePreferredContrast\",\n setup(props, { slots }) {\n const data = reactive({\n contrast: usePreferredContrast()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePreferredDark = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UsePreferredDark\",\n setup(props, { slots }) {\n const data = reactive({\n prefersDark: usePreferredDark$1()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePreferredLanguages = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UsePreferredLanguages\",\n setup(props, { slots }) {\n const data = reactive({\n languages: usePreferredLanguages()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePreferredReducedMotion = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UsePreferredReducedMotion\",\n setup(props, { slots }) {\n const data = reactive({\n motion: usePreferredReducedMotion()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nfunction useMutationObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => {\n const value = toValue(target);\n const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish);\n return new Set(items);\n });\n const stopWatch = watch(\n () => targets.value,\n (targets2) => {\n cleanup();\n if (isSupported.value && targets2.size) {\n observer = new MutationObserver(callback);\n targets2.forEach((el) => observer.observe(el, mutationOptions));\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const takeRecords = () => {\n return observer == null ? void 0 : observer.takeRecords();\n };\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop,\n takeRecords\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue = \"\", observe = false } = options;\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = toValue(prop);\n const el = toValue(elRef);\n if (el && window) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n watch(\n [elRef, () => toValue(prop)],\n updateCssVar,\n { immediate: true }\n );\n watch(\n variable,\n (val) => {\n var _a;\n if ((_a = elRef.value) == null ? void 0 : _a.style)\n elRef.value.style.setProperty(toValue(prop), val);\n }\n );\n return variable;\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nconst UseScreenSafeArea = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseScreenSafeArea\",\n props: {\n top: Boolean,\n right: Boolean,\n bottom: Boolean,\n left: Boolean\n },\n setup(props, { slots }) {\n const {\n top,\n right,\n bottom,\n left\n } = useScreenSafeArea();\n return () => {\n if (slots.default) {\n return h(\"div\", {\n style: {\n paddingTop: props.top ? top.value : \"\",\n paddingRight: props.right ? right.value : \"\",\n paddingBottom: props.bottom ? bottom.value : \"\",\n paddingLeft: props.left ? left.value : \"\",\n boxSizing: \"border-box\",\n maxHeight: \"100vh\",\n maxWidth: \"100vw\",\n overflow: \"auto\"\n }\n }, slots.default());\n }\n };\n }\n});\n\nconst vScroll = {\n [directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\") {\n const handler = binding.value;\n const state = useScroll(el, {\n onScroll() {\n handler(state);\n },\n onStop() {\n handler(state);\n }\n });\n } else {\n const [handler, options] = binding.value;\n const state = useScroll(el, {\n ...options,\n onScroll(e) {\n var _a;\n (_a = options.onScroll) == null ? void 0 : _a.call(options, e);\n handler(state);\n },\n onStop(e) {\n var _a;\n (_a = options.onStop) == null ? void 0 : _a.call(options, e);\n handler(state);\n }\n });\n }\n }\n};\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow = \"\";\n watch(toRef(element), (el) => {\n const target = resolveElement(toValue(el));\n if (target) {\n const ele = target;\n if (!elInitialOverflow.get(ele))\n elInitialOverflow.set(ele, ele.style.overflow);\n if (ele.style.overflow !== \"hidden\")\n initialOverflow = ele.style.overflow;\n if (ele.style.overflow === \"hidden\")\n return isLocked.value = true;\n if (isLocked.value)\n return ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(toValue(element));\n if (!el || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const el = resolveElement(toValue(element));\n if (!el || !isLocked.value)\n return;\n isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n el.style.overflow = initialOverflow;\n elInitialOverflow.delete(el);\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else unlock();\n }\n });\n}\n\nfunction onScrollLock() {\n let isMounted = false;\n const state = ref(false);\n return (el, binding) => {\n state.value = binding.value;\n if (isMounted)\n return;\n isMounted = true;\n const isLocked = useScrollLock(el, binding.value);\n watch(state, (v) => isLocked.value = v);\n };\n}\nconst vScrollLock = onScrollLock();\n\nconst UseTimeAgo = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseTimeAgo\",\n props: [\"time\", \"updateInterval\", \"max\", \"fullDateFormatter\", \"messages\", \"showSecond\"],\n setup(props, { slots }) {\n const data = reactive(useTimeAgo(() => props.time, { ...props, controls: true }));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseTimestamp = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseTimestamp\",\n props: [\"immediate\", \"interval\", \"offset\"],\n setup(props, { slots }) {\n const data = reactive(useTimestamp({ ...props, controls: true }));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseVirtualList = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseVirtualList\",\n props: [\n \"list\",\n \"options\",\n \"height\"\n ],\n setup(props, { slots, expose }) {\n const { list: listRef } = toRefs(props);\n const { list, containerProps, wrapperProps, scrollTo } = useVirtualList(listRef, props.options);\n expose({ scrollTo });\n if (containerProps.style && typeof containerProps.style === \"object\" && !Array.isArray(containerProps.style))\n containerProps.style.height = props.height || \"300px\";\n return () => h(\"div\", { ...containerProps }, [\n h(\"div\", { ...wrapperProps.value }, list.value.map((item) => h(\"div\", { style: { overflow: \"hidden\", height: item.height } }, slots.default ? slots.default(item) : \"Please set content!\")))\n ]);\n }\n});\n\nconst UseWindowFocus = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseWindowFocus\",\n setup(props, { slots }) {\n const data = reactive({\n focused: useWindowFocus()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseWindowSize = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseWindowSize\",\n props: [\"initialWidth\", \"initialHeight\"],\n setup(props, { slots }) {\n const data = reactive(useWindowSize(props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nexport { OnClickOutside, OnLongPress, UseActiveElement, UseBattery, UseBrowserLocation, UseClipboard, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseImage, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseObjectUrl, UseOffsetPagination, UseOnline, UsePageLeave, UsePointer, UsePointerLock, UsePreferredColorScheme, UsePreferredContrast, UsePreferredDark, UsePreferredLanguages, UsePreferredReducedMotion, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseWindowFocus, UseWindowSize, vOnClickOutside as VOnClickOutside, vOnLongPress as VOnLongPress, vElementHover, vElementSize, vElementVisibility, vInfiniteScroll, vIntersectionObserver, vOnClickOutside, vOnKeyStroke, vOnLongPress, vScroll, vScrollLock };\n","<template>\r\n <div class=\"scope-dropdown-panel\">\r\n <slot name=\"header\" />\r\n\r\n <div\r\n v-on-click-outside.bubble=\"setOutsideHandler\"\r\n class=\"scope-dropdown-panel__dropdown_manager\"\r\n :style=\"{\r\n [orientation]: orientationPos,\r\n width: width\r\n }\"\r\n :class=\"{\r\n 'scope-dropdown-panel__dropdown_manager--active': isOpen\r\n }\"\r\n >\r\n <div\r\n class=\"scope-dropdown-panel__dropdown-header\"\r\n v-if=\"haveHeader\"\r\n >\r\n <span>{{ title }}</span>\r\n <Icon\r\n v-if=\"isClosePopup\"\r\n icon=\"close-popup\"\r\n @click=\"$emit('closePopup')\"\r\n />\r\n </div>\r\n <slot name=\"searchInput\" />\r\n <slot name=\"body\" />\r\n <slot name=\"footer\" />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport { vOnClickOutside } from '@vueuse/components';\r\nimport { onMounted, onUnmounted } from 'vue';\r\n\r\nimport Icon from './Icon.vue';\r\n\r\nconst props = defineProps({\r\n title: { type: String },\r\n isClosePopup: { type: Boolean, default: true },\r\n haveHeader: { type: Boolean, default: true },\r\n isOpen: { type: Boolean },\r\n orientation: { type: String, default: 'right' },\r\n orientationPos: { type: String, default: '0' },\r\n width: { type: String, default: '230px' }\r\n});\r\n\r\nconst emit = defineEmits(['outsideClick', 'closePopup']);\r\n\r\nconst setOutsideHandler = (event) => {\r\n emit('outsideClick');\r\n};\r\n\r\nconst closeOnScroll = () => {\r\n if (!props.isOpen) return;\r\n emit('closePopup');\r\n};\r\n\r\nonMounted(() => {\r\n window.addEventListener('scroll', closeOnScroll, true);\r\n});\r\n\r\nonUnmounted(() => {\r\n window.removeEventListener('scroll', closeOnScroll, true);\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n@import '@/assets/styles/main';\r\n\r\n.scope-dropdown-panel {\r\n position: relative;\r\n\r\n &__dropdown {\r\n &_manager {\r\n position: absolute;\r\n top: 110%;\r\n opacity: 0;\r\n visibility: hidden;\r\n @include transition-default;\r\n padding: 8px;\r\n gap: 10px;\r\n border-radius: 12px;\r\n background: $card-background;\r\n border: 1px solid $border;\r\n @include shadow-small;\r\n z-index: 104;\r\n\r\n &--active {\r\n opacity: 1;\r\n visibility: visible;\r\n }\r\n }\r\n\r\n &-header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin-bottom: 14px;\r\n\r\n svg {\r\n cursor: pointer;\r\n }\r\n\r\n span {\r\n color: $text-high-emphasis;\r\n @include fz-14;\r\n font-weight: 500;\r\n }\r\n }\r\n }\r\n}\r\n\r\nbody[theme='dark'] .scope-dropdown-panel {\r\n .scope-dropdown-panel__dropdown_manager {\r\n background: $card-neutral-background;\r\n border-color: $border-secondary;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"20\"\r\n height=\"20\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"none\"\r\n >\r\n <path\r\n d=\"M15.4141 4.53076C15.6728 4.20753 16.1454 4.15497 16.4688 4.41357C16.7921 4.67228 16.8445 5.14482 16.5859 5.46826L8.58594 15.4683C8.45268 15.6348 8.25399 15.7367 8.04102 15.7485C7.82817 15.7602 7.62046 15.6805 7.46973 15.5298L3.46973 11.5298C3.17695 11.2369 3.17687 10.7621 3.46973 10.4692C3.76259 10.1766 4.23743 10.1765 4.53027 10.4692L7.9375 13.8765L15.4141 4.53076Z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n</template>\r\n","<template>\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\"\r\n >\r\n <path\r\n d=\"M14.6 11.1119L9.776 2.76787C9.59703 2.45296 9.33744 2.19138 9.02391 2.01001C8.71037 1.82864 8.3542 1.73402 7.992 1.73587C7.62979 1.73402 7.27362 1.82864 6.96009 2.01001C6.64656 2.19138 6.38697 2.45296 6.208 2.76787L1.384 11.1119C1.20046 11.4248 1.10371 11.7811 1.10371 12.1439C1.10371 12.5067 1.20046 12.8629 1.384 13.1759C1.56363 13.492 1.82448 13.7543 2.13954 13.9358C2.45461 14.1172 2.81244 14.2111 3.176 14.2079H12.808C13.552 14.2079 14.224 13.8239 14.6 13.1759C14.976 12.5279 14.976 11.7599 14.6 11.1119ZM7.328 5.76787C7.328 5.59176 7.39795 5.42287 7.52248 5.29835C7.647 5.17382 7.81589 5.10387 7.992 5.10387C8.1681 5.10387 8.33699 5.17382 8.46152 5.29835C8.58604 5.42287 8.656 5.59176 8.656 5.76787V8.87987C8.656 9.05597 8.58604 9.22486 8.46152 9.34939C8.33699 9.47391 8.1681 9.54387 7.992 9.54387C7.81589 9.54387 7.647 9.47391 7.52248 9.34939C7.39795 9.22486 7.328 9.05597 7.328 8.87987V5.76787ZM7.992 12.0479C7.75648 12.0479 7.53062 11.9543 7.36409 11.7878C7.19755 11.6212 7.104 11.3954 7.104 11.1599C7.104 10.9244 7.19755 10.6985 7.36409 10.532C7.53062 10.3654 7.75648 10.2719 7.992 10.2719C8.22751 10.2719 8.45338 10.3654 8.61991 10.532C8.78644 10.6985 8.88 10.9244 8.88 11.1599C8.88 11.3954 8.78644 11.6212 8.61991 11.7878C8.45338 11.9543 8.22751 12.0479 7.992 12.0479Z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n</template>\r\n","<template>\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"20\"\r\n height=\"20\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"none\"\r\n >\r\n <path\r\n d=\"M14.7222 2.22222H5.27772C3.59217 2.22222 2.22217 3.58889 2.22217 5.27778V14.7222C2.22217 16.4111 3.59217 17.7778 5.27772 17.7778H14.7222C16.4077 17.7778 17.7777 16.4111 17.7777 14.7222V5.27778C17.7777 3.58889 16.4077 2.22222 14.7222 2.22222ZM10.8333 13.8889C10.8333 14.349 10.4601 14.7222 9.99995 14.7222C9.53983 14.7222 9.16661 14.349 9.16661 13.8889V10.5556H8.61106C8.15095 10.5556 7.77772 10.1823 7.77772 9.72222C7.77772 9.26211 8.15095 8.88889 8.61106 8.88889H9.44439C10.2105 8.88889 10.8333 9.51167 10.8333 10.2778V13.8889ZM9.99995 7.5C9.38661 7.5 8.88883 7.00089 8.88883 6.38889C8.88883 5.77689 9.38661 5.27778 9.99995 5.27778C10.6133 5.27778 11.1111 5.77689 11.1111 6.38889C11.1111 7.00089 10.6133 7.5 9.99995 7.5Z\"\r\n fill=\"#007AFF\"\r\n />\r\n </svg>\r\n</template>\r\n","<template>\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"20\"\r\n height=\"20\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"none\"\r\n >\r\n <g clip-path=\"url(#clip0_2557_710)\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M0.833374 10C0.833374 15.0542 4.94587 19.1667 10 19.1667C15.0542 19.1667 19.1667 15.0542 19.1667 10C19.1667 4.94584 15.0542 0.833344 10 0.833344C4.94587 0.833344 0.833374 4.94584 0.833374 10ZM2.50004 10C2.50004 5.86418 5.86504 2.50001 10 2.50001C11.768 2.50001 13.3952 3.115 14.6788 4.14235L4.14237 14.6788C3.11507 13.3953 2.50004 11.7682 2.50004 10ZM5.32084 15.8573C6.60452 16.8849 8.23188 17.5 10 17.5C14.135 17.5 17.5 14.1358 17.5 10C17.5 8.23165 16.8849 6.60437 15.8574 5.3208L5.32084 15.8573Z\"\r\n fill=\"#F18169\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2557_710\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n</template>\r\n","import { openBlock, createBlock, withKeys, withModifiers, renderSlot, createVNode, withDirectives, Fragment, renderList, toDisplayString, vShow, createCommentVNode, Transition, withCtx, createTextVNode } from 'vue';\n\nfunction isEmpty (opt) {\n if (opt === 0) return false\n if (Array.isArray(opt) && opt.length === 0) return true\n return !opt\n}\n\nfunction not (fun) {\n return (...params) => !fun(...params)\n}\n\nfunction includes (str, query) {\n /* istanbul ignore else */\n if (str === undefined) str = 'undefined';\n if (str === null) str = 'null';\n if (str === false) str = 'false';\n const text = str.toString().toLowerCase();\n return text.indexOf(query.trim()) !== -1\n}\n\nfunction filterOptions (options, search, label, customLabel) {\n return search ? options\n .filter((option) => includes(customLabel(option, label), search))\n .sort((a, b) => customLabel(a, label).length - customLabel(b, label).length) : options\n}\n\nfunction stripGroups (options) {\n return options.filter((option) => !option.$isLabel)\n}\n\nfunction flattenOptions (values, label) {\n return (options) =>\n options.reduce((prev, curr) => {\n /* istanbul ignore else */\n if (curr[values] && curr[values].length) {\n prev.push({\n $groupLabel: curr[label],\n $isLabel: true\n });\n return prev.concat(curr[values])\n }\n return prev\n }, [])\n}\n\nfunction filterGroups (search, label, values, groupLabel, customLabel) {\n return (groups) =>\n groups.map((group) => {\n /* istanbul ignore else */\n if (!group[values]) {\n console.warn(`Options passed to vue-multiselect do not contain groups, despite the config.`);\n return []\n }\n const groupOptions = filterOptions(group[values], search, label, customLabel);\n\n return groupOptions.length\n ? {\n [groupLabel]: group[groupLabel],\n [values]: groupOptions\n }\n : []\n })\n}\n\nconst flow = (...fns) => (x) => fns.reduce((v, f) => f(v), x);\n\nvar multiselectMixin = {\n data () {\n return {\n search: '',\n isOpen: false,\n preferredOpenDirection: 'below',\n optimizedHeight: this.maxHeight\n }\n },\n props: {\n /**\n * Decide whether to filter the results based on search query.\n * Useful for async filtering, where we search through more complex data.\n * @type {Boolean}\n */\n internalSearch: {\n type: Boolean,\n default: true\n },\n /**\n * Array of available options: Objects, Strings or Integers.\n * If array of objects, visible label will default to option.label.\n * If `labal` prop is passed, label will equal option['label']\n * @type {Array}\n */\n options: {\n type: Array,\n required: true\n },\n /**\n * Equivalent to the `multiple` attribute on a `<select>` input.\n * @default false\n * @type {Boolean}\n */\n multiple: {\n type: Boolean,\n default: false\n },\n /**\n * Key to compare objects\n * @default 'id'\n * @type {String}\n */\n trackBy: {\n type: String\n },\n /**\n * Label to look for in option Object\n * @default 'label'\n * @type {String}\n */\n label: {\n type: String\n },\n /**\n * Enable/disable search in options\n * @default true\n * @type {Boolean}\n */\n searchable: {\n type: Boolean,\n default: true\n },\n /**\n * Clear the search input after `)\n * @default true\n * @type {Boolean}\n */\n clearOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Hide already selected options\n * @default false\n * @type {Boolean}\n */\n hideSelected: {\n type: Boolean,\n default: false\n },\n /**\n * Equivalent to the `placeholder` attribute on a `<select>` input.\n * @default 'Select option'\n * @type {String}\n */\n placeholder: {\n type: String,\n default: 'Select option'\n },\n /**\n * Allow to remove all selected values\n * @default true\n * @type {Boolean}\n */\n allowEmpty: {\n type: Boolean,\n default: true\n },\n /**\n * Reset this.internalValue, this.search after this.internalValue changes.\n * Useful if want to create a stateless dropdown.\n * @default false\n * @type {Boolean}\n */\n resetAfter: {\n type: Boolean,\n default: false\n },\n /**\n * Enable/disable closing after selecting an option\n * @default true\n * @type {Boolean}\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Function to interpolate the custom label\n * @default false\n * @type {Function}\n */\n customLabel: {\n type: Function,\n default (option, label) {\n if (isEmpty(option)) return ''\n return label ? option[label] : option\n }\n },\n /**\n * Disable / Enable tagging\n * @default false\n * @type {Boolean}\n */\n taggable: {\n type: Boolean,\n default: false\n },\n /**\n * String to show when highlighting a potential tag\n * @default 'Press enter to create a tag'\n * @type {String}\n */\n tagPlaceholder: {\n type: String,\n default: 'Press enter to create a tag'\n },\n /**\n * By default new tags will appear above the search results.\n * Changing to 'bottom' will revert this behaviour\n * and will proritize the search results\n * @default 'top'\n * @type {String}\n */\n tagPosition: {\n type: String,\n default: 'top'\n },\n /**\n * Number of allowed selected options. No limit if 0.\n * @default 0\n * @type {Number}\n */\n max: {\n type: [Number, Boolean],\n default: false\n },\n /**\n * Will be passed with all events as second param.\n * Useful for identifying events origin.\n * @default null\n * @type {String|Integer}\n */\n id: {\n default: null\n },\n /**\n * Limits the options displayed in the dropdown\n * to the first X options.\n * @default 1000\n * @type {Integer}\n */\n optionsLimit: {\n type: Number,\n default: 1000\n },\n /**\n * Name of the property containing\n * the group values\n * @default 1000\n * @type {String}\n */\n groupValues: {\n type: String\n },\n /**\n * Name of the property containing\n * the group label\n * @default 1000\n * @type {String}\n */\n groupLabel: {\n type: String\n },\n /**\n * Allow to select all group values\n * by selecting the group label\n * @default false\n * @type {Boolean}\n */\n groupSelect: {\n type: Boolean,\n default: false\n },\n /**\n * Array of keyboard keys to block\n * when selecting\n * @default 1000\n * @type {String}\n */\n blockKeys: {\n type: Array,\n default () {\n return []\n }\n },\n /**\n * Prevent from wiping up the search value\n * @default false\n * @type {Boolean}\n */\n preserveSearch: {\n type: Boolean,\n default: false\n },\n /**\n * Select 1st options if value is empty\n * @default false\n * @type {Boolean}\n */\n preselectFirst: {\n type: Boolean,\n default: false\n },\n /**\n * Prevent autofocus\n * @default false\n * @type {Boolean}\n */\n preventAutofocus: {\n type: Boolean,\n default: false\n }\n },\n mounted () {\n /* istanbul ignore else */\n if (!this.multiple && this.max) {\n console.warn('[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.');\n }\n if (\n this.preselectFirst &&\n !this.internalValue.length &&\n this.options.length\n ) {\n this.select(this.filteredOptions[0]);\n }\n },\n computed: {\n internalValue () {\n return this.modelValue || this.modelValue === 0\n ? Array.isArray(this.modelValue) ? this.modelValue : [this.modelValue]\n : []\n },\n filteredOptions () {\n const search = this.search || '';\n const normalizedSearch = search.toLowerCase().trim();\n\n let options = this.options.concat();\n\n /* istanbul ignore else */\n if (this.internalSearch) {\n options = this.groupValues\n ? this.filterAndFlat(options, normalizedSearch, this.label)\n : filterOptions(options, normalizedSearch, this.label, this.customLabel);\n } else {\n options = this.groupValues ? flattenOptions(this.groupValues, this.groupLabel)(options) : options;\n }\n\n options = this.hideSelected\n ? options.filter(not(this.isSelected))\n : options;\n\n /* istanbul ignore else */\n if (this.taggable && normalizedSearch.length && !this.isExistingOption(normalizedSearch)) {\n if (this.tagPosition === 'bottom') {\n options.push({isTag: true, label: search});\n } else {\n options.unshift({isTag: true, label: search});\n }\n }\n\n return options.slice(0, this.optionsLimit)\n },\n valueKeys () {\n if (this.trackBy) {\n return this.internalValue.map((element) => element[this.trackBy])\n } else {\n return this.internalValue\n }\n },\n optionKeys () {\n const options = this.groupValues ? this.flatAndStrip(this.options) : this.options;\n return options.map((element) => this.customLabel(element, this.label).toString().toLowerCase())\n },\n currentOptionLabel () {\n return this.multiple\n ? this.searchable ? '' : this.placeholder\n : this.internalValue.length\n ? this.getOptionLabel(this.internalValue[0])\n : this.searchable ? '' : this.placeholder\n }\n },\n watch: {\n internalValue: {\n handler () {\n /* istanbul ignore else */\n if (this.resetAfter && this.internalValue.length) {\n this.search = '';\n this.$emit('update:modelValue', this.multiple ? [] : null);\n }\n },\n deep: true\n },\n search () {\n this.$emit('search-change', this.search);\n }\n },\n emits: ['open', 'search-change', 'close', 'select', 'update:modelValue', 'remove', 'tag'],\n methods: {\n /**\n * Returns the internalValue in a way it can be emited to the parent\n * @returns {Object||Array||String||Integer}\n */\n getValue () {\n return this.multiple\n ? this.internalValue\n : this.internalValue.length === 0\n ? null\n : this.internalValue[0]\n },\n /**\n * Filters and then flattens the options list\n * @param {Array}\n * @return {Array} returns a filtered and flat options list\n */\n filterAndFlat (options, search, label) {\n return flow(\n filterGroups(search, label, this.groupValues, this.groupLabel, this.customLabel),\n flattenOptions(this.groupValues, this.groupLabel)\n )(options)\n },\n /**\n * Flattens and then strips the group labels from the options list\n * @param {Array}\n * @return {Array} returns a flat options list without group labels\n */\n flatAndStrip (options) {\n return flow(\n flattenOptions(this.groupValues, this.groupLabel),\n stripGroups\n )(options)\n },\n /**\n * Updates the search value\n * @param {String}\n */\n updateSearch (query) {\n this.search = query;\n },\n /**\n * Finds out if the given query is already present\n * in the available options\n * @param {String}\n * @return {Boolean} returns true if element is available\n */\n isExistingOption (query) {\n return !this.options\n ? false\n : this.optionKeys.indexOf(query) > -1\n },\n /**\n * Finds out if the given element is already present\n * in the result value\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is selected\n */\n isSelected (option) {\n const opt = this.trackBy\n ? option[this.trackBy]\n : option;\n return this.valueKeys.indexOf(opt) > -1\n },\n /**\n * Finds out if the given option is disabled\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is disabled\n */\n isOptionDisabled (option) {\n return !!option.$isDisabled\n },\n /**\n * Returns empty string when options is null/undefined\n * Returns tag query if option is tag.\n * Returns the customLabel() results and casts it to string.\n *\n * @param {Object||String||Integer} Passed option\n * @returns {Object||String}\n */\n getOptionLabel (option) {\n if (isEmpty(option)) return ''\n /* istanbul ignore else */\n if (option.isTag) return option.label\n /* istanbul ignore else */\n if (option.$isLabel) return option.$groupLabel\n\n const label = this.customLabel(option, this.label);\n /* istanbul ignore else */\n if (isEmpty(label)) return ''\n return label\n },\n /**\n * Add the given option to the list of selected options\n * or sets the option as the selected option.\n * If option is already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} option to select/deselect\n * @param {Boolean} block removing\n */\n select (option, key) {\n /* istanbul ignore else */\n if (option.$isLabel && this.groupSelect) {\n this.selectGroup(option);\n return\n }\n if (this.blockKeys.indexOf(key) !== -1 ||\n this.disabled ||\n option.$isDisabled ||\n option.$isLabel\n ) return\n /* istanbul ignore else */\n if (this.max && this.multiple && this.internalValue.length === this.max) return\n /* istanbul ignore else */\n if (key === 'Tab' && !this.pointerDirty) return\n if (option.isTag) {\n this.$emit('tag', option.label, this.id);\n this.search = '';\n if (this.closeOnSelect && !this.multiple) this.deactivate();\n } else {\n const isSelected = this.isSelected(option);\n\n if (isSelected) {\n if (key !== 'Tab') this.removeElement(option);\n return\n }\n\n if (this.multiple) {\n this.$emit('update:modelValue', this.internalValue.concat([option]));\n } else {\n this.$emit('update:modelValue', option);\n }\n\n this.$emit('select', option, this.id);\n\n /* istanbul ignore else */\n if (this.clearOnSelect) this.search = '';\n }\n /* istanbul ignore else */\n if (this.closeOnSelect) this.deactivate();\n },\n /**\n * Add the given group options to the list of selected options\n * If all group optiona are already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} group to select/deselect\n */\n selectGroup (selectedGroup) {\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n });\n\n if (!group) return\n\n if (this.wholeGroupSelected(group)) {\n this.$emit('remove', group[this.groupValues], this.id);\n\n const groupValues = this.trackBy ? group[this.groupValues].map(val => val[this.trackBy]) : group[this.groupValues];\n const newValue = this.internalValue.filter(\n option => groupValues.indexOf(this.trackBy ? option[this.trackBy] : option) === -1\n );\n\n this.$emit('update:modelValue', newValue);\n } else {\n let optionsToAdd = group[this.groupValues].filter(\n option => !(this.isOptionDisabled(option) || this.isSelected(option))\n );\n\n // if max is defined then just select options respecting max\n if (this.max) {\n optionsToAdd.splice(this.max - this.internalValue.length);\n }\n\n this.$emit('select', optionsToAdd, this.id);\n this.$emit(\n 'update:modelValue',\n this.internalValue.concat(optionsToAdd)\n );\n }\n\n if (this.closeOnSelect) this.deactivate();\n },\n /**\n * Helper to identify if all values in a group are selected\n *\n * @param {Object} group to validated selected values against\n */\n wholeGroupSelected (group) {\n return group[this.groupValues].every((option) => this.isSelected(option) || this.isOptionDisabled(option)\n )\n },\n /**\n * Helper to identify if all values in a group are disabled\n *\n * @param {Object} group to check for disabled values\n */\n wholeGroupDisabled (group) {\n return group[this.groupValues].every(this.isOptionDisabled)\n },\n /**\n * Removes the given option from the selected options.\n * Additionally checks this.allowEmpty prop if option can be removed when\n * it is the last selected option.\n *\n * @param {type} option description\n * @return {type} description\n */\n removeElement (option, shouldClose = true) {\n /* istanbul ignore else */\n if (this.disabled) return\n /* istanbul ignore else */\n if (option.$isDisabled) return\n /* istanbul ignore else */\n if (!this.allowEmpty && this.internalValue.length <= 1) {\n this.deactivate();\n return\n }\n\n const index = typeof option === 'object'\n ? this.valueKeys.indexOf(option[this.trackBy])\n : this.valueKeys.indexOf(option);\n\n if (this.multiple) {\n const newValue = this.internalValue.slice(0, index).concat(this.internalValue.slice(index + 1));\n this.$emit('update:modelValue', newValue);\n } else {\n this.$emit('update:modelValue', null);\n }\n this.$emit('remove', option, this.id);\n\n /* istanbul ignore else */\n if (this.closeOnSelect && shouldClose) this.deactivate();\n },\n /**\n * Calls this.removeElement() with the last element\n * from this.internalValue (selected element Array)\n *\n * @fires this#removeElement\n */\n removeLastElement () {\n /* istanbul ignore else */\n if (this.blockKeys.indexOf('Delete') !== -1) return\n /* istanbul ignore else */\n if (this.search.length === 0 && Array.isArray(this.internalValue) && this.internalValue.length) {\n this.removeElement(this.internalValue[this.internalValue.length - 1], false);\n }\n },\n /**\n * Opens the multiselect’s dropdown.\n * Sets this.isOpen to TRUE\n */\n activate () {\n /* istanbul ignore else */\n if (this.isOpen || this.disabled) return\n\n this.adjustPosition();\n /* istanbul ignore else */\n if (this.groupValues && this.pointer === 0 && this.filteredOptions.length) {\n this.pointer = 1;\n }\n\n this.isOpen = true;\n /* istanbul ignore else */\n if (this.searchable) {\n if (!this.preserveSearch) this.search = '';\n if (!this.preventAutofocus) this.$nextTick(() => this.$refs.search && this.$refs.search.focus());\n } else if (!this.preventAutofocus) {\n if (typeof this.$el !== 'undefined') this.$el.focus();\n }\n this.$emit('open', this.id);\n },\n /**\n * Closes the multiselect’s dropdown.\n * Sets this.isOpen to FALSE\n */\n deactivate () {\n /* istanbul ignore else */\n if (!this.isOpen) return\n\n this.isOpen = false;\n /* istanbul ignore else */\n if (this.searchable) {\n if (this.$refs.search !== null && typeof this.$refs.search !== 'undefined') this.$refs.search.blur();\n } else {\n if (typeof this.$el !== 'undefined') this.$el.blur();\n }\n if (!this.preserveSearch) this.search = '';\n this.$emit('close', this.getValue(), this.id);\n },\n /**\n * Call this.activate() or this.deactivate()\n * depending on this.isOpen value.\n *\n * @fires this#activate || this#deactivate\n * @property {Boolean} isOpen indicates if dropdown is open\n */\n toggle () {\n this.isOpen\n ? this.deactivate()\n : this.activate();\n },\n /**\n * Updates the hasEnoughSpace variable used for\n * detecting where to expand the dropdown\n */\n adjustPosition () {\n if (typeof window === 'undefined') return\n\n const spaceAbove = this.$el.getBoundingClientRect().top;\n const spaceBelow = window.innerHeight - this.$el.getBoundingClientRect().bottom;\n const hasEnoughSpaceBelow = spaceBelow > this.maxHeight;\n\n if (hasEnoughSpaceBelow || spaceBelow > spaceAbove || this.openDirection === 'below' || this.openDirection === 'bottom') {\n this.preferredOpenDirection = 'below';\n this.optimizedHeight = Math.min(spaceBelow - 40, this.maxHeight);\n } else {\n this.preferredOpenDirection = 'above';\n this.optimizedHeight = Math.min(spaceAbove - 40, this.maxHeight);\n }\n }\n }\n};\n\nvar pointerMixin = {\n data () {\n return {\n pointer: 0,\n pointerDirty: false\n }\n },\n props: {\n /**\n * Enable/disable highlighting of the pointed value.\n * @type {Boolean}\n * @default true\n */\n showPointer: {\n type: Boolean,\n default: true\n },\n optionHeight: {\n type: Number,\n default: 40\n }\n },\n computed: {\n pointerPosition () {\n return this.pointer * this.optionHeight\n },\n visibleElements () {\n return this.optimizedHeight / this.optionHeight\n }\n },\n watch: {\n filteredOptions () {\n this.pointerAdjust();\n },\n isOpen () {\n this.pointerDirty = false;\n },\n pointer () {\n this.$refs.search && this.$refs.search.setAttribute('aria-activedescendant', this.id + '-' + this.pointer.toString());\n }\n },\n methods: {\n optionHighlight (index, option) {\n return {\n 'multiselect__option--highlight': index === this.pointer && this.showPointer,\n 'multiselect__option--selected': this.isSelected(option)\n }\n },\n groupHighlight (index, selectedGroup) {\n if (!this.groupSelect) {\n return [\n 'multiselect__option--disabled',\n {'multiselect__option--group': selectedGroup.$isLabel}\n ]\n }\n\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n });\n\n return group && !this.wholeGroupDisabled(group) ? [\n 'multiselect__option--group',\n {'multiselect__option--highlight': index === this.pointer && this.showPointer},\n {'multiselect__option--group-selected': this.wholeGroupSelected(group)}\n ] : 'multiselect__option--disabled'\n },\n addPointerElement ({key} = 'Enter') {\n /* istanbul ignore else */\n if (this.filteredOptions.length > 0) {\n this.select(this.filteredOptions[this.pointer], key);\n }\n this.pointerReset();\n },\n pointerForward () {\n /* istanbul ignore else */\n if (this.pointer < this.filteredOptions.length - 1) {\n this.pointer++;\n /* istanbul ignore next */\n if (this.$refs.list.scrollTop <= this.pointerPosition - (this.visibleElements - 1) * this.optionHeight) {\n this.$refs.list.scrollTop = this.pointerPosition - (this.visibleElements - 1) * this.optionHeight;\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerForward();\n }\n this.pointerDirty = true;\n },\n pointerBackward () {\n if (this.pointer > 0) {\n this.pointer--;\n /* istanbul ignore else */\n if (this.$refs.list.scrollTop >= this.pointerPosition) {\n this.$refs.list.scrollTop = this.pointerPosition;\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerBackward();\n } else {\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[0].$isLabel &&\n !this.groupSelect\n ) this.pointerForward();\n }\n this.pointerDirty = true;\n },\n pointerReset () {\n /* istanbul ignore else */\n if (!this.closeOnSelect) return\n this.pointer = 0;\n /* istanbul ignore else */\n if (this.$refs.list) {\n this.$refs.list.scrollTop = 0;\n }\n },\n pointerAdjust () {\n /* istanbul ignore else */\n if (this.pointer >= this.filteredOptions.length - 1) {\n this.pointer = this.filteredOptions.length\n ? this.filteredOptions.length - 1\n : 0;\n }\n\n if (this.filteredOptions.length > 0 &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) {\n this.pointerForward();\n }\n },\n pointerSet (index) {\n this.pointer = index;\n this.pointerDirty = true;\n }\n }\n};\n\nvar script = {\n name: 'vue-multiselect',\n mixins: [multiselectMixin, pointerMixin],\n compatConfig: {\n MODE: 3,\n ATTR_ENUMERATED_COERCION: false\n },\n props: {\n /**\n * name attribute to match optional label element\n * @default ''\n * @type {String}\n */\n name: {\n type: String,\n default: ''\n },\n /**\n * Presets the selected options value.\n * @type {Object||Array||String||Integer}\n */\n modelValue: {\n type: null,\n default () {\n return []\n }\n },\n /**\n * String to show when pointing to an option\n * @default 'Press enter to select'\n * @type {String}\n */\n selectLabel: {\n type: String,\n default: 'Press enter to select'\n },\n /**\n * String to show when pointing to an option\n * @default 'Press enter to select'\n * @type {String}\n */\n selectGroupLabel: {\n type: String,\n default: 'Press enter to select group'\n },\n /**\n * String to show next to selected option\n * @default 'Selected'\n * @type {String}\n */\n selectedLabel: {\n type: String,\n default: 'Selected'\n },\n /**\n * String to show when pointing to an already selected option\n * @default 'Press enter to remove'\n * @type {String}\n */\n deselectLabel: {\n type: String,\n default: 'Press enter to remove'\n },\n /**\n * String to show when pointing to an already selected option\n * @default 'Press enter to remove'\n * @type {String}\n */\n deselectGroupLabel: {\n type: String,\n default: 'Press enter to deselect group'\n },\n /**\n * Decide whether to show pointer labels\n * @default true\n * @type {Boolean}\n */\n showLabels: {\n type: Boolean,\n default: true\n },\n /**\n * Limit the display of selected options. The rest will be hidden within the limitText string.\n * @default 99999\n * @type {Integer}\n */\n limit: {\n type: Number,\n default: 99999\n },\n /**\n * Sets maxHeight style value of the dropdown\n * @default 300\n * @type {Integer}\n */\n maxHeight: {\n type: Number,\n default: 300\n },\n /**\n * Function that process the message shown when selected\n * elements pass the defined limit.\n * @default 'and * more'\n * @param {Int} count Number of elements more than limit\n * @type {Function}\n */\n limitText: {\n type: Function,\n default: (count) => `and ${count} more`\n },\n /**\n * Set true to trigger the loading spinner.\n * @default False\n * @type {Boolean}\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Disables the multiselect if true.\n * @default false\n * @type {Boolean}\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Enables search input's spellcheck if true.\n * @default false\n * @type {Boolean}\n */\n spellcheck: {\n type: Boolean,\n default: false\n },\n /**\n * Fixed opening direction\n * @default ''\n * @type {String}\n */\n openDirection: {\n type: String,\n default: ''\n },\n /**\n * Shows slot with message about empty options\n * @default true\n * @type {Boolean}\n */\n showNoOptions: {\n type: Boolean,\n default: true\n },\n showNoResults: {\n type: Boolean,\n default: true\n },\n tabindex: {\n type: Number,\n default: 0\n },\n required: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n hasOptionGroup () {\n return this.groupValues && this.groupLabel && this.groupSelect\n },\n isSingleLabelVisible () {\n return (\n (this.singleValue || this.singleValue === 0) &&\n (!this.isOpen || !this.searchable) &&\n !this.visibleValues.length\n )\n },\n isPlaceholderVisible () {\n return !this.internalValue.length && (!this.searchable || !this.isOpen)\n },\n visibleValues () {\n return this.multiple ? this.internalValue.slice(0, this.limit) : []\n },\n singleValue () {\n return this.internalValue[0]\n },\n deselectLabelText () {\n return this.showLabels ? this.deselectLabel : ''\n },\n deselectGroupLabelText () {\n return this.showLabels ? this.deselectGroupLabel : ''\n },\n selectLabelText () {\n return this.showLabels ? this.selectLabel : ''\n },\n selectGroupLabelText () {\n return this.showLabels ? this.selectGroupLabel : ''\n },\n selectedLabelText () {\n return this.showLabels ? this.selectedLabel : ''\n },\n inputStyle () {\n if (\n this.searchable ||\n (this.multiple && this.modelValue && this.modelValue.length)\n ) {\n // Hide input by setting the width to 0 allowing it to receive focus\n return this.isOpen\n ? {width: '100%'}\n : {width: '0', position: 'absolute', padding: '0'}\n }\n return ''\n },\n contentStyle () {\n return this.options.length\n ? {display: 'inline-block'}\n : {display: 'block'}\n },\n isAbove () {\n if (this.openDirection === 'above' || this.openDirection === 'top') {\n return true\n } else if (\n this.openDirection === 'below' ||\n this.openDirection === 'bottom'\n ) {\n return false\n } else {\n return this.preferredOpenDirection === 'above'\n }\n },\n showSearchInput () {\n return (\n this.searchable &&\n (this.hasSingleSelectedSlot &&\n (this.visibleSingleValue || this.visibleSingleValue === 0)\n ? this.isOpen\n : true)\n )\n }\n }\n};\n\nconst _hoisted_1 = {\n ref: \"tags\",\n class: \"multiselect__tags\"\n};\nconst _hoisted_2 = { class: \"multiselect__tags-wrap\" };\nconst _hoisted_3 = { class: \"multiselect__spinner\" };\nconst _hoisted_4 = { key: 0 };\nconst _hoisted_5 = { class: \"multiselect__option\" };\nconst _hoisted_6 = { class: \"multiselect__option\" };\nconst _hoisted_7 = /*#__PURE__*/createTextVNode(\"No elements found. Consider changing the search query.\");\nconst _hoisted_8 = { class: \"multiselect__option\" };\nconst _hoisted_9 = /*#__PURE__*/createTextVNode(\"List is empty.\");\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createBlock(\"div\", {\n tabindex: _ctx.searchable ? -1 : $props.tabindex,\n class: [{ 'multiselect--active': _ctx.isOpen, 'multiselect--disabled': $props.disabled, 'multiselect--above': $options.isAbove, 'multiselect--has-options-group': $options.hasOptionGroup }, \"multiselect\"],\n onFocus: _cache[14] || (_cache[14] = $event => (_ctx.activate())),\n onBlur: _cache[15] || (_cache[15] = $event => (_ctx.searchable ? false : _ctx.deactivate())),\n onKeydown: [\n _cache[16] || (_cache[16] = withKeys(withModifiers($event => (_ctx.pointerForward()), [\"self\",\"prevent\"]), [\"down\"])),\n _cache[17] || (_cache[17] = withKeys(withModifiers($event => (_ctx.pointerBackward()), [\"self\",\"prevent\"]), [\"up\"]))\n ],\n onKeypress: _cache[18] || (_cache[18] = withKeys(withModifiers($event => (_ctx.addPointerElement($event)), [\"stop\",\"self\"]), [\"enter\",\"tab\"])),\n onKeyup: _cache[19] || (_cache[19] = withKeys($event => (_ctx.deactivate()), [\"esc\"])),\n role: \"combobox\",\n \"aria-owns\": 'listbox-'+_ctx.id\n }, [\n renderSlot(_ctx.$slots, \"caret\", { toggle: _ctx.toggle }, () => [\n createVNode(\"div\", {\n onMousedown: _cache[1] || (_cache[1] = withModifiers($event => (_ctx.toggle()), [\"prevent\",\"stop\"])),\n class: \"multiselect__select\"\n }, null, 32 /* HYDRATE_EVENTS */)\n ]),\n renderSlot(_ctx.$slots, \"clear\", { search: _ctx.search }),\n createVNode(\"div\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"selection\", {\n search: _ctx.search,\n remove: _ctx.removeElement,\n values: $options.visibleValues,\n isOpen: _ctx.isOpen\n }, () => [\n withDirectives(createVNode(\"div\", _hoisted_2, [\n (openBlock(true), createBlock(Fragment, null, renderList($options.visibleValues, (option, index) => {\n return renderSlot(_ctx.$slots, \"tag\", {\n option: option,\n search: _ctx.search,\n remove: _ctx.removeElement\n }, () => [\n (openBlock(), createBlock(\"span\", {\n class: \"multiselect__tag\",\n key: index\n }, [\n createVNode(\"span\", {\n textContent: toDisplayString(_ctx.getOptionLabel(option))\n }, null, 8 /* PROPS */, [\"textContent\"]),\n createVNode(\"i\", {\n tabindex: \"1\",\n onKeypress: withKeys(withModifiers($event => (_ctx.removeElement(option)), [\"prevent\"]), [\"enter\"]),\n onMousedown: withModifiers($event => (_ctx.removeElement(option)), [\"prevent\"]),\n class: \"multiselect__tag-icon\"\n }, null, 40 /* PROPS, HYDRATE_EVENTS */, [\"onKeypress\", \"onMousedown\"])\n ]))\n ])\n }), 256 /* UNKEYED_FRAGMENT */))\n ], 512 /* NEED_PATCH */), [\n [vShow, $options.visibleValues.length > 0]\n ]),\n (_ctx.internalValue && _ctx.internalValue.length > $props.limit)\n ? renderSlot(_ctx.$slots, \"limit\", { key: 0 }, () => [\n createVNode(\"strong\", {\n class: \"multiselect__strong\",\n textContent: toDisplayString($props.limitText(_ctx.internalValue.length - $props.limit))\n }, null, 8 /* PROPS */, [\"textContent\"])\n ])\n : createCommentVNode(\"v-if\", true)\n ]),\n createVNode(Transition, { name: \"multiselect__loading\" }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"loading\", {}, () => [\n withDirectives(createVNode(\"div\", _hoisted_3, null, 512 /* NEED_PATCH */), [\n [vShow, $props.loading]\n ])\n ])\n ]),\n _: 3 /* FORWARDED */\n }),\n (_ctx.searchable)\n ? (openBlock(), createBlock(\"input\", {\n key: 0,\n ref: \"search\",\n name: $props.name,\n id: _ctx.id,\n type: \"text\",\n autocomplete: \"off\",\n spellcheck: $props.spellcheck,\n placeholder: _ctx.placeholder,\n required: $props.required,\n style: $options.inputStyle,\n value: _ctx.search,\n disabled: $props.disabled,\n tabindex: $props.tabindex,\n onInput: _cache[2] || (_cache[2] = $event => (_ctx.updateSearch($event.target.value))),\n onFocus: _cache[3] || (_cache[3] = withModifiers($event => (_ctx.activate()), [\"prevent\"])),\n onBlur: _cache[4] || (_cache[4] = withModifiers($event => (_ctx.deactivate()), [\"prevent\"])),\n onKeyup: _cache[5] || (_cache[5] = withKeys($event => (_ctx.deactivate()), [\"esc\"])),\n onKeydown: [\n _cache[6] || (_cache[6] = withKeys(withModifiers($event => (_ctx.pointerForward()), [\"prevent\"]), [\"down\"])),\n _cache[7] || (_cache[7] = withKeys(withModifiers($event => (_ctx.pointerBackward()), [\"prevent\"]), [\"up\"])),\n _cache[9] || (_cache[9] = withKeys(withModifiers($event => (_ctx.removeLastElement()), [\"stop\"]), [\"delete\"]))\n ],\n onKeypress: _cache[8] || (_cache[8] = withKeys(withModifiers($event => (_ctx.addPointerElement($event)), [\"prevent\",\"stop\",\"self\"]), [\"enter\"])),\n class: \"multiselect__input\",\n \"aria-controls\": 'listbox-'+_ctx.id\n }, null, 44 /* STYLE, PROPS, HYDRATE_EVENTS */, [\"name\", \"id\", \"spellcheck\", \"placeholder\", \"required\", \"value\", \"disabled\", \"tabindex\", \"aria-controls\"]))\n : createCommentVNode(\"v-if\", true),\n ($options.isSingleLabelVisible)\n ? (openBlock(), createBlock(\"span\", {\n key: 1,\n class: \"multiselect__single\",\n onMousedown: _cache[10] || (_cache[10] = withModifiers((...args) => (_ctx.toggle && _ctx.toggle(...args)), [\"prevent\"]))\n }, [\n renderSlot(_ctx.$slots, \"singleLabel\", { option: $options.singleValue }, () => [\n createTextVNode(toDisplayString(_ctx.currentOptionLabel), 1 /* TEXT */)\n ])\n ], 32 /* HYDRATE_EVENTS */))\n : createCommentVNode(\"v-if\", true),\n ($options.isPlaceholderVisible)\n ? (openBlock(), createBlock(\"span\", {\n key: 2,\n class: \"multiselect__placeholder\",\n onMousedown: _cache[11] || (_cache[11] = withModifiers((...args) => (_ctx.toggle && _ctx.toggle(...args)), [\"prevent\"]))\n }, [\n renderSlot(_ctx.$slots, \"placeholder\", {}, () => [\n createTextVNode(toDisplayString(_ctx.placeholder), 1 /* TEXT */)\n ])\n ], 32 /* HYDRATE_EVENTS */))\n : createCommentVNode(\"v-if\", true)\n ], 512 /* NEED_PATCH */),\n createVNode(Transition, { name: \"multiselect\" }, {\n default: withCtx(() => [\n withDirectives(createVNode(\"div\", {\n class: \"multiselect__content-wrapper\",\n onFocus: _cache[12] || (_cache[12] = (...args) => (_ctx.activate && _ctx.activate(...args))),\n tabindex: \"-1\",\n onMousedown: _cache[13] || (_cache[13] = withModifiers(() => {}, [\"prevent\"])),\n style: { maxHeight: _ctx.optimizedHeight + 'px' },\n ref: \"list\"\n }, [\n createVNode(\"ul\", {\n class: \"multiselect__content\",\n style: $options.contentStyle,\n role: \"listbox\",\n id: 'listbox-'+_ctx.id,\n \"aria-multiselectable\": _ctx.multiple\n }, [\n renderSlot(_ctx.$slots, \"beforeList\"),\n (_ctx.multiple && _ctx.max === _ctx.internalValue.length)\n ? (openBlock(), createBlock(\"li\", _hoisted_4, [\n createVNode(\"span\", _hoisted_5, [\n renderSlot(_ctx.$slots, \"maxElements\", {}, () => [\n createTextVNode(\"Maximum of \" + toDisplayString(_ctx.max) + \" options selected. First remove a selected option to select another.\", 1 /* TEXT */)\n ])\n ])\n ]))\n : createCommentVNode(\"v-if\", true),\n (!_ctx.max || _ctx.internalValue.length < _ctx.max)\n ? (openBlock(true), createBlock(Fragment, { key: 1 }, renderList(_ctx.filteredOptions, (option, index) => {\n return (openBlock(), createBlock(\"li\", {\n class: \"multiselect__element\",\n key: index,\n \"aria-selected\": _ctx.isSelected(option),\n id: _ctx.id + '-' + index,\n role: !(option && (option.$isLabel || option.$isDisabled)) ? 'option' : null\n }, [\n (!(option && (option.$isLabel || option.$isDisabled)))\n ? (openBlock(), createBlock(\"span\", {\n key: 0,\n class: [_ctx.optionHighlight(index, option), \"multiselect__option\"],\n onClick: withModifiers($event => (_ctx.select(option)), [\"stop\"]),\n onMouseenter: withModifiers($event => (_ctx.pointerSet(index)), [\"self\"]),\n \"data-select\": option && option.isTag ? _ctx.tagPlaceholder : $options.selectLabelText,\n \"data-selected\": $options.selectedLabelText,\n \"data-deselect\": $options.deselectLabelText\n }, [\n renderSlot(_ctx.$slots, \"option\", {\n option: option,\n search: _ctx.search,\n index: index\n }, () => [\n createVNode(\"span\", null, toDisplayString(_ctx.getOptionLabel(option)), 1 /* TEXT */)\n ])\n ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, [\"onClick\", \"onMouseenter\", \"data-select\", \"data-selected\", \"data-deselect\"]))\n : createCommentVNode(\"v-if\", true),\n (option && (option.$isLabel || option.$isDisabled))\n ? (openBlock(), createBlock(\"span\", {\n key: 1,\n \"data-select\": _ctx.groupSelect && $options.selectGroupLabelText,\n \"data-deselect\": _ctx.groupSelect && $options.deselectGroupLabelText,\n class: [_ctx.groupHighlight(index, option), \"multiselect__option\"],\n onMouseenter: withModifiers($event => (_ctx.groupSelect && _ctx.pointerSet(index)), [\"self\"]),\n onMousedown: withModifiers($event => (_ctx.selectGroup(option)), [\"prevent\"])\n }, [\n renderSlot(_ctx.$slots, \"option\", {\n option: option,\n search: _ctx.search,\n index: index\n }, () => [\n createVNode(\"span\", null, toDisplayString(_ctx.getOptionLabel(option)), 1 /* TEXT */)\n ])\n ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, [\"data-select\", \"data-deselect\", \"onMouseenter\", \"onMousedown\"]))\n : createCommentVNode(\"v-if\", true)\n ], 8 /* PROPS */, [\"aria-selected\", \"id\", \"role\"]))\n }), 128 /* KEYED_FRAGMENT */))\n : createCommentVNode(\"v-if\", true),\n withDirectives(createVNode(\"li\", null, [\n createVNode(\"span\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"noResult\", { search: _ctx.search }, () => [\n _hoisted_7\n ])\n ])\n ], 512 /* NEED_PATCH */), [\n [vShow, $props.showNoResults && (_ctx.filteredOptions.length === 0 && _ctx.search && !$props.loading)]\n ]),\n withDirectives(createVNode(\"li\", null, [\n createVNode(\"span\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"noOptions\", {}, () => [\n _hoisted_9\n ])\n ])\n ], 512 /* NEED_PATCH */), [\n [vShow, $props.showNoOptions && ((_ctx.options.length === 0 || ($options.hasOptionGroup === true && _ctx.filteredOptions.length === 0)) && !_ctx.search && !$props.loading)]\n ]),\n renderSlot(_ctx.$slots, \"afterList\")\n ], 12 /* STYLE, PROPS */, [\"id\", \"aria-multiselectable\"])\n ], 36 /* STYLE, HYDRATE_EVENTS */), [\n [vShow, _ctx.isOpen]\n ])\n ]),\n _: 3 /* FORWARDED */\n })\n ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, [\"tabindex\", \"aria-owns\"]))\n}\n\nscript.render = render;\n\nexport default script;\nexport { script as Multiselect, multiselectMixin, pointerMixin };\n","<template>\r\n <div class=\"scope-multiselect-container\" :style=\"styles\">\r\n <div v-if=\"label\" class=\"scope-multiselect-label\">\r\n {{ normalizedLabel }}\r\n <span\r\n v-if=\"showRequiredMark\"\r\n class=\"scope-multiselect-label__required\"\r\n >\r\n *\r\n </span>\r\n </div>\r\n <VueMultiselect\r\n ref=\"multiselect\"\r\n :class=\"[\r\n 'scope-multiselect',\r\n `-${size}`,\r\n { '-with-search': searchable, '-invalid': invalid }\r\n ]\"\r\n v-model=\"model\"\r\n :multiple=\"multiple\"\r\n :options=\"optionsDropdown\"\r\n :label=\"useObjectOptions ? 'name' : undefined\"\r\n :searchable=\"searchable\"\r\n :disabled=\"disabled\"\r\n close-on-select\r\n :show-labels=\"false\"\r\n :placeholder=\"placeholderProp\"\r\n :allowEmpty=\"allowEmpty\"\r\n >\r\n <template #singleLabel=\"{ option }\">\r\n <div class=\"multiselect__option-content\">\r\n <Icon\r\n v-if=\"option?.icon\"\r\n :icon=\"option.icon\"\r\n class=\"multiselect__option-icon\"\r\n :key=\"option.icon\"\r\n />\r\n <span>{{ option?.name ?? option }}</span>\r\n </div>\r\n </template>\r\n <template #option=\"{ option }\">\r\n <div class=\"multiselect__option-content\">\r\n <Icon\r\n v-if=\"option?.icon\"\r\n :icon=\"option.icon\"\r\n class=\"multiselect__option-icon\"\r\n :key=\"option.icon\"\r\n />\r\n <span>{{ option?.name ?? option }}</span>\r\n </div>\r\n </template>\r\n <template #selection=\"{ values }\">\r\n <span class=\"multiselect__single\" v-if=\"values.length\">\r\n {{ values.length }} options selected\r\n </span>\r\n </template>\r\n </VueMultiselect>\r\n <div\r\n v-if=\"invalid && errorMessage\"\r\n class=\"scope-multiselect-container__error\"\r\n >\r\n {{ errorMessage }}\r\n </div>\r\n <div\r\n :class=\"[\r\n 'scope-multiselect-container__icon-wrapper',\r\n `-${size}`,\r\n { '-with-search': searchable, '-label': label }\r\n ]\"\r\n >\r\n <Icon\r\n v-if=\"searchable\"\r\n icon=\"Search\"\r\n :class=\"[\r\n 'search-item',\r\n isNotEmpty ? '-is-not-empty' : '-is-empty'\r\n ]\"\r\n />\r\n <Icon\r\n icon=\"ChevronDown\"\r\n :class=\"[\r\n 'select-item',\r\n isNotEmpty ? '-is-not-empty' : '-is-empty',\r\n { '-opened': isOpened }\r\n ]\"\r\n />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport VueMultiselect from 'vue-multiselect';\r\nimport { ref, computed } from 'vue';\r\nimport Icon from './Icon.vue';\r\n\r\nconst props = defineProps({\r\n size: {\r\n type: String,\r\n default: 'md'\r\n },\r\n searchable: Boolean,\r\n options: Array,\r\n placeholder: String,\r\n label: String,\r\n invalid: Boolean,\r\n errorMessage: String,\r\n disabled: Boolean,\r\n multiple: Boolean,\r\n allowEmpty: {\r\n type: Boolean,\r\n default: true\r\n },\r\n required: { type: Boolean, default: false },\r\n width: {\r\n type: String,\r\n default: '250px'\r\n }\r\n});\r\n\r\nconst styles = computed(() => (props.width ? { width: props.width } : null));\r\nconst showRequiredMark = computed(() =>\r\n Boolean(props.required || /\\*\\s*$/.test(props.label || ''))\r\n);\r\nconst normalizedLabel = computed(() =>\r\n (props.label || '').replace(/\\s*\\*$/, '')\r\n);\r\n\r\nconst multiselect = ref(null);\r\nconst isOpened = computed(() => multiselect.value && multiselect.value.isOpen);\r\nconst isNotEmpty = computed(() => Boolean(model.value && model.value.length));\r\n\r\nconst isOptionsObject = computed(() =>\r\n props.options.every((item) => typeof item === 'object' && item !== null)\r\n);\r\n\r\nconst optionsDropdown = computed(() => props.options);\r\n\r\nconst useObjectOptions = computed(() => isOptionsObject.value);\r\n\r\nconst placeholderProp = computed(() => {\r\n if (props.searchable) {\r\n if (!model.value) return props.placeholder;\r\n return typeof model.value === 'object'\r\n ? model.value?.name\r\n : model.value;\r\n } else {\r\n return props.placeholder;\r\n }\r\n});\r\n\r\nconst model = defineModel({\r\n get(value) {\r\n if (value == null) return value;\r\n if (!useObjectOptions.value) return value;\r\n if (typeof value === 'object') return value;\r\n return props.options.find((option) => option.name === value) ?? value;\r\n },\r\n set(value) {\r\n if (value == null) return value;\r\n if (!useObjectOptions.value) return value;\r\n if (typeof value === 'object') return value;\r\n return props.options.find((option) => option.name === value) ?? value;\r\n }\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '../assets/styles/_main.scss';\r\n\r\n.scope-multiselect-container {\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n\r\n &:has(.multiselect--disabled) {\r\n .scope-multiselect-container__icon-wrapper {\r\n display: none;\r\n }\r\n }\r\n\r\n .scope-multiselect-label {\r\n color: $text-high-emphasis;\r\n @include fz-14;\r\n font-weight: 500;\r\n\r\n &__required {\r\n color: $primary-accent;\r\n }\r\n }\r\n\r\n ::v-deep(.scope-multiselect) {\r\n color: $text-high-emphasis;\r\n min-height: unset;\r\n\r\n .multiselect__tags {\r\n display: flex;\r\n align-items: center;\r\n\r\n border-radius: 10px;\r\n min-height: unset;\r\n height: 100%;\r\n padding: 8px 36px 8px 12px;\r\n\r\n border: 1px solid $border;\r\n background: $card-background;\r\n @include fz-14;\r\n font-weight: 500;\r\n\r\n cursor: pointer;\r\n }\r\n\r\n &:not(.multiselect--disabled):focus,\r\n &:not(.multiselect--disabled):hover {\r\n .multiselect__tags {\r\n border-color: $primary-accent;\r\n }\r\n }\r\n\r\n &.-lg {\r\n height: 40px;\r\n }\r\n\r\n &.-md {\r\n height: 36px;\r\n }\r\n\r\n &.-sm {\r\n height: 32px;\r\n\r\n .multiselect__tags {\r\n border-radius: 8px;\r\n }\r\n }\r\n\r\n &.multiselect--disabled,\r\n &.multiselect--disabled .multiselect__select {\r\n cursor: not-allowed;\r\n background: none;\r\n }\r\n\r\n .multiselect {\r\n &__input,\r\n &__single {\r\n min-height: unset;\r\n line-height: unset;\r\n padding: 0;\r\n width: unset;\r\n @include transition-default(border);\r\n box-sizing: border-box;\r\n margin-bottom: 0;\r\n background: $card-background;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n\r\n @include fz-14;\r\n font-weight: 500;\r\n display: flex;\r\n align-items: center;\r\n gap: 6px;\r\n }\r\n\r\n &__input {\r\n border: none;\r\n outline: none;\r\n box-shadow: none;\r\n }\r\n\r\n &__placeholder {\r\n color: $text-mid-emphasis;\r\n display: inline-block;\r\n margin-bottom: unset;\r\n padding-top: unset;\r\n }\r\n\r\n &__content-wrapper {\r\n position: absolute;\r\n display: block;\r\n background: $card-background;\r\n width: 100%;\r\n max-height: 240px;\r\n overflow: auto;\r\n z-index: 9999;\r\n -webkit-overflow-scrolling: touch;\r\n\r\n padding: 6px 4px;\r\n margin-top: 4px;\r\n border-radius: 10px;\r\n border: 1px solid $border;\r\n\r\n scrollbar-color: $text-mid-emphasis transparent;\r\n scrollbar-width: thin;\r\n\r\n &::-webkit-scrollbar {\r\n width: 6px;\r\n }\r\n\r\n &::-webkit-scrollbar-track {\r\n background: transparent;\r\n }\r\n\r\n &::-webkit-scrollbar-thumb {\r\n background-color: $text-mid-emphasis;\r\n border-radius: 6px;\r\n }\r\n }\r\n\r\n &__select {\r\n line-height: 16px;\r\n display: block;\r\n position: absolute;\r\n box-sizing: border-box;\r\n width: 100%;\r\n height: 100%;\r\n right: 1px;\r\n top: 1px;\r\n padding: 4px 8px;\r\n margin: 0;\r\n text-decoration: none;\r\n text-align: center;\r\n cursor: pointer;\r\n @include transition-default(transform);\r\n z-index: 10;\r\n\r\n &.multiselect--active {\r\n transform: rotateZ(180deg);\r\n }\r\n\r\n &::before {\r\n content: unset;\r\n display: inline-block;\r\n width: 20px;\r\n height: 20px;\r\n margin-top: 0px;\r\n color: unset;\r\n border: unset;\r\n }\r\n }\r\n\r\n &__option {\r\n font-family: 'Geist', sans-serif;\r\n font-optical-sizing: auto;\r\n @include fz-14;\r\n font-weight: 500;\r\n color: $text-high-emphasis;\r\n padding: 8px;\r\n border-radius: 8px;\r\n color: $text-high-emphasis;\r\n line-height: unset;\r\n min-height: unset;\r\n max-height: 36px;\r\n @include transition-default(background);\r\n\r\n &--selected,\r\n &--highlight.multiselect__option--selected {\r\n background: $card-neutral-background !important;\r\n border-radius: 8px;\r\n color: unset;\r\n }\r\n\r\n &--highlight {\r\n background: $card-neutral-background !important;\r\n color: $text-high-emphasis;\r\n border-radius: 8px;\r\n }\r\n\r\n &--selected {\r\n font-weight: 500;\r\n }\r\n }\r\n\r\n &__content {\r\n display: flex !important;\r\n flex-direction: column;\r\n gap: 4px;\r\n\r\n list-style: none;\r\n padding: 0;\r\n margin: 0;\r\n min-width: 100%;\r\n vertical-align: top;\r\n\r\n text-decoration: none;\r\n text-transform: none;\r\n vertical-align: middle;\r\n position: relative;\r\n cursor: pointer;\r\n white-space: nowrap;\r\n }\r\n\r\n &__element span {\r\n display: block;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n }\r\n }\r\n }\r\n\r\n ::v-deep(.multiselect__option-content) {\r\n display: flex;\r\n align-items: center;\r\n gap: 6px;\r\n min-width: 0;\r\n\r\n span {\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n }\r\n }\r\n\r\n ::v-deep(.multiselect__option-icon) {\r\n width: 16px;\r\n height: 16px;\r\n flex: 0 0 16px;\r\n }\r\n\r\n ::v-deep(.scope-multiselect.-with-search) {\r\n .multiselect__tags {\r\n padding: 8px 36px 8px 36px;\r\n }\r\n }\r\n\r\n &__icon-wrapper {\r\n width: 100%;\r\n height: 36px;\r\n\r\n position: absolute;\r\n z-index: 50;\r\n top: 0;\r\n\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n pointer-events: none;\r\n\r\n padding: 0 12px;\r\n\r\n &.-lg {\r\n height: 40px;\r\n }\r\n\r\n &.-sm {\r\n height: 32px;\r\n }\r\n\r\n &.-label {\r\n top: 28.8px;\r\n }\r\n\r\n .select-item,\r\n .search-item {\r\n &.-is-not-empty {\r\n color: $text-high-emphasis;\r\n }\r\n\r\n &.-is-empty {\r\n color: $text-mid-emphasis;\r\n }\r\n }\r\n\r\n .select-item {\r\n transition-duration: 0.4s;\r\n\r\n &.-opened {\r\n transform: rotate(180deg);\r\n }\r\n }\r\n\r\n &.-with-search {\r\n justify-content: space-between;\r\n }\r\n }\r\n\r\n ::v-deep(.scope-multiselect.-invalid) {\r\n .multiselect__tags {\r\n border-color: $border-error;\r\n }\r\n }\r\n\r\n &__error {\r\n @include fz-12;\r\n font-weight: 500;\r\n color: $border-error;\r\n }\r\n}\r\n\r\nbody[theme='dark'] .scope-multiselect-container {\n .scope-multiselect-label {\r\n color: $text-high-emphasis;\r\n }\r\n\r\n ::v-deep(.scope-multiselect) {\n color: $text-high-emphasis;\n\n .multiselect__tags {\n background: $background-secondary;\n border: 1px solid $border-secondary;\n }\n\r\n &:not(.multiselect--disabled):focus,\r\n &:not(.multiselect--disabled):hover {\r\n .multiselect__tags {\r\n border-color: $primary-accent;\r\n }\r\n }\r\n\r\n &.multiselect--disabled,\r\n &.multiselect--disabled .multiselect__select {\r\n background: none;\r\n }\r\n\r\n .multiselect {\n &__input,\n &__single {\n background: $background-secondary;\n }\n\r\n &__placeholder {\r\n color: $text-mid-emphasis;\r\n }\r\n\r\n &__content-wrapper {\n background: $card-neutral-background;\n border: 1px solid $border-secondary;\n }\n\r\n &__option {\n color: $text-high-emphasis;\n\n &--selected,\n &--highlight.multiselect__option--selected {\n background: $card-background;\n color: unset;\n }\n\n &--highlight {\n background: $background-secondary !important;\n color: $text-high-emphasis;\n }\n\n .custom-option {\n background: $card-neutral-background;\n\r\n .custom-check-icon {\n color: $primary-accent;\n }\n\n &:hover {\n background: $background-secondary;\n }\n\r\n &.multiselect__option--selected {\r\n background: $card-background !important;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n &__icon-wrapper {\r\n .select-item,\r\n .search-item {\r\n &.-is-not-empty {\r\n color: $text-high-emphasis;\r\n }\r\n\r\n &.-is-empty {\r\n color: $text-mid-emphasis;\r\n }\r\n }\r\n }\r\n\r\n ::v-deep(.scope-multiselect.-invalid) {\r\n .multiselect__tags {\r\n border-color: $border-error;\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <div class=\"dropdown-selector\" ref=\"dropdownRef\">\r\n <div\r\n class=\"dropdown-selector__trigger\"\r\n :class=\"{ 'is-open': isOpen }\"\r\n @click=\"toggle\"\r\n >\r\n <span v-if=\"!withoutPrefix\" class=\"dropdown-selector__prefix\">\r\n {{ prefix }}\r\n </span>\r\n <div\r\n class=\"dropdown-selector__selected\"\r\n :class=\"{ 'without-prefix': withoutPrefix }\"\r\n >\r\n <span>{{ selectedLabel }}</span>\r\n <Icon icon=\"ChevronDown\" class=\"dropdown-selector__icon\" />\r\n </div>\r\n </div>\r\n\r\n <div v-if=\"isOpen\" class=\"dropdown-selector__menu\">\r\n <ul class=\"dropdown-selector__options\">\r\n <li\r\n v-for=\"option in options\"\r\n :key=\"option.id\"\r\n @click=\"selectOption(option)\"\r\n class=\"dropdown-selector__option\"\r\n >\r\n <span>{{ option.name }}</span>\r\n <Icon\r\n v-if=\"option.id === modelValue\"\r\n icon=\"Check\"\r\n class=\"dropdown-selector__check\"\r\n />\r\n </li>\r\n </ul>\r\n <div v-if=\"hasFooter\" class=\"dropdown-selector__footer\">\r\n <slot name=\"footer\" />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref, computed, onMounted, onUnmounted } from 'vue';\r\nimport { onClickOutside } from '@vueuse/core';\r\nimport Icon from './Icon.vue';\r\n\r\nconst props = defineProps({\r\n prefix: String,\r\n withoutPrefix: {\r\n type: Boolean,\r\n default: false\r\n }, // i know it's stupid but anyway...\r\n options: {\r\n type: Array,\r\n default: () => []\r\n },\r\n modelValue: [String, Number],\r\n hasFooter: {\r\n type: Boolean,\r\n default: false\r\n }\r\n});\r\n\r\nconst emit = defineEmits(['update:modelValue']);\r\nconst isOpen = ref(false);\r\nconst dropdownRef = ref(null);\r\n\r\nonClickOutside(dropdownRef, () => (isOpen.value = false));\r\n\r\nconst toggle = () => {\r\n isOpen.value = !isOpen.value;\r\n};\r\n\r\nconst closeOnScroll = () => {\r\n if (isOpen.value) {\r\n isOpen.value = false;\r\n }\r\n};\r\n\r\nconst selectedLabel = computed(() => {\r\n const selected = props.options.find((opt) => opt.id === props.modelValue);\r\n return selected ? selected.name : '';\r\n});\r\n\r\nfunction selectOption(option) {\r\n emit('update:modelValue', option.id);\r\n isOpen.value = false;\r\n}\r\n\r\nonMounted(() => {\r\n window.addEventListener('scroll', closeOnScroll, true);\r\n});\r\n\r\nonUnmounted(() => {\r\n window.removeEventListener('scroll', closeOnScroll, true);\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n@import '../assets/styles/_main.scss';\r\n\r\n.dropdown-selector {\r\n position: relative;\r\n display: inline-block;\r\n\r\n &__trigger {\r\n height: 32px;\r\n display: flex;\r\n align-items: center;\r\n border: 1px solid $border;\r\n border-radius: 8px;\r\n cursor: pointer;\r\n background: $card-background;\r\n\r\n &.is-open {\r\n border: 1px solid $primary-accent;\r\n\r\n .dropdown-selector__icon {\r\n transform: rotate(180deg);\r\n }\r\n }\r\n }\r\n\r\n &__prefix {\r\n display: flex;\r\n align-items: center;\r\n padding: 0 8px;\r\n height: 100%;\r\n border-radius: 7px 0px 0px 7px;\r\n background: $card-neutral-background;\r\n color: $text-mid-emphasis;\r\n @include fz-14;\r\n font-weight: 500;\r\n }\r\n\r\n &__selected {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n padding: 0 8px;\r\n\r\n &.without-prefix {\r\n justify-content: space-between;\r\n width: 100%;\r\n }\r\n\r\n span {\r\n color: $text-high-emphasis;\r\n @include fz-14;\r\n font-weight: 500;\r\n\r\n max-width: 160px;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n display: inline-block;\r\n }\r\n }\r\n\r\n &__icon {\r\n color: $icons-mid-emphasis;\r\n min-width: 20px;\r\n width: 20px;\r\n height: 20px;\r\n transform: rotate(0);\r\n @include transition-default(transform);\r\n }\r\n\r\n &__menu {\r\n width: 220px;\r\n position: absolute;\r\n z-index: 100;\r\n top: 100%;\r\n right: 0;\r\n margin-top: 4px;\r\n background: $card-background;\r\n border: 1px solid $border;\r\n padding: 8px;\r\n border-radius: 8px;\r\n @include shadow-small;\r\n }\r\n\r\n &__options {\r\n padding: 0;\r\n list-style: none;\r\n margin: 0;\r\n max-height: 260px;\r\n overflow-y: auto;\r\n }\r\n\r\n &__option {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: 8px;\r\n cursor: pointer;\r\n color: $text-high-emphasis;\r\n @include fz-14;\r\n font-weight: 500;\r\n border-radius: 8px;\r\n background: $card-background;\r\n @include transition-default(background);\r\n\r\n span {\r\n max-width: 160px;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n display: inline-block;\r\n }\r\n\r\n &:hover {\r\n background: $card-neutral-background;\r\n }\r\n }\r\n\r\n &__check {\r\n color: $primary-accent;\r\n width: 16px;\r\n height: 16px;\r\n }\r\n\r\n &__footer {\r\n margin-top: 4px;\r\n border-top: 1px solid $border;\r\n }\r\n}\r\n\r\n::-webkit-scrollbar {\r\n width: 4px;\r\n height: 4px;\r\n}\r\n\r\n/* Track */\r\n::-webkit-scrollbar-track {\r\n border-radius: 25px;\r\n}\r\n\r\n/* Handle */\r\n::-webkit-scrollbar-thumb {\r\n background: #b5b5b5;\r\n border-radius: 4px;\r\n}\r\n\r\nbody[theme='dark'] .dropdown-selector {\r\n &__trigger {\r\n background: $background-secondary;\r\n border: 1px solid $border-secondary;\r\n\r\n &.is-open {\r\n border: 1px solid $primary-accent;\r\n }\r\n }\r\n\r\n &__prefix {\r\n background: $card-neutral-background;\r\n color: $text-mid-emphasis;\r\n }\r\n\r\n &__selected {\r\n span {\r\n color: $text-high-emphasis;\r\n }\r\n }\r\n\r\n &__icon {\r\n color: $icons-mid-emphasis;\r\n }\r\n\r\n &__menu {\r\n background: $card-neutral-background;\r\n border: 1px solid $border;\r\n }\r\n\r\n &__option {\r\n color: $text-high-emphasis;\r\n background: $card-neutral-background;\r\n\r\n &:hover {\r\n background: $card-background;\r\n }\r\n }\r\n\r\n &__check {\r\n color: $primary-accent;\r\n }\r\n\r\n &__footer {\r\n border-top: 1px solid $border;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <component :is=\"iconComponent\" :name=\"icon\" />\r\n</template>\r\n<script setup>\r\nimport { defineAsyncComponent, defineProps } from 'vue';\r\n\r\nconst props = defineProps({\r\n icon: String\r\n});\r\n\r\nlet iconComponent = defineAsyncComponent(() =>\r\n import(`../assets/icons/${props.icon}.svg`)\r\n);\r\n</script>\r\n","<template>\r\n <div class=\"scope-inline-tabs\">\r\n <div\r\n :class=\"['scope-inline-tab', { '-active': currentTab == tab.id }]\"\r\n v-for=\"(tab, index) in tabs\"\r\n @click=\"goToSection(tab.id)\"\r\n :key=\"index\"\r\n >\r\n {{ tab.name }}\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\ndefineProps({\r\n tabs: Array\r\n});\r\nconst currentTab = defineModel();\r\nconst goToSection = (tabId) => {\r\n currentTab.value = tabId;\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '../assets/styles/_main.scss';\r\n\r\n.scope-inline-tabs {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n background: inherit;\r\n\r\n .scope-inline-tab {\r\n color: $text-mid-emphasis;\r\n @include fz-14;\r\n font-weight: 500;\r\n text-wrap: nowrap;\r\n cursor: pointer;\r\n @include transition-default(color);\r\n\r\n &.-active {\r\n color: $text-high-emphasis;\r\n }\r\n\r\n @media (min-width: 768px) {\r\n &:not(.-active):hover {\r\n color: $text-low-emphasis;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <div\r\n :class=\"[\r\n 'scope-input',\r\n {\r\n '-have-icon': icon,\r\n '-full-width': fullWidth,\r\n '-clear-button':\r\n haveClearButton || haveCopyButton || haveUnitMeasure,\r\n '-only-search': haveClearButton || (haveCopyButton && !icon),\r\n '-has-save': hasSave\r\n }\r\n ]\"\r\n >\r\n <div class=\"scope-input__label-wrapper\" v-if=\"label\">\r\n <div class=\"scope-input__label\">\r\n {{ normalizedLabel }}\r\n <span v-if=\"showRequiredMark\" class=\"scope-input__required\">\r\n *\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"scope-input__prompt\" v-if=\"prompt\">{{ prompt }}</div>\r\n <div :class=\"['scope-input__container', `-${size}`]\">\r\n <div v-if=\"sideSign\" class=\"scope-input__sign\">{{ sideSign }}</div>\r\n\r\n <div v-if=\"$slots.start\" class=\"scope-input__start-slot\">\r\n <slot name=\"start\" />\r\n </div>\r\n\r\n <input\r\n ref=\"inputRef\"\r\n :disabled=\"disabled\"\r\n class=\"scope-input__input\"\r\n :class=\"[\r\n `-${size}`,\r\n {\r\n '-invalid': invalid,\r\n '-side-sign': Boolean(sideSign),\r\n '-has-save': hasSave\r\n }\r\n ]\"\r\n v-model=\"vModel\"\r\n :style=\"styles\"\r\n :placeholder=\"placeholder\"\r\n :veeBind=\"veeBind\"\r\n autocomplete=\"off\"\r\n @input=\"emit('input')\"\r\n @keypress=\"handleKeyPress\"\r\n @keyup.enter=\"emit('enter')\"\r\n @keyup.esc=\"emit('esc')\"\r\n :maxlength=\"isTimeInput ? 8 : maxLength\"\r\n :pattern=\"pattern\"\r\n :type=\"computedType\"\r\n />\r\n </div>\r\n <div\r\n :class=\"[\r\n 'scope-input__icon-wrapper',\r\n `-${size}`,\r\n {\r\n '-only-search':\r\n haveClearButton || hasSave || (haveCopyButton && !icon),\r\n '-with-label': !!label,\r\n '-have-unit-type': haveUnitMeasure,\r\n '-password-type': type === 'password'\r\n }\r\n ]\"\r\n >\r\n <IconNew v-if=\"icon\" :icon=\"icon\" class=\"scope-input__icon\" />\r\n <IconNew\r\n v-if=\"haveClearButton\"\r\n class=\"scope-input__clear\"\r\n icon=\"Cross\"\r\n @click=\"vModel = ''\"\r\n />\r\n <IconNew\r\n v-if=\"haveCopyButton && !isValueCopy\"\r\n class=\"scope-input__clear\"\r\n icon=\"Copy\"\r\n @click=\"copyHandler(vModel)\"\r\n />\r\n <IconNew\r\n v-if=\"haveCopyButton && isValueCopy\"\r\n class=\"scope-input__clear\"\r\n icon=\"Check\"\r\n />\r\n <template v-if=\"type === 'password'\">\r\n <IconNew\r\n v-if=\"!showPassword\"\r\n class=\"scope-input__eye\"\r\n icon=\"EyeClosedOutline\"\r\n @click=\"togglePasswordVisibility\"\r\n />\r\n <IconNew\r\n v-else\r\n class=\"scope-input__eye\"\r\n icon=\"EyeOpenedOutline\"\r\n @click=\"togglePasswordVisibility\"\r\n />\r\n </template>\r\n\r\n <div\r\n class=\"scope-input__save\"\r\n v-if=\"hasSave && vModel && vModel.length\"\r\n @click=\"emit('save')\"\r\n >\r\n {{ saveBtnCta }}\r\n </div>\r\n <div\r\n class=\"scope-input__text\"\r\n v-if=\"haveUnitMeasure && unitMeasure\"\r\n >\r\n {{ unitMeasure }}\r\n </div>\r\n </div>\r\n <div class=\"scope-input__error\" v-if=\"invalid && errorMessage\">\r\n {{ errorMessage }}\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport { computed, onMounted, ref, nextTick } from 'vue';\r\nimport { useToastNew, IconNew } from '../index';\r\n\r\nconst { error } = useToastNew();\r\n\r\nconst emit = defineEmits(['input', 'enter', 'esc', 'save', 'clickOutside']);\r\n\r\nconst inputRef = ref(null);\r\nconst vModel = defineModel();\r\n\r\nconst props = defineProps({\r\n size: {\r\n type: String,\r\n default: 'md'\r\n },\r\n maxLength: {\r\n type: Number,\r\n default: 524288\r\n },\r\n onlyNumbers: Boolean,\r\n onlyNumberAndDot: Boolean,\r\n onlyNumberDotMinus: Boolean,\r\n isTimeInput: Boolean,\r\n icon: String,\r\n placeholder: String,\r\n haveClearButton: Boolean,\r\n haveCopyButton: Boolean,\r\n haveUnitMeasure: Boolean,\r\n unitMeasure: String,\r\n veeBind: Object,\r\n invalid: Boolean,\r\n fullWidth: Boolean,\r\n errorMessage: String,\r\n label: String,\r\n disabled: Boolean,\r\n width: String,\r\n sideSign: String,\r\n type: {\r\n default: 'text',\r\n type: String\r\n },\r\n pattern: String,\r\n hasSave: Boolean,\r\n saveBtnCta: {\r\n default: 'Save',\r\n type: String\r\n },\r\n prompt: String,\r\n required: { type: Boolean, default: false }\r\n});\r\n\r\nconst styles = computed(() => (props.width ? { width: props.width } : null));\r\n\r\nconst handleKeyPress = (event) => {\r\n if (!props.onlyNumbers && !props.onlyNumberAndDot && !props.onlyNumberDotMinus) return;\r\n let regex;\r\n if (props.onlyNumbers) regex = /[0-9]/;\r\n else if (props.onlyNumberAndDot) regex = /[0-9.]/;\r\n else if (props.onlyNumberDotMinus) regex = /[0-9.-]/;\r\n if (!regex.test(event.key)) event.preventDefault();\r\n};\r\nconst showRequiredMark = computed(() =>\r\n Boolean(props.required || /\\*\\s*$/.test(props.label || ''))\r\n);\r\nconst normalizedLabel = computed(() =>\r\n (props.label || '').replace(/\\s*\\*$/, '')\r\n);\r\n\r\nconst showPassword = ref(false);\r\nconst computedType = computed(() => {\r\n if (props.type === 'password') {\r\n return showPassword.value ? 'text' : 'password';\r\n }\r\n return props.type;\r\n});\r\n\r\nconst togglePasswordVisibility = () => {\r\n showPassword.value = !showPassword.value;\r\n};\r\n\r\nconst isValueCopy = ref(false);\r\n\r\nconst focus = () => {\r\n inputRef.value.focus();\r\n};\r\n\r\nconst copyHandler = (value) => {\r\n navigator.clipboard\r\n .writeText(value)\r\n .then(() => {\r\n isValueCopy.value = true;\r\n const timeout = setTimeout(() => {\r\n isValueCopy.value = false;\r\n clearTimeout(timeout);\r\n }, 3000);\r\n })\r\n .catch((err) => {\r\n error(err);\r\n });\r\n};\r\n\r\ndefineExpose({ focus });\r\n\r\nconst lastValidTime = ref('');\r\n\r\nconst handleTimeInput = (event) => {\r\n let input = event.target;\r\n let value = input.value;\r\n let digits = value.replace(/\\D/g, '');\r\n\r\n // Валідація\r\n if (digits.length >= 2 && parseInt(digits.substring(0, 2), 10) > 23) {\r\n digits = digits.substring(0, 1);\r\n }\r\n if (digits.length >= 4 && parseInt(digits.substring(2, 4), 10) > 59) {\r\n digits = digits.substring(0, 3);\r\n }\r\n if (digits.length >= 6 && parseInt(digits.substring(4, 6), 10) > 59) {\r\n digits = digits.substring(0, 5);\r\n }\r\n\r\n let formatted = '';\r\n if (digits.length > 0) formatted = digits.substring(0, 2);\r\n if (digits.length > 2) formatted += ':' + digits.substring(2, 4);\r\n if (digits.length > 4) formatted += ':' + digits.substring(4, 6);\r\n\r\n vModel.value = formatted;\r\n\r\n nextTick(() => {\r\n input.value = formatted;\r\n });\r\n};\r\n\r\nconst handleTimeBlur = () => {\r\n let value = vModel.value;\r\n if (!value) {\r\n vModel.value = lastValidTime.value;\r\n return;\r\n }\r\n\r\n let [h, m, s] = value.split(':');\r\n\r\n h = (h || '').padStart(2, '0');\r\n m = (m || '').padStart(2, '0');\r\n s = (s || '').padStart(2, '0');\r\n\r\n const finalTime = `${h}:${m}:${s}`;\r\n vModel.value = finalTime;\r\n lastValidTime.value = finalTime;\r\n};\r\n\r\nconst handleTimeKeyDown = (event) => {\r\n if (event.key === 'Backspace' && event.target.value.endsWith(':')) {\r\n event.preventDefault();\r\n vModel.value = event.target.value.slice(0, -2); // ЗМІНЕНО: оновлюємо vModel\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n if (props.isTimeInput) {\r\n if (vModel.value) {\r\n lastValidTime.value = vModel.value;\r\n }\r\n inputRef.value.addEventListener('input', handleTimeInput);\r\n inputRef.value.addEventListener('blur', handleTimeBlur);\r\n inputRef.value.addEventListener('keydown', handleTimeKeyDown);\r\n }\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '../assets/styles/_main.scss';\r\n\r\n.scope-input {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n\r\n position: relative;\r\n width: fit-content;\r\n\r\n &__save,\r\n &__clear,\r\n &__icon,\r\n &__text,\r\n &__eye {\r\n z-index: 20;\r\n }\r\n\r\n &__start-slot {\r\n display: flex;\r\n align-items: center;\r\n padding-left: 12px;\r\n }\r\n\r\n &__icon {\r\n pointer-events: none;\r\n }\r\n\r\n &__clear {\r\n color: $text-mid-emphasis;\r\n cursor: pointer;\r\n }\r\n\r\n &__save {\r\n color: $primary-accent;\r\n @include fz-14;\r\n font-weight: 500;\r\n cursor: pointer;\r\n }\r\n\r\n &__text {\r\n @include fz-14;\r\n font-weight: 500;\r\n color: $text-mid-emphasis;\r\n }\r\n\r\n &__eye {\r\n cursor: pointer;\r\n color: $text-mid-emphasis;\r\n }\r\n\r\n &.-full-width {\r\n width: 100%;\r\n }\r\n\r\n &__container {\r\n display: flex;\r\n border: 1px solid $border;\r\n background: $card-background;\r\n border-radius: 10px;\r\n width: 100%;\r\n\r\n &.-lg {\r\n height: 40px;\r\n }\r\n\r\n &.-md {\r\n height: 36px;\r\n }\r\n\r\n &.-sm {\r\n height: 32px;\r\n border-radius: 8px;\r\n }\r\n\r\n &:has(input:hover:not(:disabled)),\r\n .scope-input:has(.scope-input__icon-wrapper:hover) &:not(:has(input:disabled)) {\r\n border-color: $primary-accent;\r\n }\r\n\r\n &:has(input:active:not(:disabled)),\r\n &:has(input:focus:hover),\r\n &:has(input:focus) {\r\n border-color: $primary-accent;\r\n }\r\n\r\n &:has(input.-invalid) {\r\n border-color: $border-error;\r\n }\r\n }\r\n\r\n &__sign {\r\n display: flex;\r\n height: 100%;\r\n align-items: center;\r\n justify-content: center;\r\n width: 40px;\r\n border-radius: 10px 0px 0px 10px;\r\n color: $text-mid-emphasis;\r\n background: $card-neutral-background;\r\n }\r\n\r\n input {\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n z-index: 10;\r\n\r\n text-overflow: ellipsis;\r\n border: unset;\r\n border-radius: 10px;\r\n outline: none;\r\n padding: 4px 12px;\r\n\r\n font-family: 'Geist', sans-serif;\r\n font-optical-sizing: auto;\r\n @include fz-14;\r\n font-weight: 500;\r\n color: $text-high-emphasis;\r\n background: $card-background;\r\n\r\n &.-sm {\r\n border-radius: 8px;\r\n padding: 4px 8px;\r\n }\r\n\r\n &::placeholder {\r\n color: $text-mid-emphasis;\r\n }\r\n\r\n &:disabled {\r\n background-color: $card-neutral-background;\r\n opacity: 0.6;\r\n }\r\n\r\n &:hover:not(:disabled) {\r\n border-color: $primary-accent;\r\n }\r\n\r\n &:active:not(:disabled) {\r\n border-color: $primary-accent;\r\n }\r\n\r\n &.-invalid {\r\n border-color: $border-error;\r\n }\r\n\r\n &.-side-sign {\r\n border-radius: 0px 10px 10px 0px;\r\n }\r\n\r\n &[type='number'] {\r\n -moz-appearance: textfield;\r\n }\r\n\r\n &::-webkit-outer-spin-button,\r\n &::-webkit-inner-spin-button {\r\n -webkit-appearance: none;\r\n margin: 0;\r\n }\r\n }\r\n\r\n &.-has-save input {\r\n padding-right: 50px;\r\n }\r\n\r\n &.-have-icon:not(.-only-search) input {\r\n padding-left: 34px;\r\n\r\n &.-sm {\r\n padding-left: 32px;\r\n }\r\n\r\n &.-lg {\r\n padding-left: 36px;\r\n }\r\n }\r\n\r\n &.-clear-button input {\r\n padding-right: 40px;\r\n\r\n &.-sm {\r\n padding-right: 32px;\r\n }\r\n\r\n &.-lg {\r\n padding-right: 36px;\r\n }\r\n }\r\n\r\n &__icon-wrapper {\r\n position: absolute;\r\n top: 0;\r\n height: 100%;\r\n width: 100%;\r\n padding: 0 12px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n\r\n &.-only-search,\r\n &.-has-save,\r\n &.-have-unit-type,\r\n &.-password-type {\r\n justify-content: flex-end;\r\n }\r\n\r\n &.-with-label {\r\n top: 29px;\r\n height: 40px;\r\n\r\n &.-lg {\r\n height: 40px;\r\n }\r\n\r\n &.-sm {\r\n height: 32px;\r\n }\r\n }\r\n\r\n &.-sm {\r\n padding: 0 8px;\r\n }\r\n }\r\n\r\n &__error {\r\n @include fz-12;\r\n font-weight: 500;\r\n color: $border-error;\r\n }\r\n\r\n &__label {\r\n color: $text-high-emphasis;\r\n @include fz-14;\r\n font-weight: 500;\r\n\r\n &-wrapper {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n }\r\n }\r\n\r\n &__required {\r\n color: $primary-accent;\r\n }\r\n\r\n &__prompt {\r\n color: $text-high-emphasis;\r\n @include fz-12;\r\n margin-top: -4px;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <div class=\"scope-menu-tabs\">\r\n <div\r\n :class=\"['scope-menu-tab', { '-active': currentTab == tab.id }]\"\r\n v-for=\"(tab, index) in tabs\"\r\n @click=\"goToSection(tab.id)\"\r\n :key=\"index\"\r\n >\r\n {{ tab.name }}\r\n </div>\r\n </div>\r\n</template>\r\n<script setup>\r\ndefineProps({\r\n tabs: Array\r\n});\r\nconst currentTab = defineModel();\r\nconst goToSection = (tabId) => {\r\n currentTab.value = tabId;\r\n};\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n@import '../assets/styles/_main.scss';\r\n\r\n.scope-menu-tabs {\r\n height: 40px;\r\n display: flex;\r\n gap: 24px;\r\n padding: 0 24px;\r\n border-bottom: 1px solid $border;\r\n background: $card-background;\r\n\r\n .scope-menu-tab {\r\n color: $text-mid-emphasis;\r\n\r\n @include fz-14;\r\n font-weight: 500;\r\n text-wrap: nowrap;\r\n padding: 8px 0;\r\n cursor: pointer;\r\n\r\n &.-active {\r\n color: $text-high-emphasis;\r\n border-bottom: 2px solid $primary-accent;\r\n transition-duration: 200ms;\r\n transition-property: transform, border-bottom;\r\n }\r\n }\r\n}\r\n\r\nbody[theme='dark'] .scope-menu-tabs {\r\n border-bottom: 1px solid $border;\r\n background: $card-background;\r\n\r\n .scope-menu-tab {\r\n color: $text-mid-emphasis;\r\n\r\n &.-active {\r\n color: $text-high-emphasis;\r\n border-bottom: 2px solid $primary-accent;\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <div\r\n class=\"tooltip-wrapper\"\r\n :class=\"{ 'is-full-width': isFullWidth }\"\r\n :style=\"{ height }\"\r\n >\r\n <div class=\"tooltip-trigger\" @mouseenter=\"show\" @mouseleave=\"hide\">\r\n <slot name=\"trigger\" />\r\n </div>\r\n\r\n <TransitionGroup name=\"fade\">\r\n <div\r\n v-if=\"visible\"\r\n class=\"tooltip\"\r\n :class=\"[`position-${position}`, { 'from-bottom': fromBottom }]\"\r\n :style=\"{ height: tooltipHeight }\"\r\n >\r\n <slot />\r\n </div>\r\n <svg\r\n v-if=\"visible\"\r\n class=\"tooltip-arrow\"\r\n :class=\"{ 'from-bottom': fromBottom }\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"13\"\r\n height=\"4\"\r\n viewBox=\"0 0 13 4\"\r\n fill=\"none\"\r\n >\r\n <path d=\"M6.5 4L0.5 0H12.5L6.5 4Z\" fill=\"#1C2026\" />\r\n </svg>\r\n </TransitionGroup>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref, computed, onMounted, nextTick } from 'vue';\r\n\r\nconst props = defineProps({\r\n position: {\r\n type: String,\r\n default: 'center'\r\n },\r\n fromBottom: {\r\n type: Boolean,\r\n default: false\r\n },\r\n isFullWidth: { type: Boolean, default: false },\r\n height: { type: String, default: '100%' },\r\n tooltipHeight: { type: String, default: '40px' }\r\n});\r\n\r\nconst visible = ref(false);\r\nlet showTimeout = null;\r\n\r\nfunction show() {\r\n showTimeout = setTimeout(() => {\r\n visible.value = true;\r\n }, 150);\r\n}\r\n\r\nfunction hide() {\r\n if (showTimeout) {\r\n clearTimeout(showTimeout);\r\n showTimeout = null;\r\n }\r\n visible.value = false;\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '@/assets/styles/_main.scss';\r\n.tooltip-wrapper {\r\n position: relative;\r\n display: inline-block;\r\n\r\n &.is-full-width {\r\n width: 100%;\r\n\r\n .tooltip-trigger {\r\n display: flex;\r\n }\r\n }\r\n\r\n .tooltip-trigger {\r\n height: 100%;\r\n display: inline-flex;\r\n align-items: flex-end;\r\n cursor: pointer;\r\n }\r\n\r\n .tooltip-arrow {\r\n position: absolute;\r\n bottom: calc(100% + 4px);\r\n left: 50%;\r\n transform: translateX(-50%);\r\n\r\n &.from-bottom {\r\n transform: translateX(-50%) rotate(180deg);\r\n top: calc(100% + 4px);\r\n }\r\n }\r\n\r\n .tooltip {\r\n position: absolute;\r\n bottom: calc(100% + 8px) !important;\r\n z-index: 1000;\r\n pointer-events: none;\r\n background: $dark-background;\r\n color: $text-light;\r\n padding: 8px 12px;\r\n border-radius: 8px;\r\n\r\n &.from-bottom {\r\n top: calc(100% + 8px) !important;\r\n }\r\n\r\n &.position-center {\r\n left: 50%;\r\n transform: translateX(-50%);\r\n }\r\n\r\n &.position-left {\r\n left: 10%;\r\n transform: translateX(-10%);\r\n }\r\n\r\n &.position-right {\r\n left: 90%;\r\n transform: translateX(-90%);\r\n }\r\n }\r\n}\r\n\r\n.fade-enter-active,\r\n.fade-leave-active {\r\n @include transition-default(opacity);\r\n}\r\n\r\n.fade-enter-from,\r\n.fade-leave-to {\r\n opacity: 0;\r\n}\r\n\r\n.fade-enter-to,\r\n.fade-leave-from {\r\n opacity: 1;\r\n}\r\n</style>\r\n","<template>\r\n <div\r\n v-show=\"isOpen\"\r\n ref=\"container\"\r\n class=\"scope-modal-container animate-opacity\"\r\n >\r\n <div\r\n :class=\"['scope-modal', `-${size}`]\"\r\n v-on-click-outside=\"onClickOutside\"\r\n >\r\n <div class=\"scope-modal__header\">\r\n <div class=\"scope-modal__header__title\">{{ title }}</div>\r\n <div class=\"scope-modal__header__subtitle\" v-if=\"subtitle\">\r\n {{ subtitle }}\r\n </div>\r\n <Icon\r\n v-if=\"isCloseButton\"\r\n icon=\"Cross\"\r\n class=\"scope-modal__close\"\r\n @click=\"close\"\r\n />\r\n <Tooltip v-if=\"tooltip\" position=\"bottom\" alternative>\r\n {{ tooltip }}\r\n </Tooltip>\r\n </div>\r\n <div :class=\"['scope-modal__body', bodyClass]\">\r\n <slot name=\"body\"></slot>\r\n </div>\r\n <div v-if=\"slots.footer\" class=\"scope-modal__footer\">\r\n <slot name=\"footer\"></slot>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref, watch, useSlots } from 'vue';\r\nimport Icon from './Icon.vue';\r\nimport Tooltip from './Tooltip.vue';\r\nimport { vOnClickOutside } from '@vueuse/components';\r\n\r\nconst slots = useSlots();\r\n\r\nconst container = ref(null);\r\n\r\nconst props = defineProps({\r\n title: { type: String, default: '' },\r\n subtitle: { type: String, default: '' },\r\n bodyClass: { type: String, default: '' },\r\n size: { type: String, default: 'md' },\r\n isOpen: { type: Boolean, default: false },\r\n isCloseButton: { type: Boolean, default: true },\r\n tooltip: { type: String }\r\n});\r\n\r\nconst emit = defineEmits(['close', 'clickOutside']);\r\n\r\nconst close = () => {\r\n // container.value.classList.remove('animate-opacity');\r\n // container.value.classList.add('animate-disappearing');\r\n emit('close');\r\n};\r\n\r\nconst onClickOutside = () => {\r\n emit('clickOutside');\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n@import '../assets/styles/_main.scss';\r\n\r\n// .animate-opacity {\r\n// animation: opac 0.5s;\r\n// }\r\n\r\n// .animate-disappearing {\r\n// animation: disappearing 0.5s;\r\n// }\r\n\r\n@keyframes opac {\r\n from {\r\n opacity: 0;\r\n }\r\n to {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes disappearing {\r\n from {\r\n opacity: 1;\r\n }\r\n to {\r\n opacity: 0;\r\n }\r\n}\r\n\r\n.scope-modal-container {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n position: fixed;\r\n width: 100%;\r\n height: 100%;\r\n background: var(--overlay);\r\n top: 0;\r\n left: 0;\r\n z-index: 110;\r\n\r\n .scope-modal {\r\n display: flex;\r\n flex-direction: column;\r\n border-radius: 16px;\r\n gap: 24px;\r\n background: $card-background;\r\n padding: 16px;\r\n position: relative;\r\n\r\n &.-lg {\r\n width: 860px;\r\n }\r\n\r\n &.-md {\r\n width: 460px;\r\n }\r\n\r\n &.-sm {\r\n width: 420px;\r\n }\r\n\r\n &__header {\r\n display: flex;\r\n align-items: flex-start;\r\n flex-direction: column;\r\n gap: 4px;\r\n\r\n &__title {\r\n @include fz-20;\r\n font-weight: 600;\r\n color: $text-high-emphasis;\r\n }\r\n\r\n &__subtitle {\r\n color: $text-mid-emphasis;\r\n @include fz-14;\r\n font-weight: 500;\r\n letter-spacing: -0.2px;\r\n }\r\n }\r\n\r\n &__footer {\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n gap: 12px;\r\n }\r\n\r\n &__close {\r\n color: $icons-mid-emphasis;\r\n position: absolute;\r\n top: 16px;\r\n right: 16px;\r\n cursor: pointer;\r\n @include transition-default(color);\r\n\r\n &:hover {\r\n color: $icons-high-emphasis;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <button\r\n :class=\"[\r\n 'scope-navigation-tab',\r\n { '-selected': selected, '-not-active': notActive }\r\n ]\"\r\n @click=\"openPage(page)\"\r\n >\r\n <div class=\"scope-navigation-tab__icon-wrapper\">\r\n <Icon :icon=\"icon\" class=\"scope-navigation-tab__icon\" />\r\n </div>\r\n <span v-if=\"isFull\" class=\"scope-navigation-tab__text\">\r\n {{ tabName }}\r\n </span>\r\n </button>\r\n</template>\r\n<script setup>\r\nimport Icon from './Icon.vue';\r\ndefineProps({\r\n icon: String,\r\n tabName: String,\r\n selected: Boolean,\r\n notActive: Boolean,\r\n isFull: { type: Boolean, default: true },\r\n page: String\r\n});\r\n\r\nconst emit = defineEmits(['openPage']);\r\n\r\nconst openPage = (page) => {\r\n emit('openPage', page);\r\n};\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n@import '../assets/styles/_main.scss';\r\n\r\n.scope-navigation-tab {\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n padding: 8px 12px;\r\n border-radius: 10px;\r\n background: $card-background;\r\n outline: 0;\r\n border: 0;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background-color: $card-neutral-background;\r\n\r\n .scope-navigation-tab__text {\r\n color: $text-high-emphasis;\r\n }\r\n }\r\n\r\n &__icon-wrapper {\r\n display: flex;\r\n width: 20px;\r\n min-width: 20px;\r\n height: 20px;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n\r\n &__icon {\r\n color: $icons-mid-emphasis;\r\n }\r\n\r\n &__text {\r\n display: inline-block;\r\n color: $text-mid-emphasis;\r\n @include fz-14;\r\n font-weight: 600;\r\n text-wrap: nowrap;\r\n }\r\n\r\n &.-selected {\r\n background-color: $card-background;\r\n border: 1px solid $border;\r\n @include shadow-small;\r\n\r\n .scope-navigation-tab__text {\r\n color: $text-high-emphasis;\r\n }\r\n\r\n .scope-navigation-tab__icon {\r\n color: $primary-accent;\r\n }\r\n }\r\n\r\n &.-not-active {\r\n pointer-events: none;\r\n\r\n .scope-navigation-tab__text {\r\n color: $text-low-emphasis;\r\n }\r\n\r\n .scope-navigation-tab__icon {\r\n color: $text-low-emphasis;\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <form class=\"scope-number-input__form\" ref=\"numberCodeForm\">\r\n <fieldset\r\n :class=\"[\r\n 'scope-number-input__fieldset',\r\n { '-space-between': spaceBetween }\r\n ]\"\r\n data-number-code-form\r\n >\r\n <input\r\n type=\"number\"\r\n :disabled=\"disabled\"\r\n maxlength=\"1\"\r\n v-for=\"(el, index) in necessaryLength\"\r\n :key=\"index\"\r\n :class=\"['scope-number-input', { '-invalid': isInvalid }]\"\r\n min=\"0\"\r\n max=\"9\"\r\n data-number-code-input\r\n @input=\"handleInput($event, index)\"\r\n @keydown=\"handleKeyDown($event, index)\"\r\n required\r\n />\r\n </fieldset>\r\n <div\r\n class=\"scope-number-input__error-message\"\r\n v-if=\"isInvalid && errorMessage\"\r\n >\r\n {{ errorMessage }}\r\n </div>\r\n </form>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref } from 'vue';\r\nconst props = defineProps({\r\n necessaryLength: {\r\n type: Number,\r\n default: 6\r\n },\r\n disabled: Boolean,\r\n isInvalid: Boolean,\r\n errorMessage: String,\r\n spaceBetween: Boolean\r\n});\r\nconst numberCodeForm = ref(null);\r\nconst model = defineModel();\r\nif (!model.value) {\r\n model.value = Array(props.necessaryLength).fill(null);\r\n}\r\nconst handleInput = ({ target }, index) => {\r\n model.value[index] = target.value;\r\n if (!target.value.length) {\r\n target.value = null;\r\n return;\r\n }\r\n\r\n const inputLength = target.value.length;\r\n\r\n if (inputLength > 1) {\r\n const inputValues = target.value.split('');\r\n\r\n inputValues.forEach((value, valueIndex) => {\r\n const nextValueIndex = index + valueIndex;\r\n\r\n if (nextValueIndex >= props.necessaryLength) return;\r\n\r\n numberCodeForm.value.querySelectorAll('[data-number-code-input]')[\r\n nextValueIndex\r\n ].value = value;\r\n model.value[nextValueIndex] = value;\r\n });\r\n\r\n index += inputValues.length - 2;\r\n }\r\n const nextIndex = index + 1;\r\n\r\n if (nextIndex < props.necessaryLength) {\r\n numberCodeForm.value\r\n .querySelectorAll('[data-number-code-input]')\r\n [nextIndex].focus();\r\n }\r\n};\r\nconst handleKeyDown = (e, index) => {\r\n const { code, target } = e;\r\n const previousIndex = index - 1;\r\n const nextIndex = index + 1;\r\n\r\n const hasPreviousIndex = previousIndex >= 0;\r\n const hasNextIndex = nextIndex <= props.necessaryLength - 1;\r\n\r\n switch (code) {\r\n case 'ArrowLeft':\r\n case 'ArrowUp':\r\n if (hasPreviousIndex) {\r\n numberCodeForm.value\r\n .querySelectorAll('[data-number-code-input]')\r\n [previousIndex].focus();\r\n }\r\n e.preventDefault();\r\n break;\r\n\r\n case 'ArrowRight':\r\n case 'ArrowDown':\r\n if (hasNextIndex) {\r\n numberCodeForm.value\r\n .querySelectorAll('[data-number-code-input]')\r\n [nextIndex].focus();\r\n }\r\n e.preventDefault();\r\n break;\r\n\r\n case 'Backspace':\r\n if (!target.value.length && hasPreviousIndex) {\r\n const prevInput = numberCodeForm.value.querySelectorAll(\r\n '[data-number-code-input]'\r\n )[previousIndex];\r\n model.value[previousIndex] = null;\r\n prevInput.value = null;\r\n prevInput.focus();\r\n }\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '../assets/styles/_main.scss';\r\n\r\n.scope-number-input__form {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n gap: 16px;\r\n\r\n .scope-number-input__fieldset {\r\n display: flex;\r\n padding: 0;\r\n gap: 12px;\r\n width: 100%;\r\n border: 0;\r\n\r\n &.-space-between {\r\n gap: 0;\r\n justify-content: space-between;\r\n }\r\n\r\n .scope-number-input {\r\n width: 40px;\r\n height: 40px;\r\n\r\n padding: 10px;\r\n border-radius: 12px;\r\n border: 0;\r\n outline: 1px solid $border;\r\n -moz-appearance: textfield;\r\n\r\n background: $card-background;\r\n color: $text-high-emphasis;\r\n @include fz-16;\r\n font-weight: 600;\r\n text-align: center;\r\n\r\n &::-webkit-outer-spin-button,\r\n &::-webkit-inner-spin-button {\r\n -webkit-appearance: none;\r\n margin: 0;\r\n }\r\n\r\n &:focus-visible:not(:disabled),\r\n &:active:not(:disabled) {\r\n outline: 1px solid $primary-soft;\r\n }\r\n\r\n &.-invalid {\r\n outline: 1px solid $border-error;\r\n }\r\n }\r\n }\r\n\r\n .scope-number-input__error-message {\r\n @include fz-14;\r\n color: $text-error-accent;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <label class=\"scope-radio-label\">\r\n <input\r\n name=\"radio\"\r\n type=\"radio\"\r\n :value=\"value\"\r\n class=\"scope-radio-input\"\r\n v-model=\"model\"\r\n />\r\n <span :class=\"['scope-radio', { '-checked': checked }]\"></span>\r\n <span class=\"scope-text\">{{ label }}</span>\r\n </label>\r\n</template>\r\n<script setup>\r\nimport { ref, computed, defineModel, defineProps, onMounted } from 'vue';\r\nconst model = defineModel();\r\n\r\nconst props = defineProps({\r\n value: String | Object | Boolean | Number,\r\n label: String\r\n});\r\n\r\nconst checked = computed(() => model.value === props.value);\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n@import '../assets/styles/_main.scss';\r\n\r\n.scope-radio-label {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n\r\n .scope-radio-input {\r\n margin: 0;\r\n position: absolute;\r\n appearance: none;\r\n width: 16px;\r\n height: 16px;\r\n\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n &:checked {\r\n content: '';\r\n display: block;\r\n width: 8px;\r\n height: 8px;\r\n background-color: $icons-light;\r\n border-radius: 50%;\r\n left: 4px;\r\n }\r\n }\r\n\r\n .scope-radio {\r\n width: 16px;\r\n height: 16px;\r\n border-radius: 50%;\r\n border: 1px solid $border;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n\r\n &.-checked {\r\n background-color: $primary-accent;\r\n border: none;\r\n }\r\n }\r\n\r\n .scope-text {\r\n cursor: pointer;\r\n color: $text-high-emphasis;\r\n @include fz-14;\r\n font-weight: 500;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <div\r\n :class=\"['scope-selector', `-${size}`]\"\r\n :style=\"styles\"\r\n ref=\"selectorRef\"\r\n >\r\n <div class=\"scope-selector__highlight\" :style=\"highlightStyle\" />\r\n\r\n <button\r\n v-for=\"(option, index) in options\"\r\n :key=\"index\"\r\n :ref=\"(el) => setOptionRef(el, index)\"\r\n @click.prevent.stop=\"select(option)\"\r\n :disabled=\"disabled\"\r\n :class=\"[\r\n 'scope-selector__option',\r\n option.id,\r\n {\r\n '-selected': isSelected(option),\r\n '-iconic': icons\r\n }\r\n ]\"\r\n >\r\n <template v-if=\"icons\">\r\n <Icon :icon=\"getOptionLabel(option)\" />\r\n </template>\r\n <template v-else>\r\n <span class=\"scope-selector__option-label\">\r\n {{ getOptionLabel(option) }}\r\n </span>\r\n <span\r\n v-if=\"hasBadge(option)\"\r\n class=\"scope-selector__option-badge\"\r\n :aria-label=\"`count-${getOptionBadge(option)}`\"\r\n >\r\n {{ getOptionBadge(option) }}\r\n </span>\r\n </template>\r\n </button>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport {\r\n ref,\r\n computed,\r\n onMounted,\r\n onBeforeUnmount,\r\n watch,\r\n nextTick\r\n} from 'vue';\r\nimport Icon from './Icon.vue';\r\n\r\nconst selected = defineModel();\r\nconst emit = defineEmits(['select']);\r\n\r\nconst props = defineProps({\r\n options: Array,\r\n icons: Boolean,\r\n width: String,\r\n size: {\r\n type: String,\r\n default: 'xl'\r\n },\r\n disabled: Boolean\r\n});\r\n\r\nconst styles = computed(() => (props.width ? { width: props.width } : null));\r\n\r\nconst selectorRef = ref(null);\r\nconst optionRefs = ref([]);\r\nlet resizeObserver = null;\r\n\r\nfunction setOptionRef(el, index) {\r\n if (el) {\r\n optionRefs.value[index] = el;\r\n }\r\n}\r\n\r\nconst highlightStyle = ref({});\r\n\r\nfunction isSelected(option) {\r\n return getOptionId(option) === getOptionId(selected.value);\r\n}\r\n\r\nfunction getSelectedIndex() {\r\n return props.options.findIndex(isSelected);\r\n}\r\n\r\nfunction getOptionLabel(option) {\r\n if (option && typeof option === 'object' && 'name' in option) {\r\n return option.name;\r\n }\r\n\r\n return option;\r\n}\r\n\r\nfunction getOptionId(option) {\r\n if (option && typeof option === 'object' && 'id' in option) {\r\n return option.id;\r\n }\r\n\r\n return option;\r\n}\r\n\r\nfunction getOptionBadge(option) {\r\n if (!option || typeof option !== 'object') {\r\n return null;\r\n }\r\n\r\n if ('badge' in option) {\r\n return option.badge;\r\n }\r\n\r\n if ('count' in option) {\r\n return option.count;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction hasBadge(option) {\r\n const badge = getOptionBadge(option);\r\n return badge !== null && badge !== undefined && `${badge}` !== '';\r\n}\r\n\r\nfunction updateHighlight() {\r\n nextTick(() => {\r\n const index = getSelectedIndex();\r\n const el = optionRefs.value[index];\r\n\r\n if (el) {\r\n highlightStyle.value = {\r\n transform: `translateX(${el.offsetLeft}px)`,\r\n width: `${el.offsetWidth}px`\r\n };\r\n }\r\n });\r\n}\r\nfunction select(option) {\r\n selected.value = option;\r\n emit('select', option);\r\n updateHighlight();\r\n}\r\n\r\nonMounted(() => {\r\n updateHighlight();\r\n\r\n if (typeof ResizeObserver !== 'undefined' && selectorRef.value) {\r\n resizeObserver = new ResizeObserver(() => {\r\n updateHighlight();\r\n });\r\n resizeObserver.observe(selectorRef.value);\r\n }\r\n});\r\n\r\nwatch(\r\n () => selected.value,\r\n () => {\r\n updateHighlight();\r\n }\r\n);\r\n\r\nonBeforeUnmount(() => {\r\n if (resizeObserver) {\r\n resizeObserver.disconnect();\r\n resizeObserver = null;\r\n }\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '../assets/styles/_main.scss';\r\n\r\n.scope-selector {\r\n position: relative;\r\n display: inline-flex;\r\n width: fit-content;\r\n padding: 2px;\r\n border-radius: 10px;\r\n background: $card-neutral-background;\r\n\r\n &__highlight {\r\n pointer-events: none;\r\n position: absolute;\r\n top: 2px;\r\n bottom: 2px;\r\n left: 0;\r\n border-radius: 8px;\r\n background: $card-background;\r\n @include transition-default;\r\n z-index: 1;\r\n }\r\n\r\n &__option {\r\n position: relative;\r\n z-index: 2;\r\n color: $text-mid-emphasis;\r\n text-align: center;\r\n @include fz-14;\r\n font-weight: 500;\r\n padding: 0 8px;\r\n width: 100%;\r\n height: 100%;\r\n background-color: transparent;\r\n border-radius: 8px;\r\n border: none;\r\n outline: none;\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n justify-content: center;\r\n text-wrap: nowrap;\r\n @include transition-default(color);\r\n\r\n &:not(:disabled).-selected {\r\n color: $text-high-emphasis;\r\n }\r\n\r\n &:disabled {\r\n cursor: not-allowed;\r\n }\r\n\r\n &.-iconic {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 0 6px;\r\n }\r\n }\r\n\r\n &__option-label {\r\n white-space: nowrap;\r\n }\r\n\r\n &__option-badge {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-width: 20px;\r\n width: auto;\r\n padding: 0 6px;\r\n height: 20px;\r\n border-radius: 6px;\r\n background: $app-background;\r\n color: $text-mid-emphasis;\r\n @include fz-12;\r\n font-weight: 500;\r\n line-height: 1;\r\n white-space: nowrap;\r\n @include transition-default;\r\n }\r\n\r\n &__option.-selected &__option-badge {\r\n background: $card-primary-background-light;\r\n color: $primary-deep;\r\n }\r\n\r\n &.-xl {\r\n height: 40px;\r\n }\r\n\r\n &.-lg {\r\n height: 36px;\r\n }\r\n\r\n &.-md {\r\n height: 32px;\r\n }\r\n\r\n &.-sm {\r\n height: 28px;\r\n\r\n .-iconic {\r\n padding: 0 4px;\r\n }\r\n }\r\n}\r\n\r\nbody[theme='dark'] .scope-selector {\r\n background: $background-secondary;\r\n border: 1px solid $border-secondary;\r\n\r\n &__highlight {\r\n background-color: $background-tertiary;\r\n }\r\n\r\n &__option {\r\n color: $text-mid-emphasis;\r\n\r\n &:hover {\r\n color: $text-high-emphasis;\r\n }\r\n\r\n &:not(:disabled).-selected {\r\n color: $text-high-emphasis;\r\n }\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .scope-selector {\r\n &__option {\r\n &:hover {\r\n color: $text-mid-emphasis !important;\r\n }\r\n }\r\n }\r\n body[theme='dark'] .scope-selector {\r\n &__option {\r\n &:hover {\r\n color: $text-mid-emphasis !important;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <div class=\"scope-sidebar\">\r\n <slot></slot>\r\n </div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '../assets/styles/_main.scss';\r\n\r\n.scope-sidebar {\r\n width: 436px;\r\n height: 100%;\r\n border-left: 1px solid $border;\r\n @include shadow-medium;\r\n\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n z-index: 120;\r\n background-color: $card-background;\r\n\r\n display: flex;\r\n flex-direction: column;\r\n overflow: auto;\r\n\r\n @media screen and (min-width: 1920px) {\r\n width: 561px;\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <div :class=\"['scope-toggle-wrapper', { '-checked': model === true }]\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"scope-toggle-wrapper__checkbox\"\r\n :checked=\"model\"\r\n :name=\"name\"\r\n @change=\"onChange\"\r\n />\r\n <div class=\"scope-toggle-wrapper__indicator\" />\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport { defineModel, defineProps } from 'vue';\r\nconst model = defineModel();\r\nconst emit = defineEmits(['change']);\r\ndefineProps({\r\n name: String\r\n});\r\n\r\nconst onChange = () => {\r\n model.value = !model.value;\r\n emit('change', model.value);\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '../assets/styles/_main.scss';\r\n\r\n.scope-toggle-wrapper {\r\n display: inline-block;\r\n height: 18px;\r\n width: 32px;\r\n min-width: 32px;\r\n position: relative;\r\n overflow: hidden;\r\n border-radius: 20px;\r\n cursor: pointer;\r\n\r\n &__checkbox {\r\n z-index: 2;\r\n opacity: 0;\r\n cursor: pointer;\r\n }\r\n\r\n &__checkbox,\r\n &__indicator {\r\n height: 100%;\r\n width: 100%;\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n margin: 0;\r\n }\r\n\r\n &__indicator {\r\n background: $icons-low-emphasis;\r\n @include transition-default;\r\n\r\n &:after {\r\n height: 13px;\r\n width: 13px;\r\n background: $icons-light;\r\n @include shadow-medium;\r\n content: '';\r\n position: absolute;\r\n border-radius: 100%;\r\n top: 2.5px;\r\n left: 2.5px;\r\n @include transition-default(transform);\r\n }\r\n }\r\n\r\n &.-checked {\r\n .scope-toggle-wrapper__indicator {\r\n background: $icons-success-accent;\r\n &::after {\r\n transform: translateX(14.5px);\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <div class=\"sidebar-popup-container\">\r\n <div\r\n :class=\"[\r\n 'sidebar-popup-container__icon-wrapper',\r\n { '-is-active': popupOpened }\r\n ]\"\r\n @click.stop=\"changePopupState\"\r\n name=\"popup-icon-wrapper\"\r\n >\r\n <Icon icon=\"GridFilled\" />\r\n </div>\r\n <div class=\"sidebar-popup\" ref=\"popupRef\" v-if=\"popupOpened\">\r\n <div class=\"sidebar-popup__profile-info\">\r\n <img\r\n v-if=\"avatar\"\r\n :src=\"avatar\"\r\n class=\"sidebar-popup__profile-info__photo\"\r\n />\r\n <div v-else class=\"sidebar-popup__profile-info__letter\">\r\n {{ letter }}\r\n </div>\r\n <div class=\"sidebar-popup__profile-info__wrapper\">\r\n <div class=\"sidebar-popup__profile-info__name\">\r\n {{ user.name }}\r\n </div>\r\n <div class=\"sidebar-popup__profile-info__e-mail\">\r\n {{ user.email }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"sidebar-popup__divider\" />\r\n <div class=\"sidebar-popup__tabs\">\r\n <div\r\n v-for=\"tab in tabs\"\r\n :class=\"[\r\n 'sidebar-popup__tab',\r\n { '-is-active': tab.name === activeSection },\r\n { '-is-disable': !tab.isActive }\r\n ]\"\r\n @click=\"goToSection(tab)\"\r\n >\r\n <div class=\"sidebar-popup__tab__left\">\r\n <div class=\"sidebar-popup__tab__icon-wrapper\">\r\n <Icon\r\n :icon=\"\r\n tab.icon\r\n ? tab.icon\r\n : tab.name.split(' ').join('_')\r\n \"\r\n />\r\n </div>\r\n <div class=\"sidebar-popup__tab__name\">\r\n {{ tab.title }}\r\n </div>\r\n </div>\r\n\r\n <div\r\n v-if=\"tab.name === activeSection\"\r\n class=\"sidebar-popup__tab__icon-check\"\r\n >\r\n <Icon icon=\"Check\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n<script setup>\r\nimport { reactive, ref, onMounted, onUnmounted, computed } from 'vue';\r\n\r\nimport Icon from './Icon.vue';\r\nimport Toggle from './Toggle.vue';\r\nconst props = defineProps({\r\n activeSection: String,\r\n avatar: String,\r\n user: Object\r\n});\r\n\r\nconst emit = defineEmits(['logout', 'toggleDarkMode']);\r\n\r\nconst popupOpened = ref(false);\r\nconst popupRef = ref(null);\r\n\r\nconst tabs = reactive([\r\n {\r\n name: 'futures',\r\n title: 'Futures',\r\n isActive: true,\r\n icon: 'Futures'\r\n },\r\n {\r\n name: 'fx',\r\n title: 'FX',\r\n isActive: true,\r\n icon: 'Fx'\r\n },\r\n { name: 'spot', title: 'Spot', isActive: false, icon: 'Spot' },\r\n {\r\n name: 'trading terminal',\r\n title: 'Trading Terminal',\r\n isActive: false,\r\n icon: 'Terminal'\r\n }\r\n]);\r\n\r\nconst letter = computed(() =>\r\n props.user && props.user.name ? props.user.name.charAt(0) : 'U'\r\n);\r\n\r\nconst changePopupState = () => {\r\n popupOpened.value = !popupOpened.value;\r\n};\r\n\r\nconst handleClickOutside = (event) => {\r\n if (popupRef.value && !popupRef.value.contains(event.target)) {\r\n changePopupState();\r\n }\r\n};\r\n\r\nconst goToSection = (item) => {\r\n if (item.isActive && window !== undefined) {\r\n window.open(\r\n `https://${item.name}${\r\n window.location.hostname.includes('stage') ? '-stage' : ''\r\n }.scope360.io/`\r\n );\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n document.addEventListener('click', handleClickOutside);\r\n});\r\n\r\nonUnmounted(() => {\r\n document.removeEventListener('click', handleClickOutside);\r\n});\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n@import '../assets/styles/_main.scss';\r\n\r\n.sidebar-popup-container {\r\n position: relative;\r\n\r\n &__icon-wrapper {\r\n width: 32px;\r\n height: 32px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n color: $icons-mid-emphasis;\r\n cursor: pointer;\r\n\r\n &.-is-active {\r\n color: $icons-high-emphasis;\r\n }\r\n }\r\n}\r\n\r\n.sidebar-popup {\r\n position: absolute;\r\n top: 36px;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n padding: 8px;\r\n width: 250px;\r\n border-radius: 12px;\r\n border: 1px solid $border;\r\n background: $card-background;\r\n @include shadow-medium;\r\n z-index: 20;\r\n\r\n &__profile-info {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\r\n\r\n &__photo,\r\n &__letter {\r\n width: 32px;\r\n height: 32px;\r\n min-width: 32px;\r\n min-height: 32px;\r\n border-radius: 50%;\r\n }\r\n\r\n &__photo {\r\n object-fit: cover;\r\n }\r\n\r\n &__letter {\r\n @include fz-14;\r\n font-weight: 600;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background-color: $card-primary-background-light;\r\n color: $primary-accent;\r\n }\r\n\r\n &__wrapper {\r\n display: flex;\r\n flex-direction: column;\r\n overflow: hidden;\r\n @include fz-14;\r\n }\r\n\r\n &__name {\r\n font-weight: 600;\r\n color: $text-high-emphasis;\r\n }\r\n\r\n &__e-mail {\r\n font-weight: 500;\r\n color: $text-mid-emphasis;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n }\r\n }\r\n\r\n &__divider {\r\n height: 1px;\r\n width: 100%;\r\n margin-right: 8px;\r\n background-color: $border;\r\n }\r\n\r\n &__tabs {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 2px;\r\n }\r\n\r\n &__tab {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n width: 100%;\r\n padding: 8px;\r\n border-radius: 10px;\r\n\r\n cursor: pointer;\r\n\r\n &__left {\r\n display: flex;\r\n gap: 8px;\r\n align-items: center;\r\n }\r\n\r\n &__icon-wrapper {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 20px;\r\n height: 20px;\r\n }\r\n\r\n &__name {\r\n @include fz-14;\r\n color: $text-high-emphasis;\r\n font-weight: 600;\r\n font-variant-numeric: tabular-nums;\r\n }\r\n\r\n &__icon-check {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: $primary-accent;\r\n }\r\n\r\n &:hover:not(.-is-disable) {\r\n background-color: $card-neutral-background;\r\n }\r\n\r\n &.-is-disable {\r\n .sidebar-popup__tab__icon-wrapper {\r\n opacity: 0.3;\r\n }\r\n\r\n .sidebar-popup__tab__name {\r\n color: $text-low-emphasis;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","<template>\r\n <div class=\"scope-switcher\">\r\n <Button\r\n view=\"no-border\"\r\n icon=\"ChevronLeft\"\r\n :class=\"['scope-switcher__left', { '-first-item': isFirstItem }]\"\r\n @click=\"previous\"\r\n />\r\n <div class=\"scope-switcher__current-item\">{{ currentItem.name }}</div>\r\n <Button\r\n view=\"no-border\"\r\n icon=\"ChevronRight\"\r\n :class=\"['scope-switcher__right', { '-last-item': isLastItem }]\"\r\n @click=\"next\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport { computed, defineProps, defineModel } from 'vue';\r\nimport Icon from './Icon.vue';\r\nimport Button from './Button.vue';\r\nconst props = defineProps({\r\n items: Array\r\n});\r\nconst emit = defineEmits(['change']);\r\n\r\nconst currentItem = defineModel();\r\nconst currentPos = computed(() =>\r\n props.items.findIndex((item) => currentItem.value.id === item.id)\r\n);\r\nconst isFirstItem = computed(() => currentItem.value.id === props.items[0].id);\r\nconst isLastItem = computed(\r\n () => currentItem.value.id === props.items.at(-1).id\r\n);\r\nconst previous = () => {\r\n currentItem.value = props.items[currentPos.value - 1];\r\n emit('change');\r\n};\r\nconst next = () => {\r\n currentItem.value = props.items[currentPos.value + 1];\r\n emit('change');\r\n};\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n@import '../assets/styles/_main.scss';\r\n\r\n.scope-switcher {\r\n display: inline-flex;\r\n background-color: $card-background;\r\n align-items: center;\r\n gap: 12px;\r\n flex-shrink: 0;\r\n width: fit-content;\r\n user-select: none;\r\n\r\n &__right,\r\n &__left {\r\n color: $icons-mid-emphasis;\r\n cursor: pointer;\r\n\r\n &.-first-item,\r\n &.-last-item {\r\n display: none;\r\n }\r\n }\r\n\r\n &__current-item {\r\n color: $text-high-emphasis;\r\n @include fz-24;\r\n }\r\n}\r\n\r\nbody[theme='dark'] .scope-switcher {\r\n background-color: $app-background;\r\n}\r\n</style>\r\n","<template>\r\n <div :class=\"['scope-textarea', { '-full-width': fullWidth }]\">\r\n <div class=\"scope-textarea__label\" v-if=\"label\">{{ label }}</div>\r\n <div class=\"scope-textarea__prompt\" v-if=\"prompt\">{{ prompt }}</div>\r\n <textarea\r\n :disabled=\"disabled\"\r\n :class=\"[{ '-invalid': invalid }]\"\r\n v-model=\"vModel\"\r\n :style=\"styles\"\r\n :placeholder=\"placeholder\"\r\n @input=\"emit('input')\"\r\n :veeBind=\"veeBind\"\r\n @keyup.enter=\"emit('enter')\"\r\n :maxlength=\"maxLength\"\r\n />\r\n <div class=\"scope-textarea__error\" v-if=\"invalid\">\r\n {{ errorMessage }}\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup>\r\nimport { computed } from 'vue';\r\n\r\nconst emit = defineEmits(['input', 'enter']);\r\n\r\nconst vModel = defineModel();\r\nconst props = defineProps({\r\n maxLength: {\r\n type: Number,\r\n default: 524288\r\n },\r\n placeholder: String,\r\n veeBind: Object,\r\n invalid: Boolean,\r\n fullWidth: Boolean,\r\n errorMessage: String,\r\n label: String,\r\n disabled: Boolean,\r\n width: String,\r\n prompt: String\r\n});\r\nconst styles = computed(() =>\r\n props.width || props.height\r\n ? { width: props.width, height: props.height }\r\n : null\r\n);\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '../assets/styles/_main.scss';\r\n\r\n.scope-textarea {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 12px;\r\n\r\n position: relative;\r\n width: fit-content;\r\n\r\n &.-full-width {\r\n width: 100%;\r\n }\r\n\r\n textarea {\r\n position: relative;\r\n\r\n border: 1px solid $border;\r\n border-radius: 10px;\r\n outline: none;\r\n padding: 12px;\r\n\r\n display: flex;\r\n align-items: center;\r\n\r\n font-family: 'Geist', sans-serif;\r\n font-optical-sizing: auto;\r\n @include fz-14;\r\n resize: none;\r\n\r\n color: $text-high-emphasis;\r\n z-index: 10;\r\n\r\n width: 100%;\r\n height: 100%;\r\n\r\n text-overflow: ellipsis;\r\n background-color: $card-background;\r\n\r\n &:disabled {\r\n opacity: 0.6;\r\n }\r\n\r\n &:hover:not(:disabled) {\r\n border-color: $text-mid-emphasis;\r\n }\r\n\r\n &:active:not(:disabled) {\r\n border-color: $primary-soft;\r\n }\r\n\r\n &.-invalid {\r\n border-color: $border-error;\r\n }\r\n\r\n &.-side-sign {\r\n border-radius: 0px 10px 10px 0px;\r\n }\r\n }\r\n\r\n &__error {\r\n @include fz-12;\r\n font-weight: 500;\r\n color: $text-error-accent;\r\n }\r\n\r\n &__label {\r\n color: $text-mid-emphasis;\r\n @include fz-14;\r\n }\r\n\r\n &__prompt {\r\n color: $text-mid-emphasis;\r\n @include fz-12;\r\n margin-top: -4px;\r\n }\r\n}\r\n</style>\r\n","<template>\n <div\n ref=\"popper-option\"\n class=\"popper-option\"\n :class=\"[\n {\n selected,\n disabled,\n danger: variant === 'danger',\n primary: variant === 'primary'\n }\n ]\"\n >\n <slot name=\"start\" />\n <div class=\"popper-option-text\">\n <slot />\n </div>\n\n <slot name=\"end\" />\n </div>\n</template>\n<script setup>\nimport { useTemplateRef } from 'vue';\n\ndefineProps({\n selected: {\n type: Boolean,\n required: false,\n default: false\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n variant: {\n type: String,\n required: false,\n default: 'default'\n }\n});\n\nconst popperOptionRef = useTemplateRef('popper-option');\n\ndefineExpose({\n popperOptionRef\n});\n</script>\n\n<style scoped lang=\"scss\">\n@import '../../assets/styles/_main.scss';\n\n.popper-option {\n display: flex;\n align-items: center;\n gap: 8px;\n color: $text-high-emphasis;\n font-feature-settings: 'ss01' on, 'ss03' on, 'ss04' on, 'ss06' on, 'ss08' on;\n\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: 20px;\n letter-spacing: -0.2px;\n height: 36px;\n min-height: 36px;\n padding: 0 8px;\n cursor: pointer;\n margin: 2px 0;\n\n &:first-child {\n margin-top: 0;\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n\n &-text {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n }\n\n &.selected,\n &:hover {\n border-radius: 8px;\n background: $card-neutral-background;\n }\n\n &.danger {\n color: $text-error-accent;\n\n &.selected,\n &:hover {\n background: $card-error-background-light;\n }\n }\n\n &.primary {\n color: $primary-accent;\n\n &.selected,\n &:hover {\n background: $card-primary-background-light;\n }\n }\n\n &.disabled {\n cursor: not-allowed;\n pointer-events: none;\n color: $text-low-emphasis;\n }\n}\n\n.popper-option :deep(.popper-option-icon-color) {\n color: $icons-mid-emphasis;\n}\n\n.popper-option.danger :deep(.popper-option-icon-color) {\n color: $text-error-accent;\n}\n\n.popper-option.primary :deep(.popper-option-icon-color) {\n color: $primary-accent;\n}\n\nbody[theme='dark'] .popper-option:not(.primary):not(.danger).selected,\nbody[theme='dark'] .popper-option:not(.primary):not(.danger):hover {\n background-color: $background-secondary;\n}\n\nbody[theme='dark'] .popper-option.primary.selected,\nbody[theme='dark'] .popper-option.primary:hover {\n background-color: $background-secondary;\n}\n</style>\n"],"names":["assign","target","i","source","key","defaultConverter","value","init","converter","defaultAttributes","set","name","attributes","stringifiedAttributes","attributeName","get","cookies","jar","parts","found","api","CookieManager","expires","Cookies","cookie","AdaptiveNumber","isNegative","abs","decimals","formattedInt","result","str","int","frac","intPart","integerFormatter","formatNumber","maxFraction","isNegativeZero","raw","sign","decParts","decPart","shouldUseAdaptive","adaptiveConfig","getAdaptiveFormatConfig","resolvedMaxFraction","rounded","roundDecimalParts","sliced","slicedHasValue","originalHasValue","formatted","normalizeIntString","normalized","compareIntStrings","a","b","left","right","incrementIntString","digits","carry","sum","roundDigit","kept","normalizedInt","normalizedDec","firstNonZero","cmp","formatNumberWithSign","showPlus","numericValue","formatCurrencyWithSign","currencySymbol","firstChar","firebaseConfig","LuxonError","InvalidDateTimeError","reason","InvalidIntervalError","InvalidDurationError","ConflictingSpecificationError","InvalidUnitError","unit","InvalidArgumentError","ZoneIsAbstractError","n","s","l","DATE_SHORT","DATE_MED","DATE_MED_WITH_WEEKDAY","DATE_FULL","DATE_HUGE","TIME_SIMPLE","TIME_WITH_SECONDS","TIME_WITH_SHORT_OFFSET","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","Zone","ts","opts","format","otherZone","singleton","SystemZone","locale","parseZoneInfo","formatOffset","dtfCache","makeDTF","zone","typeToPos","hackyOffset","dtf","date","parsed","fMonth","fDay","fYear","fadOrBc","fHour","fMinute","fSecond","partsOffset","filled","type","pos","isUndefined","ianaZoneCache","IANAZone","year","month","day","adOrBc","hour","minute","second","asUTC","objToLocalTS","asTS","over","intlLFCache","getCachedLF","locString","intlDTCache","getCachedDTF","intlNumCache","getCachedINF","inf","intlRelCache","getCachedRTF","base","cacheKeyOpts","sysLocaleCache","systemLocale","weekInfoCache","getCachedWeekInfo","data","parseLocaleString","localeStr","xIndex","uIndex","options","selectedStr","smaller","numberingSystem","calendar","intlConfigString","outputCalendar","mapMonths","f","ms","dt","DateTime","mapWeekdays","listStuff","loc","length","englishFn","intlFn","mode","supportsFastNumbers","PolyNumberFormatter","intl","forceSimple","padTo","floor","otherOpts","intlOpts","fixed","roundTo","padStart","PolyDateFormatter","z","gmtOffset","offsetZ","part","offsetName","PolyRelFormatter","isEnglish","hasRelative","count","English.formatRelativeTime","fallbackWeekSettings","Locale","weekSettings","defaultToEN","specifiedLocale","Settings","localeR","numberingSystemR","outputCalendarR","weekSettingsR","validateWeekSettings","numbering","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","isActuallyEn","hasNoWeirdness","alts","English.months","formatStr","English.weekdays","English.meridiems","English.eras","field","df","results","matching","m","hasLocaleWeekInfo","other","FixedOffsetZone","offset","r","signedOffset","InvalidZone","zoneName","normalizeZone","input","defaultZone","isString","lowered","isNumber","numberingSystems","numberingSystemsUTF16","hanidecChars","parseDigits","code","min","max","digitRegexCache","resetDigitRegexCache","digitRegex","append","ns","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","twoDigitCutoffYear","throwOnInvalid","defaultWeekSettings","cutoffYear","t","Invalid","explanation","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","d","js","computeOrdinal","isLeapYear","uncomputeOrdinal","ordinal","table","month0","isoWeekdayToLocal","isoWeekday","startOfWeek","gregorianToWeek","gregObj","minDaysInFirstWeek","weekday","weekNumber","weekYear","weeksInWeekYear","timeObject","weekToGregorian","weekData","weekdayOfJan4","yearInDays","daysInYear","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","usesLocalWeekValues","obj","hasInvalidWeekData","validYear","isInteger","validWeek","integerBetween","validWeekday","hasInvalidOrdinalData","validOrdinal","hasInvalidGregorianData","validMonth","validDay","daysInMonth","hasInvalidTimeData","millisecond","validHour","validMinute","validSecond","validMillisecond","o","isDate","maybeArray","thing","bestBy","arr","by","compare","best","next","pair","pick","keys","k","hasOwnProperty","prop","settings","v","bottom","top","floorMod","x","isNeg","padded","parseInteger","string","parseFloating","parseMillis","fraction","number","towardZero","factor","modMonth","modYear","firstWeekOffset","weekOffset","weekOffsetNext","untruncateYear","offsetFormat","timeZone","modified","offHourStr","offMinuteStr","offHour","offMin","offMinSigned","asNumber","normalizeObject","normalizer","u","hours","minutes","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","meridiemForDateTime","weekdayForDateTime","monthForDateTime","eraForDateTime","formatRelativeTime","numeric","narrow","units","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","stringifyTokens","splits","tokenToString","token","macroTokenToFormatOpts","Formats.DATE_SHORT","Formats.DATE_MED","Formats.DATE_FULL","Formats.DATE_HUGE","Formats.TIME_SIMPLE","Formats.TIME_WITH_SECONDS","Formats.TIME_WITH_SHORT_OFFSET","Formats.TIME_WITH_LONG_OFFSET","Formats.TIME_24_SIMPLE","Formats.TIME_24_WITH_SECONDS","Formats.TIME_24_WITH_SHORT_OFFSET","Formats.TIME_24_WITH_LONG_OFFSET","Formats.DATETIME_SHORT","Formats.DATETIME_MED","Formats.DATETIME_FULL","Formats.DATETIME_HUGE","Formats.DATETIME_SHORT_WITH_SECONDS","Formats.DATETIME_MED_WITH_SECONDS","Formats.DATETIME_FULL_WITH_SECONDS","Formats.DATETIME_HUGE_WITH_SECONDS","Formatter","fmt","current","currentFull","bracketed","c","formatOpts","interval","p","knownEnglish","useDateTimeFormatter","extract","meridiem","English.meridiemForDateTime","standalone","English.monthForDateTime","English.weekdayForDateTime","maybeMacro","era","English.eraForDateTime","dur","tokenToField","lildur","mapped","tokens","realTokens","literal","val","collapsed","ianaRegex","combineRegexes","regexes","full","combineExtractors","extractors","mergedVals","mergedZone","cursor","ex","parse","patterns","regex","extractor","simpleParse","match","ret","offsetRegex","isoExtendedZone","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","isoYmdRegex","isoWeekRegex","isoOrdinalRegex","extractISOWeekData","extractISOOrdinalData","sqlYmdRegex","sqlTimeRegex","sqlTimeExtensionRegex","fallback","extractISOYmd","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoTimeOnly","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","negativeSeconds","maybeNegate","num","force","obsOffsets","fromStrings","weekdayStr","English.monthsShort","English.weekdaysLong","English.weekdaysShort","rfc2822","extractRFC2822","obsOffset","milOffset","preprocessRFC2822","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDateAndTime","extractISOTimeAndOffset","parseISODate","parseRFC2822Date","parseHTTPDate","parseISODuration","extractISOTimeOnly","parseISOTimeOnly","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOTimeOffsetAndIANAZone","parseSQL","INVALID","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","clone","clear","conf","Duration","durationToMillis","matrix","vals","normalizeValues","previous","previousVal","conv","rollUp","removeZeroes","newVals","config","accurate","durationLike","text","invalid","fmtOpts","millis","duration","fn","values","mixed","conversionAccuracy","built","accumulated","lastUnit","own","ak","negated","eq","v1","v2","validateStartEnd","start","end","Interval","builtStart","friendlyDateTime","builtEnd","validateError","e","startIsValid","endIsValid","dateTime","dateTimes","sorted","added","idx","numberOfParts","intervals","final","sofar","item","currentCount","ends","flattened","dateFormat","separator","mapFn","Info","proto","locObj","dayDiff","earlier","later","utcDayStart","highOrderDiffs","differs","days","lowestOrder","highWater","differ","diff","remainingMillis","lowerOrderUnits","MISSING_FTP","intUnit","post","NBSP","spaceOrNBSP","spaceOrNBSPRegExp","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","groups","h","simple","escapeToken","unitForToken","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","partTypeStyleToTokenVal","tokenForPart","resolvedOpts","isSpace","style","actualType","buildRegex","handlers","matches","all","matchIndex","dateTimeFromMatches","toField","specificOffset","dummyDateTimeCache","getDummyDateTime","maybeExpandMacroToken","formatOptsToTokens","expandMacroTokens","TokenParser","regexString","rawMatches","explainFromTokens","parseFromTokens","invalidReason","MAX_DATE","unsupportedZone","possiblyCachedWeekData","possiblyCachedLocalWeekData","inst","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","objToTS","adjustTime","oPre","millisToAdd","parseDataToDateTime","parsedZone","setZone","interpretationZone","toTechFormat","allowZ","toISODate","extended","longFormat","toISOTime","suppressSeconds","suppressMilliseconds","includeOffset","extendedZone","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedWeekUnits","orderedOrdinalUnits","normalizeUnit","normalizeUnitWithLocalWeeks","guessOffsetForZone","zoneOffsetGuessCache","zoneOffsetTs","quickDT","offsetProvis","diffRelative","round","lastOpts","argList","args","ot","zoneToUse","milliseconds","seconds","tsNow","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","useWeekData","defaultValues","objNow","foundFirst","higherOrderInvalid","gregorian","tsFinal","offsetFinal","localeToUse","localeOpts","tokenList","dayMs","minuteMs","oEarlier","oLater","o1","ts1","ts2","c1","c2","keepLocalTime","keepCalendarTime","newTS","offsetGuess","asObj","settingWeekStuff","useLocaleWeeks","normalizedUnit","q","ext","includePrefix","includeZone","includeOffsetSpace","otherDateTime","durOpts","otherIsLater","diffed","inputMs","adjustedToZone","padding","formatParser","Formats.DATE_MED_WITH_WEEKDAY","Formats.DATETIME_MED_WITH_WEEKDAY","dateTimeish","FX_CURRECIES","currencies","forexMarketHours","toFix","stringValue","decimalIndex","firstSignificantIndex","multiplier","addSpaces","strArr","calculatePNLFX","position","marketData","entryPrice","positionAmount","side","leverage","pnl","pnl_roi","calculatePNL","marketPrice","pnlToBalanceRatio","toDynamicFix","numFormat","maskData","isMask","repeat","mask","prefix","suffix","finalPrefix","finalSuffix","getCurrencySymbol","transformKeysToQuery","accumulator","index","getTimezoneOffset","isFloat","toUTCOffset","nString","timezone_offset","timezone_number","getFullYear","toBaseDate","offsetString","formatDate","getFormattedDate","getMonth","getDate","getDay","getDaysDifference","dateString","inputDate","differenceInTime","currencySymbols","currency","getCookieCurrency","isFx","getCurrencyRate","withSign","newValue","calculateTimeDifference","startTime","endTime","isTable","difference","getFormattedDuration","parseTimezoneOffset","convertMarketHoursToUserTime","timezoneOffset","parseTime","timeString","formatTime","time","userOffset","market","openUserTime","closeUserTime","getMarketStatus","timezone","currentTime","currentTimeInSeconds","timeToSeconds","activeMarkets","open","close","openTime","closeTime","overlapEndInSeconds","nextMarket","yTicksCallback","addSlashToPair","suffixMatch","pairWithoutSuffix","firstPart","secondPart","addSlashToFxPair","getCurrency","getFullWeeksStartAndEndInMonth","weeks","firstDate","lastDate","numDays","sub","_","getMonthsBetweenDates","startDate","endDate","withId","id","monthYear","getYearsBetweenDates","years","startYear","endYear","subtractDays","isoString","newTimestamp","getYearStructure","getMonthWeeks","yearStructure","findEarliestDate","dateStrings","dates","dateStr","createComponent","component","props","parentContainer","slots","vNode","container","render","__props","iconComponent","computed","defineAsyncComponent","__variableDynamicImportRuntimeHelper","BanDuotone$1","Check$1","InfoFilled$1","TriangleWarningFilled","toast","ref","onClose","icon","iconClass","DEFAULT_TOAST_OPTIONS","instance","Toast","dismiss","unwatch","watch","success","message","error","progress","info","useToast","toastsCounter","Observer","subscriber","rest","alreadyExists","toast$1","dismissible","promise","shouldDismiss","originalPromise","response","isVNode","isHttpResponse","promiseData","description","toastSettings","unwrap","resolve","reject","ToastState","toastFunction","basicToast","getHistory","getToasts","isAction","action","VISIBLE_TOASTS_AMOUNT","VIEWPORT_OFFSET","MOBILE_VIEWPORT_OFFSET","TOAST_LIFETIME","TOAST_WIDTH","GAP","SWIPE_THRESHOLD","TIME_BEFORE_UNMOUNT","useIsDocumentHidden","isDocumentHidden","watchEffect","callback","cn","classes","getDefaultSwipeDirections","y","directions","assignOffset","defaultOffset","mobileOffset","styles","isMobile","defaultValue","assignAll","offset$1","_hoisted_1$7","_hoisted_2$2","Toast_vue_vue_type_script_setup_true_lang_default","defineComponent","__emit","emit","swipeDirection","swipeOutDirection","mounted","removed","swiping","swipeOut","swiped","offsetBeforeRemove","initialHeight","remainingTime","dragStartTime","toastRef","isFront","isVisible","toastType","toastClass","toastDescriptionClass","heightIndex","currentPosition","height","toastsHeightBefore","prev","curr","reducerIndex","closeButton","closeTimerStartTimeRef","lastCloseTimerStartTimeRef","pointerStartRef","coords","isStringOfTitle","isStringOfDescription","disabled","onMounted","nextTick","toastNode","originalHeight","newHeight","deleteToast","handleCloseToast","onPointerDown","event","onPointerUp","swipeAmountX","swipeAmountY","timeTaken","swipeAmount","velocity","onPointerMove","yDelta","xDelta","swipeDirections","getDampening","delta","dampenedDelta","newHeights","onBeforeUnmount","onInvalidate","timeoutId","pauseTimer","elapsedTime","startTimer","handleDragEnd","_ctx","_cache","openBlock","createElementBlock","normalizeClass","unref","normalizeStyle","createBlock","resolveDynamicComponent","renderSlot","createCommentVNode","mergeProps","Fragment","createElementVNode","normalizeProps","createTextVNode","toDisplayString","Toast_default","export_helper_default","sfc","_sfc_main$4","_hoisted_1$6","_sfc_render$4","CloseIcon_default","_hoisted_1$5","_hoisted_2$1","Loader_vue_vue_type_script_setup_true_lang_default","bars","renderList","bar","Loader_default","_sfc_main$3","_hoisted_1$4","_sfc_render$3","SuccessIcon_default","_sfc_main$2","_hoisted_1$3","_sfc_render$2","InfoIcon_default","_sfc_main$1","_hoisted_1$2","_sfc_render$1","WarningIcon_default","_sfc_main","_hoisted_1$1","_sfc_render","ErrorIcon_default","_hoisted_1","_hoisted_2","isClient","getDocumentDirection","dirAttribute","Toaster_vue_vue_type_script_setup_true_lang_default","attrs","useAttrs","toasts","filteredToastsById","filteredToasts","possiblePositions","posList","toastsByPosition","heights","expanded","interacting","actualTheme","listRef","lastFocusedElementRef","isFocusWithinRef","hotkeyLabel","removeToast","toastToRemove","onBlur","onFocus","unsubscribe","indexOfExistingToast","darkMediaQuery","updateTheme","handler","handleKeyDown","isHotkeyPressed","listRefItem","isItemActive","handleMouseEnter","handleMouseLeave","handlePointerUp","updateHeights","updateHeight","samePositionIndex","withCtx","createVNode","Toaster_default","SCOPE_TOAST_CLASSES","SCOPE_TOASTER_TOAST_OPTIONS","content","toastTitle","warning","useToastNew","useAppSwitcher","appsSource","currentAppIdSource","onSelect","apps","toValue","externalCurrentAppId","currentApp","currentAppId","app","toDate","argument","argStr","constructFrom","addDays","amount","_date","addMonths","dayOfMonth","endOfDesiredMonth","add","dateWithMonths","dateWithDays","minutesToAdd","msToAdd","addMilliseconds","timestamp","millisecondsInWeek","millisecondsInDay","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","addHours","defaultOptions","getDefaultOptions","weekStartsOn","startOfISOWeek","getISOWeekYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfDay","getTimezoneOffsetInMilliseconds","utcDate","differenceInCalendarDays","dateLeft","dateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","startOfISOWeekYear","fourthOfJanuary","addQuarters","addYears","compareAsc","_dateLeft","_dateRight","isValid","getQuarter","differenceInCalendarYears","differenceInYears","isLastYearNotFull","eachDayOfInterval","reversed","currentDate","step","startOfQuarter","currentMonth","eachQuarterOfInterval","startOfMonth","endOfYear","startOfYear","cleanDate","endOfWeek","endOfQuarter","formatDistanceLocale","formatDistance","tokenValue","buildFormatLongFn","width","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","formatRelative","_baseDate","_options","buildLocalizeFn","context","valuesArray","defaultWidth","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","dirtyNumber","rem100","localize","quarter","buildMatchFn","matchPattern","matchResult","matchedString","parsePatterns","findIndex","pattern","findKey","object","predicate","array","buildMatchPatternFn","parseResult","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","enUS","getDayOfYear","getISOWeek","getWeekYear","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfWeekYear","firstWeek","getWeek","addLeadingZeros","targetLength","output","lightFormatters","signedYear","dayPeriodEnumValue","numberOfDigits","fractionalSeconds","dayPeriodEnum","formatters","signedWeekYear","twoDigitYear","isoWeekYear","week","isoWeek","dayOfYear","localDayOfWeek","isoDayOfWeek","_localize","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","delimiter","absOffset","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","longFormatters","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","_message","subject","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","originalDate","substring","firstCharacter","longFormatter","cleanEscapedString","formatterOptions","formatter","matched","getDaysInMonth","monthIndex","lastDayOfMonth","getInternalDefaultOptions","getHours","getISODay","getMinutes","getSeconds","getYear","isAfter","dateToCompare","_dateToCompare","isBefore","isEqual","leftDate","rightDate","transpose","fromDate","constructor","TIMEZONE_UNIT_PRIORITY","Setter","_utcDate","ValueSetter","validateValue","setValue","priority","subPriority","flags","DateToSystemTimezoneSetter","Parser","_value","EraParser","numericPatterns","timezonePatterns","mapValue","parseFnResult","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","dayPeriod","normalizeTwoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","isLeapYearIndex","YearParser","valueCallback","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","setWeek","LocalWeekParser","setISOWeek","ISOWeekParser","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","DayOfYearParser","setDay","currentDay","dayIndex","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","setISODay","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","SecondParser","FractionOfSecondParser","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","referenceDate","subFnOptions","setters","usedTokens","parser","incompatibleTokens","incompatibleToken","usedToken","uniquePrioritySetters","setter","setterArray","isSameQuarter","dateLeftStartOfQuarter","dateRightStartOfQuarter","subDays","setMonth","dateWithDesiredMonth","setHours","setMilliseconds","setMinutes","setSeconds","setYear","subMonths","dateWithoutMonths","dateWithoutDays","minutestoSub","mstoSub","subYears","Et","jn","T","K","ye","Mn","za","Ha","Ua","Va","Wa","qe","ja","Na","G","fl","Ge","vl","nt","Mt","Tt","He","ml","je","Pe","ln","pl","ut","yl","Ka","Sn","$n","gl","Ie","hl","An","Ga","Ye","rn","on","Tn","bl","Gt","Yt","yt","kl","wl","Ea","Qa","$a","sa","Dl","Ke","sn","un","Ia","ra","al","Te","Ml","$l","Zn","gt","el","tl","yn","gn","Oe","Kt","Me","Ot","Be","_t","da","lt","Aa","St","ft","ht","Bt","Pn","pe","De","Rn","It","Cn","pn","Al","At","it","La","hn","On","pt","xn","st","_n","jt","Sl","Tl","Bn","Rt","ta","Fa","Pl","Ta","Sa","dn","Pa","Rl","Yn","qa","In","Ht","Qt","Nn","J","Se","Ra","ne","aa","Ca","Oa","_a","ze","_e","bt","B","L","Cl","Ol","_l","Bl","Yl","Il","Nl","El","Fl","Ll","zl","Hl","Ul","Ba","Vl","Wl","jl","Kl","Ce","oe","ee","U","Q","C","H","E","P","ae","Gl","Vt","at","M","le","X","nl","A","S","Y","de","ve","te","g","se","$","ge","I","D","V","Ql","kt","bn","kn","ca","rt","ql","Xl","Jl","Le","We","ua","ie","Ne","Ee","be","tt","Z","ct","Ue","Zl","xl","er","tr","qt","ma","Kn","xe","F","we","Wt","Re","na","la","fa","ar","Ut","nr","En","Xt","$e","ke","Gn","Ze","Nt","Ve","Xa","Ja","va","Fn","Ln","zn","wn","oa","ll","lr","Jt","me","rr","Pt","Je","Qe","or","sr","ur","ir","dr","cr","fr","vr","mr","R","O","W","Dn","rl","ue","w","N","ce","he","ia","pr","yr","gr","hr","Hn","Un","br","kr","wr","Dr","Mr","$r","Ar","Tr","Sr","Pr","Rr","Cr","Or","_r","Br","ol","sl","vn","Yr","j","re","Ae","Fe","xt","zt","Da","Dt","ea","Ma","$t","Wn","wt","Xe","et","fe","vt","Ft","Lt","pa","Zt","ya","ga","ha","ba","ka","wa","Ir","Nr","Jr","Er","tn","nn","ul","il","an","Fr","Lr","zr","Hr","Ur","Vr","Wr","jr","Kr","Gr","mn","Zr","Ct","Qr","Qn","xa","mt","qr","Xr","dl","cl","xr","eo","to","ao","no","lo","Ya","ro","qn","Xn","oo","so","uo","Za","en","Jn","Vn","io","vueDatePicker","modelValue","_useModel","computedFormat","opened","model","PopperStack","isPopperTopOfStack","isPopperScopeActive","scopeId","entry","getPopperById","isLockedByDisabledPopper","stack","byId","registerPopper","parentId","disableOutsideClose","updatePopper","patch","popper","unregisterPopper","closePopperStackForOpen","currentId","parentIndex","closeTopPopperInScope","canCloseByOutside","POPPER_SCOPE_KEY","POPPER_PARENT_ID_KEY","usePopperParentId","inject","usePopperScopeId","providePopperParentId","provide","usePopperScope","constrainToViewport","referenceDom","constrainPadding","avoidPopperElements","constrainBoundary","constrainDirection","detectOverflowPadding","resolveConstrainPadding","resolvedPadding","resolveToElement","resolvedTo","resolvedParentId","resolveBoundaryElement","resolvedBoundary","resolveAvoidPadding","boundaryRect","floatingRectArg","elements","boundaryBox","topEdge","bottomEdge","midEdge","floatingRect","floatLeft","floatRight","element","rect","isTopBar","isBottomBar","resolveBoundaryOptions","state","boundaryOptions","referenceRect","avoidPadding","basePadding","overflowPadding","overflow","detectOverflow","direction","maxHeight","startY","shouldClose","usePopperCore","referenceRef","floatingRef","toProp","placementProp","offsetProp","flipProp","fullWidth","outsideClickIgnore","closeOnOutside","closeOnEsc","onOutsideClose","onEscClose","useId","resolveBleed","resolvedOffset","offsetValue","offsetForFloating","floatingStyles","middlewareData","placement","update","useFloating","hide","flip","size","rects","bleed","constrainToViewportMiddleware","closeSelf","isRef","openValue","onCleanup","cleanUpAutoUpdate","cleanUpOnClickOutside","cleanUpEventListener","didOpen","resolvedScopeId","autoUpdate","onClickOutside","useEventListener","isDisabled","enabled","isElementNode","resolveDomElement","onResolved","label","candidate","animationDurationMs","modelOpen","animationDuration","transitionContentWidth","$floating","useTemplateRef","$reference","shallowRef","setReference","transformOriginMap","transformOrigin","_openBlock","_createElementBlock","zIndex","triggerMinWidth","menuWidth","triggerStyles","menuStyles","selectApp","tryOnScopeDispose","getCurrentScope","onScopeDispose","toString","isObject","noop","isIOS","getIsIOS","_b","directiveHooks","toRef","toRef$1","readonly","customRef","unrefElement","elRef","plain","defaultWindow","events","listeners","cleanups","cleanup","register","listener","options2","stopWatch","optionsClone","stop","_iOSWorkaround","window","ignore","capture","detectIframe","shouldListen","shouldIgnore","target2","vOnClickOutside","binding","resolveElement","checkOverflowScroll","ele","parent","preventDefault","rawEvent","_target","elInitialOverflow","useScrollLock","initialState","isLocked","stopTouchMoveListener","initialOverflow","lock","unlock","onScrollLock","isMounted","setOutsideHandler","closeOnScroll","onUnmounted","_createElementVNode","isEmpty","opt","not","fun","params","includes","query","filterOptions","search","customLabel","option","stripGroups","flattenOptions","filterGroups","groupLabel","group","groupOptions","flow","fns","multiselectMixin","normalizedSearch","selectedGroup","groupValues","optionsToAdd","spaceAbove","spaceBelow","pointerMixin","script","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","$props","$setup","$data","$options","$event","withKeys","withModifiers","withDirectives","vShow","Transition","showRequiredMark","normalizedLabel","multiselect","isOpened","isNotEmpty","isOptionsObject","optionsDropdown","useObjectOptions","placeholderProp","isOpen","dropdownRef","toggle","selectedLabel","selected","selectOption","currentTab","goToSection","tabId","inputRef","vModel","handleKeyPress","showPassword","computedType","togglePasswordVisibility","isValueCopy","focus","copyHandler","timeout","err","__expose","lastValidTime","handleTimeInput","handleTimeBlur","finalTime","handleTimeKeyDown","visible","showTimeout","show","useSlots","openPage","page","numberCodeForm","handleInput","inputValues","valueIndex","nextValueIndex","nextIndex","previousIndex","hasPreviousIndex","hasNextIndex","prevInput","checked","selectorRef","optionRefs","resizeObserver","setOptionRef","highlightStyle","isSelected","getOptionId","getSelectedIndex","getOptionLabel","getOptionBadge","hasBadge","badge","updateHighlight","select","onChange","popupOpened","popupRef","tabs","reactive","letter","changePopupState","handleClickOutside","currentItem","currentPos","isFirstItem","isLastItem","popperOptionRef"],"mappings":"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A;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAC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","x_google_ignoreList":[0,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,168,169,175]}
|