@toolbox-web/grid-angular 0.19.3 → 1.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, contentChild, TemplateRef, effect, Directive, input, DestroyRef, InjectionToken, Injectable, makeEnvironmentProviders, EventEmitter, createComponent, signal, afterNextRender, computed, output, EnvironmentInjector, ApplicationRef, ViewContainerRef } from '@angular/core';
2
+ import { inject, ElementRef, contentChild, TemplateRef, effect, Directive, input, DestroyRef, InjectionToken, Injectable, makeEnvironmentProviders, createComponent, signal, afterNextRender, computed, output, EnvironmentInjector, ApplicationRef, ViewContainerRef } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { FormGroup } from '@angular/forms';
5
5
  import { startWith, debounceTime } from 'rxjs/operators';
@@ -256,6 +256,17 @@ function getDetailConfig(gridElement) {
256
256
  * })
257
257
  * ```
258
258
  *
259
+ * @example
260
+ * ```html
261
+ * <tbw-grid [rows]="rows" [gridConfig]="config">
262
+ * <tbw-grid-detail [showExpandColumn]="true" animation="slide">
263
+ * <ng-template let-row>
264
+ * <app-detail-panel [employee]="row" />
265
+ * </ng-template>
266
+ * </tbw-grid-detail>
267
+ * </tbw-grid>
268
+ * ```
269
+ *
259
270
  * @category Directive
260
271
  */
261
272
  class GridDetailView {
@@ -351,6 +362,13 @@ function getFormArrayContext(gridElement) {
351
362
  * - Supports row-level validation state aggregation
352
363
  * - Automatically syncs FormArray changes to the grid
353
364
  *
365
+ * @example
366
+ * ```html
367
+ * <form [formGroup]="form">
368
+ * <tbw-grid [formArray]="form.controls.rows" [columns]="columns" />
369
+ * </form>
370
+ * ```
371
+ *
354
372
  * @category Directive
355
373
  */
356
374
  class GridFormArray {
@@ -911,6 +929,17 @@ function getToolPanelElements(gridElement) {
911
929
  * })
912
930
  * ```
913
931
  *
932
+ * @example
933
+ * ```html
934
+ * <tbw-grid [rows]="rows">
935
+ * <tbw-grid-tool-panel id="quick-filters" title="Quick Filters" icon="\uD83D\uDD0D">
936
+ * <ng-template let-grid>
937
+ * <app-quick-filters [grid]="grid" />
938
+ * </ng-template>
939
+ * </tbw-grid-tool-panel>
940
+ * </tbw-grid>
941
+ * ```
942
+ *
914
943
  * @category Directive
915
944
  */
916
945
  class GridToolPanel {
@@ -1040,6 +1069,13 @@ function getStructuralEditorTemplate(columnElement) {
1040
1069
  * })
1041
1070
  * ```
1042
1071
  *
1072
+ * @example
1073
+ * ```html
1074
+ * <tbw-grid-column field="status">
1075
+ * <app-status-badge *tbwRenderer="let value; row as row" [value]="value" />
1076
+ * </tbw-grid-column>
1077
+ * ```
1078
+ *
1043
1079
  * @category Directive
1044
1080
  */
1045
1081
  class TbwRenderer {
@@ -1129,6 +1165,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImpor
1129
1165
  * })
1130
1166
  * ```
1131
1167
  *
1168
+ * @example
1169
+ * ```html
1170
+ * <tbw-grid-column field="status" editable>
1171
+ * <app-status-editor *tbwEditor="let value" [value]="value" />
1172
+ * </tbw-grid-column>
1173
+ * ```
1174
+ *
1132
1175
  * @category Directive
1133
1176
  */
