@servicetitan/anvil2 1.46.0 → 1.46.2
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 +32 -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.map +1 -1
- package/dist/Avatar-D07f9NH_.js.map +1 -1
- 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-X9qUi6Vx.js} +269 -123
- package/dist/Calendar-X9qUi6Vx.js.map +1 -0
- package/dist/Calendar.js +1 -1
- package/dist/Card-vTYeSkxt.js.map +1 -1
- package/dist/{Checkbox-DDrmVC-u.js → Checkbox-BDohwHXQ.js} +2 -2
- package/dist/{Checkbox-DDrmVC-u.js.map → Checkbox-BDohwHXQ.js.map} +1 -1
- package/dist/{Checkbox-Dl4KTwEJ.js → Checkbox-CcYtto5f.js} +2 -2
- package/dist/{Checkbox-Dl4KTwEJ.js.map → Checkbox-CcYtto5f.js.map} +1 -1
- package/dist/Checkbox.js +2 -2
- package/dist/Chip-Bz-vlQ4D.js.map +1 -1
- package/dist/{Combobox-B9nesJuc.js → Combobox-DQmW8Tyl.js} +144 -53
- package/dist/Combobox-DQmW8Tyl.js.map +1 -0
- package/dist/Combobox.js +1 -1
- package/dist/{DateField-DXxPsRtf.js → DateField-C43nfkbx.js} +7 -7
- package/dist/{DateField-DXxPsRtf.js.map → DateField-C43nfkbx.js.map} +1 -1
- package/dist/DateField.js +1 -1
- package/dist/{DateFieldRange-Xauviu1w.js → DateFieldRange-g7n5QYww.js} +8 -8
- package/dist/{DateFieldRange-Xauviu1w.js.map → DateFieldRange-g7n5QYww.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-yLnwpVzd.js → DateFieldSingle-D3tneqeG.js} +8 -8
- package/dist/{DateFieldSingle-yLnwpVzd.js.map → DateFieldSingle-D3tneqeG.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-Ba7HiTiI.js → DateFieldYearless-3JBVj3wn.js} +4 -4
- package/dist/{DateFieldYearless-Ba7HiTiI.js.map → DateFieldYearless-3JBVj3wn.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DaysOfTheWeek-BYSYZySH.js → DaysOfTheWeek-RcPgDoM3.js} +4 -4
- package/dist/{DaysOfTheWeek-BYSYZySH.js.map → DaysOfTheWeek-RcPgDoM3.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/Details-CF8DImjw.js.map +1 -1
- package/dist/{Dialog-CgkrvrQu.js → Dialog-FNJ16gY6.js} +6 -6
- package/dist/{Dialog-CgkrvrQu.js.map → Dialog-FNJ16gY6.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-DT31CMRd.js} +6 -6
- package/dist/{Drawer-CM4ZbAro.js.map → Drawer-DT31CMRd.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-BP8QK5UR.js} +2 -2
- package/dist/{FieldLabel-BsbTTyom.js.map → FieldLabel-BP8QK5UR.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-CPuYMcw9.js} +3 -3
- package/dist/{InputMask-_F139qFu.js.map → InputMask-CPuYMcw9.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-BJI8BQJ-.js} +2 -2
- package/dist/{ListView-pb3rIcze.js.map → ListView-BJI8BQJ-.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/Listbox-CUhMbFm2.js.map +1 -1
- package/dist/LocalizationContext-UsmB5mnR.js.map +1 -1
- package/dist/LocalizationProvider-DEZyjW5d.js.map +1 -1
- package/dist/{Menu-C8we5CHP.js → Menu-t_11BIhU.js} +10 -5
- package/dist/Menu-t_11BIhU.js.map +1 -0
- package/dist/Menu.js +1 -1
- package/dist/{NumberField-CkZZrkYC.js → NumberField-Bjf9Tyvf.js} +6 -6
- package/dist/{NumberField-CkZZrkYC.js.map → NumberField-Bjf9Tyvf.js.map} +1 -1
- package/dist/NumberField.js +1 -1
- package/dist/Overflow.js.map +1 -1
- package/dist/{Page-cKXkjMmd.js → Page-BAyXnhz2.js} +9 -9
- package/dist/Page-BAyXnhz2.js.map +1 -0
- package/dist/Page.js +1 -1
- package/dist/{Pagination-ta8a2cJN.js → Pagination-DCBic619.js} +47 -23
- package/dist/Pagination-DCBic619.js.map +1 -0
- package/dist/Pagination.css +6 -6
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-r26xMIfm.js → Popover-CrksxqKk.js} +11 -5
- package/dist/Popover-CrksxqKk.js.map +1 -0
- package/dist/Popover.js +1 -1
- package/dist/PortalProvider-9lXkQ0xY.js.map +1 -1
- package/dist/{ProgressBar-DXcXZEJ2.js → ProgressBar-CgsAW2d8.js} +2 -2
- package/dist/{ProgressBar-DXcXZEJ2.js.map → ProgressBar-CgsAW2d8.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-C89VCMXd.js → Radio-C_rvxw74.js} +2 -2
- package/dist/{Radio-C89VCMXd.js.map → Radio-C_rvxw74.js.map} +1 -1
- package/dist/Radio.js +2 -2
- package/dist/{RadioGroup-C_4buUtG.js → RadioGroup-DxBblSrx.js} +2 -2
- package/dist/{RadioGroup-C_4buUtG.js.map → RadioGroup-DxBblSrx.js.map} +1 -1
- package/dist/SearchField-Bb0uObwG.js.map +1 -1
- package/dist/{SegmentedControl-CsjjV1Dz.js → SegmentedControl-DC4BpdH5.js} +3 -3
- package/dist/{SegmentedControl-CsjjV1Dz.js.map → SegmentedControl-DC4BpdH5.js.map} +1 -1
- package/dist/SegmentedControl.js +1 -1
- package/dist/{SelectCard-BTYZg9TG.js → SelectCard-DunNE9R3.js} +3 -3
- package/dist/{SelectCard-BTYZg9TG.js.map → SelectCard-DunNE9R3.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/{SelectTrigger-f1hvRrSC.js → SelectTrigger-BYysLREL.js} +2 -2
- package/dist/{SelectTrigger-f1hvRrSC.js.map → SelectTrigger-BYysLREL.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-DP9fmRSo.js → SelectTriggerBase-DqUpJgzk.js} +3 -3
- package/dist/{SelectTriggerBase-DP9fmRSo.js.map → SelectTriggerBase-DqUpJgzk.js.map} +1 -1
- package/dist/{SideNav-CBAzYyML.js → SideNav-B9AWmF_H.js} +2 -2
- package/dist/SideNav-B9AWmF_H.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-DHTrvfXw.js} +3 -3
- package/dist/{Stepper-D-fOH9TF.js.map → Stepper-DHTrvfXw.js.map} +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/Switch-C2ddZcr9.js.map +1 -1
- package/dist/{Tab-wNucMTgo.js → Tab-0zx9hsw8.js} +44 -36
- package/dist/Tab-0zx9hsw8.js.map +1 -0
- package/dist/Tab.js +1 -1
- package/dist/Text-BqvcbXyp.js.map +1 -1
- package/dist/{TextField-D8fow9j7.js → TextField-CFWs3lm9.js} +2 -2
- package/dist/{TextField-D8fow9j7.js.map → TextField-CFWs3lm9.js.map} +1 -1
- package/dist/{TextField-BiHxlzE3.js → TextField-Cge6IRo5.js} +2 -2
- package/dist/{TextField-BiHxlzE3.js.map → TextField-Cge6IRo5.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-BdVJJlbP.js → Textarea-CXd3NKkW.js} +2 -2
- package/dist/{Textarea-BdVJJlbP.js.map → Textarea-CXd3NKkW.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-4v5aCwiG.js} +345 -355
- package/dist/TimeField-4v5aCwiG.js.map +1 -0
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-9cpG_tWR.js → Toaster-D-rNSLTq.js} +17 -17
- package/dist/{Toaster-9cpG_tWR.js.map → Toaster-D-rNSLTq.js.map} +1 -1
- package/dist/{Toaster-B7zUwJOt.js → Toaster-bON5Xc1P.js} +2 -2
- package/dist/{Toaster-B7zUwJOt.js.map → Toaster-bON5Xc1P.js.map} +1 -1
- package/dist/{Toolbar-D4zuUFhb.js → Toolbar-B2Jsuptz.js} +14 -14
- package/dist/{Toolbar-D4zuUFhb.js.map → Toolbar-B2Jsuptz.js.map} +1 -1
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-BI3Xs75X.js → Tooltip-CtCLw_vx.js} +8 -2
- package/dist/{Tooltip-BI3Xs75X.js.map → Tooltip-CtCLw_vx.js.map} +1 -1
- package/dist/Tooltip.js +1 -1
- package/dist/TrackingProvider-BtSjkmpM.js.map +1 -1
- package/dist/assets/icons/st/gnav_legacy_search_filled.svg +1 -1
- package/dist/assets/icons/st/gnav_legacy_search_outline.svg +1 -1
- package/dist/beta.js +1 -1
- package/dist/childrenToString-Bz9MqbHb.js.map +1 -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/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/{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 +45 -45
- package/dist/index.js.map +1 -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/{useDateFieldOrchestration-BNJCsRkS.js → useDateFieldOrchestration-DyAc3gPJ.js} +3 -3
- package/dist/{useDateFieldOrchestration-BNJCsRkS.js.map → useDateFieldOrchestration-DyAc3gPJ.js.map} +1 -1
- package/dist/{useDialogTransitionStates-2NaE_noq.js → useDialogTransitionStates-C1TtiwA_.js} +3 -3
- package/dist/{useDialogTransitionStates-2NaE_noq.js.map → useDialogTransitionStates-C1TtiwA_.js.map} +1 -1
- package/dist/useFocusWithin-BhhgRXdZ.js.map +1 -1
- package/dist/useInfiniteCombobox-WcRgC9p6.js.map +1 -1
- package/dist/useIntersectionObserver-BEmMDO3P.js.map +1 -1
- package/dist/useLayoutPropsUtil-DjD5IMh0.js.map +1 -1
- package/dist/useMergeRefs-Bde85AWI.js.map +1 -1
- package/dist/{useOnClickOutside-BHEWMLa9.js → useOnClickOutside-B1ddwORK.js} +5 -2
- package/dist/useOnClickOutside-B1ddwORK.js.map +1 -0
- package/dist/useOptionallyControlledState-DbDuos5L.js.map +1 -1
- package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT.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/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/DrawerContext-DboTgTmo.js.map +0 -1
- package/dist/Menu-C8we5CHP.js.map +0 -1
- package/dist/Page-cKXkjMmd.js.map +0 -1
- package/dist/Pagination-ta8a2cJN.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/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/useOnClickOutside-BHEWMLa9.js.map +0 -1
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { forwardRef, useState, useRef, useMemo, useEffect, useCallback, useImperativeHandle } from 'react';
|
|
4
|
-
import { g as maskitoTimeOptionsGenerator, a as maskitoWithPlaceholder, u as useMaskito } from './index.esm-
|
|
4
|
+
import { g as maskitoTimeOptionsGenerator, a as maskitoWithPlaceholder, u as useMaskito } from './index.esm-BwMVvxTV.js';
|
|
5
5
|
import { I as Icon } from './Icon-D8SPKeO4.js';
|
|
6
|
-
import { T as TextField } from './TextField-
|
|
6
|
+
import { T as TextField } from './TextField-CFWs3lm9.js';
|
|
7
7
|
import { c as cx } from './index-tZvMCc77.js';
|
|
8
8
|
import { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';
|
|
9
|
-
import { P as Popover } from './Popover-
|
|
9
|
+
import { P as Popover } from './Popover-CrksxqKk.js';
|
|
10
10
|
import { L as Listbox } from './Listbox-CUhMbFm2.js';
|
|
11
11
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjD5IMh0.js';
|
|
12
12
|
import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
|
|
13
|
-
import { u as usePopoverSupport } from './usePopoverSupport-
|
|
13
|
+
import { u as usePopoverSupport } from './usePopoverSupport-CWTCDfN2.js';
|
|
14
14
|
import { u as usePopoverCloseDelayWorkaround } from './usePopoverCloseDelayWorkaround-BZcjPkvT.js';
|
|
15
15
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
|
|
16
16
|
import { useTrackingId } from './useTrackingId.js';
|
|
@@ -528,14 +528,14 @@ const MaskedTimeInput = forwardRef(
|
|
|
528
528
|
},
|
|
529
529
|
[currentParsedData, format, onBlur]
|
|
530
530
|
);
|
|
531
|
-
useImperativeHandle(
|
|
532
|
-
|
|
533
|
-
()
|
|
534
|
-
|
|
535
|
-
|
|
531
|
+
useImperativeHandle(ref, () => {
|
|
532
|
+
const input = inputRef.current;
|
|
533
|
+
if (!input)
|
|
534
|
+
return null;
|
|
535
|
+
return Object.assign(input, {
|
|
536
536
|
resetTypingFlag
|
|
537
|
-
})
|
|
538
|
-
);
|
|
537
|
+
});
|
|
538
|
+
});
|
|
539
539
|
const classNames = useMemo(() => {
|
|
540
540
|
return cx(styles["time-field"], className);
|
|
541
541
|
}, [className]);
|
|
@@ -561,368 +561,358 @@ const MaskedTimeInput = forwardRef(
|
|
|
561
561
|
);
|
|
562
562
|
MaskedTimeInput.displayName = "MaskedTimeInput";
|
|
563
563
|
|
|
564
|
-
const TimeField =
|
|
565
|
-
(props
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
564
|
+
const TimeField = (props) => {
|
|
565
|
+
const { componentProps } = useLayoutPropsUtil(props);
|
|
566
|
+
const {
|
|
567
|
+
label,
|
|
568
|
+
labelProps,
|
|
569
|
+
size,
|
|
570
|
+
value: valueProp,
|
|
571
|
+
defaultValue,
|
|
572
|
+
min,
|
|
573
|
+
max,
|
|
574
|
+
onChange,
|
|
575
|
+
format = 12,
|
|
576
|
+
step = 30,
|
|
577
|
+
required,
|
|
578
|
+
description,
|
|
579
|
+
error: errorProp,
|
|
580
|
+
disableSuggestions = false,
|
|
581
|
+
autoround = false,
|
|
582
|
+
className,
|
|
583
|
+
...rest
|
|
584
|
+
} = componentProps;
|
|
585
|
+
const [isDropdownOpen, setIsDropdownOpenRaw] = useState(false);
|
|
586
|
+
const setIsDropdownOpen = (open) => {
|
|
587
|
+
setIsDropdownOpenRaw(open);
|
|
588
|
+
};
|
|
589
|
+
const [selectedOptionIndex, setSelectedOptionIndex] = useState(0);
|
|
590
|
+
const [inputValueForFiltering, setInputValueForFiltering] = useState("");
|
|
591
|
+
const [currentParsedTime, setCurrentParsedTime] = useState(
|
|
592
|
+
null
|
|
593
|
+
);
|
|
594
|
+
const [selectedTime, setSelectedTime] = useOptionallyControlledState({
|
|
595
|
+
controlledValue: valueProp,
|
|
596
|
+
defaultValue: defaultValue ?? null
|
|
597
|
+
});
|
|
598
|
+
const [inputParsedData, setInputParsedData] = useState({ time: null, isInputValid: false, isInputEmpty: true });
|
|
599
|
+
const lastOnChangeCallRef = useRef(null);
|
|
600
|
+
const isDropdownClickingRef = useRef(false);
|
|
601
|
+
const [justSelected, setJustSelected] = useState(false);
|
|
602
|
+
const tabJustPressedRef = useRef(false);
|
|
603
|
+
const inputRef = useRef(null);
|
|
604
|
+
const popoverContentRef = useRef(null);
|
|
605
|
+
const [popoverTriggerRef, setPopoverTriggerRef] = useState();
|
|
606
|
+
const combinedRef = useMergeRefs([popoverTriggerRef, inputRef]);
|
|
607
|
+
const popoverSupported = usePopoverSupport();
|
|
608
|
+
const placeholder = TIME_FORMAT_PLACEHOLDERS[format];
|
|
609
|
+
const shouldShowOptionsFromHook = usePopoverCloseDelayWorkaround(isDropdownOpen);
|
|
610
|
+
const shouldShowOptions = tabJustPressedRef.current ? false : shouldShowOptionsFromHook;
|
|
611
|
+
const dropdownTimeoutRef = useRef(null);
|
|
612
|
+
useEffect(() => {
|
|
613
|
+
const dropdownRef = dropdownTimeoutRef.current;
|
|
614
|
+
return () => {
|
|
615
|
+
if (dropdownRef) {
|
|
616
|
+
clearTimeout(dropdownRef);
|
|
617
|
+
}
|
|
589
618
|
};
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
619
|
+
}, []);
|
|
620
|
+
const allTimeOptions = useMemo(
|
|
621
|
+
() => generateTimeOptions({ step, min, max, format }),
|
|
622
|
+
[step, min, max, format]
|
|
623
|
+
);
|
|
624
|
+
const baseFilteredOptions = useMemo(() => {
|
|
625
|
+
if (!inputValueForFiltering || inputValueForFiltering.match(/^[–_:]+$/)) {
|
|
626
|
+
return allTimeOptions;
|
|
627
|
+
}
|
|
628
|
+
return filterTimeOptions(allTimeOptions, inputValueForFiltering);
|
|
629
|
+
}, [allTimeOptions, inputValueForFiltering]);
|
|
630
|
+
const autoRoundingOptions = useMemo(() => {
|
|
631
|
+
if (!autoround || baseFilteredOptions.length > 0 || !inputValueForFiltering || inputValueForFiltering.match(/^[–_:]+$/)) {
|
|
632
|
+
return [];
|
|
633
|
+
}
|
|
634
|
+
const currentTime = currentParsedTime || inputParsedData.time;
|
|
635
|
+
const autoRoundedOptions = getAutoRoundingOptions(
|
|
636
|
+
currentTime,
|
|
637
|
+
step ?? 30,
|
|
638
|
+
format,
|
|
639
|
+
inputValueForFiltering,
|
|
640
|
+
min
|
|
594
641
|
);
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
defaultValue: defaultValue ?? null
|
|
598
|
-
});
|
|
599
|
-
const [inputParsedData, setInputParsedData] = useState({ time: null, isInputValid: false, isInputEmpty: true });
|
|
600
|
-
const lastOnChangeCallRef = useRef(null);
|
|
601
|
-
const isDropdownClickingRef = useRef(false);
|
|
602
|
-
const [justSelected, setJustSelected] = useState(false);
|
|
603
|
-
const tabJustPressedRef = useRef(false);
|
|
604
|
-
const inputRef = useRef(null);
|
|
605
|
-
const popoverContentRef = useRef(null);
|
|
606
|
-
const combinedRef = useMergeRefs([inputRef, ref]);
|
|
607
|
-
const popoverSupported = usePopoverSupport();
|
|
608
|
-
const placeholder = TIME_FORMAT_PLACEHOLDERS[format];
|
|
609
|
-
const shouldShowOptionsFromHook = usePopoverCloseDelayWorkaround(isDropdownOpen);
|
|
610
|
-
const shouldShowOptions = tabJustPressedRef.current ? false : shouldShowOptionsFromHook;
|
|
611
|
-
const dropdownTimeoutRef = useRef(null);
|
|
612
|
-
useEffect(() => {
|
|
613
|
-
const dropdownRef = dropdownTimeoutRef.current;
|
|
614
|
-
return () => {
|
|
615
|
-
if (dropdownRef) {
|
|
616
|
-
clearTimeout(dropdownRef);
|
|
617
|
-
}
|
|
618
|
-
};
|
|
619
|
-
}, []);
|
|
620
|
-
const allTimeOptions = useMemo(
|
|
621
|
-
() => generateTimeOptions({ step, min, max, format }),
|
|
622
|
-
[step, min, max, format]
|
|
642
|
+
return autoRoundedOptions.filter(
|
|
643
|
+
(option) => !baseFilteredOptions.includes(option)
|
|
623
644
|
);
|
|
624
|
-
|
|
625
|
-
|
|
645
|
+
}, [
|
|
646
|
+
autoround,
|
|
647
|
+
baseFilteredOptions,
|
|
648
|
+
inputValueForFiltering,
|
|
649
|
+
currentParsedTime,
|
|
650
|
+
inputParsedData.time,
|
|
651
|
+
format,
|
|
652
|
+
min,
|
|
653
|
+
step
|
|
654
|
+
]);
|
|
655
|
+
const filteredOptions = useMemo(() => {
|
|
656
|
+
if (baseFilteredOptions.length === 0 && autoRoundingOptions.length === 0) {
|
|
657
|
+
if (!inputParsedData.isInputValid && inputValueForFiltering && !inputValueForFiltering.match(/^[–_:]+$/)) {
|
|
626
658
|
return allTimeOptions;
|
|
627
659
|
}
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
return autoRoundedOptions.filter(
|
|
643
|
-
(option) => !baseFilteredOptions.includes(option)
|
|
644
|
-
);
|
|
645
|
-
}, [
|
|
646
|
-
autoround,
|
|
647
|
-
baseFilteredOptions,
|
|
648
|
-
inputValueForFiltering,
|
|
649
|
-
currentParsedTime,
|
|
650
|
-
inputParsedData.time,
|
|
651
|
-
format,
|
|
652
|
-
min,
|
|
653
|
-
step
|
|
654
|
-
]);
|
|
655
|
-
const filteredOptions = useMemo(() => {
|
|
656
|
-
if (baseFilteredOptions.length === 0 && autoRoundingOptions.length === 0) {
|
|
657
|
-
if (!inputParsedData.isInputValid && inputValueForFiltering && !inputValueForFiltering.match(/^[–_:]+$/)) {
|
|
658
|
-
return allTimeOptions;
|
|
659
|
-
}
|
|
660
|
+
}
|
|
661
|
+
return [...baseFilteredOptions, ...autoRoundingOptions];
|
|
662
|
+
}, [
|
|
663
|
+
baseFilteredOptions,
|
|
664
|
+
autoRoundingOptions,
|
|
665
|
+
allTimeOptions,
|
|
666
|
+
inputValueForFiltering,
|
|
667
|
+
inputParsedData.isInputValid
|
|
668
|
+
]);
|
|
669
|
+
const handleBlur = useCallback(
|
|
670
|
+
(event) => {
|
|
671
|
+
if (event.relatedTarget && popoverContentRef.current?.contains(event.relatedTarget) && isDropdownClickingRef.current) {
|
|
672
|
+
isDropdownClickingRef.current = false;
|
|
673
|
+
return;
|
|
660
674
|
}
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
}
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
const parsedInputTime = input.dataset.time || null;
|
|
679
|
-
const isInputValid = input.dataset.inputValid === "true";
|
|
680
|
-
const isInputEmpty = input.dataset.inputEmpty === "true";
|
|
681
|
-
let finalTime = parsedInputTime;
|
|
682
|
-
if (autoround && finalTime && isInputValid) {
|
|
683
|
-
const beforeRounding = finalTime;
|
|
684
|
-
finalTime = handleAutoRounding(finalTime, {
|
|
685
|
-
autoround,
|
|
686
|
-
step,
|
|
687
|
-
format
|
|
688
|
-
});
|
|
689
|
-
if (finalTime !== beforeRounding) {
|
|
690
|
-
inputRef.current?.resetTypingFlag?.();
|
|
691
|
-
setSelectedTime(finalTime);
|
|
692
|
-
}
|
|
693
|
-
}
|
|
694
|
-
const currentChange = {
|
|
695
|
-
time: finalTime,
|
|
696
|
-
isInputValid,
|
|
697
|
-
isInputEmpty
|
|
698
|
-
};
|
|
699
|
-
const lastChange = lastOnChangeCallRef.current;
|
|
700
|
-
const isDuplicate = lastChange && lastChange.time === currentChange.time && lastChange.isInputValid === currentChange.isInputValid && lastChange.isInputEmpty === currentChange.isInputEmpty;
|
|
701
|
-
if (!isDuplicate) {
|
|
702
|
-
onChange?.(currentChange);
|
|
703
|
-
lastOnChangeCallRef.current = currentChange;
|
|
675
|
+
setIsDropdownOpen(false);
|
|
676
|
+
setSelectedOptionIndex(0);
|
|
677
|
+
const input = event.target;
|
|
678
|
+
const parsedInputTime = input.dataset.time || null;
|
|
679
|
+
const isInputValid = input.dataset.inputValid === "true";
|
|
680
|
+
const isInputEmpty = input.dataset.inputEmpty === "true";
|
|
681
|
+
let finalTime = parsedInputTime;
|
|
682
|
+
if (autoround && finalTime && isInputValid) {
|
|
683
|
+
const beforeRounding = finalTime;
|
|
684
|
+
finalTime = handleAutoRounding(finalTime, {
|
|
685
|
+
autoround,
|
|
686
|
+
step,
|
|
687
|
+
format
|
|
688
|
+
});
|
|
689
|
+
if (finalTime !== beforeRounding) {
|
|
690
|
+
inputRef.current?.resetTypingFlag?.();
|
|
691
|
+
setSelectedTime(finalTime);
|
|
704
692
|
}
|
|
705
|
-
},
|
|
706
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
707
|
-
[format, step, autoround, onChange]
|
|
708
|
-
);
|
|
709
|
-
const handleFocus = useCallback(() => {
|
|
710
|
-
if (!disableSuggestions && !justSelected) {
|
|
711
|
-
setIsDropdownOpen(true);
|
|
712
|
-
setSelectedOptionIndex(0);
|
|
713
|
-
}
|
|
714
|
-
}, [disableSuggestions, justSelected]);
|
|
715
|
-
useEffect(() => {
|
|
716
|
-
if (filteredOptions.length <= 1 && isDropdownOpen) {
|
|
717
|
-
setIsDropdownOpen(false);
|
|
718
693
|
}
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
694
|
+
const currentChange = {
|
|
695
|
+
time: finalTime,
|
|
696
|
+
isInputValid,
|
|
697
|
+
isInputEmpty
|
|
698
|
+
};
|
|
699
|
+
const lastChange = lastOnChangeCallRef.current;
|
|
700
|
+
const isDuplicate = lastChange && lastChange.time === currentChange.time && lastChange.isInputValid === currentChange.isInputValid && lastChange.isInputEmpty === currentChange.isInputEmpty;
|
|
701
|
+
if (!isDuplicate) {
|
|
702
|
+
onChange?.(currentChange);
|
|
703
|
+
lastOnChangeCallRef.current = currentChange;
|
|
722
704
|
}
|
|
723
|
-
},
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
705
|
+
},
|
|
706
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
707
|
+
[format, step, autoround, onChange]
|
|
708
|
+
);
|
|
709
|
+
const handleFocus = useCallback(() => {
|
|
710
|
+
if (!disableSuggestions && !justSelected) {
|
|
711
|
+
setIsDropdownOpen(true);
|
|
712
|
+
setSelectedOptionIndex(0);
|
|
713
|
+
}
|
|
714
|
+
}, [disableSuggestions, justSelected]);
|
|
715
|
+
useEffect(() => {
|
|
716
|
+
if (filteredOptions.length <= 1 && isDropdownOpen) {
|
|
717
|
+
setIsDropdownOpen(false);
|
|
718
|
+
}
|
|
719
|
+
if (!disableSuggestions && filteredOptions.length > 1 && document.activeElement && document.activeElement.tagName === "INPUT" && !isDropdownOpen && !justSelected && !tabJustPressedRef.current) {
|
|
720
|
+
setIsDropdownOpen(true);
|
|
721
|
+
setSelectedOptionIndex(0);
|
|
722
|
+
}
|
|
723
|
+
}, [filteredOptions, disableSuggestions, isDropdownOpen, justSelected]);
|
|
724
|
+
const handleInputChange = (change) => {
|
|
725
|
+
setInputValueForFiltering(change.event.target.value);
|
|
726
|
+
setCurrentParsedTime(change.time);
|
|
727
|
+
setInputParsedData({
|
|
728
|
+
time: change.time,
|
|
729
|
+
isInputValid: change.isInputValid,
|
|
730
|
+
isInputEmpty: change.isInputEmpty
|
|
731
|
+
});
|
|
732
|
+
setSelectedOptionIndex(0);
|
|
733
|
+
setJustSelected(false);
|
|
734
|
+
setSelectedTime(null);
|
|
735
|
+
};
|
|
736
|
+
const scrollToSelectedOption = useCallback(() => {
|
|
737
|
+
if (!popoverContentRef.current || selectedOptionIndex < 0) return;
|
|
738
|
+
const optionElements = popoverContentRef.current.querySelectorAll('[role="option"]');
|
|
739
|
+
const targetElement = optionElements[selectedOptionIndex];
|
|
740
|
+
if (targetElement) {
|
|
741
|
+
targetElement.scrollIntoView({
|
|
742
|
+
block: "nearest",
|
|
743
|
+
behavior: "auto"
|
|
731
744
|
});
|
|
745
|
+
}
|
|
746
|
+
}, [selectedOptionIndex]);
|
|
747
|
+
useEffect(() => {
|
|
748
|
+
if (isDropdownOpen && selectedOptionIndex >= 0) {
|
|
749
|
+
scrollToSelectedOption();
|
|
750
|
+
}
|
|
751
|
+
}, [selectedOptionIndex, isDropdownOpen, scrollToSelectedOption]);
|
|
752
|
+
const handleOptionSelect = useCallback(
|
|
753
|
+
(selectedTime2) => {
|
|
754
|
+
if (inputRef.current?.resetTypingFlag) {
|
|
755
|
+
inputRef.current.resetTypingFlag();
|
|
756
|
+
}
|
|
757
|
+
setIsDropdownOpen(false);
|
|
732
758
|
setSelectedOptionIndex(0);
|
|
733
|
-
setJustSelected(
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
759
|
+
setJustSelected(true);
|
|
760
|
+
setCurrentParsedTime(selectedTime2);
|
|
761
|
+
setSelectedTime(selectedTime2);
|
|
762
|
+
const changeData = {
|
|
763
|
+
time: selectedTime2,
|
|
764
|
+
isInputValid: true,
|
|
765
|
+
isInputEmpty: false
|
|
766
|
+
};
|
|
767
|
+
onChange?.(changeData);
|
|
768
|
+
lastOnChangeCallRef.current = changeData;
|
|
769
|
+
requestAnimationFrame(() => {
|
|
770
|
+
inputRef.current?.focus();
|
|
771
|
+
});
|
|
772
|
+
},
|
|
773
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
774
|
+
[onChange]
|
|
775
|
+
);
|
|
776
|
+
const handleKeyDown = useCallback(
|
|
777
|
+
(event) => {
|
|
778
|
+
if (!isDropdownOpen) {
|
|
779
|
+
return;
|
|
745
780
|
}
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
781
|
+
switch (event.key) {
|
|
782
|
+
case "ArrowDown":
|
|
783
|
+
event.preventDefault();
|
|
784
|
+
setSelectedOptionIndex(
|
|
785
|
+
(prev) => prev < filteredOptions.length - 1 ? prev + 1 : 0
|
|
786
|
+
);
|
|
787
|
+
break;
|
|
788
|
+
case "ArrowUp":
|
|
789
|
+
event.preventDefault();
|
|
790
|
+
setSelectedOptionIndex(
|
|
791
|
+
(prev) => prev > 0 ? prev - 1 : filteredOptions.length - 1
|
|
792
|
+
);
|
|
793
|
+
break;
|
|
794
|
+
case "Enter":
|
|
795
|
+
event.preventDefault();
|
|
796
|
+
if (filteredOptions[selectedOptionIndex]) {
|
|
797
|
+
handleOptionSelect(filteredOptions[selectedOptionIndex]);
|
|
798
|
+
}
|
|
799
|
+
break;
|
|
800
|
+
case "Tab":
|
|
801
|
+
tabJustPressedRef.current = true;
|
|
802
|
+
setIsDropdownOpen(false);
|
|
803
|
+
setSelectedOptionIndex(0);
|
|
804
|
+
setTimeout(() => {
|
|
805
|
+
tabJustPressedRef.current = false;
|
|
806
|
+
}, 50);
|
|
807
|
+
break;
|
|
750
808
|
}
|
|
751
|
-
},
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
if (!isDropdownOpen) {
|
|
779
|
-
return;
|
|
780
|
-
}
|
|
781
|
-
switch (event.key) {
|
|
782
|
-
case "ArrowDown":
|
|
783
|
-
event.preventDefault();
|
|
784
|
-
setSelectedOptionIndex(
|
|
785
|
-
(prev) => prev < filteredOptions.length - 1 ? prev + 1 : 0
|
|
786
|
-
);
|
|
787
|
-
break;
|
|
788
|
-
case "ArrowUp":
|
|
789
|
-
event.preventDefault();
|
|
790
|
-
setSelectedOptionIndex(
|
|
791
|
-
(prev) => prev > 0 ? prev - 1 : filteredOptions.length - 1
|
|
792
|
-
);
|
|
793
|
-
break;
|
|
794
|
-
case "Enter":
|
|
795
|
-
event.preventDefault();
|
|
796
|
-
if (filteredOptions[selectedOptionIndex]) {
|
|
797
|
-
handleOptionSelect(filteredOptions[selectedOptionIndex]);
|
|
798
|
-
}
|
|
799
|
-
break;
|
|
800
|
-
case "Tab":
|
|
801
|
-
tabJustPressedRef.current = true;
|
|
802
|
-
setIsDropdownOpen(false);
|
|
803
|
-
setSelectedOptionIndex(0);
|
|
804
|
-
setTimeout(() => {
|
|
805
|
-
tabJustPressedRef.current = false;
|
|
806
|
-
}, 50);
|
|
807
|
-
break;
|
|
808
|
-
}
|
|
809
|
-
},
|
|
810
|
-
[
|
|
811
|
-
isDropdownOpen,
|
|
812
|
-
selectedOptionIndex,
|
|
813
|
-
filteredOptions,
|
|
814
|
-
handleOptionSelect
|
|
815
|
-
]
|
|
816
|
-
);
|
|
817
|
-
const popoverDisabled = disableSuggestions || !popoverSupported;
|
|
818
|
-
const data = {
|
|
819
|
-
label: childrenToString(label),
|
|
820
|
-
labelProps,
|
|
821
|
-
description: childrenToString(description),
|
|
822
|
-
size,
|
|
809
|
+
},
|
|
810
|
+
[isDropdownOpen, selectedOptionIndex, filteredOptions, handleOptionSelect]
|
|
811
|
+
);
|
|
812
|
+
const popoverDisabled = disableSuggestions || !popoverSupported;
|
|
813
|
+
const data = {
|
|
814
|
+
label: childrenToString(label),
|
|
815
|
+
labelProps,
|
|
816
|
+
description: childrenToString(description),
|
|
817
|
+
size,
|
|
818
|
+
format,
|
|
819
|
+
step,
|
|
820
|
+
min,
|
|
821
|
+
max,
|
|
822
|
+
autoround,
|
|
823
|
+
disableSuggestions
|
|
824
|
+
};
|
|
825
|
+
const trackingId = useTrackingId({
|
|
826
|
+
name: "TimeField",
|
|
827
|
+
data,
|
|
828
|
+
hasOverride: !!rest["data-tracking-id"]
|
|
829
|
+
});
|
|
830
|
+
const justTheInput = /* @__PURE__ */ jsx(
|
|
831
|
+
MaskedTimeInput,
|
|
832
|
+
{
|
|
833
|
+
"data-tracking-id": trackingId,
|
|
834
|
+
ref: combinedRef,
|
|
835
|
+
selectedTime,
|
|
823
836
|
format,
|
|
824
|
-
|
|
837
|
+
placeholder,
|
|
825
838
|
min,
|
|
826
839
|
max,
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
ref: combinedRef,
|
|
840
|
-
selectedTime,
|
|
841
|
-
format,
|
|
842
|
-
placeholder,
|
|
843
|
-
min,
|
|
844
|
-
max,
|
|
845
|
-
onInputChange: handleInputChange,
|
|
846
|
-
onKeyDown: handleKeyDown,
|
|
847
|
-
onBlur: handleBlur,
|
|
848
|
-
onFocus: handleFocus,
|
|
849
|
-
label,
|
|
850
|
-
labelProps,
|
|
851
|
-
size,
|
|
852
|
-
description,
|
|
853
|
-
error: errorProp,
|
|
854
|
-
className: popoverDisabled ? className : void 0,
|
|
855
|
-
...rest,
|
|
856
|
-
"data-anv": "time-field"
|
|
857
|
-
}
|
|
858
|
-
);
|
|
859
|
-
if (popoverDisabled) {
|
|
860
|
-
return justTheInput;
|
|
840
|
+
onInputChange: handleInputChange,
|
|
841
|
+
onKeyDown: handleKeyDown,
|
|
842
|
+
onBlur: handleBlur,
|
|
843
|
+
onFocus: handleFocus,
|
|
844
|
+
label,
|
|
845
|
+
labelProps,
|
|
846
|
+
size,
|
|
847
|
+
description,
|
|
848
|
+
error: errorProp,
|
|
849
|
+
className: popoverDisabled ? className : void 0,
|
|
850
|
+
...rest,
|
|
851
|
+
"data-anv": "time-field"
|
|
861
852
|
}
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
open: isDropdownOpen,
|
|
866
|
-
noPadding: true,
|
|
867
|
-
disableCaret: true,
|
|
868
|
-
placement: "bottom-start",
|
|
869
|
-
matchReferenceWidth: true,
|
|
870
|
-
modal: false,
|
|
871
|
-
onClickOutside: () => {
|
|
872
|
-
setIsDropdownOpen(false);
|
|
873
|
-
},
|
|
874
|
-
onClose: () => {
|
|
875
|
-
setIsDropdownOpen(false);
|
|
876
|
-
},
|
|
877
|
-
fitScreen: true,
|
|
878
|
-
maxHeight: 205,
|
|
879
|
-
children: [
|
|
880
|
-
/* @__PURE__ */ jsx(Popover.Trigger, { children: ({ ref: popoverRef }) => /* @__PURE__ */ jsx(
|
|
881
|
-
"div",
|
|
882
|
-
{
|
|
883
|
-
ref: popoverRef,
|
|
884
|
-
className,
|
|
885
|
-
children: justTheInput
|
|
886
|
-
}
|
|
887
|
-
) }),
|
|
888
|
-
/* @__PURE__ */ jsx(
|
|
889
|
-
Popover.Content,
|
|
890
|
-
{
|
|
891
|
-
ref: popoverContentRef,
|
|
892
|
-
"data-open": isDropdownOpen,
|
|
893
|
-
"data-disabled": disableSuggestions,
|
|
894
|
-
onMouseDown: () => {
|
|
895
|
-
isDropdownClickingRef.current = true;
|
|
896
|
-
},
|
|
897
|
-
onTouchStart: () => {
|
|
898
|
-
isDropdownClickingRef.current = true;
|
|
899
|
-
},
|
|
900
|
-
children: shouldShowOptions && /* @__PURE__ */ jsx(
|
|
901
|
-
Listbox,
|
|
902
|
-
{
|
|
903
|
-
selected: filteredOptions[selectedOptionIndex],
|
|
904
|
-
onSelectionChange: (selected) => {
|
|
905
|
-
if (selected) {
|
|
906
|
-
handleOptionSelect(selected);
|
|
907
|
-
} else {
|
|
908
|
-
const currentOption = filteredOptions[selectedOptionIndex];
|
|
909
|
-
if (currentOption) {
|
|
910
|
-
handleOptionSelect(currentOption);
|
|
911
|
-
}
|
|
912
|
-
}
|
|
913
|
-
},
|
|
914
|
-
"aria-label": "Time suggestions",
|
|
915
|
-
children: filteredOptions.map((option) => /* @__PURE__ */ jsx(Listbox.Option, { value: option, label: option, children: option }, option))
|
|
916
|
-
}
|
|
917
|
-
)
|
|
918
|
-
}
|
|
919
|
-
)
|
|
920
|
-
]
|
|
921
|
-
}
|
|
922
|
-
);
|
|
853
|
+
);
|
|
854
|
+
if (popoverDisabled) {
|
|
855
|
+
return justTheInput;
|
|
923
856
|
}
|
|
924
|
-
|
|
857
|
+
return /* @__PURE__ */ jsxs(
|
|
858
|
+
Popover,
|
|
859
|
+
{
|
|
860
|
+
open: isDropdownOpen,
|
|
861
|
+
noPadding: true,
|
|
862
|
+
disableCaret: true,
|
|
863
|
+
placement: "bottom-start",
|
|
864
|
+
matchReferenceWidth: true,
|
|
865
|
+
modal: false,
|
|
866
|
+
onClickOutside: () => {
|
|
867
|
+
setIsDropdownOpen(false);
|
|
868
|
+
},
|
|
869
|
+
onClose: () => {
|
|
870
|
+
setIsDropdownOpen(false);
|
|
871
|
+
},
|
|
872
|
+
fitScreen: true,
|
|
873
|
+
maxHeight: 205,
|
|
874
|
+
children: [
|
|
875
|
+
/* @__PURE__ */ jsx(Popover.Trigger, { children: ({ ref: iRef }) => {
|
|
876
|
+
setPopoverTriggerRef(iRef);
|
|
877
|
+
return justTheInput;
|
|
878
|
+
} }),
|
|
879
|
+
/* @__PURE__ */ jsx(
|
|
880
|
+
Popover.Content,
|
|
881
|
+
{
|
|
882
|
+
ref: popoverContentRef,
|
|
883
|
+
"data-open": isDropdownOpen,
|
|
884
|
+
"data-disabled": disableSuggestions,
|
|
885
|
+
onMouseDown: () => {
|
|
886
|
+
isDropdownClickingRef.current = true;
|
|
887
|
+
},
|
|
888
|
+
onTouchStart: () => {
|
|
889
|
+
isDropdownClickingRef.current = true;
|
|
890
|
+
},
|
|
891
|
+
children: shouldShowOptions && /* @__PURE__ */ jsx(
|
|
892
|
+
Listbox,
|
|
893
|
+
{
|
|
894
|
+
selected: filteredOptions[selectedOptionIndex],
|
|
895
|
+
onSelectionChange: (selected) => {
|
|
896
|
+
if (selected) {
|
|
897
|
+
handleOptionSelect(selected);
|
|
898
|
+
} else {
|
|
899
|
+
const currentOption = filteredOptions[selectedOptionIndex];
|
|
900
|
+
if (currentOption) {
|
|
901
|
+
handleOptionSelect(currentOption);
|
|
902
|
+
}
|
|
903
|
+
}
|
|
904
|
+
},
|
|
905
|
+
"aria-label": "Time suggestions",
|
|
906
|
+
children: filteredOptions.map((option) => /* @__PURE__ */ jsx(Listbox.Option, { value: option, label: option, children: option }, option))
|
|
907
|
+
}
|
|
908
|
+
)
|
|
909
|
+
}
|
|
910
|
+
)
|
|
911
|
+
]
|
|
912
|
+
}
|
|
913
|
+
);
|
|
914
|
+
};
|
|
925
915
|
TimeField.displayName = "TimeField";
|
|
926
916
|
|
|
927
917
|
export { TimeField as T };
|
|
928
|
-
//# sourceMappingURL=TimeField-
|
|
918
|
+
//# sourceMappingURL=TimeField-4v5aCwiG.js.map
|