@vuu-ui/vuu-table-extras 0.13.2 → 0.13.4
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/cjs/column-list/ColumnList.css.js +1 -1
- package/cjs/column-list/ColumnList.js +68 -22
- package/cjs/column-list/ColumnList.js.map +1 -1
- package/cjs/column-menu/ColumnMenu.js +40 -7
- package/cjs/column-menu/ColumnMenu.js.map +1 -1
- package/cjs/column-menu/column-menu-utils.js +46 -33
- package/cjs/column-menu/column-menu-utils.js.map +1 -1
- package/cjs/index.js +12 -5
- package/cjs/index.js.map +1 -1
- package/cjs/table-column-settings/ColumnNameLabel.js.map +1 -0
- package/cjs/table-column-settings/ColumnSettingsPanel.js.map +1 -0
- package/cjs/{table-settings → table-column-settings}/TableSettingsPanel.js +27 -11
- package/cjs/table-column-settings/TableSettingsPanel.js.map +1 -0
- package/cjs/table-column-settings/useColumnSettings.js.map +1 -0
- package/cjs/table-column-settings/useTableAndColumnSettings.js +126 -0
- package/cjs/table-column-settings/useTableAndColumnSettings.js.map +1 -0
- package/cjs/{table-settings → table-column-settings}/useTableSettings.js +9 -21
- package/cjs/table-column-settings/useTableSettings.js.map +1 -0
- package/esm/column-list/ColumnList.css.js +1 -1
- package/esm/column-list/ColumnList.js +73 -27
- package/esm/column-list/ColumnList.js.map +1 -1
- package/esm/column-menu/ColumnMenu.js +40 -7
- package/esm/column-menu/ColumnMenu.js.map +1 -1
- package/esm/column-menu/column-menu-utils.js +46 -33
- package/esm/column-menu/column-menu-utils.js.map +1 -1
- package/esm/index.js +5 -3
- package/esm/index.js.map +1 -1
- package/esm/table-column-settings/ColumnNameLabel.js.map +1 -0
- package/esm/table-column-settings/ColumnSettingsPanel.js.map +1 -0
- package/esm/{table-settings → table-column-settings}/TableSettingsPanel.js +27 -12
- package/esm/table-column-settings/TableSettingsPanel.js.map +1 -0
- package/esm/table-column-settings/useColumnSettings.js.map +1 -0
- package/esm/table-column-settings/useTableAndColumnSettings.js +122 -0
- package/esm/table-column-settings/useTableAndColumnSettings.js.map +1 -0
- package/esm/{table-settings → table-column-settings}/useTableSettings.js +10 -22
- package/esm/table-column-settings/useTableSettings.js.map +1 -0
- package/package.json +16 -19
- package/cjs/column-settings/ColumnNameLabel.js.map +0 -1
- package/cjs/column-settings/ColumnSettingsPanel.js.map +0 -1
- package/cjs/column-settings/useColumnSettings.js.map +0 -1
- package/cjs/table-settings/TableSettingsPanel.js.map +0 -1
- package/cjs/table-settings/useTableSettings.js.map +0 -1
- package/esm/column-settings/ColumnNameLabel.js.map +0 -1
- package/esm/column-settings/ColumnSettingsPanel.js.map +0 -1
- package/esm/column-settings/useColumnSettings.js.map +0 -1
- package/esm/table-settings/TableSettingsPanel.js.map +0 -1
- package/esm/table-settings/useTableSettings.js.map +0 -1
- package/types/cell-edit-validators/CaseValidator.d.ts +0 -2
- package/types/cell-edit-validators/PatternValidator.d.ts +0 -2
- package/types/cell-edit-validators/index.d.ts +0 -2
- package/types/cell-renderers/background-cell/BackgroundCell.d.ts +0 -2
- package/types/cell-renderers/background-cell/BackgroundCellConfigurationEditor.d.ts +0 -2
- package/types/cell-renderers/background-cell/index.d.ts +0 -2
- package/types/cell-renderers/background-cell/useDirection.d.ts +0 -3
- package/types/cell-renderers/dropdown-cell/DropdownCell.d.ts +0 -2
- package/types/cell-renderers/dropdown-cell/index.d.ts +0 -1
- package/types/cell-renderers/index.d.ts +0 -5
- package/types/cell-renderers/lookup-cell/LookupCell.d.ts +0 -2
- package/types/cell-renderers/lookup-cell/index.d.ts +0 -1
- package/types/cell-renderers/pct-progress-cell/PctProgressCell.d.ts +0 -2
- package/types/cell-renderers/pct-progress-cell/index.d.ts +0 -1
- package/types/cell-renderers/progress-cell/ProgressCell.d.ts +0 -1
- package/types/cell-renderers/progress-cell/index.d.ts +0 -1
- package/types/column-expression-input/ColumnExpressionInput.d.ts +0 -10
- package/types/column-expression-input/column-function-descriptors.d.ts +0 -15
- package/types/column-expression-input/column-language-parser/ColumnExpressionLanguage.d.ts +0 -2
- package/types/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.d.ts +0 -58
- package/types/column-expression-input/column-language-parser/column-expression-parse-utils.d.ts +0 -5
- package/types/column-expression-input/column-language-parser/generated/column-parser.d.ts +0 -2
- package/types/column-expression-input/column-language-parser/generated/column-parser.terms.d.ts +0 -24
- package/types/column-expression-input/column-language-parser/index.d.ts +0 -3
- package/types/column-expression-input/column-language-parser/test.d.mts +0 -1
- package/types/column-expression-input/functionDocInfo.d.ts +0 -2
- package/types/column-expression-input/highlighting.d.ts +0 -1
- package/types/column-expression-input/index.d.ts +0 -4
- package/types/column-expression-input/theme.d.ts +0 -1
- package/types/column-expression-input/useColumnAutoComplete.d.ts +0 -6
- package/types/column-expression-input/useColumnExpressionEditor.d.ts +0 -25
- package/types/column-expression-input/useColumnExpressionSuggestionProvider.d.ts +0 -8
- package/types/column-expression-panel/ColumnExpressionPanel.d.ts +0 -13
- package/types/column-expression-panel/index.d.ts +0 -1
- package/types/column-expression-panel/useColumnExpression.d.ts +0 -10
- package/types/column-formatting-settings/BaseNumericFormattingSettings.d.ts +0 -2
- package/types/column-formatting-settings/ColumnFormattingPanel.d.ts +0 -9
- package/types/column-formatting-settings/DateTimeFormattingSettings.d.ts +0 -4
- package/types/column-formatting-settings/LongTypeFormattingSettings.d.ts +0 -2
- package/types/column-formatting-settings/index.d.ts +0 -3
- package/types/column-list/ColumnList.d.ts +0 -12
- package/types/column-list/index.d.ts +0 -1
- package/types/column-menu/ColumnMenu.d.ts +0 -9
- package/types/column-menu/column-action-types.d.ts +0 -24
- package/types/column-menu/column-menu-utils.d.ts +0 -21
- package/types/column-menu/useColumnActions.d.ts +0 -18
- package/types/column-settings/ColumnNameLabel.d.ts +0 -7
- package/types/column-settings/ColumnSettingsPanel.d.ts +0 -2
- package/types/column-settings/index.d.ts +0 -1
- package/types/column-settings/useColumnSettings.d.ts +0 -23
- package/types/datasource-stats/DatasourceStats.d.ts +0 -7
- package/types/datasource-stats/index.d.ts +0 -1
- package/types/index.d.ts +0 -13
- package/types/table-provider/TableProvider.d.ts +0 -17
- package/types/table-settings/TableSettingsPanel.d.ts +0 -7
- package/types/table-settings/index.d.ts +0 -2
- package/types/table-settings/useTableSettings.d.ts +0 -18
- /package/cjs/{column-settings → table-column-settings}/ColumnNameLabel.css.js +0 -0
- /package/cjs/{column-settings → table-column-settings}/ColumnNameLabel.css.js.map +0 -0
- /package/cjs/{column-settings → table-column-settings}/ColumnNameLabel.js +0 -0
- /package/cjs/{column-settings → table-column-settings}/ColumnSettingsPanel.css.js +0 -0
- /package/cjs/{column-settings → table-column-settings}/ColumnSettingsPanel.css.js.map +0 -0
- /package/cjs/{column-settings → table-column-settings}/ColumnSettingsPanel.js +0 -0
- /package/cjs/{table-settings → table-column-settings}/TableSettingsPanel.css.js +0 -0
- /package/cjs/{table-settings → table-column-settings}/TableSettingsPanel.css.js.map +0 -0
- /package/cjs/{column-settings → table-column-settings}/useColumnSettings.js +0 -0
- /package/esm/{column-settings → table-column-settings}/ColumnNameLabel.css.js +0 -0
- /package/esm/{column-settings → table-column-settings}/ColumnNameLabel.css.js.map +0 -0
- /package/esm/{column-settings → table-column-settings}/ColumnNameLabel.js +0 -0
- /package/esm/{column-settings → table-column-settings}/ColumnSettingsPanel.css.js +0 -0
- /package/esm/{column-settings → table-column-settings}/ColumnSettingsPanel.css.js.map +0 -0
- /package/esm/{column-settings → table-column-settings}/ColumnSettingsPanel.js +0 -0
- /package/esm/{table-settings → table-column-settings}/TableSettingsPanel.css.js +0 -0
- /package/esm/{table-settings → table-column-settings}/TableSettingsPanel.css.js.map +0 -0
- /package/esm/{column-settings → table-column-settings}/useColumnSettings.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var columnList = ".vuuColumnList {\n --vuuMeasuredContainer-flex: 1 1 1px;\n --vuu-svg-function: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14 14\"><path d=\"M5.8625 10.5V9.625H6.72291L8.4875 7.59792L6.72291 5.54167H5.64375L4.60833 10.8792C4.53055 11.3167 4.36527 11.6545 4.1125 11.8927C3.85972 12.1309 3.53402 12.25 3.13541 12.25C2.7368 12.25 2.40382 12.1333 2.13645 11.9C1.86909 11.6667 1.73541 11.375 1.73541 11.025C1.73541 10.7625 1.80833 10.551 1.95416 10.3906C2.1 10.2302 2.28958 10.15 2.52291 10.15C2.72708 10.15 2.89479 10.2083 3.02604 10.325C3.15729 10.4417 3.22291 10.5972 3.22291 10.7917C3.22291 10.8986 3.20104 10.9983 3.15729 11.0906C3.11354 11.183 3.05277 11.2583 2.975 11.3167C3.01388 11.3361 3.0552 11.3507 3.09895 11.3604C3.1427 11.3701 3.18888 11.375 3.2375 11.375C3.36388 11.375 3.47083 11.3142 3.55833 11.1927C3.64583 11.0712 3.70902 10.9132 3.74791 10.7188L4.75416 5.54167H2.91666V4.66667H4.91458L5.22083 3.12083C5.30833 2.68333 5.48333 2.34549 5.74583 2.10729C6.00833 1.8691 6.33402 1.75 6.72291 1.75C7.12152 1.75 7.44965 1.86667 7.70729 2.1C7.96493 2.33333 8.09375 2.625 8.09375 2.975C8.09375 3.2375 8.02083 3.44896 7.875 3.60938C7.72916 3.76979 7.53958 3.85 7.30625 3.85C7.1118 3.85 6.94652 3.7941 6.81041 3.68229C6.6743 3.57049 6.60625 3.42222 6.60625 3.2375C6.60625 3.14028 6.62569 3.04549 6.66458 2.95312C6.70347 2.86076 6.75208 2.78542 6.81041 2.72708C6.79097 2.70764 6.7618 2.69063 6.72291 2.67604C6.68402 2.66146 6.64513 2.65417 6.60625 2.65417C6.47986 2.65417 6.37048 2.7125 6.27812 2.82917C6.18576 2.94583 6.12013 3.09653 6.08125 3.28125L5.81875 4.66667H8.575V5.54167H7.88958L9.1 6.94167L10.2375 5.54167H9.5375V4.66667H12.25V5.54167H11.4042L9.65416 7.59792L11.4042 9.625H12.25V10.5H9.5375V9.625H10.2375L9.07083 8.26875L7.875 9.625H8.575V10.5H5.8625Z\"/></svg>');\n --vuuList-borderStyle: none;\n --vuuListItem-padding: 0;\n display: flex;\n flex-direction: column;\n
|
|
3
|
+
var columnList = ".vuuColumnList {\n --vuuMeasuredContainer-flex: 1 1 1px;\n --vuu-svg-function: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14 14\"><path d=\"M5.8625 10.5V9.625H6.72291L8.4875 7.59792L6.72291 5.54167H5.64375L4.60833 10.8792C4.53055 11.3167 4.36527 11.6545 4.1125 11.8927C3.85972 12.1309 3.53402 12.25 3.13541 12.25C2.7368 12.25 2.40382 12.1333 2.13645 11.9C1.86909 11.6667 1.73541 11.375 1.73541 11.025C1.73541 10.7625 1.80833 10.551 1.95416 10.3906C2.1 10.2302 2.28958 10.15 2.52291 10.15C2.72708 10.15 2.89479 10.2083 3.02604 10.325C3.15729 10.4417 3.22291 10.5972 3.22291 10.7917C3.22291 10.8986 3.20104 10.9983 3.15729 11.0906C3.11354 11.183 3.05277 11.2583 2.975 11.3167C3.01388 11.3361 3.0552 11.3507 3.09895 11.3604C3.1427 11.3701 3.18888 11.375 3.2375 11.375C3.36388 11.375 3.47083 11.3142 3.55833 11.1927C3.64583 11.0712 3.70902 10.9132 3.74791 10.7188L4.75416 5.54167H2.91666V4.66667H4.91458L5.22083 3.12083C5.30833 2.68333 5.48333 2.34549 5.74583 2.10729C6.00833 1.8691 6.33402 1.75 6.72291 1.75C7.12152 1.75 7.44965 1.86667 7.70729 2.1C7.96493 2.33333 8.09375 2.625 8.09375 2.975C8.09375 3.2375 8.02083 3.44896 7.875 3.60938C7.72916 3.76979 7.53958 3.85 7.30625 3.85C7.1118 3.85 6.94652 3.7941 6.81041 3.68229C6.6743 3.57049 6.60625 3.42222 6.60625 3.2375C6.60625 3.14028 6.62569 3.04549 6.66458 2.95312C6.70347 2.86076 6.75208 2.78542 6.81041 2.72708C6.79097 2.70764 6.7618 2.69063 6.72291 2.67604C6.68402 2.66146 6.64513 2.65417 6.60625 2.65417C6.47986 2.65417 6.37048 2.7125 6.27812 2.82917C6.18576 2.94583 6.12013 3.09653 6.08125 3.28125L5.81875 4.66667H8.575V5.54167H7.88958L9.1 6.94167L10.2375 5.54167H9.5375V4.66667H12.25V5.54167H11.4042L9.65416 7.59792L11.4042 9.625H12.25V10.5H9.5375V9.625H10.2375L9.07083 8.26875L7.875 9.625H8.575V10.5H5.8625Z\"/></svg>');\n --vuuList-borderStyle: none;\n --vuuListItem-padding: 0;\n display: flex;\n flex-direction: column;\n\n\n .saltOption {\n align-items: center;\n background-color: var(--salt-container-primary-background);\n border-bottom: var(--vuuColumnListItem-border, solid) 1px\n var(--salt-separable-tertiary-borderColor);\n gap: var(--salt-spacing-200);\n padding: var(--salt=spacin-100) 0;\n\n .vuuIcon {\n --vuu-icon-color: var(--salt-content-secondary-foreground);\n }\n }\n\n .vuuColumnList-text {\n flex: 1 1 auto;\n }\n\n}\n\n[data-icon=\"function\"] {\n --vuu-icon-svg: var(--vuu-svg-function);\n}\n\n\n\n.vuuColumnList-withColumnNavgation {\n .vuuColumnList-text:hover {\n font-weight: 600;\n text-decoration: underline;\n }\n}\n\n.vuuColumnList-header {\n border-top: solid 2px var(--vuu-color-gray-30);\n flex: 0 0 40px;\n font-size: 14px;\n font-weight: 600;\n padding-top: 24px;\n}\n\n.vuuColumnList-colHeadings {\n border-bottom: solid 2px var(--vuu-color-gray-30);\n color: var(--vuu-color-gray-50);\n display: flex;\n flex: 0 0 24px;\n font-size: 10px;\n justify-content: space-between;\n margin-top: 16px;\n padding-bottom: 8px;\n}\n";
|
|
4
4
|
|
|
5
5
|
module.exports = columnList;
|
|
6
6
|
//# sourceMappingURL=ColumnList.css.js.map
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react$1 = require('@dnd-kit/react');
|
|
5
|
+
var sortable = require('@dnd-kit/react/sortable');
|
|
4
6
|
var core = require('@salt-ds/core');
|
|
5
7
|
var styles = require('@salt-ds/styles');
|
|
6
8
|
var window = require('@salt-ds/window');
|
|
@@ -12,45 +14,81 @@ var ColumnList$1 = require('./ColumnList.css.js');
|
|
|
12
14
|
|
|
13
15
|
const classBase = "vuuColumnList";
|
|
14
16
|
const classBaseListItem = "vuuColumnListItem";
|
|
17
|
+
const useSorting = (id, index, allowSort = true) => {
|
|
18
|
+
const { handleRef: sortableHandleRef, ref: sortableRef } = sortable.useSortable({
|
|
19
|
+
id,
|
|
20
|
+
index
|
|
21
|
+
});
|
|
22
|
+
const noopRef = react.useCallback(() => {
|
|
23
|
+
}, []);
|
|
24
|
+
const [handleRef, ref] = react.useMemo(() => {
|
|
25
|
+
return allowSort ? [sortableHandleRef, sortableRef] : [noopRef, noopRef];
|
|
26
|
+
}, [allowSort, noopRef, sortableHandleRef, sortableRef]);
|
|
27
|
+
return {
|
|
28
|
+
handleRef,
|
|
29
|
+
ref
|
|
30
|
+
};
|
|
31
|
+
};
|
|
15
32
|
const ColumnListItem = ({
|
|
16
33
|
className: classNameProp,
|
|
34
|
+
index,
|
|
17
35
|
item,
|
|
18
|
-
|
|
36
|
+
permissions: { allowHideColumns, allowRemoveColumns, allowReorderColumns },
|
|
37
|
+
...optionProps
|
|
19
38
|
}) => {
|
|
39
|
+
const { handleRef, ref } = useSorting(item.name, index, allowReorderColumns);
|
|
20
40
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
21
|
-
|
|
41
|
+
core.Option,
|
|
22
42
|
{
|
|
23
|
-
...
|
|
43
|
+
...optionProps,
|
|
24
44
|
className: cx(classNameProp, classBaseListItem),
|
|
25
|
-
"data-name": item
|
|
45
|
+
"data-name": item.name,
|
|
46
|
+
id: item.name,
|
|
47
|
+
ref,
|
|
26
48
|
children: [
|
|
27
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
49
|
+
allowReorderColumns ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
50
|
+
vuuUiControls.IconButton,
|
|
51
|
+
{
|
|
52
|
+
"data-embedded": true,
|
|
53
|
+
appearance: "transparent",
|
|
54
|
+
icon: "draggable",
|
|
55
|
+
ref: handleRef,
|
|
56
|
+
size: 16
|
|
57
|
+
}
|
|
58
|
+
) : null,
|
|
28
59
|
item?.isCalculated ? /* @__PURE__ */ jsxRuntime.jsx(vuuUiControls.Icon, { name: "function" }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
29
60
|
core.Checkbox,
|
|
30
61
|
{
|
|
31
62
|
className: `${classBase}-checkBox`,
|
|
32
|
-
checked: item?.subscribed
|
|
63
|
+
checked: item?.subscribed,
|
|
64
|
+
readOnly: allowRemoveColumns === false
|
|
33
65
|
}
|
|
34
66
|
),
|
|
35
67
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `${classBase}-text`, children: vuuUtils.getColumnLabel(item) }),
|
|
36
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
68
|
+
allowHideColumns !== false ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
37
69
|
core.Switch,
|
|
38
70
|
{
|
|
39
71
|
className: `${classBase}-switch`,
|
|
40
72
|
checked: item?.hidden !== true,
|
|
41
73
|
disabled: item?.subscribed !== true
|
|
42
74
|
}
|
|
43
|
-
)
|
|
75
|
+
) : null
|
|
44
76
|
]
|
|
45
77
|
}
|
|
46
78
|
);
|
|
47
79
|
};
|
|
80
|
+
const defaultPermissions = {
|
|
81
|
+
allowHideColumns: true,
|
|
82
|
+
allowRemoveColumns: true,
|
|
83
|
+
allowReorderColumns: true
|
|
84
|
+
};
|
|
48
85
|
const ColumnList = ({
|
|
49
86
|
className,
|
|
50
87
|
columnItems,
|
|
51
88
|
onChange,
|
|
52
|
-
onMoveListItem,
|
|
53
89
|
onNavigateToColumn,
|
|
90
|
+
onReorderColumnItems,
|
|
91
|
+
permissions = defaultPermissions,
|
|
54
92
|
...htmlAttributes
|
|
55
93
|
}) => {
|
|
56
94
|
const targetWindow = window.useWindow();
|
|
@@ -59,6 +97,7 @@ const ColumnList = ({
|
|
|
59
97
|
css: ColumnList$1,
|
|
60
98
|
window: targetWindow
|
|
61
99
|
});
|
|
100
|
+
const listRef = react.useRef(null);
|
|
62
101
|
const handleChange = react.useCallback(
|
|
63
102
|
({ target }) => {
|
|
64
103
|
const input = target;
|
|
@@ -92,7 +131,16 @@ const ColumnList = ({
|
|
|
92
131
|
},
|
|
93
132
|
[onNavigateToColumn]
|
|
94
133
|
);
|
|
95
|
-
|
|
134
|
+
const handleDragEnd = react.useCallback(() => {
|
|
135
|
+
setTimeout(() => {
|
|
136
|
+
const listItems = listRef.current?.querySelectorAll(".saltOption");
|
|
137
|
+
if (listItems) {
|
|
138
|
+
const orderedIds = Array.from(listItems).map(({ id }) => id);
|
|
139
|
+
onReorderColumnItems?.(vuuUtils.reorderColumnItems(columnItems, orderedIds));
|
|
140
|
+
}
|
|
141
|
+
}, 300);
|
|
142
|
+
}, [columnItems, onReorderColumnItems]);
|
|
143
|
+
return /* @__PURE__ */ jsxRuntime.jsx(react$1.DragDropProvider, { onDragEnd: handleDragEnd, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
96
144
|
"div",
|
|
97
145
|
{
|
|
98
146
|
...htmlAttributes,
|
|
@@ -105,23 +153,21 @@ const ColumnList = ({
|
|
|
105
153
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Column subscription" }),
|
|
106
154
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Visibility" })
|
|
107
155
|
] }),
|
|
108
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
109
|
-
|
|
156
|
+
/* @__PURE__ */ jsxRuntime.jsx(core.ListBox, { ref: listRef, children: columnItems.map((columnItem, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
157
|
+
ColumnListItem,
|
|
110
158
|
{
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
height: "auto",
|
|
159
|
+
item: columnItem,
|
|
160
|
+
index,
|
|
114
161
|
onChange: handleChange,
|
|
115
162
|
onClick: handleClick,
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
)
|
|
163
|
+
permissions,
|
|
164
|
+
value: columnItem
|
|
165
|
+
},
|
|
166
|
+
columnItem.name
|
|
167
|
+
)) })
|
|
122
168
|
]
|
|
123
169
|
}
|
|
124
|
-
);
|
|
170
|
+
) });
|
|
125
171
|
};
|
|
126
172
|
|
|
127
173
|
exports.ColumnList = ColumnList;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnList.js","sources":["../../src/column-list/ColumnList.tsx"],"sourcesContent":["import { Checkbox, Switch } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport {\n Icon,\n List,\n ListItem,\n ListItemProps,\n ListProps,\n} from \"@vuu-ui/vuu-ui-controls\";\nimport { getColumnLabel, queryClosest } from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\nimport {\n HTMLAttributes,\n MouseEventHandler,\n SyntheticEvent,\n useCallback,\n} from \"react\";\nimport { ColumnItem } from \"../table-settings\";\n\nimport columnList from \"./ColumnList.css\";\n\nconst classBase = \"vuuColumnList\";\nconst classBaseListItem = \"vuuColumnListItem\";\n\nexport type ColumnChangeHandler = (\n columnName: string,\n propertyName: keyof ColumnDescriptor | \"subscribed\",\n value: string | number | boolean,\n) => void;\n\nexport interface ColumnListProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n columnItems: ColumnItem[];\n onChange: ColumnChangeHandler;\n onMoveListItem: ListProps[\"onMoveListItem\"];\n onNavigateToColumn?: (columnName: string) => void;\n}\n\nconst ColumnListItem = ({\n className: classNameProp,\n item,\n ...listItemProps\n}: ListItemProps<ColumnItem>) => {\n return (\n <ListItem\n {...listItemProps}\n className={cx(classNameProp, classBaseListItem)}\n data-name={item?.name}\n >\n <Icon name=\"draggable\" size={16} />\n {item?.isCalculated ? (\n <Icon name=\"function\" />\n ) : (\n <Checkbox\n className={`${classBase}-checkBox`}\n checked={item?.subscribed}\n />\n )}\n <span className={`${classBase}-text`}>\n {getColumnLabel(item as ColumnDescriptor)}\n </span>\n <Switch\n className={`${classBase}-switch`}\n checked={item?.hidden !== true}\n disabled={item?.subscribed !== true}\n />\n </ListItem>\n );\n};\n\nexport const ColumnList = ({\n className,\n columnItems,\n onChange,\n onMoveListItem,\n onNavigateToColumn,\n ...htmlAttributes\n}: ColumnListProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-list\",\n css: columnList,\n window: targetWindow,\n });\n\n const handleChange = useCallback(\n ({ target }: SyntheticEvent) => {\n const input = target as HTMLInputElement;\n const listItem = queryClosest(target, `.${classBaseListItem}`);\n if (listItem) {\n const {\n dataset: { name },\n } = listItem;\n if (name) {\n const saltCheckbox = queryClosest(target, `.${classBase}-checkBox`);\n const saltSwitch = queryClosest(target, `.${classBase}-switch`);\n\n if (saltCheckbox) {\n onChange(name, \"subscribed\", input.checked);\n } else if (saltSwitch) {\n onChange(name, \"hidden\", input.checked === false);\n }\n }\n }\n },\n [onChange],\n );\n\n const handleClick = useCallback<MouseEventHandler>(\n (evt) => {\n const targetEl = evt.target as HTMLElement;\n if (targetEl.classList.contains(\"vuuColumnList-text\")) {\n const listItemEl = targetEl.closest(\".vuuListItem\") as HTMLElement;\n if (listItemEl?.dataset.name) {\n onNavigateToColumn?.(listItemEl.dataset.name);\n }\n }\n },\n [onNavigateToColumn],\n );\n\n return (\n <div\n {...htmlAttributes}\n className={cx(classBase, className, {\n [`${classBase}-withColumnNavigation`]:\n typeof onNavigateToColumn === \"function\",\n })}\n >\n <div className={`${classBase}-header`}>\n <span>Column Selection</span>\n </div>\n <div className={`${classBase}-colHeadings`}>\n <span>Column subscription</span>\n <span>Visibility</span>\n </div>\n <List<ColumnItem, \"none\">\n ListItem={ColumnListItem}\n allowDragDrop\n height=\"auto\"\n onChange={handleChange}\n onClick={handleClick}\n onMoveListItem={onMoveListItem}\n selectionStrategy=\"none\"\n source={columnItems}\n itemHeight={33}\n />\n </div>\n );\n};\n"],"names":["jsxs","ListItem","jsx","Icon","Checkbox","getColumnLabel","Switch","useWindow","useComponentCssInjection","columnList","useCallback","queryClosest","List"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColumnList.js","sources":["../../src/column-list/ColumnList.tsx"],"sourcesContent":["import { DragDropProvider } from \"@dnd-kit/react\";\nimport { useSortable } from \"@dnd-kit/react/sortable\";\nimport { Checkbox, ListBox, Option, OptionProps, Switch } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n ColumnDescriptor,\n ColumnListPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport { Icon, IconButton } from \"@vuu-ui/vuu-ui-controls\";\nimport {\n getColumnLabel,\n queryClosest,\n reorderColumnItems,\n} from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\nimport {\n HTMLAttributes,\n MouseEventHandler,\n SyntheticEvent,\n useCallback,\n useMemo,\n useRef,\n} from \"react\";\nimport { ColumnItem } from \"../table-column-settings/useTableSettings\";\n\nimport columnList from \"./ColumnList.css\";\n\nconst classBase = \"vuuColumnList\";\nconst classBaseListItem = \"vuuColumnListItem\";\n\nconst useSorting = (id: string, index: number, allowSort = true) => {\n const { handleRef: sortableHandleRef, ref: sortableRef } = useSortable({\n id,\n index,\n });\n\n const noopRef = useCallback(() => {\n // do nothing\n }, []);\n\n const [handleRef, ref] = useMemo(() => {\n return allowSort ? [sortableHandleRef, sortableRef] : [noopRef, noopRef];\n }, [allowSort, noopRef, sortableHandleRef, sortableRef]);\n\n return {\n handleRef,\n ref,\n };\n};\n\nexport type ColumnChangeHandler = (\n columnName: string,\n propertyName: keyof ColumnDescriptor | \"subscribed\",\n value: string | number | boolean,\n) => void;\n\nexport interface ColumnListProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n columnItems: ColumnItem[];\n onChange: ColumnChangeHandler;\n onNavigateToColumn?: (columnName: string) => void;\n onReorderColumnItems?: (columnItems: ColumnItem[]) => void;\n permissions?: ColumnListPermissions;\n}\n\nconst ColumnListItem = ({\n className: classNameProp,\n index,\n item,\n permissions: { allowHideColumns, allowRemoveColumns, allowReorderColumns },\n ...optionProps\n}: OptionProps & {\n index: number;\n item: ColumnItem;\n permissions: ColumnListPermissions;\n}) => {\n const { handleRef, ref } = useSorting(item.name, index, allowReorderColumns);\n return (\n <Option\n {...optionProps}\n className={cx(classNameProp, classBaseListItem)}\n data-name={item.name}\n id={item.name}\n ref={ref}\n >\n {allowReorderColumns ? (\n <IconButton\n data-embedded\n appearance=\"transparent\"\n icon=\"draggable\"\n ref={handleRef}\n size={16}\n />\n ) : null}\n {item?.isCalculated ? (\n <Icon name=\"function\" />\n ) : (\n <Checkbox\n className={`${classBase}-checkBox`}\n checked={item?.subscribed}\n readOnly={allowRemoveColumns === false}\n />\n )}\n <span className={`${classBase}-text`}>\n {getColumnLabel(item as ColumnDescriptor)}\n </span>\n {allowHideColumns !== false ? (\n <Switch\n className={`${classBase}-switch`}\n checked={item?.hidden !== true}\n disabled={item?.subscribed !== true}\n />\n ) : null}\n </Option>\n );\n};\n\nconst defaultPermissions: ColumnListPermissions = {\n allowHideColumns: true,\n allowRemoveColumns: true,\n allowReorderColumns: true,\n};\n\nexport const ColumnList = ({\n className,\n columnItems,\n onChange,\n onNavigateToColumn,\n onReorderColumnItems,\n permissions = defaultPermissions,\n ...htmlAttributes\n}: ColumnListProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-list\",\n css: columnList,\n window: targetWindow,\n });\n const listRef = useRef<HTMLDivElement>(null);\n\n const handleChange = useCallback(\n ({ target }: SyntheticEvent) => {\n const input = target as HTMLInputElement;\n const listItem = queryClosest(target, `.${classBaseListItem}`);\n if (listItem) {\n const {\n dataset: { name },\n } = listItem;\n if (name) {\n const saltCheckbox = queryClosest(target, `.${classBase}-checkBox`);\n const saltSwitch = queryClosest(target, `.${classBase}-switch`);\n\n if (saltCheckbox) {\n onChange(name, \"subscribed\", input.checked);\n } else if (saltSwitch) {\n onChange(name, \"hidden\", input.checked === false);\n }\n }\n }\n },\n [onChange],\n );\n\n const handleClick = useCallback<MouseEventHandler>(\n (evt) => {\n const targetEl = evt.target as HTMLElement;\n if (targetEl.classList.contains(\"vuuColumnList-text\")) {\n const listItemEl = targetEl.closest(\".vuuListItem\") as HTMLElement;\n if (listItemEl?.dataset.name) {\n onNavigateToColumn?.(listItemEl.dataset.name);\n }\n }\n },\n [onNavigateToColumn],\n );\n\n const handleDragEnd = useCallback(() => {\n setTimeout(() => {\n const listItems =\n listRef.current?.querySelectorAll<HTMLDivElement>(\".saltOption\");\n if (listItems) {\n const orderedIds = Array.from(listItems).map(({ id }) => id);\n onReorderColumnItems?.(reorderColumnItems(columnItems, orderedIds));\n }\n }, 300);\n }, [columnItems, onReorderColumnItems]);\n\n return (\n <DragDropProvider onDragEnd={handleDragEnd}>\n <div\n {...htmlAttributes}\n className={cx(classBase, className, {\n [`${classBase}-withColumnNavigation`]:\n typeof onNavigateToColumn === \"function\",\n })}\n >\n <div className={`${classBase}-header`}>\n <span>Column Selection</span>\n </div>\n <div className={`${classBase}-colHeadings`}>\n <span>Column subscription</span>\n <span>Visibility</span>\n </div>\n <ListBox ref={listRef}>\n {columnItems.map((columnItem, index) => (\n <ColumnListItem\n item={columnItem}\n index={index}\n key={columnItem.name}\n onChange={handleChange}\n onClick={handleClick}\n permissions={permissions}\n value={columnItem}\n />\n ))}\n </ListBox>\n </div>\n </DragDropProvider>\n );\n};\n"],"names":["useSortable","useCallback","useMemo","jsxs","Option","jsx","IconButton","Icon","Checkbox","getColumnLabel","Switch","useWindow","useComponentCssInjection","columnList","useRef","queryClosest","reorderColumnItems","DragDropProvider","ListBox"],"mappings":"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"}
|
|
@@ -10,12 +10,31 @@ var cx = require('clsx');
|
|
|
10
10
|
var react = require('react');
|
|
11
11
|
var ColumnMenu$1 = require('./ColumnMenu.css.js');
|
|
12
12
|
var columnMenuUtils = require('./column-menu-utils.js');
|
|
13
|
+
var TableSettingsPanel = require('../table-column-settings/TableSettingsPanel.js');
|
|
13
14
|
|
|
14
15
|
const classBase = "vuuColumnMenu";
|
|
16
|
+
const defaultColumnMenuPermissions = {
|
|
17
|
+
allowSort: true,
|
|
18
|
+
allowGroup: true,
|
|
19
|
+
allowAggregation: true,
|
|
20
|
+
allowHide: true,
|
|
21
|
+
allowPin: true,
|
|
22
|
+
allowColumnSettings: true,
|
|
23
|
+
allowTableSettings: TableSettingsPanel.defaultTableSettingsPermissions
|
|
24
|
+
};
|
|
15
25
|
const ColumnMenu = ({
|
|
16
26
|
className,
|
|
17
27
|
column,
|
|
18
|
-
menuActionHandler: menuActionHandlerProp
|
|
28
|
+
menuActionHandler: menuActionHandlerProp,
|
|
29
|
+
menuPermissions: {
|
|
30
|
+
allowSort,
|
|
31
|
+
allowGroup,
|
|
32
|
+
allowAggregation,
|
|
33
|
+
allowHide,
|
|
34
|
+
allowPin,
|
|
35
|
+
allowColumnSettings,
|
|
36
|
+
allowTableSettings
|
|
37
|
+
} = defaultColumnMenuPermissions
|
|
19
38
|
}) => {
|
|
20
39
|
const targetWindow = window.useWindow();
|
|
21
40
|
styles.useComponentCssInjection({
|
|
@@ -33,21 +52,35 @@ const ColumnMenu = ({
|
|
|
33
52
|
},
|
|
34
53
|
[column, menuActionHandler, menuActionHandlerProp]
|
|
35
54
|
);
|
|
36
|
-
const sortMenu = columnMenuUtils.buildSortMenu(
|
|
37
|
-
|
|
55
|
+
const sortMenu = columnMenuUtils.buildSortMenu(
|
|
56
|
+
column,
|
|
57
|
+
dataSource,
|
|
58
|
+
menuActionClickHandler,
|
|
59
|
+
allowSort
|
|
60
|
+
);
|
|
61
|
+
const groupMenu = columnMenuUtils.buildGroupMenu(
|
|
62
|
+
column,
|
|
63
|
+
dataSource,
|
|
64
|
+
menuActionClickHandler,
|
|
65
|
+
allowGroup
|
|
66
|
+
);
|
|
38
67
|
const aggregationMenu = columnMenuUtils.buildAggregationMenuItems(
|
|
39
68
|
column,
|
|
40
69
|
dataSource,
|
|
41
|
-
menuActionClickHandler
|
|
70
|
+
menuActionClickHandler,
|
|
71
|
+
allowAggregation
|
|
42
72
|
);
|
|
43
73
|
const visibilityMenuItems = columnMenuUtils.buildVisibilityMenuItems(
|
|
44
74
|
column,
|
|
45
|
-
menuActionClickHandler
|
|
75
|
+
menuActionClickHandler,
|
|
76
|
+
allowHide
|
|
46
77
|
);
|
|
47
|
-
const pinMenu = columnMenuUtils.buildPinMenuItems(column, menuActionClickHandler);
|
|
78
|
+
const pinMenu = columnMenuUtils.buildPinMenuItems(column, menuActionClickHandler, allowPin);
|
|
48
79
|
const settingsMenuItems = columnMenuUtils.buildSettingsMenuItems(
|
|
49
80
|
column,
|
|
50
|
-
menuActionClickHandler
|
|
81
|
+
menuActionClickHandler,
|
|
82
|
+
allowColumnSettings,
|
|
83
|
+
allowTableSettings
|
|
51
84
|
);
|
|
52
85
|
const handleClick = react.useCallback(
|
|
53
86
|
(evt) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnMenu.js","sources":["../../src/column-menu/ColumnMenu.tsx"],"sourcesContent":["import { Menu, MenuPanel, MenuTrigger } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {
|
|
1
|
+
{"version":3,"file":"ColumnMenu.js","sources":["../../src/column-menu/ColumnMenu.tsx"],"sourcesContent":["import { Menu, MenuPanel, MenuTrigger } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n ColumnDescriptor,\n ColumnMenuPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport { IconButton } from \"@vuu-ui/vuu-ui-controls\";\nimport { useTableContext } from \"../table-provider/TableProvider\";\nimport cx from \"clsx\";\nimport { HTMLAttributes, MouseEventHandler, useCallback } from \"react\";\n\nimport columnMenuCss from \"./ColumnMenu.css\";\nimport {\n buildAggregationMenuItems,\n buildPinMenuItems,\n buildGroupMenu,\n buildSortMenu,\n buildVisibilityMenuItems,\n ColumnMenuActionType,\n getColumnMenuActionType,\n type MenuItemClickHandler,\n buildSettingsMenuItems,\n} from \"./column-menu-utils\";\nimport { MenuActionHandler } from \"@vuu-ui/vuu-context-menu\";\nimport { defaultTableSettingsPermissions } from \"../table-column-settings/TableSettingsPanel\";\n\nconst classBase = \"vuuColumnMenu\";\n\nconst defaultColumnMenuPermissions: Readonly<ColumnMenuPermissions> = {\n allowSort: true,\n allowGroup: true,\n allowAggregation: true,\n allowHide: true,\n allowPin: true,\n allowColumnSettings: true,\n allowTableSettings: defaultTableSettingsPermissions,\n};\n\nexport interface ColumnMenuProps extends HTMLAttributes<HTMLSpanElement> {\n column: ColumnDescriptor;\n menuActionHandler?: MenuActionHandler<ColumnMenuActionType, ColumnDescriptor>;\n menuPermissions?: ColumnMenuPermissions;\n}\n\nexport const ColumnMenu = ({\n className,\n column,\n menuActionHandler: menuActionHandlerProp,\n menuPermissions: {\n allowSort,\n allowGroup,\n allowAggregation,\n allowHide,\n allowPin,\n allowColumnSettings,\n allowTableSettings,\n } = defaultColumnMenuPermissions,\n}: ColumnMenuProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-menu\",\n css: columnMenuCss,\n window: targetWindow,\n });\n\n const { dataSource, menuActionHandler } = useTableContext(true);\n\n const menuActionClickHandler = useCallback<MenuItemClickHandler>(\n (evt) => {\n const columnMenuActionType = getColumnMenuActionType(evt.target);\n if (menuActionHandlerProp?.(columnMenuActionType, column) !== true) {\n return menuActionHandler(columnMenuActionType, column);\n }\n },\n [column, menuActionHandler, menuActionHandlerProp],\n );\n\n const sortMenu = buildSortMenu(\n column,\n dataSource,\n menuActionClickHandler,\n allowSort,\n );\n const groupMenu = buildGroupMenu(\n column,\n dataSource,\n menuActionClickHandler,\n allowGroup,\n );\n const aggregationMenu = buildAggregationMenuItems(\n column,\n dataSource,\n menuActionClickHandler,\n allowAggregation,\n );\n const visibilityMenuItems = buildVisibilityMenuItems(\n column,\n menuActionClickHandler,\n allowHide,\n );\n const pinMenu = buildPinMenuItems(column, menuActionClickHandler, allowPin);\n const settingsMenuItems = buildSettingsMenuItems(\n column,\n menuActionClickHandler,\n allowColumnSettings,\n allowTableSettings,\n );\n\n const handleClick = useCallback<MouseEventHandler<HTMLButtonElement>>(\n (evt) => {\n // Prevent sort from triggering if the click were to bubble.\n evt.stopPropagation();\n },\n [],\n );\n\n return (\n <Menu>\n <MenuTrigger>\n <IconButton\n appearance=\"transparent\"\n className={cx(classBase, className)}\n data-embedded\n icon=\"more-vert\"\n sentiment=\"neutral\"\n aria-label=\"Open Column Menu\"\n onClick={handleClick}\n />\n </MenuTrigger>\n <MenuPanel>\n {sortMenu}\n {groupMenu}\n {aggregationMenu}\n {visibilityMenuItems}\n {pinMenu}\n {settingsMenuItems}\n </MenuPanel>\n </Menu>\n );\n};\n"],"names":["defaultTableSettingsPermissions","useWindow","useComponentCssInjection","columnMenuCss","useTableContext","useCallback","getColumnMenuActionType","buildSortMenu","buildGroupMenu","buildAggregationMenuItems","buildVisibilityMenuItems","buildPinMenuItems","buildSettingsMenuItems","Menu","jsx","MenuTrigger","IconButton","MenuPanel"],"mappings":"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"}
|
|
@@ -39,8 +39,8 @@ const getColumnMenuActionType = (target) => {
|
|
|
39
39
|
);
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
|
-
function buildSortMenu(column, dataSource, menuActionClickHandler) {
|
|
43
|
-
if (column.sortable === false) {
|
|
42
|
+
function buildSortMenu(column, dataSource, menuActionClickHandler, isAllowed = true) {
|
|
43
|
+
if (!isAllowed || column.sortable === false) {
|
|
44
44
|
return null;
|
|
45
45
|
} else {
|
|
46
46
|
const { name, label = name } = column;
|
|
@@ -176,8 +176,8 @@ function buildSortMenu(column, dataSource, menuActionClickHandler) {
|
|
|
176
176
|
] }, "sort-menu");
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
|
-
function buildGroupMenu(column, dataSource, menuActionClickHandler) {
|
|
180
|
-
if (column.groupable === false) {
|
|
179
|
+
function buildGroupMenu(column, dataSource, menuActionClickHandler, isAllowed = true) {
|
|
180
|
+
if (!isAllowed || column.groupable === false) {
|
|
181
181
|
return null;
|
|
182
182
|
} else {
|
|
183
183
|
const menuItems = [];
|
|
@@ -249,7 +249,10 @@ function buildGroupMenu(column, dataSource, menuActionClickHandler) {
|
|
|
249
249
|
] }, "group-menu");
|
|
250
250
|
}
|
|
251
251
|
}
|
|
252
|
-
const buildVisibilityMenuItems = (column, menuActionClickHandler) => {
|
|
252
|
+
const buildVisibilityMenuItems = (column, menuActionClickHandler, isAllowed = true) => {
|
|
253
|
+
if (!isAllowed) {
|
|
254
|
+
return null;
|
|
255
|
+
}
|
|
253
256
|
const menuItems = [];
|
|
254
257
|
const { name, label = name } = column;
|
|
255
258
|
menuItems.push(
|
|
@@ -276,8 +279,8 @@ const buildVisibilityMenuItems = (column, menuActionClickHandler) => {
|
|
|
276
279
|
);
|
|
277
280
|
return menuItems;
|
|
278
281
|
};
|
|
279
|
-
const buildPinMenuItems = (column, menuActionClickHandler) => {
|
|
280
|
-
if (column === void 0) {
|
|
282
|
+
const buildPinMenuItems = (column, menuActionClickHandler, isAllowed = true) => {
|
|
283
|
+
if (!isAllowed || column === void 0) {
|
|
281
284
|
return [];
|
|
282
285
|
}
|
|
283
286
|
const { pin } = column;
|
|
@@ -366,35 +369,45 @@ const buildPinMenuItems = (column, menuActionClickHandler) => {
|
|
|
366
369
|
}
|
|
367
370
|
return menuItems;
|
|
368
371
|
};
|
|
369
|
-
const buildSettingsMenuItems = (_, menuActionClickHandler) => {
|
|
372
|
+
const buildSettingsMenuItems = (_, menuActionClickHandler, allowColumnSettings = true, allowTableSettings = true) => {
|
|
373
|
+
if (!allowColumnSettings && !allowTableSettings) {
|
|
374
|
+
return null;
|
|
375
|
+
}
|
|
370
376
|
const menuItems = [];
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
377
|
+
if (allowColumnSettings) {
|
|
378
|
+
menuItems.push(
|
|
379
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
380
|
+
core.MenuItem,
|
|
381
|
+
{
|
|
382
|
+
"data-icon": "settings",
|
|
383
|
+
"data-menu-action-id": "column-settings",
|
|
384
|
+
onClick: menuActionClickHandler,
|
|
385
|
+
children: "Column settings ..."
|
|
386
|
+
},
|
|
387
|
+
"column-settings"
|
|
388
|
+
)
|
|
389
|
+
);
|
|
390
|
+
}
|
|
391
|
+
if (allowTableSettings) {
|
|
392
|
+
menuItems.push(
|
|
393
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
394
|
+
core.MenuItem,
|
|
395
|
+
{
|
|
396
|
+
"data-icon": "settings",
|
|
397
|
+
"data-menu-action-id": "table-settings",
|
|
398
|
+
onClick: menuActionClickHandler,
|
|
399
|
+
children: "Table settings ..."
|
|
400
|
+
},
|
|
401
|
+
"table-settings"
|
|
402
|
+
)
|
|
403
|
+
);
|
|
404
|
+
}
|
|
395
405
|
return menuItems;
|
|
396
406
|
};
|
|
397
|
-
function buildAggregationMenuItems(column, dataSource, menuActionClickHandler) {
|
|
407
|
+
function buildAggregationMenuItems(column, dataSource, menuActionClickHandler, isAllowed = true) {
|
|
408
|
+
if (!isAllowed) {
|
|
409
|
+
return null;
|
|
410
|
+
}
|
|
398
411
|
const { name, label = name } = column;
|
|
399
412
|
if (dataSource.groupBy?.length === 0) {
|
|
400
413
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-menu-utils.js","sources":["../../src/column-menu/column-menu-utils.tsx"],"sourcesContent":["import {\n Menu,\n MenuItem,\n MenuItemProps,\n MenuPanel,\n MenuProps,\n MenuTrigger,\n} from \"@salt-ds/core\";\nimport { DataSource } from \"@vuu-ui/vuu-data-types\";\nimport { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport {\n getGroupStatus,\n getSortStatus,\n isNumericColumn,\n logUnhandledMessage,\n} from \"@vuu-ui/vuu-utils\";\nimport { MouseEventHandler, ReactElement } from \"react\";\n\ntype MenuElement = ReactElement<MenuProps, typeof Menu>;\ntype MenuItemElement = ReactElement<MenuItemProps, typeof MenuItem>;\ntype MenuElements = Array<MenuElement | MenuItemElement>;\n\nexport type MenuItemClickHandler = MouseEventHandler<HTMLDivElement>;\n\nexport type DataSourceColumnMenuActionType =\n | \"agg-count\"\n | \"agg-distinct\"\n | \"agg-sum\"\n | \"agg-avg\"\n | \"agg-high\"\n | \"agg-low\"\n | \"sort-asc\"\n | \"sort-dsc\"\n | \"sort-add-asc\"\n | \"sort-add-dsc\"\n | \"remove-sort\"\n | \"group-column\"\n | \"remove-group\"\n | \"add-to-group\"\n | \"remove-from-group\"\n | \"remove-column\";\n\nexport type ColumnDisplayColumnMenuActionType =\n | \"pin-column-left\"\n | \"pin-column-right\"\n | \"pin-column-floating\"\n | \"unpin-column\"\n | \"hide-column\";\n\nexport type TableSettingsActionType = \"column-settings\" | \"table-settings\";\n\nexport type ColumnMenuActionType =\n | DataSourceColumnMenuActionType\n | ColumnDisplayColumnMenuActionType\n | TableSettingsActionType;\n\nexport const isColumnMenuActionType = (\n value?: string,\n): value is ColumnMenuActionType =>\n value !== undefined &&\n [\n \"agg-count\",\n \"agg-distinct\",\n \"agg-sum\",\n \"agg-avg\",\n \"agg-high\",\n \"agg-low\",\n \"sort-asc\",\n \"sort-dsc\",\n \"sort-add-asc\",\n \"sort-add-dsc\",\n \"remove-sort\",\n \"group-column\",\n \"remove-group\",\n \"add-to-group\",\n \"remove-from-group\",\n \"pin-column-left\",\n \"pin-column-right\",\n \"pin-column-floating\",\n \"unpin-column\",\n \"hide-column\",\n \"remove-column\",\n \"column-settings\",\n \"table-settings\",\n ].includes(value);\n\nexport const getColumnMenuActionType = (target: EventTarget | HTMLElement) => {\n const { menuActionId } = (target as HTMLElement).dataset;\n if (isColumnMenuActionType(menuActionId)) {\n return menuActionId;\n } else {\n throw Error(\n \"[vuu-table-extras] column-menu-utils target element is not a valid Column MenuItem\",\n );\n }\n};\n\nexport function buildSortMenu(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n): MenuElement | null {\n if (column.sortable === false) {\n return null;\n } else {\n const { name, label = name } = column;\n const menuItems: MenuElements = [];\n const columnSortStatus = getSortStatus(column.name, dataSource.sort);\n\n switch (columnSortStatus) {\n case \"no-sort\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Sort ascending\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Sort descending\n </MenuItem>,\n );\n break;\n case \"single-sort-asc\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Reverse Sort (DSC)\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"remove-sort\"\n key=\"remove-sort\"\n onClick={menuActionClickHandler}\n >\n Remove Sort\n </MenuItem>,\n );\n break;\n case \"single-sort-desc\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Reverse Sort (ASC)\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"remove-sort\"\n key=\"remove-sort\"\n onClick={menuActionClickHandler}\n >\n Remove Sort\n </MenuItem>,\n );\n break;\n\n case \"sort-other-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-add-asc\"\n key=\"sort-add-asc\"\n onClick={menuActionClickHandler}\n >\n Add to sort ASC\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-add-dsc\"\n key=\"sort-add-dsc\"\n onClick={menuActionClickHandler}\n >\n Add to sort DSC\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Ascending\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Descending\n </MenuItem>,\n );\n break;\n\n case \"multi-sort-includes-column-asc\":\n case \"multi-sort-includes-column-desc\":\n break;\n default:\n logUnhandledMessage(\n columnSortStatus,\n \"[vuu-table-extras] column-menu-utils buildSortMenu\",\n );\n }\n\n return (\n <Menu key=\"sort-menu\">\n <MenuTrigger>\n <MenuItem>{`Sort by ${label}`}</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>\n );\n }\n}\n\nexport function buildGroupMenu(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n): MenuElement | null {\n if (column.groupable === false) {\n return null;\n } else {\n const menuItems: MenuElements = [];\n const columnGroupStatus = getGroupStatus(column.name, dataSource.groupBy);\n const { name, label = name } = column;\n\n switch (columnGroupStatus) {\n case \"no-groupby\":\n case \"single-groupby-other-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"group-column\"\n key=\"group-column\"\n onClick={menuActionClickHandler}\n >{`Group by ${label}`}</MenuItem>,\n );\n break;\n case \"single-groupby\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-group\"\n key=\"remove-group\"\n onClick={menuActionClickHandler}\n >\n Remove Grouping\n </MenuItem>,\n );\n break;\n\n case \"multi-groupby-other-columns\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"add-to-group\"\n key=\"add-to-group\"\n onClick={menuActionClickHandler}\n >\n Add to grouping\n </MenuItem>,\n );\n\n break;\n\n case \"multi-groupby-includes-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-from-group\"\n key=\"remove-from-group\"\n onClick={menuActionClickHandler}\n >\n Remove from grouping\n </MenuItem>,\n );\n\n break;\n\n default:\n logUnhandledMessage(\n columnGroupStatus,\n \"[vuu-table-extras] column-menu-utils buildGroupMenu\",\n );\n }\n\n return (\n <Menu key=\"group-menu\">\n <MenuTrigger>\n <MenuItem>Group data</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>\n );\n }\n}\n\nexport const buildVisibilityMenuItems = (\n column: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n): MenuElements => {\n const menuItems: MenuElements = [];\n const { name, label = name } = column;\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"hide-column\"\n key=\"hide-column\"\n onClick={menuActionClickHandler}\n >\n {`Hide ${label} column`}\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-column\"\n key=\"remove-column\"\n onClick={menuActionClickHandler}\n >\n {`Remove ${label} column`}\n </MenuItem>,\n );\n\n return menuItems;\n};\n\nexport const buildPinMenuItems = (\n column: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n): MenuElements => {\n if (column === undefined) {\n return [];\n }\n const { pin } = column;\n\n const menuItems: MenuElements = [];\n\n const pinLeft = (\n <MenuItem\n data-menu-action-id=\"pin-column-left\"\n key=\"pin-column-left\"\n onClick={menuActionClickHandler}\n >\n Pin left\n </MenuItem>\n );\n\n const pinFloating = (\n <MenuItem\n data-menu-action-id=\"pin-column-floating\"\n key=\"pin-column-floating\"\n onClick={menuActionClickHandler}\n >\n Pin floating\n </MenuItem>\n );\n\n const pinRight = (\n <MenuItem\n data-menu-action-id=\"pin-column-right\"\n key=\"pin-column-right\"\n onClick={menuActionClickHandler}\n >\n Pin right\n </MenuItem>\n );\n\n if (pin === undefined) {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinLeft}\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"unpin-column\"\n key=\"unpin-column\"\n onClick={menuActionClickHandler}\n >\n Unpin\n </MenuItem>,\n );\n if (pin === \"left\") {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else if (pin === \"floating\") {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinLeft}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n }\n }\n\n return menuItems;\n};\n\nexport const buildSettingsMenuItems = (\n _: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n): MenuElements => {\n const menuItems: MenuElements = [];\n\n menuItems.push(\n <MenuItem\n data-icon=\"settings\"\n data-menu-action-id=\"column-settings\"\n key=\"column-settings\"\n onClick={menuActionClickHandler}\n >\n Column settings ...\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-icon=\"settings\"\n data-menu-action-id=\"table-settings\"\n key=\"table-settings\"\n onClick={menuActionClickHandler}\n >\n Table settings ...\n </MenuItem>,\n );\n\n return menuItems;\n};\n\nexport function buildAggregationMenuItems(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n): MenuElements {\n const { name, label = name } = column;\n\n if (dataSource.groupBy?.length === 0) {\n return [];\n } else {\n const menuItems: MenuElements = [\n <MenuItem\n data-menu-action-id=\"agg-count\"\n key=\"agg-count\"\n onClick={menuActionClickHandler}\n >\n Count\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-distinct\"\n key=\"agg-distinct\"\n onClick={menuActionClickHandler}\n >\n Distinct\n </MenuItem>,\n ];\n\n if (isNumericColumn(column)) {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"agg-sum\"\n key=\"agg-sum\"\n onClick={menuActionClickHandler}\n >\n Sum\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-avg\"\n key=\"agg-avg\"\n onClick={menuActionClickHandler}\n >\n Average\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-high\"\n key=\"agg-high\"\n onClick={menuActionClickHandler}\n >\n High\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-low\"\n key=\"agg-low\"\n onClick={menuActionClickHandler}\n >\n Low\n </MenuItem>,\n );\n }\n\n return [\n <Menu key=\"aggregate-menu\">\n <MenuTrigger>\n <MenuItem>{`Aggregate ${label}`}</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>,\n ];\n }\n}\n"],"names":["getSortStatus","jsx","MenuItem","logUnhandledMessage","Menu","MenuTrigger","MenuPanel","getGroupStatus","isNumericColumn"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"column-menu-utils.js","sources":["../../src/column-menu/column-menu-utils.tsx"],"sourcesContent":["import {\n Menu,\n MenuItem,\n MenuItemProps,\n MenuPanel,\n MenuProps,\n MenuTrigger,\n} from \"@salt-ds/core\";\nimport { DataSource } from \"@vuu-ui/vuu-data-types\";\nimport {\n ColumnDescriptor,\n TableSettingsPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n getGroupStatus,\n getSortStatus,\n isNumericColumn,\n logUnhandledMessage,\n} from \"@vuu-ui/vuu-utils\";\nimport { MouseEventHandler, ReactElement } from \"react\";\n\ntype MenuElement = ReactElement<MenuProps, typeof Menu>;\ntype MenuItemElement = ReactElement<MenuItemProps, typeof MenuItem>;\ntype MenuElements = Array<MenuElement | MenuItemElement>;\n\nexport type MenuItemClickHandler = MouseEventHandler<HTMLDivElement>;\n\nexport type DataSourceColumnMenuActionType =\n | \"agg-count\"\n | \"agg-distinct\"\n | \"agg-sum\"\n | \"agg-avg\"\n | \"agg-high\"\n | \"agg-low\"\n | \"sort-asc\"\n | \"sort-dsc\"\n | \"sort-add-asc\"\n | \"sort-add-dsc\"\n | \"remove-sort\"\n | \"group-column\"\n | \"remove-group\"\n | \"add-to-group\"\n | \"remove-from-group\"\n | \"remove-column\";\n\nexport type ColumnDisplayColumnMenuActionType =\n | \"pin-column-left\"\n | \"pin-column-right\"\n | \"pin-column-floating\"\n | \"unpin-column\"\n | \"hide-column\";\n\nexport type TableSettingsActionType = \"column-settings\" | \"table-settings\";\n\nexport type ColumnMenuActionType =\n | DataSourceColumnMenuActionType\n | ColumnDisplayColumnMenuActionType\n | TableSettingsActionType;\n\nexport const isColumnMenuActionType = (\n value?: string,\n): value is ColumnMenuActionType =>\n value !== undefined &&\n [\n \"agg-count\",\n \"agg-distinct\",\n \"agg-sum\",\n \"agg-avg\",\n \"agg-high\",\n \"agg-low\",\n \"sort-asc\",\n \"sort-dsc\",\n \"sort-add-asc\",\n \"sort-add-dsc\",\n \"remove-sort\",\n \"group-column\",\n \"remove-group\",\n \"add-to-group\",\n \"remove-from-group\",\n \"pin-column-left\",\n \"pin-column-right\",\n \"pin-column-floating\",\n \"unpin-column\",\n \"hide-column\",\n \"remove-column\",\n \"column-settings\",\n \"table-settings\",\n ].includes(value);\n\nexport const getColumnMenuActionType = (target: EventTarget | HTMLElement) => {\n const { menuActionId } = (target as HTMLElement).dataset;\n if (isColumnMenuActionType(menuActionId)) {\n return menuActionId;\n } else {\n throw Error(\n \"[vuu-table-extras] column-menu-utils target element is not a valid Column MenuItem\",\n );\n }\n};\n\nexport function buildSortMenu(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElement | null {\n if (!isAllowed || column.sortable === false) {\n return null;\n } else {\n const { name, label = name } = column;\n const menuItems: MenuElements = [];\n const columnSortStatus = getSortStatus(column.name, dataSource.sort);\n\n switch (columnSortStatus) {\n case \"no-sort\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Sort ascending\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Sort descending\n </MenuItem>,\n );\n break;\n case \"single-sort-asc\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Reverse Sort (DSC)\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"remove-sort\"\n key=\"remove-sort\"\n onClick={menuActionClickHandler}\n >\n Remove Sort\n </MenuItem>,\n );\n break;\n case \"single-sort-desc\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Reverse Sort (ASC)\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"remove-sort\"\n key=\"remove-sort\"\n onClick={menuActionClickHandler}\n >\n Remove Sort\n </MenuItem>,\n );\n break;\n\n case \"sort-other-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-add-asc\"\n key=\"sort-add-asc\"\n onClick={menuActionClickHandler}\n >\n Add to sort ASC\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-add-dsc\"\n key=\"sort-add-dsc\"\n onClick={menuActionClickHandler}\n >\n Add to sort DSC\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Ascending\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Descending\n </MenuItem>,\n );\n break;\n\n case \"multi-sort-includes-column-asc\":\n case \"multi-sort-includes-column-desc\":\n break;\n default:\n logUnhandledMessage(\n columnSortStatus,\n \"[vuu-table-extras] column-menu-utils buildSortMenu\",\n );\n }\n\n return (\n <Menu key=\"sort-menu\">\n <MenuTrigger>\n <MenuItem>{`Sort by ${label}`}</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>\n );\n }\n}\n\nexport function buildGroupMenu(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElement | null {\n if (!isAllowed || column.groupable === false) {\n return null;\n } else {\n const menuItems: MenuElements = [];\n const columnGroupStatus = getGroupStatus(column.name, dataSource.groupBy);\n const { name, label = name } = column;\n\n switch (columnGroupStatus) {\n case \"no-groupby\":\n case \"single-groupby-other-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"group-column\"\n key=\"group-column\"\n onClick={menuActionClickHandler}\n >{`Group by ${label}`}</MenuItem>,\n );\n break;\n case \"single-groupby\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-group\"\n key=\"remove-group\"\n onClick={menuActionClickHandler}\n >\n Remove Grouping\n </MenuItem>,\n );\n break;\n\n case \"multi-groupby-other-columns\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"add-to-group\"\n key=\"add-to-group\"\n onClick={menuActionClickHandler}\n >\n Add to grouping\n </MenuItem>,\n );\n\n break;\n\n case \"multi-groupby-includes-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-from-group\"\n key=\"remove-from-group\"\n onClick={menuActionClickHandler}\n >\n Remove from grouping\n </MenuItem>,\n );\n\n break;\n\n default:\n logUnhandledMessage(\n columnGroupStatus,\n \"[vuu-table-extras] column-menu-utils buildGroupMenu\",\n );\n }\n\n return (\n <Menu key=\"group-menu\">\n <MenuTrigger>\n <MenuItem>Group data</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>\n );\n }\n}\n\nexport const buildVisibilityMenuItems = (\n column: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements | null => {\n if (!isAllowed) {\n return null;\n }\n const menuItems: MenuElements = [];\n const { name, label = name } = column;\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"hide-column\"\n key=\"hide-column\"\n onClick={menuActionClickHandler}\n >\n {`Hide ${label} column`}\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-column\"\n key=\"remove-column\"\n onClick={menuActionClickHandler}\n >\n {`Remove ${label} column`}\n </MenuItem>,\n );\n\n return menuItems;\n};\n\nexport const buildPinMenuItems = (\n column: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements => {\n if (!isAllowed || column === undefined) {\n return [];\n }\n const { pin } = column;\n\n const menuItems: MenuElements = [];\n\n const pinLeft = (\n <MenuItem\n data-menu-action-id=\"pin-column-left\"\n key=\"pin-column-left\"\n onClick={menuActionClickHandler}\n >\n Pin left\n </MenuItem>\n );\n\n const pinFloating = (\n <MenuItem\n data-menu-action-id=\"pin-column-floating\"\n key=\"pin-column-floating\"\n onClick={menuActionClickHandler}\n >\n Pin floating\n </MenuItem>\n );\n\n const pinRight = (\n <MenuItem\n data-menu-action-id=\"pin-column-right\"\n key=\"pin-column-right\"\n onClick={menuActionClickHandler}\n >\n Pin right\n </MenuItem>\n );\n\n if (pin === undefined) {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinLeft}\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"unpin-column\"\n key=\"unpin-column\"\n onClick={menuActionClickHandler}\n >\n Unpin\n </MenuItem>,\n );\n if (pin === \"left\") {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else if (pin === \"floating\") {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinLeft}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n }\n }\n\n return menuItems;\n};\n\nexport const buildSettingsMenuItems = (\n _: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n allowColumnSettings = true,\n allowTableSettings: boolean | TableSettingsPermissions = true,\n): MenuElements | null => {\n if (!allowColumnSettings && !allowTableSettings) {\n return null;\n }\n\n const menuItems: MenuElements = [];\n\n if (allowColumnSettings) {\n menuItems.push(\n <MenuItem\n data-icon=\"settings\"\n data-menu-action-id=\"column-settings\"\n key=\"column-settings\"\n onClick={menuActionClickHandler}\n >\n Column settings ...\n </MenuItem>,\n );\n }\n\n if (allowTableSettings) {\n menuItems.push(\n <MenuItem\n data-icon=\"settings\"\n data-menu-action-id=\"table-settings\"\n key=\"table-settings\"\n onClick={menuActionClickHandler}\n >\n Table settings ...\n </MenuItem>,\n );\n }\n\n return menuItems;\n};\n\nexport function buildAggregationMenuItems(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements | null {\n if (!isAllowed) {\n return null;\n }\n\n const { name, label = name } = column;\n\n if (dataSource.groupBy?.length === 0) {\n return [];\n } else {\n const menuItems: MenuElements = [\n <MenuItem\n data-menu-action-id=\"agg-count\"\n key=\"agg-count\"\n onClick={menuActionClickHandler}\n >\n Count\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-distinct\"\n key=\"agg-distinct\"\n onClick={menuActionClickHandler}\n >\n Distinct\n </MenuItem>,\n ];\n\n if (isNumericColumn(column)) {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"agg-sum\"\n key=\"agg-sum\"\n onClick={menuActionClickHandler}\n >\n Sum\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-avg\"\n key=\"agg-avg\"\n onClick={menuActionClickHandler}\n >\n Average\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-high\"\n key=\"agg-high\"\n onClick={menuActionClickHandler}\n >\n High\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-low\"\n key=\"agg-low\"\n onClick={menuActionClickHandler}\n >\n Low\n </MenuItem>,\n );\n }\n\n return [\n <Menu key=\"aggregate-menu\">\n <MenuTrigger>\n <MenuItem>{`Aggregate ${label}`}</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>,\n ];\n }\n}\n"],"names":["getSortStatus","jsx","MenuItem","logUnhandledMessage","Menu","MenuTrigger","MenuPanel","getGroupStatus","isNumericColumn"],"mappings":"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"}
|
package/cjs/index.js
CHANGED
|
@@ -11,7 +11,11 @@ require('./cell-renderers/progress-cell/ProgressCell.js');
|
|
|
11
11
|
var ColumnList = require('./column-list/ColumnList.js');
|
|
12
12
|
var ColumnMenu = require('./column-menu/ColumnMenu.js');
|
|
13
13
|
var useColumnActions = require('./column-menu/useColumnActions.js');
|
|
14
|
-
var ColumnSettingsPanel = require('./column-settings/ColumnSettingsPanel.js');
|
|
14
|
+
var ColumnSettingsPanel = require('./table-column-settings/ColumnSettingsPanel.js');
|
|
15
|
+
var useColumnSettings = require('./table-column-settings/useColumnSettings.js');
|
|
16
|
+
var TableSettingsPanel = require('./table-column-settings/TableSettingsPanel.js');
|
|
17
|
+
var useTableSettings = require('./table-column-settings/useTableSettings.js');
|
|
18
|
+
var useTableAndColumnSettings = require('./table-column-settings/useTableAndColumnSettings.js');
|
|
15
19
|
var ColumnExpressionInput = require('./column-expression-input/ColumnExpressionInput.js');
|
|
16
20
|
var ColumnExpressionLanguage = require('./column-expression-input/column-language-parser/ColumnExpressionLanguage.js');
|
|
17
21
|
var ColumnExpressionTreeWalker = require('./column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js');
|
|
@@ -23,8 +27,6 @@ var ColumnFormattingPanel = require('./column-formatting-settings/ColumnFormatti
|
|
|
23
27
|
var BaseNumericFormattingSettings = require('./column-formatting-settings/BaseNumericFormattingSettings.js');
|
|
24
28
|
var DateTimeFormattingSettings = require('./column-formatting-settings/DateTimeFormattingSettings.js');
|
|
25
29
|
var DatasourceStats = require('./datasource-stats/DatasourceStats.js');
|
|
26
|
-
var TableSettingsPanel = require('./table-settings/TableSettingsPanel.js');
|
|
27
|
-
var useTableSettings = require('./table-settings/useTableSettings.js');
|
|
28
30
|
var TableProvider = require('./table-provider/TableProvider.js');
|
|
29
31
|
|
|
30
32
|
|
|
@@ -40,6 +42,13 @@ exports.ColumnList = ColumnList.ColumnList;
|
|
|
40
42
|
exports.ColumnMenu = ColumnMenu.ColumnMenu;
|
|
41
43
|
exports.useColumnActions = useColumnActions.useColumnActions;
|
|
42
44
|
exports.ColumnSettingsPanel = ColumnSettingsPanel.ColumnSettingsPanel;
|
|
45
|
+
exports.useColumnSettings = useColumnSettings.useColumnSettings;
|
|
46
|
+
exports.TableSettingsPanel = TableSettingsPanel.TableSettingsPanel;
|
|
47
|
+
exports.defaultTableSettingsPermissions = TableSettingsPanel.defaultTableSettingsPermissions;
|
|
48
|
+
exports.useTableSettings = useTableSettings.useTableSettings;
|
|
49
|
+
exports.columnSettingsFromColumnMenuPermissions = useTableAndColumnSettings.columnSettingsFromColumnMenuPermissions;
|
|
50
|
+
exports.tableSettingsFromColumnMenuPermissions = useTableAndColumnSettings.tableSettingsFromColumnMenuPermissions;
|
|
51
|
+
exports.useTableAndColumnSettings = useTableAndColumnSettings.useTableAndColumnSettings;
|
|
43
52
|
exports.ColumnExpressionInput = ColumnExpressionInput.ColumnExpressionInput;
|
|
44
53
|
exports.columnExpressionLanguageSupport = ColumnExpressionLanguage.columnExpressionLanguageSupport;
|
|
45
54
|
exports.walkTree = ColumnExpressionTreeWalker.walkTree;
|
|
@@ -54,8 +63,6 @@ exports.ColumnFormattingPanel = ColumnFormattingPanel.ColumnFormattingPanel;
|
|
|
54
63
|
exports.BaseNumericFormattingSettings = BaseNumericFormattingSettings.BaseNumericFormattingSettings;
|
|
55
64
|
exports.DateTimeFormattingSettings = DateTimeFormattingSettings.DateTimeFormattingSettings;
|
|
56
65
|
exports.DataSourceStats = DatasourceStats.DataSourceStats;
|
|
57
|
-
exports.TableSettingsPanel = TableSettingsPanel.TableSettingsPanel;
|
|
58
|
-
exports.useTableSettings = useTableSettings.useTableSettings;
|
|
59
66
|
exports.TableProvider = TableProvider.TableProvider;
|
|
60
67
|
exports.useTableContext = TableProvider.useTableContext;
|
|
61
68
|
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|