@economic/taco 1.21.1 → 1.21.3
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/dist/components/Provider/Localization.d.ts +70 -7
- package/dist/components/Table2/Table2.d.ts +74 -9
- package/dist/components/Table2/Table2.stories.d.ts +0 -1
- package/dist/components/Table2/components/EditModeButton.d.ts +1 -0
- package/dist/components/Table2/components/filters/components/InferredControl.d.ts +1 -1
- package/dist/components/Table2/types.d.ts +7 -4
- package/dist/components/Table2/utilities/columns.d.ts +5 -4
- package/dist/esm/packages/taco/src/components/Provider/Localization.js +70 -7
- package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
- package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js +1 -0
- package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/Select2.js +1 -1
- package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/Table2.js +17 -6
- package/dist/esm/packages/taco/src/components/Table2/Table2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/ColumnSettingsButton.js +24 -22
- package/dist/esm/packages/taco/src/components/Table2/components/ColumnSettingsButton.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/EditModeButton.js +23 -4
- package/dist/esm/packages/taco/src/components/Table2/components/EditModeButton.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/RowDensityButton.js +6 -2
- package/dist/esm/packages/taco/src/components/Table2/components/RowDensityButton.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/Search.js +5 -0
- package/dist/esm/packages/taco/src/components/Table2/components/Search.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/ShortcutsGuideButton.js +14 -16
- package/dist/esm/packages/taco/src/components/Table2/components/ShortcutsGuideButton.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/column/Cell.js +14 -6
- package/dist/esm/packages/taco/src/components/Table2/components/column/Cell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/column/Footer.js +6 -2
- package/dist/esm/packages/taco/src/components/Table2/components/column/Footer.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/column/Indicator.js +10 -12
- package/dist/esm/packages/taco/src/components/Table2/components/column/Indicator.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/filters/FiltersButton.js +10 -5
- package/dist/esm/packages/taco/src/components/Table2/components/filters/FiltersButton.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/filters/components/ColumnFilter.js +5 -5
- package/dist/esm/packages/taco/src/components/Table2/components/filters/components/ColumnFilter.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/filters/components/Comparator.js +20 -12
- package/dist/esm/packages/taco/src/components/Table2/components/filters/components/Comparator.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/filters/components/InferredControl.js +3 -0
- package/dist/esm/packages/taco/src/components/Table2/components/filters/components/InferredControl.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/row/Row.js +4 -3
- package/dist/esm/packages/taco/src/components/Table2/components/row/Row.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/useColumnDefinitions.js +8 -4
- package/dist/esm/packages/taco/src/components/Table2/hooks/useColumnDefinitions.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/useGridTemplate.js +1 -5
- package/dist/esm/packages/taco/src/components/Table2/hooks/useGridTemplate.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/types.js +2 -0
- package/dist/esm/packages/taco/src/components/Table2/types.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/utilities/cell.js +1 -1
- package/dist/esm/packages/taco/src/components/Table2/utilities/cell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js +31 -37
- package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/utilities/filterFn.js +4 -0
- package/dist/esm/packages/taco/src/components/Table2/utilities/filterFn.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js +2 -1
- package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js.map +1 -1
- package/dist/taco.cjs.development.js +274 -151
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +2 -2
- package/types.json +316 -9
@@ -1,13 +1,17 @@
|
|
1
1
|
import React__default from 'react';
|
2
2
|
import { IconButton } from '../../IconButton/IconButton.js';
|
3
|
+
import { useLocalization } from '../../Provider/Localization.js';
|
3
4
|
import { Menu } from '../../Menu/Menu.js';
|
4
5
|
|
5
6
|
const RowDensityButton = ({
|
6
7
|
table
|
7
8
|
}) => {
|
9
|
+
const {
|
10
|
+
texts
|
11
|
+
} = useLocalization();
|
8
12
|
const meta = table.options.meta;
|
9
13
|
return /*#__PURE__*/React__default.createElement(IconButton, {
|
10
|
-
"aria-label":
|
14
|
+
"aria-label": texts.table2.rowDensity.tooltip,
|
11
15
|
icon: `density-${meta.rowDensity}`,
|
12
16
|
menu: menuProps => /*#__PURE__*/React__default.createElement(Menu, Object.assign({}, menuProps), /*#__PURE__*/React__default.createElement(Menu.Content, {
|
13
17
|
align: "end"
|
@@ -23,7 +27,7 @@ const RowDensityButton = ({
|
|
23
27
|
}, "Comfortable"), /*#__PURE__*/React__default.createElement(Menu.RadioGroup.Item, {
|
24
28
|
value: "spacious"
|
25
29
|
}, "Spacious")))),
|
26
|
-
tooltip:
|
30
|
+
tooltip: texts.table2.rowDensity.tooltip
|
27
31
|
});
|
28
32
|
};
|
29
33
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RowDensityButton.js","sources":["../../../../../../../../src/components/Table2/components/RowDensityButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as RTTable, TableMeta } from '@tanstack/react-table';\nimport { IconName } from '../../Icon/Icon';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { Menu } from '../../Menu/Menu';\nimport { RowDensity } from '../types';\n\ntype RowDensityButtonProps = {\n table: RTTable<any>;\n};\n\nexport const RowDensityButton = ({ table }: RowDensityButtonProps) => {\n const meta = table.options.meta as TableMeta<any>;\n return (\n <IconButton\n aria-label
|
1
|
+
{"version":3,"file":"RowDensityButton.js","sources":["../../../../../../../../src/components/Table2/components/RowDensityButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as RTTable, TableMeta } from '@tanstack/react-table';\nimport { IconName } from '../../Icon/Icon';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { Menu } from '../../Menu/Menu';\nimport { RowDensity } from '../types';\nimport { useLocalization } from '../../Provider/Localization';\n\ntype RowDensityButtonProps = {\n table: RTTable<any>;\n};\n\nexport const RowDensityButton = ({ table }: RowDensityButtonProps) => {\n const { texts } = useLocalization();\n const meta = table.options.meta as TableMeta<any>;\n\n return (\n <IconButton\n aria-label={texts.table2.rowDensity.tooltip}\n icon={`density-${meta.rowDensity}` as IconName}\n menu={menuProps => (\n <Menu {...menuProps}>\n <Menu.Content align=\"end\">\n <Menu.RadioGroup\n onChange={rowDensity => meta.setRowDensity(rowDensity as RowDensity)}\n value={meta.rowDensity}>\n <Menu.RadioGroup.Item value=\"compact\">Compact</Menu.RadioGroup.Item>\n <Menu.RadioGroup.Item value=\"normal\">Normal</Menu.RadioGroup.Item>\n <Menu.RadioGroup.Item value=\"comfortable\">Comfortable</Menu.RadioGroup.Item>\n <Menu.RadioGroup.Item value=\"spacious\">Spacious</Menu.RadioGroup.Item>\n </Menu.RadioGroup>\n </Menu.Content>\n </Menu>\n )}\n tooltip={texts.table2.rowDensity.tooltip}\n />\n );\n};\n"],"names":["RowDensityButton","table","texts","useLocalization","meta","options","React","IconButton","table2","rowDensity","tooltip","icon","menu","menuProps","Menu","Content","align","RadioGroup","onChange","setRowDensity","value","Item"],"mappings":";;;;;MAYaA,gBAAgB,GAAG,CAAC;EAAEC;CAA8B;EAC7D,MAAM;IAAEC;GAAO,GAAGC,eAAe,EAAE;EACnC,MAAMC,IAAI,GAAGH,KAAK,CAACI,OAAO,CAACD,IAAsB;EAEjD,oBACIE,6BAACC,UAAU;kBACKL,KAAK,CAACM,MAAM,CAACC,UAAU,CAACC,OAAO;IAC3CC,IAAI,aAAaP,IAAI,CAACK,YAAwB;IAC9CG,IAAI,EAAEC,SAAS,iBACXP,6BAACQ,IAAI,oBAAKD,SAAS,gBACfP,6BAACQ,IAAI,CAACC,OAAO;MAACC,KAAK,EAAC;oBAChBV,6BAACQ,IAAI,CAACG,UAAU;MACZC,QAAQ,EAAET,UAAU,IAAIL,IAAI,CAACe,aAAa,CAACV,UAAwB,CAAC;MACpEW,KAAK,EAAEhB,IAAI,CAACK;oBACZH,6BAACQ,IAAI,CAACG,UAAU,CAACI,IAAI;MAACD,KAAK,EAAC;iBAAwC,eACpEd,6BAACQ,IAAI,CAACG,UAAU,CAACI,IAAI;MAACD,KAAK,EAAC;gBAAsC,eAClEd,6BAACQ,IAAI,CAACG,UAAU,CAACI,IAAI;MAACD,KAAK,EAAC;qBAAgD,eAC5Ed,6BAACQ,IAAI,CAACG,UAAU,CAACI,IAAI;MAACD,KAAK,EAAC;kBAA0C,CACxD,CACP,CAEtB;IACDV,OAAO,EAAER,KAAK,CAACM,MAAM,CAACC,UAAU,CAACC;IACnC;AAEV;;;;"}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import React__default from 'react';
|
2
2
|
import cn from 'classnames';
|
3
|
+
import { useLocalization } from '../../Provider/Localization.js';
|
3
4
|
import { SearchInput } from '../../SearchInput/SearchInput.js';
|
4
5
|
import { useGlobalKeyboardShortcut } from '../../../hooks/useGlobalKeyboardShortcut.js';
|
5
6
|
|
@@ -8,6 +9,9 @@ const Search = props => {
|
|
8
9
|
value,
|
9
10
|
...attributes
|
10
11
|
} = props;
|
12
|
+
const {
|
13
|
+
texts
|
14
|
+
} = useLocalization();
|
11
15
|
const ref = React__default.useRef(null);
|
12
16
|
const handleKeyDown = event => {
|
13
17
|
if (event.key === 'Escape') {
|
@@ -47,6 +51,7 @@ const Search = props => {
|
|
47
51
|
onBlur: handleBlur,
|
48
52
|
onInput: handleInput,
|
49
53
|
onKeyDown: handleKeyDown,
|
54
|
+
placeholder: texts.table2.search.placeholder,
|
50
55
|
ref: ref
|
51
56
|
}));
|
52
57
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Search.js","sources":["../../../../../../../../src/components/Table2/components/Search.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { SearchInput, SearchInputProps } from '../../SearchInput/SearchInput';\nimport { useGlobalKeyboardShortcut } from '../../../hooks/useGlobalKeyboardShortcut';\n\nexport const Search = (props: SearchInputProps) => {\n const { value, ...attributes } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Escape') {\n props.onSearch?.('');\n }\n };\n\n // gets called when the \"clear\" button is clicked\n const handleInput = (event: React.FormEvent<HTMLInputElement>) => {\n if (props.onInput) {\n props.onInput(event);\n }\n\n if (!event.isDefaultPrevented() && !event.currentTarget.value) {\n props.onSearch?.('');\n }\n };\n\n const handleBlur = event => {\n const value = event.target.value;\n props.onSearch?.(value);\n };\n\n useGlobalKeyboardShortcut((event: KeyboardEvent) => {\n if (event.key === 'f' && (event.ctrlKey || event.metaKey)) {\n if (document.activeElement !== ref.current) {\n event.preventDefault();\n ref.current?.focus();\n }\n }\n });\n\n const className = cn('w-48', {\n '!wcag-blue-100': !!value,\n });\n\n return (\n <SearchInput\n {...attributes}\n className={className}\n onBlur={handleBlur}\n onInput={handleInput}\n onKeyDown={handleKeyDown}\n ref={ref}\n />\n );\n};\n"],"names":["Search","props","value","attributes","ref","React","useRef","handleKeyDown","event","key","onSearch","handleInput","onInput","isDefaultPrevented","currentTarget","handleBlur","target","useGlobalKeyboardShortcut","ctrlKey","metaKey","document","activeElement","current","preventDefault","focus","className","cn","SearchInput","onBlur","onKeyDown"],"mappings":"
|
1
|
+
{"version":3,"file":"Search.js","sources":["../../../../../../../../src/components/Table2/components/Search.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { SearchInput, SearchInputProps } from '../../SearchInput/SearchInput';\nimport { useGlobalKeyboardShortcut } from '../../../hooks/useGlobalKeyboardShortcut';\nimport { useLocalization } from '../../Provider/Localization';\n\nexport const Search = (props: SearchInputProps) => {\n const { value, ...attributes } = props;\n const { texts } = useLocalization();\n const ref = React.useRef<HTMLInputElement>(null);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Escape') {\n props.onSearch?.('');\n }\n };\n\n // gets called when the \"clear\" button is clicked\n const handleInput = (event: React.FormEvent<HTMLInputElement>) => {\n if (props.onInput) {\n props.onInput(event);\n }\n\n if (!event.isDefaultPrevented() && !event.currentTarget.value) {\n props.onSearch?.('');\n }\n };\n\n const handleBlur = event => {\n const value = event.target.value;\n props.onSearch?.(value);\n };\n\n useGlobalKeyboardShortcut((event: KeyboardEvent) => {\n if (event.key === 'f' && (event.ctrlKey || event.metaKey)) {\n if (document.activeElement !== ref.current) {\n event.preventDefault();\n ref.current?.focus();\n }\n }\n });\n\n const className = cn('w-48', {\n '!wcag-blue-100': !!value,\n });\n\n return (\n <SearchInput\n {...attributes}\n className={className}\n onBlur={handleBlur}\n onInput={handleInput}\n onKeyDown={handleKeyDown}\n placeholder={texts.table2.search.placeholder}\n ref={ref}\n />\n );\n};\n"],"names":["Search","props","value","attributes","texts","useLocalization","ref","React","useRef","handleKeyDown","event","key","onSearch","handleInput","onInput","isDefaultPrevented","currentTarget","handleBlur","target","useGlobalKeyboardShortcut","ctrlKey","metaKey","document","activeElement","current","preventDefault","focus","className","cn","SearchInput","onBlur","onKeyDown","placeholder","table2","search"],"mappings":";;;;;;MAMaA,MAAM,GAAIC,KAAuB;EAC1C,MAAM;IAAEC,KAAK;IAAE,GAAGC;GAAY,GAAGF,KAAK;EACtC,MAAM;IAAEG;GAAO,GAAGC,eAAe,EAAE;EACnC,MAAMC,GAAG,GAAGC,cAAK,CAACC,MAAM,CAAmB,IAAI,CAAC;EAEhD,MAAMC,aAAa,GAAIC,KAA4C;IAC/D,IAAIA,KAAK,CAACC,GAAG,KAAK,QAAQ,EAAE;MAAA;MACxB,mBAAAV,KAAK,CAACW,QAAQ,oDAAd,qBAAAX,KAAK,EAAY,EAAE,CAAC;;GAE3B;;EAGD,MAAMY,WAAW,GAAIH,KAAwC;IACzD,IAAIT,KAAK,CAACa,OAAO,EAAE;MACfb,KAAK,CAACa,OAAO,CAACJ,KAAK,CAAC;;IAGxB,IAAI,CAACA,KAAK,CAACK,kBAAkB,EAAE,IAAI,CAACL,KAAK,CAACM,aAAa,CAACd,KAAK,EAAE;MAAA;MAC3D,oBAAAD,KAAK,CAACW,QAAQ,qDAAd,sBAAAX,KAAK,EAAY,EAAE,CAAC;;GAE3B;EAED,MAAMgB,UAAU,GAAGP,KAAK;;IACpB,MAAMR,KAAK,GAAGQ,KAAK,CAACQ,MAAM,CAAChB,KAAK;IAChC,oBAAAD,KAAK,CAACW,QAAQ,qDAAd,sBAAAX,KAAK,EAAYC,KAAK,CAAC;GAC1B;EAEDiB,yBAAyB,CAAET,KAAoB;IAC3C,IAAIA,KAAK,CAACC,GAAG,KAAK,GAAG,KAAKD,KAAK,CAACU,OAAO,IAAIV,KAAK,CAACW,OAAO,CAAC,EAAE;MACvD,IAAIC,QAAQ,CAACC,aAAa,KAAKjB,GAAG,CAACkB,OAAO,EAAE;QAAA;QACxCd,KAAK,CAACe,cAAc,EAAE;QACtB,gBAAAnB,GAAG,CAACkB,OAAO,iDAAX,aAAaE,KAAK,EAAE;;;GAG/B,CAAC;EAEF,MAAMC,SAAS,GAAGC,EAAE,CAAC,MAAM,EAAE;IACzB,gBAAgB,EAAE,CAAC,CAAC1B;GACvB,CAAC;EAEF,oBACIK,6BAACsB,WAAW,oBACJ1B,UAAU;IACdwB,SAAS,EAAEA,SAAS;IACpBG,MAAM,EAAEb,UAAU;IAClBH,OAAO,EAAED,WAAW;IACpBkB,SAAS,EAAEtB,aAAa;IACxBuB,WAAW,EAAE5B,KAAK,CAAC6B,MAAM,CAACC,MAAM,CAACF,WAAW;IAC5C1B,GAAG,EAAEA;KACP;AAEV;;;;"}
|
@@ -9,72 +9,70 @@ const ShortcutsGuideButton = ({
|
|
9
9
|
}) => {
|
10
10
|
const meta = table.options.meta;
|
11
11
|
const {
|
12
|
-
texts
|
13
|
-
table2: tableTexts
|
14
|
-
}
|
12
|
+
texts
|
15
13
|
} = useLocalization();
|
16
14
|
const shortcuts = [];
|
17
15
|
if (table.options.enableGlobalFilter) {
|
18
16
|
shortcuts.push({
|
19
|
-
feature:
|
17
|
+
feature: texts.table2.shortcuts.search,
|
20
18
|
keys: ['Ctrl', 'F']
|
21
19
|
});
|
22
20
|
}
|
23
21
|
if (table.options.enableColumnFilters) {
|
24
22
|
shortcuts.push({
|
25
|
-
feature:
|
23
|
+
feature: texts.table2.shortcuts.filter,
|
26
24
|
keys: ['Ctrl', 'Shift', 'F']
|
27
25
|
});
|
28
26
|
}
|
29
27
|
shortcuts.push({
|
30
|
-
feature:
|
28
|
+
feature: texts.table2.shortcuts.previousRow,
|
31
29
|
keys: ['Up']
|
32
30
|
});
|
33
31
|
shortcuts.push({
|
34
|
-
feature:
|
32
|
+
feature: texts.table2.shortcuts.nextRow,
|
35
33
|
keys: ['Down']
|
36
34
|
});
|
37
35
|
if (meta.editMode.enableEditMode) {
|
38
36
|
shortcuts.push({
|
39
|
-
feature:
|
37
|
+
feature: texts.table2.shortcuts.editCell,
|
40
38
|
keys: ['Enter']
|
41
39
|
});
|
42
40
|
shortcuts.push({
|
43
|
-
feature:
|
41
|
+
feature: texts.table2.shortcuts.previousColumn,
|
44
42
|
keys: ['Arrow-Left']
|
45
43
|
});
|
46
44
|
shortcuts.push({
|
47
|
-
feature:
|
45
|
+
feature: texts.table2.shortcuts.nextColumn,
|
48
46
|
keys: ['Arrow-Right']
|
49
47
|
});
|
50
48
|
} else if (meta.onRowClick) {
|
51
49
|
shortcuts.push({
|
52
|
-
feature:
|
50
|
+
feature: texts.table2.shortcuts.rowClick,
|
53
51
|
keys: ['Enter']
|
54
52
|
});
|
55
53
|
}
|
56
54
|
if (table.options.enableRowSelection) {
|
57
55
|
shortcuts.push({
|
58
|
-
feature:
|
56
|
+
feature: texts.table2.shortcuts.selectRow,
|
59
57
|
keys: ['Space']
|
60
58
|
});
|
61
59
|
shortcuts.push({
|
62
|
-
feature:
|
60
|
+
feature: texts.table2.shortcuts.selectAllRows,
|
63
61
|
keys: ['Ctrl', 'A']
|
64
62
|
});
|
65
63
|
}
|
66
64
|
if (table.options.enableExpanding) {
|
67
65
|
shortcuts.push({
|
68
|
-
feature:
|
66
|
+
feature: texts.table2.shortcuts.expandRow,
|
69
67
|
keys: ['Ctrl', 'Right']
|
70
68
|
});
|
71
69
|
shortcuts.push({
|
72
|
-
feature:
|
70
|
+
feature: texts.table2.shortcuts.collapseRow,
|
73
71
|
keys: ['Ctrl', 'Left']
|
74
72
|
});
|
75
73
|
}
|
76
74
|
return /*#__PURE__*/React__default.createElement(IconButton, {
|
77
|
-
"aria-label":
|
75
|
+
"aria-label": texts.table2.shortcuts.tooltip,
|
78
76
|
icon: "shortcuts",
|
79
77
|
popover: popoverProps => /*#__PURE__*/React__default.createElement(Popover, Object.assign({}, popoverProps), /*#__PURE__*/React__default.createElement(Popover.Content, {
|
80
78
|
align: "end"
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ShortcutsGuideButton.js","sources":["../../../../../../../../src/components/Table2/components/ShortcutsGuideButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as RTTable, TableMeta } from '@tanstack/react-table';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { Popover } from '../../Popover/Popover';\nimport { Shortcut } from '../../Shortcut/Shortcut';\nimport { useLocalization } from '../../Provider/Localization';\n\ntype ShortcutGuideShortcut = {\n feature: string;\n keys: string[];\n};\n\ntype ShortcutsGuideButtonProps = {\n table: RTTable<any>;\n};\n\nexport const ShortcutsGuideButton = ({ table }: ShortcutsGuideButtonProps) => {\n const meta = table.options.meta as TableMeta<any>;\n const {
|
1
|
+
{"version":3,"file":"ShortcutsGuideButton.js","sources":["../../../../../../../../src/components/Table2/components/ShortcutsGuideButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as RTTable, TableMeta } from '@tanstack/react-table';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { Popover } from '../../Popover/Popover';\nimport { Shortcut } from '../../Shortcut/Shortcut';\nimport { useLocalization } from '../../Provider/Localization';\n\ntype ShortcutGuideShortcut = {\n feature: string;\n keys: string[];\n};\n\ntype ShortcutsGuideButtonProps = {\n table: RTTable<any>;\n};\n\nexport const ShortcutsGuideButton = ({ table }: ShortcutsGuideButtonProps) => {\n const meta = table.options.meta as TableMeta<any>;\n const { texts } = useLocalization();\n\n const shortcuts: ShortcutGuideShortcut[] = [];\n\n if (table.options.enableGlobalFilter) {\n shortcuts.push({\n feature: texts.table2.shortcuts.search,\n keys: ['Ctrl', 'F'],\n });\n }\n\n if (table.options.enableColumnFilters) {\n shortcuts.push({\n feature: texts.table2.shortcuts.filter,\n keys: ['Ctrl', 'Shift', 'F'],\n });\n }\n\n shortcuts.push({\n feature: texts.table2.shortcuts.previousRow,\n keys: ['Up'],\n });\n shortcuts.push({\n feature: texts.table2.shortcuts.nextRow,\n keys: ['Down'],\n });\n\n if (meta.editMode.enableEditMode) {\n shortcuts.push({\n feature: texts.table2.shortcuts.editCell,\n keys: ['Enter'],\n });\n shortcuts.push({\n feature: texts.table2.shortcuts.previousColumn,\n keys: ['Arrow-Left'],\n });\n shortcuts.push({\n feature: texts.table2.shortcuts.nextColumn,\n keys: ['Arrow-Right'],\n });\n } else if (meta.onRowClick) {\n shortcuts.push({\n feature: texts.table2.shortcuts.rowClick,\n keys: ['Enter'],\n });\n }\n\n if (table.options.enableRowSelection) {\n shortcuts.push({\n feature: texts.table2.shortcuts.selectRow,\n keys: ['Space'],\n });\n shortcuts.push({\n feature: texts.table2.shortcuts.selectAllRows,\n keys: ['Ctrl', 'A'],\n });\n }\n\n if (table.options.enableExpanding) {\n shortcuts.push({\n feature: texts.table2.shortcuts.expandRow,\n keys: ['Ctrl', 'Right'],\n });\n shortcuts.push({\n feature: texts.table2.shortcuts.collapseRow,\n keys: ['Ctrl', 'Left'],\n });\n }\n\n return (\n <IconButton\n aria-label={texts.table2.shortcuts.tooltip}\n icon=\"shortcuts\"\n popover={popoverProps => (\n <Popover {...popoverProps}>\n <Popover.Content align=\"end\">\n <div className=\"flex flex-col gap-y-1\">\n {shortcuts.map(shortcut => (\n <span className=\"flex items-center justify-between gap-x-8\" key={shortcut.feature}>\n <span>{shortcut.feature}</span>\n <Shortcut keys={shortcut.keys} />\n </span>\n ))}\n </div>\n </Popover.Content>\n </Popover>\n )}\n rounded\n />\n );\n};\n"],"names":["ShortcutsGuideButton","table","meta","options","texts","useLocalization","shortcuts","enableGlobalFilter","push","feature","table2","search","keys","enableColumnFilters","filter","previousRow","nextRow","editMode","enableEditMode","editCell","previousColumn","nextColumn","onRowClick","rowClick","enableRowSelection","selectRow","selectAllRows","enableExpanding","expandRow","collapseRow","React","IconButton","tooltip","icon","popover","popoverProps","Popover","Content","align","className","map","shortcut","key","Shortcut","rounded"],"mappings":"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"}
|
@@ -70,8 +70,7 @@ const Cell = function Cell(props) {
|
|
70
70
|
return (_tableRef$current2 = tableRef.current) === null || _tableRef$current2 === void 0 ? void 0 : _tableRef$current2.classList.remove('pb-4');
|
71
71
|
};
|
72
72
|
}, [isIndicatorVisible, isLastRow]);
|
73
|
-
const className = cn({
|
74
|
-
'border-b': !isLastRow,
|
73
|
+
const className = cn('border-b', {
|
75
74
|
'sticky z-[1]': isPinned,
|
76
75
|
// use isHoveredRow rather than css group-hover/row because we want to hide hover state when keyboard navigating
|
77
76
|
'bg-white': !isActiveRow && !isSelected && !isHoveredRow,
|
@@ -292,8 +291,11 @@ const Cell = function Cell(props) {
|
|
292
291
|
}));
|
293
292
|
} else {
|
294
293
|
if (meta.onRowClick) {
|
295
|
-
attributes.onClick =
|
294
|
+
attributes.onClick = event => {
|
296
295
|
var _meta$onRowClick;
|
296
|
+
if (event.target !== internalRef.current) {
|
297
|
+
return;
|
298
|
+
}
|
297
299
|
(_meta$onRowClick = meta.onRowClick) === null || _meta$onRowClick === void 0 ? void 0 : _meta$onRowClick.call(meta, cell.row.original);
|
298
300
|
};
|
299
301
|
}
|
@@ -332,7 +334,7 @@ const EditingCell = /*#__PURE__*/React__default.memo( /*#__PURE__*/React__defaul
|
|
332
334
|
} = table.getState();
|
333
335
|
const [state, setState] = React__default.useState(value);
|
334
336
|
const isHoveringAnotherRowWhileEditing = meta.editMode.isEditing && meta.activeRowIndex !== rowIndex && meta.hoveredRowIndex === rowIndex;
|
335
|
-
const
|
337
|
+
const hasValidationError = !isHoveringAnotherRowWhileEditing && !!cellValidationError;
|
336
338
|
// On each save, the initialValue will be set to the new value of the cell
|
337
339
|
const initialValue = React__default.useRef(value);
|
338
340
|
// It is important that we let consumers pass a newValue as an argument because when setState is called before
|
@@ -366,7 +368,10 @@ const EditingCell = /*#__PURE__*/React__default.memo( /*#__PURE__*/React__defaul
|
|
366
368
|
setValidationErrors(null);
|
367
369
|
});
|
368
370
|
}, function (error) {
|
369
|
-
setValidationErrors(
|
371
|
+
setValidationErrors({
|
372
|
+
...validationErrors,
|
373
|
+
...error
|
374
|
+
});
|
370
375
|
});
|
371
376
|
if (_temp && _temp.then) return _temp.then(function () {});
|
372
377
|
}
|
@@ -457,6 +462,7 @@ const EditingCell = /*#__PURE__*/React__default.memo( /*#__PURE__*/React__defaul
|
|
457
462
|
if (cellControl) {
|
458
463
|
if (typeof cellControl === 'function') {
|
459
464
|
controlComponent = cellControl({
|
465
|
+
invalid: hasValidationError,
|
460
466
|
onBlur: saveIfChanged,
|
461
467
|
onFocus: handleFocus,
|
462
468
|
ref: controlRef,
|
@@ -470,6 +476,7 @@ const EditingCell = /*#__PURE__*/React__default.memo( /*#__PURE__*/React__defaul
|
|
470
476
|
case 'datepicker':
|
471
477
|
controlComponent = /*#__PURE__*/React__default.createElement(Datepicker, Object.assign({}, attributes, {
|
472
478
|
className: detailModeClassName,
|
479
|
+
invalid: hasValidationError,
|
473
480
|
onBlur: event => {
|
474
481
|
const newDate = event.detail;
|
475
482
|
saveIfChanged(newDate);
|
@@ -492,6 +499,7 @@ const EditingCell = /*#__PURE__*/React__default.memo( /*#__PURE__*/React__defaul
|
|
492
499
|
default:
|
493
500
|
controlComponent = /*#__PURE__*/React__default.createElement(Input, Object.assign({}, attributes, {
|
494
501
|
className: cn(className, detailModeClassName),
|
502
|
+
invalid: hasValidationError,
|
495
503
|
onChange: event => {
|
496
504
|
setState(event.target.value);
|
497
505
|
},
|
@@ -509,7 +517,7 @@ const EditingCell = /*#__PURE__*/React__default.memo( /*#__PURE__*/React__defaul
|
|
509
517
|
mountNode: indicatorMountNode
|
510
518
|
}), /*#__PURE__*/React__default.createElement("span", {
|
511
519
|
className: "relative flex-grow"
|
512
|
-
}, controlComponent,
|
520
|
+
}, controlComponent, hasValidationError && /*#__PURE__*/React__default.createElement(ValidationError, null, String(cellValidationError))));
|
513
521
|
}));
|
514
522
|
|
515
523
|
export { Cell };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Cell.js","sources":["../../../../../../../../../src/components/Table2/components/column/Cell.tsx"],"sourcesContent":["import React, { RefObject } from 'react';\nimport cn from 'classnames';\nimport { flexRender, Cell as RTCell, Row as RTRow, Table as RTTable, TableMeta } from '@tanstack/react-table';\n\nimport { Input } from '../../../Input/Input';\nimport { ColumnBase, ColumnBaseProps } from './Base';\nimport { getCellAlignmentClasses, getCellSizingClasses, isKeyboardFocusableElement } from '../../utilities/cell';\nimport { isInternalColumn } from '../../utilities/columns';\nimport { Datepicker } from '../../../Datepicker/Datepicker';\nimport { Switch } from '../../../Switch/Switch';\nimport { SaveHandler, SaveHandlerErrorResponse, Table2Filter } from '../../types';\nimport { columnFilterFn, globalFilterFn } from '../../utilities/filterFn';\nimport { MOVE_DIR } from '../../hooks/useEditMode';\nimport { useRowContext } from '../row/Context';\nimport { Indicator, IndicatorReason } from './Indicator';\nimport { ValidationError } from './ValidationError';\nimport { hasChanged, willRowMoveAfterSorting } from './utils';\nimport { useMergedRef } from '../../../../hooks/useMergedRef';\n\ntype CellProps<TType = unknown> = Omit<ColumnBaseProps<TType>, 'column' | 'isEditing'> & {\n cell: RTCell<TType, unknown>;\n index: number;\n isLastRow: boolean;\n rowIndex: number;\n rows: RTRow<TType>[];\n scrollToIndex: (index: number, options?: any) => void;\n scrollToOffset: (index: number, options?: any) => void;\n tableRef: React.RefObject<HTMLDivElement>;\n};\n\nexport const Cell = function Cell<TType = unknown>(props: CellProps<TType>) {\n const { cell, index, isLastRow, rowIndex, rows, scrollToIndex, scrollToOffset, table, tableRef, ...columnProps } = props;\n const meta = table.options.meta as TableMeta<any>;\n\n const { addFocussableColumnIndex, focussableColumnIndexes: allFocussableColumnIndexes } = meta;\n\n const { validationErrors, rowMoveReason } = useRowContext();\n const hasValidationErrorsInRow = !!validationErrors;\n\n const internalRef = React.useRef<HTMLDivElement>(null);\n const controlRef = React.useRef<HTMLElement>(null);\n const disableTruncation = cell.column.columnDef.meta?.disableTruncation;\n const cellClassName = cell.column.columnDef.meta?.className;\n\n const isActiveRow = meta.activeRowIndex === rowIndex;\n const isHoveredRow = meta.hoveredRowIndex === rowIndex;\n const isPinned = !!cell.column.getIsPinned();\n const isDragging = meta.dragging[cell.row.id];\n const isSelected = cell.row.getIsSelected();\n const isDataColumn = !isInternalColumn(cell.column.id);\n const hasCellControl = !!cell.column.columnDef.meta?.control;\n const allVisibleColumns = table.getVisibleLeafColumns();\n const lastColumnIndex = allVisibleColumns.length > 0 ? allVisibleColumns.length - 1 : 0;\n\n // editing\n const isEditingThisRow = meta.editMode.isEditing && isActiveRow;\n const canEditThisCell = isEditingThisRow && isDataColumn;\n const isEditingThisCell = canEditThisCell && meta.editMode.columnIndex === index;\n const isHoveringThisRowWhileEditing = meta.editMode.isEditing && isHoveredRow;\n\n const isIndicatorVisible = Object.keys(rowMoveReason).length > 0;\n\n React.useEffect(() => {\n // Adds padding to the table so that indicator doesn't get cropped\n if (isIndicatorVisible && isLastRow) {\n tableRef.current?.classList.add('pb-4');\n }\n\n return () => tableRef.current?.classList.remove('pb-4');\n }, [isIndicatorVisible, isLastRow]);\n\n const className = cn(\n {\n 'border-b': !isLastRow,\n 'sticky z-[1]': isPinned,\n // use isHoveredRow rather than css group-hover/row because we want to hide hover state when keyboard navigating\n 'bg-white': !isActiveRow && !isSelected && !isHoveredRow,\n 'bg-grey-100': !isActiveRow && !isSelected && isHoveredRow,\n 'bg-grey-200 group-hover/row:bg-grey-200': isActiveRow && !isSelected,\n 'bg-blue-100': isSelected,\n '!wcag-blue-500': isDragging,\n '[&>*]:!grayscale [&_.bg-white]:!bg-grey-100': !isEditingThisRow && isHoveringThisRowWhileEditing,\n '!bg-red-100': hasValidationErrorsInRow,\n 'z-[1]': isPinned && isActiveRow,\n // First column should have higher z-index so that row indicator always show on top of the cell\n // control components.\n 'z-[2]': isPinned && isActiveRow && index === 0,\n 'border-blue !border-y-2 border-x-0': isIndicatorVisible,\n 'border-l-2 rounded-l': isIndicatorVisible && index === 0,\n 'border-r-2 rounded-r': isIndicatorVisible && index === lastColumnIndex,\n },\n getCellSizingClasses(\n table.options.meta?.rowDensity,\n (isEditingThisRow || isHoveringThisRowWhileEditing) && hasCellControl\n ),\n typeof cellClassName === 'function' ? cellClassName(cell.row) : cellClassName\n );\n\n const handleMouseDown = (event: React.MouseEvent<HTMLElement>) => {\n // only detect left clicks\n if (event.button === 0) {\n const activeElement = document.activeElement;\n const isActiveElementControl = activeElement?.closest('[role=\"cell\"]');\n const hasActiveRowChanged = meta.activeRowIndex !== rowIndex;\n\n // When user clicks on a cell that is not in the active row, for some reason blur event is not called on the cell\n // previous cell control element so we need to manually call it in order to save the changes in that cell\n if (isActiveElementControl && hasActiveRowChanged) {\n (activeElement as HTMLElement).blur();\n }\n\n meta.setActiveRowIndex(rowIndex);\n\n if (meta.editMode.isEditing) {\n if (allFocussableColumnIndexes.includes(index)) {\n meta.editMode.setColumn(index);\n } else {\n meta.editMode.setColumn(allFocussableColumnIndexes[0]);\n }\n }\n }\n };\n\n const attributes = {\n ...columnProps,\n // base props,\n column: cell.column,\n table,\n // dom attributes\n className,\n 'data-column-index': index,\n 'data-row-index': rowIndex,\n onMouseDown: handleMouseDown,\n ref: internalRef,\n role: 'cell',\n };\n\n const [detailModeEditing, setDetailModeEditing] = React.useState(false);\n\n const detailModeClassName = cn({\n '!shadow-[0_0_0_4px_rgba(0,99,255,0.25)]': detailModeEditing,\n });\n\n // reset the editing state when we move column\n React.useEffect(() => {\n if (meta.editMode.columnIndex !== index) {\n setDetailModeEditing(false);\n }\n }, [meta.editMode.columnIndex]);\n\n React.useEffect(() => {\n if (isEditingThisRow && controlRef.current && isKeyboardFocusableElement(controlRef.current)) {\n addFocussableColumnIndex(index);\n }\n }, [isEditingThisRow, allFocussableColumnIndexes, addFocussableColumnIndex, index]);\n\n const moveRow = (moveDirection: MOVE_DIR) => {\n if (moveDirection === MOVE_DIR.PREV) {\n meta.moveToPreviousRow(rows, nextIndex => scrollToIndex(nextIndex - 1));\n } else if (moveDirection === MOVE_DIR.NEXT) {\n meta.moveToNextRow(rows, nextIndex => scrollToIndex(nextIndex + 2));\n }\n };\n\n if (meta.editMode.onSave && hasCellControl && (canEditThisCell || (isHoveringThisRowWhileEditing && isDataColumn))) {\n attributes.onMouseDown = event => {\n handleMouseDown(event);\n\n const target = event.target;\n const isTargetInput = target !== null && (target as HTMLElement).nodeName === 'INPUT';\n\n // event.target?.select is only truthy for input elements\n // if event.target is active element, then that means we should select the text\n if (isTargetInput && target !== document.activeElement) {\n event.preventDefault();\n\n setTimeout(() => {\n (target as HTMLInputElement).select();\n }, 1);\n } else if (isTargetInput && target === document.activeElement) {\n // if user left clicks on the input then we are into edit mode\n // only detect left clicks\n if (event.button === 0) {\n setDetailModeEditing(true);\n }\n }\n };\n\n if (canEditThisCell) {\n const firstDataColumnIndex = allFocussableColumnIndexes.at(0) ?? 0;\n const lastDataColumnIndex = allFocussableColumnIndexes.at(-1) ?? 0;\n\n attributes.onKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n const control = event.target as HTMLElement;\n const isControlInput =\n control.nodeName === 'INPUT' && control?.getAttribute('data-inline-editing-component') === 'true';\n\n // For some reason, Taco Input keyboard event always return true when \"event.isDefaultPrevented()\" is\n // called. So we need to check if the control is input or not so that we don't return early.\n if (!isControlInput && (event.isDefaultPrevented() || event.isPropagationStopped())) {\n return;\n }\n\n if (control.tagName === 'INPUT') {\n if (event.key === 'Enter') {\n event.preventDefault();\n const input = control as HTMLInputElement;\n\n if (!detailModeEditing) {\n input.setSelectionRange?.(input.value?.length, input.value?.length);\n setDetailModeEditing(true);\n }\n\n return;\n }\n }\n\n // Don't exit edit mode if the target of the escape isn't a child of the cell (e.g. if its a popover).\n if (event.key === 'Escape' && event.currentTarget.contains(control)) {\n event.preventDefault();\n const input = control as HTMLInputElement;\n\n if (detailModeEditing) {\n input?.select?.();\n setDetailModeEditing(false);\n } else {\n meta.editMode.toggleEditing(false);\n tableRef.current?.focus();\n }\n\n return;\n }\n\n if ((!detailModeEditing && event.key === 'ArrowLeft') || (event.key === 'Tab' && event.shiftKey)) {\n event.preventDefault();\n\n const isFirstRow = rowIndex === 0;\n const isFirstColumn = index === firstDataColumnIndex;\n\n if (event.ctrlKey || event.metaKey) {\n // If the current active column is the first column then we don't do any thing so that focus\n // remains on the first column.\n if (!isFirstColumn) {\n control.blur();\n meta.editMode.moveToFirstColumn(allFocussableColumnIndexes);\n }\n } else {\n // If it is first row and first column, then don't move column.\n if (!isFirstRow || !isFirstColumn) {\n control.blur();\n meta.editMode.moveToPreviousColumn(allFocussableColumnIndexes, moveRow);\n }\n }\n\n return;\n }\n\n if ((!detailModeEditing && event.key === 'ArrowRight') || (event.key === 'Tab' && !event.shiftKey)) {\n event.preventDefault();\n\n const isLastColumn = index === lastDataColumnIndex;\n\n if (event.ctrlKey || event.metaKey) {\n // If the current active column is the last column then we don't do any thing so that focus\n // remains on the last column.\n if (!isLastColumn) {\n control.blur();\n meta.editMode.moveToLastColumn(allFocussableColumnIndexes);\n }\n } else {\n // If it is last row and last column, then don't move column.\n if (!isLastRow || !isLastColumn) {\n control.blur();\n meta.editMode.moveToNextColumn(allFocussableColumnIndexes, moveRow);\n }\n }\n\n return;\n }\n\n if (!detailModeEditing && event.key === 'ArrowUp') {\n event.preventDefault();\n\n // if it is the first row then return early, so that focus on the cell is not lost\n if (rowIndex === 0) {\n return;\n }\n\n control.blur();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(0);\n\n scrollToOffset(0);\n } else {\n moveRow(MOVE_DIR.PREV);\n }\n\n meta.setHoveredRowIndex(undefined);\n return;\n }\n\n if (!detailModeEditing && event.key === 'ArrowDown') {\n event.preventDefault();\n\n // if it is the last row then return early, so that focus on the cell is not lost\n if (rowIndex === rows.length - 1) {\n return;\n }\n\n control.blur();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(rows.length - 1);\n scrollToIndex(rows.length + 20);\n } else {\n moveRow(MOVE_DIR.NEXT);\n }\n\n meta.setHoveredRowIndex(undefined);\n return;\n }\n };\n }\n\n return (\n <ColumnBase {...attributes}>\n <EditingCell\n detailModeClassName={detailModeClassName}\n cell={cell}\n cellRef={internalRef}\n columnIndex={index}\n isEditingThisCell={isEditingThisCell}\n onSave={meta.editMode.onSave}\n rowIndex={rowIndex}\n table={table}\n ref={controlRef}\n rowValues={rows[rowIndex].original}\n rowsLength={rows.length}\n />\n </ColumnBase>\n );\n } else {\n if (meta.onRowClick) {\n attributes.onClick = () => {\n meta.onRowClick?.(cell.row.original);\n };\n }\n }\n\n return (\n <ColumnBase {...attributes}>\n <div className={disableTruncation ? '-my-[0.45rem]' : 'truncate'}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </div>\n </ColumnBase>\n );\n};\n\ntype EditingCellProps = {\n cell: RTCell<any, unknown>;\n cellRef: React.RefObject<HTMLDivElement>;\n columnIndex: number;\n isEditingThisCell: boolean;\n onSave: SaveHandler<any>;\n rowIndex: number;\n table: RTTable<any>;\n rowValues: Record<string, any>;\n rowsLength: number;\n detailModeClassName?: string;\n};\n\nconst EditingCell = React.memo(\n React.forwardRef<HTMLElement, EditingCellProps>((props, ref) => {\n const {\n cell,\n cellRef,\n columnIndex,\n detailModeClassName,\n isEditingThisCell = false,\n onSave: handleSave,\n rowIndex,\n rowValues,\n table,\n } = props;\n const { validationErrors, setValidationErrors, rowMoveReason, setRowMoveReason } = useRowContext();\n\n const controlRef = useMergedRef(ref);\n const cellId = cell.column.id;\n const cellValidationError = validationErrors?.[cellId];\n\n const value = cell.getValue();\n const ariaLabel = cell.column.columnDef.header as string | undefined;\n const meta = table.options.meta as TableMeta<any>;\n const { globalFilter } = table.getState();\n\n const [state, setState] = React.useState(value);\n\n const isHoveringAnotherRowWhileEditing =\n meta.editMode.isEditing && meta.activeRowIndex !== rowIndex && meta.hoveredRowIndex === rowIndex;\n const showValidationError = !isHoveringAnotherRowWhileEditing && !!cellValidationError;\n // On each save, the initialValue will be set to the new value of the cell\n const initialValue = React.useRef<any>(value);\n\n // It is important that we let consumers pass a newValue as an argument because when setState is called before\n // onBlur then saveIfChanged method gets the stale state value. This happens because the rerender hasn't happened\n // before the saveIfChanged method is called.\n const saveIfChanged = async (eventOrNewValue?: any) => {\n let newValue = state;\n\n // if eventOrNewValue is not an event object\n if (!eventOrNewValue.target) {\n newValue = eventOrNewValue;\n }\n\n if (hasChanged(value, newValue)) {\n try {\n const updatedRow = { ...cell.row.original, [cellId]: newValue };\n\n await handleSave(updatedRow, cellId);\n\n // If sorting is paused then update the last sorted or filtered rows to store the newly updated row\n if (meta.shouldPauseSortingAndFiltering) {\n meta.lastSortedOrFilteredRows.current = meta.lastSortedOrFilteredRows.current.map(row => {\n if (row.id === cell.row.id) {\n row.original = updatedRow;\n }\n\n return row;\n });\n }\n\n // Reset error if save was successful\n setValidationErrors(null);\n } catch (error) {\n setValidationErrors(error as SaveHandlerErrorResponse);\n }\n }\n };\n\n // Ensures we \"auto focus\" the field if the cell is being edited.\n React.useEffect(() => {\n const isFocusInsideTable = meta.tableRef.current?.contains(document.activeElement);\n // When control is blurred then body gets the focus that's why we have to make sure if activeElement\n // is body then we focus the cell if it is being edited.\n const isBodyFocussed = document.body === document.activeElement;\n\n // Don't focus cell if any table popup(filter popup, column settings popup) is open.\n if (isEditingThisCell && (isFocusInsideTable || isBodyFocussed)) {\n (controlRef.current as HTMLElement)?.focus?.();\n }\n }, [isEditingThisCell, controlRef.current]);\n\n // make sure the cell becomes active if the field is focused\n const handleFocus = event => {\n meta.editMode.setColumn(columnIndex);\n\n if (event.target?.select) {\n event.target?.select();\n }\n };\n\n React.useEffect(() => {\n if (hasChanged(initialValue.current, state)) {\n showIndicator();\n } else {\n hideIndicator();\n }\n\n return hideIndicator;\n }, [state]);\n\n const showIndicator = () => {\n let willRowMoveReason: IndicatorReason | null = null;\n\n const isFilteredByGlobalFilter = Object.values<unknown>({ ...rowValues, [cellId]: state }).some(cellValue =>\n // Global filter can be undefined when there is no text being searched so we pass an empty string to\n // globalFilterFn as query in that case.\n globalFilterFn(String(cellValue), globalFilter ? String(globalFilter) : '')\n );\n\n if (!isFilteredByGlobalFilter) {\n willRowMoveReason = IndicatorReason.SEARCH;\n } else if (cell.column.getIsFiltered() && !columnFilterFn(state, cell.column.getFilterValue() as Table2Filter)) {\n willRowMoveReason = IndicatorReason.FILTER;\n } else if (\n !willRowMoveReason &&\n cell.column.getIsSorted() &&\n willRowMoveAfterSorting(\n state,\n cell,\n rowIndex,\n table.getRowModel().rows,\n !!table.getState().sorting.find(s => s.id === cell.column.id)?.desc\n )\n ) {\n willRowMoveReason = IndicatorReason.SORTING;\n }\n\n if (willRowMoveReason !== null) {\n meta.setShouldPauseSortingAndFiltering(true);\n setRowMoveReason({ [cellId]: willRowMoveReason });\n }\n };\n\n const hideIndicator = () => {\n setRowMoveReason(prevState => {\n const newState = { ...prevState };\n delete newState[cellId];\n\n return newState;\n });\n };\n\n const cellControl = cell.column.columnDef.meta?.control;\n\n const attributes = {\n 'aria-label': ariaLabel,\n onBlur: saveIfChanged,\n onFocus: handleFocus,\n ref,\n // This is a temporary fix to enable up/down arrow key shortcuts on input in quick mode. For some reason,\n // the preventDefault is true on Taco Input, so the keyboard shortcuts doesn't work. By adding this\n // data attribute we make sure the event is coming from a control component, and then we can make sure\n // keyboard shortcut works as expected.\n 'data-inline-editing-component': 'true',\n };\n\n const className = cn(getCellAlignmentClasses(cell.column.columnDef.meta?.align));\n const indicatorMountNode = cellRef.current?.parentElement?.querySelector(':first-child') as Element | null;\n\n let controlComponent;\n\n if (cellControl) {\n if (typeof cellControl === 'function') {\n controlComponent = cellControl(\n {\n onBlur: saveIfChanged,\n onFocus: handleFocus,\n ref: controlRef,\n setValue: setState,\n value: state,\n 'data-inline-editing-component': 'true',\n className: detailModeClassName,\n },\n cell.row.original\n );\n } else {\n switch (cellControl) {\n case 'datepicker':\n controlComponent = (\n <Datepicker\n {...attributes}\n className={detailModeClassName}\n onBlur={event => {\n const newDate = (event as any).detail;\n saveIfChanged(newDate);\n }}\n onChange={event => {\n setState((event as any).detail);\n }}\n ref={controlRef as RefObject<HTMLInputElement>}\n value={state as Date}\n />\n );\n break;\n\n case 'switch':\n controlComponent = (\n <Switch\n {...attributes}\n className={cn('mx-2', detailModeClassName)}\n checked={Boolean(state)}\n onChange={setState}\n ref={controlRef as RefObject<HTMLButtonElement>}\n />\n );\n break;\n default:\n controlComponent = (\n <Input\n {...attributes}\n className={cn(className, detailModeClassName)}\n onChange={event => {\n setState(event.target.value);\n }}\n ref={controlRef as RefObject<HTMLInputElement>}\n value={String(state ?? '')}\n />\n );\n break;\n }\n }\n }\n\n const indicatorReason = rowMoveReason[cellId] ?? null;\n\n return (\n <>\n {indicatorReason !== null && (\n <Indicator\n reason={indicatorReason}\n columnName={String(cell.column.columnDef.header)}\n mountNode={indicatorMountNode}\n />\n )}\n <span className=\"relative flex-grow\">\n {controlComponent}\n {showValidationError && <ValidationError>{String(cellValidationError)}</ValidationError>}\n </span>\n </>\n );\n })\n);\n"],"names":["Cell","props","cell","index","isLastRow","rowIndex","rows","scrollToIndex","scrollToOffset","table","tableRef","columnProps","meta","options","addFocussableColumnIndex","focussableColumnIndexes","allFocussableColumnIndexes","validationErrors","rowMoveReason","useRowContext","hasValidationErrorsInRow","internalRef","React","useRef","controlRef","disableTruncation","column","columnDef","cellClassName","className","isActiveRow","activeRowIndex","isHoveredRow","hoveredRowIndex","isPinned","getIsPinned","isDragging","dragging","row","id","isSelected","getIsSelected","isDataColumn","isInternalColumn","hasCellControl","control","allVisibleColumns","getVisibleLeafColumns","lastColumnIndex","length","isEditingThisRow","editMode","isEditing","canEditThisCell","isEditingThisCell","columnIndex","isHoveringThisRowWhileEditing","isIndicatorVisible","Object","keys","useEffect","current","classList","add","remove","cn","getCellSizingClasses","rowDensity","handleMouseDown","event","button","activeElement","document","isActiveElementControl","closest","hasActiveRowChanged","blur","setActiveRowIndex","includes","setColumn","attributes","onMouseDown","ref","role","detailModeEditing","setDetailModeEditing","useState","detailModeClassName","isKeyboardFocusableElement","moveRow","moveDirection","MOVE_DIR","PREV","moveToPreviousRow","nextIndex","NEXT","moveToNextRow","onSave","target","isTargetInput","nodeName","preventDefault","setTimeout","select","firstDataColumnIndex","at","lastDataColumnIndex","onKeyDown","isControlInput","getAttribute","isDefaultPrevented","isPropagationStopped","tagName","key","input","setSelectionRange","value","currentTarget","contains","toggleEditing","focus","shiftKey","isFirstRow","isFirstColumn","ctrlKey","metaKey","moveToFirstColumn","moveToPreviousColumn","isLastColumn","moveToLastColumn","moveToNextColumn","setHoveredRowIndex","undefined","ColumnBase","EditingCell","cellRef","rowValues","original","rowsLength","onRowClick","onClick","flexRender","getContext","memo","forwardRef","handleSave","setValidationErrors","setRowMoveReason","useMergedRef","cellId","cellValidationError","getValue","ariaLabel","header","globalFilter","getState","state","setState","isHoveringAnotherRowWhileEditing","showValidationError","initialValue","saveIfChanged","eventOrNewValue","newValue","hasChanged","updatedRow","shouldPauseSortingAndFiltering","lastSortedOrFilteredRows","map","error","isFocusInsideTable","isBodyFocussed","body","handleFocus","showIndicator","hideIndicator","willRowMoveReason","isFilteredByGlobalFilter","values","some","cellValue","globalFilterFn","String","IndicatorReason","SEARCH","getIsFiltered","columnFilterFn","getFilterValue","FILTER","getIsSorted","willRowMoveAfterSorting","getRowModel","sorting","find","s","desc","SORTING","setShouldPauseSortingAndFiltering","prevState","newState","cellControl","onBlur","onFocus","getCellAlignmentClasses","align","indicatorMountNode","parentElement","querySelector","controlComponent","setValue","Datepicker","newDate","detail","onChange","Switch","checked","Boolean","Input","indicatorReason","Indicator","reason","columnName","mountNode","ValidationError"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Cell.js","sources":["../../../../../../../../../src/components/Table2/components/column/Cell.tsx"],"sourcesContent":["import React, { RefObject } from 'react';\nimport cn from 'classnames';\nimport { flexRender, Cell as RTCell, Row as RTRow, Table as RTTable, TableMeta } from '@tanstack/react-table';\n\nimport { Input } from '../../../Input/Input';\nimport { ColumnBase, ColumnBaseProps } from './Base';\nimport { getCellAlignmentClasses, getCellSizingClasses, isKeyboardFocusableElement } from '../../utilities/cell';\nimport { isInternalColumn } from '../../utilities/columns';\nimport { Datepicker } from '../../../Datepicker/Datepicker';\nimport { Switch } from '../../../Switch/Switch';\nimport { SaveHandler, SaveHandlerErrorResponse, Table2Filter } from '../../types';\nimport { columnFilterFn, globalFilterFn } from '../../utilities/filterFn';\nimport { MOVE_DIR } from '../../hooks/useEditMode';\nimport { useRowContext } from '../row/Context';\nimport { Indicator, IndicatorReason } from './Indicator';\nimport { ValidationError } from './ValidationError';\nimport { hasChanged, willRowMoveAfterSorting } from './utils';\nimport { useMergedRef } from '../../../../hooks/useMergedRef';\n\ntype CellProps<TType = unknown> = Omit<ColumnBaseProps<TType>, 'column' | 'isEditing'> & {\n cell: RTCell<TType, unknown>;\n index: number;\n isLastRow: boolean;\n rowIndex: number;\n rows: RTRow<TType>[];\n scrollToIndex: (index: number, options?: any) => void;\n scrollToOffset: (index: number, options?: any) => void;\n tableRef: React.RefObject<HTMLDivElement>;\n};\n\nexport const Cell = function Cell<TType = unknown>(props: CellProps<TType>) {\n const { cell, index, isLastRow, rowIndex, rows, scrollToIndex, scrollToOffset, table, tableRef, ...columnProps } = props;\n const meta = table.options.meta as TableMeta<any>;\n\n const { addFocussableColumnIndex, focussableColumnIndexes: allFocussableColumnIndexes } = meta;\n\n const { validationErrors, rowMoveReason } = useRowContext();\n const hasValidationErrorsInRow = !!validationErrors;\n\n const internalRef = React.useRef<HTMLDivElement>(null);\n const controlRef = React.useRef<HTMLElement>(null);\n const disableTruncation = cell.column.columnDef.meta?.disableTruncation;\n const cellClassName = cell.column.columnDef.meta?.className;\n\n const isActiveRow = meta.activeRowIndex === rowIndex;\n const isHoveredRow = meta.hoveredRowIndex === rowIndex;\n const isPinned = !!cell.column.getIsPinned();\n const isDragging = meta.dragging[cell.row.id];\n const isSelected = cell.row.getIsSelected();\n const isDataColumn = !isInternalColumn(cell.column.id);\n const hasCellControl = !!cell.column.columnDef.meta?.control;\n const allVisibleColumns = table.getVisibleLeafColumns();\n const lastColumnIndex = allVisibleColumns.length > 0 ? allVisibleColumns.length - 1 : 0;\n\n // editing\n const isEditingThisRow = meta.editMode.isEditing && isActiveRow;\n const canEditThisCell = isEditingThisRow && isDataColumn;\n const isEditingThisCell = canEditThisCell && meta.editMode.columnIndex === index;\n const isHoveringThisRowWhileEditing = meta.editMode.isEditing && isHoveredRow;\n\n const isIndicatorVisible = Object.keys(rowMoveReason).length > 0;\n\n React.useEffect(() => {\n // Adds padding to the table so that indicator doesn't get cropped\n if (isIndicatorVisible && isLastRow) {\n tableRef.current?.classList.add('pb-4');\n }\n\n return () => tableRef.current?.classList.remove('pb-4');\n }, [isIndicatorVisible, isLastRow]);\n\n const className = cn(\n 'border-b',\n {\n 'sticky z-[1]': isPinned,\n // use isHoveredRow rather than css group-hover/row because we want to hide hover state when keyboard navigating\n 'bg-white': !isActiveRow && !isSelected && !isHoveredRow,\n 'bg-grey-100': !isActiveRow && !isSelected && isHoveredRow,\n 'bg-grey-200 group-hover/row:bg-grey-200': isActiveRow && !isSelected,\n 'bg-blue-100': isSelected,\n '!wcag-blue-500': isDragging,\n '[&>*]:!grayscale [&_.bg-white]:!bg-grey-100': !isEditingThisRow && isHoveringThisRowWhileEditing,\n '!bg-red-100': hasValidationErrorsInRow,\n 'z-[1]': isPinned && isActiveRow,\n // First column should have higher z-index so that row indicator always show on top of the cell\n // control components.\n 'z-[2]': isPinned && isActiveRow && index === 0,\n 'border-blue !border-y-2 border-x-0': isIndicatorVisible,\n 'border-l-2 rounded-l': isIndicatorVisible && index === 0,\n 'border-r-2 rounded-r': isIndicatorVisible && index === lastColumnIndex,\n },\n getCellSizingClasses(\n table.options.meta?.rowDensity,\n (isEditingThisRow || isHoveringThisRowWhileEditing) && hasCellControl\n ),\n typeof cellClassName === 'function' ? cellClassName(cell.row) : cellClassName\n );\n\n const handleMouseDown = (event: React.MouseEvent<HTMLElement>) => {\n // only detect left clicks\n if (event.button === 0) {\n const activeElement = document.activeElement;\n const isActiveElementControl = activeElement?.closest('[role=\"cell\"]');\n const hasActiveRowChanged = meta.activeRowIndex !== rowIndex;\n\n // When user clicks on a cell that is not in the active row, for some reason blur event is not called on the cell\n // previous cell control element so we need to manually call it in order to save the changes in that cell\n if (isActiveElementControl && hasActiveRowChanged) {\n (activeElement as HTMLElement).blur();\n }\n\n meta.setActiveRowIndex(rowIndex);\n\n if (meta.editMode.isEditing) {\n if (allFocussableColumnIndexes.includes(index)) {\n meta.editMode.setColumn(index);\n } else {\n meta.editMode.setColumn(allFocussableColumnIndexes[0]);\n }\n }\n }\n };\n\n const attributes = {\n ...columnProps,\n // base props,\n column: cell.column,\n table,\n // dom attributes\n className,\n 'data-column-index': index,\n 'data-row-index': rowIndex,\n onMouseDown: handleMouseDown,\n ref: internalRef,\n role: 'cell',\n };\n\n const [detailModeEditing, setDetailModeEditing] = React.useState(false);\n\n const detailModeClassName = cn({\n '!shadow-[0_0_0_4px_rgba(0,99,255,0.25)]': detailModeEditing,\n });\n\n // reset the editing state when we move column\n React.useEffect(() => {\n if (meta.editMode.columnIndex !== index) {\n setDetailModeEditing(false);\n }\n }, [meta.editMode.columnIndex]);\n\n React.useEffect(() => {\n if (isEditingThisRow && controlRef.current && isKeyboardFocusableElement(controlRef.current)) {\n addFocussableColumnIndex(index);\n }\n }, [isEditingThisRow, allFocussableColumnIndexes, addFocussableColumnIndex, index]);\n\n const moveRow = (moveDirection: MOVE_DIR) => {\n if (moveDirection === MOVE_DIR.PREV) {\n meta.moveToPreviousRow(rows, nextIndex => scrollToIndex(nextIndex - 1));\n } else if (moveDirection === MOVE_DIR.NEXT) {\n meta.moveToNextRow(rows, nextIndex => scrollToIndex(nextIndex + 2));\n }\n };\n\n if (meta.editMode.onSave && hasCellControl && (canEditThisCell || (isHoveringThisRowWhileEditing && isDataColumn))) {\n attributes.onMouseDown = event => {\n handleMouseDown(event);\n\n const target = event.target;\n const isTargetInput = target !== null && (target as HTMLElement).nodeName === 'INPUT';\n\n // event.target?.select is only truthy for input elements\n // if event.target is active element, then that means we should select the text\n if (isTargetInput && target !== document.activeElement) {\n event.preventDefault();\n\n setTimeout(() => {\n (target as HTMLInputElement).select();\n }, 1);\n } else if (isTargetInput && target === document.activeElement) {\n // if user left clicks on the input then we are into edit mode\n // only detect left clicks\n if (event.button === 0) {\n setDetailModeEditing(true);\n }\n }\n };\n\n if (canEditThisCell) {\n const firstDataColumnIndex = allFocussableColumnIndexes.at(0) ?? 0;\n const lastDataColumnIndex = allFocussableColumnIndexes.at(-1) ?? 0;\n\n attributes.onKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n const control = event.target as HTMLElement;\n const isControlInput =\n control.nodeName === 'INPUT' && control?.getAttribute('data-inline-editing-component') === 'true';\n\n // For some reason, Taco Input keyboard event always return true when \"event.isDefaultPrevented()\" is\n // called. So we need to check if the control is input or not so that we don't return early.\n if (!isControlInput && (event.isDefaultPrevented() || event.isPropagationStopped())) {\n return;\n }\n\n if (control.tagName === 'INPUT') {\n if (event.key === 'Enter') {\n event.preventDefault();\n const input = control as HTMLInputElement;\n\n if (!detailModeEditing) {\n input.setSelectionRange?.(input.value?.length, input.value?.length);\n setDetailModeEditing(true);\n }\n\n return;\n }\n }\n\n // Don't exit edit mode if the target of the escape isn't a child of the cell (e.g. if its a popover).\n if (event.key === 'Escape' && event.currentTarget.contains(control)) {\n event.preventDefault();\n const input = control as HTMLInputElement;\n\n if (detailModeEditing) {\n input?.select?.();\n setDetailModeEditing(false);\n } else {\n meta.editMode.toggleEditing(false);\n tableRef.current?.focus();\n }\n\n return;\n }\n\n if ((!detailModeEditing && event.key === 'ArrowLeft') || (event.key === 'Tab' && event.shiftKey)) {\n event.preventDefault();\n\n const isFirstRow = rowIndex === 0;\n const isFirstColumn = index === firstDataColumnIndex;\n\n if (event.ctrlKey || event.metaKey) {\n // If the current active column is the first column then we don't do any thing so that focus\n // remains on the first column.\n if (!isFirstColumn) {\n control.blur();\n meta.editMode.moveToFirstColumn(allFocussableColumnIndexes);\n }\n } else {\n // If it is first row and first column, then don't move column.\n if (!isFirstRow || !isFirstColumn) {\n control.blur();\n meta.editMode.moveToPreviousColumn(allFocussableColumnIndexes, moveRow);\n }\n }\n\n return;\n }\n\n if ((!detailModeEditing && event.key === 'ArrowRight') || (event.key === 'Tab' && !event.shiftKey)) {\n event.preventDefault();\n\n const isLastColumn = index === lastDataColumnIndex;\n\n if (event.ctrlKey || event.metaKey) {\n // If the current active column is the last column then we don't do any thing so that focus\n // remains on the last column.\n if (!isLastColumn) {\n control.blur();\n meta.editMode.moveToLastColumn(allFocussableColumnIndexes);\n }\n } else {\n // If it is last row and last column, then don't move column.\n if (!isLastRow || !isLastColumn) {\n control.blur();\n meta.editMode.moveToNextColumn(allFocussableColumnIndexes, moveRow);\n }\n }\n\n return;\n }\n\n if (!detailModeEditing && event.key === 'ArrowUp') {\n event.preventDefault();\n\n // if it is the first row then return early, so that focus on the cell is not lost\n if (rowIndex === 0) {\n return;\n }\n\n control.blur();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(0);\n\n scrollToOffset(0);\n } else {\n moveRow(MOVE_DIR.PREV);\n }\n\n meta.setHoveredRowIndex(undefined);\n return;\n }\n\n if (!detailModeEditing && event.key === 'ArrowDown') {\n event.preventDefault();\n\n // if it is the last row then return early, so that focus on the cell is not lost\n if (rowIndex === rows.length - 1) {\n return;\n }\n\n control.blur();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(rows.length - 1);\n scrollToIndex(rows.length + 20);\n } else {\n moveRow(MOVE_DIR.NEXT);\n }\n\n meta.setHoveredRowIndex(undefined);\n return;\n }\n };\n }\n\n return (\n <ColumnBase {...attributes}>\n <EditingCell\n detailModeClassName={detailModeClassName}\n cell={cell}\n cellRef={internalRef}\n columnIndex={index}\n isEditingThisCell={isEditingThisCell}\n onSave={meta.editMode.onSave}\n rowIndex={rowIndex}\n table={table}\n ref={controlRef}\n rowValues={rows[rowIndex].original}\n rowsLength={rows.length}\n />\n </ColumnBase>\n );\n } else {\n if (meta.onRowClick) {\n attributes.onClick = event => {\n if (event.target !== internalRef.current) {\n return;\n }\n\n meta.onRowClick?.(cell.row.original);\n };\n }\n }\n\n return (\n <ColumnBase {...attributes}>\n <div className={disableTruncation ? '-my-[0.45rem]' : 'truncate'}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </div>\n </ColumnBase>\n );\n};\n\ntype EditingCellProps = {\n cell: RTCell<any, unknown>;\n cellRef: React.RefObject<HTMLDivElement>;\n columnIndex: number;\n isEditingThisCell: boolean;\n onSave: SaveHandler<any>;\n rowIndex: number;\n table: RTTable<any>;\n rowValues: Record<string, any>;\n rowsLength: number;\n detailModeClassName?: string;\n};\n\nconst EditingCell = React.memo(\n React.forwardRef<HTMLElement, EditingCellProps>((props, ref) => {\n const {\n cell,\n cellRef,\n columnIndex,\n detailModeClassName,\n isEditingThisCell = false,\n onSave: handleSave,\n rowIndex,\n rowValues,\n table,\n } = props;\n const { validationErrors, setValidationErrors, rowMoveReason, setRowMoveReason } = useRowContext();\n\n const controlRef = useMergedRef(ref);\n const cellId = cell.column.id;\n const cellValidationError = validationErrors?.[cellId];\n\n const value = cell.getValue();\n const ariaLabel = cell.column.columnDef.header as string | undefined;\n const meta = table.options.meta as TableMeta<any>;\n const { globalFilter } = table.getState();\n\n const [state, setState] = React.useState(value);\n\n const isHoveringAnotherRowWhileEditing =\n meta.editMode.isEditing && meta.activeRowIndex !== rowIndex && meta.hoveredRowIndex === rowIndex;\n const hasValidationError = !isHoveringAnotherRowWhileEditing && !!cellValidationError;\n // On each save, the initialValue will be set to the new value of the cell\n const initialValue = React.useRef<any>(value);\n\n // It is important that we let consumers pass a newValue as an argument because when setState is called before\n // onBlur then saveIfChanged method gets the stale state value. This happens because the rerender hasn't happened\n // before the saveIfChanged method is called.\n const saveIfChanged = async (eventOrNewValue?: any) => {\n let newValue = state;\n\n // if eventOrNewValue is not an event object\n if (!eventOrNewValue.target) {\n newValue = eventOrNewValue;\n }\n\n if (hasChanged(value, newValue)) {\n try {\n const updatedRow = { ...cell.row.original, [cellId]: newValue };\n\n await handleSave(updatedRow, cellId);\n\n // If sorting is paused then update the last sorted or filtered rows to store the newly updated row\n if (meta.shouldPauseSortingAndFiltering) {\n meta.lastSortedOrFilteredRows.current = meta.lastSortedOrFilteredRows.current.map(row => {\n if (row.id === cell.row.id) {\n row.original = updatedRow;\n }\n\n return row;\n });\n }\n\n // Reset error if save was successful\n setValidationErrors(null);\n } catch (error) {\n setValidationErrors({ ...validationErrors, ...(error as SaveHandlerErrorResponse) });\n }\n }\n };\n\n // Ensures we \"auto focus\" the field if the cell is being edited.\n React.useEffect(() => {\n const isFocusInsideTable = meta.tableRef.current?.contains(document.activeElement);\n // When control is blurred then body gets the focus that's why we have to make sure if activeElement\n // is body then we focus the cell if it is being edited.\n const isBodyFocussed = document.body === document.activeElement;\n\n // Don't focus cell if any table popup(filter popup, column settings popup) is open.\n if (isEditingThisCell && (isFocusInsideTable || isBodyFocussed)) {\n (controlRef.current as HTMLElement)?.focus?.();\n }\n }, [isEditingThisCell, controlRef.current]);\n\n // make sure the cell becomes active if the field is focused\n const handleFocus = event => {\n meta.editMode.setColumn(columnIndex);\n\n if (event.target?.select) {\n event.target?.select();\n }\n };\n\n React.useEffect(() => {\n if (hasChanged(initialValue.current, state)) {\n showIndicator();\n } else {\n hideIndicator();\n }\n\n return hideIndicator;\n }, [state]);\n\n const showIndicator = () => {\n let willRowMoveReason: IndicatorReason | null = null;\n\n const isFilteredByGlobalFilter = Object.values<unknown>({ ...rowValues, [cellId]: state }).some(cellValue =>\n // Global filter can be undefined when there is no text being searched so we pass an empty string to\n // globalFilterFn as query in that case.\n globalFilterFn(String(cellValue), globalFilter ? String(globalFilter) : '')\n );\n\n if (!isFilteredByGlobalFilter) {\n willRowMoveReason = IndicatorReason.SEARCH;\n } else if (cell.column.getIsFiltered() && !columnFilterFn(state, cell.column.getFilterValue() as Table2Filter)) {\n willRowMoveReason = IndicatorReason.FILTER;\n } else if (\n !willRowMoveReason &&\n cell.column.getIsSorted() &&\n willRowMoveAfterSorting(\n state,\n cell,\n rowIndex,\n table.getRowModel().rows,\n !!table.getState().sorting.find(s => s.id === cell.column.id)?.desc\n )\n ) {\n willRowMoveReason = IndicatorReason.SORTING;\n }\n\n if (willRowMoveReason !== null) {\n meta.setShouldPauseSortingAndFiltering(true);\n setRowMoveReason({ [cellId]: willRowMoveReason });\n }\n };\n\n const hideIndicator = () => {\n setRowMoveReason(prevState => {\n const newState = { ...prevState };\n delete newState[cellId];\n\n return newState;\n });\n };\n\n const cellControl = cell.column.columnDef.meta?.control;\n\n const attributes = {\n 'aria-label': ariaLabel,\n onBlur: saveIfChanged,\n onFocus: handleFocus,\n ref,\n // This is a temporary fix to enable up/down arrow key shortcuts on input in quick mode. For some reason,\n // the preventDefault is true on Taco Input, so the keyboard shortcuts doesn't work. By adding this\n // data attribute we make sure the event is coming from a control component, and then we can make sure\n // keyboard shortcut works as expected.\n 'data-inline-editing-component': 'true',\n };\n\n const className = cn(getCellAlignmentClasses(cell.column.columnDef.meta?.align));\n const indicatorMountNode = cellRef.current?.parentElement?.querySelector(':first-child') as Element | null;\n\n let controlComponent;\n\n if (cellControl) {\n if (typeof cellControl === 'function') {\n controlComponent = cellControl(\n {\n invalid: hasValidationError,\n onBlur: saveIfChanged,\n onFocus: handleFocus,\n ref: controlRef,\n setValue: setState,\n value: state,\n 'data-inline-editing-component': 'true',\n className: detailModeClassName,\n },\n cell.row.original\n );\n } else {\n switch (cellControl) {\n case 'datepicker':\n controlComponent = (\n <Datepicker\n {...attributes}\n className={detailModeClassName}\n invalid={hasValidationError}\n onBlur={event => {\n const newDate = (event as any).detail;\n saveIfChanged(newDate);\n }}\n onChange={event => {\n setState((event as any).detail);\n }}\n ref={controlRef as RefObject<HTMLInputElement>}\n value={state as Date}\n />\n );\n break;\n\n case 'switch':\n controlComponent = (\n <Switch\n {...attributes}\n className={cn('mx-2', detailModeClassName)}\n checked={Boolean(state)}\n onChange={setState}\n ref={controlRef as RefObject<HTMLButtonElement>}\n />\n );\n break;\n default:\n controlComponent = (\n <Input\n {...attributes}\n className={cn(className, detailModeClassName)}\n invalid={hasValidationError}\n onChange={event => {\n setState(event.target.value);\n }}\n ref={controlRef as RefObject<HTMLInputElement>}\n value={String(state ?? '')}\n />\n );\n break;\n }\n }\n }\n\n const indicatorReason = rowMoveReason[cellId] ?? null;\n\n return (\n <>\n {indicatorReason !== null && (\n <Indicator\n reason={indicatorReason}\n columnName={String(cell.column.columnDef.header)}\n mountNode={indicatorMountNode}\n />\n )}\n <span className=\"relative flex-grow\">\n {controlComponent}\n {hasValidationError && <ValidationError>{String(cellValidationError)}</ValidationError>}\n </span>\n </>\n );\n })\n);\n"],"names":["Cell","props","cell","index","isLastRow","rowIndex","rows","scrollToIndex","scrollToOffset","table","tableRef","columnProps","meta","options","addFocussableColumnIndex","focussableColumnIndexes","allFocussableColumnIndexes","validationErrors","rowMoveReason","useRowContext","hasValidationErrorsInRow","internalRef","React","useRef","controlRef","disableTruncation","column","columnDef","cellClassName","className","isActiveRow","activeRowIndex","isHoveredRow","hoveredRowIndex","isPinned","getIsPinned","isDragging","dragging","row","id","isSelected","getIsSelected","isDataColumn","isInternalColumn","hasCellControl","control","allVisibleColumns","getVisibleLeafColumns","lastColumnIndex","length","isEditingThisRow","editMode","isEditing","canEditThisCell","isEditingThisCell","columnIndex","isHoveringThisRowWhileEditing","isIndicatorVisible","Object","keys","useEffect","current","classList","add","remove","cn","getCellSizingClasses","rowDensity","handleMouseDown","event","button","activeElement","document","isActiveElementControl","closest","hasActiveRowChanged","blur","setActiveRowIndex","includes","setColumn","attributes","onMouseDown","ref","role","detailModeEditing","setDetailModeEditing","useState","detailModeClassName","isKeyboardFocusableElement","moveRow","moveDirection","MOVE_DIR","PREV","moveToPreviousRow","nextIndex","NEXT","moveToNextRow","onSave","target","isTargetInput","nodeName","preventDefault","setTimeout","select","firstDataColumnIndex","at","lastDataColumnIndex","onKeyDown","isControlInput","getAttribute","isDefaultPrevented","isPropagationStopped","tagName","key","input","setSelectionRange","value","currentTarget","contains","toggleEditing","focus","shiftKey","isFirstRow","isFirstColumn","ctrlKey","metaKey","moveToFirstColumn","moveToPreviousColumn","isLastColumn","moveToLastColumn","moveToNextColumn","setHoveredRowIndex","undefined","ColumnBase","EditingCell","cellRef","rowValues","original","rowsLength","onRowClick","onClick","flexRender","getContext","memo","forwardRef","handleSave","setValidationErrors","setRowMoveReason","useMergedRef","cellId","cellValidationError","getValue","ariaLabel","header","globalFilter","getState","state","setState","isHoveringAnotherRowWhileEditing","hasValidationError","initialValue","saveIfChanged","eventOrNewValue","newValue","hasChanged","updatedRow","shouldPauseSortingAndFiltering","lastSortedOrFilteredRows","map","error","isFocusInsideTable","isBodyFocussed","body","handleFocus","showIndicator","hideIndicator","willRowMoveReason","isFilteredByGlobalFilter","values","some","cellValue","globalFilterFn","String","IndicatorReason","SEARCH","getIsFiltered","columnFilterFn","getFilterValue","FILTER","getIsSorted","willRowMoveAfterSorting","getRowModel","sorting","find","s","desc","SORTING","setShouldPauseSortingAndFiltering","prevState","newState","cellControl","onBlur","onFocus","getCellAlignmentClasses","align","indicatorMountNode","parentElement","querySelector","controlComponent","invalid","setValue","Datepicker","newDate","detail","onChange","Switch","checked","Boolean","Input","indicatorReason","Indicator","reason","columnName","mountNode","ValidationError"],"mappings":"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"}
|
@@ -1,16 +1,18 @@
|
|
1
1
|
import React__default from 'react';
|
2
2
|
import cn from 'classnames';
|
3
|
+
import { getCellSizingClasses } from '../../utilities/cell.js';
|
3
4
|
import { ColumnBase } from './Base.js';
|
4
5
|
|
5
6
|
const Footer = function Footer(props) {
|
6
7
|
const {
|
8
|
+
children,
|
7
9
|
footer,
|
8
10
|
index,
|
9
11
|
table,
|
10
12
|
...columnProps
|
11
13
|
} = props;
|
12
14
|
const isPinned = !!footer.column.getIsPinned();
|
13
|
-
const className = cn('group/header sticky bottom-0 bg-white border-t-2 relative ', {
|
15
|
+
const className = cn('group/header sticky bottom-0 bg-white border-t-2 relative', getCellSizingClasses('normal'), {
|
14
16
|
'z-[1]': isPinned
|
15
17
|
}, props.className);
|
16
18
|
return /*#__PURE__*/React__default.createElement(ColumnBase, Object.assign({}, columnProps, {
|
@@ -20,7 +22,9 @@ const Footer = function Footer(props) {
|
|
20
22
|
className: className,
|
21
23
|
role: "cell",
|
22
24
|
"data-column-index": index
|
23
|
-
})
|
25
|
+
}), /*#__PURE__*/React__default.createElement("span", {
|
26
|
+
className: "truncate"
|
27
|
+
}, children));
|
24
28
|
};
|
25
29
|
|
26
30
|
export { Footer };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Footer.js","sources":["../../../../../../../../../src/components/Table2/components/column/Footer.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Header as RTHeader } from '@tanstack/react-table';\nimport { ColumnBase, ColumnBaseProps } from './Base';\n\ntype FooterProps<TType = unknown> = Omit<ColumnBaseProps<TType>, 'column' | 'isEditing'> & {\n footer: RTHeader<TType, unknown>;\n index: number;\n};\n\nexport const Footer = function Footer<TType = unknown>(props: FooterProps<TType>) {\n const { footer, index, table, ...columnProps } = props;\n const isPinned = !!footer.column.getIsPinned();\n\n const className = cn(\n 'group/header sticky bottom-0 bg-white border-t-2 relative
|
1
|
+
{"version":3,"file":"Footer.js","sources":["../../../../../../../../../src/components/Table2/components/column/Footer.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Header as RTHeader } from '@tanstack/react-table';\nimport { ColumnBase, ColumnBaseProps } from './Base';\nimport { getCellSizingClasses } from '../../utilities/cell';\n\ntype FooterProps<TType = unknown> = Omit<ColumnBaseProps<TType>, 'column' | 'isEditing'> & {\n footer: RTHeader<TType, unknown>;\n index: number;\n};\n\nexport const Footer = function Footer<TType = unknown>(props: FooterProps<TType>) {\n const { children, footer, index, table, ...columnProps } = props;\n const isPinned = !!footer.column.getIsPinned();\n\n const className = cn(\n 'group/header sticky bottom-0 bg-white border-t-2 relative',\n getCellSizingClasses('normal'),\n {\n 'z-[1]': isPinned, // pinned headers should show above cells and other headers, so we add z-index\n },\n props.className\n );\n\n return (\n <ColumnBase\n {...columnProps}\n // base props\n column={footer.column}\n table={table}\n className={className}\n role=\"cell\"\n // helper props\n data-column-index={index}>\n <span className=\"truncate\">{children}</span>\n </ColumnBase>\n );\n};\n"],"names":["Footer","props","children","footer","index","table","columnProps","isPinned","column","getIsPinned","className","cn","getCellSizingClasses","React","ColumnBase","role"],"mappings":";;;;;MAWaA,MAAM,GAAG,SAASA,MAAM,CAAkBC,KAAyB;EAC5E,MAAM;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAE,GAAGC;GAAa,GAAGL,KAAK;EAChE,MAAMM,QAAQ,GAAG,CAAC,CAACJ,MAAM,CAACK,MAAM,CAACC,WAAW,EAAE;EAE9C,MAAMC,SAAS,GAAGC,EAAE,CAChB,2DAA2D,EAC3DC,oBAAoB,CAAC,QAAQ,CAAC,EAC9B;IACI,OAAO,EAAEL;GACZ,EACDN,KAAK,CAACS,SAAS,CAClB;EAED,oBACIG,6BAACC,UAAU,oBACHR,WAAW;;IAEfE,MAAM,EAAEL,MAAM,CAACK,MAAM;IACrBH,KAAK,EAAEA,KAAK;IACZK,SAAS,EAAEA,SAAS;IACpBK,IAAI,EAAC,MAAM;yBAEQX;mBACnBS;IAAMH,SAAS,EAAC;KAAYR,QAAQ,CAAQ,CACnC;AAErB;;;;"}
|
@@ -15,22 +15,20 @@ const useIndicatorText = reason => {
|
|
15
15
|
let title = '';
|
16
16
|
let description = '';
|
17
17
|
const {
|
18
|
-
texts
|
19
|
-
table2: tableTexts
|
20
|
-
}
|
18
|
+
texts
|
21
19
|
} = useLocalization();
|
22
20
|
switch (reason) {
|
21
|
+
case IndicatorReason.FILTER:
|
22
|
+
title = texts.table2.editing.rowIndicator.rowWillBeHidden;
|
23
|
+
description = texts.table2.editing.rowIndicator.rowWillMoveReasonFilter;
|
24
|
+
break;
|
23
25
|
case IndicatorReason.SEARCH:
|
24
|
-
title =
|
25
|
-
description =
|
26
|
+
title = texts.table2.editing.rowIndicator.rowWillBeHidden;
|
27
|
+
description = texts.table2.editing.rowIndicator.rowWillMoveReasonSearch;
|
26
28
|
break;
|
27
29
|
case IndicatorReason.SORTING:
|
28
|
-
title =
|
29
|
-
description =
|
30
|
-
break;
|
31
|
-
case IndicatorReason.FILTER:
|
32
|
-
title = tableTexts.rowIndicator.rowWillBeFiltered;
|
33
|
-
description = tableTexts.rowIndicator.tableFilterMovementReason;
|
30
|
+
title = texts.table2.editing.rowIndicator.rowWillMove;
|
31
|
+
description = texts.table2.editing.rowIndicator.rowWillMoveReasonSorting;
|
34
32
|
break;
|
35
33
|
}
|
36
34
|
return {
|
@@ -45,7 +43,7 @@ const Indicator = ({
|
|
45
43
|
}) => {
|
46
44
|
const container = React__default.useMemo(() => {
|
47
45
|
const element = document.createElement('div');
|
48
|
-
element.className += '
|
46
|
+
element.className += 'z-[3] rounded-b-md items-center wcag-blue-500 absolute left-0 top-full ml-1 whitespace-nowrap px-1 py-0.5 text-xs font-bold shadow-sm';
|
49
47
|
return element;
|
50
48
|
}, []);
|
51
49
|
const indicatorText = useIndicatorText(reason);
|