@toolbox-web/grid-angular 1.5.1 → 1.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.
- package/README.md +12 -10
- package/fesm2022/toolbox-web-grid-angular-features-grouping-columns.mjs.map +1 -1
- package/fesm2022/toolbox-web-grid-angular-features-grouping-rows.mjs.map +1 -1
- package/fesm2022/toolbox-web-grid-angular-features-pinned-rows.mjs +51 -10
- package/fesm2022/toolbox-web-grid-angular-features-pinned-rows.mjs.map +1 -1
- package/fesm2022/toolbox-web-grid-angular-features-reorder-rows.mjs +8 -0
- package/fesm2022/toolbox-web-grid-angular-features-reorder-rows.mjs.map +1 -1
- package/fesm2022/toolbox-web-grid-angular-features-sticky-rows.mjs +58 -0
- package/fesm2022/toolbox-web-grid-angular-features-sticky-rows.mjs.map +1 -0
- package/fesm2022/toolbox-web-grid-angular.mjs +336 -11
- package/fesm2022/toolbox-web-grid-angular.mjs.map +1 -1
- package/package.json +5 -1
- package/types/toolbox-web-grid-angular-features-grouping-columns.d.ts +26 -3
- package/types/toolbox-web-grid-angular-features-grouping-columns.d.ts.map +1 -1
- package/types/toolbox-web-grid-angular-features-grouping-rows.d.ts +15 -2
- package/types/toolbox-web-grid-angular-features-grouping-rows.d.ts.map +1 -1
- package/types/toolbox-web-grid-angular-features-reorder-rows.d.ts +4 -0
- package/types/toolbox-web-grid-angular-features-reorder-rows.d.ts.map +1 -1
- package/types/toolbox-web-grid-angular-features-sticky-rows.d.ts +22 -0
- package/types/toolbox-web-grid-angular-features-sticky-rows.d.ts.map +1 -0
- package/types/toolbox-web-grid-angular.d.ts +154 -7
- package/types/toolbox-web-grid-angular.d.ts.map +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, contentChild, TemplateRef, effect, Directive, DestroyRef, input, InjectionToken, Injectable, makeEnvironmentProviders, createComponent, signal, afterNextRender, computed, output, EnvironmentInjector, ApplicationRef
|
|
2
|
+
import { inject, ElementRef, contentChild, TemplateRef, effect, Directive, DestroyRef, input, InjectionToken, Injectable, makeEnvironmentProviders, createComponent, signal, afterNextRender, computed, output, ViewContainerRef, EnvironmentInjector, ApplicationRef } 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';
|
|
@@ -1849,7 +1849,7 @@ class GridAdapter {
|
|
|
1849
1849
|
createEditor(element) {
|
|
1850
1850
|
const template = getAnyEditorTemplate(element);
|
|
1851
1851
|
// Find the parent grid element for FormArray context access
|
|
1852
|
-
const gridElement = element.closest('tbw-grid');
|
|
1852
|
+
const gridElement = element.closest('tbw-grid, [data-tbw-grid]');
|
|
1853
1853
|
if (!template) {
|
|
1854
1854
|
// No template registered - return undefined to let the grid use its default editor.
|
|
1855
1855
|
// This allows columns with only *tbwRenderer (no *tbwEditor) to still be editable
|
|
@@ -1940,7 +1940,7 @@ class GridAdapter {
|
|
|
1940
1940
|
* to {@link createDetailRenderer} (bridge installed by master-detail feature).
|
|
1941
1941
|
*/
|
|
1942
1942
|
parseDetailElement(detailElement) {
|
|
1943
|
-
const gridElement = detailElement.closest('tbw-grid');
|
|
1943
|
+
const gridElement = detailElement.closest('tbw-grid, [data-tbw-grid]');
|
|
1944
1944
|
if (!gridElement)
|
|
1945
1945
|
return undefined;
|
|
1946
1946
|
return getDetailRendererBridge()?.(gridElement, this);
|
|
@@ -1957,7 +1957,7 @@ class GridAdapter {
|
|
|
1957
1957
|
* to {@link createResponsiveCardRenderer} (bridge installed by responsive feature).
|
|
1958
1958
|
*/
|
|
1959
1959
|
parseResponsiveCardElement(cardElement) {
|
|
1960
|
-
const gridElement = cardElement.closest('tbw-grid');
|
|
1960
|
+
const gridElement = cardElement.closest('tbw-grid, [data-tbw-grid]');
|
|
1961
1961
|
if (!gridElement)
|
|
1962
1962
|
return undefined;
|
|
1963
1963
|
return getResponsiveCardRendererBridge()?.(gridElement, this);
|
|
@@ -1972,7 +1972,7 @@ class GridAdapter {
|
|
|
1972
1972
|
return undefined;
|
|
1973
1973
|
}
|
|
1974
1974
|
// Find the parent grid element for context
|
|
1975
|
-
const gridElement = element.closest('tbw-grid');
|
|
1975
|
+
const gridElement = element.closest('tbw-grid, [data-tbw-grid]');
|
|
1976
1976
|
return (container) => {
|
|
1977
1977
|
// Create the context for the template
|
|
1978
1978
|
const context = {
|
|
@@ -2376,7 +2376,7 @@ class GridAdapter {
|
|
|
2376
2376
|
*/
|
|
2377
2377
|
runEditorMountHooks(host) {
|
|
2378
2378
|
queueMicrotask(() => {
|
|
2379
|
-
const gridEl = host.closest('tbw-grid');
|
|
2379
|
+
const gridEl = host.closest('tbw-grid, [data-tbw-grid]');
|
|
2380
2380
|
if (!gridEl)
|
|
2381
2381
|
return;
|
|
2382
2382
|
this.editorMountTeardowns.set(host, notifyEditorMounted(host, gridEl));
|
|
@@ -2666,6 +2666,20 @@ function injectGrid(selector = 'tbw-grid') {
|
|
|
2666
2666
|
};
|
|
2667
2667
|
}
|
|
2668
2668
|
|
|
2669
|
+
// @internal Types-only barrel: pulls core feature modules onto ng-packagr's type
|
|
2670
|
+
// graph so FeatureConfig augmentations merge before emit. See
|
|
2671
|
+
// .github/knowledge/adapters-angular.md ("FeatureName derivation"). Use `//` not
|
|
2672
|
+
// `/** */` — terser preserves JSDoc in the fesm bundle (~1.5 KiB cost).
|
|
2673
|
+
//
|
|
2674
|
+
// Each line re-exports the core feature's `_Augmentation` anchor type under a
|
|
2675
|
+
// unique local name. This is functionally equivalent to
|
|
2676
|
+
// `import type {} from '@toolbox-web/grid/features/<name>'` but survives
|
|
2677
|
+
// Prettier / organize-imports, which strip empty-brace imports as unused.
|
|
2678
|
+
// The re-exports are type-only (zero runtime cost) and stay internal because
|
|
2679
|
+
// `feature-registry.ts` consumes this file with a bare side-effect import
|
|
2680
|
+
// (`import './internal/feature-augmentations'`), not a re-export.
|
|
2681
|
+
// Append a new line whenever a core feature is added.
|
|
2682
|
+
|
|
2669
2683
|
/**
|
|
2670
2684
|
* Feature Registry for @toolbox-web/grid-angular
|
|
2671
2685
|
*
|
|
@@ -2956,7 +2970,7 @@ class BaseGridEditor {
|
|
|
2956
2970
|
});
|
|
2957
2971
|
}
|
|
2958
2972
|
_initEditCloseListener() {
|
|
2959
|
-
const grid = this.elementRef.nativeElement.closest('tbw-grid');
|
|
2973
|
+
const grid = this.elementRef.nativeElement.closest('tbw-grid, [data-tbw-grid]');
|
|
2960
2974
|
if (!grid)
|
|
2961
2975
|
return;
|
|
2962
2976
|
let unsubBefore;
|
|
@@ -3687,7 +3701,7 @@ class BaseOverlayEditor extends BaseGridEditor {
|
|
|
3687
3701
|
}
|
|
3688
3702
|
/** Find the parent `<tbw-grid>` element for this editor. */
|
|
3689
3703
|
_getGridElement() {
|
|
3690
|
-
return this._elementRef.nativeElement.closest('tbw-grid') ?? null;
|
|
3704
|
+
return this._elementRef.nativeElement.closest('tbw-grid, [data-tbw-grid]') ?? null;
|
|
3691
3705
|
}
|
|
3692
3706
|
/**
|
|
3693
3707
|
* JS fallback positioning for browsers without CSS Anchor Positioning.
|
|
@@ -3999,6 +4013,155 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImpor
|
|
|
3999
4013
|
args: [{ selector: 'tbw-grid-detail' }]
|
|
4000
4014
|
}], propDecorators: { showExpandColumn: [{ type: i0.Input, args: [{ isSignal: true, alias: "showExpandColumn", required: false }] }], animation: [{ type: i0.Input, args: [{ isSignal: true, alias: "animation", required: false }] }], template: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
|
|
4001
4015
|
|
|
4016
|
+
let autoIdCounter$1 = 0;
|
|
4017
|
+
/**
|
|
4018
|
+
* Declarative wrapper around the grid's imperative
|
|
4019
|
+
* {@link DataGridElement.registerHeaderContent} API.
|
|
4020
|
+
*
|
|
4021
|
+
* Captures an `<ng-template>` and mounts it as an Angular embedded view into
|
|
4022
|
+
* the slot the grid provides for header content. Must be a child of
|
|
4023
|
+
* `<tbw-grid>`.
|
|
4024
|
+
*
|
|
4025
|
+
* ## Usage
|
|
4026
|
+
*
|
|
4027
|
+
* ```html
|
|
4028
|
+
* <tbw-grid [rows]="rows" [gridConfig]="config">
|
|
4029
|
+
* <tbw-grid-header-content id="calendar-nav" [order]="0">
|
|
4030
|
+
* <ng-template let-grid>
|
|
4031
|
+
* <app-header-nav [year]="year()" (yearChange)="setYear($event)" />
|
|
4032
|
+
* </ng-template>
|
|
4033
|
+
* </tbw-grid-header-content>
|
|
4034
|
+
* </tbw-grid>
|
|
4035
|
+
* ```
|
|
4036
|
+
*
|
|
4037
|
+
* @category Directive
|
|
4038
|
+
* @since 1.7.0
|
|
4039
|
+
*/
|
|
4040
|
+
class GridHeaderContent {
|
|
4041
|
+
elementRef = inject((ElementRef));
|
|
4042
|
+
viewContainerRef = inject(ViewContainerRef);
|
|
4043
|
+
destroyRef = inject(DestroyRef);
|
|
4044
|
+
/** Unique identifier for this header content entry. Optional — defaults to a stable generated id. */
|
|
4045
|
+
id = input(undefined, ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
4046
|
+
/** Render order priority. Lower values appear first. @default 100 */
|
|
4047
|
+
order = input(100, ...(ngDevMode ? [{ debugName: "order" }] : /* istanbul ignore next */ []));
|
|
4048
|
+
/** The template to mount into the grid's header content slot. */
|
|
4049
|
+
template = contentChild((TemplateRef), ...(ngDevMode ? [{ debugName: "template" }] : /* istanbul ignore next */ []));
|
|
4050
|
+
viewRef = null;
|
|
4051
|
+
registeredId = null;
|
|
4052
|
+
resolvedId = `tbw-header-content-${++autoIdCounter$1}`;
|
|
4053
|
+
destroyed = false;
|
|
4054
|
+
constructor() {
|
|
4055
|
+
afterNextRender(() => {
|
|
4056
|
+
void this.register();
|
|
4057
|
+
});
|
|
4058
|
+
this.destroyRef.onDestroy(() => {
|
|
4059
|
+
this.destroyed = true;
|
|
4060
|
+
this.unregister();
|
|
4061
|
+
});
|
|
4062
|
+
// Re-register when id or order changes after mount.
|
|
4063
|
+
effect(() => {
|
|
4064
|
+
const nextId = this.id() ?? this.resolvedId;
|
|
4065
|
+
const nextOrder = this.order();
|
|
4066
|
+
if (this.registeredId && this.registeredId !== nextId) {
|
|
4067
|
+
this.unregister();
|
|
4068
|
+
void this.register();
|
|
4069
|
+
return;
|
|
4070
|
+
}
|
|
4071
|
+
if (this.registeredId && nextOrder !== this.lastOrder) {
|
|
4072
|
+
this.unregister();
|
|
4073
|
+
void this.register();
|
|
4074
|
+
}
|
|
4075
|
+
this.lastOrder = nextOrder;
|
|
4076
|
+
});
|
|
4077
|
+
}
|
|
4078
|
+
lastOrder;
|
|
4079
|
+
async register() {
|
|
4080
|
+
const grid = this.findGrid();
|
|
4081
|
+
if (!grid)
|
|
4082
|
+
return;
|
|
4083
|
+
try {
|
|
4084
|
+
await grid.ready?.();
|
|
4085
|
+
}
|
|
4086
|
+
catch {
|
|
4087
|
+
return;
|
|
4088
|
+
}
|
|
4089
|
+
if (this.destroyed)
|
|
4090
|
+
return;
|
|
4091
|
+
const template = this.template();
|
|
4092
|
+
const id = this.id() ?? this.resolvedId;
|
|
4093
|
+
const order = this.order();
|
|
4094
|
+
const def = {
|
|
4095
|
+
id,
|
|
4096
|
+
order,
|
|
4097
|
+
render: (container) => {
|
|
4098
|
+
if (!template)
|
|
4099
|
+
return undefined;
|
|
4100
|
+
// Sticky container: the shell may re-invoke `render` with the SAME
|
|
4101
|
+
// container across refreshes. If our embedded view is still attached
|
|
4102
|
+
// inside it, the previous render is live and this is a refresh — do
|
|
4103
|
+
// nothing (no-op cleanup preserves child state).
|
|
4104
|
+
const firstNode = this.viewRef?.rootNodes[0];
|
|
4105
|
+
if (this.viewRef && firstNode && container.contains(firstNode)) {
|
|
4106
|
+
return () => {
|
|
4107
|
+
/* intentionally empty */
|
|
4108
|
+
};
|
|
4109
|
+
}
|
|
4110
|
+
// Fresh container (first render or container was replaced) — destroy
|
|
4111
|
+
// any stale view, then build a new one.
|
|
4112
|
+
if (this.viewRef) {
|
|
4113
|
+
this.viewRef.destroy();
|
|
4114
|
+
this.viewRef = null;
|
|
4115
|
+
}
|
|
4116
|
+
this.viewRef = this.viewContainerRef.createEmbeddedView(template, {
|
|
4117
|
+
$implicit: grid,
|
|
4118
|
+
grid,
|
|
4119
|
+
});
|
|
4120
|
+
this.viewRef.detectChanges();
|
|
4121
|
+
for (const node of this.viewRef.rootNodes) {
|
|
4122
|
+
container.appendChild(node);
|
|
4123
|
+
}
|
|
4124
|
+
// No-op cleanup: the grid may call this between re-renders before
|
|
4125
|
+
// invoking `render` again with the SAME container. Tearing the view
|
|
4126
|
+
// down here would destroy any internal state in the projected
|
|
4127
|
+
// template on every shell refresh. Teardown happens in `unregister`
|
|
4128
|
+
// (component destroy / id / order change).
|
|
4129
|
+
return () => {
|
|
4130
|
+
/* intentionally empty */
|
|
4131
|
+
};
|
|
4132
|
+
},
|
|
4133
|
+
};
|
|
4134
|
+
grid.registerHeaderContent?.(def);
|
|
4135
|
+
this.registeredId = id;
|
|
4136
|
+
}
|
|
4137
|
+
unregister() {
|
|
4138
|
+
const grid = this.findGrid();
|
|
4139
|
+
if (grid && this.registeredId) {
|
|
4140
|
+
grid.unregisterHeaderContent?.(this.registeredId);
|
|
4141
|
+
}
|
|
4142
|
+
this.registeredId = null;
|
|
4143
|
+
if (this.viewRef) {
|
|
4144
|
+
this.viewRef.destroy();
|
|
4145
|
+
this.viewRef = null;
|
|
4146
|
+
}
|
|
4147
|
+
}
|
|
4148
|
+
findGrid() {
|
|
4149
|
+
const host = this.elementRef.nativeElement;
|
|
4150
|
+
const grid = host.closest('tbw-grid');
|
|
4151
|
+
return grid;
|
|
4152
|
+
}
|
|
4153
|
+
/** Type guard for template context inference. */
|
|
4154
|
+
static ngTemplateContextGuard(_dir, ctx) {
|
|
4155
|
+
return true;
|
|
4156
|
+
}
|
|
4157
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GridHeaderContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
4158
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.5", type: GridHeaderContent, isStandalone: true, selector: "tbw-grid-header-content", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, order: { classPropertyName: "order", publicName: "order", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "template", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], ngImport: i0 });
|
|
4159
|
+
}
|
|
4160
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GridHeaderContent, decorators: [{
|
|
4161
|
+
type: Directive,
|
|
4162
|
+
args: [{ selector: 'tbw-grid-header-content', standalone: true }]
|
|
4163
|
+
}], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], order: [{ type: i0.Input, args: [{ isSignal: true, alias: "order", required: false }] }], template: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
|
|
4164
|
+
|
|
4002
4165
|
/**
|
|
4003
4166
|
* Directive that registers `<tbw-grid-header>` as a known Angular element.
|
|
4004
4167
|
*
|
|
@@ -4672,6 +4835,144 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImpor
|
|
|
4672
4835
|
}]
|
|
4673
4836
|
}] });
|
|
4674
4837
|
|
|
4838
|
+
let autoIdCounter = 0;
|
|
4839
|
+
/**
|
|
4840
|
+
* Declarative wrapper around the grid's imperative
|
|
4841
|
+
* {@link DataGridElement.registerToolbarContent} API.
|
|
4842
|
+
*
|
|
4843
|
+
* Captures an `<ng-template>` and mounts it as an Angular embedded view into
|
|
4844
|
+
* the slot the grid provides for toolbar content. Must be a child of
|
|
4845
|
+
* `<tbw-grid>`.
|
|
4846
|
+
*
|
|
4847
|
+
* Prefer this over `<tbw-grid-tool-buttons>` (light DOM) when you need
|
|
4848
|
+
* Angular template bindings to component state. Use the light-DOM form for
|
|
4849
|
+
* static markup that should be moved verbatim into the toolbar.
|
|
4850
|
+
*
|
|
4851
|
+
* ## Usage
|
|
4852
|
+
*
|
|
4853
|
+
* ```html
|
|
4854
|
+
* <tbw-grid [rows]="rows" [gridConfig]="config">
|
|
4855
|
+
* <tbw-grid-toolbar-content id="calendar-nav" [order]="0">
|
|
4856
|
+
* <ng-template let-grid>
|
|
4857
|
+
* <app-toolbar-nav (prev)="prev()" (today)="today()" (next)="next()" />
|
|
4858
|
+
* </ng-template>
|
|
4859
|
+
* </tbw-grid-toolbar-content>
|
|
4860
|
+
* </tbw-grid>
|
|
4861
|
+
* ```
|
|
4862
|
+
*
|
|
4863
|
+
* @category Directive
|
|
4864
|
+
* @since 1.7.0
|
|
4865
|
+
*/
|
|
4866
|
+
class GridToolbarContent {
|
|
4867
|
+
elementRef = inject((ElementRef));
|
|
4868
|
+
viewContainerRef = inject(ViewContainerRef);
|
|
4869
|
+
destroyRef = inject(DestroyRef);
|
|
4870
|
+
id = input(undefined, ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
4871
|
+
order = input(100, ...(ngDevMode ? [{ debugName: "order" }] : /* istanbul ignore next */ []));
|
|
4872
|
+
template = contentChild((TemplateRef), ...(ngDevMode ? [{ debugName: "template" }] : /* istanbul ignore next */ []));
|
|
4873
|
+
viewRef = null;
|
|
4874
|
+
registeredId = null;
|
|
4875
|
+
resolvedId = `tbw-toolbar-content-${++autoIdCounter}`;
|
|
4876
|
+
lastOrder;
|
|
4877
|
+
destroyed = false;
|
|
4878
|
+
constructor() {
|
|
4879
|
+
afterNextRender(() => {
|
|
4880
|
+
void this.register();
|
|
4881
|
+
});
|
|
4882
|
+
this.destroyRef.onDestroy(() => {
|
|
4883
|
+
this.destroyed = true;
|
|
4884
|
+
this.unregister();
|
|
4885
|
+
});
|
|
4886
|
+
effect(() => {
|
|
4887
|
+
const nextId = this.id() ?? this.resolvedId;
|
|
4888
|
+
const nextOrder = this.order();
|
|
4889
|
+
if (this.registeredId && this.registeredId !== nextId) {
|
|
4890
|
+
this.unregister();
|
|
4891
|
+
void this.register();
|
|
4892
|
+
return;
|
|
4893
|
+
}
|
|
4894
|
+
if (this.registeredId && nextOrder !== this.lastOrder) {
|
|
4895
|
+
this.unregister();
|
|
4896
|
+
void this.register();
|
|
4897
|
+
}
|
|
4898
|
+
this.lastOrder = nextOrder;
|
|
4899
|
+
});
|
|
4900
|
+
}
|
|
4901
|
+
async register() {
|
|
4902
|
+
const grid = this.findGrid();
|
|
4903
|
+
if (!grid)
|
|
4904
|
+
return;
|
|
4905
|
+
try {
|
|
4906
|
+
await grid.ready?.();
|
|
4907
|
+
}
|
|
4908
|
+
catch {
|
|
4909
|
+
return;
|
|
4910
|
+
}
|
|
4911
|
+
if (this.destroyed)
|
|
4912
|
+
return;
|
|
4913
|
+
const template = this.template();
|
|
4914
|
+
const id = this.id() ?? this.resolvedId;
|
|
4915
|
+
const order = this.order();
|
|
4916
|
+
const def = {
|
|
4917
|
+
id,
|
|
4918
|
+
order,
|
|
4919
|
+
render: (container) => {
|
|
4920
|
+
if (!template)
|
|
4921
|
+
return undefined;
|
|
4922
|
+
// Sticky container: see grid-header-content.directive.ts for rationale.
|
|
4923
|
+
const firstNode = this.viewRef?.rootNodes[0];
|
|
4924
|
+
if (this.viewRef && firstNode && container.contains(firstNode)) {
|
|
4925
|
+
return () => {
|
|
4926
|
+
/* intentionally empty */
|
|
4927
|
+
};
|
|
4928
|
+
}
|
|
4929
|
+
if (this.viewRef) {
|
|
4930
|
+
this.viewRef.destroy();
|
|
4931
|
+
this.viewRef = null;
|
|
4932
|
+
}
|
|
4933
|
+
this.viewRef = this.viewContainerRef.createEmbeddedView(template, {
|
|
4934
|
+
$implicit: grid,
|
|
4935
|
+
grid,
|
|
4936
|
+
});
|
|
4937
|
+
this.viewRef.detectChanges();
|
|
4938
|
+
for (const node of this.viewRef.rootNodes) {
|
|
4939
|
+
container.appendChild(node);
|
|
4940
|
+
}
|
|
4941
|
+
// No-op cleanup — see comment in grid-header-content.directive.ts.
|
|
4942
|
+
return () => {
|
|
4943
|
+
/* intentionally empty */
|
|
4944
|
+
};
|
|
4945
|
+
},
|
|
4946
|
+
};
|
|
4947
|
+
grid.registerToolbarContent?.(def);
|
|
4948
|
+
this.registeredId = id;
|
|
4949
|
+
}
|
|
4950
|
+
unregister() {
|
|
4951
|
+
const grid = this.findGrid();
|
|
4952
|
+
if (grid && this.registeredId) {
|
|
4953
|
+
grid.unregisterToolbarContent?.(this.registeredId);
|
|
4954
|
+
}
|
|
4955
|
+
this.registeredId = null;
|
|
4956
|
+
if (this.viewRef) {
|
|
4957
|
+
this.viewRef.destroy();
|
|
4958
|
+
this.viewRef = null;
|
|
4959
|
+
}
|
|
4960
|
+
}
|
|
4961
|
+
findGrid() {
|
|
4962
|
+
const host = this.elementRef.nativeElement;
|
|
4963
|
+
return host.closest('tbw-grid');
|
|
4964
|
+
}
|
|
4965
|
+
static ngTemplateContextGuard(_dir, ctx) {
|
|
4966
|
+
return true;
|
|
4967
|
+
}
|
|
4968
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GridToolbarContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
4969
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.5", type: GridToolbarContent, isStandalone: true, selector: "tbw-grid-toolbar-content", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, order: { classPropertyName: "order", publicName: "order", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "template", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], ngImport: i0 });
|
|
4970
|
+
}
|
|
4971
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: GridToolbarContent, decorators: [{
|
|
4972
|
+
type: Directive,
|
|
4973
|
+
args: [{ selector: 'tbw-grid-toolbar-content', standalone: true }]
|
|
4974
|
+
}], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], order: [{ type: i0.Input, args: [{ isSignal: true, alias: "order", required: false }] }], template: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
|
|
4975
|
+
|
|
4675
4976
|
/** Capitalize the first letter of a string for header generation. */
|
|
4676
4977
|
function capitalize(str) {
|
|
4677
4978
|
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
@@ -6103,6 +6404,24 @@ class Grid {
|
|
|
6103
6404
|
* ```
|
|
6104
6405
|
*/
|
|
6105
6406
|
tbwScroll = output();
|
|
6407
|
+
/**
|
|
6408
|
+
* Emitted once at the end of every render-scheduler flush, after all
|
|
6409
|
+
* plugin `afterRender` hooks have run and `ready()` has resolved.
|
|
6410
|
+
*
|
|
6411
|
+
* Use this to act on the rendered DOM after a programmatic mutation
|
|
6412
|
+
* (e.g. focus the first input of a freshly added row in full-grid edit
|
|
6413
|
+
* mode) without `setTimeout` or double-`requestAnimationFrame` hacks.
|
|
6414
|
+
* The `render` event fires on every flush — including scroll-driven
|
|
6415
|
+
* virtual-window updates — so prefer subscribing once and unsubscribing
|
|
6416
|
+
* (or gating on `detail.phase >= RenderPhase.ROWS`) when you only care
|
|
6417
|
+
* about a specific mutation.
|
|
6418
|
+
*
|
|
6419
|
+
* @example
|
|
6420
|
+
* ```html
|
|
6421
|
+
* <tbw-grid (render)="onRender($event)">...</tbw-grid>
|
|
6422
|
+
* ```
|
|
6423
|
+
*/
|
|
6424
|
+
render = output();
|
|
6106
6425
|
// Map of output names to event names for automatic wiring.
|
|
6107
6426
|
//
|
|
6108
6427
|
// The `satisfies` clause enforces compile-time sync against
|
|
@@ -6152,6 +6471,7 @@ class Grid {
|
|
|
6152
6471
|
printStart: 'print-start',
|
|
6153
6472
|
printComplete: 'print-complete',
|
|
6154
6473
|
tbwScroll: 'tbw-scroll',
|
|
6474
|
+
render: 'render',
|
|
6155
6475
|
};
|
|
6156
6476
|
// ─────────────────────────────────────────────────────────────────────────
|
|
6157
6477
|
// Forward-only event coverage guard.
|
|
@@ -6275,6 +6595,11 @@ class Grid {
|
|
|
6275
6595
|
addPlugin('print', this.print());
|
|
6276
6596
|
addPlugin('pivot', this.pivot());
|
|
6277
6597
|
addPlugin('serverSide', this.serverSide());
|
|
6598
|
+
// `stickyRows` has no deprecated `Grid` input — `GridStickyRowsDirective`
|
|
6599
|
+
// is the only owner. Iterate it here so the directive's feature claim is
|
|
6600
|
+
// consulted; without this call the directive would set a claim that
|
|
6601
|
+
// nobody reads and `[stickyRows]` would silently do nothing.
|
|
6602
|
+
addPlugin('stickyRows', undefined);
|
|
6278
6603
|
addPlugin('tooltip', this.tooltip());
|
|
6279
6604
|
return plugins;
|
|
6280
6605
|
}
|
|
@@ -6336,12 +6661,12 @@ class Grid {
|
|
|
6336
6661
|
}
|
|
6337
6662
|
}
|
|
6338
6663
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: Grid, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6339
|
-
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 }, columnDefaults: { classPropertyName: "columnDefaults", publicName: "columnDefaults", 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 }, rowDragDrop: { classPropertyName: "rowDragDrop", publicName: "rowDragDrop", 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", cellCancel: "cellCancel", editOpen: "editOpen", beforeEditClose: "beforeEditClose", editClose: "editClose", dirtyChange: "dirtyChange", dataChange: "dataChange", rowCommit: "rowCommit", changedRowsReset: "changedRowsReset", sortChange: "sortChange", filterChange: "filterChange", columnResize: "columnResize", columnResizeReset: "columnResizeReset", columnMove: "columnMove", columnVisibility: "columnVisibility", columnStateChange: "columnStateChange", selectionChange: "selectionChange", rowMove: "rowMove", rowDragStart: "rowDragStart", rowDragEnd: "rowDragEnd", rowDrop: "rowDrop", rowTransfer: "rowTransfer", groupToggle: "groupToggle", groupExpand: "groupExpand", groupCollapse: "groupCollapse", treeExpand: "treeExpand", detailExpand: "detailExpand", responsiveChange: "responsiveChange", contextMenuOpen: "contextMenuOpen", copy: "copy", paste: "paste", undo: "undo", redo: "redo", exportComplete: "exportComplete", printStart: "printStart", printComplete: "printComplete", tbwScroll: "tbwScroll" }, ngImport: i0 });
|
|
6664
|
+
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 }, columnDefaults: { classPropertyName: "columnDefaults", publicName: "columnDefaults", 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 }, rowDragDrop: { classPropertyName: "rowDragDrop", publicName: "rowDragDrop", 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", cellCancel: "cellCancel", editOpen: "editOpen", beforeEditClose: "beforeEditClose", editClose: "editClose", dirtyChange: "dirtyChange", dataChange: "dataChange", rowCommit: "rowCommit", changedRowsReset: "changedRowsReset", sortChange: "sortChange", filterChange: "filterChange", columnResize: "columnResize", columnResizeReset: "columnResizeReset", columnMove: "columnMove", columnVisibility: "columnVisibility", columnStateChange: "columnStateChange", selectionChange: "selectionChange", rowMove: "rowMove", rowDragStart: "rowDragStart", rowDragEnd: "rowDragEnd", rowDrop: "rowDrop", rowTransfer: "rowTransfer", groupToggle: "groupToggle", groupExpand: "groupExpand", groupCollapse: "groupCollapse", treeExpand: "treeExpand", detailExpand: "detailExpand", responsiveChange: "responsiveChange", contextMenuOpen: "contextMenuOpen", copy: "copy", paste: "paste", undo: "undo", redo: "redo", exportComplete: "exportComplete", printStart: "printStart", printComplete: "printComplete", tbwScroll: "tbwScroll", render: "render" }, ngImport: i0 });
|
|
6340
6665
|
}
|
|
6341
6666
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: Grid, decorators: [{
|
|
6342
6667
|
type: Directive,
|
|
6343
6668
|
args: [{ selector: 'tbw-grid' }]
|
|
6344
|
-
}], 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 }] }], columnDefaults: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnDefaults", 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 }] }], rowDragDrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowDragDrop", 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"] }], cellCancel: [{ type: i0.Output, args: ["cellCancel"] }], editOpen: [{ type: i0.Output, args: ["editOpen"] }], beforeEditClose: [{ type: i0.Output, args: ["beforeEditClose"] }], editClose: [{ type: i0.Output, args: ["editClose"] }], dirtyChange: [{ type: i0.Output, args: ["dirtyChange"] }], dataChange: [{ type: i0.Output, args: ["dataChange"] }], 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"] }], columnResizeReset: [{ type: i0.Output, args: ["columnResizeReset"] }], 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"] }], rowDragStart: [{ type: i0.Output, args: ["rowDragStart"] }], rowDragEnd: [{ type: i0.Output, args: ["rowDragEnd"] }], rowDrop: [{ type: i0.Output, args: ["rowDrop"] }], rowTransfer: [{ type: i0.Output, args: ["rowTransfer"] }], groupToggle: [{ type: i0.Output, args: ["groupToggle"] }], groupExpand: [{ type: i0.Output, args: ["groupExpand"] }], groupCollapse: [{ type: i0.Output, args: ["groupCollapse"] }], treeExpand: [{ type: i0.Output, args: ["treeExpand"] }], detailExpand: [{ type: i0.Output, args: ["detailExpand"] }], responsiveChange: [{ type: i0.Output, args: ["responsiveChange"] }], contextMenuOpen: [{ type: i0.Output, args: ["contextMenuOpen"] }], copy: [{ type: i0.Output, args: ["copy"] }], paste: [{ type: i0.Output, args: ["paste"] }], undo: [{ type: i0.Output, args: ["undo"] }], redo: [{ type: i0.Output, args: ["redo"] }], exportComplete: [{ type: i0.Output, args: ["exportComplete"] }], printStart: [{ type: i0.Output, args: ["printStart"] }], printComplete: [{ type: i0.Output, args: ["printComplete"] }], tbwScroll: [{ type: i0.Output, args: ["tbwScroll"] }] } });
|
|
6669
|
+
}], 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 }] }], columnDefaults: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnDefaults", 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 }] }], rowDragDrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowDragDrop", 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"] }], cellCancel: [{ type: i0.Output, args: ["cellCancel"] }], editOpen: [{ type: i0.Output, args: ["editOpen"] }], beforeEditClose: [{ type: i0.Output, args: ["beforeEditClose"] }], editClose: [{ type: i0.Output, args: ["editClose"] }], dirtyChange: [{ type: i0.Output, args: ["dirtyChange"] }], dataChange: [{ type: i0.Output, args: ["dataChange"] }], 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"] }], columnResizeReset: [{ type: i0.Output, args: ["columnResizeReset"] }], 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"] }], rowDragStart: [{ type: i0.Output, args: ["rowDragStart"] }], rowDragEnd: [{ type: i0.Output, args: ["rowDragEnd"] }], rowDrop: [{ type: i0.Output, args: ["rowDrop"] }], rowTransfer: [{ type: i0.Output, args: ["rowTransfer"] }], groupToggle: [{ type: i0.Output, args: ["groupToggle"] }], groupExpand: [{ type: i0.Output, args: ["groupExpand"] }], groupCollapse: [{ type: i0.Output, args: ["groupCollapse"] }], treeExpand: [{ type: i0.Output, args: ["treeExpand"] }], detailExpand: [{ type: i0.Output, args: ["detailExpand"] }], responsiveChange: [{ type: i0.Output, args: ["responsiveChange"] }], contextMenuOpen: [{ type: i0.Output, args: ["contextMenuOpen"] }], copy: [{ type: i0.Output, args: ["copy"] }], paste: [{ type: i0.Output, args: ["paste"] }], undo: [{ type: i0.Output, args: ["undo"] }], redo: [{ type: i0.Output, args: ["redo"] }], exportComplete: [{ type: i0.Output, args: ["exportComplete"] }], printStart: [{ type: i0.Output, args: ["printStart"] }], printComplete: [{ type: i0.Output, args: ["printComplete"] }], tbwScroll: [{ type: i0.Output, args: ["tbwScroll"] }], render: [{ type: i0.Output, args: ["render"] }] } });
|
|
6345
6670
|
|
|
6346
6671
|
/**
|
|
6347
6672
|
* Combined provider helper for grid type defaults and icons.
|
|
@@ -6404,5 +6729,5 @@ function provideGrid(options = {}) {
|
|
|
6404
6729
|
* Generated bundle index. Do not edit.
|
|
6405
6730
|
*/
|
|
6406
6731
|
|
|
6407
|
-
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, applyColumnDefaults, claimEvent, getDetailTemplate, getFeatureClaim, getFeatureConfigPreprocessor, getFormArrayContext, getLazyFormContext, getResponsiveCardTemplate, hasColumnShorthands, injectGrid, isComponentClass, isEventClaimed, makeFlushFocusedInput, normalizeColumns, parseColumnShorthand, provideGrid, provideGridIcons, provideGridTypeDefaults, registerDetailRendererBridge, registerEditorMountHook, registerFeatureClaim, registerFeatureConfigPreprocessor, registerFilterPanelTypeDefaultBridge, registerResponsiveCardRendererBridge, registerTemplateBridge, runTemplateBridges, unclaimEvent, unregisterFeatureClaim };
|
|
6732
|
+
export { BaseFilterPanel, BaseGridEditor, BaseGridEditorCVA, BaseOverlayEditor, GRID_ICONS, GRID_TYPE_DEFAULTS, Grid, GridAdapter, GridColumnEditor, GridColumnView, GridDetailView, GridFormArray, GridHeaderContent, GridIconRegistry, GridLazyForm, GridResponsiveCard, GridToolPanel, GridToolbarContent, GridTypeRegistry, TbwEditor, TbwGridColumn, TbwGridHeader, TbwGridToolButtons, TbwRenderer, applyColumnDefaults, claimEvent, getDetailTemplate, getFeatureClaim, getFeatureConfigPreprocessor, getFormArrayContext, getLazyFormContext, getResponsiveCardTemplate, hasColumnShorthands, injectGrid, isComponentClass, isEventClaimed, makeFlushFocusedInput, normalizeColumns, parseColumnShorthand, provideGrid, provideGridIcons, provideGridTypeDefaults, registerDetailRendererBridge, registerEditorMountHook, registerFeatureClaim, registerFeatureConfigPreprocessor, registerFilterPanelTypeDefaultBridge, registerResponsiveCardRendererBridge, registerTemplateBridge, runTemplateBridges, unclaimEvent, unregisterFeatureClaim };
|
|
6408
6733
|
//# sourceMappingURL=toolbox-web-grid-angular.mjs.map
|