@vuu-ui/vuu-table-extras 2.1.16 → 2.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/node_modules/csv-parse/dist/esm/sync.js +3978 -0
- package/cjs/node_modules/csv-parse/dist/esm/sync.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/calculated-column/CalculatedColumnPanel.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/calculated-column/useCalculatedColumnPanel.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/calculated-column/useEditCalculatedColumn.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/cell-edit-validators/CaseValidator.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/cell-edit-validators/PatternValidator.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/useDirection.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/cell-renderers/lookup-cell/LookupCell.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-expression-input/column-function-descriptors.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/generated/column-parser.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-expression-input/functionDocInfo.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-expression-input/highlighting.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-expression-input/theme.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnAutoComplete.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionEditor.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionSuggestionProvider.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-formatting-settings/BaseNumericFormattingSettings.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-formatting-settings/ColumnFormattingPanel.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-formatting-settings/DateTimeFormattingSettings.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-menu/ColumnMenu.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-menu/column-menu-utils.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-menu/useColumnActions.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-picker/ColumnModel.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-picker/ColumnPicker.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-picker/ColumnPickerAction.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-picker/useColumnPicker.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-picker/useTableColumnPicker.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/column-settings-panel/useColumnSettings.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/CsvUpload.css.js +6 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/CsvUpload.css.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/CsvUpload.js +95 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/CsvUpload.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-constants.js +8 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-constants.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-errors.js +64 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-errors.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-parse.js +199 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-parse.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-schema-validation.js +100 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-schema-validation.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-upload-utils.js +86 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-upload-utils.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/useCsvUpload.js +306 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/useCsvUpload.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/useCsvUploadSessionPreview.js +73 -0
- package/cjs/packages/vuu-table-extras/src/csv-upload/useCsvUploadSessionPreview.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/datasource-stats/useDatasourceStats.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/freeze-control/FreezeControl.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/freeze-control/FrozenBanner.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/freeze-control/freezeControlBadge.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/freeze-control/useFreezeControl.js.map +1 -0
- package/cjs/{index.js → packages/vuu-table-extras/src/index.js} +16 -0
- package/cjs/packages/vuu-table-extras/src/index.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableSettingsAction.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/useTabbedTableConfigPanel.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/table-footer/TableFooter.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/table-provider/TableProvider.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.js.map +1 -0
- package/cjs/packages/vuu-table-extras/src/table-settings-panel/useTableSettings.js.map +1 -0
- package/esm/node_modules/csv-parse/dist/esm/sync.js +3974 -0
- package/esm/node_modules/csv-parse/dist/esm/sync.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/calculated-column/CalculatedColumnPanel.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/calculated-column/useCalculatedColumnPanel.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/calculated-column/useEditCalculatedColumn.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/cell-edit-validators/CaseValidator.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/cell-edit-validators/PatternValidator.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/useDirection.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/cell-renderers/lookup-cell/LookupCell.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-expression-input/column-function-descriptors.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/generated/column-parser.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-expression-input/functionDocInfo.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-expression-input/highlighting.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-expression-input/theme.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnAutoComplete.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionEditor.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionSuggestionProvider.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-formatting-settings/BaseNumericFormattingSettings.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-formatting-settings/ColumnFormattingPanel.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-formatting-settings/DateTimeFormattingSettings.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-menu/ColumnMenu.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-menu/column-menu-utils.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-menu/useColumnActions.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-picker/ColumnModel.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-picker/ColumnPicker.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-picker/ColumnPickerAction.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-picker/useColumnPicker.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-picker/useTableColumnPicker.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/column-settings-panel/useColumnSettings.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/CsvUpload.css.js +4 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/CsvUpload.css.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/CsvUpload.js +93 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/CsvUpload.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-constants.js +5 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-constants.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-errors.js +57 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-errors.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-parse.js +196 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-parse.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-schema-validation.js +97 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-schema-validation.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-upload-utils.js +76 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-upload-utils.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/useCsvUpload.js +304 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/useCsvUpload.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/useCsvUploadSessionPreview.js +71 -0
- package/esm/packages/vuu-table-extras/src/csv-upload/useCsvUploadSessionPreview.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/datasource-stats/useDatasourceStats.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/freeze-control/FreezeControl.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/freeze-control/FrozenBanner.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/freeze-control/freezeControlBadge.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/freeze-control/useFreezeControl.js.map +1 -0
- package/esm/{index.js → packages/vuu-table-extras/src/index.js} +7 -0
- package/{cjs → esm/packages/vuu-table-extras/src}/index.js.map +1 -1
- package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableSettingsAction.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/useTabbedTableConfigPanel.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/table-footer/TableFooter.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/table-provider/TableProvider.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.js.map +1 -0
- package/esm/packages/vuu-table-extras/src/table-settings-panel/useTableSettings.js.map +1 -0
- package/package.json +15 -14
- 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/index.d.ts +1 -0
- package/cjs/calculated-column/CalculatedColumnPanel.js.map +0 -1
- package/cjs/calculated-column/useCalculatedColumnPanel.js.map +0 -1
- package/cjs/calculated-column/useEditCalculatedColumn.js.map +0 -1
- package/cjs/cell-edit-validators/CaseValidator.js.map +0 -1
- package/cjs/cell-edit-validators/PatternValidator.js.map +0 -1
- package/cjs/cell-renderers/background-cell/BackgroundCell.js.map +0 -1
- package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +0 -1
- package/cjs/cell-renderers/background-cell/useDirection.js.map +0 -1
- package/cjs/cell-renderers/button-cell/IconButtonCell.js.map +0 -1
- package/cjs/cell-renderers/dropdown-cell/DropdownCell.js.map +0 -1
- package/cjs/cell-renderers/lookup-cell/LookupCell.js.map +0 -1
- package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.js.map +0 -1
- package/cjs/cell-renderers/progress-cell/ProgressCell.js.map +0 -1
- package/cjs/column-expression-input/ColumnExpressionInput.js.map +0 -1
- package/cjs/column-expression-input/column-function-descriptors.js.map +0 -1
- package/cjs/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +0 -1
- 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.map +0 -1
- package/cjs/column-expression-input/column-language-parser/generated/column-parser.js.map +0 -1
- package/cjs/column-expression-input/functionDocInfo.js.map +0 -1
- package/cjs/column-expression-input/highlighting.js.map +0 -1
- package/cjs/column-expression-input/theme.js.map +0 -1
- package/cjs/column-expression-input/useColumnAutoComplete.js.map +0 -1
- package/cjs/column-expression-input/useColumnExpressionEditor.js.map +0 -1
- package/cjs/column-expression-input/useColumnExpressionSuggestionProvider.js.map +0 -1
- package/cjs/column-formatting-settings/BaseNumericFormattingSettings.js.map +0 -1
- package/cjs/column-formatting-settings/ColumnFormattingPanel.js.map +0 -1
- package/cjs/column-formatting-settings/DateTimeFormattingSettings.js.map +0 -1
- package/cjs/column-formatting-settings/LongTypeFormattingSettings.js.map +0 -1
- package/cjs/column-menu/ColumnMenu.js.map +0 -1
- package/cjs/column-menu/column-menu-utils.js.map +0 -1
- package/cjs/column-menu/useColumnActions.js.map +0 -1
- package/cjs/column-picker/ColumnModel.js.map +0 -1
- package/cjs/column-picker/ColumnPicker.js.map +0 -1
- package/cjs/column-picker/ColumnPickerAction.js.map +0 -1
- package/cjs/column-picker/useColumnPicker.js.map +0 -1
- package/cjs/column-picker/useTableColumnPicker.js.map +0 -1
- package/cjs/column-settings-panel/ColumnNameLabel.js.map +0 -1
- package/cjs/column-settings-panel/ColumnSettingsPanel.js.map +0 -1
- package/cjs/column-settings-panel/useColumnSettings.js.map +0 -1
- package/cjs/datasource-stats/DatasourceStats.js.map +0 -1
- package/cjs/datasource-stats/useDatasourceStats.js.map +0 -1
- package/cjs/freeze-control/FreezeControl.js.map +0 -1
- package/cjs/freeze-control/FrozenBanner.js.map +0 -1
- package/cjs/freeze-control/freezeControlBadge.js.map +0 -1
- package/cjs/freeze-control/useFreezeControl.js.map +0 -1
- package/cjs/tabbed-table-config-panel/TabbedTableConfigPanel.js.map +0 -1
- package/cjs/tabbed-table-config-panel/TabbedTableSettingsAction.js.map +0 -1
- package/cjs/tabbed-table-config-panel/useTabbedTableConfigPanel.js.map +0 -1
- package/cjs/table-footer/TableFooter.js.map +0 -1
- package/cjs/table-provider/TableProvider.js.map +0 -1
- package/cjs/table-settings-panel/TableSettingsPanel.js.map +0 -1
- package/cjs/table-settings-panel/useTableSettings.js.map +0 -1
- package/esm/calculated-column/CalculatedColumnPanel.js.map +0 -1
- package/esm/calculated-column/useCalculatedColumnPanel.js.map +0 -1
- package/esm/calculated-column/useEditCalculatedColumn.js.map +0 -1
- package/esm/cell-edit-validators/CaseValidator.js.map +0 -1
- package/esm/cell-edit-validators/PatternValidator.js.map +0 -1
- package/esm/cell-renderers/background-cell/BackgroundCell.js.map +0 -1
- package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +0 -1
- package/esm/cell-renderers/background-cell/useDirection.js.map +0 -1
- package/esm/cell-renderers/button-cell/IconButtonCell.js.map +0 -1
- package/esm/cell-renderers/dropdown-cell/DropdownCell.js.map +0 -1
- package/esm/cell-renderers/lookup-cell/LookupCell.js.map +0 -1
- package/esm/cell-renderers/pct-progress-cell/PctProgressCell.js.map +0 -1
- package/esm/cell-renderers/progress-cell/ProgressCell.js.map +0 -1
- package/esm/column-expression-input/ColumnExpressionInput.js.map +0 -1
- package/esm/column-expression-input/column-function-descriptors.js.map +0 -1
- package/esm/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +0 -1
- 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.map +0 -1
- package/esm/column-expression-input/column-language-parser/generated/column-parser.js.map +0 -1
- package/esm/column-expression-input/functionDocInfo.js.map +0 -1
- package/esm/column-expression-input/highlighting.js.map +0 -1
- package/esm/column-expression-input/theme.js.map +0 -1
- package/esm/column-expression-input/useColumnAutoComplete.js.map +0 -1
- package/esm/column-expression-input/useColumnExpressionEditor.js.map +0 -1
- package/esm/column-expression-input/useColumnExpressionSuggestionProvider.js.map +0 -1
- package/esm/column-formatting-settings/BaseNumericFormattingSettings.js.map +0 -1
- package/esm/column-formatting-settings/ColumnFormattingPanel.js.map +0 -1
- package/esm/column-formatting-settings/DateTimeFormattingSettings.js.map +0 -1
- package/esm/column-formatting-settings/LongTypeFormattingSettings.js.map +0 -1
- package/esm/column-menu/ColumnMenu.js.map +0 -1
- package/esm/column-menu/column-menu-utils.js.map +0 -1
- package/esm/column-menu/useColumnActions.js.map +0 -1
- package/esm/column-picker/ColumnModel.js.map +0 -1
- package/esm/column-picker/ColumnPicker.js.map +0 -1
- package/esm/column-picker/ColumnPickerAction.js.map +0 -1
- package/esm/column-picker/useColumnPicker.js.map +0 -1
- package/esm/column-picker/useTableColumnPicker.js.map +0 -1
- package/esm/column-settings-panel/ColumnNameLabel.js.map +0 -1
- package/esm/column-settings-panel/ColumnSettingsPanel.js.map +0 -1
- package/esm/column-settings-panel/useColumnSettings.js.map +0 -1
- package/esm/datasource-stats/DatasourceStats.js.map +0 -1
- package/esm/datasource-stats/useDatasourceStats.js.map +0 -1
- package/esm/freeze-control/FreezeControl.js.map +0 -1
- package/esm/freeze-control/FrozenBanner.js.map +0 -1
- package/esm/freeze-control/freezeControlBadge.js.map +0 -1
- package/esm/freeze-control/useFreezeControl.js.map +0 -1
- package/esm/index.js.map +0 -1
- package/esm/tabbed-table-config-panel/TabbedTableConfigPanel.js.map +0 -1
- package/esm/tabbed-table-config-panel/TabbedTableSettingsAction.js.map +0 -1
- package/esm/tabbed-table-config-panel/useTabbedTableConfigPanel.js.map +0 -1
- package/esm/table-footer/TableFooter.js.map +0 -1
- package/esm/table-provider/TableProvider.js.map +0 -1
- package/esm/table-settings-panel/TableSettingsPanel.js.map +0 -1
- package/esm/table-settings-panel/useTableSettings.js.map +0 -1
- /package/cjs/{calculated-column → packages/vuu-table-extras/src/calculated-column}/CalculatedColumnPanel.js +0 -0
- /package/cjs/{calculated-column → packages/vuu-table-extras/src/calculated-column}/useCalculatedColumnPanel.js +0 -0
- /package/cjs/{calculated-column → packages/vuu-table-extras/src/calculated-column}/useEditCalculatedColumn.js +0 -0
- /package/cjs/{cell-edit-validators → packages/vuu-table-extras/src/cell-edit-validators}/CaseValidator.js +0 -0
- /package/cjs/{cell-edit-validators → packages/vuu-table-extras/src/cell-edit-validators}/PatternValidator.js +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCell.css.js +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCell.css.js.map +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCell.js +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCellConfigurationEditor.css.js +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCellConfigurationEditor.css.js.map +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCellConfigurationEditor.js +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundKeyframes.css.js +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundKeyframes.css.js.map +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/useDirection.js +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/button-cell/IconButtonCell.css.js +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/button-cell/IconButtonCell.css.js.map +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/button-cell/IconButtonCell.js +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/dropdown-cell/DropdownCell.css.js +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/dropdown-cell/DropdownCell.css.js.map +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/dropdown-cell/DropdownCell.js +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/lookup-cell/LookupCell.js +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/pct-progress-cell/PctProgressCell.css.js +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/pct-progress-cell/PctProgressCell.css.js.map +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/pct-progress-cell/PctProgressCell.js +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/progress-cell/ProgressCell.css.js +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/progress-cell/ProgressCell.css.js.map +0 -0
- /package/cjs/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/progress-cell/ProgressCell.js +0 -0
- /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/ColumnExpressionInput.css.js +0 -0
- /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/ColumnExpressionInput.css.js.map +0 -0
- /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/ColumnExpressionInput.js +0 -0
- /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-function-descriptors.js +0 -0
- /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-language-parser/ColumnExpressionLanguage.js +0 -0
- /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-language-parser/ColumnExpressionTreeWalker.js +0 -0
- /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-language-parser/column-expression-parse-utils.js +0 -0
- /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-language-parser/generated/column-parser.js +0 -0
- /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/functionDocInfo.js +0 -0
- /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/highlighting.js +0 -0
- /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/theme.js +0 -0
- /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/useColumnAutoComplete.js +0 -0
- /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/useColumnExpressionEditor.js +0 -0
- /package/cjs/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/useColumnExpressionSuggestionProvider.js +0 -0
- /package/cjs/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/BaseNumericFormattingSettings.js +0 -0
- /package/cjs/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/ColumnFormattingPanel.js +0 -0
- /package/cjs/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/DateTimeFormattingSettings.js +0 -0
- /package/cjs/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/LongTypeFormattingSettings.css.js +0 -0
- /package/cjs/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/LongTypeFormattingSettings.css.js.map +0 -0
- /package/cjs/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/LongTypeFormattingSettings.js +0 -0
- /package/cjs/{column-menu → packages/vuu-table-extras/src/column-menu}/ColumnMenu.css.js +0 -0
- /package/cjs/{column-menu → packages/vuu-table-extras/src/column-menu}/ColumnMenu.css.js.map +0 -0
- /package/cjs/{column-menu → packages/vuu-table-extras/src/column-menu}/ColumnMenu.js +0 -0
- /package/cjs/{column-menu → packages/vuu-table-extras/src/column-menu}/column-menu-utils.js +0 -0
- /package/cjs/{column-menu → packages/vuu-table-extras/src/column-menu}/useColumnActions.js +0 -0
- /package/cjs/{column-picker → packages/vuu-table-extras/src/column-picker}/ColumnModel.js +0 -0
- /package/cjs/{column-picker → packages/vuu-table-extras/src/column-picker}/ColumnPicker.css.js +0 -0
- /package/cjs/{column-picker → packages/vuu-table-extras/src/column-picker}/ColumnPicker.css.js.map +0 -0
- /package/cjs/{column-picker → packages/vuu-table-extras/src/column-picker}/ColumnPicker.js +0 -0
- /package/cjs/{column-picker → packages/vuu-table-extras/src/column-picker}/ColumnPickerAction.js +0 -0
- /package/cjs/{column-picker → packages/vuu-table-extras/src/column-picker}/useColumnPicker.js +0 -0
- /package/cjs/{column-picker → packages/vuu-table-extras/src/column-picker}/useTableColumnPicker.js +0 -0
- /package/cjs/{column-settings-panel → packages/vuu-table-extras/src/column-settings-panel}/ColumnNameLabel.css.js +0 -0
- /package/cjs/{column-settings-panel → packages/vuu-table-extras/src/column-settings-panel}/ColumnNameLabel.css.js.map +0 -0
- /package/cjs/{column-settings-panel → packages/vuu-table-extras/src/column-settings-panel}/ColumnNameLabel.js +0 -0
- /package/cjs/{column-settings-panel → packages/vuu-table-extras/src/column-settings-panel}/ColumnSettingsPanel.css.js +0 -0
- /package/cjs/{column-settings-panel → packages/vuu-table-extras/src/column-settings-panel}/ColumnSettingsPanel.css.js.map +0 -0
- /package/cjs/{column-settings-panel → packages/vuu-table-extras/src/column-settings-panel}/ColumnSettingsPanel.js +0 -0
- /package/cjs/{column-settings-panel → packages/vuu-table-extras/src/column-settings-panel}/useColumnSettings.js +0 -0
- /package/cjs/{datasource-stats → packages/vuu-table-extras/src/datasource-stats}/DatasourceStats.css.js +0 -0
- /package/cjs/{datasource-stats → packages/vuu-table-extras/src/datasource-stats}/DatasourceStats.css.js.map +0 -0
- /package/cjs/{datasource-stats → packages/vuu-table-extras/src/datasource-stats}/DatasourceStats.js +0 -0
- /package/cjs/{datasource-stats → packages/vuu-table-extras/src/datasource-stats}/useDatasourceStats.js +0 -0
- /package/cjs/{freeze-control → packages/vuu-table-extras/src/freeze-control}/FreezeControl.css.js +0 -0
- /package/cjs/{freeze-control → packages/vuu-table-extras/src/freeze-control}/FreezeControl.css.js.map +0 -0
- /package/cjs/{freeze-control → packages/vuu-table-extras/src/freeze-control}/FreezeControl.js +0 -0
- /package/cjs/{freeze-control → packages/vuu-table-extras/src/freeze-control}/FrozenBanner.css.js +0 -0
- /package/cjs/{freeze-control → packages/vuu-table-extras/src/freeze-control}/FrozenBanner.css.js.map +0 -0
- /package/cjs/{freeze-control → packages/vuu-table-extras/src/freeze-control}/FrozenBanner.js +0 -0
- /package/cjs/{freeze-control → packages/vuu-table-extras/src/freeze-control}/freezeControlBadge.js +0 -0
- /package/cjs/{freeze-control → packages/vuu-table-extras/src/freeze-control}/useFreezeControl.js +0 -0
- /package/cjs/{tabbed-table-config-panel → packages/vuu-table-extras/src/tabbed-table-config-panel}/TabbedTableConfigPanel.css.js +0 -0
- /package/cjs/{tabbed-table-config-panel → packages/vuu-table-extras/src/tabbed-table-config-panel}/TabbedTableConfigPanel.css.js.map +0 -0
- /package/cjs/{tabbed-table-config-panel → packages/vuu-table-extras/src/tabbed-table-config-panel}/TabbedTableConfigPanel.js +0 -0
- /package/cjs/{tabbed-table-config-panel → packages/vuu-table-extras/src/tabbed-table-config-panel}/TabbedTableSettingsAction.js +0 -0
- /package/cjs/{tabbed-table-config-panel → packages/vuu-table-extras/src/tabbed-table-config-panel}/useTabbedTableConfigPanel.js +0 -0
- /package/cjs/{table-footer → packages/vuu-table-extras/src/table-footer}/TableFooter.css.js +0 -0
- /package/cjs/{table-footer → packages/vuu-table-extras/src/table-footer}/TableFooter.css.js.map +0 -0
- /package/cjs/{table-footer → packages/vuu-table-extras/src/table-footer}/TableFooter.js +0 -0
- /package/cjs/{table-provider → packages/vuu-table-extras/src/table-provider}/TableProvider.js +0 -0
- /package/cjs/{table-settings-panel → packages/vuu-table-extras/src/table-settings-panel}/TableSettingsPanel.css.js +0 -0
- /package/cjs/{table-settings-panel → packages/vuu-table-extras/src/table-settings-panel}/TableSettingsPanel.css.js.map +0 -0
- /package/cjs/{table-settings-panel → packages/vuu-table-extras/src/table-settings-panel}/TableSettingsPanel.js +0 -0
- /package/cjs/{table-settings-panel → packages/vuu-table-extras/src/table-settings-panel}/useTableSettings.js +0 -0
- /package/esm/{calculated-column → packages/vuu-table-extras/src/calculated-column}/CalculatedColumnPanel.js +0 -0
- /package/esm/{calculated-column → packages/vuu-table-extras/src/calculated-column}/useCalculatedColumnPanel.js +0 -0
- /package/esm/{calculated-column → packages/vuu-table-extras/src/calculated-column}/useEditCalculatedColumn.js +0 -0
- /package/esm/{cell-edit-validators → packages/vuu-table-extras/src/cell-edit-validators}/CaseValidator.js +0 -0
- /package/esm/{cell-edit-validators → packages/vuu-table-extras/src/cell-edit-validators}/PatternValidator.js +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCell.css.js +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCell.css.js.map +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCell.js +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCellConfigurationEditor.css.js +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCellConfigurationEditor.css.js.map +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCellConfigurationEditor.js +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundKeyframes.css.js +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/BackgroundKeyframes.css.js.map +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/background-cell/useDirection.js +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/button-cell/IconButtonCell.css.js +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/button-cell/IconButtonCell.css.js.map +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/button-cell/IconButtonCell.js +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/dropdown-cell/DropdownCell.css.js +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/dropdown-cell/DropdownCell.css.js.map +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/dropdown-cell/DropdownCell.js +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/lookup-cell/LookupCell.js +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/pct-progress-cell/PctProgressCell.css.js +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/pct-progress-cell/PctProgressCell.css.js.map +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/pct-progress-cell/PctProgressCell.js +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/progress-cell/ProgressCell.css.js +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/progress-cell/ProgressCell.css.js.map +0 -0
- /package/esm/{cell-renderers → packages/vuu-table-extras/src/cell-renderers}/progress-cell/ProgressCell.js +0 -0
- /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/ColumnExpressionInput.css.js +0 -0
- /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/ColumnExpressionInput.css.js.map +0 -0
- /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/ColumnExpressionInput.js +0 -0
- /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-function-descriptors.js +0 -0
- /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-language-parser/ColumnExpressionLanguage.js +0 -0
- /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-language-parser/ColumnExpressionTreeWalker.js +0 -0
- /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-language-parser/column-expression-parse-utils.js +0 -0
- /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/column-language-parser/generated/column-parser.js +0 -0
- /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/functionDocInfo.js +0 -0
- /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/highlighting.js +0 -0
- /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/theme.js +0 -0
- /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/useColumnAutoComplete.js +0 -0
- /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/useColumnExpressionEditor.js +0 -0
- /package/esm/{column-expression-input → packages/vuu-table-extras/src/column-expression-input}/useColumnExpressionSuggestionProvider.js +0 -0
- /package/esm/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/BaseNumericFormattingSettings.js +0 -0
- /package/esm/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/ColumnFormattingPanel.js +0 -0
- /package/esm/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/DateTimeFormattingSettings.js +0 -0
- /package/esm/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/LongTypeFormattingSettings.css.js +0 -0
- /package/esm/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/LongTypeFormattingSettings.css.js.map +0 -0
- /package/esm/{column-formatting-settings → packages/vuu-table-extras/src/column-formatting-settings}/LongTypeFormattingSettings.js +0 -0
- /package/esm/{column-menu → packages/vuu-table-extras/src/column-menu}/ColumnMenu.css.js +0 -0
- /package/esm/{column-menu → packages/vuu-table-extras/src/column-menu}/ColumnMenu.css.js.map +0 -0
- /package/esm/{column-menu → packages/vuu-table-extras/src/column-menu}/ColumnMenu.js +0 -0
- /package/esm/{column-menu → packages/vuu-table-extras/src/column-menu}/column-menu-utils.js +0 -0
- /package/esm/{column-menu → packages/vuu-table-extras/src/column-menu}/useColumnActions.js +0 -0
- /package/esm/{column-picker → packages/vuu-table-extras/src/column-picker}/ColumnModel.js +0 -0
- /package/esm/{column-picker → packages/vuu-table-extras/src/column-picker}/ColumnPicker.css.js +0 -0
- /package/esm/{column-picker → packages/vuu-table-extras/src/column-picker}/ColumnPicker.css.js.map +0 -0
- /package/esm/{column-picker → packages/vuu-table-extras/src/column-picker}/ColumnPicker.js +0 -0
- /package/esm/{column-picker → packages/vuu-table-extras/src/column-picker}/ColumnPickerAction.js +0 -0
- /package/esm/{column-picker → packages/vuu-table-extras/src/column-picker}/useColumnPicker.js +0 -0
- /package/esm/{column-picker → packages/vuu-table-extras/src/column-picker}/useTableColumnPicker.js +0 -0
- /package/esm/{column-settings-panel → packages/vuu-table-extras/src/column-settings-panel}/ColumnNameLabel.css.js +0 -0
- /package/esm/{column-settings-panel → packages/vuu-table-extras/src/column-settings-panel}/ColumnNameLabel.css.js.map +0 -0
- /package/esm/{column-settings-panel → packages/vuu-table-extras/src/column-settings-panel}/ColumnNameLabel.js +0 -0
- /package/esm/{column-settings-panel → packages/vuu-table-extras/src/column-settings-panel}/ColumnSettingsPanel.css.js +0 -0
- /package/esm/{column-settings-panel → packages/vuu-table-extras/src/column-settings-panel}/ColumnSettingsPanel.css.js.map +0 -0
- /package/esm/{column-settings-panel → packages/vuu-table-extras/src/column-settings-panel}/ColumnSettingsPanel.js +0 -0
- /package/esm/{column-settings-panel → packages/vuu-table-extras/src/column-settings-panel}/useColumnSettings.js +0 -0
- /package/esm/{datasource-stats → packages/vuu-table-extras/src/datasource-stats}/DatasourceStats.css.js +0 -0
- /package/esm/{datasource-stats → packages/vuu-table-extras/src/datasource-stats}/DatasourceStats.css.js.map +0 -0
- /package/esm/{datasource-stats → packages/vuu-table-extras/src/datasource-stats}/DatasourceStats.js +0 -0
- /package/esm/{datasource-stats → packages/vuu-table-extras/src/datasource-stats}/useDatasourceStats.js +0 -0
- /package/esm/{freeze-control → packages/vuu-table-extras/src/freeze-control}/FreezeControl.css.js +0 -0
- /package/esm/{freeze-control → packages/vuu-table-extras/src/freeze-control}/FreezeControl.css.js.map +0 -0
- /package/esm/{freeze-control → packages/vuu-table-extras/src/freeze-control}/FreezeControl.js +0 -0
- /package/esm/{freeze-control → packages/vuu-table-extras/src/freeze-control}/FrozenBanner.css.js +0 -0
- /package/esm/{freeze-control → packages/vuu-table-extras/src/freeze-control}/FrozenBanner.css.js.map +0 -0
- /package/esm/{freeze-control → packages/vuu-table-extras/src/freeze-control}/FrozenBanner.js +0 -0
- /package/esm/{freeze-control → packages/vuu-table-extras/src/freeze-control}/freezeControlBadge.js +0 -0
- /package/esm/{freeze-control → packages/vuu-table-extras/src/freeze-control}/useFreezeControl.js +0 -0
- /package/esm/{tabbed-table-config-panel → packages/vuu-table-extras/src/tabbed-table-config-panel}/TabbedTableConfigPanel.css.js +0 -0
- /package/esm/{tabbed-table-config-panel → packages/vuu-table-extras/src/tabbed-table-config-panel}/TabbedTableConfigPanel.css.js.map +0 -0
- /package/esm/{tabbed-table-config-panel → packages/vuu-table-extras/src/tabbed-table-config-panel}/TabbedTableConfigPanel.js +0 -0
- /package/esm/{tabbed-table-config-panel → packages/vuu-table-extras/src/tabbed-table-config-panel}/TabbedTableSettingsAction.js +0 -0
- /package/esm/{tabbed-table-config-panel → packages/vuu-table-extras/src/tabbed-table-config-panel}/useTabbedTableConfigPanel.js +0 -0
- /package/esm/{table-footer → packages/vuu-table-extras/src/table-footer}/TableFooter.css.js +0 -0
- /package/esm/{table-footer → packages/vuu-table-extras/src/table-footer}/TableFooter.css.js.map +0 -0
- /package/esm/{table-footer → packages/vuu-table-extras/src/table-footer}/TableFooter.js +0 -0
- /package/esm/{table-provider → packages/vuu-table-extras/src/table-provider}/TableProvider.js +0 -0
- /package/esm/{table-settings-panel → packages/vuu-table-extras/src/table-settings-panel}/TableSettingsPanel.css.js +0 -0
- /package/esm/{table-settings-panel → packages/vuu-table-extras/src/table-settings-panel}/TableSettingsPanel.css.js.map +0 -0
- /package/esm/{table-settings-panel → packages/vuu-table-extras/src/table-settings-panel}/TableSettingsPanel.js +0 -0
- /package/esm/{table-settings-panel → packages/vuu-table-extras/src/table-settings-panel}/useTableSettings.js +0 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var sync = require('../../../../../node_modules/csv-parse/dist/esm/sync.js');
|
|
4
|
+
var csvErrors = require('./csv-errors.js');
|
|
5
|
+
var csvConstants = require('./csv-constants.js');
|
|
6
|
+
|
|
7
|
+
const normaliseLineEndings = (input) => input.replace(/^\uFEFF/, "").replace(/\r\n/g, "\n").replace(/\r/g, "\n");
|
|
8
|
+
const quotedCsvLinePattern = /^\s*"(?:""|[^"])*"\s*(,\s*"(?:""|[^"])*"\s*)*$/;
|
|
9
|
+
const withError = (message, errorMap, errors, header = [], rows = []) => ({
|
|
10
|
+
error: { errorMap, errors, message },
|
|
11
|
+
header,
|
|
12
|
+
rows
|
|
13
|
+
});
|
|
14
|
+
const parseCsv = (csvText, options) => {
|
|
15
|
+
const errorState = csvErrors.createCsvErrorState();
|
|
16
|
+
const text = normaliseLineEndings(csvText);
|
|
17
|
+
if (text.trim().length === 0) {
|
|
18
|
+
csvErrors.addCsvFileError(
|
|
19
|
+
errorState,
|
|
20
|
+
"*",
|
|
21
|
+
csvErrors.CsvParseErrorEnum.EMPTY_FILE,
|
|
22
|
+
"CSV file is empty."
|
|
23
|
+
);
|
|
24
|
+
return withError(
|
|
25
|
+
"CSV file is empty.",
|
|
26
|
+
errorState.errorMap,
|
|
27
|
+
errorState.errors
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
const allLines = text.split("\n");
|
|
31
|
+
const nonEmptyLines = allLines.filter((line) => line.trim().length > 0);
|
|
32
|
+
if (nonEmptyLines.length === 0) {
|
|
33
|
+
csvErrors.addCsvFileError(
|
|
34
|
+
errorState,
|
|
35
|
+
"*",
|
|
36
|
+
csvErrors.CsvParseErrorEnum.EMPTY_FILE,
|
|
37
|
+
"CSV file is empty."
|
|
38
|
+
);
|
|
39
|
+
return withError(
|
|
40
|
+
"CSV file is empty.",
|
|
41
|
+
errorState.errorMap,
|
|
42
|
+
errorState.errors
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
const firstLine = nonEmptyLines[0];
|
|
46
|
+
if (firstLine.includes(";") && !firstLine.includes(",")) {
|
|
47
|
+
csvErrors.addCsvFileError(
|
|
48
|
+
errorState,
|
|
49
|
+
"*",
|
|
50
|
+
csvErrors.CsvParseErrorEnum.INVALID_SEPARATOR,
|
|
51
|
+
"CSV must use comma separators.",
|
|
52
|
+
firstLine
|
|
53
|
+
);
|
|
54
|
+
return withError(
|
|
55
|
+
"CSV must use comma separators.",
|
|
56
|
+
errorState.errorMap,
|
|
57
|
+
errorState.errors
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
if (options?.requireQuotedValues === true) {
|
|
61
|
+
nonEmptyLines.forEach((line, lineIndex) => {
|
|
62
|
+
if (!quotedCsvLinePattern.test(line)) {
|
|
63
|
+
if (lineIndex === 0) {
|
|
64
|
+
csvErrors.addCsvFileError(
|
|
65
|
+
errorState,
|
|
66
|
+
"*",
|
|
67
|
+
csvErrors.CsvParseErrorEnum.UNQUOTED_VALUE,
|
|
68
|
+
"CSV values must be enclosed in double quotes.",
|
|
69
|
+
line
|
|
70
|
+
);
|
|
71
|
+
} else {
|
|
72
|
+
csvErrors.addCsvRowError(
|
|
73
|
+
errorState,
|
|
74
|
+
lineIndex + csvConstants.CSV_HEADER_ROW_NUMBER,
|
|
75
|
+
"*",
|
|
76
|
+
csvErrors.CsvParseErrorEnum.UNQUOTED_VALUE,
|
|
77
|
+
"CSV values must be enclosed in double quotes.",
|
|
78
|
+
line
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
if (csvErrors.hasCsvErrors(errorState.errorMap)) {
|
|
84
|
+
return withError(
|
|
85
|
+
"CSV values must be enclosed in double quotes.",
|
|
86
|
+
errorState.errorMap,
|
|
87
|
+
errorState.errors
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
let records;
|
|
92
|
+
try {
|
|
93
|
+
records = sync.parse(text, {
|
|
94
|
+
bom: true,
|
|
95
|
+
delimiter: ",",
|
|
96
|
+
escape: '"',
|
|
97
|
+
quote: '"',
|
|
98
|
+
relax_column_count: true,
|
|
99
|
+
skip_empty_lines: true
|
|
100
|
+
});
|
|
101
|
+
} catch (err) {
|
|
102
|
+
csvErrors.addCsvFileError(
|
|
103
|
+
errorState,
|
|
104
|
+
"*",
|
|
105
|
+
csvErrors.CsvParseErrorEnum.INVALID_FORMAT,
|
|
106
|
+
err instanceof Error ? err.message : "Invalid CSV format."
|
|
107
|
+
);
|
|
108
|
+
return withError(
|
|
109
|
+
"Invalid CSV format.",
|
|
110
|
+
errorState.errorMap,
|
|
111
|
+
errorState.errors
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
if (records.length === 0) {
|
|
115
|
+
csvErrors.addCsvFileError(
|
|
116
|
+
errorState,
|
|
117
|
+
"*",
|
|
118
|
+
csvErrors.CsvParseErrorEnum.EMPTY_FILE,
|
|
119
|
+
"CSV file is empty."
|
|
120
|
+
);
|
|
121
|
+
return withError(
|
|
122
|
+
"CSV file is empty.",
|
|
123
|
+
errorState.errorMap,
|
|
124
|
+
errorState.errors
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
const header = records[0].map((value) => value.trim());
|
|
128
|
+
if (header.length === 0) {
|
|
129
|
+
csvErrors.addCsvFileError(
|
|
130
|
+
errorState,
|
|
131
|
+
"*",
|
|
132
|
+
csvErrors.CsvParseErrorEnum.EMPTY_HEADER_COLUMN,
|
|
133
|
+
"CSV header contains empty column names."
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
header.forEach((col, columnIndex) => {
|
|
137
|
+
if (col.length === 0) {
|
|
138
|
+
csvErrors.addCsvFileError(
|
|
139
|
+
errorState,
|
|
140
|
+
`column_${columnIndex + 1}`,
|
|
141
|
+
csvErrors.CsvParseErrorEnum.EMPTY_HEADER_COLUMN,
|
|
142
|
+
"CSV header contains empty column names."
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
if (csvErrors.hasCsvErrors(errorState.errorMap)) {
|
|
147
|
+
return withError(
|
|
148
|
+
"CSV header contains empty column names.",
|
|
149
|
+
errorState.errorMap,
|
|
150
|
+
errorState.errors
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
const duplicateHeader = header.find(
|
|
154
|
+
(col, idx) => header.indexOf(col) !== idx
|
|
155
|
+
);
|
|
156
|
+
if (duplicateHeader) {
|
|
157
|
+
csvErrors.addCsvFileError(
|
|
158
|
+
errorState,
|
|
159
|
+
duplicateHeader,
|
|
160
|
+
csvErrors.CsvParseErrorEnum.DUPLICATE_HEADER_COLUMN,
|
|
161
|
+
`CSV header contains duplicate column '${duplicateHeader}'.`,
|
|
162
|
+
duplicateHeader
|
|
163
|
+
);
|
|
164
|
+
return withError(
|
|
165
|
+
`CSV header contains duplicate column '${duplicateHeader}'.`,
|
|
166
|
+
errorState.errorMap,
|
|
167
|
+
errorState.errors,
|
|
168
|
+
header,
|
|
169
|
+
[]
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
const rows = records.slice(1);
|
|
173
|
+
rows.forEach((row, rowIndex) => {
|
|
174
|
+
if (row.length !== header.length) {
|
|
175
|
+
csvErrors.addCsvRowError(
|
|
176
|
+
errorState,
|
|
177
|
+
rowIndex + csvConstants.CSV_FIRST_DATA_ROW_NUMBER,
|
|
178
|
+
"*",
|
|
179
|
+
csvErrors.CsvParseErrorEnum.ROW_COLUMN_COUNT_MISMATCH,
|
|
180
|
+
"CSV rows must have the same number of columns as the header.",
|
|
181
|
+
row.join(",")
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
if (csvErrors.hasCsvErrors(errorState.errorMap)) {
|
|
186
|
+
return withError(
|
|
187
|
+
"CSV rows must have the same number of columns as the header.",
|
|
188
|
+
errorState.errorMap,
|
|
189
|
+
errorState.errors,
|
|
190
|
+
header,
|
|
191
|
+
rows
|
|
192
|
+
);
|
|
193
|
+
}
|
|
194
|
+
return { header, rows };
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
exports.CsvParseErrorEnum = csvErrors.CsvParseErrorEnum;
|
|
198
|
+
exports.parseCsv = parseCsv;
|
|
199
|
+
//# sourceMappingURL=csv-parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csv-parse.js","sources":["../../../../../../../../packages/vuu-table-extras/src/csv-upload/parse/csv-parse.ts"],"sourcesContent":["import { parse } from \"csv-parse/browser/esm/sync\";\nimport {\n addCsvFileError,\n addCsvRowError,\n createCsvErrorState,\n hasCsvErrors,\n CsvParseErrorEnum,\n type CsvStructuredError,\n type CsvParseError,\n type CsvParseErrorMap,\n} from \"./csv-errors\";\nimport {\n CSV_FIRST_DATA_ROW_NUMBER,\n CSV_HEADER_ROW_NUMBER,\n} from \"./csv-constants\";\n\nexport {\n CsvParseErrorEnum,\n type CsvError,\n type CsvErrorMap,\n type CsvStructuredError,\n type CsvParseError,\n type CsvParseErrorMap,\n} from \"./csv-errors\";\n\nexport type CsvParseResult = {\n error?: CsvParseError;\n header: string[];\n rows: string[][];\n};\n\nexport type CsvParseOptions = {\n requireQuotedValues?: boolean;\n};\n\nconst normaliseLineEndings = (input: string) =>\n input\n .replace(/^\\uFEFF/, \"\")\n .replace(/\\r\\n/g, \"\\n\")\n .replace(/\\r/g, \"\\n\");\n\nconst quotedCsvLinePattern = /^\\s*\"(?:\"\"|[^\"])*\"\\s*(,\\s*\"(?:\"\"|[^\"])*\"\\s*)*$/;\n\nconst withError = (\n message: string,\n errorMap: CsvParseErrorMap,\n errors: CsvStructuredError<CsvParseErrorEnum>[],\n header: string[] = [],\n rows: string[][] = [],\n): CsvParseResult => ({\n error: { errorMap, errors, message },\n header,\n rows,\n});\n\nexport const parseCsv = (\n csvText: string,\n options?: CsvParseOptions,\n): CsvParseResult => {\n const errorState = createCsvErrorState<CsvParseErrorEnum>();\n const text = normaliseLineEndings(csvText);\n\n if (text.trim().length === 0) {\n addCsvFileError(\n errorState,\n \"*\",\n CsvParseErrorEnum.EMPTY_FILE,\n \"CSV file is empty.\",\n );\n return withError(\n \"CSV file is empty.\",\n errorState.errorMap,\n errorState.errors,\n );\n }\n\n const allLines = text.split(\"\\n\");\n const nonEmptyLines = allLines.filter((line) => line.trim().length > 0);\n\n if (nonEmptyLines.length === 0) {\n addCsvFileError(\n errorState,\n \"*\",\n CsvParseErrorEnum.EMPTY_FILE,\n \"CSV file is empty.\",\n );\n return withError(\n \"CSV file is empty.\",\n errorState.errorMap,\n errorState.errors,\n );\n }\n\n const firstLine = nonEmptyLines[0];\n if (firstLine.includes(\";\") && !firstLine.includes(\",\")) {\n addCsvFileError(\n errorState,\n \"*\",\n CsvParseErrorEnum.INVALID_SEPARATOR,\n \"CSV must use comma separators.\",\n firstLine,\n );\n return withError(\n \"CSV must use comma separators.\",\n errorState.errorMap,\n errorState.errors,\n );\n }\n\n if (options?.requireQuotedValues === true) {\n nonEmptyLines.forEach((line, lineIndex) => {\n if (!quotedCsvLinePattern.test(line)) {\n if (lineIndex === 0) {\n addCsvFileError(\n errorState,\n \"*\",\n CsvParseErrorEnum.UNQUOTED_VALUE,\n \"CSV values must be enclosed in double quotes.\",\n line,\n );\n } else {\n addCsvRowError(\n errorState,\n lineIndex + CSV_HEADER_ROW_NUMBER,\n \"*\",\n CsvParseErrorEnum.UNQUOTED_VALUE,\n \"CSV values must be enclosed in double quotes.\",\n line,\n );\n }\n }\n });\n\n if (hasCsvErrors(errorState.errorMap)) {\n return withError(\n \"CSV values must be enclosed in double quotes.\",\n errorState.errorMap,\n errorState.errors,\n );\n }\n }\n\n let records: string[][];\n try {\n records = parse(text, {\n bom: true,\n delimiter: \",\",\n escape: '\"',\n quote: '\"',\n relax_column_count: true,\n skip_empty_lines: true,\n }) as string[][];\n } catch (err) {\n addCsvFileError(\n errorState,\n \"*\",\n CsvParseErrorEnum.INVALID_FORMAT,\n err instanceof Error ? err.message : \"Invalid CSV format.\",\n );\n return withError(\n \"Invalid CSV format.\",\n errorState.errorMap,\n errorState.errors,\n );\n }\n\n if (records.length === 0) {\n addCsvFileError(\n errorState,\n \"*\",\n CsvParseErrorEnum.EMPTY_FILE,\n \"CSV file is empty.\",\n );\n return withError(\n \"CSV file is empty.\",\n errorState.errorMap,\n errorState.errors,\n );\n }\n\n const header = records[0].map((value) => value.trim());\n if (header.length === 0) {\n addCsvFileError(\n errorState,\n \"*\",\n CsvParseErrorEnum.EMPTY_HEADER_COLUMN,\n \"CSV header contains empty column names.\",\n );\n }\n\n header.forEach((col, columnIndex) => {\n if (col.length === 0) {\n addCsvFileError(\n errorState,\n `column_${columnIndex + 1}`,\n CsvParseErrorEnum.EMPTY_HEADER_COLUMN,\n \"CSV header contains empty column names.\",\n );\n }\n });\n\n if (hasCsvErrors(errorState.errorMap)) {\n return withError(\n \"CSV header contains empty column names.\",\n errorState.errorMap,\n errorState.errors,\n );\n }\n\n const duplicateHeader = header.find(\n (col, idx) => header.indexOf(col) !== idx,\n );\n if (duplicateHeader) {\n addCsvFileError(\n errorState,\n duplicateHeader,\n CsvParseErrorEnum.DUPLICATE_HEADER_COLUMN,\n `CSV header contains duplicate column '${duplicateHeader}'.`,\n duplicateHeader,\n );\n return withError(\n `CSV header contains duplicate column '${duplicateHeader}'.`,\n errorState.errorMap,\n errorState.errors,\n header,\n [],\n );\n }\n\n const rows = records.slice(1);\n\n rows.forEach((row, rowIndex) => {\n if (row.length !== header.length) {\n addCsvRowError(\n errorState,\n rowIndex + CSV_FIRST_DATA_ROW_NUMBER,\n \"*\",\n CsvParseErrorEnum.ROW_COLUMN_COUNT_MISMATCH,\n \"CSV rows must have the same number of columns as the header.\",\n row.join(\",\"),\n );\n }\n });\n\n if (hasCsvErrors(errorState.errorMap)) {\n return withError(\n \"CSV rows must have the same number of columns as the header.\",\n errorState.errorMap,\n errorState.errors,\n header,\n rows,\n );\n }\n\n return { header, rows };\n};\n"],"names":["createCsvErrorState","addCsvFileError","CsvParseErrorEnum","addCsvRowError","CSV_HEADER_ROW_NUMBER","hasCsvErrors","parse","CSV_FIRST_DATA_ROW_NUMBER"],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
4
|
+
var csvErrors = require('./csv-errors.js');
|
|
5
|
+
var csvConstants = require('./csv-constants.js');
|
|
6
|
+
|
|
7
|
+
const MAX_ROWS_IN_CSV = 25e3;
|
|
8
|
+
const validateCsvAgainstSchema = (parsed, tableSchema, options) => {
|
|
9
|
+
const schemaColumns = new Map(
|
|
10
|
+
tableSchema.columns.map((col) => [col.name, col.serverDataType])
|
|
11
|
+
);
|
|
12
|
+
const maxRows = options?.maxRows ?? MAX_ROWS_IN_CSV;
|
|
13
|
+
const errorState = csvErrors.createCsvErrorState();
|
|
14
|
+
if (!parsed.header.includes(tableSchema.key)) {
|
|
15
|
+
csvErrors.addCsvFileError(
|
|
16
|
+
errorState,
|
|
17
|
+
tableSchema.key,
|
|
18
|
+
csvErrors.CsvValidationErrorEnum.MISSING_KEY_COLUMN,
|
|
19
|
+
`CSV must include key column '${tableSchema.key}'.`
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
parsed.header.forEach((column) => {
|
|
23
|
+
if (!schemaColumns.has(column)) {
|
|
24
|
+
csvErrors.addCsvFileError(
|
|
25
|
+
errorState,
|
|
26
|
+
column,
|
|
27
|
+
csvErrors.CsvValidationErrorEnum.UNKNOWN_COLUMN,
|
|
28
|
+
"Column is not present in table schema.",
|
|
29
|
+
column
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
if (parsed.rows.length > maxRows) {
|
|
34
|
+
csvErrors.addCsvFileError(
|
|
35
|
+
errorState,
|
|
36
|
+
"*",
|
|
37
|
+
csvErrors.CsvValidationErrorEnum.MAX_ROWS_EXCEEDED,
|
|
38
|
+
`CSV row count ${parsed.rows.length} exceeds maxRows ${maxRows}.`,
|
|
39
|
+
String(parsed.rows.length)
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
const typedRows = [];
|
|
43
|
+
parsed.rows.forEach((rowValues, rowIndex) => {
|
|
44
|
+
const rowNum = rowIndex + csvConstants.CSV_FIRST_DATA_ROW_NUMBER;
|
|
45
|
+
const typedRow = {};
|
|
46
|
+
parsed.header.forEach((columnName, columnIndex) => {
|
|
47
|
+
const rawValue = rowValues[columnIndex];
|
|
48
|
+
const schemaType = schemaColumns.get(columnName);
|
|
49
|
+
if (rawValue.length === 0 && schemaType !== "string") {
|
|
50
|
+
csvErrors.addCsvRowError(
|
|
51
|
+
errorState,
|
|
52
|
+
rowNum,
|
|
53
|
+
columnName,
|
|
54
|
+
csvErrors.CsvValidationErrorEnum.EMPTY_NON_STRING_VALUE,
|
|
55
|
+
"Empty value is not allowed for non-string columns.",
|
|
56
|
+
rawValue
|
|
57
|
+
);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
let value;
|
|
61
|
+
const toType = schemaType ?? "string";
|
|
62
|
+
try {
|
|
63
|
+
value = vuuUtils.getTypedValue(rawValue, toType);
|
|
64
|
+
} catch (err) {
|
|
65
|
+
csvErrors.addCsvRowError(
|
|
66
|
+
errorState,
|
|
67
|
+
rowNum,
|
|
68
|
+
columnName,
|
|
69
|
+
csvErrors.CsvValidationErrorEnum.TYPE_MISMATCH,
|
|
70
|
+
err instanceof Error ? err.message : String(err),
|
|
71
|
+
rawValue
|
|
72
|
+
);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (value === void 0) {
|
|
76
|
+
csvErrors.addCsvRowError(
|
|
77
|
+
errorState,
|
|
78
|
+
rowNum,
|
|
79
|
+
columnName,
|
|
80
|
+
csvErrors.CsvValidationErrorEnum.TYPE_MISMATCH,
|
|
81
|
+
`Value '${rawValue}' is not a valid ${toType}`,
|
|
82
|
+
rawValue
|
|
83
|
+
);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
typedRow[columnName] = value;
|
|
87
|
+
});
|
|
88
|
+
typedRows.push(typedRow);
|
|
89
|
+
});
|
|
90
|
+
return {
|
|
91
|
+
columns: parsed.header,
|
|
92
|
+
errorMap: errorState.errorMap,
|
|
93
|
+
errors: errorState.errors,
|
|
94
|
+
rows: typedRows
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
exports.CsvValidationErrorEnum = csvErrors.CsvValidationErrorEnum;
|
|
99
|
+
exports.validateCsvAgainstSchema = validateCsvAgainstSchema;
|
|
100
|
+
//# sourceMappingURL=csv-schema-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csv-schema-validation.js","sources":["../../../../../../../../packages/vuu-table-extras/src/csv-upload/parse/csv-schema-validation.ts"],"sourcesContent":["import type { TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport { getTypedValue } from \"@vuu-ui/vuu-utils\";\nimport type { VuuRowDataItemType } from \"@vuu-ui/vuu-protocol-types\";\nimport {\n addCsvFileError,\n addCsvRowError,\n createCsvErrorState,\n CsvValidationErrorEnum,\n} from \"./csv-errors\";\nimport type {\n CsvValidationError,\n CsvValidationErrorMap,\n CsvParseError,\n} from \"./csv-errors\";\nimport type { CsvParseResult } from \"./csv-parse\";\nimport { CSV_FIRST_DATA_ROW_NUMBER } from \"./csv-constants\";\nimport type { VuuColumnDataType } from \"@vuu-ui/vuu-protocol-types\";\nimport type { DataValueTypeSimple } from \"@vuu-ui/vuu-data-types\";\n\nexport {\n CsvValidationErrorEnum,\n type CsvValidationError,\n type CsvValidationErrorMap,\n type CsvValidationErrorType,\n type CsvValidationStructuredError,\n} from \"./csv-errors\";\n\nexport type CsvValidationResult = {\n columns: string[];\n errorMap: CsvValidationErrorMap;\n errors: CsvValidationError[];\n parseRowError?: CsvParseError;\n rows: Record<string, VuuRowDataItemType>[];\n};\n\nexport type CsvValidationOptions = {\n maxRows?: number;\n};\n\nconst MAX_ROWS_IN_CSV = 25000;\n\nexport const validateCsvAgainstSchema = (\n parsed: CsvParseResult,\n tableSchema: TableSchema,\n options?: CsvValidationOptions,\n): CsvValidationResult => {\n const schemaColumns = new Map(\n tableSchema.columns.map((col) => [col.name, col.serverDataType] as const),\n );\n const maxRows = options?.maxRows ?? MAX_ROWS_IN_CSV;\n const errorState = createCsvErrorState<CsvValidationErrorEnum>();\n\n if (!parsed.header.includes(tableSchema.key)) {\n addCsvFileError(\n errorState,\n tableSchema.key,\n CsvValidationErrorEnum.MISSING_KEY_COLUMN,\n `CSV must include key column '${tableSchema.key}'.`,\n );\n }\n\n parsed.header.forEach((column) => {\n if (!schemaColumns.has(column)) {\n addCsvFileError(\n errorState,\n column,\n CsvValidationErrorEnum.UNKNOWN_COLUMN,\n \"Column is not present in table schema.\",\n column,\n );\n }\n });\n\n if (parsed.rows.length > maxRows) {\n addCsvFileError(\n errorState,\n \"*\",\n CsvValidationErrorEnum.MAX_ROWS_EXCEEDED,\n `CSV row count ${parsed.rows.length} exceeds maxRows ${maxRows}.`,\n String(parsed.rows.length),\n );\n }\n\n const typedRows: Record<string, VuuRowDataItemType>[] = [];\n\n parsed.rows.forEach((rowValues, rowIndex) => {\n const rowNum = rowIndex + CSV_FIRST_DATA_ROW_NUMBER;\n const typedRow: Record<string, VuuRowDataItemType> = {};\n\n parsed.header.forEach((columnName, columnIndex) => {\n const rawValue = rowValues[columnIndex];\n const schemaType = schemaColumns.get(columnName);\n\n if (rawValue.length === 0 && schemaType !== \"string\") {\n addCsvRowError(\n errorState,\n rowNum,\n columnName,\n CsvValidationErrorEnum.EMPTY_NON_STRING_VALUE,\n \"Empty value is not allowed for non-string columns.\",\n rawValue,\n );\n return;\n }\n\n let value: VuuRowDataItemType | undefined;\n const toType = (schemaType ?? \"string\") as\n | VuuColumnDataType\n | DataValueTypeSimple;\n try {\n value = getTypedValue(rawValue, toType);\n } catch (err) {\n addCsvRowError(\n errorState,\n rowNum,\n columnName,\n CsvValidationErrorEnum.TYPE_MISMATCH,\n err instanceof Error ? err.message : String(err),\n rawValue,\n );\n return;\n }\n if (value === undefined) {\n addCsvRowError(\n errorState,\n rowNum,\n columnName,\n CsvValidationErrorEnum.TYPE_MISMATCH,\n `Value '${rawValue}' is not a valid ${toType}`,\n rawValue,\n );\n return;\n }\n typedRow[columnName] = value;\n });\n\n typedRows.push(typedRow);\n });\n\n return {\n columns: parsed.header,\n errorMap: errorState.errorMap,\n errors: errorState.errors,\n rows: typedRows,\n };\n};\n"],"names":["createCsvErrorState","addCsvFileError","CsvValidationErrorEnum","CSV_FIRST_DATA_ROW_NUMBER","addCsvRowError","getTypedValue"],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
4
|
+
var csvConstants = require('./csv-constants.js');
|
|
5
|
+
|
|
6
|
+
const isRecord = (value) => typeof value === "object" && value !== null;
|
|
7
|
+
const toErrorMessage = (error) => error instanceof Error ? error.message : String(error);
|
|
8
|
+
const isCsvParseError = (value) => isRecord(value) && "message" in value && typeof value.message === "string" && "errors" in value && Array.isArray(value.errors) && "errorMap" in value && isRecord(value.errorMap);
|
|
9
|
+
const hasFileParseErrors = (parseError) => Object.keys(parseError.errorMap.fileErrors).length > 0;
|
|
10
|
+
const createUploadError = (source, message, parseError, validationError) => ({
|
|
11
|
+
message,
|
|
12
|
+
parseError,
|
|
13
|
+
validationError,
|
|
14
|
+
source
|
|
15
|
+
});
|
|
16
|
+
const mergeValidationWithParseErrors = (schemaValidation, parseError) => parseError ? {
|
|
17
|
+
...schemaValidation,
|
|
18
|
+
errors: [
|
|
19
|
+
...schemaValidation.errors,
|
|
20
|
+
...toValidationErrorsFromParseRowErrors(parseError)
|
|
21
|
+
],
|
|
22
|
+
parseRowError: parseError
|
|
23
|
+
} : schemaValidation;
|
|
24
|
+
const buildRowErrorMessage = (prefix, rowErrors) => {
|
|
25
|
+
const details = rowErrors.slice(0, 8).join("; ");
|
|
26
|
+
const remaining = rowErrors.length - 8;
|
|
27
|
+
const suffix = remaining > 0 ? `; and ${remaining} more` : "";
|
|
28
|
+
return `${prefix} for ${rowErrors.length} row(s): ${details}${suffix}`;
|
|
29
|
+
};
|
|
30
|
+
const toValidationErrorsFromParseRowErrors = (parseError) => {
|
|
31
|
+
return parseError.errors.filter(
|
|
32
|
+
(error) => error.rowNum >= csvConstants.CSV_FIRST_DATA_ROW_NUMBER
|
|
33
|
+
);
|
|
34
|
+
};
|
|
35
|
+
const normalizeTableData = (value, fallback) => {
|
|
36
|
+
const tableData = isRecord(value) && "data" in value ? value.data : value;
|
|
37
|
+
if (!isRecord(tableData)) {
|
|
38
|
+
return fallback;
|
|
39
|
+
}
|
|
40
|
+
const columns = tableData.columns;
|
|
41
|
+
const rows = tableData.rows;
|
|
42
|
+
if (!Array.isArray(columns) || columns.some((column) => typeof column !== "string") || !Array.isArray(rows)) {
|
|
43
|
+
return fallback;
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
columns,
|
|
47
|
+
rows: rows.map((row) => {
|
|
48
|
+
if (Array.isArray(row)) {
|
|
49
|
+
return row;
|
|
50
|
+
}
|
|
51
|
+
if (!isRecord(row)) {
|
|
52
|
+
return columns.map(() => "");
|
|
53
|
+
}
|
|
54
|
+
return columns.map((column) => row[column] ?? "");
|
|
55
|
+
})
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
const executeBatchRpcCalls = async (items, executor, errorFormatter) => {
|
|
59
|
+
const errors = [];
|
|
60
|
+
const results = [];
|
|
61
|
+
for (const item of items) {
|
|
62
|
+
try {
|
|
63
|
+
const result = await executor(item);
|
|
64
|
+
const rpcResult = result;
|
|
65
|
+
if (vuuUtils.isRpcError(rpcResult)) {
|
|
66
|
+
errors.push(errorFormatter(item, rpcResult.errorMessage));
|
|
67
|
+
} else {
|
|
68
|
+
results.push(result);
|
|
69
|
+
}
|
|
70
|
+
} catch (err) {
|
|
71
|
+
errors.push(errorFormatter(item, toErrorMessage(err)));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return { errors, results };
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
exports.buildRowErrorMessage = buildRowErrorMessage;
|
|
78
|
+
exports.createUploadError = createUploadError;
|
|
79
|
+
exports.executeBatchRpcCalls = executeBatchRpcCalls;
|
|
80
|
+
exports.hasFileParseErrors = hasFileParseErrors;
|
|
81
|
+
exports.isCsvParseError = isCsvParseError;
|
|
82
|
+
exports.mergeValidationWithParseErrors = mergeValidationWithParseErrors;
|
|
83
|
+
exports.normalizeTableData = normalizeTableData;
|
|
84
|
+
exports.toErrorMessage = toErrorMessage;
|
|
85
|
+
exports.toValidationErrorsFromParseRowErrors = toValidationErrorsFromParseRowErrors;
|
|
86
|
+
//# sourceMappingURL=csv-upload-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csv-upload-utils.js","sources":["../../../../../../../../packages/vuu-table-extras/src/csv-upload/parse/csv-upload-utils.ts"],"sourcesContent":["import type { RpcResult, VuuRowDataItemType } from \"@vuu-ui/vuu-protocol-types\";\nimport { isRpcError } from \"@vuu-ui/vuu-utils\";\nimport type { CsvUploadError } from \"../CsvUpload\";\nimport type { CsvParseError } from \"./csv-parse\";\nimport { CSV_FIRST_DATA_ROW_NUMBER } from \"./csv-constants\";\nimport type {\n CsvValidationError,\n CsvValidationResult,\n} from \"./csv-schema-validation\";\n\nexport type CsvUploadTableData = {\n columns: string[];\n rows: VuuRowDataItemType[][];\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null;\n\nexport const toErrorMessage = (error: unknown) =>\n error instanceof Error ? error.message : String(error);\n\nexport const isCsvParseError = (value: unknown): value is CsvParseError =>\n isRecord(value) &&\n \"message\" in value &&\n typeof value.message === \"string\" &&\n \"errors\" in value &&\n Array.isArray(value.errors) &&\n \"errorMap\" in value &&\n isRecord(value.errorMap);\n\nexport const hasFileParseErrors = (parseError: CsvParseError) =>\n Object.keys(parseError.errorMap.fileErrors).length > 0;\n\nexport const createUploadError = (\n source: CsvUploadError[\"source\"],\n message: string,\n parseError?: CsvParseError,\n validationError?: CsvUploadError[\"validationError\"],\n): CsvUploadError => ({\n message,\n parseError,\n validationError,\n source,\n});\n\nexport const mergeValidationWithParseErrors = (\n schemaValidation: CsvValidationResult,\n parseError: CsvParseError | undefined,\n): CsvValidationResult =>\n parseError\n ? {\n ...schemaValidation,\n errors: [\n ...schemaValidation.errors,\n ...toValidationErrorsFromParseRowErrors(parseError),\n ],\n parseRowError: parseError,\n }\n : schemaValidation;\n\nexport const buildRowErrorMessage = (prefix: string, rowErrors: string[]) => {\n const details = rowErrors.slice(0, 8).join(\"; \");\n const remaining = rowErrors.length - 8;\n const suffix = remaining > 0 ? `; and ${remaining} more` : \"\";\n return `${prefix} for ${rowErrors.length} row(s): ${details}${suffix}`;\n};\n\nexport const toValidationErrorsFromParseRowErrors = (\n parseError: CsvParseError,\n): CsvValidationError[] => {\n return parseError.errors.filter(\n (error) => error.rowNum >= CSV_FIRST_DATA_ROW_NUMBER,\n );\n};\n\nexport const normalizeTableData = (\n value: unknown,\n fallback: CsvUploadTableData,\n): CsvUploadTableData => {\n const tableData =\n isRecord(value) && \"data\" in value ? (value.data as unknown) : value;\n\n if (!isRecord(tableData)) {\n return fallback;\n }\n\n const columns = tableData.columns;\n const rows = tableData.rows;\n\n if (\n !Array.isArray(columns) ||\n columns.some((column) => typeof column !== \"string\") ||\n !Array.isArray(rows)\n ) {\n return fallback;\n }\n\n return {\n columns,\n rows: rows.map((row) => {\n if (Array.isArray(row)) {\n return row as VuuRowDataItemType[];\n }\n if (!isRecord(row)) {\n return columns.map(() => \"\");\n }\n return columns.map((column) => (row[column] as VuuRowDataItemType) ?? \"\");\n }),\n };\n};\n\nexport type RpcBatchResult = {\n errors: string[];\n results: unknown[];\n};\n\nexport const executeBatchRpcCalls = async <T>(\n items: T[],\n executor: (item: T) => Promise<unknown>,\n errorFormatter: (item: T, error: string) => string,\n): Promise<RpcBatchResult> => {\n const errors: string[] = [];\n const results: unknown[] = [];\n\n for (const item of items) {\n try {\n const result = await executor(item);\n const rpcResult = result as RpcResult | undefined;\n if (isRpcError(rpcResult)) {\n errors.push(errorFormatter(item, rpcResult.errorMessage));\n } else {\n results.push(result);\n }\n } catch (err) {\n errors.push(errorFormatter(item, toErrorMessage(err)));\n }\n }\n\n return { errors, results };\n};\n"],"names":["CSV_FIRST_DATA_ROW_NUMBER","isRpcError"],"mappings":";;;;;AAeA,MAAM,WAAW,CAAC,KAAA,KAChB,OAAO,KAAA,KAAU,YAAY,KAAU,KAAA,IAAA;AAE5B,MAAA,cAAA,GAAiB,CAAC,KAC7B,KAAA,KAAA,YAAiB,QAAQ,KAAM,CAAA,OAAA,GAAU,OAAO,KAAK;AAE1C,MAAA,eAAA,GAAkB,CAAC,KAC9B,KAAA,QAAA,CAAS,KAAK,CACd,IAAA,SAAA,IAAa,KACb,IAAA,OAAO,KAAM,CAAA,OAAA,KAAY,YACzB,QAAY,IAAA,KAAA,IACZ,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,MAAM,KAC1B,UAAc,IAAA,KAAA,IACd,QAAS,CAAA,KAAA,CAAM,QAAQ;AAEZ,MAAA,kBAAA,GAAqB,CAAC,UACjC,KAAA,MAAA,CAAO,KAAK,UAAW,CAAA,QAAA,CAAS,UAAU,CAAA,CAAE,MAAS,GAAA;AAEhD,MAAM,iBAAoB,GAAA,CAC/B,MACA,EAAA,OAAA,EACA,YACA,eACoB,MAAA;AAAA,EACpB,OAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAA;AAEO,MAAM,8BAAiC,GAAA,CAC5C,gBACA,EAAA,UAAA,KAEA,UACI,GAAA;AAAA,EACE,GAAG,gBAAA;AAAA,EACH,MAAQ,EAAA;AAAA,IACN,GAAG,gBAAiB,CAAA,MAAA;AAAA,IACpB,GAAG,qCAAqC,UAAU;AAAA,GACpD;AAAA,EACA,aAAe,EAAA;AACjB,CACA,GAAA;AAEO,MAAA,oBAAA,GAAuB,CAAC,MAAA,EAAgB,SAAwB,KAAA;AAC3E,EAAA,MAAM,UAAU,SAAU,CAAA,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,KAAK,IAAI,CAAA;AAC/C,EAAM,MAAA,SAAA,GAAY,UAAU,MAAS,GAAA,CAAA;AACrC,EAAA,MAAM,MAAS,GAAA,SAAA,GAAY,CAAI,GAAA,CAAA,MAAA,EAAS,SAAS,CAAU,KAAA,CAAA,GAAA,EAAA;AAC3D,EAAO,OAAA,CAAA,EAAG,MAAM,CAAQ,KAAA,EAAA,SAAA,CAAU,MAAM,CAAY,SAAA,EAAA,OAAO,GAAG,MAAM,CAAA,CAAA;AACtE;AAEa,MAAA,oCAAA,GAAuC,CAClD,UACyB,KAAA;AACzB,EAAA,OAAO,WAAW,MAAO,CAAA,MAAA;AAAA,IACvB,CAAC,KAAU,KAAA,KAAA,CAAM,MAAU,IAAAA;AAAA,GAC7B;AACF;AAEa,MAAA,kBAAA,GAAqB,CAChC,KAAA,EACA,QACuB,KAAA;AACvB,EAAA,MAAM,YACJ,QAAS,CAAA,KAAK,KAAK,MAAU,IAAA,KAAA,GAAS,MAAM,IAAmB,GAAA,KAAA;AAEjE,EAAI,IAAA,CAAC,QAAS,CAAA,SAAS,CAAG,EAAA;AACxB,IAAO,OAAA,QAAA;AAAA;AAGT,EAAA,MAAM,UAAU,SAAU,CAAA,OAAA;AAC1B,EAAA,MAAM,OAAO,SAAU,CAAA,IAAA;AAEvB,EAAA,IACE,CAAC,KAAM,CAAA,OAAA,CAAQ,OAAO,CAAA,IACtB,QAAQ,IAAK,CAAA,CAAC,MAAW,KAAA,OAAO,WAAW,QAAQ,CAAA,IACnD,CAAC,KAAM,CAAA,OAAA,CAAQ,IAAI,CACnB,EAAA;AACA,IAAO,OAAA,QAAA;AAAA;AAGT,EAAO,OAAA;AAAA,IACL,OAAA;AAAA,IACA,IAAM,EAAA,IAAA,CAAK,GAAI,CAAA,CAAC,GAAQ,KAAA;AACtB,MAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,GAAG,CAAG,EAAA;AACtB,QAAO,OAAA,GAAA;AAAA;AAET,MAAI,IAAA,CAAC,QAAS,CAAA,GAAG,CAAG,EAAA;AAClB,QAAO,OAAA,OAAA,CAAQ,GAAI,CAAA,MAAM,EAAE,CAAA;AAAA;AAE7B,MAAA,OAAO,QAAQ,GAAI,CAAA,CAAC,WAAY,GAAI,CAAA,MAAM,KAA4B,EAAE,CAAA;AAAA,KACzE;AAAA,GACH;AACF;AAOO,MAAM,oBAAuB,GAAA,OAClC,KACA,EAAA,QAAA,EACA,cAC4B,KAAA;AAC5B,EAAA,MAAM,SAAmB,EAAC;AAC1B,EAAA,MAAM,UAAqB,EAAC;AAE5B,EAAA,KAAA,MAAW,QAAQ,KAAO,EAAA;AACxB,IAAI,IAAA;AACF,MAAM,MAAA,MAAA,GAAS,MAAM,QAAA,CAAS,IAAI,CAAA;AAClC,MAAA,MAAM,SAAY,GAAA,MAAA;AAClB,MAAI,IAAAC,mBAAA,CAAW,SAAS,CAAG,EAAA;AACzB,QAAA,MAAA,CAAO,IAAK,CAAA,cAAA,CAAe,IAAM,EAAA,SAAA,CAAU,YAAY,CAAC,CAAA;AAAA,OACnD,MAAA;AACL,QAAA,OAAA,CAAQ,KAAK,MAAM,CAAA;AAAA;AACrB,aACO,GAAK,EAAA;AACZ,MAAA,MAAA,CAAO,KAAK,cAAe,CAAA,IAAA,EAAM,cAAe,CAAA,GAAG,CAAC,CAAC,CAAA;AAAA;AACvD;AAGF,EAAO,OAAA,EAAE,QAAQ,OAAQ,EAAA;AAC3B;;;;;;;;;;;;"}
|