@servicetitan/anvil2 1.44.2 → 1.45.0
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/CHANGELOG.md +14 -7
- package/README.md +0 -8
- package/dist/Alert-BNGvfMAV.js +112 -0
- package/dist/Alert-BNGvfMAV.js.map +1 -0
- package/dist/{Alert-C3WoRkeN.css → Alert.css} +0 -1
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-ButSjdLn.js → Announcement-CoheCP1i.js} +23 -28
- package/dist/Announcement-CoheCP1i.js.map +1 -0
- package/dist/Announcement.css +0 -1
- package/dist/Announcement.js +1 -1
- package/dist/{HammerProvider-vt3DkcCZ-06BeBrPu.js → AnvilProvider-C_qRQnE6.js} +22 -12
- package/dist/AnvilProvider-C_qRQnE6.js.map +1 -0
- package/dist/AnvilProvider.js +1 -1
- package/dist/{Avatar-DREZJN2K.js → Avatar-CyGjhToG.js} +3 -10
- package/dist/Avatar-CyGjhToG.js.map +1 -0
- package/dist/{Avatar-C7cbRTCt-DCvzmr2C.js → Avatar-D07f9NH_.js} +9 -9
- package/dist/Avatar-D07f9NH_.js.map +1 -0
- package/dist/{Avatar-C7cbRTCt.css → Avatar.css} +0 -1
- package/dist/Avatar.js +2 -1
- package/dist/Avatar.js.map +1 -1
- package/dist/{Badge-7aZfE-LH.js → Badge-DCA9mfc2.js} +5 -12
- package/dist/Badge-DCA9mfc2.js.map +1 -0
- package/dist/Badge.css +0 -1
- package/dist/Badge.js +1 -1
- package/dist/{Breadcrumbs-BMbkH9hL-BUjQksuj.js → Breadcrumbs-C4_PEolS.js} +7 -7
- package/dist/Breadcrumbs-C4_PEolS.js.map +1 -0
- package/dist/{Breadcrumbs-BMbkH9hL.css → Breadcrumbs.css} +0 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Button-BaHFf1AT-BQy-PFB5.js → Button-BxFXQ0-n.js} +31 -16
- package/dist/Button-BxFXQ0-n.js.map +1 -0
- package/dist/Button.css +59 -46
- package/dist/Button.js +1 -1
- package/dist/Button.module-pUNSKoVC.js +25 -0
- package/dist/Button.module-pUNSKoVC.js.map +1 -0
- package/dist/ButtonCompound-BF2Q6gGX.js +64 -0
- package/dist/ButtonCompound-BF2Q6gGX.js.map +1 -0
- package/dist/ButtonCompound.js +1 -1
- package/dist/{ButtonLink-5qlX0uZx-b9H7MGhk.js → ButtonLink-CXv65WVV.js} +35 -17
- package/dist/ButtonLink-CXv65WVV.js.map +1 -0
- package/dist/ButtonLink.js +1 -1
- package/dist/{ButtonToggle-Bm4KRl3o-B1-LbfjY.js → ButtonToggle-pSwg7NvT.js} +26 -5
- package/dist/ButtonToggle-pSwg7NvT.js.map +1 -0
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-BvftKznl-D4_xp9Rv.js → Calendar-Dq_of5A3.js} +324 -255
- package/dist/Calendar-Dq_of5A3.js.map +1 -0
- package/dist/{Calendar-BvftKznl.css → Calendar.css} +0 -1
- package/dist/Calendar.js +1 -1
- package/dist/{Card-ZknG-yim-7W6rYSFV.js → Card-vTYeSkxt.js} +3 -3
- package/dist/Card-vTYeSkxt.js.map +1 -0
- package/dist/{Card-ZknG-yim.css → Card.css} +0 -1
- package/dist/Card.js +1 -1
- package/dist/{Checkbox-zg8LVvB6.js → Checkbox-3y2d9mBd.js} +4 -10
- package/dist/Checkbox-3y2d9mBd.js.map +1 -0
- package/dist/{Checkbox-DyHm7Ntt-DYw5QL3l.js → Checkbox-BiOzGpgJ.js} +9 -11
- package/dist/Checkbox-BiOzGpgJ.js.map +1 -0
- package/dist/Checkbox.js +2 -1
- package/dist/Checkbox.js.map +1 -1
- package/dist/{Chip-MbBEXeAm-DmAcwPRJ.js → Chip-Bz-vlQ4D.js} +37 -10
- package/dist/Chip-Bz-vlQ4D.js.map +1 -0
- package/dist/{Chip-MbBEXeAm.css → Chip.css} +0 -1
- package/dist/Chip.js +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DateField-Bqsnpt8S.js → DateField-B2mnasH5.js} +42 -45
- package/dist/DateField-B2mnasH5.js.map +1 -0
- package/dist/DateField.js +1 -1
- package/dist/DateFieldRange-DPbyzuHb.js +557 -0
- package/dist/DateFieldRange-DPbyzuHb.js.map +1 -0
- package/dist/DateFieldRange.js +1 -1
- package/dist/DateFieldSingle-CfAJDcx9.js +450 -0
- package/dist/DateFieldSingle-CfAJDcx9.js.map +1 -0
- package/dist/DateFieldSingle.js +1 -1
- package/dist/DateFieldYearless-ydxcsmRV.js +266 -0
- package/dist/DateFieldYearless-ydxcsmRV.js.map +1 -0
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DaysOfTheWeek-ImBPjEvl.js → DaysOfTheWeek-BYvE9QK5.js} +9 -28
- package/dist/DaysOfTheWeek-BYvE9QK5.js.map +1 -0
- package/dist/DaysOfTheWeek.css +0 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Details-DVg0EOkv.js → Details-CF8DImjw.js} +34 -100
- package/dist/Details-CF8DImjw.js.map +1 -0
- package/dist/Details.css +0 -1
- package/dist/Details.js +1 -1
- package/dist/{Dialog-BR6f-XRH.js → Dialog-DpH2Qvbd.js} +71 -166
- package/dist/Dialog-DpH2Qvbd.js.map +1 -0
- package/dist/Dialog.css +29 -30
- package/dist/Dialog.js +1 -1
- package/dist/{Divider-B0xGfyWE-f5-ThMiS.js → Divider-DJe8kLf2.js} +3 -3
- package/dist/Divider-DJe8kLf2.js.map +1 -0
- package/dist/{Divider-B0xGfyWE.css → Divider.css} +0 -1
- package/dist/Divider.js +1 -1
- package/dist/Dnd.js +1 -1
- package/dist/DndSort.css +0 -1
- package/dist/DndSort.js +5545 -1
- package/dist/DndSort.js.map +1 -1
- package/dist/Drawer-DI_k6W2k.js +377 -0
- package/dist/Drawer-DI_k6W2k.js.map +1 -0
- package/dist/Drawer.css +161 -0
- package/dist/Drawer.js +1 -1
- package/dist/{floating-ui.react-BFNinq1w.js → DrawerContext-DboTgTmo.js} +958 -908
- package/dist/DrawerContext-DboTgTmo.js.map +1 -0
- package/dist/{EditCard-B_n1uFkv.js → EditCard-WKzZ2XCz.js} +12 -19
- package/dist/EditCard-WKzZ2XCz.js.map +1 -0
- package/dist/EditCard.css +0 -1
- package/dist/EditCard.js +1 -1
- package/dist/FieldLabel-BfnCXung.js +87 -0
- package/dist/FieldLabel-BfnCXung.js.map +1 -0
- package/dist/FieldLabel.css +60 -0
- package/dist/FieldLabel.js +1 -1
- package/dist/{FieldMessage-Bobp105T-DYhStLY4.js → FieldMessage-B7uQ8vmr.js} +3 -3
- package/dist/FieldMessage-B7uQ8vmr.js.map +1 -0
- package/dist/{FieldMessage-Bobp105T.css → FieldMessage.css} +0 -2
- package/dist/FieldMessage.js +1 -1
- package/dist/{Flex-CiK7uNUu-BfxHG4L0.js → Flex-BdQMekvA.js} +3 -3
- package/dist/Flex-BdQMekvA.js.map +1 -0
- package/dist/{Flex-CiK7uNUu.css → Flex.css} +0 -1
- package/dist/Flex.js +1 -1
- package/dist/{Grid-DFAd8mTe.js → Grid-MGUC698u.js} +48 -30
- package/dist/Grid-MGUC698u.js.map +1 -0
- package/dist/Grid.css +0 -1
- package/dist/Grid.js +1 -1
- package/dist/{Helper-h7k80qls-DHPFHTvI.js → Helper-BkIDJqgA.js} +4 -4
- package/dist/Helper-BkIDJqgA.js.map +1 -0
- package/dist/{Helper-h7k80qls.css → Helper.css} +0 -1
- package/dist/{Icon-B6HmlQiR-BxQkO3X5.js → Icon-D8SPKeO4.js} +3 -3
- package/dist/Icon-D8SPKeO4.js.map +1 -0
- package/dist/{Icon-B6HmlQiR.css → Icon.css} +0 -1
- package/dist/Icon.js +1 -1
- package/dist/{InputMask-BuO8lNAB-DdxdO5Jw.js → InputMask-O_qi1p_3.js} +88 -67
- package/dist/InputMask-O_qi1p_3.js.map +1 -0
- package/dist/InputMask.js +1 -1
- package/dist/Link-eRsLWPaQ.js +103 -0
- package/dist/Link-eRsLWPaQ.js.map +1 -0
- package/dist/{Link-MiffPrW9.css → Link.css} +0 -1
- package/dist/Link.js +1 -1
- package/dist/Link.module-Cf17JWod.js +12 -0
- package/dist/Link.module-Cf17JWod.js.map +1 -0
- package/dist/LinkButton.js +27 -39
- package/dist/LinkButton.js.map +1 -1
- package/dist/{ListView-DVPhWDCM.js → ListView-jR2ZkBB7.js} +151 -234
- package/dist/ListView-jR2ZkBB7.js.map +1 -0
- package/dist/ListView.css +0 -1
- package/dist/ListView.js +1 -1
- package/dist/{ListView.module-MVsNF0X0-MVsNF0X0.js → ListView.module-MVsNF0X0.js} +1 -1
- package/dist/ListView.module-MVsNF0X0.js.map +1 -0
- package/dist/{Listbox-B-WUuj-_-BWWeWtLW.js → Listbox-CUhMbFm2.js} +67 -50
- package/dist/Listbox-CUhMbFm2.js.map +1 -0
- package/dist/Listbox.css +0 -1
- package/dist/Listbox.js +1 -1
- package/dist/{Listbox.module-DcBE8Zmo-DcBE8Zmo.js → Listbox.module-DcBE8Zmo.js} +1 -1
- package/dist/Listbox.module-DcBE8Zmo.js.map +1 -0
- package/dist/{LocalizationContext-UsmB5mnR-BUIYgNp2.js → LocalizationContext-UsmB5mnR.js} +2 -2
- package/dist/LocalizationContext-UsmB5mnR.js.map +1 -0
- package/dist/{LocalizationProvider-VtRAfGBT-Bo8XuFoE.js → LocalizationProvider-DEZyjW5d.js} +3 -3
- package/dist/LocalizationProvider-DEZyjW5d.js.map +1 -0
- package/dist/LocalizationProvider.d.ts +0 -4
- package/dist/LocalizationProvider.js +2 -2
- package/dist/{Menu-TtVJnSrA-yBYichuJ.js → Menu-C8we5CHP.js} +52 -22
- package/dist/Menu-C8we5CHP.js.map +1 -0
- package/dist/{Menu-TtVJnSrA.css → Menu.css} +0 -2
- package/dist/Menu.js +1 -1
- package/dist/{NumberField-C9lMsPMD.js → NumberField-1_gRsWT4.js} +158 -175
- package/dist/NumberField-1_gRsWT4.js.map +1 -0
- package/dist/NumberField.css +7 -8
- package/dist/NumberField.js +1 -1
- package/dist/{Overflow-CFClqFVC.css → Overflow.css} +0 -2
- package/dist/Overflow.js +400 -1
- package/dist/Overflow.js.map +1 -1
- package/dist/{Page-CGAylFKz.js → Page-CY6QRlvb.js} +14 -14
- package/dist/Page-CY6QRlvb.js.map +1 -0
- package/dist/Page.js +1 -1
- package/dist/{Pagination-DU_qvFRR.js → Pagination-ta8a2cJN.js} +29 -30
- package/dist/Pagination-ta8a2cJN.js.map +1 -0
- package/dist/Pagination.css +28 -28
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-CU2cGVD8-Casl3vM1.js → Popover-r26xMIfm.js} +260 -229
- package/dist/Popover-r26xMIfm.js.map +1 -0
- package/dist/{Popover-CU2cGVD8.css → Popover.css} +0 -2
- package/dist/Popover.js +1 -1
- package/dist/{PortalProvider-9lXkQ0xY-BKoGegS1.js → PortalProvider-9lXkQ0xY.js} +2 -2
- package/dist/PortalProvider-9lXkQ0xY.js.map +1 -0
- package/dist/PortalProvider.d.ts +0 -4
- package/dist/PortalProvider.js +1 -1
- package/dist/ProgressBar-BnXuQ6Bx.js +130 -0
- package/dist/ProgressBar-BnXuQ6Bx.js.map +1 -0
- package/dist/ProgressBar.css +89 -0
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-DnOuBPi_.js → Radio-CwmRUIzo.js} +4 -10
- package/dist/Radio-CwmRUIzo.js.map +1 -0
- package/dist/Radio.js +2 -1
- package/dist/Radio.js.map +1 -1
- package/dist/{Radio-DQ_VQFGZ-SdFBlDnE.js → RadioGroup-BNCWIHOG.js} +84 -105
- package/dist/RadioGroup-BNCWIHOG.js.map +1 -0
- package/dist/{Radio-DQ_VQFGZ.css → RadioGroup.css} +0 -1
- package/dist/{SearchField-BGPqpnVd.js → SearchField-BKXkoWPs.js} +21 -27
- package/dist/SearchField-BKXkoWPs.js.map +1 -0
- package/dist/SearchField.css +0 -1
- package/dist/SearchField.js +1 -1
- package/dist/{SegmentedControl-DY1PSYmd.js → SegmentedControl-CsjjV1Dz.js} +32 -80
- package/dist/SegmentedControl-CsjjV1Dz.js.map +1 -0
- package/dist/SegmentedControl.css +0 -1
- package/dist/SegmentedControl.js +1 -1
- package/dist/{SelectCard-LSAl_7Lh-BYtfe9PC.js → SelectCard-DOGCG0zr.js} +17 -17
- package/dist/SelectCard-DOGCG0zr.js.map +1 -0
- package/dist/{SelectCard-LSAl_7Lh.css → SelectCard.css} +0 -1
- package/dist/SelectCard.js +1 -1
- package/dist/{SelectTrigger-C2w-flvK.js → SelectTrigger-BMo0e-F7.js} +31 -44
- package/dist/SelectTrigger-BMo0e-F7.js.map +1 -0
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-Dj154EN4-BtTvR-Nh.js → SelectTriggerBase-BMMxnXrw.js} +54 -40
- package/dist/SelectTriggerBase-BMMxnXrw.js.map +1 -0
- package/dist/{SelectTriggerBase-Dj154EN4.css → SelectTriggerBase.css} +68 -54
- package/dist/{SideNav-Bh_pVeEw.js → SideNav-CBAzYyML.js} +71 -154
- package/dist/SideNav-CBAzYyML.js.map +1 -0
- package/dist/SideNav.css +0 -1
- package/dist/SideNav.js +1 -1
- package/dist/Skeleton.css +0 -1
- package/dist/Skeleton.d.ts +0 -4
- package/dist/Skeleton.js +190 -1
- package/dist/Skeleton.js.map +1 -1
- package/dist/{Spinner-DliJVzdW-BQlZEj4V.js → Spinner-wmO8Epw0.js} +2 -2
- package/dist/Spinner-wmO8Epw0.js.map +1 -0
- package/dist/{Spinner-DliJVzdW.css → Spinner.css} +0 -1
- package/dist/Spinner.js +1 -1
- package/dist/{SrOnly-BsKDHetF-B93X65F1.js → SrOnly-CTsYSuby.js} +2 -2
- package/dist/SrOnly-CTsYSuby.js.map +1 -0
- package/dist/{SrOnly-BsKDHetF.css → SrOnly.css} +0 -1
- package/dist/SrOnly.js +1 -1
- package/dist/{Stepper-BtbDBIzz.js → Stepper-D-fOH9TF.js} +142 -326
- package/dist/Stepper-D-fOH9TF.js.map +1 -0
- package/dist/Stepper.css +43 -44
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-DAQFzi-X.js → Switch-C2ddZcr9.js} +22 -28
- package/dist/Switch-C2ddZcr9.js.map +1 -0
- package/dist/Switch.css +0 -1
- package/dist/Switch.js +1 -1
- package/dist/{Tab-BSC7e4rM.js → Tab-wNucMTgo.js} +42 -120
- package/dist/Tab-wNucMTgo.js.map +1 -0
- package/dist/Tab.css +0 -1
- package/dist/Tab.js +1 -1
- package/dist/{Text-CED_yrId-DsRYZw2-.js → Text-BqvcbXyp.js} +3 -3
- package/dist/Text-BqvcbXyp.js.map +1 -0
- package/dist/{Text-CED_yrId.css → Text.css} +0 -1
- package/dist/Text.js +1 -1
- package/dist/TextField-CwgE_JJU.js +13 -0
- package/dist/TextField-CwgE_JJU.js.map +1 -0
- package/dist/{TextField-DoPP1CQ--UWAOTYiv.js → TextField-DlsZEkS0.js} +29 -12
- package/dist/TextField-DlsZEkS0.js.map +1 -0
- package/dist/TextField.css +0 -1
- package/dist/TextField.js +1 -1
- package/dist/{TextField.module-EkKlj66e-EkKlj66e.js → TextField.module-EkKlj66e.js} +1 -1
- package/dist/TextField.module-EkKlj66e.js.map +1 -0
- package/dist/{Textarea-D2AAZ1L3.js → Textarea-DU-SpoDL.js} +38 -44
- package/dist/Textarea-DU-SpoDL.js.map +1 -0
- package/dist/Textarea.css +0 -1
- package/dist/Textarea.js +1 -1
- package/dist/{ThemeProvider-Q3ji6Rpx-DBXlAuQ8.js → ThemeProvider-Be3Pvtpz.js} +6 -8
- package/dist/ThemeProvider-Be3Pvtpz.js.map +1 -0
- package/dist/{ThemeProvider-Q3ji6Rpx.css → ThemeProvider.css} +0 -1
- package/dist/ThemeProvider.d.ts +0 -4
- package/dist/ThemeProvider.js +2 -1
- package/dist/ThemeProvider.js.map +1 -1
- package/dist/ThemeProviderContext-l52GohYT.js +8 -0
- package/dist/ThemeProviderContext-l52GohYT.js.map +1 -0
- package/dist/{TimeField-tA9uo4lK.js → TimeField-CfhyRfX9.js} +229 -215
- package/dist/TimeField-CfhyRfX9.js.map +1 -0
- package/dist/TimeField.css +0 -1
- package/dist/TimeField.d.ts +4 -0
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -1
- package/dist/Toast.js.map +1 -1
- package/dist/Toaster-BgjT0p8b.js +1124 -0
- package/dist/Toaster-BgjT0p8b.js.map +1 -0
- package/dist/{toast-BhV_Ask2.js → Toaster-CfC9wod0.js} +5 -7
- package/dist/Toaster-CfC9wod0.js.map +1 -0
- package/dist/Toaster.css +235 -0
- package/dist/{Toolbar-CSWhVSUM.js → Toolbar-DK7tXy_W.js} +163 -279
- package/dist/Toolbar-DK7tXy_W.js.map +1 -0
- package/dist/Toolbar.css +28 -19
- package/dist/Toolbar.js +1 -1
- package/dist/Tooltip-BI3Xs75X.js +730 -0
- package/dist/Tooltip-BI3Xs75X.js.map +1 -0
- package/dist/Tooltip.css +99 -0
- package/dist/Tooltip.js +1 -1
- package/dist/assets/icons/st/atlas_gradient.svg +1 -0
- package/dist/assets/icons/st/atlas_logo.svg +1 -0
- package/dist/assets/icons/st/atlas_simple.svg +1 -0
- package/dist/assets/icons/st.ts +3 -0
- package/dist/{check_circle-BGfigqq-.js → check_circle-Dja-C2lM.js} +2 -4
- package/dist/check_circle-Dja-C2lM.js.map +1 -0
- package/dist/{childrenToString-Bz9MqbHb-Bz9MqbHb.js → childrenToString-Bz9MqbHb.js} +1 -1
- package/dist/childrenToString-Bz9MqbHb.js.map +1 -0
- package/dist/components/Alert/Alert.d.ts +26 -8
- package/dist/components/Announcement/Announcement.d.ts +26 -8
- package/dist/components/Avatar/Avatar.d.ts +2 -48
- package/dist/components/Avatar/AvatarGroup.d.ts +39 -0
- package/dist/components/Avatar/index.d.ts +1 -0
- package/dist/components/Avatar/internal/Avatar.d.ts +58 -0
- package/dist/components/Avatar/internal/AvatarBase.d.ts +75 -0
- package/dist/components/Badge/Badge.d.ts +31 -8
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +23 -14
- package/dist/components/Breadcrumbs/BreadcrumbsLink.d.ts +23 -0
- package/dist/components/Breadcrumbs/index.d.ts +1 -0
- package/dist/components/Button/Button.d.ts +43 -9
- package/dist/components/ButtonCompound/ButtonCompound.d.ts +20 -7
- package/dist/components/ButtonLink/ButtonLink.d.ts +66 -15
- package/dist/components/ButtonToggle/ButtonToggle.d.ts +46 -11
- package/dist/components/Calendar/Calendar.d.ts +149 -36
- package/dist/components/Calendar/CalendarContext.d.ts +153 -0
- package/dist/components/Calendar/CalendarMonth.d.ts +9 -0
- package/dist/components/Calendar/CalendarMonthButton.d.ts +16 -0
- package/dist/components/Calendar/CalendarNextButton.d.ts +11 -0
- package/dist/components/Calendar/CalendarNowButton.d.ts +20 -0
- package/dist/components/Calendar/CalendarPrevButton.d.ts +11 -0
- package/dist/components/Calendar/CalendarYearButton.d.ts +15 -0
- package/dist/components/Calendar/index.d.ts +9 -2
- package/dist/components/Calendar/internal/CalendarDay.d.ts +21 -0
- package/dist/components/Calendar/internal/CalendarMonthSelection.d.ts +25 -0
- package/dist/components/Calendar/internal/CalendarWeek.d.ts +28 -0
- package/dist/components/Calendar/internal/CalendarYearSelection.d.ts +25 -0
- package/dist/components/Calendar/internal/utils.d.ts +12 -0
- package/dist/components/Card/Card.d.ts +26 -16
- package/dist/components/Checkbox/Checkbox.d.ts +3 -29
- package/dist/components/Checkbox/CheckboxGroup.d.ts +53 -0
- package/dist/components/Checkbox/index.d.ts +2 -0
- package/dist/components/Checkbox/internal/Checkbox.d.ts +133 -0
- package/dist/components/Checkbox/types.d.ts +4 -0
- package/dist/components/Chip/Chip.d.ts +4 -3
- package/dist/components/Chip/internal/Chip.d.ts +108 -0
- package/dist/components/Combobox/Combobox.d.ts +11 -283
- package/dist/components/Combobox/ComboboxContent.d.ts +59 -0
- package/dist/components/Combobox/ComboboxEmpty.d.ts +26 -0
- package/dist/components/Combobox/ComboboxItem.d.ts +34 -0
- package/dist/components/Combobox/ComboboxList.d.ts +31 -0
- package/dist/components/Combobox/ComboboxMockData.d.ts +44 -0
- package/dist/components/Combobox/ComboboxSelect.d.ts +59 -0
- package/dist/components/Combobox/ComboboxTrigger.d.ts +43 -0
- package/dist/components/Combobox/ComboboxTypes.d.ts +374 -0
- package/dist/components/Combobox/index.d.ts +10 -3
- package/dist/components/Combobox/internal/ComboboxContext.d.ts +8 -0
- package/dist/components/Combobox/internal/ComboboxGroupContext.d.ts +8 -0
- package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacy.d.ts +131 -0
- package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyContent.d.ts +20 -0
- package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyEmpty.d.ts +5 -0
- package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyItem.d.ts +26 -0
- package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyList.d.ts +5 -0
- package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyMockData.d.ts +37 -0
- package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyTrigger.d.ts +21 -0
- package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyUtils.d.ts +38 -0
- package/dist/components/Combobox/internal/ComboboxLegacy/index.d.ts +7 -0
- package/dist/components/Combobox/internal/ComboboxMockData.d.ts +44 -0
- package/dist/components/Combobox/internal/ComboboxUtils.d.ts +74 -0
- package/dist/components/Combobox/internal/useGroups.d.ts +14 -0
- package/dist/components/Combobox/useInfiniteCombobox.d.ts +69 -1
- package/dist/components/DateField/DateField.d.ts +23 -61
- package/dist/components/DateField/internal/DateFieldLegacy/DateFieldLegacy.d.ts +37 -0
- package/dist/components/DateField/internal/DateFieldLegacy/index.d.ts +1 -0
- package/dist/components/DateField/internal/isoToDateFormat.d.ts +1 -0
- package/dist/components/DateField/types.d.ts +47 -0
- package/dist/components/DateFieldRange/DateFieldRange.d.ts +57 -6
- package/dist/components/DateFieldRange/internal/DateFieldRangeCalendar.d.ts +17 -0
- package/dist/components/DateFieldRange/internal/MaskedDateRangeInput.d.ts +41 -0
- package/dist/components/DateFieldRange/internal/maskito/dateRangePlaceholderMask.d.ts +18 -0
- package/dist/components/DateFieldRange/internal/useDateFieldRangeConversion.d.ts +29 -0
- package/dist/components/DateFieldRange/internal/useDateFieldRangeState.d.ts +70 -0
- package/dist/components/DateFieldRange/internal/utils.d.ts +17 -0
- package/dist/components/DateFieldSingle/DateFieldSingle.d.ts +55 -5
- package/dist/components/DateFieldSingle/index.d.ts +1 -0
- package/dist/components/DateFieldSingle/internal/DateFieldSingleCalendar.d.ts +15 -0
- package/dist/components/DateFieldSingle/internal/MaskedDateInput.d.ts +35 -0
- package/dist/components/DateFieldSingle/internal/constants.d.ts +3 -0
- package/dist/components/DateFieldSingle/internal/maskito/datePlaceholderMask.d.ts +16 -0
- package/dist/components/DateFieldSingle/internal/maskito/makeZeroShortcutPreprocessor.d.ts +10 -0
- package/dist/components/DateFieldSingle/internal/useDateFieldOrchestration.d.ts +17 -0
- package/dist/components/DateFieldSingle/internal/useDateFieldSingleConversion.d.ts +45 -0
- package/dist/components/DateFieldSingle/internal/useDateFieldSingleState.d.ts +49 -0
- package/dist/components/DateFieldSingle/internal/utils.d.ts +14 -0
- package/dist/components/DateFieldSingle/types.d.ts +2 -0
- package/dist/components/DateFieldYearless/DateFieldYearless.d.ts +61 -36
- package/dist/components/DateFieldYearless/index.d.ts +1 -0
- package/dist/components/DateFieldYearless/internal/MaskedYearlessDateInput.d.ts +35 -0
- package/dist/components/DateFieldYearless/internal/maskito/yearlessDatePlaceholderMask.d.ts +16 -0
- package/dist/components/DateFieldYearless/internal/utils.d.ts +12 -0
- package/dist/components/DateFieldYearless/types.d.ts +7 -0
- package/dist/components/DaysOfTheWeek/DaysOfTheWeek.d.ts +117 -20
- package/dist/components/Details/Details.d.ts +30 -58
- package/dist/components/Details/DetailsContent.d.ts +41 -0
- package/dist/components/Details/DetailsSummary.d.ts +24 -0
- package/dist/components/Details/index.d.ts +2 -0
- package/dist/components/Details/internal/DetailsArrow.d.ts +20 -0
- package/dist/components/Details/internal/DetailsContext.d.ts +8 -0
- package/dist/components/Dialog/Dialog.d.ts +97 -109
- package/dist/components/Dialog/DialogCancelButton.d.ts +21 -0
- package/dist/components/Dialog/DialogContent.d.ts +22 -0
- package/dist/components/Dialog/DialogFooter.d.ts +33 -0
- package/dist/components/Dialog/DialogHeader.d.ts +21 -0
- package/dist/components/Dialog/index.d.ts +6 -2
- package/dist/components/Dialog/internal/DialogContext.d.ts +8 -0
- package/dist/components/Dialog/internal/useDialogContext.d.ts +1 -0
- package/dist/components/Divider/Divider.d.ts +34 -7
- package/dist/components/Dnd/DndHandle.d.ts +26 -0
- package/dist/components/Dnd/DndHandleButton.d.ts +32 -0
- package/dist/components/Dnd/DndSortLine.d.ts +39 -0
- package/dist/components/Dnd/DndZone.d.ts +55 -0
- package/dist/components/Dnd/index.d.ts +7 -1
- package/dist/components/DndSort/DndSort.d.ts +40 -0
- package/dist/components/DndSort/DndSortCard.d.ts +63 -0
- package/dist/components/DndSort/DndSortZone.d.ts +130 -0
- package/dist/components/DndSort/index.d.ts +12 -2
- package/dist/components/DndSort/internal/DndSortContext.d.ts +21 -0
- package/dist/components/DndSort/internal/DndSortItem.d.ts +30 -0
- package/dist/components/DndSort/internal/DndSortOverlay.d.ts +5 -0
- package/dist/components/DndSort/internal/DndSortZoneContext.d.ts +24 -0
- package/dist/components/DndSort/internal/announcements.d.ts +8 -0
- package/dist/components/DndSort/internal/collisionDetection.d.ts +3 -0
- package/dist/components/DndSort/internal/getNextCoordinates.d.ts +17 -0
- package/dist/components/DndSort/internal/test-utils.d.ts +24 -0
- package/dist/components/DndSort/internal/utils.d.ts +55 -0
- package/dist/components/DndSort/types.d.ts +55 -0
- package/dist/components/Drawer/Drawer.d.ts +63 -118
- package/dist/components/Drawer/DrawerCancelButton.d.ts +25 -0
- package/dist/components/Drawer/DrawerContent.d.ts +26 -0
- package/dist/components/Drawer/DrawerFooter.d.ts +37 -0
- package/dist/components/Drawer/DrawerHeader.d.ts +23 -0
- package/dist/components/Drawer/index.d.ts +6 -2
- package/dist/components/Drawer/internal/DrawerContext.d.ts +15 -0
- package/dist/components/Drawer/internal/useDrawerContext.d.ts +7 -0
- package/dist/components/EditCard/EditCard.d.ts +71 -14
- package/dist/components/FieldLabel/FieldLabel.d.ts +62 -4
- package/dist/components/FieldLabel/internal/FieldLabelMoreInfoIcon.d.ts +12 -0
- package/dist/components/FieldMessage/FieldMessage.d.ts +48 -12
- package/dist/components/Flex/Flex.d.ts +46 -61
- package/dist/components/Flex/internal/FlexSpecificProps.d.ts +34 -0
- package/dist/components/Grid/Grid.d.ts +55 -27
- package/dist/components/Grid/index.d.ts +1 -0
- package/dist/components/Grid/internal/GridItem.d.ts +27 -0
- package/dist/components/Grid/internal/GridSpecificProps.d.ts +28 -0
- package/dist/components/Icon/Icon.d.ts +42 -15
- package/dist/components/InputMask/InputMask.d.ts +109 -48
- package/dist/components/InputMask/internal/constants.d.ts +1 -0
- package/dist/components/InputMask/internal/utils.d.ts +41 -0
- package/dist/components/Link/Link.d.ts +5 -17
- package/dist/components/Link/index.d.ts +1 -0
- package/dist/components/Link/internal/Link.d.ts +57 -0
- package/dist/components/Link/internal/LinkHeadless.d.ts +24 -0
- package/dist/components/Link/useLinkStyles.d.ts +17 -0
- package/dist/components/LinkButton/LinkButton.d.ts +5 -31
- package/dist/components/ListView/ListView.d.ts +17 -46
- package/dist/components/ListView/ListViewOption.d.ts +38 -0
- package/dist/components/ListView/ListViewOptionCell.d.ts +12 -0
- package/dist/components/ListView/index.d.ts +3 -1
- package/dist/components/ListView/internal/ListViewContext.d.ts +28 -0
- package/dist/components/ListView/internal/types.d.ts +52 -0
- package/dist/components/ListView/internal/utils.d.ts +4 -0
- package/dist/components/Listbox/Listbox.d.ts +97 -61
- package/dist/components/Listbox/ListboxOption.d.ts +53 -0
- package/dist/components/Listbox/ListboxOptionGroup.d.ts +32 -0
- package/dist/components/Listbox/index.d.ts +3 -1
- package/dist/components/Listbox/internal/ListboxContext.d.ts +38 -0
- package/dist/components/Listbox/internal/ListboxOptionGroupContext.d.ts +5 -0
- package/dist/components/Listbox/internal/utils.d.ts +4 -0
- package/dist/components/Menu/Menu.d.ts +20 -46
- package/dist/components/Menu/MenuItem.d.ts +57 -0
- package/dist/components/Menu/index.d.ts +2 -0
- package/dist/components/Menu/internal/MenuContext.d.ts +15 -0
- package/dist/components/Menu/internal/MenuLegacy/MenuLegacy.d.ts +50 -0
- package/dist/components/Menu/internal/MenuLegacy/MenuLegacyContext.d.ts +9 -0
- package/dist/components/Menu/internal/MenuLegacy/MenuLegacyItem.d.ts +12 -0
- package/dist/components/Menu/internal/MenuLegacy/index.d.ts +3 -0
- package/dist/components/Menu/internal/MenuNested.d.ts +42 -0
- package/dist/components/Menu/types.d.ts +72 -0
- package/dist/components/NumberField/NumberField.d.ts +48 -7
- package/dist/components/Overflow/Overflow.d.ts +51 -84
- package/dist/components/Overflow/OverflowText.d.ts +82 -0
- package/dist/components/Overflow/index.d.ts +31 -2
- package/dist/components/Page/Page.d.ts +7 -7
- package/dist/components/Page/PageFooter.d.ts +1 -1
- package/dist/components/Page/PageHeader.d.ts +1 -1
- package/dist/components/Pagination/Pagination.d.ts +4 -6
- package/dist/components/Pagination/internal/Pagination.d.ts +55 -0
- package/dist/components/Pagination/internal/PaginationItem.d.ts +52 -0
- package/dist/components/Pagination/internal/PaginationItemsPerPageMenu.d.ts +37 -0
- package/dist/components/Pagination/internal/PaginationList.d.ts +9 -0
- package/dist/components/Pagination/internal/PaginationOverflowMenu.d.ts +61 -0
- package/dist/components/Pagination/internal/PaginationTotalCount.d.ts +6 -0
- package/dist/components/Popover/Popover.d.ts +146 -134
- package/dist/components/Popover/PopoverButton.d.ts +34 -0
- package/dist/components/Popover/PopoverClose.d.ts +33 -0
- package/dist/components/Popover/PopoverContent.d.ts +46 -0
- package/dist/components/Popover/PopoverTrigger.d.ts +63 -0
- package/dist/components/Popover/index.d.ts +4 -0
- package/dist/components/Popover/internal/PopoverContext.d.ts +40 -0
- package/dist/components/Popover/internal/PopoverLegacy/PopoverLegacy.d.ts +8 -0
- package/dist/components/Popover/internal/PopoverLegacy/PopoverLegacyButton.d.ts +3 -0
- package/dist/components/Popover/internal/PopoverLegacy/PopoverLegacyClose.d.ts +3 -0
- package/dist/components/Popover/internal/PopoverLegacy/PopoverLegacyContent.d.ts +3 -0
- package/dist/components/Popover/internal/PopoverLegacy/PopoverLegacyTrigger.d.ts +9 -0
- package/dist/components/Popover/internal/PopoverLegacy/index.d.ts +8 -0
- package/dist/components/Popover/internal/PopoverLegacy/usePopoverLegacy.d.ts +121 -0
- package/dist/components/Popover/internal/PopoverLegacy/usePopoverLegacyContext.d.ts +79 -0
- package/dist/components/Popover/internal/compareElements.d.ts +1 -0
- package/dist/components/Popover/internal/usePopoverContext.d.ts +50 -0
- package/dist/components/ProgressBar/ProgressBar.d.ts +59 -14
- package/dist/components/Radio/Radio.d.ts +3 -44
- package/dist/components/Radio/RadioGroup.d.ts +61 -0
- package/dist/components/Radio/index.d.ts +2 -0
- package/dist/components/Radio/internal/Radio.d.ts +145 -0
- package/dist/components/Radio/types.d.ts +13 -0
- package/dist/components/SearchField/SearchField.d.ts +33 -8
- package/dist/components/SegmentedControl/SegmentedControl.d.ts +54 -49
- package/dist/components/SegmentedControl/SegmentedControlSegment.d.ts +69 -0
- package/dist/components/SegmentedControl/index.d.ts +1 -0
- package/dist/components/SegmentedControl/internal/SegmentedControlContext.d.ts +24 -0
- package/dist/components/SelectCard/SelectCard.d.ts +45 -16
- package/dist/components/SelectCard/SelectCardGroup.d.ts +24 -13
- package/dist/components/SelectCard/index.d.ts +1 -2
- package/dist/components/SelectCard/internal/SelectCardProvider.d.ts +83 -0
- package/dist/components/SelectTrigger/SelectTrigger.d.ts +22 -8
- package/dist/components/SelectTrigger/internal/SelectTriggerBase.d.ts +40 -0
- package/dist/components/SideNav/SideNav.d.ts +32 -114
- package/dist/components/SideNav/SideNavCollapsible.d.ts +73 -0
- package/dist/components/SideNav/SideNavGroup.d.ts +37 -0
- package/dist/components/SideNav/SideNavLink.d.ts +46 -0
- package/dist/components/SideNav/index.d.ts +4 -1
- package/dist/components/SideNav/internal/SideNavLink.d.ts +74 -0
- package/dist/components/SideNav/internal/utils.d.ts +16 -0
- package/dist/components/Skeleton/SkeletonCircle.d.ts +41 -0
- package/dist/components/Skeleton/SkeletonPill.d.ts +41 -0
- package/dist/components/Skeleton/SkeletonRectangle.d.ts +42 -0
- package/dist/components/Skeleton/SkeletonText.d.ts +52 -0
- package/dist/components/Skeleton/index.d.ts +16 -2
- package/dist/components/Spinner/Spinner.d.ts +11 -6
- package/dist/components/SrOnly/SrOnly.d.ts +3 -7
- package/dist/components/Stepper/Stepper.d.ts +119 -239
- package/dist/components/Stepper/StepperFinalPanel.d.ts +30 -0
- package/dist/components/Stepper/StepperList.d.ts +28 -0
- package/dist/components/Stepper/StepperNextButton.d.ts +73 -0
- package/dist/components/Stepper/StepperPanel.d.ts +52 -0
- package/dist/components/Stepper/StepperPrevButton.d.ts +44 -0
- package/dist/components/Stepper/StepperStep.d.ts +58 -0
- package/dist/components/Stepper/index.d.ts +6 -0
- package/dist/components/Stepper/internal/StepperContext.d.ts +15 -0
- package/dist/components/Switch/Switch.d.ts +47 -11
- package/dist/components/Tab/Tab.d.ts +22 -88
- package/dist/components/Tab/TabButton.d.ts +54 -0
- package/dist/components/Tab/TabList.d.ts +26 -0
- package/dist/components/Tab/TabPanel.d.ts +34 -0
- package/dist/components/Tab/index.d.ts +3 -0
- package/dist/components/Tab/internal/TabContext.d.ts +15 -0
- package/dist/components/Text/Text.d.ts +7 -17
- package/dist/components/Text/types.d.ts +93 -0
- package/dist/components/TextField/TextField.d.ts +4 -5
- package/dist/components/TextField/internal/TextField.d.ts +20 -0
- package/dist/components/Textarea/Textarea.d.ts +52 -19
- package/dist/components/Textarea/index.d.ts +1 -2
- package/dist/components/Textarea/types.d.ts +35 -0
- package/dist/components/TimeField/TimeField.d.ts +55 -18
- package/dist/components/TimeField/index.d.ts +2 -0
- package/dist/components/TimeField/internal/MaskedTimeInput.d.ts +87 -0
- package/dist/components/TimeField/internal/constants.d.ts +25 -0
- package/dist/components/TimeField/internal/maskito/timePlaceholderMask.d.ts +28 -0
- package/dist/components/TimeField/internal/types.d.ts +27 -0
- package/dist/components/TimeField/internal/utils/timeFormatting.d.ts +10 -0
- package/dist/components/TimeField/internal/utils/timeOptions.d.ts +24 -0
- package/dist/components/TimeField/internal/utils/timeParsing.d.ts +43 -0
- package/dist/components/TimeField/internal/utils/timeRounding.d.ts +58 -0
- package/dist/components/TimeField/internal/utils/timeValidation.d.ts +28 -0
- package/dist/components/Toast/Toaster.d.ts +4 -4
- package/dist/components/Toast/internal/Toast.d.ts +106 -0
- package/dist/components/Toast/internal/ToastProvider.d.ts +90 -0
- package/dist/components/Toast/internal/ToastStack.d.ts +81 -0
- package/dist/components/Toast/internal/Toaster.d.ts +108 -0
- package/dist/components/Toast/internal/ToasterPopover.d.ts +19 -0
- package/dist/components/Toast/internal/addOrUpdateToastHeight.d.ts +8 -0
- package/dist/components/Toast/internal/constants.d.ts +4 -0
- package/dist/components/Toast/internal/types.d.ts +18 -0
- package/dist/components/Toast/internal/useCloseToast.d.ts +7 -0
- package/dist/components/Toast/internal/useHotkeyFocus.d.ts +25 -0
- package/dist/components/Toast/internal/useShowMoreButtonPositionStyles.d.ts +6 -0
- package/dist/components/Toast/internal/useToastPositionStyles.d.ts +7 -0
- package/dist/components/Toast/internal/useToasts.d.ts +6 -0
- package/dist/components/Toast/toast.d.ts +113 -38
- package/dist/components/Toolbar/Toolbar.d.ts +99 -141
- package/dist/components/Toolbar/ToolbarButton.d.ts +41 -0
- package/dist/components/Toolbar/ToolbarButtonLink.d.ts +43 -0
- package/dist/components/Toolbar/ToolbarButtonToggle.d.ts +37 -0
- package/dist/components/Toolbar/ToolbarSelect.d.ts +108 -0
- package/dist/components/Toolbar/index.d.ts +6 -1
- package/dist/components/Toolbar/internal/ToolbarItemOverflowContext.d.ts +19 -0
- package/dist/components/Toolbar/internal/ToolbarItemWrapper.d.ts +33 -0
- package/dist/components/Toolbar/internal/ToolbarOverflowContext.d.ts +35 -0
- package/dist/components/Toolbar/internal/ToolbarOverflowMenu.d.ts +29 -0
- package/dist/components/Toolbar/internal/utils/accessibility.d.ts +21 -0
- package/dist/components/Toolbar/internal/utils/test.d.ts +29 -0
- package/dist/components/Toolbar/types.d.ts +48 -0
- package/dist/components/Tooltip/Tooltip.d.ts +73 -71
- package/dist/components/Tooltip/TooltipContent.d.ts +26 -0
- package/dist/components/Tooltip/TooltipTrigger.d.ts +30 -0
- package/dist/components/Tooltip/index.d.ts +2 -0
- package/dist/components/Tooltip/internal/TooltipContext.d.ts +92 -0
- package/dist/components/Tooltip/internal/TooltipLegacy/TooltipLegacy.d.ts +6 -0
- package/dist/components/Tooltip/internal/TooltipLegacy/TooltipLegacyContent.d.ts +3 -0
- package/dist/components/Tooltip/internal/TooltipLegacy/TooltipLegacyTrigger.d.ts +5 -0
- package/dist/components/Tooltip/internal/TooltipLegacy/index.d.ts +6 -0
- package/dist/components/Tooltip/internal/TooltipLegacy/useTooltipLegacy.d.ts +70 -0
- package/dist/components/Tooltip/internal/TooltipLegacy/useTooltipLegacyContext.d.ts +58 -0
- package/dist/components/Tooltip/internal/isNonInteractiveTrigger.d.ts +1 -0
- package/dist/components/Tooltip/internal/useTooltipContext.d.ts +47 -0
- package/dist/extends-Bg2s_OKl.js.map +1 -1
- package/dist/getActiveElement-BcSyVE7S.js +25 -0
- package/dist/getActiveElement-BcSyVE7S.js.map +1 -0
- package/dist/getKeyboardFocusableElements-QqcABz0D.js.map +1 -1
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/useAccessibleColor/index.d.ts +1 -1
- package/dist/hooks/useAccessibleColor/useAccessibleColor.d.ts +38 -0
- package/dist/hooks/useBreakpoint/index.d.ts +1 -1
- package/dist/hooks/useBreakpoint/useBreakpoint.d.ts +49 -0
- package/dist/hooks/useMergeRefs/index.d.ts +1 -1
- package/dist/hooks/useMergeRefs/useMergeRefs.d.ts +17 -0
- package/dist/hooks/usePrefersColorScheme/index.d.ts +1 -1
- package/dist/hooks/usePrefersColorScheme/usePrefersColorScheme.d.ts +16 -0
- package/dist/hooks/useSwipe/index.d.ts +1 -1
- package/dist/hooks/useSwipe/useSwipe.d.ts +32 -0
- package/dist/{Checkbox.module-DZ58p15b-BUsQC1lW.js → indeterminate_check_box-Bg24oeHy.js} +8 -8
- package/dist/indeterminate_check_box-Bg24oeHy.js.map +1 -0
- package/dist/{Checkbox.css → indeterminate_check_box.css} +0 -1
- package/dist/{index-CKfiQx8n-4nziUo7G.js → index-CqdP5W00.js} +5 -5
- package/dist/index-CqdP5W00.js.map +1 -0
- package/dist/{ProgressBar-BRvB-bD4.css → index.css} +0 -641
- package/dist/index.d.ts +1 -0
- package/dist/{index.esm-dyoPQhi6.js → index.esm-D889iexm.js} +115 -115
- package/dist/index.esm-D889iexm.js.map +1 -0
- package/dist/index.js +507 -72
- package/dist/index.js.map +1 -1
- package/dist/{index-CKfiQx8n.css → index2.css} +0 -1
- package/dist/info-CYpG6tcI.js +6 -0
- package/dist/info-CYpG6tcI.js.map +1 -0
- package/dist/internal/components/Helper/Helper.d.ts +18 -0
- package/dist/internal/components/Helper/index.d.ts +1 -0
- package/dist/internal/components/Label/Label.d.ts +77 -0
- package/dist/internal/components/Label/index.d.ts +2 -0
- package/dist/internal/components/index.d.ts +2 -0
- package/dist/internal/functions/childrenToString.d.ts +25 -0
- package/dist/internal/functions/getActiveElement.d.ts +1 -0
- package/dist/internal/functions/getInitial.d.ts +16 -0
- package/dist/internal/functions/getKeyboardFocusableElements.d.ts +25 -0
- package/dist/internal/functions/index.d.ts +9 -0
- package/dist/internal/functions/kebabize.d.ts +16 -0
- package/dist/internal/functions/mapOrder.d.ts +1 -0
- package/dist/internal/functions/safePopover.d.ts +2 -0
- package/dist/internal/functions/sizeToToken.d.ts +2 -0
- package/dist/internal/functions/supportsPopover.d.ts +1 -0
- package/dist/internal/hooks/index.d.ts +17 -0
- package/dist/internal/hooks/useDialogScrollLock/index.d.ts +1 -0
- package/dist/internal/hooks/useDialogScrollLock/useDialogScrollLock.d.ts +40 -0
- package/dist/internal/hooks/useDialogTransitionStates/index.d.ts +1 -0
- package/dist/internal/hooks/useDialogTransitionStates/useDialogTransitionStates.d.ts +32 -0
- package/dist/internal/hooks/useFocusWithin/index.d.ts +1 -0
- package/dist/internal/hooks/useFocusWithin/useFocusWithin.d.ts +33 -0
- package/dist/internal/hooks/useIntersectionObserver/index.d.ts +1 -0
- package/dist/internal/hooks/useIntersectionObserver/useIntersectionObserver.d.ts +67 -0
- package/dist/internal/hooks/useIsScrollable/index.d.ts +1 -0
- package/dist/internal/hooks/useIsScrollable/useIsScrollable.d.ts +6 -0
- package/dist/internal/hooks/useKeyboardFocusables/index.d.ts +1 -0
- package/dist/internal/hooks/useKeyboardFocusables/useKeyboardFocusables.d.ts +54 -0
- package/dist/internal/hooks/useLayoutPropsUtil/index.d.ts +1 -0
- package/dist/internal/hooks/useLayoutPropsUtil/useLayoutPropsUtil.d.ts +56 -0
- package/dist/internal/hooks/useNumberField/index.d.ts +1 -0
- package/dist/internal/hooks/useNumberField/internal/useNumberFieldInputMode.d.ts +24 -0
- package/dist/internal/hooks/useNumberField/internal/useNumberFieldKeys.d.ts +43 -0
- package/dist/internal/hooks/useNumberField/useNumberField.d.ts +118 -0
- package/dist/internal/hooks/useOnClickOutside/index.d.ts +1 -0
- package/dist/internal/hooks/useOnClickOutside/useOnClickOutside.d.ts +34 -0
- package/dist/internal/hooks/useOpenCloseTransitionStates/index.d.ts +1 -0
- package/dist/internal/hooks/useOpenCloseTransitionStates/useOpenCloseTransitionStates.d.ts +51 -0
- package/dist/internal/hooks/useOptionallyControlledState/index.d.ts +1 -0
- package/dist/internal/hooks/useOptionallyControlledState/useOptionallyControlledState.d.ts +59 -0
- package/dist/internal/hooks/usePlatform/index.d.ts +1 -0
- package/dist/internal/hooks/usePlatform/usePlatform.d.ts +65 -0
- package/dist/internal/hooks/usePopoverCloseDelayWorkaround/index.d.ts +1 -0
- package/dist/internal/hooks/usePopoverCloseDelayWorkaround/usePopoverCloseDelayWorkaround.d.ts +1 -0
- package/dist/internal/hooks/usePopoverSupport/index.d.ts +1 -0
- package/dist/internal/hooks/usePopoverSupport/usePopoverSupport.d.ts +1 -0
- package/dist/internal/hooks/usePopoverTransitionStates/index.d.ts +1 -0
- package/dist/internal/hooks/usePopoverTransitionStates/usePopoverTransitionStates.d.ts +25 -0
- package/dist/internal/hooks/usePrevious/index.d.ts +1 -0
- package/dist/internal/hooks/usePrevious/usePrevious.d.ts +1 -0
- package/dist/internal/hooks/useTypeAhead/index.d.ts +1 -0
- package/dist/internal/hooks/useTypeAhead/useTypeAhead.d.ts +15 -0
- package/dist/internal/types/index.d.ts +1 -0
- package/dist/internal/types/props.d.ts +7 -0
- package/dist/internal/utils/index.d.ts +1 -0
- package/dist/makeZeroShortcutPreprocessor-CxsiGTRW.js +47 -0
- package/dist/makeZeroShortcutPreprocessor-CxsiGTRW.js.map +1 -0
- package/dist/providers/AnvilProvider/AnvilProvider.d.ts +29 -6
- package/dist/providers/LocalizationProvider/LocalizationContext.d.ts +6 -0
- package/dist/providers/LocalizationProvider/LocalizationProvider.d.ts +17 -0
- package/dist/providers/LocalizationProvider/LocalizationStoryWrapper.d.ts +6 -0
- package/dist/providers/LocalizationProvider/index.d.ts +2 -1
- package/dist/providers/LocalizationProvider/useTranslations.d.ts +4 -0
- package/dist/providers/PortalProvider/PortalProvider.d.ts +10 -0
- package/dist/providers/PortalProvider/index.d.ts +1 -1
- package/dist/providers/ThemeProvider/ThemeProvider.d.ts +14 -4
- package/dist/providers/ThemeProvider/index.d.ts +7 -1
- package/dist/providers/ThemeProvider/internal/ThemeProviderContext.d.ts +6 -0
- package/dist/providers/ThemeProvider/useTheme.d.ts +1 -0
- package/dist/types/MaxLengthCounterProps.d.ts +8 -0
- package/dist/types/ianaZones.d.ts +2 -0
- package/dist/types/index.d.ts +4 -1
- package/dist/types/locales.d.ts +3 -0
- package/dist/types/props.d.ts +66 -0
- package/dist/{useAccessibleColor-Dc6B_M-Z-BYKjkGRg.js → useAccessibleColor-BYKjkGRg.js} +1 -1
- package/dist/useAccessibleColor-BYKjkGRg.js.map +1 -0
- package/dist/useAccessibleColor.js +1 -1
- package/dist/{useBreakpoint-7QkBkSeP-Cv5fnZxs.js → useBreakpoint-Cv5fnZxs.js} +1 -1
- package/dist/useBreakpoint-Cv5fnZxs.js.map +1 -0
- package/dist/useBreakpoint.js +1 -1
- package/dist/useDateFieldOrchestration-Cqa7dxtr.js +138 -0
- package/dist/useDateFieldOrchestration-Cqa7dxtr.js.map +1 -0
- package/dist/useDialogTransitionStates-2NaE_noq.js +64 -0
- package/dist/useDialogTransitionStates-2NaE_noq.js.map +1 -0
- package/dist/{useFocusWithin-Cxz14Zyz-DEudRcSI.js → useFocusWithin-BhU7hoAD.js} +2 -10
- package/dist/useFocusWithin-BhU7hoAD.js.map +1 -0
- package/dist/{Combobox-BOpe_NUu.js → useInfiniteCombobox-BN2uGhBh.js} +1791 -1847
- package/dist/useInfiniteCombobox-BN2uGhBh.js.map +1 -0
- package/dist/{Combobox.css → useInfiniteCombobox.css} +102 -45
- package/dist/{useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js → useLayoutPropsUtil-DjD5IMh0.js} +2 -2
- package/dist/useLayoutPropsUtil-DjD5IMh0.js.map +1 -0
- package/dist/{useMergeRefs-Bde85AWI-Bde85AWI.js → useMergeRefs-Bde85AWI.js} +1 -1
- package/dist/useMergeRefs-Bde85AWI.js.map +1 -0
- package/dist/useMergeRefs.js +1 -1
- package/dist/useOnClickOutside-BHEWMLa9.js +170 -0
- package/dist/useOnClickOutside-BHEWMLa9.js.map +1 -0
- package/dist/{useOptionallyControlledState-DbDuos5L-DbDuos5L.js → useOptionallyControlledState-DbDuos5L.js} +1 -1
- package/dist/useOptionallyControlledState-DbDuos5L.js.map +1 -0
- package/dist/{usePopoverCloseDelayWorkaround-BZcjPkvT-BZcjPkvT.js → usePopoverCloseDelayWorkaround-BZcjPkvT.js} +1 -1
- package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT.js.map +1 -0
- package/dist/{usePopoverSupport-B9Lsqryr-CYJxXiun.js → usePopoverSupport-DIjjfodl.js} +2 -2
- package/dist/usePopoverSupport-DIjjfodl.js.map +1 -0
- package/dist/{usePrefersColorScheme-_hT7dK7_-_hT7dK7_.js → usePrefersColorScheme-_hT7dK7_.js} +1 -1
- package/dist/usePrefersColorScheme-_hT7dK7_.js.map +1 -0
- package/dist/usePrefersColorScheme.js +1 -1
- package/dist/usePrevious-Bvq-5auG.js +12 -0
- package/dist/usePrevious-Bvq-5auG.js.map +1 -0
- package/dist/{useSwipe-CULmVQEk-CULmVQEk.js → useSwipe-CULmVQEk.js} +1 -1
- package/dist/useSwipe-CULmVQEk.js.map +1 -0
- package/dist/useSwipe.js +1 -1
- package/dist/useTheme-B4i6a3bM.js +9 -0
- package/dist/useTheme-B4i6a3bM.js.map +1 -0
- package/package.json +29 -4
- package/dist/Alert-C3WoRkeN-D_6Yf63F.js +0 -98
- package/dist/Alert-C3WoRkeN-D_6Yf63F.js.map +0 -1
- package/dist/Alert-DipY5OlC.js +0 -23
- package/dist/Alert-DipY5OlC.js.map +0 -1
- package/dist/Announcement-ButSjdLn.js.map +0 -1
- package/dist/AnvilProvider-BLYCqIbb.js +0 -16
- package/dist/AnvilProvider-BLYCqIbb.js.map +0 -1
- package/dist/Avatar-C7cbRTCt-DCvzmr2C.js.map +0 -1
- package/dist/Avatar-DREZJN2K.js.map +0 -1
- package/dist/Badge-7aZfE-LH.js.map +0 -1
- package/dist/Breadcrumbs-BMbkH9hL-BUjQksuj.js.map +0 -1
- package/dist/Breadcrumbs-fthw3qaL.js +0 -36
- package/dist/Breadcrumbs-fthw3qaL.js.map +0 -1
- package/dist/Button-BaHFf1AT-BQy-PFB5.js.map +0 -1
- package/dist/Button-DMQKV2sV.js +0 -27
- package/dist/Button-DMQKV2sV.js.map +0 -1
- package/dist/Button.module-BqTaW8HK-BqTaW8HK.js +0 -25
- package/dist/Button.module-BqTaW8HK-BqTaW8HK.js.map +0 -1
- package/dist/ButtonCompound-Cs2A5X-Z-Dl3InVab.js +0 -49
- package/dist/ButtonCompound-Cs2A5X-Z-Dl3InVab.js.map +0 -1
- package/dist/ButtonCompound-DGuF0zzT.js +0 -25
- package/dist/ButtonCompound-DGuF0zzT.js.map +0 -1
- package/dist/ButtonLink-5qlX0uZx-b9H7MGhk.js.map +0 -1
- package/dist/ButtonLink-B0NJuVk5.js +0 -28
- package/dist/ButtonLink-B0NJuVk5.js.map +0 -1
- package/dist/ButtonToggle-Bm4KRl3o-B1-LbfjY.js.map +0 -1
- package/dist/ButtonToggle-CKVyEODc.js +0 -27
- package/dist/ButtonToggle-CKVyEODc.js.map +0 -1
- package/dist/Calendar-BvftKznl-D4_xp9Rv.js.map +0 -1
- package/dist/Calendar-DdOR9T_K.js +0 -130
- package/dist/Calendar-DdOR9T_K.js.map +0 -1
- package/dist/Card-U2IJPk8B.js +0 -11
- package/dist/Card-U2IJPk8B.js.map +0 -1
- package/dist/Card-ZknG-yim-7W6rYSFV.js.map +0 -1
- package/dist/Checkbox-DyHm7Ntt-DYw5QL3l.js.map +0 -1
- package/dist/Checkbox-zg8LVvB6.js.map +0 -1
- package/dist/Checkbox.module-DZ58p15b-BUsQC1lW.js.map +0 -1
- package/dist/Chip-DXQiqF8k.js +0 -34
- package/dist/Chip-DXQiqF8k.js.map +0 -1
- package/dist/Chip-MbBEXeAm-DmAcwPRJ.js.map +0 -1
- package/dist/Combobox-BOpe_NUu.js.map +0 -1
- package/dist/DateField-Bqsnpt8S.js.map +0 -1
- package/dist/DateFieldRange-Cax7Kl9A.js +0 -22
- package/dist/DateFieldRange-Cax7Kl9A.js.map +0 -1
- package/dist/DateFieldSingle-bMX770gU.js +0 -22
- package/dist/DateFieldSingle-bMX770gU.js.map +0 -1
- package/dist/DateFieldYearless-ClNYTBK_.js +0 -22
- package/dist/DateFieldYearless-ClNYTBK_.js.map +0 -1
- package/dist/DateFieldYearless-pejtv7-x-DBHpW83U.js +0 -1373
- package/dist/DateFieldYearless-pejtv7-x-DBHpW83U.js.map +0 -1
- package/dist/DaysOfTheWeek-ImBPjEvl.js.map +0 -1
- package/dist/Details-DVg0EOkv.js.map +0 -1
- package/dist/Dialog-BR6f-XRH.js.map +0 -1
- package/dist/Divider-B0xGfyWE-f5-ThMiS.js.map +0 -1
- package/dist/Divider-azRKjITG.js +0 -13
- package/dist/Divider-azRKjITG.js.map +0 -1
- package/dist/DndSort-Cl0FCNQm.js +0 -5546
- package/dist/DndSort-Cl0FCNQm.js.map +0 -1
- package/dist/Drawer-0ayAWgAA.js +0 -142
- package/dist/Drawer-0ayAWgAA.js.map +0 -1
- package/dist/EditCard-B_n1uFkv.js.map +0 -1
- package/dist/FieldLabel-DWl5qsRY.js +0 -13
- package/dist/FieldLabel-DWl5qsRY.js.map +0 -1
- package/dist/FieldMessage-Bobp105T-DYhStLY4.js.map +0 -1
- package/dist/FieldMessage-DkJ0K5s-.js +0 -13
- package/dist/FieldMessage-DkJ0K5s-.js.map +0 -1
- package/dist/Flex-CiK7uNUu-BfxHG4L0.js.map +0 -1
- package/dist/Flex-Ln6PmaDl.js +0 -11
- package/dist/Flex-Ln6PmaDl.js.map +0 -1
- package/dist/Grid-CMcDeSYT.js +0 -33
- package/dist/Grid-CMcDeSYT.js.map +0 -1
- package/dist/Grid-DFAd8mTe.js.map +0 -1
- package/dist/HammerProvider-vt3DkcCZ-06BeBrPu.js.map +0 -1
- package/dist/Helper-h7k80qls-DHPFHTvI.js.map +0 -1
- package/dist/Icon-B6HmlQiR-BxQkO3X5.js.map +0 -1
- package/dist/Icon-BgKqBmlj.js +0 -13
- package/dist/Icon-BgKqBmlj.js.map +0 -1
- package/dist/InputMask-BOUlnmiF.js +0 -30
- package/dist/InputMask-BOUlnmiF.js.map +0 -1
- package/dist/InputMask-BuO8lNAB-DdxdO5Jw.js.map +0 -1
- package/dist/Link-C4N_cV3i.js +0 -45
- package/dist/Link-C4N_cV3i.js.map +0 -1
- package/dist/Link-MiffPrW9-Cx1zYWSF.js +0 -67
- package/dist/Link-MiffPrW9-Cx1zYWSF.js.map +0 -1
- package/dist/ListView-DVPhWDCM.js.map +0 -1
- package/dist/ListView.module-MVsNF0X0-MVsNF0X0.js.map +0 -1
- package/dist/Listbox-B-WUuj-_-BWWeWtLW.js.map +0 -1
- package/dist/Listbox-Di6OS1Fk.js +0 -67
- package/dist/Listbox-Di6OS1Fk.js.map +0 -1
- package/dist/Listbox.module-DcBE8Zmo-DcBE8Zmo.js.map +0 -1
- package/dist/LocalizationContext-UsmB5mnR-BUIYgNp2.js.map +0 -1
- package/dist/LocalizationProvider-VtRAfGBT-Bo8XuFoE.js.map +0 -1
- package/dist/Menu-DHCOMJx2.js +0 -60
- package/dist/Menu-DHCOMJx2.js.map +0 -1
- package/dist/Menu-TtVJnSrA-yBYichuJ.js.map +0 -1
- package/dist/NumberField-C9lMsPMD.js.map +0 -1
- package/dist/Overflow-CFClqFVC-BKqOBCan.js +0 -393
- package/dist/Overflow-CFClqFVC-BKqOBCan.js.map +0 -1
- package/dist/Overflow-w-3_04fS.js +0 -69
- package/dist/Overflow-w-3_04fS.js.map +0 -1
- package/dist/Page-CGAylFKz.js.map +0 -1
- package/dist/Pagination-DU_qvFRR.js.map +0 -1
- package/dist/Popover-BPiqdyu1.js +0 -135
- package/dist/Popover-BPiqdyu1.js.map +0 -1
- package/dist/Popover-CU2cGVD8-Casl3vM1.js.map +0 -1
- package/dist/PortalProvider-9lXkQ0xY-BKoGegS1.js.map +0 -1
- package/dist/ProgressBar-BRvB-bD4-DppwBrFg.js +0 -2616
- package/dist/ProgressBar-BRvB-bD4-DppwBrFg.js.map +0 -1
- package/dist/ProgressBar-lPKNTz6i.js +0 -13
- package/dist/ProgressBar-lPKNTz6i.js.map +0 -1
- package/dist/Radio-DQ_VQFGZ-SdFBlDnE.js.map +0 -1
- package/dist/Radio-DnOuBPi_.js.map +0 -1
- package/dist/SearchField-BGPqpnVd.js.map +0 -1
- package/dist/SegmentedControl-DY1PSYmd.js.map +0 -1
- package/dist/SelectCard-LSAl_7Lh-BYtfe9PC.js.map +0 -1
- package/dist/SelectCardGroup-u_QKdeRZ.js +0 -49
- package/dist/SelectCardGroup-u_QKdeRZ.js.map +0 -1
- package/dist/SelectTrigger-C2w-flvK.js.map +0 -1
- package/dist/SelectTrigger.css +0 -16
- package/dist/SelectTriggerBase-Dj154EN4-BtTvR-Nh.js.map +0 -1
- package/dist/SideNav-Bh_pVeEw.js.map +0 -1
- package/dist/Skeleton-COxTdwjO.js +0 -398
- package/dist/Skeleton-COxTdwjO.js.map +0 -1
- package/dist/Spinner-C1r3COiQ.js +0 -13
- package/dist/Spinner-C1r3COiQ.js.map +0 -1
- package/dist/Spinner-DliJVzdW-BQlZEj4V.js.map +0 -1
- package/dist/SrOnly-BsKDHetF-B93X65F1.js.map +0 -1
- package/dist/SrOnly-C_I8eH4C.js +0 -9
- package/dist/SrOnly-C_I8eH4C.js.map +0 -1
- package/dist/Stepper-BtbDBIzz.js.map +0 -1
- package/dist/Switch-DAQFzi-X.js.map +0 -1
- package/dist/Tab-BSC7e4rM.js.map +0 -1
- package/dist/Text-35Ve4Uq0.js +0 -13
- package/dist/Text-35Ve4Uq0.js.map +0 -1
- package/dist/Text-CED_yrId-DsRYZw2-.js.map +0 -1
- package/dist/TextField-B364hxo8.js +0 -29
- package/dist/TextField-B364hxo8.js.map +0 -1
- package/dist/TextField-DoPP1CQ--UWAOTYiv.js.map +0 -1
- package/dist/TextField.module-EkKlj66e-EkKlj66e.js.map +0 -1
- package/dist/Textarea-D2AAZ1L3.js.map +0 -1
- package/dist/ThemeProvider-DwJqkbiU.js +0 -7
- package/dist/ThemeProvider-DwJqkbiU.js.map +0 -1
- package/dist/ThemeProvider-Q3ji6Rpx-DBXlAuQ8.js.map +0 -1
- package/dist/TimeField-tA9uo4lK.js.map +0 -1
- package/dist/Toolbar-CSWhVSUM.js.map +0 -1
- package/dist/Tooltip-C2HQDvYj.js +0 -73
- package/dist/Tooltip-C2HQDvYj.js.map +0 -1
- package/dist/check_circle-BGfigqq-.js.map +0 -1
- package/dist/childrenToString-Bz9MqbHb-Bz9MqbHb.js.map +0 -1
- package/dist/components/Skeleton/Skeleton.d.ts +0 -153
- package/dist/floating-ui.react-BFNinq1w.js.map +0 -1
- package/dist/hooks/useLinkStyles/index.d.ts +0 -1
- package/dist/index-CKfiQx8n-4nziUo7G.js.map +0 -1
- package/dist/index.esm-dyoPQhi6.js.map +0 -1
- package/dist/toast-BhV_Ask2.js.map +0 -1
- package/dist/useAccessibleColor-Dc6B_M-Z-BYKjkGRg.js.map +0 -1
- package/dist/useBreakpoint-7QkBkSeP-Cv5fnZxs.js.map +0 -1
- package/dist/useFocusWithin-Cxz14Zyz-DEudRcSI.js.map +0 -1
- package/dist/useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js.map +0 -1
- package/dist/useLinkStyles.d.ts +0 -6
- package/dist/useLinkStyles.js +0 -2
- package/dist/useLinkStyles.js.map +0 -1
- package/dist/useMergeRefs-Bde85AWI-Bde85AWI.js.map +0 -1
- package/dist/useOptionallyControlledState-DbDuos5L-DbDuos5L.js.map +0 -1
- package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT-BZcjPkvT.js.map +0 -1
- package/dist/usePopoverSupport-B9Lsqryr-CYJxXiun.js.map +0 -1
- package/dist/usePrefersColorScheme-_hT7dK7_-_hT7dK7_.js.map +0 -1
- package/dist/useSwipe-CULmVQEk-CULmVQEk.js.map +0 -1
- /package/dist/components/SideNav/{SideNavProvider.d.ts → internal/SideNavProvider.d.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm-dyoPQhi6.js","sources":["../../../node_modules/.pnpm/@maskito+core@3.10.0/node_modules/@maskito/core/index.esm.js","../../../node_modules/.pnpm/@maskito+kit@3.10.0_@maskito+core@3.10.0/node_modules/@maskito/kit/index.esm.js","../../../node_modules/.pnpm/@maskito+react@3.10.0_@maskito+core@3.10.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@maskito/react/index.esm.js"],"sourcesContent":["function getContentEditableSelection(element) {\n const { anchorOffset = 0, focusOffset = 0 } = element.ownerDocument.getSelection() || {};\n const from = Math.min(anchorOffset, focusOffset);\n const to = Math.max(anchorOffset, focusOffset);\n return [from, to];\n}\n\nfunction setContentEditableSelection(element, [from, to]) {\n var _a, _b, _c, _d;\n const document = element.ownerDocument;\n const range = document.createRange();\n range.setStart(element.firstChild || element, Math.min(from, (_b = (_a = element.textContent) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0));\n range.setEnd(element.lastChild || element, Math.min(to, (_d = (_c = element.textContent) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0));\n const selection = document.getSelection();\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(range);\n }\n}\n\nclass ContentEditableAdapter {\n constructor(element) {\n this.element = element;\n this.maxLength = Infinity;\n }\n get value() {\n return this.element.innerText.replace(/\\n\\n$/, '\\n');\n }\n set value(value) {\n // Setting into innerHTML of element with `white-space: pre;` style\n this.element.innerHTML = value.replace(/\\n$/, '\\n\\n');\n }\n get selectionStart() {\n return getContentEditableSelection(this.element)[0];\n }\n get selectionEnd() {\n return getContentEditableSelection(this.element)[1];\n }\n setSelectionRange(from, to) {\n setContentEditableSelection(this.element, [from !== null && from !== void 0 ? from : 0, to !== null && to !== void 0 ? to : 0]);\n }\n select() {\n this.setSelectionRange(0, this.value.length);\n }\n}\nfunction maskitoAdaptContentEditable(element) {\n const adapter = new ContentEditableAdapter(element);\n return new Proxy(element, {\n get(target, prop) {\n if (prop in adapter) {\n return adapter[prop];\n }\n const nativeProperty = target[prop];\n return typeof nativeProperty === 'function'\n ? nativeProperty.bind(target)\n : nativeProperty;\n },\n // eslint-disable-next-line @typescript-eslint/max-params\n set(target, prop, val, receiver) {\n return Reflect.set(prop in adapter ? adapter : target, prop, val, receiver);\n },\n });\n}\n\nconst MASKITO_DEFAULT_ELEMENT_PREDICATE = (e) => e.isContentEditable\n ? maskitoAdaptContentEditable(e)\n : e.querySelector('input,textarea') ||\n e;\n\nconst MASKITO_DEFAULT_OPTIONS = {\n mask: /^.*$/,\n preprocessors: [],\n postprocessors: [],\n plugins: [],\n overwriteMode: 'shift',\n};\n\nclass MaskHistory {\n constructor() {\n this.now = null;\n this.past = [];\n this.future = [];\n }\n undo() {\n const state = this.past.pop();\n if (state && this.now) {\n this.future.push(this.now);\n this.updateElement(state, 'historyUndo');\n }\n }\n redo() {\n const state = this.future.pop();\n if (state && this.now) {\n this.past.push(this.now);\n this.updateElement(state, 'historyRedo');\n }\n }\n updateHistory(state) {\n if (!this.now) {\n this.now = state;\n return;\n }\n const isValueChanged = this.now.value !== state.value;\n const isSelectionChanged = this.now.selection.some((item, index) => item !== state.selection[index]);\n if (!isValueChanged && !isSelectionChanged) {\n return;\n }\n if (isValueChanged) {\n this.past.push(this.now);\n this.future = [];\n }\n this.now = state;\n }\n updateElement(state, inputType) {\n this.now = state;\n this.updateElementState(state, { inputType, data: null });\n }\n}\n\nfunction areElementValuesEqual(sampleState, ...states) {\n return states.every(({ value }) => value === sampleState.value);\n}\nfunction areElementStatesEqual(sampleState, ...states) {\n return states.every(({ value, selection }) => value === sampleState.value &&\n selection[0] === sampleState.selection[0] &&\n selection[1] === sampleState.selection[1]);\n}\n\nfunction applyOverwriteMode({ value, selection }, newCharacters, mode) {\n const [from, to] = selection;\n const computedMode = typeof mode === 'function' ? mode({ value, selection }) : mode;\n return {\n value,\n selection: computedMode === 'replace'\n ? [from, Math.max(from + newCharacters.length, to)]\n : [from, to],\n };\n}\n\nfunction isFixedCharacter(char) {\n return typeof char === 'string';\n}\n\n// eslint-disable-next-line @typescript-eslint/max-params\nfunction getLeadingFixedCharacters(mask, validatedValuePart, newCharacter, initialElementState) {\n let leadingFixedCharacters = '';\n for (let i = validatedValuePart.length; i < mask.length; i++) {\n const charConstraint = mask[i] || '';\n const isInitiallyExisted = (initialElementState === null || initialElementState === void 0 ? void 0 : initialElementState.value[i]) === charConstraint;\n if (!isFixedCharacter(charConstraint) ||\n (charConstraint === newCharacter && !isInitiallyExisted)) {\n return leadingFixedCharacters;\n }\n leadingFixedCharacters += charConstraint;\n }\n return leadingFixedCharacters;\n}\n\nfunction validateValueWithMask(value, maskExpression) {\n if (Array.isArray(maskExpression)) {\n return (value.length === maskExpression.length &&\n Array.from(value).every((char, i) => {\n const charConstraint = maskExpression[i] || '';\n return isFixedCharacter(charConstraint)\n ? char === charConstraint\n : char.match(charConstraint);\n }));\n }\n return maskExpression.test(value);\n}\n\nfunction guessValidValueByPattern(elementState, mask, initialElementState) {\n let maskedFrom = null;\n let maskedTo = null;\n const maskedValue = Array.from(elementState.value).reduce((validatedCharacters, char, charIndex) => {\n const leadingCharacters = getLeadingFixedCharacters(mask, validatedCharacters, char, initialElementState);\n const newValidatedChars = validatedCharacters + leadingCharacters;\n const charConstraint = mask[newValidatedChars.length] || '';\n if (maskedFrom === null && charIndex >= elementState.selection[0]) {\n maskedFrom = newValidatedChars.length;\n }\n if (maskedTo === null && charIndex >= elementState.selection[1]) {\n maskedTo = newValidatedChars.length;\n }\n if (isFixedCharacter(charConstraint)) {\n return newValidatedChars + charConstraint;\n }\n if (char.match(charConstraint)) {\n return newValidatedChars + char;\n }\n return leadingCharacters.startsWith(char)\n ? newValidatedChars\n : validatedCharacters;\n }, '');\n const trailingFixedCharacters = getLeadingFixedCharacters(mask, maskedValue, '', initialElementState);\n return {\n value: validateValueWithMask(maskedValue + trailingFixedCharacters, mask)\n ? maskedValue + trailingFixedCharacters\n : maskedValue,\n selection: [maskedFrom !== null && maskedFrom !== void 0 ? maskedFrom : maskedValue.length, maskedTo !== null && maskedTo !== void 0 ? maskedTo : maskedValue.length],\n };\n}\n\nfunction guessValidValueByRegExp({ value, selection }, maskRegExp) {\n const [from, to] = selection;\n let newFrom = from;\n let newTo = to;\n const validatedValue = Array.from(value).reduce((validatedValuePart, char, i) => {\n const newPossibleValue = validatedValuePart + char;\n if (from === i) {\n newFrom = validatedValuePart.length;\n }\n if (to === i) {\n newTo = validatedValuePart.length;\n }\n return newPossibleValue.match(maskRegExp) ? newPossibleValue : validatedValuePart;\n }, '');\n return {\n value: validatedValue,\n selection: [\n Math.min(newFrom, validatedValue.length),\n Math.min(newTo, validatedValue.length),\n ],\n };\n}\n\nfunction calibrateValueByMask(elementState, mask, initialElementState = null) {\n if (validateValueWithMask(elementState.value, mask)) {\n return elementState;\n }\n const { value, selection } = Array.isArray(mask)\n ? guessValidValueByPattern(elementState, mask, initialElementState)\n : guessValidValueByRegExp(elementState, mask);\n return {\n selection,\n value: Array.isArray(mask) ? value.slice(0, mask.length) : value,\n };\n}\n\nfunction removeFixedMaskCharacters(initialElementState, mask) {\n if (!Array.isArray(mask)) {\n return initialElementState;\n }\n const [from, to] = initialElementState.selection;\n const selection = [];\n const unmaskedValue = Array.from(initialElementState.value).reduce((rawValue, char, i) => {\n const charConstraint = mask[i] || '';\n if (i === from) {\n selection.push(rawValue.length);\n }\n if (i === to) {\n selection.push(rawValue.length);\n }\n return isFixedCharacter(charConstraint) && charConstraint === char\n ? rawValue\n : rawValue + char;\n }, '');\n if (selection.length < 2) {\n selection.push(...new Array(2 - selection.length).fill(unmaskedValue.length));\n }\n return {\n value: unmaskedValue,\n selection: [selection[0], selection[1]],\n };\n}\n\nclass MaskModel {\n constructor(initialElementState, maskOptions) {\n this.maskOptions = maskOptions;\n this.unmaskInitialState = { value: '', selection: [0, 0] };\n this.value = '';\n this.selection = [0, 0];\n const expression = this.getMaskExpression(initialElementState);\n const { value, selection } = calibrateValueByMask(initialElementState, expression);\n this.unmaskInitialState = removeFixedMaskCharacters({ value, selection }, expression);\n this.value = value;\n this.selection = selection;\n }\n addCharacters(newCharacters) {\n const { value, selection, maskOptions } = this;\n const initialElementState = { value, selection };\n const { selection: [from, to], } = applyOverwriteMode(initialElementState, newCharacters, maskOptions.overwriteMode);\n const maskExpression = this.getMaskExpression({\n value: value.slice(0, from) + newCharacters + value.slice(to),\n selection: [from + newCharacters.length, from + newCharacters.length],\n });\n const [unmaskedFrom, unmaskedTo] = applyOverwriteMode(this.unmaskInitialState, newCharacters, maskOptions.overwriteMode).selection;\n const newUnmaskedLeadingValuePart = this.unmaskInitialState.value.slice(0, unmaskedFrom) + newCharacters;\n const newCaretIndex = newUnmaskedLeadingValuePart.length;\n const maskedElementState = calibrateValueByMask({\n value: newUnmaskedLeadingValuePart +\n this.unmaskInitialState.value.slice(unmaskedTo),\n selection: [newCaretIndex, newCaretIndex],\n }, maskExpression, initialElementState);\n const prevLeadingPart = value.slice(0, from);\n const newLeadingValuePart = calibrateValueByMask({\n value: newUnmaskedLeadingValuePart,\n selection: [newCaretIndex, newCaretIndex],\n }, maskExpression, initialElementState).value;\n const isInvalidCharsInsertion = prevLeadingPart === newLeadingValuePart ||\n newLeadingValuePart.length < prevLeadingPart.length;\n if (isInvalidCharsInsertion ||\n areElementStatesEqual(this, maskedElementState) // If typing new characters does not change value\n ) {\n throw new Error('Invalid mask value');\n }\n this.value = maskedElementState.value;\n this.selection = maskedElementState.selection;\n }\n deleteCharacters() {\n const [from, to] = this.selection;\n if (from === to || !to) {\n return;\n }\n const { value } = this;\n const maskExpression = this.getMaskExpression({\n value: value.slice(0, from) + value.slice(to),\n selection: [from, from],\n });\n const initialElementState = { value};\n const [unmaskedFrom, unmaskedTo] = this.unmaskInitialState.selection;\n const newUnmaskedValue = this.unmaskInitialState.value.slice(0, unmaskedFrom) +\n this.unmaskInitialState.value.slice(unmaskedTo);\n const maskedElementState = calibrateValueByMask({ value: newUnmaskedValue, selection: [unmaskedFrom, unmaskedFrom] }, maskExpression, initialElementState);\n this.value = maskedElementState.value;\n this.selection = maskedElementState.selection;\n }\n getMaskExpression(elementState) {\n const { mask } = this.maskOptions;\n return typeof mask === 'function' ? mask(elementState) : mask;\n }\n}\n\nclass EventListener {\n constructor(element) {\n this.element = element;\n this.listeners = [];\n }\n listen(eventType, fn, options) {\n const untypedFn = fn;\n this.element.addEventListener(eventType, untypedFn, options);\n this.listeners.push(() => this.element.removeEventListener(eventType, untypedFn, options));\n }\n destroy() {\n this.listeners.forEach((stopListen) => stopListen());\n }\n}\n\nconst HotkeyModifier = {\n CTRL: 1 << 0,\n ALT: 1 << 1,\n SHIFT: 1 << 2,\n META: 1 << 3,\n};\n// TODO add variants that can be processed correctly\nconst HotkeyCode = {\n Y: 89,\n Z: 90,\n};\n/**\n * Checks if the passed keyboard event match the required hotkey.\n *\n * @example\n * input.addEventListener('keydown', (event) => {\n * if (isHotkey(event, HotkeyModifier.CTRL | HotkeyModifier.SHIFT, HotkeyCode.Z)) {\n * // redo hotkey pressed\n * }\n * })\n *\n * @return will return `true` only if the {@link HotkeyCode} matches and only the necessary\n * {@link HotkeyModifier modifiers} have been pressed\n */\nfunction isHotkey(event, modifiers, hotkeyCode) {\n return (event.ctrlKey === !!(modifiers & HotkeyModifier.CTRL) &&\n event.altKey === !!(modifiers & HotkeyModifier.ALT) &&\n event.shiftKey === !!(modifiers & HotkeyModifier.SHIFT) &&\n event.metaKey === !!(modifiers & HotkeyModifier.META) &&\n /**\n * We intentionally use legacy {@link KeyboardEvent#keyCode `keyCode`} property. It is more\n * \"keyboard-layout\"-independent than {@link KeyboardEvent#key `key`} or {@link KeyboardEvent#code `code`} properties.\n * @see {@link https://github.com/taiga-family/maskito/issues/315 `KeyboardEvent#code` issue}\n */\n event.keyCode === hotkeyCode);\n}\n\nfunction isRedo(event) {\n return (isHotkey(event, HotkeyModifier.CTRL, HotkeyCode.Y) || // Windows\n isHotkey(event, HotkeyModifier.CTRL | HotkeyModifier.SHIFT, HotkeyCode.Z) || // Windows & Android\n isHotkey(event, HotkeyModifier.META | HotkeyModifier.SHIFT, HotkeyCode.Z) // macOS & iOS\n );\n}\nfunction isUndo(event) {\n return (isHotkey(event, HotkeyModifier.CTRL, HotkeyCode.Z) || // Windows & Android\n isHotkey(event, HotkeyModifier.META, HotkeyCode.Z) // macOS & iOS\n );\n}\n\n/**\n * Sets value to element, and dispatches input event\n * if you passed ELementState, it also sets selection range\n *\n * @example\n * maskitoUpdateElement(input, newValue);\n * maskitoUpdateElement(input, elementState);\n *\n * @see {@link https://github.com/taiga-family/maskito/issues/804 issue}\n *\n * @return void\n */\nfunction maskitoUpdateElement(element, valueOrElementState) {\n var _a;\n const initialValue = element.value;\n if (typeof valueOrElementState === 'string') {\n element.value = valueOrElementState;\n }\n else {\n const [from, to] = valueOrElementState.selection;\n element.value = valueOrElementState.value;\n if (element.matches(':focus')) {\n (_a = element.setSelectionRange) === null || _a === void 0 ? void 0 : _a.call(element, from, to);\n }\n }\n if (element.value !== initialValue) {\n element.dispatchEvent(new Event('input', \n /**\n * React handles this event only on bubbling phase\n *\n * here is the list of events that are processed in the capture stage, others are processed in the bubbling stage\n * https://github.com/facebook/react/blob/cb2439624f43c510007f65aea5c50a8bb97917e4/packages/react-dom-bindings/src/events/DOMPluginEventSystem.js#L222\n */\n { bubbles: true }));\n }\n}\n\nfunction getLineSelection({ value, selection }, isForward) {\n const [from, to] = selection;\n if (from !== to) {\n return [from, to];\n }\n const nearestBreak = isForward\n ? value.slice(from).indexOf('\\n') + 1 || value.length\n : value.slice(0, to).lastIndexOf('\\n') + 1;\n const selectFrom = isForward ? from : nearestBreak;\n const selectTo = isForward ? nearestBreak : to;\n return [selectFrom, selectTo];\n}\n\nfunction getNotEmptySelection({ value, selection }, isForward) {\n const [from, to] = selection;\n if (from !== to) {\n return [from, to];\n }\n const notEmptySelection = isForward ? [from, to + 1] : [from - 1, to];\n return notEmptySelection.map((x) => Math.min(Math.max(x, 0), value.length));\n}\n\nconst TRAILING_SPACES_REG = /\\s+$/g;\nconst LEADING_SPACES_REG = /^\\s+/g;\nconst SPACE_REG = /\\s/;\nfunction getWordSelection({ value, selection }, isForward) {\n const [from, to] = selection;\n if (from !== to) {\n return [from, to];\n }\n if (isForward) {\n const valueAfterSelectionStart = value.slice(from);\n const [leadingSpaces] = valueAfterSelectionStart.match(LEADING_SPACES_REG) || [\n '',\n ];\n const nearestWordEndIndex = valueAfterSelectionStart\n .trimStart()\n .search(SPACE_REG);\n return [\n from,\n nearestWordEndIndex !== -1\n ? from + leadingSpaces.length + nearestWordEndIndex\n : value.length,\n ];\n }\n const valueBeforeSelectionEnd = value.slice(0, to);\n const [trailingSpaces] = valueBeforeSelectionEnd.match(TRAILING_SPACES_REG) || [''];\n const selectedWordLength = valueBeforeSelectionEnd\n .trimEnd()\n .split('')\n .reverse()\n .findIndex((char) => SPACE_REG.exec(char));\n return [\n selectedWordLength !== -1 ? to - trailingSpaces.length - selectedWordLength : 0,\n to,\n ];\n}\n\n/* eslint-disable @typescript-eslint/no-restricted-types */\n/**\n * @internal\n */\nfunction maskitoPipe(processors = []) {\n return (initialData, ...readonlyArgs) => processors.reduce((data, fn) => (Object.assign(Object.assign({}, data), fn(data, ...readonlyArgs))), initialData);\n}\n\nfunction maskitoTransform(valueOrState, maskitoOptions) {\n const options = Object.assign(Object.assign({}, MASKITO_DEFAULT_OPTIONS), maskitoOptions);\n const preprocessor = maskitoPipe(options.preprocessors);\n const postprocessor = maskitoPipe(options.postprocessors);\n const initialElementState = typeof valueOrState === 'string'\n ? { value: valueOrState, selection: [0, 0] }\n : valueOrState;\n const { elementState } = preprocessor({ elementState: initialElementState, data: '' }, 'validation');\n const maskModel = new MaskModel(elementState, options);\n const { value, selection } = postprocessor(maskModel, initialElementState);\n return typeof valueOrState === 'string' ? value : { value, selection };\n}\n\n/**\n * All `input` events with `inputType=deleteContentBackward` always follows `beforeinput` event with the same `inputType`.\n * If `beforeinput[inputType=deleteContentBackward]` is prevented, subsequent `input[inputType=deleteContentBackward]` is prevented too.\n * There is an exception – Android devices with Microsoft SwiftKey Keyboard in Mobile Chrome.\n * These devices ignores `preventDefault` for `beforeinput` event if Backspace is pressed.\n * @see https://github.com/taiga-family/maskito/issues/2135#issuecomment-2980729647\n * ___\n * TODO: track Chromium bug report and delete this plugin after bug fix\n * https://issues.chromium.org/issues/40885402\n */\nfunction createBrokenDefaultPlugin() {\n return (element) => {\n const eventListener = new EventListener(element);\n let isVirtualAndroidKeyboard = false;\n let beforeinputEvent;\n let value = element.value;\n eventListener.listen('keydown', ({ key }) => {\n isVirtualAndroidKeyboard = key === 'Unidentified';\n });\n eventListener.listen('beforeinput', (event) => {\n beforeinputEvent = event;\n value = element.value;\n });\n eventListener.listen('input', (event) => {\n if (isVirtualAndroidKeyboard &&\n beforeinputEvent.defaultPrevented &&\n beforeinputEvent.inputType === 'deleteContentBackward' &&\n event.inputType === 'deleteContentBackward') {\n element.value = value;\n }\n }, { capture: true });\n return () => eventListener.destroy();\n };\n}\n\nfunction maskitoChangeEventPlugin() {\n return (element) => {\n if (element.isContentEditable) {\n return;\n }\n let value = element.value;\n const valueListener = () => {\n value = element.value;\n };\n const blurListener = () => {\n if (element.value !== value) {\n element.dispatchEvent(new Event('change', { bubbles: true }));\n }\n };\n element.addEventListener('focus', valueListener);\n element.addEventListener('change', valueListener);\n element.addEventListener('blur', blurListener);\n return () => {\n element.removeEventListener('focus', valueListener);\n element.removeEventListener('change', valueListener);\n element.removeEventListener('blur', blurListener);\n };\n };\n}\n\nconst SPACE = ' ';\n/**\n * 1. Android user (with G-board keyboard or similar) presses 1st space\n * ```\n * {type: \"beforeinput\", data: \" \", inputType: \"insertText\"}\n * ```\n * 2. User presses 2nd space\n * ```\n * // Android tries to delete previously inserted space\n * {type: \"beforeinput\", inputType: \"deleteContentBackward\"}\n * {type: \"beforeinput\", data: \". \", inputType: \"insertText\"}\n * ```\n * ---------\n * 1. MacOS user presses 1st space\n * ```\n * {type: \"beforeinput\", data: \" \", inputType: \"insertText\"}\n * ```\n * 2. User presses 2nd space\n * ```\n * // MacOS automatically run `element.setSelectionRange(indexBeforeSpace, indexAfterSpace)` and then\n * {type: \"beforeinput\", data: \". \", inputType: \"insertText\"}\n * ```\n * ---------\n * @see https://github.com/taiga-family/maskito/issues/2023\n */\nfunction createDoubleSpacePlugin() {\n let prevValue = '';\n let prevCaretIndex = 0;\n let prevEvent = null;\n let prevRejectedSpace = false;\n return (element) => {\n const eventListener = new EventListener(element);\n eventListener.listen('beforeinput', (event) => {\n var _a, _b;\n const { value, selectionStart, selectionEnd } = element;\n const rejectedSpace = (prevEvent === null || prevEvent === void 0 ? void 0 : prevEvent.inputType) === 'insertText' &&\n (prevEvent === null || prevEvent === void 0 ? void 0 : prevEvent.data) === SPACE &&\n !value.slice(0, Number(selectionEnd)).endsWith(SPACE);\n if (event.inputType === 'insertText' && event.data === `.${SPACE}`) {\n if ((prevEvent === null || prevEvent === void 0 ? void 0 : prevEvent.inputType) === 'deleteContentBackward' &&\n prevRejectedSpace) {\n // Android\n element.value = prevValue;\n (_a = element.setSelectionRange) === null || _a === void 0 ? void 0 : _a.call(element, prevCaretIndex, prevCaretIndex);\n }\n else if (rejectedSpace) {\n // Mac OS\n (_b = element.setSelectionRange) === null || _b === void 0 ? void 0 : _b.call(element, selectionStart, selectionStart);\n }\n }\n prevRejectedSpace = rejectedSpace;\n prevEvent = event;\n prevValue = value;\n prevCaretIndex = Number((rejectedSpace ? prevCaretIndex : selectionEnd) === value.length\n ? selectionEnd\n : selectionStart);\n });\n return () => eventListener.destroy();\n };\n}\n\nfunction maskitoInitialCalibrationPlugin(customOptions) {\n return (element, options) => {\n var _a, _b;\n const from = (_a = element.selectionStart) !== null && _a !== void 0 ? _a : 0;\n const to = (_b = element.selectionEnd) !== null && _b !== void 0 ? _b : 0;\n maskitoUpdateElement(element, {\n value: maskitoTransform(element.value, customOptions || options),\n selection: [from, to],\n });\n };\n}\n\nfunction maskitoStrictCompositionPlugin() {\n return (element, maskitoOptions) => {\n const listener = (event) => {\n var _a, _b;\n if (event.inputType !== 'insertCompositionText') {\n return;\n }\n const selection = [\n (_a = element.selectionStart) !== null && _a !== void 0 ? _a : 0,\n (_b = element.selectionEnd) !== null && _b !== void 0 ? _b : 0,\n ];\n const elementState = {\n selection,\n value: element.value,\n };\n const validatedState = maskitoTransform(elementState, maskitoOptions);\n if (!areElementStatesEqual(elementState, validatedState)) {\n event.preventDefault();\n maskitoUpdateElement(element, validatedState);\n }\n };\n element.addEventListener('input', listener);\n return () => element.removeEventListener('input', listener);\n };\n}\n\nconst BUILT_IN_PLUGINS = [createDoubleSpacePlugin(), createBrokenDefaultPlugin()];\nclass Maskito extends MaskHistory {\n constructor(element, maskitoOptions) {\n super();\n this.element = element;\n this.maskitoOptions = maskitoOptions;\n this.isTextArea = this.element.nodeName === 'TEXTAREA';\n this.eventListener = new EventListener(this.element);\n this.options = Object.assign(Object.assign({}, MASKITO_DEFAULT_OPTIONS), this.maskitoOptions);\n this.upcomingElementState = null;\n this.preprocessor = maskitoPipe(this.options.preprocessors);\n this.postprocessor = maskitoPipe(this.options.postprocessors);\n this.teardowns = this.options.plugins\n .concat(BUILT_IN_PLUGINS)\n .map((plugin) => plugin(this.element, this.options));\n this.updateHistory(this.elementState);\n this.eventListener.listen('keydown', (event) => {\n if (isRedo(event)) {\n event.preventDefault();\n return this.redo();\n }\n if (isUndo(event)) {\n event.preventDefault();\n return this.undo();\n }\n });\n this.eventListener.listen('beforeinput', (event) => {\n var _a, _b, _c;\n const isForward = event.inputType.includes('Forward');\n this.updateHistory(this.elementState);\n switch (event.inputType) {\n case 'deleteByCut':\n case 'deleteContentBackward':\n case 'deleteContentForward':\n return this.handleDelete({\n event,\n isForward,\n selection: getNotEmptySelection(this.elementState, isForward),\n });\n case 'deleteHardLineBackward':\n case 'deleteHardLineForward':\n case 'deleteSoftLineBackward':\n case 'deleteSoftLineForward':\n return this.handleDelete({\n event,\n isForward,\n selection: getLineSelection(this.elementState, isForward),\n force: true,\n });\n case 'deleteWordBackward':\n case 'deleteWordForward':\n return this.handleDelete({\n event,\n isForward,\n selection: getWordSelection(this.elementState, isForward),\n });\n case 'historyRedo':\n event.preventDefault();\n return this.redo();\n // historyUndo/historyRedo will not be triggered if value was modified programmatically\n case 'historyUndo':\n event.preventDefault();\n return this.undo();\n case 'insertCompositionText':\n return; // will be handled inside `compositionend` event\n case 'insertLineBreak':\n case 'insertParagraph':\n return this.handleEnter(event);\n case 'insertReplacementText':\n /**\n * According {@link https://www.w3.org/TR/input-events-2 W3C specification}:\n * > `insertReplacementText` – insert or replace existing text by means of a spell checker,\n * > auto-correct, writing suggestions or similar.\n * ___\n * Firefox emits `insertReplacementText` event for its suggestion/autofill and for spell checker.\n * However, it is impossible to detect which part of the textfield value is going to be replaced\n * (`selectionStart` and `selectionEnd` just equal to the last caret position).\n * ___\n * Chrome does not fire `beforeinput` event for its suggestion/autofill.\n * It emits only `input` event with `inputType` and `data` set to `undefined`.\n * ___\n * All these browser limitations make us to validate the result value later in `input` event.\n */\n return;\n case 'insertFromDrop':\n case 'insertFromPaste':\n case 'insertText':\n default:\n return this.handleInsert(event, (_c = (_a = event.data) !== null && _a !== void 0 ? _a : \n // `event.data` for `contentEditable` is always `null` for paste/drop events\n (_b = event.dataTransfer) === null || _b === void 0 ? void 0 : _b.getData('text/plain')) !== null && _c !== void 0 ? _c : '');\n }\n });\n this.eventListener.listen('input', () => {\n if (this.upcomingElementState &&\n !areElementStatesEqual(this.upcomingElementState, this.elementState)) {\n this.updateElementState(this.upcomingElementState);\n }\n this.upcomingElementState = null;\n }, { capture: true });\n this.eventListener.listen('input', ({ inputType }) => {\n if (inputType === 'insertCompositionText') {\n return; // will be handled inside `compositionend` event\n }\n this.ensureValueFitsMask();\n this.updateHistory(this.elementState);\n });\n this.eventListener.listen('compositionend', () => {\n this.ensureValueFitsMask();\n this.updateHistory(this.elementState);\n });\n }\n destroy() {\n this.eventListener.destroy();\n this.teardowns.forEach((teardown) => teardown === null || teardown === void 0 ? void 0 : teardown());\n }\n updateElementState({ value, selection }, eventInit) {\n const initialValue = this.elementState.value;\n this.updateValue(value);\n this.updateSelectionRange(selection);\n if (eventInit && initialValue !== value) {\n this.dispatchInputEvent(eventInit);\n }\n }\n get elementState() {\n const { value, selectionStart, selectionEnd } = this.element;\n return {\n value,\n selection: [selectionStart !== null && selectionStart !== void 0 ? selectionStart : 0, selectionEnd !== null && selectionEnd !== void 0 ? selectionEnd : 0],\n };\n }\n get maxLength() {\n const { maxLength } = this.element;\n return maxLength === -1 ? Infinity : maxLength;\n }\n updateSelectionRange([from, to]) {\n var _a;\n const { element } = this;\n if (element.matches(':focus') &&\n (element.selectionStart !== from || element.selectionEnd !== to)) {\n (_a = element.setSelectionRange) === null || _a === void 0 ? void 0 : _a.call(element, from, to);\n }\n }\n updateValue(value) {\n /**\n * Don't \"disturb\" unnecessarily `value`-setter\n * (i.e. it breaks React controlled input behavior)\n */\n if (this.element.value !== value || this.element.isContentEditable) {\n this.element.value = value;\n }\n }\n ensureValueFitsMask() {\n this.updateElementState(maskitoTransform(this.elementState, this.options), {\n inputType: 'insertText',\n data: null,\n });\n }\n dispatchInputEvent(eventInit = {\n inputType: 'insertText',\n data: null,\n }) {\n if (globalThis.InputEvent) {\n this.element.dispatchEvent(new InputEvent('input', Object.assign(Object.assign({}, eventInit), { bubbles: true, cancelable: false })));\n }\n }\n handleDelete({ event, selection, isForward, }) {\n const initialState = {\n value: this.elementState.value,\n selection,\n };\n const { elementState } = this.preprocessor({\n elementState: initialState,\n data: '',\n }, isForward ? 'deleteForward' : 'deleteBackward');\n const maskModel = new MaskModel(elementState, this.options);\n maskModel.deleteCharacters();\n const newElementState = this.postprocessor(maskModel, initialState);\n if (areElementValuesEqual(initialState, elementState, maskModel, newElementState)) {\n const [from, to] = elementState.selection;\n event.preventDefault();\n // User presses Backspace/Delete for the fixed value\n return this.updateSelectionRange(isForward ? [to, to] : [from, from]);\n }\n this.upcomingElementState = newElementState;\n }\n handleInsert(event, data) {\n const { options, maxLength, elementState: initialElementState } = this;\n const { elementState, data: insertedText = data } = this.preprocessor({\n data,\n elementState: initialElementState,\n }, 'insert');\n const maskModel = new MaskModel(elementState, options);\n try {\n maskModel.addCharacters(insertedText);\n }\n catch (_a) {\n return event.preventDefault();\n }\n const [from, to] = initialElementState.selection;\n const newPossibleState = {\n value: initialElementState.value.slice(0, from) +\n data +\n initialElementState.value.slice(to),\n selection: [from + data.length, from + data.length],\n };\n this.upcomingElementState = this.clampState(this.postprocessor(maskModel, initialElementState));\n if (!areElementStatesEqual(this.clampState(newPossibleState), this.upcomingElementState) &&\n options.overwriteMode === 'replace' &&\n newPossibleState.value.length > maxLength) {\n /**\n * Browsers know nothing about Maskito and its `overwriteMode`.\n * When textfield value length is already equal to attribute `maxlength`,\n * pressing any key (even with valid value) does not emit `input` event.\n */\n this.dispatchInputEvent({ inputType: 'insertText', data });\n }\n }\n handleEnter(event) {\n if (this.isTextArea || this.element.isContentEditable) {\n this.handleInsert(event, '\\n');\n }\n }\n clampState({ value, selection }) {\n const [from, to] = selection;\n const max = this.maxLength;\n return {\n value: value.slice(0, max),\n selection: [Math.min(from, max), Math.min(to, max)],\n };\n }\n}\n\nexport { MASKITO_DEFAULT_ELEMENT_PREDICATE, MASKITO_DEFAULT_OPTIONS, Maskito, maskitoAdaptContentEditable, maskitoChangeEventPlugin, maskitoInitialCalibrationPlugin, maskitoPipe, maskitoStrictCompositionPlugin, maskitoTransform, maskitoUpdateElement };\n","import { maskitoUpdateElement, MASKITO_DEFAULT_OPTIONS, maskitoTransform } from '@maskito/core';\n\n/**\n * Clamps a value between two inclusive limits\n *\n * @param value\n * @param min lower limit\n * @param max upper limit\n */\nfunction clamp(value, min, max) {\n const clampedValue = Math.min(Number(max), Math.max(Number(min), Number(value)));\n return (value instanceof Date ? new Date(clampedValue) : clampedValue);\n}\n\nfunction countDigits(str) {\n return str.replaceAll(/\\W/g, '').length;\n}\n\nfunction appendDate(initialDate, { day, month, year } = {}) {\n const date = new Date(initialDate);\n if (day) {\n date.setDate(date.getDate() + day);\n }\n if (month) {\n date.setMonth(date.getMonth() + month);\n }\n if (year) {\n date.setFullYear(date.getFullYear() + year);\n }\n return date;\n}\n\nconst getDateSegmentValueLength = (dateString) => {\n var _a, _b, _c, _d, _e, _f;\n return ({\n day: (_b = (_a = dateString.match(/d/g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0,\n month: (_d = (_c = dateString.match(/m/g)) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0,\n year: (_f = (_e = dateString.match(/y/g)) === null || _e === void 0 ? void 0 : _e.length) !== null && _f !== void 0 ? _f : 0,\n });\n};\n\nfunction dateToSegments(date) {\n return {\n day: String(date.getDate()).padStart(2, '0'),\n month: String(date.getMonth() + 1).padStart(2, '0'),\n year: String(date.getFullYear()).padStart(4, '0'),\n hours: String(date.getHours()).padStart(2, '0'),\n minutes: String(date.getMinutes()).padStart(2, '0'),\n seconds: String(date.getSeconds()).padStart(2, '0'),\n milliseconds: String(date.getMilliseconds()).padStart(3, '0'),\n };\n}\n\nconst ALL_POSSIBLE_SEGMENTS = [\n 'day',\n 'month',\n 'year',\n];\nfunction getDateSegmentsOrder(template) {\n return [...ALL_POSSIBLE_SEGMENTS].sort((a, b) => template.indexOf(a[0]) > template.indexOf(b[0]) ? 1 : -1);\n}\n\nfunction getFirstCompleteDate(dateString, dateModeTemplate) {\n const digitsInDate = countDigits(dateModeTemplate);\n const [completeDate = ''] = new RegExp(`(\\\\D*\\\\d){${digitsInDate}}`).exec(dateString) || [];\n return completeDate;\n}\n\nfunction isDateStringComplete(dateString, dateModeTemplate) {\n if (dateString.length < dateModeTemplate.length) {\n return false;\n }\n return dateString.split(/\\D/).every((segment) => !/^0+$/.exec(segment));\n}\n\nfunction parseDateRangeString(dateRange, dateModeTemplate, rangeSeparator) {\n const digitsInDate = countDigits(dateModeTemplate);\n return (dateRange\n .replace(rangeSeparator, '')\n .match(new RegExp(`(\\\\D*\\\\d[^\\\\d\\\\s]*){1,${digitsInDate}}`, 'g')) || []);\n}\n\nfunction parseDateString(dateString, fullMode) {\n const cleanMode = fullMode.replaceAll(/[^dmy]/g, '');\n const onlyDigitsDate = dateString.replaceAll(/\\D+/g, '');\n const dateSegments = {\n day: onlyDigitsDate.slice(cleanMode.indexOf('d'), cleanMode.lastIndexOf('d') + 1),\n month: onlyDigitsDate.slice(cleanMode.indexOf('m'), cleanMode.lastIndexOf('m') + 1),\n year: onlyDigitsDate.slice(cleanMode.indexOf('y'), cleanMode.lastIndexOf('y') + 1),\n };\n return Object.fromEntries(Object.entries(dateSegments)\n .filter(([_, value]) => Boolean(value))\n .sort(([a], [b]) => fullMode.toLowerCase().indexOf(a.slice(0, 1)) >\n fullMode.toLowerCase().indexOf(b.slice(0, 1))\n ? 1\n : -1));\n}\n\nfunction segmentsToDate(parsedDate, parsedTime) {\n var _a, _b, _c, _d, _e, _f, _g;\n const year = ((_a = parsedDate.year) === null || _a === void 0 ? void 0 : _a.length) === 2 ? `20${parsedDate.year}` : parsedDate.year;\n const date = new Date(Number(year !== null && year !== void 0 ? year : '0'), Number((_b = parsedDate.month) !== null && _b !== void 0 ? _b : '1') - 1, Number((_c = parsedDate.day) !== null && _c !== void 0 ? _c : '1'), Number((_d = parsedTime === null || parsedTime === void 0 ? void 0 : parsedTime.hours) !== null && _d !== void 0 ? _d : '0'), Number((_e = parsedTime === null || parsedTime === void 0 ? void 0 : parsedTime.minutes) !== null && _e !== void 0 ? _e : '0'), Number((_f = parsedTime === null || parsedTime === void 0 ? void 0 : parsedTime.seconds) !== null && _f !== void 0 ? _f : '0'), Number((_g = parsedTime === null || parsedTime === void 0 ? void 0 : parsedTime.milliseconds) !== null && _g !== void 0 ? _g : '0'));\n // needed for years less than 1900\n date.setFullYear(Number(year !== null && year !== void 0 ? year : '0'));\n return date;\n}\n\nconst DATE_TIME_SEPARATOR = ', ';\n\nfunction toDateString({ day, month, year, hours, minutes, seconds, milliseconds, }, { dateMode, dateTimeSeparator = DATE_TIME_SEPARATOR, timeMode, }) {\n var _a;\n const safeYear = ((_a = dateMode.match(/y/g)) === null || _a === void 0 ? void 0 : _a.length) === 2 ? year === null || year === void 0 ? void 0 : year.slice(-2) : year;\n const fullMode = dateMode + (timeMode ? dateTimeSeparator + timeMode : '');\n return fullMode\n .replaceAll(/d+/g, day !== null && day !== void 0 ? day : '')\n .replaceAll(/m+/g, month !== null && month !== void 0 ? month : '')\n .replaceAll(/y+/g, safeYear !== null && safeYear !== void 0 ? safeYear : '')\n .replaceAll(/H+/g, hours !== null && hours !== void 0 ? hours : '')\n .replaceAll('MSS', milliseconds !== null && milliseconds !== void 0 ? milliseconds : '')\n .replaceAll(/M+/g, minutes !== null && minutes !== void 0 ? minutes : '')\n .replaceAll(/S+/g, seconds !== null && seconds !== void 0 ? seconds : '')\n .replaceAll(/^\\D+/g, '')\n .replaceAll(/\\D+$/g, '');\n}\n\nconst DATE_SEGMENTS_MAX_VALUES = {\n day: 31,\n month: 12,\n year: 9999,\n};\n\n// eslint-disable-next-line i18n/no-russian-character\nconst DEFAULT_DECIMAL_PSEUDO_SEPARATORS = ['.', ',', 'б', 'ю'];\n\nconst DEFAULT_MIN_DATE = new Date('0001-01-01T00:00');\nconst DEFAULT_MAX_DATE = new Date('9999-12-31T23:59:59.999');\n\nconst DEFAULT_TIME_SEGMENT_MAX_VALUES = {\n hours: 23,\n minutes: 59,\n seconds: 59,\n milliseconds: 999,\n};\nconst DEFAULT_TIME_SEGMENT_MIN_VALUES = {\n hours: 0,\n minutes: 0,\n seconds: 0,\n milliseconds: 0,\n};\n\n/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nconst CHAR_NO_BREAK_SPACE = '\\u00A0';\n/**\n * {@link https://symbl.cc/en/200B/ Zero width space}.\n */\nconst CHAR_ZERO_WIDTH_SPACE = '\\u200B';\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n */\nconst CHAR_EN_DASH = '\\u2013';\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nconst CHAR_EM_DASH = '\\u2014';\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nconst CHAR_HYPHEN = '\\u002D';\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `−`. Don't confuse with {@link CHAR_HYPHEN}\n */\nconst CHAR_MINUS = '\\u2212';\n/**\n * {@link https://symbl.cc/en/30FC/ Katakana-Hiragana Prolonged Sound Mark}\n * is used as prolonged sounds in Japanese.\n */\nconst CHAR_JP_HYPHEN = '\\u30FC';\n/**\n * {@link https://symbl.cc/en/003A/ Colon}\n * is a punctuation mark that connects parts of a text logically.\n * ---\n * is also used as separator in time.\n */\nconst CHAR_COLON = '\\u003A';\n/**\n * {@link https://symbl.cc/en/FF1A/ Full-width colon}\n * is a full-width punctuation mark used to separate parts of a text commonly in Japanese.\n */\nconst CHAR_JP_COLON = '\\uFF1A';\n\nconst ANY_MERIDIEM_CHARACTER_RE = new RegExp(`[${CHAR_NO_BREAK_SPACE}APM]+$`, 'g');\nconst ALL_MERIDIEM_CHARACTERS_RE = new RegExp(`${CHAR_NO_BREAK_SPACE}[AP]M$`, 'g');\n\nconst TIME_FIXED_CHARACTERS = [':', '.'];\n\nconst TIME_SEGMENT_VALUE_LENGTHS = {\n hours: 2,\n minutes: 2,\n seconds: 2,\n milliseconds: 3,\n};\n\nfunction validateDateString({ dateString, dateModeTemplate, dateSegmentsSeparator, offset, selection: [from, to], }) {\n var _a, _b;\n const parsedDate = parseDateString(dateString, dateModeTemplate);\n const dateSegments = Object.entries(parsedDate);\n const segmentsOrder = getDateSegmentsOrder(dateModeTemplate);\n const validatedDateSegments = {};\n for (let i = 0; i < dateSegments.length; i++) {\n const [segmentName, segmentValue] = dateSegments[i];\n const validatedDate = toDateString(validatedDateSegments, {\n dateMode: dateModeTemplate,\n });\n const maxSegmentValue = DATE_SEGMENTS_MAX_VALUES[segmentName];\n const fantomSeparator = validatedDate.length && dateSegmentsSeparator.length;\n const lastSegmentDigitIndex = offset +\n validatedDate.length +\n fantomSeparator +\n getDateSegmentValueLength(dateModeTemplate)[segmentName];\n const isLastSegmentDigitAdded = lastSegmentDigitIndex >= from && lastSegmentDigitIndex === to;\n if (isLastSegmentDigitAdded && Number(segmentValue) > Number(maxSegmentValue)) {\n const nextSegment = segmentsOrder[segmentsOrder.indexOf(segmentName) + 1];\n if (!nextSegment || nextSegment === 'year') {\n // 31.1|0.2010 => Type 9 => 31.1|0.2010\n return { validatedDateString: '', updatedSelection: [from, to] }; // prevent changes\n }\n validatedDateSegments[segmentName] = `0${segmentValue.slice(0, -1)}`;\n dateSegments[i + 1] = [\n nextSegment,\n segmentValue.slice(-1) + ((_b = (_a = dateSegments[i + 1]) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : '').slice(1),\n ];\n continue;\n }\n if (isLastSegmentDigitAdded && Number(segmentValue) < 1) {\n // 31.0|1.2010 => Type 0 => 31.0|1.2010\n return { validatedDateString: '', updatedSelection: [from, to] }; // prevent changes\n }\n validatedDateSegments[segmentName] = segmentValue;\n }\n const validatedDateString = toDateString(validatedDateSegments, {\n dateMode: dateModeTemplate,\n });\n const addedDateSegmentSeparators = validatedDateString.length - dateString.length;\n return {\n validatedDateString,\n updatedSelection: [\n from + addedDateSegmentSeparators,\n to + addedDateSegmentSeparators,\n ],\n };\n}\n\nfunction identity(x) {\n return x;\n}\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() { }\n\n/**\n * Copy-pasted solution from lodash\n * @see https://lodash.com/docs/4.17.15#escapeRegExp\n */\nconst reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\nconst reHasRegExpChar = new RegExp(reRegExpChar.source);\nfunction escapeRegExp(str) {\n return str && reHasRegExpChar.test(str)\n ? str.replaceAll(reRegExpChar, String.raw `\\$&`)\n : str;\n}\n\nfunction extractAffixes(value, { prefix, postfix }) {\n var _a, _b;\n const prefixRegExp = new RegExp(`^${escapeRegExp(prefix)}`);\n const postfixRegExp = new RegExp(`${escapeRegExp(postfix)}$`);\n const [extractedPrefix = ''] = (_a = value.match(prefixRegExp)) !== null && _a !== void 0 ? _a : [];\n const [extractedPostfix = ''] = (_b = value.match(postfixRegExp)) !== null && _b !== void 0 ? _b : [];\n return {\n extractedPrefix,\n extractedPostfix,\n cleanValue: extractedPrefix || extractedPostfix\n ? value.slice(extractedPrefix.length, extractedPostfix.length ? -extractedPostfix.length : Infinity)\n : value,\n };\n}\n\nfunction findCommonBeginningSubstr(a, b) {\n let res = '';\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return res;\n }\n res += a[i];\n }\n return res;\n}\n\nfunction isEmpty(entity) {\n return !entity || (typeof entity === 'object' && Object.keys(entity).length === 0);\n}\n\nconst ALL_ZEROES_RE = /^0+$/;\nfunction padWithZeroesUntilValid(segmentValue, paddedMaxValue, prefixedZeroesCount = 0) {\n const paddedSegmentValue = segmentValue.padEnd(paddedMaxValue.length, '0');\n if (Number(paddedSegmentValue) <= Number(paddedMaxValue)) {\n return { validatedSegmentValue: segmentValue, prefixedZeroesCount };\n }\n if (paddedSegmentValue.endsWith('0')) {\n // 00:|00 => Type 9 => 00:09|\n return padWithZeroesUntilValid(`0${segmentValue.slice(0, paddedMaxValue.length - 1)}`, paddedMaxValue, prefixedZeroesCount + 1);\n }\n const valueWithoutLastChar = segmentValue.slice(0, paddedMaxValue.length - 1);\n if (ALL_ZEROES_RE.exec(valueWithoutLastChar)) {\n return { validatedSegmentValue: '', prefixedZeroesCount };\n }\n // |19:00 => Type 2 => 2|0:00\n return padWithZeroesUntilValid(`${valueWithoutLastChar}0`, paddedMaxValue, prefixedZeroesCount);\n}\n\n/**\n * Replace fullwidth colon with half width colon\n * @param fullWidthColon full width colon\n * @returns processed half width colon\n */\nfunction toHalfWidthColon(fullWidthColon) {\n return fullWidthColon.replaceAll(new RegExp(CHAR_JP_COLON, 'g'), CHAR_COLON);\n}\n\n/**\n * Replace fullwidth numbers with half width number\n * @param fullWidthNumber full width number\n * @returns processed half width number\n */\nfunction toHalfWidthNumber(fullWidthNumber) {\n return fullWidthNumber.replaceAll(/[0-9]/g, (s) => String.fromCharCode(s.charCodeAt(0) - 0xfee0));\n}\n\n/**\n * Convert full width colon (:) to half width one (:)\n */\nfunction createColonConvertPreprocessor() {\n return ({ elementState, data }) => {\n const { value, selection } = elementState;\n return {\n elementState: {\n selection,\n value: toHalfWidthColon(value),\n },\n data: toHalfWidthColon(data),\n };\n };\n}\n\nfunction createDateSegmentsZeroPaddingPostprocessor({ dateModeTemplate, dateSegmentSeparator, splitFn, uniteFn, }) {\n return ({ value, selection }) => {\n var _a;\n const [from, to] = selection;\n const { dateStrings, restPart = '' } = splitFn(value);\n const validatedDateStrings = [];\n let caretShift = 0;\n dateStrings.forEach((dateString) => {\n const parsedDate = parseDateString(dateString, dateModeTemplate);\n const dateSegments = Object.entries(parsedDate);\n const validatedDateSegments = dateSegments.reduce((acc, [segmentName, segmentValue]) => {\n const { validatedSegmentValue, prefixedZeroesCount } = padWithZeroesUntilValid(segmentValue, `${DATE_SEGMENTS_MAX_VALUES[segmentName]}`);\n caretShift += prefixedZeroesCount;\n return Object.assign(Object.assign({}, acc), { [segmentName]: validatedSegmentValue });\n }, {});\n validatedDateStrings.push(toDateString(validatedDateSegments, { dateMode: dateModeTemplate }));\n });\n const validatedValue = uniteFn(validatedDateStrings, value) +\n (((_a = dateStrings[dateStrings.length - 1]) === null || _a === void 0 ? void 0 : _a.endsWith(dateSegmentSeparator))\n ? dateSegmentSeparator\n : '') +\n restPart;\n if (caretShift &&\n validatedValue.slice(to + caretShift, to + caretShift + dateSegmentSeparator.length) === dateSegmentSeparator) {\n /**\n * If `caretShift` > 0, it means that time segment was padded with zero.\n * It is only possible if any character insertion happens.\n * If caret is before `dateSegmentSeparator` => it should be moved after `dateSegmentSeparator`.\n */\n caretShift += dateSegmentSeparator.length;\n }\n return {\n selection: [from + caretShift, to + caretShift],\n value: validatedValue,\n };\n };\n}\n\n/**\n * It replaces pseudo range separators with valid one.\n * @example '01.01.2000_11.11.2000' -> '01.01.2000 - 01.01.2000'\n * @example '01.01.2000_23:59' -> '01.01.2000, 23:59'\n */\nfunction createFirstDateEndSeparatorPreprocessor({ dateModeTemplate, firstDateEndSeparator, dateSegmentSeparator, pseudoFirstDateEndSeparators, }) {\n return ({ elementState, data }) => {\n const { value, selection } = elementState;\n const [from, to] = selection;\n const firstCompleteDate = getFirstCompleteDate(value, dateModeTemplate);\n const pseudoSeparators = pseudoFirstDateEndSeparators.filter((x) => !firstDateEndSeparator.includes(x) && x !== dateSegmentSeparator);\n const pseudoSeparatorsRE = new RegExp(`[${pseudoSeparators.join('')}]`, 'gi');\n const newValue = firstCompleteDate && value.length > firstCompleteDate.length\n ? firstCompleteDate +\n value\n .slice(firstCompleteDate.length)\n .replace(/^[\\D\\s]*/, firstDateEndSeparator)\n : value;\n const caretShift = newValue.length - value.length;\n return {\n elementState: {\n selection: [from + caretShift, to + caretShift],\n value: newValue,\n },\n data: data.replace(pseudoSeparatorsRE, firstDateEndSeparator),\n };\n };\n}\n\n/**\n * Convert full width numbers like 1, 2 to half width numbers 1, 2\n */\nfunction createFullWidthToHalfWidthPreprocessor() {\n return ({ elementState, data }) => {\n const { value, selection } = elementState;\n return {\n elementState: {\n selection,\n value: toHalfWidthNumber(value),\n },\n data: toHalfWidthNumber(data),\n };\n };\n}\n\nfunction createTimeMaskExpression(mode) {\n return Array.from(mode.replace(' AA', ''))\n .map((char) => (TIME_FIXED_CHARACTERS.includes(char) ? char : /\\d/))\n .concat(mode.includes('AA') ? [CHAR_NO_BREAK_SPACE, /[AP]/i, /M/i] : []);\n}\n\nfunction padTimeSegments(timeSegments, pad) {\n return Object.fromEntries(Object.entries(timeSegments).map(([segmentName, segmentValue]) => [\n segmentName,\n pad(String(segmentValue), TIME_SEGMENT_VALUE_LENGTHS[segmentName]),\n ]));\n}\n\nfunction padStartTimeSegments(timeSegments) {\n return padTimeSegments(timeSegments, (value, length) => value.padStart(length, '0'));\n}\n\nconst SEGMENT_FULL_NAME = {\n HH: 'hours',\n MM: 'minutes',\n SS: 'seconds',\n MSS: 'milliseconds',\n};\n/**\n * @param timeString can be with/without fixed characters\n */\nfunction parseTimeString(timeString, timeMode) {\n const onlyDigits = timeString.replaceAll(/\\D+/g, '');\n let offset = 0;\n return Object.fromEntries(timeMode\n .split(/\\W/)\n .filter((segmentAbbr) => SEGMENT_FULL_NAME[segmentAbbr])\n .map((segmentAbbr) => {\n const segmentValue = onlyDigits.slice(offset, offset + segmentAbbr.length);\n offset += segmentAbbr.length;\n return [SEGMENT_FULL_NAME[segmentAbbr], segmentValue];\n }));\n}\n\nconst LEADING_NON_DIGITS = /^\\D*/;\nconst TRAILING_NON_DIGITS = /\\D*$/;\nfunction toTimeString({ hours = '', minutes = '', seconds = '', milliseconds = '', }) {\n return `${hours}:${minutes}:${seconds}.${milliseconds}`\n .replace(LEADING_NON_DIGITS, '')\n .replace(TRAILING_NON_DIGITS, '');\n}\n\nconst TRAILING_TIME_SEGMENT_SEPARATOR_REG = new RegExp(`[${TIME_FIXED_CHARACTERS.map(escapeRegExp).join('')}]$`);\n/**\n * Pads invalid time segment with zero to make it valid.\n * @example 00:|00 => Type 9 (too much for the first digit of minutes) => 00:09|\n * @example |19:00 => Type 2 (29 - invalid value for hours) => 2|0:00\n */\nfunction enrichTimeSegmentsWithZeroes({ value, selection }, { mode, timeSegmentMaxValues = DEFAULT_TIME_SEGMENT_MAX_VALUES, }) {\n const [from, to] = selection;\n const parsedTime = parseTimeString(value, mode);\n const possibleTimeSegments = Object.entries(parsedTime);\n const paddedMaxValues = padStartTimeSegments(timeSegmentMaxValues);\n const validatedTimeSegments = {};\n let paddedZeroes = 0;\n for (const [segmentName, segmentValue] of possibleTimeSegments) {\n const maxSegmentValue = paddedMaxValues[segmentName];\n const { validatedSegmentValue, prefixedZeroesCount } = padWithZeroesUntilValid(segmentValue, String(maxSegmentValue));\n paddedZeroes += prefixedZeroesCount;\n validatedTimeSegments[segmentName] = validatedSegmentValue;\n }\n const [leadingNonDigitCharacters = ''] = value.match(/^\\D+(?=\\d)/g) || []; // prefix\n const [trailingNonDigitCharacters = ''] = value.match(/\\D+$/g) || []; // trailing segment separators / meridiem characters / postfix\n const validatedTimeString = leadingNonDigitCharacters +\n toTimeString(validatedTimeSegments) +\n trailingNonDigitCharacters;\n const addedDateSegmentSeparators = Math.max(validatedTimeString.length - value.length - paddedZeroes, 0);\n let newFrom = from + paddedZeroes + addedDateSegmentSeparators;\n let newTo = to + paddedZeroes + addedDateSegmentSeparators;\n if (newFrom === newTo &&\n paddedZeroes &&\n // if next character after cursor is time segment separator\n validatedTimeString.slice(0, newTo + 1).match(TRAILING_TIME_SEGMENT_SEPARATOR_REG)) {\n newFrom++;\n newTo++;\n }\n return {\n value: validatedTimeString,\n selection: [newFrom, newTo],\n };\n}\n\nfunction padEndTimeSegments(timeSegments) {\n return padTimeSegments(timeSegments, (value, length) => value.padEnd(length, '0'));\n}\n\n/**\n * Prevent insertion if any time segment will become invalid\n * (and even zero padding won't help with it).\n * @example 2|0:00 => Type 9 => 2|0:00\n */\nfunction createInvalidTimeSegmentInsertionPreprocessor({ timeMode, timeSegmentMinValues = DEFAULT_TIME_SEGMENT_MIN_VALUES, timeSegmentMaxValues = DEFAULT_TIME_SEGMENT_MAX_VALUES, parseValue = (x) => ({ timeString: x }), }) {\n const invalidCharsRegExp = new RegExp(`[^\\\\d${TIME_FIXED_CHARACTERS.map(escapeRegExp).join('')}]+`);\n return ({ elementState, data }, actionType) => {\n if (actionType !== 'insert') {\n return { elementState, data };\n }\n const { value, selection } = elementState;\n const [from, rawTo] = selection;\n const newCharacters = data.replace(invalidCharsRegExp, '');\n const to = rawTo + newCharacters.length; // to be conformed with `overwriteMode: replace`\n const newPossibleValue = value.slice(0, from) + newCharacters + value.slice(to);\n const { timeString, restValue = '' } = parseValue(newPossibleValue);\n const timeSegments = Object.entries(parseTimeString(timeString, timeMode));\n let offset = restValue.length;\n for (const [segmentName, stringifiedSegmentValue] of timeSegments) {\n const minSegmentValue = timeSegmentMinValues[segmentName];\n const maxSegmentValue = timeSegmentMaxValues[segmentName];\n const segmentValue = Number(stringifiedSegmentValue);\n const lastSegmentDigitIndex = offset + TIME_SEGMENT_VALUE_LENGTHS[segmentName];\n if (lastSegmentDigitIndex >= from &&\n lastSegmentDigitIndex <= to &&\n segmentValue !== clamp(segmentValue, minSegmentValue, maxSegmentValue)) {\n return { elementState, data: '' }; // prevent insertion\n }\n offset +=\n stringifiedSegmentValue.length +\n // any time segment separator\n 1;\n }\n return { elementState, data };\n };\n}\n\nfunction createMeridiemPreprocessor(timeMode) {\n if (!timeMode.includes('AA')) {\n return identity;\n }\n const mainMeridiemCharRE = /^[AP]$/gi;\n return ({ elementState, data }) => {\n const { value, selection } = elementState;\n const newValue = value.toUpperCase();\n const newData = data.toUpperCase();\n if (newValue.match(ALL_MERIDIEM_CHARACTERS_RE) &&\n newData.match(mainMeridiemCharRE)) {\n return {\n elementState: {\n value: newValue.replaceAll(ALL_MERIDIEM_CHARACTERS_RE, ''),\n selection,\n },\n data: `${newData}M`,\n };\n }\n return { elementState: { selection, value: newValue }, data: newData };\n };\n}\nfunction createMeridiemPostprocessor(timeMode) {\n if (!timeMode.includes('AA')) {\n return identity;\n }\n return ({ value, selection }, initialElementState) => {\n if (!value.match(ANY_MERIDIEM_CHARACTER_RE) ||\n value.match(ALL_MERIDIEM_CHARACTERS_RE)) {\n return { value, selection };\n }\n const [from, to] = selection;\n // any meridiem character was deleted\n if (initialElementState.value.match(ALL_MERIDIEM_CHARACTERS_RE)) {\n const newValue = value.replace(ANY_MERIDIEM_CHARACTER_RE, '');\n return {\n value: newValue,\n selection: [\n Math.min(from, newValue.length),\n Math.min(to, newValue.length),\n ],\n };\n }\n const fullMeridiem = `${CHAR_NO_BREAK_SPACE}${value.includes('P') ? 'P' : 'A'}M`;\n const newValue = value.replace(ANY_MERIDIEM_CHARACTER_RE, (x) => x !== CHAR_NO_BREAK_SPACE ? fullMeridiem : x);\n return {\n value: newValue,\n selection: to >= newValue.indexOf(fullMeridiem)\n ? [newValue.length, newValue.length]\n : selection,\n };\n };\n}\n\nfunction raiseSegmentValueToMin(segments, fullMode) {\n const segmentsLength = getDateSegmentValueLength(fullMode);\n return Object.fromEntries(Object.entries(segments).map(([key, value]) => {\n const segmentLength = segmentsLength[key];\n return [\n key,\n value.length === segmentLength && /^0+$/.exec(value)\n ? '1'.padStart(segmentLength, '0')\n : value,\n ];\n }));\n}\n\nconst LEAP_YEAR = '1972';\nfunction createMinMaxDatePostprocessor({ dateModeTemplate, min = DEFAULT_MIN_DATE, max = DEFAULT_MAX_DATE, rangeSeparator = '', dateSegmentSeparator = '.', }) {\n return ({ value, selection }) => {\n const endsWithRangeSeparator = rangeSeparator && value.endsWith(rangeSeparator);\n const dateStrings = parseDateRangeString(value, dateModeTemplate, rangeSeparator);\n let validatedValue = '';\n for (const dateString of dateStrings) {\n validatedValue += validatedValue ? rangeSeparator : '';\n const parsedDate = parseDateString(dateString, dateModeTemplate);\n if (!isDateStringComplete(dateString, dateModeTemplate)) {\n const fixedDate = raiseSegmentValueToMin(parsedDate, dateModeTemplate);\n const fixedValue = toDateString(fixedDate, { dateMode: dateModeTemplate });\n const tail = dateString.endsWith(dateSegmentSeparator)\n ? dateSegmentSeparator\n : '';\n validatedValue += fixedValue + tail;\n continue;\n }\n const date = segmentsToDate(Object.assign({ year: LEAP_YEAR }, parsedDate));\n const clampedDate = clamp(date, min, max);\n validatedValue += toDateString(dateToSegments(clampedDate), {\n dateMode: dateModeTemplate,\n });\n }\n return {\n selection,\n value: validatedValue + (endsWithRangeSeparator ? rangeSeparator : ''),\n };\n };\n}\n\nfunction normalizeDatePreprocessor({ dateModeTemplate, dateSegmentsSeparator, rangeSeparator = '', dateTimeSeparator = DATE_TIME_SEPARATOR, }) {\n return ({ elementState, data }) => {\n const templateSegments = dateModeTemplate.split(dateSegmentsSeparator);\n const includesTime = data.includes(dateTimeSeparator);\n const dateSegments = data\n .slice(0, includesTime ? data.indexOf(dateTimeSeparator) : Infinity)\n .split(/\\D/)\n .filter(Boolean);\n if (!dateSegments.length || dateSegments.length % templateSegments.length !== 0) {\n return { elementState, data };\n }\n const dates = dateSegments.reduce((dates, segment, index) => {\n var _a;\n const template = (_a = templateSegments[index % templateSegments.length]) !== null && _a !== void 0 ? _a : '';\n const dateIndex = Math.trunc(index / templateSegments.length);\n const isLastDateSegment = index % templateSegments.length === templateSegments.length - 1;\n if (!dates[dateIndex]) {\n dates[dateIndex] = '';\n }\n dates[dateIndex] += isLastDateSegment\n ? segment\n : `${segment.padStart(template.length, '0')}${dateSegmentsSeparator}`;\n return dates;\n }, []);\n return {\n elementState,\n data: includesTime\n ? `${dates[0]}${data.slice(data.indexOf(dateTimeSeparator))}`\n : dates.join(rangeSeparator),\n };\n };\n}\n\nfunction maskitoPostfixPostprocessorGenerator(postfix) {\n const postfixRE = new RegExp(`${escapeRegExp(postfix)}$`);\n return postfix\n ? ({ value, selection }, initialElementState) => {\n if (!value && !initialElementState.value.endsWith(postfix)) {\n // cases when developer wants input to be empty (programmatically)\n return { value, selection };\n }\n if (!value.endsWith(postfix) &&\n !initialElementState.value.endsWith(postfix)) {\n return { selection, value: value + postfix };\n }\n const initialValueBeforePostfix = initialElementState.value.replace(postfixRE, '');\n const postfixWasModified = initialElementState.selection[1] > initialValueBeforePostfix.length;\n const alreadyExistedValueBeforePostfix = findCommonBeginningSubstr(initialValueBeforePostfix, value);\n return {\n selection,\n value: Array.from(postfix)\n .reverse()\n .reduce((newValue, char, index) => {\n const i = newValue.length - 1 - index;\n const isInitiallyMirroredChar = alreadyExistedValueBeforePostfix[i] === char &&\n postfixWasModified;\n return newValue[i] !== char || isInitiallyMirroredChar\n ? newValue.slice(0, i + 1) + char + newValue.slice(i + 1)\n : newValue;\n }, value),\n };\n }\n : identity;\n}\n\nfunction maskitoPrefixPostprocessorGenerator(prefix) {\n return prefix\n ? ({ value, selection }, initialElementState) => {\n if (value.startsWith(prefix) || // already valid\n (!value && !initialElementState.value.startsWith(prefix)) // cases when developer wants input to be empty\n ) {\n return { value, selection };\n }\n const [from, to] = selection;\n const prefixedValue = Array.from(prefix).reduce((modifiedValue, char, i) => modifiedValue[i] === char\n ? modifiedValue\n : modifiedValue.slice(0, i) + char + modifiedValue.slice(i), value);\n const addedCharsCount = prefixedValue.length - value.length;\n return {\n selection: [from + addedCharsCount, to + addedCharsCount],\n value: prefixedValue,\n };\n }\n : identity;\n}\n\nfunction createValidDatePreprocessor({ dateModeTemplate, dateSegmentsSeparator, rangeSeparator = '', }) {\n return ({ elementState, data }) => {\n const { value, selection } = elementState;\n if (data === dateSegmentsSeparator) {\n return {\n elementState,\n data: selection[0] === value.length ? data : '',\n };\n }\n if (!data.replaceAll(/\\D/g, '')) {\n return { elementState, data };\n }\n const newCharacters = data.replaceAll(new RegExp(`[^\\\\d${escapeRegExp(dateSegmentsSeparator)}${rangeSeparator}]`, 'g'), '');\n const [from, rawTo] = selection;\n let to = rawTo + data.length;\n const newPossibleValue = value.slice(0, from) + newCharacters + value.slice(to);\n const dateStrings = parseDateRangeString(newPossibleValue, dateModeTemplate, rangeSeparator);\n let validatedValue = '';\n const hasRangeSeparator = Boolean(rangeSeparator) && newPossibleValue.includes(rangeSeparator);\n for (const dateString of dateStrings) {\n const { validatedDateString, updatedSelection } = validateDateString({\n dateString,\n dateModeTemplate,\n dateSegmentsSeparator,\n offset: validatedValue.length,\n selection: [from, to],\n });\n if (dateString && !validatedDateString) {\n return { elementState, data: '' }; // prevent changes\n }\n to = updatedSelection[1];\n validatedValue +=\n hasRangeSeparator && !validatedValue\n ? validatedDateString + rangeSeparator\n : validatedDateString;\n }\n const newData = validatedValue.slice(from, to);\n return {\n elementState: {\n selection,\n value: validatedValue.slice(0, from) +\n newData\n .split(dateSegmentsSeparator)\n .map((segment) => '0'.repeat(segment.length))\n .join(dateSegmentsSeparator) +\n validatedValue.slice(to),\n },\n data: newData,\n };\n };\n}\n\nfunction maskitoEventHandler(name, handler, eventListenerOptions) {\n return (element, maskitoOptions) => {\n const listener = () => handler(element, maskitoOptions);\n element.addEventListener(name, listener, eventListenerOptions);\n return () => element.removeEventListener(name, listener, eventListenerOptions);\n };\n}\n\nfunction maskitoAddOnFocusPlugin(value) {\n return maskitoEventHandler('focus', (element) => {\n if (!element.value) {\n maskitoUpdateElement(element, value);\n }\n });\n}\n\nfunction maskitoSelectionChangeHandler(handler) {\n return (element, options) => {\n const document = element.ownerDocument;\n let isPointerDown = 0;\n const onPointerDown = () => isPointerDown++;\n const onPointerUp = () => {\n isPointerDown = Math.max(--isPointerDown, 0);\n };\n const listener = () => {\n if (!element.matches(':focus')) {\n return;\n }\n if (isPointerDown) {\n return document.addEventListener('mouseup', listener, {\n once: true,\n passive: true,\n });\n }\n handler(element, options);\n };\n document.addEventListener('selectionchange', listener, { passive: true });\n // Safari does not fire `selectionchange` on focus after programmatic update of textfield value\n element.addEventListener('focus', listener, { passive: true });\n element.addEventListener('mousedown', onPointerDown, { passive: true });\n document.addEventListener('mouseup', onPointerUp, { passive: true });\n return () => {\n document.removeEventListener('selectionchange', listener);\n element.removeEventListener('focus', listener);\n element.removeEventListener('mousedown', onPointerDown);\n document.removeEventListener('mouseup', onPointerUp);\n };\n };\n}\n\nfunction maskitoCaretGuard(guard) {\n return maskitoSelectionChangeHandler((element) => {\n var _a, _b;\n const start = (_a = element.selectionStart) !== null && _a !== void 0 ? _a : 0;\n const end = (_b = element.selectionEnd) !== null && _b !== void 0 ? _b : 0;\n const [fromLimit, toLimit] = guard(element.value, [start, end]);\n if (fromLimit > start || toLimit < end) {\n element.setSelectionRange(clamp(start, fromLimit, toLimit), clamp(end, fromLimit, toLimit));\n }\n });\n}\n\nconst maskitoRejectEvent = (element) => {\n const listener = () => {\n const value = element.value;\n element.addEventListener('beforeinput', (event) => {\n if (event.defaultPrevented && value === element.value) {\n element.dispatchEvent(new CustomEvent('maskitoReject', { bubbles: true }));\n }\n }, { once: true });\n };\n element.addEventListener('beforeinput', listener, true);\n return () => element.removeEventListener('beforeinput', listener, true);\n};\n\nfunction maskitoRemoveOnBlurPlugin(value) {\n return maskitoEventHandler('blur', (element) => {\n if (element.value === value) {\n maskitoUpdateElement(element, '');\n }\n });\n}\n\nfunction createMeridiemSteppingPlugin(meridiemStartIndex) {\n if (meridiemStartIndex < 0) {\n return noop;\n }\n return (element) => {\n const listener = (event) => {\n const caretIndex = Number(element.selectionStart);\n const value = element.value.toUpperCase();\n if ((event.key !== 'ArrowUp' && event.key !== 'ArrowDown') ||\n caretIndex < meridiemStartIndex) {\n return;\n }\n event.preventDefault();\n // eslint-disable-next-line no-nested-ternary\n const meridiemMainCharacter = value.includes('A')\n ? 'P'\n : value.includes('P') || event.key === 'ArrowUp'\n ? 'A'\n : 'P';\n const newMeridiem = `${CHAR_NO_BREAK_SPACE}${meridiemMainCharacter}M`;\n maskitoUpdateElement(element, {\n value: value.length === meridiemStartIndex\n ? value + newMeridiem\n : value.replace(ANY_MERIDIEM_CHARACTER_RE, newMeridiem),\n selection: [caretIndex, caretIndex],\n });\n };\n element.addEventListener('keydown', listener);\n return () => element.removeEventListener('keydown', listener);\n };\n}\n\nfunction createTimeSegmentsSteppingPlugin({ step, fullMode, timeSegmentMaxValues, }) {\n const segmentsIndexes = createTimeSegmentsIndexes(fullMode);\n return step <= 0\n ? noop\n : (element) => {\n const listener = (event) => {\n var _a;\n if (event.key !== 'ArrowUp' && event.key !== 'ArrowDown') {\n return;\n }\n event.preventDefault();\n const selectionStart = (_a = element.selectionStart) !== null && _a !== void 0 ? _a : 0;\n const activeSegment = getActiveSegment({\n segmentsIndexes,\n selectionStart,\n });\n if (!activeSegment) {\n return;\n }\n const updatedValue = updateSegmentValue({\n selection: segmentsIndexes.get(activeSegment),\n value: element.value,\n toAdd: event.key === 'ArrowUp' ? step : -step,\n max: timeSegmentMaxValues[activeSegment],\n });\n maskitoUpdateElement(element, {\n value: updatedValue,\n selection: [selectionStart, selectionStart],\n });\n };\n element.addEventListener('keydown', listener);\n return () => element.removeEventListener('keydown', listener);\n };\n}\nfunction createTimeSegmentsIndexes(fullMode) {\n return new Map([\n ['hours', getSegmentRange(fullMode, 'HH')],\n ['milliseconds', getSegmentRange(fullMode, 'MSS')],\n ['minutes', getSegmentRange(fullMode, 'MM')],\n ['seconds', getSegmentRange(fullMode, 'SS')],\n ]);\n}\nfunction getSegmentRange(mode, segment) {\n const index = mode.indexOf(segment);\n return index === -1 ? [-1, -1] : [index, index + segment.length];\n}\nfunction getActiveSegment({ segmentsIndexes, selectionStart, }) {\n for (const [segmentName, segmentRange] of segmentsIndexes.entries()) {\n const [from, to] = segmentRange;\n if (from <= selectionStart && selectionStart <= to) {\n return segmentName;\n }\n }\n return null;\n}\nfunction updateSegmentValue({ selection, value, toAdd, max, }) {\n const [from, to] = selection;\n const segmentValue = Number(value.slice(from, to).padEnd(to - from, '0'));\n const newSegmentValue = mod(segmentValue + toAdd, max + 1);\n return (value.slice(0, from) +\n String(newSegmentValue).padStart(to - from, '0') +\n value.slice(to, value.length));\n}\nfunction mod(value, max) {\n if (value < 0) {\n value += Math.floor(Math.abs(value) / max + 1) * max;\n }\n return value % max;\n}\n\nfunction maskitoWithPlaceholder(placeholder, focusedOnly = false) {\n let lastClearValue = '';\n let action = 'validation';\n const removePlaceholder = (value) => {\n for (let i = value.length - 1; i >= lastClearValue.length; i--) {\n if (value[i] !== placeholder[i]) {\n return value.slice(0, i + 1);\n }\n }\n return value.slice(0, lastClearValue.length);\n };\n const plugins = [maskitoCaretGuard((value) => [0, removePlaceholder(value).length])];\n let focused = false;\n if (focusedOnly) {\n const focus = maskitoEventHandler('focus', (element) => {\n focused = true;\n maskitoUpdateElement(element, element.value + placeholder.slice(element.value.length));\n }, { capture: true });\n const blur = maskitoEventHandler('blur', (element) => {\n focused = false;\n maskitoUpdateElement(element, removePlaceholder(element.value));\n }, { capture: true });\n plugins.push(focus, blur);\n }\n return {\n plugins,\n removePlaceholder,\n preprocessors: [\n ({ elementState, data }, actionType) => {\n action = actionType;\n const { value, selection } = elementState;\n return {\n elementState: {\n selection,\n value: removePlaceholder(value),\n },\n data,\n };\n },\n ],\n postprocessors: [\n ({ value, selection }, initialElementState) => {\n lastClearValue = value;\n const justPlaceholderRemoval = value +\n placeholder.slice(value.length, initialElementState.value.length) ===\n initialElementState.value;\n if (action === 'validation' && justPlaceholderRemoval) {\n /**\n * If `value` still equals to `initialElementState.value`,\n * then it means that value is patched programmatically (from Maskito's plugin or externally).\n * In this case, we don't want to mutate value and automatically add/remove placeholder.\n * ___\n * For example, developer wants to remove manually placeholder (+ do something else with value) on blur.\n * Without this condition, placeholder will be unexpectedly added again.\n */\n return { selection, value: initialElementState.value };\n }\n const newValue = focused || !focusedOnly\n ? value + placeholder.slice(value.length)\n : value;\n if (newValue === initialElementState.value &&\n action === 'deleteBackward') {\n const [caretIndex] = initialElementState.selection;\n return {\n value: newValue,\n selection: [caretIndex, caretIndex],\n };\n }\n return { value: newValue, selection };\n },\n ],\n };\n}\n\nfunction createZeroPlaceholdersPreprocessor(postfix = '') {\n const isLastChar = (value, [_, to]) => to >= value.length - postfix.length;\n return ({ elementState }, actionType) => {\n const { value, selection } = elementState;\n if (!value || isLastChar(value, selection)) {\n return { elementState };\n }\n const [from, to] = selection;\n const zeroes = value.slice(from, to).replaceAll(/\\d/g, '0');\n const newValue = value.slice(0, from) + zeroes + value.slice(to);\n if (!zeroes.replaceAll(/\\D/g, '')) {\n return { elementState };\n }\n if (actionType === 'validation' || (actionType === 'insert' && from === to)) {\n return {\n elementState: { selection, value: newValue },\n };\n }\n return {\n elementState: {\n selection: actionType === 'deleteBackward' || actionType === 'insert'\n ? [from, from]\n : [to, to],\n value: newValue,\n },\n };\n };\n}\n\nfunction maskitoDateOptionsGenerator({ mode, separator = '.', max, min, }) {\n const dateModeTemplate = mode.split('/').join(separator);\n return Object.assign(Object.assign({}, MASKITO_DEFAULT_OPTIONS), { mask: Array.from(dateModeTemplate).map((char) => separator.includes(char) ? char : /\\d/), overwriteMode: 'replace', preprocessors: [\n createFullWidthToHalfWidthPreprocessor(),\n createZeroPlaceholdersPreprocessor(),\n normalizeDatePreprocessor({\n dateModeTemplate,\n dateSegmentsSeparator: separator,\n }),\n createValidDatePreprocessor({\n dateModeTemplate,\n dateSegmentsSeparator: separator,\n }),\n ], postprocessors: [\n createDateSegmentsZeroPaddingPostprocessor({\n dateModeTemplate,\n dateSegmentSeparator: separator,\n splitFn: (value) => ({ dateStrings: [value] }),\n uniteFn: ([dateString = '']) => dateString,\n }),\n createMinMaxDatePostprocessor({\n min,\n max,\n dateModeTemplate,\n dateSegmentSeparator: separator,\n }),\n ] });\n}\n\nfunction maskitoParseDate(value, { mode, min = DEFAULT_MIN_DATE, max = DEFAULT_MAX_DATE }) {\n if (value.length < mode.length) {\n return null;\n }\n const dateSegments = parseDateString(value, mode);\n const parsedDate = segmentsToDate(dateSegments);\n return clamp(parsedDate, min, max);\n}\n\nconst formatter = Intl.DateTimeFormat('en-US', {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n});\nfunction toDateSegments(date) {\n return formatter\n .formatToParts(date)\n .reduce((acc, part) => (Object.assign(Object.assign({}, acc), { [part.type]: part.value })), {});\n}\n\nfunction maskitoStringifyDate(date, { mode, separator = '.', min = DEFAULT_MIN_DATE, max = DEFAULT_MAX_DATE, }) {\n const validatedDate = clamp(date, min, max);\n const segments = toDateSegments(validatedDate);\n return toDateString(segments, {\n dateMode: mode.replaceAll('/', separator),\n });\n}\n\nconst POSSIBLE_DATE_RANGE_SEPARATOR = [\n CHAR_HYPHEN,\n CHAR_EN_DASH,\n CHAR_EM_DASH,\n CHAR_MINUS,\n CHAR_JP_HYPHEN,\n];\n\nfunction createMinMaxRangeLengthPostprocessor({ dateModeTemplate, rangeSeparator, minLength, maxLength, max = DEFAULT_MAX_DATE, }) {\n if (isEmpty(minLength) && isEmpty(maxLength)) {\n return identity;\n }\n return ({ value, selection }) => {\n const dateStrings = parseDateRangeString(value, dateModeTemplate, rangeSeparator);\n if (dateStrings.length !== 2 ||\n dateStrings.some((date) => !isDateStringComplete(date, dateModeTemplate))) {\n return { value, selection };\n }\n const [fromDate, toDate] = dateStrings.map((dateString) => segmentsToDate(parseDateString(dateString, dateModeTemplate)));\n if (!fromDate || !toDate) {\n return { value, selection };\n }\n const minDistantToDate = appendDate(fromDate, Object.assign(Object.assign({}, minLength), { \n // 06.02.2023 - 07.02.2023 => {minLength: {day: 3}} => 06.02.2023 - 08.02.2023\n // \"from\"-day is included in the range\n day: (minLength === null || minLength === void 0 ? void 0 : minLength.day) && minLength.day - 1 }));\n const maxDistantToDate = !isEmpty(maxLength)\n ? appendDate(fromDate, Object.assign(Object.assign({}, maxLength), { day: (maxLength === null || maxLength === void 0 ? void 0 : maxLength.day) && maxLength.day - 1 }))\n : max;\n const minLengthClampedToDate = clamp(toDate, minDistantToDate, max);\n const minMaxLengthClampedToDate = minLengthClampedToDate > maxDistantToDate\n ? maxDistantToDate\n : minLengthClampedToDate;\n return {\n selection,\n value: dateStrings[0] +\n rangeSeparator +\n toDateString(dateToSegments(minMaxLengthClampedToDate), {\n dateMode: dateModeTemplate,\n }),\n };\n };\n}\n\nfunction createSwapDatesPostprocessor({ dateModeTemplate, rangeSeparator, }) {\n return ({ value, selection }) => {\n const dateStrings = parseDateRangeString(value, dateModeTemplate, rangeSeparator);\n const isDateRangeComplete = dateStrings.length === 2 &&\n dateStrings.every((date) => isDateStringComplete(date, dateModeTemplate));\n const [from, to] = selection;\n const caretAtTheEnd = from >= value.length;\n const allValueSelected = from === 0 && to >= value.length; // dropping text inside with a pointer\n if (!(caretAtTheEnd || allValueSelected) || !isDateRangeComplete) {\n return { value, selection };\n }\n const [fromDate, toDate] = dateStrings.map((dateString) => segmentsToDate(parseDateString(dateString, dateModeTemplate)));\n return {\n selection,\n value: fromDate && toDate && fromDate > toDate\n ? dateStrings.reverse().join(rangeSeparator)\n : value,\n };\n };\n}\n\nfunction maskitoDateRangeOptionsGenerator({ mode, min, max, minLength, maxLength, dateSeparator = '.', rangeSeparator = `${CHAR_NO_BREAK_SPACE}${CHAR_EN_DASH}${CHAR_NO_BREAK_SPACE}`, }) {\n const dateModeTemplate = mode.split('/').join(dateSeparator);\n const dateMask = Array.from(dateModeTemplate).map((char) => dateSeparator.includes(char) ? char : /\\d/);\n return Object.assign(Object.assign({}, MASKITO_DEFAULT_OPTIONS), { mask: [...dateMask, ...Array.from(rangeSeparator), ...dateMask], overwriteMode: 'replace', preprocessors: [\n createFullWidthToHalfWidthPreprocessor(),\n createFirstDateEndSeparatorPreprocessor({\n dateModeTemplate,\n dateSegmentSeparator: dateSeparator,\n firstDateEndSeparator: rangeSeparator,\n pseudoFirstDateEndSeparators: POSSIBLE_DATE_RANGE_SEPARATOR,\n }),\n createZeroPlaceholdersPreprocessor(),\n normalizeDatePreprocessor({\n dateModeTemplate,\n rangeSeparator,\n dateSegmentsSeparator: dateSeparator,\n }),\n createValidDatePreprocessor({\n dateModeTemplate,\n rangeSeparator,\n dateSegmentsSeparator: dateSeparator,\n }),\n ], postprocessors: [\n createDateSegmentsZeroPaddingPostprocessor({\n dateModeTemplate,\n dateSegmentSeparator: dateSeparator,\n splitFn: (value) => ({\n dateStrings: parseDateRangeString(value, dateModeTemplate, rangeSeparator),\n }),\n uniteFn: (validatedDateStrings, initialValue) => validatedDateStrings.reduce((acc, dateString, dateIndex) => acc +\n dateString +\n (!dateIndex && initialValue.includes(rangeSeparator)\n ? rangeSeparator\n : ''), ''),\n }),\n createMinMaxDatePostprocessor({\n min,\n max,\n dateModeTemplate,\n rangeSeparator,\n dateSegmentSeparator: dateSeparator,\n }),\n createMinMaxRangeLengthPostprocessor({\n dateModeTemplate,\n minLength,\n maxLength,\n max,\n rangeSeparator,\n }),\n createSwapDatesPostprocessor({\n dateModeTemplate,\n rangeSeparator,\n }),\n ] });\n}\n\nfunction isDateTimeStringComplete(dateTimeString, { dateMode, timeMode, dateTimeSeparator = DATE_TIME_SEPARATOR, }) {\n var _a;\n return (dateTimeString.length >=\n dateMode.length + timeMode.length + dateTimeSeparator.length &&\n ((_a = dateTimeString.split(dateTimeSeparator)[0]) !== null && _a !== void 0 ? _a : '')\n .split(/\\D/)\n .every((segment) => !/^0+$/.exec(segment)));\n}\n\nfunction maskitoTimeOptionsGenerator({ mode, timeSegmentMaxValues = {}, timeSegmentMinValues = {}, step = 0, prefix = '', postfix = '', }) {\n const hasMeridiem = mode.includes('AA');\n const enrichedTimeSegmentMaxValues = Object.assign(Object.assign(Object.assign({}, DEFAULT_TIME_SEGMENT_MAX_VALUES), (hasMeridiem ? { hours: 12 } : {})), timeSegmentMaxValues);\n const enrichedTimeSegmentMinValues = Object.assign(Object.assign(Object.assign({}, DEFAULT_TIME_SEGMENT_MIN_VALUES), (hasMeridiem ? { hours: 1 } : {})), timeSegmentMinValues);\n const maskExpression = [...prefix, ...createTimeMaskExpression(mode)];\n return {\n mask: postfix\n ? ({ value }) => cutExpression(maskExpression, value).concat(...postfix)\n : maskExpression,\n preprocessors: [\n createFullWidthToHalfWidthPreprocessor(),\n createColonConvertPreprocessor(),\n createZeroPlaceholdersPreprocessor(postfix),\n createMeridiemPreprocessor(mode),\n createInvalidTimeSegmentInsertionPreprocessor({\n timeMode: mode,\n timeSegmentMinValues: enrichedTimeSegmentMinValues,\n timeSegmentMaxValues: enrichedTimeSegmentMaxValues,\n }),\n ],\n postprocessors: [\n createMeridiemPostprocessor(mode),\n (elementState) => enrichTimeSegmentsWithZeroes(elementState, {\n mode,\n timeSegmentMaxValues: enrichedTimeSegmentMaxValues,\n }),\n maskitoPrefixPostprocessorGenerator(prefix),\n maskitoPostfixPostprocessorGenerator(postfix),\n ],\n plugins: [\n createTimeSegmentsSteppingPlugin({\n fullMode: mode,\n step,\n timeSegmentMaxValues: enrichedTimeSegmentMaxValues,\n }),\n createMeridiemSteppingPlugin(mode.indexOf('AA')),\n ],\n overwriteMode: 'replace',\n };\n}\n/**\n * Without cutting, the mask expression removes postfix on the last digit deletion\n * ___\n * Case 1 (static pattern mask expression)\n * Mask expression is [/\\d/, /\\d/, ':', /\\d/, /\\d/, ' left']\n * 12:34| left => Press Backspace => 12:3|\n * Mask correctly removes postfix because it's fixed characters after not yet inserted 4th digit.\n * ___\n * Case 2 (dynamic pattern mask expression)\n * Mask expression is [/\\d/, /\\d/, ':', /\\d/, /\\d/, ' left'] & textfield contains `12:34 left`\n * 12:34| left => Press Backspace => Mask expression becomes [/\\d/, /\\d/, ':', /\\d/, ' left'] => 12:3| left\n * Mask correctly does not remove postfix because it's trailing fixed characters\n * and all non-fixed characters were already inserted.\n */\nfunction cutExpression(expression, value) {\n let digitsCount = Math.min(value.replaceAll(/\\D/g, '').length, expression.filter((x) => typeof x !== 'string').length) || 1;\n const afterLastDigit = expression.findIndex((x) => typeof x !== 'string' && !--digitsCount) + 1;\n return expression.slice(0, afterLastDigit);\n}\n\n/**\n * Converts a formatted time string to milliseconds based on the given `options.mode`.\n *\n * @param maskedTime a formatted time string by {@link maskitoTimeOptionsGenerator} or {@link maskitoStringifyTime}\n * @param params\n */\nfunction maskitoParseTime(maskedTime, { mode, timeSegmentMaxValues = {} }) {\n var _a, _b, _c, _d;\n const maxValues = Object.assign(Object.assign({}, DEFAULT_TIME_SEGMENT_MAX_VALUES), timeSegmentMaxValues);\n const msInSecond = maxValues.milliseconds + 1;\n const msInMinute = (maxValues.seconds + 1) * msInSecond;\n const msInHour = (maxValues.minutes + 1) * msInMinute;\n const parsedTime = padEndTimeSegments(parseTimeString(maskedTime, mode));\n return (Number((_a = parsedTime.hours) !== null && _a !== void 0 ? _a : '') * msInHour +\n Number((_b = parsedTime.minutes) !== null && _b !== void 0 ? _b : '') * msInMinute +\n Number((_c = parsedTime.seconds) !== null && _c !== void 0 ? _c : '') * msInSecond +\n Number((_d = parsedTime.milliseconds) !== null && _d !== void 0 ? _d : ''));\n}\n\n/**\n * Converts milliseconds to a formatted time string based on the given `options.mode`.\n *\n * @param milliseconds unsigned integer milliseconds\n * @param params\n */\nfunction maskitoStringifyTime(milliseconds, { mode, timeSegmentMaxValues = {} }) {\n const maxValues = Object.assign(Object.assign({}, DEFAULT_TIME_SEGMENT_MAX_VALUES), timeSegmentMaxValues);\n const msInSecond = maxValues.milliseconds + 1;\n const msInMinute = (maxValues.seconds + 1) * msInSecond;\n const msInHour = (maxValues.minutes + 1) * msInMinute;\n const hours = Math.trunc(milliseconds / msInHour);\n milliseconds -= hours * msInHour;\n const minutes = Math.trunc(milliseconds / msInMinute);\n milliseconds -= minutes * msInMinute;\n const seconds = Math.trunc(milliseconds / msInSecond);\n milliseconds -= seconds * msInSecond;\n const result = padStartTimeSegments({ hours, minutes, seconds, milliseconds });\n return mode\n .replaceAll(/H+/g, result.hours)\n .replaceAll('MSS', result.milliseconds)\n .replaceAll(/M+/g, result.minutes)\n .replaceAll(/S+/g, result.seconds);\n}\n\nfunction maskitoParseDateTime(value, { dateMode, timeMode, min = DEFAULT_MIN_DATE, max = DEFAULT_MAX_DATE, dateTimeSeparator = DATE_TIME_SEPARATOR, }) {\n const [dateSegment = '', timeSegment = ''] = value.split(dateTimeSeparator);\n if (timeSegment.length !== timeMode.length) {\n return null;\n }\n const date = maskitoParseDate(dateSegment, { mode: dateMode });\n const time = maskitoParseTime(timeSegment, { mode: timeMode });\n if (!date) {\n return null;\n }\n const dateTime = new Date(Number(date) + time);\n return clamp(dateTime, min, max);\n}\n\nconst NON_DIGIT_PLACEHOLDER_RE = /[^dmy]/g;\nconst LEADING_NON_DIGIT_RE = /^\\D*/;\nfunction splitDateTimeString(dateTime, dateModeTemplate) {\n const dateDigitsCount = dateModeTemplate.replaceAll(NON_DIGIT_PLACEHOLDER_RE, '').length;\n const [date = ''] = new RegExp(`(\\\\d[^\\\\d]*){0,${dateDigitsCount - 1}}\\\\d?`).exec(dateTime) || [];\n const [dateTimeSeparator = ''] = LEADING_NON_DIGIT_RE.exec(dateTime.slice(date.length)) || [];\n return [date, dateTime.slice(date.length + dateTimeSeparator.length)];\n}\n\nfunction maskitoStringifyDateTime(date, { dateMode, timeMode, dateTimeSeparator = DATE_TIME_SEPARATOR, dateSeparator = '.', min = DEFAULT_MIN_DATE, max = DEFAULT_MAX_DATE, }) {\n const validatedDate = clamp(date, min, max);\n const dateString = maskitoStringifyDate(validatedDate, {\n mode: dateMode,\n separator: dateSeparator,\n min,\n max,\n });\n const extractedTime = Number(validatedDate) -\n Number(new Date(validatedDate.getFullYear(), validatedDate.getMonth(), validatedDate.getDate()));\n const timeString = maskitoStringifyTime(extractedTime, { mode: timeMode });\n return dateString + dateTimeSeparator + timeString;\n}\n\nfunction createMinMaxDateTimePostprocessor({ dateModeTemplate, timeMode, min = DEFAULT_MIN_DATE, max = DEFAULT_MAX_DATE, dateTimeSeparator, }) {\n return ({ value, selection }) => {\n const [dateString, timeString] = splitDateTimeString(value, dateModeTemplate);\n const parsedDate = parseDateString(dateString, dateModeTemplate);\n const parsedTime = parseTimeString(timeString, timeMode);\n if (!isDateTimeStringComplete(value, {\n dateMode: dateModeTemplate,\n timeMode,\n dateTimeSeparator,\n })) {\n const fixedDate = raiseSegmentValueToMin(parsedDate, dateModeTemplate);\n const { year, month, day } = isDateStringComplete(dateString, dateModeTemplate)\n ? dateToSegments(clamp(segmentsToDate(fixedDate), min, max))\n : fixedDate;\n const fixedValue = toDateString(Object.assign({ year,\n month,\n day }, parsedTime), { dateMode: dateModeTemplate, dateTimeSeparator, timeMode });\n const tail = value.slice(fixedValue.length);\n return {\n selection,\n value: fixedValue + tail,\n };\n }\n const date = segmentsToDate(parsedDate, parsedTime);\n const clampedDate = clamp(date, min, max);\n // trailing segment separators or meridiem characters\n const [trailingNonDigitCharacters = ''] = value.match(/\\D+$/g) || [];\n const validatedValue = toDateString(dateToSegments(clampedDate), {\n dateMode: dateModeTemplate,\n dateTimeSeparator,\n timeMode,\n }) + trailingNonDigitCharacters;\n return {\n selection,\n value: validatedValue,\n };\n };\n}\n\nfunction createValidDateTimePreprocessor({ dateModeTemplate, dateSegmentsSeparator, dateTimeSeparator, timeMode, timeSegmentMaxValues, }) {\n return ({ elementState, data }) => {\n const { value, selection } = elementState;\n if (data === dateSegmentsSeparator) {\n return {\n elementState,\n data: selection[0] === value.length ? data : '',\n };\n }\n const newCharacters = data.replaceAll(/\\D/g, '');\n if (!newCharacters) {\n return { elementState, data };\n }\n const [from, rawTo] = selection;\n let to = rawTo + data.length;\n const newPossibleValue = value.slice(0, from) + newCharacters + value.slice(to);\n const [dateString, timeString] = splitDateTimeString(newPossibleValue, dateModeTemplate);\n let validatedValue = '';\n const hasDateTimeSeparator = newPossibleValue.includes(dateTimeSeparator);\n const { validatedDateString, updatedSelection } = validateDateString({\n dateString,\n dateSegmentsSeparator,\n dateModeTemplate,\n offset: 0,\n selection: [from, to],\n });\n if (dateString && !validatedDateString) {\n return { elementState, data: '' }; // prevent changes\n }\n to = updatedSelection[1];\n validatedValue += validatedDateString;\n const updatedTimeState = enrichTimeSegmentsWithZeroes({ value: timeString, selection: [from, to] }, { mode: timeMode, timeSegmentMaxValues });\n to = updatedTimeState.selection[1];\n validatedValue += hasDateTimeSeparator\n ? dateTimeSeparator + updatedTimeState.value\n : updatedTimeState.value;\n const newData = validatedValue.slice(from, to);\n return {\n elementState: {\n selection,\n value: validatedValue.slice(0, from) +\n newData\n .split(dateSegmentsSeparator)\n .map((segment) => '0'.repeat(segment.length))\n .join(dateSegmentsSeparator) +\n validatedValue.slice(to),\n },\n data: newData,\n };\n };\n}\n\nfunction maskitoDateTimeOptionsGenerator({ dateMode, timeMode, dateSeparator = '.', min, max, dateTimeSeparator = DATE_TIME_SEPARATOR, timeStep = 0, }) {\n const hasMeridiem = timeMode.includes('AA');\n const dateModeTemplate = dateMode.split('/').join(dateSeparator);\n const timeSegmentMaxValues = Object.assign(Object.assign({}, DEFAULT_TIME_SEGMENT_MAX_VALUES), (hasMeridiem ? { hours: 12 } : {}));\n const timeSegmentMinValues = Object.assign(Object.assign({}, DEFAULT_TIME_SEGMENT_MIN_VALUES), (hasMeridiem ? { hours: 1 } : {}));\n const fullMode = `${dateModeTemplate}${dateTimeSeparator}${timeMode}`;\n return Object.assign(Object.assign({}, MASKITO_DEFAULT_OPTIONS), { mask: [\n ...Array.from(dateModeTemplate).map((char) => dateSeparator.includes(char) ? char : /\\d/),\n ...dateTimeSeparator.split(''),\n ...createTimeMaskExpression(timeMode),\n ], overwriteMode: 'replace', preprocessors: [\n createFullWidthToHalfWidthPreprocessor(),\n createColonConvertPreprocessor(),\n createFirstDateEndSeparatorPreprocessor({\n dateModeTemplate,\n dateSegmentSeparator: dateSeparator,\n firstDateEndSeparator: dateTimeSeparator,\n pseudoFirstDateEndSeparators: dateTimeSeparator.split(''),\n }),\n createZeroPlaceholdersPreprocessor(),\n createMeridiemPreprocessor(timeMode),\n normalizeDatePreprocessor({\n dateModeTemplate,\n dateSegmentsSeparator: dateSeparator,\n dateTimeSeparator,\n }),\n createInvalidTimeSegmentInsertionPreprocessor({\n timeMode,\n timeSegmentMinValues,\n timeSegmentMaxValues,\n parseValue: (x) => {\n const [dateString, timeString] = splitDateTimeString(x, dateModeTemplate);\n return { timeString, restValue: dateString + dateTimeSeparator };\n },\n }),\n createValidDateTimePreprocessor({\n dateModeTemplate,\n dateSegmentsSeparator: dateSeparator,\n dateTimeSeparator,\n timeMode,\n timeSegmentMaxValues,\n }),\n ], postprocessors: [\n createMeridiemPostprocessor(timeMode),\n createDateSegmentsZeroPaddingPostprocessor({\n dateModeTemplate,\n dateSegmentSeparator: dateSeparator,\n splitFn: (value) => {\n const [dateString, timeString] = splitDateTimeString(value, dateModeTemplate);\n return { dateStrings: [dateString], restPart: timeString };\n },\n uniteFn: ([validatedDateString], initialValue) => validatedDateString +\n (initialValue.includes(dateTimeSeparator) ? dateTimeSeparator : ''),\n }),\n createMinMaxDateTimePostprocessor({\n min,\n max,\n dateModeTemplate,\n timeMode,\n dateTimeSeparator,\n }),\n ], plugins: [\n createTimeSegmentsSteppingPlugin({\n step: timeStep,\n fullMode,\n timeSegmentMaxValues: DEFAULT_TIME_SEGMENT_MAX_VALUES,\n }),\n createMeridiemSteppingPlugin(fullMode.indexOf('AA')),\n ] });\n}\n\n/**\n * It drops prefix and postfix from data\n * Needed for case, when prefix or postfix contain decimalSeparator, to ignore it in resulting number\n * @example User pastes '{prefix}123.45{postfix}' => 123.45\n */\nfunction createAffixesFilterPreprocessor({ prefix, postfix, }) {\n return ({ elementState, data }) => {\n const { cleanValue: cleanData } = extractAffixes(data, {\n prefix,\n postfix,\n });\n return {\n elementState,\n data: cleanData,\n };\n };\n}\n\nfunction generateMaskExpression({ decimalPseudoSeparators, decimalSeparator, maximumFractionDigits, min, minusSign, postfix, prefix, pseudoMinuses, thousandSeparator, }) {\n const computedPrefix = min < 0 && [minusSign, ...pseudoMinuses].includes(prefix)\n ? ''\n : computeAllOptionalCharsRegExp(prefix);\n const digit = String.raw `\\d`;\n const optionalMinus = min < 0 ? `[${minusSign}${pseudoMinuses.map((x) => `\\\\${x}`).join('')}]?` : '';\n const integerPart = thousandSeparator\n ? `[${digit}${escapeRegExp(thousandSeparator).replaceAll(/\\s/g, String.raw `\\s`)}]*`\n : `[${digit}]*`;\n const precisionPart = Number.isFinite(maximumFractionDigits)\n ? maximumFractionDigits\n : '';\n const decimalPart = maximumFractionDigits > 0\n ? `([${escapeRegExp(decimalSeparator)}${decimalPseudoSeparators\n .map(escapeRegExp)\n .join('')}]${digit}{0,${precisionPart}})?`\n : '';\n const computedPostfix = computeAllOptionalCharsRegExp(postfix);\n return new RegExp(`^${computedPrefix}${optionalMinus}${integerPart}${decimalPart}${computedPostfix}$`);\n}\nfunction computeAllOptionalCharsRegExp(str) {\n return str\n ? `${str\n .split('')\n .map((char) => `${escapeRegExp(char)}?`)\n .join('')}`\n : '';\n}\n\nfunction maskitoParseNumber(maskedNumber, \n// TODO(v4): decimalSeparatorOrParams: MaskitoNumberParams | string => params: MaskitoNumberParams = {}\ndecimalSeparatorOrParams = {}) {\n const { decimalSeparator = '.', minusSign = '' } = typeof decimalSeparatorOrParams === 'string'\n ? { decimalSeparator: decimalSeparatorOrParams }\n : decimalSeparatorOrParams;\n const hasNegativeSign = !!new RegExp(`^\\\\D*[${escapeRegExp(minusSign)}\\\\${DEFAULT_PSEUDO_MINUSES.join('\\\\')}]`).exec(maskedNumber);\n const escapedDecimalSeparator = escapeRegExp(decimalSeparator);\n const unmaskedNumber = maskedNumber\n // drop all decimal separators not followed by a digit\n .replaceAll(new RegExp(`${escapedDecimalSeparator}(?!\\\\d)`, 'g'), '')\n // drop all non-digit characters except decimal separator\n .replaceAll(new RegExp(`[^\\\\d${escapedDecimalSeparator}]`, 'g'), '')\n .replace(decimalSeparator, decimalSeparator && '.');\n if (unmaskedNumber) {\n const sign = hasNegativeSign ? CHAR_HYPHEN : '';\n return Number(`${sign}${unmaskedNumber}`);\n }\n return NaN;\n}\n\nfunction maskitoStringifyNumber(number, params) {\n if (Number.isNaN(number) || number === null) {\n return '';\n }\n const { min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER, decimalSeparator = '.', } = params;\n const value = clamp(number, min, max).toString().replace('.', decimalSeparator);\n return maskitoTransform(value, maskitoNumberOptionsGenerator(params));\n}\n\n/**\n * Convert number to string with replacing exponent part on decimals\n *\n * @param value the number\n * @return string representation of a number\n */\nfunction stringifyNumberWithoutExp(value) {\n var _a;\n const valueAsString = String(value);\n const [numberPart = '', expPart] = valueAsString.split('e-');\n let valueWithoutExp = valueAsString;\n if (expPart) {\n const [, fractionalPart] = numberPart.split('.');\n const decimalDigits = Number(expPart) + ((_a = fractionalPart === null || fractionalPart === void 0 ? void 0 : fractionalPart.length) !== null && _a !== void 0 ? _a : 0);\n valueWithoutExp = value.toFixed(decimalDigits);\n }\n return valueWithoutExp;\n}\n\nfunction toNumberParts(value, { decimalSeparator, minusSign }) {\n const [integerWithMinus = '', decimalPart = ''] = decimalSeparator\n ? value.split(decimalSeparator)\n : [value];\n const escapedMinus = escapeRegExp(minusSign);\n const [, minus = '', integerPart = ''] = new RegExp(`^(?:[^\\\\d${escapedMinus}])?(${escapedMinus})?(.*)`).exec(integerWithMinus) || [];\n return { minus, integerPart, decimalPart };\n}\n\nfunction validateDecimalPseudoSeparators({ decimalSeparator, thousandSeparator, decimalPseudoSeparators = DEFAULT_DECIMAL_PSEUDO_SEPARATORS, }) {\n return decimalPseudoSeparators.filter((char) => char !== thousandSeparator && char !== decimalSeparator);\n}\n\n/**\n * If `minimumFractionDigits` is `>0`, it pads decimal part with zeroes\n * (until number of digits after decimalSeparator is equal to the `minimumFractionDigits`).\n * @example 1,42 => (`minimumFractionDigits` is equal to 4) => 1,4200.\n */\nfunction createDecimalZeroPaddingPostprocessor({ decimalSeparator, minimumFractionDigits, prefix, postfix, minusSign, }) {\n if (!minimumFractionDigits) {\n return identity;\n }\n return ({ value, selection }) => {\n const { cleanValue, extractedPrefix, extractedPostfix } = extractAffixes(value, {\n prefix,\n postfix,\n });\n if (Number.isNaN(maskitoParseNumber(cleanValue, { decimalSeparator, minusSign }))) {\n return { value, selection };\n }\n const [integerPart, decimalPart = ''] = cleanValue.split(decimalSeparator);\n return {\n value: extractedPrefix +\n integerPart +\n decimalSeparator +\n decimalPart.padEnd(minimumFractionDigits, '0') +\n extractedPostfix,\n selection,\n };\n };\n}\n\n/**\n * Make textfield empty if there is no integer part and all decimal digits are zeroes.\n * @example 0|,00 => Backspace => Empty.\n * @example -0|,00 => Backspace => -.\n * @example ,42| => Backspace x2 => ,|00 => Backspace => Empty\n */\nfunction emptyPostprocessor({ prefix, postfix, decimalSeparator, minusSign, }) {\n return ({ value, selection }) => {\n const [caretIndex] = selection;\n const { cleanValue, extractedPrefix, extractedPostfix } = extractAffixes(value, {\n prefix,\n postfix,\n });\n const { minus, integerPart, decimalPart } = toNumberParts(cleanValue, {\n decimalSeparator,\n minusSign,\n });\n const aloneDecimalSeparator = !integerPart &&\n !decimalPart &&\n Boolean(decimalSeparator) &&\n cleanValue.includes(decimalSeparator);\n if ((!integerPart &&\n !Number(decimalPart) &&\n caretIndex === (minus + extractedPrefix).length) ||\n aloneDecimalSeparator) {\n return {\n selection,\n value: extractedPrefix + minus + extractedPostfix,\n };\n }\n return { value, selection };\n };\n}\n\n/**\n * This preprocessor works only once at initialization phase (when `new Maskito(...)` is executed).\n * This preprocessor helps to avoid conflicts during transition from one mask to another (for the same input).\n * For example, the developer changes postfix (or other mask's props) during run-time.\n * ```\n * let maskitoOptions = maskitoNumberOptionsGenerator({postfix: ' year'});\n * // [3 seconds later]\n * maskitoOptions = maskitoNumberOptionsGenerator({postfix: ' years'});\n * ```\n */\nfunction createInitializationOnlyPreprocessor({ decimalPseudoSeparators, decimalSeparator, minusSign, postfix, prefix, pseudoMinuses, }) {\n let isInitializationPhase = true;\n const cleanNumberMask = generateMaskExpression({\n decimalSeparator,\n decimalPseudoSeparators,\n pseudoMinuses,\n prefix: '',\n postfix: '',\n thousandSeparator: '',\n maximumFractionDigits: Infinity,\n min: Number.MIN_SAFE_INTEGER,\n minusSign,\n });\n return ({ elementState, data }) => {\n if (!isInitializationPhase) {\n return { elementState, data };\n }\n isInitializationPhase = false;\n const { value, selection } = elementState;\n const [from, to] = selection;\n const { extractedPrefix, cleanValue, extractedPostfix } = extractAffixes(value, {\n prefix,\n postfix,\n });\n const cleanState = maskitoTransform({\n selection: [\n Math.max(from - extractedPrefix.length, 0),\n clamp(to - extractedPrefix.length, 0, cleanValue.length),\n ],\n value: cleanValue,\n }, {\n mask: cleanNumberMask,\n });\n const [cleanFrom, cleanTo] = cleanState.selection;\n return {\n elementState: {\n selection: [\n cleanFrom + extractedPrefix.length,\n cleanTo + extractedPrefix.length,\n ],\n value: extractedPrefix + cleanState.value + extractedPostfix,\n },\n data,\n };\n };\n}\n\n/**\n * It removes repeated leading zeroes for integer part.\n * @example 0,|00005 => Backspace => |5\n * @example -0,|00005 => Backspace => -|5\n * @example User types \"000000\" => 0|\n * @example 0| => User types \"5\" => 5|\n */\nfunction createLeadingZeroesValidationPostprocessor({ decimalSeparator, thousandSeparator, prefix, postfix, }) {\n const trimLeadingZeroes = (value) => {\n const escapedThousandSeparator = escapeRegExp(thousandSeparator);\n return value\n .replace(\n // all leading zeroes followed by another zero\n new RegExp(`^(\\\\D+)?[0${escapedThousandSeparator}]+(?=0)`), '$1')\n .replace(\n // zero followed by not-zero digit\n new RegExp(`^(\\\\D+)?[0${escapedThousandSeparator}]+(?=[1-9])`), '$1');\n };\n const countTrimmedZeroesBefore = (value, index) => {\n const valueBefore = value.slice(0, index);\n const followedByZero = value.slice(index).startsWith('0');\n return (valueBefore.length -\n trimLeadingZeroes(valueBefore).length +\n (followedByZero ? 1 : 0));\n };\n return ({ value, selection }) => {\n const [from, to] = selection;\n const { cleanValue, extractedPrefix, extractedPostfix } = extractAffixes(value, {\n prefix,\n postfix,\n });\n const hasDecimalSeparator = Boolean(decimalSeparator) && cleanValue.includes(decimalSeparator);\n const [integerPart = '', decimalPart = ''] = decimalSeparator\n ? cleanValue.split(decimalSeparator)\n : [cleanValue];\n const zeroTrimmedIntegerPart = trimLeadingZeroes(integerPart);\n if (integerPart === zeroTrimmedIntegerPart) {\n return { value, selection };\n }\n const newFrom = from - countTrimmedZeroesBefore(value, from);\n const newTo = to - countTrimmedZeroesBefore(value, to);\n return {\n value: extractedPrefix +\n zeroTrimmedIntegerPart +\n (hasDecimalSeparator ? decimalSeparator : '') +\n decimalPart +\n extractedPostfix,\n selection: [Math.max(newFrom, 0), Math.max(newTo, 0)],\n };\n };\n}\n\n/**\n * This postprocessor is connected with {@link createMinMaxPlugin}:\n * both validate `min`/`max` bounds of entered value (but at the different point of time).\n */\nfunction createMinMaxPostprocessor({ min, max, decimalSeparator, minusSign, }) {\n return ({ value, selection }) => {\n const parsedNumber = maskitoParseNumber(value, { decimalSeparator, minusSign });\n const limitedValue = \n /**\n * We cannot limit lower bound if user enters positive number.\n * The same for upper bound and negative number.\n * ___\n * @example (min = 5)\n * Empty input => Without this condition user cannot type 42 (the first digit will be rejected)\n * ___\n * @example (max = -10)\n * Value is -10 => Without this condition user cannot delete 0 to enter another digit\n */\n parsedNumber > 0 ? Math.min(parsedNumber, max) : Math.max(parsedNumber, min);\n if (parsedNumber && limitedValue !== parsedNumber) {\n const newValue = `${limitedValue}`\n .replace('.', decimalSeparator)\n .replace(CHAR_HYPHEN, minusSign);\n return {\n value: newValue,\n selection: [newValue.length, newValue.length],\n };\n }\n return {\n value,\n selection,\n };\n };\n}\n\n/**\n * Manage caret-navigation when user \"deletes\" non-removable digits or separators\n * @example 1,|42 => Backspace => 1|,42 (only if `minimumFractionDigits` is `>0`)\n * @example 1|,42 => Delete => 1,|42 (only if `minimumFractionDigits` is `>0`)\n * @example 0,|00 => Delete => 0,0|0 (only if `minimumFractionDigits` is `>0`)\n * @example 1 |000 => Backspace => 1| 000 (always)\n */\nfunction createNonRemovableCharsDeletionPreprocessor({ decimalSeparator, thousandSeparator, minimumFractionDigits, }) {\n return ({ elementState, data }, actionType) => {\n const { value, selection } = elementState;\n const [from, to] = selection;\n const selectedCharacters = value.slice(from, to);\n const nonRemovableSeparators = minimumFractionDigits\n ? [decimalSeparator, thousandSeparator]\n : [thousandSeparator];\n const areNonRemovableZeroesSelected = Boolean(minimumFractionDigits) &&\n from > value.indexOf(decimalSeparator) &&\n Boolean(selectedCharacters.match(/^0+$/gi));\n if ((actionType !== 'deleteBackward' && actionType !== 'deleteForward') ||\n (!nonRemovableSeparators.includes(selectedCharacters) &&\n !areNonRemovableZeroesSelected)) {\n return {\n elementState,\n data,\n };\n }\n return {\n elementState: {\n value,\n selection: actionType === 'deleteForward' ? [to, to] : [from, from],\n },\n data,\n };\n };\n}\n\n/**\n * It pads integer part with zero if user types decimal separator (for empty input).\n * @example Empty input => User types \",\" (decimal separator) => 0,|\n */\nfunction createNotEmptyIntegerPartPreprocessor({ decimalSeparator, maximumFractionDigits, prefix, postfix, }) {\n const startWithDecimalSepRegExp = new RegExp(`^\\\\D*${escapeRegExp(decimalSeparator)}`);\n return ({ elementState, data }) => {\n const { value, selection } = elementState;\n const { cleanValue, extractedPrefix } = extractAffixes(value, {\n prefix,\n postfix,\n });\n const [from, to] = selection;\n const cleanFrom = clamp(from - extractedPrefix.length, 0, cleanValue.length);\n const cleanTo = clamp(to - extractedPrefix.length, 0, cleanValue.length);\n if (maximumFractionDigits <= 0 ||\n cleanValue.slice(0, cleanFrom).includes(decimalSeparator) ||\n cleanValue.slice(cleanTo).includes(decimalSeparator) ||\n !data.match(startWithDecimalSepRegExp)) {\n return { elementState, data };\n }\n const digitsBeforeCursor = /\\d+/.exec(cleanValue.slice(0, cleanFrom));\n return {\n elementState,\n data: digitsBeforeCursor ? data : `0${data}`,\n };\n };\n}\n\n/**\n * It replaces pseudo characters with valid one.\n * @example User types '.' (but separator is equal to comma) => dot is replaced with comma.\n * @example User types hyphen / en-dash / em-dash => it is replaced with minus.\n */\nfunction createPseudoCharactersPreprocessor({ validCharacter, pseudoCharacters, prefix, postfix, }) {\n const pseudoCharactersRegExp = new RegExp(`[${pseudoCharacters.join('')}]`, 'gi');\n return ({ elementState, data }) => {\n const { value, selection } = elementState;\n const { cleanValue, extractedPostfix, extractedPrefix } = extractAffixes(value, {\n prefix,\n postfix,\n });\n return {\n elementState: {\n selection,\n value: extractedPrefix +\n cleanValue.replace(pseudoCharactersRegExp, validCharacter) +\n extractedPostfix,\n },\n data: data.replace(pseudoCharactersRegExp, validCharacter),\n };\n };\n}\n\n/**\n * It rejects new typed decimal separator if it already exists in text field.\n * Behaviour is similar to native <input type=\"number\"> (Chrome).\n * @example 1|23,45 => Press comma (decimal separator) => 1|23,45 (do nothing).\n */\nfunction createRepeatedDecimalSeparatorPreprocessor({ decimalSeparator, prefix, postfix, }) {\n if (!decimalSeparator) {\n return identity;\n }\n return ({ elementState, data }) => {\n const { value, selection } = elementState;\n const [from, to] = selection;\n const { cleanValue } = extractAffixes(value, { prefix, postfix });\n return {\n elementState,\n data: !cleanValue.includes(decimalSeparator) ||\n value.slice(from, to + 1).includes(decimalSeparator)\n ? data\n : data.replaceAll(new RegExp(escapeRegExp(decimalSeparator), 'gi'), ''),\n };\n };\n}\n\n/**\n * It adds symbol for separating thousands.\n * @example 1000000 => (thousandSeparator is equal to space) => 1 000 000.\n */\nfunction createThousandSeparatorPostprocessor({ thousandSeparator, decimalSeparator, prefix, postfix, minusSign, }) {\n if (!thousandSeparator) {\n return identity;\n }\n const isAllSpaces = (...chars) => chars.every((x) => /\\s/.test(x));\n return ({ value, selection }) => {\n const [initialFrom, initialTo] = selection;\n let [from, to] = selection;\n const { cleanValue, extractedPostfix, extractedPrefix } = extractAffixes(value, {\n prefix,\n postfix,\n });\n const { minus, integerPart, decimalPart } = toNumberParts(cleanValue, {\n decimalSeparator,\n minusSign,\n });\n const hasDecimalSeparator = decimalSeparator && cleanValue.includes(decimalSeparator);\n const deletedChars = cleanValue.length -\n (minus +\n integerPart +\n (hasDecimalSeparator ? decimalSeparator + decimalPart : '')).length;\n if (deletedChars > 0 && initialFrom && initialFrom <= deletedChars) {\n from -= deletedChars;\n }\n if (deletedChars > 0 && initialTo && initialTo <= deletedChars) {\n to -= deletedChars;\n }\n const processedIntegerPart = Array.from(integerPart).reduceRight((formattedValuePart, char, i) => {\n const isLeadingThousandSeparator = !i && char === thousandSeparator;\n const isPositionForSeparator = !isLeadingThousandSeparator &&\n Boolean(formattedValuePart.length) &&\n (formattedValuePart.length + 1) % 4 === 0;\n const isSeparator = char === thousandSeparator || isAllSpaces(char, thousandSeparator);\n if (isPositionForSeparator && isSeparator) {\n return thousandSeparator + formattedValuePart;\n }\n if (!isPositionForSeparator && isSeparator) {\n if (i && i <= initialFrom) {\n from--;\n }\n if (i && i <= initialTo) {\n to--;\n }\n return formattedValuePart;\n }\n if (!isPositionForSeparator) {\n return char + formattedValuePart;\n }\n if (i < initialFrom) {\n from++;\n }\n if (i < initialTo) {\n to++;\n }\n return char + thousandSeparator + formattedValuePart;\n }, '');\n return {\n value: extractedPrefix +\n minus +\n processedIntegerPart +\n (hasDecimalSeparator ? decimalSeparator : '') +\n decimalPart +\n extractedPostfix,\n selection: [from, to],\n };\n };\n}\n\n/**\n * It drops decimal part if `maximumFractionDigits` is zero.\n * @example User pastes '123.45' (but `maximumFractionDigits` is zero) => 123\n */\nfunction createZeroPrecisionPreprocessor({ maximumFractionDigits, decimalSeparator, prefix, postfix, }) {\n if (maximumFractionDigits > 0 ||\n !decimalSeparator // all separators should be treated only as thousand separators\n ) {\n return identity;\n }\n const decimalPartRegExp = new RegExp(`${escapeRegExp(decimalSeparator)}.*$`, 'g');\n return ({ elementState, data }) => {\n const { value, selection } = elementState;\n const { cleanValue, extractedPrefix, extractedPostfix } = extractAffixes(value, {\n prefix,\n postfix,\n });\n const [from, to] = selection;\n const newValue = extractedPrefix +\n cleanValue.replace(decimalPartRegExp, '') +\n extractedPostfix;\n return {\n elementState: {\n selection: [\n Math.min(from, newValue.length),\n Math.min(to, newValue.length),\n ],\n value: newValue,\n },\n data: data.replace(decimalPartRegExp, ''),\n };\n };\n}\n\nconst DUMMY_SELECTION = [0, 0];\n/**\n * It removes repeated leading zeroes for integer part on blur-event.\n * @example 000000 => blur => 0\n * @example 00005 => blur => 5\n */\nfunction createLeadingZeroesValidationPlugin({ decimalSeparator, thousandSeparator, prefix, postfix, }) {\n const dropRepeatedLeadingZeroes = createLeadingZeroesValidationPostprocessor({\n decimalSeparator,\n thousandSeparator,\n prefix,\n postfix,\n });\n return maskitoEventHandler('blur', (element) => {\n const newValue = dropRepeatedLeadingZeroes({\n value: element.value,\n selection: DUMMY_SELECTION,\n }, { value: '', selection: DUMMY_SELECTION }).value;\n maskitoUpdateElement(element, newValue);\n }, { capture: true });\n}\n\n/**\n * This plugin is connected with {@link createMinMaxPostprocessor}:\n * both validate `min`/`max` bounds of entered value (but at the different point of time).\n */\nfunction createMinMaxPlugin({ min, max, decimalSeparator, minusSign, }) {\n return maskitoEventHandler('blur', (element, options) => {\n const parsedNumber = maskitoParseNumber(element.value, {\n decimalSeparator,\n minusSign,\n });\n const clampedNumber = clamp(parsedNumber, min, max);\n if (!Number.isNaN(parsedNumber) && parsedNumber !== clampedNumber) {\n maskitoUpdateElement(element, maskitoTransform(stringifyNumberWithoutExp(clampedNumber), options));\n }\n }, { capture: true });\n}\n\n/**\n * It pads EMPTY integer part with zero if decimal parts exists.\n * It works on blur event only!\n * @example 1|,23 => Backspace => Blur => 0,23\n */\nfunction createNotEmptyIntegerPlugin({ decimalSeparator, prefix, postfix, }) {\n if (!decimalSeparator) {\n return noop;\n }\n return maskitoEventHandler('blur', (element) => {\n const { cleanValue, extractedPostfix, extractedPrefix } = extractAffixes(element.value, { prefix, postfix });\n const newValue = extractedPrefix +\n cleanValue.replace(new RegExp(`^(\\\\D+)?${escapeRegExp(decimalSeparator)}`), `$10${decimalSeparator}`) +\n extractedPostfix;\n maskitoUpdateElement(element, newValue);\n }, { capture: true });\n}\n\nconst DEFAULT_PSEUDO_MINUSES = [\n CHAR_HYPHEN,\n CHAR_EN_DASH,\n CHAR_EM_DASH,\n CHAR_JP_HYPHEN,\n CHAR_MINUS,\n];\nfunction maskitoNumberOptionsGenerator({ max = Number.MAX_SAFE_INTEGER, min = Number.MIN_SAFE_INTEGER, precision = 0, thousandSeparator = CHAR_NO_BREAK_SPACE, decimalSeparator = '.', decimalPseudoSeparators, decimalZeroPadding = false, prefix: unsafePrefix = '', postfix = '', minusSign = CHAR_MINUS, maximumFractionDigits = precision, minimumFractionDigits = decimalZeroPadding ? maximumFractionDigits : 0, } = {}) {\n const pseudoMinuses = DEFAULT_PSEUDO_MINUSES.filter((char) => char !== thousandSeparator && char !== decimalSeparator && char !== minusSign);\n const validatedDecimalPseudoSeparators = validateDecimalPseudoSeparators({\n decimalSeparator,\n thousandSeparator,\n decimalPseudoSeparators,\n });\n const prefix = unsafePrefix.endsWith(decimalSeparator) && maximumFractionDigits > 0\n ? `${unsafePrefix}${CHAR_ZERO_WIDTH_SPACE}`\n : unsafePrefix;\n const initializationOnlyPreprocessor = createInitializationOnlyPreprocessor({\n decimalSeparator,\n decimalPseudoSeparators: validatedDecimalPseudoSeparators,\n pseudoMinuses,\n prefix,\n postfix,\n minusSign,\n });\n decimalSeparator =\n maximumFractionDigits <= 0 && decimalSeparator === thousandSeparator\n ? ''\n : decimalSeparator;\n return Object.assign(Object.assign({}, MASKITO_DEFAULT_OPTIONS), { mask: generateMaskExpression({\n decimalSeparator,\n maximumFractionDigits,\n min,\n minusSign,\n postfix,\n prefix,\n pseudoMinuses,\n thousandSeparator,\n decimalPseudoSeparators: validatedDecimalPseudoSeparators,\n }), preprocessors: [\n createFullWidthToHalfWidthPreprocessor(),\n initializationOnlyPreprocessor,\n createAffixesFilterPreprocessor({ prefix, postfix }),\n createPseudoCharactersPreprocessor({\n validCharacter: minusSign,\n pseudoCharacters: pseudoMinuses,\n prefix,\n postfix,\n }),\n createPseudoCharactersPreprocessor({\n validCharacter: decimalSeparator,\n pseudoCharacters: validatedDecimalPseudoSeparators,\n prefix,\n postfix,\n }),\n createNotEmptyIntegerPartPreprocessor({\n decimalSeparator,\n maximumFractionDigits,\n prefix,\n postfix,\n }),\n createNonRemovableCharsDeletionPreprocessor({\n decimalSeparator,\n minimumFractionDigits,\n thousandSeparator,\n }),\n createZeroPrecisionPreprocessor({\n maximumFractionDigits,\n decimalSeparator,\n prefix,\n postfix,\n }),\n createRepeatedDecimalSeparatorPreprocessor({\n decimalSeparator,\n prefix,\n postfix,\n }),\n ], postprocessors: [\n createMinMaxPostprocessor({ decimalSeparator, min, max, minusSign }),\n maskitoPrefixPostprocessorGenerator(prefix),\n maskitoPostfixPostprocessorGenerator(postfix),\n createThousandSeparatorPostprocessor({\n decimalSeparator,\n thousandSeparator,\n prefix,\n postfix,\n minusSign,\n }),\n createDecimalZeroPaddingPostprocessor({\n decimalSeparator,\n prefix,\n postfix,\n minusSign,\n minimumFractionDigits: Math.min(minimumFractionDigits, maximumFractionDigits),\n }),\n emptyPostprocessor({\n prefix,\n postfix,\n decimalSeparator,\n minusSign,\n }),\n ], plugins: [\n createLeadingZeroesValidationPlugin({\n decimalSeparator,\n thousandSeparator,\n prefix,\n postfix,\n }),\n createNotEmptyIntegerPlugin({\n decimalSeparator,\n prefix,\n postfix,\n }),\n createMinMaxPlugin({ min, max, decimalSeparator, minusSign }),\n ], overwriteMode: minimumFractionDigits > 0\n ? ({ value, selection: [from] }) => from <= value.indexOf(decimalSeparator) ? 'shift' : 'replace'\n : 'shift' });\n}\n\nexport { maskitoAddOnFocusPlugin, maskitoCaretGuard, maskitoDateOptionsGenerator, maskitoDateRangeOptionsGenerator, maskitoDateTimeOptionsGenerator, maskitoEventHandler, maskitoNumberOptionsGenerator, maskitoParseDate, maskitoParseDateTime, maskitoParseNumber, maskitoParseTime, maskitoPostfixPostprocessorGenerator, maskitoPrefixPostprocessorGenerator, maskitoRejectEvent, maskitoRemoveOnBlurPlugin, maskitoSelectionChangeHandler, maskitoStringifyDate, maskitoStringifyDateTime, maskitoStringifyNumber, maskitoStringifyTime, maskitoTimeOptionsGenerator, maskitoWithPlaceholder };\n","import { MASKITO_DEFAULT_ELEMENT_PREDICATE, Maskito } from '@maskito/core';\nimport { useLayoutEffect, useEffect, useState, useCallback, useRef } from 'react';\n\n/**\n * React adds `_valueTracker` property to every textfield elements for its internal logic with controlled inputs.\n * Also, React monkey-patches `value`-setter of the native textfield elements to update state inside its `_valueTracker`.\n * @see https://github.com/facebook/react/blob/ee76351917106c6146745432a52e9a54a41ee181/packages/react-dom-bindings/src/client/inputValueTracking.js#L12-L19\n *\n * React depends on `_valueTracker` to know if the value was changed to decide:\n * - should it revert state for controlled input (if its state handler does not update value)\n * - should it dispatch its synthetic (not native!) `change` event\n *\n * When Maskito patches textfield with a valid value (using setter of `value` property),\n * it also updates `_valueTracker` state and React mistakenly decides that nothing has happened.\n * React should update `_valueTracker` state by itself!\n * ___\n * @see https://github.com/facebook/react/blob/ee76351917106c6146745432a52e9a54a41ee181/packages/react-dom-bindings/src/client/inputValueTracking.js#L173-L177\n */\nfunction adaptReactControlledElement(element) {\n var _a;\n const valueSetter = (_a = Object.getOwnPropertyDescriptor(getPrototype(element), 'value')) === null || _a === void 0 ? void 0 : _a.set;\n if (!valueSetter) {\n return element;\n }\n const adapter = {\n set value(value) {\n /**\n * Mimics exactly what happens when a browser silently changes the value property.\n * Bypass the React monkey-patching.\n */\n valueSetter.call(element, value);\n }\n };\n return new Proxy(element, {\n get(target, prop) {\n const nativeProperty = target[prop];\n return typeof nativeProperty === 'function' ? nativeProperty.bind(target) : nativeProperty;\n },\n // eslint-disable-next-line @typescript-eslint/max-params\n set(target, prop, val, receiver) {\n return Reflect.set(prop in adapter ? adapter : target, prop, val, receiver);\n }\n });\n}\nfunction getPrototype(element) {\n var _a, _b;\n switch (element.nodeName) {\n case 'INPUT':\n return (_a = globalThis.HTMLInputElement) === null || _a === void 0 ? void 0 : _a.prototype;\n case 'TEXTAREA':\n return (_b = globalThis.HTMLTextAreaElement) === null || _b === void 0 ? void 0 : _b.prototype;\n default:\n return null;\n }\n}\n\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\nfunction isThenable(x) {\n return x && typeof x === 'object' && 'then' in x;\n}\n/**\n * Hook for convenient use of Maskito in React\n * @description For controlled inputs use `onInput` event\n * @param options options used for creating Maskito\n * @param elementPredicate function that can help find nested Input or TextArea\n * @returns ref callback to pass it in React Element\n * @example\n * // To avoid unnecessary hook runs with Maskito recreation pass named variables\n * // good example ✅\n * useMaskito({ options: maskitoOptions, elementPredicate: maskitoPredicate })\n *\n * // bad example ❌\n * useMaskito({ options: { mask: /^.*$/ }, elementPredicate: () => e.querySelector('input') })\n */\nconst useMaskito = ({\n options = null,\n elementPredicate = MASKITO_DEFAULT_ELEMENT_PREDICATE\n} = {}) => {\n const [hostElement, setHostElement] = useState(null);\n const [element, setElement] = useState(null);\n const onRefChange = useCallback(node => {\n setHostElement(node);\n }, []);\n const latestPredicateRef = useRef(elementPredicate);\n const latestOptionsRef = useRef(options);\n latestPredicateRef.current = elementPredicate;\n latestOptionsRef.current = options;\n useIsomorphicLayoutEffect(() => {\n if (!hostElement) {\n return;\n }\n const elementOrPromise = elementPredicate(hostElement);\n if (isThenable(elementOrPromise)) {\n void elementOrPromise.then(el => {\n if (latestPredicateRef.current === elementPredicate && latestOptionsRef.current === options) {\n setElement(el);\n }\n });\n } else {\n setElement(elementOrPromise);\n }\n }, [hostElement, elementPredicate, latestPredicateRef, options, latestOptionsRef]);\n useIsomorphicLayoutEffect(() => {\n if (!element || !options) {\n return;\n }\n const maskedElement = new Maskito(adaptReactControlledElement(element), options);\n return () => {\n maskedElement.destroy();\n setElement(null);\n };\n }, [options, element]);\n return onRefChange;\n};\n\nexport { useMaskito };\n"],"names":[],"mappings":"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","x_google_ignoreList":[0,1,2]}
|