@svgrid/enterprise 2.6.3 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/SvGridBulkEditDrawer.svelte +158 -0
  2. package/dist/SvGridBulkEditDrawer.svelte.d.ts +9 -0
  3. package/dist/SvGridSelectionBar.svelte +452 -0
  4. package/dist/SvGridSelectionBar.svelte.d.ts +6 -0
  5. package/dist/SvPivotDesigner.svelte +3 -3
  6. package/dist/SvPivotDesigner.svelte.d.ts +3 -3
  7. package/dist/bulk-edit.d.ts +64 -0
  8. package/dist/bulk-edit.js +152 -0
  9. package/dist/cdn/svgrid-enterprise.svelte-external.js +6232 -5824
  10. package/dist/designer/assets/GridMenus-Cgilexpk.js +8 -0
  11. package/dist/designer/assets/SvDateRangeInput-BV5OXYQ2.css +1 -0
  12. package/dist/designer/assets/SvDateRangeInput-CVn-yqrQ.js +1 -0
  13. package/dist/designer/assets/SvDateTimePicker-BdioTrJQ.js +1 -0
  14. package/dist/designer/assets/SvDateTimePicker-CY8TK4BT.css +1 -0
  15. package/dist/designer/assets/SvField-BsqiA5me.js +1 -0
  16. package/dist/designer/assets/SvGridCellEditor-dLY7_kk9.js +2 -0
  17. package/dist/designer/assets/SvListBox-CVYQcLX9.js +1 -0
  18. package/dist/designer/assets/{SvListBox-BMSfFJJT.css → SvListBox-DgN8kvjt.css} +1 -1
  19. package/dist/designer/assets/column-resize-C_inr5zT.js +1 -0
  20. package/dist/designer/assets/date-format-4DJvNtG2.js +1 -0
  21. package/dist/designer/assets/{SvDateTimePicker-Cygij-dr.css → date-format-Dzy4mTGh.css} +1 -1
  22. package/dist/designer/assets/dismissable-BO547MH9.js +1 -0
  23. package/dist/designer/assets/editor-registry-BjP16H0v.js +1 -0
  24. package/dist/designer/assets/{index-aTVomkp-.js → index-BvaLmQSd.js} +128 -128
  25. package/dist/designer/assets/index-Cp7fDJ3b.css +1 -0
  26. package/dist/designer/assets/{js-scroller.svelte-C7LaeUEW.js → js-scroller.svelte-Bhxqb3-c.js} +2 -2
  27. package/dist/designer/assets/preload-helper-CG0n22O7.js +1 -0
  28. package/dist/designer/assets/row-resize-B0FWHcNr.js +1 -0
  29. package/dist/designer/assets/src-7qOYsBug.js +2896 -0
  30. package/dist/designer/assets/src-B7DNcoQK.css +1 -0
  31. package/dist/designer/assets/validate-h-aslRV9.js +1 -0
  32. package/dist/designer/index.html +18 -13
  33. package/dist/export.d.ts +4 -0
  34. package/dist/import.d.ts +7 -0
  35. package/dist/index.d.ts +3 -0
  36. package/dist/index.js +8 -0
  37. package/dist/install.d.ts +3 -0
  38. package/dist/install.js +2 -0
  39. package/dist/license-core.d.ts +1 -1
  40. package/dist/license-core.js +1 -1
  41. package/dist/node/studio.js +178 -80
  42. package/dist/pivot.d.ts +11 -0
  43. package/dist/pivot.js +6 -1
  44. package/dist/selection-bar.d.ts +7 -0
  45. package/dist/selection-bar.js +42 -0
  46. package/dist/studio/emit-project.js +22 -7
  47. package/dist/studio/emit-schema.d.ts +1 -4
  48. package/dist/studio/emit-schema.js +7 -29
  49. package/dist/studio/init-flow.js +2 -2
  50. package/dist/studio/scaffold-app.d.ts +8 -0
  51. package/dist/studio/scaffold-app.js +7 -2
  52. package/dist/studio/scaffold.d.ts +8 -0
  53. package/dist/studio/scaffold.js +5 -0
  54. package/dist/studio/themes.d.ts +17 -1
  55. package/dist/studio/themes.js +26 -1
  56. package/dist/studio/ui-components.generated.js +72 -3
  57. package/dist/version.d.ts +1 -1
  58. package/dist/version.js +1 -1
  59. package/package.json +10 -5
  60. package/dist/designer/assets/GridMenus-DuogVgW0.js +0 -7
  61. package/dist/designer/assets/SvDateTimePicker-DOBYyLeN.js +0 -1
  62. package/dist/designer/assets/SvGrid.helpers-C6wxF55r.js +0 -1
  63. package/dist/designer/assets/SvGridCellEditor-CMtmQINJ.js +0 -2
  64. package/dist/designer/assets/SvListBox-CWCIPM4P.js +0 -1
  65. package/dist/designer/assets/dismissable-2EZKoens.js +0 -1
  66. package/dist/designer/assets/editor-registry-BB1Qb5mp.js +0 -1
  67. package/dist/designer/assets/index-BfzoL904.css +0 -1
  68. package/dist/designer/assets/src-B5lLfIhK.css +0 -1
  69. package/dist/designer/assets/src-DLoHsbp5.js +0 -2893
  70. /package/dist/designer/assets/{dismissable-BF-9TJSd.css → SvField-BF-9TJSd.css} +0 -0
