@vuu-ui/vuu-table-extras 0.0.26
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/LICENSE +201 -0
- package/README.md +0 -0
- package/cjs/cell-edit-validators/CaseValidator.js +24 -0
- package/cjs/cell-edit-validators/CaseValidator.js.map +1 -0
- package/cjs/cell-edit-validators/PatternValidator.js +26 -0
- package/cjs/cell-edit-validators/PatternValidator.js.map +1 -0
- package/cjs/cell-renderers/background-cell/BackgroundCell.css.js +6 -0
- package/cjs/cell-renderers/background-cell/BackgroundCell.css.js.map +1 -0
- package/cjs/cell-renderers/background-cell/BackgroundCell.js +79 -0
- package/cjs/cell-renderers/background-cell/BackgroundCell.js.map +1 -0
- package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +6 -0
- package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js.map +1 -0
- package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +67 -0
- package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +1 -0
- package/cjs/cell-renderers/background-cell/BackgroundKeyframes.css.js +6 -0
- package/cjs/cell-renderers/background-cell/BackgroundKeyframes.css.js.map +1 -0
- package/cjs/cell-renderers/background-cell/useDirection.js +20 -0
- package/cjs/cell-renderers/background-cell/useDirection.js.map +1 -0
- package/cjs/cell-renderers/dropdown-cell/DropdownCell.css.js +6 -0
- package/cjs/cell-renderers/dropdown-cell/DropdownCell.css.js.map +1 -0
- package/cjs/cell-renderers/dropdown-cell/DropdownCell.js +65 -0
- package/cjs/cell-renderers/dropdown-cell/DropdownCell.js.map +1 -0
- package/cjs/cell-renderers/lookup-cell/LookupCell.js +26 -0
- package/cjs/cell-renderers/lookup-cell/LookupCell.js.map +1 -0
- package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.css.js +6 -0
- package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.css.js.map +1 -0
- package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.js +62 -0
- package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.js.map +1 -0
- package/cjs/cell-renderers/progress-cell/ProgressCell.css.js +6 -0
- package/cjs/cell-renderers/progress-cell/ProgressCell.css.js.map +1 -0
- package/cjs/cell-renderers/progress-cell/ProgressCell.js +69 -0
- package/cjs/cell-renderers/progress-cell/ProgressCell.js.map +1 -0
- package/cjs/column-expression-input/ColumnExpressionInput.css.js +6 -0
- package/cjs/column-expression-input/ColumnExpressionInput.css.js.map +1 -0
- package/cjs/column-expression-input/ColumnExpressionInput.js +39 -0
- package/cjs/column-expression-input/ColumnExpressionInput.js.map +1 -0
- package/cjs/column-expression-input/column-function-descriptors.js +307 -0
- package/cjs/column-expression-input/column-function-descriptors.js.map +1 -0
- package/cjs/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +29 -0
- package/cjs/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +1 -0
- package/cjs/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +469 -0
- package/cjs/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +1 -0
- package/cjs/column-expression-input/column-language-parser/column-expression-parse-utils.js +61 -0
- package/cjs/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +1 -0
- package/cjs/column-expression-input/column-language-parser/generated/column-parser.js +21 -0
- package/cjs/column-expression-input/column-language-parser/generated/column-parser.js.map +1 -0
- package/cjs/column-expression-input/functionDocInfo.js +39 -0
- package/cjs/column-expression-input/functionDocInfo.js.map +1 -0
- package/cjs/column-expression-input/highlighting.js +16 -0
- package/cjs/column-expression-input/highlighting.js.map +1 -0
- package/cjs/column-expression-input/theme.js +63 -0
- package/cjs/column-expression-input/theme.js.map +1 -0
- package/cjs/column-expression-input/useColumnAutoComplete.js +358 -0
- package/cjs/column-expression-input/useColumnAutoComplete.js.map +1 -0
- package/cjs/column-expression-input/useColumnExpressionEditor.js +131 -0
- package/cjs/column-expression-input/useColumnExpressionEditor.js.map +1 -0
- package/cjs/column-expression-input/useColumnExpressionSuggestionProvider.js +212 -0
- package/cjs/column-expression-input/useColumnExpressionSuggestionProvider.js.map +1 -0
- package/cjs/column-expression-panel/ColumnExpressionPanel.js +87 -0
- package/cjs/column-expression-panel/ColumnExpressionPanel.js.map +1 -0
- package/cjs/column-expression-panel/useColumnExpression.js +69 -0
- package/cjs/column-expression-panel/useColumnExpression.js.map +1 -0
- package/cjs/column-formatting-settings/BaseNumericFormattingSettings.js +97 -0
- package/cjs/column-formatting-settings/BaseNumericFormattingSettings.js.map +1 -0
- package/cjs/column-formatting-settings/ColumnFormattingPanel.js +107 -0
- package/cjs/column-formatting-settings/ColumnFormattingPanel.js.map +1 -0
- package/cjs/column-formatting-settings/DateTimeFormattingSettings.js +90 -0
- package/cjs/column-formatting-settings/DateTimeFormattingSettings.js.map +1 -0
- package/cjs/column-formatting-settings/LongTypeFormattingSettings.css.js +6 -0
- package/cjs/column-formatting-settings/LongTypeFormattingSettings.css.js.map +1 -0
- package/cjs/column-formatting-settings/LongTypeFormattingSettings.js +49 -0
- package/cjs/column-formatting-settings/LongTypeFormattingSettings.js.map +1 -0
- package/cjs/column-list/ColumnList.css.js +6 -0
- package/cjs/column-list/ColumnList.css.js.map +1 -0
- package/cjs/column-list/ColumnList.js +115 -0
- package/cjs/column-list/ColumnList.js.map +1 -0
- package/cjs/column-settings/ColumnNameLabel.css.js +6 -0
- package/cjs/column-settings/ColumnNameLabel.css.js.map +1 -0
- package/cjs/column-settings/ColumnNameLabel.js +45 -0
- package/cjs/column-settings/ColumnNameLabel.js.map +1 -0
- package/cjs/column-settings/ColumnSettingsPanel.css.js +6 -0
- package/cjs/column-settings/ColumnSettingsPanel.css.js.map +1 -0
- package/cjs/column-settings/ColumnSettingsPanel.js +195 -0
- package/cjs/column-settings/ColumnSettingsPanel.js.map +1 -0
- package/cjs/column-settings/useColumnSettings.js +235 -0
- package/cjs/column-settings/useColumnSettings.js.map +1 -0
- package/cjs/datasource-stats/DatasourceStats.css.js +6 -0
- package/cjs/datasource-stats/DatasourceStats.css.js.map +1 -0
- package/cjs/datasource-stats/DatasourceStats.js +48 -0
- package/cjs/datasource-stats/DatasourceStats.js.map +1 -0
- package/cjs/index.js +54 -0
- package/cjs/index.js.map +1 -0
- package/cjs/table-settings/TableSettingsPanel.css.js +6 -0
- package/cjs/table-settings/TableSettingsPanel.css.js.map +1 -0
- package/cjs/table-settings/TableSettingsPanel.js +123 -0
- package/cjs/table-settings/TableSettingsPanel.js.map +1 -0
- package/cjs/table-settings/useTableSettings.js +182 -0
- package/cjs/table-settings/useTableSettings.js.map +1 -0
- package/esm/cell-edit-validators/CaseValidator.js +22 -0
- package/esm/cell-edit-validators/CaseValidator.js.map +1 -0
- package/esm/cell-edit-validators/PatternValidator.js +24 -0
- package/esm/cell-edit-validators/PatternValidator.js.map +1 -0
- package/esm/cell-renderers/background-cell/BackgroundCell.css.js +4 -0
- package/esm/cell-renderers/background-cell/BackgroundCell.css.js.map +1 -0
- package/esm/cell-renderers/background-cell/BackgroundCell.js +77 -0
- package/esm/cell-renderers/background-cell/BackgroundCell.js.map +1 -0
- package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +4 -0
- package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js.map +1 -0
- package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +65 -0
- package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +1 -0
- package/esm/cell-renderers/background-cell/BackgroundKeyframes.css.js +4 -0
- package/esm/cell-renderers/background-cell/BackgroundKeyframes.css.js.map +1 -0
- package/esm/cell-renderers/background-cell/useDirection.js +18 -0
- package/esm/cell-renderers/background-cell/useDirection.js.map +1 -0
- package/esm/cell-renderers/dropdown-cell/DropdownCell.css.js +4 -0
- package/esm/cell-renderers/dropdown-cell/DropdownCell.css.js.map +1 -0
- package/esm/cell-renderers/dropdown-cell/DropdownCell.js +63 -0
- package/esm/cell-renderers/dropdown-cell/DropdownCell.js.map +1 -0
- package/esm/cell-renderers/lookup-cell/LookupCell.js +24 -0
- package/esm/cell-renderers/lookup-cell/LookupCell.js.map +1 -0
- package/esm/cell-renderers/pct-progress-cell/PctProgressCell.css.js +4 -0
- package/esm/cell-renderers/pct-progress-cell/PctProgressCell.css.js.map +1 -0
- package/esm/cell-renderers/pct-progress-cell/PctProgressCell.js +60 -0
- package/esm/cell-renderers/pct-progress-cell/PctProgressCell.js.map +1 -0
- package/esm/cell-renderers/progress-cell/ProgressCell.css.js +4 -0
- package/esm/cell-renderers/progress-cell/ProgressCell.css.js.map +1 -0
- package/esm/cell-renderers/progress-cell/ProgressCell.js +67 -0
- package/esm/cell-renderers/progress-cell/ProgressCell.js.map +1 -0
- package/esm/column-expression-input/ColumnExpressionInput.css.js +4 -0
- package/esm/column-expression-input/ColumnExpressionInput.css.js.map +1 -0
- package/esm/column-expression-input/ColumnExpressionInput.js +37 -0
- package/esm/column-expression-input/ColumnExpressionInput.js.map +1 -0
- package/esm/column-expression-input/column-function-descriptors.js +305 -0
- package/esm/column-expression-input/column-function-descriptors.js.map +1 -0
- package/esm/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +27 -0
- package/esm/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +1 -0
- package/esm/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +467 -0
- package/esm/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +1 -0
- package/esm/column-expression-input/column-language-parser/column-expression-parse-utils.js +56 -0
- package/esm/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +1 -0
- package/esm/column-expression-input/column-language-parser/generated/column-parser.js +19 -0
- package/esm/column-expression-input/column-language-parser/generated/column-parser.js.map +1 -0
- package/esm/column-expression-input/functionDocInfo.js +37 -0
- package/esm/column-expression-input/functionDocInfo.js.map +1 -0
- package/esm/column-expression-input/highlighting.js +14 -0
- package/esm/column-expression-input/highlighting.js.map +1 -0
- package/esm/column-expression-input/theme.js +61 -0
- package/esm/column-expression-input/theme.js.map +1 -0
- package/esm/column-expression-input/useColumnAutoComplete.js +356 -0
- package/esm/column-expression-input/useColumnAutoComplete.js.map +1 -0
- package/esm/column-expression-input/useColumnExpressionEditor.js +129 -0
- package/esm/column-expression-input/useColumnExpressionEditor.js.map +1 -0
- package/esm/column-expression-input/useColumnExpressionSuggestionProvider.js +210 -0
- package/esm/column-expression-input/useColumnExpressionSuggestionProvider.js.map +1 -0
- package/esm/column-expression-panel/ColumnExpressionPanel.js +85 -0
- package/esm/column-expression-panel/ColumnExpressionPanel.js.map +1 -0
- package/esm/column-expression-panel/useColumnExpression.js +67 -0
- package/esm/column-expression-panel/useColumnExpression.js.map +1 -0
- package/esm/column-formatting-settings/BaseNumericFormattingSettings.js +95 -0
- package/esm/column-formatting-settings/BaseNumericFormattingSettings.js.map +1 -0
- package/esm/column-formatting-settings/ColumnFormattingPanel.js +105 -0
- package/esm/column-formatting-settings/ColumnFormattingPanel.js.map +1 -0
- package/esm/column-formatting-settings/DateTimeFormattingSettings.js +88 -0
- package/esm/column-formatting-settings/DateTimeFormattingSettings.js.map +1 -0
- package/esm/column-formatting-settings/LongTypeFormattingSettings.css.js +4 -0
- package/esm/column-formatting-settings/LongTypeFormattingSettings.css.js.map +1 -0
- package/esm/column-formatting-settings/LongTypeFormattingSettings.js +47 -0
- package/esm/column-formatting-settings/LongTypeFormattingSettings.js.map +1 -0
- package/esm/column-list/ColumnList.css.js +4 -0
- package/esm/column-list/ColumnList.css.js.map +1 -0
- package/esm/column-list/ColumnList.js +113 -0
- package/esm/column-list/ColumnList.js.map +1 -0
- package/esm/column-settings/ColumnNameLabel.css.js +4 -0
- package/esm/column-settings/ColumnNameLabel.css.js.map +1 -0
- package/esm/column-settings/ColumnNameLabel.js +43 -0
- package/esm/column-settings/ColumnNameLabel.js.map +1 -0
- package/esm/column-settings/ColumnSettingsPanel.css.js +4 -0
- package/esm/column-settings/ColumnSettingsPanel.css.js.map +1 -0
- package/esm/column-settings/ColumnSettingsPanel.js +193 -0
- package/esm/column-settings/ColumnSettingsPanel.js.map +1 -0
- package/esm/column-settings/useColumnSettings.js +233 -0
- package/esm/column-settings/useColumnSettings.js.map +1 -0
- package/esm/datasource-stats/DatasourceStats.css.js +4 -0
- package/esm/datasource-stats/DatasourceStats.css.js.map +1 -0
- package/esm/datasource-stats/DatasourceStats.js +46 -0
- package/esm/datasource-stats/DatasourceStats.js.map +1 -0
- package/esm/index.js +24 -0
- package/esm/index.js.map +1 -0
- package/esm/table-settings/TableSettingsPanel.css.js +4 -0
- package/esm/table-settings/TableSettingsPanel.css.js.map +1 -0
- package/esm/table-settings/TableSettingsPanel.js +121 -0
- package/esm/table-settings/TableSettingsPanel.js.map +1 -0
- package/esm/table-settings/useTableSettings.js +180 -0
- package/esm/table-settings/useTableSettings.js.map +1 -0
- package/package.json +47 -0
- package/types/cell-edit-validators/CaseValidator.d.ts +2 -0
- package/types/cell-edit-validators/PatternValidator.d.ts +2 -0
- package/types/cell-edit-validators/index.d.ts +2 -0
- package/types/cell-renderers/background-cell/BackgroundCell.d.ts +3 -0
- package/types/cell-renderers/background-cell/BackgroundCellConfigurationEditor.d.ts +3 -0
- package/types/cell-renderers/background-cell/index.d.ts +2 -0
- package/types/cell-renderers/background-cell/useDirection.d.ts +3 -0
- package/types/cell-renderers/dropdown-cell/DropdownCell.d.ts +3 -0
- package/types/cell-renderers/dropdown-cell/index.d.ts +1 -0
- package/types/cell-renderers/index.d.ts +5 -0
- package/types/cell-renderers/lookup-cell/LookupCell.d.ts +3 -0
- package/types/cell-renderers/lookup-cell/index.d.ts +1 -0
- package/types/cell-renderers/pct-progress-cell/PctProgressCell.d.ts +3 -0
- package/types/cell-renderers/pct-progress-cell/index.d.ts +1 -0
- package/types/cell-renderers/progress-cell/ProgressCell.d.ts +1 -0
- package/types/cell-renderers/progress-cell/index.d.ts +1 -0
- package/types/column-expression-input/ColumnExpressionInput.d.ts +10 -0
- package/types/column-expression-input/column-function-descriptors.d.ts +15 -0
- package/types/column-expression-input/column-language-parser/ColumnExpressionLanguage.d.ts +2 -0
- package/types/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.d.ts +58 -0
- package/types/column-expression-input/column-language-parser/column-expression-parse-utils.d.ts +5 -0
- package/types/column-expression-input/column-language-parser/generated/column-parser.d.ts +2 -0
- package/types/column-expression-input/column-language-parser/generated/column-parser.terms.d.ts +24 -0
- package/types/column-expression-input/column-language-parser/index.d.ts +3 -0
- package/types/column-expression-input/column-language-parser/test.d.mts +1 -0
- package/types/column-expression-input/functionDocInfo.d.ts +2 -0
- package/types/column-expression-input/highlighting.d.ts +1 -0
- package/types/column-expression-input/index.d.ts +4 -0
- package/types/column-expression-input/theme.d.ts +1 -0
- package/types/column-expression-input/useColumnAutoComplete.d.ts +6 -0
- package/types/column-expression-input/useColumnExpressionEditor.d.ts +25 -0
- package/types/column-expression-input/useColumnExpressionSuggestionProvider.d.ts +8 -0
- package/types/column-expression-panel/ColumnExpressionPanel.d.ts +13 -0
- package/types/column-expression-panel/index.d.ts +1 -0
- package/types/column-expression-panel/useColumnExpression.d.ts +10 -0
- package/types/column-formatting-settings/BaseNumericFormattingSettings.d.ts +3 -0
- package/types/column-formatting-settings/ColumnFormattingPanel.d.ts +9 -0
- package/types/column-formatting-settings/DateTimeFormattingSettings.d.ts +3 -0
- package/types/column-formatting-settings/LongTypeFormattingSettings.d.ts +3 -0
- package/types/column-formatting-settings/index.d.ts +3 -0
- package/types/column-list/ColumnList.d.ts +12 -0
- package/types/column-list/index.d.ts +1 -0
- package/types/column-settings/ColumnNameLabel.d.ts +7 -0
- package/types/column-settings/ColumnSettingsPanel.d.ts +3 -0
- package/types/column-settings/index.d.ts +1 -0
- package/types/column-settings/useColumnSettings.d.ts +22 -0
- package/types/datasource-stats/DatasourceStats.d.ts +7 -0
- package/types/datasource-stats/index.d.ts +1 -0
- package/types/index.d.ts +9 -0
- package/types/table-settings/TableSettingsPanel.d.ts +8 -0
- package/types/table-settings/index.d.ts +2 -0
- package/types/table-settings/useTableSettings.d.ts +18 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { VuuInput, Icon } from '@vuu-ui/vuu-ui-controls';
|
|
3
|
+
import { getDefaultAlignment, isCalculatedColumn, getCalculatedColumnName } from '@vuu-ui/vuu-utils';
|
|
4
|
+
import { FormField, FormFieldLabel, ToggleButtonGroup, ToggleButton, Button } from '@salt-ds/core';
|
|
5
|
+
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
6
|
+
import { useWindow } from '@salt-ds/window';
|
|
7
|
+
import cx from 'clsx';
|
|
8
|
+
import { ColumnExpressionPanel } from '../column-expression-panel/ColumnExpressionPanel.js';
|
|
9
|
+
import { ColumnFormattingPanel } from '../column-formatting-settings/ColumnFormattingPanel.js';
|
|
10
|
+
import 'react';
|
|
11
|
+
import { ColumnNameLabel } from './ColumnNameLabel.js';
|
|
12
|
+
import { useColumnSettings } from './useColumnSettings.js';
|
|
13
|
+
import colunSettingsPanelCss from './ColumnSettingsPanel.css.js';
|
|
14
|
+
|
|
15
|
+
const classBase = "vuuColumnSettingsPanel";
|
|
16
|
+
const getColumnLabel = (column) => {
|
|
17
|
+
const { name, label } = column;
|
|
18
|
+
if (isCalculatedColumn(name)) {
|
|
19
|
+
return label ?? getCalculatedColumnName(column);
|
|
20
|
+
} else {
|
|
21
|
+
return label ?? name;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const ColumnSettingsPanel = ({
|
|
25
|
+
column: columnProp,
|
|
26
|
+
onCancelCreateColumn,
|
|
27
|
+
onConfigChange,
|
|
28
|
+
onCreateCalculatedColumn,
|
|
29
|
+
tableConfig,
|
|
30
|
+
vuuTable
|
|
31
|
+
}) => {
|
|
32
|
+
const targetWindow = useWindow();
|
|
33
|
+
useComponentCssInjection({
|
|
34
|
+
testId: "vuu-column-settings-panel",
|
|
35
|
+
css: colunSettingsPanelCss,
|
|
36
|
+
window: targetWindow
|
|
37
|
+
});
|
|
38
|
+
const isNewCalculatedColumn = columnProp.name === "::";
|
|
39
|
+
const {
|
|
40
|
+
availableRenderers,
|
|
41
|
+
editCalculatedColumn,
|
|
42
|
+
column,
|
|
43
|
+
navigateNextColumn,
|
|
44
|
+
navigatePrevColumn,
|
|
45
|
+
onCancel,
|
|
46
|
+
onChange,
|
|
47
|
+
onChangeCalculatedColumnName,
|
|
48
|
+
onChangeFormatting,
|
|
49
|
+
onChangeRendering,
|
|
50
|
+
onChangeServerDataType,
|
|
51
|
+
onChangeToggleButton,
|
|
52
|
+
onChangeType,
|
|
53
|
+
onEditCalculatedColumn,
|
|
54
|
+
onInputCommit,
|
|
55
|
+
onSave
|
|
56
|
+
} = useColumnSettings({
|
|
57
|
+
column: columnProp,
|
|
58
|
+
onCancelCreateColumn,
|
|
59
|
+
onConfigChange,
|
|
60
|
+
onCreateCalculatedColumn,
|
|
61
|
+
tableConfig
|
|
62
|
+
});
|
|
63
|
+
const {
|
|
64
|
+
serverDataType,
|
|
65
|
+
align = getDefaultAlignment(serverDataType),
|
|
66
|
+
pin,
|
|
67
|
+
width
|
|
68
|
+
} = column;
|
|
69
|
+
return /* @__PURE__ */ jsxs(
|
|
70
|
+
"div",
|
|
71
|
+
{
|
|
72
|
+
className: cx(classBase, {
|
|
73
|
+
[`${classBase}-editing`]: editCalculatedColumn
|
|
74
|
+
}),
|
|
75
|
+
children: [
|
|
76
|
+
/* @__PURE__ */ jsx("div", { className: `${classBase}-header`, children: /* @__PURE__ */ jsx(ColumnNameLabel, { column, onClick: onEditCalculatedColumn }) }),
|
|
77
|
+
editCalculatedColumn ? /* @__PURE__ */ jsx(
|
|
78
|
+
ColumnExpressionPanel,
|
|
79
|
+
{
|
|
80
|
+
column,
|
|
81
|
+
onChangeName: onChangeCalculatedColumnName,
|
|
82
|
+
onChangeServerDataType,
|
|
83
|
+
tableConfig,
|
|
84
|
+
vuuTable
|
|
85
|
+
}
|
|
86
|
+
) : null,
|
|
87
|
+
/* @__PURE__ */ jsxs(FormField, { "data-field": "column-label", children: [
|
|
88
|
+
/* @__PURE__ */ jsx(FormFieldLabel, { children: "Column Label" }),
|
|
89
|
+
/* @__PURE__ */ jsx(
|
|
90
|
+
VuuInput,
|
|
91
|
+
{
|
|
92
|
+
className: "vuuInput",
|
|
93
|
+
"data-embedded": true,
|
|
94
|
+
onChange,
|
|
95
|
+
onCommit: onInputCommit,
|
|
96
|
+
value: getColumnLabel(column)
|
|
97
|
+
}
|
|
98
|
+
)
|
|
99
|
+
] }),
|
|
100
|
+
/* @__PURE__ */ jsxs(FormField, { "data-field": "column-width", children: [
|
|
101
|
+
/* @__PURE__ */ jsx(FormFieldLabel, { children: "Column Width" }),
|
|
102
|
+
/* @__PURE__ */ jsx(
|
|
103
|
+
VuuInput,
|
|
104
|
+
{
|
|
105
|
+
className: "vuuInput",
|
|
106
|
+
"data-embedded": true,
|
|
107
|
+
onChange,
|
|
108
|
+
value: width,
|
|
109
|
+
onCommit: onInputCommit
|
|
110
|
+
}
|
|
111
|
+
)
|
|
112
|
+
] }),
|
|
113
|
+
/* @__PURE__ */ jsxs(FormField, { "data-field": "column-alignment", children: [
|
|
114
|
+
/* @__PURE__ */ jsx(FormFieldLabel, { children: "Alignment" }),
|
|
115
|
+
/* @__PURE__ */ jsxs(ToggleButtonGroup, { onChange: onChangeToggleButton, value: align, children: [
|
|
116
|
+
/* @__PURE__ */ jsx(ToggleButton, { value: "left", children: /* @__PURE__ */ jsx(Icon, { name: "align-left", size: 16 }) }),
|
|
117
|
+
/* @__PURE__ */ jsx(ToggleButton, { value: "right", children: /* @__PURE__ */ jsx(Icon, { name: "align-right", size: 16 }) })
|
|
118
|
+
] })
|
|
119
|
+
] }),
|
|
120
|
+
/* @__PURE__ */ jsxs(FormField, { "data-field": "column-pin", children: [
|
|
121
|
+
/* @__PURE__ */ jsx(FormFieldLabel, { children: "Pin Column" }),
|
|
122
|
+
/* @__PURE__ */ jsxs(ToggleButtonGroup, { onChange: onChangeToggleButton, value: pin ?? "", children: [
|
|
123
|
+
/* @__PURE__ */ jsx(ToggleButton, { value: "left", children: /* @__PURE__ */ jsx(Icon, { name: "pin-left", size: 16 }) }),
|
|
124
|
+
/* @__PURE__ */ jsx(ToggleButton, { value: "floating", children: /* @__PURE__ */ jsx(Icon, { name: "pin-float", size: 16 }) }),
|
|
125
|
+
/* @__PURE__ */ jsx(ToggleButton, { value: "right", children: /* @__PURE__ */ jsx(Icon, { name: "pin-right", size: 16 }) }),
|
|
126
|
+
/* @__PURE__ */ jsx(ToggleButton, { value: "", children: /* @__PURE__ */ jsx(Icon, { name: "cross-circle", size: 16 }) })
|
|
127
|
+
] })
|
|
128
|
+
] }),
|
|
129
|
+
/* @__PURE__ */ jsx(
|
|
130
|
+
ColumnFormattingPanel,
|
|
131
|
+
{
|
|
132
|
+
availableRenderers,
|
|
133
|
+
column,
|
|
134
|
+
onChangeFormatting,
|
|
135
|
+
onChangeRendering,
|
|
136
|
+
onChangeColumnType: onChangeType
|
|
137
|
+
}
|
|
138
|
+
),
|
|
139
|
+
editCalculatedColumn ? /* @__PURE__ */ jsxs("div", { className: "vuuColumnSettingsPanel-buttonBar", "data-align": "right", children: [
|
|
140
|
+
/* @__PURE__ */ jsx(
|
|
141
|
+
Button,
|
|
142
|
+
{
|
|
143
|
+
className: `${classBase}-buttonCancel`,
|
|
144
|
+
onClick: onCancel,
|
|
145
|
+
tabIndex: -1,
|
|
146
|
+
children: "cancel"
|
|
147
|
+
}
|
|
148
|
+
),
|
|
149
|
+
/* @__PURE__ */ jsx(
|
|
150
|
+
Button,
|
|
151
|
+
{
|
|
152
|
+
className: `${classBase}-buttonSave`,
|
|
153
|
+
onClick: onSave,
|
|
154
|
+
variant: "cta",
|
|
155
|
+
children: "save"
|
|
156
|
+
}
|
|
157
|
+
)
|
|
158
|
+
] }) : /* @__PURE__ */ jsxs(
|
|
159
|
+
"div",
|
|
160
|
+
{
|
|
161
|
+
className: `${classBase}-buttonBar`,
|
|
162
|
+
"data-align": isNewCalculatedColumn ? "right" : void 0,
|
|
163
|
+
children: [
|
|
164
|
+
/* @__PURE__ */ jsx(
|
|
165
|
+
Button,
|
|
166
|
+
{
|
|
167
|
+
className: `${classBase}-buttonNavPrev`,
|
|
168
|
+
variant: "secondary",
|
|
169
|
+
"data-icon": "arrow-left",
|
|
170
|
+
onClick: navigatePrevColumn,
|
|
171
|
+
children: "PREVIOUS"
|
|
172
|
+
}
|
|
173
|
+
),
|
|
174
|
+
/* @__PURE__ */ jsx(
|
|
175
|
+
Button,
|
|
176
|
+
{
|
|
177
|
+
className: `${classBase}-buttonNavNext`,
|
|
178
|
+
variant: "secondary",
|
|
179
|
+
"data-icon": "arrow-right",
|
|
180
|
+
onClick: navigateNextColumn,
|
|
181
|
+
children: "NEXT"
|
|
182
|
+
}
|
|
183
|
+
)
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
)
|
|
187
|
+
]
|
|
188
|
+
}
|
|
189
|
+
);
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
export { ColumnSettingsPanel };
|
|
193
|
+
//# sourceMappingURL=ColumnSettingsPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnSettingsPanel.js","sources":["../../src/column-settings/ColumnSettingsPanel.tsx"],"sourcesContent":["import { ColumnDescriptor, ColumnSettingsProps } from \"@vuu-ui/vuu-table-types\";\nimport { Icon, VuuInput } from \"@vuu-ui/vuu-ui-controls\";\nimport {\n getCalculatedColumnName,\n getDefaultAlignment,\n isCalculatedColumn,\n} from \"@vuu-ui/vuu-utils\";\nimport {\n Button,\n FormField,\n FormFieldLabel,\n ToggleButton,\n ToggleButtonGroup,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport { ColumnExpressionPanel } from \"../column-expression-panel\";\nimport { ColumnFormattingPanel } from \"../column-formatting-settings\";\nimport { ColumnNameLabel } from \"./ColumnNameLabel\";\nimport { useColumnSettings } from \"./useColumnSettings\";\n\nimport colunSettingsPanelCss from \"./ColumnSettingsPanel.css\";\n\nconst classBase = \"vuuColumnSettingsPanel\";\n\nconst getColumnLabel = (column: ColumnDescriptor) => {\n const { name, label } = column;\n if (isCalculatedColumn(name)) {\n return label ?? getCalculatedColumnName(column);\n } else {\n return label ?? name;\n }\n};\n\nexport const ColumnSettingsPanel = ({\n column: columnProp,\n onCancelCreateColumn,\n onConfigChange,\n onCreateCalculatedColumn,\n tableConfig,\n vuuTable,\n}: ColumnSettingsProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-settings-panel\",\n css: colunSettingsPanelCss,\n window: targetWindow,\n });\n\n const isNewCalculatedColumn = columnProp.name === \"::\";\n const {\n availableRenderers,\n editCalculatedColumn,\n column,\n navigateNextColumn,\n navigatePrevColumn,\n onCancel,\n onChange,\n onChangeCalculatedColumnName,\n onChangeFormatting,\n onChangeRendering,\n onChangeServerDataType,\n onChangeToggleButton,\n onChangeType,\n onEditCalculatedColumn,\n onInputCommit,\n onSave,\n } = useColumnSettings({\n column: columnProp,\n onCancelCreateColumn,\n onConfigChange,\n onCreateCalculatedColumn,\n tableConfig,\n });\n\n const {\n serverDataType,\n align = getDefaultAlignment(serverDataType),\n pin,\n width,\n } = column;\n\n return (\n <div\n className={cx(classBase, {\n [`${classBase}-editing`]: editCalculatedColumn,\n })}\n >\n <div className={`${classBase}-header`}>\n <ColumnNameLabel column={column} onClick={onEditCalculatedColumn} />\n </div>\n\n {editCalculatedColumn ? (\n <ColumnExpressionPanel\n column={column}\n onChangeName={onChangeCalculatedColumnName}\n onChangeServerDataType={onChangeServerDataType}\n tableConfig={tableConfig}\n vuuTable={vuuTable}\n />\n ) : null}\n\n <FormField data-field=\"column-label\">\n <FormFieldLabel>Column Label</FormFieldLabel>\n <VuuInput\n className=\"vuuInput\"\n data-embedded\n onChange={onChange}\n onCommit={onInputCommit}\n value={getColumnLabel(column)}\n />\n </FormField>\n\n <FormField data-field=\"column-width\">\n <FormFieldLabel>Column Width</FormFieldLabel>\n <VuuInput\n className=\"vuuInput\"\n data-embedded\n onChange={onChange}\n value={width}\n onCommit={onInputCommit}\n />\n </FormField>\n <FormField data-field=\"column-alignment\">\n <FormFieldLabel>Alignment</FormFieldLabel>\n <ToggleButtonGroup onChange={onChangeToggleButton} value={align}>\n <ToggleButton value=\"left\">\n <Icon name=\"align-left\" size={16} />\n </ToggleButton>\n <ToggleButton value=\"right\">\n <Icon name=\"align-right\" size={16} />\n </ToggleButton>\n </ToggleButtonGroup>\n </FormField>\n <FormField data-field=\"column-pin\">\n <FormFieldLabel>Pin Column</FormFieldLabel>\n <ToggleButtonGroup onChange={onChangeToggleButton} value={pin ?? \"\"}>\n <ToggleButton value=\"left\">\n <Icon name=\"pin-left\" size={16} />\n </ToggleButton>\n <ToggleButton value=\"floating\">\n <Icon name=\"pin-float\" size={16} />\n </ToggleButton>\n <ToggleButton value=\"right\">\n <Icon name=\"pin-right\" size={16} />\n </ToggleButton>\n <ToggleButton value=\"\">\n <Icon name=\"cross-circle\" size={16} />\n </ToggleButton>\n </ToggleButtonGroup>\n </FormField>\n <ColumnFormattingPanel\n availableRenderers={availableRenderers}\n column={column}\n onChangeFormatting={onChangeFormatting}\n onChangeRendering={onChangeRendering}\n onChangeColumnType={onChangeType}\n />\n\n {editCalculatedColumn ? (\n <div className=\"vuuColumnSettingsPanel-buttonBar\" data-align=\"right\">\n <Button\n className={`${classBase}-buttonCancel`}\n onClick={onCancel}\n tabIndex={-1}\n >\n cancel\n </Button>\n <Button\n className={`${classBase}-buttonSave`}\n onClick={onSave}\n variant=\"cta\"\n >\n save\n </Button>\n </div>\n ) : (\n <div\n className={`${classBase}-buttonBar`}\n data-align={isNewCalculatedColumn ? \"right\" : undefined}\n >\n <Button\n className={`${classBase}-buttonNavPrev`}\n variant=\"secondary\"\n data-icon=\"arrow-left\"\n onClick={navigatePrevColumn}\n >\n PREVIOUS\n </Button>\n <Button\n className={`${classBase}-buttonNavNext`}\n variant=\"secondary\"\n data-icon=\"arrow-right\"\n onClick={navigateNextColumn}\n >\n NEXT\n </Button>\n </div>\n )}\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { queryClosest, isValidPinLocation, isValidColumnAlignment, setCalculatedColumnName, updateColumnFormatting, updateColumnType, updateColumnRenderProps, getRegisteredCellRenderers } from '@vuu-ui/vuu-utils';
|
|
2
|
+
import { useState, useRef, useCallback, useEffect, useMemo } from 'react';
|
|
3
|
+
|
|
4
|
+
const integerCellRenderers = [
|
|
5
|
+
{
|
|
6
|
+
description: "Default formatter for columns with data type integer",
|
|
7
|
+
label: "Default Renderer (int, long)",
|
|
8
|
+
name: "default-int"
|
|
9
|
+
}
|
|
10
|
+
];
|
|
11
|
+
const doubleCellRenderers = [
|
|
12
|
+
{
|
|
13
|
+
description: "Default formatter for columns with data type double",
|
|
14
|
+
label: "Default Renderer (double)",
|
|
15
|
+
name: "default-double"
|
|
16
|
+
}
|
|
17
|
+
];
|
|
18
|
+
const stringCellRenderers = [
|
|
19
|
+
{
|
|
20
|
+
description: "Default formatter for columns with data type string",
|
|
21
|
+
label: "Default Renderer (string)",
|
|
22
|
+
name: "default-string"
|
|
23
|
+
}
|
|
24
|
+
];
|
|
25
|
+
const booleanCellRenderers = [];
|
|
26
|
+
const getAvailableCellRenderers = (column) => {
|
|
27
|
+
switch (column.serverDataType) {
|
|
28
|
+
case "char":
|
|
29
|
+
case "string":
|
|
30
|
+
return stringCellRenderers.concat(getRegisteredCellRenderers("string"));
|
|
31
|
+
case "int":
|
|
32
|
+
case "long":
|
|
33
|
+
return integerCellRenderers.concat(getRegisteredCellRenderers("int"));
|
|
34
|
+
case "double":
|
|
35
|
+
return doubleCellRenderers.concat(getRegisteredCellRenderers("double"));
|
|
36
|
+
case "boolean":
|
|
37
|
+
return booleanCellRenderers.concat(getRegisteredCellRenderers("boolean"));
|
|
38
|
+
default:
|
|
39
|
+
return stringCellRenderers;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const getFieldName = (input) => {
|
|
43
|
+
const saltFormField = input.closest(".saltFormField");
|
|
44
|
+
if (saltFormField && saltFormField.dataset.field) {
|
|
45
|
+
const {
|
|
46
|
+
dataset: { field }
|
|
47
|
+
} = saltFormField;
|
|
48
|
+
return field;
|
|
49
|
+
} else {
|
|
50
|
+
throw Error("named form field not found");
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const getColumn = (columns, column) => {
|
|
54
|
+
if (column.name === "::") {
|
|
55
|
+
return column;
|
|
56
|
+
} else {
|
|
57
|
+
const col = columns.find((col2) => col2.name === column.name);
|
|
58
|
+
if (col) {
|
|
59
|
+
return col;
|
|
60
|
+
}
|
|
61
|
+
throw Error(`columns does not contain column ${name}`);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
const replaceColumn = (tableConfig, column) => ({
|
|
65
|
+
...tableConfig,
|
|
66
|
+
columns: tableConfig.columns.map(
|
|
67
|
+
(col) => col.name === column.name ? column : col
|
|
68
|
+
)
|
|
69
|
+
});
|
|
70
|
+
const useColumnSettings = ({
|
|
71
|
+
column: columnProp,
|
|
72
|
+
onCancelCreateColumn,
|
|
73
|
+
onConfigChange,
|
|
74
|
+
onCreateCalculatedColumn,
|
|
75
|
+
tableConfig
|
|
76
|
+
}) => {
|
|
77
|
+
const [column, setColumn] = useState(
|
|
78
|
+
getColumn(tableConfig.columns, columnProp)
|
|
79
|
+
);
|
|
80
|
+
const columnRef = useRef(column);
|
|
81
|
+
const [inEditMode, setEditMode] = useState(column.name === "::");
|
|
82
|
+
const handleEditCalculatedcolumn = useCallback(() => {
|
|
83
|
+
columnRef.current = column;
|
|
84
|
+
setEditMode(true);
|
|
85
|
+
}, [column]);
|
|
86
|
+
useEffect(() => {
|
|
87
|
+
setColumn(columnProp);
|
|
88
|
+
setEditMode(columnProp.name === "::");
|
|
89
|
+
}, [columnProp]);
|
|
90
|
+
const availableRenderers = useMemo(() => {
|
|
91
|
+
return getAvailableCellRenderers(column);
|
|
92
|
+
}, [column]);
|
|
93
|
+
const handleInputCommit = useCallback(() => {
|
|
94
|
+
onConfigChange(replaceColumn(tableConfig, column));
|
|
95
|
+
}, [column, onConfigChange, tableConfig]);
|
|
96
|
+
const handleChangeToggleButton = useCallback(
|
|
97
|
+
(evt) => {
|
|
98
|
+
const button = queryClosest(evt.target, "button");
|
|
99
|
+
if (button) {
|
|
100
|
+
const fieldName = getFieldName(button);
|
|
101
|
+
const { value } = button;
|
|
102
|
+
switch (fieldName) {
|
|
103
|
+
case "column-alignment":
|
|
104
|
+
if (isValidColumnAlignment(value)) {
|
|
105
|
+
const newColumn = {
|
|
106
|
+
...column,
|
|
107
|
+
align: value || void 0
|
|
108
|
+
};
|
|
109
|
+
setColumn(newColumn);
|
|
110
|
+
onConfigChange(replaceColumn(tableConfig, newColumn));
|
|
111
|
+
}
|
|
112
|
+
break;
|
|
113
|
+
case "column-pin":
|
|
114
|
+
if (isValidPinLocation(value)) {
|
|
115
|
+
const newColumn = {
|
|
116
|
+
...column,
|
|
117
|
+
pin: value || void 0
|
|
118
|
+
};
|
|
119
|
+
setColumn(newColumn);
|
|
120
|
+
onConfigChange(replaceColumn(tableConfig, newColumn));
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
[column, onConfigChange, tableConfig]
|
|
127
|
+
);
|
|
128
|
+
const handleChange = useCallback((evt) => {
|
|
129
|
+
const input = evt.target;
|
|
130
|
+
const fieldName = getFieldName(input);
|
|
131
|
+
const { value } = input;
|
|
132
|
+
switch (fieldName) {
|
|
133
|
+
case "column-label":
|
|
134
|
+
setColumn((state) => ({ ...state, label: value }));
|
|
135
|
+
break;
|
|
136
|
+
case "column-name":
|
|
137
|
+
setColumn((state) => setCalculatedColumnName(state, value));
|
|
138
|
+
break;
|
|
139
|
+
case "column-width":
|
|
140
|
+
setColumn((state) => ({ ...state, width: parseInt(value) }));
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
}, []);
|
|
144
|
+
const handleChangeCalculatedColumnName = useCallback((name2) => {
|
|
145
|
+
setColumn((state) => ({ ...state, name: name2 }));
|
|
146
|
+
}, []);
|
|
147
|
+
const handleChangeFormatting = useCallback(
|
|
148
|
+
(formatting) => {
|
|
149
|
+
const newColumn = updateColumnFormatting(column, formatting);
|
|
150
|
+
setColumn(newColumn);
|
|
151
|
+
onConfigChange(replaceColumn(tableConfig, newColumn));
|
|
152
|
+
},
|
|
153
|
+
[column, onConfigChange, tableConfig]
|
|
154
|
+
);
|
|
155
|
+
const handleChangeType = useCallback(
|
|
156
|
+
(type) => {
|
|
157
|
+
const updatedColumn = updateColumnType(column, type);
|
|
158
|
+
setColumn(updatedColumn);
|
|
159
|
+
onConfigChange(replaceColumn(tableConfig, updatedColumn));
|
|
160
|
+
},
|
|
161
|
+
[column, onConfigChange, tableConfig]
|
|
162
|
+
);
|
|
163
|
+
const handleChangeServerDataType = useCallback(
|
|
164
|
+
(serverDataType) => {
|
|
165
|
+
setColumn((col) => ({ ...col, serverDataType }));
|
|
166
|
+
},
|
|
167
|
+
[]
|
|
168
|
+
);
|
|
169
|
+
const handleChangeRendering = useCallback(
|
|
170
|
+
(renderProps) => {
|
|
171
|
+
if (renderProps) {
|
|
172
|
+
const newColumn = updateColumnRenderProps(
|
|
173
|
+
column,
|
|
174
|
+
renderProps
|
|
175
|
+
);
|
|
176
|
+
setColumn(newColumn);
|
|
177
|
+
onConfigChange(replaceColumn(tableConfig, newColumn));
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
[column, onConfigChange, tableConfig]
|
|
181
|
+
);
|
|
182
|
+
const navigateColumn = useCallback(
|
|
183
|
+
({ moveBy }) => {
|
|
184
|
+
const { columns } = tableConfig;
|
|
185
|
+
const index = columns.indexOf(column) + moveBy;
|
|
186
|
+
const newColumn = columns[index];
|
|
187
|
+
if (newColumn) {
|
|
188
|
+
setColumn(newColumn);
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
[column, tableConfig]
|
|
192
|
+
);
|
|
193
|
+
const navigateNextColumn = useCallback(() => {
|
|
194
|
+
navigateColumn({ moveBy: 1 });
|
|
195
|
+
}, [navigateColumn]);
|
|
196
|
+
const navigatePrevColumn = useCallback(() => {
|
|
197
|
+
navigateColumn({ moveBy: -1 });
|
|
198
|
+
}, [navigateColumn]);
|
|
199
|
+
const handleSaveCalculatedColumn = useCallback(() => {
|
|
200
|
+
onCreateCalculatedColumn(column);
|
|
201
|
+
}, [column, onCreateCalculatedColumn]);
|
|
202
|
+
const handleCancelEdit = useCallback(() => {
|
|
203
|
+
if (columnProp.name === "::") {
|
|
204
|
+
onCancelCreateColumn();
|
|
205
|
+
} else {
|
|
206
|
+
if (columnRef.current !== void 0 && columnRef.current !== column) {
|
|
207
|
+
setColumn(columnRef.current);
|
|
208
|
+
}
|
|
209
|
+
setEditMode(false);
|
|
210
|
+
}
|
|
211
|
+
}, [column, columnProp.name, onCancelCreateColumn]);
|
|
212
|
+
return {
|
|
213
|
+
availableRenderers,
|
|
214
|
+
editCalculatedColumn: inEditMode,
|
|
215
|
+
column,
|
|
216
|
+
navigateNextColumn,
|
|
217
|
+
navigatePrevColumn,
|
|
218
|
+
onCancel: handleCancelEdit,
|
|
219
|
+
onChange: handleChange,
|
|
220
|
+
onChangeCalculatedColumnName: handleChangeCalculatedColumnName,
|
|
221
|
+
onChangeFormatting: handleChangeFormatting,
|
|
222
|
+
onChangeRendering: handleChangeRendering,
|
|
223
|
+
onChangeServerDataType: handleChangeServerDataType,
|
|
224
|
+
onChangeToggleButton: handleChangeToggleButton,
|
|
225
|
+
onChangeType: handleChangeType,
|
|
226
|
+
onEditCalculatedColumn: handleEditCalculatedcolumn,
|
|
227
|
+
onInputCommit: handleInputCommit,
|
|
228
|
+
onSave: handleSaveCalculatedColumn
|
|
229
|
+
};
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
export { useColumnSettings };
|
|
233
|
+
//# sourceMappingURL=useColumnSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useColumnSettings.js","sources":["../../src/column-settings/useColumnSettings.ts"],"sourcesContent":["import {\n ColumnDescriptor,\n TableConfig,\n ColumnTypeFormatting,\n ColumnSettingsProps,\n ColumnTypeSimple,\n} from \"@vuu-ui/vuu-table-types\";\n\nimport {\n CellRendererDescriptor,\n ColumnRenderPropsChangeHandler,\n getRegisteredCellRenderers,\n isValidColumnAlignment,\n isValidPinLocation,\n setCalculatedColumnName,\n updateColumnRenderProps,\n updateColumnFormatting,\n updateColumnType,\n queryClosest,\n} from \"@vuu-ui/vuu-utils\";\nimport { VuuColumnDataType } from \"@vuu-ui/vuu-protocol-types\";\nimport {\n FormEventHandler,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nconst integerCellRenderers: CellRendererDescriptor[] = [\n {\n description: \"Default formatter for columns with data type integer\",\n label: \"Default Renderer (int, long)\",\n name: \"default-int\",\n },\n];\nconst doubleCellRenderers: CellRendererDescriptor[] = [\n {\n description: \"Default formatter for columns with data type double\",\n label: \"Default Renderer (double)\",\n name: \"default-double\",\n },\n];\n\nconst stringCellRenderers: CellRendererDescriptor[] = [\n {\n description: \"Default formatter for columns with data type string\",\n label: \"Default Renderer (string)\",\n name: \"default-string\",\n },\n];\n\nconst booleanCellRenderers: CellRendererDescriptor[] = [];\n\nconst getAvailableCellRenderers = (\n column: ColumnDescriptor\n): CellRendererDescriptor[] => {\n switch (column.serverDataType) {\n case \"char\":\n case \"string\":\n return stringCellRenderers.concat(getRegisteredCellRenderers(\"string\"));\n case \"int\":\n case \"long\":\n return integerCellRenderers.concat(getRegisteredCellRenderers(\"int\"));\n case \"double\":\n return doubleCellRenderers.concat(getRegisteredCellRenderers(\"double\"));\n case \"boolean\":\n return booleanCellRenderers.concat(getRegisteredCellRenderers(\"boolean\"));\n default:\n return stringCellRenderers;\n }\n};\n\nconst getFieldName = (input: HTMLInputElement | HTMLButtonElement): string => {\n const saltFormField = input.closest(\".saltFormField\") as HTMLElement;\n if (saltFormField && saltFormField.dataset.field) {\n const {\n dataset: { field },\n } = saltFormField;\n return field;\n } else {\n throw Error(\"named form field not found\");\n }\n};\n\nconst getColumn = (columns: ColumnDescriptor[], column: ColumnDescriptor) => {\n if (column.name === \"::\") {\n // this is a new calculated column\n return column;\n } else {\n const col = columns.find((col) => col.name === column.name);\n if (col) {\n return col;\n }\n throw Error(`columns does not contain column ${name}`);\n }\n};\n\nconst replaceColumn = (\n tableConfig: TableConfig,\n column: ColumnDescriptor\n): TableConfig => ({\n ...tableConfig,\n columns: tableConfig.columns.map((col) =>\n col.name === column.name ? column : col\n ),\n});\n\nexport const useColumnSettings = ({\n column: columnProp,\n onCancelCreateColumn,\n onConfigChange,\n onCreateCalculatedColumn,\n tableConfig,\n}: Omit<ColumnSettingsProps, \"vuuTable\">) => {\n const [column, setColumn] = useState<ColumnDescriptor>(\n getColumn(tableConfig.columns, columnProp)\n );\n const columnRef = useRef<ColumnDescriptor>(column);\n const [inEditMode, setEditMode] = useState(column.name === \"::\");\n\n const handleEditCalculatedcolumn = useCallback(() => {\n columnRef.current = column;\n setEditMode(true);\n }, [column]);\n\n useEffect(() => {\n setColumn(columnProp);\n setEditMode(columnProp.name === \"::\");\n }, [columnProp]);\n\n const availableRenderers = useMemo(() => {\n return getAvailableCellRenderers(column);\n }, [column]);\n\n const handleInputCommit = useCallback(() => {\n onConfigChange(replaceColumn(tableConfig, column));\n }, [column, onConfigChange, tableConfig]);\n\n const handleChangeToggleButton = useCallback<FormEventHandler>(\n (evt) => {\n const button = queryClosest<HTMLButtonElement>(evt.target, \"button\");\n if (button) {\n const fieldName = getFieldName(button);\n const { value } = button;\n switch (fieldName) {\n case \"column-alignment\":\n if (isValidColumnAlignment(value)) {\n const newColumn: ColumnDescriptor = {\n ...column,\n align: value || undefined,\n };\n setColumn(newColumn);\n onConfigChange(replaceColumn(tableConfig, newColumn));\n }\n break;\n case \"column-pin\":\n if (isValidPinLocation(value)) {\n const newColumn: ColumnDescriptor = {\n ...column,\n pin: value || undefined,\n };\n setColumn(newColumn);\n onConfigChange(replaceColumn(tableConfig, newColumn));\n\n break;\n }\n }\n }\n },\n [column, onConfigChange, tableConfig]\n );\n\n const handleChange = useCallback<FormEventHandler>((evt) => {\n const input = evt.target as HTMLInputElement;\n const fieldName = getFieldName(input);\n const { value } = input;\n switch (fieldName) {\n case \"column-label\":\n setColumn((state) => ({ ...state, label: value }));\n break;\n case \"column-name\":\n setColumn((state) => setCalculatedColumnName(state, value));\n break;\n case \"column-width\":\n setColumn((state) => ({ ...state, width: parseInt(value) }));\n break;\n }\n }, []);\n\n const handleChangeCalculatedColumnName = useCallback((name: string) => {\n setColumn((state) => ({ ...state, name }));\n }, []);\n\n const handleChangeFormatting = useCallback(\n (formatting: ColumnTypeFormatting) => {\n const newColumn = updateColumnFormatting(column, formatting);\n setColumn(newColumn);\n onConfigChange(replaceColumn(tableConfig, newColumn));\n },\n [column, onConfigChange, tableConfig]\n );\n\n const handleChangeType = useCallback(\n (type: ColumnTypeSimple) => {\n const updatedColumn = updateColumnType(column, type);\n setColumn(updatedColumn);\n onConfigChange(replaceColumn(tableConfig, updatedColumn));\n },\n [column, onConfigChange, tableConfig]\n );\n\n // Changing the server data type applies only to calculated columns\n const handleChangeServerDataType = useCallback(\n (serverDataType: VuuColumnDataType) => {\n setColumn((col) => ({ ...col, serverDataType }));\n },\n []\n );\n\n const handleChangeRendering = useCallback<ColumnRenderPropsChangeHandler>(\n (renderProps) => {\n if (renderProps) {\n const newColumn: ColumnDescriptor = updateColumnRenderProps(\n column,\n renderProps\n );\n setColumn(newColumn);\n onConfigChange(replaceColumn(tableConfig, newColumn));\n }\n },\n [column, onConfigChange, tableConfig]\n );\n\n const navigateColumn = useCallback(\n ({ moveBy }: { moveBy: number }) => {\n const { columns } = tableConfig;\n const index = columns.indexOf(column) + moveBy;\n const newColumn = columns[index];\n if (newColumn) {\n setColumn(newColumn);\n }\n },\n [column, tableConfig]\n );\n const navigateNextColumn = useCallback(() => {\n navigateColumn({ moveBy: 1 });\n }, [navigateColumn]);\n\n const navigatePrevColumn = useCallback(() => {\n navigateColumn({ moveBy: -1 });\n }, [navigateColumn]);\n\n const handleSaveCalculatedColumn = useCallback(() => {\n // TODO validate expression, unique name\n onCreateCalculatedColumn(column);\n }, [column, onCreateCalculatedColumn]);\n\n const handleCancelEdit = useCallback(() => {\n if (columnProp.name === \"::\") {\n onCancelCreateColumn();\n } else {\n if (columnRef.current !== undefined && columnRef.current !== column) {\n setColumn(columnRef.current);\n }\n setEditMode(false);\n }\n }, [column, columnProp.name, onCancelCreateColumn]);\n\n return {\n availableRenderers,\n editCalculatedColumn: inEditMode,\n column,\n navigateNextColumn,\n navigatePrevColumn,\n onCancel: handleCancelEdit,\n onChange: handleChange,\n onChangeCalculatedColumnName: handleChangeCalculatedColumnName,\n onChangeFormatting: handleChangeFormatting,\n onChangeRendering: handleChangeRendering,\n onChangeServerDataType: handleChangeServerDataType,\n onChangeToggleButton: handleChangeToggleButton,\n onChangeType: handleChangeType,\n onEditCalculatedColumn: handleEditCalculatedcolumn,\n onInputCommit: handleInputCommit,\n onSave: handleSaveCalculatedColumn,\n };\n};\n"],"names":["col","name"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var dataSourceStats = ".vuuDatasourceStats {\n color: black;\n display: flex;\n font-size: 10px;\n gap: var(--salt-size-unit);\n padding: 4px 0 0 12px;\n}\n\n.vuuDatasourceStats-label {\n color: var(--vuu-color-gray-50);\n}";
|
|
2
|
+
|
|
3
|
+
export { dataSourceStats as default };
|
|
4
|
+
//# sourceMappingURL=DatasourceStats.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatasourceStats.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import cx from 'clsx';
|
|
3
|
+
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
4
|
+
import { useWindow } from '@salt-ds/window';
|
|
5
|
+
import { useState, useEffect } from 'react';
|
|
6
|
+
import dataSourceStats from './DatasourceStats.css.js';
|
|
7
|
+
|
|
8
|
+
const classBase = "vuuDatasourceStats";
|
|
9
|
+
const numberFormatter = new Intl.NumberFormat();
|
|
10
|
+
const DataSourceStats = ({
|
|
11
|
+
className: classNameProp,
|
|
12
|
+
dataSource
|
|
13
|
+
}) => {
|
|
14
|
+
const targetWindow = useWindow();
|
|
15
|
+
useComponentCssInjection({
|
|
16
|
+
testId: "vuu-datasource-stats",
|
|
17
|
+
css: dataSourceStats,
|
|
18
|
+
window: targetWindow
|
|
19
|
+
});
|
|
20
|
+
const [range, setRange] = useState(dataSource.range);
|
|
21
|
+
const [size, setSize] = useState(dataSource.size);
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
setSize(dataSource.size);
|
|
24
|
+
dataSource.on("resize", setSize);
|
|
25
|
+
dataSource.on("range", setRange);
|
|
26
|
+
return () => {
|
|
27
|
+
dataSource.removeListener("resize", setSize);
|
|
28
|
+
dataSource.removeListener("range", setRange);
|
|
29
|
+
};
|
|
30
|
+
}, [dataSource]);
|
|
31
|
+
const className = cx(classBase, classNameProp);
|
|
32
|
+
const from = numberFormatter.format(range.from + 1);
|
|
33
|
+
const to = numberFormatter.format(Math.min(range.to, size));
|
|
34
|
+
const value = numberFormatter.format(size);
|
|
35
|
+
return /* @__PURE__ */ jsxs("div", { className, children: [
|
|
36
|
+
/* @__PURE__ */ jsx("span", { className: `${classBase}-label`, children: "Row count" }),
|
|
37
|
+
/* @__PURE__ */ jsx("span", { className: `${classBase}-range`, children: from }),
|
|
38
|
+
/* @__PURE__ */ jsx("span", { children: "-" }),
|
|
39
|
+
/* @__PURE__ */ jsx("span", { className: `${classBase}-range`, children: to }),
|
|
40
|
+
/* @__PURE__ */ jsx("span", { children: "of" }),
|
|
41
|
+
/* @__PURE__ */ jsx("span", { className: `${classBase}-size`, children: value })
|
|
42
|
+
] });
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export { DataSourceStats };
|
|
46
|
+
//# sourceMappingURL=DatasourceStats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatasourceStats.js","sources":["../../src/datasource-stats/DatasourceStats.tsx"],"sourcesContent":["import { DataSource } from \"@vuu-ui/vuu-data-types\";\nimport { VuuRange } from \"@vuu-ui/vuu-protocol-types\";\nimport cx from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { HTMLAttributes, useEffect, useState } from \"react\";\n\nimport dataSourceStats from \"./DatasourceStats.css\";\n\ninterface DataSourceStatsProps extends HTMLAttributes<HTMLSpanElement> {\n dataSource: DataSource;\n}\n\nconst classBase = \"vuuDatasourceStats\";\n\nconst numberFormatter = new Intl.NumberFormat();\n\nexport const DataSourceStats = ({\n className: classNameProp,\n dataSource,\n}: DataSourceStatsProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-datasource-stats\",\n css: dataSourceStats,\n window: targetWindow,\n });\n\n const [range, setRange] = useState<VuuRange>(dataSource.range);\n const [size, setSize] = useState(dataSource.size);\n useEffect(() => {\n setSize(dataSource.size);\n dataSource.on(\"resize\", setSize);\n dataSource.on(\"range\", setRange);\n return () => {\n dataSource.removeListener(\"resize\", setSize);\n dataSource.removeListener(\"range\", setRange);\n };\n }, [dataSource]);\n\n const className = cx(classBase, classNameProp);\n const from = numberFormatter.format(range.from + 1);\n const to = numberFormatter.format(Math.min(range.to, size));\n const value = numberFormatter.format(size);\n return (\n <div className={className}>\n <span className={`${classBase}-label`}>Row count</span>\n <span className={`${classBase}-range`}>{from}</span>\n <span>-</span>\n <span className={`${classBase}-range`}>{to}</span>\n <span>of</span>\n <span className={`${classBase}-size`}>{value}</span>\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAaA,MAAM,SAAY,GAAA,oBAAA,CAAA;AAElB,MAAM,eAAA,GAAkB,IAAI,IAAA,CAAK,YAAa,EAAA,CAAA;AAEvC,MAAM,kBAAkB,CAAC;AAAA,EAC9B,SAAW,EAAA,aAAA;AAAA,EACX,UAAA;AACF,CAA4B,KAAA;AAC1B,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,sBAAA;AAAA,IACR,GAAK,EAAA,eAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAA,QAAA,CAAmB,WAAW,KAAK,CAAA,CAAA;AAC7D,EAAA,MAAM,CAAC,IAAM,EAAA,OAAO,CAAI,GAAA,QAAA,CAAS,WAAW,IAAI,CAAA,CAAA;AAChD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,OAAA,CAAQ,WAAW,IAAI,CAAA,CAAA;AACvB,IAAW,UAAA,CAAA,EAAA,CAAG,UAAU,OAAO,CAAA,CAAA;AAC/B,IAAW,UAAA,CAAA,EAAA,CAAG,SAAS,QAAQ,CAAA,CAAA;AAC/B,IAAA,OAAO,MAAM;AACX,MAAW,UAAA,CAAA,cAAA,CAAe,UAAU,OAAO,CAAA,CAAA;AAC3C,MAAW,UAAA,CAAA,cAAA,CAAe,SAAS,QAAQ,CAAA,CAAA;AAAA,KAC7C,CAAA;AAAA,GACF,EAAG,CAAC,UAAU,CAAC,CAAA,CAAA;AAEf,EAAM,MAAA,SAAA,GAAY,EAAG,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAC7C,EAAA,MAAM,IAAO,GAAA,eAAA,CAAgB,MAAO,CAAA,KAAA,CAAM,OAAO,CAAC,CAAA,CAAA;AAClD,EAAM,MAAA,EAAA,GAAK,gBAAgB,MAAO,CAAA,IAAA,CAAK,IAAI,KAAM,CAAA,EAAA,EAAI,IAAI,CAAC,CAAA,CAAA;AAC1D,EAAM,MAAA,KAAA,GAAQ,eAAgB,CAAA,MAAA,CAAO,IAAI,CAAA,CAAA;AACzC,EACE,uBAAA,IAAA,CAAC,SAAI,SACH,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAK,EAAA,EAAA,SAAA,EAAW,CAAG,EAAA,SAAS,UAAU,QAAS,EAAA,WAAA,EAAA,CAAA;AAAA,wBAC/C,MAAK,EAAA,EAAA,SAAA,EAAW,CAAG,EAAA,SAAS,UAAW,QAAK,EAAA,IAAA,EAAA,CAAA;AAAA,oBAC7C,GAAA,CAAC,UAAK,QAAC,EAAA,GAAA,EAAA,CAAA;AAAA,wBACN,MAAK,EAAA,EAAA,SAAA,EAAW,CAAG,EAAA,SAAS,UAAW,QAAG,EAAA,EAAA,EAAA,CAAA;AAAA,oBAC3C,GAAA,CAAC,UAAK,QAAE,EAAA,IAAA,EAAA,CAAA;AAAA,wBACP,MAAK,EAAA,EAAA,SAAA,EAAW,CAAG,EAAA,SAAS,SAAU,QAAM,EAAA,KAAA,EAAA,CAAA;AAAA,GAC/C,EAAA,CAAA,CAAA;AAEJ;;;;"}
|
package/esm/index.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export { CaseValidator } from './cell-edit-validators/CaseValidator.js';
|
|
2
|
+
export { PatternValidator } from './cell-edit-validators/PatternValidator.js';
|
|
3
|
+
export { BackgroundCell } from './cell-renderers/background-cell/BackgroundCell.js';
|
|
4
|
+
export { BackgroundCellConfigurationEditor } from './cell-renderers/background-cell/BackgroundCellConfigurationEditor.js';
|
|
5
|
+
export { DropdownCell } from './cell-renderers/dropdown-cell/DropdownCell.js';
|
|
6
|
+
export { LookupCell } from './cell-renderers/lookup-cell/LookupCell.js';
|
|
7
|
+
export { PctProgressCell } from './cell-renderers/pct-progress-cell/PctProgressCell.js';
|
|
8
|
+
import './cell-renderers/progress-cell/ProgressCell.js';
|
|
9
|
+
export { ColumnList } from './column-list/ColumnList.js';
|
|
10
|
+
export { ColumnSettingsPanel } from './column-settings/ColumnSettingsPanel.js';
|
|
11
|
+
export { ColumnExpressionInput } from './column-expression-input/ColumnExpressionInput.js';
|
|
12
|
+
export { columnExpressionLanguageSupport } from './column-expression-input/column-language-parser/ColumnExpressionLanguage.js';
|
|
13
|
+
export { walkTree } from './column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js';
|
|
14
|
+
export { ColumnNamedTerms, isCompleteExpression, isCompleteRelationalExpression, lastNamedChild } from './column-expression-input/column-language-parser/column-expression-parse-utils.js';
|
|
15
|
+
export { useColumnExpressionEditor } from './column-expression-input/useColumnExpressionEditor.js';
|
|
16
|
+
export { useColumnExpressionSuggestionProvider } from './column-expression-input/useColumnExpressionSuggestionProvider.js';
|
|
17
|
+
export { ColumnExpressionPanel } from './column-expression-panel/ColumnExpressionPanel.js';
|
|
18
|
+
export { ColumnFormattingPanel } from './column-formatting-settings/ColumnFormattingPanel.js';
|
|
19
|
+
export { BaseNumericFormattingSettings } from './column-formatting-settings/BaseNumericFormattingSettings.js';
|
|
20
|
+
export { DateTimeFormattingSettings } from './column-formatting-settings/DateTimeFormattingSettings.js';
|
|
21
|
+
export { DataSourceStats } from './datasource-stats/DatasourceStats.js';
|
|
22
|
+
export { TableSettingsPanel } from './table-settings/TableSettingsPanel.js';
|
|
23
|
+
export { useTableSettings } from './table-settings/useTableSettings.js';
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var tableSettingsPanelCss = ".vuuTableSettingsPanel {\n --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>');\n --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>');\n --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>');\n --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>');\n --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>');\n --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(-90 3 14)\"/><rect x=\"6\" y=\"14\" width=\"12\" height=\"1\" rx=\"0.3\" transform=\"rotate(-90 6 14)\"/><rect x=\"9\" y=\"14\" width=\"12\" height=\"1\" rx=\"0.3\" transform=\"rotate(-90 9 14)\"/><rect x=\"12\" y=\"14\" width=\"12\" height=\"1\" rx=\"0.3\" transform=\"rotate(-90 12 14)\"/></svg>');\n\n display: flex;\n flex-direction: column;\n gap: 24px;\n height: 100%;\n max-width: 254px;\n padding: 24px 2px 0 2px;\n}\n\n\n.vuuTableSettingsPanel [data-icon=\"text-strikethrough\"]{\n --vuu-icon-svg: var(--vuu-svg-text-strikethrough);\n}\n.vuuTableSettingsPanel [data-icon=\"text-Tt\"]{\n --vuu-icon-svg: var(--vuu-svg-text-Tt);\n}\n.vuuTableSettingsPanel [data-icon=\"text-T\"]{\n --vuu-icon-svg: var(--vuu-svg-text-T);\n}\n.vuuTableSettingsPanel [data-icon=\"col-lines\"]{\n --vuu-icon-svg: var(--vuu-svg-col-lines);\n}\n.vuuTableSettingsPanel [data-icon=\"row-lines\"]{\n --vuu-icon-svg: var(--vuu-svg-row-lines);\n}\n.vuuTableSettingsPanel [data-icon=\"row-striping\"]{\n --vuu-icon-svg: var(--vuu-svg-stripes);\n}\n\n.vuuTableSettingsPanel-header {\n border-top: solid 2px var(--vuu-color-gray-30);\n font-size: 14px;\n font-weight: 600;\n padding-top: 24px;\n}\n\n.vuuTableSettingsPanel .vuuColumnList {\n flex-grow: 1;\n flex-shrink: 1;\n flex-basis: 0;\n}\n\n.vuuTableSettingsPanel-calculatedButtonbar {\n --vuu-icon-size: 16px;\n --saltButton-height: 24px;\n --saltButton-width: 24px;\n align-items: center;\n display: flex;\n flex: 0 0 32px;\n gap: 12px;\n}\n\n\n\n\n\n\n";
|
|
2
|
+
|
|
3
|
+
export { tableSettingsPanelCss as default };
|
|
4
|
+
//# sourceMappingURL=TableSettingsPanel.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableSettingsPanel.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|