@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"column-parser.js","sources":["../../../../../../packages/vuu-table-extras/src/column-expression-input/column-language-parser/generated/column-parser.js"],"sourcesContent":["// This file was generated by lezer-generator. You probably shouldn't edit it.\nimport {LRParser} from \"@lezer/lr\"\nexport const parser = LRParser.deserialize({\n version: 14,\n states: \"&xOVQPOOO!fQPO'#C^OVQPO'#CcQ!pQPOOO#bQPO'#CkO#gQPO'#CrOOQO'#Cy'#CyO#lQPO,58}OVQPO,59QOVQPO,59QOOQO'#Cn'#CnOVQPO,59XOVQPO,59VOVQPO'#CtOOQO,59^,59^OOQO1G.i1G.iOOQO1G.l1G.lO$bQPO1G.lO%ZQPO1G.sO!pQPO'#CmO%qQQO1G.qO%|QQO'#C{OOQO'#C{'#C{O&wQPO,59`OVQPO,59ZOVQPO,59[OVQPO7+$]OVQPO'#CuO'RQPO1G.zOOQO1G.z1G.zO'ZQQO'#C^O'eQQO1G.sO'{QQO1G.uOOQO1G.v1G.vO(WQPO<<GwO(_QPO,59aOOQO-E6s-E6sOOQO7+$f7+$fOVQPOAN=cO(iQQO1G.lO(yQPOG22}OOQOLD(iLD(iO)QQPO,59QO)QQPO,59QO)QQPO,59X\",\n stateData: \")n~OlOS~ORUOSUOTUOUUOWQO`SOnPO~OWgXZQX[QX]QX^QXpQXqQXrQXsQXtQXuQXeQX~OjQXXQX~PnOZWO[WO]XO^XOpYOqYOrYOsYOtYOuYO~OW[O~OW]O~OX_O~P!pO]Yi^YipYiqYirYisYitYiuYieYi~OZWO[WOjYiXYi~P#sOpaiqairaisaitaiuaieai~OZWO[WO]XO^XOjaiXai~P$rOejOvhOwiO~OZmX[mX]mX^mXeoXpmXqmXrmXsmXtmXumXvoXwoX~OXmOekO~P!pOXuOekO~OvQXwQX~PnOZzO[zO]{O^{Ovaiwai~P$rOwiOecivci~OevO~P!pOXiaeia~P!pOZzO[zOvYiwYi~P#sOXyO~P!pORUOSUOTUOUUOWQO`SOnnO~O`UTn~\",\n goto: \"$epPPqPPPPqPPqPPPPqP!S!g!r!rPq!w#Y#]PPP#cP$[oUOQWXZ[]hijkvz{|hUOQWXZ]jkvz{|Ve[hi[ZRVgrsxR|cVf[hioTOQWXZ[]hijkvz{|R^TQlgRtlQROQVQS`WzQaXQbZUc[hiQg]Qo|QrjQskQw{RxvQd[QphRqi\",\n nodeNames: \"⚠ ColumnDefinitionExpression Column Number String True False ParenthesizedExpression OpenBrace CloseBrace ArithmeticExpression Divide Times Plus Minus ConditionalExpression If RelationalExpression RelationalOperator AndCondition OrCondition Comma CallExpression Function ArgList\",\n maxTerm: 39,\n skippedNodes: [0],\n repeatNodeCount: 1,\n tokenData: \".^~RnXY#PYZ#P]^#Ppq#Pqr#brs#mxy$eyz$jz{$o{|$t|}$y}!O%O!O!P%T!P!Q%c!Q![%h!^!_%s!_!`&Q!`!a&V!c!}&d#R#S&d#T#U&u#U#Y&d#Y#Z(Y#Z#]&d#]#^*j#^#c&d#c#d+f#d#h&d#h#i,b#i#o&d~#USl~XY#PYZ#P]^#Ppq#P~#eP!_!`#h~#mOu~~#pWOX#mZ]#m^r#mrs$Ys#O#m#P;'S#m;'S;=`$_<%lO#m~$_OS~~$bP;=`<%l#m~$jOW~~$oOX~~$tO[~~$yO]~~%OOe~~%TO^~~%WP!Q![%Z~%`PR~!Q![%Z~%hOZ~~%mQR~!O!P%Z!Q![%h~%xPr~!_!`%{~&QOt~~&VOp~~&[Pq~!_!`&_~&dOs~P&iSnP!Q![&d!c!}&d#R#S&d#T#o&dR&zUnP!Q![&d!c!}&d#R#S&d#T#b&d#b#c'^#c#o&dR'cUnP!Q![&d!c!}&d#R#S&d#T#W&d#W#X'u#X#o&dR'|SvQnP!Q![&d!c!}&d#R#S&d#T#o&d~(_TnP!Q![&d!c!}&d#R#S&d#T#U(n#U#o&d~(sUnP!Q![&d!c!}&d#R#S&d#T#`&d#`#a)V#a#o&d~)[UnP!Q![&d!c!}&d#R#S&d#T#g&d#g#h)n#h#o&d~)sUnP!Q![&d!c!}&d#R#S&d#T#X&d#X#Y*V#Y#o&d~*^SU~nP!Q![&d!c!}&d#R#S&d#T#o&d~*oUnP!Q![&d!c!}&d#R#S&d#T#Y&d#Y#Z+R#Z#o&d~+YS`~nP!Q![&d!c!}&d#R#S&d#T#o&dR+kUnP!Q![&d!c!}&d#R#S&d#T#f&d#f#g+}#g#o&dR,USwQnP!Q![&d!c!}&d#R#S&d#T#o&d~,gUnP!Q![&d!c!}&d#R#S&d#T#f&d#f#g,y#g#o&d~-OUnP!Q![&d!c!}&d#R#S&d#T#i&d#i#j-b#j#o&d~-gUnP!Q![&d!c!}&d#R#S&d#T#X&d#X#Y-y#Y#o&d~.QST~nP!Q![&d!c!}&d#R#S&d#T#o&d\",\n tokenizers: [0, 1],\n topRules: {\"ColumnDefinitionExpression\":[0,1]},\n tokenPrec: 393\n})\n"],"names":["LRParser"],"mappings":";;;;AAEa,MAAA,MAAA,GAASA,YAAS,WAAY,CAAA;AAAA,EACzC,OAAS,EAAA,EAAA;AAAA,EACT,MAAQ,EAAA,0cAAA;AAAA,EACR,SAAW,EAAA,2ZAAA;AAAA,EACX,IAAM,EAAA,4KAAA;AAAA,EACN,SAAW,EAAA,6RAAA;AAAA,EACX,OAAS,EAAA,EAAA;AAAA,EACT,YAAA,EAAc,CAAC,CAAC,CAAA;AAAA,EAChB,eAAiB,EAAA,CAAA;AAAA,EACjB,SAAW,EAAA,4gCAAA;AAAA,EACX,UAAA,EAAY,CAAC,CAAA,EAAG,CAAC,CAAA;AAAA,EACjB,UAAU,EAAC,4BAAA,EAA6B,CAAC,CAAA,EAAE,CAAC,CAAC,EAAA;AAAA,EAC7C,SAAW,EAAA;AACb,CAAC;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"functionDocInfo.js","sources":["../../../../packages/vuu-table-extras/src/column-expression-input/functionDocInfo.ts"],"sourcesContent":["import { createEl } from \"@vuu-ui/vuu-utils\";\nimport { ColumnFunctionDescriptor } from \"./column-function-descriptors\";\n\nexport const functionDocInfo = ({\n name,\n description,\n example,\n params,\n type,\n}: ColumnFunctionDescriptor) => {\n const rootElement = createEl(\"div\", \"vuuFunctionDoc\");\n const headingElement = createEl(\"div\", \"function-heading\");\n\n const nameElement = createEl(\"span\", \"function-name\", name);\n const paramElement = createEl(\"span\", \"param-list\", params.description);\n const typeElement = createEl(\"span\", \"function-type\", type);\n\n headingElement.appendChild(nameElement);\n headingElement.appendChild(paramElement);\n headingElement.appendChild(typeElement);\n\n const child2 = createEl(\"p\", undefined, description);\n\n rootElement.appendChild(headingElement);\n rootElement.appendChild(child2);\n\n if (example) {\n const exampleElement = createEl(\"div\", \"example-container\");\n const expressionElement = createEl(\n \"div\",\n \"example-expression\",\n example.expression,\n );\n const resultElement = createEl(\"div\", \"example-result\", example.result);\n\n exampleElement.appendChild(expressionElement);\n\n rootElement.appendChild(exampleElement);\n rootElement.appendChild(resultElement);\n }\n\n return rootElement;\n};\n"],"names":["createEl"],"mappings":";;;;AAGO,MAAM,kBAAkB,CAAC;AAAA,EAC9B,IAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAgC,KAAA;AAC9B,EAAM,MAAA,WAAA,GAAcA,iBAAS,CAAA,KAAA,EAAO,gBAAgB,CAAA;AACpD,EAAM,MAAA,cAAA,GAAiBA,iBAAS,CAAA,KAAA,EAAO,kBAAkB,CAAA;AAEzD,EAAA,MAAM,WAAc,GAAAA,iBAAA,CAAS,MAAQ,EAAA,eAAA,EAAiB,IAAI,CAAA;AAC1D,EAAA,MAAM,YAAe,GAAAA,iBAAA,CAAS,MAAQ,EAAA,YAAA,EAAc,OAAO,WAAW,CAAA;AACtE,EAAA,MAAM,WAAc,GAAAA,iBAAA,CAAS,MAAQ,EAAA,eAAA,EAAiB,IAAI,CAAA;AAE1D,EAAA,cAAA,CAAe,YAAY,WAAW,CAAA;AACtC,EAAA,cAAA,CAAe,YAAY,YAAY,CAAA;AACvC,EAAA,cAAA,CAAe,YAAY,WAAW,CAAA;AAEtC,EAAA,MAAM,MAAS,GAAAA,iBAAA,CAAS,GAAK,EAAA,KAAA,CAAA,EAAW,WAAW,CAAA;AAEnD,EAAA,WAAA,CAAY,YAAY,cAAc,CAAA;AACtC,EAAA,WAAA,CAAY,YAAY,MAAM,CAAA;AAE9B,EAAA,IAAI,OAAS,EAAA;AACX,IAAM,MAAA,cAAA,GAAiBA,iBAAS,CAAA,KAAA,EAAO,mBAAmB,CAAA;AAC1D,IAAA,MAAM,iBAAoB,GAAAA,iBAAA;AAAA,MACxB,KAAA;AAAA,MACA,oBAAA;AAAA,MACA,OAAQ,CAAA;AAAA,KACV;AACA,IAAA,MAAM,aAAgB,GAAAA,iBAAA,CAAS,KAAO,EAAA,gBAAA,EAAkB,QAAQ,MAAM,CAAA;AAEtE,IAAA,cAAA,CAAe,YAAY,iBAAiB,CAAA;AAE5C,IAAA,WAAA,CAAY,YAAY,cAAc,CAAA;AACtC,IAAA,WAAA,CAAY,YAAY,aAAa,CAAA;AAAA;AAGvC,EAAO,OAAA,WAAA;AACT;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"highlighting.js","sources":["../../../../packages/vuu-table-extras/src/column-expression-input/highlighting.ts"],"sourcesContent":["import {\n HighlightStyle,\n syntaxHighlighting,\n tags,\n} from \"@vuu-ui/vuu-codemirror\";\n\nconst myHighlightStyle = HighlightStyle.define([\n {\n tag: tags.attributeValue,\n color: \"var(--vuuFilterEditor-variableColor);font-weight: bold\",\n },\n { tag: tags.variableName, color: \"var(--vuuFilterEditor-variableColor)\" },\n { tag: tags.comment, color: \"green\", fontStyle: \"italic\" },\n]);\n\nexport const vuuHighlighting = syntaxHighlighting(myHighlightStyle);\n"],"names":["HighlightStyle","tags","syntaxHighlighting"],"mappings":";;;;AAMA,MAAM,gBAAA,GAAmBA,6BAAe,MAAO,CAAA;AAAA,EAC7C;AAAA,IACE,KAAKC,kBAAK,CAAA,cAAA;AAAA,IACV,KAAO,EAAA;AAAA,GACT;AAAA,EACA,EAAE,GAAA,EAAKA,kBAAK,CAAA,YAAA,EAAc,OAAO,sCAAuC,EAAA;AAAA,EACxE,EAAE,GAAK,EAAAA,kBAAA,CAAK,SAAS,KAAO,EAAA,OAAA,EAAS,WAAW,QAAS;AAC3D,CAAC,CAAA;AAEY,MAAA,eAAA,GAAkBC,iCAAmB,gBAAgB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sources":["../../../../packages/vuu-table-extras/src/column-expression-input/theme.ts"],"sourcesContent":["import { EditorView } from \"@vuu-ui/vuu-codemirror\";\n\nexport const vuuTheme = EditorView.theme(\n {\n \"&\": {\n border: \"solid 1px var(--salt-container-primary-borderColor)\",\n color: \"var(--vuuFilterEditor-color)\",\n backgroundColor: \"var(--vuuFilterEditor-background)\",\n },\n \".cm-content\": {\n caretColor: \"var(--vuuFilterEditor-cursorColor)\",\n },\n \"&.cm-focused .cm-cursor\": {\n borderLeftColor: \"var(--vuuFilterEditor-cursorColor)\",\n },\n \"&.cm-focused .cm-selectionBackground, ::selection\": {\n backgroundColor: \"var(--vuuFilterEditor-selectionBackground)\",\n },\n \".cm-selectionBackground, ::selection\": {\n backgroundColor: \"var(--vuuFilterEditor-selectionBackground)\",\n },\n \".cm-scroller\": {\n fontFamily: \"var(--vuuFilterEditor-fontFamily)\",\n },\n \".cm-completionLabel\": {\n color: \"var(--vuu-color-gray-50)\",\n },\n \".cm-completionMatchedText\": {\n color: \"var(--vuu-color-gray-80)\",\n fontWeight: 700,\n textDecoration: \"none\",\n },\n \".cm-tooltip\": {\n background: \"var(--vuuFilterEditor-tooltipBackground)\",\n border: \"var(--vuuFilterEditor-tooltipBorder)\",\n borderRadius: \"4px\",\n boxShadow: \"var(--vuuFilterEditor-tooltipElevation)\",\n \"&.cm-tooltip-autocomplete > ul\": {\n fontFamily: \"var(--vuuFilterEditor-fontFamily)\",\n fontSize: \"var(--vuuFilterEditor-fontSize)\",\n maxHeight: \"240px\",\n },\n \"&.cm-tooltip-autocomplete > ul > li\": {\n height: \"var(--vuuFilterEditor-suggestion-height)\",\n padding: \"0 3px\",\n lineHeight: \"var(--vuuFilterEditor-suggestion-height)\",\n },\n \"&.cm-tooltip-autocomplete li[aria-selected]\": {\n background: \"var(--vuuFilterEditor-suggestion-selectedBackground)\",\n color: \"var(--vuuFilterEditor-suggestion-selectedColor)\",\n },\n \"&.cm-tooltip-autocomplete li .cm-completionDetail\": {\n color: \"var(--vuuFilterEditor-suggestion-detailColor)\",\n },\n },\n },\n { dark: false },\n);\n"],"names":["EditorView"],"mappings":";;;;AAEO,MAAM,WAAWA,wBAAW,CAAA,KAAA;AAAA,EACjC;AAAA,IACE,GAAK,EAAA;AAAA,MACH,MAAQ,EAAA,qDAAA;AAAA,MACR,KAAO,EAAA,8BAAA;AAAA,MACP,eAAiB,EAAA;AAAA,KACnB;AAAA,IACA,aAAe,EAAA;AAAA,MACb,UAAY,EAAA;AAAA,KACd;AAAA,IACA,yBAA2B,EAAA;AAAA,MACzB,eAAiB,EAAA;AAAA,KACnB;AAAA,IACA,mDAAqD,EAAA;AAAA,MACnD,eAAiB,EAAA;AAAA,KACnB;AAAA,IACA,sCAAwC,EAAA;AAAA,MACtC,eAAiB,EAAA;AAAA,KACnB;AAAA,IACA,cAAgB,EAAA;AAAA,MACd,UAAY,EAAA;AAAA,KACd;AAAA,IACA,qBAAuB,EAAA;AAAA,MACrB,KAAO,EAAA;AAAA,KACT;AAAA,IACA,2BAA6B,EAAA;AAAA,MAC3B,KAAO,EAAA,0BAAA;AAAA,MACP,UAAY,EAAA,GAAA;AAAA,MACZ,cAAgB,EAAA;AAAA,KAClB;AAAA,IACA,aAAe,EAAA;AAAA,MACb,UAAY,EAAA,0CAAA;AAAA,MACZ,MAAQ,EAAA,sCAAA;AAAA,MACR,YAAc,EAAA,KAAA;AAAA,MACd,SAAW,EAAA,yCAAA;AAAA,MACX,gCAAkC,EAAA;AAAA,QAChC,UAAY,EAAA,mCAAA;AAAA,QACZ,QAAU,EAAA,iCAAA;AAAA,QACV,SAAW,EAAA;AAAA,OACb;AAAA,MACA,qCAAuC,EAAA;AAAA,QACrC,MAAQ,EAAA,0CAAA;AAAA,QACR,OAAS,EAAA,OAAA;AAAA,QACT,UAAY,EAAA;AAAA,OACd;AAAA,MACA,6CAA+C,EAAA;AAAA,QAC7C,UAAY,EAAA,sDAAA;AAAA,QACZ,KAAO,EAAA;AAAA,OACT;AAAA,MACA,mDAAqD,EAAA;AAAA,QACnD,KAAO,EAAA;AAAA;AACT;AACF,GACF;AAAA,EACA,EAAE,MAAM,KAAM;AAChB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useColumnAutoComplete.js","sources":["../../../../packages/vuu-table-extras/src/column-expression-input/useColumnAutoComplete.ts"],"sourcesContent":["import {\n booleanJoinSuggestions,\n Completion,\n CompletionContext,\n CompletionSource,\n EditorState,\n getNamedParentNode,\n getPreviousNode,\n getValue,\n SyntaxNode,\n syntaxTree,\n} from \"@vuu-ui/vuu-codemirror\";\nimport { MutableRefObject, useCallback } from \"react\";\nimport {\n ColumnNamedTerms,\n isCompleteExpression,\n isCompleteRelationalExpression,\n} from \"./column-language-parser\";\nimport {\n ColumnExpressionOperator,\n ColumnExpressionSuggestionOptions,\n ColumnExpressionSuggestionType,\n IExpressionSuggestionProvider,\n} from \"./useColumnExpressionEditor\";\nimport { lastNamedChild } from \"./column-language-parser\";\n\nexport type ApplyCompletion = (mode?: \"add\" | \"replace\") => void;\n\nexport type Operator = \"\";\n\nconst applyPrefix = (completions: Completion[], prefix?: string) =>\n prefix\n ? completions.map((completion) => ({\n ...completion,\n apply:\n typeof completion.apply === \"function\"\n ? completion.apply\n : `${prefix}${completion.apply ?? completion.label}`,\n }))\n : completions;\n\nconst isOperator = (node?: SyntaxNode): node is SyntaxNode =>\n node === undefined\n ? false\n : [\"Times\", \"Divide\", \"Plus\", \"Minus\"].includes(node.name);\n\nconst completionDone = (onSubmit?: () => void): Completion => ({\n apply: () => {\n onSubmit?.();\n },\n label: \"Done\",\n boost: 10,\n});\n\nconst getLastChild = (node: SyntaxNode, context: CompletionContext) => {\n let { lastChild: childNode } = node;\n const { pos } = context;\n while (childNode) {\n const isBeforeCursor = childNode.from < pos;\n if (isBeforeCursor && ColumnNamedTerms.includes(childNode.name)) {\n if (childNode.name === \"ParenthesizedExpression\") {\n // extract the parenthesized expression\n const expression = childNode.firstChild?.nextSibling;\n if (expression) {\n childNode = expression;\n }\n }\n return childNode;\n } else {\n childNode = childNode.prevSibling;\n }\n }\n};\nconst getFunctionName = (node: SyntaxNode, state: EditorState) => {\n if (node.name === \"ArgList\") {\n const functionNode = node.prevSibling;\n if (functionNode) {\n return getValue(functionNode, state);\n }\n } else if (node.name === \"OpenBrace\") {\n const maybeFunction = node.parent?.prevSibling;\n if (maybeFunction?.name === \"Function\") {\n return getValue(maybeFunction, state);\n }\n }\n};\n\nconst getRelationalOperator = (node: SyntaxNode, state: EditorState) => {\n if (node.name === \"RelationalExpression\") {\n const lastNode = lastNamedChild(node);\n if (lastNode?.name === \"RelationalOperator\") {\n return getValue(lastNode, state);\n }\n } else {\n const prevNode = node.prevSibling;\n if (prevNode?.name === \"RelationalOperator\") {\n return getValue(prevNode, state) as ColumnExpressionOperator;\n }\n }\n};\n\nconst getColumnName = (\n node: SyntaxNode,\n state: EditorState,\n): string | undefined => {\n if (node.name === \"RelationalExpression\") {\n if (node.firstChild?.name === \"Column\") {\n return getValue(node.firstChild, state);\n }\n } else {\n const prevNode = node.prevSibling;\n if (prevNode?.name === \"Column\") {\n return getValue(prevNode, state);\n } else if (prevNode?.name === \"RelationalOperator\") {\n return getColumnName(prevNode, state);\n }\n }\n};\n\nconst makeSuggestions = async (\n context: CompletionContext,\n suggestionProvider: IExpressionSuggestionProvider,\n suggestionType: ColumnExpressionSuggestionType,\n optionalArgs: ColumnExpressionSuggestionOptions = {},\n) => {\n const options = await suggestionProvider.getSuggestions(\n suggestionType,\n optionalArgs,\n );\n const { startsWith = \"\" } = optionalArgs;\n return { from: context.pos - startsWith.length, options };\n};\n\nconst handleConditionalExpression = (\n node: SyntaxNode,\n context: CompletionContext,\n suggestionProvider: IExpressionSuggestionProvider,\n maybeComplete?: boolean,\n onSubmit?: () => void,\n) => {\n const lastChild = getLastChild(node, context);\n switch (lastChild?.name) {\n case \"If\":\n return makeSuggestions(context, suggestionProvider, \"expression\", {\n prefix: \"( \",\n });\n case \"OpenBrace\":\n return makeSuggestions(context, suggestionProvider, \"expression\");\n case \"Condition\":\n return makeSuggestions(context, suggestionProvider, \"expression\", {\n prefix: \", \",\n });\n case \"CloseBrace\":\n if (maybeComplete) {\n const options: Completion[] = [completionDone(onSubmit)];\n return { from: context.pos, options };\n }\n }\n};\n\nconst promptToSave = (context: CompletionContext, onSubmit: () => void) => {\n const options: Completion[] = [completionDone(onSubmit)];\n return { from: context.pos, options };\n};\n\nexport const useColumnAutoComplete = (\n suggestionProvider: IExpressionSuggestionProvider,\n onSubmit: MutableRefObject<ApplyCompletion>,\n) => {\n const makeSuggestions = useCallback(\n async (\n context: CompletionContext,\n suggestionType: ColumnExpressionSuggestionType,\n optionalArgs: ColumnExpressionSuggestionOptions = {},\n ) => {\n const options = await suggestionProvider.getSuggestions(\n suggestionType,\n optionalArgs,\n );\n const { startsWith = \"\" } = optionalArgs;\n return { from: context.pos - startsWith.length, options };\n },\n [suggestionProvider],\n );\n\n return useCallback(\n async (context: CompletionContext) => {\n const { state, pos } = context;\n const word = context.matchBefore(/\\w*/) ?? {\n from: 0,\n to: 0,\n text: undefined,\n };\n\n const tree = syntaxTree(state);\n const nodeBefore = tree.resolveInner(pos, -1);\n const text = state.doc.toString();\n const maybeComplete = isCompleteExpression(text);\n\n switch (nodeBefore.name) {\n case \"If\": {\n return makeSuggestions(context, \"expression\", { prefix: \"( \" });\n }\n case \"Condition\":\n {\n const lastChild = getLastChild(nodeBefore, context);\n if (lastChild?.name === \"Column\") {\n // is this the first term ?\n const prevChild = getPreviousNode(lastChild);\n if (prevChild?.name !== \"RelationalOperator\") {\n return makeSuggestions(context, \"condition-operator\", {\n columnName: getValue(lastChild, state),\n });\n }\n } else if (lastChild?.name === \"RelationalOperator\") {\n // we need the type of the expression on the other side of the operator\n return makeSuggestions(context, \"expression\");\n }\n }\n break;\n case \"ConditionalExpression\":\n return handleConditionalExpression(\n nodeBefore,\n context,\n suggestionProvider,\n );\n case \"RelationalExpression\":\n {\n if (isCompleteRelationalExpression(nodeBefore)) {\n return {\n from: context.pos,\n options: booleanJoinSuggestions.concat({\n label: \", <truthy expression>, <falsy expression>\",\n apply: \", \",\n }),\n };\n } else {\n const operator = getRelationalOperator(nodeBefore, state);\n const columnName = getColumnName(nodeBefore, state);\n if (!operator) {\n const options = await suggestionProvider.getSuggestions(\n \"condition-operator\",\n {\n columnName,\n },\n );\n return { from: context.pos, options };\n } else {\n return makeSuggestions(context, \"expression\");\n }\n }\n }\n break;\n\n case \"RelationalOperator\":\n // we need the type of the expression on the other side of the operator\n return makeSuggestions(context, \"expression\");\n\n case \"String\":\n {\n // we only encounter a string as the right hand operand of a conditional expression\n const operator = getRelationalOperator(\n nodeBefore,\n state,\n ) as ColumnExpressionOperator;\n const columnName = getColumnName(nodeBefore, state);\n // are we inside the string or immediately after it\n const { from, to } = nodeBefore;\n if (to - from === 2 && context.pos === from + 1) {\n // We are in an empty string, i.e between two quotes\n if (columnName && operator) {\n return makeSuggestions(context, \"columnValue\", {\n columnName,\n operator,\n startsWith: word.text,\n });\n }\n } else if (to - from > 2 && context.pos === to) {\n // NOte we couls also offer AND/OR to extend the condition\n return makeSuggestions(context, \"expression\", {\n prefix: \", \",\n });\n }\n }\n break;\n\n case \"ArithmeticExpression\":\n {\n const lastChild = getLastChild(nodeBefore, context);\n if (lastChild?.name === \"Column\") {\n return makeSuggestions(context, \"expression\");\n } else if (isOperator(lastChild)) {\n const operator = lastChild.name as ColumnExpressionOperator;\n return makeSuggestions(context, \"column\", { operator });\n }\n }\n\n break;\n case \"OpenBrace\":\n {\n // Might be a function expression, might be parenthesized\n const functionName = getFunctionName(nodeBefore, state);\n // If not function, what came before - if it's an operator\n // we restrict to numerics\n return makeSuggestions(context, \"expression\", { functionName });\n }\n break;\n case \"ArgList\": {\n const functionName = getFunctionName(nodeBefore, state);\n const lastArgument = getLastChild(nodeBefore, context);\n\n const prefix =\n lastArgument?.name === \"OpenBrace\" || lastArgument?.name === \"Comma\"\n ? undefined\n : \",\";\n let options = await suggestionProvider.getSuggestions(\"expression\", {\n functionName,\n });\n options = prefix ? applyPrefix(options, \", \") : options;\n\n // TODO per function check for number of arguments expected\n if (\n lastArgument?.name !== \"OpenBrace\" &&\n lastArgument?.name !== \"Comma\"\n ) {\n options = [\n {\n apply: \") \",\n boost: 10,\n label: \"Done - no more arguments\",\n } as Completion,\n ].concat(options);\n }\n return { from: context.pos, options };\n }\n case \"Equal\":\n if (text.trim() === \"=\") {\n return makeSuggestions(context, \"expression\");\n }\n break;\n case \"ParenthesizedExpression\":\n case \"ColumnDefinitionExpression\":\n if (context.pos === 0) {\n return makeSuggestions(context, \"expression\");\n } else {\n const lastChild = getLastChild(nodeBefore, context);\n if (lastChild?.name === \"Column\") {\n if (maybeComplete) {\n // We come in here is the columns IS complete, too (ie has space after)\n const options: Completion[] = [\n completionDone(onSubmit.current),\n ];\n const columnName = getValue(lastChild, state);\n const columnOptions: Completion[] =\n await suggestionProvider.getSuggestions(\"operator\", {\n columnName,\n });\n\n return {\n from: context.pos,\n options: options.concat(columnOptions),\n };\n }\n } else if (lastChild?.name === \"CallExpression\") {\n if (maybeComplete) {\n return {\n from: context.pos,\n options: [completionDone(onSubmit.current)],\n };\n }\n } else if (lastChild?.name === \"ArithmeticExpression\") {\n if (maybeComplete) {\n let options: Completion[] = [completionDone(onSubmit.current)];\n\n const lastExpressionChild = getLastChild(lastChild, context);\n if (lastExpressionChild?.name === \"Column\") {\n const columnName = getValue(lastExpressionChild, state);\n // TODO need to exclude columns already included in expression\n\n const suggestions = await suggestionProvider.getSuggestions(\n \"operator\",\n { columnName },\n );\n options = options.concat(suggestions);\n }\n\n return {\n from: context.pos,\n options,\n };\n }\n } else if (lastChild?.name === \"ConditionalExpression\") {\n return handleConditionalExpression(\n lastChild,\n context,\n suggestionProvider,\n maybeComplete,\n onSubmit.current,\n );\n }\n break;\n }\n case \"Column\":\n {\n const isPartialMatch = await suggestionProvider.isPartialMatch(\n \"expression\",\n undefined,\n word.text,\n );\n\n if (isPartialMatch) {\n return makeSuggestions(context, \"expression\", {\n startsWith: word.text,\n });\n }\n }\n break;\n case \"Comma\":\n {\n const parentNode = getNamedParentNode(nodeBefore);\n if (parentNode?.name === \"ConditionalExpression\") {\n return makeSuggestions(context, \"expression\");\n }\n }\n break;\n\n case \"CloseBrace\":\n {\n const parentNode = getNamedParentNode(nodeBefore);\n if (parentNode?.name === \"ConditionalExpression\") {\n return handleConditionalExpression(\n parentNode,\n context,\n suggestionProvider,\n maybeComplete,\n onSubmit.current,\n );\n } else if (parentNode?.name === \"ArgList\") {\n if (maybeComplete) {\n return promptToSave(context, onSubmit.current);\n }\n }\n }\n break;\n\n default: {\n if (nodeBefore?.prevSibling?.name === \"FilterClause\") {\n console.log(\"looks like we ight be a or|and operator\");\n }\n }\n }\n },\n [makeSuggestions, onSubmit, suggestionProvider],\n ) as CompletionSource;\n};\n"],"names":["ColumnNamedTerms","getValue","lastNamedChild","makeSuggestions","useCallback","syntaxTree","isCompleteExpression","getPreviousNode","isCompleteRelationalExpression","booleanJoinSuggestions","getNamedParentNode"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useColumnExpressionEditor.js","sources":["../../../../packages/vuu-table-extras/src/column-expression-input/useColumnExpressionEditor.ts"],"sourcesContent":["import {\n autocompletion,\n Completion,\n defaultKeymap,\n EditorState,\n EditorView,\n ensureSyntaxTree,\n keymap,\n minimalSetup,\n startCompletion,\n} from \"@vuu-ui/vuu-codemirror\";\nimport { createEl } from \"@vuu-ui/vuu-utils\";\nimport {\n FocusEventHandler,\n MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from \"react\";\nimport { columnExpressionLanguageSupport } from \"./column-language-parser\";\nimport {\n ColumnDefinitionExpression,\n walkTree,\n} from \"./column-language-parser/ColumnExpressionTreeWalker\";\nimport { ColumnExpressionInputProps } from \"./ColumnExpressionInput\";\nimport { vuuHighlighting } from \"./highlighting\";\nimport { vuuTheme } from \"./theme\";\nimport {\n ApplyCompletion,\n useColumnAutoComplete,\n} from \"./useColumnAutoComplete\";\n\nexport type ColumnExpressionOperator = \"Times\" | \"Divide\" | \"Minus\" | \"Plus\";\n\nexport type ColumnExpressionSuggestionType =\n | \"column\"\n | \"columnValue\"\n | \"expression\"\n | \"condition-operator\"\n | \"operator\"\n | \"relational-operator\";\n\nexport type ColumnExpressionSuggestionOptions = {\n columnName?: string;\n functionName?: string;\n operator?: ColumnExpressionOperator;\n prefix?: string;\n startsWith?: string;\n selection?: string[];\n};\n\n// TODO move this somewhere neutral\nexport interface IExpressionSuggestionProvider {\n getSuggestions: (\n valueType: ColumnExpressionSuggestionType,\n options?: ColumnExpressionSuggestionOptions,\n ) => Promise<Completion[]>;\n isPartialMatch: (\n valueType: ColumnExpressionSuggestionType,\n columnName?: string,\n text?: string | undefined,\n ) => Promise<boolean>;\n}\n\nexport interface ExpressionSuggestionConsumer {\n suggestionProvider: IExpressionSuggestionProvider;\n}\n\nconst getView = (ref: MutableRefObject<EditorView | undefined>): EditorView => {\n if (ref.current == undefined) {\n throw Error(\"EditorView not defined\");\n }\n return ref.current;\n};\n\nconst getOptionClass = (/*completion: Completion*/) => {\n return \"vuuSuggestion\";\n};\n\nconst noop = () => console.log(\"noooop\");\n\nconst hasExpressionType = (\n completion: Completion,\n): completion is Completion & { expressionType: string } =>\n \"expressionType\" in completion;\n\nconst injectOptionContent = (\n completion: Completion /*, state: EditorState*/,\n) => {\n if (hasExpressionType(completion)) {\n const div = createEl(\"div\", \"expression-type-container\");\n const span = createEl(\"span\", \"expression-type\", completion.expressionType);\n div.appendChild(span);\n return div;\n } else {\n return null;\n }\n};\n\nexport const useColumnExpressionEditor = ({\n onChange,\n onSubmitExpression,\n source,\n suggestionProvider,\n}: ColumnExpressionInputProps) => {\n const editorRef = useRef<HTMLDivElement>(null);\n const onSubmitRef = useRef<ApplyCompletion>(noop);\n const viewRef = useRef<EditorView>(undefined);\n const completionFn = useColumnAutoComplete(suggestionProvider, onSubmitRef);\n\n const [createState, clearInput, submit] = useMemo(() => {\n const parseExpression = ():\n | [string, ColumnDefinitionExpression]\n | [\"\", undefined] => {\n const view = getView(viewRef);\n const source = view.state.doc.toString();\n const tree = ensureSyntaxTree(view.state, view.state.doc.length, 5000);\n if (tree) {\n const expression = walkTree(tree, source);\n return [source, expression];\n } else {\n return [\"\", undefined];\n }\n };\n\n const clearInput = () => {\n getView(viewRef).setState(createState());\n };\n\n const submitExpression = () => {\n const [source, expression] = parseExpression();\n onSubmitExpression?.(source, expression);\n };\n\n const showSuggestions = (key: string) => {\n return keymap.of([\n {\n key,\n run() {\n startCompletion(getView(viewRef));\n return true;\n },\n },\n ]);\n };\n\n const createState = (): EditorState =>\n EditorState.create({\n doc: source,\n extensions: [\n minimalSetup,\n autocompletion({\n addToOptions: [\n {\n render: injectOptionContent,\n position: 70,\n },\n ],\n override: [completionFn],\n optionClass: getOptionClass,\n }),\n columnExpressionLanguageSupport(),\n keymap.of(defaultKeymap),\n showSuggestions(\"ArrowDown\"),\n EditorView.updateListener.of((v) => {\n const view = getView(viewRef);\n if (v.docChanged) {\n startCompletion(view);\n const source = view.state.doc.toString();\n onChange?.(source);\n }\n }),\n // Enforces single line view\n EditorState.transactionFilter.of((tr) =>\n tr.newDoc.lines > 1 ? [] : tr,\n ),\n vuuTheme,\n vuuHighlighting,\n ],\n });\n\n onSubmitRef.current = () => {\n submitExpression();\n };\n\n return [createState, clearInput, submitExpression];\n }, [completionFn, onChange, onSubmitExpression, source]);\n\n useEffect(() => {\n if (!editorRef.current) {\n throw Error(\"editor not in dom\");\n }\n\n viewRef.current = new EditorView({\n state: createState(),\n parent: editorRef.current,\n });\n\n return () => {\n viewRef.current?.destroy();\n };\n }, [completionFn, createState]);\n\n const handleBlur = useCallback<FocusEventHandler>(() => {\n submit();\n }, [submit]);\n\n return { editorRef, clearInput, onBlur: handleBlur };\n};\n"],"names":["createEl","useRef","useColumnAutoComplete","useMemo","source","ensureSyntaxTree","walkTree","clearInput","createState","keymap","startCompletion","EditorState","minimalSetup","autocompletion","columnExpressionLanguageSupport","defaultKeymap","EditorView","vuuTheme","vuuHighlighting","useEffect","useCallback"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useColumnExpressionSuggestionProvider.js","sources":["../../../../packages/vuu-table-extras/src/column-expression-input/useColumnExpressionSuggestionProvider.ts"],"sourcesContent":["import {\n AnnotationType,\n Completion,\n EditorView,\n getRelationalOperators,\n numericOperators,\n stringOperators,\n toSuggestions,\n} from \"@vuu-ui/vuu-codemirror\";\nimport {\n getTypeaheadParams,\n useTypeaheadSuggestions,\n} from \"@vuu-ui/vuu-data-react\";\nimport { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { VuuTable } from \"@vuu-ui/vuu-protocol-types\";\nimport { isNumericColumn, isTextColumn } from \"@vuu-ui/vuu-utils\";\nimport { useCallback, useRef } from \"react\";\nimport {\n ColumnFunctionDescriptor,\n columnFunctionDescriptors,\n} from \"./column-function-descriptors\";\nimport { functionDocInfo } from \"./functionDocInfo\";\nimport {\n ColumnExpressionOperator,\n ColumnExpressionSuggestionType,\n IExpressionSuggestionProvider,\n} from \"./useColumnExpressionEditor\";\n\nconst NO_OPERATORS = [] as Completion[];\n\nconst withApplySpace = (suggestions: Completion[]): Completion[] =>\n suggestions.map((suggestion) => ({\n ...suggestion,\n apply: (suggestion.apply ?? suggestion.label) + \" \",\n }));\n\ntype ColumnOptions = {\n functionName?: string;\n operator?: ColumnExpressionOperator;\n prefix?: string;\n};\n\nconst getValidColumns = (\n columns: readonly ColumnDescriptor[],\n { functionName, operator }: ColumnOptions,\n) => {\n if (operator) {\n return columns.filter(isNumericColumn);\n } else if (functionName) {\n const fn = columnFunctionDescriptors.find((f) => f.name === functionName);\n if (fn) {\n switch (fn.accepts) {\n case \"string\":\n return columns.filter(isTextColumn);\n case \"number\":\n return columns.filter(isNumericColumn);\n default:\n return columns;\n }\n }\n }\n return columns;\n};\n\nconst getColumns = (\n columns: readonly ColumnDescriptor[],\n options: ColumnOptions,\n) => {\n const validColumns = getValidColumns(columns, options);\n return validColumns.map((column) => {\n const label = column.label ?? column.name;\n return {\n apply: options.prefix ? `${options.prefix}${column.name}` : column.name,\n label,\n boost: 5,\n type: \"column\",\n expressionType: column.serverDataType,\n };\n });\n};\n\n// prettier-ignore\nconst arithmeticOperators = [\n { apply: \"* \", boost: 2, label: \"*\", type: \"operator\" },\n { apply: \"/ \", boost: 2, label: \"/\", type: \"operator\" },\n { apply: \"+ \", boost: 2, label: \"+\", type: \"operator\" },\n { apply: \"- \", boost: 2, label: \"-\", type: \"operator\" },\n];\n\nconst getOperators = (column?: ColumnDescriptor) => {\n if (column === undefined || isNumericColumn(column)) {\n return arithmeticOperators;\n } else {\n return NO_OPERATORS;\n }\n};\n\nconst getConditionOperators = (column: ColumnDescriptor) => {\n switch (column.serverDataType) {\n case \"string\":\n case \"char\":\n return withApplySpace(stringOperators /*, startsWith*/);\n case \"int\":\n case \"long\":\n case \"double\":\n return withApplySpace(numericOperators);\n }\n};\n\nconst toFunctionCompletion = (\n functionDescriptor: ColumnFunctionDescriptor,\n) => ({\n apply: `${functionDescriptor.name}( `,\n boost: 2,\n expressionType: functionDescriptor.type,\n info: () => functionDocInfo(functionDescriptor),\n label: functionDescriptor.name,\n type: \"function\",\n});\n\nconst getAcceptedTypes = (fn?: ColumnFunctionDescriptor) => {\n if (fn) {\n if (typeof fn.accepts === \"string\") {\n return fn.accepts;\n } else if (Array.isArray(fn.accepts)) {\n if (fn.accepts.every((s) => s === \"string\")) {\n return \"string\";\n } else {\n return \"any\";\n }\n }\n }\n return \"any\";\n};\n\nconst functions: Completion[] =\n columnFunctionDescriptors.map(toFunctionCompletion);\n\nconst getFunctions = ({ functionName }: ColumnOptions) => {\n if (functionName) {\n const fn = columnFunctionDescriptors.find((f) => f.name === functionName);\n const acceptedTypes = getAcceptedTypes(fn);\n if (fn) {\n switch (acceptedTypes) {\n case \"string\":\n return columnFunctionDescriptors\n .filter((f) => f.type === \"string\" || f.type === \"variable\")\n .map(toFunctionCompletion);\n case \"number\":\n return columnFunctionDescriptors\n .filter((f) => f.type === \"number\" || f.type === \"variable\")\n .map(toFunctionCompletion);\n default:\n }\n }\n }\n return functions;\n};\n\nexport interface SuggestionProviderHookProps {\n columns: readonly ColumnDescriptor[];\n table: VuuTable;\n}\n\nconst NONE = {};\n\nexport const useColumnExpressionSuggestionProvider = ({\n columns,\n table,\n}: SuggestionProviderHookProps): IExpressionSuggestionProvider => {\n const findColumn = useCallback(\n (name?: string) =>\n name ? columns.find((col) => col.name === name) : undefined,\n [columns],\n );\n\n const latestSuggestionsRef = useRef<Completion[]>(undefined);\n const getTypeaheadSuggestions = useTypeaheadSuggestions();\n\n const getSuggestions: IExpressionSuggestionProvider[\"getSuggestions\"] =\n useCallback(\n async (suggestionType, options = NONE): Promise<Completion[]> => {\n const { columnName, functionName, operator, prefix } = options;\n\n switch (suggestionType) {\n case \"expression\": {\n const suggestions = await withApplySpace(\n getColumns(columns, { functionName, prefix }),\n ).concat(getFunctions(options));\n return (latestSuggestionsRef.current = suggestions);\n }\n case \"column\": {\n const suggestions = await getColumns(columns, options);\n return (latestSuggestionsRef.current = withApplySpace(suggestions));\n }\n case \"operator\": {\n const suggestions = await getOperators(findColumn(columnName));\n return (latestSuggestionsRef.current = withApplySpace(suggestions));\n }\n case \"relational-operator\": {\n const suggestions = await getRelationalOperators(\n findColumn(columnName),\n );\n return (latestSuggestionsRef.current = withApplySpace(suggestions));\n }\n case \"condition-operator\":\n {\n const column = findColumn(columnName);\n if (column) {\n const suggestions = await getConditionOperators(column);\n if (suggestions) {\n return (latestSuggestionsRef.current =\n withApplySpace(suggestions));\n }\n }\n }\n break;\n case \"columnValue\":\n if (columnName && operator) {\n // const column = findColumn(columnName);\n const params = getTypeaheadParams(\n table,\n columnName /*, startsWith*/,\n );\n const suggestions = await getTypeaheadSuggestions(params);\n if (suggestions) {\n latestSuggestionsRef.current = toSuggestions(suggestions, {\n suffix: \"\",\n });\n\n latestSuggestionsRef.current.forEach((suggestion) => {\n suggestion.apply = (\n view: EditorView,\n completion: Completion,\n from: number,\n ) => {\n const annotation = new AnnotationType<Completion>();\n const cursorPos = from + completion.label.length + 1;\n view.dispatch({\n changes: { from, insert: completion.label },\n selection: { anchor: cursorPos, head: cursorPos },\n annotations: annotation.of(completion),\n });\n };\n });\n }\n return latestSuggestionsRef.current || [];\n }\n break;\n }\n\n return [];\n },\n [columns, findColumn, getTypeaheadSuggestions, table],\n );\n\n const isPartialMatch = useCallback(\n async (\n valueType: ColumnExpressionSuggestionType,\n columnName?: string,\n pattern?: string,\n ) => {\n const { current: latestSuggestions } = latestSuggestionsRef;\n let maybe = false;\n const suggestions =\n latestSuggestions || (await getSuggestions(valueType, { columnName }));\n if (pattern && suggestions) {\n for (const option of suggestions) {\n if (option.label === pattern) {\n return false;\n } else if (option.label.startsWith(pattern)) {\n maybe = true;\n }\n }\n }\n return maybe;\n },\n [getSuggestions],\n );\n\n return {\n getSuggestions,\n isPartialMatch,\n };\n};\n"],"names":["isNumericColumn","columnFunctionDescriptors","isTextColumn","stringOperators","numericOperators","functionDocInfo","useCallback","useRef","useTypeaheadSuggestions","getRelationalOperators","getTypeaheadParams","toSuggestions","AnnotationType"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BaseNumericFormattingSettings.js","sources":["../../../../packages/vuu-table-extras/src/column-formatting-settings/BaseNumericFormattingSettings.tsx"],"sourcesContent":["import { FormField, FormFieldLabel, Input, Switch } from \"@salt-ds/core\";\nimport {\n ColumnTypeFormatting,\n FormattingSettingsProps,\n} from \"@vuu-ui/vuu-table-types\";\nimport { getTypeFormattingFromColumn } from \"@vuu-ui/vuu-utils\";\nimport {\n ChangeEvent,\n KeyboardEvent,\n SyntheticEvent,\n useCallback,\n useState,\n} from \"react\";\n\nconst classBase = \"vuuFormattingSettings\";\n\nexport const BaseNumericFormattingSettings = ({\n column,\n onChangeFormatting: onChange,\n}: FormattingSettingsProps) => {\n const [formattingSettings, setFormattingSettings] =\n useState<ColumnTypeFormatting>(getTypeFormattingFromColumn(column));\n\n const handleInputKeyDown = useCallback(\n (evt: KeyboardEvent<HTMLInputElement>) => {\n if (evt.key === \"Enter\" || evt.key === \"Tab\") {\n onChange(formattingSettings);\n }\n },\n [formattingSettings, onChange],\n );\n\n const handleChangeDecimals = useCallback(\n (evt: SyntheticEvent) => {\n const { value } = evt.target as HTMLFormElement;\n const numericValue: number | undefined =\n value === \"\"\n ? undefined\n : isNaN(parseInt(value))\n ? undefined\n : parseInt(value);\n\n const newFormattingSettings = {\n ...formattingSettings,\n decimals: numericValue,\n };\n setFormattingSettings(newFormattingSettings);\n },\n [formattingSettings],\n );\n\n const handleChangeAlignDecimals = useCallback(\n (evt: ChangeEvent<HTMLInputElement>) => {\n const { checked } = evt.target as HTMLInputElement;\n const newFormattingSettings = {\n ...formattingSettings,\n alignOnDecimals: checked,\n };\n setFormattingSettings(newFormattingSettings);\n onChange(newFormattingSettings);\n },\n [formattingSettings, onChange],\n );\n\n const handleChangeZeroPad = useCallback(\n (evt: ChangeEvent<HTMLInputElement>) => {\n const { checked } = evt.target as HTMLInputElement;\n const newFormattingSettings = {\n ...formattingSettings,\n zeroPad: checked,\n };\n setFormattingSettings(newFormattingSettings);\n onChange(newFormattingSettings);\n },\n [formattingSettings, onChange],\n );\n\n return (\n <div className={classBase}>\n <FormField data-field=\"decimals\">\n <FormFieldLabel>Number of decimals</FormFieldLabel>\n <Input\n bordered\n className=\"vuuInput\"\n onChange={handleChangeDecimals}\n onKeyDown={handleInputKeyDown}\n value={formattingSettings.decimals ?? \"\"}\n />\n </FormField>\n\n <FormField labelPlacement=\"left\">\n <FormFieldLabel>Align on decimals</FormFieldLabel>\n <Switch\n checked={formattingSettings.alignOnDecimals ?? false}\n onChange={handleChangeAlignDecimals}\n value=\"align-decimals\"\n />\n </FormField>\n <FormField labelPlacement=\"left\">\n <FormFieldLabel>Zero pad decimals</FormFieldLabel>\n <Switch\n checked={formattingSettings.zeroPad ?? false}\n onChange={handleChangeZeroPad}\n value=\"zero-pad\"\n />\n </FormField>\n </div>\n );\n};\n"],"names":["useState","getTypeFormattingFromColumn","useCallback","jsxs","FormField","jsx","FormFieldLabel","Input","Switch"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnFormattingPanel.js","sources":["../../../../packages/vuu-table-extras/src/column-formatting-settings/ColumnFormattingPanel.tsx"],"sourcesContent":["import {\n ColumnDescriptor,\n ColumnDescriptorCustomRenderer,\n ColumnTypeRendering,\n FormattingSettingsProps,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n CellRendererDescriptor,\n ConfigurationEditorProps,\n getCellRendererOptions,\n getConfigurationEditor,\n isColumnTypeRenderer,\n isTypeDescriptor,\n} from \"@vuu-ui/vuu-utils\";\nimport { Dropdown, FormField, FormFieldLabel, Option } from \"@salt-ds/core\";\nimport cx from \"clsx\";\nimport { HTMLAttributes, SyntheticEvent, useCallback, useMemo } from \"react\";\nimport { BaseNumericFormattingSettings } from \"./BaseNumericFormattingSettings\";\nimport { LongTypeFormattingSettings } from \"./LongTypeFormattingSettings\";\nimport { DateTimeFormattingSettings } from \"./DateTimeFormattingSettings\";\n\nconst classBase = \"vuuColumnFormattingPanel\";\n\nexport interface ColumnFormattingPanelProps\n extends HTMLAttributes<HTMLDivElement>,\n FormattingSettingsProps {\n availableRenderers: CellRendererDescriptor[];\n column: ColumnDescriptor;\n onChangeRendering: (renderProps: ColumnTypeRendering) => void;\n}\n\nexport const ColumnFormattingPanel = ({\n availableRenderers,\n className,\n column,\n onChangeFormatting,\n onChangeColumnType,\n onChangeRendering,\n ...htmlAttributes\n}: ColumnFormattingPanelProps) => {\n const formattingSettingsComponent = useMemo(\n () =>\n getFormattingSettingsComponent({\n column,\n onChangeFormatting,\n onChangeColumnType,\n }),\n [column, onChangeColumnType, onChangeFormatting],\n );\n\n const ConfigEditor = useMemo<\n React.FC<ConfigurationEditorProps> | undefined\n >(() => {\n const { type } = column;\n if (isTypeDescriptor(type) && isColumnTypeRenderer(type.renderer)) {\n const cellRendererOptions = getCellRendererOptions(type.renderer.name);\n return getConfigurationEditor(cellRendererOptions?.configEditor);\n }\n return undefined;\n }, [column]);\n\n const selectedCellRenderer = useMemo(() => {\n const { type } = column;\n const [defaultRenderer] = availableRenderers;\n const rendererName =\n isTypeDescriptor(type) && isColumnTypeRenderer(type.renderer)\n ? type.renderer.name\n : undefined;\n const configuredRenderer = availableRenderers.find(\n (renderer) => renderer.name === rendererName,\n );\n return configuredRenderer ?? defaultRenderer;\n }, [availableRenderers, column]);\n\n const handleChangeRenderer = useCallback(\n (\n _e: SyntheticEvent,\n [cellRendererDescriptor]: CellRendererDescriptor[],\n ) => {\n const renderProps: ColumnTypeRendering = {\n name: cellRendererDescriptor.name,\n };\n onChangeRendering?.(renderProps);\n },\n [onChangeRendering],\n );\n\n const { serverDataType = \"string\" } = column;\n\n return (\n <div {...htmlAttributes} className={`vuuColumnSettingsPanel-header`}>\n <div>Formatting</div>\n\n <FormField>\n <FormFieldLabel>\n {`Renderer (data type ${column.serverDataType})`}\n </FormFieldLabel>\n <Dropdown<CellRendererDescriptor>\n bordered\n className={cx(`${classBase}-renderer`)}\n onSelectionChange={handleChangeRenderer}\n selected={selectedCellRenderer ? [selectedCellRenderer] : []}\n value={selectedCellRenderer?.label ?? selectedCellRenderer?.name}\n >\n {availableRenderers.map((cellRenderer, i) => (\n <Option key={i} value={cellRenderer}>\n {cellRenderer.label ?? cellRenderer.name}\n </Option>\n ))}\n </Dropdown>\n </FormField>\n <div\n className={cx(classBase, className, `${classBase}-${serverDataType}`)}\n >\n {formattingSettingsComponent}\n {ConfigEditor ? (\n <ConfigEditor\n column={column as ColumnDescriptorCustomRenderer}\n onChangeRendering={onChangeRendering}\n />\n ) : null}\n </div>\n </div>\n );\n};\n\nfunction getFormattingSettingsComponent(props: FormattingSettingsProps) {\n const { column } = props;\n\n switch (column.serverDataType) {\n case \"double\":\n case \"scaleddecimal2\":\n case \"scaleddecimal4\":\n case \"scaleddecimal6\":\n case \"scaleddecimal8\":\n case \"int\":\n return <BaseNumericFormattingSettings {...props} />;\n case \"long\":\n return <LongTypeFormattingSettings {...props} />;\n case \"epochtimestamp\":\n return <DateTimeFormattingSettings {...props} />;\n default:\n return null;\n }\n}\n"],"names":["useMemo","isTypeDescriptor","isColumnTypeRenderer","getCellRendererOptions","getConfigurationEditor","useCallback","jsxs","jsx","FormField","FormFieldLabel","Dropdown","Option","BaseNumericFormattingSettings","LongTypeFormattingSettings","DateTimeFormattingSettings"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeFormattingSettings.js","sources":["../../../../packages/vuu-table-extras/src/column-formatting-settings/DateTimeFormattingSettings.tsx"],"sourcesContent":["import { FormattingSettingsProps } from \"@vuu-ui/vuu-table-types\";\nimport {\n DatePattern,\n DateTimePattern,\n TimePattern,\n dateTimeLabelByType,\n defaultPatternsByType,\n fallbackDateTimePattern,\n getTypeFormattingFromColumn,\n isDatePattern,\n isTimePattern,\n supportedDateTimePatterns,\n} from \"@vuu-ui/vuu-utils\";\nimport {\n Dropdown,\n FormField,\n FormFieldLabel,\n Option,\n ToggleButton,\n ToggleButtonGroup,\n} from \"@salt-ds/core\";\nimport React, { SyntheticEvent, useCallback, useMemo, useState } from \"react\";\n\nconst toggleValues = [\"date\", \"time\", \"both\"] as const;\ntype ToggleValue = (typeof toggleValues)[number];\n\nfunction getToggleValue(pattern: DateTimePattern): ToggleValue {\n return !pattern.time ? \"date\" : !pattern.date ? \"time\" : \"both\";\n}\n\ntype DateTime = keyof DateTimePattern;\n\nconst getSelectedPattern = (\n pattern?: DatePattern | TimePattern,\n): DatePattern[] | TimePattern[] | undefined => {\n if (isDatePattern(pattern)) {\n return [pattern] as DatePattern[];\n } else if (isTimePattern(pattern)) {\n return [pattern] as TimePattern[];\n } else {\n return undefined;\n }\n};\n\nexport const DateTimeFormattingSettings: React.FC<FormattingSettingsProps> = ({\n column,\n onChangeFormatting: onChange,\n}) => {\n const formatting = getTypeFormattingFromColumn(column);\n const { pattern = fallbackDateTimePattern } = formatting;\n const toggleValue = useMemo(() => getToggleValue(pattern), [pattern]);\n\n const [fallbackState, setFallbackState] = useState<Required<DateTimePattern>>(\n {\n time: pattern.time ?? defaultPatternsByType.time,\n date: pattern.date ?? defaultPatternsByType.date,\n },\n );\n\n const onPatternChange = useCallback(\n (pattern: DateTimePattern) => onChange({ ...formatting, pattern }),\n [onChange, formatting],\n );\n\n const onDropdownChange = useCallback<\n <T extends DateTime>(\n dateTime: T,\n ) => (\n e: SyntheticEvent,\n newSelected: Array<Required<DateTimePattern>[T]>,\n ) => void\n >(\n (dateTime) =>\n (_, [selectedPattern]) => {\n const updatedPattern = {\n ...(pattern ?? {}),\n [dateTime]: selectedPattern,\n };\n setFallbackState((s) => ({\n time: updatedPattern.time ?? s.time,\n date: updatedPattern.date ?? s.date,\n }));\n onPatternChange(updatedPattern);\n },\n [onPatternChange, pattern],\n );\n\n const onToggleChange = useCallback(\n (evnt: SyntheticEvent<HTMLButtonElement, Event>) => {\n const value = evnt.currentTarget.value as ToggleValue;\n switch (value) {\n case \"time\":\n return onPatternChange({\n [value]: pattern[value] ?? fallbackState[value],\n });\n case \"date\":\n return onPatternChange({\n [value]: pattern[value] ?? fallbackState[value],\n });\n case \"both\":\n return onPatternChange({\n time: pattern.time ?? fallbackState.time,\n date: pattern.date ?? fallbackState.date,\n });\n }\n },\n [onPatternChange, pattern, fallbackState],\n );\n\n return (\n <>\n <FormField labelPlacement=\"top\">\n <FormFieldLabel>{\"Display\"}</FormFieldLabel>\n <ToggleButtonGroup\n className=\"vuuToggleButtonGroup\"\n onChange={onToggleChange}\n value={toggleValue}\n data-variant=\"primary\"\n >\n {toggleValues.map((v) => (\n <ToggleButton key={v} value={v}>\n {v.toUpperCase()}\n </ToggleButton>\n ))}\n </ToggleButtonGroup>\n </FormField>\n\n {([\"date\", \"time\"] as const)\n .filter((v) => !!pattern[v])\n .map((v) => (\n <FormField labelPlacement=\"top\" key={v}>\n <FormFieldLabel>{`${dateTimeLabelByType[v]} pattern`}</FormFieldLabel>\n <Dropdown<Required<DateTimePattern>[typeof v]>\n onSelectionChange={onDropdownChange(v)}\n selected={getSelectedPattern(pattern[v])}\n >\n {supportedDateTimePatterns[v].map((pattern, i) => (\n <Option key={i} value={pattern}>\n {pattern}\n </Option>\n ))}\n </Dropdown>\n </FormField>\n ))}\n </>\n );\n};\n"],"names":["isDatePattern","isTimePattern","getTypeFormattingFromColumn","fallbackDateTimePattern","useMemo","useState","defaultPatternsByType","useCallback","pattern","jsxs","Fragment","FormField","jsx","FormFieldLabel","ToggleButtonGroup","ToggleButton","dateTimeLabelByType","Dropdown","supportedDateTimePatterns","Option"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LongTypeFormattingSettings.js","sources":["../../../../packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.tsx"],"sourcesContent":["import {\n FormField,\n FormFieldLabel,\n ToggleButton,\n ToggleButtonGroup,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { FormattingSettingsProps } from \"@vuu-ui/vuu-table-types\";\nimport React, { useCallback } from \"react\";\nimport { BaseNumericFormattingSettings } from \"./BaseNumericFormattingSettings\";\n\nimport longTypeFormattingSettingsCss from \"./LongTypeFormattingSettings.css\";\nimport { isTypeDescriptor } from \"@vuu-ui/vuu-utils\";\n\nconst classBase = \"vuuLongColumnFormattingSettings\";\n\nexport const LongTypeFormattingSettings = (props: FormattingSettingsProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-long-formatting-settings\",\n css: longTypeFormattingSettingsCss,\n window: targetWindow,\n });\n\n const { column, onChangeColumnType: onChangeType } = props;\n const type = isTypeDescriptor(column.type) ? column.type.name : column.type;\n\n const handleToggleChange = useCallback(\n (event: React.SyntheticEvent<HTMLButtonElement, Event>) => {\n const value = event.currentTarget.value as ToggleValue;\n onChangeType(value);\n },\n [onChangeType],\n );\n\n return (\n <div className={classBase}>\n <FormField>\n <FormFieldLabel>{\"Type inferred as\"}</FormFieldLabel>\n <ToggleButtonGroup\n className=\"vuuToggleButtonGroup\"\n onChange={handleToggleChange}\n value={type ?? \"number\"}\n >\n {toggleValues.map((v) => (\n <ToggleButton key={v} value={v}>\n {v.toUpperCase()}\n </ToggleButton>\n ))}\n </ToggleButtonGroup>\n </FormField>\n <BaseNumericFormattingSettings {...props} />\n </div>\n );\n};\n\nconst toggleValues = [\"number\", \"date/time\"] as const;\ntype ToggleValue = (typeof toggleValues)[number];\n"],"names":["useWindow","useComponentCssInjection","longTypeFormattingSettingsCss","isTypeDescriptor","useCallback","jsxs","FormField","jsx","FormFieldLabel","ToggleButtonGroup","ToggleButton","BaseNumericFormattingSettings"],"mappings":";;;;;;;;;;;AAeA,MAAM,SAAY,GAAA,iCAAA;AAEL,MAAA,0BAAA,GAA6B,CAAC,KAAmC,KAAA;AAC5E,EAAA,MAAM,eAAeA,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,8BAAA;AAAA,IACR,GAAK,EAAAC,4BAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,MAAM,EAAE,MAAA,EAAQ,kBAAoB,EAAA,YAAA,EAAiB,GAAA,KAAA;AACrD,EAAM,MAAA,IAAA,GAAOC,0BAAiB,MAAO,CAAA,IAAI,IAAI,MAAO,CAAA,IAAA,CAAK,OAAO,MAAO,CAAA,IAAA;AAEvE,EAAA,MAAM,kBAAqB,GAAAC,iBAAA;AAAA,IACzB,CAAC,KAA0D,KAAA;AACzD,MAAM,MAAA,KAAA,GAAQ,MAAM,aAAc,CAAA,KAAA;AAClC,MAAA,YAAA,CAAa,KAAK,CAAA;AAAA,KACpB;AAAA,IACA,CAAC,YAAY;AAAA,GACf;AAEA,EACE,uBAAAC,eAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,SACd,EAAA,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAACC,cACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAAC,cAAA,CAACC,uBAAgB,QAAmB,EAAA,kBAAA,EAAA,CAAA;AAAA,sBACpCD,cAAA;AAAA,QAACE,sBAAA;AAAA,QAAA;AAAA,UACC,SAAU,EAAA,sBAAA;AAAA,UACV,QAAU,EAAA,kBAAA;AAAA,UACV,OAAO,IAAQ,IAAA,QAAA;AAAA,UAEd,QAAa,EAAA,YAAA,CAAA,GAAA,CAAI,CAAC,CAAA,qBAChBF,cAAA,CAAAG,iBAAA,EAAA,EAAqB,KAAO,EAAA,CAAA,EAC1B,QAAE,EAAA,CAAA,CAAA,WAAA,EADc,EAAA,EAAA,CAEnB,CACD;AAAA;AAAA;AACH,KACF,EAAA,CAAA;AAAA,oBACAH,cAAA,CAACI,2DAA+B,EAAA,EAAA,GAAG,KAAO,EAAA;AAAA,GAC5C,EAAA,CAAA;AAEJ;AAEA,MAAM,YAAA,GAAe,CAAC,QAAA,EAAU,WAAW,CAAA;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnMenu.js","sources":["../../../../packages/vuu-table-extras/src/column-menu/ColumnMenu.tsx"],"sourcesContent":["import { Menu, MenuPanel, MenuTrigger } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { MenuActionHandler } from \"@vuu-ui/vuu-context-menu\";\nimport {\n ColumnDescriptor,\n ColumnMenuPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport { IconButton } from \"@vuu-ui/vuu-ui-controls\";\nimport cx from \"clsx\";\nimport { HTMLAttributes, MouseEventHandler, useCallback } from \"react\";\nimport { useTableContext } from \"../table-provider/TableProvider\";\nimport {\n buildAggregationMenuItems,\n buildGroupMenu,\n buildPinMenuItems,\n buildSortMenu,\n buildVisibilityMenuItems,\n ColumnMenuActionType,\n getColumnMenuActionType,\n type MenuItemClickHandler,\n} from \"./column-menu-utils\";\n\nimport columnMenuCss from \"./ColumnMenu.css\";\n\nconst classBase = \"vuuColumnMenu\";\n\nconst defaultColumnMenuPermissions: Readonly<ColumnMenuPermissions> = {\n allowSort: true,\n allowGroup: true,\n allowAggregation: true,\n allowHide: true,\n allowRemove: true,\n allowPin: true,\n};\n\nexport interface ColumnMenuProps extends HTMLAttributes<HTMLSpanElement> {\n column: ColumnDescriptor;\n menuActionHandler?: MenuActionHandler<ColumnMenuActionType, ColumnDescriptor>;\n menuPermissions?: ColumnMenuPermissions;\n}\n\nexport const ColumnMenu = ({\n className,\n column,\n menuActionHandler: menuActionHandlerProp,\n menuPermissions: {\n allowSort,\n allowGroup,\n allowAggregation,\n allowHide,\n allowRemove,\n allowPin,\n } = defaultColumnMenuPermissions,\n}: ColumnMenuProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-menu\",\n css: columnMenuCss,\n window: targetWindow,\n });\n\n const { dataSource, menuActionHandler } = useTableContext(true);\n\n const menuActionClickHandler = useCallback<MenuItemClickHandler>(\n (evt) => {\n const columnMenuActionType = getColumnMenuActionType(evt.target);\n if (menuActionHandlerProp?.(columnMenuActionType, column) !== true) {\n return menuActionHandler(columnMenuActionType, column);\n }\n },\n [column, menuActionHandler, menuActionHandlerProp],\n );\n\n const sortMenu = buildSortMenu(\n column,\n dataSource,\n menuActionClickHandler,\n allowSort,\n );\n const groupMenu = buildGroupMenu(\n column,\n dataSource,\n menuActionClickHandler,\n allowGroup,\n );\n const aggregationMenu = buildAggregationMenuItems(\n column,\n dataSource,\n menuActionClickHandler,\n allowAggregation,\n );\n const visibilityMenuItems = buildVisibilityMenuItems(\n column,\n menuActionClickHandler,\n allowHide,\n allowRemove,\n );\n const pinMenu = buildPinMenuItems(column, menuActionClickHandler, allowPin);\n\n const handleClick = useCallback<MouseEventHandler<HTMLButtonElement>>(\n (evt) => {\n // Prevent sort from triggering if the click were to bubble.\n evt.stopPropagation();\n },\n [],\n );\n\n return (\n <Menu>\n <MenuTrigger>\n <IconButton\n appearance=\"transparent\"\n className={cx(classBase, className)}\n data-embedded\n icon=\"more-vert\"\n sentiment=\"neutral\"\n aria-label=\"Open Column Menu\"\n onClick={handleClick}\n />\n </MenuTrigger>\n <MenuPanel>\n {sortMenu}\n {groupMenu}\n {aggregationMenu}\n {visibilityMenuItems}\n {pinMenu}\n </MenuPanel>\n </Menu>\n );\n};\n"],"names":["useWindow","useComponentCssInjection","columnMenuCss","useTableContext","useCallback","getColumnMenuActionType","buildSortMenu","buildGroupMenu","buildAggregationMenuItems","buildVisibilityMenuItems","buildPinMenuItems","Menu","jsx","MenuTrigger","IconButton","MenuPanel"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"column-menu-utils.js","sources":["../../../../packages/vuu-table-extras/src/column-menu/column-menu-utils.tsx"],"sourcesContent":["import {\n Menu,\n MenuItem,\n MenuItemProps,\n MenuPanel,\n MenuProps,\n MenuTrigger,\n} from \"@salt-ds/core\";\nimport { DataSource } from \"@vuu-ui/vuu-data-types\";\nimport { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport {\n getGroupStatus,\n getSortStatus,\n isNumericColumn,\n logUnhandledMessage,\n} from \"@vuu-ui/vuu-utils\";\nimport { MouseEventHandler, ReactElement } from \"react\";\n\ntype MenuElement = ReactElement<MenuProps, typeof Menu>;\ntype MenuItemElement = ReactElement<MenuItemProps, typeof MenuItem>;\ntype MenuElements = Array<MenuElement | MenuItemElement>;\n\nexport type MenuItemClickHandler = MouseEventHandler<HTMLDivElement>;\n\nexport type DataSourceColumnMenuActionType =\n | \"agg-count\"\n | \"agg-distinct\"\n | \"agg-sum\"\n | \"agg-avg\"\n | \"agg-high\"\n | \"agg-low\"\n | \"sort-asc\"\n | \"sort-dsc\"\n | \"sort-add-asc\"\n | \"sort-add-dsc\"\n | \"remove-sort\"\n | \"group-column\"\n | \"remove-group\"\n | \"add-to-group\"\n | \"remove-from-group\"\n | \"remove-column\";\n\nexport type ColumnDisplayColumnMenuActionType =\n | \"pin-column-left\"\n | \"pin-column-right\"\n | \"unpin-column\"\n | \"hide-column\";\n\nexport type ColumnMenuActionType =\n | DataSourceColumnMenuActionType\n | ColumnDisplayColumnMenuActionType;\n\nexport const isColumnMenuActionType = (\n value?: string,\n): value is ColumnMenuActionType =>\n value !== undefined &&\n [\n \"agg-count\",\n \"agg-distinct\",\n \"agg-sum\",\n \"agg-avg\",\n \"agg-high\",\n \"agg-low\",\n \"sort-asc\",\n \"sort-dsc\",\n \"sort-add-asc\",\n \"sort-add-dsc\",\n \"remove-sort\",\n \"group-column\",\n \"remove-group\",\n \"add-to-group\",\n \"remove-from-group\",\n \"pin-column-left\",\n \"pin-column-right\",\n \"unpin-column\",\n \"hide-column\",\n \"remove-column\",\n ].includes(value);\n\nexport const getColumnMenuActionType = (target: EventTarget | HTMLElement) => {\n const { menuActionId } = (target as HTMLElement).dataset;\n if (isColumnMenuActionType(menuActionId)) {\n return menuActionId;\n } else {\n throw Error(\n \"[vuu-table-extras] column-menu-utils target element is not a valid Column MenuItem\",\n );\n }\n};\n\nexport function buildSortMenu(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElement | null {\n if (!isAllowed || column.sortable === false) {\n return null;\n } else {\n const { name, label = name } = column;\n const menuItems: MenuElements = [];\n const columnSortStatus = getSortStatus(column.name, dataSource.sort);\n\n switch (columnSortStatus) {\n case \"no-sort\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Sort ascending\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Sort descending\n </MenuItem>,\n );\n break;\n case \"single-sort-asc\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Reverse Sort (DSC)\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"remove-sort\"\n key=\"remove-sort\"\n onClick={menuActionClickHandler}\n >\n Remove Sort\n </MenuItem>,\n );\n break;\n case \"single-sort-desc\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Reverse Sort (ASC)\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"remove-sort\"\n key=\"remove-sort\"\n onClick={menuActionClickHandler}\n >\n Remove Sort\n </MenuItem>,\n );\n break;\n\n case \"sort-other-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-add-asc\"\n key=\"sort-add-asc\"\n onClick={menuActionClickHandler}\n >\n Add to sort ASC\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-add-dsc\"\n key=\"sort-add-dsc\"\n onClick={menuActionClickHandler}\n >\n Add to sort DSC\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Ascending\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Descending\n </MenuItem>,\n );\n break;\n\n case \"multi-sort-includes-column-asc\":\n case \"multi-sort-includes-column-desc\":\n break;\n default:\n logUnhandledMessage(\n columnSortStatus,\n \"[vuu-table-extras] column-menu-utils buildSortMenu\",\n );\n }\n\n return (\n <Menu key=\"sort-menu\">\n <MenuTrigger>\n <MenuItem>{`Sort by ${label}`}</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>\n );\n }\n}\n\nexport function buildGroupMenu(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElement | null {\n if (!isAllowed || column.groupable === false) {\n return null;\n } else {\n const menuItems: MenuElements = [];\n const columnGroupStatus = getGroupStatus(column.name, dataSource.groupBy);\n const { name, label = name } = column;\n\n switch (columnGroupStatus) {\n case \"no-groupby\":\n return (\n <MenuItem\n data-menu-action-id=\"group-column\"\n key=\"group-column\"\n onClick={menuActionClickHandler}\n >{`Group by ${label}`}</MenuItem>\n );\n\n case \"single-groupby-other-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"group-column\"\n key=\"group-column\"\n onClick={menuActionClickHandler}\n >{`Group by ${label}`}</MenuItem>,\n <MenuItem\n data-menu-action-id=\"add-to-group\"\n key=\"add-to-group\"\n onClick={menuActionClickHandler}\n >{`Add ${label} to groupby`}</MenuItem>,\n );\n break;\n case \"single-groupby\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-group\"\n key=\"remove-group\"\n onClick={menuActionClickHandler}\n >\n Remove Grouping\n </MenuItem>,\n );\n break;\n\n case \"multi-groupby-other-columns\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"add-to-group\"\n key=\"add-to-group\"\n onClick={menuActionClickHandler}\n >\n Add to grouping\n </MenuItem>,\n );\n\n break;\n\n case \"multi-groupby-includes-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-from-group\"\n key=\"remove-from-group\"\n onClick={menuActionClickHandler}\n >\n Remove from grouping\n </MenuItem>,\n );\n\n break;\n\n default:\n logUnhandledMessage(\n columnGroupStatus,\n \"[vuu-table-extras] column-menu-utils buildGroupMenu\",\n );\n }\n\n return (\n <Menu key=\"group-menu\">\n <MenuTrigger>\n <MenuItem>Group data</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>\n );\n }\n}\n\nexport const buildVisibilityMenuItems = (\n column: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n allowHide = true,\n allowRemove = true,\n): MenuElements | null => {\n if (!allowHide && !allowRemove) {\n return null;\n }\n const menuItems: MenuElements = [];\n const { name, label = name } = column;\n if (allowHide) {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"hide-column\"\n key=\"hide-column\"\n onClick={menuActionClickHandler}\n >\n {`Hide ${label} column`}\n </MenuItem>,\n );\n }\n if (allowRemove) {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-column\"\n key=\"remove-column\"\n onClick={menuActionClickHandler}\n >\n {`Remove ${label} column`}\n </MenuItem>,\n );\n }\n\n return menuItems;\n};\n\nexport const buildPinMenuItems = (\n column: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements => {\n if (!isAllowed || column === undefined) {\n return [];\n }\n const { pin } = column;\n\n const menuItems: MenuElements = [];\n\n const pinLeft = (\n <MenuItem\n data-menu-action-id=\"pin-column-left\"\n key=\"pin-column-left\"\n onClick={menuActionClickHandler}\n >\n Pin left\n </MenuItem>\n );\n\n const pinRight = (\n <MenuItem\n data-menu-action-id=\"pin-column-right\"\n key=\"pin-column-right\"\n onClick={menuActionClickHandler}\n >\n Pin right\n </MenuItem>\n );\n\n if (!pin) {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinLeft}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"unpin-column\"\n key=\"unpin-column\"\n onClick={menuActionClickHandler}\n >\n Unpin\n </MenuItem>,\n );\n if (pin === \"left\" || pin === \"right\") {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>{pin === \"right\" ? pinLeft : pinRight}</MenuPanel>\n </Menu>,\n );\n } else if (pin === \"floating\") {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinLeft}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>{pinRight}</MenuPanel>\n </Menu>,\n );\n }\n }\n\n return menuItems;\n};\n\nexport function buildAggregationMenuItems(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements | null {\n if (!isAllowed) {\n return null;\n }\n\n const { name, label = name } = column;\n\n if (dataSource.groupBy?.length === 0) {\n return [];\n } else {\n const menuItems: MenuElements = [\n <MenuItem\n data-menu-action-id=\"agg-count\"\n key=\"agg-count\"\n onClick={menuActionClickHandler}\n >\n Count\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-distinct\"\n key=\"agg-distinct\"\n onClick={menuActionClickHandler}\n >\n Distinct\n </MenuItem>,\n ];\n\n if (isNumericColumn(column)) {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"agg-sum\"\n key=\"agg-sum\"\n onClick={menuActionClickHandler}\n >\n Sum\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-avg\"\n key=\"agg-avg\"\n onClick={menuActionClickHandler}\n >\n Average\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-high\"\n key=\"agg-high\"\n onClick={menuActionClickHandler}\n >\n High\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-low\"\n key=\"agg-low\"\n onClick={menuActionClickHandler}\n >\n Low\n </MenuItem>,\n );\n }\n\n return [\n <Menu key=\"aggregate-menu\">\n <MenuTrigger>\n <MenuItem>{`Aggregate ${label}`}</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>,\n ];\n }\n}\n"],"names":["getSortStatus","jsx","MenuItem","logUnhandledMessage","Menu","MenuTrigger","MenuPanel","getGroupStatus","isNumericColumn"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useColumnActions.js","sources":["../../../../packages/vuu-table-extras/src/column-menu/useColumnActions.ts"],"sourcesContent":["/* eslint-disable no-sequences */\nimport { MenuActionHandler } from \"@vuu-ui/vuu-context-menu\";\nimport { Filter } from \"@vuu-ui/vuu-filter-types\";\nimport { VuuFilter } from \"@vuu-ui/vuu-protocol-types\";\nimport {\n ColumnDescriptor,\n ColumnDisplayAction,\n RuntimeColumnDescriptor,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n addGroupColumn,\n addSortColumn,\n AggregationType,\n logUnhandledMessage,\n removeGroupColumn,\n setAggregations,\n setSortColumn,\n} from \"@vuu-ui/vuu-utils\";\nimport { ColumnMenuActionType } from \"./column-menu-utils\";\nimport { DataSource } from \"@vuu-ui/vuu-data-types\";\n\nexport interface ContextMenuOptions {\n column?: RuntimeColumnDescriptor;\n filter?: Filter;\n sort?: VuuFilter;\n}\nexport interface ContextMenuHookProps {\n dataSource: DataSource;\n onColumnDisplayAction?: (action: ColumnDisplayAction) => void;\n}\n\nconst { Average, Count, Distinct, High, Low, Sum } = AggregationType;\n\nexport const useColumnActions = ({\n dataSource,\n onColumnDisplayAction,\n}: ContextMenuHookProps) => {\n /** return {boolean} used by caller to determine whether to forward to additional installed context menu handlers */\n const handleContextMenuAction: MenuActionHandler<\n ColumnMenuActionType,\n ColumnDescriptor\n > = (columnMenuActionType, column): boolean => {\n if (column && dataSource) {\n // prettier-ignore\n switch(columnMenuActionType){\n // 1) DataSource operations ...\n case \"sort-asc\": return (dataSource.sort = setSortColumn(dataSource.sort, column, \"A\")), true;\n case \"sort-dsc\": return (dataSource.sort = setSortColumn(dataSource.sort, column, \"D\")), true;\n case \"remove-sort\": return (dataSource.sort = {sortDefs:[]}), true;\n case \"sort-add-asc\": return (dataSource.sort = addSortColumn(dataSource.sort, column, \"A\")), true;\n case \"sort-add-dsc\": return (dataSource.sort = addSortColumn(dataSource.sort, column, \"D\")), true;\n case \"group-column\": return (dataSource.groupBy = [column.name]), true;\n case \"add-to-group\": return (dataSource.groupBy = addGroupColumn(dataSource.groupBy ?? [], column)), true;\n case \"remove-group\": return (dataSource.groupBy = []), true;\n case \"remove-from-group\": return (dataSource.groupBy = removeGroupColumn(dataSource.groupBy ?? [], column)), true;\n case \"remove-column\": {\n dataSource.columns = dataSource.columns.filter(name => name !== column.name);\n onColumnDisplayAction?.({type: \"removeColumn\", column});\n return true;\n }\n case \"agg-avg\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, Average)), true;\n case \"agg-high\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, High)), true;\n case \"agg-low\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, Low)), true;\n case \"agg-count\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, Count)), true;\n case \"agg-distinct\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, Distinct)), true;\n case \"agg-sum\": return dataSource.aggregations = (setAggregations(dataSource.aggregations, column, Sum)), true;\n // 2) Column display options ...\n case \"hide-column\": return onColumnDisplayAction?.({type: \"hideColumn\", column}), true;\n case \"pin-column-left\": return onColumnDisplayAction?.({type: \"pinColumn\", column, pin: \"left\"}), true;\n case \"pin-column-right\": return onColumnDisplayAction?.({type: \"pinColumn\", column, pin: \"right\"}), true;\n case \"unpin-column\": return onColumnDisplayAction?.({type: \"pinColumn\", column, pin: false}), true\n default:\n logUnhandledMessage(columnMenuActionType, `[vuu-table-extras] useColumnActions handleContextMenuAction, unhandled columnMenuActionType`)\n }\n }\n return false;\n };\n\n return handleContextMenuAction;\n};\n"],"names":["AggregationType","setSortColumn","addSortColumn","addGroupColumn","removeGroupColumn","setAggregations","logUnhandledMessage"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnModel.js","sources":["../../../../packages/vuu-table-extras/src/column-picker/ColumnModel.ts"],"sourcesContent":["import { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { EventEmitter, reorderColumnItems, ValueOf } from \"@vuu-ui/vuu-utils\";\n\nexport const ColumnChangeSource = {\n ColumnPicker: \"column-picker\",\n ColumnSettings: \"column-settings\",\n Table: \"table\",\n} as const;\nexport type ColumnChangeSource = ValueOf<typeof ColumnChangeSource>;\n\nexport const SelectedColumnChangeType = {\n CalculatedColumnAdded: \"calculated-column-added\",\n ColumnAdded: \"column-added\",\n ColumnRemoved: \"column-removed\",\n ColumnUpdated: \"column-updated\",\n ColumnsReordered: \"columns-reordered\",\n} as const;\nexport type SelectedColumnChangeType = ValueOf<typeof SelectedColumnChangeType>;\n\nexport interface SelectedColumnChangeColumnAdded {\n type: Extract<SelectedColumnChangeType, \"column-added\">;\n column: ColumnDescriptor;\n}\nexport interface SelectedColumnChangeCalculatedColumnAdded {\n type: Extract<SelectedColumnChangeType, \"calculated-column-added\">;\n column: ColumnDescriptor;\n}\nexport interface SelectedColumnChangeColumnUpdated {\n type: Extract<SelectedColumnChangeType, \"column-updated\">;\n column: ColumnDescriptor;\n}\n\nexport interface SelectedColumnChangeColumnRemoved {\n type: Extract<SelectedColumnChangeType, \"column-removed\">;\n column: ColumnDescriptor;\n}\n\nexport interface SelectedColumnChangeColumnsReordered {\n type: Extract<SelectedColumnChangeType, \"columns-reordered\">;\n}\n\nexport type SelectedColumnChangeDescriptor =\n | SelectedColumnChangeCalculatedColumnAdded\n | SelectedColumnChangeColumnAdded\n | SelectedColumnChangeColumnRemoved\n | SelectedColumnChangeColumnUpdated\n | SelectedColumnChangeColumnsReordered;\n\nexport const isColumnAdded = (\n change?: SelectedColumnChangeDescriptor,\n): change is SelectedColumnChangeColumnAdded =>\n change?.type === SelectedColumnChangeType.ColumnAdded;\nexport const isColumnRemoved = (\n change?: SelectedColumnChangeDescriptor,\n): change is SelectedColumnChangeColumnRemoved =>\n change?.type === SelectedColumnChangeType.ColumnRemoved;\nexport const isColumnUpdated = (\n change?: SelectedColumnChangeDescriptor,\n): change is SelectedColumnChangeColumnUpdated =>\n change?.type === SelectedColumnChangeType.ColumnUpdated;\nexport const isColumnsReordered = (\n change?: SelectedColumnChangeDescriptor,\n): change is SelectedColumnChangeColumnsReordered =>\n change?.type === SelectedColumnChangeType.ColumnsReordered;\n\nexport type ColumnsChangeHandler = (\n columns: readonly ColumnDescriptor[],\n changeSource: ColumnChangeSource,\n changeDescriptor?: SelectedColumnChangeDescriptor,\n) => void;\nexport type ColumnEvents = {\n change: ColumnsChangeHandler;\n render: (o: object) => void;\n};\n\nconst byColumnName = (\n { name: n1, label: l1 = n1 }: ColumnDescriptor,\n { name: n2, label: l2 = n2 }: ColumnDescriptor,\n) => (l1 > l2 ? 1 : l2 > l1 ? -1 : 0);\n\nconst filterColumns = (\n columns: readonly ColumnDescriptor[],\n pattern: string,\n) => {\n if (pattern) {\n const lowerCasePattern = pattern.toLowerCase();\n return columns.filter(\n ({ name, label = name }) =>\n label.toLowerCase().indexOf(lowerCasePattern) !== -1,\n );\n } else {\n return columns;\n }\n};\n\nexport class ColumnModel extends EventEmitter<ColumnEvents> {\n #searchPattern = \"\";\n #selectedColumns: readonly ColumnDescriptor[];\n constructor(\n /**\n * All available columns, including selected columns.\n */\n public allColumns: readonly ColumnDescriptor[],\n /**\n * Columns already selected and rendered in Table.\n */\n selectedColumns: readonly ColumnDescriptor[],\n ) {\n super();\n this.#selectedColumns = selectedColumns;\n }\n\n get availableColumns(): ColumnDescriptor[] {\n return filterColumns(this.allColumns, this.#searchPattern)\n .filter(\n ({ name }) =>\n this.#selectedColumns.findIndex((c) => c.name === name) === -1,\n )\n .toSorted(byColumnName);\n }\n\n set searchPattern(pattern: string) {\n const searchPattern = pattern;\n if (searchPattern !== this.#searchPattern) {\n this.#searchPattern = searchPattern;\n this.emit(\"render\", {});\n }\n }\n\n get searchPattern() {\n return this.#searchPattern ?? \"\";\n }\n\n get selectedColumns() {\n return filterColumns(this.#selectedColumns, this.#searchPattern);\n }\n setSelectedColumns(\n selectedColumns: ColumnDescriptor[],\n source: ColumnChangeSource,\n changeDescriptor?: SelectedColumnChangeDescriptor,\n ) {\n this.#selectedColumns = selectedColumns;\n this.notifyListeners(selectedColumns, source, changeDescriptor);\n }\n\n getColumn(name: string) {\n const col = this.#selectedColumns.find((col) => col.name === name);\n if (col) {\n return col;\n }\n throw Error(`[ColumnModel] columns does not contain column ${name}`);\n }\n\n addItemToSelectedColumns(name: string, source: ColumnChangeSource) {\n const column = this.allColumns.find((col) => col.name === name);\n if (column) {\n this.#selectedColumns = this.#selectedColumns.concat(column);\n this.notifyListeners(this.#selectedColumns, source, {\n type: SelectedColumnChangeType.ColumnAdded,\n column,\n });\n } else {\n throw Error(\n `[ColumnModel] addItemToSelectedColumns, column '${name}' not found`,\n );\n }\n }\n removeItemFromSelectedColumns(name: string, source: ColumnChangeSource) {\n const column = this.#selectedColumns.find((col) => col.name === name);\n if (column) {\n const index = this.#selectedColumns.indexOf(column);\n this.#selectedColumns = this.#selectedColumns.toSpliced(index, 1);\n this.notifyListeners(this.#selectedColumns, source, {\n type: SelectedColumnChangeType.ColumnRemoved,\n column,\n });\n } else {\n throw Error(\n `[ColumnModel] removeItemFromSelectedColumns, column '${name}' not found`,\n );\n }\n }\n\n reorderSelectedColumns(\n orderedColumnNames: string[],\n source: ColumnChangeSource,\n ) {\n this.setSelectedColumns(\n reorderColumnItems(this.#selectedColumns, orderedColumnNames),\n source,\n { type: SelectedColumnChangeType.ColumnsReordered },\n );\n }\n\n updateColumn(\n currentColumn: ColumnDescriptor,\n newColumn: ColumnDescriptor,\n ): void;\n updateColumn(column: ColumnDescriptor): void;\n updateColumn(column: ColumnDescriptor, newColumn: ColumnDescriptor = column) {\n const allIndex = this.allColumns.findIndex(\n (col) => col.name === column.name,\n );\n const selectedIndex = this.#selectedColumns.findIndex(\n (col) => col.name === column.name,\n );\n\n if (selectedIndex !== -1) {\n if (allIndex === -1) {\n throw Error(\n `[ColumnModel] updateColumn, selected column not in allColumns collection`,\n );\n }\n\n this.#selectedColumns = this.#selectedColumns.toSpliced(\n selectedIndex,\n 1,\n newColumn,\n );\n this.allColumns = this.allColumns.toSpliced(allIndex, 1, newColumn);\n\n this.notifyListeners(this.#selectedColumns, \"column-settings\", {\n type: SelectedColumnChangeType.ColumnUpdated,\n column,\n });\n } else {\n throw Error(\n `[ColumnModel] updateColumn, column ${column.name} not found`,\n );\n }\n }\n\n /**\n * Used when adding a calculated column\n *\n * @param column\n *\n * @param addToSelectedColumns\n */\n addColumn(column: ColumnDescriptor, addToSelectedColumns = false) {\n console.log(`[ColumnModel] add column ${JSON.stringify(column)}`);\n if (addToSelectedColumns) {\n console.log(`add it to selected coliumns`);\n }\n\n this.allColumns = this.allColumns.concat(column);\n this.#selectedColumns = this.#selectedColumns.concat(column);\n\n this.notifyListeners(this.#selectedColumns, \"column-picker\", {\n type: SelectedColumnChangeType.CalculatedColumnAdded,\n column,\n });\n }\n\n private notifyListeners: ColumnsChangeHandler = (\n columns,\n source,\n changeType,\n ) => {\n this.emit(\"change\", columns, source, changeType);\n this.emit(\"render\", {});\n };\n}\n"],"names":["EventEmitter","col","reorderColumnItems"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnPicker.js","sources":["../../../../packages/vuu-table-extras/src/column-picker/ColumnPicker.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport {\n DragDropProvider,\n getColumnLabel,\n isCalculatedColumn,\n useSortable,\n} from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\nimport {\n ForwardedRef,\n forwardRef,\n HTMLAttributes,\n MouseEventHandler,\n RefCallback,\n useCallback,\n useMemo,\n useRef,\n} from \"react\";\n\nimport {\n Button,\n Input,\n ListBox,\n ListBoxProps,\n Option,\n OptionProps,\n} from \"@salt-ds/core\";\nimport { applyHighlighting } from \"@vuu-ui/vuu-table\";\nimport { Icon, IconButton } from \"@vuu-ui/vuu-ui-controls\";\nimport { ColumnChangeSource } from \"./ColumnModel\";\nimport { ColumnPickerHookProps, useColumnPicker } from \"./useColumnPicker\";\n\nimport columnPickerCss from \"./ColumnPicker.css\";\n\nconst classBase = \"vuuColumnPicker\";\nexport const classBaseListItem = \"vuuColumnPickerListItem\";\n\nexport interface ColumnPickerProps\n extends ColumnPickerHookProps,\n Pick<ListBoxProps<ColumnDescriptor>, \"selected\" | \"onSelectionChange\">,\n HTMLAttributes<HTMLDivElement> {\n allowCreateCalculatedColumn?: boolean;\n onClickCreateCalculatedColumn?: MouseEventHandler<HTMLButtonElement>;\n}\n\nconst searchIcon = <span data-icon=\"search\" />;\nconst NO_SELECTION: ColumnDescriptor[] = [] as const;\n\nconst useSorting = (id: string, index: number) => {\n const { handleRef: sortableHandleRef, ref: sortableRef } = useSortable({\n id,\n index,\n });\n\n const [handleRef, ref] = useMemo(() => {\n return [sortableHandleRef, sortableRef];\n }, [sortableHandleRef, sortableRef]);\n\n return {\n handleRef,\n ref,\n };\n};\n\nconst SelectedColumnListItem = ({\n className: classNameProp,\n index,\n column,\n onRemove,\n searchPattern = \"\",\n ...optionProps\n}: OptionProps & {\n index: number;\n column: ColumnDescriptor;\n onRemove: MouseEventHandler<HTMLButtonElement>;\n searchPattern?: Lowercase<string>;\n}) => {\n const { handleRef, ref } = useSorting(column.name, index);\n const value = getColumnLabel(column as ColumnDescriptor);\n const valueWithHighlighting = applyHighlighting(value, searchPattern);\n\n const handleRemoveButtonClick = useCallback<\n MouseEventHandler<HTMLButtonElement>\n >(\n (e) => {\n e.stopPropagation();\n onRemove?.(e);\n },\n [onRemove],\n );\n\n return (\n <Option\n {...optionProps}\n className={cx(classNameProp, classBaseListItem)}\n data-name={column.name}\n ref={ref}\n >\n <IconButton\n data-embedded\n appearance=\"transparent\"\n icon=\"draggable\"\n ref={handleRef}\n size={16}\n />\n {isCalculatedColumn(column.name) ? (\n <Icon className=\"vuuCalculatedColumnIcon\" name=\"function\" />\n ) : null}\n <span className={`${classBase}-text`}>{valueWithHighlighting}</span>\n <IconButton\n className={`${classBaseListItem}-action`}\n data-embedded\n appearance=\"transparent\"\n icon=\"cross\"\n onClick={handleRemoveButtonClick}\n size={16}\n />\n </Option>\n );\n};\n\nconst AvailableColumnListItem = ({\n className: classNameProp,\n index,\n column: item,\n onAdd,\n searchPattern = \"\",\n ...optionProps\n}: OptionProps & {\n index: number;\n column: ColumnDescriptor;\n onAdd: MouseEventHandler<HTMLButtonElement>;\n searchPattern?: Lowercase<string>;\n}) => {\n const value = getColumnLabel(item as ColumnDescriptor);\n const valueWithHighlighting = applyHighlighting(value, searchPattern);\n\n return (\n <Option\n {...optionProps}\n className={cx(classNameProp, classBaseListItem)}\n data-name={item.name}\n >\n <span className={`${classBase}-text`}>{valueWithHighlighting}</span>\n <IconButton\n className={`${classBaseListItem}-action`}\n data-embedded\n appearance=\"transparent\"\n icon=\"plus\"\n onClick={onAdd}\n size={16}\n />\n </Option>\n );\n};\n\nexport const ColumnPicker = forwardRef(function ColumnPicker(\n {\n allowCreateCalculatedColumn,\n columnModel,\n className,\n onClickCreateCalculatedColumn,\n onSelectionChange,\n selected = NO_SELECTION,\n ...htmlAttributes\n }: ColumnPickerProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-picker\",\n css: columnPickerCss,\n window: targetWindow,\n });\n\n const searchCallbackRef = useCallback<RefCallback<HTMLElement>>((el) => {\n setTimeout(() => {\n el?.querySelector(\"input\")?.focus();\n }, 100);\n }, []);\n\n const {\n availableColumns,\n onAddItemToSelectedList,\n onChangeSearchInput,\n onRemoveItemFromSelectedList,\n searchText,\n selectedColumns,\n } = useColumnPicker({\n columnModel: columnModel,\n });\n const listRef = useRef<HTMLDivElement>(null);\n\n const getOptionName = (option?: HTMLElement) => {\n if (option) {\n const { name } = option.dataset;\n if (name) {\n return name;\n }\n }\n throw Error(\"[ColumnPicker] list option has no data-name\");\n };\n\n const handleDragEnd = useCallback(() => {\n setTimeout(() => {\n const listItems =\n listRef.current?.querySelectorAll<HTMLDivElement>(\".saltOption\");\n if (listItems) {\n const orderedColumnNames = Array.from(listItems).map(getOptionName);\n columnModel.reorderSelectedColumns(\n orderedColumnNames,\n ColumnChangeSource.ColumnPicker,\n );\n }\n }, 300);\n }, [columnModel]);\n\n const oneOrMoreColumnsIsCalculated = selectedColumns.some((column) =>\n isCalculatedColumn(column.name),\n );\n return (\n <div\n {...htmlAttributes}\n className={cx(classBase, className, {\n [`${classBase}-withCalculated`]: oneOrMoreColumnsIsCalculated,\n })}\n ref={forwardedRef}\n >\n <form className={`${classBase}-search`} role=\"search\">\n <Input\n startAdornment={searchIcon}\n placeholder=\"Find column\"\n ref={searchCallbackRef}\n value={searchText}\n onChange={onChangeSearchInput}\n />\n </form>\n\n <div className={`${classBase}-scrollContainer vuuScrollable`}>\n <div className={`${classBase}-sectionHeader`}>Columns in view</div>\n <DragDropProvider onDragEnd={handleDragEnd}>\n <ListBox\n className={`${classBase}-selectedList`}\n onSelectionChange={onSelectionChange}\n ref={listRef}\n selected={selected}\n >\n {selectedColumns.map((column, index) => (\n <SelectedColumnListItem\n column={column}\n index={index}\n key={column.name}\n onRemove={onRemoveItemFromSelectedList}\n searchPattern={searchText.toLowerCase() as Lowercase<string>}\n value={column}\n />\n ))}\n </ListBox>\n </DragDropProvider>\n\n <div\n className={cx(\n `${classBase}-sectionHeader`,\n `${classBase}-availableHeader`,\n )}\n >\n Available columns\n </div>\n <ListBox\n className={`${classBase}-availableList`}\n selected={NO_SELECTION}\n >\n {availableColumns.map((column, index) => (\n <AvailableColumnListItem\n column={column}\n index={index}\n key={column.name}\n onAdd={onAddItemToSelectedList}\n searchPattern={searchText.toLowerCase() as Lowercase<string>}\n value={column}\n />\n ))}\n </ListBox>\n </div>\n {allowCreateCalculatedColumn ? (\n <div className={`${classBase}-column-buttons`}>\n <Button onClick={onClickCreateCalculatedColumn}>\n Create calculated column\n </Button>\n </div>\n ) : null}\n </div>\n );\n});\n"],"names":["jsx","useSortable","useMemo","getColumnLabel","applyHighlighting","useCallback","jsxs","Option","IconButton","isCalculatedColumn","Icon","forwardRef","ColumnPicker","useWindow","useComponentCssInjection","columnPickerCss","useColumnPicker","useRef","ColumnChangeSource","Input","DragDropProvider","ListBox","Button"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnPickerAction.js","sources":["../../../../packages/vuu-table-extras/src/column-picker/ColumnPickerAction.tsx"],"sourcesContent":["import { IconButton, IconButtonProps } from \"@vuu-ui/vuu-ui-controls\";\nimport { ColumnPickerHookProps } from \"./useColumnPicker\";\nimport { useCallback } from \"react\";\nimport { useTableColumnPicker } from \"./useTableColumnPicker\";\n\nexport interface ColumnPickerActionProps\n extends Partial<IconButtonProps>,\n ColumnPickerHookProps {}\n\nexport const ColumnPickerAction = ({\n appearance = \"transparent\",\n columnModel,\n icon = \"settings\",\n sentiment = \"neutral\",\n ...IconButtonProps\n}: ColumnPickerActionProps) => {\n const { showColumnPicker } = useTableColumnPicker({ columnModel });\n\n const handleClick = useCallback(() => {\n showColumnPicker();\n }, [showColumnPicker]);\n\n return (\n <IconButton\n {...IconButtonProps}\n appearance={appearance}\n data-action=\"table-settings\"\n icon={icon}\n onClick={handleClick}\n sentiment={sentiment}\n size={20}\n />\n );\n};\n"],"names":["IconButtonProps","useTableColumnPicker","useCallback","jsx","IconButton"],"mappings":";;;;;;;AASO,MAAM,qBAAqB,CAAC;AAAA,EACjC,UAAa,GAAA,aAAA;AAAA,EACb,WAAA;AAAA,EACA,IAAO,GAAA,UAAA;AAAA,EACP,SAAY,GAAA,SAAA;AAAA,EACZ,GAAGA;AACL,CAA+B,KAAA;AAC7B,EAAA,MAAM,EAAE,gBAAiB,EAAA,GAAIC,yCAAqB,CAAA,EAAE,aAAa,CAAA;AAEjE,EAAM,MAAA,WAAA,GAAcC,kBAAY,MAAM;AACpC,IAAiB,gBAAA,EAAA;AAAA,GACnB,EAAG,CAAC,gBAAgB,CAAC,CAAA;AAErB,EACE,uBAAAC,cAAA;AAAA,IAACC,wBAAA;AAAA,IAAA;AAAA,MACE,GAAGJ,gBAAAA;AAAA,MACJ,UAAA;AAAA,MACA,aAAY,EAAA,gBAAA;AAAA,MACZ,IAAA;AAAA,MACA,OAAS,EAAA,WAAA;AAAA,MACT,SAAA;AAAA,MACA,IAAM,EAAA;AAAA;AAAA,GACR;AAEJ;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useColumnPicker.js","sources":["../../../../packages/vuu-table-extras/src/column-picker/useColumnPicker.tsx"],"sourcesContent":["import { ColumnDescriptor, TableSelectionModel } from \"@vuu-ui/vuu-table-types\";\nimport { queryClosest } from \"@vuu-ui/vuu-utils\";\nimport {\n FormEventHandler,\n MouseEventHandler,\n useCallback,\n useEffect,\n useState,\n} from \"react\";\nimport {\n ColumnChangeSource,\n ColumnModel,\n SelectedColumnChangeType,\n} from \"./ColumnModel\";\n\nexport type ColumnSelectionModel = Extract<\n TableSelectionModel,\n \"none\" | \"single\"\n>;\n\nconst SOURCE = ColumnChangeSource.ColumnPicker;\n\nconst columnName = (target: EventTarget) => {\n const listItem = queryClosest(target, \".saltOption\", true);\n const { name } = listItem.dataset;\n if (name) {\n return name;\n } else {\n throw Error(\n \"[useColumnPicker] column name could not be identified, data-name attribute not found\",\n );\n }\n};\nexport type SelectedColumnsChangeHandler = (\n columns: ColumnDescriptor[],\n changeType: SelectedColumnChangeType,\n) => void;\n\nexport interface ColumnPickerHookProps {\n columnModel: ColumnModel;\n}\n\nexport const useColumnPicker = ({\n columnModel: model,\n}: ColumnPickerHookProps) => {\n const [, forceRender] = useState({});\n useEffect(() => {\n model.on(\"render\", forceRender);\n return () => {\n model.removeListener(\"render\", forceRender);\n };\n }, [model]);\n\n const handleChangeSearchInput = useCallback<FormEventHandler>(\n (evt) => {\n const { value } = evt.target as HTMLInputElement;\n model.searchPattern = value;\n },\n [model],\n );\n\n const handleAddItemToSelectedList = useCallback<\n MouseEventHandler<HTMLButtonElement>\n >(\n (e) => model.addItemToSelectedColumns(columnName(e.target), SOURCE),\n [model],\n );\n\n const handleRemoveItemFromSelectedList = useCallback<\n MouseEventHandler<HTMLButtonElement>\n >(\n (e) => model.removeItemFromSelectedColumns(columnName(e.target), SOURCE),\n [model],\n );\n\n return {\n availableColumns: model.availableColumns,\n onAddItemToSelectedList: handleAddItemToSelectedList,\n onRemoveItemFromSelectedList: handleRemoveItemFromSelectedList,\n onChangeSearchInput: handleChangeSearchInput,\n searchText: model.searchPattern,\n selectedColumns: model.selectedColumns,\n };\n};\n"],"names":["ColumnChangeSource","queryClosest","useState","useEffect","useCallback"],"mappings":";;;;;;AAoBA,MAAM,SAASA,8BAAmB,CAAA,YAAA;AAElC,MAAM,UAAA,GAAa,CAAC,MAAwB,KAAA;AAC1C,EAAA,MAAM,QAAW,GAAAC,qBAAA,CAAa,MAAQ,EAAA,aAAA,EAAe,IAAI,CAAA;AACzD,EAAM,MAAA,EAAE,IAAK,EAAA,GAAI,QAAS,CAAA,OAAA;AAC1B,EAAA,IAAI,IAAM,EAAA;AACR,IAAO,OAAA,IAAA;AAAA,GACF,MAAA;AACL,IAAM,MAAA,KAAA;AAAA,MACJ;AAAA,KACF;AAAA;AAEJ,CAAA;AAUO,MAAM,kBAAkB,CAAC;AAAA,EAC9B,WAAa,EAAA;AACf,CAA6B,KAAA;AAC3B,EAAA,MAAM,GAAG,WAAW,CAAI,GAAAC,cAAA,CAAS,EAAE,CAAA;AACnC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAM,KAAA,CAAA,EAAA,CAAG,UAAU,WAAW,CAAA;AAC9B,IAAA,OAAO,MAAM;AACX,MAAM,KAAA,CAAA,cAAA,CAAe,UAAU,WAAW,CAAA;AAAA,KAC5C;AAAA,GACF,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,MAAM,uBAA0B,GAAAC,iBAAA;AAAA,IAC9B,CAAC,GAAQ,KAAA;AACP,MAAM,MAAA,EAAE,KAAM,EAAA,GAAI,GAAI,CAAA,MAAA;AACtB,MAAA,KAAA,CAAM,aAAgB,GAAA,KAAA;AAAA,KACxB;AAAA,IACA,CAAC,KAAK;AAAA,GACR;AAEA,EAAA,MAAM,2BAA8B,GAAAA,iBAAA;AAAA,IAGlC,CAAC,MAAM,KAAM,CAAA,wBAAA,CAAyB,WAAW,CAAE,CAAA,MAAM,GAAG,MAAM,CAAA;AAAA,IAClE,CAAC,KAAK;AAAA,GACR;AAEA,EAAA,MAAM,gCAAmC,GAAAA,iBAAA;AAAA,IAGvC,CAAC,MAAM,KAAM,CAAA,6BAAA,CAA8B,WAAW,CAAE,CAAA,MAAM,GAAG,MAAM,CAAA;AAAA,IACvE,CAAC,KAAK;AAAA,GACR;AAEA,EAAO,OAAA;AAAA,IACL,kBAAkB,KAAM,CAAA,gBAAA;AAAA,IACxB,uBAAyB,EAAA,2BAAA;AAAA,IACzB,4BAA8B,EAAA,gCAAA;AAAA,IAC9B,mBAAqB,EAAA,uBAAA;AAAA,IACrB,YAAY,KAAM,CAAA,aAAA;AAAA,IAClB,iBAAiB,KAAM,CAAA;AAAA,GACzB;AACF;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTableColumnPicker.js","sources":["../../../../packages/vuu-table-extras/src/column-picker/useTableColumnPicker.tsx"],"sourcesContent":["import { useContextPanel, useHideContextPanel } from \"@vuu-ui/vuu-ui-controls\";\nimport { useCallback, useEffect, useRef } from \"react\";\nimport { ColumnPicker } from \"./ColumnPicker\";\nimport { ColumnModel } from \"./ColumnModel\";\n\nexport interface TableColumnPickerHookProps {\n columnModel: ColumnModel;\n}\n\nexport const useTableColumnPicker = ({\n columnModel,\n}: TableColumnPickerHookProps) => {\n const showContextPanel = useContextPanel();\n const hideContextPanel = useHideContextPanel();\n const contextPanelShowing = useRef(false);\n\n const showColumnPicker = useCallback(\n (title = \"Column Picker\") => {\n contextPanelShowing.current = true;\n showContextPanel(<ColumnPicker columnModel={columnModel} />, title);\n },\n [columnModel, showContextPanel],\n );\n\n // TODO what's this for ?\n useEffect(\n () => () => {\n if (contextPanelShowing.current) {\n // It might already be closed, but this won't do any harm\n hideContextPanel?.();\n }\n },\n [hideContextPanel],\n );\n\n return {\n showColumnPicker,\n };\n};\n"],"names":["useContextPanel","useHideContextPanel","useRef","useCallback","jsx","ColumnPicker","useEffect"],"mappings":";;;;;;;AASO,MAAM,uBAAuB,CAAC;AAAA,EACnC;AACF,CAAkC,KAAA;AAChC,EAAA,MAAM,mBAAmBA,6BAAgB,EAAA;AACzC,EAAA,MAAM,mBAAmBC,iCAAoB,EAAA;AAC7C,EAAM,MAAA,mBAAA,GAAsBC,aAAO,KAAK,CAAA;AAExC,EAAA,MAAM,gBAAmB,GAAAC,iBAAA;AAAA,IACvB,CAAC,QAAQ,eAAoB,KAAA;AAC3B,MAAA,mBAAA,CAAoB,OAAU,GAAA,IAAA;AAC9B,MAAA,gBAAA,iBAAkBC,cAAA,CAAAC,yBAAA,EAAA,EAAa,WAA0B,EAAA,CAAA,EAAI,KAAK,CAAA;AAAA,KACpE;AAAA,IACA,CAAC,aAAa,gBAAgB;AAAA,GAChC;AAGA,EAAAC,eAAA;AAAA,IACE,MAAM,MAAM;AACV,MAAA,IAAI,oBAAoB,OAAS,EAAA;AAE/B,QAAmB,gBAAA,IAAA;AAAA;AACrB,KACF;AAAA,IACA,CAAC,gBAAgB;AAAA,GACnB;AAEA,EAAO,OAAA;AAAA,IACL;AAAA,GACF;AACF;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnNameLabel.js","sources":["../../../../packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.tsx"],"sourcesContent":["import { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport cx from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n getCalculatedColumnDetails,\n isCalculatedColumn,\n} from \"@vuu-ui/vuu-utils\";\nimport { MouseEventHandler } from \"react\";\n\nimport columnNameLabelCss from \"./ColumnNameLabel.css\";\n\nconst classBase = \"vuuColumnNameLabel\";\n\nexport interface ColumnNameLabelProps {\n column: ColumnDescriptor;\n onClick?: MouseEventHandler;\n}\n\nexport const ColumnNameLabel = ({ column, onClick }: ColumnNameLabelProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-label\",\n css: columnNameLabelCss,\n window: targetWindow,\n });\n\n if (isCalculatedColumn(column.name)) {\n const { name, serverDataType, expression } =\n getCalculatedColumnDetails(column);\n const displayName = name || \"name\";\n const displayExpression = \"=expression\";\n\n const nameClass =\n displayName === \"name\" ? `${classBase}-placeholder` : undefined;\n const expressionClass =\n expression === \"\" ? `${classBase}-placeholder` : undefined;\n return (\n <div\n className={cx(classBase, `${classBase}-calculated`)}\n onClick={onClick}\n >\n <span className={nameClass}>{displayName}</span>\n <span>:</span>\n <span>{serverDataType || \"string\"}</span>\n <span>:</span>\n <span className={expressionClass}>{displayExpression}</span>\n <span className={`${classBase}-edit`} data-icon=\"edit\" />\n </div>\n );\n } else {\n return <div className={classBase}>{column.name}</div>;\n }\n};\n"],"names":["useWindow","useComponentCssInjection","columnNameLabelCss","isCalculatedColumn","getCalculatedColumnDetails","jsxs","jsx"],"mappings":";;;;;;;;;AAYA,MAAM,SAAY,GAAA,oBAAA;AAOX,MAAM,eAAkB,GAAA,CAAC,EAAE,MAAA,EAAQ,SAAoC,KAAA;AAC5E,EAAA,MAAM,eAAeA,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,kBAAA;AAAA,IACR,GAAK,EAAAC,iBAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAI,IAAAC,2BAAA,CAAmB,MAAO,CAAA,IAAI,CAAG,EAAA;AACnC,IAAA,MAAM,EAAE,IAAM,EAAA,cAAA,EAAgB,UAAW,EAAA,GACvCC,oCAA2B,MAAM,CAAA;AACnC,IAAA,MAAM,cAAc,IAAQ,IAAA,MAAA;AAC5B,IAAA,MAAM,iBAAoB,GAAA,aAAA;AAE1B,IAAA,MAAM,SACJ,GAAA,WAAA,KAAgB,MAAS,GAAA,CAAA,EAAG,SAAS,CAAiB,YAAA,CAAA,GAAA,KAAA,CAAA;AACxD,IAAA,MAAM,eACJ,GAAA,UAAA,KAAe,EAAK,GAAA,CAAA,EAAG,SAAS,CAAiB,YAAA,CAAA,GAAA,KAAA,CAAA;AACnD,IACE,uBAAAC,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAA,EAAA,CAAG,SAAW,EAAA,CAAA,EAAG,SAAS,CAAa,WAAA,CAAA,CAAA;AAAA,QAClD,OAAA;AAAA,QAEA,QAAA,EAAA;AAAA,0BAACC,cAAA,CAAA,MAAA,EAAA,EAAK,SAAW,EAAA,SAAA,EAAY,QAAY,EAAA,WAAA,EAAA,CAAA;AAAA,0BACzCA,cAAA,CAAC,UAAK,QAAC,EAAA,GAAA,EAAA,CAAA;AAAA,0BACPA,cAAA,CAAC,MAAM,EAAA,EAAA,QAAA,EAAA,cAAA,IAAkB,QAAS,EAAA,CAAA;AAAA,0BAClCA,cAAA,CAAC,UAAK,QAAC,EAAA,GAAA,EAAA,CAAA;AAAA,0BACNA,cAAA,CAAA,MAAA,EAAA,EAAK,SAAW,EAAA,eAAA,EAAkB,QAAkB,EAAA,iBAAA,EAAA,CAAA;AAAA,yCACpD,MAAK,EAAA,EAAA,SAAA,EAAW,GAAG,SAAS,CAAA,KAAA,CAAA,EAAS,aAAU,MAAO,EAAA;AAAA;AAAA;AAAA,KACzD;AAAA,GAEG,MAAA;AACL,IAAA,uBAAQA,cAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,SAAA,EAAY,iBAAO,IAAK,EAAA,CAAA;AAAA;AAEnD;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSettingsPanel.js","sources":["../../../../packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.tsx"],"sourcesContent":["import {\n Button,\n FormField,\n FormFieldLabel,\n ToggleButton,\n ToggleButtonGroup,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { Icon, VuuInput } from \"@vuu-ui/vuu-ui-controls\";\nimport {\n getCalculatedColumnDetails,\n getDefaultAlignment,\n isCalculatedColumn,\n} from \"@vuu-ui/vuu-utils\";\nimport { ColumnFormattingPanel } from \"../column-formatting-settings\";\nimport { ColumnNameLabel } from \"./ColumnNameLabel\";\nimport { ColumnSettingsProps, useColumnSettings } from \"./useColumnSettings\";\n\nimport colunSettingsPanelCss from \"./ColumnSettingsPanel.css\";\n\nconst classBase = \"vuuColumnSettingsPanel\";\n\nconst getColumnLabel = (column: ColumnDescriptor) => {\n const { name, label } = column;\n if (isCalculatedColumn(name)) {\n return label ?? getCalculatedColumnDetails(column).name;\n } else {\n return label ?? name;\n }\n};\n\nexport interface ColumnSettinsPanelProps extends ColumnSettingsProps {\n onClickEditCalculatedColumn?: () => void;\n}\n\nexport const ColumnSettingsPanel = ({\n column: columnProp,\n columnModel,\n onClickEditCalculatedColumn,\n onConfigChange,\n}: ColumnSettinsPanelProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-settings-panel\",\n css: colunSettingsPanelCss,\n window: targetWindow,\n });\n\n const isNewCalculatedColumn = columnProp.name === \"::\";\n const {\n availableRenderers,\n column,\n navigateNextColumn,\n navigatePrevColumn,\n onChange,\n onChangeFormatting,\n onChangeRendering,\n onChangeToggleButton,\n onChangeType,\n onInputCommit,\n } = useColumnSettings({\n column: columnProp,\n columnModel,\n onConfigChange,\n });\n\n const {\n serverDataType,\n align = getDefaultAlignment(serverDataType),\n pin,\n width = \"\",\n } = column;\n\n return (\n <div className={classBase}>\n <div className={`${classBase}-header`}>\n <ColumnNameLabel\n column={column}\n onClick={onClickEditCalculatedColumn}\n />\n </div>\n\n <FormField data-field=\"column-label\">\n <FormFieldLabel>Column Label</FormFieldLabel>\n <VuuInput\n bordered\n className=\"vuuInput\"\n data-embedded\n onChange={onChange}\n onCommit={onInputCommit}\n value={getColumnLabel(column)}\n />\n </FormField>\n\n <FormField data-field=\"column-width\">\n <FormFieldLabel>Column Width</FormFieldLabel>\n <VuuInput\n bordered\n className=\"vuuInput\"\n data-embedded\n onChange={onChange}\n value={width}\n onCommit={onInputCommit}\n />\n </FormField>\n <FormField data-field=\"column-alignment\">\n <FormFieldLabel>Alignment</FormFieldLabel>\n <ToggleButtonGroup onChange={onChangeToggleButton} value={align}>\n <ToggleButton value=\"left\">\n <Icon name=\"align-left\" size={16} />\n </ToggleButton>\n <ToggleButton value=\"right\">\n <Icon name=\"align-right\" size={16} />\n </ToggleButton>\n </ToggleButtonGroup>\n </FormField>\n <FormField data-field=\"column-pin\">\n <FormFieldLabel>Pin Column</FormFieldLabel>\n <ToggleButtonGroup\n onChange={onChangeToggleButton}\n value={pin || \"false\"}\n >\n <ToggleButton value=\"left\">\n <Icon name=\"pin-left\" size={16} />\n </ToggleButton>\n <ToggleButton value=\"floating\">\n <Icon name=\"pin-float\" size={16} />\n </ToggleButton>\n <ToggleButton value=\"right\">\n <Icon name=\"pin-right\" size={16} />\n </ToggleButton>\n <ToggleButton value=\"\">\n <Icon name=\"cross-circle\" size={16} />\n </ToggleButton>\n </ToggleButtonGroup>\n </FormField>\n <ColumnFormattingPanel\n availableRenderers={availableRenderers}\n column={column}\n onChangeFormatting={onChangeFormatting}\n onChangeRendering={onChangeRendering}\n onChangeColumnType={onChangeType}\n />\n\n <div\n className={`${classBase}-buttonBar`}\n data-align={isNewCalculatedColumn ? \"right\" : undefined}\n >\n <Button\n className={`${classBase}-buttonNavPrev`}\n variant=\"secondary\"\n data-icon=\"arrow-left\"\n onClick={navigatePrevColumn}\n >\n PREVIOUS\n </Button>\n <Button\n className={`${classBase}-buttonNavNext`}\n variant=\"secondary\"\n data-icon=\"arrow-right\"\n onClick={navigateNextColumn}\n >\n NEXT\n </Button>\n </div>\n </div>\n );\n};\n"],"names":["isCalculatedColumn","getCalculatedColumnDetails","useWindow","useComponentCssInjection","colunSettingsPanelCss","useColumnSettings","getDefaultAlignment","jsxs","jsx","ColumnNameLabel","FormField","FormFieldLabel","VuuInput","ToggleButtonGroup","ToggleButton","Icon","ColumnFormattingPanel","Button"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useColumnSettings.js","sources":["../../../../packages/vuu-table-extras/src/column-settings-panel/useColumnSettings.ts"],"sourcesContent":["import {\n ColumnDescriptor,\n TableConfig,\n ColumnTypeFormatting,\n} from \"@vuu-ui/vuu-table-types\";\n\nimport {\n CellRendererDescriptor,\n ColumnRenderPropsChangeHandler,\n getFieldName,\n getRegisteredCellRenderers,\n isValidColumnAlignment,\n isValidPinLocation,\n setCalculatedColumnName,\n updateColumnRenderProps,\n updateColumnFormatting,\n updateColumnType,\n queryClosest,\n getServerDataType,\n} from \"@vuu-ui/vuu-utils\";\nimport { VuuColumnDataType, VuuTable } from \"@vuu-ui/vuu-protocol-types\";\nimport {\n FormEventHandler,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { DataValueTypeSimple } from \"@vuu-ui/vuu-data-types\";\nimport { ColumnModel } from \"../column-picker/ColumnModel\";\n\n/**\n * Describes the props for a Column Configuration Editor, for which\n * an implementation is provided in vuu-table-extras\n */\nexport interface ColumnSettingsProps {\n column: ColumnDescriptor;\n columnModel: ColumnModel;\n onConfigChange?: (config: TableConfig) => void;\n vuuTable?: VuuTable;\n}\n\nconst integerCellRenderers: CellRendererDescriptor[] = [\n {\n description: \"Default formatter for columns with data type integer\",\n label: \"Default Renderer (int, long)\",\n name: \"default-int\",\n },\n];\nconst doubleCellRenderers: CellRendererDescriptor[] = [\n {\n description: \"Default formatter for columns with data type double\",\n label: \"Default Renderer (double)\",\n name: \"default-double\",\n },\n];\nconst decimalCellRenderers: CellRendererDescriptor[] = [\n {\n description:\n \"Default formatter for columns with data type decimal (2,4,6 or 8)\",\n label: \"Default Renderer (decimal)\",\n name: \"default-decimal\",\n },\n];\n\nconst stringCellRenderers: CellRendererDescriptor[] = [\n {\n description: \"Default formatter for columns with data type string\",\n label: \"Default Renderer (string)\",\n name: \"default-string\",\n },\n];\n\nconst booleanCellRenderers: CellRendererDescriptor[] = [];\n\nconst getAvailableCellRenderers = (\n column: ColumnDescriptor,\n): CellRendererDescriptor[] => {\n const serverDataType = getServerDataType(column);\n switch (serverDataType) {\n case \"char\":\n case \"string\":\n return stringCellRenderers.concat(getRegisteredCellRenderers(\"string\"));\n case \"int\":\n case \"long\":\n return integerCellRenderers.concat(getRegisteredCellRenderers(\"int\"));\n case \"double\":\n return doubleCellRenderers.concat(\n getRegisteredCellRenderers(column.serverDataType),\n );\n case \"scaleddecimal2\":\n case \"scaleddecimal4\":\n case \"scaleddecimal6\":\n case \"scaleddecimal8\":\n return decimalCellRenderers.concat(\n getRegisteredCellRenderers(column.serverDataType),\n );\n case \"boolean\":\n return booleanCellRenderers.concat(getRegisteredCellRenderers(\"boolean\"));\n default:\n return stringCellRenderers;\n }\n};\n\nexport const useColumnSettings = ({\n column: columnProp,\n columnModel,\n}: Omit<ColumnSettingsProps, \"vuuTable\">) => {\n const [column, setColumn] = useState<ColumnDescriptor>(\n columnModel.getColumn(columnProp.name),\n );\n\n useEffect(() => {\n setColumn(columnProp);\n }, [columnProp]);\n\n const availableRenderers = useMemo(() => {\n return getAvailableCellRenderers(column);\n }, [column]);\n\n const handleChangeToggleButton = useCallback<FormEventHandler>(\n (evt) => {\n const button = queryClosest<HTMLButtonElement>(evt.target, \"button\");\n if (button) {\n const fieldName = getFieldName(button);\n const { value } = button;\n switch (fieldName) {\n case \"column-alignment\":\n if (isValidColumnAlignment(value)) {\n const newColumn: ColumnDescriptor = {\n ...column,\n align: value,\n };\n setColumn(newColumn);\n columnModel.updateColumn(newColumn);\n }\n break;\n case \"column-pin\":\n if (isValidPinLocation(value)) {\n const newColumn: ColumnDescriptor = {\n ...column,\n pin: value || undefined,\n };\n setColumn(newColumn);\n columnModel.updateColumn(newColumn);\n\n break;\n }\n }\n }\n },\n [column, columnModel],\n );\n\n const handleChange = useCallback<FormEventHandler>((evt) => {\n const input = evt.target as HTMLInputElement;\n const fieldName = getFieldName(input);\n const { value } = input;\n switch (fieldName) {\n case \"column-label\":\n setColumn((state) => ({ ...state, label: value }));\n break;\n case \"column-name\":\n setColumn((state) => setCalculatedColumnName(state, value));\n break;\n case \"column-width\":\n {\n const numericValue = parseInt(value, 10);\n if (isNaN(numericValue)) {\n setColumn((state) => ({ ...state, width: undefined }));\n } else {\n setColumn((state) => ({ ...state, width: numericValue }));\n }\n }\n break;\n }\n }, []);\n\n const handleInputCommit = useCallback(() => {\n columnModel.updateColumn(column);\n }, [column, columnModel]);\n\n const handleChangeCalculatedColumnName = useCallback((name: string) => {\n setColumn((state) => ({ ...state, name }));\n }, []);\n\n const handleChangeRendering = useCallback<ColumnRenderPropsChangeHandler>(\n (renderProps) => {\n if (renderProps) {\n const newColumn: ColumnDescriptor = updateColumnRenderProps(\n column,\n renderProps,\n );\n setColumn(newColumn);\n columnModel.updateColumn(newColumn);\n }\n },\n [column, columnModel],\n );\n\n const handleChangeFormatting = useCallback(\n (formatting: ColumnTypeFormatting) => {\n const newColumn = updateColumnFormatting(column, formatting);\n setColumn(newColumn);\n columnModel.updateColumn(newColumn);\n },\n [column, columnModel],\n );\n\n const handleChangeType = useCallback(\n (type: DataValueTypeSimple) => {\n const updatedColumn = updateColumnType(column, type);\n setColumn(updatedColumn);\n columnModel.updateColumn(updatedColumn);\n },\n [column, columnModel],\n );\n\n // Changing the server data type applies only to calculated columns\n const handleChangeServerDataType = useCallback(\n (serverDataType: VuuColumnDataType) => {\n setColumn((col) => ({ ...col, serverDataType }));\n },\n [],\n );\n\n const navigateColumn = useCallback(\n ({ moveBy }: { moveBy: number }) => {\n const index = columnModel.selectedColumns.indexOf(column) + moveBy;\n const newColumn = columnModel.selectedColumns[index];\n if (newColumn) {\n setColumn(newColumn);\n }\n },\n [column, columnModel],\n );\n const navigateNextColumn = useCallback(() => {\n navigateColumn({ moveBy: 1 });\n }, [navigateColumn]);\n\n const navigatePrevColumn = useCallback(() => {\n navigateColumn({ moveBy: -1 });\n }, [navigateColumn]);\n\n return {\n availableRenderers,\n column,\n navigateNextColumn,\n navigatePrevColumn,\n onChange: handleChange,\n onChangeCalculatedColumnName: handleChangeCalculatedColumnName,\n onChangeFormatting: handleChangeFormatting,\n onChangeRendering: handleChangeRendering,\n onChangeServerDataType: handleChangeServerDataType,\n onChangeToggleButton: handleChangeToggleButton,\n onChangeType: handleChangeType,\n onInputCommit: handleInputCommit,\n };\n};\n"],"names":["getServerDataType","getRegisteredCellRenderers","useState","useEffect","useMemo","useCallback","queryClosest","getFieldName","isValidColumnAlignment","isValidPinLocation","setCalculatedColumnName","updateColumnRenderProps","updateColumnFormatting","updateColumnType"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DatasourceStats.js","sources":["../../../../packages/vuu-table-extras/src/datasource-stats/DatasourceStats.tsx"],"sourcesContent":["import cx from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { HTMLAttributes, ReactNode } from \"react\";\nimport {\n DatasourceStatsHookProps,\n useDatasourceStats,\n} from \"./useDatasourceStats\";\n\nimport dataSourceStats from \"./DatasourceStats.css\";\n\nexport type ItemLabel =\n | string\n | {\n singlular: string;\n plural: string;\n };\n\nexport interface DataSourceStatsProps\n extends DatasourceStatsHookProps,\n Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n /**\n * children will be displayed when selection present. Intended\n * use case is display of action button(s) that will operate on\n * selected rows.\n */\n children?: ReactNode;\n selectionActions?: ReactNode;\n tooltrayActions?: ReactNode;\n}\n\nconst classBase = \"vuuDatasourceStats\";\n\nconst numberFormatter = new Intl.NumberFormat();\n\nexport const DataSourceStats = ({\n children,\n className,\n dataSource,\n showRowStats = true,\n tooltrayActions,\n ...htmlAttributes\n}: DataSourceStatsProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-datasource-stats\",\n css: dataSourceStats,\n window: targetWindow,\n });\n\n const { range, selectedCount, size } = useDatasourceStats({\n dataSource,\n showRowStats,\n });\n\n const from = numberFormatter.format(range.from + 1);\n const to = numberFormatter.format(Math.min(range.to, size));\n const value = numberFormatter.format(size);\n\n if (size === 0) {\n return (\n <div {...htmlAttributes} className={cx(classBase, className)}>\n <span className={`${classBase}-label`}>No Rows to display</span>\n </div>\n );\n } else {\n return (\n <div\n {...htmlAttributes}\n className={cx(classBase, className, {\n [`${classBase}-withSelection`]: selectedCount > 0,\n })}\n >\n {showRowStats ? (\n <div className={`${classBase}-statsPanel ${classBase}-rowStats`}>\n <span className={`${classBase}-label`}>Row count</span>\n <span className={`${classBase}-range`}>\n <span className={`${classBase}-value`}>{from}</span>\n <span className={`${classBase}-label`}>-</span>\n <span className={`${classBase}-value`}>{to}</span>\n </span>\n <span className={`${classBase}-label`}>of</span>\n <span className={`${classBase}-value`}>{value}</span>\n {selectedCount > 0 ? (\n <span\n className={cx(`${classBase}-label`, `${classBase}-selected`)}\n >{`${selectedCount.toLocaleString()} selected`}</span>\n ) : null}\n </div>\n ) : null}\n {selectedCount > 0 ? (\n <div\n className={`${classBase}-statsPanel ${classBase}-selectionActions`}\n >\n {children}\n </div>\n ) : null}\n {tooltrayActions ? (\n <div className={`${classBase}-statsPanel ${classBase}-tooltray`}>\n <span className={`${classBase}-actions`}>{tooltrayActions}</span>\n </div>\n ) : null}\n </div>\n );\n }\n};\n"],"names":["useWindow","useComponentCssInjection","dataSourceStats","useDatasourceStats","jsx","jsxs"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDatasourceStats.js","sources":["../../../../packages/vuu-table-extras/src/datasource-stats/useDatasourceStats.ts"],"sourcesContent":["import { DataSource, RowSelectionEventHandler } from \"@vuu-ui/vuu-data-types\";\nimport { formatDate, Range } from \"@vuu-ui/vuu-utils\";\nimport { useCallback, useMemo, useState } from \"react\";\n\nexport interface DatasourceStatsHookProps {\n dataSource: DataSource;\n showFreezeStatus?: boolean;\n showRowStats?: boolean;\n showSelectionStats?: boolean;\n}\n\nconst timeFormatter = formatDate({ time: \"hh:mm:ss\" });\n\nconst formatTime = (ts: number | undefined) => {\n if (typeof ts === \"number\") {\n return timeFormatter(new Date(ts));\n } else {\n return undefined;\n }\n};\n\nexport const useDatasourceStats = ({\n dataSource,\n}: DatasourceStatsHookProps) => {\n const [selectedCount, setSelectedCount] = useState(0);\n const [range, setRange] = useState<Range>(dataSource.range);\n const [size, setSize] = useState(dataSource.size);\n const [freezeTime, setFreezeTime] = useState(\n formatTime(dataSource.freezeTimestamp),\n );\n\n const handleFreeze = useCallback(\n (isFrozen: boolean, freezeTimestamp: number) => {\n if (isFrozen) {\n setFreezeTime(formatTime(freezeTimestamp));\n } else {\n setFreezeTime(undefined);\n }\n },\n [],\n );\n\n const handleRowSelection = useCallback<RowSelectionEventHandler>((count) => {\n setSelectedCount(count);\n }, []);\n\n const handleSize = useCallback((size: number) => {\n setSize(size);\n }, []);\n\n useMemo(() => {\n setSize(dataSource.size);\n dataSource.on(\"resize\", handleSize);\n dataSource.on(\"range\", setRange);\n dataSource.on(\"freeze\", handleFreeze);\n dataSource.on(\"row-selection\", handleRowSelection);\n return () => {\n dataSource.removeListener(\"resize\", handleSize);\n dataSource.removeListener(\"range\", setRange);\n dataSource.removeListener(\"freeze\", handleFreeze);\n dataSource.removeListener(\"row-selection\", handleRowSelection);\n };\n }, [dataSource, handleFreeze, handleRowSelection, handleSize]);\n\n return {\n range,\n selectedCount,\n size,\n freezeTime,\n };\n};\n"],"names":["formatDate","useState","useCallback","size","useMemo"],"mappings":";;;;;AAWA,MAAM,aAAgB,GAAAA,mBAAA,CAAW,EAAE,IAAA,EAAM,YAAY,CAAA;AAErD,MAAM,UAAA,GAAa,CAAC,EAA2B,KAAA;AAC7C,EAAI,IAAA,OAAO,OAAO,QAAU,EAAA;AAC1B,IAAA,OAAO,aAAc,CAAA,IAAI,IAAK,CAAA,EAAE,CAAC,CAAA;AAAA,GAC5B,MAAA;AACL,IAAO,OAAA,KAAA,CAAA;AAAA;AAEX,CAAA;AAEO,MAAM,qBAAqB,CAAC;AAAA,EACjC;AACF,CAAgC,KAAA;AAC9B,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIC,eAAS,CAAC,CAAA;AACpD,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAAA,cAAA,CAAgB,WAAW,KAAK,CAAA;AAC1D,EAAA,MAAM,CAAC,IAAM,EAAA,OAAO,CAAI,GAAAA,cAAA,CAAS,WAAW,IAAI,CAAA;AAChD,EAAM,MAAA,CAAC,UAAY,EAAA,aAAa,CAAI,GAAAA,cAAA;AAAA,IAClC,UAAA,CAAW,WAAW,eAAe;AAAA,GACvC;AAEA,EAAA,MAAM,YAAe,GAAAC,iBAAA;AAAA,IACnB,CAAC,UAAmB,eAA4B,KAAA;AAC9C,MAAA,IAAI,QAAU,EAAA;AACZ,QAAc,aAAA,CAAA,UAAA,CAAW,eAAe,CAAC,CAAA;AAAA,OACpC,MAAA;AACL,QAAA,aAAA,CAAc,KAAS,CAAA,CAAA;AAAA;AACzB,KACF;AAAA,IACA;AAAC,GACH;AAEA,EAAM,MAAA,kBAAA,GAAqBA,iBAAsC,CAAA,CAAC,KAAU,KAAA;AAC1E,IAAA,gBAAA,CAAiB,KAAK,CAAA;AAAA,GACxB,EAAG,EAAE,CAAA;AAEL,EAAM,MAAA,UAAA,GAAaA,iBAAY,CAAA,CAACC,KAAiB,KAAA;AAC/C,IAAA,OAAA,CAAQA,KAAI,CAAA;AAAA,GACd,EAAG,EAAE,CAAA;AAEL,EAAAC,aAAA,CAAQ,MAAM;AACZ,IAAA,OAAA,CAAQ,WAAW,IAAI,CAAA;AACvB,IAAW,UAAA,CAAA,EAAA,CAAG,UAAU,UAAU,CAAA;AAClC,IAAW,UAAA,CAAA,EAAA,CAAG,SAAS,QAAQ,CAAA;AAC/B,IAAW,UAAA,CAAA,EAAA,CAAG,UAAU,YAAY,CAAA;AACpC,IAAW,UAAA,CAAA,EAAA,CAAG,iBAAiB,kBAAkB,CAAA;AACjD,IAAA,OAAO,MAAM;AACX,MAAW,UAAA,CAAA,cAAA,CAAe,UAAU,UAAU,CAAA;AAC9C,MAAW,UAAA,CAAA,cAAA,CAAe,SAAS,QAAQ,CAAA;AAC3C,MAAW,UAAA,CAAA,cAAA,CAAe,UAAU,YAAY,CAAA;AAChD,MAAW,UAAA,CAAA,cAAA,CAAe,iBAAiB,kBAAkB,CAAA;AAAA,KAC/D;AAAA,KACC,CAAC,UAAA,EAAY,YAAc,EAAA,kBAAA,EAAoB,UAAU,CAAC,CAAA;AAE7D,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA,aAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FreezeControl.js","sources":["../../../../packages/vuu-table-extras/src/freeze-control/FreezeControl.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { ToggleButton, ToggleButtonGroup } from \"@salt-ds/core\";\nimport { useFreezeControl, type FreezeProps } from \"./useFreezeControl\";\nimport { HTMLAttributes, useEffect, useRef, useState } from \"react\";\nimport cx from \"clsx\";\nimport { calculateBadgeState } from \"./freezeControlBadge\";\n\nimport freezeControlCss from \"./FreezeControl.css\";\n\n// Duration to keep flashing after last new record (in milliseconds)\nconst FLASH_DURATION_MS = 3000;\n\nconst classBase = \"vuuFreezeControl\";\n\nexport interface FreezeControlProps\n extends HTMLAttributes<HTMLDivElement>,\n FreezeProps {\n /**\n * Label shown when the table is frozen next to the new record badge.\n * @default \"New Orders\"\n */\n newItemsLabel?: string;\n\n /**\n * Duration of the flash animation for the badge (in seconds).\n * @default 0.25\n */\n flashDuration?: number;\n}\n\nexport const FreezeControl = ({\n dataSource,\n className,\n newItemsLabel = \"New Orders\",\n flashDuration = 0.25,\n ...htmlAttributes\n}: FreezeControlProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-freeze-control\",\n css: freezeControlCss,\n window: targetWindow,\n });\n\n const { isFrozen, newRecordCount, onToggleChange } = useFreezeControl({\n dataSource,\n });\n\n const [isFlashing, setIsFlashing] = useState(false);\n const flashTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Check if we're frozen and have new records and set the flash with a 3 second timeout\n useEffect(() => {\n if (isFrozen && newRecordCount > 0) {\n setIsFlashing(true);\n\n if (flashTimeoutRef.current) {\n clearTimeout(flashTimeoutRef.current);\n }\n\n flashTimeoutRef.current = setTimeout(() => {\n setIsFlashing(false);\n }, FLASH_DURATION_MS);\n }\n }, [newRecordCount, isFrozen]);\n\n const { badgeValue, isOverflow } = calculateBadgeState(newRecordCount);\n\n return (\n <div\n {...htmlAttributes}\n className={cx(classBase, className)}\n style={\n {\n ...htmlAttributes.style,\n \"--freeze-control-flash-duration\": `${flashDuration}s`,\n } as React.CSSProperties\n }\n >\n <div className={`${classBase}-buttonRow`}>\n <ToggleButtonGroup\n className=\"vuuStateButtonGroup\"\n onChange={onToggleChange}\n value={isFrozen ? \"frozen\" : \"live\"}\n >\n <div\n className={cx(`${classBase}-buttonWrapper`, {\n [`${classBase}-buttonWrapper-active`]: isFrozen,\n })}\n >\n <ToggleButton value=\"frozen\">\n {isFrozen ? \"Frozen\" : \"Freeze\"}\n </ToggleButton>\n </div>\n <div\n className={cx(`${classBase}-buttonWrapper`, {\n [`${classBase}-buttonWrapper-active`]: !isFrozen,\n })}\n >\n <ToggleButton value=\"live\">Active</ToggleButton>\n </div>\n </ToggleButtonGroup>\n {isFrozen && (\n <div className={`${classBase}-newItems`}>\n {newItemsLabel}\n <div\n className={cx(`${classBase}-customBadge`, {\n [`${classBase}-customBadge-flashing`]: isFlashing,\n [`${classBase}-customBadge-overflow`]: isOverflow,\n })}\n data-overflow={isOverflow ? \"true\" : undefined}\n >\n {badgeValue}\n {isOverflow && <span className={`${classBase}-plus`}>+</span>}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"names":["useWindow","useComponentCssInjection","freezeControlCss","useFreezeControl","useState","useRef","useEffect","calculateBadgeState","jsx","jsxs","ToggleButtonGroup","ToggleButton"],"mappings":"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"}
|