@vuu-ui/vuu-table-extras 2.1.19-beta.1 → 2.1.19-beta.2
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/package.json +13 -14
- package/src/calculated-column/CalculatedColumnPanel.js +95 -0
- package/src/calculated-column/useCalculatedColumnPanel.js +60 -0
- package/src/calculated-column/useEditCalculatedColumn.js +104 -0
- package/src/cell-edit-validators/CaseValidator.js +21 -0
- package/src/cell-edit-validators/PatternValidator.js +23 -0
- package/src/cell-edit-validators/index.js +2 -0
- package/src/cell-renderers/background-cell/BackgroundCell.css.js +103 -0
- package/src/cell-renderers/background-cell/BackgroundCell.js +76 -0
- package/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +9 -0
- package/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +71 -0
- package/src/cell-renderers/background-cell/BackgroundKeyframes.css.js +187 -0
- package/src/cell-renderers/background-cell/index.js +2 -0
- package/src/cell-renderers/background-cell/useDirection.js +25 -0
- package/src/cell-renderers/button-cell/IconButtonCell.css.js +23 -0
- package/src/cell-renderers/button-cell/IconButtonCell.js +33 -0
- package/src/cell-renderers/dropdown-cell/DropdownCell.css.js +36 -0
- package/src/cell-renderers/dropdown-cell/DropdownCell.js +84 -0
- package/src/cell-renderers/dropdown-cell/index.js +1 -0
- package/src/cell-renderers/index.js +6 -0
- package/src/cell-renderers/lookup-cell/LookupCell.js +15 -0
- package/src/cell-renderers/lookup-cell/index.js +1 -0
- package/src/cell-renderers/pct-progress-cell/PctProgressCell.css.js +31 -0
- package/src/cell-renderers/pct-progress-cell/PctProgressCell.js +49 -0
- package/src/cell-renderers/pct-progress-cell/index.js +1 -0
- package/src/cell-renderers/progress-cell/ProgressCell.css.js +43 -0
- package/src/cell-renderers/progress-cell/ProgressCell.js +74 -0
- package/src/cell-renderers/progress-cell/index.js +1 -0
- package/src/column-expression-input/ColumnExpressionInput.css.js +94 -0
- package/src/column-expression-input/ColumnExpressionInput.js +28 -0
- package/src/column-expression-input/column-function-descriptors.js +281 -0
- package/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +18 -0
- package/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +381 -0
- package/src/column-expression-input/column-language-parser/column-expression-parse-utils.js +56 -0
- package/src/column-expression-input/column-language-parser/index.js +3 -0
- package/src/column-expression-input/functionDocInfo.js +24 -0
- package/src/column-expression-input/highlighting.js +18 -0
- package/src/column-expression-input/index.js +4 -0
- package/src/column-expression-input/theme.js +57 -0
- package/src/column-expression-input/useColumnAutoComplete.js +307 -0
- package/src/column-expression-input/useColumnExpressionEditor.js +133 -0
- package/src/column-expression-input/useColumnExpressionSuggestionProvider.js +211 -0
- package/src/column-formatting-settings/BaseNumericFormattingSettings.js +96 -0
- package/src/column-formatting-settings/ColumnFormattingPanel.js +112 -0
- package/src/column-formatting-settings/DateTimeFormattingSettings.js +116 -0
- package/src/column-formatting-settings/LongTypeFormattingSettings.css.js +11 -0
- package/src/column-formatting-settings/LongTypeFormattingSettings.js +54 -0
- package/src/column-formatting-settings/index.js +3 -0
- package/src/column-menu/ColumnMenu.css.js +25 -0
- package/src/column-menu/ColumnMenu.js +69 -0
- package/src/column-menu/column-action-types.js +0 -0
- package/src/column-menu/column-menu-utils.js +318 -0
- package/src/column-menu/useColumnActions.js +77 -0
- package/src/column-picker/ColumnModel.js +113 -0
- package/src/column-picker/ColumnPicker.css.js +96 -0
- package/src/column-picker/ColumnPicker.js +204 -0
- package/src/column-picker/ColumnPickerAction.js +24 -0
- package/src/column-picker/useColumnPicker.js +42 -0
- package/src/column-picker/useTableColumnPicker.js +27 -0
- package/src/column-picker/useTableColumnPickerDeprecated.js +87 -0
- package/src/column-settings-panel/ColumnNameLabel.css.js +18 -0
- package/src/column-settings-panel/ColumnNameLabel.js +54 -0
- package/src/column-settings-panel/ColumnSettingsPanel.css.js +70 -0
- package/src/column-settings-panel/ColumnSettingsPanel.js +173 -0
- package/src/column-settings-panel/useColumnSettings.js +205 -0
- package/src/csv-upload/CsvUpload.css.js +28 -0
- package/src/csv-upload/CsvUpload.js +95 -0
- package/src/csv-upload/index.js +7 -0
- package/src/csv-upload/parse/csv-constants.js +3 -0
- package/src/csv-upload/parse/csv-errors.js +54 -0
- package/src/csv-upload/parse/csv-parse.js +79 -0
- package/src/csv-upload/parse/csv-schema-validation.js +45 -0
- package/src/csv-upload/parse/csv-upload-utils.js +59 -0
- package/src/csv-upload/parse/index.js +5 -0
- package/src/csv-upload/useCsvUpload.js +260 -0
- package/src/csv-upload/useCsvUploadSessionPreview.js +70 -0
- package/src/datasource-stats/DatasourceStats.css.js +56 -0
- package/src/datasource-stats/DatasourceStats.js +89 -0
- package/src/datasource-stats/useDatasourceStats.js +48 -0
- package/src/freeze-control/FreezeControl.css.js +108 -0
- package/src/freeze-control/FreezeControl.js +96 -0
- package/src/freeze-control/FrozenBanner.css.js +16 -0
- package/src/freeze-control/FrozenBanner.js +48 -0
- package/src/freeze-control/freezeControlBadge.js +9 -0
- package/src/freeze-control/useFreezeControl.js +68 -0
- package/src/index.js +22 -0
- package/src/tabbed-table-config-panel/TabbedTableConfigPanel.css.js +23 -0
- package/src/tabbed-table-config-panel/TabbedTableConfigPanel.js +99 -0
- package/src/tabbed-table-config-panel/TabbedTableSettingsAction.js +28 -0
- package/src/tabbed-table-config-panel/useTabbedTableConfigPanel.js +29 -0
- package/src/table-footer/TableFooter.css.js +22 -0
- package/src/table-footer/TableFooter.js +30 -0
- package/src/table-provider/TableProvider.js +33 -0
- package/src/table-settings-panel/TableSettingsPanel.css.js +70 -0
- package/src/table-settings-panel/TableSettingsPanel.js +128 -0
- package/src/table-settings-panel/useTableSettings.js +50 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
const css = `
|
|
2
|
+
.vuuTableSettingsPanel {
|
|
3
|
+
--vuuScrollable-size: 6px;
|
|
4
|
+
--vuu-svg-text-strikethrough: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 24\"><path d=\"M28.3333 9.33334C28.8867 9.33334 29.3333 8.88668 29.3333 8.33334C29.3333 7.78001 28.8867 7.33334 28.3333 7.33334H20.26L22.26 9.33334H23.48L23.1133 10.1867L24.5067 11.58L25.4733 9.33334H28.3333ZM27.6267 16.5867L18.7467 7.70668C18.4867 7.44668 18.0667 7.44668 17.8067 7.70668C17.5467 7.96668 17.5467 8.38668 17.8067 8.64668L21.98 12.82L20.88 15.38C20.62 15.9933 21.0667 16.6667 21.7267 16.6667C22.0933 16.6667 22.4267 16.4467 22.5733 16.1067L23.38 14.22L26.68 17.52C26.94 17.78 27.36 17.78 27.62 17.52C27.8867 17.2667 27.8867 16.8467 27.6267 16.5867Z\"/></svg>");
|
|
5
|
+
--vuu-svg-text-Tt: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 24\"><path d=\"M17.6667 7.66666C17.6667 8.21999 18.1133 8.66666 18.6667 8.66666H21V15.6667C21 16.22 21.4467 16.6667 22 16.6667C22.5533 16.6667 23 16.22 23 15.6667V8.66666H25.3333C25.8867 8.66666 26.3333 8.21999 26.3333 7.66666C26.3333 7.11332 25.8867 6.66666 25.3333 6.66666H18.6667C18.1133 6.66666 17.6667 7.11332 17.6667 7.66666ZM29.3333 9.99999H25.3333C24.78 9.99999 24.3333 10.4467 24.3333 11C24.3333 11.5533 24.78 12 25.3333 12H26.3333V15.6667C26.3333 16.22 26.78 16.6667 27.3333 16.6667C27.8867 16.6667 28.3333 16.22 28.3333 15.6667V12H29.3333C29.8867 12 30.3333 11.5533 30.3333 11C30.3333 10.4467 29.8867 9.99999 29.3333 9.99999Z\" /></svg>");
|
|
6
|
+
--vuu-svg-text-T: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 24\"><path d=\"M19.3333 7.66666C19.3333 8.21999 19.78 8.66666 20.3333 8.66666H23V15.6667C23 16.22 23.4467 16.6667 24 16.6667C24.5533 16.6667 25 16.22 25 15.6667V8.66666H27.6667C28.22 8.66666 28.6667 8.21999 28.6667 7.66666C28.6667 7.11332 28.22 6.66666 27.6667 6.66666H20.3333C19.78 6.66666 19.3333 7.11332 19.3333 7.66666Z\"/></svg>");
|
|
7
|
+
--vuu-svg-stripes: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><rect x=\"2\" y=\"2\" width=\"12\" height=\"2\" rx=\"0.3\"/><rect x=\"2\" y=\"5\" width=\"12\" height=\"2\" rx=\"0.3\"/><rect x=\"2\" y=\"8\" width=\"12\" height=\"2\" rx=\"0.3\"/><rect x=\"2\" y=\"11\" width=\"12\" height=\"2\" rx=\"0.3\"/></svg>");
|
|
8
|
+
--vuu-svg-row-lines: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><rect x=\"2\" y=\"3\" width=\"12\" height=\"1\" rx=\"0.3\" /><rect x=\"2\" y=\"6\" width=\"12\" height=\"1\" rx=\"0.3\" /><rect x=\"2\" y=\"9\" width=\"12\" height=\"1\" rx=\"0.3\" /><rect x=\"2\" y=\"12\" width=\"12\" height=\"1\" rx=\"0.3\"/></svg>");
|
|
9
|
+
--vuu-svg-col-lines: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><rect x=\"3\" y=\"14\" width=\"12\" height=\"1\" rx=\"0.3\" transform=\"rotate%28-90 3 14%29\"/><rect x=\"6\" y=\"14\" width=\"12\" height=\"1\" rx=\"0.3\" transform=\"rotate%28-90 6 14%29\"/><rect x=\"9\" y=\"14\" width=\"12\" height=\"1\" rx=\"0.3\" transform=\"rotate%28-90 9 14%29\"/><rect x=\"12\" y=\"14\" width=\"12\" height=\"1\" rx=\"0.3\" transform=\"rotate%28-90 12 14%29\"/></svg>");
|
|
10
|
+
max-width: 254px;
|
|
11
|
+
height: 100%;
|
|
12
|
+
padding: 12px 2px var(--salt-spacing-200) 2px;
|
|
13
|
+
flex-direction: column;
|
|
14
|
+
gap: 24px;
|
|
15
|
+
display: flex;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.vuuTableSettingsPanel [data-icon="text-strikethrough"] {
|
|
19
|
+
--vuu-icon-svg: var(--vuu-svg-text-strikethrough);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.vuuTableSettingsPanel [data-icon="text-Tt"] {
|
|
23
|
+
--vuu-icon-svg: var(--vuu-svg-text-Tt);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.vuuTableSettingsPanel [data-icon="text-T"] {
|
|
27
|
+
--vuu-icon-svg: var(--vuu-svg-text-T);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.vuuTableSettingsPanel [data-icon="col-lines"] {
|
|
31
|
+
--vuu-icon-svg: var(--vuu-svg-col-lines);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.vuuTableSettingsPanel [data-icon="row-lines"] {
|
|
35
|
+
--vuu-icon-svg: var(--vuu-svg-row-lines);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.vuuTableSettingsPanel [data-icon="row-striping"] {
|
|
39
|
+
--vuu-icon-svg: var(--vuu-svg-stripes);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.vuuTableSettingsPanel-header {
|
|
43
|
+
padding-top: 24px;
|
|
44
|
+
font-size: 14px;
|
|
45
|
+
font-weight: 600;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.vuuTableSettingsPanel-columnListContainer {
|
|
49
|
+
flex: 1 1 0;
|
|
50
|
+
position: relative;
|
|
51
|
+
overflow: auto;
|
|
52
|
+
|
|
53
|
+
& .vuuColumnList {
|
|
54
|
+
height: 100%;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.vuuTableSettingsPanel-calculatedButtonbar {
|
|
59
|
+
--vuu-icon-size: 16px;
|
|
60
|
+
--saltButton-height: 24px;
|
|
61
|
+
--saltButton-width: 24px;
|
|
62
|
+
flex: 0 0 32px;
|
|
63
|
+
align-items: center;
|
|
64
|
+
gap: 12px;
|
|
65
|
+
display: flex;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
`;
|
|
70
|
+
export default css;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { FormField, FormFieldLabel, ToggleButton, ToggleButtonGroup } from "@salt-ds/core";
|
|
3
|
+
import { useComponentCssInjection } from "@salt-ds/styles";
|
|
4
|
+
import { useWindow } from "@salt-ds/window";
|
|
5
|
+
import { useTableSettings } from "./useTableSettings.js";
|
|
6
|
+
import { Icon, VuuInput } from "@vuu-ui/vuu-ui-controls";
|
|
7
|
+
import TableSettingsPanel from "./TableSettingsPanel.css";
|
|
8
|
+
const classBase = "vuuTableSettingsPanel";
|
|
9
|
+
const defaultTableSettingsPermissions = {
|
|
10
|
+
allowColumnLabelCase: true,
|
|
11
|
+
allowColumnDefaultWidth: true,
|
|
12
|
+
allowGridSeparators: true
|
|
13
|
+
};
|
|
14
|
+
const noTableSettingsPermissions = {
|
|
15
|
+
allowColumnLabelCase: false,
|
|
16
|
+
allowColumnDefaultWidth: false,
|
|
17
|
+
allowGridSeparators: false
|
|
18
|
+
};
|
|
19
|
+
const TableSettingsPanel_TableSettingsPanel = ({ onDisplayAttributeChange, tableDisplayAttributes: tableDisplayAttributesProp, permissions: permissionsProp })=>{
|
|
20
|
+
const targetWindow = useWindow();
|
|
21
|
+
useComponentCssInjection({
|
|
22
|
+
testId: "vuu-table-settings-panel",
|
|
23
|
+
css: TableSettingsPanel,
|
|
24
|
+
window: targetWindow
|
|
25
|
+
});
|
|
26
|
+
const permissions = void 0 === permissionsProp || true === permissionsProp ? defaultTableSettingsPermissions : false === permissionsProp ? noTableSettingsPermissions : permissionsProp;
|
|
27
|
+
const { columnLabelsValue, onChangeColumnLabels, onChangeTableAttribute, onCommitColumnWidth, tableDisplayAttributes } = useTableSettings({
|
|
28
|
+
onDisplayAttributeChange,
|
|
29
|
+
tableDisplayAttributes: tableDisplayAttributesProp
|
|
30
|
+
});
|
|
31
|
+
const { allowColumnLabelCase = true, allowColumnDefaultWidth = true, allowGridSeparators = true } = permissions;
|
|
32
|
+
return /*#__PURE__*/ jsxs("div", {
|
|
33
|
+
className: classBase,
|
|
34
|
+
children: [
|
|
35
|
+
allowColumnDefaultWidth ? /*#__PURE__*/ jsxs(FormField, {
|
|
36
|
+
children: [
|
|
37
|
+
/*#__PURE__*/ jsx(FormFieldLabel, {
|
|
38
|
+
children: "Column Width"
|
|
39
|
+
}),
|
|
40
|
+
/*#__PURE__*/ jsx(VuuInput, {
|
|
41
|
+
bordered: true,
|
|
42
|
+
className: "vuuInput",
|
|
43
|
+
"data-embedded": true,
|
|
44
|
+
onCommit: onCommitColumnWidth
|
|
45
|
+
})
|
|
46
|
+
]
|
|
47
|
+
}) : null,
|
|
48
|
+
allowColumnLabelCase ? /*#__PURE__*/ jsxs(FormField, {
|
|
49
|
+
children: [
|
|
50
|
+
/*#__PURE__*/ jsx(FormFieldLabel, {
|
|
51
|
+
children: "Column Labels"
|
|
52
|
+
}),
|
|
53
|
+
/*#__PURE__*/ jsxs(ToggleButtonGroup, {
|
|
54
|
+
className: "vuuToggleButtonGroup",
|
|
55
|
+
onChange: onChangeColumnLabels,
|
|
56
|
+
value: columnLabelsValue,
|
|
57
|
+
children: [
|
|
58
|
+
/*#__PURE__*/ jsx(ToggleButton, {
|
|
59
|
+
className: "vuuIconToggleButton",
|
|
60
|
+
value: 0,
|
|
61
|
+
children: /*#__PURE__*/ jsx(Icon, {
|
|
62
|
+
name: "text-strikethrough",
|
|
63
|
+
size: 48
|
|
64
|
+
})
|
|
65
|
+
}),
|
|
66
|
+
/*#__PURE__*/ jsx(ToggleButton, {
|
|
67
|
+
className: "vuuIconToggleButton",
|
|
68
|
+
value: 1,
|
|
69
|
+
children: /*#__PURE__*/ jsx(Icon, {
|
|
70
|
+
name: "text-Tt",
|
|
71
|
+
size: 48
|
|
72
|
+
})
|
|
73
|
+
}),
|
|
74
|
+
/*#__PURE__*/ jsx(ToggleButton, {
|
|
75
|
+
className: "vuuIconToggleButton",
|
|
76
|
+
value: 2,
|
|
77
|
+
children: /*#__PURE__*/ jsx(Icon, {
|
|
78
|
+
name: "text-T",
|
|
79
|
+
size: 48
|
|
80
|
+
})
|
|
81
|
+
})
|
|
82
|
+
]
|
|
83
|
+
})
|
|
84
|
+
]
|
|
85
|
+
}) : null,
|
|
86
|
+
allowGridSeparators ? /*#__PURE__*/ jsxs(FormField, {
|
|
87
|
+
children: [
|
|
88
|
+
/*#__PURE__*/ jsx(FormFieldLabel, {
|
|
89
|
+
children: "Grid separators"
|
|
90
|
+
}),
|
|
91
|
+
/*#__PURE__*/ jsxs("div", {
|
|
92
|
+
className: "saltToggleButtonGroup vuuStateButtonGroup saltToggleButtonGroup-horizontal",
|
|
93
|
+
children: [
|
|
94
|
+
/*#__PURE__*/ jsx(ToggleButton, {
|
|
95
|
+
selected: tableDisplayAttributes.zebraStripes ?? false,
|
|
96
|
+
onChange: onChangeTableAttribute,
|
|
97
|
+
value: "zebraStripes",
|
|
98
|
+
children: /*#__PURE__*/ jsx(Icon, {
|
|
99
|
+
name: "row-striping",
|
|
100
|
+
size: 16
|
|
101
|
+
})
|
|
102
|
+
}),
|
|
103
|
+
/*#__PURE__*/ jsx(ToggleButton, {
|
|
104
|
+
selected: tableDisplayAttributes.rowSeparators ?? false,
|
|
105
|
+
onChange: onChangeTableAttribute,
|
|
106
|
+
value: "rowSeparators",
|
|
107
|
+
children: /*#__PURE__*/ jsx(Icon, {
|
|
108
|
+
name: "row-lines",
|
|
109
|
+
size: 16
|
|
110
|
+
})
|
|
111
|
+
}),
|
|
112
|
+
/*#__PURE__*/ jsx(ToggleButton, {
|
|
113
|
+
selected: tableDisplayAttributes.columnSeparators ?? false,
|
|
114
|
+
onChange: onChangeTableAttribute,
|
|
115
|
+
value: "columnSeparators",
|
|
116
|
+
children: /*#__PURE__*/ jsx(Icon, {
|
|
117
|
+
name: "col-lines",
|
|
118
|
+
size: 16
|
|
119
|
+
})
|
|
120
|
+
})
|
|
121
|
+
]
|
|
122
|
+
})
|
|
123
|
+
]
|
|
124
|
+
}) : null
|
|
125
|
+
]
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
export { TableSettingsPanel_TableSettingsPanel as TableSettingsPanel, defaultTableSettingsPermissions, noTableSettingsPermissions };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { queryClosest, useLayoutEffectSkipFirst } from "@vuu-ui/vuu-utils";
|
|
2
|
+
import { useCallback, useState } from "react";
|
|
3
|
+
const useTableSettings = ({ onDisplayAttributeChange, tableDisplayAttributes: tableDisplayAttributesProp })=>{
|
|
4
|
+
const [tableDisplayAttributes, setDisplayTableAttributes] = useState(tableDisplayAttributesProp);
|
|
5
|
+
const handleChangeColumnLabels = useCallback((evt)=>{
|
|
6
|
+
const button = queryClosest(evt.target, "button");
|
|
7
|
+
if (button) {
|
|
8
|
+
const value = parseInt(button.value);
|
|
9
|
+
const columnFormatHeader = 0 === value ? void 0 : 1 === value ? "capitalize" : "uppercase";
|
|
10
|
+
setDisplayTableAttributes((state)=>({
|
|
11
|
+
...state,
|
|
12
|
+
columnFormatHeader
|
|
13
|
+
}));
|
|
14
|
+
}
|
|
15
|
+
}, []);
|
|
16
|
+
const handleChangeTableAttribute = useCallback((evt)=>{
|
|
17
|
+
const button = queryClosest(evt.target, "button");
|
|
18
|
+
if (button) {
|
|
19
|
+
const { ariaPressed, value } = button;
|
|
20
|
+
setDisplayTableAttributes((state)=>({
|
|
21
|
+
...state,
|
|
22
|
+
[value]: "true" !== ariaPressed
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
}, []);
|
|
26
|
+
const handleCommitColumnWidth = useCallback((_, value)=>{
|
|
27
|
+
if ("string" == typeof value) {
|
|
28
|
+
const columnDefaultWidth = parseInt(value);
|
|
29
|
+
if (!isNaN(columnDefaultWidth)) setDisplayTableAttributes((state)=>({
|
|
30
|
+
...state,
|
|
31
|
+
columnDefaultWidth
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
}, []);
|
|
35
|
+
useLayoutEffectSkipFirst(()=>{
|
|
36
|
+
onDisplayAttributeChange?.(tableDisplayAttributes);
|
|
37
|
+
}, [
|
|
38
|
+
onDisplayAttributeChange,
|
|
39
|
+
tableDisplayAttributes
|
|
40
|
+
]);
|
|
41
|
+
const columnLabelsValue = void 0 === tableDisplayAttributes.columnFormatHeader ? 0 : "capitalize" === tableDisplayAttributes.columnFormatHeader ? 1 : 2;
|
|
42
|
+
return {
|
|
43
|
+
columnLabelsValue,
|
|
44
|
+
onChangeColumnLabels: handleChangeColumnLabels,
|
|
45
|
+
onChangeTableAttribute: handleChangeTableAttribute,
|
|
46
|
+
onCommitColumnWidth: handleCommitColumnWidth,
|
|
47
|
+
tableDisplayAttributes
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
export { useTableSettings };
|