@vuu-ui/vuu-table-extras 1.0.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/{column-expression-panel/ColumnExpressionPanel.js → calculated-column/CalculatedColumnPanel.js} +13 -13
- package/cjs/calculated-column/CalculatedColumnPanel.js.map +1 -0
- package/cjs/{column-expression-panel/useColumnExpression.js → calculated-column/useCalculatedColumnPanel.js} +12 -10
- package/cjs/calculated-column/useCalculatedColumnPanel.js.map +1 -0
- package/cjs/calculated-column/useEditCalculatedColumn.js +138 -0
- package/cjs/calculated-column/useEditCalculatedColumn.js.map +1 -0
- package/cjs/column-formatting-settings/BaseNumericFormattingSettings.js +1 -0
- package/cjs/column-formatting-settings/BaseNumericFormattingSettings.js.map +1 -1
- package/cjs/column-formatting-settings/ColumnFormattingPanel.js +1 -0
- package/cjs/column-formatting-settings/ColumnFormattingPanel.js.map +1 -1
- package/cjs/column-menu/ColumnMenu.js +3 -15
- package/cjs/column-menu/ColumnMenu.js.map +1 -1
- package/cjs/column-menu/column-menu-utils.js +1 -38
- package/cjs/column-menu/column-menu-utils.js.map +1 -1
- package/cjs/column-menu/useColumnActions.js +0 -2
- package/cjs/column-menu/useColumnActions.js.map +1 -1
- package/cjs/column-picker/ColumnModel.js +58 -0
- package/cjs/column-picker/ColumnModel.js.map +1 -1
- package/cjs/column-picker/ColumnPicker.css.js +1 -1
- package/cjs/column-picker/ColumnPicker.js +37 -14
- package/cjs/column-picker/ColumnPicker.js.map +1 -1
- package/cjs/column-picker/ColumnPickerAction.js +34 -0
- package/cjs/column-picker/ColumnPickerAction.js.map +1 -0
- package/cjs/column-picker/useColumnPicker.js.map +1 -1
- package/cjs/column-picker/useTableColumnPicker.js +35 -0
- package/cjs/column-picker/useTableColumnPicker.js.map +1 -0
- package/cjs/column-settings-panel/ColumnNameLabel.js.map +1 -0
- package/cjs/{table-column-settings → column-settings-panel}/ColumnSettingsPanel.css.js +1 -1
- package/cjs/column-settings-panel/ColumnSettingsPanel.js +161 -0
- package/cjs/column-settings-panel/ColumnSettingsPanel.js.map +1 -0
- package/cjs/{table-column-settings → column-settings-panel}/useColumnSettings.js +42 -79
- package/cjs/column-settings-panel/useColumnSettings.js.map +1 -0
- package/cjs/datasource-stats/DatasourceStats.css.js +1 -1
- package/cjs/index.js +20 -19
- package/cjs/index.js.map +1 -1
- package/cjs/tabbed-table-config-panel/TabbedTableConfigPanel.css.js +6 -0
- package/cjs/tabbed-table-config-panel/TabbedTableConfigPanel.css.js.map +1 -0
- package/cjs/tabbed-table-config-panel/TabbedTableConfigPanel.js +90 -0
- package/cjs/tabbed-table-config-panel/TabbedTableConfigPanel.js.map +1 -0
- package/cjs/tabbed-table-config-panel/TabbedTableSettingsAction.js +44 -0
- package/cjs/tabbed-table-config-panel/TabbedTableSettingsAction.js.map +1 -0
- package/cjs/tabbed-table-config-panel/useTabbedTableConfigPanel.js +49 -0
- package/cjs/tabbed-table-config-panel/useTabbedTableConfigPanel.js.map +1 -0
- package/cjs/table-footer/TableFooter.css.js +6 -0
- package/cjs/table-footer/TableFooter.css.js.map +1 -0
- package/cjs/table-footer/TableFooter.js +34 -0
- package/cjs/table-footer/TableFooter.js.map +1 -0
- package/cjs/{table-column-settings → table-settings-panel}/TableSettingsPanel.css.js +1 -1
- package/cjs/{table-column-settings → table-settings-panel}/TableSettingsPanel.js +12 -47
- package/cjs/table-settings-panel/TableSettingsPanel.js.map +1 -0
- package/cjs/table-settings-panel/useTableSettings.js +60 -0
- package/cjs/table-settings-panel/useTableSettings.js.map +1 -0
- package/esm/{column-expression-panel/ColumnExpressionPanel.js → calculated-column/CalculatedColumnPanel.js} +13 -13
- package/esm/calculated-column/CalculatedColumnPanel.js.map +1 -0
- package/esm/{column-expression-panel/useColumnExpression.js → calculated-column/useCalculatedColumnPanel.js} +12 -10
- package/esm/calculated-column/useCalculatedColumnPanel.js.map +1 -0
- package/esm/calculated-column/useEditCalculatedColumn.js +136 -0
- package/esm/calculated-column/useEditCalculatedColumn.js.map +1 -0
- package/esm/column-formatting-settings/BaseNumericFormattingSettings.js +1 -0
- package/esm/column-formatting-settings/BaseNumericFormattingSettings.js.map +1 -1
- package/esm/column-formatting-settings/ColumnFormattingPanel.js +1 -0
- package/esm/column-formatting-settings/ColumnFormattingPanel.js.map +1 -1
- package/esm/column-menu/ColumnMenu.js +4 -16
- package/esm/column-menu/ColumnMenu.js.map +1 -1
- package/esm/column-menu/column-menu-utils.js +2 -38
- package/esm/column-menu/column-menu-utils.js.map +1 -1
- package/esm/column-menu/useColumnActions.js +0 -2
- package/esm/column-menu/useColumnActions.js.map +1 -1
- package/esm/column-picker/ColumnModel.js +58 -0
- package/esm/column-picker/ColumnModel.js.map +1 -1
- package/esm/column-picker/ColumnPicker.css.js +1 -1
- package/esm/column-picker/ColumnPicker.js +39 -16
- package/esm/column-picker/ColumnPicker.js.map +1 -1
- package/esm/column-picker/ColumnPickerAction.js +32 -0
- package/esm/column-picker/ColumnPickerAction.js.map +1 -0
- package/esm/column-picker/useColumnPicker.js.map +1 -1
- package/esm/column-picker/useTableColumnPicker.js +33 -0
- package/esm/column-picker/useTableColumnPicker.js.map +1 -0
- package/esm/column-settings-panel/ColumnNameLabel.js.map +1 -0
- package/esm/{table-column-settings → column-settings-panel}/ColumnSettingsPanel.css.js +1 -1
- package/esm/column-settings-panel/ColumnSettingsPanel.js +159 -0
- package/esm/column-settings-panel/ColumnSettingsPanel.js.map +1 -0
- package/esm/{table-column-settings → column-settings-panel}/useColumnSettings.js +44 -81
- package/esm/column-settings-panel/useColumnSettings.js.map +1 -0
- package/esm/datasource-stats/DatasourceStats.css.js +1 -1
- package/esm/index.js +9 -7
- package/esm/index.js.map +1 -1
- package/esm/tabbed-table-config-panel/TabbedTableConfigPanel.css.js +4 -0
- package/esm/tabbed-table-config-panel/TabbedTableConfigPanel.css.js.map +1 -0
- package/esm/tabbed-table-config-panel/TabbedTableConfigPanel.js +88 -0
- package/esm/tabbed-table-config-panel/TabbedTableConfigPanel.js.map +1 -0
- package/esm/tabbed-table-config-panel/TabbedTableSettingsAction.js +42 -0
- package/esm/tabbed-table-config-panel/TabbedTableSettingsAction.js.map +1 -0
- package/esm/tabbed-table-config-panel/useTabbedTableConfigPanel.js +47 -0
- package/esm/tabbed-table-config-panel/useTabbedTableConfigPanel.js.map +1 -0
- package/esm/table-footer/TableFooter.css.js +4 -0
- package/esm/table-footer/TableFooter.css.js.map +1 -0
- package/esm/table-footer/TableFooter.js +31 -0
- package/esm/table-footer/TableFooter.js.map +1 -0
- package/esm/{table-column-settings → table-settings-panel}/TableSettingsPanel.css.js +1 -1
- package/esm/{table-column-settings → table-settings-panel}/TableSettingsPanel.js +13 -48
- package/esm/table-settings-panel/TableSettingsPanel.js.map +1 -0
- package/esm/table-settings-panel/useTableSettings.js +58 -0
- package/esm/table-settings-panel/useTableSettings.js.map +1 -0
- package/package.json +12 -11
- package/types/calculated-column/CalculatedColumnPanel.d.ts +12 -0
- package/types/calculated-column/useCalculatedColumnPanel.d.ts +10 -0
- package/types/calculated-column/useEditCalculatedColumn.d.ts +13 -0
- package/types/column-menu/ColumnMenu.d.ts +1 -1
- package/types/column-menu/column-action-types.d.ts +1 -4
- package/types/column-menu/column-menu-utils.d.ts +3 -4
- package/types/column-picker/ColumnModel.d.ts +26 -3
- package/types/column-picker/ColumnPicker.d.ts +7 -3
- package/types/column-picker/ColumnPickerAction.d.ts +5 -0
- package/types/column-picker/useColumnPicker.d.ts +4 -4
- package/types/column-picker/useTableColumnPicker.d.ts +7 -0
- package/types/column-picker/useTableColumnPickerDeprecated.d.ts +14 -0
- package/types/{table-column-settings → column-settings-panel}/ColumnNameLabel.d.ts +1 -1
- package/types/column-settings-panel/ColumnSettingsPanel.d.ts +5 -0
- package/types/{table-column-settings → column-settings-panel}/useColumnSettings.d.ts +14 -7
- package/types/index.d.ts +10 -9
- package/types/tabbed-table-config-panel/TabbedTableConfigPanel.d.ts +17 -0
- package/types/tabbed-table-config-panel/TabbedTableSettingsAction.d.ts +7 -0
- package/types/tabbed-table-config-panel/useTabbedTableConfigPanel.d.ts +13 -0
- package/types/table-footer/TableFooter.d.ts +9 -0
- package/types/table-settings-panel/TableSettingsPanel.d.ts +22 -0
- package/types/table-settings-panel/useTableSettings.d.ts +14 -0
- package/cjs/column-expression-panel/ColumnExpressionPanel.js.map +0 -1
- package/cjs/column-expression-panel/useColumnExpression.js.map +0 -1
- package/cjs/column-list/ColumnList.css.js +0 -6
- package/cjs/column-list/ColumnList.css.js.map +0 -1
- package/cjs/column-list/ColumnList.js +0 -218
- package/cjs/column-list/ColumnList.js.map +0 -1
- package/cjs/column-list/useColumnList.js +0 -66
- package/cjs/column-list/useColumnList.js.map +0 -1
- package/cjs/table-column-settings/ColumnNameLabel.js.map +0 -1
- package/cjs/table-column-settings/ColumnSettingsPanel.js +0 -202
- package/cjs/table-column-settings/ColumnSettingsPanel.js.map +0 -1
- package/cjs/table-column-settings/TableSettingsPanel.js.map +0 -1
- package/cjs/table-column-settings/useColumnSettings.js.map +0 -1
- package/cjs/table-column-settings/useTableAndColumnSettings.js +0 -129
- package/cjs/table-column-settings/useTableAndColumnSettings.js.map +0 -1
- package/cjs/table-column-settings/useTableSettings.js +0 -176
- package/cjs/table-column-settings/useTableSettings.js.map +0 -1
- package/esm/column-expression-panel/ColumnExpressionPanel.js.map +0 -1
- package/esm/column-expression-panel/useColumnExpression.js.map +0 -1
- package/esm/column-list/ColumnList.css.js +0 -4
- package/esm/column-list/ColumnList.css.js.map +0 -1
- package/esm/column-list/ColumnList.js +0 -214
- package/esm/column-list/ColumnList.js.map +0 -1
- package/esm/column-list/useColumnList.js +0 -64
- package/esm/column-list/useColumnList.js.map +0 -1
- package/esm/table-column-settings/ColumnNameLabel.js.map +0 -1
- package/esm/table-column-settings/ColumnSettingsPanel.js +0 -200
- package/esm/table-column-settings/ColumnSettingsPanel.js.map +0 -1
- package/esm/table-column-settings/TableSettingsPanel.js.map +0 -1
- package/esm/table-column-settings/useColumnSettings.js.map +0 -1
- package/esm/table-column-settings/useTableAndColumnSettings.js +0 -125
- package/esm/table-column-settings/useTableAndColumnSettings.js.map +0 -1
- package/esm/table-column-settings/useTableSettings.js +0 -174
- package/esm/table-column-settings/useTableSettings.js.map +0 -1
- 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-list/ColumnList.d.ts +0 -11
- package/types/column-list/index.d.ts +0 -2
- package/types/column-list/useColumnList.d.ts +0 -22
- package/types/table-column-settings/ColumnSettingsPanel.d.ts +0 -2
- package/types/table-column-settings/TableSettingsPanel.d.ts +0 -9
- package/types/table-column-settings/useTableAndColumnSettings.d.ts +0 -18
- package/types/table-column-settings/useTableSettings.d.ts +0 -18
- /package/cjs/{table-column-settings → column-settings-panel}/ColumnNameLabel.css.js +0 -0
- /package/cjs/{table-column-settings → column-settings-panel}/ColumnNameLabel.css.js.map +0 -0
- /package/cjs/{table-column-settings → column-settings-panel}/ColumnNameLabel.js +0 -0
- /package/cjs/{table-column-settings → column-settings-panel}/ColumnSettingsPanel.css.js.map +0 -0
- /package/cjs/{table-column-settings → table-settings-panel}/TableSettingsPanel.css.js.map +0 -0
- /package/esm/{table-column-settings → column-settings-panel}/ColumnNameLabel.css.js +0 -0
- /package/esm/{table-column-settings → column-settings-panel}/ColumnNameLabel.css.js.map +0 -0
- /package/esm/{table-column-settings → column-settings-panel}/ColumnNameLabel.js +0 -0
- /package/esm/{table-column-settings → column-settings-panel}/ColumnSettingsPanel.css.js.map +0 -0
- /package/esm/{table-column-settings → table-settings-panel}/TableSettingsPanel.css.js.map +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabbedTableSettingsAction.js","sources":["../../../../packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableSettingsAction.tsx"],"sourcesContent":["import { IconButton, IconButtonProps } from \"@vuu-ui/vuu-ui-controls\";\nimport { useCallback } from \"react\";\nimport {\n TabbedTableConfigPanelHookProps,\n useTabbedTableConfigPanel,\n} from \"./useTabbedTableConfigPanel\";\nimport { TableDisplayAttributeChangeHandler } from \"../table-settings-panel/TableSettingsPanel\";\n\nexport interface TabbedTableSettingsActionProps\n extends Partial<IconButtonProps>,\n TabbedTableConfigPanelHookProps {\n onDisplayAttributeChange: TableDisplayAttributeChangeHandler;\n}\n\nexport const TabbedTableSettingsAction = ({\n allowCreateCalculatedColumn,\n appearance = \"transparent\",\n columnModel,\n config,\n icon = \"settings\",\n onDisplayAttributeChange,\n sentiment = \"neutral\",\n vuuTable,\n ...IconButtonProps\n}: TabbedTableSettingsActionProps) => {\n const { showTabbedTableConfigPanel } = useTabbedTableConfigPanel({\n allowCreateCalculatedColumn,\n columnModel,\n config,\n onDisplayAttributeChange,\n vuuTable,\n });\n\n const handleClick = useCallback(() => {\n showTabbedTableConfigPanel();\n }, [showTabbedTableConfigPanel]);\n\n return (\n <IconButton\n {...IconButtonProps}\n appearance={appearance}\n data-action=\"table-settings\"\n icon={icon}\n onClick={handleClick}\n sentiment={sentiment}\n size={20}\n />\n );\n};\n"],"names":["IconButtonProps"],"mappings":";;;;;AAcO,MAAM,4BAA4B,CAAC;AAAA,EACxC,2BAAA;AAAA,EACA,UAAa,GAAA,aAAA;AAAA,EACb,WAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAO,GAAA,UAAA;AAAA,EACP,wBAAA;AAAA,EACA,SAAY,GAAA,SAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAGA;AACL,CAAsC,KAAA;AACpC,EAAM,MAAA,EAAE,0BAA2B,EAAA,GAAI,yBAA0B,CAAA;AAAA,IAC/D,2BAAA;AAAA,IACA,WAAA;AAAA,IACA,MAAA;AAAA,IACA,wBAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAM,MAAA,WAAA,GAAc,YAAY,MAAM;AACpC,IAA2B,0BAAA,EAAA;AAAA,GAC7B,EAAG,CAAC,0BAA0B,CAAC,CAAA;AAE/B,EACE,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACE,GAAGA,gBAAAA;AAAA,MACJ,UAAA;AAAA,MACA,aAAY,EAAA,gBAAA;AAAA,MACZ,IAAA;AAAA,MACA,OAAS,EAAA,WAAA;AAAA,MACT,SAAA;AAAA,MACA,IAAM,EAAA;AAAA;AAAA,GACR;AAEJ;;;;"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useRef, useCallback } from 'react';
|
|
3
|
+
import { useContextPanel } from '@vuu-ui/vuu-ui-controls';
|
|
4
|
+
import { TabbedTableConfigPanel } from './TabbedTableConfigPanel.js';
|
|
5
|
+
|
|
6
|
+
const useTabbedTableConfigPanel = ({
|
|
7
|
+
allowCreateCalculatedColumn,
|
|
8
|
+
columnModel,
|
|
9
|
+
config,
|
|
10
|
+
onDisplayAttributeChange,
|
|
11
|
+
vuuTable
|
|
12
|
+
}) => {
|
|
13
|
+
const showContextPanel = useContextPanel();
|
|
14
|
+
const contextPanelShowing = useRef(false);
|
|
15
|
+
const showTabbedTableConfigPanel = useCallback(
|
|
16
|
+
(title = "Table settings") => {
|
|
17
|
+
contextPanelShowing.current = true;
|
|
18
|
+
showContextPanel(
|
|
19
|
+
/* @__PURE__ */ jsx(
|
|
20
|
+
TabbedTableConfigPanel,
|
|
21
|
+
{
|
|
22
|
+
allowCreateCalculatedColumn,
|
|
23
|
+
columnModel,
|
|
24
|
+
config,
|
|
25
|
+
onDisplayAttributeChange,
|
|
26
|
+
vuuTable
|
|
27
|
+
}
|
|
28
|
+
),
|
|
29
|
+
title
|
|
30
|
+
);
|
|
31
|
+
},
|
|
32
|
+
[
|
|
33
|
+
allowCreateCalculatedColumn,
|
|
34
|
+
columnModel,
|
|
35
|
+
config,
|
|
36
|
+
onDisplayAttributeChange,
|
|
37
|
+
showContextPanel,
|
|
38
|
+
vuuTable
|
|
39
|
+
]
|
|
40
|
+
);
|
|
41
|
+
return {
|
|
42
|
+
showTabbedTableConfigPanel
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export { useTabbedTableConfigPanel };
|
|
47
|
+
//# sourceMappingURL=useTabbedTableConfigPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTabbedTableConfigPanel.js","sources":["../../../../packages/vuu-table-extras/src/tabbed-table-config-panel/useTabbedTableConfigPanel.tsx"],"sourcesContent":["import { useCallback, useRef } from \"react\";\nimport { useContextPanel } from \"@vuu-ui/vuu-ui-controls\";\nimport { TabbedTableConfigPanel } from \"./TabbedTableConfigPanel\";\nimport { TableSettingsPanelProps } from \"../table-settings-panel/TableSettingsPanel\";\nimport { TableProps } from \"@vuu-ui/vuu-table\";\nimport { ColumnPickerProps } from \"../column-picker/ColumnPicker\";\nimport { VuuTable } from \"@vuu-ui/vuu-protocol-types\";\n\nexport interface TabbedTableConfigPanelHookProps\n extends Pick<\n ColumnPickerProps,\n \"allowCreateCalculatedColumn\" | \"columnModel\"\n >,\n Pick<TableSettingsPanelProps, \"onDisplayAttributeChange\">,\n Pick<TableProps, \"config\"> {\n /**\n * only required for calculated columns\n */\n vuuTable?: VuuTable;\n}\n\nexport const useTabbedTableConfigPanel = ({\n allowCreateCalculatedColumn,\n columnModel,\n config,\n onDisplayAttributeChange,\n vuuTable,\n}: TabbedTableConfigPanelHookProps) => {\n const showContextPanel = useContextPanel();\n // const hideContextPanel = useHideContextPanel();\n const contextPanelShowing = useRef(false);\n\n const showTabbedTableConfigPanel = useCallback(\n (title = \"Table settings\") => {\n contextPanelShowing.current = true;\n showContextPanel(\n <TabbedTableConfigPanel\n allowCreateCalculatedColumn={allowCreateCalculatedColumn}\n columnModel={columnModel}\n config={config}\n onDisplayAttributeChange={onDisplayAttributeChange}\n vuuTable={vuuTable}\n />,\n title,\n );\n },\n [\n allowCreateCalculatedColumn,\n columnModel,\n config,\n onDisplayAttributeChange,\n showContextPanel,\n vuuTable,\n ],\n );\n\n return {\n showTabbedTableConfigPanel,\n };\n};\n"],"names":[],"mappings":";;;;;AAqBO,MAAM,4BAA4B,CAAC;AAAA,EACxC,2BAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,wBAAA;AAAA,EACA;AACF,CAAuC,KAAA;AACrC,EAAA,MAAM,mBAAmB,eAAgB,EAAA;AAEzC,EAAM,MAAA,mBAAA,GAAsB,OAAO,KAAK,CAAA;AAExC,EAAA,MAAM,0BAA6B,GAAA,WAAA;AAAA,IACjC,CAAC,QAAQ,gBAAqB,KAAA;AAC5B,MAAA,mBAAA,CAAoB,OAAU,GAAA,IAAA;AAC9B,MAAA,gBAAA;AAAA,wBACE,GAAA;AAAA,UAAC,sBAAA;AAAA,UAAA;AAAA,YACC,2BAAA;AAAA,YACA,WAAA;AAAA,YACA,MAAA;AAAA,YACA,wBAAA;AAAA,YACA;AAAA;AAAA,SACF;AAAA,QACA;AAAA,OACF;AAAA,KACF;AAAA,IACA;AAAA,MACE,2BAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,wBAAA;AAAA,MACA,gBAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAO,OAAA;AAAA,IACL;AAAA,GACF;AACF;;;;"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var tableFooterCss = ".vuuTableFooter {\n background-color: var(--salt-container-secondary-background);\n display: grid;\n --table-footer-height: var(--vuuTableFooter-height, 32px);\n flex: 0 0 var(--table-footer-height);\n grid-template-areas: \"panel-start panel-center panel-end\";\n grid-template-columns: 1fr 1fr 1fr;\n grid-template-rows: auto;\n\n height: var(--table-footer-height);\n\n .vuuTableFooterTray {\n align-items: center;\n display: flex;\n justify-self: end;;\n margin: 0 var(--salt-spacing-200);\n grid-area: panel-end;\n }\n\n}\n";
|
|
2
|
+
|
|
3
|
+
export { tableFooterCss as default };
|
|
4
|
+
//# sourceMappingURL=TableFooter.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableFooter.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx, jsxs } 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 tableFooterCss from './TableFooter.css.js';
|
|
6
|
+
|
|
7
|
+
const classBase = "vuuTableFooter";
|
|
8
|
+
const TableFooterTray = ({ children }) => {
|
|
9
|
+
return /* @__PURE__ */ jsx("div", { className: `${classBase}Tray`, children });
|
|
10
|
+
};
|
|
11
|
+
const TableFooter = ({
|
|
12
|
+
children,
|
|
13
|
+
className,
|
|
14
|
+
onInvokeAction,
|
|
15
|
+
tooltrayActions,
|
|
16
|
+
...htmlAttributes
|
|
17
|
+
}) => {
|
|
18
|
+
const targetWindow = useWindow();
|
|
19
|
+
useComponentCssInjection({
|
|
20
|
+
testId: "vuu-table-footer",
|
|
21
|
+
css: tableFooterCss,
|
|
22
|
+
window: targetWindow
|
|
23
|
+
});
|
|
24
|
+
return /* @__PURE__ */ jsxs("div", { ...htmlAttributes, className: cx(classBase, className), children: [
|
|
25
|
+
children,
|
|
26
|
+
tooltrayActions ? /* @__PURE__ */ jsx("div", { className: `${classBase}-tooltray`, children: tooltrayActions }) : null
|
|
27
|
+
] });
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { TableFooter, TableFooterTray };
|
|
31
|
+
//# sourceMappingURL=TableFooter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableFooter.js","sources":["../../../../packages/vuu-table-extras/src/table-footer/TableFooter.tsx"],"sourcesContent":["import cx from \"clsx\";\nimport { HTMLAttributes, ReactNode } from \"react\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport tableFooterCss from \"./TableFooter.css\";\n\nexport interface TableFooterProps extends HTMLAttributes<HTMLDivElement> {\n onInvokeAction?: (action: string) => void;\n tooltrayActions?: ReactNode;\n}\n\nconst classBase = \"vuuTableFooter\";\n\nexport const TableFooterTray = ({ children }: { children: ReactNode }) => {\n return <div className={`${classBase}Tray`}>{children}</div>;\n};\n\nexport const TableFooter = ({\n children,\n className,\n onInvokeAction,\n tooltrayActions,\n ...htmlAttributes\n}: TableFooterProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-table-footer\",\n css: tableFooterCss,\n window: targetWindow,\n });\n\n return (\n <div {...htmlAttributes} className={cx(classBase, className)}>\n {children}\n {tooltrayActions ? (\n <div className={`${classBase}-tooltray`}>{tooltrayActions}</div>\n ) : null}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;AAYA,MAAM,SAAY,GAAA,gBAAA;AAEX,MAAM,eAAkB,GAAA,CAAC,EAAE,QAAA,EAAwC,KAAA;AACxE,EAAA,2BAAQ,KAAI,EAAA,EAAA,SAAA,EAAW,CAAG,EAAA,SAAS,QAAS,QAAS,EAAA,CAAA;AACvD;AAEO,MAAM,cAAc,CAAC;AAAA,EAC1B,QAAA;AAAA,EACA,SAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,GAAG;AACL,CAAwB,KAAA;AACtB,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,kBAAA;AAAA,IACR,GAAK,EAAA,cAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EACE,uBAAA,IAAA,CAAC,SAAK,GAAG,cAAA,EAAgB,WAAW,EAAG,CAAA,SAAA,EAAW,SAAS,CACxD,EAAA,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,eAAA,uBACE,KAAI,EAAA,EAAA,SAAA,EAAW,GAAG,SAAS,CAAA,SAAA,CAAA,EAAc,2BAAgB,CACxD,GAAA;AAAA,GACN,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var tableSettingsPanelCss = ".vuuTableSettingsPanel {\n --vuuScrollable-size: 6px;\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: 12px 2px var(--salt-spacing-200) 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
|
|
1
|
+
var tableSettingsPanelCss = ".vuuTableSettingsPanel {\n --vuuScrollable-size: 6px;\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: 12px 2px var(--salt-spacing-200) 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 font-size: 14px;\n font-weight: 600;\n padding-top: 24px;\n}\n\n.vuuTableSettingsPanel-columnListContainer {\n\n flex-grow: 1;\n flex-shrink: 1;\n flex-basis: 0;\n position: relative;\n overflow: auto;\n .vuuColumnList {\n height: 100%;\n }\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
2
|
|
|
3
3
|
export { tableSettingsPanelCss as default };
|
|
4
4
|
//# sourceMappingURL=TableSettingsPanel.css.js.map
|
|
@@ -1,39 +1,25 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { FormField, FormFieldLabel, ToggleButtonGroup, ToggleButton
|
|
2
|
+
import { FormField, FormFieldLabel, ToggleButtonGroup, ToggleButton } from '@salt-ds/core';
|
|
3
3
|
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
4
4
|
import { useWindow } from '@salt-ds/window';
|
|
5
|
-
import { ColumnList } from '../column-list/ColumnList.js';
|
|
6
5
|
import { useTableSettings } from './useTableSettings.js';
|
|
7
6
|
import { VuuInput, Icon } from '@vuu-ui/vuu-ui-controls';
|
|
8
|
-
import cx from 'clsx';
|
|
9
7
|
import tableSettingsPanelCss from './TableSettingsPanel.css.js';
|
|
10
8
|
|
|
11
9
|
const classBase = "vuuTableSettingsPanel";
|
|
12
10
|
const defaultTableSettingsPermissions = {
|
|
13
11
|
allowColumnLabelCase: true,
|
|
14
12
|
allowColumnDefaultWidth: true,
|
|
15
|
-
allowGridSeparators: true
|
|
16
|
-
allowReorderColumns: true,
|
|
17
|
-
allowRemoveColumns: true,
|
|
18
|
-
allowHideColumns: true,
|
|
19
|
-
allowCalculatedColumns: true
|
|
13
|
+
allowGridSeparators: true
|
|
20
14
|
};
|
|
21
15
|
const noTableSettingsPermissions = {
|
|
22
16
|
allowColumnLabelCase: false,
|
|
23
17
|
allowColumnDefaultWidth: false,
|
|
24
|
-
allowGridSeparators: false
|
|
25
|
-
allowReorderColumns: false,
|
|
26
|
-
allowRemoveColumns: false,
|
|
27
|
-
allowHideColumns: false,
|
|
28
|
-
allowCalculatedColumns: false
|
|
18
|
+
allowGridSeparators: false
|
|
29
19
|
};
|
|
30
20
|
const TableSettingsPanel = ({
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
onConfigChange,
|
|
34
|
-
onDataSourceConfigChange,
|
|
35
|
-
onNavigateToColumn,
|
|
36
|
-
tableConfig: tableConfigProp,
|
|
21
|
+
onDisplayAttributeChange,
|
|
22
|
+
tableDisplayAttributes: tableDisplayAttributesProp,
|
|
37
23
|
permissions: permissionsProp
|
|
38
24
|
}) => {
|
|
39
25
|
const targetWindow = useWindow();
|
|
@@ -44,34 +30,27 @@ const TableSettingsPanel = ({
|
|
|
44
30
|
});
|
|
45
31
|
const permissions = permissionsProp === void 0 || permissionsProp === true ? defaultTableSettingsPermissions : permissionsProp === false ? noTableSettingsPermissions : permissionsProp;
|
|
46
32
|
const {
|
|
47
|
-
columnItems,
|
|
48
33
|
columnLabelsValue,
|
|
49
34
|
onChangeColumnLabels,
|
|
50
35
|
onChangeTableAttribute,
|
|
51
|
-
onReorderColumnItems,
|
|
52
|
-
onColumnChange,
|
|
53
36
|
onCommitColumnWidth,
|
|
54
|
-
|
|
37
|
+
tableDisplayAttributes
|
|
55
38
|
} = useTableSettings({
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
onDataSourceConfigChange,
|
|
59
|
-
tableConfig: tableConfigProp
|
|
39
|
+
onDisplayAttributeChange,
|
|
40
|
+
tableDisplayAttributes: tableDisplayAttributesProp
|
|
60
41
|
});
|
|
61
42
|
const {
|
|
62
43
|
allowColumnLabelCase = true,
|
|
63
44
|
allowColumnDefaultWidth = true,
|
|
64
|
-
allowGridSeparators = true
|
|
65
|
-
allowCalculatedColumns = true,
|
|
66
|
-
...columnListPermissions
|
|
45
|
+
allowGridSeparators = true
|
|
67
46
|
} = permissions;
|
|
68
47
|
return /* @__PURE__ */ jsxs("div", { className: classBase, children: [
|
|
69
|
-
allowColumnLabelCase || allowColumnDefaultWidth || allowGridSeparators ? /* @__PURE__ */ jsx("div", { className: `${classBase}-header`, children: /* @__PURE__ */ jsx("span", { children: "Column Settings" }) }) : null,
|
|
70
48
|
allowColumnDefaultWidth ? /* @__PURE__ */ jsxs(FormField, { children: [
|
|
71
49
|
/* @__PURE__ */ jsx(FormFieldLabel, { children: "Column Width" }),
|
|
72
50
|
/* @__PURE__ */ jsx(
|
|
73
51
|
VuuInput,
|
|
74
52
|
{
|
|
53
|
+
bordered: true,
|
|
75
54
|
className: "vuuInput",
|
|
76
55
|
"data-embedded": true,
|
|
77
56
|
onCommit: onCommitColumnWidth
|
|
@@ -100,7 +79,7 @@ const TableSettingsPanel = ({
|
|
|
100
79
|
/* @__PURE__ */ jsx(
|
|
101
80
|
ToggleButton,
|
|
102
81
|
{
|
|
103
|
-
selected:
|
|
82
|
+
selected: tableDisplayAttributes.zebraStripes ?? false,
|
|
104
83
|
onChange: onChangeTableAttribute,
|
|
105
84
|
value: "zebraStripes",
|
|
106
85
|
children: /* @__PURE__ */ jsx(Icon, { name: "row-striping", size: 16 })
|
|
@@ -109,7 +88,7 @@ const TableSettingsPanel = ({
|
|
|
109
88
|
/* @__PURE__ */ jsx(
|
|
110
89
|
ToggleButton,
|
|
111
90
|
{
|
|
112
|
-
selected:
|
|
91
|
+
selected: tableDisplayAttributes.rowSeparators ?? false,
|
|
113
92
|
onChange: onChangeTableAttribute,
|
|
114
93
|
value: "rowSeparators",
|
|
115
94
|
children: /* @__PURE__ */ jsx(Icon, { name: "row-lines", size: 16 })
|
|
@@ -118,27 +97,13 @@ const TableSettingsPanel = ({
|
|
|
118
97
|
/* @__PURE__ */ jsx(
|
|
119
98
|
ToggleButton,
|
|
120
99
|
{
|
|
121
|
-
selected:
|
|
100
|
+
selected: tableDisplayAttributes.columnSeparators ?? false,
|
|
122
101
|
onChange: onChangeTableAttribute,
|
|
123
102
|
value: "columnSeparators",
|
|
124
103
|
children: /* @__PURE__ */ jsx(Icon, { name: "col-lines", size: 16 })
|
|
125
104
|
}
|
|
126
105
|
)
|
|
127
106
|
] })
|
|
128
|
-
] }) : null,
|
|
129
|
-
/* @__PURE__ */ jsx("div", { className: cx(`${classBase}-columnListContainer`, "vuuScrollable"), children: /* @__PURE__ */ jsx(
|
|
130
|
-
ColumnList,
|
|
131
|
-
{
|
|
132
|
-
columnItems,
|
|
133
|
-
permissions: columnListPermissions,
|
|
134
|
-
onChange: onColumnChange,
|
|
135
|
-
onNavigateToColumn,
|
|
136
|
-
onReorderColumnItems
|
|
137
|
-
}
|
|
138
|
-
) }),
|
|
139
|
-
allowCalculatedColumns ? /* @__PURE__ */ jsxs("div", { className: `${classBase}-calculatedButtonbar`, children: [
|
|
140
|
-
/* @__PURE__ */ jsx(Button, { "data-icon": "plus", onClick: onAddCalculatedColumn }),
|
|
141
|
-
/* @__PURE__ */ jsx("span", { className: `${classBase}-calculatedLabel`, children: "Add calculated column" })
|
|
142
107
|
] }) : null
|
|
143
108
|
] });
|
|
144
109
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableSettingsPanel.js","sources":["../../../../packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.tsx"],"sourcesContent":["import {\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 {\n TableDisplayAttributes,\n TableSettingsPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport { useTableSettings } from \"./useTableSettings\";\nimport { Icon } from \"@vuu-ui/vuu-ui-controls\";\nimport { VuuInput } from \"@vuu-ui/vuu-ui-controls\";\n\nimport tableSettingsPanelCss from \"./TableSettingsPanel.css\";\n\nconst classBase = \"vuuTableSettingsPanel\";\n\nexport const defaultTableSettingsPermissions: Readonly<TableSettingsPermissions> =\n {\n allowColumnLabelCase: true,\n allowColumnDefaultWidth: true,\n allowGridSeparators: true,\n };\nexport const noTableSettingsPermissions: Readonly<TableSettingsPermissions> = {\n allowColumnLabelCase: false,\n allowColumnDefaultWidth: false,\n allowGridSeparators: false,\n};\n\nexport type TableDisplayAttributeChangeHandler = (\n displayAttributes: TableDisplayAttributes,\n) => void;\n\n/**\n * Describes the props for a Table Configuration Editor, for which\n * an implementation is provided in vuu-table-extras\n */\nexport interface TableSettingsPanelProps {\n allowColumnLabelCase?: boolean;\n allowColumnDefaultWidth?: boolean;\n allowGridRowStyling?: boolean;\n onDisplayAttributeChange: TableDisplayAttributeChangeHandler;\n tableDisplayAttributes: TableDisplayAttributes;\n permissions?: TableSettingsPermissions | boolean;\n}\n\n/**\n The TableSettingsPanel assumes 'ownership' of the tableSettings.\n It updates the settings in state locally and notifies caller of\n every change via onChange callback\n */\nexport const TableSettingsPanel = ({\n onDisplayAttributeChange,\n tableDisplayAttributes: tableDisplayAttributesProp,\n permissions: permissionsProp,\n}: TableSettingsPanelProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-table-settings-panel\",\n css: tableSettingsPanelCss,\n window: targetWindow,\n });\n\n const permissions =\n permissionsProp === undefined || permissionsProp === true\n ? defaultTableSettingsPermissions\n : permissionsProp === false\n ? noTableSettingsPermissions\n : permissionsProp;\n\n const {\n columnLabelsValue,\n onChangeColumnLabels,\n onChangeTableAttribute,\n onCommitColumnWidth,\n tableDisplayAttributes,\n } = useTableSettings({\n onDisplayAttributeChange,\n tableDisplayAttributes: tableDisplayAttributesProp,\n });\n\n const {\n allowColumnLabelCase = true,\n allowColumnDefaultWidth = true,\n allowGridSeparators = true,\n } = permissions;\n\n return (\n <div className={classBase}>\n {allowColumnDefaultWidth ? (\n <FormField>\n <FormFieldLabel>Column Width</FormFieldLabel>\n <VuuInput\n bordered\n className=\"vuuInput\"\n data-embedded\n onCommit={onCommitColumnWidth}\n />\n </FormField>\n ) : null}\n\n {allowColumnLabelCase ? (\n <FormField>\n <FormFieldLabel>Column Labels</FormFieldLabel>\n <ToggleButtonGroup\n className=\"vuuToggleButtonGroup\"\n onChange={onChangeColumnLabels}\n value={columnLabelsValue}\n >\n <ToggleButton className=\"vuuIconToggleButton\" value={0}>\n <Icon name=\"text-strikethrough\" size={48} />\n </ToggleButton>\n <ToggleButton className=\"vuuIconToggleButton\" value={1}>\n <Icon name=\"text-Tt\" size={48} />\n </ToggleButton>\n <ToggleButton className=\"vuuIconToggleButton\" value={2}>\n <Icon name=\"text-T\" size={48} />\n </ToggleButton>\n </ToggleButtonGroup>\n </FormField>\n ) : null}\n\n {allowGridSeparators ? (\n <FormField>\n <FormFieldLabel>Grid separators</FormFieldLabel>\n <div className=\"saltToggleButtonGroup vuuStateButtonGroup saltToggleButtonGroup-horizontal\">\n <ToggleButton\n selected={tableDisplayAttributes.zebraStripes ?? false}\n onChange={onChangeTableAttribute}\n value=\"zebraStripes\"\n >\n <Icon name=\"row-striping\" size={16} />\n </ToggleButton>\n <ToggleButton\n selected={tableDisplayAttributes.rowSeparators ?? false}\n onChange={onChangeTableAttribute}\n value=\"rowSeparators\"\n >\n <Icon name=\"row-lines\" size={16} />\n </ToggleButton>\n <ToggleButton\n selected={tableDisplayAttributes.columnSeparators ?? false}\n onChange={onChangeTableAttribute}\n value=\"columnSeparators\"\n >\n <Icon name=\"col-lines\" size={16} />\n </ToggleButton>\n </div>\n </FormField>\n ) : null}\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { queryClosest, useLayoutEffectSkipFirst } from '@vuu-ui/vuu-utils';
|
|
2
|
+
import { useState, useCallback } from 'react';
|
|
3
|
+
|
|
4
|
+
const useTableSettings = ({
|
|
5
|
+
onDisplayAttributeChange,
|
|
6
|
+
tableDisplayAttributes: tableDisplayAttributesProp
|
|
7
|
+
}) => {
|
|
8
|
+
const [tableDisplayAttributes, setDisplayTableAttributes] = useState(tableDisplayAttributesProp);
|
|
9
|
+
const handleChangeColumnLabels = useCallback((evt) => {
|
|
10
|
+
const button = queryClosest(evt.target, "button");
|
|
11
|
+
if (button) {
|
|
12
|
+
const value = parseInt(button.value);
|
|
13
|
+
const columnFormatHeader = value === 0 ? void 0 : value === 1 ? "capitalize" : "uppercase";
|
|
14
|
+
setDisplayTableAttributes((state) => ({
|
|
15
|
+
...state,
|
|
16
|
+
columnFormatHeader
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
}, []);
|
|
20
|
+
const handleChangeTableAttribute = useCallback(
|
|
21
|
+
(evt) => {
|
|
22
|
+
const button = queryClosest(evt.target, "button");
|
|
23
|
+
if (button) {
|
|
24
|
+
const { ariaPressed, value } = button;
|
|
25
|
+
setDisplayTableAttributes((state) => ({
|
|
26
|
+
...state,
|
|
27
|
+
[value]: ariaPressed !== "true"
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
[]
|
|
32
|
+
);
|
|
33
|
+
const handleCommitColumnWidth = useCallback((_, value) => {
|
|
34
|
+
if (typeof value === "string") {
|
|
35
|
+
const columnDefaultWidth = parseInt(value);
|
|
36
|
+
if (!isNaN(columnDefaultWidth)) {
|
|
37
|
+
setDisplayTableAttributes((state) => ({
|
|
38
|
+
...state,
|
|
39
|
+
columnDefaultWidth
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}, []);
|
|
44
|
+
useLayoutEffectSkipFirst(() => {
|
|
45
|
+
onDisplayAttributeChange?.(tableDisplayAttributes);
|
|
46
|
+
}, [onDisplayAttributeChange, tableDisplayAttributes]);
|
|
47
|
+
const columnLabelsValue = tableDisplayAttributes.columnFormatHeader === void 0 ? 0 : tableDisplayAttributes.columnFormatHeader === "capitalize" ? 1 : 2;
|
|
48
|
+
return {
|
|
49
|
+
columnLabelsValue,
|
|
50
|
+
onChangeColumnLabels: handleChangeColumnLabels,
|
|
51
|
+
onChangeTableAttribute: handleChangeTableAttribute,
|
|
52
|
+
onCommitColumnWidth: handleCommitColumnWidth,
|
|
53
|
+
tableDisplayAttributes
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export { useTableSettings };
|
|
58
|
+
//# sourceMappingURL=useTableSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTableSettings.js","sources":["../../../../packages/vuu-table-extras/src/table-settings-panel/useTableSettings.ts"],"sourcesContent":["import { TableDisplayAttributes } from \"@vuu-ui/vuu-table-types\";\nimport {\n queryClosest,\n useLayoutEffectSkipFirst,\n CommitHandler,\n} from \"@vuu-ui/vuu-utils\";\nimport { MouseEvent, SyntheticEvent, useCallback, useState } from \"react\";\nimport { TableSettingsPanelProps } from \"./TableSettingsPanel\";\n\nexport type ColumnLike = {\n name: string;\n};\n\nexport const useTableSettings = ({\n onDisplayAttributeChange,\n tableDisplayAttributes: tableDisplayAttributesProp,\n}: TableSettingsPanelProps) => {\n const [tableDisplayAttributes, setDisplayTableAttributes] =\n useState<TableDisplayAttributes>(tableDisplayAttributesProp);\n\n const handleChangeColumnLabels = useCallback((evt: SyntheticEvent) => {\n const button = queryClosest<HTMLButtonElement>(evt.target, \"button\");\n if (button) {\n const value = parseInt(button.value);\n const columnFormatHeader =\n value === 0 ? undefined : value === 1 ? \"capitalize\" : \"uppercase\";\n setDisplayTableAttributes((state) => ({\n ...state,\n columnFormatHeader,\n }));\n }\n }, []);\n\n const handleChangeTableAttribute = useCallback(\n (evt: MouseEvent<HTMLButtonElement>) => {\n const button = queryClosest<HTMLButtonElement>(evt.target, \"button\");\n if (button) {\n const { ariaPressed, value } = button;\n setDisplayTableAttributes((state) => ({\n ...state,\n [value]: ariaPressed !== \"true\",\n }));\n }\n },\n [],\n );\n\n const handleCommitColumnWidth = useCallback<CommitHandler>((_, value) => {\n if (typeof value === \"string\") {\n const columnDefaultWidth = parseInt(value);\n if (!isNaN(columnDefaultWidth)) {\n setDisplayTableAttributes((state) => ({\n ...state,\n columnDefaultWidth,\n }));\n }\n }\n }, []);\n\n useLayoutEffectSkipFirst(() => {\n onDisplayAttributeChange?.(tableDisplayAttributes);\n }, [onDisplayAttributeChange, tableDisplayAttributes]);\n\n const columnLabelsValue =\n tableDisplayAttributes.columnFormatHeader === undefined\n ? 0\n : tableDisplayAttributes.columnFormatHeader === \"capitalize\"\n ? 1\n : 2;\n\n return {\n columnLabelsValue,\n onChangeColumnLabels: handleChangeColumnLabels,\n onChangeTableAttribute: handleChangeTableAttribute,\n onCommitColumnWidth: handleCommitColumnWidth,\n tableDisplayAttributes,\n };\n};\n"],"names":[],"mappings":";;;AAaO,MAAM,mBAAmB,CAAC;AAAA,EAC/B,wBAAA;AAAA,EACA,sBAAwB,EAAA;AAC1B,CAA+B,KAAA;AAC7B,EAAA,MAAM,CAAC,sBAAA,EAAwB,yBAAyB,CAAA,GACtD,SAAiC,0BAA0B,CAAA;AAE7D,EAAM,MAAA,wBAAA,GAA2B,WAAY,CAAA,CAAC,GAAwB,KAAA;AACpE,IAAA,MAAM,MAAS,GAAA,YAAA,CAAgC,GAAI,CAAA,MAAA,EAAQ,QAAQ,CAAA;AACnE,IAAA,IAAI,MAAQ,EAAA;AACV,MAAM,MAAA,KAAA,GAAQ,QAAS,CAAA,MAAA,CAAO,KAAK,CAAA;AACnC,MAAA,MAAM,qBACJ,KAAU,KAAA,CAAA,GAAI,KAAY,CAAA,GAAA,KAAA,KAAU,IAAI,YAAe,GAAA,WAAA;AACzD,MAAA,yBAAA,CAA0B,CAAC,KAAW,MAAA;AAAA,QACpC,GAAG,KAAA;AAAA,QACH;AAAA,OACA,CAAA,CAAA;AAAA;AACJ,GACF,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,0BAA6B,GAAA,WAAA;AAAA,IACjC,CAAC,GAAuC,KAAA;AACtC,MAAA,MAAM,MAAS,GAAA,YAAA,CAAgC,GAAI,CAAA,MAAA,EAAQ,QAAQ,CAAA;AACnE,MAAA,IAAI,MAAQ,EAAA;AACV,QAAM,MAAA,EAAE,WAAa,EAAA,KAAA,EAAU,GAAA,MAAA;AAC/B,QAAA,yBAAA,CAA0B,CAAC,KAAW,MAAA;AAAA,UACpC,GAAG,KAAA;AAAA,UACH,CAAC,KAAK,GAAG,WAAgB,KAAA;AAAA,SACzB,CAAA,CAAA;AAAA;AACJ,KACF;AAAA,IACA;AAAC,GACH;AAEA,EAAA,MAAM,uBAA0B,GAAA,WAAA,CAA2B,CAAC,CAAA,EAAG,KAAU,KAAA;AACvE,IAAI,IAAA,OAAO,UAAU,QAAU,EAAA;AAC7B,MAAM,MAAA,kBAAA,GAAqB,SAAS,KAAK,CAAA;AACzC,MAAI,IAAA,CAAC,KAAM,CAAA,kBAAkB,CAAG,EAAA;AAC9B,QAAA,yBAAA,CAA0B,CAAC,KAAW,MAAA;AAAA,UACpC,GAAG,KAAA;AAAA,UACH;AAAA,SACA,CAAA,CAAA;AAAA;AACJ;AACF,GACF,EAAG,EAAE,CAAA;AAEL,EAAA,wBAAA,CAAyB,MAAM;AAC7B,IAAA,wBAAA,GAA2B,sBAAsB,CAAA;AAAA,GAChD,EAAA,CAAC,wBAA0B,EAAA,sBAAsB,CAAC,CAAA;AAErD,EAAM,MAAA,iBAAA,GACJ,uBAAuB,kBAAuB,KAAA,KAAA,CAAA,GAC1C,IACA,sBAAuB,CAAA,kBAAA,KAAuB,eAC5C,CACA,GAAA,CAAA;AAER,EAAO,OAAA;AAAA,IACL,iBAAA;AAAA,IACA,oBAAsB,EAAA,wBAAA;AAAA,IACtB,sBAAwB,EAAA,0BAAA;AAAA,IACxB,mBAAqB,EAAA,uBAAA;AAAA,IACrB;AAAA,GACF;AACF;;;;"}
|
package/package.json
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "2.0.0",
|
|
3
3
|
"author": "heswell",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"devDependencies": {
|
|
6
|
-
"@vuu-ui/vuu-filter-types": "
|
|
7
|
-
"@vuu-ui/vuu-protocol-types": "
|
|
6
|
+
"@vuu-ui/vuu-filter-types": "2.0.0",
|
|
7
|
+
"@vuu-ui/vuu-protocol-types": "2.0.0"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@vuu-ui/vuu-codemirror": "
|
|
11
|
-
"@vuu-ui/vuu-data-react": "
|
|
12
|
-
"@vuu-ui/vuu-data-types": "
|
|
13
|
-
"@vuu-ui/vuu-table-types": "
|
|
14
|
-
"@vuu-ui/vuu-popups": "
|
|
15
|
-
"@vuu-ui/vuu-table": "
|
|
16
|
-
"@vuu-ui/vuu-utils": "
|
|
17
|
-
"@vuu-ui/vuu-ui-controls": "
|
|
10
|
+
"@vuu-ui/vuu-codemirror": "2.0.0",
|
|
11
|
+
"@vuu-ui/vuu-data-react": "2.0.0",
|
|
12
|
+
"@vuu-ui/vuu-data-types": "2.0.0",
|
|
13
|
+
"@vuu-ui/vuu-table-types": "2.0.0",
|
|
14
|
+
"@vuu-ui/vuu-popups": "2.0.0",
|
|
15
|
+
"@vuu-ui/vuu-table": "2.0.0",
|
|
16
|
+
"@vuu-ui/vuu-utils": "2.0.0",
|
|
17
|
+
"@vuu-ui/vuu-ui-controls": "2.0.0",
|
|
18
18
|
"@lezer/lr": "1.4.2",
|
|
19
19
|
"@salt-ds/core": "1.54.1",
|
|
20
|
+
"@salt-ds/lab": "1.0.0-alpha.83",
|
|
20
21
|
"@salt-ds/styles": "0.2.1",
|
|
21
22
|
"@salt-ds/window": "0.1.1"
|
|
22
23
|
},
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HTMLAttributes } from "react";
|
|
2
|
+
import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
3
|
+
import { VuuColumnDataType, VuuTable } from "@vuu-ui/vuu-protocol-types";
|
|
4
|
+
import { ColumnModel } from "../column-picker/ColumnModel";
|
|
5
|
+
export interface CalculatedColumnPanelProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
+
column: ColumnDescriptor;
|
|
7
|
+
columnModel: ColumnModel;
|
|
8
|
+
onChangeColumn: (column: ColumnDescriptor) => void;
|
|
9
|
+
onChangeServerDataType?: (name: VuuColumnDataType) => void;
|
|
10
|
+
vuuTable: VuuTable;
|
|
11
|
+
}
|
|
12
|
+
export declare const CalculatedColumnPanel: ({ column: columnProp, columnModel, onChangeColumn, onChangeServerDataType: onChangeServerDataTypeProp, vuuTable, }: CalculatedColumnPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
2
|
+
import { FormEventHandler, SyntheticEvent } from "react";
|
|
3
|
+
import { CalculatedColumnPanelProps } from "./CalculatedColumnPanel";
|
|
4
|
+
export type ColumnExpressionHookProps = Pick<CalculatedColumnPanelProps, "column" | "onChangeColumn" | "onChangeServerDataType">;
|
|
5
|
+
export declare const useCalculatedColumnPanel: ({ column: columnProp, onChangeColumn, onChangeServerDataType: onChangeServerDataTypeProp, }: ColumnExpressionHookProps) => {
|
|
6
|
+
column: ColumnDescriptor;
|
|
7
|
+
onChangeExpression: (value: string) => void;
|
|
8
|
+
onChangeName: FormEventHandler;
|
|
9
|
+
onChangeServerDataType: (_e: SyntheticEvent, [serverDataType]: string[]) => void;
|
|
10
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { VuuTable } from "@vuu-ui/vuu-protocol-types";
|
|
2
|
+
import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
3
|
+
import { ColumnModel } from "../column-picker/ColumnModel";
|
|
4
|
+
export interface EditCalculatedColumnProps {
|
|
5
|
+
calculatedColumn?: ColumnDescriptor;
|
|
6
|
+
columnModel: ColumnModel;
|
|
7
|
+
onSaveColumn?: (caclulatedColumn: ColumnDescriptor) => void;
|
|
8
|
+
vuuTable?: VuuTable;
|
|
9
|
+
}
|
|
10
|
+
export declare const useEditCalculatedColumn: ({ calculatedColumn, columnModel, onSaveColumn, vuuTable, }: EditCalculatedColumnProps) => {
|
|
11
|
+
onCreateCalculatedColumn: () => void;
|
|
12
|
+
onEditCalculatedColumn: () => void;
|
|
13
|
+
};
|
|
@@ -7,4 +7,4 @@ export interface ColumnMenuProps extends HTMLAttributes<HTMLSpanElement> {
|
|
|
7
7
|
menuActionHandler?: MenuActionHandler<ColumnMenuActionType, ColumnDescriptor>;
|
|
8
8
|
menuPermissions?: ColumnMenuPermissions;
|
|
9
9
|
}
|
|
10
|
-
export declare const ColumnMenu: ({ className, column, menuActionHandler: menuActionHandlerProp, menuPermissions: { allowSort, allowGroup, allowAggregation, allowHide, allowRemove, allowPin,
|
|
10
|
+
export declare const ColumnMenu: ({ className, column, menuActionHandler: menuActionHandlerProp, menuPermissions: { allowSort, allowGroup, allowAggregation, allowHide, allowRemove, allowPin, }, }: ColumnMenuProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { VuuTable } from "@vuu-ui/vuu-protocol-types";
|
|
2
2
|
import { ColumnDescriptor, ColumnDisplayAction } from "@vuu-ui/vuu-table-types";
|
|
3
3
|
export type ColumnDisplayActionHandler = (action: ColumnDisplayAction) => void;
|
|
4
|
-
export type DisplayTableSettingsAction = {
|
|
5
|
-
type: "table-settings";
|
|
6
|
-
};
|
|
7
4
|
export type DisplayColumnSettingsAction = {
|
|
8
5
|
type: "column-settings";
|
|
9
6
|
column: ColumnDescriptor;
|
|
10
7
|
/** only for calculated columnn */
|
|
11
8
|
vuuTable?: VuuTable;
|
|
12
9
|
};
|
|
13
|
-
export type DisplaySettingsAction =
|
|
10
|
+
export type DisplaySettingsAction = DisplayColumnSettingsAction;
|
|
14
11
|
export type TableSettingsActionHandler = (action: DisplaySettingsAction) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Menu, MenuItem, MenuItemProps, MenuProps } from "@salt-ds/core";
|
|
2
2
|
import { DataSource } from "@vuu-ui/vuu-data-types";
|
|
3
|
-
import { ColumnDescriptor
|
|
3
|
+
import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
4
4
|
import { MouseEventHandler, ReactElement } from "react";
|
|
5
5
|
type MenuElement = ReactElement<MenuProps, typeof Menu>;
|
|
6
6
|
type MenuItemElement = ReactElement<MenuItemProps, typeof MenuItem>;
|
|
@@ -8,14 +8,13 @@ type MenuElements = Array<MenuElement | MenuItemElement>;
|
|
|
8
8
|
export type MenuItemClickHandler = MouseEventHandler<HTMLDivElement>;
|
|
9
9
|
export type DataSourceColumnMenuActionType = "agg-count" | "agg-distinct" | "agg-sum" | "agg-avg" | "agg-high" | "agg-low" | "sort-asc" | "sort-dsc" | "sort-add-asc" | "sort-add-dsc" | "remove-sort" | "group-column" | "remove-group" | "add-to-group" | "remove-from-group" | "remove-column";
|
|
10
10
|
export type ColumnDisplayColumnMenuActionType = "pin-column-left" | "pin-column-right" | "unpin-column" | "hide-column";
|
|
11
|
-
export type
|
|
12
|
-
export type ColumnMenuActionType = DataSourceColumnMenuActionType | ColumnDisplayColumnMenuActionType |
|
|
11
|
+
export type ColumnSettingsActionType = "column-settings";
|
|
12
|
+
export type ColumnMenuActionType = DataSourceColumnMenuActionType | ColumnDisplayColumnMenuActionType | ColumnSettingsActionType;
|
|
13
13
|
export declare const isColumnMenuActionType: (value?: string) => value is ColumnMenuActionType;
|
|
14
14
|
export declare const getColumnMenuActionType: (target: EventTarget | HTMLElement) => ColumnMenuActionType;
|
|
15
15
|
export declare function buildSortMenu(column: ColumnDescriptor, dataSource: DataSource, menuActionClickHandler: MenuItemClickHandler, isAllowed?: boolean): MenuElement | null;
|
|
16
16
|
export declare function buildGroupMenu(column: ColumnDescriptor, dataSource: DataSource, menuActionClickHandler: MenuItemClickHandler, isAllowed?: boolean): MenuElement | null;
|
|
17
17
|
export declare const buildVisibilityMenuItems: (column: ColumnDescriptor, menuActionClickHandler: MenuItemClickHandler, allowHide?: boolean, allowRemove?: boolean) => MenuElements | null;
|
|
18
18
|
export declare const buildPinMenuItems: (column: ColumnDescriptor, menuActionClickHandler: MenuItemClickHandler, isAllowed?: boolean) => MenuElements;
|
|
19
|
-
export declare const buildSettingsMenuItems: (_: ColumnDescriptor, menuActionClickHandler: MenuItemClickHandler, allowColumnSettings?: boolean, allowTableSettings?: boolean | TableSettingsPermissions) => MenuElements | null;
|
|
20
19
|
export declare function buildAggregationMenuItems(column: ColumnDescriptor, dataSource: DataSource, menuActionClickHandler: MenuItemClickHandler, isAllowed?: boolean): MenuElements | null;
|
|
21
20
|
export {};
|
|
@@ -2,12 +2,15 @@ import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
|
2
2
|
import { EventEmitter, ValueOf } from "@vuu-ui/vuu-utils";
|
|
3
3
|
export declare const ColumnChangeSource: {
|
|
4
4
|
readonly ColumnPicker: "column-picker";
|
|
5
|
+
readonly ColumnSettings: "column-settings";
|
|
5
6
|
readonly Table: "table";
|
|
6
7
|
};
|
|
7
8
|
export type ColumnChangeSource = ValueOf<typeof ColumnChangeSource>;
|
|
8
9
|
export declare const SelectedColumnChangeType: {
|
|
10
|
+
readonly CalculatedColumnAdded: "calculated-column-added";
|
|
9
11
|
readonly ColumnAdded: "column-added";
|
|
10
12
|
readonly ColumnRemoved: "column-removed";
|
|
13
|
+
readonly ColumnUpdated: "column-updated";
|
|
11
14
|
readonly ColumnsReordered: "columns-reordered";
|
|
12
15
|
};
|
|
13
16
|
export type SelectedColumnChangeType = ValueOf<typeof SelectedColumnChangeType>;
|
|
@@ -15,6 +18,14 @@ export interface SelectedColumnChangeColumnAdded {
|
|
|
15
18
|
type: Extract<SelectedColumnChangeType, "column-added">;
|
|
16
19
|
column: ColumnDescriptor;
|
|
17
20
|
}
|
|
21
|
+
export interface SelectedColumnChangeCalculatedColumnAdded {
|
|
22
|
+
type: Extract<SelectedColumnChangeType, "calculated-column-added">;
|
|
23
|
+
column: ColumnDescriptor;
|
|
24
|
+
}
|
|
25
|
+
export interface SelectedColumnChangeColumnUpdated {
|
|
26
|
+
type: Extract<SelectedColumnChangeType, "column-updated">;
|
|
27
|
+
column: ColumnDescriptor;
|
|
28
|
+
}
|
|
18
29
|
export interface SelectedColumnChangeColumnRemoved {
|
|
19
30
|
type: Extract<SelectedColumnChangeType, "column-removed">;
|
|
20
31
|
column: ColumnDescriptor;
|
|
@@ -22,9 +33,10 @@ export interface SelectedColumnChangeColumnRemoved {
|
|
|
22
33
|
export interface SelectedColumnChangeColumnsReordered {
|
|
23
34
|
type: Extract<SelectedColumnChangeType, "columns-reordered">;
|
|
24
35
|
}
|
|
25
|
-
export type SelectedColumnChangeDescriptor = SelectedColumnChangeColumnAdded | SelectedColumnChangeColumnRemoved | SelectedColumnChangeColumnsReordered;
|
|
36
|
+
export type SelectedColumnChangeDescriptor = SelectedColumnChangeCalculatedColumnAdded | SelectedColumnChangeColumnAdded | SelectedColumnChangeColumnRemoved | SelectedColumnChangeColumnUpdated | SelectedColumnChangeColumnsReordered;
|
|
26
37
|
export declare const isColumnAdded: (change?: SelectedColumnChangeDescriptor) => change is SelectedColumnChangeColumnAdded;
|
|
27
38
|
export declare const isColumnRemoved: (change?: SelectedColumnChangeDescriptor) => change is SelectedColumnChangeColumnRemoved;
|
|
39
|
+
export declare const isColumnUpdated: (change?: SelectedColumnChangeDescriptor) => change is SelectedColumnChangeColumnUpdated;
|
|
28
40
|
export declare const isColumnsReordered: (change?: SelectedColumnChangeDescriptor) => change is SelectedColumnChangeColumnsReordered;
|
|
29
41
|
export type ColumnsChangeHandler = (columns: readonly ColumnDescriptor[], changeSource: ColumnChangeSource, changeDescriptor?: SelectedColumnChangeDescriptor) => void;
|
|
30
42
|
export type ColumnEvents = {
|
|
@@ -36,7 +48,7 @@ export declare class ColumnModel extends EventEmitter<ColumnEvents> {
|
|
|
36
48
|
/**
|
|
37
49
|
* All available columns, including selected columns.
|
|
38
50
|
*/
|
|
39
|
-
|
|
51
|
+
allColumns: readonly ColumnDescriptor[];
|
|
40
52
|
constructor(
|
|
41
53
|
/**
|
|
42
54
|
* All available columns, including selected columns.
|
|
@@ -45,14 +57,25 @@ export declare class ColumnModel extends EventEmitter<ColumnEvents> {
|
|
|
45
57
|
/**
|
|
46
58
|
* Columns already selected and rendered in Table.
|
|
47
59
|
*/
|
|
48
|
-
selectedColumns: ColumnDescriptor[]);
|
|
60
|
+
selectedColumns: readonly ColumnDescriptor[]);
|
|
49
61
|
get availableColumns(): ColumnDescriptor[];
|
|
50
62
|
set searchPattern(pattern: string);
|
|
51
63
|
get searchPattern(): string;
|
|
52
64
|
get selectedColumns(): readonly ColumnDescriptor[];
|
|
53
65
|
setSelectedColumns(selectedColumns: ColumnDescriptor[], source: ColumnChangeSource, changeDescriptor?: SelectedColumnChangeDescriptor): void;
|
|
66
|
+
getColumn(name: string): ColumnDescriptor;
|
|
54
67
|
addItemToSelectedColumns(name: string, source: ColumnChangeSource): void;
|
|
55
68
|
removeItemFromSelectedColumns(name: string, source: ColumnChangeSource): void;
|
|
56
69
|
reorderSelectedColumns(orderedColumnNames: string[], source: ColumnChangeSource): void;
|
|
70
|
+
updateColumn(currentColumn: ColumnDescriptor, newColumn: ColumnDescriptor): void;
|
|
71
|
+
updateColumn(column: ColumnDescriptor): void;
|
|
72
|
+
/**
|
|
73
|
+
* Used when adding a calculated column
|
|
74
|
+
*
|
|
75
|
+
* @param column
|
|
76
|
+
*
|
|
77
|
+
* @param addToSelectedColumns
|
|
78
|
+
*/
|
|
79
|
+
addColumn(column: ColumnDescriptor, addToSelectedColumns?: boolean): void;
|
|
57
80
|
private notifyListeners;
|
|
58
81
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
2
|
+
import { HTMLAttributes, MouseEventHandler } from "react";
|
|
3
|
+
import { ListBoxProps } from "@salt-ds/core";
|
|
4
|
+
import { ColumnPickerHookProps } from "./useColumnPicker";
|
|
3
5
|
export declare const classBaseListItem = "vuuColumnPickerListItem";
|
|
4
|
-
export interface ColumnPickerProps extends
|
|
6
|
+
export interface ColumnPickerProps extends ColumnPickerHookProps, Pick<ListBoxProps<ColumnDescriptor>, "selected" | "onSelectionChange">, HTMLAttributes<HTMLDivElement> {
|
|
7
|
+
allowCreateCalculatedColumn?: boolean;
|
|
8
|
+
onClickCreateCalculatedColumn?: MouseEventHandler<HTMLButtonElement>;
|
|
5
9
|
}
|
|
6
10
|
export declare const ColumnPicker: import("react").ForwardRefExoticComponent<ColumnPickerProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IconButtonProps } from "@vuu-ui/vuu-ui-controls";
|
|
2
|
+
import { ColumnPickerHookProps } from "./useColumnPicker";
|
|
3
|
+
export interface ColumnPickerActionProps extends Partial<IconButtonProps>, ColumnPickerHookProps {
|
|
4
|
+
}
|
|
5
|
+
export declare const ColumnPickerAction: ({ appearance, columnModel, icon, sentiment, ...IconButtonProps }: ColumnPickerActionProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
1
|
+
import { ColumnDescriptor, TableSelectionModel } from "@vuu-ui/vuu-table-types";
|
|
2
2
|
import { FormEventHandler, MouseEventHandler } from "react";
|
|
3
3
|
import { ColumnModel, SelectedColumnChangeType } from "./ColumnModel";
|
|
4
|
-
export type
|
|
4
|
+
export type ColumnSelectionModel = Extract<TableSelectionModel, "none" | "single">;
|
|
5
5
|
export type SelectedColumnsChangeHandler = (columns: ColumnDescriptor[], changeType: SelectedColumnChangeType) => void;
|
|
6
|
-
export interface
|
|
6
|
+
export interface ColumnPickerHookProps {
|
|
7
7
|
columnModel: ColumnModel;
|
|
8
8
|
}
|
|
9
|
-
export declare const useColumnPicker: ({ columnModel: model, }:
|
|
9
|
+
export declare const useColumnPicker: ({ columnModel: model, }: ColumnPickerHookProps) => {
|
|
10
10
|
availableColumns: ColumnDescriptor[];
|
|
11
11
|
onAddItemToSelectedList: MouseEventHandler<HTMLButtonElement>;
|
|
12
12
|
onRemoveItemFromSelectedList: MouseEventHandler<HTMLButtonElement>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ColumnModel } from "./ColumnModel";
|
|
2
|
+
export interface TableColumnPickerHookProps {
|
|
3
|
+
columnModel: ColumnModel;
|
|
4
|
+
}
|
|
5
|
+
export declare const useTableColumnPicker: ({ columnModel, }: TableColumnPickerHookProps) => {
|
|
6
|
+
showColumnPicker: (title?: string) => void;
|
|
7
|
+
};
|