package/dist/import.d.ts CHANGED
@@ -24,7 +24,9 @@
24
24
  * `print`, so unlicensed evaluation works but emits a one-time nudge.
25
25
  */
26
26
  import type { RowData, SvGridApi, TableFeatures } from '@svgrid/grid';
27
+ /** Source formats `importGrid` reads. `'auto'` picks one from the file extension. */
27
28
  export type ImportFormat = 'xlsx' | 'csv' | 'tsv' | 'json' | 'auto';
29
+ /** Maps a source header to the row field it populates, for files whose columns do not match your data. */
28
30
  export type ImportColumnMap = Record<string, string>;
29
31
  /**
30
32
  * Declared data type per target field. When `columnTypes` is set on
@@ -33,6 +35,7 @@ export type ImportColumnMap = Record<string, string>;
33
35
  * stricter than the ad-hoc "looks like a number" fallback.
34
36
  */
35
37
  export type ImportFieldType = 'string' | 'number' | 'integer' | 'boolean' | 'date' | 'datetime' | 'json';
38
+ /** Per-field coercion, so a column of `"42"` strings arrives as numbers. */
36
39
  export type ImportColumnTypes = Record<string, ImportFieldType>;
37
40
  /**
38
41
  * The slice of a grid column the auto-mapper needs: its target `field`,
@@ -58,6 +61,7 @@ export type ImportProgress = {
58
61
  /** Total rows this phase will process (0 when unknown, e.g. mid-parse). */
59
62
  total: number;
60
63
  };
