@servicetitan/anvil2 3.4.1 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/dist/{AiMark-BL2p0EKB.js → AiMark-D3nw58ho.js} +2 -2
- package/dist/AiMark-D3nw58ho.js.map +1 -0
- package/dist/AiMark.js +1 -1
- package/dist/{Alert-Cgo8pwhb.js → Alert-CSV4hRBD.js} +2 -2
- package/dist/{Alert-Cgo8pwhb.js.map → Alert-CSV4hRBD.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{AnvilProvider-CwAHiQ_0.js → AnvilProvider-b3gvW6Md.js} +4 -29
- package/dist/AnvilProvider-b3gvW6Md.js.map +1 -0
- package/dist/AnvilProvider.js +1 -1
- package/dist/{Breadcrumbs-DcMJdSC5.js → Breadcrumbs-BkZVA_ux.js} +2 -2
- package/dist/{Breadcrumbs-DcMJdSC5.js.map → Breadcrumbs-BkZVA_ux.js.map} +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Calendar-Dmsp_qIo.js → Calendar-CJaZFWmO.js} +2 -2
- package/dist/{Calendar-Dmsp_qIo.js.map → Calendar-CJaZFWmO.js.map} +1 -1
- package/dist/{Calendar-C05ESFqK.js → Calendar-Cw2UKiof.js} +7 -2
- package/dist/Calendar-Cw2UKiof.js.map +1 -0
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-DqY9bRng.js → Checkbox-7KubQWJc.js} +3 -3
- package/dist/{Checkbox-DqY9bRng.js.map → Checkbox-7KubQWJc.js.map} +1 -1
- package/dist/{Checkbox-DEU2CtNu.js → Checkbox-Bq2EfltF.js} +2 -2
- package/dist/{Checkbox-DEU2CtNu.js.map → Checkbox-Bq2EfltF.js.map} +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-Cb3dnZht.js → Chip-yyEbwLdG.js} +2 -2
- package/dist/{Chip-Cb3dnZht.js.map → Chip-yyEbwLdG.js.map} +1 -1
- package/dist/Chip.js +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-QWgY5s7o.js → DataTable-BgD9Sh-7.js} +19 -7
- package/dist/{DataTable-QWgY5s7o.js.map → DataTable-BgD9Sh-7.js.map} +1 -1
- package/dist/{DateFieldRange-BWE-utxz.js → DateFieldRange-OlkU5oeu.js} +4 -4
- package/dist/{DateFieldRange-BWE-utxz.js.map → DateFieldRange-OlkU5oeu.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-DOJZRbkP.js → DateFieldSingle-BGGlLAID.js} +4 -4
- package/dist/{DateFieldSingle-DOJZRbkP.js.map → DateFieldSingle-BGGlLAID.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-BHGGAa4K.js → DateFieldYearless-X9_F3VFM.js} +4 -4
- package/dist/{DateFieldYearless-BHGGAa4K.js.map → DateFieldYearless-X9_F3VFM.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-CxEaZnI6.js → DateFieldYearlessRange-CWdTbFDF.js} +3 -3
- package/dist/{DateFieldYearlessRange-CxEaZnI6.js.map → DateFieldYearlessRange-CWdTbFDF.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-or-V9aOL.js → DaysOfTheWeek-DfNYEwbg.js} +2 -2
- package/dist/{DaysOfTheWeek-or-V9aOL.js.map → DaysOfTheWeek-DfNYEwbg.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Dialog-D7wWgUiC.js → Dialog-BpS3KScw.js} +3 -3
- package/dist/{Dialog-D7wWgUiC.js.map → Dialog-BpS3KScw.js.map} +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/{Drawer-rHhrkb8I.js → Drawer-CxVIDCIB.js} +3 -3
- package/dist/{Drawer-rHhrkb8I.js.map → Drawer-CxVIDCIB.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{EditCard-BygUiJyq.js → EditCard-T5mbl573.js} +2 -2
- package/dist/{EditCard-BygUiJyq.js.map → EditCard-T5mbl573.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-BLH70tsq.js → FieldLabel-Dfg4wEra.js} +2 -2
- package/dist/{FieldLabel-BLH70tsq.js.map → FieldLabel-Dfg4wEra.js.map} +1 -1
- package/dist/FieldLabel.js +1 -1
- package/dist/{FilterBar-kN4R0B_m.js → FilterBar-CA4MDEF-.js} +27 -6
- package/dist/FilterBar-CA4MDEF-.js.map +1 -0
- package/dist/FilterBar.js +1 -1
- package/dist/{InputMask-G9TeTPS8.js → InputMask-C8ZAwqFi.js} +3 -3
- package/dist/{InputMask-G9TeTPS8.js.map → InputMask-C8ZAwqFi.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{InteractiveCard-CyUR_VLW.js → InteractiveCard-C0g5PxB6.js} +5 -2
- package/dist/InteractiveCard-C0g5PxB6.js.map +1 -0
- package/dist/InteractiveCard.js +1 -1
- package/dist/{ListView-A4v-kbPH.js → ListView-BMo04Epa.js} +2 -2
- package/dist/{ListView-A4v-kbPH.js.map → ListView-BMo04Epa.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-DTxGVQQ9.js → Listbox-BQRMsA0L.js} +2 -2
- package/dist/{Listbox-DTxGVQQ9.js.map → Listbox-BQRMsA0L.js.map} +1 -1
- package/dist/Listbox.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-Zr6ObmiY.js → MultiSelectFieldSync-Cn3tNZcf.js} +13 -11
- package/dist/MultiSelectFieldSync-Cn3tNZcf.js.map +1 -0
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-Cdsp2_ZA.js → MultiSelectMenuSync-FH_hXlIa.js} +23 -10
- package/dist/MultiSelectMenuSync-FH_hXlIa.js.map +1 -0
- package/dist/{NumberField-CigVFXzW.js → NumberField-DdaBRyCJ.js} +3 -3
- package/dist/{NumberField-CigVFXzW.js.map → NumberField-DdaBRyCJ.js.map} +1 -1
- package/dist/NumberField.js +1 -1
- package/dist/{Page-DMvEouPp.js → Page-DpUv1L7T.js} +21 -16
- package/dist/Page-DpUv1L7T.js.map +1 -0
- package/dist/Page.js +1 -1
- package/dist/{Pagination-Bur581V_.js → Pagination-Dm10ZvKj.js} +2 -2
- package/dist/{Pagination-Bur581V_.js.map → Pagination-Dm10ZvKj.js.map} +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/{ProgressBar-CJwF0L2j.js → ProgressBar-fwE4FkQt.js} +2 -2
- package/dist/{ProgressBar-CJwF0L2j.js.map → ProgressBar-fwE4FkQt.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-CspG2mD_.js → Radio-BuzABI6-.js} +3 -3
- package/dist/{Radio-CspG2mD_.js.map → Radio-BuzABI6-.js.map} +1 -1
- package/dist/{Radio-DAsbQWNO.js → Radio-DUKkDky9.js} +2 -2
- package/dist/{Radio-DAsbQWNO.js.map → Radio-DUKkDky9.js.map} +1 -1
- package/dist/Radio.js +1 -1
- package/dist/{RichTextEditor-D1IBYQyU.js → RichTextEditor-x0anoUnS.js} +7 -7
- package/dist/{RichTextEditor-D1IBYQyU.js.map → RichTextEditor-x0anoUnS.js.map} +1 -1
- package/dist/RichTextEditor.js +1 -1
- package/dist/{SavedFiltersButton-CtClXIW1.js → SavedFiltersButton-DgP-7upC.js} +9 -9
- package/dist/{SavedFiltersButton-CtClXIW1.js.map → SavedFiltersButton-DgP-7upC.js.map} +1 -1
- package/dist/SavedFiltersButton.js +1 -1
- package/dist/{SearchField-BfOMhmIc.js → SearchField-GMJ6vfV9.js} +2 -2
- package/dist/{SearchField-BfOMhmIc.js.map → SearchField-GMJ6vfV9.js.map} +1 -1
- package/dist/{SearchField-D9ZMOcbo.js → SearchField-hjWzcHZF.js} +2 -2
- package/dist/{SearchField-D9ZMOcbo.js.map → SearchField-hjWzcHZF.js.map} +1 -1
- package/dist/SearchField.js +1 -1
- package/dist/{SelectCard-Bk2JEIie.js → SelectCard-CKlBGGSW.js} +3 -3
- package/dist/{SelectCard-Bk2JEIie.js.map → SelectCard-CKlBGGSW.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-VLPS25_a.js → SelectFieldLabel-_LjbBRaT.js} +2 -2
- package/dist/{SelectFieldLabel-VLPS25_a.js.map → SelectFieldLabel-_LjbBRaT.js.map} +1 -1
- package/dist/{SelectFieldSync-DO03WeCx.js → SelectFieldSync-DUwFm6OH.js} +7 -7
- package/dist/SelectFieldSync-DUwFm6OH.js.map +1 -0
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-DStox_Zy.js → SelectMenuSync-BZ3iXj3n.js} +5 -5
- package/dist/{SelectMenuSync-DStox_Zy.js.map → SelectMenuSync-BZ3iXj3n.js.map} +1 -1
- package/dist/{SelectOptions-DmqnJbq5.js → SelectOptions-DDindDgw.js} +2 -2
- package/dist/{SelectOptions-DmqnJbq5.js.map → SelectOptions-DDindDgw.js.map} +1 -1
- package/dist/{SelectTrigger-C--mlQPY.js → SelectTrigger-DZ33_p3P.js} +2 -2
- package/dist/{SelectTrigger-C--mlQPY.js.map → SelectTrigger-DZ33_p3P.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-DCdVK5FM.js → SelectTriggerBase-DcP0Fsia.js} +3 -3
- package/dist/{SelectTriggerBase-DCdVK5FM.js.map → SelectTriggerBase-DcP0Fsia.js.map} +1 -1
- package/dist/{SideNav-BFkruKa4.js → SideNav-BNMwTm1u.js} +5 -2
- package/dist/{SideNav-BFkruKa4.js.map → SideNav-BNMwTm1u.js.map} +1 -1
- package/dist/SideNav.js +1 -1
- package/dist/{Switch-97v6BcuM.js → Switch-DEDfnLGU.js} +2 -2
- package/dist/{Switch-97v6BcuM.js.map → Switch-DEDfnLGU.js.map} +1 -1
- package/dist/Switch.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-CXf0c8th.js → Text-Dp-1foEc.js} +2 -2
- package/dist/{Text-CXf0c8th.js.map → Text-Dp-1foEc.js.map} +1 -1
- package/dist/Text.js +1 -1
- package/dist/{TextField-ttW-PfxW.js → TextField-B0iTBGho.js} +3 -3
- package/dist/{TextField-ttW-PfxW.js.map → TextField-B0iTBGho.js.map} +1 -1
- package/dist/{TextField-B_LS82U2.js → TextField-CwJliCi7.js} +2 -2
- package/dist/{TextField-B_LS82U2.js.map → TextField-CwJliCi7.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-B58yhkqk.js → Textarea-CU3j_Yo0.js} +3 -3
- package/dist/{Textarea-B58yhkqk.js.map → Textarea-CU3j_Yo0.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-CacCU22y.js → TimeField-CpMwgKDi.js} +4 -4
- package/dist/{TimeField-CacCU22y.js.map → TimeField-CpMwgKDi.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-CggpDaEy.js → Toaster-D75ZXkU1.js} +2 -2
- package/dist/{Toaster-CggpDaEy.js.map → Toaster-D75ZXkU1.js.map} +1 -1
- package/dist/{Toaster-BMUQLR4X.js → Toaster-Djn0LfKr.js} +3 -3
- package/dist/{Toaster-BMUQLR4X.js.map → Toaster-Djn0LfKr.js.map} +1 -1
- package/dist/{Toolbar-CGI7ilfn.js → Toolbar--psHvtjP.js} +3 -3
- package/dist/{Toolbar-CGI7ilfn.js.map → Toolbar--psHvtjP.js.map} +1 -1
- package/dist/{Toolbar-BObGbcb3.js → Toolbar-DjkQ2_cV.js} +5 -5
- package/dist/{Toolbar-BObGbcb3.js.map → Toolbar-DjkQ2_cV.js.map} +1 -1
- package/dist/Toolbar.js +2 -2
- package/dist/{ToolbarButtonToggle-DsaG1BWZ.js → ToolbarButtonToggle-D62XxVp0.js} +6 -3
- package/dist/ToolbarButtonToggle-D62XxVp0.js.map +1 -0
- package/dist/TreeSelectField.js +1 -1
- package/dist/{TreeSelectFieldSync-BHSzJlYx.js → TreeSelectFieldSync-DR0Tzn2b.js} +5 -5
- package/dist/{TreeSelectFieldSync-BHSzJlYx.js.map → TreeSelectFieldSync-DR0Tzn2b.js.map} +1 -1
- package/dist/TreeSelectMenu.js +1 -1
- package/dist/{TreeSelectMenuSync-BfYc8PHd.js → TreeSelectMenuSync-B8GmAstR.js} +4 -4
- package/dist/{TreeSelectMenuSync-BfYc8PHd.js.map → TreeSelectMenuSync-B8GmAstR.js.map} +1 -1
- package/dist/{TypeaheadTextField-DU10rQHH.js → TypeaheadTextField-N_6q6ojK.js} +2 -2
- package/dist/{TypeaheadTextField-DU10rQHH.js.map → TypeaheadTextField-N_6q6ojK.js.map} +1 -1
- package/dist/TypeaheadTextField.js +1 -1
- package/dist/{YearlessDateInputWithPicker-DtikVrWk.js → YearlessDateInputWithPicker-w3VGYELR.js} +2 -2
- package/dist/{YearlessDateInputWithPicker-DtikVrWk.js.map → YearlessDateInputWithPicker-w3VGYELR.js.map} +1 -1
- package/dist/assets/icons/st/ai_mark_gradient.svg +1 -1
- package/dist/beta.js +17 -17
- package/dist/{useToggleSelection-qzKkgwTj.js → bulkActionTypes-wU7Cby5y.js} +8 -3
- package/dist/bulkActionTypes-wU7Cby5y.js.map +1 -0
- package/dist/{filter-state-BL17jEUz.js → filter-state-CSA3wjAR.js} +344 -66
- package/dist/filter-state-CSA3wjAR.js.map +1 -0
- package/dist/{index-Deyzt7C3.js → index-BN9SK9L3.js} +2 -2
- package/dist/{index-Deyzt7C3.js.map → index-BN9SK9L3.js.map} +1 -1
- package/dist/index.js +42 -42
- package/dist/src/beta/components/Calendar/Calendar.figma.d.ts +1 -0
- package/dist/src/beta/components/FilterBar/FilterSearchField.d.ts +28 -0
- package/dist/src/beta/components/FilterBar/index.d.ts +1 -1
- package/dist/src/beta/components/FilterBar/internal/adapters/search.d.ts +3 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/types.d.ts +2 -1
- package/dist/src/beta/components/FilterBar/internal/types.d.ts +72 -6
- package/dist/src/beta/components/FilterBar/internal/utils/dateConstraints.d.ts +38 -0
- package/dist/src/beta/components/FilterBar/internal/utils/test.d.ts +2 -1
- package/dist/src/beta/components/InteractiveCard/InteractiveCard.figma.d.ts +1 -0
- package/dist/src/beta/components/InteractiveCard/types.d.ts +3 -3
- package/dist/src/beta/components/RichTextEditor/RichTextEditor.figma.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/DataTable.figma.d.ts +1 -0
- package/dist/src/beta/components/Toolbar/Toolbar.figma.d.ts +1 -0
- package/dist/src/components/AiMark/AiMark.figma.d.ts +1 -0
- package/dist/src/components/ButtonLink/ButtonLink.figma.d.ts +1 -0
- package/dist/src/components/ButtonToggle/ButtonToggle.figma.d.ts +1 -0
- package/dist/src/components/Combobox/Combobox.d.ts +8 -4
- package/dist/src/components/Combobox/ComboboxSelect.d.ts +2 -2
- package/dist/src/components/DateFieldRange/DateFieldRange.figma.d.ts +1 -0
- package/dist/src/components/DateFieldSingle/DateFieldSingle.figma.d.ts +1 -0
- package/dist/src/components/DateFieldYearless/DateFieldYearless.figma.d.ts +1 -0
- package/dist/src/components/DateFieldYearlessRange/DateFieldYearlessRange.figma.d.ts +1 -0
- package/dist/src/components/DaysOfTheWeek/DaysOfTheWeek.figma.d.ts +1 -0
- package/dist/src/components/Details/Details.figma.d.ts +1 -0
- package/dist/src/components/Dialog/Dialog.figma.d.ts +1 -0
- package/dist/src/components/Dnd/Dnd.figma.d.ts +1 -0
- package/dist/src/components/DndSort/DndSort.figma.d.ts +1 -0
- package/dist/src/components/Drawer/Drawer.figma.d.ts +1 -0
- package/dist/src/components/Layout/Layout.figma.d.ts +1 -0
- package/dist/src/components/LinkButton/LinkButton.figma.d.ts +1 -0
- package/dist/src/components/ListView/ListView.figma.d.ts +1 -0
- package/dist/src/components/Listbox/Listbox.figma.d.ts +1 -0
- package/dist/src/components/Menu/Menu.figma.d.ts +1 -0
- package/dist/src/components/MultiSelectField/MultiSelectField.figma.d.ts +1 -0
- package/dist/src/components/MultiSelectField/types.d.ts +3 -0
- package/dist/src/components/MultiSelectMenu/MultiSelectMenu.figma.d.ts +1 -0
- package/dist/src/components/MultiSelectMenu/types.d.ts +5 -0
- package/dist/src/components/NumberField/NumberField.figma.d.ts +1 -0
- package/dist/src/components/Overflow/Overflow.figma.d.ts +1 -0
- package/dist/src/components/Page/Page.figma.d.ts +1 -0
- package/dist/src/components/Pagination/Pagination.figma.d.ts +1 -0
- package/dist/src/components/Popover/Popover.figma.d.ts +1 -0
- package/dist/src/components/SearchField/SearchField.figma.d.ts +1 -0
- package/dist/src/components/SegmentedControl/SegmentedControl.figma.d.ts +1 -0
- package/dist/src/components/SelectCard/SelectCard.figma.d.ts +1 -0
- package/dist/src/components/SelectField/SelectField.figma.d.ts +1 -0
- package/dist/src/components/SelectMenu/SelectMenu.figma.d.ts +1 -0
- package/dist/src/components/SideNav/SideNav.figma.d.ts +1 -0
- package/dist/src/components/Skeleton/Skeleton.figma.d.ts +1 -0
- package/dist/src/components/Stepper/Stepper.figma.d.ts +1 -0
- package/dist/src/components/Tab/Tab.figma.d.ts +1 -0
- package/dist/src/components/Text/Text.figma.d.ts +1 -0
- package/dist/src/components/TextField/TextField.figma.d.ts +1 -0
- package/dist/src/components/Textarea/Textarea.figma.d.ts +1 -0
- package/dist/src/components/TimeField/TimeField.figma.d.ts +1 -0
- package/dist/src/internal/types/bulkActionTypes.d.ts +27 -2
- package/dist/src/providers/AnvilProvider/AnvilProviderContext.d.ts +12 -0
- package/dist/{stripInlineMarkdown-D8j76cz_.js → stripInlineMarkdown-_rZx_gXG.js} +2 -2
- package/dist/{stripInlineMarkdown-D8j76cz_.js.map → stripInlineMarkdown-_rZx_gXG.js.map} +1 -1
- package/dist/{syncFilterUtils-DV1H8ZIz.js → syncFilterUtils-CpDXQtFA.js} +3 -3
- package/dist/{syncFilterUtils-DV1H8ZIz.js.map → syncFilterUtils-CpDXQtFA.js.map} +1 -1
- package/dist/{treeSync-DluwQlVs.js → treeSync-Dcq1ntVm.js} +3 -3
- package/dist/{treeSync-DluwQlVs.js.map → treeSync-Dcq1ntVm.js.map} +1 -1
- package/dist/{useAdaptiveView-0Cd-y9FC.js → useAdaptiveView-B8-BkcBX.js} +6 -6
- package/dist/{useAdaptiveView-0Cd-y9FC.js.map → useAdaptiveView-B8-BkcBX.js.map} +1 -1
- package/dist/useAdaptiveView.css +6 -4
- package/dist/{useDrilldown-C5jP2l0a.js → useDrilldown-DmILG6sb.js} +2 -2
- package/dist/{useDrilldown-C5jP2l0a.js.map → useDrilldown-DmILG6sb.js.map} +1 -1
- package/dist/{useInfiniteCombobox-BlP6jZ6d.js → useInfiniteCombobox-BfM3muPW.js} +7 -5
- package/dist/useInfiniteCombobox-BfM3muPW.js.map +1 -0
- package/package.json +1 -1
- package/dist/AiMark-BL2p0EKB.js.map +0 -1
- package/dist/AnvilProvider-CwAHiQ_0.js.map +0 -1
- package/dist/Calendar-C05ESFqK.js.map +0 -1
- package/dist/FilterBar-kN4R0B_m.js.map +0 -1
- package/dist/InteractiveCard-CyUR_VLW.js.map +0 -1
- package/dist/MultiSelectFieldSync-Zr6ObmiY.js.map +0 -1
- package/dist/MultiSelectMenuSync-Cdsp2_ZA.js.map +0 -1
- package/dist/Page-DMvEouPp.js.map +0 -1
- package/dist/SelectFieldSync-DO03WeCx.js.map +0 -1
- package/dist/ToolbarButtonToggle-DsaG1BWZ.js.map +0 -1
- package/dist/a2-border.css +0 -25
- package/dist/a2-color.css +0 -223
- package/dist/a2-font.css +0 -21
- package/dist/a2-spacing.css +0 -238
- package/dist/a2-utils.css +0 -500
- package/dist/filter-state-BL17jEUz.js.map +0 -1
- package/dist/useInfiniteCombobox-BlP6jZ6d.js.map +0 -1
- package/dist/useToggleSelection-qzKkgwTj.js.map +0 -1
|
@@ -1,33 +1,38 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { useMemo, forwardRef, createElement, createContext, useRef, useId, useState, useContext, useEffect, useCallback } from 'react';
|
|
3
|
-
import { C as Chip } from './Chip-
|
|
4
|
-
import { d as ToolbarItemWrapper, u as useToolbarSize, T as ToolbarButtonToggle } from './ToolbarButtonToggle-
|
|
3
|
+
import { C as Chip } from './Chip-yyEbwLdG.js';
|
|
4
|
+
import { d as ToolbarItemWrapper, u as useToolbarSize, T as ToolbarButtonToggle, b as ToolbarContext, g as getToolbarElements, a as updateToolbarItemsTabIndex } from './ToolbarButtonToggle-D62XxVp0.js';
|
|
5
5
|
import { S as SvgKeyboardArrowDown } from './keyboard_arrow_down-C8WQ38p1.js';
|
|
6
|
-
import { S as SvgEvent } from './TimezoneMessage-BrKB_psP.js';
|
|
6
|
+
import { S as SvgEvent, a as DateModeToFormatMap } from './TimezoneMessage-BrKB_psP.js';
|
|
7
7
|
import { c as cx } from './index-De1g9FRV.js';
|
|
8
8
|
import { B as Button } from './Button-CjeF1Agb.js';
|
|
9
|
-
import { M as MultiSelectField, a as MultiSelectFieldSync } from './MultiSelectFieldSync-
|
|
10
|
-
import { M as MultiSelectMenu, a as MultiSelectMenuSync } from './MultiSelectMenuSync-
|
|
11
|
-
import { S as SelectField, a as SelectFieldSync } from './SelectFieldSync-
|
|
12
|
-
import { S as SelectMenu, a as SelectMenuSync } from './SelectMenuSync-
|
|
13
|
-
import { T as TreeSelectField, a as TreeSelectFieldSync } from './TreeSelectFieldSync-
|
|
14
|
-
import { a as TreeSelectMenu, T as TreeSelectMenuSync } from './TreeSelectMenuSync-
|
|
15
|
-
import { C as Checkbox } from './Checkbox-
|
|
16
|
-
import { a as OptionsPopover } from './useAdaptiveView-
|
|
9
|
+
import { M as MultiSelectField, a as MultiSelectFieldSync } from './MultiSelectFieldSync-Cn3tNZcf.js';
|
|
10
|
+
import { M as MultiSelectMenu, a as MultiSelectMenuSync } from './MultiSelectMenuSync-FH_hXlIa.js';
|
|
11
|
+
import { S as SelectField, a as SelectFieldSync } from './SelectFieldSync-DUwFm6OH.js';
|
|
12
|
+
import { S as SelectMenu, a as SelectMenuSync } from './SelectMenuSync-BZ3iXj3n.js';
|
|
13
|
+
import { T as TreeSelectField, a as TreeSelectFieldSync } from './TreeSelectFieldSync-DR0Tzn2b.js';
|
|
14
|
+
import { a as TreeSelectMenu, T as TreeSelectMenuSync } from './TreeSelectMenuSync-B8GmAstR.js';
|
|
15
|
+
import { C as Checkbox } from './Checkbox-Bq2EfltF.js';
|
|
16
|
+
import { a as OptionsPopover } from './useAdaptiveView-B8-BkcBX.js';
|
|
17
17
|
import { M as MenuFooter } from './MenuFooter-BZTsAaOz.js';
|
|
18
18
|
import { D as DateTime } from './luxon-wpz4A-OQ.js';
|
|
19
|
-
import { u as useDateFieldSingleConversion, a as useDateFieldSingleState, M as MaskedDateInput, b as DateFieldSingleCalendar, D as DateFieldSingle } from './DateFieldSingle-
|
|
19
|
+
import { u as useDateFieldSingleConversion, a as useDateFieldSingleState, M as MaskedDateInput, b as DateFieldSingleCalendar, D as DateFieldSingle } from './DateFieldSingle-BGGlLAID.js';
|
|
20
20
|
import { F as Flex } from './Flex-Bb3iHExM.js';
|
|
21
21
|
import { u as useConfirmationDraft } from './confirmationTypes-CG7xl50f.js';
|
|
22
|
-
import { D as Dialog } from './Dialog-
|
|
23
|
-
import { u as useDateFieldRangeConversion, a as useDateFieldRangeState, M as MaskedDateRangeInput, b as DateFieldRangeCalendar, D as DateFieldRange } from './DateFieldRange-
|
|
22
|
+
import { D as Dialog } from './Dialog-BpS3KScw.js';
|
|
23
|
+
import { u as useDateFieldRangeConversion, a as useDateFieldRangeState, M as MaskedDateRangeInput, b as DateFieldRangeCalendar, D as DateFieldRange } from './DateFieldRange-OlkU5oeu.js';
|
|
24
24
|
import { w as warnOnce } from './warnOnce-Y9PRHcU4.js';
|
|
25
|
-
import { F as FieldLabel } from './FieldLabel-
|
|
25
|
+
import { F as FieldLabel } from './FieldLabel-Dfg4wEra.js';
|
|
26
26
|
import { G as Grid } from './Grid-ho1pGJ5L.js';
|
|
27
|
-
import { N as NumberField } from './NumberField-
|
|
28
|
-
import { T as Text } from './Text-
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
27
|
+
import { N as NumberField } from './NumberField-DdaBRyCJ.js';
|
|
28
|
+
import { T as Text } from './Text-Dp-1foEc.js';
|
|
29
|
+
import { T as TextField } from './TextField-CwJliCi7.js';
|
|
30
|
+
import { S as SvgClose } from './close-DZj38AEh.js';
|
|
31
|
+
import { a as SvgSearch, s as styles$1 } from './SearchField-hjWzcHZF.js';
|
|
32
|
+
import { t as textFieldStyles } from './TextField.module-DklyLNKz.js';
|
|
33
|
+
import { I as Icon } from './Icon-BEwHECSM.js';
|
|
34
|
+
import { useTrackingId } from './useTrackingId.js';
|
|
35
|
+
import { R as Radio } from './Radio-DUKkDky9.js';
|
|
31
36
|
|
|
32
37
|
import './filter-state.css';const FilterItemWrapper = ({ children }) => {
|
|
33
38
|
const props = useMemo(
|
|
@@ -80,7 +85,7 @@ const FilterTriggerButton = forwardRef(function FilterTriggerButton2({ filterId,
|
|
|
80
85
|
);
|
|
81
86
|
});
|
|
82
87
|
|
|
83
|
-
const isSelected$
|
|
88
|
+
const isSelected$a = (filter) => !!filter.selectedOptions && filter.selectedOptions.length > 0;
|
|
84
89
|
const formatLabel$b = (filter) => {
|
|
85
90
|
const count = filter.selectedOptions?.length ?? 0;
|
|
86
91
|
if (count === 0) return filter.label;
|
|
@@ -113,7 +118,7 @@ const asyncMultiSelectAdapter = {
|
|
|
113
118
|
getValue: (filter) => filter.selectedOptions ?? [],
|
|
114
119
|
setValue: (filter, value) => ({ ...filter, selectedOptions: value }),
|
|
115
120
|
reset: (filter) => ({ ...filter, selectedOptions: [] }),
|
|
116
|
-
isActive: isSelected$
|
|
121
|
+
isActive: isSelected$a,
|
|
117
122
|
preserveState: (newFilter, existingFilter) => ({
|
|
118
123
|
...newFilter,
|
|
119
124
|
selectedOptions: existingFilter.selectedOptions
|
|
@@ -138,7 +143,7 @@ const asyncMultiSelectAdapter = {
|
|
|
138
143
|
...triggerProps,
|
|
139
144
|
filterId: filter.id,
|
|
140
145
|
label: formatLabel$b(filter),
|
|
141
|
-
isSelected: isSelected$
|
|
146
|
+
isSelected: isSelected$a(filter)
|
|
142
147
|
}
|
|
143
148
|
)
|
|
144
149
|
}
|
|
@@ -154,7 +159,7 @@ const asyncMultiSelectAdapter = {
|
|
|
154
159
|
}
|
|
155
160
|
),
|
|
156
161
|
formatLabel: formatLabel$b,
|
|
157
|
-
isSelected: isSelected$
|
|
162
|
+
isSelected: isSelected$a
|
|
158
163
|
};
|
|
159
164
|
|
|
160
165
|
const formatLabel$a = (filter) => {
|
|
@@ -163,7 +168,7 @@ const formatLabel$a = (filter) => {
|
|
|
163
168
|
}
|
|
164
169
|
return filter.label;
|
|
165
170
|
};
|
|
166
|
-
const isSelected$
|
|
171
|
+
const isSelected$9 = (filter) => filter.selectedOption !== void 0;
|
|
167
172
|
const passThroughMenuProps$4 = (filter) => {
|
|
168
173
|
const {
|
|
169
174
|
id: _id,
|
|
@@ -179,7 +184,7 @@ const asyncSelectAdapter = {
|
|
|
179
184
|
getValue: (filter) => filter.selectedOption,
|
|
180
185
|
setValue: (filter, value) => ({ ...filter, selectedOption: value }),
|
|
181
186
|
reset: (filter) => ({ ...filter, selectedOption: void 0 }),
|
|
182
|
-
isActive: isSelected$
|
|
187
|
+
isActive: isSelected$9,
|
|
183
188
|
preserveState: (newFilter, existingFilter) => ({
|
|
184
189
|
...newFilter,
|
|
185
190
|
selectedOption: existingFilter.selectedOption
|
|
@@ -203,7 +208,7 @@ const asyncSelectAdapter = {
|
|
|
203
208
|
...triggerProps,
|
|
204
209
|
filterId: filter.id,
|
|
205
210
|
label: formatLabel$a(filter),
|
|
206
|
-
isSelected: isSelected$
|
|
211
|
+
isSelected: isSelected$9(filter)
|
|
207
212
|
}
|
|
208
213
|
)
|
|
209
214
|
}
|
|
@@ -219,10 +224,10 @@ const asyncSelectAdapter = {
|
|
|
219
224
|
}
|
|
220
225
|
),
|
|
221
226
|
formatLabel: formatLabel$a,
|
|
222
|
-
isSelected: isSelected$
|
|
227
|
+
isSelected: isSelected$9
|
|
223
228
|
};
|
|
224
229
|
|
|
225
|
-
const isSelected$
|
|
230
|
+
const isSelected$8 = (filter) => !!filter.selectedNodes && filter.selectedNodes.length > 0;
|
|
226
231
|
const formatLabel$9 = (filter) => {
|
|
227
232
|
const count = filter.selectedNodes?.length ?? 0;
|
|
228
233
|
if (count === 0) return filter.label;
|
|
@@ -255,7 +260,7 @@ const asyncTreeAdapter = {
|
|
|
255
260
|
getValue: (filter) => filter.selectedNodes ?? [],
|
|
256
261
|
setValue: (filter, value) => ({ ...filter, selectedNodes: value }),
|
|
257
262
|
reset: (filter) => ({ ...filter, selectedNodes: [] }),
|
|
258
|
-
isActive: isSelected$
|
|
263
|
+
isActive: isSelected$8,
|
|
259
264
|
preserveState: (newFilter, existingFilter) => ({
|
|
260
265
|
...newFilter,
|
|
261
266
|
selectedNodes: existingFilter.selectedNodes
|
|
@@ -273,7 +278,7 @@ const asyncTreeAdapter = {
|
|
|
273
278
|
confirmation: controlledFiltering,
|
|
274
279
|
clear: {
|
|
275
280
|
onClick: () => updateFilter(filter.id, [], true),
|
|
276
|
-
disabled: !isSelected$
|
|
281
|
+
disabled: !isSelected$8(filter)
|
|
277
282
|
},
|
|
278
283
|
trigger: (triggerProps) => /* @__PURE__ */ jsx(
|
|
279
284
|
FilterTriggerButton,
|
|
@@ -281,7 +286,7 @@ const asyncTreeAdapter = {
|
|
|
281
286
|
...triggerProps,
|
|
282
287
|
filterId: filter.id,
|
|
283
288
|
label: formatLabel$9(filter),
|
|
284
|
-
isSelected: isSelected$
|
|
289
|
+
isSelected: isSelected$8(filter)
|
|
285
290
|
}
|
|
286
291
|
)
|
|
287
292
|
}
|
|
@@ -297,7 +302,7 @@ const asyncTreeAdapter = {
|
|
|
297
302
|
}
|
|
298
303
|
),
|
|
299
304
|
formatLabel: formatLabel$9,
|
|
300
|
-
isSelected: isSelected$
|
|
305
|
+
isSelected: isSelected$8
|
|
301
306
|
};
|
|
302
307
|
|
|
303
308
|
const FilterToggleButton = ({
|
|
@@ -610,6 +615,86 @@ const customAdapter = {
|
|
|
610
615
|
isSelected: (filter) => filter.value !== void 0
|
|
611
616
|
};
|
|
612
617
|
|
|
618
|
+
const toDate = (value) => {
|
|
619
|
+
if (!value) return null;
|
|
620
|
+
const date = DateTime.fromISO(value, { zone: "utc" }).startOf("day");
|
|
621
|
+
return date.isValid ? date : null;
|
|
622
|
+
};
|
|
623
|
+
const getDateConstraintReason = (value, { minDate, maxDate, unavailable }) => {
|
|
624
|
+
const date = toDate(value);
|
|
625
|
+
if (!date) return null;
|
|
626
|
+
const unavailableDates = unavailable?.dates?.map(toDate).filter((d) => d !== null);
|
|
627
|
+
if (unavailableDates?.some((d) => d.equals(date))) return "unavailable";
|
|
628
|
+
if (unavailable?.daysOfWeek?.includes(date.weekday)) {
|
|
629
|
+
return "unavailable";
|
|
630
|
+
}
|
|
631
|
+
const min = toDate(minDate);
|
|
632
|
+
const max = toDate(maxDate);
|
|
633
|
+
if (min && date < min) return "minDate";
|
|
634
|
+
if (max && date > max) return "maxDate";
|
|
635
|
+
return null;
|
|
636
|
+
};
|
|
637
|
+
const formatDate = (value, mode = "mm/dd/yyyy") => {
|
|
638
|
+
const date = toDate(value);
|
|
639
|
+
return date ? date.toFormat(DateModeToFormatMap[mode]) : "";
|
|
640
|
+
};
|
|
641
|
+
const defaultReasonMessage = (reason, { minDate, maxDate }, mode) => {
|
|
642
|
+
switch (reason) {
|
|
643
|
+
case "minDate":
|
|
644
|
+
return `Date must be on or after ${formatDate(minDate, mode)}.`;
|
|
645
|
+
case "maxDate":
|
|
646
|
+
return `Date must be on or before ${formatDate(maxDate, mode)}.`;
|
|
647
|
+
case "unavailable":
|
|
648
|
+
return "This date is unavailable.";
|
|
649
|
+
}
|
|
650
|
+
};
|
|
651
|
+
const resolveDateFilterError = (filter, value) => {
|
|
652
|
+
const reason = getDateConstraintReason(value, filter);
|
|
653
|
+
if (!reason || !value) return void 0;
|
|
654
|
+
return filter.getErrorMessage?.({ reason, value }) ?? defaultReasonMessage(
|
|
655
|
+
reason,
|
|
656
|
+
{ minDate: filter.minDate, maxDate: filter.maxDate },
|
|
657
|
+
filter.mode
|
|
658
|
+
);
|
|
659
|
+
};
|
|
660
|
+
const getDateRangeConstraintViolation = (value, constraints) => {
|
|
661
|
+
const start = value?.startDate ?? null;
|
|
662
|
+
const end = value?.endDate ?? null;
|
|
663
|
+
const startReason = getDateConstraintReason(start, constraints);
|
|
664
|
+
if (startReason && start) {
|
|
665
|
+
return { reason: startReason, field: "start", value: start };
|
|
666
|
+
}
|
|
667
|
+
const endReason = getDateConstraintReason(end, constraints);
|
|
668
|
+
if (endReason && end) {
|
|
669
|
+
return { reason: endReason, field: "end", value: end };
|
|
670
|
+
}
|
|
671
|
+
const startDate = toDate(start);
|
|
672
|
+
const endDate = toDate(end);
|
|
673
|
+
if (startDate && endDate && startDate > endDate) {
|
|
674
|
+
return { reason: "startAfterEnd" };
|
|
675
|
+
}
|
|
676
|
+
return null;
|
|
677
|
+
};
|
|
678
|
+
const resolveDateRangeFilterError = (filter, value) => {
|
|
679
|
+
const violation = getDateRangeConstraintViolation(value, filter);
|
|
680
|
+
if (!violation) return void 0;
|
|
681
|
+
const context = violation.reason === "startAfterEnd" ? { reason: "startAfterEnd" } : {
|
|
682
|
+
reason: violation.reason,
|
|
683
|
+
field: violation.field,
|
|
684
|
+
value: violation.value
|
|
685
|
+
};
|
|
686
|
+
const custom = filter.getErrorMessage?.(context);
|
|
687
|
+
if (custom) return custom;
|
|
688
|
+
if (violation.reason === "startAfterEnd") {
|
|
689
|
+
return "Start date must be on or before the end date.";
|
|
690
|
+
}
|
|
691
|
+
return defaultReasonMessage(
|
|
692
|
+
violation.reason,
|
|
693
|
+
{ minDate: filter.minDate, maxDate: filter.maxDate },
|
|
694
|
+
filter.mode
|
|
695
|
+
);
|
|
696
|
+
};
|
|
697
|
+
|
|
613
698
|
const FilterDateSingle = (props) => {
|
|
614
699
|
if (props.variant === "inline") {
|
|
615
700
|
return /* @__PURE__ */ jsx(
|
|
@@ -632,14 +717,18 @@ const Body$1 = ({
|
|
|
632
717
|
const handleChange = (change) => {
|
|
633
718
|
onDraftChange(change.date);
|
|
634
719
|
};
|
|
635
|
-
const { value, onChange } = useDateFieldSingleConversion({
|
|
720
|
+
const { value, minDate, maxDate, unavailable, onChange } = useDateFieldSingleConversion({
|
|
636
721
|
value: draftValue,
|
|
637
|
-
onChange: handleChange
|
|
722
|
+
onChange: handleChange,
|
|
723
|
+
minDate: filter.minDate,
|
|
724
|
+
maxDate: filter.maxDate,
|
|
725
|
+
unavailable: filter.unavailable
|
|
638
726
|
});
|
|
639
727
|
const { handleInputChange, handleCalendarSelection } = useDateFieldSingleState({
|
|
640
728
|
valueProp: value,
|
|
641
729
|
onChange: (change) => onChange({ ...change, isDateValid: true })
|
|
642
730
|
});
|
|
731
|
+
const error = resolveDateFilterError(filter, draftValue);
|
|
643
732
|
return /* @__PURE__ */ jsxs(Flex, { gap: 4, direction: "column", children: [
|
|
644
733
|
/* @__PURE__ */ jsx(
|
|
645
734
|
MaskedDateInput,
|
|
@@ -648,14 +737,18 @@ const Body$1 = ({
|
|
|
648
737
|
ref: maskedDateInputRef,
|
|
649
738
|
onChange: handleInputChange,
|
|
650
739
|
lastValidDate: value ?? null,
|
|
651
|
-
autoComplete: "off"
|
|
740
|
+
autoComplete: "off",
|
|
741
|
+
error
|
|
652
742
|
}
|
|
653
743
|
),
|
|
654
744
|
/* @__PURE__ */ jsx(
|
|
655
745
|
DateFieldSingleCalendar,
|
|
656
746
|
{
|
|
657
747
|
value: value ?? null,
|
|
658
|
-
onSelection: handleCalendarSelection
|
|
748
|
+
onSelection: handleCalendarSelection,
|
|
749
|
+
minDate,
|
|
750
|
+
maxDate,
|
|
751
|
+
unavailable
|
|
659
752
|
}
|
|
660
753
|
)
|
|
661
754
|
] });
|
|
@@ -777,7 +870,11 @@ const dateAdapter = {
|
|
|
777
870
|
label: draftFilter.label,
|
|
778
871
|
value: draftFilter.value ?? null,
|
|
779
872
|
onChange: (change) => onDraftChange(draftFilter.id, change.date),
|
|
780
|
-
mode: draftFilter.mode
|
|
873
|
+
mode: draftFilter.mode,
|
|
874
|
+
minDate: draftFilter.minDate,
|
|
875
|
+
maxDate: draftFilter.maxDate,
|
|
876
|
+
unavailable: draftFilter.unavailable,
|
|
877
|
+
error: resolveDateFilterError(draftFilter, draftFilter.value ?? null)
|
|
781
878
|
},
|
|
782
879
|
draftFilter.id
|
|
783
880
|
),
|
|
@@ -814,9 +911,12 @@ const Body = ({
|
|
|
814
911
|
});
|
|
815
912
|
}
|
|
816
913
|
};
|
|
817
|
-
const { value, onChange } = useDateFieldRangeConversion({
|
|
914
|
+
const { value, minDate, maxDate, unavailable, onChange } = useDateFieldRangeConversion({
|
|
818
915
|
value: draftValue,
|
|
819
|
-
onChange: handleChange
|
|
916
|
+
onChange: handleChange,
|
|
917
|
+
minDate: filter.minDate,
|
|
918
|
+
maxDate: filter.maxDate,
|
|
919
|
+
unavailable: filter.unavailable
|
|
820
920
|
});
|
|
821
921
|
const { handleInputChange, handleCalendarSelection } = useDateFieldRangeState(
|
|
822
922
|
{
|
|
@@ -830,6 +930,7 @@ const Body = ({
|
|
|
830
930
|
}
|
|
831
931
|
}
|
|
832
932
|
);
|
|
933
|
+
const error = resolveDateRangeFilterError(filter, draftValue);
|
|
833
934
|
return /* @__PURE__ */ jsxs(Flex, { gap: 4, direction: "column", children: [
|
|
834
935
|
/* @__PURE__ */ jsx(
|
|
835
936
|
MaskedDateRangeInput,
|
|
@@ -839,7 +940,8 @@ const Body = ({
|
|
|
839
940
|
onChange: handleInputChange,
|
|
840
941
|
startDate: value?.startDate ?? null,
|
|
841
942
|
endDate: value?.endDate ?? null,
|
|
842
|
-
autoComplete: "off"
|
|
943
|
+
autoComplete: "off",
|
|
944
|
+
error
|
|
843
945
|
}
|
|
844
946
|
),
|
|
845
947
|
/* @__PURE__ */ jsx(
|
|
@@ -847,7 +949,10 @@ const Body = ({
|
|
|
847
949
|
{
|
|
848
950
|
startDate: value?.startDate ?? null,
|
|
849
951
|
endDate: value?.endDate ?? null,
|
|
850
|
-
onSelection: handleCalendarSelection
|
|
952
|
+
onSelection: handleCalendarSelection,
|
|
953
|
+
minDate,
|
|
954
|
+
maxDate,
|
|
955
|
+
unavailable
|
|
851
956
|
}
|
|
852
957
|
)
|
|
853
958
|
] });
|
|
@@ -1098,14 +1203,18 @@ const FilterDateList = ({
|
|
|
1098
1203
|
}, [filter.options, visibleLibraryOptions]);
|
|
1099
1204
|
const options = useMemo(
|
|
1100
1205
|
() => [
|
|
1101
|
-
...filter.options.map(
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1206
|
+
...filter.options.map(
|
|
1207
|
+
(opt) => ({
|
|
1208
|
+
id: opt.id,
|
|
1209
|
+
label: opt.label
|
|
1210
|
+
})
|
|
1211
|
+
),
|
|
1212
|
+
...visibleLibraryOptions.map(
|
|
1213
|
+
(opt) => ({
|
|
1214
|
+
id: opt.id,
|
|
1215
|
+
label: opt.label
|
|
1216
|
+
})
|
|
1217
|
+
)
|
|
1109
1218
|
],
|
|
1110
1219
|
[filter.options, visibleLibraryOptions]
|
|
1111
1220
|
);
|
|
@@ -1173,7 +1282,7 @@ const FilterDateList = ({
|
|
|
1173
1282
|
] });
|
|
1174
1283
|
};
|
|
1175
1284
|
|
|
1176
|
-
const isSelected$
|
|
1285
|
+
const isSelected$7 = (filter) => filter.selectedOption !== void 0 && filter.selectedOption.value !== null;
|
|
1177
1286
|
const formatLabel$6 = (filter) => {
|
|
1178
1287
|
const selected = filter.selectedOption;
|
|
1179
1288
|
if (!selected || selected.value === null) return filter.label;
|
|
@@ -1183,7 +1292,7 @@ const dateListAdapter = {
|
|
|
1183
1292
|
getValue: (filter) => filter.selectedOption,
|
|
1184
1293
|
setValue: (filter, value) => ({ ...filter, selectedOption: value }),
|
|
1185
1294
|
reset: (filter) => ({ ...filter, selectedOption: void 0 }),
|
|
1186
|
-
isActive: isSelected$
|
|
1295
|
+
isActive: isSelected$7,
|
|
1187
1296
|
preserveState: (newFilter, existingFilter) => ({
|
|
1188
1297
|
...newFilter,
|
|
1189
1298
|
selectedOption: existingFilter.selectedOption
|
|
@@ -1196,7 +1305,7 @@ const dateListAdapter = {
|
|
|
1196
1305
|
committedValue: filter.selectedOption,
|
|
1197
1306
|
onCommit: (value) => updateFilter(filter.id, value, true),
|
|
1198
1307
|
label: formatLabel$6(filter),
|
|
1199
|
-
isSelected: isSelected$
|
|
1308
|
+
isSelected: isSelected$7(filter),
|
|
1200
1309
|
dialogCtaLabel: "Apply",
|
|
1201
1310
|
clear: {
|
|
1202
1311
|
onClick: () => updateFilter(filter.id, void 0, true)
|
|
@@ -1260,7 +1369,7 @@ const dateListAdapter = {
|
|
|
1260
1369
|
);
|
|
1261
1370
|
},
|
|
1262
1371
|
formatLabel: formatLabel$6,
|
|
1263
|
-
isSelected: isSelected$
|
|
1372
|
+
isSelected: isSelected$7
|
|
1264
1373
|
};
|
|
1265
1374
|
|
|
1266
1375
|
const formatLabel$5 = (filter) => {
|
|
@@ -1277,7 +1386,7 @@ const formatLabel$5 = (filter) => {
|
|
|
1277
1386
|
}
|
|
1278
1387
|
return filter.label;
|
|
1279
1388
|
};
|
|
1280
|
-
const isSelected$
|
|
1389
|
+
const isSelected$6 = (filter) => !!(filter.value?.startDate && filter.value?.endDate);
|
|
1281
1390
|
const dateRangeAdapter = {
|
|
1282
1391
|
getValue: (filter) => filter.value ?? null,
|
|
1283
1392
|
setValue: (filter, value) => ({ ...filter, value }),
|
|
@@ -1299,7 +1408,7 @@ const dateRangeAdapter = {
|
|
|
1299
1408
|
onCommit: (value) => updateFilter(filter.id, value, true),
|
|
1300
1409
|
controlledFiltering,
|
|
1301
1410
|
label: formatLabel$5(filter),
|
|
1302
|
-
isSelected: isSelected$
|
|
1411
|
+
isSelected: isSelected$6(filter),
|
|
1303
1412
|
clear: {
|
|
1304
1413
|
onClick: () => updateFilter(filter.id, null, true)
|
|
1305
1414
|
}
|
|
@@ -1315,15 +1424,22 @@ const dateRangeAdapter = {
|
|
|
1315
1424
|
startDate: change.startDate,
|
|
1316
1425
|
endDate: change.endDate
|
|
1317
1426
|
}),
|
|
1318
|
-
mode: draftFilter.mode
|
|
1427
|
+
mode: draftFilter.mode,
|
|
1428
|
+
minDate: draftFilter.minDate,
|
|
1429
|
+
maxDate: draftFilter.maxDate,
|
|
1430
|
+
unavailable: draftFilter.unavailable,
|
|
1431
|
+
error: resolveDateRangeFilterError(
|
|
1432
|
+
draftFilter,
|
|
1433
|
+
draftFilter.value ?? null
|
|
1434
|
+
)
|
|
1319
1435
|
},
|
|
1320
1436
|
draftFilter.id
|
|
1321
1437
|
),
|
|
1322
1438
|
formatLabel: formatLabel$5,
|
|
1323
|
-
isSelected: isSelected$
|
|
1439
|
+
isSelected: isSelected$6
|
|
1324
1440
|
};
|
|
1325
1441
|
|
|
1326
|
-
const isSelected$
|
|
1442
|
+
const isSelected$5 = (filter) => !!filter.selectedOptions && filter.selectedOptions.length > 0;
|
|
1327
1443
|
const formatLabel$4 = (filter) => {
|
|
1328
1444
|
const count = filter.selectedOptions?.length ?? 0;
|
|
1329
1445
|
if (count === 0) return filter.label;
|
|
@@ -1357,7 +1473,7 @@ const multiSelectAdapter = {
|
|
|
1357
1473
|
getValue: (filter) => filter.selectedOptions ?? [],
|
|
1358
1474
|
setValue: (filter, value) => ({ ...filter, selectedOptions: value }),
|
|
1359
1475
|
reset: (filter) => ({ ...filter, selectedOptions: [] }),
|
|
1360
|
-
isActive: isSelected$
|
|
1476
|
+
isActive: isSelected$5,
|
|
1361
1477
|
preserveState: (newFilter, existingFilter) => ({
|
|
1362
1478
|
...newFilter,
|
|
1363
1479
|
selectedOptions: existingFilter.selectedOptions
|
|
@@ -1383,7 +1499,7 @@ const multiSelectAdapter = {
|
|
|
1383
1499
|
...triggerProps,
|
|
1384
1500
|
filterId: filter.id,
|
|
1385
1501
|
label: formatLabel$4(filter),
|
|
1386
|
-
isSelected: isSelected$
|
|
1502
|
+
isSelected: isSelected$5(filter)
|
|
1387
1503
|
}
|
|
1388
1504
|
)
|
|
1389
1505
|
}
|
|
@@ -1426,7 +1542,7 @@ const multiSelectAdapter = {
|
|
|
1426
1542
|
);
|
|
1427
1543
|
},
|
|
1428
1544
|
formatLabel: formatLabel$4,
|
|
1429
|
-
isSelected: isSelected$
|
|
1545
|
+
isSelected: isSelected$5
|
|
1430
1546
|
};
|
|
1431
1547
|
|
|
1432
1548
|
const clampToBounds = (n, minValue, maxValue) => {
|
|
@@ -1537,12 +1653,12 @@ const formatLabel$3 = (filter) => {
|
|
|
1537
1653
|
}
|
|
1538
1654
|
return `${filter.label}: ${maxSymbol} ${formatBound(filter.value.max, filter)}`;
|
|
1539
1655
|
};
|
|
1540
|
-
const isSelected$
|
|
1656
|
+
const isSelected$4 = (filter) => filter.value !== null && filter.value !== void 0 && (filter.value.min !== void 0 || filter.value.max !== void 0);
|
|
1541
1657
|
const numericRangeAdapter = {
|
|
1542
1658
|
getValue: (filter) => filter.value ?? null,
|
|
1543
1659
|
setValue: (filter, value) => ({ ...filter, value }),
|
|
1544
1660
|
reset: (filter) => ({ ...filter, value: null }),
|
|
1545
|
-
isActive: isSelected$
|
|
1661
|
+
isActive: isSelected$4,
|
|
1546
1662
|
preserveState: (newFilter, existingFilter) => ({
|
|
1547
1663
|
...newFilter,
|
|
1548
1664
|
value: existingFilter.value
|
|
@@ -1556,7 +1672,7 @@ const numericRangeAdapter = {
|
|
|
1556
1672
|
{
|
|
1557
1673
|
filter,
|
|
1558
1674
|
label: formatLabel$3(filter),
|
|
1559
|
-
isSelected: isSelected$
|
|
1675
|
+
isSelected: isSelected$4(filter),
|
|
1560
1676
|
committedValue: filter.value ?? null,
|
|
1561
1677
|
initialValue: null,
|
|
1562
1678
|
keepOpenOnUncontrolledChange: true,
|
|
@@ -1583,6 +1699,167 @@ const numericRangeAdapter = {
|
|
|
1583
1699
|
draftFilter.id
|
|
1584
1700
|
),
|
|
1585
1701
|
formatLabel: formatLabel$3,
|
|
1702
|
+
isSelected: isSelected$4
|
|
1703
|
+
};
|
|
1704
|
+
|
|
1705
|
+
const FilterSearchField = ({
|
|
1706
|
+
filter,
|
|
1707
|
+
value,
|
|
1708
|
+
onChange
|
|
1709
|
+
}) => {
|
|
1710
|
+
const { toolbarRef } = useContext(ToolbarContext);
|
|
1711
|
+
const size = useToolbarSize();
|
|
1712
|
+
const hasValue = !!value;
|
|
1713
|
+
const inputRef = useRef(null);
|
|
1714
|
+
const clearButtonRef = useRef(null);
|
|
1715
|
+
const placeholder = filter.placeholder ?? "Search...";
|
|
1716
|
+
const focusRovingItem = (edge) => {
|
|
1717
|
+
if (!toolbarRef.current) return;
|
|
1718
|
+
const items = getToolbarElements(toolbarRef.current);
|
|
1719
|
+
const target = edge === "first" ? items[0] : items[items.length - 1];
|
|
1720
|
+
if (!target) return;
|
|
1721
|
+
updateToolbarItemsTabIndex(toolbarRef.current, target);
|
|
1722
|
+
target.focus();
|
|
1723
|
+
};
|
|
1724
|
+
const handleChange = (e) => {
|
|
1725
|
+
onChange(e.target.value);
|
|
1726
|
+
};
|
|
1727
|
+
const handleClear = () => {
|
|
1728
|
+
onChange("");
|
|
1729
|
+
inputRef.current?.focus();
|
|
1730
|
+
};
|
|
1731
|
+
const handleInputKeyDown = (e) => {
|
|
1732
|
+
const input = e.currentTarget;
|
|
1733
|
+
if (e.code === "ArrowRight") {
|
|
1734
|
+
if (!hasValue) {
|
|
1735
|
+
e.preventDefault();
|
|
1736
|
+
focusRovingItem("first");
|
|
1737
|
+
} else if (input.selectionStart === input.value.length) {
|
|
1738
|
+
e.preventDefault();
|
|
1739
|
+
clearButtonRef.current?.focus();
|
|
1740
|
+
}
|
|
1741
|
+
} else if (e.code === "ArrowLeft") {
|
|
1742
|
+
if (input.selectionStart === 0) {
|
|
1743
|
+
e.preventDefault();
|
|
1744
|
+
focusRovingItem("last");
|
|
1745
|
+
}
|
|
1746
|
+
}
|
|
1747
|
+
};
|
|
1748
|
+
const handleClearKeyDown = (e) => {
|
|
1749
|
+
if (e.code === "Enter" || e.code === "Space") {
|
|
1750
|
+
e.preventDefault();
|
|
1751
|
+
handleClear();
|
|
1752
|
+
} else if (e.code === "ArrowLeft") {
|
|
1753
|
+
e.preventDefault();
|
|
1754
|
+
inputRef.current?.focus();
|
|
1755
|
+
} else if (e.code === "ArrowRight") {
|
|
1756
|
+
e.preventDefault();
|
|
1757
|
+
focusRovingItem("first");
|
|
1758
|
+
}
|
|
1759
|
+
};
|
|
1760
|
+
const trackingId = useTrackingId({
|
|
1761
|
+
name: "FilterSearchField",
|
|
1762
|
+
data: { value }
|
|
1763
|
+
});
|
|
1764
|
+
return /* @__PURE__ */ jsx(
|
|
1765
|
+
"div",
|
|
1766
|
+
{
|
|
1767
|
+
className: cx(
|
|
1768
|
+
textFieldStyles["textfield"],
|
|
1769
|
+
styles$1["searchfield"]
|
|
1770
|
+
),
|
|
1771
|
+
"data-anv": "filter-search-field",
|
|
1772
|
+
children: /* @__PURE__ */ jsxs(
|
|
1773
|
+
"div",
|
|
1774
|
+
{
|
|
1775
|
+
className: cx(
|
|
1776
|
+
textFieldStyles["input-wrapper"],
|
|
1777
|
+
styles$1["input-wrapper"],
|
|
1778
|
+
{
|
|
1779
|
+
[textFieldStyles["xsmall"]]: size === "xsmall",
|
|
1780
|
+
[textFieldStyles["small"]]: size === "small",
|
|
1781
|
+
[textFieldStyles["large"]]: size === "large"
|
|
1782
|
+
}
|
|
1783
|
+
),
|
|
1784
|
+
role: "presentation",
|
|
1785
|
+
onClick: () => inputRef.current?.focus(),
|
|
1786
|
+
children: [
|
|
1787
|
+
/* @__PURE__ */ jsx("div", { "aria-hidden": true, className: textFieldStyles["prefix"], children: /* @__PURE__ */ jsx(Icon, { svg: SvgSearch }) }),
|
|
1788
|
+
/* @__PURE__ */ jsx(
|
|
1789
|
+
"input",
|
|
1790
|
+
{
|
|
1791
|
+
className: cx(textFieldStyles["input"], styles$1["input"], {
|
|
1792
|
+
[styles$1["input--has-value"]]: hasValue
|
|
1793
|
+
}),
|
|
1794
|
+
ref: inputRef,
|
|
1795
|
+
onChange: handleChange,
|
|
1796
|
+
onKeyDown: handleInputKeyDown,
|
|
1797
|
+
placeholder,
|
|
1798
|
+
value,
|
|
1799
|
+
type: "search",
|
|
1800
|
+
autoComplete: "off",
|
|
1801
|
+
"aria-label": filter.label,
|
|
1802
|
+
"data-tracking-id": trackingId
|
|
1803
|
+
}
|
|
1804
|
+
),
|
|
1805
|
+
/* @__PURE__ */ jsx(
|
|
1806
|
+
Icon,
|
|
1807
|
+
{
|
|
1808
|
+
ref: clearButtonRef,
|
|
1809
|
+
"aria-label": "Clear search",
|
|
1810
|
+
svg: SvgClose,
|
|
1811
|
+
role: "button",
|
|
1812
|
+
onClick: handleClear,
|
|
1813
|
+
onKeyDown: handleClearKeyDown,
|
|
1814
|
+
tabIndex: -1,
|
|
1815
|
+
className: styles$1["clear"],
|
|
1816
|
+
style: {
|
|
1817
|
+
visibility: hasValue ? "visible" : "hidden"
|
|
1818
|
+
}
|
|
1819
|
+
}
|
|
1820
|
+
)
|
|
1821
|
+
]
|
|
1822
|
+
}
|
|
1823
|
+
)
|
|
1824
|
+
}
|
|
1825
|
+
);
|
|
1826
|
+
};
|
|
1827
|
+
FilterSearchField.displayName = "FilterSearchField";
|
|
1828
|
+
|
|
1829
|
+
const isSelected$3 = (filter) => filter.value !== void 0 && filter.value !== "";
|
|
1830
|
+
const searchAdapter = {
|
|
1831
|
+
getValue: (filter) => filter.value ?? "",
|
|
1832
|
+
setValue: (filter, value) => ({ ...filter, value: value || void 0 }),
|
|
1833
|
+
reset: (filter) => ({ ...filter, value: void 0 }),
|
|
1834
|
+
isActive: isSelected$3,
|
|
1835
|
+
preserveState: (newFilter, existingFilter) => ({
|
|
1836
|
+
...newFilter,
|
|
1837
|
+
value: existingFilter.value
|
|
1838
|
+
}),
|
|
1839
|
+
cloneWithItemRefs: (filter) => ({ ...filter }),
|
|
1840
|
+
// Always visible inline — no popover/Apply affordance to gate behind, so
|
|
1841
|
+
// (like the boolean adapter) this commits on every keystroke regardless
|
|
1842
|
+
// of controlledFiltering.
|
|
1843
|
+
renderBarControl: ({ filter, updateFilter }) => /* @__PURE__ */ jsx(
|
|
1844
|
+
FilterSearchField,
|
|
1845
|
+
{
|
|
1846
|
+
filter,
|
|
1847
|
+
value: filter.value ?? "",
|
|
1848
|
+
onChange: (value) => updateFilter(filter.id, value, true)
|
|
1849
|
+
},
|
|
1850
|
+
filter.id
|
|
1851
|
+
),
|
|
1852
|
+
renderDrawer: ({ draftFilter, onDraftChange }) => /* @__PURE__ */ jsx(
|
|
1853
|
+
TextField,
|
|
1854
|
+
{
|
|
1855
|
+
label: draftFilter.label,
|
|
1856
|
+
placeholder: draftFilter.placeholder,
|
|
1857
|
+
value: draftFilter.value ?? "",
|
|
1858
|
+
onChange: (e) => onDraftChange(draftFilter.id, e.target.value || void 0)
|
|
1859
|
+
},
|
|
1860
|
+
draftFilter.id
|
|
1861
|
+
),
|
|
1862
|
+
formatLabel: (filter) => filter.label,
|
|
1586
1863
|
isSelected: isSelected$3
|
|
1587
1864
|
};
|
|
1588
1865
|
|
|
@@ -1842,7 +2119,8 @@ const filterAdapters = {
|
|
|
1842
2119
|
tree: treeAdapter,
|
|
1843
2120
|
asyncTree: asyncTreeAdapter,
|
|
1844
2121
|
numericRange: numericRangeAdapter,
|
|
1845
|
-
textInput: textInputAdapter
|
|
2122
|
+
textInput: textInputAdapter,
|
|
2123
|
+
search: searchAdapter
|
|
1846
2124
|
};
|
|
1847
2125
|
const unknownAdapter = {
|
|
1848
2126
|
getValue: () => void 0,
|
|
@@ -1876,4 +2154,4 @@ const cloneFiltersWithItemRefs = (filters) => filters.map(
|
|
|
1876
2154
|
);
|
|
1877
2155
|
|
|
1878
2156
|
export { DateListDialog as D, FilterGroupContext as F, checkActiveFilters as a, getAdapter as b, cloneFiltersWithItemRefs as c, FilterItemWrapper as d, FilterTriggerButton as e, getActiveFilters as g, hasFilterSelectionChanged as h, preserveFilterState as p, resetFilters as r, styles as s, updateSingleFilter as u };
|
|
1879
|
-
//# sourceMappingURL=filter-state-
|
|
2157
|
+
//# sourceMappingURL=filter-state-CSA3wjAR.js.map
|