@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.
- package/README.md +28 -27
- package/fesm2022/toolbox-web-grid-angular-features-print.mjs.map +1 -1
- package/fesm2022/toolbox-web-grid-angular-features-selection.mjs +2 -1
- package/fesm2022/toolbox-web-grid-angular-features-selection.mjs.map +1 -1
- package/fesm2022/toolbox-web-grid-angular-features-undo-redo.mjs.map +1 -1
- package/fesm2022/toolbox-web-grid-angular.mjs +84 -159
- package/fesm2022/toolbox-web-grid-angular.mjs.map +1 -1
- package/package.json +2 -14
- package/types/toolbox-web-grid-angular.d.ts +80 -166
- package/types/toolbox-web-grid-angular.d.ts.map +1 -1
- package/fesm2022/toolbox-web-grid-angular-features-reorder.mjs +0 -11
- package/fesm2022/toolbox-web-grid-angular-features-reorder.mjs.map +0 -1
- package/fesm2022/toolbox-web-grid-angular-features-row-reorder.mjs +0 -11
- package/fesm2022/toolbox-web-grid-angular-features-row-reorder.mjs.map +0 -1
- package/fesm2022/toolbox-web-grid-angular-features-sorting.mjs +0 -25
- package/fesm2022/toolbox-web-grid-angular-features-sorting.mjs.map +0 -1
- package/types/toolbox-web-grid-angular-features-reorder.d.ts +0 -3
- package/types/toolbox-web-grid-angular-features-reorder.d.ts.map +0 -1
- package/types/toolbox-web-grid-angular-features-row-reorder.d.ts +0 -3
- package/types/toolbox-web-grid-angular-features-row-reorder.d.ts.map +0 -1
- package/types/toolbox-web-grid-angular-features-sorting.d.ts +0 -3
- package/types/toolbox-web-grid-angular-features-sorting.d.ts.map +0 -1
|
@@ -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,
|
|
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
|
|
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
|
-
|
|
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
|
|
5522
|
-
addPlugin('multiSort', this.multiSort()
|
|
5446
|
+
// multiSort is the primary input
|
|
5447
|
+
addPlugin('multiSort', this.multiSort());
|
|
5523
5448
|
addPlugin('filtering', this.filtering());
|
|
5524
|
-
addPlugin('reorderColumns', this.reorderColumns()
|
|
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()
|
|
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 },
|
|
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 }] }],
|
|
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
|
|
5636
|
+
// Primary export
|
|
5712
5637
|
|
|
5713
5638
|
/**
|
|
5714
5639
|
* Generated bundle index. Do not edit.
|
|
5715
5640
|
*/
|
|
5716
5641
|
|
|
5717
|
-
export {
|
|
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
|