@vuu-ui/vuu-table-extras 2.1.17 → 2.1.19-beta.1
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 +16 -17
- package/types/cell-renderers/background-cell/BackgroundCell.d.ts +1 -1
- package/types/cell-renderers/dropdown-cell/DropdownCell.d.ts +1 -1
- package/types/cell-renderers/lookup-cell/LookupCell.d.ts +1 -1
- package/types/column-expression-input/column-language-parser/generated/column-parser.d.ts +1 -1
- package/types/column-expression-input/column-language-parser/generated/column-parser.terms.d.ts +1 -24
- package/types/column-expression-input/column-language-parser/test.d.mts +1 -1
- package/types/csv-upload/CsvUpload.d.ts +47 -0
- package/types/csv-upload/index.d.ts +7 -0
- package/types/csv-upload/parse/csv-constants.d.ts +2 -0
- package/types/csv-upload/parse/csv-errors.d.ts +46 -0
- package/types/csv-upload/parse/csv-parse.d.ts +11 -0
- package/types/csv-upload/parse/csv-schema-validation.d.ts +16 -0
- package/types/csv-upload/parse/csv-upload-utils.d.ts +21 -0
- package/types/csv-upload/parse/index.d.ts +5 -0
- package/types/csv-upload/useCsvUpload.d.ts +26 -0
- package/types/csv-upload/useCsvUploadSessionPreview.d.ts +10 -0
- package/types/freeze-control/useFreezeControl.d.ts +1 -1
- package/types/index.d.ts +1 -0
- package/cjs/calculated-column/CalculatedColumnPanel.js +0 -85
- package/cjs/calculated-column/CalculatedColumnPanel.js.map +0 -1
- package/cjs/calculated-column/useCalculatedColumnPanel.js +0 -71
- package/cjs/calculated-column/useCalculatedColumnPanel.js.map +0 -1
- package/cjs/calculated-column/useEditCalculatedColumn.js +0 -138
- package/cjs/calculated-column/useEditCalculatedColumn.js.map +0 -1
- package/cjs/cell-edit-validators/CaseValidator.js +0 -25
- package/cjs/cell-edit-validators/CaseValidator.js.map +0 -1
- package/cjs/cell-edit-validators/PatternValidator.js +0 -31
- package/cjs/cell-edit-validators/PatternValidator.js.map +0 -1
- package/cjs/cell-renderers/background-cell/BackgroundCell.css.js +0 -6
- package/cjs/cell-renderers/background-cell/BackgroundCell.css.js.map +0 -1
- package/cjs/cell-renderers/background-cell/BackgroundCell.js +0 -81
- package/cjs/cell-renderers/background-cell/BackgroundCell.js.map +0 -1
- package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +0 -6
- package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js.map +0 -1
- package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +0 -67
- package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +0 -1
- package/cjs/cell-renderers/background-cell/BackgroundKeyframes.css.js +0 -6
- package/cjs/cell-renderers/background-cell/BackgroundKeyframes.css.js.map +0 -1
- package/cjs/cell-renderers/background-cell/useDirection.js +0 -20
- package/cjs/cell-renderers/background-cell/useDirection.js.map +0 -1
- package/cjs/cell-renderers/button-cell/IconButtonCell.css.js +0 -6
- package/cjs/cell-renderers/button-cell/IconButtonCell.css.js.map +0 -1
- package/cjs/cell-renderers/button-cell/IconButtonCell.js +0 -40
- package/cjs/cell-renderers/button-cell/IconButtonCell.js.map +0 -1
- package/cjs/cell-renderers/dropdown-cell/DropdownCell.css.js +0 -6
- package/cjs/cell-renderers/dropdown-cell/DropdownCell.css.js.map +0 -1
- package/cjs/cell-renderers/dropdown-cell/DropdownCell.js +0 -103
- package/cjs/cell-renderers/dropdown-cell/DropdownCell.js.map +0 -1
- package/cjs/cell-renderers/lookup-cell/LookupCell.js +0 -21
- package/cjs/cell-renderers/lookup-cell/LookupCell.js.map +0 -1
- package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.css.js +0 -6
- package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.css.js.map +0 -1
- package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.js +0 -62
- package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.js.map +0 -1
- package/cjs/cell-renderers/progress-cell/ProgressCell.css.js +0 -6
- package/cjs/cell-renderers/progress-cell/ProgressCell.css.js.map +0 -1
- package/cjs/cell-renderers/progress-cell/ProgressCell.js +0 -69
- package/cjs/cell-renderers/progress-cell/ProgressCell.js.map +0 -1
- package/cjs/column-expression-input/ColumnExpressionInput.css.js +0 -6
- package/cjs/column-expression-input/ColumnExpressionInput.css.js.map +0 -1
- package/cjs/column-expression-input/ColumnExpressionInput.js +0 -39
- package/cjs/column-expression-input/ColumnExpressionInput.js.map +0 -1
- package/cjs/column-expression-input/column-function-descriptors.js +0 -307
- package/cjs/column-expression-input/column-function-descriptors.js.map +0 -1
- package/cjs/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +0 -28
- package/cjs/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +0 -1
- package/cjs/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +0 -465
- package/cjs/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +0 -1
- package/cjs/column-expression-input/column-language-parser/column-expression-parse-utils.js +0 -61
- package/cjs/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +0 -1
- package/cjs/column-expression-input/column-language-parser/generated/column-parser.js +0 -21
- package/cjs/column-expression-input/column-language-parser/generated/column-parser.js.map +0 -1
- package/cjs/column-expression-input/functionDocInfo.js +0 -39
- package/cjs/column-expression-input/functionDocInfo.js.map +0 -1
- package/cjs/column-expression-input/highlighting.js +0 -16
- package/cjs/column-expression-input/highlighting.js.map +0 -1
- package/cjs/column-expression-input/theme.js +0 -63
- package/cjs/column-expression-input/theme.js.map +0 -1
- package/cjs/column-expression-input/useColumnAutoComplete.js +0 -358
- package/cjs/column-expression-input/useColumnAutoComplete.js.map +0 -1
- package/cjs/column-expression-input/useColumnExpressionEditor.js +0 -131
- package/cjs/column-expression-input/useColumnExpressionEditor.js.map +0 -1
- package/cjs/column-expression-input/useColumnExpressionSuggestionProvider.js +0 -213
- package/cjs/column-expression-input/useColumnExpressionSuggestionProvider.js.map +0 -1
- package/cjs/column-formatting-settings/BaseNumericFormattingSettings.js +0 -98
- package/cjs/column-formatting-settings/BaseNumericFormattingSettings.js.map +0 -1
- package/cjs/column-formatting-settings/ColumnFormattingPanel.js +0 -111
- package/cjs/column-formatting-settings/ColumnFormattingPanel.js.map +0 -1
- package/cjs/column-formatting-settings/DateTimeFormattingSettings.js +0 -102
- package/cjs/column-formatting-settings/DateTimeFormattingSettings.js.map +0 -1
- package/cjs/column-formatting-settings/LongTypeFormattingSettings.css.js +0 -6
- package/cjs/column-formatting-settings/LongTypeFormattingSettings.css.js.map +0 -1
- package/cjs/column-formatting-settings/LongTypeFormattingSettings.js +0 -48
- package/cjs/column-formatting-settings/LongTypeFormattingSettings.js.map +0 -1
- package/cjs/column-menu/ColumnMenu.css.js +0 -6
- package/cjs/column-menu/ColumnMenu.css.js.map +0 -1
- package/cjs/column-menu/ColumnMenu.js +0 -107
- package/cjs/column-menu/ColumnMenu.js.map +0 -1
- package/cjs/column-menu/column-menu-utils.js +0 -459
- package/cjs/column-menu/column-menu-utils.js.map +0 -1
- package/cjs/column-menu/useColumnActions.js +0 -68
- package/cjs/column-menu/useColumnActions.js.map +0 -1
- package/cjs/column-picker/ColumnModel.js +0 -177
- package/cjs/column-picker/ColumnModel.js.map +0 -1
- package/cjs/column-picker/ColumnPicker.css.js +0 -6
- package/cjs/column-picker/ColumnPicker.css.js.map +0 -1
- package/cjs/column-picker/ColumnPicker.js +0 -252
- package/cjs/column-picker/ColumnPicker.js.map +0 -1
- package/cjs/column-picker/ColumnPickerAction.js +0 -34
- package/cjs/column-picker/ColumnPickerAction.js.map +0 -1
- package/cjs/column-picker/useColumnPicker.js +0 -55
- package/cjs/column-picker/useColumnPicker.js.map +0 -1
- package/cjs/column-picker/useTableColumnPicker.js +0 -35
- package/cjs/column-picker/useTableColumnPicker.js.map +0 -1
- package/cjs/column-settings-panel/ColumnNameLabel.css.js +0 -6
- package/cjs/column-settings-panel/ColumnNameLabel.css.js.map +0 -1
- package/cjs/column-settings-panel/ColumnNameLabel.js +0 -45
- package/cjs/column-settings-panel/ColumnNameLabel.js.map +0 -1
- package/cjs/column-settings-panel/ColumnSettingsPanel.css.js +0 -6
- package/cjs/column-settings-panel/ColumnSettingsPanel.css.js.map +0 -1
- package/cjs/column-settings-panel/ColumnSettingsPanel.js +0 -161
- package/cjs/column-settings-panel/ColumnSettingsPanel.js.map +0 -1
- package/cjs/column-settings-panel/useColumnSettings.js +0 -203
- package/cjs/column-settings-panel/useColumnSettings.js.map +0 -1
- package/cjs/datasource-stats/DatasourceStats.css.js +0 -6
- package/cjs/datasource-stats/DatasourceStats.css.js.map +0 -1
- package/cjs/datasource-stats/DatasourceStats.js +0 -76
- package/cjs/datasource-stats/DatasourceStats.js.map +0 -1
- package/cjs/datasource-stats/useDatasourceStats.js +0 -61
- package/cjs/datasource-stats/useDatasourceStats.js.map +0 -1
- package/cjs/freeze-control/FreezeControl.css.js +0 -6
- package/cjs/freeze-control/FreezeControl.css.js.map +0 -1
- package/cjs/freeze-control/FreezeControl.js +0 -106
- package/cjs/freeze-control/FreezeControl.js.map +0 -1
- package/cjs/freeze-control/FrozenBanner.css.js +0 -6
- package/cjs/freeze-control/FrozenBanner.css.js.map +0 -1
- package/cjs/freeze-control/FrozenBanner.js +0 -55
- package/cjs/freeze-control/FrozenBanner.js.map +0 -1
- package/cjs/freeze-control/freezeControlBadge.js +0 -10
- package/cjs/freeze-control/freezeControlBadge.js.map +0 -1
- package/cjs/freeze-control/useFreezeControl.js +0 -68
- package/cjs/freeze-control/useFreezeControl.js.map +0 -1
- package/cjs/index.js +0 -86
- package/cjs/index.js.map +0 -1
- package/cjs/tabbed-table-config-panel/TabbedTableConfigPanel.css.js +0 -6
- package/cjs/tabbed-table-config-panel/TabbedTableConfigPanel.css.js.map +0 -1
- package/cjs/tabbed-table-config-panel/TabbedTableConfigPanel.js +0 -90
- package/cjs/tabbed-table-config-panel/TabbedTableConfigPanel.js.map +0 -1
- package/cjs/tabbed-table-config-panel/TabbedTableSettingsAction.js +0 -44
- package/cjs/tabbed-table-config-panel/TabbedTableSettingsAction.js.map +0 -1
- package/cjs/tabbed-table-config-panel/useTabbedTableConfigPanel.js +0 -49
- package/cjs/tabbed-table-config-panel/useTabbedTableConfigPanel.js.map +0 -1
- package/cjs/table-footer/TableFooter.css.js +0 -6
- package/cjs/table-footer/TableFooter.css.js.map +0 -1
- package/cjs/table-footer/TableFooter.js +0 -34
- package/cjs/table-footer/TableFooter.js.map +0 -1
- package/cjs/table-provider/TableProvider.js +0 -61
- package/cjs/table-provider/TableProvider.js.map +0 -1
- package/cjs/table-settings-panel/TableSettingsPanel.css.js +0 -6
- package/cjs/table-settings-panel/TableSettingsPanel.css.js.map +0 -1
- package/cjs/table-settings-panel/TableSettingsPanel.js +0 -116
- package/cjs/table-settings-panel/TableSettingsPanel.js.map +0 -1
- package/cjs/table-settings-panel/useTableSettings.js +0 -60
- package/cjs/table-settings-panel/useTableSettings.js.map +0 -1
- package/esm/calculated-column/CalculatedColumnPanel.js +0 -83
- package/esm/calculated-column/CalculatedColumnPanel.js.map +0 -1
- package/esm/calculated-column/useCalculatedColumnPanel.js +0 -69
- package/esm/calculated-column/useCalculatedColumnPanel.js.map +0 -1
- package/esm/calculated-column/useEditCalculatedColumn.js +0 -136
- package/esm/calculated-column/useEditCalculatedColumn.js.map +0 -1
- package/esm/cell-edit-validators/CaseValidator.js +0 -23
- package/esm/cell-edit-validators/CaseValidator.js.map +0 -1
- package/esm/cell-edit-validators/PatternValidator.js +0 -29
- package/esm/cell-edit-validators/PatternValidator.js.map +0 -1
- package/esm/cell-renderers/background-cell/BackgroundCell.css.js +0 -4
- package/esm/cell-renderers/background-cell/BackgroundCell.css.js.map +0 -1
- package/esm/cell-renderers/background-cell/BackgroundCell.js +0 -79
- package/esm/cell-renderers/background-cell/BackgroundCell.js.map +0 -1
- package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +0 -4
- package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js.map +0 -1
- package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +0 -65
- package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +0 -1
- package/esm/cell-renderers/background-cell/BackgroundKeyframes.css.js +0 -4
- package/esm/cell-renderers/background-cell/BackgroundKeyframes.css.js.map +0 -1
- package/esm/cell-renderers/background-cell/useDirection.js +0 -18
- package/esm/cell-renderers/background-cell/useDirection.js.map +0 -1
- package/esm/cell-renderers/button-cell/IconButtonCell.css.js +0 -4
- package/esm/cell-renderers/button-cell/IconButtonCell.css.js.map +0 -1
- package/esm/cell-renderers/button-cell/IconButtonCell.js +0 -38
- package/esm/cell-renderers/button-cell/IconButtonCell.js.map +0 -1
- package/esm/cell-renderers/dropdown-cell/DropdownCell.css.js +0 -4
- package/esm/cell-renderers/dropdown-cell/DropdownCell.css.js.map +0 -1
- package/esm/cell-renderers/dropdown-cell/DropdownCell.js +0 -101
- package/esm/cell-renderers/dropdown-cell/DropdownCell.js.map +0 -1
- package/esm/cell-renderers/lookup-cell/LookupCell.js +0 -19
- package/esm/cell-renderers/lookup-cell/LookupCell.js.map +0 -1
- package/esm/cell-renderers/pct-progress-cell/PctProgressCell.css.js +0 -4
- package/esm/cell-renderers/pct-progress-cell/PctProgressCell.css.js.map +0 -1
- package/esm/cell-renderers/pct-progress-cell/PctProgressCell.js +0 -60
- package/esm/cell-renderers/pct-progress-cell/PctProgressCell.js.map +0 -1
- package/esm/cell-renderers/progress-cell/ProgressCell.css.js +0 -4
- package/esm/cell-renderers/progress-cell/ProgressCell.css.js.map +0 -1
- package/esm/cell-renderers/progress-cell/ProgressCell.js +0 -67
- package/esm/cell-renderers/progress-cell/ProgressCell.js.map +0 -1
- package/esm/column-expression-input/ColumnExpressionInput.css.js +0 -4
- package/esm/column-expression-input/ColumnExpressionInput.css.js.map +0 -1
- package/esm/column-expression-input/ColumnExpressionInput.js +0 -37
- package/esm/column-expression-input/ColumnExpressionInput.js.map +0 -1
- package/esm/column-expression-input/column-function-descriptors.js +0 -305
- package/esm/column-expression-input/column-function-descriptors.js.map +0 -1
- package/esm/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +0 -26
- package/esm/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +0 -1
- package/esm/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +0 -463
- package/esm/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +0 -1
- package/esm/column-expression-input/column-language-parser/column-expression-parse-utils.js +0 -56
- package/esm/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +0 -1
- package/esm/column-expression-input/column-language-parser/generated/column-parser.js +0 -19
- package/esm/column-expression-input/column-language-parser/generated/column-parser.js.map +0 -1
- package/esm/column-expression-input/functionDocInfo.js +0 -37
- package/esm/column-expression-input/functionDocInfo.js.map +0 -1
- package/esm/column-expression-input/highlighting.js +0 -14
- package/esm/column-expression-input/highlighting.js.map +0 -1
- package/esm/column-expression-input/theme.js +0 -61
- package/esm/column-expression-input/theme.js.map +0 -1
- package/esm/column-expression-input/useColumnAutoComplete.js +0 -356
- package/esm/column-expression-input/useColumnAutoComplete.js.map +0 -1
- package/esm/column-expression-input/useColumnExpressionEditor.js +0 -129
- package/esm/column-expression-input/useColumnExpressionEditor.js.map +0 -1
- package/esm/column-expression-input/useColumnExpressionSuggestionProvider.js +0 -211
- package/esm/column-expression-input/useColumnExpressionSuggestionProvider.js.map +0 -1
- package/esm/column-formatting-settings/BaseNumericFormattingSettings.js +0 -96
- package/esm/column-formatting-settings/BaseNumericFormattingSettings.js.map +0 -1
- package/esm/column-formatting-settings/ColumnFormattingPanel.js +0 -109
- package/esm/column-formatting-settings/ColumnFormattingPanel.js.map +0 -1
- package/esm/column-formatting-settings/DateTimeFormattingSettings.js +0 -100
- package/esm/column-formatting-settings/DateTimeFormattingSettings.js.map +0 -1
- package/esm/column-formatting-settings/LongTypeFormattingSettings.css.js +0 -4
- package/esm/column-formatting-settings/LongTypeFormattingSettings.css.js.map +0 -1
- package/esm/column-formatting-settings/LongTypeFormattingSettings.js +0 -46
- package/esm/column-formatting-settings/LongTypeFormattingSettings.js.map +0 -1
- package/esm/column-menu/ColumnMenu.css.js +0 -4
- package/esm/column-menu/ColumnMenu.css.js.map +0 -1
- package/esm/column-menu/ColumnMenu.js +0 -105
- package/esm/column-menu/ColumnMenu.js.map +0 -1
- package/esm/column-menu/column-menu-utils.js +0 -451
- package/esm/column-menu/column-menu-utils.js.map +0 -1
- package/esm/column-menu/useColumnActions.js +0 -66
- package/esm/column-menu/useColumnActions.js.map +0 -1
- package/esm/column-picker/ColumnModel.js +0 -170
- package/esm/column-picker/ColumnModel.js.map +0 -1
- package/esm/column-picker/ColumnPicker.css.js +0 -4
- package/esm/column-picker/ColumnPicker.css.js.map +0 -1
- package/esm/column-picker/ColumnPicker.js +0 -249
- package/esm/column-picker/ColumnPicker.js.map +0 -1
- package/esm/column-picker/ColumnPickerAction.js +0 -32
- package/esm/column-picker/ColumnPickerAction.js.map +0 -1
- package/esm/column-picker/useColumnPicker.js +0 -53
- package/esm/column-picker/useColumnPicker.js.map +0 -1
- package/esm/column-picker/useTableColumnPicker.js +0 -33
- package/esm/column-picker/useTableColumnPicker.js.map +0 -1
- package/esm/column-settings-panel/ColumnNameLabel.css.js +0 -4
- package/esm/column-settings-panel/ColumnNameLabel.css.js.map +0 -1
- package/esm/column-settings-panel/ColumnNameLabel.js +0 -43
- package/esm/column-settings-panel/ColumnNameLabel.js.map +0 -1
- package/esm/column-settings-panel/ColumnSettingsPanel.css.js +0 -4
- package/esm/column-settings-panel/ColumnSettingsPanel.css.js.map +0 -1
- package/esm/column-settings-panel/ColumnSettingsPanel.js +0 -159
- package/esm/column-settings-panel/ColumnSettingsPanel.js.map +0 -1
- package/esm/column-settings-panel/useColumnSettings.js +0 -201
- package/esm/column-settings-panel/useColumnSettings.js.map +0 -1
- package/esm/datasource-stats/DatasourceStats.css.js +0 -4
- package/esm/datasource-stats/DatasourceStats.css.js.map +0 -1
- package/esm/datasource-stats/DatasourceStats.js +0 -74
- package/esm/datasource-stats/DatasourceStats.js.map +0 -1
- package/esm/datasource-stats/useDatasourceStats.js +0 -59
- package/esm/datasource-stats/useDatasourceStats.js.map +0 -1
- package/esm/freeze-control/FreezeControl.css.js +0 -4
- package/esm/freeze-control/FreezeControl.css.js.map +0 -1
- package/esm/freeze-control/FreezeControl.js +0 -104
- package/esm/freeze-control/FreezeControl.js.map +0 -1
- package/esm/freeze-control/FrozenBanner.css.js +0 -4
- package/esm/freeze-control/FrozenBanner.css.js.map +0 -1
- package/esm/freeze-control/FrozenBanner.js +0 -53
- package/esm/freeze-control/FrozenBanner.js.map +0 -1
- package/esm/freeze-control/freezeControlBadge.js +0 -8
- package/esm/freeze-control/freezeControlBadge.js.map +0 -1
- package/esm/freeze-control/useFreezeControl.js +0 -66
- package/esm/freeze-control/useFreezeControl.js.map +0 -1
- package/esm/index.js +0 -36
- package/esm/index.js.map +0 -1
- package/esm/tabbed-table-config-panel/TabbedTableConfigPanel.css.js +0 -4
- package/esm/tabbed-table-config-panel/TabbedTableConfigPanel.css.js.map +0 -1
- package/esm/tabbed-table-config-panel/TabbedTableConfigPanel.js +0 -88
- package/esm/tabbed-table-config-panel/TabbedTableConfigPanel.js.map +0 -1
- package/esm/tabbed-table-config-panel/TabbedTableSettingsAction.js +0 -42
- package/esm/tabbed-table-config-panel/TabbedTableSettingsAction.js.map +0 -1
- package/esm/tabbed-table-config-panel/useTabbedTableConfigPanel.js +0 -47
- package/esm/tabbed-table-config-panel/useTabbedTableConfigPanel.js.map +0 -1
- package/esm/table-footer/TableFooter.css.js +0 -4
- package/esm/table-footer/TableFooter.css.js.map +0 -1
- package/esm/table-footer/TableFooter.js +0 -31
- package/esm/table-footer/TableFooter.js.map +0 -1
- package/esm/table-provider/TableProvider.js +0 -56
- package/esm/table-provider/TableProvider.js.map +0 -1
- package/esm/table-settings-panel/TableSettingsPanel.css.js +0 -4
- package/esm/table-settings-panel/TableSettingsPanel.css.js.map +0 -1
- package/esm/table-settings-panel/TableSettingsPanel.js +0 -112
- package/esm/table-settings-panel/TableSettingsPanel.js.map +0 -1
- package/esm/table-settings-panel/useTableSettings.js +0 -58
- package/esm/table-settings-panel/useTableSettings.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "2.1.
|
|
2
|
+
"version": "2.1.19-beta.1",
|
|
3
3
|
"author": "heswell",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"devDependencies": {
|
|
6
|
-
"@vuu-ui/vuu-filter-types": "2.1.
|
|
7
|
-
"@vuu-ui/vuu-protocol-types": "2.1.
|
|
7
|
+
"@vuu-ui/vuu-filter-types": "2.1.19-beta.1",
|
|
8
|
+
"@vuu-ui/vuu-protocol-types": "2.1.19-beta.1"
|
|
8
9
|
},
|
|
9
10
|
"dependencies": {
|
|
10
|
-
"@vuu-ui/vuu-codemirror": "2.1.
|
|
11
|
-
"@vuu-ui/vuu-data-react": "2.1.
|
|
12
|
-
"@vuu-ui/vuu-data-types": "2.1.
|
|
13
|
-
"@vuu-ui/vuu-table-types": "2.1.
|
|
14
|
-
"@vuu-ui/vuu-popups": "2.1.
|
|
15
|
-
"@vuu-ui/vuu-table": "2.1.
|
|
16
|
-
"@vuu-ui/vuu-utils": "2.1.
|
|
17
|
-
"@vuu-ui/vuu-ui-controls": "2.1.
|
|
11
|
+
"@vuu-ui/vuu-codemirror": "2.1.19-beta.1",
|
|
12
|
+
"@vuu-ui/vuu-data-react": "2.1.19-beta.1",
|
|
13
|
+
"@vuu-ui/vuu-data-types": "2.1.19-beta.1",
|
|
14
|
+
"@vuu-ui/vuu-table-types": "2.1.19-beta.1",
|
|
15
|
+
"@vuu-ui/vuu-popups": "2.1.19-beta.1",
|
|
16
|
+
"@vuu-ui/vuu-table": "2.1.19-beta.1",
|
|
17
|
+
"@vuu-ui/vuu-utils": "2.1.19-beta.1",
|
|
18
|
+
"@vuu-ui/vuu-ui-controls": "2.1.19-beta.1",
|
|
18
19
|
"@lezer/lr": "1.4.2",
|
|
19
20
|
"@salt-ds/core": "1.54.1",
|
|
20
21
|
"@salt-ds/lab": "1.0.0-alpha.83",
|
|
21
22
|
"@salt-ds/styles": "0.2.1",
|
|
22
|
-
"@salt-ds/window": "0.1.1"
|
|
23
|
+
"@salt-ds/window": "0.1.1",
|
|
24
|
+
"csv-parse": "^7.0.0"
|
|
23
25
|
},
|
|
24
26
|
"peerDependencies": {
|
|
25
27
|
"@floating-ui/react": "^0.26.28",
|
|
@@ -27,7 +29,6 @@
|
|
|
27
29
|
"react": "^19.2.3",
|
|
28
30
|
"react-dom": "^19.2.3"
|
|
29
31
|
},
|
|
30
|
-
"type": "module",
|
|
31
32
|
"files": [
|
|
32
33
|
"README.md",
|
|
33
34
|
"esm",
|
|
@@ -36,13 +37,11 @@
|
|
|
36
37
|
],
|
|
37
38
|
"exports": {
|
|
38
39
|
".": {
|
|
39
|
-
"
|
|
40
|
-
"import": "./esm/index.js",
|
|
40
|
+
"import": "./index.js",
|
|
41
41
|
"types": "./types/index.d.ts"
|
|
42
42
|
}
|
|
43
43
|
},
|
|
44
|
-
"
|
|
45
|
-
"module": "esm/index.js",
|
|
44
|
+
"module": "index.js",
|
|
46
45
|
"name": "@vuu-ui/vuu-table-extras",
|
|
47
46
|
"types": "types/index.d.ts"
|
|
48
47
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { TableCellRendererProps } from "@vuu-ui/vuu-table-types";
|
|
2
|
-
export declare const BackgroundCell: import("react").
|
|
2
|
+
export declare const BackgroundCell: import("react").MemoExoticComponent<({ column, dataRow, }: TableCellRendererProps) => import("react/jsx-runtime").JSX.Element>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { TableCellRendererProps } from "@vuu-ui/vuu-table-types";
|
|
2
|
-
export declare const DropdownCell: import("react").
|
|
2
|
+
export declare const DropdownCell: import("react").MemoExoticComponent<({ column, dataRow, editedDuringCurrentSession, onEdit, }: TableCellRendererProps) => import("react/jsx-runtime").JSX.Element>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { TableCellRendererProps } from "@vuu-ui/vuu-table-types";
|
|
2
|
-
export declare const LookupCell: import("react").
|
|
2
|
+
export declare const LookupCell: import("react").MemoExoticComponent<({ column, dataRow, }: TableCellRendererProps) => import("react/jsx-runtime").JSX.Element>;
|
package/types/column-expression-input/column-language-parser/generated/column-parser.terms.d.ts
CHANGED
|
@@ -1,24 +1 @@
|
|
|
1
|
-
export const ColumnDefinitionExpression
|
|
2
|
-
export const Column: 2;
|
|
3
|
-
export const Number: 3;
|
|
4
|
-
export const String: 4;
|
|
5
|
-
export const True: 5;
|
|
6
|
-
export const False: 6;
|
|
7
|
-
export const ParenthesizedExpression: 7;
|
|
8
|
-
export const OpenBrace: 8;
|
|
9
|
-
export const CloseBrace: 9;
|
|
10
|
-
export const ArithmeticExpression: 10;
|
|
11
|
-
export const Divide: 11;
|
|
12
|
-
export const Times: 12;
|
|
13
|
-
export const Plus: 13;
|
|
14
|
-
export const Minus: 14;
|
|
15
|
-
export const ConditionalExpression: 15;
|
|
16
|
-
export const If: 16;
|
|
17
|
-
export const RelationalExpression: 17;
|
|
18
|
-
export const RelationalOperator: 18;
|
|
19
|
-
export const AndCondition: 19;
|
|
20
|
-
export const OrCondition: 20;
|
|
21
|
-
export const Comma: 21;
|
|
22
|
-
export const CallExpression: 22;
|
|
23
|
-
export const Function: 23;
|
|
24
|
-
export const ArgList: 24;
|
|
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;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export declare const walkTree: (tree: any, source: any) => void;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import type { DataSource } from "@vuu-ui/vuu-data-types";
|
|
3
|
+
import type { VuuTable } from "@vuu-ui/vuu-protocol-types";
|
|
4
|
+
import type { CsvParseError, CsvParseOptions } from "./parse/csv-parse";
|
|
5
|
+
import type { CsvValidationStructuredError } from "./parse/csv-schema-validation";
|
|
6
|
+
import type { CsvUploadTableData } from "./parse/csv-upload-utils";
|
|
7
|
+
export type CsvUploadImportedResult = {
|
|
8
|
+
rpcResult: unknown;
|
|
9
|
+
tableData: CsvUploadTableData;
|
|
10
|
+
};
|
|
11
|
+
export type CsvUploadErrors = {
|
|
12
|
+
schemaError?: CsvUploadError;
|
|
13
|
+
validationError?: CsvUploadError;
|
|
14
|
+
importError?: CsvUploadError;
|
|
15
|
+
};
|
|
16
|
+
export type CsvUploadError = {
|
|
17
|
+
message: string;
|
|
18
|
+
parseError?: CsvParseError;
|
|
19
|
+
validationError?: CsvValidationStructuredError;
|
|
20
|
+
source: "schema" | "validation" | "import";
|
|
21
|
+
};
|
|
22
|
+
export type CsvUploadErrorResult = {
|
|
23
|
+
errors: CsvUploadErrors;
|
|
24
|
+
};
|
|
25
|
+
export type CsvUploadSessionTable = VuuTable;
|
|
26
|
+
export type CsvUploadSessionEndReason = "saved" | "discarded" | "failed";
|
|
27
|
+
export type CsvUploadSessionEndResult = {
|
|
28
|
+
reason: CsvUploadSessionEndReason;
|
|
29
|
+
sessionTable?: CsvUploadSessionTable;
|
|
30
|
+
};
|
|
31
|
+
export type CsvUploadPhase = "idle" | "processing" | "preview-ready" | "importing" | "imported" | "failed";
|
|
32
|
+
export interface CsvUploadProps {
|
|
33
|
+
children?: ReactNode;
|
|
34
|
+
dataSource: DataSource;
|
|
35
|
+
onEditSessionStarted?: (dataSource: DataSource) => void;
|
|
36
|
+
onEditSessionEnded?: (result: CsvUploadSessionEndResult) => void;
|
|
37
|
+
onError?: (result: CsvUploadErrorResult | undefined) => void;
|
|
38
|
+
onImported?: (result: CsvUploadImportedResult) => void;
|
|
39
|
+
onProcessingStarted?: () => void;
|
|
40
|
+
dialogTitle?: string;
|
|
41
|
+
maxRows?: number;
|
|
42
|
+
onCancel?: () => void;
|
|
43
|
+
onClose?: () => void;
|
|
44
|
+
open?: boolean;
|
|
45
|
+
parseOptions?: CsvParseOptions;
|
|
46
|
+
}
|
|
47
|
+
export declare const CsvUpload: (props: CsvUploadProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { CsvUpload, type CsvUploadError, type CsvUploadProps, type CsvUploadErrorResult, type CsvUploadErrors, type CsvUploadPhase, type CsvUploadImportedResult, type CsvUploadSessionEndReason, type CsvUploadSessionEndResult, type CsvUploadSessionTable, } from "./CsvUpload";
|
|
2
|
+
export { useCsvUpload, type CsvUploadHookProps, type UseCsvUploadReturn, } from "./useCsvUpload";
|
|
3
|
+
export { useCsvUploadSessionPreview, type UseCsvUploadSessionPreviewReturn, } from "./useCsvUploadSessionPreview";
|
|
4
|
+
export { validateCsvAgainstSchema, type CsvValidationOptions, type CsvValidationResult, } from "./parse/csv-schema-validation";
|
|
5
|
+
export { parseCsv, type CsvParseOptions, type CsvParseResult, } from "./parse/csv-parse";
|
|
6
|
+
export { CsvValidationErrorEnum, CsvParseErrorEnum, type CsvError, type CsvErrorMap, type CsvStructuredError, type CsvValidationError, type CsvValidationErrorMap, type CsvValidationErrorType, type CsvValidationStructuredError, type CsvParseError, type CsvParseErrorMap, } from "./parse/csv-errors";
|
|
7
|
+
export { CSV_FIRST_DATA_ROW_NUMBER, CSV_HEADER_ROW_NUMBER, } from "./parse/csv-constants";
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export declare enum CsvParseErrorEnum {
|
|
2
|
+
EMPTY_FILE = "EMPTY_FILE",
|
|
3
|
+
INVALID_SEPARATOR = "INVALID_SEPARATOR",
|
|
4
|
+
INVALID_FORMAT = "INVALID_FORMAT",
|
|
5
|
+
UNQUOTED_VALUE = "UNQUOTED_VALUE",
|
|
6
|
+
EMPTY_HEADER_COLUMN = "EMPTY_HEADER_COLUMN",
|
|
7
|
+
DUPLICATE_HEADER_COLUMN = "DUPLICATE_HEADER_COLUMN",
|
|
8
|
+
ROW_COLUMN_COUNT_MISMATCH = "ROW_COLUMN_COUNT_MISMATCH"
|
|
9
|
+
}
|
|
10
|
+
export declare enum CsvValidationErrorEnum {
|
|
11
|
+
MISSING_KEY_COLUMN = "MISSING_KEY_COLUMN",
|
|
12
|
+
UNKNOWN_COLUMN = "UNKNOWN_COLUMN",
|
|
13
|
+
MAX_ROWS_EXCEEDED = "MAX_ROWS_EXCEEDED",
|
|
14
|
+
EMPTY_NON_STRING_VALUE = "EMPTY_NON_STRING_VALUE",
|
|
15
|
+
TYPE_MISMATCH = "TYPE_MISMATCH"
|
|
16
|
+
}
|
|
17
|
+
export type CsvErrorMap<TError extends string> = {
|
|
18
|
+
rowErrors: Record<number, Record<string, TError[]>>;
|
|
19
|
+
fileErrors: Record<string, TError[]>;
|
|
20
|
+
};
|
|
21
|
+
export type CsvStructuredError<TError extends string> = {
|
|
22
|
+
rowNum: number;
|
|
23
|
+
column: string;
|
|
24
|
+
value: string;
|
|
25
|
+
message: string;
|
|
26
|
+
errorEnum: TError;
|
|
27
|
+
};
|
|
28
|
+
export type CsvError<TError extends string> = {
|
|
29
|
+
errorMap: CsvErrorMap<TError>;
|
|
30
|
+
errors: CsvStructuredError<TError>[];
|
|
31
|
+
message: string;
|
|
32
|
+
};
|
|
33
|
+
export type CsvErrorState<TError extends string> = {
|
|
34
|
+
errorMap: CsvErrorMap<TError>;
|
|
35
|
+
errors: CsvStructuredError<TError>[];
|
|
36
|
+
};
|
|
37
|
+
export declare const createCsvErrorState: <TError extends string>() => CsvErrorState<TError>;
|
|
38
|
+
export declare const addCsvFileError: <TError extends string>(state: CsvErrorState<TError>, columnName: string, error: TError, message: string, value?: string) => void;
|
|
39
|
+
export declare const addCsvRowError: <TError extends string>(state: CsvErrorState<TError>, rowNum: number, columnName: string, error: TError, message: string, value?: string) => void;
|
|
40
|
+
export declare const hasCsvErrors: <TError extends string>(errorMap: CsvErrorMap<TError>) => boolean;
|
|
41
|
+
export type CsvParseErrorMap = CsvErrorMap<CsvParseErrorEnum>;
|
|
42
|
+
export type CsvParseError = CsvError<CsvParseErrorEnum>;
|
|
43
|
+
export type CsvValidationErrorType = CsvValidationErrorEnum | CsvParseErrorEnum;
|
|
44
|
+
export type CsvValidationErrorMap = CsvErrorMap<CsvValidationErrorEnum>;
|
|
45
|
+
export type CsvValidationStructuredError = CsvError<CsvValidationErrorType>;
|
|
46
|
+
export type CsvValidationError = CsvStructuredError<CsvValidationErrorType>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type CsvParseError } from "./csv-errors";
|
|
2
|
+
export { CsvParseErrorEnum, type CsvError, type CsvErrorMap, type CsvStructuredError, type CsvParseError, type CsvParseErrorMap, } from "./csv-errors";
|
|
3
|
+
export type CsvParseResult = {
|
|
4
|
+
error?: CsvParseError;
|
|
5
|
+
header: string[];
|
|
6
|
+
rows: string[][];
|
|
7
|
+
};
|
|
8
|
+
export type CsvParseOptions = {
|
|
9
|
+
requireQuotedValues?: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare const parseCsv: (csvText: string, options?: CsvParseOptions) => CsvParseResult;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { TableSchema } from "@vuu-ui/vuu-data-types";
|
|
2
|
+
import type { VuuRowDataItemType } from "@vuu-ui/vuu-protocol-types";
|
|
3
|
+
import type { CsvValidationError, CsvValidationErrorMap, CsvParseError } from "./csv-errors";
|
|
4
|
+
import type { CsvParseResult } from "./csv-parse";
|
|
5
|
+
export { CsvValidationErrorEnum, type CsvValidationError, type CsvValidationErrorMap, type CsvValidationErrorType, type CsvValidationStructuredError, } from "./csv-errors";
|
|
6
|
+
export type CsvValidationResult = {
|
|
7
|
+
columns: string[];
|
|
8
|
+
errorMap: CsvValidationErrorMap;
|
|
9
|
+
errors: CsvValidationError[];
|
|
10
|
+
parseRowError?: CsvParseError;
|
|
11
|
+
rows: Record<string, VuuRowDataItemType>[];
|
|
12
|
+
};
|
|
13
|
+
export type CsvValidationOptions = {
|
|
14
|
+
maxRows?: number;
|
|
15
|
+
};
|
|
16
|
+
export declare const validateCsvAgainstSchema: (parsed: CsvParseResult, tableSchema: TableSchema, options?: CsvValidationOptions) => CsvValidationResult;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { VuuRowDataItemType } from "@vuu-ui/vuu-protocol-types";
|
|
2
|
+
import type { CsvUploadError } from "../CsvUpload";
|
|
3
|
+
import type { CsvParseError } from "./csv-parse";
|
|
4
|
+
import type { CsvValidationError, CsvValidationResult } from "./csv-schema-validation";
|
|
5
|
+
export type CsvUploadTableData = {
|
|
6
|
+
columns: string[];
|
|
7
|
+
rows: VuuRowDataItemType[][];
|
|
8
|
+
};
|
|
9
|
+
export declare const toErrorMessage: (error: unknown) => string;
|
|
10
|
+
export declare const isCsvParseError: (value: unknown) => value is CsvParseError;
|
|
11
|
+
export declare const hasFileParseErrors: (parseError: CsvParseError) => boolean;
|
|
12
|
+
export declare const createUploadError: (source: CsvUploadError["source"], message: string, parseError?: CsvParseError, validationError?: CsvUploadError["validationError"]) => CsvUploadError;
|
|
13
|
+
export declare const mergeValidationWithParseErrors: (schemaValidation: CsvValidationResult, parseError: CsvParseError | undefined) => CsvValidationResult;
|
|
14
|
+
export declare const buildRowErrorMessage: (prefix: string, rowErrors: string[]) => string;
|
|
15
|
+
export declare const toValidationErrorsFromParseRowErrors: (parseError: CsvParseError) => CsvValidationError[];
|
|
16
|
+
export declare const normalizeTableData: (value: unknown, fallback: CsvUploadTableData) => CsvUploadTableData;
|
|
17
|
+
export type RpcBatchResult = {
|
|
18
|
+
errors: string[];
|
|
19
|
+
results: unknown[];
|
|
20
|
+
};
|
|
21
|
+
export declare const executeBatchRpcCalls: <T>(items: T[], executor: (item: T) => Promise<unknown>, errorFormatter: (item: T, error: string) => string) => Promise<RpcBatchResult>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { CSV_FIRST_DATA_ROW_NUMBER, CSV_HEADER_ROW_NUMBER, } from "./csv-constants";
|
|
2
|
+
export { CsvParseErrorEnum, CsvValidationErrorEnum, type CsvError, type CsvErrorMap, type CsvErrorState, type CsvParseError, type CsvParseErrorMap, type CsvStructuredError, type CsvValidationError, type CsvValidationErrorMap, type CsvValidationErrorType, type CsvValidationStructuredError, addCsvFileError, addCsvRowError, createCsvErrorState, hasCsvErrors, } from "./csv-errors";
|
|
3
|
+
export { parseCsv, type CsvParseOptions, type CsvParseResult, } from "./csv-parse";
|
|
4
|
+
export { validateCsvAgainstSchema, type CsvValidationOptions, type CsvValidationResult, } from "./csv-schema-validation";
|
|
5
|
+
export { buildRowErrorMessage, executeBatchRpcCalls, hasFileParseErrors, isCsvParseError, mergeValidationWithParseErrors, normalizeTableData, toErrorMessage, toValidationErrorsFromParseRowErrors, type CsvUploadTableData, type RpcBatchResult, } from "./csv-upload-utils";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { DataSource, TableSchema } from "@vuu-ui/vuu-data-types";
|
|
2
|
+
import { type CsvParseOptions } from "./parse/csv-parse";
|
|
3
|
+
import { type CsvValidationResult } from "./parse/csv-schema-validation";
|
|
4
|
+
import type { CsvUploadErrorResult, CsvUploadImportedResult, CsvUploadSessionEndResult, CsvUploadSessionTable } from "./CsvUpload";
|
|
5
|
+
export interface CsvUploadHookProps {
|
|
6
|
+
dataSource: DataSource;
|
|
7
|
+
maxRows?: number;
|
|
8
|
+
onEditSessionEnded?: (result: CsvUploadSessionEndResult) => void;
|
|
9
|
+
onEditSessionStarted?: (dataSource: DataSource) => void;
|
|
10
|
+
onError?: (result: CsvUploadErrorResult | undefined) => void;
|
|
11
|
+
onImported?: (result: CsvUploadImportedResult) => void;
|
|
12
|
+
onProcessingStarted?: () => void;
|
|
13
|
+
parseOptions?: CsvParseOptions;
|
|
14
|
+
}
|
|
15
|
+
export type UseCsvUploadReturn = {
|
|
16
|
+
canImport: boolean;
|
|
17
|
+
importData: () => Promise<void>;
|
|
18
|
+
isImporting: boolean;
|
|
19
|
+
isProcessingFile: boolean;
|
|
20
|
+
onDrop: (_event: React.DragEvent<HTMLDivElement>, files: File[]) => void;
|
|
21
|
+
onTriggerChange: (_event: React.ChangeEvent<HTMLInputElement>, files: File[]) => void;
|
|
22
|
+
sessionTable: CsvUploadSessionTable | undefined;
|
|
23
|
+
schema: TableSchema | undefined;
|
|
24
|
+
validation: CsvValidationResult | undefined;
|
|
25
|
+
};
|
|
26
|
+
export declare const useCsvUpload: ({ dataSource, onEditSessionEnded, onEditSessionStarted, onError, onImported, onProcessingStarted, maxRows, parseOptions, }: CsvUploadHookProps) => UseCsvUploadReturn;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DataSource } from "@vuu-ui/vuu-data-types";
|
|
2
|
+
import type { TableConfig } from "@vuu-ui/vuu-table-types";
|
|
3
|
+
import type { CsvUploadSessionTable } from "./CsvUpload";
|
|
4
|
+
export type UseCsvUploadSessionPreviewReturn = {
|
|
5
|
+
isLoadingPreview: boolean;
|
|
6
|
+
previewConfig: TableConfig | undefined;
|
|
7
|
+
previewDataSource: DataSource | undefined;
|
|
8
|
+
previewError: string | undefined;
|
|
9
|
+
};
|
|
10
|
+
export declare const useCsvUploadSessionPreview: (sessionTable: CsvUploadSessionTable | undefined) => UseCsvUploadSessionPreviewReturn;
|
|
@@ -4,7 +4,7 @@ export interface FreezeProps {
|
|
|
4
4
|
dataSource: DataSource;
|
|
5
5
|
}
|
|
6
6
|
export declare const useFreezeControl: ({ dataSource }: FreezeProps) => {
|
|
7
|
-
onToggleChange: (evt: SyntheticEvent<HTMLButtonElement>) => void;
|
|
8
7
|
isFrozen: boolean;
|
|
9
8
|
newRecordCount: number;
|
|
9
|
+
onToggleChange: (evt: SyntheticEvent<HTMLButtonElement>) => void;
|
|
10
10
|
};
|
package/types/index.d.ts
CHANGED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var core = require('@salt-ds/core');
|
|
5
|
-
var useCalculatedColumnPanel = require('./useCalculatedColumnPanel.js');
|
|
6
|
-
var react = require('react');
|
|
7
|
-
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
8
|
-
var ColumnExpressionInput = require('../column-expression-input/ColumnExpressionInput.js');
|
|
9
|
-
require('../column-expression-input/column-language-parser/ColumnExpressionLanguage.js');
|
|
10
|
-
require('../column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js');
|
|
11
|
-
require('../column-expression-input/column-language-parser/column-expression-parse-utils.js');
|
|
12
|
-
require('@vuu-ui/vuu-codemirror');
|
|
13
|
-
require('../column-expression-input/highlighting.js');
|
|
14
|
-
require('../column-expression-input/theme.js');
|
|
15
|
-
var useColumnExpressionSuggestionProvider = require('../column-expression-input/useColumnExpressionSuggestionProvider.js');
|
|
16
|
-
|
|
17
|
-
const classBase = "vuuCalculatedColumnPanel";
|
|
18
|
-
const CalculatedColumnPanel = ({
|
|
19
|
-
column: columnProp,
|
|
20
|
-
columnModel,
|
|
21
|
-
onChangeColumn,
|
|
22
|
-
onChangeServerDataType: onChangeServerDataTypeProp,
|
|
23
|
-
vuuTable
|
|
24
|
-
}) => {
|
|
25
|
-
const typeRef = react.useRef(null);
|
|
26
|
-
const { column, onChangeExpression, onChangeName, onChangeServerDataType } = useCalculatedColumnPanel.useCalculatedColumnPanel({
|
|
27
|
-
column: columnProp,
|
|
28
|
-
onChangeColumn,
|
|
29
|
-
onChangeServerDataType: onChangeServerDataTypeProp
|
|
30
|
-
});
|
|
31
|
-
const initialExpressionRef = react.useRef(
|
|
32
|
-
vuuUtils.getCalculatedColumnDetails(column).expression ?? ""
|
|
33
|
-
);
|
|
34
|
-
const suggestionProvider = useColumnExpressionSuggestionProvider.useColumnExpressionSuggestionProvider({
|
|
35
|
-
columns: columnModel.selectedColumns,
|
|
36
|
-
table: vuuTable
|
|
37
|
-
});
|
|
38
|
-
const handleSubmitExpression = react.useCallback(() => {
|
|
39
|
-
if (typeRef.current) {
|
|
40
|
-
typeRef.current?.querySelector("button")?.focus();
|
|
41
|
-
}
|
|
42
|
-
}, []);
|
|
43
|
-
const { name, serverDataType } = vuuUtils.getCalculatedColumnDetails(column);
|
|
44
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classBase, children: [
|
|
45
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { children: column.name }),
|
|
46
|
-
/* @__PURE__ */ jsxRuntime.jsxs(core.FormField, { "data-field": "column-name", children: [
|
|
47
|
-
/* @__PURE__ */ jsxRuntime.jsx(core.FormFieldLabel, { children: "Column Label" }),
|
|
48
|
-
/* @__PURE__ */ jsxRuntime.jsx(core.Input, { className: "vuuInput", onChange: onChangeName, value: name })
|
|
49
|
-
] }),
|
|
50
|
-
/* @__PURE__ */ jsxRuntime.jsxs(core.FormField, { "data-field": "column-expression", children: [
|
|
51
|
-
/* @__PURE__ */ jsxRuntime.jsx(core.FormFieldLabel, { children: "Expression" }),
|
|
52
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
53
|
-
ColumnExpressionInput.ColumnExpressionInput,
|
|
54
|
-
{
|
|
55
|
-
onChange: onChangeExpression,
|
|
56
|
-
onSubmitExpression: handleSubmitExpression,
|
|
57
|
-
source: initialExpressionRef.current,
|
|
58
|
-
suggestionProvider
|
|
59
|
-
}
|
|
60
|
-
)
|
|
61
|
-
] }),
|
|
62
|
-
/* @__PURE__ */ jsxRuntime.jsxs(core.FormField, { "data-field": "type", children: [
|
|
63
|
-
/* @__PURE__ */ jsxRuntime.jsx(core.FormFieldLabel, { children: "Column type" }),
|
|
64
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
65
|
-
core.Dropdown,
|
|
66
|
-
{
|
|
67
|
-
className: `${classBase}-type`,
|
|
68
|
-
onSelectionChange: onChangeServerDataType,
|
|
69
|
-
ref: typeRef,
|
|
70
|
-
selected: serverDataType ? [serverDataType] : [],
|
|
71
|
-
value: serverDataType,
|
|
72
|
-
children: [
|
|
73
|
-
/* @__PURE__ */ jsxRuntime.jsx(core.Option, { value: "boolean", children: "Boolean" }),
|
|
74
|
-
/* @__PURE__ */ jsxRuntime.jsx(core.Option, { value: "double", children: "Double" }),
|
|
75
|
-
/* @__PURE__ */ jsxRuntime.jsx(core.Option, { value: "long", children: "Long" }),
|
|
76
|
-
/* @__PURE__ */ jsxRuntime.jsx(core.Option, { value: "string", children: "String" })
|
|
77
|
-
]
|
|
78
|
-
}
|
|
79
|
-
)
|
|
80
|
-
] })
|
|
81
|
-
] });
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
exports.CalculatedColumnPanel = CalculatedColumnPanel;
|
|
85
|
-
//# sourceMappingURL=CalculatedColumnPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CalculatedColumnPanel.js","sources":["../../../../packages/vuu-table-extras/src/calculated-column/CalculatedColumnPanel.tsx"],"sourcesContent":["import {\n Dropdown,\n FormField,\n FormFieldLabel,\n Input,\n Option,\n} from \"@salt-ds/core\";\nimport { useCalculatedColumnPanel } from \"./useCalculatedColumnPanel\";\nimport { HTMLAttributes, useCallback, useRef } from \"react\";\nimport { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { VuuColumnDataType, VuuTable } from \"@vuu-ui/vuu-protocol-types\";\nimport { getCalculatedColumnDetails } from \"@vuu-ui/vuu-utils\";\nimport {\n ColumnExpressionInput,\n ColumnExpressionSubmitHandler,\n useColumnExpressionSuggestionProvider,\n} from \"../column-expression-input\";\nimport { ColumnModel } from \"../column-picker/ColumnModel\";\n\nconst classBase = \"vuuCalculatedColumnPanel\";\n\nexport interface CalculatedColumnPanelProps\n extends HTMLAttributes<HTMLDivElement> {\n column: ColumnDescriptor;\n columnModel: ColumnModel;\n onChangeColumn: (column: ColumnDescriptor) => void;\n onChangeServerDataType?: (name: VuuColumnDataType) => void;\n vuuTable: VuuTable;\n}\n\nexport const CalculatedColumnPanel = ({\n column: columnProp,\n columnModel,\n onChangeColumn,\n onChangeServerDataType: onChangeServerDataTypeProp,\n vuuTable,\n}: CalculatedColumnPanelProps) => {\n const typeRef = useRef<HTMLButtonElement>(null);\n\n const { column, onChangeExpression, onChangeName, onChangeServerDataType } =\n useCalculatedColumnPanel({\n column: columnProp,\n onChangeColumn,\n onChangeServerDataType: onChangeServerDataTypeProp,\n });\n // The initial value to pass into the Expression Input. That is a\n // CodeMirror editor and will manage its own state once initialised.\n const initialExpressionRef = useRef<string>(\n getCalculatedColumnDetails(column).expression ?? \"\",\n );\n\n const suggestionProvider = useColumnExpressionSuggestionProvider({\n columns: columnModel.selectedColumns,\n table: vuuTable,\n });\n\n const handleSubmitExpression =\n useCallback<ColumnExpressionSubmitHandler>(() => {\n if (typeRef.current) {\n (\n typeRef.current?.querySelector(\"button\") as HTMLButtonElement\n )?.focus();\n }\n }, []);\n\n const { name, serverDataType } = getCalculatedColumnDetails(column);\n\n return (\n <div className={classBase}>\n <div>{column.name}</div>\n\n <FormField data-field=\"column-name\">\n <FormFieldLabel>Column Label</FormFieldLabel>\n <Input className=\"vuuInput\" onChange={onChangeName} value={name} />\n </FormField>\n\n <FormField data-field=\"column-expression\">\n <FormFieldLabel>Expression</FormFieldLabel>\n <ColumnExpressionInput\n onChange={onChangeExpression}\n onSubmitExpression={handleSubmitExpression}\n source={initialExpressionRef.current}\n suggestionProvider={suggestionProvider}\n />\n </FormField>\n <FormField data-field=\"type\">\n <FormFieldLabel>Column type</FormFieldLabel>\n <Dropdown\n className={`${classBase}-type`}\n onSelectionChange={onChangeServerDataType}\n ref={typeRef}\n selected={serverDataType ? [serverDataType] : []}\n value={serverDataType}\n >\n <Option value=\"boolean\">Boolean</Option>\n <Option value=\"double\">Double</Option>\n <Option value=\"long\">Long</Option>\n <Option value=\"string\">String</Option>\n </Dropdown>\n </FormField>\n </div>\n );\n};\n"],"names":["useRef","useCalculatedColumnPanel","getCalculatedColumnDetails","useColumnExpressionSuggestionProvider","useCallback","jsxs","jsx","FormField","FormFieldLabel","Input","ColumnExpressionInput","Dropdown","Option"],"mappings":";;;;;;;;;;;;;;;;AAmBA,MAAM,SAAY,GAAA,0BAAA;AAWX,MAAM,wBAAwB,CAAC;AAAA,EACpC,MAAQ,EAAA,UAAA;AAAA,EACR,WAAA;AAAA,EACA,cAAA;AAAA,EACA,sBAAwB,EAAA,0BAAA;AAAA,EACxB;AACF,CAAkC,KAAA;AAChC,EAAM,MAAA,OAAA,GAAUA,aAA0B,IAAI,CAAA;AAE9C,EAAA,MAAM,EAAE,MAAQ,EAAA,kBAAA,EAAoB,YAAc,EAAA,sBAAA,KAChDC,iDAAyB,CAAA;AAAA,IACvB,MAAQ,EAAA,UAAA;AAAA,IACR,cAAA;AAAA,IACA,sBAAwB,EAAA;AAAA,GACzB,CAAA;AAGH,EAAA,MAAM,oBAAuB,GAAAD,YAAA;AAAA,IAC3BE,mCAAA,CAA2B,MAAM,CAAA,CAAE,UAAc,IAAA;AAAA,GACnD;AAEA,EAAA,MAAM,qBAAqBC,2EAAsC,CAAA;AAAA,IAC/D,SAAS,WAAY,CAAA,eAAA;AAAA,IACrB,KAAO,EAAA;AAAA,GACR,CAAA;AAED,EAAM,MAAA,sBAAA,GACJC,kBAA2C,MAAM;AAC/C,IAAA,IAAI,QAAQ,OAAS,EAAA;AACnB,MACE,OAAQ,CAAA,OAAA,EAAS,aAAc,CAAA,QAAQ,GACtC,KAAM,EAAA;AAAA;AACX,GACF,EAAG,EAAE,CAAA;AAEP,EAAA,MAAM,EAAE,IAAA,EAAM,cAAe,EAAA,GAAIF,oCAA2B,MAAM,CAAA;AAElE,EACE,uBAAAG,eAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,SACd,EAAA,QAAA,EAAA;AAAA,oBAACC,cAAA,CAAA,KAAA,EAAA,EAAK,iBAAO,IAAK,EAAA,CAAA;AAAA,oBAElBD,eAAA,CAACE,cAAU,EAAA,EAAA,YAAA,EAAW,aACpB,EAAA,QAAA,EAAA;AAAA,sBAAAD,cAAA,CAACE,uBAAe,QAAY,EAAA,cAAA,EAAA,CAAA;AAAA,qCAC3BC,UAAM,EAAA,EAAA,SAAA,EAAU,YAAW,QAAU,EAAA,YAAA,EAAc,OAAO,IAAM,EAAA;AAAA,KACnE,EAAA,CAAA;AAAA,oBAEAJ,eAAA,CAACE,cAAU,EAAA,EAAA,YAAA,EAAW,mBACpB,EAAA,QAAA,EAAA;AAAA,sBAAAD,cAAA,CAACE,uBAAe,QAAU,EAAA,YAAA,EAAA,CAAA;AAAA,sBAC1BF,cAAA;AAAA,QAACI,2CAAA;AAAA,QAAA;AAAA,UACC,QAAU,EAAA,kBAAA;AAAA,UACV,kBAAoB,EAAA,sBAAA;AAAA,UACpB,QAAQ,oBAAqB,CAAA,OAAA;AAAA,UAC7B;AAAA;AAAA;AACF,KACF,EAAA,CAAA;AAAA,oBACAL,eAAA,CAACE,cAAU,EAAA,EAAA,YAAA,EAAW,MACpB,EAAA,QAAA,EAAA;AAAA,sBAAAD,cAAA,CAACE,uBAAe,QAAW,EAAA,aAAA,EAAA,CAAA;AAAA,sBAC3BH,eAAA;AAAA,QAACM,aAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,GAAG,SAAS,CAAA,KAAA,CAAA;AAAA,UACvB,iBAAmB,EAAA,sBAAA;AAAA,UACnB,GAAK,EAAA,OAAA;AAAA,UACL,QAAU,EAAA,cAAA,GAAiB,CAAC,cAAc,IAAI,EAAC;AAAA,UAC/C,KAAO,EAAA,cAAA;AAAA,UAEP,QAAA,EAAA;AAAA,4BAACL,cAAA,CAAAM,WAAA,EAAA,EAAO,KAAM,EAAA,SAAA,EAAU,QAAO,EAAA,SAAA,EAAA,CAAA;AAAA,4BAC9BN,cAAA,CAAAM,WAAA,EAAA,EAAO,KAAM,EAAA,QAAA,EAAS,QAAM,EAAA,QAAA,EAAA,CAAA;AAAA,4BAC5BN,cAAA,CAAAM,WAAA,EAAA,EAAO,KAAM,EAAA,MAAA,EAAO,QAAI,EAAA,MAAA,EAAA,CAAA;AAAA,4BACxBN,cAAA,CAAAM,WAAA,EAAA,EAAO,KAAM,EAAA,QAAA,EAAS,QAAM,EAAA,QAAA,EAAA;AAAA;AAAA;AAAA;AAC/B,KACF,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
4
|
-
var react = require('react');
|
|
5
|
-
|
|
6
|
-
const applyDefaults = (column) => {
|
|
7
|
-
const { name, expression, serverDataType } = vuuUtils.getCalculatedColumnDetails(column);
|
|
8
|
-
if (serverDataType === void 0) {
|
|
9
|
-
return {
|
|
10
|
-
...column,
|
|
11
|
-
name: `${name}:string:${expression}`
|
|
12
|
-
};
|
|
13
|
-
} else {
|
|
14
|
-
return column;
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
const useCalculatedColumnPanel = ({
|
|
18
|
-
column: columnProp,
|
|
19
|
-
onChangeColumn,
|
|
20
|
-
onChangeServerDataType: onChangeServerDataTypeProp
|
|
21
|
-
}) => {
|
|
22
|
-
const [column, _setColumn] = react.useState(
|
|
23
|
-
applyDefaults(columnProp)
|
|
24
|
-
);
|
|
25
|
-
const columnRef = react.useRef(columnProp);
|
|
26
|
-
const setColumn = react.useCallback((column2) => {
|
|
27
|
-
columnRef.current = column2;
|
|
28
|
-
_setColumn(column2);
|
|
29
|
-
}, []);
|
|
30
|
-
const onChangeName = react.useCallback(
|
|
31
|
-
(evt) => {
|
|
32
|
-
const { value } = evt.target;
|
|
33
|
-
const newColumn = vuuUtils.setCalculatedColumnName(column, value);
|
|
34
|
-
console.log(`name = ${newColumn.name}`);
|
|
35
|
-
setColumn(newColumn);
|
|
36
|
-
onChangeColumn(newColumn);
|
|
37
|
-
},
|
|
38
|
-
[column, onChangeColumn, setColumn]
|
|
39
|
-
);
|
|
40
|
-
const onChangeExpression = react.useCallback(
|
|
41
|
-
(value) => {
|
|
42
|
-
console.log(`expression = ${value}`);
|
|
43
|
-
const expression = value.trim();
|
|
44
|
-
const { current: column2 } = columnRef;
|
|
45
|
-
const newColumn = vuuUtils.setCalculatedColumnExpression(column2, expression);
|
|
46
|
-
setColumn(newColumn);
|
|
47
|
-
onChangeColumn(newColumn);
|
|
48
|
-
},
|
|
49
|
-
[onChangeColumn, setColumn]
|
|
50
|
-
);
|
|
51
|
-
const onChangeServerDataType = react.useCallback(
|
|
52
|
-
(_e, [serverDataType]) => {
|
|
53
|
-
if (vuuUtils.isVuuColumnDataType(serverDataType)) {
|
|
54
|
-
const newColumn = vuuUtils.setCalculatedColumnType(column, serverDataType);
|
|
55
|
-
setColumn(newColumn);
|
|
56
|
-
onChangeServerDataTypeProp?.(serverDataType);
|
|
57
|
-
onChangeColumn(newColumn);
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
[column, onChangeColumn, onChangeServerDataTypeProp, setColumn]
|
|
61
|
-
);
|
|
62
|
-
return {
|
|
63
|
-
column,
|
|
64
|
-
onChangeExpression,
|
|
65
|
-
onChangeName,
|
|
66
|
-
onChangeServerDataType
|
|
67
|
-
};
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
exports.useCalculatedColumnPanel = useCalculatedColumnPanel;
|
|
71
|
-
//# sourceMappingURL=useCalculatedColumnPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCalculatedColumnPanel.js","sources":["../../../../packages/vuu-table-extras/src/calculated-column/useCalculatedColumnPanel.ts"],"sourcesContent":["import { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport {\n getCalculatedColumnDetails,\n isVuuColumnDataType,\n setCalculatedColumnExpression,\n setCalculatedColumnName,\n setCalculatedColumnType,\n} from \"@vuu-ui/vuu-utils\";\nimport {\n FormEventHandler,\n SyntheticEvent,\n useCallback,\n useRef,\n useState,\n} from \"react\";\nimport { CalculatedColumnPanelProps } from \"./CalculatedColumnPanel\";\n\nexport type ColumnExpressionHookProps = Pick<\n CalculatedColumnPanelProps,\n \"column\" | \"onChangeColumn\" | \"onChangeServerDataType\"\n>;\n\nconst applyDefaults = (column: ColumnDescriptor) => {\n const { name, expression, serverDataType } =\n getCalculatedColumnDetails(column);\n if (serverDataType === undefined) {\n return {\n ...column,\n name: `${name}:string:${expression}`,\n };\n } else {\n return column;\n }\n};\n\nexport const useCalculatedColumnPanel = ({\n column: columnProp,\n onChangeColumn,\n onChangeServerDataType: onChangeServerDataTypeProp,\n}: ColumnExpressionHookProps) => {\n const [column, _setColumn] = useState<ColumnDescriptor>(\n applyDefaults(columnProp),\n );\n const columnRef = useRef<ColumnDescriptor>(columnProp);\n const setColumn = useCallback((column: ColumnDescriptor) => {\n columnRef.current = column;\n _setColumn(column);\n }, []);\n\n // We need to track column name in a ref because ColunExpressionInput\n // is not a pure React component, it hosts a CodeMirror editor. We\n // do not want to cause it to render mid-edit. Therefore it uses memo\n // and only renders on initial load. onChangeExpression must be stable.\n // const columnNameRef = useRef<string>(column.name);\n // const expressionRef = useRef(getCalculatedColumnDetails(column)[1]);\n const onChangeName = useCallback<FormEventHandler>(\n (evt) => {\n const { value } = evt.target as HTMLInputElement;\n const newColumn = setCalculatedColumnName(column, value);\n // columnNameRef.current = newColumn.name;\n console.log(`name = ${newColumn.name}`);\n setColumn(newColumn);\n onChangeColumn(newColumn);\n },\n [column, onChangeColumn, setColumn],\n );\n\n const onChangeExpression = useCallback(\n (value: string) => {\n console.log(`expression = ${value}`);\n // we do not set state when this changes as the codemirror editor\n // manages state of the expression for us until complete\n const expression = value.trim();\n // expressionRef.current = expression;\n // const [name, , type] = column.name.split(\":\");\n // columnNameRef.current = `${name}:${expression}:${type}`;\n\n const { current: column } = columnRef;\n const newColumn = setCalculatedColumnExpression(column, expression);\n setColumn(newColumn);\n\n onChangeColumn(newColumn);\n },\n [onChangeColumn, setColumn],\n );\n\n const onChangeServerDataType = useCallback(\n (_e: SyntheticEvent, [serverDataType]: string[]) => {\n if (isVuuColumnDataType(serverDataType)) {\n const newColumn = setCalculatedColumnType(column, serverDataType);\n setColumn(newColumn);\n onChangeServerDataTypeProp?.(serverDataType);\n onChangeColumn(newColumn);\n }\n },\n [column, onChangeColumn, onChangeServerDataTypeProp, setColumn],\n );\n\n return {\n column,\n onChangeExpression,\n onChangeName,\n onChangeServerDataType,\n };\n};\n"],"names":["getCalculatedColumnDetails","useState","useRef","useCallback","column","setCalculatedColumnName","setCalculatedColumnExpression","isVuuColumnDataType","setCalculatedColumnType"],"mappings":";;;;;AAsBA,MAAM,aAAA,GAAgB,CAAC,MAA6B,KAAA;AAClD,EAAA,MAAM,EAAE,IAAM,EAAA,UAAA,EAAY,cAAe,EAAA,GACvCA,oCAA2B,MAAM,CAAA;AACnC,EAAA,IAAI,mBAAmB,KAAW,CAAA,EAAA;AAChC,IAAO,OAAA;AAAA,MACL,GAAG,MAAA;AAAA,MACH,IAAM,EAAA,CAAA,EAAG,IAAI,CAAA,QAAA,EAAW,UAAU,CAAA;AAAA,KACpC;AAAA,GACK,MAAA;AACL,IAAO,OAAA,MAAA;AAAA;AAEX,CAAA;AAEO,MAAM,2BAA2B,CAAC;AAAA,EACvC,MAAQ,EAAA,UAAA;AAAA,EACR,cAAA;AAAA,EACA,sBAAwB,EAAA;AAC1B,CAAiC,KAAA;AAC/B,EAAM,MAAA,CAAC,MAAQ,EAAA,UAAU,CAAI,GAAAC,cAAA;AAAA,IAC3B,cAAc,UAAU;AAAA,GAC1B;AACA,EAAM,MAAA,SAAA,GAAYC,aAAyB,UAAU,CAAA;AACrD,EAAM,MAAA,SAAA,GAAYC,iBAAY,CAAA,CAACC,OAA6B,KAAA;AAC1D,IAAA,SAAA,CAAU,OAAUA,GAAAA,OAAAA;AACpB,IAAA,UAAA,CAAWA,OAAM,CAAA;AAAA,GACnB,EAAG,EAAE,CAAA;AAQL,EAAA,MAAM,YAAe,GAAAD,iBAAA;AAAA,IACnB,CAAC,GAAQ,KAAA;AACP,MAAM,MAAA,EAAE,KAAM,EAAA,GAAI,GAAI,CAAA,MAAA;AACtB,MAAM,MAAA,SAAA,GAAYE,gCAAwB,CAAA,MAAA,EAAQ,KAAK,CAAA;AAEvD,MAAA,OAAA,CAAQ,GAAI,CAAA,CAAA,OAAA,EAAU,SAAU,CAAA,IAAI,CAAE,CAAA,CAAA;AACtC,MAAA,SAAA,CAAU,SAAS,CAAA;AACnB,MAAA,cAAA,CAAe,SAAS,CAAA;AAAA,KAC1B;AAAA,IACA,CAAC,MAAQ,EAAA,cAAA,EAAgB,SAAS;AAAA,GACpC;AAEA,EAAA,MAAM,kBAAqB,GAAAF,iBAAA;AAAA,IACzB,CAAC,KAAkB,KAAA;AACjB,MAAQ,OAAA,CAAA,GAAA,CAAI,CAAgB,aAAA,EAAA,KAAK,CAAE,CAAA,CAAA;AAGnC,MAAM,MAAA,UAAA,GAAa,MAAM,IAAK,EAAA;AAK9B,MAAM,MAAA,EAAE,OAASC,EAAAA,OAAAA,EAAW,GAAA,SAAA;AAC5B,MAAM,MAAA,SAAA,GAAYE,sCAA8BF,CAAAA,OAAAA,EAAQ,UAAU,CAAA;AAClE,MAAA,SAAA,CAAU,SAAS,CAAA;AAEnB,MAAA,cAAA,CAAe,SAAS,CAAA;AAAA,KAC1B;AAAA,IACA,CAAC,gBAAgB,SAAS;AAAA,GAC5B;AAEA,EAAA,MAAM,sBAAyB,GAAAD,iBAAA;AAAA,IAC7B,CAAC,EAAA,EAAoB,CAAC,cAAc,CAAgB,KAAA;AAClD,MAAI,IAAAI,4BAAA,CAAoB,cAAc,CAAG,EAAA;AACvC,QAAM,MAAA,SAAA,GAAYC,gCAAwB,CAAA,MAAA,EAAQ,cAAc,CAAA;AAChE,QAAA,SAAA,CAAU,SAAS,CAAA;AACnB,QAAA,0BAAA,GAA6B,cAAc,CAAA;AAC3C,QAAA,cAAA,CAAe,SAAS,CAAA;AAAA;AAC1B,KACF;AAAA,IACA,CAAC,MAAA,EAAQ,cAAgB,EAAA,0BAAA,EAA4B,SAAS;AAAA,GAChE;AAEA,EAAO,OAAA;AAAA,IACL,MAAA;AAAA,IACA,kBAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
|