@vuu-ui/vuu-table-extras 3.3.8 → 3.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +12 -12
- package/src/csv-upload/CsvUpload.js +9 -6
- package/types/csv-upload/data-upload-preview/useDataUploadPreview.d.ts +1 -1
- package/types/src/calculated-column/CalculatedColumnPanel.d.ts +12 -0
- package/types/src/calculated-column/useCalculatedColumnPanel.d.ts +10 -0
- package/types/src/calculated-column/useEditCalculatedColumn.d.ts +13 -0
- package/types/src/cell-edit-validators/CaseValidator.d.ts +2 -0
- package/types/src/cell-edit-validators/PatternValidator.d.ts +2 -0
- package/types/src/cell-edit-validators/index.d.ts +2 -0
- package/types/src/cell-renderers/background-cell/BackgroundCell.d.ts +2 -0
- package/types/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.d.ts +2 -0
- package/types/src/cell-renderers/background-cell/index.d.ts +2 -0
- package/types/src/cell-renderers/background-cell/useDirection.d.ts +3 -0
- package/types/src/cell-renderers/button-cell/IconButtonCell.d.ts +6 -0
- package/types/src/cell-renderers/dropdown-cell/DropdownCell.d.ts +2 -0
- package/types/src/cell-renderers/dropdown-cell/index.d.ts +1 -0
- package/types/src/cell-renderers/index.d.ts +6 -0
- package/types/src/cell-renderers/lookup-cell/LookupCell.d.ts +2 -0
- package/types/src/cell-renderers/lookup-cell/index.d.ts +1 -0
- package/types/src/cell-renderers/pct-progress-cell/PctProgressCell.d.ts +2 -0
- package/types/src/cell-renderers/pct-progress-cell/index.d.ts +1 -0
- package/types/src/cell-renderers/progress-cell/ProgressCell.d.ts +1 -0
- package/types/src/cell-renderers/progress-cell/index.d.ts +1 -0
- package/types/src/column-expression-input/ColumnExpressionInput.d.ts +10 -0
- package/types/src/column-expression-input/column-function-descriptors.d.ts +15 -0
- package/types/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.d.ts +2 -0
- package/types/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.d.ts +57 -0
- package/types/src/column-expression-input/column-language-parser/column-expression-parse-utils.d.ts +5 -0
- package/types/src/column-expression-input/column-language-parser/generated/column-parser.d.ts +2 -0
- package/types/src/column-expression-input/column-language-parser/generated/column-parser.terms.d.ts +1 -0
- package/types/src/column-expression-input/column-language-parser/index.d.ts +3 -0
- package/types/src/column-expression-input/column-language-parser/test.d.mts +1 -0
- package/types/src/column-expression-input/functionDocInfo.d.ts +2 -0
- package/types/src/column-expression-input/highlighting.d.ts +1 -0
- package/types/src/column-expression-input/index.d.ts +4 -0
- package/types/src/column-expression-input/theme.d.ts +1 -0
- package/types/src/column-expression-input/useColumnAutoComplete.d.ts +6 -0
- package/types/src/column-expression-input/useColumnExpressionEditor.d.ts +25 -0
- package/types/src/column-expression-input/useColumnExpressionSuggestionProvider.d.ts +8 -0
- package/types/src/column-formatting-settings/BaseNumericFormattingSettings.d.ts +2 -0
- package/types/src/column-formatting-settings/ColumnFormattingPanel.d.ts +9 -0
- package/types/src/column-formatting-settings/DateTimeFormattingSettings.d.ts +3 -0
- package/types/src/column-formatting-settings/LongTypeFormattingSettings.d.ts +3 -0
- package/types/src/column-formatting-settings/index.d.ts +3 -0
- package/types/src/column-menu/ColumnMenu.d.ts +10 -0
- package/types/src/column-menu/column-action-types.d.ts +11 -0
- package/types/src/column-menu/column-menu-utils.d.ts +19 -0
- package/types/src/column-menu/useColumnActions.d.ts +16 -0
- package/types/src/column-picker/ColumnModel.d.ts +81 -0
- package/types/src/column-picker/ColumnPicker.d.ts +10 -0
- package/types/src/column-picker/ColumnPickerAction.d.ts +5 -0
- package/types/src/column-picker/useColumnPicker.d.ts +16 -0
- package/types/src/column-picker/useTableColumnPicker.d.ts +7 -0
- package/types/src/column-picker/useTableColumnPickerDeprecated.d.ts +14 -0
- package/types/src/column-settings-panel/ColumnNameLabel.d.ts +7 -0
- package/types/src/column-settings-panel/ColumnSettingsPanel.d.ts +5 -0
- package/types/src/column-settings-panel/useColumnSettings.d.ts +30 -0
- package/types/src/csv-export/export-utils.d.ts +42 -0
- package/types/src/csv-export/index.d.ts +2 -0
- package/types/src/csv-export/useCsvExport.d.ts +14 -0
- package/types/src/csv-upload/CsvUpload.d.ts +68 -0
- package/types/src/csv-upload/data-upload-preview/DataUploadPreview.d.ts +10 -0
- package/types/src/csv-upload/data-upload-preview/useDataUploadPreview.d.ts +17 -0
- package/types/src/csv-upload/index.d.ts +7 -0
- package/types/src/csv-upload/parse/csv-constants.d.ts +3 -0
- package/types/src/csv-upload/parse/csv-errors.d.ts +46 -0
- package/types/src/csv-upload/parse/csv-parse.d.ts +11 -0
- package/types/src/csv-upload/parse/csv-schema-validation.d.ts +16 -0
- package/types/src/csv-upload/parse/csv-upload-utils.d.ts +21 -0
- package/types/src/csv-upload/parse/index.d.ts +5 -0
- package/types/src/csv-upload/useCsvUpload.d.ts +42 -0
- package/types/src/datasource-stats/DatasourceStats.d.ts +17 -0
- package/types/src/datasource-stats/useDatasourceStats.d.ts +15 -0
- package/types/src/freeze-control/FreezeControl.d.ts +15 -0
- package/types/src/freeze-control/FrozenBanner.d.ts +6 -0
- package/types/src/freeze-control/freezeControlBadge.d.ts +11 -0
- package/types/src/freeze-control/useFreezeControl.d.ts +10 -0
- package/types/src/index.d.ts +26 -0
- package/types/src/inline-add-row/InlineAddRow.d.ts +3 -0
- package/types/src/inline-add-row/index.d.ts +2 -0
- package/types/src/inline-add-row/useInlineAddRow.d.ts +59 -0
- package/types/src/tabbed-table-config-panel/TabbedTableConfigPanel.d.ts +17 -0
- package/types/src/tabbed-table-config-panel/TabbedTableSettingsAction.d.ts +7 -0
- package/types/src/tabbed-table-config-panel/useTabbedTableConfigPanel.d.ts +13 -0
- package/types/src/table-footer/TableFooter.d.ts +10 -0
- package/types/src/table-provider/TableProvider.d.ts +18 -0
- package/types/src/table-settings-panel/TableSettingsPanel.d.ts +22 -0
- package/types/src/table-settings-panel/useTableSettings.d.ts +14 -0
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "3.3.
|
|
2
|
+
"version": "3.3.10",
|
|
3
3
|
"author": "heswell",
|
|
4
4
|
"main": "./src/index.js",
|
|
5
5
|
"license": "Apache-2.0",
|
|
@@ -11,19 +11,19 @@
|
|
|
11
11
|
"lezer-generate:column": "lezer-generator --output ./src/column-expression-input/column-language-parser/generated/column-parser.js ./src/column-expression-input/column-language-parser/grammar/column.grammar"
|
|
12
12
|
},
|
|
13
13
|
"devDependencies": {
|
|
14
|
-
"@vuu-ui/vuu-filter-types": "3.3.
|
|
15
|
-
"@vuu-ui/vuu-protocol-types": "3.3.
|
|
14
|
+
"@vuu-ui/vuu-filter-types": "3.3.10",
|
|
15
|
+
"@vuu-ui/vuu-protocol-types": "3.3.10"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@vuu-ui/vuu-codemirror": "3.3.
|
|
19
|
-
"@vuu-ui/vuu-data-editing": "3.3.
|
|
20
|
-
"@vuu-ui/vuu-data-react": "3.3.
|
|
21
|
-
"@vuu-ui/vuu-data-types": "3.3.
|
|
22
|
-
"@vuu-ui/vuu-table-types": "3.3.
|
|
23
|
-
"@vuu-ui/vuu-popups": "3.3.
|
|
24
|
-
"@vuu-ui/vuu-table": "3.3.
|
|
25
|
-
"@vuu-ui/vuu-utils": "3.3.
|
|
26
|
-
"@vuu-ui/vuu-ui-controls": "3.3.
|
|
18
|
+
"@vuu-ui/vuu-codemirror": "3.3.10",
|
|
19
|
+
"@vuu-ui/vuu-data-editing": "3.3.10",
|
|
20
|
+
"@vuu-ui/vuu-data-react": "3.3.10",
|
|
21
|
+
"@vuu-ui/vuu-data-types": "3.3.10",
|
|
22
|
+
"@vuu-ui/vuu-table-types": "3.3.10",
|
|
23
|
+
"@vuu-ui/vuu-popups": "3.3.10",
|
|
24
|
+
"@vuu-ui/vuu-table": "3.3.10",
|
|
25
|
+
"@vuu-ui/vuu-utils": "3.3.10",
|
|
26
|
+
"@vuu-ui/vuu-ui-controls": "3.3.10",
|
|
27
27
|
"@lezer/lr": "1.4.2",
|
|
28
28
|
"@salt-ds/core": "1.54.1",
|
|
29
29
|
"@salt-ds/lab": "1.0.0-alpha.83",
|
|
@@ -18,6 +18,9 @@ const CsvUpload_CsvUpload = (props)=>{
|
|
|
18
18
|
window: targetWindow
|
|
19
19
|
});
|
|
20
20
|
const { canImport, cancelImport, isProcessingFile, isImporting, importData, onDrop, onTriggerChange, schema, validation, error } = useCsvUpload(props);
|
|
21
|
+
const fileErrors = validation?.errors.filter((e)=>e.column in validation.errorMap.fileErrors) ?? [];
|
|
22
|
+
const hasErrors = !!error || validation && validation.errors.length > 0;
|
|
23
|
+
const status = hasErrors ? "error" : validation ? "success" : void 0;
|
|
21
24
|
const handleCancel = useCallback(async ()=>{
|
|
22
25
|
await cancelImport();
|
|
23
26
|
if (!isControlledOpen) setInternalOpen(false);
|
|
@@ -40,7 +43,7 @@ const CsvUpload_CsvUpload = (props)=>{
|
|
|
40
43
|
className: `${classBase}-dropZone`,
|
|
41
44
|
disabled: void 0 === schema || isProcessingFile || isImporting,
|
|
42
45
|
onDrop: onDrop,
|
|
43
|
-
status:
|
|
46
|
+
status: status,
|
|
44
47
|
children: [
|
|
45
48
|
/*#__PURE__*/ jsx(FileDropZoneIcon, {}),
|
|
46
49
|
validation && validation.errors.length > 0 ? /*#__PURE__*/ jsxs(Fragment, {
|
|
@@ -48,9 +51,9 @@ const CsvUpload_CsvUpload = (props)=>{
|
|
|
48
51
|
/*#__PURE__*/ jsx("div", {
|
|
49
52
|
children: "Your file contains errors"
|
|
50
53
|
}),
|
|
51
|
-
/*#__PURE__*/ jsx("ul", {
|
|
54
|
+
fileErrors.length > 0 && /*#__PURE__*/ jsx("ul", {
|
|
52
55
|
className: `${classBase}-errorList`,
|
|
53
|
-
children:
|
|
56
|
+
children: fileErrors.map((error, i)=>/*#__PURE__*/ jsx("li", {
|
|
54
57
|
className: `${classBase}-errorItem`,
|
|
55
58
|
children: error.message
|
|
56
59
|
}, `${error.column}-${error.message}-${i}`))
|
|
@@ -66,7 +69,8 @@ const CsvUpload_CsvUpload = (props)=>{
|
|
|
66
69
|
accept: ".csv,text/csv",
|
|
67
70
|
onChange: onTriggerChange,
|
|
68
71
|
children: "BROWSE FILES"
|
|
69
|
-
})
|
|
72
|
+
}),
|
|
73
|
+
children
|
|
70
74
|
]
|
|
71
75
|
}),
|
|
72
76
|
error && (renderError ? renderError(error) : /*#__PURE__*/ jsxs("div", {
|
|
@@ -81,8 +85,7 @@ const CsvUpload_CsvUpload = (props)=>{
|
|
|
81
85
|
children: error.errors.importError?.message || error.errors.schemaError?.message || error.errors.validationError?.message || "An unexpected error occurred during import."
|
|
82
86
|
})
|
|
83
87
|
]
|
|
84
|
-
}))
|
|
85
|
-
children
|
|
88
|
+
}))
|
|
86
89
|
]
|
|
87
90
|
});
|
|
88
91
|
const actions = /*#__PURE__*/ jsxs(DialogActions, {
|
|
@@ -11,7 +11,7 @@ export declare const useDataUploadPreview: ({ dataSource, editSession, onClose,
|
|
|
11
11
|
canSave: boolean;
|
|
12
12
|
hasSelection: boolean;
|
|
13
13
|
onCancel: () => Promise<void>;
|
|
14
|
-
onDelete: () => Promise<
|
|
14
|
+
onDelete: () => Promise<import("@vuu-ui/vuu-protocol-types").RpcResult>;
|
|
15
15
|
onSave: (force?: boolean) => Promise<void>;
|
|
16
16
|
sessionError: string | undefined;
|
|
17
17
|
};
|
|
@@ -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.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
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { TableCellRendererProps } from "@vuu-ui/vuu-table-types";
|
|
2
|
+
/**
|
|
3
|
+
* To assign an icon to the cell, give the columndescriptor
|
|
4
|
+
* a className. In css, assign an icon variable to --vuu-svg-icon.
|
|
5
|
+
*/
|
|
6
|
+
export declare const IconButtonCell: ({ column, dataRow }: TableCellRendererProps) => import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./DropdownCell";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./LookupCell";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./PctProgressCell";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./ProgressCell";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { HTMLAttributes } from "react";
|
|
2
|
+
import { ColumnDefinitionExpression } from "./column-language-parser";
|
|
3
|
+
import { ExpressionSuggestionConsumer } from "./useColumnExpressionEditor";
|
|
4
|
+
export type ColumnExpressionSubmitHandler = (source: string, expression: ColumnDefinitionExpression | undefined) => void;
|
|
5
|
+
export interface ColumnExpressionInputProps extends ExpressionSuggestionConsumer, Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
|
|
6
|
+
onChange?: (source: string) => void;
|
|
7
|
+
onSubmitExpression?: ColumnExpressionSubmitHandler;
|
|
8
|
+
source?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const ColumnExpressionInput: import("react").MemoExoticComponent<({ onChange, onSubmitExpression, source, suggestionProvider, }: ColumnExpressionInputProps) => import("react").JSX.Element>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type ColumnFunctionDescriptor = {
|
|
2
|
+
accepts: "string" | "number" | "boolean" | "any" | Array<"string" | "number" | "boolean">;
|
|
3
|
+
description: string;
|
|
4
|
+
example: {
|
|
5
|
+
expression: string;
|
|
6
|
+
result: string;
|
|
7
|
+
};
|
|
8
|
+
name: string;
|
|
9
|
+
params: {
|
|
10
|
+
count?: number;
|
|
11
|
+
description: string;
|
|
12
|
+
};
|
|
13
|
+
type: "string" | "number" | "boolean" | "variable";
|
|
14
|
+
};
|
|
15
|
+
export declare const columnFunctionDescriptors: ColumnFunctionDescriptor[];
|
package/types/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.d.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { Tree } from "@vuu-ui/vuu-codemirror";
|
|
2
|
+
type expressionType = "arithmeticExpression" | "booleanCondition" | "booleanLiteralExpression" | "callExpression" | "colExpression" | "conditionalExpression" | "numericLiteralExpression" | "relationalExpression" | "stringLiteralExpression" | "unknown";
|
|
3
|
+
type arithmeticOp = "*" | "/" | "+" | "-" | "unknown";
|
|
4
|
+
type booleanOp = "and" | "or";
|
|
5
|
+
type relationalOp = "=" | "!=" | ">" | ">=" | "<" | "<=" | "unknown";
|
|
6
|
+
export interface Expression {
|
|
7
|
+
type: expressionType;
|
|
8
|
+
expressions?: Expression[];
|
|
9
|
+
toJSON?: () => unknown;
|
|
10
|
+
value?: string | number | boolean;
|
|
11
|
+
}
|
|
12
|
+
interface BooleanLiteralExpression {
|
|
13
|
+
type: "booleanLiteralExpression";
|
|
14
|
+
value: boolean;
|
|
15
|
+
}
|
|
16
|
+
interface NumericLiteralExpression {
|
|
17
|
+
type: "numericLiteralExpression";
|
|
18
|
+
value: number;
|
|
19
|
+
}
|
|
20
|
+
interface StringLiteralExpression {
|
|
21
|
+
type: "stringLiteralExpression";
|
|
22
|
+
value: string;
|
|
23
|
+
}
|
|
24
|
+
interface ArithmeticExpression extends Expression {
|
|
25
|
+
expressions: [Expression, Expression];
|
|
26
|
+
op: arithmeticOp;
|
|
27
|
+
type: "arithmeticExpression";
|
|
28
|
+
}
|
|
29
|
+
interface BooleanCondition extends Expression {
|
|
30
|
+
expressions: Expression[];
|
|
31
|
+
op: booleanOp;
|
|
32
|
+
type: "booleanCondition";
|
|
33
|
+
}
|
|
34
|
+
interface RelationalExpression extends Expression {
|
|
35
|
+
expressions: Expression[];
|
|
36
|
+
op: relationalOp;
|
|
37
|
+
type: "relationalExpression";
|
|
38
|
+
}
|
|
39
|
+
interface ColExpression extends Expression {
|
|
40
|
+
column?: string;
|
|
41
|
+
type: "colExpression";
|
|
42
|
+
}
|
|
43
|
+
interface CallExpression extends Expression {
|
|
44
|
+
arguments: Expression[];
|
|
45
|
+
functionName?: string;
|
|
46
|
+
type: "callExpression";
|
|
47
|
+
}
|
|
48
|
+
type ConditionExpression = RelationalExpression | BooleanCondition;
|
|
49
|
+
interface ConditionalExpression extends Expression {
|
|
50
|
+
type: "conditionalExpression";
|
|
51
|
+
condition: ConditionExpression;
|
|
52
|
+
truthyExpression: Expression;
|
|
53
|
+
falsyExpression: Expression;
|
|
54
|
+
}
|
|
55
|
+
export type ColumnDefinitionExpression = ArithmeticExpression | BooleanLiteralExpression | CallExpression | ColExpression | ConditionalExpression | NumericLiteralExpression | StringLiteralExpression;
|
|
56
|
+
export declare const walkTree: (tree: Tree, source: string) => ColumnDefinitionExpression;
|
|
57
|
+
export {};
|
package/types/src/column-expression-input/column-language-parser/column-expression-parse-utils.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SyntaxNode } from "@vuu-ui/vuu-codemirror";
|
|
2
|
+
export declare const ColumnNamedTerms: readonly string[];
|
|
3
|
+
export declare const isCompleteExpression: (src: string) => boolean;
|
|
4
|
+
export declare const lastNamedChild: (node: SyntaxNode) => SyntaxNode | null;
|
|
5
|
+
export declare const isCompleteRelationalExpression: (node?: SyntaxNode) => boolean;
|
package/types/src/column-expression-input/column-language-parser/generated/column-parser.terms.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ColumnDefinitionExpression = 1, Column = 2, Number = 3, String = 4, True = 5, False = 6, ParenthesizedExpression = 7, OpenBrace = 8, CloseBrace = 9, ArithmeticExpression = 10, Divide = 11, Times = 12, Plus = 13, Minus = 14, ConditionalExpression = 15, If = 16, RelationalExpression = 17, RelationalOperator = 18, AndCondition = 19, OrCondition = 20, Comma = 21, CallExpression = 22, Function = 23, ArgList = 24;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const walkTree: (tree: any, source: any) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const vuuHighlighting: import("@codemirror/state").Extension;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const vuuTheme: import("@codemirror/state").Extension;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type CompletionSource } from "@vuu-ui/vuu-codemirror";
|
|
2
|
+
import { type RefObject } from "react";
|
|
3
|
+
import type { IExpressionSuggestionProvider } from "./useColumnExpressionEditor";
|
|
4
|
+
export type ApplyCompletion = (mode?: "add" | "replace") => void;
|
|
5
|
+
export type Operator = "";
|
|
6
|
+
export declare const useColumnAutoComplete: (suggestionProvider: IExpressionSuggestionProvider, onSubmit: RefObject<ApplyCompletion>) => CompletionSource;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Completion } from "@vuu-ui/vuu-codemirror";
|
|
2
|
+
import { FocusEventHandler } from "react";
|
|
3
|
+
import { ColumnExpressionInputProps } from "./ColumnExpressionInput";
|
|
4
|
+
export type ColumnExpressionOperator = "Times" | "Divide" | "Minus" | "Plus";
|
|
5
|
+
export type ColumnExpressionSuggestionType = "column" | "columnValue" | "expression" | "condition-operator" | "operator" | "relational-operator";
|
|
6
|
+
export type ColumnExpressionSuggestionOptions = {
|
|
7
|
+
columnName?: string;
|
|
8
|
+
functionName?: string;
|
|
9
|
+
operator?: ColumnExpressionOperator;
|
|
10
|
+
prefix?: string;
|
|
11
|
+
startsWith?: string;
|
|
12
|
+
selection?: string[];
|
|
13
|
+
};
|
|
14
|
+
export interface IExpressionSuggestionProvider {
|
|
15
|
+
getSuggestions: (valueType: ColumnExpressionSuggestionType, options?: ColumnExpressionSuggestionOptions) => Promise<Completion[]>;
|
|
16
|
+
isPartialMatch: (valueType: ColumnExpressionSuggestionType, columnName?: string, text?: string | undefined) => Promise<boolean>;
|
|
17
|
+
}
|
|
18
|
+
export interface ExpressionSuggestionConsumer {
|
|
19
|
+
suggestionProvider: IExpressionSuggestionProvider;
|
|
20
|
+
}
|
|
21
|
+
export declare const useColumnExpressionEditor: ({ onChange, onSubmitExpression, source, suggestionProvider, }: ColumnExpressionInputProps) => {
|
|
22
|
+
editorRef: import("react").RefObject<HTMLDivElement | null>;
|
|
23
|
+
clearInput: () => void;
|
|
24
|
+
onBlur: FocusEventHandler;
|
|
25
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
2
|
+
import { VuuTable } from "@vuu-ui/vuu-protocol-types";
|
|
3
|
+
import { IExpressionSuggestionProvider } from "./useColumnExpressionEditor";
|
|
4
|
+
export interface SuggestionProviderHookProps {
|
|
5
|
+
columns: readonly ColumnDescriptor[];
|
|
6
|
+
table: VuuTable;
|
|
7
|
+
}
|
|
8
|
+
export declare const useColumnExpressionSuggestionProvider: ({ columns, table, }: SuggestionProviderHookProps) => IExpressionSuggestionProvider;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ColumnDescriptor, ColumnTypeRendering, FormattingSettingsProps } from "@vuu-ui/vuu-table-types";
|
|
2
|
+
import { CellRendererDescriptor } from "@vuu-ui/vuu-utils";
|
|
3
|
+
import { HTMLAttributes } from "react";
|
|
4
|
+
export interface ColumnFormattingPanelProps extends HTMLAttributes<HTMLDivElement>, FormattingSettingsProps {
|
|
5
|
+
availableRenderers: CellRendererDescriptor[];
|
|
6
|
+
column: ColumnDescriptor;
|
|
7
|
+
onChangeRendering: (renderProps: ColumnTypeRendering) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const ColumnFormattingPanel: ({ availableRenderers, className, column, onChangeFormatting, onChangeColumnType, onChangeRendering, ...htmlAttributes }: ColumnFormattingPanelProps) => import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MenuActionHandler } from "@vuu-ui/vuu-context-menu";
|
|
2
|
+
import { ColumnDescriptor, ColumnMenuPermissions } from "@vuu-ui/vuu-table-types";
|
|
3
|
+
import { HTMLAttributes } from "react";
|
|
4
|
+
import { ColumnMenuActionType } from "./column-menu-utils";
|
|
5
|
+
export interface ColumnMenuProps extends HTMLAttributes<HTMLSpanElement> {
|
|
6
|
+
column: ColumnDescriptor;
|
|
7
|
+
menuActionHandler?: MenuActionHandler<ColumnMenuActionType, ColumnDescriptor>;
|
|
8
|
+
menuPermissions?: ColumnMenuPermissions;
|
|
9
|
+
}
|
|
10
|
+
export declare const ColumnMenu: ({ className, column, menuActionHandler: menuActionHandlerProp, menuPermissions: { allowSort, allowGroup, allowAggregation, allowHide, allowRemove, allowPin, }, }: ColumnMenuProps) => import("react").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { VuuTable } from "@vuu-ui/vuu-protocol-types";
|
|
2
|
+
import { ColumnDescriptor, ColumnDisplayAction } from "@vuu-ui/vuu-table-types";
|
|
3
|
+
export type ColumnDisplayActionHandler = (action: ColumnDisplayAction) => void;
|
|
4
|
+
export type DisplayColumnSettingsAction = {
|
|
5
|
+
type: "column-settings";
|
|
6
|
+
column: ColumnDescriptor;
|
|
7
|
+
/** only for calculated columnn */
|
|
8
|
+
vuuTable?: VuuTable;
|
|
9
|
+
};
|
|
10
|
+
export type DisplaySettingsAction = DisplayColumnSettingsAction;
|
|
11
|
+
export type TableSettingsActionHandler = (action: DisplaySettingsAction) => void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Menu, MenuItem, MenuItemProps, MenuProps } from "@salt-ds/core";
|
|
2
|
+
import { DataSource } from "@vuu-ui/vuu-data-types";
|
|
3
|
+
import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
4
|
+
import { MouseEventHandler, ReactElement } from "react";
|
|
5
|
+
type MenuElement = ReactElement<MenuProps, typeof Menu>;
|
|
6
|
+
type MenuItemElement = ReactElement<MenuItemProps, typeof MenuItem>;
|
|
7
|
+
type MenuElements = Array<MenuElement | MenuItemElement>;
|
|
8
|
+
export type MenuItemClickHandler = MouseEventHandler<HTMLDivElement>;
|
|
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
|
+
export type ColumnDisplayColumnMenuActionType = "pin-column-left" | "pin-column-right" | "unpin-column" | "hide-column";
|
|
11
|
+
export type ColumnMenuActionType = DataSourceColumnMenuActionType | ColumnDisplayColumnMenuActionType;
|
|
12
|
+
export declare const isColumnMenuActionType: (value?: string) => value is ColumnMenuActionType;
|
|
13
|
+
export declare const getColumnMenuActionType: (target: EventTarget | HTMLElement) => ColumnMenuActionType;
|
|
14
|
+
export declare function buildSortMenu(column: ColumnDescriptor, dataSource: DataSource, menuActionClickHandler: MenuItemClickHandler, isAllowed?: boolean): MenuElement | null;
|
|
15
|
+
export declare function buildGroupMenu(column: ColumnDescriptor, dataSource: DataSource, menuActionClickHandler: MenuItemClickHandler, isAllowed?: boolean): MenuElement | null;
|
|
16
|
+
export declare const buildVisibilityMenuItems: (column: ColumnDescriptor, menuActionClickHandler: MenuItemClickHandler, allowHide?: boolean, allowRemove?: boolean) => MenuElements | null;
|
|
17
|
+
export declare const buildPinMenuItems: (column: ColumnDescriptor, menuActionClickHandler: MenuItemClickHandler, isAllowed?: boolean) => MenuElements;
|
|
18
|
+
export declare function buildAggregationMenuItems(column: ColumnDescriptor, dataSource: DataSource, menuActionClickHandler: MenuItemClickHandler, isAllowed?: boolean): MenuElements | null;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MenuActionHandler } from "@vuu-ui/vuu-context-menu";
|
|
2
|
+
import { Filter } from "@vuu-ui/vuu-filter-types";
|
|
3
|
+
import { VuuFilter } from "@vuu-ui/vuu-protocol-types";
|
|
4
|
+
import { ColumnDescriptor, ColumnDisplayAction, RuntimeColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
5
|
+
import { ColumnMenuActionType } from "./column-menu-utils";
|
|
6
|
+
import { DataSource } from "@vuu-ui/vuu-data-types";
|
|
7
|
+
export interface ContextMenuOptions {
|
|
8
|
+
column?: RuntimeColumnDescriptor;
|
|
9
|
+
filter?: Filter;
|
|
10
|
+
sort?: VuuFilter;
|
|
11
|
+
}
|
|
12
|
+
export interface ContextMenuHookProps {
|
|
13
|
+
dataSource: DataSource;
|
|
14
|
+
onColumnDisplayAction?: (action: ColumnDisplayAction) => void;
|
|
15
|
+
}
|
|
16
|
+
export declare const useColumnActions: ({ dataSource, onColumnDisplayAction, }: ContextMenuHookProps) => MenuActionHandler<ColumnMenuActionType, ColumnDescriptor>;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
2
|
+
import { EventEmitter, ValueOf } from "@vuu-ui/vuu-utils";
|
|
3
|
+
export declare const ColumnChangeSource: {
|
|
4
|
+
readonly ColumnPicker: "column-picker";
|
|
5
|
+
readonly ColumnSettings: "column-settings";
|
|
6
|
+
readonly Table: "table";
|
|
7
|
+
};
|
|
8
|
+
export type ColumnChangeSource = ValueOf<typeof ColumnChangeSource>;
|
|
9
|
+
export declare const SelectedColumnChangeType: {
|
|
10
|
+
readonly CalculatedColumnAdded: "calculated-column-added";
|
|
11
|
+
readonly ColumnAdded: "column-added";
|
|
12
|
+
readonly ColumnRemoved: "column-removed";
|
|
13
|
+
readonly ColumnUpdated: "column-updated";
|
|
14
|
+
readonly ColumnsReordered: "columns-reordered";
|
|
15
|
+
};
|
|
16
|
+
export type SelectedColumnChangeType = ValueOf<typeof SelectedColumnChangeType>;
|
|
17
|
+
export interface SelectedColumnChangeColumnAdded {
|
|
18
|
+
type: Extract<SelectedColumnChangeType, "column-added">;
|
|
19
|
+
column: ColumnDescriptor;
|
|
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
|
+
}
|
|
29
|
+
export interface SelectedColumnChangeColumnRemoved {
|
|
30
|
+
type: Extract<SelectedColumnChangeType, "column-removed">;
|
|
31
|
+
column: ColumnDescriptor;
|
|
32
|
+
}
|
|
33
|
+
export interface SelectedColumnChangeColumnsReordered {
|
|
34
|
+
type: Extract<SelectedColumnChangeType, "columns-reordered">;
|
|
35
|
+
}
|
|
36
|
+
export type SelectedColumnChangeDescriptor = SelectedColumnChangeCalculatedColumnAdded | SelectedColumnChangeColumnAdded | SelectedColumnChangeColumnRemoved | SelectedColumnChangeColumnUpdated | SelectedColumnChangeColumnsReordered;
|
|
37
|
+
export declare const isColumnAdded: (change?: SelectedColumnChangeDescriptor) => change is SelectedColumnChangeColumnAdded;
|
|
38
|
+
export declare const isColumnRemoved: (change?: SelectedColumnChangeDescriptor) => change is SelectedColumnChangeColumnRemoved;
|
|
39
|
+
export declare const isColumnUpdated: (change?: SelectedColumnChangeDescriptor) => change is SelectedColumnChangeColumnUpdated;
|
|
40
|
+
export declare const isColumnsReordered: (change?: SelectedColumnChangeDescriptor) => change is SelectedColumnChangeColumnsReordered;
|
|
41
|
+
export type ColumnsChangeHandler = (columns: readonly ColumnDescriptor[], changeSource: ColumnChangeSource, changeDescriptor?: SelectedColumnChangeDescriptor) => void;
|
|
42
|
+
export type ColumnEvents = {
|
|
43
|
+
change: ColumnsChangeHandler;
|
|
44
|
+
render: (o: object) => void;
|
|
45
|
+
};
|
|
46
|
+
export declare class ColumnModel extends EventEmitter<ColumnEvents> {
|
|
47
|
+
#private;
|
|
48
|
+
/**
|
|
49
|
+
* All available columns, including selected columns.
|
|
50
|
+
*/
|
|
51
|
+
allColumns: readonly ColumnDescriptor[];
|
|
52
|
+
constructor(
|
|
53
|
+
/**
|
|
54
|
+
* All available columns, including selected columns.
|
|
55
|
+
*/
|
|
56
|
+
allColumns: readonly ColumnDescriptor[],
|
|
57
|
+
/**
|
|
58
|
+
* Columns already selected and rendered in Table.
|
|
59
|
+
*/
|
|
60
|
+
selectedColumns: readonly ColumnDescriptor[]);
|
|
61
|
+
get availableColumns(): ColumnDescriptor[];
|
|
62
|
+
set searchPattern(pattern: string);
|
|
63
|
+
get searchPattern(): string;
|
|
64
|
+
get selectedColumns(): readonly ColumnDescriptor[];
|
|
65
|
+
setSelectedColumns(selectedColumns: readonly ColumnDescriptor[], source: ColumnChangeSource, changeDescriptor?: SelectedColumnChangeDescriptor): void;
|
|
66
|
+
getColumn(name: string): ColumnDescriptor;
|
|
67
|
+
addItemToSelectedColumns(name: string, source: ColumnChangeSource): void;
|
|
68
|
+
removeItemFromSelectedColumns(name: string, source: ColumnChangeSource): void;
|
|
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;
|
|
80
|
+
private notifyListeners;
|
|
81
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
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";
|
|
5
|
+
export declare const classBaseListItem = "vuuColumnPickerListItem";
|
|
6
|
+
export interface ColumnPickerProps extends ColumnPickerHookProps, Pick<ListBoxProps<ColumnDescriptor>, "selected" | "onSelectionChange">, HTMLAttributes<HTMLDivElement> {
|
|
7
|
+
allowCreateCalculatedColumn?: boolean;
|
|
8
|
+
onClickCreateCalculatedColumn?: MouseEventHandler<HTMLButtonElement>;
|
|
9
|
+
}
|
|
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.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ColumnDescriptor, TableSelectionModel } from "@vuu-ui/vuu-table-types";
|
|
2
|
+
import { FormEventHandler, MouseEventHandler } from "react";
|
|
3
|
+
import { ColumnModel, SelectedColumnChangeType } from "./ColumnModel";
|
|
4
|
+
export type ColumnSelectionModel = Extract<TableSelectionModel, "none" | "single">;
|
|
5
|
+
export type SelectedColumnsChangeHandler = (columns: ColumnDescriptor[], changeType: SelectedColumnChangeType) => void;
|
|
6
|
+
export interface ColumnPickerHookProps {
|
|
7
|
+
columnModel: ColumnModel;
|
|
8
|
+
}
|
|
9
|
+
export declare const useColumnPicker: ({ columnModel: model, }: ColumnPickerHookProps) => {
|
|
10
|
+
availableColumns: ColumnDescriptor[];
|
|
11
|
+
onAddItemToSelectedList: MouseEventHandler<HTMLButtonElement>;
|
|
12
|
+
onRemoveItemFromSelectedList: MouseEventHandler<HTMLButtonElement>;
|
|
13
|
+
onChangeSearchInput: FormEventHandler;
|
|
14
|
+
searchText: string;
|
|
15
|
+
selectedColumns: readonly ColumnDescriptor[];
|
|
16
|
+
};
|
|
@@ -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
|
+
};
|