@servicetitan/anvil2 2.0.4 → 2.2.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 +56 -0
- package/dist/{Calendar-jO-0jbbt.js → Calendar-D0CczOpQ.js} +3 -835
- package/dist/Calendar-D0CczOpQ.js.map +1 -0
- package/dist/{Calendar-DxLrWESu.js → Calendar-oNlBgZKB.js} +2 -2
- package/dist/{Calendar-DxLrWESu.js.map → Calendar-oNlBgZKB.js.map} +1 -1
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-9VbydUcM.js → Checkbox-DIY-6agd.js} +12 -12
- package/dist/Checkbox-DIY-6agd.js.map +1 -0
- package/dist/{Checkbox-ZXftLNwB.js → Checkbox-DuzAqrE7.js} +2 -2
- package/dist/{Checkbox-ZXftLNwB.js.map → Checkbox-DuzAqrE7.js.map} +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/{Combobox-CNObHLjp.js → Combobox-CSGn20KQ.js} +14 -7
- package/dist/Combobox-CSGn20KQ.js.map +1 -0
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-CQpySyDq.js → DataTable-D30sE1Xt.js} +223 -19
- package/dist/DataTable-D30sE1Xt.js.map +1 -0
- package/dist/{DateFieldRange-BG86w0pX.js → DateFieldRange-DBOiqaML.js} +46 -36
- package/dist/DateFieldRange-DBOiqaML.js.map +1 -0
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-Byu_jyye.js → DateFieldSingle-C4hU55MP.js} +38 -29
- package/dist/DateFieldSingle-C4hU55MP.js.map +1 -0
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-Dw1k3_PY.js → DateFieldYearless-BXkUiHIR.js} +14 -13
- package/dist/DateFieldYearless-BXkUiHIR.js.map +1 -0
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange--plyld10.js → DateFieldYearlessRange-CGffFnVT.js} +14 -13
- package/dist/DateFieldYearlessRange-CGffFnVT.js.map +1 -0
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-vE310Rjp.js → DaysOfTheWeek-DJEDopC9.js} +9 -5
- package/dist/DaysOfTheWeek-DJEDopC9.js.map +1 -0
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Dialog-DZPaz84r.js → Dialog-BbsZMnCA.js} +4 -4
- package/dist/{Dialog-DZPaz84r.js.map → Dialog-BbsZMnCA.js.map} +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/{Drawer-pMQOa2jH.js → Drawer-Dhq76ot3.js} +4 -4
- package/dist/{Drawer-pMQOa2jH.js.map → Drawer-Dhq76ot3.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{FieldDialog-Be54L3E-.js → FieldDialog-CAuhkCZY.js} +541 -142
- package/dist/FieldDialog-CAuhkCZY.js.map +1 -0
- package/dist/FieldDialog.css +58 -28
- package/dist/{FieldLabel-DSrHbw9U.js → FieldLabel-DL0D6fvc.js} +2 -2
- package/dist/{FieldLabel-DSrHbw9U.js.map → FieldLabel-DL0D6fvc.js.map} +1 -1
- package/dist/FieldLabel.js +1 -1
- package/dist/FieldMessage-DS0COrjp.js +132 -0
- package/dist/FieldMessage-DS0COrjp.js.map +1 -0
- package/dist/FieldMessage.css +18 -4
- package/dist/FieldMessage.js +2 -1
- package/dist/FieldMessage.js.map +1 -1
- package/dist/{Helper-CK-XjpR3.js → Helper-PNGm_U2X.js} +7 -4
- package/dist/Helper-PNGm_U2X.js.map +1 -0
- package/dist/{InputMask-DoqWRi3t.js → InputMask-Ds0W2fKy.js} +2 -2
- package/dist/{InputMask-DoqWRi3t.js.map → InputMask-Ds0W2fKy.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{ListView-CtRhYAls.js → ListView-MMmJDM--.js} +2 -2
- package/dist/{ListView-CtRhYAls.js.map → ListView-MMmJDM--.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-xj7jXas-.js → MultiSelectFieldSync-Bey99LzJ.js} +178 -58
- package/dist/MultiSelectFieldSync-Bey99LzJ.js.map +1 -0
- package/dist/NumberField-CDkEUfXW.js +237 -0
- package/dist/NumberField-CDkEUfXW.js.map +1 -0
- package/dist/NumberField.js +1 -1
- package/dist/{Page-vc7zs4tn.js → Page-BVxybI-j.js} +6 -6
- package/dist/{Page-vc7zs4tn.js.map → Page-BVxybI-j.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{Popover-OOLK0hUz.js → Popover-4C5IVk8T.js} +7 -6
- package/dist/{Popover-OOLK0hUz.js.map → Popover-4C5IVk8T.js.map} +1 -1
- package/dist/Popover.css +15 -14
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-HA9RPZfC.js → ProgressBar-BGwp-qnf.js} +16 -11
- package/dist/ProgressBar-BGwp-qnf.js.map +1 -0
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-31wKzlZ4.js → Radio-BRcpSu-d.js} +12 -12
- package/dist/Radio-BRcpSu-d.js.map +1 -0
- package/dist/{Radio-BwWDJuLF.js → Radio-D7hNws2b.js} +2 -2
- package/dist/{Radio-BwWDJuLF.js.map → Radio-D7hNws2b.js.map} +1 -1
- package/dist/Radio.js +1 -1
- package/dist/{SelectCard-C91twG1S.js → SelectCard-Bag44PmE.js} +3 -3
- package/dist/{SelectCard-C91twG1S.js.map → SelectCard-Bag44PmE.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldSync-BFsJssdD.js → SelectFieldSync-CigqXq3T.js} +67 -50
- package/dist/SelectFieldSync-CigqXq3T.js.map +1 -0
- package/dist/{SelectTrigger-Cxhx9IVo.js → SelectTrigger-DgsvUfyl.js} +2 -2
- package/dist/{SelectTrigger-Cxhx9IVo.js.map → SelectTrigger-DgsvUfyl.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-aaOWep-V.js → SelectTriggerBase-OxfNqdIq.js} +12 -7
- package/dist/SelectTriggerBase-OxfNqdIq.js.map +1 -0
- package/dist/{Stepper-Jv9A3Ned.js → Stepper-D8lkCP8Y.js} +11 -2
- package/dist/Stepper-D8lkCP8Y.js.map +1 -0
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-DQICcdAv.js → Switch-D0zwZCg4.js} +2 -2
- package/dist/{Switch-DQICcdAv.js.map → Switch-D0zwZCg4.js.map} +1 -1
- package/dist/Switch.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{TextField-CDiiYSlT.js → TextField-BycenT6H.js} +13 -12
- package/dist/TextField-BycenT6H.js.map +1 -0
- package/dist/{TextField-CnYxS52Y.js → TextField-Dfzn2HeL.js} +2 -2
- package/dist/{TextField-CnYxS52Y.js.map → TextField-Dfzn2HeL.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-BnHIDj2P.js → Textarea-BwbwJP6z.js} +13 -12
- package/dist/Textarea-BwbwJP6z.js.map +1 -0
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-ChqK40k_.js → TimeField-B0WSzSfJ.js} +4 -4
- package/dist/{TimeField-ChqK40k_.js.map → TimeField-B0WSzSfJ.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/TimezoneMessage-Cnsl4cHT.js +84 -0
- package/dist/TimezoneMessage-Cnsl4cHT.js.map +1 -0
- package/dist/TimezoneMessage.css +7 -0
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-BlycAc63.js → Toaster-9Q_yaKGu.js} +18 -18
- package/dist/Toaster-9Q_yaKGu.js.map +1 -0
- package/dist/{Toaster-DW_bi2L9.js → Toaster-DHo8dnWH.js} +2 -2
- package/dist/{Toaster-DW_bi2L9.js.map → Toaster-DHo8dnWH.js.map} +1 -1
- package/dist/{Toolbar-vBomnRKG.js → Toolbar-CVOenuCF.js} +70 -23
- package/dist/Toolbar-CVOenuCF.js.map +1 -0
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-CUiAJXak.js → Tooltip-Bt62hC5J.js} +5 -5
- package/dist/{Tooltip-CUiAJXak.js.map → Tooltip-Bt62hC5J.js.map} +1 -1
- package/dist/Tooltip.css +9 -8
- package/dist/Tooltip.js +1 -1
- package/dist/{YearlessDateInputWithPicker-DZSb8sPf.js → YearlessDateInputWithPicker-ztozRk-X.js} +3 -3
- package/dist/{YearlessDateInputWithPicker-DZSb8sPf.js.map → YearlessDateInputWithPicker-ztozRk-X.js.map} +1 -1
- package/dist/beta/components/MultiSelectField/MultiSelectField.d.ts +2 -0
- package/dist/beta/components/MultiSelectField/MultiSelectFieldSync.d.ts +43 -4
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldList.d.ts +5 -5
- package/dist/beta/components/MultiSelectField/internal/useComboMultiple.d.ts +13 -2
- package/dist/beta/components/MultiSelectField/stories/MultiSelectField.stories.data.d.ts +1 -0
- package/dist/beta/components/MultiSelectField/types.d.ts +52 -8
- package/dist/beta/components/SelectField/SelectFieldSync.d.ts +10 -3
- package/dist/beta/components/SelectField/internal/FieldListBase.d.ts +6 -5
- package/dist/beta/components/SelectField/internal/SelectFieldList.d.ts +4 -2
- package/dist/beta/components/SelectField/internal/SelectFieldListItem.d.ts +2 -1
- package/dist/beta/components/SelectField/internal/VirtualizedFieldListBase.d.ts +2 -0
- package/dist/beta/components/SelectField/internal/useCombo.d.ts +3 -1
- package/dist/beta/components/SelectField/internal/useFieldListSections.d.ts +55 -0
- package/dist/beta/components/SelectField/stories/SelectField.stories.data.d.ts +1 -0
- package/dist/beta/components/SelectField/types.d.ts +24 -6
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableNumberCell.d.ts +7 -0
- package/dist/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +1 -0
- package/dist/beta/components/Table/DataTable/stories/DataTable.story-data.d.ts +1 -0
- package/dist/beta/components/Table/createColumnHelper.d.ts +36 -9
- package/dist/beta/components/Table/types.d.ts +54 -4
- package/dist/beta/components/Toolbar/Filters/internal/utils/filter-state.d.ts +1 -0
- package/dist/beta.js +7 -7
- package/dist/components/ButtonToggle/ButtonToggle.d.ts +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +2 -1
- package/dist/components/Checkbox/CheckboxGroup.d.ts +16 -8
- package/dist/components/Checkbox/internal/Checkbox.d.ts +1 -1
- package/dist/components/DateFieldRange/DateFieldRange.d.ts +8 -1
- package/dist/components/DateFieldRange/internal/DateFieldRangeCalendar.d.ts +3 -1
- package/dist/components/DateFieldSingle/DateFieldSingle.d.ts +8 -1
- package/dist/components/DateFieldSingle/internal/DateFieldSingleCalendar.d.ts +3 -1
- package/dist/components/DateFieldSingle/internal/TimezoneMessage.d.ts +6 -0
- package/dist/components/DateFieldSingle/internal/utils.d.ts +11 -0
- package/dist/components/DateFieldYearless/DateFieldYearless.d.ts +8 -3
- package/dist/components/DateFieldYearlessRange/DateFieldYearlessRange.d.ts +12 -1
- package/dist/components/DaysOfTheWeek/DaysOfTheWeek.d.ts +20 -6
- package/dist/components/Dialog/internal/useInitialFocus.d.ts +5 -1
- package/dist/components/FieldMessage/FieldMessage.d.ts +39 -20
- package/dist/components/FieldMessage/index.d.ts +1 -0
- package/dist/components/FieldMessage/utils.d.ts +7 -0
- package/dist/components/NumberField/NumberField.d.ts +24 -2
- package/dist/components/Page/Page.d.ts +2 -2
- package/dist/components/ProgressBar/ProgressBar.d.ts +8 -3
- package/dist/components/Radio/Radio.d.ts +2 -1
- package/dist/components/Radio/RadioGroup.d.ts +16 -8
- package/dist/components/SelectTrigger/internal/SelectTriggerBase.d.ts +1 -1
- package/dist/components/Stepper/Stepper.d.ts +6 -2
- package/dist/components/TextField/internal/TextField.d.ts +12 -1
- package/dist/components/Textarea/Textarea.d.ts +8 -5
- package/dist/index-DXeGMe23.js +836 -0
- package/dist/index-DXeGMe23.js.map +1 -0
- package/dist/{index.esm-BMOZFPwN.js → index.esm-C2ZhC_8d.js} +2 -2
- package/dist/{index.esm-BMOZFPwN.js.map → index.esm-C2ZhC_8d.js.map} +1 -1
- package/dist/{useOnClickOutside-Cyqbe1n3.js → index.esm-K9kxJhLx.js} +88 -94
- package/dist/index.esm-K9kxJhLx.js.map +1 -0
- package/dist/index.js +31 -30
- package/dist/index.js.map +1 -1
- package/dist/internal/components/Helper/Helper.d.ts +12 -3
- package/dist/internal/components/StatusIcon/StatusIcon.d.ts +45 -0
- package/dist/internal/components/StatusIcon/index.d.ts +1 -0
- package/dist/internal/functions/index.d.ts +1 -0
- package/dist/internal/functions/warnOnce.d.ts +5 -0
- package/dist/internal/hooks/useNumberField/useNumberField.d.ts +1 -1
- package/dist/{useDrilldown-lAdB3FFW.js → useDrilldown-jbU4Cs5l.js} +2 -598
- package/dist/useDrilldown-jbU4Cs5l.js.map +1 -0
- package/dist/{useInitialFocus-nOW12jQ5.js → useInitialFocus-BRRbylek.js} +2 -2
- package/dist/{useInitialFocus-nOW12jQ5.js.map → useInitialFocus-BRRbylek.js.map} +1 -1
- package/dist/{NumberField-W1k8V5Qq.js → useNumberField-eMyk7MB8.js} +5 -235
- package/dist/useNumberField-eMyk7MB8.js.map +1 -0
- package/dist/useOnClickOutside-Zw5vzxSq.js +71 -0
- package/dist/useOnClickOutside-Zw5vzxSq.js.map +1 -0
- package/dist/utils-pudAMGnO.js +25 -0
- package/dist/utils-pudAMGnO.js.map +1 -0
- package/package.json +9 -8
- package/dist/Calendar-jO-0jbbt.js.map +0 -1
- package/dist/Checkbox-9VbydUcM.js.map +0 -1
- package/dist/Combobox-CNObHLjp.js.map +0 -1
- package/dist/DataTable-CQpySyDq.js.map +0 -1
- package/dist/DateFieldRange-BG86w0pX.js.map +0 -1
- package/dist/DateFieldSingle-Byu_jyye.js.map +0 -1
- package/dist/DateFieldYearless-Dw1k3_PY.js.map +0 -1
- package/dist/DateFieldYearlessRange--plyld10.js.map +0 -1
- package/dist/DaysOfTheWeek-vE310Rjp.js.map +0 -1
- package/dist/FieldDialog-Be54L3E-.js.map +0 -1
- package/dist/FieldMessage-tEr6rWXS.js +0 -54
- package/dist/FieldMessage-tEr6rWXS.js.map +0 -1
- package/dist/Helper-CK-XjpR3.js.map +0 -1
- package/dist/MultiSelectFieldSync-xj7jXas-.js.map +0 -1
- package/dist/NumberField-W1k8V5Qq.js.map +0 -1
- package/dist/ProgressBar-HA9RPZfC.js.map +0 -1
- package/dist/Radio-31wKzlZ4.js.map +0 -1
- package/dist/SelectFieldSync-BFsJssdD.js.map +0 -1
- package/dist/SelectTriggerBase-aaOWep-V.js.map +0 -1
- package/dist/Stepper-Jv9A3Ned.js.map +0 -1
- package/dist/TextField-CDiiYSlT.js.map +0 -1
- package/dist/Textarea-BnHIDj2P.js.map +0 -1
- package/dist/Toaster-BlycAc63.js.map +0 -1
- package/dist/Toolbar-vBomnRKG.js.map +0 -1
- package/dist/useDrilldown-lAdB3FFW.js.map +0 -1
- package/dist/useOnClickOutside-Cyqbe1n3.js.map +0 -1
- package/dist/utils-BHKRoLps.js +0 -60
- package/dist/utils-BHKRoLps.js.map +0 -1
|
@@ -2,22 +2,24 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
|
2
2
|
import { C as Chip } from './Chip-Bc7jiIJ1.js';
|
|
3
3
|
import { F as Flex } from './Flex-CUtXN-C0.js';
|
|
4
4
|
import * as React from 'react';
|
|
5
|
-
import { useRef, useState, useLayoutEffect, createContext, useContext, useCallback, forwardRef, useMemo, useImperativeHandle, useEffect, Fragment as Fragment$1, useReducer } from 'react';
|
|
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-SvGbrGuT.js';
|
|
7
7
|
import { D as DateTime } from './luxon-wpz4A-OQ.js';
|
|
8
|
-
import {
|
|
8
|
+
import { a as warnOnce } from './utils-pudAMGnO.js';
|
|
9
|
+
import { C as Checkbox } from './Checkbox-DuzAqrE7.js';
|
|
9
10
|
import { B as Button } from './Button-l7pTJdPc.js';
|
|
10
11
|
import { S as SvgChevronRight } from './chevron_right-BdpsxX7x.js';
|
|
11
12
|
import { S as SvgEdit } from './edit-DQOiktcu.js';
|
|
12
13
|
import { I as Icon } from './Icon-Bcil6aBo.js';
|
|
13
14
|
import { S as SrOnly } from './SrOnly-CrdBTl6E.js';
|
|
15
|
+
import { u as useNumberField } from './useNumberField-eMyk7MB8.js';
|
|
16
|
+
import { u as useMergeRefs, m as mergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
14
17
|
import { M as Menu } from './Menu-3LIfRdTk.js';
|
|
15
|
-
import {
|
|
16
|
-
import { P as Popover } from './Popover-OOLK0hUz.js';
|
|
18
|
+
import { P as Popover } from './Popover-4C5IVk8T.js';
|
|
17
19
|
import { S as SearchField } from './SearchField-CoeaOip5.js';
|
|
18
|
-
import { L as ListView } from './ListView-
|
|
20
|
+
import { L as ListView } from './ListView-MMmJDM--.js';
|
|
19
21
|
import { S as SvgError } from './error-DR_wWdYY.js';
|
|
20
|
-
import { T as Tooltip } from './Tooltip-
|
|
22
|
+
import { T as Tooltip } from './Tooltip-Bt62hC5J.js';
|
|
21
23
|
import { flushSync } from 'react-dom';
|
|
22
24
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-loxbyklF.js';
|
|
23
25
|
import './anvil-fonts.css';import './DataTable.css';/* empty css */
|
|
@@ -402,22 +404,19 @@ function getColumnTypeDefaults(type) {
|
|
|
402
404
|
}
|
|
403
405
|
|
|
404
406
|
function logDeprecationWarnings(id, column) {
|
|
405
|
-
if (process.env.NODE_ENV === "production") {
|
|
406
|
-
return;
|
|
407
|
-
}
|
|
408
407
|
const columnId = typeof id === "object" && "group" in id ? id.group : String(id);
|
|
409
408
|
if ("editMode" in column && column.editMode && !("editConfig" in column && column.editConfig)) {
|
|
410
|
-
|
|
409
|
+
warnOnce(
|
|
411
410
|
`[Anvil2 DataTable] Column "${columnId}" uses deprecated \`editMode\` prop. Migrate to \`editConfig: { mode: "${column.editMode}", onChange: ... }\``
|
|
412
411
|
);
|
|
413
412
|
}
|
|
414
413
|
if ("onChange" in column && column.onChange && !("editConfig" in column && column.editConfig)) {
|
|
415
|
-
|
|
414
|
+
warnOnce(
|
|
416
415
|
`[Anvil2 DataTable] Column "${columnId}" uses deprecated top-level \`onChange\`. Move \`onChange\` inside \`editConfig\`.`
|
|
417
416
|
);
|
|
418
417
|
}
|
|
419
418
|
if ("options" in column && column.options && !("editConfig" in column && column.editConfig)) {
|
|
420
|
-
|
|
419
|
+
warnOnce(
|
|
421
420
|
`[Anvil2 DataTable] Column "${columnId}" uses deprecated top-level \`options\`. Move \`options\` inside \`editConfig\`.`
|
|
422
421
|
);
|
|
423
422
|
}
|
|
@@ -431,9 +430,12 @@ function transformEditConfig(column) {
|
|
|
431
430
|
editMode: editConfig.mode,
|
|
432
431
|
onChange: editConfig.onChange
|
|
433
432
|
};
|
|
434
|
-
if ("
|
|
435
|
-
|
|
433
|
+
if (editConfig.mode === "select" || editConfig.mode === "multiselect") {
|
|
434
|
+
if ("options" in editConfig) {
|
|
435
|
+
result.options = editConfig.options;
|
|
436
|
+
}
|
|
436
437
|
}
|
|
438
|
+
result.editConfig = editConfig;
|
|
437
439
|
return result;
|
|
438
440
|
}
|
|
439
441
|
function createColumnHelper$1() {
|
|
@@ -4170,9 +4172,6 @@ function DataTableEditableTextCellInner(props, ref) {
|
|
|
4170
4172
|
case "string":
|
|
4171
4173
|
value = cellValue;
|
|
4172
4174
|
break;
|
|
4173
|
-
case "number":
|
|
4174
|
-
value = String(cellValue);
|
|
4175
|
-
break;
|
|
4176
4175
|
case "boolean":
|
|
4177
4176
|
value = String(cellValue);
|
|
4178
4177
|
break;
|
|
@@ -4344,6 +4343,204 @@ const DataTableEditableTextCell = Object.assign(
|
|
|
4344
4343
|
{ displayName: "DataTableEditableTextCell" }
|
|
4345
4344
|
);
|
|
4346
4345
|
|
|
4346
|
+
function DataTableEditableNumberCellInner(props, ref) {
|
|
4347
|
+
const { cell, cellProps, cellPosition, children } = props;
|
|
4348
|
+
const { onKeyDown: onCellKeyDown } = cellProps;
|
|
4349
|
+
const cellRef = useRef(null);
|
|
4350
|
+
const localInputRef = useRef(null);
|
|
4351
|
+
const rowId = cell.row.id;
|
|
4352
|
+
const [isEditing, setIsEditing] = useState(false);
|
|
4353
|
+
const columnId = getColumnId(cell);
|
|
4354
|
+
const cellValue = getCellValue(cell);
|
|
4355
|
+
const [initialValue, isValidValueType] = useMemo(() => {
|
|
4356
|
+
let value;
|
|
4357
|
+
let isValid = true;
|
|
4358
|
+
if (cellValue === void 0 || cellValue === null) {
|
|
4359
|
+
value = null;
|
|
4360
|
+
isValid = true;
|
|
4361
|
+
return [value, isValid];
|
|
4362
|
+
}
|
|
4363
|
+
if (typeof cellValue === "number") {
|
|
4364
|
+
value = cellValue;
|
|
4365
|
+
} else {
|
|
4366
|
+
value = null;
|
|
4367
|
+
isValid = false;
|
|
4368
|
+
}
|
|
4369
|
+
if (!isValid) {
|
|
4370
|
+
logWarningForInvalidCellValueType({
|
|
4371
|
+
columnId: String(columnId),
|
|
4372
|
+
editMode: "number",
|
|
4373
|
+
expectedType: "number",
|
|
4374
|
+
receivedType: Array.isArray(cellValue) ? "array" : typeof cellValue
|
|
4375
|
+
});
|
|
4376
|
+
}
|
|
4377
|
+
return [value, isValid];
|
|
4378
|
+
}, [cellValue, columnId]);
|
|
4379
|
+
const editConfig = cell.column.columnDef.meta?.editConfig;
|
|
4380
|
+
const numberEditOptions = useMemo(() => {
|
|
4381
|
+
if (editConfig && editConfig.mode === "number") {
|
|
4382
|
+
const { mode: _, onChange: __, ...options } = editConfig;
|
|
4383
|
+
return options;
|
|
4384
|
+
}
|
|
4385
|
+
return {};
|
|
4386
|
+
}, [editConfig]);
|
|
4387
|
+
const [draftValue, setDraftValue] = useState(initialValue);
|
|
4388
|
+
const { inputRef: numberFieldInputRef, inputProps } = useNumberField({
|
|
4389
|
+
value: draftValue,
|
|
4390
|
+
onChange: setDraftValue,
|
|
4391
|
+
...numberEditOptions
|
|
4392
|
+
});
|
|
4393
|
+
const combinedInputRef = useMergeRefs([localInputRef, numberFieldInputRef]);
|
|
4394
|
+
const [tabIndex, setTabIndex] = useState(-1);
|
|
4395
|
+
const { moveFocusToCell } = useDTFocusDispatchContext();
|
|
4396
|
+
const instructionsId = useId();
|
|
4397
|
+
const headerLabel = cell.column.columnDef.meta?.columnDef?.headerLabel ?? String(columnId);
|
|
4398
|
+
const inputAriaLabel = `${headerLabel}, row ${cellPosition.rowIndex + 1}`;
|
|
4399
|
+
const skipCommitOnBlur = useRef(false);
|
|
4400
|
+
const onChange = getCellOnChange(cell);
|
|
4401
|
+
const commitValue = useCallback(() => {
|
|
4402
|
+
if (draftValue !== initialValue) {
|
|
4403
|
+
onChange?.(draftValue, rowId);
|
|
4404
|
+
}
|
|
4405
|
+
setIsEditing(false);
|
|
4406
|
+
}, [rowId, draftValue, onChange, initialValue]);
|
|
4407
|
+
const resetValue = useCallback(() => {
|
|
4408
|
+
setDraftValue(initialValue);
|
|
4409
|
+
skipCommitOnBlur.current = true;
|
|
4410
|
+
cellRef.current?.focus();
|
|
4411
|
+
setIsEditing(false);
|
|
4412
|
+
}, [initialValue]);
|
|
4413
|
+
const beginEditing = useCallback(() => {
|
|
4414
|
+
setDraftValue(initialValue);
|
|
4415
|
+
setIsEditing(true);
|
|
4416
|
+
}, [initialValue]);
|
|
4417
|
+
useImperativeHandle(ref, () => ({
|
|
4418
|
+
invoke: beginEditing,
|
|
4419
|
+
focus: () => {
|
|
4420
|
+
cellRef.current?.focus();
|
|
4421
|
+
setTabIndex(0);
|
|
4422
|
+
}
|
|
4423
|
+
}));
|
|
4424
|
+
const handleInputKeyDown = useCallback(
|
|
4425
|
+
(event) => {
|
|
4426
|
+
if (event.key === "Enter" || event.key === "F2") {
|
|
4427
|
+
event.preventDefault();
|
|
4428
|
+
skipCommitOnBlur.current = true;
|
|
4429
|
+
cellRef.current?.focus();
|
|
4430
|
+
commitValue();
|
|
4431
|
+
return;
|
|
4432
|
+
} else if (event.key === "Escape") {
|
|
4433
|
+
event.preventDefault();
|
|
4434
|
+
resetValue();
|
|
4435
|
+
return;
|
|
4436
|
+
}
|
|
4437
|
+
},
|
|
4438
|
+
[commitValue, resetValue]
|
|
4439
|
+
);
|
|
4440
|
+
const handleInputBlur = useCallback(() => {
|
|
4441
|
+
if (skipCommitOnBlur.current) {
|
|
4442
|
+
skipCommitOnBlur.current = false;
|
|
4443
|
+
return;
|
|
4444
|
+
}
|
|
4445
|
+
commitValue();
|
|
4446
|
+
}, [commitValue]);
|
|
4447
|
+
const classes = cx(
|
|
4448
|
+
styles$a["data-table-body-cell-editable"],
|
|
4449
|
+
cellProps.className,
|
|
4450
|
+
{
|
|
4451
|
+
[styles$9["data-table-body-cell-editing"]]: isEditing
|
|
4452
|
+
}
|
|
4453
|
+
);
|
|
4454
|
+
const handleCellKeyDown = useCallback(
|
|
4455
|
+
(event) => {
|
|
4456
|
+
if (isEditing) {
|
|
4457
|
+
return;
|
|
4458
|
+
}
|
|
4459
|
+
onCellKeyDown?.(event);
|
|
4460
|
+
},
|
|
4461
|
+
[onCellKeyDown, isEditing]
|
|
4462
|
+
);
|
|
4463
|
+
const handleCellFocus = useCallback(
|
|
4464
|
+
(event) => {
|
|
4465
|
+
if (event.target !== cellRef.current) {
|
|
4466
|
+
return;
|
|
4467
|
+
}
|
|
4468
|
+
event.preventDefault();
|
|
4469
|
+
setTabIndex(0);
|
|
4470
|
+
},
|
|
4471
|
+
[setTabIndex]
|
|
4472
|
+
);
|
|
4473
|
+
const handleCellBlur = useCallback(
|
|
4474
|
+
(e) => {
|
|
4475
|
+
if (cellRef.current?.contains(e.relatedTarget)) {
|
|
4476
|
+
return;
|
|
4477
|
+
}
|
|
4478
|
+
setTabIndex(-1);
|
|
4479
|
+
},
|
|
4480
|
+
[setTabIndex, cellRef]
|
|
4481
|
+
);
|
|
4482
|
+
const handleCellMouseDown = useCallback(
|
|
4483
|
+
(e) => {
|
|
4484
|
+
e.preventDefault();
|
|
4485
|
+
e.stopPropagation();
|
|
4486
|
+
beginEditing();
|
|
4487
|
+
moveFocusToCell(cellPosition);
|
|
4488
|
+
},
|
|
4489
|
+
[beginEditing, cellPosition, moveFocusToCell]
|
|
4490
|
+
);
|
|
4491
|
+
const cellFocusContextValue = useMemo(
|
|
4492
|
+
() => ({ isCellFocused: tabIndex === 0 && !isEditing }),
|
|
4493
|
+
[tabIndex, isEditing]
|
|
4494
|
+
);
|
|
4495
|
+
useEffect(() => {
|
|
4496
|
+
if (isEditing) {
|
|
4497
|
+
localInputRef.current?.focus();
|
|
4498
|
+
}
|
|
4499
|
+
}, [isEditing]);
|
|
4500
|
+
if (!isValidValueType) {
|
|
4501
|
+
const { cellProps: _cellProps, ...immutableCellProps } = props;
|
|
4502
|
+
return /* @__PURE__ */ jsx(DataTableBodyImmutableCell, { ...immutableCellProps });
|
|
4503
|
+
}
|
|
4504
|
+
return /* @__PURE__ */ jsxs(
|
|
4505
|
+
TableBodyCell,
|
|
4506
|
+
{
|
|
4507
|
+
ref: cellRef,
|
|
4508
|
+
type: "data-table",
|
|
4509
|
+
className: classes,
|
|
4510
|
+
style: cellProps.style,
|
|
4511
|
+
onMouseDown: handleCellMouseDown,
|
|
4512
|
+
onKeyDown: handleCellKeyDown,
|
|
4513
|
+
tabIndex,
|
|
4514
|
+
onFocus: handleCellFocus,
|
|
4515
|
+
onBlur: handleCellBlur,
|
|
4516
|
+
"data-cell-pos": formatCellPositionString(cellPosition),
|
|
4517
|
+
children: [
|
|
4518
|
+
isEditing ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
|
4519
|
+
"input",
|
|
4520
|
+
{
|
|
4521
|
+
ref: combinedInputRef,
|
|
4522
|
+
...inputProps,
|
|
4523
|
+
name: `${cell.column.id}-row-${cellPosition.rowIndex}`,
|
|
4524
|
+
"aria-label": inputAriaLabel,
|
|
4525
|
+
"aria-describedby": instructionsId,
|
|
4526
|
+
className: styles$a["data-table-body-cell-input"],
|
|
4527
|
+
onBlur: handleInputBlur,
|
|
4528
|
+
onKeyDown: handleInputKeyDown
|
|
4529
|
+
}
|
|
4530
|
+
) }) : /* @__PURE__ */ jsxs(CellFocusContext.Provider, { value: cellFocusContextValue, children: [
|
|
4531
|
+
children,
|
|
4532
|
+
!isEditing && /* @__PURE__ */ jsx(DataTableEditableCellEditIcon, {})
|
|
4533
|
+
] }),
|
|
4534
|
+
/* @__PURE__ */ jsx(SrOnly, { id: instructionsId, children: isEditing ? "Press Enter or F2 to save cell value." : "Press Enter or F2 to edit cell value. Press Escape to cancel." })
|
|
4535
|
+
]
|
|
4536
|
+
}
|
|
4537
|
+
);
|
|
4538
|
+
}
|
|
4539
|
+
const DataTableEditableNumberCell = Object.assign(
|
|
4540
|
+
forwardRef(DataTableEditableNumberCellInner),
|
|
4541
|
+
{ displayName: "DataTableEditableNumberCell" }
|
|
4542
|
+
);
|
|
4543
|
+
|
|
4347
4544
|
function DataTableEditableSelectCellInner(props, ref) {
|
|
4348
4545
|
const { cell, cellProps, cellPosition, children } = props;
|
|
4349
4546
|
const { onKeyDown: onCellKeyDown } = cellProps;
|
|
@@ -4890,6 +5087,9 @@ function DataTableBodyMutableCell(props) {
|
|
|
4890
5087
|
if (editMode === "text") {
|
|
4891
5088
|
return DataTableEditableTextCell;
|
|
4892
5089
|
}
|
|
5090
|
+
if (editMode === "number") {
|
|
5091
|
+
return DataTableEditableNumberCell;
|
|
5092
|
+
}
|
|
4893
5093
|
if (editMode === "select") {
|
|
4894
5094
|
return DataTableEditableSelectCell;
|
|
4895
5095
|
}
|
|
@@ -5384,7 +5584,10 @@ function getTanStackColumnDef({
|
|
|
5384
5584
|
cell: (info) => {
|
|
5385
5585
|
let cellContent;
|
|
5386
5586
|
if (resolvedRenderCell) {
|
|
5387
|
-
cellContent = resolvedRenderCell(info.getValue(),
|
|
5587
|
+
cellContent = resolvedRenderCell(info.getValue(), {
|
|
5588
|
+
row: info.row.original,
|
|
5589
|
+
depth: info.row.depth
|
|
5590
|
+
});
|
|
5388
5591
|
} else {
|
|
5389
5592
|
cellContent = info.getValue();
|
|
5390
5593
|
}
|
|
@@ -5417,6 +5620,7 @@ function getTanStackColumnDef({
|
|
|
5417
5620
|
enableSorting: !!columnDef.sortable,
|
|
5418
5621
|
meta: {
|
|
5419
5622
|
editMode: columnDef.editMode,
|
|
5623
|
+
editConfig: columnDef.editConfig,
|
|
5420
5624
|
onChange: columnDef.onChange,
|
|
5421
5625
|
options: columnDef.options,
|
|
5422
5626
|
columnDef
|
|
@@ -6633,4 +6837,4 @@ function DataTableInner(props, ref) {
|
|
|
6633
6837
|
const DataTable = forwardRef(DataTableInner);
|
|
6634
6838
|
|
|
6635
6839
|
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 };
|
|
6636
|
-
//# sourceMappingURL=DataTable-
|
|
6840
|
+
//# sourceMappingURL=DataTable-D30sE1Xt.js.map
|