1134
1177
  class TbwEditor {
@@ -1741,14 +1784,9 @@ class GridAdapter {
1741
1784
  return undefined;
1742
1785
  }
1743
1786
  return (ctx) => {
1744
- // Create simple callback functions (preferred)
1787
+ // Create simple callback functions
1745
1788
  const onCommit = (value) => ctx.commit(value);
1746
1789
  const onCancel = () => ctx.cancel();
1747
- // Create EventEmitters for backwards compatibility (deprecated)
1748
- const commitEmitter = new EventEmitter();
1749
- const cancelEmitter = new EventEmitter();
1750
- commitEmitter.subscribe((value) => ctx.commit(value));
1751
- cancelEmitter.subscribe(() => ctx.cancel());
1752
1790
  // Try to get the FormControl from the FormArrayContext
1753
1791
  let control;
1754
1792
  if (gridElement) {
@@ -1772,16 +1810,12 @@ class GridAdapter {
1772
1810
  field: ctx.field,
1773
1811
  column: ctx.column,
1774
1812
  rowId: ctx.rowId ?? '',
1775
- // Preferred: simple callback functions
1776
1813
  onCommit,
1777
1814
  onCancel,
1778
1815
  updateRow: ctx.updateRow,
1779
1816
  onValueChange: ctx.onValueChange,
1780
1817
  // FormControl from FormArray (if available)
1781
1818
  control,
1782
- // Deprecated: EventEmitters (for backwards compatibility)
1783
- commit: commitEmitter,
1784
- cancel: cancelEmitter,
1785
1819
  };
1786
1820
  // Create embedded view from template
1787
1821
  const viewRef = this.viewContainerRef.createEmbeddedView(template, context);
@@ -2424,11 +2458,6 @@ class GridAdapter {
2424
2458
  this.editorComponentRefs = [];
2425
2459
  }
2426
2460
  }
2427
- /**
2428
- * @deprecated Use `GridAdapter` instead. This alias will be removed in v2.
2429
- * @see {@link GridAdapter}
2430
- */
2431
- const AngularGridAdapter = GridAdapter;
2432
2461
 
2433
2462
  /**
2434
2463
  * Icon configuration registry for Angular applications.
@@ -2672,92 +2701,6 @@ function injectGrid(selector = 'tbw-grid') {
2672
2701
  const unregisterStyles = (id) => {
2673
2702
  element()?.unregisterStyles?.(id);
2674
2703
  };
2675
- // ═══════════════════════════════════════════════════════════════════
2676
- // SELECTION CONVENIENCE METHODS
2677
- // ═══════════════════════════════════════════════════════════════════
2678
- const selectAll = () => {
2679
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2680
- const gridElement = element();
2681
- const plugin = gridElement?.getPluginByName?.('selection');
2682
- if (!plugin) {
2683
- console.warn('[injectGrid] selectAll requires SelectionPlugin');
2684
- return;
2685
- }
2686
- // Row mode: select all row indices
2687
- if (plugin.config?.mode === 'row') {
2688
- const rows = gridElement?.rows ?? [];
2689
- const allIndices = new Set(rows.map((_, i) => i));
2690
- plugin.selected = allIndices;
2691
- plugin.requestAfterRender?.();
2692
- }
2693
- };
2694
- const clearSelection = () => {
2695
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2696
- const gridElement = element();
2697
- const plugin = gridElement?.getPluginByName?.('selection');
2698
- if (!plugin)
2699
- return;
2700
- const mode = plugin.config?.mode;
2701
- if (mode === 'row') {
2702
- plugin.selected = new Set();
2703
- }
2704
- else if (mode === 'range' || mode === 'cell') {
2705
- plugin.ranges = [];
2706
- }
2707
- plugin.requestAfterRender?.();
2708
- };
2709
- const getSelectedIndices = () => {
2710
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2711
- const gridElement = element();
2712
- const plugin = gridElement?.getPluginByName?.('selection');
2713
- if (!plugin)
2714
- return new Set();
2715
- if (plugin.config?.mode === 'row') {
2716
- return new Set(plugin.selected ?? []);
2717
- }
2718
- // Range/cell mode: extract unique row indices from ranges
2719
- const ranges = plugin.ranges ?? [];
2720
- const indices = new Set();
2721
- for (const range of ranges) {
2722
- for (let r = range.startRow; r <= range.endRow; r++) {
2723
- indices.add(r);
2724
- }
2725
- }
2726
- return indices;
2727
- };
2728
- const getSelectedRows = () => {
2729
- const gridElement = element();
2730
- if (!gridElement)
2731
- return [];
2732
- const rows = gridElement.rows ?? [];
2733
- const indices = getSelectedIndices();
2734
- return Array.from(indices)
2735
- .filter((i) => i >= 0 && i < rows.length)
2736
- .map((i) => rows[i]);
2737
- };
2738
- // ═══════════════════════════════════════════════════════════════════
2739
- // EXPORT CONVENIENCE METHODS
2740
- // ═══════════════════════════════════════════════════════════════════
2741
- const exportToCsv = (filename) => {
2742
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2743
- const gridElement = element();
2744
- const plugin = gridElement?.getPluginByName?.('export');
2745
- if (!plugin) {
2746
- console.warn('[injectGrid] exportToCsv requires ExportPlugin');
2747
- return;
2748
- }
2749
- plugin.exportToCsv?.(filename);
2750
- };
2751
- const exportToJson = (filename) => {
2752
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2753
- const gridElement = element();
2754
- const plugin = gridElement?.getPluginByName?.('export');
2755
- if (!plugin) {
2756
- console.warn('[injectGrid] exportToJson requires ExportPlugin');
2757
- return;
2758
- }
2759
- plugin.exportToJson?.(filename);
2760
- };
2761
2704
  return {
2762
2705
  element,
2763
2706
  isReady,
@@ -2768,12 +2711,6 @@ function injectGrid(selector = 'tbw-grid') {
2768
2711
  toggleGroup,
2769
2712
  registerStyles,
2770
2713
  unregisterStyles,
2771
- selectAll,
2772
- clearSelection,
2773
- getSelectedIndices,
2774
- getSelectedRows,
2775
- exportToCsv,
2776
- exportToJson,
2777
2714
  };
2778
2715
  }
2779
2716
 
@@ -3474,6 +3411,31 @@ let anchorCounter = 0;
3474
3411
  * }
3475
3412
  * ```
3476
3413
  *
3414
+ * @example
3415
+ * ```typescript
3416
+ * @Component({
3417
+ * template: `
3418
+ * <input #inlineInput readonly [value]="currentValue()"
3419
+ * (click)="onInlineClick()" (keydown)="onInlineKeydown($event)" />
3420
+ * <div #panel style="width: 280px">
3421
+ * <!-- overlay content -->
3422
+ * </div>
3423
+ * `
3424
+ * })
3425
+ * export class MyEditor extends BaseOverlayEditor<MyRow, string> {
3426
+ * panelRef = viewChild.required<ElementRef<HTMLElement>>('panel');
3427
+ * inputRef = viewChild.required<ElementRef<HTMLInputElement>>('inlineInput');
3428
+ *
3429
+ * constructor() {
3430
+ * super();
3431
+ * effect(() => this.initOverlay(this.panelRef().nativeElement));
3432
+ * }
3433
+ *
3434
+ * protected getInlineInput() { return this.inputRef()?.nativeElement ?? null; }
3435
+ * protected onOverlayOutsideClick() { this.hideOverlay(); }
3436
+ * }
3437
+ * ```
3438
+ *
3477
3439
  * @typeParam TRow - The row data type
3478
3440
  * @typeParam TValue - The cell value type
3479
3441
  */
@@ -4038,6 +4000,11 @@ function getLazyFormContext(gridElement) {
4038
4000
  * | 500 | 10,000 controls | ~20 controls |
4039
4001
  * | 1000 | 20,000 controls | ~20 controls |
4040
4002
  *
4003
+ * @example
4004
+ * ```html
4005
+ * <tbw-grid [rows]="employees()" [lazyForm]="createRowForm" [gridConfig]="gridConfig" />
4006
+ * ```
4007
+ *
4041
4008
  * @see GridFormArray For small datasets with full upfront validation
4042
4009
  * @category Directive
4043
4010
  */
@@ -4521,15 +4488,8 @@ class Grid {
4521
4488
  // Effect to process gridConfig and apply to grid
4522
4489
  // This merges feature input plugins with the user's config plugins
4523
4490
  effect(() => {
4524
- const deprecatedAngularConfig = this.angularConfig();
4525
4491
  const userGridConfig = this.gridConfig();
4526
- // Emit deprecation warning if angularConfig is used
4527
- if (deprecatedAngularConfig && !userGridConfig) {
4528
- console.warn('[tbw-grid] The [angularConfig] input is deprecated. Use [gridConfig] instead. ' +
4529
- 'The gridConfig input now accepts GridConfig directly.');
4530
- }
4531
- // Use gridConfig preferentially, fall back to deprecated angularConfig
4532
- const angularCfg = userGridConfig ?? deprecatedAngularConfig;
4492
+ const angularCfg = userGridConfig;
4533
4493
  if (!this.adapter)
4534
4494
  return;
4535
4495
  // Create plugins from feature inputs
@@ -4808,22 +4768,6 @@ class Grid {
4808
4768
  */
4809
4769
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
4810
4770
  gridConfig = input(...(ngDevMode ? [undefined, { debugName: "gridConfig" }] : /* istanbul ignore next */ []));
4811
- /**
4812
- * @deprecated Use `gridConfig` instead. This input will be removed in v2.
4813
- *
4814
- * The `angularConfig` name was inconsistent with React and Vue adapters, which both use `gridConfig`.
4815
- * The `gridConfig` input now accepts `GridConfig` directly.
4816
- *
4817
- * ```html
4818
- * <!-- Before -->
4819
- * <tbw-grid [angularConfig]="config" />
4820
- *
4821
- * <!-- After -->
4822
- * <tbw-grid [gridConfig]="config" />
4823
- * ```
4824
- */
4825
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
4826
- angularConfig = input(...(ngDevMode ? [undefined, { debugName: "angularConfig" }] : /* istanbul ignore next */ []));
4827
4771
  // ═══════════════════════════════════════════════════════════════════════════
4828
4772
  // FEATURE INPUTS - Declarative plugin configuration
4829
4773
  // ═══════════════════════════════════════════════════════════════════════════
@@ -4921,17 +4865,6 @@ class Grid {
4921
4865
  * ```
4922
4866
  */
4923
4867
  multiSort = input(...(ngDevMode ? [undefined, { debugName: "multiSort" }] : /* istanbul ignore next */ []));
4924
- /**
4925
- * @deprecated Use `[multiSort]` instead. Will be removed in v2.
4926
- *
4927
- * Enable column sorting. This is an alias for `[multiSort]`.
4928
- *
4929
- * **Requires feature import:**
4930
- * ```typescript
4931
- * import '@toolbox-web/grid-angular/features/multi-sort';
4932
- * ```
4933
- */
4934
- sorting = input(...(ngDevMode ? [undefined, { debugName: "sorting" }] : /* istanbul ignore next */ []));
4935
4868
  /**
4936
4869
  * Enable column filtering.
4937
4870
  *
@@ -4962,10 +4895,6 @@ class Grid {
4962
4895
  * ```
4963
4896
  */
4964
4897
  reorderColumns = input(...(ngDevMode ? [undefined, { debugName: "reorderColumns" }] : /* istanbul ignore next */ []));
4965
- /**
4966
- * @deprecated Use `reorderColumns` instead. Will be removed in v2.
4967
- */
4968
- reorder = input(...(ngDevMode ? [undefined, { debugName: "reorder" }] : /* istanbul ignore next */ []));
4969
4898
  /**
4970
4899
  * Enable column visibility toggle panel.
4971
4900
  *
@@ -5041,10 +4970,6 @@ class Grid {
5041
4970
  * ```
5042
4971
  */
5043
4972
  reorderRows = input(...(ngDevMode ? [undefined, { debugName: "reorderRows" }] : /* istanbul ignore next */ []));
5044
- /**
5045
- * @deprecated Use `reorderRows` instead. Will be removed in v2.0.
5046
- */
5047
- rowReorder = input(...(ngDevMode ? [undefined, { debugName: "rowReorder" }] : /* istanbul ignore next */ []));
5048
4973
  /**
5049
4974
  * Enable row grouping by field values.
5050
4975
  *
@@ -5518,10 +5443,10 @@ class Grid {
5518
5443
  addPlugin('editing', this.editing());
5519
5444
  addPlugin('clipboard', this.clipboard());
5520
5445
  addPlugin('contextMenu', this.contextMenu());
5521
- // multiSort is the primary input; sorting is a deprecated alias
5522
- addPlugin('multiSort', this.multiSort() ?? this.sorting());
5446
+ // multiSort is the primary input
5447
+ addPlugin('multiSort', this.multiSort());
5523
5448
  addPlugin('filtering', this.filtering());
5524
- addPlugin('reorderColumns', this.reorderColumns() ?? this.reorder());
5449
+ addPlugin('reorderColumns', this.reorderColumns());
5525
5450
  addPlugin('visibility', this.visibility());
5526
5451
  addPlugin('pinnedColumns', this.pinnedColumns());
5527
5452
  // Pre-process groupingColumns config to bridge Angular component classes
@@ -5533,7 +5458,7 @@ class Grid {
5533
5458
  addPlugin('groupingColumns', gcConfig);
5534
5459
  }
5535
5460
  addPlugin('columnVirtualization', this.columnVirtualization());
5536
- addPlugin('reorderRows', this.reorderRows() ?? this.rowReorder());
5461
+ addPlugin('reorderRows', this.reorderRows());
5537
5462
  // Pre-process groupingRows config to bridge Angular component classes
5538
5463
  const grConfig = this.groupingRows();
5539
5464
  if (grConfig && typeof grConfig === 'object' && this.adapter) {
@@ -5695,12 +5620,12 @@ class Grid {
5695
5620
  }
5696
5621
  }
5697
5622
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: Grid, deps: [], target: i0.ɵɵFactoryTarget.Directive });
5698
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.5", type: Grid, isStandalone: true, selector: "tbw-grid", inputs: { customStyles: { classPropertyName: "customStyles", publicName: "customStyles", isSignal: true, isRequired: false, transformFunction: null }, sortable: { classPropertyName: "sortable", publicName: "sortable", isSignal: true, isRequired: false, transformFunction: null }, filterable: { classPropertyName: "filterable", publicName: "filterable", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, fitMode: { classPropertyName: "fitMode", publicName: "fitMode", isSignal: true, isRequired: false, transformFunction: null }, gridConfig: { classPropertyName: "gridConfig", publicName: "gridConfig", isSignal: true, isRequired: false, transformFunction: null }, angularConfig: { classPropertyName: "angularConfig", publicName: "angularConfig", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, editing: { classPropertyName: "editing", publicName: "editing", isSignal: true, isRequired: false, transformFunction: null }, clipboard: { classPropertyName: "clipboard", publicName: "clipboard", isSignal: true, isRequired: false, transformFunction: null }, contextMenu: { classPropertyName: "contextMenu", publicName: "contextMenu", isSignal: true, isRequired: false, transformFunction: null }, multiSort: { classPropertyName: "multiSort", publicName: "multiSort", isSignal: true, isRequired: false, transformFunction: null }, sorting: { classPropertyName: "sorting", publicName: "sorting", isSignal: true, isRequired: false, transformFunction: null }, filtering: { classPropertyName: "filtering", publicName: "filtering", isSignal: true, isRequired: false, transformFunction: null }, reorderColumns: { classPropertyName: "reorderColumns", publicName: "reorderColumns", isSignal: true, isRequired: false, transformFunction: null }, reorder: { classPropertyName: "reorder", publicName: "reorder", isSignal: true, isRequired: false, transformFunction: null }, visibility: { classPropertyName: "visibility", publicName: "visibility", isSignal: true, isRequired: false, transformFunction: null }, pinnedColumns: { classPropertyName: "pinnedColumns", publicName: "pinnedColumns", isSignal: true, isRequired: false, transformFunction: null }, groupingColumns: { classPropertyName: "groupingColumns", publicName: "groupingColumns", isSignal: true, isRequired: false, transformFunction: null }, columnVirtualization: { classPropertyName: "columnVirtualization", publicName: "columnVirtualization", isSignal: true, isRequired: false, transformFunction: null }, reorderRows: { classPropertyName: "reorderRows", publicName: "reorderRows", isSignal: true, isRequired: false, transformFunction: null }, rowReorder: { classPropertyName: "rowReorder", publicName: "rowReorder", isSignal: true, isRequired: false, transformFunction: null }, groupingRows: { classPropertyName: "groupingRows", publicName: "groupingRows", isSignal: true, isRequired: false, transformFunction: null }, pinnedRows: { classPropertyName: "pinnedRows", publicName: "pinnedRows", isSignal: true, isRequired: false, transformFunction: null }, tree: { classPropertyName: "tree", publicName: "tree", isSignal: true, isRequired: false, transformFunction: null }, masterDetail: { classPropertyName: "masterDetail", publicName: "masterDetail", isSignal: true, isRequired: false, transformFunction: null }, responsive: { classPropertyName: "responsive", publicName: "responsive", isSignal: true, isRequired: false, transformFunction: null }, undoRedo: { classPropertyName: "undoRedo", publicName: "undoRedo", isSignal: true, isRequired: false, transformFunction: null }, exportFeature: { classPropertyName: "exportFeature", publicName: "export", isSignal: true, isRequired: false, transformFunction: null }, print: { classPropertyName: "print", publicName: "print", isSignal: true, isRequired: false, transformFunction: null }, pivot: { classPropertyName: "pivot", publicName: "pivot", isSignal: true, isRequired: false, transformFunction: null }, serverSide: { classPropertyName: "serverSide", publicName: "serverSide", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { cellClick: "cellClick", rowClick: "rowClick", cellActivate: "cellActivate", cellChange: "cellChange", cellCommit: "cellCommit", rowCommit: "rowCommit", changedRowsReset: "changedRowsReset", sortChange: "sortChange", filterChange: "filterChange", columnResize: "columnResize", columnMove: "columnMove", columnVisibility: "columnVisibility", columnStateChange: "columnStateChange", selectionChange: "selectionChange", rowMove: "rowMove", groupToggle: "groupToggle", treeExpand: "treeExpand", detailExpand: "detailExpand", responsiveChange: "responsiveChange", copy: "copy", paste: "paste", undoRedoAction: "undoRedoAction", exportComplete: "exportComplete", printStart: "printStart", printComplete: "printComplete" }, ngImport: i0 });
5623
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.5", type: Grid, isStandalone: true, selector: "tbw-grid", inputs: { customStyles: { classPropertyName: "customStyles", publicName: "customStyles", isSignal: true, isRequired: false, transformFunction: null }, sortable: { classPropertyName: "sortable", publicName: "sortable", isSignal: true, isRequired: false, transformFunction: null }, filterable: { classPropertyName: "filterable", publicName: "filterable", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, fitMode: { classPropertyName: "fitMode", publicName: "fitMode", isSignal: true, isRequired: false, transformFunction: null }, gridConfig: { classPropertyName: "gridConfig", publicName: "gridConfig", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, editing: { classPropertyName: "editing", publicName: "editing", isSignal: true, isRequired: false, transformFunction: null }, clipboard: { classPropertyName: "clipboard", publicName: "clipboard", isSignal: true, isRequired: false, transformFunction: null }, contextMenu: { classPropertyName: "contextMenu", publicName: "contextMenu", isSignal: true, isRequired: false, transformFunction: null }, multiSort: { classPropertyName: "multiSort", publicName: "multiSort", isSignal: true, isRequired: false, transformFunction: null }, filtering: { classPropertyName: "filtering", publicName: "filtering", isSignal: true, isRequired: false, transformFunction: null }, reorderColumns: { classPropertyName: "reorderColumns", publicName: "reorderColumns", isSignal: true, isRequired: false, transformFunction: null }, visibility: { classPropertyName: "visibility", publicName: "visibility", isSignal: true, isRequired: false, transformFunction: null }, pinnedColumns: { classPropertyName: "pinnedColumns", publicName: "pinnedColumns", isSignal: true, isRequired: false, transformFunction: null }, groupingColumns: { classPropertyName: "groupingColumns", publicName: "groupingColumns", isSignal: true, isRequired: false, transformFunction: null }, columnVirtualization: { classPropertyName: "columnVirtualization", publicName: "columnVirtualization", isSignal: true, isRequired: false, transformFunction: null }, reorderRows: { classPropertyName: "reorderRows", publicName: "reorderRows", isSignal: true, isRequired: false, transformFunction: null }, groupingRows: { classPropertyName: "groupingRows", publicName: "groupingRows", isSignal: true, isRequired: false, transformFunction: null }, pinnedRows: { classPropertyName: "pinnedRows", publicName: "pinnedRows", isSignal: true, isRequired: false, transformFunction: null }, tree: { classPropertyName: "tree", publicName: "tree", isSignal: true, isRequired: false, transformFunction: null }, masterDetail: { classPropertyName: "masterDetail", publicName: "masterDetail", isSignal: true, isRequired: false, transformFunction: null }, responsive: { classPropertyName: "responsive", publicName: "responsive", isSignal: true, isRequired: false, transformFunction: null }, undoRedo: { classPropertyName: "undoRedo", publicName: "undoRedo", isSignal: true, isRequired: false, transformFunction: null }, exportFeature: { classPropertyName: "exportFeature", publicName: "export", isSignal: true, isRequired: false, transformFunction: null }, print: { classPropertyName: "print", publicName: "print", isSignal: true, isRequired: false, transformFunction: null }, pivot: { classPropertyName: "pivot", publicName: "pivot", isSignal: true, isRequired: false, transformFunction: null }, serverSide: { classPropertyName: "serverSide", publicName: "serverSide", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { cellClick: "cellClick", rowClick: "rowClick", cellActivate: "cellActivate", cellChange: "cellChange", cellCommit: "cellCommit", rowCommit: "rowCommit", changedRowsReset: "changedRowsReset", sortChange: "sortChange", filterChange: "filterChange", columnResize: "columnResize", columnMove: "columnMove", columnVisibility: "columnVisibility", columnStateChange: "columnStateChange", selectionChange: "selectionChange", rowMove: "rowMove", groupToggle: "groupToggle", treeExpand: "treeExpand", detailExpand: "detailExpand", responsiveChange: "responsiveChange", copy: "copy", paste: "paste", undoRedoAction: "undoRedoAction", exportComplete: "exportComplete", printStart: "printStart", printComplete: "printComplete" }, ngImport: i0 });
5699
5624
  }
5700
5625
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: Grid, decorators: [{
5701
5626
  type: Directive,
5702
5627
  args: [{ selector: 'tbw-grid' }]
5703
- }], ctorParameters: () => [], propDecorators: { customStyles: [{ type: i0.Input, args: [{ isSignal: true, alias: "customStyles", required: false }] }], sortable: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortable", required: false }] }], filterable: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterable", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], fitMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "fitMode", required: false }] }], gridConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "gridConfig", required: false }] }], angularConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "angularConfig", required: false }] }], selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }], editing: [{ type: i0.Input, args: [{ isSignal: true, alias: "editing", required: false }] }], clipboard: [{ type: i0.Input, args: [{ isSignal: true, alias: "clipboard", required: false }] }], contextMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextMenu", required: false }] }], multiSort: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiSort", required: false }] }], sorting: [{ type: i0.Input, args: [{ isSignal: true, alias: "sorting", required: false }] }], filtering: [{ type: i0.Input, args: [{ isSignal: true, alias: "filtering", required: false }] }], reorderColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "reorderColumns", required: false }] }], reorder: [{ type: i0.Input, args: [{ isSignal: true, alias: "reorder", required: false }] }], visibility: [{ type: i0.Input, args: [{ isSignal: true, alias: "visibility", required: false }] }], pinnedColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "pinnedColumns", required: false }] }], groupingColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupingColumns", required: false }] }], columnVirtualization: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnVirtualization", required: false }] }], reorderRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "reorderRows", required: false }] }], rowReorder: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowReorder", required: false }] }], groupingRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupingRows", required: false }] }], pinnedRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "pinnedRows", required: false }] }], tree: [{ type: i0.Input, args: [{ isSignal: true, alias: "tree", required: false }] }], masterDetail: [{ type: i0.Input, args: [{ isSignal: true, alias: "masterDetail", required: false }] }], responsive: [{ type: i0.Input, args: [{ isSignal: true, alias: "responsive", required: false }] }], undoRedo: [{ type: i0.Input, args: [{ isSignal: true, alias: "undoRedo", required: false }] }], exportFeature: [{ type: i0.Input, args: [{ isSignal: true, alias: "export", required: false }] }], print: [{ type: i0.Input, args: [{ isSignal: true, alias: "print", required: false }] }], pivot: [{ type: i0.Input, args: [{ isSignal: true, alias: "pivot", required: false }] }], serverSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "serverSide", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], cellClick: [{ type: i0.Output, args: ["cellClick"] }], rowClick: [{ type: i0.Output, args: ["rowClick"] }], cellActivate: [{ type: i0.Output, args: ["cellActivate"] }], cellChange: [{ type: i0.Output, args: ["cellChange"] }], cellCommit: [{ type: i0.Output, args: ["cellCommit"] }], rowCommit: [{ type: i0.Output, args: ["rowCommit"] }], changedRowsReset: [{ type: i0.Output, args: ["changedRowsReset"] }], sortChange: [{ type: i0.Output, args: ["sortChange"] }], filterChange: [{ type: i0.Output, args: ["filterChange"] }], columnResize: [{ type: i0.Output, args: ["columnResize"] }], columnMove: [{ type: i0.Output, args: ["columnMove"] }], columnVisibility: [{ type: i0.Output, args: ["columnVisibility"] }], columnStateChange: [{ type: i0.Output, args: ["columnStateChange"] }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }], rowMove: [{ type: i0.Output, args: ["rowMove"] }], groupToggle: [{ type: i0.Output, args: ["groupToggle"] }], treeExpand: [{ type: i0.Output, args: ["treeExpand"] }], detailExpand: [{ type: i0.Output, args: ["detailExpand"] }], responsiveChange: [{ type: i0.Output, args: ["responsiveChange"] }], copy: [{ type: i0.Output, args: ["copy"] }], paste: [{ type: i0.Output, args: ["paste"] }], undoRedoAction: [{ type: i0.Output, args: ["undoRedoAction"] }], exportComplete: [{ type: i0.Output, args: ["exportComplete"] }], printStart: [{ type: i0.Output, args: ["printStart"] }], printComplete: [{ type: i0.Output, args: ["printComplete"] }] } });
5628
+ }], ctorParameters: () => [], propDecorators: { customStyles: [{ type: i0.Input, args: [{ isSignal: true, alias: "customStyles", required: false }] }], sortable: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortable", required: false }] }], filterable: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterable", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], fitMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "fitMode", required: false }] }], gridConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "gridConfig", required: false }] }], selection: [{ type: i0.Input, args: [{ isSignal: true, alias: "selection", required: false }] }], editing: [{ type: i0.Input, args: [{ isSignal: true, alias: "editing", required: false }] }], clipboard: [{ type: i0.Input, args: [{ isSignal: true, alias: "clipboard", required: false }] }], contextMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextMenu", required: false }] }], multiSort: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiSort", required: false }] }], filtering: [{ type: i0.Input, args: [{ isSignal: true, alias: "filtering", required: false }] }], reorderColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "reorderColumns", required: false }] }], visibility: [{ type: i0.Input, args: [{ isSignal: true, alias: "visibility", required: false }] }], pinnedColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "pinnedColumns", required: false }] }], groupingColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupingColumns", required: false }] }], columnVirtualization: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnVirtualization", required: false }] }], reorderRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "reorderRows", required: false }] }], groupingRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupingRows", required: false }] }], pinnedRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "pinnedRows", required: false }] }], tree: [{ type: i0.Input, args: [{ isSignal: true, alias: "tree", required: false }] }], masterDetail: [{ type: i0.Input, args: [{ isSignal: true, alias: "masterDetail", required: false }] }], responsive: [{ type: i0.Input, args: [{ isSignal: true, alias: "responsive", required: false }] }], undoRedo: [{ type: i0.Input, args: [{ isSignal: true, alias: "undoRedo", required: false }] }], exportFeature: [{ type: i0.Input, args: [{ isSignal: true, alias: "export", required: false }] }], print: [{ type: i0.Input, args: [{ isSignal: true, alias: "print", required: false }] }], pivot: [{ type: i0.Input, args: [{ isSignal: true, alias: "pivot", required: false }] }], serverSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "serverSide", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], cellClick: [{ type: i0.Output, args: ["cellClick"] }], rowClick: [{ type: i0.Output, args: ["rowClick"] }], cellActivate: [{ type: i0.Output, args: ["cellActivate"] }], cellChange: [{ type: i0.Output, args: ["cellChange"] }], cellCommit: [{ type: i0.Output, args: ["cellCommit"] }], rowCommit: [{ type: i0.Output, args: ["rowCommit"] }], changedRowsReset: [{ type: i0.Output, args: ["changedRowsReset"] }], sortChange: [{ type: i0.Output, args: ["sortChange"] }], filterChange: [{ type: i0.Output, args: ["filterChange"] }], columnResize: [{ type: i0.Output, args: ["columnResize"] }], columnMove: [{ type: i0.Output, args: ["columnMove"] }], columnVisibility: [{ type: i0.Output, args: ["columnVisibility"] }], columnStateChange: [{ type: i0.Output, args: ["columnStateChange"] }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }], rowMove: [{ type: i0.Output, args: ["rowMove"] }], groupToggle: [{ type: i0.Output, args: ["groupToggle"] }], treeExpand: [{ type: i0.Output, args: ["treeExpand"] }], detailExpand: [{ type: i0.Output, args: ["detailExpand"] }], responsiveChange: [{ type: i0.Output, args: ["responsiveChange"] }], copy: [{ type: i0.Output, args: ["copy"] }], paste: [{ type: i0.Output, args: ["paste"] }], undoRedoAction: [{ type: i0.Output, args: ["undoRedoAction"] }], exportComplete: [{ type: i0.Output, args: ["exportComplete"] }], printStart: [{ type: i0.Output, args: ["printStart"] }], printComplete: [{ type: i0.Output, args: ["printComplete"] }] } });
5704
5629
 
5705
5630
  /**
5706
5631
  * @packageDocumentation
@@ -5708,11 +5633,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImpor
5708
5633
  *
5709
5634
  * Provides directives for seamless Angular integration with the grid component.
5710
5635
  */
5711
- // Primary export - use this
5636
+ // Primary export
5712
5637
 
5713
5638
  /**
5714
5639
  * Generated bundle index. Do not edit.
5715
5640
  */
5716
5641
 
5717
- export { AngularGridAdapter, BaseFilterPanel, BaseGridEditor, BaseGridEditorCVA, BaseOverlayEditor, GRID_ICONS, GRID_TYPE_DEFAULTS, Grid, GridAdapter, GridColumnEditor, GridColumnView, GridDetailView, GridFormArray, GridIconRegistry, GridLazyForm, GridResponsiveCard, GridToolPanel, GridTypeRegistry, TbwEditor as TbwCellEditor, TbwRenderer as TbwCellView, TbwEditor, TbwGridColumn, TbwGridHeader, TbwGridToolButtons, TbwRenderer, getFormArrayContext, getLazyFormContext, injectGrid, isComponentClass, provideGridIcons, provideGridTypeDefaults };
5642
+ export { BaseFilterPanel, BaseGridEditor, BaseGridEditorCVA, BaseOverlayEditor, GRID_ICONS, GRID_TYPE_DEFAULTS, Grid, GridAdapter, GridColumnEditor, GridColumnView, GridDetailView, GridFormArray, GridIconRegistry, GridLazyForm, GridResponsiveCard, GridToolPanel, GridTypeRegistry, TbwEditor, TbwGridColumn, TbwGridHeader, TbwGridToolButtons, TbwRenderer, getFormArrayContext, getLazyFormContext, injectGrid, isComponentClass, provideGridIcons, provideGridTypeDefaults };
5718
5643
  //# sourceMappingURL=toolbox-web-grid-angular.mjs.map