@servicetitan/anvil2 1.46.1 → 1.46.3
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 +48 -0
- package/dist/{Alert-BNGvfMAV.js → Alert-CPOBY6O5.js} +2 -2
- package/dist/{Alert-BNGvfMAV.js.map → Alert-CPOBY6O5.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-CoheCP1i.js → Announcement-BvzAEdx8.js} +2 -2
- package/dist/{Announcement-CoheCP1i.js.map → Announcement-BvzAEdx8.js.map} +1 -1
- package/dist/Announcement.js +1 -1
- package/dist/AnvilProvider-C_qRQnE6.js.map +1 -1
- package/dist/{Avatar-CyGjhToG.js → Avatar-3d5Kv2CF.js} +2 -2
- package/dist/{Avatar-CyGjhToG.js.map → Avatar-3d5Kv2CF.js.map} +1 -1
- package/dist/{Avatar-D07f9NH_.js → Avatar-DJ3oJNsv.js} +2 -2
- package/dist/{Avatar-D07f9NH_.js.map → Avatar-DJ3oJNsv.js.map} +1 -1
- package/dist/Avatar.js +2 -2
- package/dist/Badge-DCA9mfc2.js.map +1 -1
- package/dist/Breadcrumbs-C4_PEolS.js.map +1 -1
- package/dist/{Button-BxFXQ0-n.js → Button-VNQQgZ45.js} +2 -2
- package/dist/{Button-BxFXQ0-n.js.map → Button-VNQQgZ45.js.map} +1 -1
- package/dist/Button.css +48 -48
- package/dist/Button.js +1 -1
- package/dist/Button.module-C1g9rrJs.js +25 -0
- package/dist/Button.module-C1g9rrJs.js.map +1 -0
- package/dist/{ButtonCompound-BF2Q6gGX.js → ButtonCompound-BbPK-Xjj.js} +2 -2
- package/dist/{ButtonCompound-BF2Q6gGX.js.map → ButtonCompound-BbPK-Xjj.js.map} +1 -1
- package/dist/ButtonCompound.js +1 -1
- package/dist/{ButtonLink-CXv65WVV.js → ButtonLink-CqR1F5Wn.js} +3 -3
- package/dist/{ButtonLink-CXv65WVV.js.map → ButtonLink-CqR1F5Wn.js.map} +1 -1
- package/dist/ButtonLink.js +1 -1
- package/dist/{ButtonToggle-pSwg7NvT.js → ButtonToggle-PCeSG-5D.js} +3 -3
- package/dist/{ButtonToggle-pSwg7NvT.js.map → ButtonToggle-PCeSG-5D.js.map} +1 -1
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-BQ5F2ENO.js → Calendar-Cn0fOgog.js} +366 -169
- package/dist/Calendar-Cn0fOgog.js.map +1 -0
- package/dist/Calendar.js +1 -1
- package/dist/Card-vTYeSkxt.js.map +1 -1
- package/dist/{Checkbox-Dl4KTwEJ.js → Checkbox-C5PX8wur.js} +2 -2
- package/dist/{Checkbox-Dl4KTwEJ.js.map → Checkbox-C5PX8wur.js.map} +1 -1
- package/dist/{Checkbox-DDrmVC-u.js → Checkbox-DAODkzN3.js} +2 -2
- package/dist/{Checkbox-DDrmVC-u.js.map → Checkbox-DAODkzN3.js.map} +1 -1
- package/dist/Checkbox.js +2 -2
- package/dist/{Chip-Bz-vlQ4D.js → Chip-DLU13qe-.js} +2 -2
- package/dist/{Chip-Bz-vlQ4D.js.map → Chip-DLU13qe-.js.map} +1 -1
- package/dist/Chip.js +1 -1
- package/dist/{Combobox-B9nesJuc.js → Combobox-DO8cIvRQ.js} +146 -55
- package/dist/Combobox-DO8cIvRQ.js.map +1 -0
- package/dist/Combobox.js +1 -1
- package/dist/{DateField-DXxPsRtf.js → DateField-qHdgwSlB.js} +36 -102
- package/dist/DateField-qHdgwSlB.js.map +1 -0
- package/dist/DateField.js +1 -1
- package/dist/{DateFieldRange-Xauviu1w.js → DateFieldRange-GNpWV70g.js} +57 -58
- package/dist/DateFieldRange-GNpWV70g.js.map +1 -0
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-yLnwpVzd.js → DateFieldSingle-B9caNibj.js} +53 -55
- package/dist/DateFieldSingle-B9caNibj.js.map +1 -0
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-Ba7HiTiI.js → DateFieldYearless-BmeKGaDc.js} +4 -4
- package/dist/{DateFieldYearless-Ba7HiTiI.js.map → DateFieldYearless-BmeKGaDc.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DaysOfTheWeek-BYSYZySH.js → DaysOfTheWeek-DPH13VCK.js} +4 -4
- package/dist/{DaysOfTheWeek-BYSYZySH.js.map → DaysOfTheWeek-DPH13VCK.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/Details-CF8DImjw.js.map +1 -1
- package/dist/{Dialog-CgkrvrQu.js → Dialog-BHFLnFNQ.js} +7 -7
- package/dist/{Dialog-CgkrvrQu.js.map → Dialog-BHFLnFNQ.js.map} +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/Divider-DJe8kLf2.js.map +1 -1
- package/dist/Dnd.js +1 -1
- package/dist/DndSort.js +2 -2
- package/dist/DndSort.js.map +1 -1
- package/dist/{Drawer-CM4ZbAro.js → Drawer-BDA7Sjj9.js} +7 -7
- package/dist/{Drawer-CM4ZbAro.js.map → Drawer-BDA7Sjj9.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/{DrawerContext-DboTgTmo.js → DrawerContext-D4tWTLVf.js} +27 -10
- package/dist/DrawerContext-D4tWTLVf.js.map +1 -0
- package/dist/{EditCard-WKzZ2XCz.js → EditCard-CZzL0nx7.js} +2 -2
- package/dist/{EditCard-WKzZ2XCz.js.map → EditCard-CZzL0nx7.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-BsbTTyom.js → FieldLabel-Bgl3iu13.js} +2 -2
- package/dist/{FieldLabel-BsbTTyom.js.map → FieldLabel-Bgl3iu13.js.map} +1 -1
- package/dist/FieldLabel.js +1 -1
- package/dist/FieldMessage-B7uQ8vmr.js.map +1 -1
- package/dist/Flex-BdQMekvA.js.map +1 -1
- package/dist/Grid-MGUC698u.js.map +1 -1
- package/dist/Helper-BkIDJqgA.js.map +1 -1
- package/dist/Icon-D8SPKeO4.js.map +1 -1
- package/dist/{InputMask-_F139qFu.js → InputMask-B13KumrK.js} +3 -3
- package/dist/{InputMask-_F139qFu.js.map → InputMask-B13KumrK.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/Layout-CUUb2PVr.js.map +1 -1
- package/dist/Link-eRsLWPaQ.js.map +1 -1
- package/dist/LinkButton-2lXfrVoU.js.map +1 -1
- package/dist/{ListView-pb3rIcze.js → ListView-C-cVQZHp.js} +3 -3
- package/dist/{ListView-pb3rIcze.js.map → ListView-C-cVQZHp.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-CUhMbFm2.js → Listbox-DxGx630W.js} +2 -2
- package/dist/{Listbox-CUhMbFm2.js.map → Listbox-DxGx630W.js.map} +1 -1
- package/dist/Listbox.js +1 -1
- package/dist/LocalizationContext-UsmB5mnR.js.map +1 -1
- package/dist/LocalizationProvider-DEZyjW5d.js.map +1 -1
- package/dist/{Menu-DEVZz9xZ.js → Menu-DUZqzpwg.js} +8 -10
- package/dist/Menu-DUZqzpwg.js.map +1 -0
- package/dist/Menu.js +1 -1
- package/dist/{NumberField-CkZZrkYC.js → NumberField-DWPAy1eG.js} +11 -11
- package/dist/{NumberField-CkZZrkYC.js.map → NumberField-DWPAy1eG.js.map} +1 -1
- package/dist/NumberField.css +9 -6
- package/dist/NumberField.js +1 -1
- package/dist/Overflow.js.map +1 -1
- package/dist/{Page-BMDkbDcU.js → Page-BfH2mGSt.js} +11 -11
- package/dist/Page-BfH2mGSt.js.map +1 -0
- package/dist/Page.js +1 -1
- package/dist/{Pagination-BJsCppgW.js → Pagination-B_G9QcHf.js} +48 -24
- package/dist/Pagination-B_G9QcHf.js.map +1 -0
- package/dist/Pagination.css +6 -6
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-r26xMIfm.js → Popover-v8R920kj.js} +137 -196
- package/dist/Popover-v8R920kj.js.map +1 -0
- package/dist/Popover.js +1 -1
- package/dist/PortalProvider-9lXkQ0xY.js.map +1 -1
- package/dist/{ProgressBar-DXcXZEJ2.js → ProgressBar-BWN2yv1s.js} +2 -2
- package/dist/{ProgressBar-DXcXZEJ2.js.map → ProgressBar-BWN2yv1s.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-C89VCMXd.js → Radio-C5riI-do.js} +2 -2
- package/dist/{Radio-C89VCMXd.js.map → Radio-C5riI-do.js.map} +1 -1
- package/dist/Radio.js +2 -2
- package/dist/{RadioGroup-C_4buUtG.js → RadioGroup-B7O06pVu.js} +2 -2
- package/dist/{RadioGroup-C_4buUtG.js.map → RadioGroup-B7O06pVu.js.map} +1 -1
- package/dist/{SearchField-Bb0uObwG.js → SearchField-CbwGErC4.js} +2 -2
- package/dist/{SearchField-Bb0uObwG.js.map → SearchField-CbwGErC4.js.map} +1 -1
- package/dist/SearchField.js +1 -1
- package/dist/{SegmentedControl-CsjjV1Dz.js → SegmentedControl-CLDdes8W.js} +4 -4
- package/dist/{SegmentedControl-CsjjV1Dz.js.map → SegmentedControl-CLDdes8W.js.map} +1 -1
- package/dist/SegmentedControl.js +1 -1
- package/dist/{SelectCard-BTYZg9TG.js → SelectCard-Ca07K1FW.js} +3 -3
- package/dist/{SelectCard-BTYZg9TG.js.map → SelectCard-Ca07K1FW.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/{SelectTrigger-f1hvRrSC.js → SelectTrigger-CaXX1SHG.js} +3 -3
- package/dist/{SelectTrigger-f1hvRrSC.js.map → SelectTrigger-CaXX1SHG.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-DP9fmRSo.js → SelectTriggerBase-C7TLCna1.js} +4 -4
- package/dist/{SelectTriggerBase-DP9fmRSo.js.map → SelectTriggerBase-C7TLCna1.js.map} +1 -1
- package/dist/{SideNav-CBAzYyML.js → SideNav-nqq5sAwz.js} +3 -3
- package/dist/SideNav-nqq5sAwz.js.map +1 -0
- package/dist/SideNav.js +1 -1
- package/dist/Skeleton.js.map +1 -1
- package/dist/Spinner-wmO8Epw0.js.map +1 -1
- package/dist/SrOnly-CTsYSuby.js.map +1 -1
- package/dist/{Stepper-D-fOH9TF.js → Stepper-DQ_Hm-AI.js} +4 -4
- package/dist/{Stepper-D-fOH9TF.js.map → Stepper-DQ_Hm-AI.js.map} +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/Switch-C2ddZcr9.js.map +1 -1
- package/dist/{Tab-wNucMTgo.js → Tab-CzNx3IdF.js} +45 -37
- package/dist/Tab-CzNx3IdF.js.map +1 -0
- package/dist/Tab.js +1 -1
- package/dist/Text-BqvcbXyp.js.map +1 -1
- package/dist/{TextField-D8fow9j7.js → TextField-D9gD-34Q.js} +3 -3
- package/dist/{TextField-D8fow9j7.js.map → TextField-D9gD-34Q.js.map} +1 -1
- package/dist/{TextField-BiHxlzE3.js → TextField-uCHgwO5F.js} +2 -2
- package/dist/{TextField-BiHxlzE3.js.map → TextField-uCHgwO5F.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-BdVJJlbP.js → Textarea-B2-6m291.js} +3 -3
- package/dist/{Textarea-BdVJJlbP.js.map → Textarea-B2-6m291.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/ThemeProvider-Be3Pvtpz.js.map +1 -1
- package/dist/ThemeProviderContext-l52GohYT.js.map +1 -1
- package/dist/{TimeField-CmbErrsZ.js → TimeField-B5Jgy-Zg.js} +363 -360
- package/dist/TimeField-B5Jgy-Zg.js.map +1 -0
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-B7zUwJOt.js → Toaster-CHyB-Mxs.js} +3 -3
- package/dist/{Toaster-B7zUwJOt.js.map → Toaster-CHyB-Mxs.js.map} +1 -1
- package/dist/{Toaster-9cpG_tWR.js → Toaster-CyiGDKMh.js} +18 -18
- package/dist/{Toaster-9cpG_tWR.js.map → Toaster-CyiGDKMh.js.map} +1 -1
- package/dist/{Toolbar-D4zuUFhb.js → Toolbar-BXGTrR6o.js} +19 -18
- package/dist/Toolbar-BXGTrR6o.js.map +1 -0
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-BI3Xs75X.js → Tooltip-DhtVlhah.js} +9 -3
- package/dist/{Tooltip-BI3Xs75X.js.map → Tooltip-DhtVlhah.js.map} +1 -1
- package/dist/Tooltip.js +1 -1
- package/dist/TrackingProvider-BtSjkmpM.js.map +1 -1
- package/dist/beta.js +1 -1
- package/dist/childrenToString-Bz9MqbHb.js.map +1 -1
- package/dist/components/Calendar/Calendar.d.ts +5 -0
- package/dist/components/Calendar/CalendarNowButton.d.ts +3 -1
- package/dist/components/Combobox/ComboboxTypes.d.ts +10 -5
- package/dist/components/Combobox/internal/ComboboxGroupContext.d.ts +1 -1
- package/dist/components/Combobox/internal/useGroups.d.ts +2 -2
- package/dist/components/DndSort/internal/test-utils.d.ts +1 -1
- package/dist/components/Popover/Popover.d.ts +136 -1
- package/dist/components/Popover/PopoverTrigger.d.ts +0 -1
- package/dist/components/Popover/internal/PopoverContext.d.ts +5 -3
- package/dist/components/Popover/internal/usePopoverContext.d.ts +6 -4
- package/dist/components/TimeField/TimeField.d.ts +4 -1
- package/dist/extends-Bg2s_OKl.js.map +1 -1
- package/dist/getActiveElement-BcSyVE7S.js.map +1 -1
- package/dist/getKeyboardFocusableElements-QqcABz0D.js.map +1 -1
- package/dist/hooks/useMergeRefs/useMergeRefs.d.ts +11 -0
- package/dist/{index-V5Ez2gq_.js → index-DrM3iid4.js} +2 -2
- package/dist/{index-V5Ez2gq_.js.map → index-DrM3iid4.js.map} +1 -1
- package/dist/index-tZvMCc77.js.map +1 -1
- package/dist/{index.esm-D889iexm.js → index.esm-BwMVvxTV.js} +199 -144
- package/dist/index.esm-BwMVvxTV.js.map +1 -0
- package/dist/index.js +52 -52
- package/dist/index.js.map +1 -1
- package/dist/internal/hooks/useFocusWithin/useFocusWithin.d.ts +2 -1
- package/dist/internal/hooks/useKeyboardFocusables/useKeyboardFocusables.d.ts +0 -1
- package/dist/internal/hooks/useOnClickOutside/useOnClickOutside.d.ts +5 -1
- package/dist/makeZeroShortcutPreprocessor-CxsiGTRW.js.map +1 -1
- package/dist/{proxy-CreWmH-e.js → proxy-BbFHSE6L.js} +8631 -8680
- package/dist/proxy-BbFHSE6L.js.map +1 -0
- package/dist/{use-reduced-motion-znCm41qB.js → use-reduced-motion-DSpxmqyT.js} +3 -3
- package/dist/use-reduced-motion-DSpxmqyT.js.map +1 -0
- package/dist/useAccessibleColor-BYKjkGRg.js.map +1 -1
- package/dist/useBreakpoint-Cv5fnZxs.js.map +1 -1
- package/dist/{useFocusWithin-BhhgRXdZ.js → useFocusWithin-hi77jsrB.js} +6 -3
- package/dist/useFocusWithin-hi77jsrB.js.map +1 -0
- package/dist/useInfiniteCombobox-WcRgC9p6.js.map +1 -1
- package/dist/useIntersectionObserver-BEmMDO3P.js.map +1 -1
- package/dist/{useDialogTransitionStates-2NaE_noq.js → useKeyboardFocusables-ek2mYel-.js} +46 -5
- package/dist/useKeyboardFocusables-ek2mYel-.js.map +1 -0
- package/dist/useLayoutPropsUtil-DjD5IMh0.js.map +1 -1
- package/dist/useMergeRefs-Dfmtq9cI.js +22 -0
- package/dist/useMergeRefs-Dfmtq9cI.js.map +1 -0
- package/dist/useMergeRefs.js +1 -1
- package/dist/{useOnClickOutside-BHEWMLa9.js → useOnClickOutside-C5AZE_I6.js} +6 -62
- package/dist/useOnClickOutside-C5AZE_I6.js.map +1 -0
- package/dist/useOptionallyControlledState-DbDuos5L.js.map +1 -1
- package/dist/{usePopoverSupport-DIjjfodl.js → usePopoverSupport-CWTCDfN2.js} +2 -2
- package/dist/{usePopoverSupport-DIjjfodl.js.map → usePopoverSupport-CWTCDfN2.js.map} +1 -1
- package/dist/usePrefersColorScheme-_hT7dK7_.js.map +1 -1
- package/dist/usePrevious-Bvq-5auG.js.map +1 -1
- package/dist/useSize.js.map +1 -1
- package/dist/{useSwipe-CULmVQEk.js → useSwipe-Cp-CJxLU.js} +2 -2
- package/dist/{useSwipe-CULmVQEk.js.map → useSwipe-Cp-CJxLU.js.map} +1 -1
- package/dist/useSwipe.js +1 -1
- package/dist/useTrackingContext-DRwDL8DE.js.map +1 -1
- package/dist/useTrackingId.js.map +1 -1
- package/dist/utils-CnKBdBNm.js +50 -0
- package/dist/utils-CnKBdBNm.js.map +1 -0
- package/package.json +12 -18
- package/dist/Button.module-pUNSKoVC.js +0 -25
- package/dist/Button.module-pUNSKoVC.js.map +0 -1
- package/dist/Calendar-BQ5F2ENO.js.map +0 -1
- package/dist/Combobox-B9nesJuc.js.map +0 -1
- package/dist/DateField-DXxPsRtf.js.map +0 -1
- package/dist/DateFieldRange-Xauviu1w.js.map +0 -1
- package/dist/DateFieldSingle-yLnwpVzd.js.map +0 -1
- package/dist/DrawerContext-DboTgTmo.js.map +0 -1
- package/dist/Menu-DEVZz9xZ.js.map +0 -1
- package/dist/Page-BMDkbDcU.js.map +0 -1
- package/dist/Pagination-BJsCppgW.js.map +0 -1
- package/dist/Popover-r26xMIfm.js.map +0 -1
- package/dist/SideNav-CBAzYyML.js.map +0 -1
- package/dist/Tab-wNucMTgo.js.map +0 -1
- package/dist/TimeField-CmbErrsZ.js.map +0 -1
- package/dist/Toolbar-D4zuUFhb.js.map +0 -1
- package/dist/components/DateFieldSingle/internal/useDateFieldOrchestration.d.ts +0 -17
- package/dist/index.esm-D889iexm.js.map +0 -1
- package/dist/proxy-CreWmH-e.js.map +0 -1
- package/dist/use-reduced-motion-znCm41qB.js.map +0 -1
- package/dist/useDateFieldOrchestration-BNJCsRkS.js +0 -138
- package/dist/useDateFieldOrchestration-BNJCsRkS.js.map +0 -1
- package/dist/useDialogTransitionStates-2NaE_noq.js.map +0 -1
- package/dist/useFocusWithin-BhhgRXdZ.js.map +0 -1
- package/dist/useMergeRefs-Bde85AWI.js +0 -21
- package/dist/useMergeRefs-Bde85AWI.js.map +0 -1
- package/dist/useOnClickOutside-BHEWMLa9.js.map +0 -1
- package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT.js +0 -18
- package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT.js.map +0 -1
|
@@ -14,6 +14,10 @@ type UseOnClickOutsideProps = {
|
|
|
14
14
|
* Array of target elements to monitor
|
|
15
15
|
*/
|
|
16
16
|
targets: (HTMLElement | undefined)[];
|
|
17
|
+
/**
|
|
18
|
+
* Whether to disable the useOnClickOutside hook
|
|
19
|
+
*/
|
|
20
|
+
disable?: boolean;
|
|
17
21
|
};
|
|
18
22
|
/**
|
|
19
23
|
* Custom hook for detecting clicks outside of specified target elements.
|
|
@@ -30,5 +34,5 @@ type UseOnClickOutsideProps = {
|
|
|
30
34
|
* @param props - Configuration object containing targets and optional callbacks
|
|
31
35
|
* @returns void
|
|
32
36
|
*/
|
|
33
|
-
export declare const useOnClickOutside: ({ onOutsidePress, targets, onClose, }: UseOnClickOutsideProps) => void;
|
|
37
|
+
export declare const useOnClickOutside: ({ onOutsidePress, targets, onClose, disable, }: UseOnClickOutsideProps) => void;
|
|
34
38
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeZeroShortcutPreprocessor-CxsiGTRW.js","sources":["../src/components/DateFieldSingle/internal/maskito/makeZeroShortcutPreprocessor.ts"],"sourcesContent":["import { MaskitoPreprocessor } from \"@maskito/core\";\nimport { SelectionRange } from \"@maskito/core/src/lib/types\";\n\n/**\n * This is a custom-written preprocessor to handle the zero shortcut on slash.\n * e.g: 1/ -> 01/ and 01/1/ -> 01/01/\n *\n * @param templateString - A string representing the mask. e.g. \"dd/mm/yyyy\" or \"__/__/____\"\n * @param separator - The separator to use for segments of the date. Must match the separator in the template string.\n * @returns A MaskitoPreprocessor function.\n */\nexport const makeZeroShortcutPreprocessor: (\n templateString: string,\n separator: string,\n) => MaskitoPreprocessor = (templateString, separator) => {\n const zeroShortcutPreprocessor: MaskitoPreprocessor = (\n { elementState, data },\n actionType,\n ) => {\n // Only process when user is inserting a separator character\n if (\n actionType === \"insert\" && // the user is inserting a character\n data === separator && // the user typed the separator character\n elementState.selection[0] === elementState.selection[1] // only entering a single character\n ) {\n const selectionIndex = elementState.selection[0];\n\n // Find all separator positions in the template AFTER the current cursor position\n // This helps us determine the boundaries of the current segment\n const separatorPositions: number[] = templateString\n .split(\"\")\n .map((char, index) => (char === separator ? index : null))\n .filter((position) => position !== null)\n .filter((position) => position > selectionIndex);\n\n // Early exit conditions - don't apply zero padding in these cases\n const noRemainingSegments = !separatorPositions.length;\n const nothingEnteredYet = !elementState.value.length;\n const previousCharacterIsNotADigit = !/^\\d$/.test(\n elementState.value.slice(-1),\n );\n const currentCharacterIsSeparator =\n templateString[selectionIndex] === separator;\n\n if (\n noRemainingSegments ||\n nothingEnteredYet ||\n previousCharacterIsNotADigit ||\n currentCharacterIsSeparator\n ) {\n return { elementState, data };\n }\n\n // Find the start of the current segment by looking for the last separator or space (for date ranges)\n // This determines where the current number segment begins\n const firstIndexOfSegment = Math.max(\n elementState.value.lastIndexOf(separator) + 1,\n elementState.value.lastIndexOf(\" \") + 1,\n 0,\n );\n\n // Find the end of the current segment (next separator position)\n const lastIndexOfSegment = separatorPositions[0];\n\n // Extract the digits currently entered in this segment\n const digitsCurrentlyInSegment =\n elementState.value.slice(firstIndexOfSegment);\n\n // Calculate how many digits this segment should have based on the template\n // e.g., if template is \"dd/mm/yyyy\", the first segment should have 2 digits\n const targetNumberOfDigitsInSegment = templateString.slice(\n firstIndexOfSegment,\n lastIndexOfSegment,\n ).length;\n\n // Pad the current segment with leading zeros to reach the target length\n // e.g., \"1\" becomes \"01\" for a 2-digit segment\n const newSegment = digitsCurrentlyInSegment.padStart(\n targetNumberOfDigitsInSegment,\n \"0\",\n );\n\n // Construct the new value by replacing the current segment with the padded version\n const newValue = `${elementState.value.slice(0, firstIndexOfSegment)}${newSegment}`;\n\n // Return the updated state with the padded segment and separator\n // Position cursor after the separator\n return {\n elementState: {\n value: newValue + data,\n selection: [newValue.length, newValue.length] as SelectionRange,\n },\n data,\n };\n }\n // If conditions aren't met, return unchanged state\n return { elementState, data };\n };\n return zeroShortcutPreprocessor;\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"makeZeroShortcutPreprocessor-CxsiGTRW.js","sources":["../src/components/DateFieldSingle/internal/maskito/makeZeroShortcutPreprocessor.ts"],"sourcesContent":["import { MaskitoPreprocessor } from \"@maskito/core\";\nimport { SelectionRange } from \"@maskito/core/src/lib/types\";\n\n/**\n * This is a custom-written preprocessor to handle the zero shortcut on slash.\n * e.g: 1/ -> 01/ and 01/1/ -> 01/01/\n *\n * @param templateString - A string representing the mask. e.g. \"dd/mm/yyyy\" or \"__/__/____\"\n * @param separator - The separator to use for segments of the date. Must match the separator in the template string.\n * @returns A MaskitoPreprocessor function.\n */\nexport const makeZeroShortcutPreprocessor: (\n templateString: string,\n separator: string,\n) => MaskitoPreprocessor = (templateString, separator) => {\n const zeroShortcutPreprocessor: MaskitoPreprocessor = (\n { elementState, data },\n actionType,\n ) => {\n // Only process when user is inserting a separator character\n if (\n actionType === \"insert\" && // the user is inserting a character\n data === separator && // the user typed the separator character\n elementState.selection[0] === elementState.selection[1] // only entering a single character\n ) {\n const selectionIndex = elementState.selection[0];\n\n // Find all separator positions in the template AFTER the current cursor position\n // This helps us determine the boundaries of the current segment\n const separatorPositions: number[] = templateString\n .split(\"\")\n .map((char, index) => (char === separator ? index : null))\n .filter((position) => position !== null)\n .filter((position) => position > selectionIndex);\n\n // Early exit conditions - don't apply zero padding in these cases\n const noRemainingSegments = !separatorPositions.length;\n const nothingEnteredYet = !elementState.value.length;\n const previousCharacterIsNotADigit = !/^\\d$/.test(\n elementState.value.slice(-1),\n );\n const currentCharacterIsSeparator =\n templateString[selectionIndex] === separator;\n\n if (\n noRemainingSegments ||\n nothingEnteredYet ||\n previousCharacterIsNotADigit ||\n currentCharacterIsSeparator\n ) {\n return { elementState, data };\n }\n\n // Find the start of the current segment by looking for the last separator or space (for date ranges)\n // This determines where the current number segment begins\n const firstIndexOfSegment = Math.max(\n elementState.value.lastIndexOf(separator) + 1,\n elementState.value.lastIndexOf(\" \") + 1,\n 0,\n );\n\n // Find the end of the current segment (next separator position)\n const lastIndexOfSegment = separatorPositions[0];\n\n // Extract the digits currently entered in this segment\n const digitsCurrentlyInSegment =\n elementState.value.slice(firstIndexOfSegment);\n\n // Calculate how many digits this segment should have based on the template\n // e.g., if template is \"dd/mm/yyyy\", the first segment should have 2 digits\n const targetNumberOfDigitsInSegment = templateString.slice(\n firstIndexOfSegment,\n lastIndexOfSegment,\n ).length;\n\n // Pad the current segment with leading zeros to reach the target length\n // e.g., \"1\" becomes \"01\" for a 2-digit segment\n const newSegment = digitsCurrentlyInSegment.padStart(\n targetNumberOfDigitsInSegment,\n \"0\",\n );\n\n // Construct the new value by replacing the current segment with the padded version\n const newValue = `${elementState.value.slice(0, firstIndexOfSegment)}${newSegment}`;\n\n // Return the updated state with the padded segment and separator\n // Position cursor after the separator\n return {\n elementState: {\n value: newValue + data,\n selection: [newValue.length, newValue.length] as SelectionRange,\n },\n data,\n };\n }\n // If conditions aren't met, return unchanged state\n return { elementState, data };\n };\n return zeroShortcutPreprocessor;\n};\n"],"names":[],"mappings":"AAWO,MAAM,4BAAA,GAGc,CAAC,cAAA,EAAgB,SAAA,KAAc;AACxD,EAAA,MAAM,2BAAgD,CACpD,EAAE,YAAA,EAAc,IAAA,IAChB,UAAA,KACG;AAEH,IAAA,IACE,UAAA,KAAe,QAAA;AAAA,IACf,IAAA,KAAS,SAAA;AAAA,IACT,aAAa,SAAA,CAAU,CAAC,MAAM,YAAA,CAAa,SAAA,CAAU,CAAC,CAAA,EACtD;AACA,MAAA,MAAM,cAAA,GAAiB,YAAA,CAAa,SAAA,CAAU,CAAC,CAAA;AAI/C,MAAA,MAAM,kBAAA,GAA+B,cAAA,CAClC,KAAA,CAAM,EAAE,CAAA,CACR,IAAI,CAAC,IAAA,EAAM,KAAA,KAAW,IAAA,KAAS,SAAA,GAAY,KAAA,GAAQ,IAAK,CAAA,CACxD,MAAA,CAAO,CAAC,QAAA,KAAa,QAAA,KAAa,IAAI,EACtC,MAAA,CAAO,CAAC,QAAA,KAAa,QAAA,GAAW,cAAc,CAAA;AAGjD,MAAA,MAAM,mBAAA,GAAsB,CAAC,kBAAA,CAAmB,MAAA;AAChD,MAAA,MAAM,iBAAA,GAAoB,CAAC,YAAA,CAAa,KAAA,CAAM,MAAA;AAC9C,MAAA,MAAM,4BAAA,GAA+B,CAAC,MAAA,CAAO,IAAA;AAAA,QAC3C,YAAA,CAAa,KAAA,CAAM,KAAA,CAAM,EAAE;AAAA,OAC7B;AACA,MAAA,MAAM,2BAAA,GACJ,cAAA,CAAe,cAAc,CAAA,KAAM,SAAA;AAErC,MAAA,IACE,mBAAA,IACA,iBAAA,IACA,4BAAA,IACA,2BAAA,EACA;AACA,QAAA,OAAO,EAAE,cAAc,IAAA,EAAK;AAAA,MAC9B;AAIA,MAAA,MAAM,sBAAsB,IAAA,CAAK,GAAA;AAAA,QAC/B,YAAA,CAAa,KAAA,CAAM,WAAA,CAAY,SAAS,CAAA,GAAI,CAAA;AAAA,QAC5C,YAAA,CAAa,KAAA,CAAM,WAAA,CAAY,GAAG,CAAA,GAAI,CAAA;AAAA,QACtC;AAAA,OACF;AAGA,MAAA,MAAM,kBAAA,GAAqB,mBAAmB,CAAC,CAAA;AAG/C,MAAA,MAAM,wBAAA,GACJ,YAAA,CAAa,KAAA,CAAM,KAAA,CAAM,mBAAmB,CAAA;AAI9C,MAAA,MAAM,gCAAgC,cAAA,CAAe,KAAA;AAAA,QACnD,mBAAA;AAAA,QACA;AAAA,OACF,CAAE,MAAA;AAIF,MAAA,MAAM,aAAa,wBAAA,CAAyB,QAAA;AAAA,QAC1C,6BAAA;AAAA,QACA;AAAA,OACF;AAGA,MAAA,MAAM,QAAA,GAAW,GAAG,YAAA,CAAa,KAAA,CAAM,MAAM,CAAA,EAAG,mBAAmB,CAAC,CAAA,EAAG,UAAU,CAAA,CAAA;AAIjF,MAAA,OAAO;AAAA,QACL,YAAA,EAAc;AAAA,UACZ,OAAO,QAAA,GAAW,IAAA;AAAA,UAClB,SAAA,EAAW,CAAC,QAAA,CAAS,MAAA,EAAQ,SAAS,MAAM;AAAA,SAC9C;AAAA,QACA;AAAA,OACF;AAAA,IACF;AAEA,IAAA,OAAO,EAAE,cAAc,IAAA,EAAK;AAAA,EAC9B,CAAA;AACA,EAAA,OAAO,wBAAA;AACT;;;;"}
|