@servicetitan/anvil2 1.48.1 → 1.49.1
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 +36 -0
- package/dist/{Alert-Cz_w_cw0.js → Alert-aGBkujwE.js} +4 -4
- package/dist/{Alert-Cz_w_cw0.js.map → Alert-aGBkujwE.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-C1xSJkl0.js → Announcement-BPwFNhYe.js} +4 -4
- package/dist/{Announcement-C1xSJkl0.js.map → Announcement-BPwFNhYe.js.map} +1 -1
- package/dist/Announcement.js +1 -1
- package/dist/{AnvilProvider-DDo8ZcIA.js → AnvilProvider-DBYMPYAO.js} +3 -3
- package/dist/{AnvilProvider-DDo8ZcIA.js.map → AnvilProvider-DBYMPYAO.js.map} +1 -1
- package/dist/AnvilProvider.js +1 -1
- package/dist/{Avatar-VQrimv28.js → Avatar-DeEV-v-b.js} +2 -2
- package/dist/{Avatar-VQrimv28.js.map → Avatar-DeEV-v-b.js.map} +1 -1
- package/dist/{Avatar-Bbwk2MCy.js → Avatar-gtxslf5v.js} +2 -2
- package/dist/{Avatar-Bbwk2MCy.js.map → Avatar-gtxslf5v.js.map} +1 -1
- package/dist/Avatar.js +2 -2
- package/dist/{Badge-DOnID5l5.js → Badge-DY5xJkqi.js} +2 -2
- package/dist/{Badge-DOnID5l5.js.map → Badge-DY5xJkqi.js.map} +1 -1
- package/dist/Badge.js +1 -1
- package/dist/{Breadcrumbs-DKqd8VRz.js → Breadcrumbs-DjR-2OEH.js} +5 -5
- package/dist/{Breadcrumbs-DKqd8VRz.js.map → Breadcrumbs-DjR-2OEH.js.map} +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Button-DzcOa6iJ.js → Button-92_FKAyV.js} +3 -3
- package/dist/{Button-DzcOa6iJ.js.map → Button-92_FKAyV.js.map} +1 -1
- package/dist/Button.js +1 -1
- package/dist/{ButtonCompound-Dvr3Fres.js → ButtonCompound-COdSELhh.js} +2 -2
- package/dist/{ButtonCompound-Dvr3Fres.js.map → ButtonCompound-COdSELhh.js.map} +1 -1
- package/dist/ButtonCompound.js +1 -1
- package/dist/{ButtonLink-DGIRpyK6.js → ButtonLink-C0zR7Wnb.js} +3 -3
- package/dist/{ButtonLink-DGIRpyK6.js.map → ButtonLink-C0zR7Wnb.js.map} +1 -1
- package/dist/ButtonLink.js +1 -1
- package/dist/{ButtonToggle-Dv6VAm4W.js → ButtonToggle--sKvhBoA.js} +3 -3
- package/dist/{ButtonToggle-Dv6VAm4W.js.map → ButtonToggle--sKvhBoA.js.map} +1 -1
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-NDOcurOz.js → Calendar-BkJs1qTF.js} +59 -69
- package/dist/Calendar-BkJs1qTF.js.map +1 -0
- package/dist/{Calendar-8bP4LsQV.js → Calendar-WHERvu2Y.js} +2 -2
- package/dist/{Calendar-8bP4LsQV.js.map → Calendar-WHERvu2Y.js.map} +1 -1
- package/dist/Calendar.css +52 -51
- package/dist/Calendar.js +2 -2
- package/dist/{Card-Cyoz-LaD.js → Card-Ch3sMUo5.js} +2 -2
- package/dist/{Card-Cyoz-LaD.js.map → Card-Ch3sMUo5.js.map} +1 -1
- package/dist/Card.js +1 -1
- package/dist/{Checkbox-Bsa1FgoI.js → Checkbox-Bhjj-jM4.js} +5 -5
- package/dist/{Checkbox-Bsa1FgoI.js.map → Checkbox-Bhjj-jM4.js.map} +1 -1
- package/dist/{Checkbox-BJnt8TFk.js → Checkbox-C5Qjq_tU.js} +2 -2
- package/dist/{Checkbox-BJnt8TFk.js.map → Checkbox-C5Qjq_tU.js.map} +1 -1
- package/dist/Checkbox.js +2 -2
- package/dist/{Chip-BGa1Inb8.js → Chip-X2EwdZ97.js} +4 -4
- package/dist/{Chip-BGa1Inb8.js.map → Chip-X2EwdZ97.js.map} +1 -1
- package/dist/Chip.js +1 -1
- package/dist/{Combobox-BfqKpX1v.js → Combobox-C4COM7BZ.js} +13 -13
- package/dist/{Combobox-BfqKpX1v.js.map → Combobox-C4COM7BZ.js.map} +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-xUON92DR.js → DataTable-BkNCMaVu.js} +93 -89
- package/dist/DataTable-BkNCMaVu.js.map +1 -0
- package/dist/{DateField-Cm0FIG3Y.js → DateField-BNleIuS8.js} +6 -6
- package/dist/{DateField-Cm0FIG3Y.js.map → DateField-BNleIuS8.js.map} +1 -1
- package/dist/DateField.js +1 -1
- package/dist/{DateFieldRange-CGGqW_cg.js → DateFieldRange-BBgvno-_.js} +11 -8
- package/dist/{DateFieldRange-CGGqW_cg.js.map → DateFieldRange-BBgvno-_.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-BYWuJ3IL.js → DateFieldSingle-Bcwkxogy.js} +11 -8
- package/dist/{DateFieldSingle-BYWuJ3IL.js.map → DateFieldSingle-Bcwkxogy.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/DateFieldYearless-DnVJaBBq.js +133 -0
- package/dist/DateFieldYearless-DnVJaBBq.js.map +1 -0
- package/dist/DateFieldYearless.js +1 -1
- package/dist/DateFieldYearlessRange-BivGidsU.js +178 -0
- package/dist/DateFieldYearlessRange-BivGidsU.js.map +1 -0
- package/dist/DateFieldYearlessRange.css +36 -0
- package/dist/DateFieldYearlessRange.d.ts +2 -0
- package/dist/DateFieldYearlessRange.js +2 -0
- package/dist/DateFieldYearlessRange.js.map +1 -0
- package/dist/{DaysOfTheWeek-BIi9dyJP.js → DaysOfTheWeek-Dn6zHxpt.js} +6 -6
- package/dist/{DaysOfTheWeek-BIi9dyJP.js.map → DaysOfTheWeek-Dn6zHxpt.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Details-Bg7QzlOm.js → Details-CkaKTRvc.js} +3 -3
- package/dist/{Details-Bg7QzlOm.js.map → Details-CkaKTRvc.js.map} +1 -1
- package/dist/Details.js +1 -1
- package/dist/{Dialog-fJClGTI6.js → Dialog-CxH4Vnbb.js} +4 -4
- package/dist/{Dialog-fJClGTI6.js.map → Dialog-CxH4Vnbb.js.map} +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/{Divider-DYZFKug1.js → Divider-Olv8yWXD.js} +2 -2
- package/dist/{Divider-DYZFKug1.js.map → Divider-Olv8yWXD.js.map} +1 -1
- package/dist/Divider.js +1 -1
- package/dist/Dnd.js +1 -1
- package/dist/DndSort.js +7 -6
- package/dist/DndSort.js.map +1 -1
- package/dist/{Drawer-DyHDRTR-.js → Drawer-BLfDJU-e.js} +4 -4
- package/dist/{Drawer-DyHDRTR-.js.map → Drawer-BLfDJU-e.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/{EditCard-LdyduHqX.js → EditCard-Ds1UXJIS.js} +6 -6
- package/dist/{EditCard-LdyduHqX.js.map → EditCard-Ds1UXJIS.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-DIlzcPIQ.js → FieldLabel-CHMCV9wX.js} +38 -19
- package/dist/FieldLabel-CHMCV9wX.js.map +1 -0
- package/dist/FieldLabel.css +22 -7
- package/dist/FieldLabel.js +1 -1
- package/dist/{FieldMessage-BbARBii0.js → FieldMessage-DWONT3dr.js} +2 -2
- package/dist/{FieldMessage-BbARBii0.js.map → FieldMessage-DWONT3dr.js.map} +1 -1
- package/dist/FieldMessage.js +1 -1
- package/dist/{Flex-GLF5XRJg.js → Flex-CjPHUTeq.js} +2 -2
- package/dist/{Flex-GLF5XRJg.js.map → Flex-CjPHUTeq.js.map} +1 -1
- package/dist/Flex.js +1 -1
- package/dist/{Grid-BpAt2zA7.js → Grid-DW2cAuHi.js} +2 -2
- package/dist/{Grid-BpAt2zA7.js.map → Grid-DW2cAuHi.js.map} +1 -1
- package/dist/Grid.js +1 -1
- package/dist/{Helper-DHoKHqxV.js → Helper-DjWotFtO.js} +2 -2
- package/dist/{Helper-DHoKHqxV.js.map → Helper-DjWotFtO.js.map} +1 -1
- package/dist/{Icon-TcJbUdTz.js → Icon-BSuTVNaa.js} +2 -2
- package/dist/{Icon-TcJbUdTz.js.map → Icon-BSuTVNaa.js.map} +1 -1
- package/dist/Icon.js +1 -1
- package/dist/{InputMask-B6oJlChY.js → InputMask-Cd01c3Tj.js} +2 -2
- package/dist/{InputMask-B6oJlChY.js.map → InputMask-Cd01c3Tj.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{Link-Br_AJ7Af.js → Link-DuYh7Xl2.js} +3 -3
- package/dist/{Link-Br_AJ7Af.js.map → Link-DuYh7Xl2.js.map} +1 -1
- package/dist/Link.js +1 -1
- package/dist/{LinkButton-CwiVzaro.js → LinkButton-pIUNATNE.js} +2 -2
- package/dist/{LinkButton-CwiVzaro.js.map → LinkButton-pIUNATNE.js.map} +1 -1
- package/dist/LinkButton.js +1 -1
- package/dist/{ListView-fBFSagWO.js → ListView-CZ5T8bR1.js} +3 -3
- package/dist/{ListView-fBFSagWO.js.map → ListView-CZ5T8bR1.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-gtZ2Ao_I.js → Listbox-C-n4IVVj.js} +5 -5
- package/dist/{Listbox-gtZ2Ao_I.js.map → Listbox-C-n4IVVj.js.map} +1 -1
- package/dist/Listbox.js +1 -1
- package/dist/{LocalizationProvider-Cqattc3O.js → LocalizationProvider-u6xdKCBi.js} +2 -2
- package/dist/{LocalizationProvider-Cqattc3O.js.map → LocalizationProvider-u6xdKCBi.js.map} +1 -1
- package/dist/LocalizationProvider.js +1 -1
- package/dist/{Menu-CBbUK_sX.js → Menu-DUAfSImY.js} +4 -4
- package/dist/{Menu-CBbUK_sX.js.map → Menu-DUAfSImY.js.map} +1 -1
- package/dist/Menu.js +1 -1
- package/dist/{NumberField-CNskrtsN.js → NumberField-C62E56_v.js} +7 -7
- package/dist/{NumberField-CNskrtsN.js.map → NumberField-C62E56_v.js.map} +1 -1
- package/dist/NumberField.js +1 -1
- package/dist/Overflow.js +2 -3
- package/dist/Overflow.js.map +1 -1
- package/dist/{Page-4VdFrCjy.js → Page-CGZQ-nsg.js} +15 -15
- package/dist/Page-CGZQ-nsg.js.map +1 -0
- package/dist/Page.js +1 -1
- package/dist/{Pagination-CQjNN1yN.js → Pagination-BHEEnNas.js} +6 -6
- package/dist/{Pagination-CQjNN1yN.js.map → Pagination-BHEEnNas.js.map} +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/{Popover--c9PXAVi.js → Popover-CIPg_ZgX.js} +5 -4
- package/dist/Popover-CIPg_ZgX.js.map +1 -0
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-CXMuhBQV.js → ProgressBar-CUpF9fFW.js} +6 -6
- package/dist/{ProgressBar-CXMuhBQV.js.map → ProgressBar-CUpF9fFW.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-CTYs8JpI.js → Radio-CyCFna1X.js} +2 -2
- package/dist/{Radio-CTYs8JpI.js.map → Radio-CyCFna1X.js.map} +1 -1
- package/dist/Radio.js +2 -2
- package/dist/{RadioGroup-BVGnsTuG.js → RadioGroup-DRS2EjVH.js} +5 -5
- package/dist/{RadioGroup-BVGnsTuG.js.map → RadioGroup-DRS2EjVH.js.map} +1 -1
- package/dist/{SearchField-DLqva3o3.js → SearchField-DrgNbG3I.js} +3 -3
- package/dist/{SearchField-DLqva3o3.js.map → SearchField-DrgNbG3I.js.map} +1 -1
- package/dist/SearchField.js +1 -1
- package/dist/{SegmentedControl-1OzOQmCp.js → SegmentedControl-DK1cwC7A.js} +12 -3
- package/dist/SegmentedControl-DK1cwC7A.js.map +1 -0
- package/dist/SegmentedControl.js +1 -1
- package/dist/{SelectCard-Dw7zW0UN.js → SelectCard-lBcnP5j5.js} +4 -4
- package/dist/{SelectCard-Dw7zW0UN.js.map → SelectCard-lBcnP5j5.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/{SelectTrigger-BQNqyG3M.js → SelectTrigger-qvoGCkb1.js} +5 -5
- package/dist/{SelectTrigger-BQNqyG3M.js.map → SelectTrigger-qvoGCkb1.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-B-fxog4U.js → SelectTriggerBase-C4gebtca.js} +6 -6
- package/dist/{SelectTriggerBase-B-fxog4U.js.map → SelectTriggerBase-C4gebtca.js.map} +1 -1
- package/dist/{SideNav-COiPAIph.js → SideNav-B1sH17Uc.js} +3 -3
- package/dist/{SideNav-COiPAIph.js.map → SideNav-B1sH17Uc.js.map} +1 -1
- package/dist/SideNav.js +1 -1
- package/dist/Skeleton.js +1 -1
- package/dist/{Stepper-xcgOQzru.js → Stepper-BZr9ytpD.js} +7 -4
- package/dist/Stepper-BZr9ytpD.js.map +1 -0
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-mhyHJeex.js → Switch-BXDPs2mD.js} +8 -6
- package/dist/Switch-BXDPs2mD.js.map +1 -0
- package/dist/Switch.js +1 -1
- package/dist/{Tab-BISlFW_i.js → Tab-6UavokJJ.js} +3 -3
- package/dist/{Tab-BISlFW_i.js.map → Tab-6UavokJJ.js.map} +1 -1
- package/dist/Tab.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-CDzLZl1O.js → Text-kPA-VzsB.js} +2 -2
- package/dist/{Text-CDzLZl1O.js.map → Text-kPA-VzsB.js.map} +1 -1
- package/dist/Text.js +1 -1
- package/dist/{TextField-CUrYEZR4.js → TextField-CpVkZxMT.js} +2 -2
- package/dist/{TextField-CUrYEZR4.js.map → TextField-CpVkZxMT.js.map} +1 -1
- package/dist/{TextField-DPTJjF8V.js → TextField-CygbgVVt.js} +6 -5
- package/dist/TextField-CygbgVVt.js.map +1 -0
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-f0jAKcvn.js → Textarea-DacevzmW.js} +4 -4
- package/dist/{Textarea-f0jAKcvn.js.map → Textarea-DacevzmW.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{ThemeProvider-CUiXHn4p.js → ThemeProvider-Bmsz__5N.js} +2 -2
- package/dist/{ThemeProvider-CUiXHn4p.js.map → ThemeProvider-Bmsz__5N.js.map} +1 -1
- package/dist/ThemeProvider.js +1 -1
- package/dist/{TimeField-CGSwrpl0.js → TimeField-BkOB5ESa.js} +8 -7
- package/dist/{TimeField-CGSwrpl0.js.map → TimeField-BkOB5ESa.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-C6iB4h0P.js → Toaster-BxbR-XcR.js} +2 -2
- package/dist/{Toaster-C6iB4h0P.js.map → Toaster-BxbR-XcR.js.map} +1 -1
- package/dist/{Toaster-D72xHdfH.js → Toaster-Dg7M4W4U.js} +4 -4
- package/dist/{Toaster-D72xHdfH.js.map → Toaster-Dg7M4W4U.js.map} +1 -1
- package/dist/{Toolbar-CcJa_YpH.js → Toolbar-XcfHQftc.js} +20 -20
- package/dist/{Toolbar-CcJa_YpH.js.map → Toolbar-XcfHQftc.js.map} +1 -1
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-BOfdwyTv.js → Tooltip-CZsoFe6C.js} +2 -2
- package/dist/{Tooltip-BOfdwyTv.js.map → Tooltip-CZsoFe6C.js.map} +1 -1
- package/dist/Tooltip.js +1 -1
- package/dist/YearlessDateInputWithPicker-MHLlAdrH.js +949 -0
- package/dist/YearlessDateInputWithPicker-MHLlAdrH.js.map +1 -0
- package/dist/YearlessDateInputWithPicker.css +199 -0
- package/dist/beta/components/Table/DataTable/DataTable.d.ts +4 -4
- package/dist/beta/components/Table/DataTable/internal/useAsyncData.d.ts +5 -0
- package/dist/beta.js +4 -4
- package/dist/components/DateFieldYearless/DateFieldYearless.d.ts +57 -3
- package/dist/components/DateFieldYearless/internal/PickerList.d.ts +61 -0
- package/dist/components/DateFieldYearless/internal/PickerListOption.d.ts +61 -0
- package/dist/components/DateFieldYearless/internal/YearlessDateInput.d.ts +51 -0
- package/dist/components/DateFieldYearless/internal/YearlessDateInputWithPicker.d.ts +134 -0
- package/dist/components/DateFieldYearless/internal/YearlessDateSelectionPopover.d.ts +27 -0
- package/dist/components/DateFieldYearless/internal/maskito/yearlessDatePlaceholderMask.d.ts +3 -1
- package/dist/components/DateFieldYearless/internal/maskito/yearlessDateSegmentsStepping.d.ts +12 -0
- package/dist/components/DateFieldYearless/internal/utils.d.ts +50 -1
- package/dist/components/DateFieldYearlessRange/DateFieldYearlessRange.d.ts +59 -0
- package/dist/components/DateFieldYearlessRange/index.d.ts +1 -0
- package/dist/components/Dnd/DndHandleButton.d.ts +2 -1
- package/dist/components/FieldLabel/FieldLabel.d.ts +9 -48
- package/dist/components/FieldLabel/internal/FieldLabelMoreInfoIcon.d.ts +3 -1
- package/dist/components/Popover/Popover.d.ts +1 -0
- package/dist/components/Popover/PopoverContent.d.ts +8 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/{index-CUVkL0hr.js → index-ByS9WvPk.js} +4 -3
- package/dist/index-ByS9WvPk.js.map +1 -0
- package/dist/{index.esm-BwMVvxTV.js → index.esm-C2ZhC_8d.js} +2 -2
- package/dist/{index.esm-BwMVvxTV.js.map → index.esm-C2ZhC_8d.js.map} +1 -1
- package/dist/index.js +68 -67
- package/dist/index.js.map +1 -1
- package/dist/{useLayoutPropsUtil-C7FVYB8F.js → useLayoutPropsUtil-BlIWftBb.js} +2 -2
- package/dist/{useLayoutPropsUtil-C7FVYB8F.js.map → useLayoutPropsUtil-BlIWftBb.js.map} +1 -1
- package/dist/{utils-CyPyKUVh.js → utils-aSAOVHjX.js} +2 -2
- package/dist/{utils-CyPyKUVh.js.map → utils-aSAOVHjX.js.map} +1 -1
- package/package.json +2 -1
- package/dist/Calendar-NDOcurOz.js.map +0 -1
- package/dist/DataTable-xUON92DR.js.map +0 -1
- package/dist/DateFieldYearless-BXRgNWzy.js +0 -266
- package/dist/DateFieldYearless-BXRgNWzy.js.map +0 -1
- package/dist/FieldLabel-DIlzcPIQ.js.map +0 -1
- package/dist/Page-4VdFrCjy.js.map +0 -1
- package/dist/Popover--c9PXAVi.js.map +0 -1
- package/dist/SegmentedControl-1OzOQmCp.js.map +0 -1
- package/dist/Stepper-xcgOQzru.js.map +0 -1
- package/dist/Switch-mhyHJeex.js.map +0 -1
- package/dist/TextField-DPTJjF8V.js.map +0 -1
- package/dist/components/DateFieldYearless/internal/MaskedYearlessDateInput.d.ts +0 -35
- package/dist/index-CUVkL0hr.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef, useState, useRef, useMemo, useEffect } from 'react';
|
|
3
|
-
import { I as InputMask } from './InputMask-
|
|
4
|
-
import { I as Icon } from './Icon-
|
|
3
|
+
import { I as InputMask } from './InputMask-Cd01c3Tj.js';
|
|
4
|
+
import { I as Icon } from './Icon-BSuTVNaa.js';
|
|
5
5
|
import { S as SvgEvent } from './event-BEJFimi3.js';
|
|
6
|
-
import { D as DateTime, i as isValidDate, t as toDateString, a as Calendar } from './Calendar-
|
|
7
|
-
import { e as PopoverLegacy, P as Popover } from './Popover
|
|
6
|
+
import { D as DateTime, i as isValidDate, t as toDateString, a as Calendar } from './Calendar-BkJs1qTF.js';
|
|
7
|
+
import { e as PopoverLegacy, P as Popover } from './Popover-CIPg_ZgX.js';
|
|
8
8
|
import { m as mergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
9
|
-
import { T as TextField } from './TextField-
|
|
9
|
+
import { T as TextField } from './TextField-CygbgVVt.js';
|
|
10
10
|
import { u as useMergeRefs, s as supportsPopover } from './DrawerContext-D4tWTLVf.js';
|
|
11
11
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
|
|
12
12
|
import { useTrackingId } from './useTrackingId.js';
|
|
@@ -1070,4 +1070,4 @@ const DateField = forwardRef(
|
|
|
1070
1070
|
DateField.displayName = "DateField";
|
|
1071
1071
|
|
|
1072
1072
|
export { DateField as D };
|
|
1073
|
-
//# sourceMappingURL=DateField-
|
|
1073
|
+
//# sourceMappingURL=DateField-BNleIuS8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateField-Cm0FIG3Y.js","sources":["../src/components/DateField/internal/isoToDateFormat.ts","../src/components/DateField/internal/DateFieldLegacy/DateFieldLegacy.tsx","../src/components/DateField/DateField.tsx"],"sourcesContent":["import { DateTime } from \"luxon\";\n\nexport const isoToDateFormat = (date: string, format: string) => {\n // Returns a string of the proper format for ISO strings and the input date string for non-ISO strings\n const luxonDate = DateTime.fromISO(date);\n if (luxonDate.isValid) {\n return luxonDate.toFormat(format);\n }\n return date;\n};\n","import {\n ChangeEvent,\n ChangeEventHandler,\n FocusEventHandler,\n KeyboardEventHandler,\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { InputMask } from \"../../../InputMask\";\nimport {\n TextField,\n TextFieldProps,\n} from \"../../../TextField/internal/TextField\";\nimport { PopoverLegacy } from \"../../../Popover/internal/PopoverLegacy\";\nimport {\n CalendarProps,\n CalendarValue,\n CalendarRangeValue,\n} from \"../../../Calendar/Calendar\";\nimport { Calendar } from \"../../../Calendar\";\nimport { useMergeRefs } from \"@floating-ui/react\";\nimport { IanaZone, Locale } from \"../../../../types\";\nimport { Icon } from \"../../../Icon\";\nimport Event from \"@servicetitan/hammer-icon/mdi/round/event.svg\";\nimport { DateTime } from \"luxon\";\nimport { isValidDate, toDateString } from \"../../../Calendar/internal/utils\";\n\nconst RANGE_DIVIDER = \" — \";\n\ninterface DateFieldLegacyCommonProps {\n format?: \"MM/dd/yyyy\" | \"dd/MM/yyyy\";\n locale?: Locale;\n defaultTimeZone?: IanaZone;\n openCalendar?: boolean;\n disableHint?: boolean;\n}\n\nexport interface LegacyDateSelect {\n value: string;\n date: string | null | undefined;\n isValid: boolean;\n}\n\nexport interface LegacyDateRangeSelect {\n start?: LegacyDateSelect;\n end?: LegacyDateSelect;\n value: string;\n}\n\ninterface DateFieldLegacySingleProps {\n onChange?: (\n event: ChangeEvent<HTMLInputElement>,\n data: LegacyDateSelect,\n ) => void;\n defaultValue?: string;\n range?: false;\n}\n\ninterface DateFieldLegacyRangeProps {\n onChange?: (\n event: ChangeEvent<HTMLInputElement>,\n data: LegacyDateRangeSelect,\n ) => void;\n defaultValue?: { start?: string; end?: string };\n range: true;\n}\n\nexport type DateFieldLegacyProps = Omit<CalendarProps, \"onChange\"> &\n Omit<\n TextFieldProps,\n \"prefix\" | \"suffix\" | \"hint\" | \"onChange\" | \"showCounter\"\n > &\n DateFieldLegacyCommonProps &\n (DateFieldLegacySingleProps | DateFieldLegacyRangeProps);\n\nexport const DateFieldLegacy = forwardRef<\n HTMLInputElement,\n DateFieldLegacyProps\n>(\n (\n {\n // DateFieldLegacy\n openCalendar,\n onFocus,\n onBlur,\n onChange,\n format = \"MM/dd/yyyy\",\n disableHint,\n\n // Calendar\n minDate,\n maxDate,\n unavailableDates,\n unavailable,\n startDay,\n defaultValue,\n value: inputValue,\n\n // Shared\n locale = Intl.DateTimeFormat().resolvedOptions().locale as Locale,\n defaultTimeZone = Intl.DateTimeFormat().resolvedOptions()\n .timeZone as IanaZone,\n range,\n\n // Input\n required,\n ...inputProps\n },\n ref,\n ) => {\n const [open, setOpen] = useState(openCalendar || false);\n const [internalValue, setInternalValue] = useState<\n LegacyDateSelect | LegacyDateRangeSelect | undefined\n >();\n const [disableFocusLock, setDisableFocusLock] = useState(true);\n const inputRef = useRef<HTMLInputElement>(null);\n const calRef = useRef<HTMLDivElement>(null);\n const iconRef = useRef<HTMLElement>(null);\n const docRef = useRef<Document | Node | null>(null);\n const floatRef = useRef<HTMLDivElement>(null);\n const isClickOutside = useRef(false);\n const formatMask = format.replace(/[^/]/g, \"_\");\n const hint = useMemo(\n () => (disableHint ? undefined : `Format: ${format.replace(/M/g, \"m\")}`),\n [format, disableHint],\n );\n\n useEffect(() => {\n if (!docRef.current) {\n if (document != null) {\n docRef.current = document;\n return;\n }\n const doc = inputRef.current?.closest(\"body\")?.ownerDocument;\n if (doc) {\n docRef.current = doc;\n }\n\n if (docRef.current == null && inputRef.current?.parentNode != null) {\n let node: Node = inputRef.current?.parentNode;\n while (node.parentNode != null) {\n node = node.parentNode;\n }\n docRef.current = node;\n }\n }\n const clickOutHandler = (ev: Event) => {\n // this is more accurate, especially in shadow doms\n const realTarget = ev.composedPath()[0] as Node;\n\n if (\n !floatRef.current?.contains(realTarget) &&\n !iconRef.current?.contains(realTarget) &&\n inputRef.current !== realTarget\n ) {\n setOpen(false);\n setDisableFocusLock(true);\n onBlur?.(ev as unknown as React.FocusEvent<HTMLInputElement>);\n }\n };\n\n if (open) {\n docRef.current?.addEventListener(\"click\", clickOutHandler);\n } else {\n docRef.current?.removeEventListener(\"click\", clickOutHandler);\n }\n\n return () => {\n docRef.current?.removeEventListener(\"click\", clickOutHandler);\n };\n }, [open, onBlur]);\n\n useEffect(() => {\n if (range) {\n let start;\n let end;\n if (typeof inputValue === \"string\") {\n const parts = inputValue.split(RANGE_DIVIDER);\n start = parts[0];\n end = parts[1];\n } else {\n start = inputValue?.start ?? \"\";\n end = inputValue?.end ?? \"\";\n }\n const startDate = DateTime.fromFormat(start ?? \"\", format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const endDate = DateTime.fromFormat(end ?? \"\", format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const newData: LegacyDateRangeSelect = {\n start: {\n value: start,\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: end,\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value: `${start || formatMask}${RANGE_DIVIDER}${end || formatMask}`,\n };\n setInternalValue(newData);\n } else {\n if (typeof inputValue !== \"string\") return;\n const inputDate = DateTime.fromFormat(inputValue, format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const newData: LegacyDateSelect = {\n value: inputValue,\n date: toDateString(inputDate),\n isValid:\n inputDate.isValid &&\n isValidDate(\n inputDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n };\n setInternalValue(newData);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [inputValue]);\n\n const mask: string = useMemo(() => {\n const maskPart = format.replace(/[Mdy]/g, \"9\");\n if (range) {\n return maskPart + RANGE_DIVIDER + maskPart;\n } else {\n return maskPart;\n }\n }, [format, range]);\n\n useEffect(() => {\n // Set default only if uncontrolled and we have a defaultValue.\n if (typeof inputValue === \"string\") return;\n if (defaultValue) {\n if (range) {\n // Get input value\n const defValStart = defaultValue.start;\n const defValEnd = defaultValue.end;\n\n const initValStart =\n defValStart +\n (formatMask + RANGE_DIVIDER + formatMask).slice(\n defValStart?.length,\n );\n const initValEnd =\n defValEnd +\n (formatMask + RANGE_DIVIDER + formatMask).slice(defValEnd?.length);\n const newValue = initValStart + RANGE_DIVIDER + initValEnd;\n\n // Set calendar value\n const inputDateStart = DateTime.fromFormat(\n defValStart || \"\",\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const inputDateEnd = DateTime.fromFormat(defValEnd || \"\", format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n\n const isValidStart =\n inputDateStart.isValid &&\n isValidDate(\n inputDateStart,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n );\n\n const isValidEnd =\n inputDateEnd.isValid &&\n isValidDate(\n inputDateEnd,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n );\n const initCalendarValue: LegacyDateRangeSelect = {\n start: {\n value: initValStart,\n date: toDateString(inputDateStart),\n isValid: isValidStart,\n },\n end: {\n value: initValEnd,\n date: toDateString(inputDateEnd),\n isValid: isValidEnd,\n },\n value: newValue,\n };\n setInternalValue(initCalendarValue);\n } else {\n // Get input value\n const defVal = defaultValue as string;\n const initVal = defVal + formatMask.slice(defVal.length);\n\n // Set calendar value\n const inputDate = DateTime.fromFormat(defVal, format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const isValid =\n inputDate.isValid &&\n isValidDate(\n inputDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n );\n const initCalendarValue: LegacyDateSelect = {\n value: initVal,\n date: toDateString(inputDate),\n isValid,\n };\n setInternalValue(initCalendarValue);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const focusToCalendar = () => {\n if (calRef.current) {\n const currentFocusable =\n calRef.current.querySelectorAll('[tabindex = \"0\"]')[0];\n if (currentFocusable) {\n (currentFocusable as HTMLButtonElement).focus();\n }\n }\n };\n\n const handleInputKeyDown: KeyboardEventHandler<HTMLInputElement> = (ev) => {\n switch (ev.key) {\n case \"Tab\":\n setOpen(false);\n break;\n case \"ArrowDown\":\n if (!open) {\n setOpen(true);\n setTimeout(focusToCalendar, 100);\n } else {\n focusToCalendar();\n }\n }\n };\n\n const handleInputChange: ChangeEventHandler<HTMLInputElement> = (ev) => {\n if (range) {\n const parts = ev.target.value.split(RANGE_DIVIDER);\n if (parts.length !== 2) return;\n const startDate = DateTime.fromFormat(parts[0], format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const endDate = DateTime.fromFormat(parts[1], format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const returnValue: LegacyDateRangeSelect = {\n start: {\n value: parts[0],\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: parts[1],\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value: ev.target.value,\n };\n if (!inputValue) {\n setInternalValue(returnValue);\n }\n onChange?.(ev, returnValue);\n } else {\n if (ev.target.value === (internalValue as LegacyDateSelect)?.date)\n return;\n // Check if the value is a real date.\n const inputDate = DateTime.fromFormat(ev.target.value, format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const returnValue: LegacyDateSelect = {\n value: ev.target.value,\n date: toDateString(inputDate),\n isValid:\n inputDate.isValid &&\n isValidDate(\n inputDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n };\n if (!inputValue) {\n setInternalValue(returnValue);\n }\n onChange?.(ev, returnValue);\n }\n };\n\n const handleInputBlur: React.FocusEventHandler<HTMLInputElement> = (ev) => {\n if (isClickOutside.current) {\n isClickOutside.current = false;\n return;\n }\n\n if (!calRef.current?.contains(ev.relatedTarget as Node)) {\n setOpen(false);\n onBlur?.(ev);\n }\n };\n\n const handleCalendarKeyDown: KeyboardEventHandler<HTMLDivElement> = (\n ev,\n ) => {\n switch (ev.key) {\n case \"Escape\":\n setDisableFocusLock(true);\n inputRef.current?.focus();\n break;\n }\n };\n\n const handleCalendarBlur: React.FocusEventHandler<HTMLDivElement> = (\n ev,\n ) => {\n if (\n !(\n inputRef.current === ev.currentTarget ||\n calRef.current === ev.currentTarget\n )\n ) {\n setOpen(false);\n onBlur?.(ev);\n }\n if (!(calRef.current === ev.currentTarget)) {\n setDisableFocusLock(true);\n }\n };\n\n const handleCalendarFocus: React.FocusEventHandler = (_event) => {\n if (disableFocusLock) {\n setDisableFocusLock(false);\n }\n };\n\n const handleCalendarSelection = (\n data: { value: CalendarValue } | { value: CalendarRangeValue },\n ) => {\n if (range) {\n const calSelectData = data as { value: CalendarRangeValue };\n const startVal = DateTime.fromISO(calSelectData?.value?.start || \"\", {\n zone: defaultTimeZone,\n });\n const endVal = DateTime.fromISO(calSelectData?.value?.end || \"\", {\n zone: defaultTimeZone,\n });\n let newValue = \"\";\n const newInternalValue: LegacyDateRangeSelect = { value: \"\" };\n if (startVal.isValid) {\n newInternalValue.start = {\n value: startVal.toFormat(format),\n date: calSelectData?.value?.start,\n isValid: true,\n };\n newValue += startVal.toFormat(format);\n } else {\n newValue += formatMask;\n }\n newValue += RANGE_DIVIDER;\n if (endVal.isValid) {\n newInternalValue.end = {\n value: endVal.toFormat(format),\n date: calSelectData?.value?.end,\n isValid: true,\n };\n newValue += endVal.toFormat(format);\n } else {\n newValue += formatMask;\n }\n if (typeof inputValue !== \"string\") {\n setInternalValue(newInternalValue);\n }\n newInternalValue.value = newValue;\n const event = {\n target: {\n value: newValue,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(event, newInternalValue);\n } else {\n const calSelectData = data as { value: CalendarValue };\n const val = DateTime.fromISO(calSelectData.value || \"\", {\n zone: defaultTimeZone,\n });\n const newValue = val.toFormat(format);\n const newInternalValue: LegacyDateSelect = {\n value: newValue,\n date: calSelectData.value,\n isValid:\n val.isValid &&\n isValidDate(\n val,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n };\n if (typeof inputValue !== \"string\") {\n setInternalValue(newInternalValue);\n }\n const event = {\n target: {\n value: newValue,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(event, newInternalValue);\n }\n };\n\n const handleInputFocus: FocusEventHandler<HTMLInputElement> = (ev) => {\n if (!open) {\n setOpen(true);\n onFocus?.(ev);\n }\n };\n\n return (\n <PopoverLegacy\n open={openCalendar || open}\n modal\n placement=\"bottom-start\"\n disableFlipFallback\n disableTriggerFocus\n disableFocusLock={disableFocusLock}\n >\n <PopoverLegacy.Trigger>\n {({ ref: popoverRef, ...props }) => (\n <>\n <InputMask\n mask={mask}\n inputProps={{\n onKeyDown: handleInputKeyDown,\n onBlur: handleInputBlur,\n onChange: handleInputChange,\n onFocus: handleInputFocus,\n }}\n value={internalValue?.value || \"\"}\n {...props}\n // eslint-disable-next-line react-hooks/rules-of-hooks\n ref={useMergeRefs([popoverRef, inputRef])}\n >\n <TextField\n hint={hint}\n ref={ref}\n prefix={<Icon svg={Event} ref={iconRef} />}\n {...inputProps}\n required={required}\n />\n </InputMask>\n </>\n )}\n </PopoverLegacy.Trigger>\n <PopoverLegacy.Content ref={floatRef}>\n {!range ? (\n <Calendar\n ref={calRef}\n onKeyDown={handleCalendarKeyDown}\n defaultFocusedDate={(internalValue as LegacyDateSelect)?.date}\n value={(internalValue as LegacyDateSelect)?.date || undefined}\n locale={locale}\n onBlur={handleCalendarBlur}\n onSelection={handleCalendarSelection}\n onFocus={handleCalendarFocus}\n minDate={minDate}\n maxDate={maxDate}\n unavailableDates={unavailableDates}\n unavailable={unavailable}\n defaultTimeZone={defaultTimeZone}\n startDay={startDay}\n />\n ) : (\n <Calendar\n ref={calRef}\n onKeyDown={handleCalendarKeyDown}\n defaultFocusedDate={\n (internalValue as LegacyDateRangeSelect)?.start?.date\n }\n value={\n internalValue\n ? {\n start:\n (internalValue as LegacyDateRangeSelect)?.start?.date ||\n undefined,\n end:\n (internalValue as LegacyDateRangeSelect)?.end?.date ||\n undefined,\n }\n : undefined\n }\n locale={locale}\n onBlur={handleCalendarBlur}\n onSelection={handleCalendarSelection}\n onFocus={handleCalendarFocus}\n minDate={minDate}\n maxDate={maxDate}\n unavailableDates={unavailableDates}\n unavailable={unavailable}\n defaultTimeZone={defaultTimeZone}\n startDay={startDay}\n range\n />\n )}\n </PopoverLegacy.Content>\n </PopoverLegacy>\n );\n },\n);\n\nDateFieldLegacy.displayName = \"DateFieldLegacy\";\n","import {\n ChangeEvent,\n ChangeEventHandler,\n FocusEventHandler,\n KeyboardEventHandler,\n MouseEventHandler,\n Ref,\n RefObject,\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport { DataTrackingId, IanaZone } from \"../../types\";\nimport Calendar, {\n CalendarProps,\n CalendarRangeValue,\n CalendarValue,\n} from \"../Calendar\";\nimport { TextFieldProps } from \"../TextField\";\nimport {\n DateFieldCommonProps,\n DateFieldRangeProps,\n DateFieldSingleProps,\n} from \"./types\";\nimport { childrenToString, supportsPopover } from \"../../internal/functions\";\nimport InputMask from \"../InputMask\";\nimport Icon from \"../Icon\";\nimport Event from \"@servicetitan/hammer-icon/mdi/round/event.svg\";\nimport { DateTime } from \"luxon\";\nimport { isoToDateFormat } from \"./internal/isoToDateFormat\";\nimport { isValidDate, toDateString } from \"../Calendar/internal/utils\";\nimport Popover from \"../Popover\";\nimport {\n DateFieldLegacy,\n DateFieldLegacyProps,\n} from \"./internal/DateFieldLegacy\";\nimport { mergeRefs } from \"../../hooks/useMergeRefs/useMergeRefs\";\n\nconst RANGE_DIVIDER = \" – \";\n\n/**\n * Data structure for a single date selection\n */\nexport type DateSelect = {\n /** The formatted date string value */\n value: string;\n /** The ISO date string or null if invalid */\n date: string | null | undefined;\n /** Whether the date is valid according to constraints */\n isValid: boolean;\n};\n\n/**\n * Data structure for a date range selection\n */\nexport type DateRangeSelect = {\n /** The start date selection */\n start?: DateSelect;\n /** The end date selection */\n end?: DateSelect;\n /** The combined formatted range string */\n value: string;\n};\n\n/**\n * Props for the DateField component\n */\nexport type DateFieldProps = Omit<\n CalendarProps,\n \"onChange\" | \"value\" | \"defaultValue\"\n> &\n Omit<\n TextFieldProps,\n | \"prefix\"\n | \"suffix\"\n | \"hint\"\n | \"onChange\"\n | \"showCounter\"\n | \"value\"\n | \"defaultValue\"\n > &\n DataTrackingId &\n DateFieldCommonProps &\n (DateFieldSingleProps | DateFieldRangeProps);\n\n/**\n * DateField component for selecting dates with calendar popup and input validation\n * @deprecated Use DateFieldSingle or DateFieldRange instead\n */\nexport const DateField = forwardRef(\n (props: DateFieldProps, ref: Ref<HTMLInputElement>) => {\n const data = {\n label: childrenToString(props.label),\n labelProps: props.labelProps,\n description: childrenToString(props.description),\n size: props.size,\n type: props.type,\n };\n\n const popoverRootRef = useRef<{\n openPopover: () => void;\n closePopover: () => void;\n }>(null);\n const popoverContentRef = useRef<HTMLDivElement>(null);\n\n const trackingId = useTrackingId({\n name: \"DateField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const {\n // DateField\n openCalendar,\n onFocus,\n onBlur,\n onChange,\n onClick,\n format = \"MM/dd/yyyy\",\n disableHint,\n\n // Calendar\n minDate,\n maxDate,\n unavailableDates,\n unavailable,\n startDay,\n defaultValue,\n value: inputValue,\n\n // Shared\n // locale = Intl.DateTimeFormat().resolvedOptions().locale as Locale,\n defaultTimeZone = Intl.DateTimeFormat().resolvedOptions()\n .timeZone as IanaZone,\n range,\n\n // Input\n required,\n ...inputProps\n } = props;\n\n const [internalValue, setInternalValue] = useState<\n DateSelect | DateRangeSelect | undefined\n >();\n\n const inputRef = useRef<HTMLInputElement>(null);\n const hint = useMemo(\n () => (disableHint ? undefined : `Format: ${format.replace(/M/g, \"m\")}`),\n [format, disableHint],\n );\n\n useEffect(() => {\n // Set internalValue from defaultValue\n if (!defaultValue) return;\n if (range) {\n const startDate = DateTime.fromFormat(\n isoToDateFormat(defaultValue.start ?? \"\", format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const endDate = DateTime.fromFormat(\n isoToDateFormat(defaultValue.end ?? \"\", format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const newValue: DateRangeSelect = {\n start: {\n value: isoToDateFormat(defaultValue.start ?? \"\", format),\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: isoToDateFormat(defaultValue.end ?? \"\", format),\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value:\n isoToDateFormat(defaultValue.start ?? \"\", format) +\n RANGE_DIVIDER +\n isoToDateFormat(defaultValue.end ?? \"\", format),\n };\n setInternalValue(newValue);\n return;\n }\n const date = DateTime.fromFormat(\n isoToDateFormat(defaultValue, format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const newValue = {\n value: isoToDateFormat(defaultValue, format),\n date: toDateString(date),\n isValid:\n date.isValid &&\n isValidDate(\n date,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n } as DateSelect;\n setInternalValue(newValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const getCurrentValue = () => {\n if (inputValue !== undefined) {\n if (range) {\n const startDate = DateTime.fromFormat(\n isoToDateFormat(inputValue.start ?? \"\", format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const endDate = DateTime.fromFormat(\n isoToDateFormat(inputValue.end ?? \"\", format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const returnValue: DateRangeSelect = {\n start: {\n value: isoToDateFormat(inputValue.start ?? \"\", format),\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: isoToDateFormat(inputValue.end ?? \"\", format),\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value:\n isoToDateFormat(inputValue.start ?? \"\", format) +\n RANGE_DIVIDER +\n isoToDateFormat(inputValue.end ?? \"\", format),\n };\n return returnValue;\n }\n const date = DateTime.fromFormat(\n isoToDateFormat(inputValue, format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n return {\n value: isoToDateFormat(inputValue, format),\n date: toDateString(date),\n isValid:\n date.isValid &&\n isValidDate(\n date,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n } as DateSelect;\n }\n return internalValue;\n };\n\n const handleInputFocus: FocusEventHandler<HTMLInputElement> = (ev) => {\n // DO NOT OPEN THE CALENDAR ON KEYBOARD OR MANUAL FOCUS EVENT\n onFocus?.(ev);\n };\n\n const handleInputBlur: FocusEventHandler<HTMLInputElement> = (ev) => {\n if (!popoverContentRef.current?.contains(ev.relatedTarget)) {\n onBlur?.(ev);\n }\n };\n\n const handleInputKeyDown: KeyboardEventHandler<HTMLInputElement> = (ev) => {\n if (ev.key === \"ArrowDown\") {\n popoverRootRef.current?.openPopover();\n requestAnimationFrame(() => {\n popoverContentRef.current?.querySelector(\"button\")?.focus();\n });\n }\n };\n\n const handleInputClick: MouseEventHandler<HTMLInputElement> = (ev) => {\n popoverRootRef.current?.openPopover();\n onClick?.(ev);\n };\n\n const handleInputChange: ChangeEventHandler<HTMLInputElement> = (ev) => {\n if (range) {\n const parts = ev.target.value.split(RANGE_DIVIDER);\n if (parts.length !== 2) return;\n const startDate = DateTime.fromFormat(parts[0], format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const endDate = DateTime.fromFormat(parts[1], format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const returnValue: DateRangeSelect = {\n start: {\n value: parts[0],\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: parts[1],\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value: ev.target.value,\n };\n setInternalValue(returnValue);\n onChange?.(ev, returnValue);\n return;\n }\n const date = DateTime.fromFormat(ev.target.value, format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const newDate: DateSelect = {\n value: ev.target.value,\n date: toDateString(date),\n isValid:\n date.isValid &&\n isValidDate(\n date,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n };\n setInternalValue(newDate);\n onChange?.(ev, newDate);\n };\n\n const handleCalendarSelection = (\n data: { value: CalendarValue } | { value: CalendarRangeValue },\n ) => {\n if (range) {\n const startDate = (data.value as CalendarRangeValue)?.start ?? \"\";\n const endDate = (data.value as CalendarRangeValue)?.end ?? \"\";\n\n const startVal = DateTime.fromISO(startDate, {\n zone: defaultTimeZone,\n });\n const startValue = startVal.toFormat(format);\n const endVal = DateTime.fromISO(endDate, {\n zone: defaultTimeZone,\n });\n const endValue = endVal.toFormat(format);\n\n const newDateRange: DateRangeSelect = {\n start: {\n value: startValue,\n date: startDate,\n isValid: true,\n },\n end: {\n value: endValue,\n date: endDate,\n isValid: true,\n },\n value: startValue + RANGE_DIVIDER + endValue,\n };\n setInternalValue(newDateRange);\n const event = {\n target: {\n value: startValue + RANGE_DIVIDER + endValue,\n },\n } as ChangeEvent<HTMLInputElement>;\n handleInputChange(event);\n return;\n }\n const date = data.value as CalendarValue;\n const val = DateTime.fromISO(date || \"\", {\n zone: defaultTimeZone,\n });\n\n const value = val.toFormat(format);\n const newDate: DateSelect = {\n value,\n date,\n isValid: true,\n };\n setInternalValue(newDate);\n const event = {\n target: {\n value,\n },\n } as ChangeEvent<HTMLInputElement>;\n handleInputChange(event);\n };\n\n const currentValue = getCurrentValue();\n\n const calendar = range ? (\n <Calendar\n range\n defaultFocusedDate={(internalValue as DateRangeSelect)?.start?.date}\n value={{\n start: (currentValue as DateRangeSelect)?.start?.date || undefined,\n end: (currentValue as DateRangeSelect)?.end?.date || undefined,\n }}\n onSelection={handleCalendarSelection}\n minDate={minDate}\n maxDate={maxDate}\n unavailableDates={unavailableDates}\n unavailable={unavailable}\n defaultTimeZone={defaultTimeZone}\n startDay={startDay}\n _disableAutofocus\n />\n ) : (\n <Calendar\n defaultFocusedDate={(internalValue as DateSelect)?.date}\n value={(currentValue as DateSelect)?.date || undefined}\n onSelection={handleCalendarSelection}\n minDate={minDate}\n maxDate={maxDate}\n unavailableDates={unavailableDates}\n unavailable={unavailable}\n defaultTimeZone={defaultTimeZone}\n startDay={startDay}\n _disableAutofocus\n />\n );\n\n if (!supportsPopover())\n return <DateFieldLegacy {...(props as DateFieldLegacyProps)} ref={ref} />;\n return (\n <Popover\n ref={popoverRootRef}\n placement=\"bottom-start\"\n disableFlipFallback\n disableTriggerFocus\n >\n <Popover.Trigger>\n {({ ref: iRef }) => {\n const mergedRef = mergeRefs([\n inputRef,\n iRef as RefObject<HTMLInputElement>,\n ]);\n return range ? (\n <InputMask\n mask={\"99/99/9999\" + RANGE_DIVIDER + \"99/99/9999\"}\n ref={mergedRef}\n onChange={handleInputChange}\n value={(currentValue as DateRangeSelect)?.value}\n inputProps={{\n onFocus: handleInputFocus,\n prefix: <Icon svg={Event} />,\n onBlur: handleInputBlur,\n onKeyDown: handleInputKeyDown,\n onClick: handleInputClick,\n hint,\n required,\n [\"data-tracking-id\"]: trackingId,\n ...inputProps,\n }}\n customMaskHandler={[\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 0,\n endPosition: 2,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 3,\n endPosition: 5,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 13,\n endPosition: 15,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 16,\n endPosition: 18,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n ]}\n />\n ) : (\n <InputMask\n mask={\"99/99/9999\"}\n ref={mergedRef}\n onChange={handleInputChange}\n value={(currentValue as DateSelect)?.value}\n inputProps={{\n onFocus: handleInputFocus,\n prefix: <Icon svg={Event} />,\n onBlur: handleInputBlur,\n onKeyDown: handleInputKeyDown,\n onClick: handleInputClick,\n hint,\n autoComplete: \"off\",\n required,\n [\"data-tracking-id\"]: trackingId,\n ...inputProps,\n }}\n customMaskHandler={[\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 0,\n endPosition: 2,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 3,\n endPosition: 5,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n ]}\n />\n );\n }}\n </Popover.Trigger>\n <Popover.Content\n ref={popoverContentRef}\n data-calendar-popover\n onBlur={handleInputBlur}\n >\n {calendar}\n </Popover.Content>\n </Popover>\n );\n },\n);\nDateField.displayName = \"DateField\";\n"],"names":["RANGE_DIVIDER","Event","newValue","data","event"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateField-BNleIuS8.js","sources":["../src/components/DateField/internal/isoToDateFormat.ts","../src/components/DateField/internal/DateFieldLegacy/DateFieldLegacy.tsx","../src/components/DateField/DateField.tsx"],"sourcesContent":["import { DateTime } from \"luxon\";\n\nexport const isoToDateFormat = (date: string, format: string) => {\n // Returns a string of the proper format for ISO strings and the input date string for non-ISO strings\n const luxonDate = DateTime.fromISO(date);\n if (luxonDate.isValid) {\n return luxonDate.toFormat(format);\n }\n return date;\n};\n","import {\n ChangeEvent,\n ChangeEventHandler,\n FocusEventHandler,\n KeyboardEventHandler,\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { InputMask } from \"../../../InputMask\";\nimport {\n TextField,\n TextFieldProps,\n} from \"../../../TextField/internal/TextField\";\nimport { PopoverLegacy } from \"../../../Popover/internal/PopoverLegacy\";\nimport {\n CalendarProps,\n CalendarValue,\n CalendarRangeValue,\n} from \"../../../Calendar/Calendar\";\nimport { Calendar } from \"../../../Calendar\";\nimport { useMergeRefs } from \"@floating-ui/react\";\nimport { IanaZone, Locale } from \"../../../../types\";\nimport { Icon } from \"../../../Icon\";\nimport Event from \"@servicetitan/hammer-icon/mdi/round/event.svg\";\nimport { DateTime } from \"luxon\";\nimport { isValidDate, toDateString } from \"../../../Calendar/internal/utils\";\n\nconst RANGE_DIVIDER = \" — \";\n\ninterface DateFieldLegacyCommonProps {\n format?: \"MM/dd/yyyy\" | \"dd/MM/yyyy\";\n locale?: Locale;\n defaultTimeZone?: IanaZone;\n openCalendar?: boolean;\n disableHint?: boolean;\n}\n\nexport interface LegacyDateSelect {\n value: string;\n date: string | null | undefined;\n isValid: boolean;\n}\n\nexport interface LegacyDateRangeSelect {\n start?: LegacyDateSelect;\n end?: LegacyDateSelect;\n value: string;\n}\n\ninterface DateFieldLegacySingleProps {\n onChange?: (\n event: ChangeEvent<HTMLInputElement>,\n data: LegacyDateSelect,\n ) => void;\n defaultValue?: string;\n range?: false;\n}\n\ninterface DateFieldLegacyRangeProps {\n onChange?: (\n event: ChangeEvent<HTMLInputElement>,\n data: LegacyDateRangeSelect,\n ) => void;\n defaultValue?: { start?: string; end?: string };\n range: true;\n}\n\nexport type DateFieldLegacyProps = Omit<CalendarProps, \"onChange\"> &\n Omit<\n TextFieldProps,\n \"prefix\" | \"suffix\" | \"hint\" | \"onChange\" | \"showCounter\"\n > &\n DateFieldLegacyCommonProps &\n (DateFieldLegacySingleProps | DateFieldLegacyRangeProps);\n\nexport const DateFieldLegacy = forwardRef<\n HTMLInputElement,\n DateFieldLegacyProps\n>(\n (\n {\n // DateFieldLegacy\n openCalendar,\n onFocus,\n onBlur,\n onChange,\n format = \"MM/dd/yyyy\",\n disableHint,\n\n // Calendar\n minDate,\n maxDate,\n unavailableDates,\n unavailable,\n startDay,\n defaultValue,\n value: inputValue,\n\n // Shared\n locale = Intl.DateTimeFormat().resolvedOptions().locale as Locale,\n defaultTimeZone = Intl.DateTimeFormat().resolvedOptions()\n .timeZone as IanaZone,\n range,\n\n // Input\n required,\n ...inputProps\n },\n ref,\n ) => {\n const [open, setOpen] = useState(openCalendar || false);\n const [internalValue, setInternalValue] = useState<\n LegacyDateSelect | LegacyDateRangeSelect | undefined\n >();\n const [disableFocusLock, setDisableFocusLock] = useState(true);\n const inputRef = useRef<HTMLInputElement>(null);\n const calRef = useRef<HTMLDivElement>(null);\n const iconRef = useRef<HTMLElement>(null);\n const docRef = useRef<Document | Node | null>(null);\n const floatRef = useRef<HTMLDivElement>(null);\n const isClickOutside = useRef(false);\n const formatMask = format.replace(/[^/]/g, \"_\");\n const hint = useMemo(\n () => (disableHint ? undefined : `Format: ${format.replace(/M/g, \"m\")}`),\n [format, disableHint],\n );\n\n useEffect(() => {\n if (!docRef.current) {\n if (document != null) {\n docRef.current = document;\n return;\n }\n const doc = inputRef.current?.closest(\"body\")?.ownerDocument;\n if (doc) {\n docRef.current = doc;\n }\n\n if (docRef.current == null && inputRef.current?.parentNode != null) {\n let node: Node = inputRef.current?.parentNode;\n while (node.parentNode != null) {\n node = node.parentNode;\n }\n docRef.current = node;\n }\n }\n const clickOutHandler = (ev: Event) => {\n // this is more accurate, especially in shadow doms\n const realTarget = ev.composedPath()[0] as Node;\n\n if (\n !floatRef.current?.contains(realTarget) &&\n !iconRef.current?.contains(realTarget) &&\n inputRef.current !== realTarget\n ) {\n setOpen(false);\n setDisableFocusLock(true);\n onBlur?.(ev as unknown as React.FocusEvent<HTMLInputElement>);\n }\n };\n\n if (open) {\n docRef.current?.addEventListener(\"click\", clickOutHandler);\n } else {\n docRef.current?.removeEventListener(\"click\", clickOutHandler);\n }\n\n return () => {\n docRef.current?.removeEventListener(\"click\", clickOutHandler);\n };\n }, [open, onBlur]);\n\n useEffect(() => {\n if (range) {\n let start;\n let end;\n if (typeof inputValue === \"string\") {\n const parts = inputValue.split(RANGE_DIVIDER);\n start = parts[0];\n end = parts[1];\n } else {\n start = inputValue?.start ?? \"\";\n end = inputValue?.end ?? \"\";\n }\n const startDate = DateTime.fromFormat(start ?? \"\", format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const endDate = DateTime.fromFormat(end ?? \"\", format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const newData: LegacyDateRangeSelect = {\n start: {\n value: start,\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: end,\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value: `${start || formatMask}${RANGE_DIVIDER}${end || formatMask}`,\n };\n setInternalValue(newData);\n } else {\n if (typeof inputValue !== \"string\") return;\n const inputDate = DateTime.fromFormat(inputValue, format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const newData: LegacyDateSelect = {\n value: inputValue,\n date: toDateString(inputDate),\n isValid:\n inputDate.isValid &&\n isValidDate(\n inputDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n };\n setInternalValue(newData);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [inputValue]);\n\n const mask: string = useMemo(() => {\n const maskPart = format.replace(/[Mdy]/g, \"9\");\n if (range) {\n return maskPart + RANGE_DIVIDER + maskPart;\n } else {\n return maskPart;\n }\n }, [format, range]);\n\n useEffect(() => {\n // Set default only if uncontrolled and we have a defaultValue.\n if (typeof inputValue === \"string\") return;\n if (defaultValue) {\n if (range) {\n // Get input value\n const defValStart = defaultValue.start;\n const defValEnd = defaultValue.end;\n\n const initValStart =\n defValStart +\n (formatMask + RANGE_DIVIDER + formatMask).slice(\n defValStart?.length,\n );\n const initValEnd =\n defValEnd +\n (formatMask + RANGE_DIVIDER + formatMask).slice(defValEnd?.length);\n const newValue = initValStart + RANGE_DIVIDER + initValEnd;\n\n // Set calendar value\n const inputDateStart = DateTime.fromFormat(\n defValStart || \"\",\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const inputDateEnd = DateTime.fromFormat(defValEnd || \"\", format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n\n const isValidStart =\n inputDateStart.isValid &&\n isValidDate(\n inputDateStart,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n );\n\n const isValidEnd =\n inputDateEnd.isValid &&\n isValidDate(\n inputDateEnd,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n );\n const initCalendarValue: LegacyDateRangeSelect = {\n start: {\n value: initValStart,\n date: toDateString(inputDateStart),\n isValid: isValidStart,\n },\n end: {\n value: initValEnd,\n date: toDateString(inputDateEnd),\n isValid: isValidEnd,\n },\n value: newValue,\n };\n setInternalValue(initCalendarValue);\n } else {\n // Get input value\n const defVal = defaultValue as string;\n const initVal = defVal + formatMask.slice(defVal.length);\n\n // Set calendar value\n const inputDate = DateTime.fromFormat(defVal, format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const isValid =\n inputDate.isValid &&\n isValidDate(\n inputDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n );\n const initCalendarValue: LegacyDateSelect = {\n value: initVal,\n date: toDateString(inputDate),\n isValid,\n };\n setInternalValue(initCalendarValue);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const focusToCalendar = () => {\n if (calRef.current) {\n const currentFocusable =\n calRef.current.querySelectorAll('[tabindex = \"0\"]')[0];\n if (currentFocusable) {\n (currentFocusable as HTMLButtonElement).focus();\n }\n }\n };\n\n const handleInputKeyDown: KeyboardEventHandler<HTMLInputElement> = (ev) => {\n switch (ev.key) {\n case \"Tab\":\n setOpen(false);\n break;\n case \"ArrowDown\":\n if (!open) {\n setOpen(true);\n setTimeout(focusToCalendar, 100);\n } else {\n focusToCalendar();\n }\n }\n };\n\n const handleInputChange: ChangeEventHandler<HTMLInputElement> = (ev) => {\n if (range) {\n const parts = ev.target.value.split(RANGE_DIVIDER);\n if (parts.length !== 2) return;\n const startDate = DateTime.fromFormat(parts[0], format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const endDate = DateTime.fromFormat(parts[1], format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const returnValue: LegacyDateRangeSelect = {\n start: {\n value: parts[0],\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: parts[1],\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value: ev.target.value,\n };\n if (!inputValue) {\n setInternalValue(returnValue);\n }\n onChange?.(ev, returnValue);\n } else {\n if (ev.target.value === (internalValue as LegacyDateSelect)?.date)\n return;\n // Check if the value is a real date.\n const inputDate = DateTime.fromFormat(ev.target.value, format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const returnValue: LegacyDateSelect = {\n value: ev.target.value,\n date: toDateString(inputDate),\n isValid:\n inputDate.isValid &&\n isValidDate(\n inputDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n };\n if (!inputValue) {\n setInternalValue(returnValue);\n }\n onChange?.(ev, returnValue);\n }\n };\n\n const handleInputBlur: React.FocusEventHandler<HTMLInputElement> = (ev) => {\n if (isClickOutside.current) {\n isClickOutside.current = false;\n return;\n }\n\n if (!calRef.current?.contains(ev.relatedTarget as Node)) {\n setOpen(false);\n onBlur?.(ev);\n }\n };\n\n const handleCalendarKeyDown: KeyboardEventHandler<HTMLDivElement> = (\n ev,\n ) => {\n switch (ev.key) {\n case \"Escape\":\n setDisableFocusLock(true);\n inputRef.current?.focus();\n break;\n }\n };\n\n const handleCalendarBlur: React.FocusEventHandler<HTMLDivElement> = (\n ev,\n ) => {\n if (\n !(\n inputRef.current === ev.currentTarget ||\n calRef.current === ev.currentTarget\n )\n ) {\n setOpen(false);\n onBlur?.(ev);\n }\n if (!(calRef.current === ev.currentTarget)) {\n setDisableFocusLock(true);\n }\n };\n\n const handleCalendarFocus: React.FocusEventHandler = (_event) => {\n if (disableFocusLock) {\n setDisableFocusLock(false);\n }\n };\n\n const handleCalendarSelection = (\n data: { value: CalendarValue } | { value: CalendarRangeValue },\n ) => {\n if (range) {\n const calSelectData = data as { value: CalendarRangeValue };\n const startVal = DateTime.fromISO(calSelectData?.value?.start || \"\", {\n zone: defaultTimeZone,\n });\n const endVal = DateTime.fromISO(calSelectData?.value?.end || \"\", {\n zone: defaultTimeZone,\n });\n let newValue = \"\";\n const newInternalValue: LegacyDateRangeSelect = { value: \"\" };\n if (startVal.isValid) {\n newInternalValue.start = {\n value: startVal.toFormat(format),\n date: calSelectData?.value?.start,\n isValid: true,\n };\n newValue += startVal.toFormat(format);\n } else {\n newValue += formatMask;\n }\n newValue += RANGE_DIVIDER;\n if (endVal.isValid) {\n newInternalValue.end = {\n value: endVal.toFormat(format),\n date: calSelectData?.value?.end,\n isValid: true,\n };\n newValue += endVal.toFormat(format);\n } else {\n newValue += formatMask;\n }\n if (typeof inputValue !== \"string\") {\n setInternalValue(newInternalValue);\n }\n newInternalValue.value = newValue;\n const event = {\n target: {\n value: newValue,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(event, newInternalValue);\n } else {\n const calSelectData = data as { value: CalendarValue };\n const val = DateTime.fromISO(calSelectData.value || \"\", {\n zone: defaultTimeZone,\n });\n const newValue = val.toFormat(format);\n const newInternalValue: LegacyDateSelect = {\n value: newValue,\n date: calSelectData.value,\n isValid:\n val.isValid &&\n isValidDate(\n val,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n };\n if (typeof inputValue !== \"string\") {\n setInternalValue(newInternalValue);\n }\n const event = {\n target: {\n value: newValue,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(event, newInternalValue);\n }\n };\n\n const handleInputFocus: FocusEventHandler<HTMLInputElement> = (ev) => {\n if (!open) {\n setOpen(true);\n onFocus?.(ev);\n }\n };\n\n return (\n <PopoverLegacy\n open={openCalendar || open}\n modal\n placement=\"bottom-start\"\n disableFlipFallback\n disableTriggerFocus\n disableFocusLock={disableFocusLock}\n >\n <PopoverLegacy.Trigger>\n {({ ref: popoverRef, ...props }) => (\n <>\n <InputMask\n mask={mask}\n inputProps={{\n onKeyDown: handleInputKeyDown,\n onBlur: handleInputBlur,\n onChange: handleInputChange,\n onFocus: handleInputFocus,\n }}\n value={internalValue?.value || \"\"}\n {...props}\n // eslint-disable-next-line react-hooks/rules-of-hooks\n ref={useMergeRefs([popoverRef, inputRef])}\n >\n <TextField\n hint={hint}\n ref={ref}\n prefix={<Icon svg={Event} ref={iconRef} />}\n {...inputProps}\n required={required}\n />\n </InputMask>\n </>\n )}\n </PopoverLegacy.Trigger>\n <PopoverLegacy.Content ref={floatRef}>\n {!range ? (\n <Calendar\n ref={calRef}\n onKeyDown={handleCalendarKeyDown}\n defaultFocusedDate={(internalValue as LegacyDateSelect)?.date}\n value={(internalValue as LegacyDateSelect)?.date || undefined}\n locale={locale}\n onBlur={handleCalendarBlur}\n onSelection={handleCalendarSelection}\n onFocus={handleCalendarFocus}\n minDate={minDate}\n maxDate={maxDate}\n unavailableDates={unavailableDates}\n unavailable={unavailable}\n defaultTimeZone={defaultTimeZone}\n startDay={startDay}\n />\n ) : (\n <Calendar\n ref={calRef}\n onKeyDown={handleCalendarKeyDown}\n defaultFocusedDate={\n (internalValue as LegacyDateRangeSelect)?.start?.date\n }\n value={\n internalValue\n ? {\n start:\n (internalValue as LegacyDateRangeSelect)?.start?.date ||\n undefined,\n end:\n (internalValue as LegacyDateRangeSelect)?.end?.date ||\n undefined,\n }\n : undefined\n }\n locale={locale}\n onBlur={handleCalendarBlur}\n onSelection={handleCalendarSelection}\n onFocus={handleCalendarFocus}\n minDate={minDate}\n maxDate={maxDate}\n unavailableDates={unavailableDates}\n unavailable={unavailable}\n defaultTimeZone={defaultTimeZone}\n startDay={startDay}\n range\n />\n )}\n </PopoverLegacy.Content>\n </PopoverLegacy>\n );\n },\n);\n\nDateFieldLegacy.displayName = \"DateFieldLegacy\";\n","import {\n ChangeEvent,\n ChangeEventHandler,\n FocusEventHandler,\n KeyboardEventHandler,\n MouseEventHandler,\n Ref,\n RefObject,\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport { DataTrackingId, IanaZone } from \"../../types\";\nimport Calendar, {\n CalendarProps,\n CalendarRangeValue,\n CalendarValue,\n} from \"../Calendar\";\nimport { TextFieldProps } from \"../TextField\";\nimport {\n DateFieldCommonProps,\n DateFieldRangeProps,\n DateFieldSingleProps,\n} from \"./types\";\nimport { childrenToString, supportsPopover } from \"../../internal/functions\";\nimport InputMask from \"../InputMask\";\nimport Icon from \"../Icon\";\nimport Event from \"@servicetitan/hammer-icon/mdi/round/event.svg\";\nimport { DateTime } from \"luxon\";\nimport { isoToDateFormat } from \"./internal/isoToDateFormat\";\nimport { isValidDate, toDateString } from \"../Calendar/internal/utils\";\nimport Popover from \"../Popover\";\nimport {\n DateFieldLegacy,\n DateFieldLegacyProps,\n} from \"./internal/DateFieldLegacy\";\nimport { mergeRefs } from \"../../hooks/useMergeRefs/useMergeRefs\";\n\nconst RANGE_DIVIDER = \" – \";\n\n/**\n * Data structure for a single date selection\n */\nexport type DateSelect = {\n /** The formatted date string value */\n value: string;\n /** The ISO date string or null if invalid */\n date: string | null | undefined;\n /** Whether the date is valid according to constraints */\n isValid: boolean;\n};\n\n/**\n * Data structure for a date range selection\n */\nexport type DateRangeSelect = {\n /** The start date selection */\n start?: DateSelect;\n /** The end date selection */\n end?: DateSelect;\n /** The combined formatted range string */\n value: string;\n};\n\n/**\n * Props for the DateField component\n */\nexport type DateFieldProps = Omit<\n CalendarProps,\n \"onChange\" | \"value\" | \"defaultValue\"\n> &\n Omit<\n TextFieldProps,\n | \"prefix\"\n | \"suffix\"\n | \"hint\"\n | \"onChange\"\n | \"showCounter\"\n | \"value\"\n | \"defaultValue\"\n > &\n DataTrackingId &\n DateFieldCommonProps &\n (DateFieldSingleProps | DateFieldRangeProps);\n\n/**\n * DateField component for selecting dates with calendar popup and input validation\n * @deprecated Use DateFieldSingle or DateFieldRange instead\n */\nexport const DateField = forwardRef(\n (props: DateFieldProps, ref: Ref<HTMLInputElement>) => {\n const data = {\n label: childrenToString(props.label),\n labelProps: props.labelProps,\n description: childrenToString(props.description),\n size: props.size,\n type: props.type,\n };\n\n const popoverRootRef = useRef<{\n openPopover: () => void;\n closePopover: () => void;\n }>(null);\n const popoverContentRef = useRef<HTMLDivElement>(null);\n\n const trackingId = useTrackingId({\n name: \"DateField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const {\n // DateField\n openCalendar,\n onFocus,\n onBlur,\n onChange,\n onClick,\n format = \"MM/dd/yyyy\",\n disableHint,\n\n // Calendar\n minDate,\n maxDate,\n unavailableDates,\n unavailable,\n startDay,\n defaultValue,\n value: inputValue,\n\n // Shared\n // locale = Intl.DateTimeFormat().resolvedOptions().locale as Locale,\n defaultTimeZone = Intl.DateTimeFormat().resolvedOptions()\n .timeZone as IanaZone,\n range,\n\n // Input\n required,\n ...inputProps\n } = props;\n\n const [internalValue, setInternalValue] = useState<\n DateSelect | DateRangeSelect | undefined\n >();\n\n const inputRef = useRef<HTMLInputElement>(null);\n const hint = useMemo(\n () => (disableHint ? undefined : `Format: ${format.replace(/M/g, \"m\")}`),\n [format, disableHint],\n );\n\n useEffect(() => {\n // Set internalValue from defaultValue\n if (!defaultValue) return;\n if (range) {\n const startDate = DateTime.fromFormat(\n isoToDateFormat(defaultValue.start ?? \"\", format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const endDate = DateTime.fromFormat(\n isoToDateFormat(defaultValue.end ?? \"\", format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const newValue: DateRangeSelect = {\n start: {\n value: isoToDateFormat(defaultValue.start ?? \"\", format),\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: isoToDateFormat(defaultValue.end ?? \"\", format),\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value:\n isoToDateFormat(defaultValue.start ?? \"\", format) +\n RANGE_DIVIDER +\n isoToDateFormat(defaultValue.end ?? \"\", format),\n };\n setInternalValue(newValue);\n return;\n }\n const date = DateTime.fromFormat(\n isoToDateFormat(defaultValue, format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const newValue = {\n value: isoToDateFormat(defaultValue, format),\n date: toDateString(date),\n isValid:\n date.isValid &&\n isValidDate(\n date,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n } as DateSelect;\n setInternalValue(newValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const getCurrentValue = () => {\n if (inputValue !== undefined) {\n if (range) {\n const startDate = DateTime.fromFormat(\n isoToDateFormat(inputValue.start ?? \"\", format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const endDate = DateTime.fromFormat(\n isoToDateFormat(inputValue.end ?? \"\", format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const returnValue: DateRangeSelect = {\n start: {\n value: isoToDateFormat(inputValue.start ?? \"\", format),\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: isoToDateFormat(inputValue.end ?? \"\", format),\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value:\n isoToDateFormat(inputValue.start ?? \"\", format) +\n RANGE_DIVIDER +\n isoToDateFormat(inputValue.end ?? \"\", format),\n };\n return returnValue;\n }\n const date = DateTime.fromFormat(\n isoToDateFormat(inputValue, format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n return {\n value: isoToDateFormat(inputValue, format),\n date: toDateString(date),\n isValid:\n date.isValid &&\n isValidDate(\n date,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n } as DateSelect;\n }\n return internalValue;\n };\n\n const handleInputFocus: FocusEventHandler<HTMLInputElement> = (ev) => {\n // DO NOT OPEN THE CALENDAR ON KEYBOARD OR MANUAL FOCUS EVENT\n onFocus?.(ev);\n };\n\n const handleInputBlur: FocusEventHandler<HTMLInputElement> = (ev) => {\n if (!popoverContentRef.current?.contains(ev.relatedTarget)) {\n onBlur?.(ev);\n }\n };\n\n const handleInputKeyDown: KeyboardEventHandler<HTMLInputElement> = (ev) => {\n if (ev.key === \"ArrowDown\") {\n popoverRootRef.current?.openPopover();\n requestAnimationFrame(() => {\n popoverContentRef.current?.querySelector(\"button\")?.focus();\n });\n }\n };\n\n const handleInputClick: MouseEventHandler<HTMLInputElement> = (ev) => {\n popoverRootRef.current?.openPopover();\n onClick?.(ev);\n };\n\n const handleInputChange: ChangeEventHandler<HTMLInputElement> = (ev) => {\n if (range) {\n const parts = ev.target.value.split(RANGE_DIVIDER);\n if (parts.length !== 2) return;\n const startDate = DateTime.fromFormat(parts[0], format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const endDate = DateTime.fromFormat(parts[1], format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const returnValue: DateRangeSelect = {\n start: {\n value: parts[0],\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: parts[1],\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value: ev.target.value,\n };\n setInternalValue(returnValue);\n onChange?.(ev, returnValue);\n return;\n }\n const date = DateTime.fromFormat(ev.target.value, format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const newDate: DateSelect = {\n value: ev.target.value,\n date: toDateString(date),\n isValid:\n date.isValid &&\n isValidDate(\n date,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n };\n setInternalValue(newDate);\n onChange?.(ev, newDate);\n };\n\n const handleCalendarSelection = (\n data: { value: CalendarValue } | { value: CalendarRangeValue },\n ) => {\n if (range) {\n const startDate = (data.value as CalendarRangeValue)?.start ?? \"\";\n const endDate = (data.value as CalendarRangeValue)?.end ?? \"\";\n\n const startVal = DateTime.fromISO(startDate, {\n zone: defaultTimeZone,\n });\n const startValue = startVal.toFormat(format);\n const endVal = DateTime.fromISO(endDate, {\n zone: defaultTimeZone,\n });\n const endValue = endVal.toFormat(format);\n\n const newDateRange: DateRangeSelect = {\n start: {\n value: startValue,\n date: startDate,\n isValid: true,\n },\n end: {\n value: endValue,\n date: endDate,\n isValid: true,\n },\n value: startValue + RANGE_DIVIDER + endValue,\n };\n setInternalValue(newDateRange);\n const event = {\n target: {\n value: startValue + RANGE_DIVIDER + endValue,\n },\n } as ChangeEvent<HTMLInputElement>;\n handleInputChange(event);\n return;\n }\n const date = data.value as CalendarValue;\n const val = DateTime.fromISO(date || \"\", {\n zone: defaultTimeZone,\n });\n\n const value = val.toFormat(format);\n const newDate: DateSelect = {\n value,\n date,\n isValid: true,\n };\n setInternalValue(newDate);\n const event = {\n target: {\n value,\n },\n } as ChangeEvent<HTMLInputElement>;\n handleInputChange(event);\n };\n\n const currentValue = getCurrentValue();\n\n const calendar = range ? (\n <Calendar\n range\n defaultFocusedDate={(internalValue as DateRangeSelect)?.start?.date}\n value={{\n start: (currentValue as DateRangeSelect)?.start?.date || undefined,\n end: (currentValue as DateRangeSelect)?.end?.date || undefined,\n }}\n onSelection={handleCalendarSelection}\n minDate={minDate}\n maxDate={maxDate}\n unavailableDates={unavailableDates}\n unavailable={unavailable}\n defaultTimeZone={defaultTimeZone}\n startDay={startDay}\n _disableAutofocus\n />\n ) : (\n <Calendar\n defaultFocusedDate={(internalValue as DateSelect)?.date}\n value={(currentValue as DateSelect)?.date || undefined}\n onSelection={handleCalendarSelection}\n minDate={minDate}\n maxDate={maxDate}\n unavailableDates={unavailableDates}\n unavailable={unavailable}\n defaultTimeZone={defaultTimeZone}\n startDay={startDay}\n _disableAutofocus\n />\n );\n\n if (!supportsPopover())\n return <DateFieldLegacy {...(props as DateFieldLegacyProps)} ref={ref} />;\n return (\n <Popover\n ref={popoverRootRef}\n placement=\"bottom-start\"\n disableFlipFallback\n disableTriggerFocus\n >\n <Popover.Trigger>\n {({ ref: iRef }) => {\n const mergedRef = mergeRefs([\n inputRef,\n iRef as RefObject<HTMLInputElement>,\n ]);\n return range ? (\n <InputMask\n mask={\"99/99/9999\" + RANGE_DIVIDER + \"99/99/9999\"}\n ref={mergedRef}\n onChange={handleInputChange}\n value={(currentValue as DateRangeSelect)?.value}\n inputProps={{\n onFocus: handleInputFocus,\n prefix: <Icon svg={Event} />,\n onBlur: handleInputBlur,\n onKeyDown: handleInputKeyDown,\n onClick: handleInputClick,\n hint,\n required,\n [\"data-tracking-id\"]: trackingId,\n ...inputProps,\n }}\n customMaskHandler={[\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 0,\n endPosition: 2,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 3,\n endPosition: 5,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 13,\n endPosition: 15,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 16,\n endPosition: 18,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n ]}\n />\n ) : (\n <InputMask\n mask={\"99/99/9999\"}\n ref={mergedRef}\n onChange={handleInputChange}\n value={(currentValue as DateSelect)?.value}\n inputProps={{\n onFocus: handleInputFocus,\n prefix: <Icon svg={Event} />,\n onBlur: handleInputBlur,\n onKeyDown: handleInputKeyDown,\n onClick: handleInputClick,\n hint,\n autoComplete: \"off\",\n required,\n [\"data-tracking-id\"]: trackingId,\n ...inputProps,\n }}\n customMaskHandler={[\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 0,\n endPosition: 2,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 3,\n endPosition: 5,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n ]}\n />\n );\n }}\n </Popover.Trigger>\n <Popover.Content\n ref={popoverContentRef}\n data-calendar-popover\n onBlur={handleInputBlur}\n >\n {calendar}\n </Popover.Content>\n </Popover>\n );\n },\n);\nDateField.displayName = \"DateField\";\n"],"names":["RANGE_DIVIDER","Event","newValue","data","event"],"mappings":"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"}
|
package/dist/DateField.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { D as DateField, D as default } from './DateField-
|
|
1
|
+
export { D as DateField, D as default } from './DateField-BNleIuS8.js';
|
|
2
2
|
//# sourceMappingURL=DateField.js.map
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import { c as maskitoDateRangeOptionsGenerator, a as maskitoWithPlaceholder, u as useMaskito, b as maskitoParseDate } from './index.esm-
|
|
3
|
-
import { T as TextField } from './TextField-
|
|
2
|
+
import { c as maskitoDateRangeOptionsGenerator, a as maskitoWithPlaceholder, u as useMaskito, b as maskitoParseDate } from './index.esm-C2ZhC_8d.js';
|
|
3
|
+
import { T as TextField } from './TextField-CygbgVVt.js';
|
|
4
4
|
import { forwardRef, useState, useRef, useEffect, useMemo, useImperativeHandle, useCallback } from 'react';
|
|
5
5
|
import { u as useMergeRefs } from './DrawerContext-D4tWTLVf.js';
|
|
6
|
-
import { D as DateTime, a as Calendar } from './Calendar-
|
|
7
|
-
import { I as Icon } from './Icon-
|
|
6
|
+
import { D as DateTime, a as Calendar } from './Calendar-BkJs1qTF.js';
|
|
7
|
+
import { I as Icon } from './Icon-BSuTVNaa.js';
|
|
8
8
|
import { S as SvgEvent } from './event-BEJFimi3.js';
|
|
9
9
|
import { m as makeZeroShortcutPreprocessor } from './makeZeroShortcutPreprocessor-CxsiGTRW.js';
|
|
10
|
-
import { D as DateModeToPlaceholderMap, a as DateModeToFormatMap, c as convertStringToDate, v as validateDate } from './utils-
|
|
10
|
+
import { D as DateModeToPlaceholderMap, a as DateModeToFormatMap, c as convertStringToDate, v as validateDate } from './utils-aSAOVHjX.js';
|
|
11
11
|
import { u as usePrevious } from './usePrevious-Bvq-5auG.js';
|
|
12
12
|
import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
|
|
13
|
-
import { P as Popover } from './Popover
|
|
13
|
+
import { P as Popover } from './Popover-CIPg_ZgX.js';
|
|
14
14
|
import { m as mergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
15
15
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
|
|
16
16
|
import { useTrackingId } from './useTrackingId.js';
|
|
@@ -414,6 +414,7 @@ const DateFieldRange = (props) => {
|
|
|
414
414
|
disableCalendar,
|
|
415
415
|
required,
|
|
416
416
|
mode,
|
|
417
|
+
label,
|
|
417
418
|
value: valueProp,
|
|
418
419
|
defaultValue: defaultValueProp,
|
|
419
420
|
minDate: minDateProp,
|
|
@@ -495,13 +496,15 @@ const DateFieldRange = (props) => {
|
|
|
495
496
|
const commonFieldProps = {
|
|
496
497
|
...rest,
|
|
497
498
|
mode,
|
|
499
|
+
label,
|
|
498
500
|
onChange: handleInputChange,
|
|
499
501
|
startDate: startDate ?? null,
|
|
500
502
|
endDate: endDate ?? null,
|
|
501
503
|
required,
|
|
502
504
|
autoComplete: "off",
|
|
503
505
|
"data-date-range-valid": currentValidity,
|
|
504
|
-
"data-tracking-id": trackingId
|
|
506
|
+
"data-tracking-id": trackingId,
|
|
507
|
+
"aria-label": label ? void 0 : "Select a date range"
|
|
505
508
|
};
|
|
506
509
|
const justTheField = /* @__PURE__ */ jsx(MaskedDateRangeInput, { ...commonFieldProps, ref: inputRef });
|
|
507
510
|
if (disableCalendar || !popoverSupported) {
|
|
@@ -559,4 +562,4 @@ const DateFieldRange = (props) => {
|
|
|
559
562
|
DateFieldRange.displayName = "DateFieldRange";
|
|
560
563
|
|
|
561
564
|
export { DateFieldRange as D, MaskedDateRangeInput as M, useDateFieldRangeState as a, DateFieldRangeCalendar as b, useDateFieldRangeConversion as u };
|
|
562
|
-
//# sourceMappingURL=DateFieldRange-
|
|
565
|
+
//# sourceMappingURL=DateFieldRange-BBgvno-_.js.map
|