@servicetitan/anvil2 2.7.0 → 2.8.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 +60 -0
- package/dist/{floating-ui.react-C_s3_nEb.js → AiMark-Cwc9KoyE.js} +767 -5
- package/dist/AiMark-Cwc9KoyE.js.map +1 -0
- package/dist/AiMark.css +260 -0
- package/dist/AiMark.d.ts +2 -0
- package/dist/AiMark.js +2 -0
- package/dist/AiMark.js.map +1 -0
- package/dist/{Alert-C_o2f78C.js → Alert-5qhkSUN3.js} +27 -13
- package/dist/Alert-5qhkSUN3.js.map +1 -0
- package/dist/Alert.css +23 -15
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-CyrTvgP4.js → Announcement-fQmFNysn.js} +2 -2
- package/dist/{Announcement-CyrTvgP4.js.map → Announcement-fQmFNysn.js.map} +1 -1
- package/dist/Announcement.js +1 -1
- package/dist/{Avatar-CCnbKkCm.js → Avatar-BckUfs1N.js} +48 -46
- package/dist/{Avatar-CCnbKkCm.js.map → Avatar-BckUfs1N.js.map} +1 -1
- package/dist/Avatar-ChybzixS.js +35 -0
- package/dist/Avatar-ChybzixS.js.map +1 -0
- package/dist/Avatar.js +2 -2
- package/dist/Breadcrumbs-BXo2FO2n.js +107 -0
- package/dist/Breadcrumbs-BXo2FO2n.js.map +1 -0
- package/dist/Breadcrumbs.js +1 -1
- package/dist/Button-a_D7tUgM.js +4517 -0
- package/dist/Button-a_D7tUgM.js.map +1 -0
- package/dist/Button.js +1 -1
- package/dist/{ButtonToggle-DaYJWso_.js → ButtonToggle-CmY77gUp.js} +2 -2
- package/dist/{ButtonToggle-DaYJWso_.js.map → ButtonToggle-CmY77gUp.js.map} +1 -1
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-SGlTt-bs.js → Calendar-Bd_WELZC.js} +130 -119
- package/dist/Calendar-Bd_WELZC.js.map +1 -0
- package/dist/{Calendar-C1U2npPP.js → Calendar-d2owsYe9.js} +2 -2
- package/dist/{Calendar-C1U2npPP.js.map → Calendar-d2owsYe9.js.map} +1 -1
- package/dist/Calendar.css +51 -51
- package/dist/Calendar.js +2 -2
- package/dist/Card-wz71dEVA.js.map +1 -1
- package/dist/{Checkbox-CtKUNeyu.js → Checkbox-BlFc6ZWy.js} +25 -14
- package/dist/Checkbox-BlFc6ZWy.js.map +1 -0
- package/dist/Checkbox-DbaZrUE2.js +52 -0
- package/dist/Checkbox-DbaZrUE2.js.map +1 -0
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-DjTAR0va.js → Chip-BnofwIUN.js} +43 -13
- package/dist/Chip-BnofwIUN.js.map +1 -0
- package/dist/Chip.css +44 -28
- package/dist/Chip.js +1 -1
- package/dist/{Combobox-By8-34bw.js → Combobox-BOxAzG9v.js} +186 -183
- package/dist/{Combobox-By8-34bw.js.map → Combobox-BOxAzG9v.js.map} +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-BYOS6icI.js → DataTable-DK9xRjnq.js} +762 -651
- package/dist/DataTable-DK9xRjnq.js.map +1 -0
- package/dist/DataTable.css +84 -74
- package/dist/{DateFieldRange-C8Uzrboc.js → DateFieldRange-5Jrz6dLl.js} +20 -6
- package/dist/DateFieldRange-5Jrz6dLl.js.map +1 -0
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-DrhLIjlK.js → DateFieldSingle-DWFr6Ew4.js} +8 -8
- package/dist/{DateFieldSingle-DrhLIjlK.js.map → DateFieldSingle-DWFr6Ew4.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-DbivK4Hm.js → DateFieldYearless-UU22A5-E.js} +22 -6
- package/dist/DateFieldYearless-UU22A5-E.js.map +1 -0
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-BEqJe4Uf.js → DateFieldYearlessRange-BoPLxm6t.js} +3 -3
- package/dist/DateFieldYearlessRange-BoPLxm6t.js.map +1 -0
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-BR32AA32.js → DaysOfTheWeek-4cfTmjzm.js} +4 -4
- package/dist/{DaysOfTheWeek-BR32AA32.js.map → DaysOfTheWeek-4cfTmjzm.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Details-Dxq_v3Qg.js → Details-CZOIpNP_.js} +8 -8
- package/dist/Details-CZOIpNP_.js.map +1 -0
- package/dist/Details.js +1 -1
- package/dist/{Dialog-CGhwkwvq.js → Dialog-Dn836WQM.js} +73 -73
- package/dist/Dialog-Dn836WQM.js.map +1 -0
- package/dist/Dialog.js +1 -1
- package/dist/{DialogCancelButton-DQDMzGeT.js → DialogCancelButton-B-jfihJr.js} +2 -2
- package/dist/{DialogCancelButton-DQDMzGeT.js.map → DialogCancelButton-B-jfihJr.js.map} +1 -1
- package/dist/{Drawer-DA4iAgt-.js → Drawer-CdDWt_Ba.js} +86 -86
- package/dist/Drawer-CdDWt_Ba.js.map +1 -0
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{EditCard-CLN0GBN_.js → EditCard-CZibhEfS.js} +3 -3
- package/dist/{EditCard-CLN0GBN_.js.map → EditCard-CZibhEfS.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/FieldLabel-Dr41PRxH.js +180 -0
- package/dist/FieldLabel-Dr41PRxH.js.map +1 -0
- package/dist/FieldLabel.css +33 -73
- package/dist/FieldLabel.js +1 -1
- package/dist/Grid-DeYIx5k4.js +149 -0
- package/dist/Grid-DeYIx5k4.js.map +1 -0
- package/dist/Grid.js +1 -1
- package/dist/{InputMask-HjaNCb73.js → InputMask-CcXqzqdx.js} +3 -3
- package/dist/{InputMask-HjaNCb73.js.map → InputMask-CcXqzqdx.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{Layout-VfhlilMG.js → Layout-CISAxILX.js} +34 -33
- package/dist/Layout-CISAxILX.js.map +1 -0
- package/dist/Layout.js +1 -1
- package/dist/List--KhCpjZn.js +103 -0
- package/dist/List--KhCpjZn.js.map +1 -0
- package/dist/List.js +1 -1
- package/dist/{ListView-mujFK6mQ.js → ListView-D9cZUVer.js} +6 -6
- package/dist/ListView-D9cZUVer.js.map +1 -0
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-BtAgBDRS.js → Listbox-CgDwzRfz.js} +6 -5
- package/dist/Listbox-CgDwzRfz.js.map +1 -0
- package/dist/Listbox.js +1 -1
- package/dist/{Menu-BXsmCP20.js → Menu-CPbuIsqC.js} +367 -367
- package/dist/Menu-CPbuIsqC.js.map +1 -0
- package/dist/Menu.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-DGpGgu8q.js → MultiSelectFieldSync-Ei7DXzvs.js} +31 -18
- package/dist/MultiSelectFieldSync-Ei7DXzvs.js.map +1 -0
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-DiLddJDw.js → MultiSelectMenuSync-B_mXpTEe.js} +29 -9
- package/dist/MultiSelectMenuSync-B_mXpTEe.js.map +1 -0
- package/dist/{NumberField-svhZp1kB.js → NumberField-C5t47Obp.js} +16 -5
- package/dist/NumberField-C5t47Obp.js.map +1 -0
- package/dist/NumberField.js +1 -1
- package/dist/Overflow.css +27 -26
- package/dist/Overflow.js +11 -11
- package/dist/{Page-Be029Dij.js → Page-2hbQxUj6.js} +223 -207
- package/dist/Page-2hbQxUj6.js.map +1 -0
- package/dist/Page.css +78 -76
- package/dist/Page.js +1 -1
- package/dist/{Pagination-BAwqfl_2.js → Pagination-CjGmJ_rU.js} +20 -18
- package/dist/Pagination-CjGmJ_rU.js.map +1 -0
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-D0qSKZ1J.js → Popover-CpU9VAcb.js} +356 -358
- package/dist/Popover-CpU9VAcb.js.map +1 -0
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-JpRDW5vG.js → ProgressBar-FMuK8viJ.js} +2 -2
- package/dist/{ProgressBar-JpRDW5vG.js.map → ProgressBar-FMuK8viJ.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-BQg7exDG.js → Radio-CZZd8phn.js} +25 -14
- package/dist/Radio-CZZd8phn.js.map +1 -0
- package/dist/Radio-DmtVWAmN.js +60 -0
- package/dist/Radio-DmtVWAmN.js.map +1 -0
- package/dist/Radio.js +1 -1
- package/dist/{SegmentedControl-7fDLhgvh.js → SegmentedControl-B9NWUF7s.js} +81 -77
- package/dist/{SegmentedControl-7fDLhgvh.js.map → SegmentedControl-B9NWUF7s.js.map} +1 -1
- package/dist/SegmentedControl.js +1 -1
- package/dist/SelectCard-8OmIDl1m.js +352 -0
- package/dist/SelectCard-8OmIDl1m.js.map +1 -0
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-Dr8HeW3N.js → SelectFieldLabel-C8PrXxDU.js} +5 -4
- package/dist/SelectFieldLabel-C8PrXxDU.js.map +1 -0
- package/dist/{SelectFieldSync-CJ2Ie_v1.js → SelectFieldSync-DGK8F2G9.js} +13 -13
- package/dist/SelectFieldSync-DGK8F2G9.js.map +1 -0
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-CJA_coqD.js → SelectMenuSync-CuZp9mnt.js} +29 -9
- package/dist/SelectMenuSync-CuZp9mnt.js.map +1 -0
- package/dist/{SelectOptions-Bf4xsFek.js → SelectOptions-CmElsiTd.js} +2 -2
- package/dist/{SelectOptions-Bf4xsFek.js.map → SelectOptions-CmElsiTd.js.map} +1 -1
- package/dist/{SelectTrigger-ObsnAKNp.js → SelectTrigger-KF8w6Ynk.js} +8 -6
- package/dist/SelectTrigger-KF8w6Ynk.js.map +1 -0
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-DKfOL2RJ.js → SelectTriggerBase-Bxmv6oXk.js} +4 -4
- package/dist/{SelectTriggerBase-DKfOL2RJ.js.map → SelectTriggerBase-Bxmv6oXk.js.map} +1 -1
- package/dist/{SideNav-KksbSQn7.js → SideNav-CrxYExjh.js} +137 -135
- package/dist/{SideNav-KksbSQn7.js.map → SideNav-CrxYExjh.js.map} +1 -1
- package/dist/SideNav.css +72 -55
- package/dist/SideNav.js +1 -1
- package/dist/Skeleton.css +18 -12
- package/dist/Skeleton.js +24 -11
- package/dist/Skeleton.js.map +1 -1
- package/dist/{Stepper-Dt8_ImvJ.js → Stepper-_27Lmm2K.js} +158 -158
- package/dist/{Stepper-Dt8_ImvJ.js.map → Stepper-_27Lmm2K.js.map} +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-DpPHr3G3.js → Switch-DPGz7wC_.js} +14 -2
- package/dist/Switch-DPGz7wC_.js.map +1 -0
- package/dist/Switch.js +1 -1
- package/dist/{Tab-DO7LaUbw.js → Tab-BZpTCG0i.js} +227 -223
- package/dist/Tab-BZpTCG0i.js.map +1 -0
- package/dist/Tab.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-BJo4oMI2.js → Text-MVxRo6yx.js} +30 -12
- package/dist/Text-MVxRo6yx.js.map +1 -0
- package/dist/Text.css +37 -20
- package/dist/Text.js +1 -1
- package/dist/{TextField-DeHpgPag.js → TextField-BpSxZa0z.js} +21 -5
- package/dist/TextField-BpSxZa0z.js.map +1 -0
- package/dist/{TextField-BW8sJAls.js → TextField-D93iv_pk.js} +2 -2
- package/dist/{TextField-BW8sJAls.js.map → TextField-D93iv_pk.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-DyqdMTvQ.js → Textarea-1u2fSMTh.js} +21 -5
- package/dist/Textarea-1u2fSMTh.js.map +1 -0
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-Dc0Y1JD-.js → TimeField-B4gLlBQJ.js} +6 -5
- package/dist/{TimeField-Dc0Y1JD-.js.map → TimeField-B4gLlBQJ.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-b0-Ub3yt.js → Toaster-CSJfSOHx.js} +5 -5
- package/dist/Toaster-CSJfSOHx.js.map +1 -0
- package/dist/{Toaster-DikGo_hR.js → Toaster-DbWYnF_t.js} +2 -2
- package/dist/{Toaster-DikGo_hR.js.map → Toaster-DbWYnF_t.js.map} +1 -1
- package/dist/{Toolbar-DAuz4Gs2.js → Toolbar-CWRk523l.js} +150 -149
- package/dist/{Toolbar-DAuz4Gs2.js.map → Toolbar-CWRk523l.js.map} +1 -1
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-Bupqao9B.js → Tooltip-C1PBRnJv.js} +225 -228
- package/dist/Tooltip-C1PBRnJv.js.map +1 -0
- package/dist/Tooltip.js +1 -1
- package/dist/{YearlessDateInputWithPicker-DFi08TLG.js → YearlessDateInputWithPicker-BSl5z2zo.js} +2 -3
- package/dist/{YearlessDateInputWithPicker-DFi08TLG.js.map → YearlessDateInputWithPicker-BSl5z2zo.js.map} +1 -1
- package/dist/assets/icons/st/ai_mark_gradient.svg +1 -1
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldInput.d.ts +3 -2
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldTrigger.d.ts +3 -2
- package/dist/beta/components/MultiSelectField/internal/types.d.ts +4 -3
- package/dist/beta/components/MultiSelectField/types.d.ts +28 -7
- package/dist/beta/components/MultiSelectMenu/types.d.ts +15 -0
- package/dist/beta/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
- package/dist/beta/components/SelectField/internal/SelectFieldLabel.d.ts +4 -4
- package/dist/beta/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
- package/dist/beta/components/SelectField/types.d.ts +5 -5
- package/dist/beta/components/SelectMenu/internal/useMenuInteraction.d.ts +3 -1
- package/dist/beta/components/SelectMenu/types.d.ts +15 -0
- package/dist/beta/components/Table/DataTable/DataTable.d.ts +2 -15
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectAsyncCell.d.ts +35 -0
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectCell.d.ts +4 -3
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableSelectAsyncCell.d.ts +7 -0
- package/dist/beta/components/Table/DataTable/internal/editable-cells/useEditableMenuCell.d.ts +34 -0
- package/dist/beta/components/Table/DataTable/internal/usePageDataCache.d.ts +29 -0
- package/dist/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +2 -4
- package/dist/beta/components/Table/DataTable/types.d.ts +48 -1
- package/dist/beta/components/Table/createColumnHelper.d.ts +23 -68
- package/dist/beta/components/Table/types.d.ts +218 -42
- package/dist/beta/components/Toolbar/Toolbar.d.ts +175 -44
- package/dist/beta/components/Toolbar/ToolbarSelect.d.ts +5 -3
- package/dist/beta.js +9 -9
- package/dist/components/AiMark/AiMark.d.ts +87 -0
- package/dist/components/AiMark/index.d.ts +1 -0
- package/dist/components/AiMark/internal/AiMarkIconAnimated.d.ts +30 -0
- package/dist/components/AiMark/internal/AiMarkInteractive.d.ts +10 -0
- package/dist/components/AiMark/stories/aiMarkStoryArgTypes.d.ts +16 -0
- package/dist/components/Alert/Alert.d.ts +12 -0
- package/dist/components/Avatar/Avatar.d.ts +14 -0
- package/dist/components/Button/Button.d.ts +14 -6
- package/dist/components/Button/internal/buttonAiMarkUtils.d.ts +18 -0
- package/dist/components/Button/internal/index.d.ts +1 -0
- package/dist/components/Calendar/Calendar.d.ts +84 -26
- package/dist/components/Card/Card.d.ts +6 -1
- package/dist/components/Checkbox/Checkbox.d.ts +2 -0
- package/dist/components/Checkbox/CheckboxGroup.d.ts +27 -6
- package/dist/components/Chip/Chip.d.ts +10 -1
- package/dist/components/Chip/internal/Chip.d.ts +4 -0
- package/dist/components/Combobox/Combobox.d.ts +172 -1
- package/dist/components/DateFieldRange/internal/MaskedDateRangeInput.d.ts +1 -1
- package/dist/components/DateFieldRange/internal/useDateFieldRangeConversion.d.ts +1 -1
- package/dist/components/DateFieldSingle/internal/MaskedDateInput.d.ts +1 -1
- package/dist/components/DateFieldYearless/DateFieldYearless.d.ts +8 -1
- package/dist/components/DateFieldYearless/internal/YearlessDateInput.d.ts +1 -1
- package/dist/components/DateFieldYearless/internal/YearlessDateInputWithPicker.d.ts +1 -1
- package/dist/components/DateFieldYearlessRange/DateFieldYearlessRange.d.ts +7 -0
- package/dist/components/Dialog/Dialog.d.ts +96 -28
- package/dist/components/DrillDown/DrillDown.d.ts +7 -1
- package/dist/components/FieldLabel/FieldLabel.d.ts +2 -1
- package/dist/components/FieldLabel/internal/FieldLabelButton.d.ts +3 -2
- package/dist/components/Layout/Layout.d.ts +52 -44
- package/dist/components/ListView/ListView.d.ts +5 -5
- package/dist/components/Listbox/Listbox.d.ts +5 -23
- package/dist/components/Menu/Menu.d.ts +1 -4
- package/dist/components/NumberField/NumberField.d.ts +29 -2
- package/dist/components/Radio/Radio.d.ts +2 -0
- package/dist/components/Radio/RadioGroup.d.ts +27 -6
- package/dist/components/SelectCard/SelectCard.d.ts +1 -1
- package/dist/components/SelectCard/SelectCardGroup.d.ts +18 -1
- package/dist/components/SelectCard/internal/SelectCardContext.d.ts +11 -0
- package/dist/components/SelectCard/internal/SelectCardProvider.d.ts +11 -1
- package/dist/components/Skeleton/SkeletonCircle.d.ts +8 -0
- package/dist/components/Skeleton/SkeletonPill.d.ts +8 -0
- package/dist/components/Skeleton/SkeletonRectangle.d.ts +8 -0
- package/dist/components/Skeleton/SkeletonText.d.ts +6 -1
- package/dist/components/Skeleton/index.d.ts +3 -0
- package/dist/components/Switch/Switch.d.ts +11 -1
- package/dist/components/Text/types.d.ts +9 -0
- package/dist/components/TextField/internal/TextField.d.ts +11 -0
- package/dist/components/Textarea/Textarea.d.ts +9 -2
- package/dist/components/Toast/internal/Toast.d.ts +5 -0
- package/dist/components/Toast/toast.d.ts +1 -1
- package/dist/components/Toolbar/Toolbar.d.ts +8 -4
- package/dist/components/Toolbar/ToolbarSelect.d.ts +5 -3
- package/dist/components/index.d.ts +1 -0
- package/dist/{floating-ui.react-dom-imrk9N49.js → floating-ui.react-dom-CHrYz13o.js} +17 -2
- package/dist/floating-ui.react-dom-CHrYz13o.js.map +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/usePrefersReducedMotion/index.d.ts +1 -0
- package/dist/hooks/usePrefersReducedMotion/usePrefersReducedMotion.d.ts +15 -0
- package/dist/index.js +135 -133
- package/dist/index.js.map +1 -1
- package/dist/internal/components/InlineMarkdown/InlineMarkdown.d.ts +23 -0
- package/dist/internal/components/InlineMarkdown/index.d.ts +1 -0
- package/dist/internal/components/Label/Label.d.ts +1 -1
- package/dist/internal/components/Popover/Popover.d.ts +3 -1
- package/dist/internal/components/index.d.ts +2 -1
- package/dist/internal/functions/index.d.ts +2 -0
- package/dist/internal/functions/inlineMarkdown.d.ts +20 -0
- package/dist/internal/functions/stripInlineMarkdown.d.ts +8 -0
- package/dist/internal/types/props.d.ts +2 -1
- package/dist/internal/types/selectFieldInternalTypes.d.ts +2 -2
- package/dist/internal/utils/index.d.ts +1 -0
- package/dist/internal/utils/inlineMarkdownRegex.d.ts +5 -0
- package/dist/{proxy-BbFHSE6L.js → proxy-DEehATlA.js} +8 -2
- package/dist/{proxy-BbFHSE6L.js.map → proxy-DEehATlA.js.map} +1 -1
- package/dist/stripInlineMarkdown-DyqLAQnf.js +25 -0
- package/dist/stripInlineMarkdown-DyqLAQnf.js.map +1 -0
- package/dist/{syncFilterUtils-vt8ldsES.js → syncFilterUtils-CsbCnI1-.js} +194 -194
- package/dist/{syncFilterUtils-vt8ldsES.js.map → syncFilterUtils-CsbCnI1-.js.map} +1 -1
- package/dist/types/ai-marks.d.ts +72 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/{use-reduced-motion-DSpxmqyT.js → use-reduced-motion-CqjZZ5QB.js} +2 -2
- package/dist/{use-reduced-motion-DSpxmqyT.js.map → use-reduced-motion-CqjZZ5QB.js.map} +1 -1
- package/dist/{useDrilldown-wwXRpNgb.js → useDrilldown-C7eMBl68.js} +43 -41
- package/dist/{useDrilldown-wwXRpNgb.js.map → useDrilldown-C7eMBl68.js.map} +1 -1
- package/dist/{useInitialFocus-CdoVwSbr.js → useInitialFocus-DbaB-x5T.js} +2 -3
- package/dist/{useInitialFocus-CdoVwSbr.js.map → useInitialFocus-DbaB-x5T.js.map} +1 -1
- package/dist/{useMenuInteraction-zR_78KQC.js → useMenuInteraction-BwZ2ORo9.js} +8 -3
- package/dist/useMenuInteraction-BwZ2ORo9.js.map +1 -0
- package/dist/{index.esm-BZV0wNKZ.js → usePopoverTransitionStates-B1opfxxn.js} +88 -2
- package/dist/usePopoverTransitionStates-B1opfxxn.js.map +1 -0
- package/dist/usePrefersReducedMotion-DR9B_D6w.js +37 -0
- package/dist/usePrefersReducedMotion-DR9B_D6w.js.map +1 -0
- package/dist/usePrefersReducedMotion.d.ts +2 -0
- package/dist/usePrefersReducedMotion.js +2 -0
- package/dist/usePrefersReducedMotion.js.map +1 -0
- package/dist/{useToggleSelection-BdXW3Zg3.js → useToggleSelection-BM8asdFj.js} +2 -2
- package/dist/{useToggleSelection-BdXW3Zg3.js.map → useToggleSelection-BM8asdFj.js.map} +1 -1
- package/package.json +4 -2
- package/dist/Alert-C_o2f78C.js.map +0 -1
- package/dist/Avatar--CnTAnfD.js +0 -35
- package/dist/Avatar--CnTAnfD.js.map +0 -1
- package/dist/Breadcrumbs-3Y7jnj-F.js +0 -105
- package/dist/Breadcrumbs-3Y7jnj-F.js.map +0 -1
- package/dist/Button-CVsGhVJz.js +0 -113
- package/dist/Button-CVsGhVJz.js.map +0 -1
- package/dist/Calendar-SGlTt-bs.js.map +0 -1
- package/dist/Checkbox-CjEKa5Iv.js +0 -50
- package/dist/Checkbox-CjEKa5Iv.js.map +0 -1
- package/dist/Checkbox-CtKUNeyu.js.map +0 -1
- package/dist/Chip-DjTAR0va.js.map +0 -1
- package/dist/DataTable-BYOS6icI.js.map +0 -1
- package/dist/DateFieldRange-C8Uzrboc.js.map +0 -1
- package/dist/DateFieldYearless-DbivK4Hm.js.map +0 -1
- package/dist/DateFieldYearlessRange-BEqJe4Uf.js.map +0 -1
- package/dist/Details-Dxq_v3Qg.js.map +0 -1
- package/dist/Dialog-CGhwkwvq.js.map +0 -1
- package/dist/Drawer-DA4iAgt-.js.map +0 -1
- package/dist/FieldLabel-DbMosKtd.js +0 -125
- package/dist/FieldLabel-DbMosKtd.js.map +0 -1
- package/dist/Grid-ONcUpb__.js +0 -147
- package/dist/Grid-ONcUpb__.js.map +0 -1
- package/dist/Layout-VfhlilMG.js.map +0 -1
- package/dist/List-CJZjElAQ.js +0 -101
- package/dist/List-CJZjElAQ.js.map +0 -1
- package/dist/ListView-mujFK6mQ.js.map +0 -1
- package/dist/Listbox-BtAgBDRS.js.map +0 -1
- package/dist/Menu-BXsmCP20.js.map +0 -1
- package/dist/MultiSelectFieldSync-DGpGgu8q.js.map +0 -1
- package/dist/MultiSelectMenuSync-DiLddJDw.js.map +0 -1
- package/dist/NumberField-svhZp1kB.js.map +0 -1
- package/dist/Page-Be029Dij.js.map +0 -1
- package/dist/Pagination-BAwqfl_2.js.map +0 -1
- package/dist/Popover-D0qSKZ1J.js.map +0 -1
- package/dist/Popover-DxZF6lbJ.js +0 -535
- package/dist/Popover-DxZF6lbJ.js.map +0 -1
- package/dist/Popover2.css +0 -68
- package/dist/Radio-BOq9UkpC.js +0 -60
- package/dist/Radio-BOq9UkpC.js.map +0 -1
- package/dist/Radio-BQg7exDG.js.map +0 -1
- package/dist/SelectCard-cu4MBuh8.js +0 -320
- package/dist/SelectCard-cu4MBuh8.js.map +0 -1
- package/dist/SelectFieldLabel-Dr8HeW3N.js.map +0 -1
- package/dist/SelectFieldSync-CJ2Ie_v1.js.map +0 -1
- package/dist/SelectMenuSync-CJA_coqD.js.map +0 -1
- package/dist/SelectTrigger-ObsnAKNp.js.map +0 -1
- package/dist/Switch-DpPHr3G3.js.map +0 -1
- package/dist/Tab-DO7LaUbw.js.map +0 -1
- package/dist/Text-BJo4oMI2.js.map +0 -1
- package/dist/TextField-DeHpgPag.js.map +0 -1
- package/dist/Textarea-DyqdMTvQ.js.map +0 -1
- package/dist/Toaster-b0-Ub3yt.js.map +0 -1
- package/dist/Tooltip-Bupqao9B.js.map +0 -1
- package/dist/floating-ui.react-C_s3_nEb.js.map +0 -1
- package/dist/floating-ui.react-dom-imrk9N49.js.map +0 -1
- package/dist/index.esm-BZV0wNKZ.js.map +0 -1
- package/dist/safePopover-BDso-xSH.js +0 -17
- package/dist/safePopover-BDso-xSH.js.map +0 -1
- package/dist/useMenuInteraction-zR_78KQC.js.map +0 -1
- package/dist/useOpenCloseTransitionStates-CiTYrLGi.js +0 -68
- package/dist/useOpenCloseTransitionStates-CiTYrLGi.js.map +0 -1
- package/dist/usePopoverTransitionStates-CDIoNUuf.js +0 -24
- package/dist/usePopoverTransitionStates-CDIoNUuf.js.map +0 -1
|
@@ -1,30 +1,27 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import { C as Chip } from './Chip-
|
|
2
|
+
import { C as Chip } from './Chip-BnofwIUN.js';
|
|
3
3
|
import { F as Flex } from './Flex-WyyZm1bf.js';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { useRef, useState, useLayoutEffect, createContext, useContext, useCallback, forwardRef, useMemo, useImperativeHandle, useEffect, useId, Fragment as Fragment$1, useReducer } from 'react';
|
|
6
6
|
import { c as cx } from './index-De1g9FRV.js';
|
|
7
7
|
import { D as DateTime } from './luxon-wpz4A-OQ.js';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { B as Button } from './Button-CVsGhVJz.js';
|
|
8
|
+
import { C as Checkbox } from './Checkbox-DbaZrUE2.js';
|
|
9
|
+
import { B as Button } from './Button-a_D7tUgM.js';
|
|
11
10
|
import { S as SvgChevronRight } from './chevron_right-BdpsxX7x.js';
|
|
12
11
|
import { S as SvgEdit } from './edit-DQOiktcu.js';
|
|
13
12
|
import { I as Icon } from './Icon-DuIlne4x.js';
|
|
14
13
|
import { S as SrOnly } from './SrOnly-eUpYGpAT.js';
|
|
15
14
|
import { u as useNumberField } from './useNumberField-eMyk7MB8.js';
|
|
16
15
|
import { u as useMergeRefs, m as mergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import { S as SearchField } from './SearchField-im7AHGYo.js';
|
|
20
|
-
import { L as ListView } from './ListView-mujFK6mQ.js';
|
|
16
|
+
import { a as SelectMenuSync, S as SelectMenu } from './SelectMenuSync-CuZp9mnt.js';
|
|
17
|
+
import { a as MultiSelectMenuSync, M as MultiSelectMenu } from './MultiSelectMenuSync-B_mXpTEe.js';
|
|
21
18
|
import { S as SvgError } from './error-DR_wWdYY.js';
|
|
22
19
|
import { S as SvgWarning } from './warning-c4Wj1rI4.js';
|
|
23
|
-
import { T as Tooltip } from './Tooltip-
|
|
20
|
+
import { T as Tooltip } from './Tooltip-C1PBRnJv.js';
|
|
24
21
|
import { flushSync } from 'react-dom';
|
|
25
22
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DMDdfIah.js';
|
|
26
23
|
import './anvil-fonts.css';import './DataTable.css';/* empty css */
|
|
27
|
-
import { P as Pagination } from './Pagination-
|
|
24
|
+
import { P as Pagination } from './Pagination-CjGmJ_rU.js';
|
|
28
25
|
import { T as ThemeProviderContext } from './ThemeProviderContext-l52GohYT.js';
|
|
29
26
|
import { S as Spinner } from './Spinner-BqmcE2pb.js';
|
|
30
27
|
import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
|
|
@@ -406,53 +403,15 @@ function getColumnTypeDefaults(type) {
|
|
|
406
403
|
return COLUMN_TYPE_DEFAULTS[type];
|
|
407
404
|
}
|
|
408
405
|
|
|
409
|
-
function logDeprecationWarnings(id, column) {
|
|
410
|
-
const columnId = typeof id === "object" && "group" in id ? id.group : String(id);
|
|
411
|
-
if ("editMode" in column && column.editMode && !("editConfig" in column && column.editConfig)) {
|
|
412
|
-
warnOnce(
|
|
413
|
-
`[Anvil2 DataTable] Column "${columnId}" uses deprecated \`editMode\` prop. Migrate to \`editConfig: { mode: "${column.editMode}", onChange: ... }\``
|
|
414
|
-
);
|
|
415
|
-
}
|
|
416
|
-
if ("onChange" in column && column.onChange && !("editConfig" in column && column.editConfig)) {
|
|
417
|
-
warnOnce(
|
|
418
|
-
`[Anvil2 DataTable] Column "${columnId}" uses deprecated top-level \`onChange\`. Move \`onChange\` inside \`editConfig\`.`
|
|
419
|
-
);
|
|
420
|
-
}
|
|
421
|
-
if ("options" in column && column.options && !("editConfig" in column && column.editConfig)) {
|
|
422
|
-
warnOnce(
|
|
423
|
-
`[Anvil2 DataTable] Column "${columnId}" uses deprecated top-level \`options\`. Move \`options\` inside \`editConfig\`.`
|
|
424
|
-
);
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
function transformEditConfig(column) {
|
|
428
|
-
if (!("editConfig" in column) || !column.editConfig) {
|
|
429
|
-
return {};
|
|
430
|
-
}
|
|
431
|
-
const { editConfig } = column;
|
|
432
|
-
const result = {
|
|
433
|
-
editMode: editConfig.mode,
|
|
434
|
-
onChange: editConfig.onChange
|
|
435
|
-
};
|
|
436
|
-
if (editConfig.mode === "select" || editConfig.mode === "multiselect") {
|
|
437
|
-
if ("options" in editConfig) {
|
|
438
|
-
result.options = editConfig.options;
|
|
439
|
-
}
|
|
440
|
-
}
|
|
441
|
-
result.editConfig = editConfig;
|
|
442
|
-
return result;
|
|
443
|
-
}
|
|
444
406
|
function createColumnHelper$1() {
|
|
445
407
|
return function createColumn(id, column) {
|
|
446
|
-
logDeprecationWarnings(id, column);
|
|
447
|
-
const editProps = transformEditConfig(column);
|
|
448
408
|
if (typeof id === "object" && "group" in id) {
|
|
449
409
|
return {
|
|
450
410
|
id: id.group,
|
|
451
|
-
...column
|
|
452
|
-
...editProps
|
|
411
|
+
...column
|
|
453
412
|
};
|
|
454
413
|
}
|
|
455
|
-
return { id, ...column
|
|
414
|
+
return { id, ...column };
|
|
456
415
|
};
|
|
457
416
|
}
|
|
458
417
|
|
|
@@ -3597,6 +3556,49 @@ function groupBy(rows, columnId) {
|
|
|
3597
3556
|
}, groupMap);
|
|
3598
3557
|
}
|
|
3599
3558
|
|
|
3559
|
+
function getPaginationRowModel(opts) {
|
|
3560
|
+
return table => memo(() => [table.getState().pagination, table.getPrePaginationRowModel(), table.options.paginateExpandedRows ? undefined : table.getState().expanded], (pagination, rowModel) => {
|
|
3561
|
+
if (!rowModel.rows.length) {
|
|
3562
|
+
return rowModel;
|
|
3563
|
+
}
|
|
3564
|
+
const {
|
|
3565
|
+
pageSize,
|
|
3566
|
+
pageIndex
|
|
3567
|
+
} = pagination;
|
|
3568
|
+
let {
|
|
3569
|
+
rows,
|
|
3570
|
+
flatRows,
|
|
3571
|
+
rowsById
|
|
3572
|
+
} = rowModel;
|
|
3573
|
+
const pageStart = pageSize * pageIndex;
|
|
3574
|
+
const pageEnd = pageStart + pageSize;
|
|
3575
|
+
rows = rows.slice(pageStart, pageEnd);
|
|
3576
|
+
let paginatedRowModel;
|
|
3577
|
+
if (!table.options.paginateExpandedRows) {
|
|
3578
|
+
paginatedRowModel = expandRows({
|
|
3579
|
+
rows,
|
|
3580
|
+
flatRows,
|
|
3581
|
+
rowsById
|
|
3582
|
+
});
|
|
3583
|
+
} else {
|
|
3584
|
+
paginatedRowModel = {
|
|
3585
|
+
rows,
|
|
3586
|
+
flatRows,
|
|
3587
|
+
rowsById
|
|
3588
|
+
};
|
|
3589
|
+
}
|
|
3590
|
+
paginatedRowModel.flatRows = [];
|
|
3591
|
+
const handleRow = row => {
|
|
3592
|
+
paginatedRowModel.flatRows.push(row);
|
|
3593
|
+
if (row.subRows.length) {
|
|
3594
|
+
row.subRows.forEach(handleRow);
|
|
3595
|
+
}
|
|
3596
|
+
};
|
|
3597
|
+
paginatedRowModel.rows.forEach(handleRow);
|
|
3598
|
+
return paginatedRowModel;
|
|
3599
|
+
}, getMemoOptions(table.options, 'debugTable', 'getPaginationRowModel'));
|
|
3600
|
+
}
|
|
3601
|
+
|
|
3600
3602
|
function getSortedRowModel() {
|
|
3601
3603
|
return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {
|
|
3602
3604
|
if (!rowModel.rows.length || !(sorting != null && sorting.length)) {
|
|
@@ -3919,22 +3921,21 @@ const getCommonPinningClasses = (column) => {
|
|
|
3919
3921
|
};
|
|
3920
3922
|
|
|
3921
3923
|
const styles$a = {
|
|
3922
|
-
"data-table-body-cell-input": "_data-table-body-cell-
|
|
3923
|
-
"data-table-body-cell-editable": "_data-table-body-cell-
|
|
3924
|
-
"data-table-body-cell-edit-icon": "_data-table-body-cell-edit-
|
|
3924
|
+
"data-table-body-cell-input": "_data-table-body-cell-input_wnkkd_2",
|
|
3925
|
+
"data-table-body-cell-editable": "_data-table-body-cell-editable_wnkkd_36",
|
|
3926
|
+
"data-table-body-cell-edit-icon-container": "_data-table-body-cell-edit-icon-container_wnkkd_36"
|
|
3925
3927
|
};
|
|
3926
3928
|
|
|
3927
3929
|
const DataTableEditableCellEditIcon = () => {
|
|
3928
|
-
return /* @__PURE__ */ jsx(
|
|
3930
|
+
return /* @__PURE__ */ jsx("span", { className: styles$a["data-table-body-cell-edit-icon-container"], children: /* @__PURE__ */ jsx(
|
|
3929
3931
|
Icon,
|
|
3930
3932
|
{
|
|
3931
3933
|
svg: SvgEdit,
|
|
3932
3934
|
size: "small",
|
|
3933
3935
|
color: "subtle",
|
|
3934
|
-
className: styles$a["data-table-body-cell-edit-icon"],
|
|
3935
3936
|
"aria-label": "Edit cell value"
|
|
3936
3937
|
}
|
|
3937
|
-
);
|
|
3938
|
+
) });
|
|
3938
3939
|
};
|
|
3939
3940
|
|
|
3940
3941
|
const TableBodyCell = forwardRef(({ type, children, className, isExpandCell, isSelectCell, ...rest }, ref) => {
|
|
@@ -3958,19 +3959,19 @@ const TableBodyCell = forwardRef(({ type, children, className, isExpandCell, isS
|
|
|
3958
3959
|
TableBodyCell.displayName = "TableBodyCell";
|
|
3959
3960
|
|
|
3960
3961
|
const styles$9 = {
|
|
3961
|
-
"data-table-body-cell": "_data-table-body-
|
|
3962
|
-
"data-table-body-cell-input": "_data-table-body-cell-
|
|
3963
|
-
"table-body-cell": "_table-body-
|
|
3964
|
-
"table-header-cell": "_table-header-
|
|
3965
|
-
"table-footer-cell": "_table-footer-
|
|
3966
|
-
"data-table-body-cell-editing": "_data-table-body-cell-
|
|
3967
|
-
"data-table-header-cell": "_data-table-header-
|
|
3968
|
-
"data-table-footer-cell": "_data-table-footer-
|
|
3969
|
-
"data-table-body-cell-hovered": "_data-table-body-cell-
|
|
3970
|
-
"data-table-body-cell-error": "_data-table-body-cell-
|
|
3971
|
-
"data-table-body-cell-warning": "_data-table-body-cell-
|
|
3972
|
-
"cell-error-icon": "_cell-error-
|
|
3973
|
-
"cell-warning-icon": "_cell-warning-
|
|
3962
|
+
"data-table-body-cell": "_data-table-body-cell_l8lyo_2",
|
|
3963
|
+
"data-table-body-cell-input": "_data-table-body-cell-input_l8lyo_3",
|
|
3964
|
+
"table-body-cell": "_table-body-cell_l8lyo_18",
|
|
3965
|
+
"table-header-cell": "_table-header-cell_l8lyo_19",
|
|
3966
|
+
"table-footer-cell": "_table-footer-cell_l8lyo_20",
|
|
3967
|
+
"data-table-body-cell-editing": "_data-table-body-cell-editing_l8lyo_32",
|
|
3968
|
+
"data-table-header-cell": "_data-table-header-cell_l8lyo_33",
|
|
3969
|
+
"data-table-footer-cell": "_data-table-footer-cell_l8lyo_36",
|
|
3970
|
+
"data-table-body-cell-hovered": "_data-table-body-cell-hovered_l8lyo_82",
|
|
3971
|
+
"data-table-body-cell-error": "_data-table-body-cell-error_l8lyo_85",
|
|
3972
|
+
"data-table-body-cell-warning": "_data-table-body-cell-warning_l8lyo_102",
|
|
3973
|
+
"cell-error-icon": "_cell-error-icon_l8lyo_111",
|
|
3974
|
+
"cell-warning-icon": "_cell-warning-icon_l8lyo_112"
|
|
3974
3975
|
};
|
|
3975
3976
|
|
|
3976
3977
|
function formatCellPositionString(cellPosition) {
|
|
@@ -3993,7 +3994,9 @@ function getCellValue(cell, _columnId) {
|
|
|
3993
3994
|
return value;
|
|
3994
3995
|
}
|
|
3995
3996
|
function getCellOnChange(cell, _columnId) {
|
|
3996
|
-
|
|
3997
|
+
const meta = cell.column.columnDef.meta;
|
|
3998
|
+
const onChange = meta?.editConfig?.onChange;
|
|
3999
|
+
return onChange;
|
|
3997
4000
|
}
|
|
3998
4001
|
function logWarningForInvalidCellValueType({
|
|
3999
4002
|
columnId,
|
|
@@ -4538,113 +4541,60 @@ const DataTableEditableNumberCell = Object.assign(
|
|
|
4538
4541
|
{ displayName: "DataTableEditableNumberCell" }
|
|
4539
4542
|
);
|
|
4540
4543
|
|
|
4541
|
-
function
|
|
4542
|
-
|
|
4543
|
-
|
|
4544
|
-
|
|
4545
|
-
|
|
4546
|
-
const cellValue = getCellValue(cell);
|
|
4547
|
-
const [initialValue, isValidValueType] = useMemo(() => {
|
|
4548
|
-
let value;
|
|
4549
|
-
let isValid = true;
|
|
4550
|
-
if (cellValue === void 0 || cellValue === null) {
|
|
4551
|
-
value = "";
|
|
4552
|
-
isValid = true;
|
|
4553
|
-
return [value, isValid];
|
|
4554
|
-
}
|
|
4555
|
-
switch (typeof cellValue) {
|
|
4556
|
-
case "string":
|
|
4557
|
-
case "number":
|
|
4558
|
-
value = String(cellValue);
|
|
4559
|
-
break;
|
|
4560
|
-
case "boolean":
|
|
4561
|
-
value = String(cellValue);
|
|
4562
|
-
break;
|
|
4563
|
-
default:
|
|
4564
|
-
value = "";
|
|
4565
|
-
isValid = false;
|
|
4566
|
-
break;
|
|
4567
|
-
}
|
|
4568
|
-
if (!isValid) {
|
|
4569
|
-
logWarningForInvalidCellValueType({
|
|
4570
|
-
columnId: String(columnId),
|
|
4571
|
-
editMode: "select",
|
|
4572
|
-
expectedType: "string | number | boolean",
|
|
4573
|
-
receivedType: Array.isArray(cellValue) ? "array" : typeof cellValue
|
|
4574
|
-
});
|
|
4575
|
-
}
|
|
4576
|
-
return [value, isValid];
|
|
4577
|
-
}, [cellValue, columnId]);
|
|
4578
|
-
const options = cell.column.columnDef.meta?.options ?? [];
|
|
4544
|
+
function useEditableMenuCell({
|
|
4545
|
+
cellPosition,
|
|
4546
|
+
onCellKeyDown,
|
|
4547
|
+
ref
|
|
4548
|
+
}) {
|
|
4579
4549
|
const [tabIndex, setTabIndex] = useState(-1);
|
|
4580
4550
|
const { moveFocusToCell } = useDTFocusDispatchContext();
|
|
4581
4551
|
const cellRef = useRef(null);
|
|
4582
|
-
const
|
|
4583
|
-
const menuElement = useRef(null);
|
|
4552
|
+
const triggerClickRef = useRef(null);
|
|
4584
4553
|
useImperativeHandle(ref, () => ({
|
|
4585
|
-
invoke:
|
|
4554
|
+
invoke: () => {
|
|
4555
|
+
triggerClickRef.current?.();
|
|
4556
|
+
},
|
|
4586
4557
|
focus: () => {
|
|
4587
4558
|
cellRef.current?.focus();
|
|
4588
4559
|
setTabIndex(0);
|
|
4589
4560
|
}
|
|
4590
4561
|
}));
|
|
4591
|
-
const beginEditing = useCallback(() => {
|
|
4592
|
-
setIsEditing(true);
|
|
4593
|
-
}, [setIsEditing]);
|
|
4594
|
-
const stopEditing = useCallback(() => {
|
|
4595
|
-
setIsEditing(false);
|
|
4596
|
-
}, [setIsEditing]);
|
|
4597
|
-
const onChange = getCellOnChange(cell);
|
|
4598
|
-
const commitValue = useCallback(
|
|
4599
|
-
(value) => {
|
|
4600
|
-
if (value !== initialValue) {
|
|
4601
|
-
onChange?.(value, rowId);
|
|
4602
|
-
}
|
|
4603
|
-
stopEditing();
|
|
4604
|
-
},
|
|
4605
|
-
[rowId, onChange, initialValue, stopEditing]
|
|
4606
|
-
);
|
|
4607
|
-
const cellClasses = cx(
|
|
4608
|
-
styles$a["data-table-body-cell-editable"],
|
|
4609
|
-
cellProps.className,
|
|
4610
|
-
{ [styles$9["data-table-body-cell-editing"]]: isEditing }
|
|
4611
|
-
);
|
|
4612
4562
|
const handleCellKeyDown = useCallback(
|
|
4613
|
-
(event,
|
|
4614
|
-
if (
|
|
4615
|
-
|
|
4616
|
-
stopEditing();
|
|
4617
|
-
return;
|
|
4618
|
-
}
|
|
4619
|
-
handleMenuKeydown?.(event);
|
|
4563
|
+
(event, menuKeyDown, isOpen) => {
|
|
4564
|
+
if (isOpen) {
|
|
4565
|
+
menuKeyDown?.(event);
|
|
4620
4566
|
return;
|
|
4621
4567
|
}
|
|
4622
4568
|
onCellKeyDown?.(event);
|
|
4623
4569
|
},
|
|
4624
|
-
[onCellKeyDown
|
|
4570
|
+
[onCellKeyDown]
|
|
4625
4571
|
);
|
|
4626
|
-
const
|
|
4627
|
-
|
|
4628
|
-
|
|
4629
|
-
|
|
4630
|
-
const handleCellMouseDown = useCallback(() => {
|
|
4631
|
-
if (isEditing) {
|
|
4632
|
-
stopEditing();
|
|
4633
|
-
return;
|
|
4572
|
+
const handleMenuKeyDown = useCallback((e) => {
|
|
4573
|
+
if (e.key === "F2") {
|
|
4574
|
+
e.preventDefault();
|
|
4575
|
+
triggerClickRef.current?.();
|
|
4634
4576
|
}
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
|
|
4639
|
-
|
|
4640
|
-
|
|
4641
|
-
|
|
4642
|
-
|
|
4643
|
-
setTabIndex(-1);
|
|
4644
|
-
stopEditing();
|
|
4577
|
+
}, []);
|
|
4578
|
+
const handleImplicitClose = useCallback(() => {
|
|
4579
|
+
setTabIndex(-1);
|
|
4580
|
+
}, []);
|
|
4581
|
+
const handleCellMouseDown = useCallback(
|
|
4582
|
+
(triggerOnClick) => () => {
|
|
4583
|
+
moveFocusToCell(cellPosition);
|
|
4584
|
+
triggerOnClick();
|
|
4645
4585
|
},
|
|
4646
|
-
[
|
|
4586
|
+
[cellPosition, moveFocusToCell]
|
|
4647
4587
|
);
|
|
4588
|
+
const handleCellBlur = useCallback((e) => {
|
|
4589
|
+
const popoverId = e.currentTarget.getAttribute(
|
|
4590
|
+
"aria-controls"
|
|
4591
|
+
);
|
|
4592
|
+
const popoverEl = popoverId ? document.getElementById(popoverId) : null;
|
|
4593
|
+
if (popoverEl?.contains(e.relatedTarget)) {
|
|
4594
|
+
return;
|
|
4595
|
+
}
|
|
4596
|
+
setTabIndex(-1);
|
|
4597
|
+
}, []);
|
|
4648
4598
|
const handleCellFocus = useCallback(
|
|
4649
4599
|
(event) => {
|
|
4650
4600
|
if (event.target !== cellRef.current) {
|
|
@@ -4653,47 +4603,86 @@ function DataTableEditableSelectCellInner(props, ref) {
|
|
|
4653
4603
|
event.preventDefault();
|
|
4654
4604
|
setTabIndex(0);
|
|
4655
4605
|
},
|
|
4656
|
-
[
|
|
4657
|
-
);
|
|
4658
|
-
const handleMenuItemClick = useCallback(
|
|
4659
|
-
(value) => {
|
|
4660
|
-
commitValue(value);
|
|
4661
|
-
},
|
|
4662
|
-
[commitValue]
|
|
4663
|
-
);
|
|
4664
|
-
const handleMenuItemKeyDown = useCallback(
|
|
4665
|
-
(event) => {
|
|
4666
|
-
if (event.key === "Escape" || event.key === "F2") {
|
|
4667
|
-
cellRef.current?.focus();
|
|
4668
|
-
stopEditing();
|
|
4669
|
-
}
|
|
4670
|
-
},
|
|
4671
|
-
[stopEditing]
|
|
4606
|
+
[]
|
|
4672
4607
|
);
|
|
4673
4608
|
const cellFocusContextValue = useMemo(
|
|
4674
|
-
() => ({ isCellFocused: tabIndex === 0
|
|
4675
|
-
[tabIndex
|
|
4609
|
+
() => ({ isCellFocused: tabIndex === 0 }),
|
|
4610
|
+
[tabIndex]
|
|
4676
4611
|
);
|
|
4677
|
-
|
|
4612
|
+
return {
|
|
4613
|
+
tabIndex,
|
|
4614
|
+
cellRef,
|
|
4615
|
+
triggerClickRef,
|
|
4616
|
+
handleCellKeyDown,
|
|
4617
|
+
handleMenuKeyDown,
|
|
4618
|
+
handleImplicitClose,
|
|
4619
|
+
handleCellMouseDown,
|
|
4620
|
+
handleCellBlur,
|
|
4621
|
+
handleCellFocus,
|
|
4622
|
+
cellFocusContextValue
|
|
4623
|
+
};
|
|
4624
|
+
}
|
|
4625
|
+
|
|
4626
|
+
function DataTableEditableSelectCellInner(props, ref) {
|
|
4627
|
+
const { cell, cellProps, cellPosition, children } = props;
|
|
4628
|
+
const { onKeyDown: onCellKeyDown, className, ...restCellProps } = cellProps;
|
|
4629
|
+
getColumnId(cell);
|
|
4630
|
+
const cellValue = getCellValue(cell);
|
|
4631
|
+
const meta = cell.column.columnDef.meta;
|
|
4632
|
+
const editConfig = meta?.editConfig;
|
|
4633
|
+
const selectEditConfig = editConfig?.mode === "select" ? editConfig : void 0;
|
|
4634
|
+
const options = useMemo(
|
|
4635
|
+
() => selectEditConfig?.options ?? [],
|
|
4636
|
+
[selectEditConfig]
|
|
4637
|
+
);
|
|
4638
|
+
const onChange = selectEditConfig?.onChange;
|
|
4639
|
+
const {
|
|
4640
|
+
mode: _mode,
|
|
4641
|
+
options: _options,
|
|
4642
|
+
onChange: _onChange,
|
|
4643
|
+
...selectMenuPassthroughProps
|
|
4644
|
+
} = selectEditConfig ?? {};
|
|
4645
|
+
const isValidValueType = useMemo(() => {
|
|
4646
|
+
if (Array.isArray(cellValue)) return false;
|
|
4647
|
+
return true;
|
|
4648
|
+
}, [cellValue]);
|
|
4649
|
+
const rowId = cell.row.id;
|
|
4650
|
+
const {
|
|
4651
|
+
tabIndex,
|
|
4652
|
+
cellRef,
|
|
4653
|
+
triggerClickRef,
|
|
4654
|
+
handleCellKeyDown,
|
|
4655
|
+
handleMenuKeyDown,
|
|
4656
|
+
handleImplicitClose,
|
|
4657
|
+
handleCellMouseDown,
|
|
4658
|
+
handleCellBlur,
|
|
4659
|
+
handleCellFocus,
|
|
4660
|
+
cellFocusContextValue
|
|
4661
|
+
} = useEditableMenuCell({ cellPosition, onCellKeyDown, ref });
|
|
4662
|
+
const selectedOption = useMemo(() => {
|
|
4663
|
+
if (cellValue === void 0 || cellValue === null) return null;
|
|
4664
|
+
return options.find((o) => String(o.id) === String(cellValue)) ?? null;
|
|
4665
|
+
}, [options, cellValue]);
|
|
4666
|
+
const hasEditableConfig = !!selectEditConfig;
|
|
4667
|
+
if (!isValidValueType || !hasEditableConfig) {
|
|
4678
4668
|
const { cellProps: _cellProps, ...immutableCellProps } = props;
|
|
4679
4669
|
return /* @__PURE__ */ jsx(DataTableBodyImmutableCell, { ...immutableCellProps });
|
|
4680
4670
|
}
|
|
4681
4671
|
return /* @__PURE__ */ jsx(
|
|
4682
|
-
|
|
4672
|
+
SelectMenuSync,
|
|
4683
4673
|
{
|
|
4684
|
-
open: isEditing,
|
|
4685
|
-
onOutsidePress: handleOutsidePress,
|
|
4686
4674
|
trigger: ({
|
|
4687
4675
|
ref: triggerRef,
|
|
4688
|
-
|
|
4689
|
-
|
|
4690
|
-
|
|
4691
|
-
|
|
4692
|
-
|
|
4693
|
-
|
|
4676
|
+
onClick,
|
|
4677
|
+
onKeyDown: menuKeyDown,
|
|
4678
|
+
"aria-controls": ariaControls,
|
|
4679
|
+
"aria-expanded": ariaExpanded,
|
|
4680
|
+
"aria-haspopup": ariaHaspopup,
|
|
4681
|
+
"data-state": dataState
|
|
4694
4682
|
}) => {
|
|
4695
|
-
|
|
4696
|
-
|
|
4683
|
+
triggerClickRef.current = onClick;
|
|
4684
|
+
const isOpen = ariaExpanded;
|
|
4685
|
+
return /* @__PURE__ */ jsxs(
|
|
4697
4686
|
TableBodyCell,
|
|
4698
4687
|
{
|
|
4699
4688
|
ref: mergeRefs([
|
|
@@ -4702,39 +4691,38 @@ function DataTableEditableSelectCellInner(props, ref) {
|
|
|
4702
4691
|
]),
|
|
4703
4692
|
tabIndex,
|
|
4704
4693
|
type: "data-table",
|
|
4705
|
-
...
|
|
4706
|
-
className:
|
|
4707
|
-
onMouseDown: handleCellMouseDown,
|
|
4694
|
+
...restCellProps,
|
|
4695
|
+
className: cx(styles$a["data-table-body-cell-editable"], className),
|
|
4696
|
+
onMouseDown: handleCellMouseDown(onClick),
|
|
4708
4697
|
onBlur: handleCellBlur,
|
|
4709
4698
|
onFocus: handleCellFocus,
|
|
4710
4699
|
"data-cell-pos": formatCellPositionString(cellPosition),
|
|
4711
|
-
"aria-controls":
|
|
4712
|
-
"aria-expanded":
|
|
4713
|
-
"aria-haspopup":
|
|
4714
|
-
"data-
|
|
4715
|
-
|
|
4716
|
-
onKeyDown: (e) => handleCellKeyDown(e, menuOnTriggerKeydown),
|
|
4700
|
+
"aria-controls": ariaControls,
|
|
4701
|
+
"aria-expanded": ariaExpanded,
|
|
4702
|
+
"aria-haspopup": ariaHaspopup,
|
|
4703
|
+
"data-state": dataState,
|
|
4704
|
+
onKeyDown: (e) => handleCellKeyDown(e, menuKeyDown, isOpen),
|
|
4717
4705
|
children: [
|
|
4718
4706
|
/* @__PURE__ */ jsxs(CellFocusContext.Provider, { value: cellFocusContextValue, children: [
|
|
4719
4707
|
children,
|
|
4720
|
-
!
|
|
4708
|
+
!isOpen && /* @__PURE__ */ jsx(DataTableEditableCellEditIcon, {})
|
|
4721
4709
|
] }),
|
|
4722
|
-
/* @__PURE__ */ jsx(SrOnly, { children:
|
|
4710
|
+
/* @__PURE__ */ jsx(SrOnly, { children: isOpen ? "Press Enter or Space to select a cell value. Press Escape or F2 to cancel." : "Press Enter or F2 to edit cell value." })
|
|
4723
4711
|
]
|
|
4724
4712
|
}
|
|
4725
|
-
) });
|
|
4726
|
-
},
|
|
4727
|
-
children: isEditing && options.map((item) => {
|
|
4728
|
-
return /* @__PURE__ */ jsx(
|
|
4729
|
-
Menu.Item,
|
|
4730
|
-
{
|
|
4731
|
-
label: item.label,
|
|
4732
|
-
onClick: () => handleMenuItemClick(item.value),
|
|
4733
|
-
onKeyDown: handleMenuItemKeyDown
|
|
4734
|
-
},
|
|
4735
|
-
item.value
|
|
4736
4713
|
);
|
|
4737
|
-
}
|
|
4714
|
+
},
|
|
4715
|
+
label: String(
|
|
4716
|
+
cell.column.columnDef.meta?.columnDef?.headerLabel ?? "Select"
|
|
4717
|
+
),
|
|
4718
|
+
options,
|
|
4719
|
+
value: selectedOption,
|
|
4720
|
+
onSelectedOptionChange: (option) => {
|
|
4721
|
+
onChange?.(option, rowId);
|
|
4722
|
+
},
|
|
4723
|
+
onMenuKeyDown: handleMenuKeyDown,
|
|
4724
|
+
onImplicitClose: handleImplicitClose,
|
|
4725
|
+
...selectMenuPassthroughProps
|
|
4738
4726
|
}
|
|
4739
4727
|
);
|
|
4740
4728
|
}
|
|
@@ -4743,287 +4731,425 @@ const DataTableEditableSelectCell = Object.assign(
|
|
|
4743
4731
|
{ displayName: "DataTableEditableSelectCell" }
|
|
4744
4732
|
);
|
|
4745
4733
|
|
|
4746
|
-
function
|
|
4734
|
+
function DataTableEditableSelectAsyncCellInner(props, ref) {
|
|
4747
4735
|
const { cell, cellProps, cellPosition, children } = props;
|
|
4748
|
-
const { onKeyDown: onCellKeyDown } = cellProps;
|
|
4749
|
-
|
|
4750
|
-
const columnId = getColumnId(cell);
|
|
4736
|
+
const { onKeyDown: onCellKeyDown, className, ...restCellProps } = cellProps;
|
|
4737
|
+
getColumnId(cell);
|
|
4751
4738
|
const cellValue = getCellValue(cell);
|
|
4752
|
-
const
|
|
4753
|
-
|
|
4754
|
-
|
|
4755
|
-
if (cellValue
|
|
4756
|
-
|
|
4757
|
-
|
|
4758
|
-
} else if (Array.isArray(cellValue)) {
|
|
4759
|
-
value = cellValue.map((v) => String(v));
|
|
4760
|
-
isValid = true;
|
|
4761
|
-
return [value, isValid];
|
|
4762
|
-
} else {
|
|
4763
|
-
value = [];
|
|
4764
|
-
isValid = false;
|
|
4765
|
-
logWarningForInvalidCellValueType({
|
|
4766
|
-
columnId: String(columnId),
|
|
4767
|
-
editMode: "multiselect",
|
|
4768
|
-
expectedType: "array of primitive values",
|
|
4769
|
-
receivedType: typeof cellValue
|
|
4770
|
-
});
|
|
4771
|
-
return [value, isValid];
|
|
4772
|
-
}
|
|
4773
|
-
}, [cellValue, columnId]);
|
|
4774
|
-
const options = useMemo(
|
|
4775
|
-
() => cell.column.columnDef.meta?.options ?? [],
|
|
4776
|
-
[cell.column.columnDef.meta?.options]
|
|
4777
|
-
);
|
|
4778
|
-
const [tabIndex, setTabIndex] = useState(-1);
|
|
4779
|
-
const { moveFocusToCell } = useDTFocusDispatchContext();
|
|
4780
|
-
const cellRef = useRef(null);
|
|
4739
|
+
const editConfig = cell.column.columnDef.meta?.editConfig;
|
|
4740
|
+
const asyncEditConfig = editConfig?.mode === "select-async" ? editConfig : void 0;
|
|
4741
|
+
const isValidValueType = useMemo(() => {
|
|
4742
|
+
if (Array.isArray(cellValue)) return false;
|
|
4743
|
+
return true;
|
|
4744
|
+
}, [cellValue]);
|
|
4781
4745
|
const rowId = cell.row.id;
|
|
4782
|
-
const
|
|
4783
|
-
const
|
|
4784
|
-
const
|
|
4785
|
-
|
|
4786
|
-
|
|
4787
|
-
|
|
4788
|
-
|
|
4789
|
-
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
|
|
4794
|
-
|
|
4795
|
-
|
|
4796
|
-
|
|
4797
|
-
|
|
4798
|
-
|
|
4799
|
-
|
|
4800
|
-
|
|
4801
|
-
|
|
4802
|
-
|
|
4803
|
-
|
|
4804
|
-
const arraysEqual = draftValue.length === initialValue.length && draftValue.every((val, idx) => val === initialValue[idx]);
|
|
4805
|
-
if (!arraysEqual) {
|
|
4806
|
-
onChange?.(draftValue, rowId);
|
|
4807
|
-
}
|
|
4808
|
-
stopEditing();
|
|
4809
|
-
}, [rowId, onChange, initialValue, stopEditing, draftValue]);
|
|
4810
|
-
const cellClasses = cx(styles$a["data-table-body-cell-editable"], className, {
|
|
4811
|
-
[styles$9["data-table-body-cell-editing"]]: isEditing
|
|
4812
|
-
});
|
|
4813
|
-
const resetValue = useCallback(() => {
|
|
4814
|
-
setDraftValue(initialValue);
|
|
4815
|
-
setSearchValue("");
|
|
4816
|
-
stopEditing();
|
|
4817
|
-
}, [initialValue, stopEditing]);
|
|
4818
|
-
const handleCellKeyDown = useCallback(
|
|
4819
|
-
(event, handlePopoverKeydown) => {
|
|
4820
|
-
if (isEditing) {
|
|
4821
|
-
if (event.key === "Escape" || event.key === "F2") {
|
|
4822
|
-
stopEditing();
|
|
4823
|
-
return;
|
|
4824
|
-
}
|
|
4825
|
-
handlePopoverKeydown?.(event);
|
|
4826
|
-
return;
|
|
4746
|
+
const row = cell.row.original;
|
|
4747
|
+
const context = useMemo(() => ({ row, rowId }), [row, rowId]);
|
|
4748
|
+
const {
|
|
4749
|
+
mode: _mode,
|
|
4750
|
+
lazy,
|
|
4751
|
+
lazyOptions,
|
|
4752
|
+
loadOptions: cellLoader,
|
|
4753
|
+
onChange,
|
|
4754
|
+
cache: cacheProp,
|
|
4755
|
+
...passthroughProps
|
|
4756
|
+
} = asyncEditConfig ?? {};
|
|
4757
|
+
const loadOptions = useCallback(
|
|
4758
|
+
(searchValue, ...rest) => {
|
|
4759
|
+
if (!cellLoader) return [];
|
|
4760
|
+
if (lazy === "page") {
|
|
4761
|
+
const [pageNumber, pageSize] = rest;
|
|
4762
|
+
return cellLoader(
|
|
4763
|
+
searchValue,
|
|
4764
|
+
pageNumber,
|
|
4765
|
+
pageSize,
|
|
4766
|
+
context
|
|
4767
|
+
);
|
|
4827
4768
|
}
|
|
4828
|
-
|
|
4769
|
+
if (lazy === "offset") {
|
|
4770
|
+
const [offset, limit] = rest;
|
|
4771
|
+
return cellLoader(
|
|
4772
|
+
searchValue,
|
|
4773
|
+
offset,
|
|
4774
|
+
limit,
|
|
4775
|
+
context
|
|
4776
|
+
);
|
|
4777
|
+
}
|
|
4778
|
+
if (lazy === "group") {
|
|
4779
|
+
const [previousGroupKey] = rest;
|
|
4780
|
+
return cellLoader(
|
|
4781
|
+
searchValue,
|
|
4782
|
+
previousGroupKey,
|
|
4783
|
+
context
|
|
4784
|
+
);
|
|
4785
|
+
}
|
|
4786
|
+
return cellLoader(
|
|
4787
|
+
searchValue,
|
|
4788
|
+
context
|
|
4789
|
+
);
|
|
4829
4790
|
},
|
|
4830
|
-
[
|
|
4791
|
+
[cellLoader, context, lazy]
|
|
4831
4792
|
);
|
|
4832
|
-
const
|
|
4833
|
-
|
|
4834
|
-
|
|
4793
|
+
const cache = cacheProp ?? { enabled: false };
|
|
4794
|
+
const {
|
|
4795
|
+
tabIndex,
|
|
4796
|
+
cellRef,
|
|
4797
|
+
triggerClickRef,
|
|
4798
|
+
handleCellKeyDown,
|
|
4799
|
+
handleMenuKeyDown,
|
|
4800
|
+
handleImplicitClose,
|
|
4801
|
+
handleCellMouseDown,
|
|
4802
|
+
handleCellBlur,
|
|
4803
|
+
handleCellFocus,
|
|
4804
|
+
cellFocusContextValue
|
|
4805
|
+
} = useEditableMenuCell({ cellPosition, onCellKeyDown, ref });
|
|
4806
|
+
const selectedOption = useMemo(() => {
|
|
4807
|
+
if (cellValue === void 0 || cellValue === null) return null;
|
|
4808
|
+
if (typeof cellValue === "object") return null;
|
|
4809
|
+
return { id: cellValue, label: String(cellValue) };
|
|
4810
|
+
}, [cellValue]);
|
|
4811
|
+
if (!isValidValueType || !asyncEditConfig) {
|
|
4812
|
+
const { cellProps: _cellProps, ...immutableCellProps } = props;
|
|
4813
|
+
return /* @__PURE__ */ jsx(DataTableBodyImmutableCell, { ...immutableCellProps });
|
|
4814
|
+
}
|
|
4815
|
+
return /* @__PURE__ */ jsx(
|
|
4816
|
+
SelectMenu,
|
|
4817
|
+
{
|
|
4818
|
+
lazy,
|
|
4819
|
+
loadOptions,
|
|
4820
|
+
lazyOptions,
|
|
4821
|
+
cache,
|
|
4822
|
+
...passthroughProps,
|
|
4823
|
+
trigger: ({
|
|
4824
|
+
ref: triggerRef,
|
|
4825
|
+
onClick,
|
|
4826
|
+
onKeyDown: menuKeyDown,
|
|
4827
|
+
"aria-controls": ariaControls,
|
|
4828
|
+
"aria-expanded": ariaExpanded,
|
|
4829
|
+
"aria-haspopup": ariaHaspopup,
|
|
4830
|
+
"data-state": dataState
|
|
4831
|
+
}) => {
|
|
4832
|
+
triggerClickRef.current = onClick;
|
|
4833
|
+
const isOpen = ariaExpanded;
|
|
4834
|
+
return /* @__PURE__ */ jsxs(
|
|
4835
|
+
TableBodyCell,
|
|
4836
|
+
{
|
|
4837
|
+
ref: mergeRefs([
|
|
4838
|
+
triggerRef,
|
|
4839
|
+
cellRef
|
|
4840
|
+
]),
|
|
4841
|
+
tabIndex,
|
|
4842
|
+
type: "data-table",
|
|
4843
|
+
...restCellProps,
|
|
4844
|
+
className: cx(styles$a["data-table-body-cell-editable"], className),
|
|
4845
|
+
onMouseDown: handleCellMouseDown(onClick),
|
|
4846
|
+
onBlur: handleCellBlur,
|
|
4847
|
+
onFocus: handleCellFocus,
|
|
4848
|
+
"data-cell-pos": formatCellPositionString(cellPosition),
|
|
4849
|
+
"aria-controls": ariaControls,
|
|
4850
|
+
"aria-expanded": ariaExpanded,
|
|
4851
|
+
"aria-haspopup": ariaHaspopup,
|
|
4852
|
+
"data-state": dataState,
|
|
4853
|
+
onKeyDown: (e) => handleCellKeyDown(e, menuKeyDown, isOpen),
|
|
4854
|
+
children: [
|
|
4855
|
+
/* @__PURE__ */ jsxs(CellFocusContext.Provider, { value: cellFocusContextValue, children: [
|
|
4856
|
+
children,
|
|
4857
|
+
!isOpen && /* @__PURE__ */ jsx(DataTableEditableCellEditIcon, {})
|
|
4858
|
+
] }),
|
|
4859
|
+
/* @__PURE__ */ jsx(SrOnly, { children: isOpen ? "Press Enter or Space to select a cell value. Press Escape or F2 to cancel." : "Press Enter or F2 to edit cell value." })
|
|
4860
|
+
]
|
|
4861
|
+
}
|
|
4862
|
+
);
|
|
4863
|
+
},
|
|
4864
|
+
label: String(
|
|
4865
|
+
cell.column.columnDef.meta?.columnDef?.headerLabel ?? "Select"
|
|
4866
|
+
),
|
|
4867
|
+
value: selectedOption,
|
|
4868
|
+
onSelectedOptionChange: (option) => {
|
|
4869
|
+
onChange?.(option, rowId);
|
|
4870
|
+
},
|
|
4871
|
+
onMenuKeyDown: handleMenuKeyDown,
|
|
4872
|
+
onImplicitClose: handleImplicitClose
|
|
4835
4873
|
}
|
|
4836
|
-
moveFocusToCell(cellPosition);
|
|
4837
|
-
beginEditing();
|
|
4838
|
-
}, [beginEditing, cellPosition, moveFocusToCell, isEditing]);
|
|
4839
|
-
const handleCellBlur = useCallback(
|
|
4840
|
-
(e) => {
|
|
4841
|
-
if (popoverElement.current?.contains(e.relatedTarget)) {
|
|
4842
|
-
return;
|
|
4843
|
-
}
|
|
4844
|
-
setTabIndex(-1);
|
|
4845
|
-
stopEditing();
|
|
4846
|
-
},
|
|
4847
|
-
[stopEditing]
|
|
4848
4874
|
);
|
|
4849
|
-
|
|
4850
|
-
|
|
4851
|
-
|
|
4852
|
-
|
|
4853
|
-
|
|
4854
|
-
|
|
4855
|
-
|
|
4856
|
-
|
|
4857
|
-
|
|
4875
|
+
}
|
|
4876
|
+
const DataTableEditableSelectAsyncCell = Object.assign(
|
|
4877
|
+
forwardRef(DataTableEditableSelectAsyncCellInner),
|
|
4878
|
+
{ displayName: "DataTableEditableSelectAsyncCell" }
|
|
4879
|
+
);
|
|
4880
|
+
|
|
4881
|
+
function DataTableEditableMultiselectCellInner(props, ref) {
|
|
4882
|
+
const { cell, cellProps, cellPosition, children } = props;
|
|
4883
|
+
const { onKeyDown: onCellKeyDown, className, ...restCellProps } = cellProps;
|
|
4884
|
+
const columnId = getColumnId(cell);
|
|
4885
|
+
const cellValue = getCellValue(cell);
|
|
4886
|
+
const isValidValueType = useMemo(() => {
|
|
4887
|
+
if (cellValue === null || cellValue === void 0) return true;
|
|
4888
|
+
if (Array.isArray(cellValue)) return true;
|
|
4889
|
+
logWarningForInvalidCellValueType({
|
|
4890
|
+
columnId: String(columnId),
|
|
4891
|
+
editMode: "multiselect",
|
|
4892
|
+
expectedType: "array of primitive values",
|
|
4893
|
+
receivedType: typeof cellValue
|
|
4894
|
+
});
|
|
4895
|
+
return false;
|
|
4896
|
+
}, [cellValue, columnId]);
|
|
4897
|
+
const meta = cell.column.columnDef.meta;
|
|
4898
|
+
const editConfig = meta?.editConfig;
|
|
4899
|
+
const multiselectEditConfig = editConfig?.mode === "multiselect" ? editConfig : void 0;
|
|
4900
|
+
const options = useMemo(
|
|
4901
|
+
() => multiselectEditConfig?.options ?? [],
|
|
4902
|
+
[multiselectEditConfig]
|
|
4858
4903
|
);
|
|
4859
|
-
const
|
|
4860
|
-
|
|
4861
|
-
|
|
4862
|
-
|
|
4863
|
-
|
|
4864
|
-
|
|
4865
|
-
|
|
4866
|
-
|
|
4867
|
-
|
|
4868
|
-
|
|
4869
|
-
|
|
4870
|
-
|
|
4871
|
-
|
|
4872
|
-
|
|
4873
|
-
|
|
4874
|
-
|
|
4875
|
-
|
|
4876
|
-
|
|
4877
|
-
|
|
4904
|
+
const onChange = multiselectEditConfig?.onChange;
|
|
4905
|
+
const {
|
|
4906
|
+
mode: _mode,
|
|
4907
|
+
options: _options,
|
|
4908
|
+
onChange: _onChange,
|
|
4909
|
+
...multiSelectMenuPassthroughProps
|
|
4910
|
+
} = multiselectEditConfig ?? {};
|
|
4911
|
+
const rowId = cell.row.id;
|
|
4912
|
+
const {
|
|
4913
|
+
tabIndex,
|
|
4914
|
+
cellRef,
|
|
4915
|
+
triggerClickRef,
|
|
4916
|
+
handleCellKeyDown,
|
|
4917
|
+
handleMenuKeyDown,
|
|
4918
|
+
handleImplicitClose,
|
|
4919
|
+
handleCellMouseDown,
|
|
4920
|
+
handleCellBlur,
|
|
4921
|
+
handleCellFocus,
|
|
4922
|
+
cellFocusContextValue
|
|
4923
|
+
} = useEditableMenuCell({ cellPosition, onCellKeyDown, ref });
|
|
4924
|
+
const selectedOptions = useMemo(() => {
|
|
4925
|
+
if (!Array.isArray(cellValue)) return [];
|
|
4926
|
+
const valueStrings = cellValue.map((v) => String(v));
|
|
4927
|
+
return options.filter((o) => valueStrings.includes(String(o.id)));
|
|
4928
|
+
}, [options, cellValue]);
|
|
4929
|
+
const hasEditableConfig = !!multiselectEditConfig;
|
|
4930
|
+
if (!isValidValueType || !hasEditableConfig) {
|
|
4931
|
+
const { cellProps: _cellProps, ...immutableCellProps } = props;
|
|
4932
|
+
return /* @__PURE__ */ jsx(DataTableBodyImmutableCell, { ...immutableCellProps });
|
|
4933
|
+
}
|
|
4934
|
+
return /* @__PURE__ */ jsx(
|
|
4935
|
+
MultiSelectMenuSync,
|
|
4936
|
+
{
|
|
4937
|
+
trigger: ({
|
|
4938
|
+
ref: triggerRef,
|
|
4939
|
+
onClick,
|
|
4940
|
+
onKeyDown: menuKeyDown,
|
|
4941
|
+
"aria-controls": ariaControls,
|
|
4942
|
+
"aria-expanded": ariaExpanded,
|
|
4943
|
+
"aria-haspopup": ariaHaspopup,
|
|
4944
|
+
"data-state": dataState
|
|
4945
|
+
}) => {
|
|
4946
|
+
triggerClickRef.current = onClick;
|
|
4947
|
+
const isOpen = ariaExpanded;
|
|
4948
|
+
return /* @__PURE__ */ jsxs(
|
|
4949
|
+
TableBodyCell,
|
|
4950
|
+
{
|
|
4951
|
+
ref: mergeRefs([
|
|
4952
|
+
triggerRef,
|
|
4953
|
+
cellRef
|
|
4954
|
+
]),
|
|
4955
|
+
tabIndex,
|
|
4956
|
+
type: "data-table",
|
|
4957
|
+
...restCellProps,
|
|
4958
|
+
className: cx(styles$a["data-table-body-cell-editable"], className),
|
|
4959
|
+
onMouseDown: handleCellMouseDown(onClick),
|
|
4960
|
+
onBlur: handleCellBlur,
|
|
4961
|
+
onFocus: handleCellFocus,
|
|
4962
|
+
"data-cell-pos": formatCellPositionString(cellPosition),
|
|
4963
|
+
"aria-controls": ariaControls,
|
|
4964
|
+
"aria-expanded": ariaExpanded,
|
|
4965
|
+
"aria-haspopup": ariaHaspopup,
|
|
4966
|
+
"data-state": dataState,
|
|
4967
|
+
onKeyDown: (e) => handleCellKeyDown(e, menuKeyDown, isOpen),
|
|
4968
|
+
children: [
|
|
4969
|
+
/* @__PURE__ */ jsxs(CellFocusContext.Provider, { value: cellFocusContextValue, children: [
|
|
4970
|
+
children,
|
|
4971
|
+
!isOpen && /* @__PURE__ */ jsx(DataTableEditableCellEditIcon, {})
|
|
4972
|
+
] }),
|
|
4973
|
+
/* @__PURE__ */ jsx(SrOnly, { children: isOpen ? "Press Enter or Space to select cell values. Press Escape or F2 to close." : "Press Enter or F2 to edit cell value." })
|
|
4974
|
+
]
|
|
4975
|
+
}
|
|
4976
|
+
);
|
|
4977
|
+
},
|
|
4978
|
+
label: String(
|
|
4979
|
+
cell.column.columnDef.meta?.columnDef?.headerLabel ?? "Select"
|
|
4980
|
+
),
|
|
4981
|
+
options,
|
|
4982
|
+
value: selectedOptions,
|
|
4983
|
+
onSelectedOptionsChange: (selected) => {
|
|
4984
|
+
onChange?.(selected, rowId);
|
|
4985
|
+
},
|
|
4986
|
+
onMenuKeyDown: handleMenuKeyDown,
|
|
4987
|
+
onImplicitClose: handleImplicitClose,
|
|
4988
|
+
...multiSelectMenuPassthroughProps
|
|
4989
|
+
}
|
|
4878
4990
|
);
|
|
4879
|
-
|
|
4880
|
-
|
|
4881
|
-
|
|
4882
|
-
|
|
4883
|
-
|
|
4884
|
-
|
|
4885
|
-
|
|
4886
|
-
|
|
4887
|
-
|
|
4888
|
-
|
|
4889
|
-
|
|
4991
|
+
}
|
|
4992
|
+
const DataTableEditableMultiselectCell = Object.assign(
|
|
4993
|
+
forwardRef(DataTableEditableMultiselectCellInner),
|
|
4994
|
+
{ displayName: "DataTableEditableMultiselectCell" }
|
|
4995
|
+
);
|
|
4996
|
+
|
|
4997
|
+
function DataTableEditableMultiselectAsyncCellInner(props, ref) {
|
|
4998
|
+
const { cell, cellProps, cellPosition, children } = props;
|
|
4999
|
+
const { onKeyDown: onCellKeyDown, className, ...restCellProps } = cellProps;
|
|
5000
|
+
getColumnId(cell);
|
|
5001
|
+
const cellValue = getCellValue(cell);
|
|
5002
|
+
const editConfig = cell.column.columnDef.meta?.editConfig;
|
|
5003
|
+
const asyncEditConfig = editConfig?.mode === "multiselect-async" ? editConfig : void 0;
|
|
5004
|
+
const isValidValueType = useMemo(() => {
|
|
5005
|
+
if (cellValue === null || cellValue === void 0) return true;
|
|
5006
|
+
if (Array.isArray(cellValue)) return true;
|
|
5007
|
+
return false;
|
|
5008
|
+
}, [cellValue]);
|
|
5009
|
+
const rowId = cell.row.id;
|
|
5010
|
+
const row = cell.row.original;
|
|
5011
|
+
const context = useMemo(() => ({ row, rowId }), [row, rowId]);
|
|
5012
|
+
const {
|
|
5013
|
+
mode: _mode,
|
|
5014
|
+
lazy,
|
|
5015
|
+
lazyOptions,
|
|
5016
|
+
loadOptions: cellLoader,
|
|
5017
|
+
onChange,
|
|
5018
|
+
cache: cacheProp,
|
|
5019
|
+
...passthroughProps
|
|
5020
|
+
} = asyncEditConfig ?? {};
|
|
5021
|
+
const loadOptions = useCallback(
|
|
5022
|
+
(searchValue, ...rest) => {
|
|
5023
|
+
if (!cellLoader) return [];
|
|
5024
|
+
if (lazy === "page") {
|
|
5025
|
+
const [pageNumber, pageSize] = rest;
|
|
5026
|
+
return cellLoader(
|
|
5027
|
+
searchValue,
|
|
5028
|
+
pageNumber,
|
|
5029
|
+
pageSize,
|
|
5030
|
+
context
|
|
5031
|
+
);
|
|
4890
5032
|
}
|
|
4891
|
-
if (
|
|
4892
|
-
|
|
4893
|
-
|
|
4894
|
-
|
|
5033
|
+
if (lazy === "offset") {
|
|
5034
|
+
const [offset, limit] = rest;
|
|
5035
|
+
return cellLoader(
|
|
5036
|
+
searchValue,
|
|
5037
|
+
offset,
|
|
5038
|
+
limit,
|
|
5039
|
+
context
|
|
5040
|
+
);
|
|
4895
5041
|
}
|
|
4896
|
-
|
|
4897
|
-
|
|
4898
|
-
|
|
4899
|
-
|
|
4900
|
-
|
|
4901
|
-
|
|
4902
|
-
|
|
4903
|
-
setDraftValue(selectedItems2.map((item) => String(item.value)));
|
|
5042
|
+
if (lazy === "group") {
|
|
5043
|
+
const [previousGroupKey] = rest;
|
|
5044
|
+
return cellLoader(
|
|
5045
|
+
searchValue,
|
|
5046
|
+
previousGroupKey,
|
|
5047
|
+
context
|
|
5048
|
+
);
|
|
4904
5049
|
}
|
|
5050
|
+
return cellLoader(
|
|
5051
|
+
searchValue,
|
|
5052
|
+
context
|
|
5053
|
+
);
|
|
4905
5054
|
},
|
|
4906
|
-
[
|
|
4907
|
-
);
|
|
4908
|
-
const filteredItems = useMemo(() => {
|
|
4909
|
-
if (searchValue === "") return options;
|
|
4910
|
-
return options.filter(
|
|
4911
|
-
(item) => item.label.toLowerCase().includes(searchValue.toLowerCase())
|
|
4912
|
-
);
|
|
4913
|
-
}, [options, searchValue]);
|
|
4914
|
-
const selectedItems = useMemo(() => {
|
|
4915
|
-
return options.filter(
|
|
4916
|
-
(item) => typeof item.value === "string" && draftValue.includes(item.value)
|
|
4917
|
-
);
|
|
4918
|
-
}, [options, draftValue]);
|
|
4919
|
-
const handleOnClickOutside = useCallback(() => {
|
|
4920
|
-
cellRef.current?.focus();
|
|
4921
|
-
if (isEditing) {
|
|
4922
|
-
commitValue();
|
|
4923
|
-
}
|
|
4924
|
-
}, [commitValue, isEditing]);
|
|
4925
|
-
const handleOpenAnimationComplete = useCallback(() => {
|
|
4926
|
-
if (isEditing) {
|
|
4927
|
-
searchFieldRef.current?.focus();
|
|
4928
|
-
}
|
|
4929
|
-
}, [isEditing]);
|
|
4930
|
-
const handleSearchFieldChange = useCallback(
|
|
4931
|
-
(e) => {
|
|
4932
|
-
setSearchValue(e.target.value);
|
|
4933
|
-
},
|
|
4934
|
-
[]
|
|
4935
|
-
);
|
|
4936
|
-
const cellFocusContextValue = useMemo(
|
|
4937
|
-
() => ({ isCellFocused: tabIndex === 0 && !isEditing }),
|
|
4938
|
-
[tabIndex, isEditing]
|
|
5055
|
+
[cellLoader, context, lazy]
|
|
4939
5056
|
);
|
|
4940
|
-
|
|
5057
|
+
const cache = cacheProp ?? { enabled: false };
|
|
5058
|
+
const {
|
|
5059
|
+
tabIndex,
|
|
5060
|
+
cellRef,
|
|
5061
|
+
triggerClickRef,
|
|
5062
|
+
handleCellKeyDown,
|
|
5063
|
+
handleMenuKeyDown,
|
|
5064
|
+
handleImplicitClose,
|
|
5065
|
+
handleCellMouseDown,
|
|
5066
|
+
handleCellBlur,
|
|
5067
|
+
handleCellFocus,
|
|
5068
|
+
cellFocusContextValue
|
|
5069
|
+
} = useEditableMenuCell({ cellPosition, onCellKeyDown, ref });
|
|
5070
|
+
const selectedOptions = useMemo(() => {
|
|
5071
|
+
if (!Array.isArray(cellValue)) return [];
|
|
5072
|
+
return cellValue;
|
|
5073
|
+
}, [cellValue]);
|
|
5074
|
+
if (!isValidValueType || !asyncEditConfig) {
|
|
4941
5075
|
const { cellProps: _cellProps, ...immutableCellProps } = props;
|
|
4942
5076
|
return /* @__PURE__ */ jsx(DataTableBodyImmutableCell, { ...immutableCellProps });
|
|
4943
5077
|
}
|
|
4944
|
-
return /* @__PURE__ */
|
|
4945
|
-
|
|
5078
|
+
return /* @__PURE__ */ jsx(
|
|
5079
|
+
MultiSelectMenu,
|
|
4946
5080
|
{
|
|
4947
|
-
|
|
4948
|
-
|
|
4949
|
-
|
|
4950
|
-
|
|
4951
|
-
|
|
4952
|
-
|
|
4953
|
-
|
|
4954
|
-
|
|
4955
|
-
|
|
4956
|
-
|
|
4957
|
-
|
|
4958
|
-
|
|
4959
|
-
|
|
4960
|
-
|
|
4961
|
-
|
|
4962
|
-
|
|
4963
|
-
|
|
4964
|
-
|
|
4965
|
-
|
|
4966
|
-
|
|
4967
|
-
|
|
4968
|
-
|
|
4969
|
-
|
|
4970
|
-
|
|
4971
|
-
|
|
4972
|
-
|
|
4973
|
-
|
|
4974
|
-
|
|
4975
|
-
|
|
4976
|
-
|
|
4977
|
-
|
|
4978
|
-
|
|
4979
|
-
|
|
4980
|
-
|
|
4981
|
-
|
|
4982
|
-
|
|
4983
|
-
|
|
4984
|
-
|
|
4985
|
-
|
|
4986
|
-
|
|
4987
|
-
|
|
4988
|
-
|
|
4989
|
-
|
|
4990
|
-
|
|
4991
|
-
|
|
4992
|
-
|
|
4993
|
-
|
|
4994
|
-
|
|
4995
|
-
|
|
4996
|
-
|
|
4997
|
-
|
|
4998
|
-
|
|
4999
|
-
|
|
5000
|
-
|
|
5001
|
-
|
|
5002
|
-
selected: selectedItems,
|
|
5003
|
-
onKeyDown: handleListViewKeyDown,
|
|
5004
|
-
items: filteredItems,
|
|
5005
|
-
onSelectionChange: handleListViewSelectionChange,
|
|
5006
|
-
ref: listViewRef,
|
|
5007
|
-
children: ({ items }) => items.map((item) => /* @__PURE__ */ jsx(ListView.Option, { item, children: item.label }, item.label))
|
|
5008
|
-
}
|
|
5009
|
-
)
|
|
5010
|
-
] }) })
|
|
5011
|
-
]
|
|
5081
|
+
lazy,
|
|
5082
|
+
loadOptions,
|
|
5083
|
+
lazyOptions,
|
|
5084
|
+
cache,
|
|
5085
|
+
...passthroughProps,
|
|
5086
|
+
trigger: ({
|
|
5087
|
+
ref: triggerRef,
|
|
5088
|
+
onClick,
|
|
5089
|
+
onKeyDown: menuKeyDown,
|
|
5090
|
+
"aria-controls": ariaControls,
|
|
5091
|
+
"aria-expanded": ariaExpanded,
|
|
5092
|
+
"aria-haspopup": ariaHaspopup,
|
|
5093
|
+
"data-state": dataState
|
|
5094
|
+
}) => {
|
|
5095
|
+
triggerClickRef.current = onClick;
|
|
5096
|
+
const isOpen = ariaExpanded;
|
|
5097
|
+
return /* @__PURE__ */ jsxs(
|
|
5098
|
+
TableBodyCell,
|
|
5099
|
+
{
|
|
5100
|
+
ref: mergeRefs([
|
|
5101
|
+
triggerRef,
|
|
5102
|
+
cellRef
|
|
5103
|
+
]),
|
|
5104
|
+
tabIndex,
|
|
5105
|
+
type: "data-table",
|
|
5106
|
+
...restCellProps,
|
|
5107
|
+
className: cx(styles$a["data-table-body-cell-editable"], className),
|
|
5108
|
+
onMouseDown: handleCellMouseDown(onClick),
|
|
5109
|
+
onBlur: handleCellBlur,
|
|
5110
|
+
onFocus: handleCellFocus,
|
|
5111
|
+
"data-cell-pos": formatCellPositionString(cellPosition),
|
|
5112
|
+
"aria-controls": ariaControls,
|
|
5113
|
+
"aria-expanded": ariaExpanded,
|
|
5114
|
+
"aria-haspopup": ariaHaspopup,
|
|
5115
|
+
"data-state": dataState,
|
|
5116
|
+
onKeyDown: (e) => handleCellKeyDown(e, menuKeyDown, isOpen),
|
|
5117
|
+
children: [
|
|
5118
|
+
/* @__PURE__ */ jsxs(CellFocusContext.Provider, { value: cellFocusContextValue, children: [
|
|
5119
|
+
children,
|
|
5120
|
+
!isOpen && /* @__PURE__ */ jsx(DataTableEditableCellEditIcon, {})
|
|
5121
|
+
] }),
|
|
5122
|
+
/* @__PURE__ */ jsx(SrOnly, { children: isOpen ? "Press Enter or Space to select cell values. Press Escape or F2 to close." : "Press Enter or F2 to edit cell value." })
|
|
5123
|
+
]
|
|
5124
|
+
}
|
|
5125
|
+
);
|
|
5126
|
+
},
|
|
5127
|
+
label: String(
|
|
5128
|
+
cell.column.columnDef.meta?.columnDef?.headerLabel ?? "Select"
|
|
5129
|
+
),
|
|
5130
|
+
value: selectedOptions,
|
|
5131
|
+
onSelectedOptionsChange: (selected) => {
|
|
5132
|
+
onChange?.(selected, rowId);
|
|
5133
|
+
},
|
|
5134
|
+
onMenuKeyDown: handleMenuKeyDown,
|
|
5135
|
+
onImplicitClose: handleImplicitClose
|
|
5012
5136
|
}
|
|
5013
5137
|
);
|
|
5014
5138
|
}
|
|
5015
|
-
const
|
|
5016
|
-
forwardRef(
|
|
5017
|
-
{ displayName: "
|
|
5139
|
+
const DataTableEditableMultiselectAsyncCell = Object.assign(
|
|
5140
|
+
forwardRef(DataTableEditableMultiselectAsyncCellInner),
|
|
5141
|
+
{ displayName: "DataTableEditableMultiselectAsyncCell" }
|
|
5018
5142
|
);
|
|
5019
5143
|
|
|
5020
5144
|
function DataTableEditableBooleanCellInner(props, ref) {
|
|
5021
5145
|
const { cell, cellProps, cellPosition, children } = props;
|
|
5022
|
-
const { onKeyDown: onCellKeyDown } = cellProps;
|
|
5023
|
-
const [isEditing, setIsEditing] = useState(false);
|
|
5146
|
+
const { onKeyDown: onCellKeyDown, className, ...restCellProps } = cellProps;
|
|
5024
5147
|
const columnId = getColumnId(cell);
|
|
5025
5148
|
const cellValue = getCellValue(cell);
|
|
5026
|
-
const
|
|
5149
|
+
const meta = cell.column.columnDef.meta;
|
|
5150
|
+
const editConfig = meta?.editConfig;
|
|
5151
|
+
const booleanEditConfig = editConfig?.mode === "boolean" ? editConfig : void 0;
|
|
5152
|
+
const [, isValidValueType] = useMemo(() => {
|
|
5027
5153
|
let value;
|
|
5028
5154
|
let isValid = true;
|
|
5029
5155
|
if (cellValue === void 0 || cellValue === null) {
|
|
@@ -5048,8 +5174,7 @@ function DataTableEditableBooleanCellInner(props, ref) {
|
|
|
5048
5174
|
return [value, isValid];
|
|
5049
5175
|
}, [cellValue, columnId]);
|
|
5050
5176
|
const options = useMemo(() => {
|
|
5051
|
-
const
|
|
5052
|
-
const config = editConfig?.mode === "boolean" ? editConfig : {
|
|
5177
|
+
const config = booleanEditConfig?.mode === "boolean" ? booleanEditConfig : {
|
|
5053
5178
|
trueLabel: void 0,
|
|
5054
5179
|
falseLabel: void 0,
|
|
5055
5180
|
allowNull: false,
|
|
@@ -5059,140 +5184,57 @@ function DataTableEditableBooleanCellInner(props, ref) {
|
|
|
5059
5184
|
const typeOptions = typeof typeConfig === "object" && typeConfig.type === "boolean" ? typeConfig.options : void 0;
|
|
5060
5185
|
const items = [
|
|
5061
5186
|
{
|
|
5062
|
-
|
|
5187
|
+
id: "true",
|
|
5063
5188
|
label: config.trueLabel ?? typeOptions?.trueLabel ?? "True"
|
|
5064
5189
|
},
|
|
5065
5190
|
{
|
|
5066
|
-
|
|
5191
|
+
id: "false",
|
|
5067
5192
|
label: config.falseLabel ?? typeOptions?.falseLabel ?? "False"
|
|
5068
5193
|
}
|
|
5069
5194
|
];
|
|
5070
5195
|
if (config.allowNull) {
|
|
5071
|
-
items.push({
|
|
5196
|
+
items.push({ id: "null", label: config.nullLabel ?? "Unset" });
|
|
5072
5197
|
}
|
|
5073
5198
|
return items;
|
|
5074
|
-
}, [
|
|
5075
|
-
cell.column.columnDef.meta?.editConfig,
|
|
5076
|
-
cell.column.columnDef.meta?.columnDef?.type
|
|
5077
|
-
]);
|
|
5078
|
-
const [tabIndex, setTabIndex] = useState(-1);
|
|
5079
|
-
const { moveFocusToCell } = useDTFocusDispatchContext();
|
|
5080
|
-
const cellRef = useRef(null);
|
|
5199
|
+
}, [booleanEditConfig, cell.column.columnDef.meta?.columnDef?.type]);
|
|
5081
5200
|
const rowId = cell.row.id;
|
|
5082
|
-
const
|
|
5083
|
-
|
|
5084
|
-
|
|
5085
|
-
|
|
5086
|
-
|
|
5087
|
-
|
|
5088
|
-
|
|
5089
|
-
|
|
5090
|
-
|
|
5091
|
-
|
|
5092
|
-
|
|
5093
|
-
|
|
5094
|
-
|
|
5095
|
-
},
|
|
5096
|
-
const
|
|
5097
|
-
|
|
5098
|
-
(
|
|
5099
|
-
|
|
5100
|
-
|
|
5101
|
-
}
|
|
5102
|
-
stopEditing();
|
|
5103
|
-
},
|
|
5104
|
-
[rowId, onChange, initialValue, stopEditing]
|
|
5105
|
-
);
|
|
5106
|
-
const cellClasses = cx(
|
|
5107
|
-
styles$a["data-table-body-cell-editable"],
|
|
5108
|
-
cellProps.className,
|
|
5109
|
-
{ [styles$9["data-table-body-cell-editing"]]: isEditing }
|
|
5110
|
-
);
|
|
5111
|
-
const handleCellKeyDown = useCallback(
|
|
5112
|
-
(event, handleMenuKeydown) => {
|
|
5113
|
-
if (isEditing) {
|
|
5114
|
-
if (event.key === "Escape" || event.key === "F2") {
|
|
5115
|
-
stopEditing();
|
|
5116
|
-
return;
|
|
5117
|
-
}
|
|
5118
|
-
handleMenuKeydown?.(event);
|
|
5119
|
-
return;
|
|
5120
|
-
}
|
|
5121
|
-
onCellKeyDown?.(event);
|
|
5122
|
-
},
|
|
5123
|
-
[onCellKeyDown, isEditing, stopEditing]
|
|
5124
|
-
);
|
|
5125
|
-
const handleOutsidePress = useCallback(() => {
|
|
5126
|
-
stopEditing();
|
|
5127
|
-
setTabIndex(-1);
|
|
5128
|
-
}, [stopEditing]);
|
|
5129
|
-
const handleCellMouseDown = useCallback(() => {
|
|
5130
|
-
if (isEditing) {
|
|
5131
|
-
stopEditing();
|
|
5132
|
-
return;
|
|
5133
|
-
}
|
|
5134
|
-
moveFocusToCell(cellPosition);
|
|
5135
|
-
beginEditing();
|
|
5136
|
-
}, [beginEditing, cellPosition, moveFocusToCell, isEditing, stopEditing]);
|
|
5137
|
-
const handleCellBlur = useCallback(
|
|
5138
|
-
(e) => {
|
|
5139
|
-
if (menuElement.current?.contains(e.relatedTarget)) {
|
|
5140
|
-
return;
|
|
5141
|
-
}
|
|
5142
|
-
setTabIndex(-1);
|
|
5143
|
-
stopEditing();
|
|
5144
|
-
},
|
|
5145
|
-
[setTabIndex, menuElement, stopEditing]
|
|
5146
|
-
);
|
|
5147
|
-
const handleCellFocus = useCallback(
|
|
5148
|
-
(event) => {
|
|
5149
|
-
if (event.target !== cellRef.current) {
|
|
5150
|
-
return;
|
|
5151
|
-
}
|
|
5152
|
-
event.preventDefault();
|
|
5153
|
-
setTabIndex(0);
|
|
5154
|
-
},
|
|
5155
|
-
[setTabIndex]
|
|
5156
|
-
);
|
|
5157
|
-
const handleMenuItemClick = useCallback(
|
|
5158
|
-
(value) => {
|
|
5159
|
-
commitValue(value);
|
|
5160
|
-
},
|
|
5161
|
-
[commitValue]
|
|
5162
|
-
);
|
|
5163
|
-
const handleMenuItemKeyDown = useCallback(
|
|
5164
|
-
(event) => {
|
|
5165
|
-
if (event.key === "Escape" || event.key === "F2") {
|
|
5166
|
-
cellRef.current?.focus();
|
|
5167
|
-
stopEditing();
|
|
5168
|
-
}
|
|
5169
|
-
},
|
|
5170
|
-
[stopEditing]
|
|
5171
|
-
);
|
|
5172
|
-
const cellFocusContextValue = useMemo(
|
|
5173
|
-
() => ({ isCellFocused: tabIndex === 0 && !isEditing }),
|
|
5174
|
-
[tabIndex, isEditing]
|
|
5175
|
-
);
|
|
5176
|
-
if (!isValidValueType) {
|
|
5201
|
+
const onChange = booleanEditConfig?.onChange;
|
|
5202
|
+
const hasEditableConfig = !!booleanEditConfig;
|
|
5203
|
+
const {
|
|
5204
|
+
tabIndex,
|
|
5205
|
+
cellRef,
|
|
5206
|
+
triggerClickRef,
|
|
5207
|
+
handleCellKeyDown,
|
|
5208
|
+
handleMenuKeyDown,
|
|
5209
|
+
handleImplicitClose,
|
|
5210
|
+
handleCellMouseDown,
|
|
5211
|
+
handleCellBlur,
|
|
5212
|
+
handleCellFocus,
|
|
5213
|
+
cellFocusContextValue
|
|
5214
|
+
} = useEditableMenuCell({ cellPosition, onCellKeyDown, ref });
|
|
5215
|
+
const selectedOption = useMemo(() => {
|
|
5216
|
+
if (cellValue === void 0) return null;
|
|
5217
|
+
return options.find((o) => o.id === String(cellValue)) ?? null;
|
|
5218
|
+
}, [options, cellValue]);
|
|
5219
|
+
if (!isValidValueType || !hasEditableConfig) {
|
|
5177
5220
|
const { cellProps: _cellProps, ...immutableCellProps } = props;
|
|
5178
5221
|
return /* @__PURE__ */ jsx(DataTableBodyImmutableCell, { ...immutableCellProps });
|
|
5179
5222
|
}
|
|
5180
5223
|
return /* @__PURE__ */ jsx(
|
|
5181
|
-
|
|
5224
|
+
SelectMenuSync,
|
|
5182
5225
|
{
|
|
5183
|
-
open: isEditing,
|
|
5184
|
-
onOutsidePress: handleOutsidePress,
|
|
5185
5226
|
trigger: ({
|
|
5186
5227
|
ref: triggerRef,
|
|
5187
|
-
|
|
5188
|
-
|
|
5189
|
-
|
|
5190
|
-
|
|
5191
|
-
|
|
5192
|
-
|
|
5228
|
+
onClick,
|
|
5229
|
+
onKeyDown: menuKeyDown,
|
|
5230
|
+
"aria-controls": ariaControls,
|
|
5231
|
+
"aria-expanded": ariaExpanded,
|
|
5232
|
+
"aria-haspopup": ariaHaspopup,
|
|
5233
|
+
"data-state": dataState
|
|
5193
5234
|
}) => {
|
|
5194
|
-
|
|
5195
|
-
|
|
5235
|
+
triggerClickRef.current = onClick;
|
|
5236
|
+
const isOpen = ariaExpanded;
|
|
5237
|
+
return /* @__PURE__ */ jsxs(
|
|
5196
5238
|
TableBodyCell,
|
|
5197
5239
|
{
|
|
5198
5240
|
ref: mergeRefs([
|
|
@@ -5201,39 +5243,42 @@ function DataTableEditableBooleanCellInner(props, ref) {
|
|
|
5201
5243
|
]),
|
|
5202
5244
|
tabIndex,
|
|
5203
5245
|
type: "data-table",
|
|
5204
|
-
...
|
|
5205
|
-
className:
|
|
5206
|
-
onMouseDown: handleCellMouseDown,
|
|
5246
|
+
...restCellProps,
|
|
5247
|
+
className: cx(styles$a["data-table-body-cell-editable"], className),
|
|
5248
|
+
onMouseDown: handleCellMouseDown(onClick),
|
|
5207
5249
|
onBlur: handleCellBlur,
|
|
5208
5250
|
onFocus: handleCellFocus,
|
|
5209
5251
|
"data-cell-pos": formatCellPositionString(cellPosition),
|
|
5210
|
-
"aria-controls":
|
|
5211
|
-
"aria-expanded":
|
|
5212
|
-
"aria-haspopup":
|
|
5213
|
-
"data-
|
|
5214
|
-
|
|
5215
|
-
onKeyDown: (e) => handleCellKeyDown(e, menuOnTriggerKeydown),
|
|
5252
|
+
"aria-controls": ariaControls,
|
|
5253
|
+
"aria-expanded": ariaExpanded,
|
|
5254
|
+
"aria-haspopup": ariaHaspopup,
|
|
5255
|
+
"data-state": dataState,
|
|
5256
|
+
onKeyDown: (e) => handleCellKeyDown(e, menuKeyDown, isOpen),
|
|
5216
5257
|
children: [
|
|
5217
5258
|
/* @__PURE__ */ jsxs(CellFocusContext.Provider, { value: cellFocusContextValue, children: [
|
|
5218
5259
|
children,
|
|
5219
|
-
!
|
|
5260
|
+
!isOpen && /* @__PURE__ */ jsx(DataTableEditableCellEditIcon, {})
|
|
5220
5261
|
] }),
|
|
5221
|
-
/* @__PURE__ */ jsx(SrOnly, { children:
|
|
5262
|
+
/* @__PURE__ */ jsx(SrOnly, { children: isOpen ? "Press Enter or Space to select a cell value. Press Escape or F2 to cancel." : "Press Enter or F2 to edit cell value." })
|
|
5222
5263
|
]
|
|
5223
5264
|
}
|
|
5224
|
-
) });
|
|
5225
|
-
},
|
|
5226
|
-
children: isEditing && options.map((item) => {
|
|
5227
|
-
return /* @__PURE__ */ jsx(
|
|
5228
|
-
Menu.Item,
|
|
5229
|
-
{
|
|
5230
|
-
label: item.label,
|
|
5231
|
-
onClick: () => handleMenuItemClick(item.value),
|
|
5232
|
-
onKeyDown: handleMenuItemKeyDown
|
|
5233
|
-
},
|
|
5234
|
-
String(item.value)
|
|
5235
5265
|
);
|
|
5236
|
-
}
|
|
5266
|
+
},
|
|
5267
|
+
label: String(
|
|
5268
|
+
cell.column.columnDef.meta?.columnDef?.headerLabel ?? "Select"
|
|
5269
|
+
),
|
|
5270
|
+
options,
|
|
5271
|
+
value: selectedOption,
|
|
5272
|
+
onSelectedOptionChange: (option) => {
|
|
5273
|
+
if (!option) return;
|
|
5274
|
+
const id = String(option.id);
|
|
5275
|
+
const value = id === "true" ? true : id === "false" ? false : null;
|
|
5276
|
+
onChange?.(value, rowId);
|
|
5277
|
+
},
|
|
5278
|
+
disableSearch: true,
|
|
5279
|
+
onMenuKeyDown: handleMenuKeyDown,
|
|
5280
|
+
onImplicitClose: handleImplicitClose,
|
|
5281
|
+
popoverWidth: "reference"
|
|
5237
5282
|
}
|
|
5238
5283
|
);
|
|
5239
5284
|
}
|
|
@@ -5318,9 +5363,15 @@ function DataTableBodyMutableCell(props) {
|
|
|
5318
5363
|
if (editMode === "select") {
|
|
5319
5364
|
return DataTableEditableSelectCell;
|
|
5320
5365
|
}
|
|
5366
|
+
if (editMode === "select-async") {
|
|
5367
|
+
return DataTableEditableSelectAsyncCell;
|
|
5368
|
+
}
|
|
5321
5369
|
if (editMode === "multiselect") {
|
|
5322
5370
|
return DataTableEditableMultiselectCell;
|
|
5323
5371
|
}
|
|
5372
|
+
if (editMode === "multiselect-async") {
|
|
5373
|
+
return DataTableEditableMultiselectAsyncCell;
|
|
5374
|
+
}
|
|
5324
5375
|
if (editMode === "boolean") {
|
|
5325
5376
|
return DataTableEditableBooleanCell;
|
|
5326
5377
|
}
|
|
@@ -5866,10 +5917,8 @@ function getTanStackColumnDef({
|
|
|
5866
5917
|
enableResizing: columnDef.resizable,
|
|
5867
5918
|
enableSorting: !!columnDef.sortable,
|
|
5868
5919
|
meta: {
|
|
5869
|
-
editMode: columnDef.
|
|
5920
|
+
editMode: columnDef.editConfig?.mode,
|
|
5870
5921
|
editConfig: columnDef.editConfig,
|
|
5871
|
-
onChange: columnDef.onChange,
|
|
5872
|
-
options: columnDef.options,
|
|
5873
5922
|
columnDef
|
|
5874
5923
|
// Store original for type narrowing
|
|
5875
5924
|
},
|
|
@@ -6005,7 +6054,7 @@ function DataTableHeaderCellInner(props, forwardedRef) {
|
|
|
6005
6054
|
const isDisabled = header.column.columnDef.meta?.disableHeaderAction;
|
|
6006
6055
|
if (isSelectCell && !isDisabled) {
|
|
6007
6056
|
event.preventDefault();
|
|
6008
|
-
header.table.
|
|
6057
|
+
header.table.toggleAllPageRowsSelected();
|
|
6009
6058
|
return;
|
|
6010
6059
|
}
|
|
6011
6060
|
if (isExpandCell && !isDisabled) {
|
|
@@ -6245,8 +6294,8 @@ function DataTableHeader({ table }) {
|
|
|
6245
6294
|
}
|
|
6246
6295
|
|
|
6247
6296
|
const styles$2 = {
|
|
6248
|
-
"table-container": "_table-
|
|
6249
|
-
"table-scroll-container": "_table-scroll-
|
|
6297
|
+
"table-container": "_table-container_z7onx_2",
|
|
6298
|
+
"table-scroll-container": "_table-scroll-container_z7onx_57"
|
|
6250
6299
|
};
|
|
6251
6300
|
|
|
6252
6301
|
const TableContainer = forwardRef(
|
|
@@ -6338,6 +6387,67 @@ const useAsyncData = (dataOrPromise) => {
|
|
|
6338
6387
|
return { data: resolvedData, error, isLoading };
|
|
6339
6388
|
};
|
|
6340
6389
|
|
|
6390
|
+
const DEFAULT_CACHE_MAX_SIZE = 15;
|
|
6391
|
+
function usePageDataCache(config) {
|
|
6392
|
+
const { loadPageData, cache: cacheConfig } = config;
|
|
6393
|
+
const cacheEnabled = cacheConfig?.enabled !== false;
|
|
6394
|
+
const cacheMaxSize = cacheConfig?.maxSize ?? DEFAULT_CACHE_MAX_SIZE;
|
|
6395
|
+
const pageCacheRef = useRef(/* @__PURE__ */ new Map());
|
|
6396
|
+
const loadPageDataRef = useRef(loadPageData);
|
|
6397
|
+
loadPageDataRef.current = loadPageData;
|
|
6398
|
+
const generationRef = useRef(0);
|
|
6399
|
+
const prevRefreshKeyRef = useRef(config.refreshKey);
|
|
6400
|
+
const prevRefreshCounterRef = useRef(config.refreshCounter);
|
|
6401
|
+
const prevRowsPerPageRef = useRef(config.rowsPerPage);
|
|
6402
|
+
const prevSortingRef = useRef(config.sorting);
|
|
6403
|
+
if (prevRefreshKeyRef.current !== config.refreshKey || prevRefreshCounterRef.current !== config.refreshCounter || prevRowsPerPageRef.current !== config.rowsPerPage || prevSortingRef.current?.id !== config.sorting?.id || prevSortingRef.current?.desc !== config.sorting?.desc) {
|
|
6404
|
+
pageCacheRef.current = /* @__PURE__ */ new Map();
|
|
6405
|
+
generationRef.current += 1;
|
|
6406
|
+
prevRefreshKeyRef.current = config.refreshKey;
|
|
6407
|
+
prevRefreshCounterRef.current = config.refreshCounter;
|
|
6408
|
+
prevRowsPerPageRef.current = config.rowsPerPage;
|
|
6409
|
+
prevSortingRef.current = config.sorting;
|
|
6410
|
+
}
|
|
6411
|
+
const getOrLoad = useCallback(
|
|
6412
|
+
(pageIndex, pageSize, sorting) => {
|
|
6413
|
+
if (cacheEnabled) {
|
|
6414
|
+
const cached = pageCacheRef.current.get(pageIndex);
|
|
6415
|
+
if (cached) return cached;
|
|
6416
|
+
}
|
|
6417
|
+
const loader = loadPageDataRef.current;
|
|
6418
|
+
if (!loader) return [];
|
|
6419
|
+
const result = loader({ pageIndex, pageSize, sorting });
|
|
6420
|
+
if (!cacheEnabled) return result;
|
|
6421
|
+
const requestGeneration = generationRef.current;
|
|
6422
|
+
if (result instanceof Promise) {
|
|
6423
|
+
return result.then((data) => {
|
|
6424
|
+
if (generationRef.current !== requestGeneration) return data;
|
|
6425
|
+
const cache2 = pageCacheRef.current;
|
|
6426
|
+
if (cache2.size >= cacheMaxSize) {
|
|
6427
|
+
const oldest = cache2.keys().next().value;
|
|
6428
|
+
if (oldest != null) cache2.delete(oldest);
|
|
6429
|
+
}
|
|
6430
|
+
cache2.set(pageIndex, data);
|
|
6431
|
+
return data;
|
|
6432
|
+
});
|
|
6433
|
+
}
|
|
6434
|
+
const cache = pageCacheRef.current;
|
|
6435
|
+
if (cache.size >= cacheMaxSize) {
|
|
6436
|
+
const oldest = cache.keys().next().value;
|
|
6437
|
+
if (oldest != null) cache.delete(oldest);
|
|
6438
|
+
}
|
|
6439
|
+
cache.set(pageIndex, result);
|
|
6440
|
+
return result;
|
|
6441
|
+
},
|
|
6442
|
+
[cacheEnabled, cacheMaxSize]
|
|
6443
|
+
);
|
|
6444
|
+
const clearCache = useCallback(() => {
|
|
6445
|
+
pageCacheRef.current = /* @__PURE__ */ new Map();
|
|
6446
|
+
generationRef.current += 1;
|
|
6447
|
+
}, []);
|
|
6448
|
+
return { getOrLoad, clearCache };
|
|
6449
|
+
}
|
|
6450
|
+
|
|
6341
6451
|
function DTHoverProvider({ children }) {
|
|
6342
6452
|
const [state, dispatch] = useReducer(reducer$1, initialState$1);
|
|
6343
6453
|
return /* @__PURE__ */ jsx(DTHoverStateContext.Provider, { value: state, children: /* @__PURE__ */ jsx(DTHoverDispatchContext.Provider, { value: dispatch, children }) });
|
|
@@ -6611,6 +6721,7 @@ function DTFocusProvider({
|
|
|
6611
6721
|
return /* @__PURE__ */ jsx(DTFocusStateContext.Provider, { value: state, children: /* @__PURE__ */ jsx(DTFocusDispatchContext.Provider, { value: dispatch, children }) });
|
|
6612
6722
|
}
|
|
6613
6723
|
|
|
6724
|
+
const EMPTY_DATA = [];
|
|
6614
6725
|
function DataTableInner(props, ref) {
|
|
6615
6726
|
const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
|
|
6616
6727
|
const {
|
|
@@ -6667,15 +6778,26 @@ function DataTableInner(props, ref) {
|
|
|
6667
6778
|
}
|
|
6668
6779
|
});
|
|
6669
6780
|
const [refreshCounter, setRefreshCounter] = useState(0);
|
|
6781
|
+
const pageLoader = paginationObject?.loadPageData;
|
|
6782
|
+
const isAsyncPaginated = !!pageLoader && typeof pageLoader === "function";
|
|
6783
|
+
const { getOrLoad, clearCache } = usePageDataCache({
|
|
6784
|
+
loadPageData: pageLoader,
|
|
6785
|
+
cache: paginationObject?.cache,
|
|
6786
|
+
refreshKey,
|
|
6787
|
+
refreshCounter,
|
|
6788
|
+
rowsPerPage,
|
|
6789
|
+
sorting: sorting?.[0]
|
|
6790
|
+
});
|
|
6670
6791
|
useImperativeHandle(
|
|
6671
6792
|
ref,
|
|
6672
6793
|
() => ({
|
|
6673
6794
|
refresh: () => {
|
|
6674
6795
|
setRefreshCounter((c) => c + 1);
|
|
6675
6796
|
setCurrentPageIndex(0);
|
|
6676
|
-
}
|
|
6797
|
+
},
|
|
6798
|
+
clearCache
|
|
6677
6799
|
}),
|
|
6678
|
-
[setCurrentPageIndex]
|
|
6800
|
+
[setCurrentPageIndex, clearCache]
|
|
6679
6801
|
);
|
|
6680
6802
|
const isFirstRender = useRef(true);
|
|
6681
6803
|
useEffect(() => {
|
|
@@ -6687,23 +6809,20 @@ function DataTableInner(props, ref) {
|
|
|
6687
6809
|
setCurrentPageIndex(0);
|
|
6688
6810
|
}
|
|
6689
6811
|
}, [refreshKey]);
|
|
6690
|
-
const pageLoader = paginationObject?.loadPageData;
|
|
6691
|
-
const isAsyncPaginated = !!pageLoader && typeof pageLoader === "function";
|
|
6692
6812
|
const dataSource = useMemo(() => {
|
|
6693
6813
|
if (!isAsyncPaginated) {
|
|
6694
6814
|
return dataProp;
|
|
6695
6815
|
}
|
|
6696
|
-
return
|
|
6697
|
-
pageIndex: currentPageIndex ?? 0,
|
|
6698
|
-
pageSize: rowsPerPage
|
|
6699
|
-
});
|
|
6816
|
+
return getOrLoad(currentPageIndex ?? 0, rowsPerPage, sorting?.[0]);
|
|
6700
6817
|
}, [
|
|
6701
6818
|
isAsyncPaginated,
|
|
6702
6819
|
currentPageIndex,
|
|
6703
6820
|
rowsPerPage,
|
|
6704
6821
|
dataProp,
|
|
6705
6822
|
refreshKey,
|
|
6706
|
-
refreshCounter
|
|
6823
|
+
refreshCounter,
|
|
6824
|
+
getOrLoad,
|
|
6825
|
+
sorting
|
|
6707
6826
|
]);
|
|
6708
6827
|
const {
|
|
6709
6828
|
data: resolvedData,
|
|
@@ -6730,29 +6849,7 @@ function DataTableInner(props, ref) {
|
|
|
6730
6849
|
}
|
|
6731
6850
|
}
|
|
6732
6851
|
});
|
|
6733
|
-
const tableData =
|
|
6734
|
-
if (isLoading) return [];
|
|
6735
|
-
if (!isPaginated || isAsyncPaginated) return resolvedData;
|
|
6736
|
-
const maxPageIndex = Math.max(
|
|
6737
|
-
0,
|
|
6738
|
-
Math.ceil(totalItemCount / rowsPerPage) - 1
|
|
6739
|
-
);
|
|
6740
|
-
const clampedPageIndex = Math.max(
|
|
6741
|
-
0,
|
|
6742
|
-
Math.min(currentPageIndex ?? 0, maxPageIndex)
|
|
6743
|
-
);
|
|
6744
|
-
const startIndex = clampedPageIndex * rowsPerPage;
|
|
6745
|
-
const endIndex = startIndex + rowsPerPage;
|
|
6746
|
-
return resolvedData?.slice(startIndex, endIndex) ?? [];
|
|
6747
|
-
}, [
|
|
6748
|
-
isLoading,
|
|
6749
|
-
isPaginated,
|
|
6750
|
-
isAsyncPaginated,
|
|
6751
|
-
resolvedData,
|
|
6752
|
-
totalItemCount,
|
|
6753
|
-
rowsPerPage,
|
|
6754
|
-
currentPageIndex
|
|
6755
|
-
]);
|
|
6852
|
+
const tableData = isLoading ? EMPTY_DATA : resolvedData;
|
|
6756
6853
|
const hasRowStatus = useMemo(() => {
|
|
6757
6854
|
return tableData?.some((row) => {
|
|
6758
6855
|
const meta = row.meta;
|
|
@@ -6879,10 +6976,10 @@ function DataTableInner(props, ref) {
|
|
|
6879
6976
|
Checkbox,
|
|
6880
6977
|
{
|
|
6881
6978
|
tabIndex: -1,
|
|
6882
|
-
"aria-label": table2.
|
|
6883
|
-
checked: table2.
|
|
6884
|
-
indeterminate: table2.
|
|
6885
|
-
onChange: table2.
|
|
6979
|
+
"aria-label": table2.getIsAllPageRowsSelected() ? "Deselect all rows" : "Select all rows",
|
|
6980
|
+
checked: table2.getIsAllPageRowsSelected(),
|
|
6981
|
+
indeterminate: table2.getIsSomePageRowsSelected(),
|
|
6982
|
+
onChange: table2.getToggleAllPageRowsSelectedHandler(),
|
|
6886
6983
|
"data-cell-action": "select"
|
|
6887
6984
|
}
|
|
6888
6985
|
) });
|
|
@@ -6922,6 +7019,7 @@ function DataTableInner(props, ref) {
|
|
|
6922
7019
|
columns,
|
|
6923
7020
|
getCoreRowModel: getCoreRowModel(),
|
|
6924
7021
|
getSortedRowModel: getSortedRowModel(),
|
|
7022
|
+
getPaginationRowModel: getPaginationRowModel(),
|
|
6925
7023
|
getExpandedRowModel: getExpandedRowModel(),
|
|
6926
7024
|
getGroupedRowModel: getGroupedRowModel(),
|
|
6927
7025
|
getRowId: (row) => row.id.toString(),
|
|
@@ -6934,8 +7032,18 @@ function DataTableInner(props, ref) {
|
|
|
6934
7032
|
columnPinning,
|
|
6935
7033
|
rowSelection,
|
|
6936
7034
|
expanded,
|
|
6937
|
-
sorting
|
|
7035
|
+
sorting,
|
|
7036
|
+
...isPaginated && {
|
|
7037
|
+
pagination: {
|
|
7038
|
+
pageIndex: currentPageIndex ?? 0,
|
|
7039
|
+
pageSize: rowsPerPage
|
|
7040
|
+
}
|
|
7041
|
+
}
|
|
6938
7042
|
},
|
|
7043
|
+
manualPagination: !isPaginated || isAsyncPaginated,
|
|
7044
|
+
// Server provides sorted data via loadPageData; disable client-side sort.
|
|
7045
|
+
manualSorting: isAsyncPaginated,
|
|
7046
|
+
autoResetPageIndex: false,
|
|
6939
7047
|
columnResizeMode: "onChange",
|
|
6940
7048
|
enableRowSelection: typeof isSelectable === "function" ? (row) => isSelectable(row.original) : isSelectable,
|
|
6941
7049
|
onRowSelectionChange: (newRowSelection) => {
|
|
@@ -6951,11 +7059,14 @@ function DataTableInner(props, ref) {
|
|
|
6951
7059
|
return;
|
|
6952
7060
|
}
|
|
6953
7061
|
setSorting(newSorting);
|
|
7062
|
+
if (isPaginated) {
|
|
7063
|
+
setCurrentPageIndex(0);
|
|
7064
|
+
}
|
|
6954
7065
|
}
|
|
6955
7066
|
});
|
|
6956
7067
|
const headers = table.getFlatHeaders();
|
|
6957
7068
|
const headerRowCount = table.getHeaderGroups().length;
|
|
6958
|
-
const bodyRowCount = table.
|
|
7069
|
+
const bodyRowCount = table.getRowModel().rows.length;
|
|
6959
7070
|
const columnSizing = table.getState().columnSizing;
|
|
6960
7071
|
const getMaxFooterRows = useCallback((column) => {
|
|
6961
7072
|
let currentMax = 0;
|
|
@@ -7139,4 +7250,4 @@ function DataTableInner(props, ref) {
|
|
|
7139
7250
|
const DataTable = forwardRef(DataTableInner);
|
|
7140
7251
|
|
|
7141
7252
|
export { COLUMN_TYPE_DEFAULTS as C, DataTable as D, chipsFormatter as a, booleanFormatter as b, createColumnHelper$1 as c, currencyFormatter as d, dateFormatter as e, dateTimeFormatter as f, getColumnTypeDefaults as g, dateFormatPresets as h, timeFormatter as i, numberFormatter as n, percentFormatter as p, resolveColumnTypeConfig as r, timeFormatPresets as t, yearlessDateFormatter as y };
|
|
7142
|
-
//# sourceMappingURL=DataTable-
|
|
7253
|
+
//# sourceMappingURL=DataTable-DK9xRjnq.js.map
|