64
+ /** One row that failed validation, with the reason and where it came from. */
61
65
  export type ImportRowError = {
62
66
  /** 0-based row index in the SOURCE file (excluding the header). */
63
67
  rowIndex: number;
@@ -65,10 +69,12 @@ export type ImportRowError = {
65
69
  field: string;
66
70
  message: string;
67
71
  };
72
+ /** Per-row check run during import. Return an error message to reject the row, or nothing to accept it. */
68
73
  export type ImportValidator<TData> = (row: TData, rowIndex: number) => Array<{
69
74
  field: string;
70
75
  message: string;
71
76
  }>;
77
+ /** Everything `importGrid` accepts: the format, the column mapping and types, and the validator. */
72
78
  export type ImportOptions<TData> = {
73
79
  /** The file to read. A `File`/`Blob` works for xlsx; a string is treated as
74
80
  * inline CSV/TSV/JSON text. */
@@ -140,6 +146,7 @@ export type ImportOptions<TData> = {
140
146
  /** Progress callback for large files (parse + map phases). */
141
147
  onProgress?: (progress: ImportProgress) => void;
142
148
  };
149
+ /** The outcome of an import: the rows that parsed, and the ones that did not with their errors. */
143
150
  export type ImportResult<TData> = {
144
151
  /** Source headers as found in the file, in their original order. */
145
152
  headers: string[];
package/dist/index.d.ts CHANGED
@@ -9,6 +9,9 @@ export { default as SvImportDialog } from './SvImportDialog.svelte';
9
9
  export { installEnterprise, type EnterpriseGridApi, type EnterpriseAIApi, type EnterprisePivotApi } from './install';
10
10
  export { enableSchedulerView, SvGridScheduler } from './scheduler';
11
11
  export { enableBoardView, SvGridBoard } from './board';
12
+ export { enableSelectionBar, SvGridSelectionBar } from './selection-bar';
13
+ export { applyBulkEdit, bulkEditableFields, bulkEditInitialValues, coerceBulkValue, type BulkEditField, type BulkEditResult } from './bulk-edit';
14
+ export { default as SvGridBulkEditDrawer } from './SvGridBulkEditDrawer.svelte';
12
15
  export { enablePivot } from './pivot-enable';
13
16
  export { enableAdvancedFilter } from './advanced-filter-enable';
14
17
  export { default as SvAdvancedFilter } from './SvAdvancedFilter.svelte';
package/dist/index.js CHANGED
@@ -17,6 +17,14 @@ export { enableSchedulerView, SvGridScheduler } from './scheduler';
17
17
  // Kanban board view (Pro). `enableBoardView()` registers the renderer so
18
18
  // `<SvGrid board={...}>` shows lanes of cards. Config types live in @svgrid/grid.
19
19
  export { enableBoardView, SvGridBoard } from './board';
20
+ // Bulk-action bar over the row selection (Pro). `enableSelectionBar()` registers
21
+ // the renderer so `<SvGrid selectionBar={...}>` floats a bar over the grid while
22
+ // rows are selected. The prop + its config types live in @svgrid/grid.
23
+ export { enableSelectionBar, SvGridSelectionBar } from './selection-bar';
24
+ // Bulk edit engine behind the bar's `editFields` button - exported so an app
25
+ // can drive the same write from its own UI.
26
+ export { applyBulkEdit, bulkEditableFields, bulkEditInitialValues, coerceBulkValue } from './bulk-edit';
27
+ export { default as SvGridBulkEditDrawer } from './SvGridBulkEditDrawer.svelte';
20
28
  // In-grid pivot mode (Pro). `enablePivot()` registers the pivot engine so
21
29
  // `<SvGrid pivot={...}>` renders a pivot table in place of the flat table.
22
30
  export { enablePivot } from './pivot-enable';
package/dist/install.d.ts CHANGED
@@ -4,6 +4,7 @@ import { type PrintOptions } from './print';
4
4
  import { type ImportOptions, type ImportResult } from './import';
5
5
  import { type AIChartOptions, type AIChartPlan, type AIFilterOptions, type AIFilterResult, type AISmartFillOptions, type AISmartFillResult, type AISummarizeOptions, type AISummary, type AIClassifyOptions, type AIClassifyResult, type AIExportOptions, type AIExportPlan, type AIAnomalyOptions, type AIAnomalyResult } from '@svgrid/grid';
6
6
  import { type PivotConfig, type PivotResult } from './pivot';
7
+ /** The `api.ai.*` namespace added by the enterprise install. */
7
8
  export type EnterpriseAIApi<TData extends RowData> = {
8
9
  /** Natural-language -> filter + sort plan (and optionally apply it). */
9
10
  filter(query: string, opts?: AIFilterOptions): Promise<AIFilterResult>;
@@ -21,6 +22,7 @@ export type EnterpriseAIApi<TData extends RowData> = {
21
22
  chart(query: string, opts?: AIChartOptions): Promise<AIChartPlan>;
22
23
  readonly _rowType?: TData;
23
24
  };
25
+ /** The `api.pivot.*` namespace added by the enterprise install. */
24
26
  export type EnterprisePivotApi<TFeatures extends TableFeatures, TData extends RowData> = {
25
27
  /**
26
28
  * Build a pivot row/column model from the grid's current data. Returns
@@ -36,6 +38,7 @@ export type EnterprisePivotApi<TFeatures extends TableFeatures, TData extends Ro
36
38
  */
37
39
  buildFrom<TIn extends RowData>(data: ReadonlyArray<TIn>, config: PivotConfig<TIn>): PivotResult<TFeatures>;
38
40
  };
41
+ /** The grid API plus everything enterprise adds - what `installEnterprise` hands back. */
39
42
  export type EnterpriseGridApi<TFeatures extends TableFeatures, TData extends RowData> = SvGridApi<TFeatures, TData> & {
40
43
  /** Export the current visible rows to the chosen format. Returns the built
41
44
  * file ({@link ExportResult}) for the dependency-free paths (undefined for
package/dist/install.js CHANGED
@@ -9,6 +9,7 @@ import { aiFilter, aiSmartFill, aiSummarize, aiClassify, aiExport, aiFindAnomali
9
9
  import { createPivotModel, } from './pivot';
10
10
  import { enableSchedulerView } from './scheduler';
11
11
  import { enableBoardView } from './board';
12
+ import { enableSelectionBar } from './selection-bar';
12
13
  import { enableAdvancedFilter } from './advanced-filter-enable';
13
14
  import { enablePivot } from './pivot-enable';
14
15
  /**
@@ -42,6 +43,7 @@ export function installEnterprise(api) {
42
43
  enableSchedulerView();
43
44
  // Register the Kanban board view (no-op without the `board` prop).
44
45
  enableBoardView();
46
+ enableSelectionBar();
45
47
  // Register the export engine so built-in AI exports (aiExport) can write the
46
48
  // enterprise formats (xlsx / pdf / ...); free grids without it get the plan only.
47
49
  registerExportProvider(exportGrid);
@@ -29,7 +29,7 @@ export type LicenseInfo = {
29
29
  * in that position) yields null, which reads as "no expiry encoded".
30
30
  *
31
31
  * Boundaries are UTC so a key does not lapse at a different instant per
32
- * timezone. Kept in sync with `tools/issue-license.mjs`.
32
+ * timezone. Kept in sync with the (maintainer-side) key issuer.
33
33
  */
34
34
  export declare function parseLicenseExpiry(key: string | null | undefined): Date | null;
35
35
  /** Classify a license key string. Pure and side-effect-free.
@@ -23,7 +23,7 @@ export const VALID_PREFIX = 'SVENTERPRISE-';
23
23
  * in that position) yields null, which reads as "no expiry encoded".
24
24
  *
25
25
  * Boundaries are UTC so a key does not lapse at a different instant per
26
- * timezone. Kept in sync with `tools/issue-license.mjs`.
26
+ * timezone. Kept in sync with the (maintainer-side) key issuer.
27
27
  */
28
28
  export function parseLicenseExpiry(key) {
29
29
  if (!key)