imng-kendo-grid-array 4.102.10
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 +7 -0
- package/esm2020/imng-kendo-grid-array.mjs +5 -0
- package/esm2020/index.mjs +4 -0
- package/esm2020/lib/imng-kendo-grid-array.module.mjs +20 -0
- package/esm2020/lib/kendo-array-base-component.mjs +67 -0
- package/esm2020/lib/kendo-array-grid.directive.mjs +84 -0
- package/fesm2015/imng-kendo-grid-array.mjs +175 -0
- package/fesm2015/imng-kendo-grid-array.mjs.map +1 -0
- package/fesm2020/imng-kendo-grid-array.mjs +169 -0
- package/fesm2020/imng-kendo-grid-array.mjs.map +1 -0
- package/imng-kendo-grid-array.d.ts +5 -0
- package/index.d.ts +3 -0
- package/lib/imng-kendo-grid-array.module.d.ts +10 -0
- package/lib/kendo-array-base-component.d.ts +38 -0
- package/lib/kendo-array-grid.directive.d.ts +17 -0
- package/package.json +49 -0
package/README.md
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1uZy1rZW5kby1ncmlkLWFycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9pbW5nLWtlbmRvLWdyaWQtYXJyYXkvc3JjL2ltbmcta2VuZG8tZ3JpZC1hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './lib/imng-kendo-grid-array.module';
|
|
2
|
+
export * from './lib/kendo-array-base-component';
|
|
3
|
+
export * from './lib/kendo-array-grid.directive';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2ltbmcta2VuZG8tZ3JpZC1hcnJheS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9pbW5nLWtlbmRvLWdyaWQtYXJyYXkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tlbmRvLWFycmF5LWJhc2UtY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tlbmRvLWFycmF5LWdyaWQuZGlyZWN0aXZlJztcbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ImngArrayGridDirective } from './kendo-array-grid.directive';
|
|
4
|
+
import { ImngKendoGridModule } from 'imng-kendo-grid';
|
|
5
|
+
import { GridModule } from '@progress/kendo-angular-grid';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class ImngKendoGridArrayModule {
|
|
8
|
+
}
|
|
9
|
+
ImngKendoGridArrayModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridArrayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
ImngKendoGridArrayModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridArrayModule, declarations: [ImngArrayGridDirective], imports: [CommonModule, ImngKendoGridModule, GridModule], exports: [ImngArrayGridDirective] });
|
|
11
|
+
ImngKendoGridArrayModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridArrayModule, imports: [[CommonModule, ImngKendoGridModule, GridModule]] });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridArrayModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
declarations: [ImngArrayGridDirective],
|
|
16
|
+
imports: [CommonModule, ImngKendoGridModule, GridModule],
|
|
17
|
+
exports: [ImngArrayGridDirective],
|
|
18
|
+
}]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1uZy1rZW5kby1ncmlkLWFycmF5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvaW1uZy1rZW5kby1ncmlkLWFycmF5L3NyYy9saWIvaW1uZy1rZW5kby1ncmlkLWFycmF5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBTzFELE1BQU0sT0FBTyx3QkFBd0I7O3FIQUF4Qix3QkFBd0I7c0hBQXhCLHdCQUF3QixpQkFKcEIsc0JBQXNCLGFBQzNCLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxVQUFVLGFBQzdDLHNCQUFzQjtzSEFFckIsd0JBQXdCLFlBSDFCLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFVBQVUsQ0FBQzsyRkFHN0Msd0JBQXdCO2tCQUxwQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxDQUFDO29CQUN4RCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEltbmdBcnJheUdyaWREaXJlY3RpdmUgfSBmcm9tICcuL2tlbmRvLWFycmF5LWdyaWQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEltbmdLZW5kb0dyaWRNb2R1bGUgfSBmcm9tICdpbW5nLWtlbmRvLWdyaWQnO1xuaW1wb3J0IHsgR3JpZE1vZHVsZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWdyaWQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtJbW5nQXJyYXlHcmlkRGlyZWN0aXZlXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW1uZ0tlbmRvR3JpZE1vZHVsZSwgR3JpZE1vZHVsZV0sXG4gIGV4cG9ydHM6IFtJbW5nQXJyYXlHcmlkRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgSW1uZ0tlbmRvR3JpZEFycmF5TW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Input, Component } from '@angular/core';
|
|
2
|
+
import { process, } from '@progress/kendo-data-query';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { Subscriptions } from 'imng-ngrx-utils';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
7
|
+
export class KendoArrayBasedComponent {
|
|
8
|
+
constructor(changeDetectorRef = null) {
|
|
9
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
10
|
+
this.allSubscriptions = new Subscriptions();
|
|
11
|
+
this._detail = [];
|
|
12
|
+
this.state = {
|
|
13
|
+
skip: 0,
|
|
14
|
+
take: 10,
|
|
15
|
+
};
|
|
16
|
+
this.sortSettings = {
|
|
17
|
+
allowUnsort: true,
|
|
18
|
+
mode: 'multiple',
|
|
19
|
+
};
|
|
20
|
+
this._gridData = [];
|
|
21
|
+
this.gridData$ = new BehaviorSubject({ data: [], total: 0 });
|
|
22
|
+
this.markForCheck = () => this.changeDetectorRef?.markForCheck();
|
|
23
|
+
}
|
|
24
|
+
set detail(value) {
|
|
25
|
+
this._detail = value || [];
|
|
26
|
+
this.gridData = process(this._detail, this.state);
|
|
27
|
+
this.changeDetectorRef?.markForCheck();
|
|
28
|
+
}
|
|
29
|
+
get gridData() {
|
|
30
|
+
return this._gridData;
|
|
31
|
+
}
|
|
32
|
+
set gridData(value) {
|
|
33
|
+
this._gridData = value;
|
|
34
|
+
this.gridData$.next(value);
|
|
35
|
+
this.markForCheck();
|
|
36
|
+
}
|
|
37
|
+
dataStateChange(state) {
|
|
38
|
+
this.state = state;
|
|
39
|
+
this.gridData = process(this._detail, this.state);
|
|
40
|
+
}
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
42
|
+
pageChange(t) {
|
|
43
|
+
//This is intentional
|
|
44
|
+
}
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
46
|
+
filterChange(t) {
|
|
47
|
+
//This is intentional
|
|
48
|
+
}
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
50
|
+
sortChange(t) {
|
|
51
|
+
//This is intentional
|
|
52
|
+
}
|
|
53
|
+
ngOnDestroy() {
|
|
54
|
+
this.allSubscriptions.unsubscribeAll();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
KendoArrayBasedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: KendoArrayBasedComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
58
|
+
KendoArrayBasedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: KendoArrayBasedComponent, selector: "ng-component", inputs: { item: "item", detail: "detail" }, ngImport: i0, template: '', isInline: true });
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: KendoArrayBasedComponent, decorators: [{
|
|
60
|
+
type: Component,
|
|
61
|
+
args: [{ template: '' }]
|
|
62
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { item: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], detail: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}] } });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VuZG8tYXJyYXktYmFzZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmcta2VuZG8tZ3JpZC1hcnJheS9zcmMvbGliL2tlbmRvLWFycmF5LWJhc2UtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxLQUFLLEVBQWdDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsT0FBTyxHQUlSLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQWdCLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUU5RCxrRUFBa0U7QUFFbEUsTUFBTSxPQUFnQix3QkFBd0I7SUE4QzVDLFlBQ2tCLG9CQUE4QyxJQUFJO1FBQWxELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBaUM7UUE3Q3BELHFCQUFnQixHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFPL0MsWUFBTyxHQUFvQixFQUFFLENBQUM7UUFjL0IsVUFBSyxHQUFVO1lBQ3BCLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLEVBQUU7U0FDVCxDQUFDO1FBRWMsaUJBQVksR0FBaUI7WUFDM0MsV0FBVyxFQUFFLElBQUk7WUFDakIsSUFBSSxFQUFFLFVBQVU7U0FDakIsQ0FBQztRQUVNLGNBQVMsR0FBaUQsRUFBRSxDQUFDO1FBQzlELGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FFcEMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBY1YsaUJBQVksR0FBRyxHQUFTLEVBQUUsQ0FDeEMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFlBQVksRUFBRSxDQUFDO0lBSHJDLENBQUM7SUF0Q0wsSUFDVyxNQUFNLENBQUMsS0FBc0I7UUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBc0JELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQVcsUUFBUSxDQUFDLEtBQW1EO1FBQ3JFLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBU00sZUFBZSxDQUFDLEtBQW1DO1FBQ3hELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCw2REFBNkQ7SUFDdEQsVUFBVSxDQUFDLENBQWtCO1FBQ2xDLHFCQUFxQjtJQUN2QixDQUFDO0lBRUQsNkRBQTZEO0lBQ3RELFlBQVksQ0FBQyxDQUE0QjtRQUM5QyxxQkFBcUI7SUFDdkIsQ0FBQztJQUVELDZEQUE2RDtJQUN0RCxVQUFVLENBQUMsQ0FBbUI7UUFDbkMscUJBQXFCO0lBQ3ZCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QyxDQUFDOztxSEEzRW1CLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLGdHQUR2QixFQUFFOzJGQUNILHdCQUF3QjtrQkFEN0MsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7d0dBUVQsSUFBSTtzQkFBbkIsS0FBSztnQkFJSyxNQUFNO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGF0YVN0YXRlQ2hhbmdlRXZlbnQsXG4gIFNvcnRTZXR0aW5ncyxcbiAgUGFnZUNoYW5nZUV2ZW50LFxufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcbmltcG9ydCB7IElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25EZXN0cm95LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIHByb2Nlc3MsXG4gIFN0YXRlLFxuICBDb21wb3NpdGVGaWx0ZXJEZXNjcmlwdG9yLFxuICBTb3J0RGVzY3JpcHRvcixcbn0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xuaW1wb3J0IHsgT0RhdGFSZXN1bHQgfSBmcm9tICdpbW5nLWtlbmRvLW9kYXRhJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3Vic2NyaWJhYmxlLCBTdWJzY3JpcHRpb25zIH0gZnJvbSAnaW1uZy1uZ3J4LXV0aWxzJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgS2VuZG9BcnJheUJhc2VkQ29tcG9uZW50PFBBUkVOVF9FTlRJVFksIExJU1RFRF9FTlRJVFk+XG4gIGltcGxlbWVudHMgT25EZXN0cm95LCBTdWJzY3JpYmFibGUge1xuICBwdWJsaWMgcmVhZG9ubHkgYWxsU3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb25zKCk7XG4gIC8qKlxuICAgKiBUaGlzIHdpbGwgYWxsb3cgeW91IHRvIHByb3ZpZGUgYSB2aXN1YWwgaW5kaWNhdG9yIHRoYXQgc29tZSBvZiB0aGUgY29sdW1ucyBoYXZlIGJlZW4gaGlkZGVuLlxuICAgKi9cbiAgcHVibGljIGhhc0hpZGRlbkNvbHVtbnMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgaXRlbT86IFBBUkVOVF9FTlRJVFk7XG5cbiAgcHJpdmF0ZSBfZGV0YWlsOiBMSVNURURfRU5USVRZW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkZXRhaWwodmFsdWU6IExJU1RFRF9FTlRJVFlbXSkge1xuICAgIHRoaXMuX2RldGFpbCA9IHZhbHVlIHx8IFtdO1xuICAgIHRoaXMuZ3JpZERhdGEgPSBwcm9jZXNzKHRoaXMuX2RldGFpbCwgdGhpcy5zdGF0ZSk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZj8ubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogQSBwcm9wZXJ0aWVzIGVudW0gdG8gbWFrZSBrZW5kbyBncmlkIGNvbHVtbnMgZGVmaW5pdGlvbnMgdHlwZSBzYWZlXG4gICAqIHtAZXhhbXBsZSA8a2VuZG8tZ3JpZC1jb2x1bW4gW2ZpZWxkXT1cInByb3BzLkZJRUxEX05BTUVcIj59XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcHJvcHM6IGFueTsgLy9OT1NPTkFSXG4gIHB1YmxpYyBzdGF0ZTogU3RhdGUgPSB7XG4gICAgc2tpcDogMCxcbiAgICB0YWtlOiAxMCxcbiAgfTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc29ydFNldHRpbmdzOiBTb3J0U2V0dGluZ3MgPSB7XG4gICAgYWxsb3dVbnNvcnQ6IHRydWUsXG4gICAgbW9kZTogJ211bHRpcGxlJyxcbiAgfTtcblxuICBwcml2YXRlIF9ncmlkRGF0YTogT0RhdGFSZXN1bHQ8TElTVEVEX0VOVElUWT4gfCBMSVNURURfRU5USVRZW10gPSBbXTtcbiAgcHVibGljIGdyaWREYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgT0RhdGFSZXN1bHQ8TElTVEVEX0VOVElUWT4gfCBMSVNURURfRU5USVRZW11cbiAgPih7IGRhdGE6IFtdLCB0b3RhbDogMCB9KTtcbiAgcHVibGljIGdldCBncmlkRGF0YSgpOiBPRGF0YVJlc3VsdDxMSVNURURfRU5USVRZPiB8IExJU1RFRF9FTlRJVFlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2dyaWREYXRhO1xuICB9XG4gIHB1YmxpYyBzZXQgZ3JpZERhdGEodmFsdWU6IE9EYXRhUmVzdWx0PExJU1RFRF9FTlRJVFk+IHwgTElTVEVEX0VOVElUWVtdKSB7XG4gICAgdGhpcy5fZ3JpZERhdGEgPSB2YWx1ZTtcbiAgICB0aGlzLmdyaWREYXRhJC5uZXh0KHZhbHVlKTtcbiAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiB8IG51bGwgPSBudWxsXG4gICkgeyB9XG5cbiAgcHVibGljIHJlYWRvbmx5IG1hcmtGb3JDaGVjayA9ICgpOiB2b2lkID0+XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZj8ubWFya0ZvckNoZWNrKCk7XG5cbiAgcHVibGljIGRhdGFTdGF0ZUNoYW5nZShzdGF0ZTogRGF0YVN0YXRlQ2hhbmdlRXZlbnQgfCBTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcbiAgICB0aGlzLmdyaWREYXRhID0gcHJvY2Vzcyh0aGlzLl9kZXRhaWwsIHRoaXMuc3RhdGUpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwdWJsaWMgcGFnZUNoYW5nZSh0OiBQYWdlQ2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICAvL1RoaXMgaXMgaW50ZW50aW9uYWxcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHVibGljIGZpbHRlckNoYW5nZSh0OiBDb21wb3NpdGVGaWx0ZXJEZXNjcmlwdG9yKTogdm9pZCB7XG4gICAgLy9UaGlzIGlzIGludGVudGlvbmFsXG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHB1YmxpYyBzb3J0Q2hhbmdlKHQ6IFNvcnREZXNjcmlwdG9yW10pOiB2b2lkIHtcbiAgICAvL1RoaXMgaXMgaW50ZW50aW9uYWxcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmFsbFN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmVBbGwoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Directive, Input, } from '@angular/core';
|
|
2
|
+
import { GridComponent, } from '@progress/kendo-angular-grid';
|
|
3
|
+
import { Subscriptions } from 'imng-ngrx-utils';
|
|
4
|
+
import { hasHiddenColumns } from 'imng-kendo-grid';
|
|
5
|
+
import { KendoArrayBasedComponent } from './kendo-array-base-component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@progress/kendo-angular-grid";
|
|
8
|
+
export class ImngArrayGridDirective {
|
|
9
|
+
constructor(gridComponent) {
|
|
10
|
+
this.gridComponent = gridComponent;
|
|
11
|
+
this.allSubscriptions = new Subscriptions();
|
|
12
|
+
this.pageable = true;
|
|
13
|
+
}
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
this.gridComponent.reorderable = true;
|
|
16
|
+
this.gridComponent.resizable = true;
|
|
17
|
+
this.gridComponent.filterable = 'menu';
|
|
18
|
+
this.gridComponent.sortable = {
|
|
19
|
+
allowUnsort: true,
|
|
20
|
+
mode: 'multiple',
|
|
21
|
+
};
|
|
22
|
+
this.gridComponent.navigable = true;
|
|
23
|
+
this.gridComponent.pageable = this.pageable || {
|
|
24
|
+
info: true,
|
|
25
|
+
type: 'numeric',
|
|
26
|
+
pageSizes: [5, 10, 20, 50, 100], //NOSONAR
|
|
27
|
+
};
|
|
28
|
+
this.allSubscriptions.push(this.gridComponent.dataStateChange.subscribe((t) => {
|
|
29
|
+
this.gridComponent.sort = t.sort || [];
|
|
30
|
+
this.gridComponent.pageSize = t.take;
|
|
31
|
+
this.gridComponent.skip = t.skip;
|
|
32
|
+
if (this.arrayComponent?.state) {
|
|
33
|
+
this.arrayComponent.state = t;
|
|
34
|
+
this.arrayComponent.dataStateChange(t);
|
|
35
|
+
this.arrayComponent.markForCheck();
|
|
36
|
+
}
|
|
37
|
+
}), this.gridComponent.pageChange.subscribe((t) => {
|
|
38
|
+
this.arrayComponent?.pageChange(t);
|
|
39
|
+
}), this.gridComponent.sortChange.subscribe((t) => {
|
|
40
|
+
this.arrayComponent?.sortChange(t);
|
|
41
|
+
}), this.gridComponent.filterChange.subscribe((t) => {
|
|
42
|
+
this.gridComponent.filter = t;
|
|
43
|
+
if (this.arrayComponent) {
|
|
44
|
+
this.arrayComponent.state.filter = t;
|
|
45
|
+
this.arrayComponent.markForCheck();
|
|
46
|
+
this.arrayComponent.filterChange(t);
|
|
47
|
+
}
|
|
48
|
+
}), this.arrayComponent?.gridData$.subscribe((t) => {
|
|
49
|
+
this.gridComponent.data = t;
|
|
50
|
+
}));
|
|
51
|
+
this.gridComponent.pageSize = this.arrayComponent?.state.take || 20; //NOSONAR
|
|
52
|
+
this.gridComponent.filter = this.arrayComponent?.state.filter || {
|
|
53
|
+
logic: 'and',
|
|
54
|
+
filters: [],
|
|
55
|
+
};
|
|
56
|
+
this.gridComponent.skip = this.arrayComponent?.state.skip || 0;
|
|
57
|
+
this.gridComponent.sort = this.arrayComponent?.state.sort || [];
|
|
58
|
+
this.gridComponent.data = this.arrayComponent?.gridData || [];
|
|
59
|
+
if (this.arrayComponent) {
|
|
60
|
+
this.arrayComponent.hasHiddenColumns$ =
|
|
61
|
+
this.gridComponent.columnVisibilityChange.pipe(hasHiddenColumns(this.gridComponent));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
ngAfterViewInit() {
|
|
65
|
+
this.arrayComponent?.markForCheck();
|
|
66
|
+
}
|
|
67
|
+
ngOnDestroy() {
|
|
68
|
+
this.allSubscriptions.unsubscribeAll();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
ImngArrayGridDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngArrayGridDirective, deps: [{ token: i1.GridComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
72
|
+
ImngArrayGridDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: ImngArrayGridDirective, selector: "[imngArrayGrid]", inputs: { arrayComponent: ["imngArrayGrid", "arrayComponent"], pageable: "pageable" }, ngImport: i0 });
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngArrayGridDirective, decorators: [{
|
|
74
|
+
type: Directive,
|
|
75
|
+
args: [{
|
|
76
|
+
selector: '[imngArrayGrid]',
|
|
77
|
+
}]
|
|
78
|
+
}], ctorParameters: function () { return [{ type: i1.GridComponent }]; }, propDecorators: { arrayComponent: [{
|
|
79
|
+
type: Input,
|
|
80
|
+
args: ['imngArrayGrid']
|
|
81
|
+
}], pageable: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}] } });
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VuZG8tYXJyYXktZ3JpZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmcta2VuZG8tZ3JpZC1hcnJheS9zcmMvbGliL2tlbmRvLWFycmF5LWdyaWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxHQUlOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxhQUFhLEdBR2QsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQWdCLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBd0IsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBU3hFLE1BQU0sT0FBTyxzQkFBc0I7SUFRakMsWUFBNEIsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFOeEMscUJBQWdCLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUt2QyxhQUFRLEdBQTRCLElBQUksQ0FBQztJQUNHLENBQUM7SUFFN0QsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHO1lBQzVCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSTtZQUM3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OUQsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCO2dCQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FDNUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUNyQyxDQUFDO1NBQ0w7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxjQUFjLEVBQUUsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekMsQ0FBQzs7bUhBaEZVLHNCQUFzQjt1R0FBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7b0dBSWdDLGNBQWM7c0JBQTVDLEtBQUs7dUJBQUMsZUFBZTtnQkFJTixRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIEFmdGVyVmlld0luaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgR3JpZENvbXBvbmVudCxcbiAgUGFnZUNoYW5nZUV2ZW50LFxuICBQYWdlclNldHRpbmdzLFxufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcbmltcG9ydCB7IFN1YnNjcmliYWJsZSwgU3Vic2NyaXB0aW9ucyB9IGZyb20gJ2ltbmctbmdyeC11dGlscyc7XG5pbXBvcnQgeyBHcmlkU3RhdGVDaGFuZ2VFdmVudCwgaGFzSGlkZGVuQ29sdW1ucyB9IGZyb20gJ2ltbmcta2VuZG8tZ3JpZCc7XG5pbXBvcnQgeyBLZW5kb0FycmF5QmFzZWRDb21wb25lbnQgfSBmcm9tICcuL2tlbmRvLWFycmF5LWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7XG4gIENvbXBvc2l0ZUZpbHRlckRlc2NyaXB0b3IsXG4gIFNvcnREZXNjcmlwdG9yLFxufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tZGF0YS1xdWVyeSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tpbW5nQXJyYXlHcmlkXScsXG59KVxuZXhwb3J0IGNsYXNzIEltbmdBcnJheUdyaWREaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgU3Vic2NyaWJhYmxlIHtcbiAgcHVibGljIHJlYWRvbmx5IGFsbFN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9ucygpO1xuICBASW5wdXQoJ2ltbmdBcnJheUdyaWQnKSBwdWJsaWMgYXJyYXlDb21wb25lbnQ/OiBLZW5kb0FycmF5QmFzZWRDb21wb25lbnQ8XG4gICAgb2JqZWN0LFxuICAgIG9iamVjdFxuICA+O1xuICBASW5wdXQoKSBwdWJsaWMgcGFnZWFibGU6IGJvb2xlYW4gfCBQYWdlclNldHRpbmdzID0gdHJ1ZTtcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGdyaWRDb21wb25lbnQ6IEdyaWRDb21wb25lbnQpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ3JpZENvbXBvbmVudC5yZW9yZGVyYWJsZSA9IHRydWU7XG4gICAgdGhpcy5ncmlkQ29tcG9uZW50LnJlc2l6YWJsZSA9IHRydWU7XG4gICAgdGhpcy5ncmlkQ29tcG9uZW50LmZpbHRlcmFibGUgPSAnbWVudSc7XG4gICAgdGhpcy5ncmlkQ29tcG9uZW50LnNvcnRhYmxlID0ge1xuICAgICAgYWxsb3dVbnNvcnQ6IHRydWUsXG4gICAgICBtb2RlOiAnbXVsdGlwbGUnLFxuICAgIH07XG4gICAgdGhpcy5ncmlkQ29tcG9uZW50Lm5hdmlnYWJsZSA9IHRydWU7XG4gICAgdGhpcy5ncmlkQ29tcG9uZW50LnBhZ2VhYmxlID0gdGhpcy5wYWdlYWJsZSB8fCB7XG4gICAgICBpbmZvOiB0cnVlLFxuICAgICAgdHlwZTogJ251bWVyaWMnLFxuICAgICAgcGFnZVNpemVzOiBbNSwgMTAsIDIwLCA1MCwgMTAwXSwgLy9OT1NPTkFSXG4gICAgfTtcbiAgICB0aGlzLmFsbFN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuZ3JpZENvbXBvbmVudC5kYXRhU3RhdGVDaGFuZ2Uuc3Vic2NyaWJlKFxuICAgICAgICAodDogR3JpZFN0YXRlQ2hhbmdlRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLmdyaWRDb21wb25lbnQuc29ydCA9IHQuc29ydCB8fCBbXTtcbiAgICAgICAgICB0aGlzLmdyaWRDb21wb25lbnQucGFnZVNpemUgPSB0LnRha2U7XG4gICAgICAgICAgdGhpcy5ncmlkQ29tcG9uZW50LnNraXAgPSB0LnNraXA7XG4gICAgICAgICAgaWYgKHRoaXMuYXJyYXlDb21wb25lbnQ/LnN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLmFycmF5Q29tcG9uZW50LnN0YXRlID0gdDtcbiAgICAgICAgICAgIHRoaXMuYXJyYXlDb21wb25lbnQuZGF0YVN0YXRlQ2hhbmdlKHQpO1xuICAgICAgICAgICAgdGhpcy5hcnJheUNvbXBvbmVudC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICB0aGlzLmdyaWRDb21wb25lbnQucGFnZUNoYW5nZS5zdWJzY3JpYmUoKHQ6IFBhZ2VDaGFuZ2VFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLmFycmF5Q29tcG9uZW50Py5wYWdlQ2hhbmdlKHQpO1xuICAgICAgfSksXG4gICAgICB0aGlzLmdyaWRDb21wb25lbnQuc29ydENoYW5nZS5zdWJzY3JpYmUoKHQ6IFNvcnREZXNjcmlwdG9yW10pID0+IHtcbiAgICAgICAgdGhpcy5hcnJheUNvbXBvbmVudD8uc29ydENoYW5nZSh0KTtcbiAgICAgIH0pLFxuICAgICAgdGhpcy5ncmlkQ29tcG9uZW50LmZpbHRlckNoYW5nZS5zdWJzY3JpYmUoXG4gICAgICAgICh0OiBDb21wb3NpdGVGaWx0ZXJEZXNjcmlwdG9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5ncmlkQ29tcG9uZW50LmZpbHRlciA9IHQ7XG4gICAgICAgICAgaWYgKHRoaXMuYXJyYXlDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuYXJyYXlDb21wb25lbnQuc3RhdGUuZmlsdGVyID0gdDtcbiAgICAgICAgICAgIHRoaXMuYXJyYXlDb21wb25lbnQubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB0aGlzLmFycmF5Q29tcG9uZW50LmZpbHRlckNoYW5nZSh0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICB0aGlzLmFycmF5Q29tcG9uZW50Py5ncmlkRGF0YSQuc3Vic2NyaWJlKCh0KSA9PiB7XG4gICAgICAgIHRoaXMuZ3JpZENvbXBvbmVudC5kYXRhID0gdDtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuZ3JpZENvbXBvbmVudC5wYWdlU2l6ZSA9IHRoaXMuYXJyYXlDb21wb25lbnQ/LnN0YXRlLnRha2UgfHwgMjA7IC8vTk9TT05BUlxuICAgIHRoaXMuZ3JpZENvbXBvbmVudC5maWx0ZXIgPSB0aGlzLmFycmF5Q29tcG9uZW50Py5zdGF0ZS5maWx0ZXIgfHwge1xuICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgZmlsdGVyczogW10sXG4gICAgfTtcbiAgICB0aGlzLmdyaWRDb21wb25lbnQuc2tpcCA9IHRoaXMuYXJyYXlDb21wb25lbnQ/LnN0YXRlLnNraXAgfHwgMDtcbiAgICB0aGlzLmdyaWRDb21wb25lbnQuc29ydCA9IHRoaXMuYXJyYXlDb21wb25lbnQ/LnN0YXRlLnNvcnQgfHwgW107XG4gICAgdGhpcy5ncmlkQ29tcG9uZW50LmRhdGEgPSB0aGlzLmFycmF5Q29tcG9uZW50Py5ncmlkRGF0YSB8fCBbXTtcbiAgICBpZiAodGhpcy5hcnJheUNvbXBvbmVudCkge1xuICAgICAgdGhpcy5hcnJheUNvbXBvbmVudC5oYXNIaWRkZW5Db2x1bW5zJCA9XG4gICAgICAgIHRoaXMuZ3JpZENvbXBvbmVudC5jb2x1bW5WaXNpYmlsaXR5Q2hhbmdlLnBpcGUoXG4gICAgICAgICAgaGFzSGlkZGVuQ29sdW1ucyh0aGlzLmdyaWRDb21wb25lbnQpXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYXJyYXlDb21wb25lbnQ/Lm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5hbGxTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlQWxsKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Directive, Input, NgModule, Component } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { Subscriptions } from 'imng-ngrx-utils';
|
|
5
|
+
import { hasHiddenColumns, ImngKendoGridModule } from 'imng-kendo-grid';
|
|
6
|
+
import * as i1 from '@progress/kendo-angular-grid';
|
|
7
|
+
import { GridModule } from '@progress/kendo-angular-grid';
|
|
8
|
+
import { process } from '@progress/kendo-data-query';
|
|
9
|
+
import { BehaviorSubject } from 'rxjs';
|
|
10
|
+
|
|
11
|
+
class ImngArrayGridDirective {
|
|
12
|
+
constructor(gridComponent) {
|
|
13
|
+
this.gridComponent = gridComponent;
|
|
14
|
+
this.allSubscriptions = new Subscriptions();
|
|
15
|
+
this.pageable = true;
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
var _a, _b, _c, _d, _e, _f;
|
|
19
|
+
this.gridComponent.reorderable = true;
|
|
20
|
+
this.gridComponent.resizable = true;
|
|
21
|
+
this.gridComponent.filterable = 'menu';
|
|
22
|
+
this.gridComponent.sortable = {
|
|
23
|
+
allowUnsort: true,
|
|
24
|
+
mode: 'multiple',
|
|
25
|
+
};
|
|
26
|
+
this.gridComponent.navigable = true;
|
|
27
|
+
this.gridComponent.pageable = this.pageable || {
|
|
28
|
+
info: true,
|
|
29
|
+
type: 'numeric',
|
|
30
|
+
pageSizes: [5, 10, 20, 50, 100], //NOSONAR
|
|
31
|
+
};
|
|
32
|
+
this.allSubscriptions.push(this.gridComponent.dataStateChange.subscribe((t) => {
|
|
33
|
+
var _a;
|
|
34
|
+
this.gridComponent.sort = t.sort || [];
|
|
35
|
+
this.gridComponent.pageSize = t.take;
|
|
36
|
+
this.gridComponent.skip = t.skip;
|
|
37
|
+
if ((_a = this.arrayComponent) === null || _a === void 0 ? void 0 : _a.state) {
|
|
38
|
+
this.arrayComponent.state = t;
|
|
39
|
+
this.arrayComponent.dataStateChange(t);
|
|
40
|
+
this.arrayComponent.markForCheck();
|
|
41
|
+
}
|
|
42
|
+
}), this.gridComponent.pageChange.subscribe((t) => {
|
|
43
|
+
var _a;
|
|
44
|
+
(_a = this.arrayComponent) === null || _a === void 0 ? void 0 : _a.pageChange(t);
|
|
45
|
+
}), this.gridComponent.sortChange.subscribe((t) => {
|
|
46
|
+
var _a;
|
|
47
|
+
(_a = this.arrayComponent) === null || _a === void 0 ? void 0 : _a.sortChange(t);
|
|
48
|
+
}), this.gridComponent.filterChange.subscribe((t) => {
|
|
49
|
+
this.gridComponent.filter = t;
|
|
50
|
+
if (this.arrayComponent) {
|
|
51
|
+
this.arrayComponent.state.filter = t;
|
|
52
|
+
this.arrayComponent.markForCheck();
|
|
53
|
+
this.arrayComponent.filterChange(t);
|
|
54
|
+
}
|
|
55
|
+
}), (_a = this.arrayComponent) === null || _a === void 0 ? void 0 : _a.gridData$.subscribe((t) => {
|
|
56
|
+
this.gridComponent.data = t;
|
|
57
|
+
}));
|
|
58
|
+
this.gridComponent.pageSize = ((_b = this.arrayComponent) === null || _b === void 0 ? void 0 : _b.state.take) || 20; //NOSONAR
|
|
59
|
+
this.gridComponent.filter = ((_c = this.arrayComponent) === null || _c === void 0 ? void 0 : _c.state.filter) || {
|
|
60
|
+
logic: 'and',
|
|
61
|
+
filters: [],
|
|
62
|
+
};
|
|
63
|
+
this.gridComponent.skip = ((_d = this.arrayComponent) === null || _d === void 0 ? void 0 : _d.state.skip) || 0;
|
|
64
|
+
this.gridComponent.sort = ((_e = this.arrayComponent) === null || _e === void 0 ? void 0 : _e.state.sort) || [];
|
|
65
|
+
this.gridComponent.data = ((_f = this.arrayComponent) === null || _f === void 0 ? void 0 : _f.gridData) || [];
|
|
66
|
+
if (this.arrayComponent) {
|
|
67
|
+
this.arrayComponent.hasHiddenColumns$ =
|
|
68
|
+
this.gridComponent.columnVisibilityChange.pipe(hasHiddenColumns(this.gridComponent));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
ngAfterViewInit() {
|
|
72
|
+
var _a;
|
|
73
|
+
(_a = this.arrayComponent) === null || _a === void 0 ? void 0 : _a.markForCheck();
|
|
74
|
+
}
|
|
75
|
+
ngOnDestroy() {
|
|
76
|
+
this.allSubscriptions.unsubscribeAll();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
ImngArrayGridDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngArrayGridDirective, deps: [{ token: i1.GridComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
80
|
+
ImngArrayGridDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: ImngArrayGridDirective, selector: "[imngArrayGrid]", inputs: { arrayComponent: ["imngArrayGrid", "arrayComponent"], pageable: "pageable" }, ngImport: i0 });
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngArrayGridDirective, decorators: [{
|
|
82
|
+
type: Directive,
|
|
83
|
+
args: [{
|
|
84
|
+
selector: '[imngArrayGrid]',
|
|
85
|
+
}]
|
|
86
|
+
}], ctorParameters: function () { return [{ type: i1.GridComponent }]; }, propDecorators: { arrayComponent: [{
|
|
87
|
+
type: Input,
|
|
88
|
+
args: ['imngArrayGrid']
|
|
89
|
+
}], pageable: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}] } });
|
|
92
|
+
|
|
93
|
+
class ImngKendoGridArrayModule {
|
|
94
|
+
}
|
|
95
|
+
ImngKendoGridArrayModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridArrayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
96
|
+
ImngKendoGridArrayModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridArrayModule, declarations: [ImngArrayGridDirective], imports: [CommonModule, ImngKendoGridModule, GridModule], exports: [ImngArrayGridDirective] });
|
|
97
|
+
ImngKendoGridArrayModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridArrayModule, imports: [[CommonModule, ImngKendoGridModule, GridModule]] });
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridArrayModule, decorators: [{
|
|
99
|
+
type: NgModule,
|
|
100
|
+
args: [{
|
|
101
|
+
declarations: [ImngArrayGridDirective],
|
|
102
|
+
imports: [CommonModule, ImngKendoGridModule, GridModule],
|
|
103
|
+
exports: [ImngArrayGridDirective],
|
|
104
|
+
}]
|
|
105
|
+
}] });
|
|
106
|
+
|
|
107
|
+
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
108
|
+
class KendoArrayBasedComponent {
|
|
109
|
+
constructor(changeDetectorRef = null) {
|
|
110
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
111
|
+
this.allSubscriptions = new Subscriptions();
|
|
112
|
+
this._detail = [];
|
|
113
|
+
this.state = {
|
|
114
|
+
skip: 0,
|
|
115
|
+
take: 10,
|
|
116
|
+
};
|
|
117
|
+
this.sortSettings = {
|
|
118
|
+
allowUnsort: true,
|
|
119
|
+
mode: 'multiple',
|
|
120
|
+
};
|
|
121
|
+
this._gridData = [];
|
|
122
|
+
this.gridData$ = new BehaviorSubject({ data: [], total: 0 });
|
|
123
|
+
this.markForCheck = () => { var _a; return (_a = this.changeDetectorRef) === null || _a === void 0 ? void 0 : _a.markForCheck(); };
|
|
124
|
+
}
|
|
125
|
+
set detail(value) {
|
|
126
|
+
var _a;
|
|
127
|
+
this._detail = value || [];
|
|
128
|
+
this.gridData = process(this._detail, this.state);
|
|
129
|
+
(_a = this.changeDetectorRef) === null || _a === void 0 ? void 0 : _a.markForCheck();
|
|
130
|
+
}
|
|
131
|
+
get gridData() {
|
|
132
|
+
return this._gridData;
|
|
133
|
+
}
|
|
134
|
+
set gridData(value) {
|
|
135
|
+
this._gridData = value;
|
|
136
|
+
this.gridData$.next(value);
|
|
137
|
+
this.markForCheck();
|
|
138
|
+
}
|
|
139
|
+
dataStateChange(state) {
|
|
140
|
+
this.state = state;
|
|
141
|
+
this.gridData = process(this._detail, this.state);
|
|
142
|
+
}
|
|
143
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
144
|
+
pageChange(t) {
|
|
145
|
+
//This is intentional
|
|
146
|
+
}
|
|
147
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
148
|
+
filterChange(t) {
|
|
149
|
+
//This is intentional
|
|
150
|
+
}
|
|
151
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
152
|
+
sortChange(t) {
|
|
153
|
+
//This is intentional
|
|
154
|
+
}
|
|
155
|
+
ngOnDestroy() {
|
|
156
|
+
this.allSubscriptions.unsubscribeAll();
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
KendoArrayBasedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: KendoArrayBasedComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
160
|
+
KendoArrayBasedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: KendoArrayBasedComponent, selector: "ng-component", inputs: { item: "item", detail: "detail" }, ngImport: i0, template: '', isInline: true });
|
|
161
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: KendoArrayBasedComponent, decorators: [{
|
|
162
|
+
type: Component,
|
|
163
|
+
args: [{ template: '' }]
|
|
164
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { item: [{
|
|
165
|
+
type: Input
|
|
166
|
+
}], detail: [{
|
|
167
|
+
type: Input
|
|
168
|
+
}] } });
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Generated bundle index. Do not edit.
|
|
172
|
+
*/
|
|
173
|
+
|
|
174
|
+
export { ImngArrayGridDirective, ImngKendoGridArrayModule, KendoArrayBasedComponent };
|
|
175
|
+
//# sourceMappingURL=imng-kendo-grid-array.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imng-kendo-grid-array.mjs","sources":["../../../../libs/imng-kendo-grid-array/src/lib/kendo-array-grid.directive.ts","../../../../libs/imng-kendo-grid-array/src/lib/imng-kendo-grid-array.module.ts","../../../../libs/imng-kendo-grid-array/src/lib/kendo-array-base-component.ts","../../../../libs/imng-kendo-grid-array/src/imng-kendo-grid-array.ts"],"sourcesContent":["import {\n Directive,\n Input,\n OnInit,\n OnDestroy,\n AfterViewInit,\n} from '@angular/core';\nimport {\n GridComponent,\n PageChangeEvent,\n PagerSettings,\n} from '@progress/kendo-angular-grid';\nimport { Subscribable, Subscriptions } from 'imng-ngrx-utils';\nimport { GridStateChangeEvent, hasHiddenColumns } from 'imng-kendo-grid';\nimport { KendoArrayBasedComponent } from './kendo-array-base-component';\nimport {\n CompositeFilterDescriptor,\n SortDescriptor,\n} from '@progress/kendo-data-query';\n\n@Directive({\n selector: '[imngArrayGrid]',\n})\nexport class ImngArrayGridDirective\n implements OnInit, AfterViewInit, OnDestroy, Subscribable {\n public readonly allSubscriptions = new Subscriptions();\n @Input('imngArrayGrid') public arrayComponent?: KendoArrayBasedComponent<\n object,\n object\n >;\n @Input() public pageable: boolean | PagerSettings = true;\n constructor(public readonly gridComponent: GridComponent) { }\n\n ngOnInit(): void {\n this.gridComponent.reorderable = true;\n this.gridComponent.resizable = true;\n this.gridComponent.filterable = 'menu';\n this.gridComponent.sortable = {\n allowUnsort: true,\n mode: 'multiple',\n };\n this.gridComponent.navigable = true;\n this.gridComponent.pageable = this.pageable || {\n info: true,\n type: 'numeric',\n pageSizes: [5, 10, 20, 50, 100], //NOSONAR\n };\n this.allSubscriptions.push(\n this.gridComponent.dataStateChange.subscribe(\n (t: GridStateChangeEvent) => {\n this.gridComponent.sort = t.sort || [];\n this.gridComponent.pageSize = t.take;\n this.gridComponent.skip = t.skip;\n if (this.arrayComponent?.state) {\n this.arrayComponent.state = t;\n this.arrayComponent.dataStateChange(t);\n this.arrayComponent.markForCheck();\n }\n }\n ),\n this.gridComponent.pageChange.subscribe((t: PageChangeEvent) => {\n this.arrayComponent?.pageChange(t);\n }),\n this.gridComponent.sortChange.subscribe((t: SortDescriptor[]) => {\n this.arrayComponent?.sortChange(t);\n }),\n this.gridComponent.filterChange.subscribe(\n (t: CompositeFilterDescriptor) => {\n this.gridComponent.filter = t;\n if (this.arrayComponent) {\n this.arrayComponent.state.filter = t;\n this.arrayComponent.markForCheck();\n this.arrayComponent.filterChange(t);\n }\n }\n ),\n this.arrayComponent?.gridData$.subscribe((t) => {\n this.gridComponent.data = t;\n })\n );\n\n this.gridComponent.pageSize = this.arrayComponent?.state.take || 20; //NOSONAR\n this.gridComponent.filter = this.arrayComponent?.state.filter || {\n logic: 'and',\n filters: [],\n };\n this.gridComponent.skip = this.arrayComponent?.state.skip || 0;\n this.gridComponent.sort = this.arrayComponent?.state.sort || [];\n this.gridComponent.data = this.arrayComponent?.gridData || [];\n if (this.arrayComponent) {\n this.arrayComponent.hasHiddenColumns$ =\n this.gridComponent.columnVisibilityChange.pipe(\n hasHiddenColumns(this.gridComponent)\n );\n }\n }\n\n ngAfterViewInit(): void {\n this.arrayComponent?.markForCheck();\n }\n\n ngOnDestroy(): void {\n this.allSubscriptions.unsubscribeAll();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ImngArrayGridDirective } from './kendo-array-grid.directive';\nimport { ImngKendoGridModule } from 'imng-kendo-grid';\nimport { GridModule } from '@progress/kendo-angular-grid';\n\n@NgModule({\n declarations: [ImngArrayGridDirective],\n imports: [CommonModule, ImngKendoGridModule, GridModule],\n exports: [ImngArrayGridDirective],\n})\nexport class ImngKendoGridArrayModule {}\n","import {\n DataStateChangeEvent,\n SortSettings,\n PageChangeEvent,\n} from '@progress/kendo-angular-grid';\nimport { Input, ChangeDetectorRef, OnDestroy, Component } from '@angular/core';\nimport {\n process,\n State,\n CompositeFilterDescriptor,\n SortDescriptor,\n} from '@progress/kendo-data-query';\nimport { ODataResult } from 'imng-kendo-odata';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Subscribable, Subscriptions } from 'imng-ngrx-utils';\n\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\n@Component({ template: '' })\nexport abstract class KendoArrayBasedComponent<PARENT_ENTITY, LISTED_ENTITY>\n implements OnDestroy, Subscribable {\n public readonly allSubscriptions = new Subscriptions();\n /**\n * This will allow you to provide a visual indicator that some of the columns have been hidden.\n */\n public hasHiddenColumns$: Observable<boolean> | undefined;\n @Input() public item?: PARENT_ENTITY;\n\n private _detail: LISTED_ENTITY[] = [];\n @Input()\n public set detail(value: LISTED_ENTITY[]) {\n this._detail = value || [];\n this.gridData = process(this._detail, this.state);\n this.changeDetectorRef?.markForCheck();\n }\n\n /**\n * A properties enum to make kendo grid columns definitions type safe\n * {@example <kendo-grid-column [field]=\"props.FIELD_NAME\">}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public abstract readonly props: any; //NOSONAR\n public state: State = {\n skip: 0,\n take: 10,\n };\n\n public readonly sortSettings: SortSettings = {\n allowUnsort: true,\n mode: 'multiple',\n };\n\n private _gridData: ODataResult<LISTED_ENTITY> | LISTED_ENTITY[] = [];\n public gridData$ = new BehaviorSubject<\n ODataResult<LISTED_ENTITY> | LISTED_ENTITY[]\n >({ data: [], total: 0 });\n public get gridData(): ODataResult<LISTED_ENTITY> | LISTED_ENTITY[] {\n return this._gridData;\n }\n public set gridData(value: ODataResult<LISTED_ENTITY> | LISTED_ENTITY[]) {\n this._gridData = value;\n this.gridData$.next(value);\n this.markForCheck();\n }\n\n constructor(\n public readonly changeDetectorRef: ChangeDetectorRef | null = null\n ) { }\n\n public readonly markForCheck = (): void =>\n this.changeDetectorRef?.markForCheck();\n\n public dataStateChange(state: DataStateChangeEvent | State): void {\n this.state = state;\n this.gridData = process(this._detail, this.state);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public pageChange(t: PageChangeEvent): void {\n //This is intentional\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public filterChange(t: CompositeFilterDescriptor): void {\n //This is intentional\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public sortChange(t: SortDescriptor[]): void {\n //This is intentional\n }\n\n public ngOnDestroy(): void {\n this.allSubscriptions.unsubscribeAll();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, Input, Directive, NgModule } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import * as i1 from '@progress/kendo-angular-grid';
|
|
5
|
+
import { GridModule } from '@progress/kendo-angular-grid';
|
|
6
|
+
import { Subscriptions } from 'imng-ngrx-utils';
|
|
7
|
+
import { hasHiddenColumns, ImngKendoGridModule } from 'imng-kendo-grid';
|
|
8
|
+
import { process } from '@progress/kendo-data-query';
|
|
9
|
+
import { BehaviorSubject } from 'rxjs';
|
|
10
|
+
|
|
11
|
+
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
12
|
+
class KendoArrayBasedComponent {
|
|
13
|
+
constructor(changeDetectorRef = null) {
|
|
14
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
15
|
+
this.allSubscriptions = new Subscriptions();
|
|
16
|
+
this._detail = [];
|
|
17
|
+
this.state = {
|
|
18
|
+
skip: 0,
|
|
19
|
+
take: 10,
|
|
20
|
+
};
|
|
21
|
+
this.sortSettings = {
|
|
22
|
+
allowUnsort: true,
|
|
23
|
+
mode: 'multiple',
|
|
24
|
+
};
|
|
25
|
+
this._gridData = [];
|
|
26
|
+
this.gridData$ = new BehaviorSubject({ data: [], total: 0 });
|
|
27
|
+
this.markForCheck = () => this.changeDetectorRef?.markForCheck();
|
|
28
|
+
}
|
|
29
|
+
set detail(value) {
|
|
30
|
+
this._detail = value || [];
|
|
31
|
+
this.gridData = process(this._detail, this.state);
|
|
32
|
+
this.changeDetectorRef?.markForCheck();
|
|
33
|
+
}
|
|
34
|
+
get gridData() {
|
|
35
|
+
return this._gridData;
|
|
36
|
+
}
|
|
37
|
+
set gridData(value) {
|
|
38
|
+
this._gridData = value;
|
|
39
|
+
this.gridData$.next(value);
|
|
40
|
+
this.markForCheck();
|
|
41
|
+
}
|
|
42
|
+
dataStateChange(state) {
|
|
43
|
+
this.state = state;
|
|
44
|
+
this.gridData = process(this._detail, this.state);
|
|
45
|
+
}
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
47
|
+
pageChange(t) {
|
|
48
|
+
//This is intentional
|
|
49
|
+
}
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
51
|
+
filterChange(t) {
|
|
52
|
+
//This is intentional
|
|
53
|
+
}
|
|
54
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
55
|
+
sortChange(t) {
|
|
56
|
+
//This is intentional
|
|
57
|
+
}
|
|
58
|
+
ngOnDestroy() {
|
|
59
|
+
this.allSubscriptions.unsubscribeAll();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
KendoArrayBasedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: KendoArrayBasedComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
+
KendoArrayBasedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: KendoArrayBasedComponent, selector: "ng-component", inputs: { item: "item", detail: "detail" }, ngImport: i0, template: '', isInline: true });
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: KendoArrayBasedComponent, decorators: [{
|
|
65
|
+
type: Component,
|
|
66
|
+
args: [{ template: '' }]
|
|
67
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { item: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], detail: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}] } });
|
|
72
|
+
|
|
73
|
+
class ImngArrayGridDirective {
|
|
74
|
+
constructor(gridComponent) {
|
|
75
|
+
this.gridComponent = gridComponent;
|
|
76
|
+
this.allSubscriptions = new Subscriptions();
|
|
77
|
+
this.pageable = true;
|
|
78
|
+
}
|
|
79
|
+
ngOnInit() {
|
|
80
|
+
this.gridComponent.reorderable = true;
|
|
81
|
+
this.gridComponent.resizable = true;
|
|
82
|
+
this.gridComponent.filterable = 'menu';
|
|
83
|
+
this.gridComponent.sortable = {
|
|
84
|
+
allowUnsort: true,
|
|
85
|
+
mode: 'multiple',
|
|
86
|
+
};
|
|
87
|
+
this.gridComponent.navigable = true;
|
|
88
|
+
this.gridComponent.pageable = this.pageable || {
|
|
89
|
+
info: true,
|
|
90
|
+
type: 'numeric',
|
|
91
|
+
pageSizes: [5, 10, 20, 50, 100], //NOSONAR
|
|
92
|
+
};
|
|
93
|
+
this.allSubscriptions.push(this.gridComponent.dataStateChange.subscribe((t) => {
|
|
94
|
+
this.gridComponent.sort = t.sort || [];
|
|
95
|
+
this.gridComponent.pageSize = t.take;
|
|
96
|
+
this.gridComponent.skip = t.skip;
|
|
97
|
+
if (this.arrayComponent?.state) {
|
|
98
|
+
this.arrayComponent.state = t;
|
|
99
|
+
this.arrayComponent.dataStateChange(t);
|
|
100
|
+
this.arrayComponent.markForCheck();
|
|
101
|
+
}
|
|
102
|
+
}), this.gridComponent.pageChange.subscribe((t) => {
|
|
103
|
+
this.arrayComponent?.pageChange(t);
|
|
104
|
+
}), this.gridComponent.sortChange.subscribe((t) => {
|
|
105
|
+
this.arrayComponent?.sortChange(t);
|
|
106
|
+
}), this.gridComponent.filterChange.subscribe((t) => {
|
|
107
|
+
this.gridComponent.filter = t;
|
|
108
|
+
if (this.arrayComponent) {
|
|
109
|
+
this.arrayComponent.state.filter = t;
|
|
110
|
+
this.arrayComponent.markForCheck();
|
|
111
|
+
this.arrayComponent.filterChange(t);
|
|
112
|
+
}
|
|
113
|
+
}), this.arrayComponent?.gridData$.subscribe((t) => {
|
|
114
|
+
this.gridComponent.data = t;
|
|
115
|
+
}));
|
|
116
|
+
this.gridComponent.pageSize = this.arrayComponent?.state.take || 20; //NOSONAR
|
|
117
|
+
this.gridComponent.filter = this.arrayComponent?.state.filter || {
|
|
118
|
+
logic: 'and',
|
|
119
|
+
filters: [],
|
|
120
|
+
};
|
|
121
|
+
this.gridComponent.skip = this.arrayComponent?.state.skip || 0;
|
|
122
|
+
this.gridComponent.sort = this.arrayComponent?.state.sort || [];
|
|
123
|
+
this.gridComponent.data = this.arrayComponent?.gridData || [];
|
|
124
|
+
if (this.arrayComponent) {
|
|
125
|
+
this.arrayComponent.hasHiddenColumns$ =
|
|
126
|
+
this.gridComponent.columnVisibilityChange.pipe(hasHiddenColumns(this.gridComponent));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
ngAfterViewInit() {
|
|
130
|
+
this.arrayComponent?.markForCheck();
|
|
131
|
+
}
|
|
132
|
+
ngOnDestroy() {
|
|
133
|
+
this.allSubscriptions.unsubscribeAll();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
ImngArrayGridDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngArrayGridDirective, deps: [{ token: i1.GridComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
137
|
+
ImngArrayGridDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: ImngArrayGridDirective, selector: "[imngArrayGrid]", inputs: { arrayComponent: ["imngArrayGrid", "arrayComponent"], pageable: "pageable" }, ngImport: i0 });
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngArrayGridDirective, decorators: [{
|
|
139
|
+
type: Directive,
|
|
140
|
+
args: [{
|
|
141
|
+
selector: '[imngArrayGrid]',
|
|
142
|
+
}]
|
|
143
|
+
}], ctorParameters: function () { return [{ type: i1.GridComponent }]; }, propDecorators: { arrayComponent: [{
|
|
144
|
+
type: Input,
|
|
145
|
+
args: ['imngArrayGrid']
|
|
146
|
+
}], pageable: [{
|
|
147
|
+
type: Input
|
|
148
|
+
}] } });
|
|
149
|
+
|
|
150
|
+
class ImngKendoGridArrayModule {
|
|
151
|
+
}
|
|
152
|
+
ImngKendoGridArrayModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridArrayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
153
|
+
ImngKendoGridArrayModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridArrayModule, declarations: [ImngArrayGridDirective], imports: [CommonModule, ImngKendoGridModule, GridModule], exports: [ImngArrayGridDirective] });
|
|
154
|
+
ImngKendoGridArrayModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridArrayModule, imports: [[CommonModule, ImngKendoGridModule, GridModule]] });
|
|
155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridArrayModule, decorators: [{
|
|
156
|
+
type: NgModule,
|
|
157
|
+
args: [{
|
|
158
|
+
declarations: [ImngArrayGridDirective],
|
|
159
|
+
imports: [CommonModule, ImngKendoGridModule, GridModule],
|
|
160
|
+
exports: [ImngArrayGridDirective],
|
|
161
|
+
}]
|
|
162
|
+
}] });
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Generated bundle index. Do not edit.
|
|
166
|
+
*/
|
|
167
|
+
|
|
168
|
+
export { ImngArrayGridDirective, ImngKendoGridArrayModule, KendoArrayBasedComponent };
|
|
169
|
+
//# sourceMappingURL=imng-kendo-grid-array.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imng-kendo-grid-array.mjs","sources":["../../../../libs/imng-kendo-grid-array/src/lib/kendo-array-base-component.ts","../../../../libs/imng-kendo-grid-array/src/lib/kendo-array-grid.directive.ts","../../../../libs/imng-kendo-grid-array/src/lib/imng-kendo-grid-array.module.ts","../../../../libs/imng-kendo-grid-array/src/imng-kendo-grid-array.ts"],"sourcesContent":["import {\n DataStateChangeEvent,\n SortSettings,\n PageChangeEvent,\n} from '@progress/kendo-angular-grid';\nimport { Input, ChangeDetectorRef, OnDestroy, Component } from '@angular/core';\nimport {\n process,\n State,\n CompositeFilterDescriptor,\n SortDescriptor,\n} from '@progress/kendo-data-query';\nimport { ODataResult } from 'imng-kendo-odata';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Subscribable, Subscriptions } from 'imng-ngrx-utils';\n\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\n@Component({ template: '' })\nexport abstract class KendoArrayBasedComponent<PARENT_ENTITY, LISTED_ENTITY>\n implements OnDestroy, Subscribable {\n public readonly allSubscriptions = new Subscriptions();\n /**\n * This will allow you to provide a visual indicator that some of the columns have been hidden.\n */\n public hasHiddenColumns$: Observable<boolean> | undefined;\n @Input() public item?: PARENT_ENTITY;\n\n private _detail: LISTED_ENTITY[] = [];\n @Input()\n public set detail(value: LISTED_ENTITY[]) {\n this._detail = value || [];\n this.gridData = process(this._detail, this.state);\n this.changeDetectorRef?.markForCheck();\n }\n\n /**\n * A properties enum to make kendo grid columns definitions type safe\n * {@example <kendo-grid-column [field]=\"props.FIELD_NAME\">}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public abstract readonly props: any; //NOSONAR\n public state: State = {\n skip: 0,\n take: 10,\n };\n\n public readonly sortSettings: SortSettings = {\n allowUnsort: true,\n mode: 'multiple',\n };\n\n private _gridData: ODataResult<LISTED_ENTITY> | LISTED_ENTITY[] = [];\n public gridData$ = new BehaviorSubject<\n ODataResult<LISTED_ENTITY> | LISTED_ENTITY[]\n >({ data: [], total: 0 });\n public get gridData(): ODataResult<LISTED_ENTITY> | LISTED_ENTITY[] {\n return this._gridData;\n }\n public set gridData(value: ODataResult<LISTED_ENTITY> | LISTED_ENTITY[]) {\n this._gridData = value;\n this.gridData$.next(value);\n this.markForCheck();\n }\n\n constructor(\n public readonly changeDetectorRef: ChangeDetectorRef | null = null\n ) { }\n\n public readonly markForCheck = (): void =>\n this.changeDetectorRef?.markForCheck();\n\n public dataStateChange(state: DataStateChangeEvent | State): void {\n this.state = state;\n this.gridData = process(this._detail, this.state);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public pageChange(t: PageChangeEvent): void {\n //This is intentional\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public filterChange(t: CompositeFilterDescriptor): void {\n //This is intentional\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public sortChange(t: SortDescriptor[]): void {\n //This is intentional\n }\n\n public ngOnDestroy(): void {\n this.allSubscriptions.unsubscribeAll();\n }\n}\n","import {\n Directive,\n Input,\n OnInit,\n OnDestroy,\n AfterViewInit,\n} from '@angular/core';\nimport {\n GridComponent,\n PageChangeEvent,\n PagerSettings,\n} from '@progress/kendo-angular-grid';\nimport { Subscribable, Subscriptions } from 'imng-ngrx-utils';\nimport { GridStateChangeEvent, hasHiddenColumns } from 'imng-kendo-grid';\nimport { KendoArrayBasedComponent } from './kendo-array-base-component';\nimport {\n CompositeFilterDescriptor,\n SortDescriptor,\n} from '@progress/kendo-data-query';\n\n@Directive({\n selector: '[imngArrayGrid]',\n})\nexport class ImngArrayGridDirective\n implements OnInit, AfterViewInit, OnDestroy, Subscribable {\n public readonly allSubscriptions = new Subscriptions();\n @Input('imngArrayGrid') public arrayComponent?: KendoArrayBasedComponent<\n object,\n object\n >;\n @Input() public pageable: boolean | PagerSettings = true;\n constructor(public readonly gridComponent: GridComponent) { }\n\n ngOnInit(): void {\n this.gridComponent.reorderable = true;\n this.gridComponent.resizable = true;\n this.gridComponent.filterable = 'menu';\n this.gridComponent.sortable = {\n allowUnsort: true,\n mode: 'multiple',\n };\n this.gridComponent.navigable = true;\n this.gridComponent.pageable = this.pageable || {\n info: true,\n type: 'numeric',\n pageSizes: [5, 10, 20, 50, 100], //NOSONAR\n };\n this.allSubscriptions.push(\n this.gridComponent.dataStateChange.subscribe(\n (t: GridStateChangeEvent) => {\n this.gridComponent.sort = t.sort || [];\n this.gridComponent.pageSize = t.take;\n this.gridComponent.skip = t.skip;\n if (this.arrayComponent?.state) {\n this.arrayComponent.state = t;\n this.arrayComponent.dataStateChange(t);\n this.arrayComponent.markForCheck();\n }\n }\n ),\n this.gridComponent.pageChange.subscribe((t: PageChangeEvent) => {\n this.arrayComponent?.pageChange(t);\n }),\n this.gridComponent.sortChange.subscribe((t: SortDescriptor[]) => {\n this.arrayComponent?.sortChange(t);\n }),\n this.gridComponent.filterChange.subscribe(\n (t: CompositeFilterDescriptor) => {\n this.gridComponent.filter = t;\n if (this.arrayComponent) {\n this.arrayComponent.state.filter = t;\n this.arrayComponent.markForCheck();\n this.arrayComponent.filterChange(t);\n }\n }\n ),\n this.arrayComponent?.gridData$.subscribe((t) => {\n this.gridComponent.data = t;\n })\n );\n\n this.gridComponent.pageSize = this.arrayComponent?.state.take || 20; //NOSONAR\n this.gridComponent.filter = this.arrayComponent?.state.filter || {\n logic: 'and',\n filters: [],\n };\n this.gridComponent.skip = this.arrayComponent?.state.skip || 0;\n this.gridComponent.sort = this.arrayComponent?.state.sort || [];\n this.gridComponent.data = this.arrayComponent?.gridData || [];\n if (this.arrayComponent) {\n this.arrayComponent.hasHiddenColumns$ =\n this.gridComponent.columnVisibilityChange.pipe(\n hasHiddenColumns(this.gridComponent)\n );\n }\n }\n\n ngAfterViewInit(): void {\n this.arrayComponent?.markForCheck();\n }\n\n ngOnDestroy(): void {\n this.allSubscriptions.unsubscribeAll();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ImngArrayGridDirective } from './kendo-array-grid.directive';\nimport { ImngKendoGridModule } from 'imng-kendo-grid';\nimport { GridModule } from '@progress/kendo-angular-grid';\n\n@NgModule({\n declarations: [ImngArrayGridDirective],\n imports: [CommonModule, ImngKendoGridModule, GridModule],\n exports: [ImngArrayGridDirective],\n})\nexport class ImngKendoGridArrayModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./kendo-array-grid.directive";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "imng-kendo-grid";
|
|
5
|
+
import * as i4 from "@progress/kendo-angular-grid";
|
|
6
|
+
export declare class ImngKendoGridArrayModule {
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ImngKendoGridArrayModule, never>;
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ImngKendoGridArrayModule, [typeof i1.ImngArrayGridDirective], [typeof i2.CommonModule, typeof i3.ImngKendoGridModule, typeof i4.GridModule], [typeof i1.ImngArrayGridDirective]>;
|
|
9
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<ImngKendoGridArrayModule>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { DataStateChangeEvent, SortSettings, PageChangeEvent } from '@progress/kendo-angular-grid';
|
|
2
|
+
import { ChangeDetectorRef, OnDestroy } from '@angular/core';
|
|
3
|
+
import { State, CompositeFilterDescriptor, SortDescriptor } from '@progress/kendo-data-query';
|
|
4
|
+
import { ODataResult } from 'imng-kendo-odata';
|
|
5
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
6
|
+
import { Subscribable, Subscriptions } from 'imng-ngrx-utils';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export declare abstract class KendoArrayBasedComponent<PARENT_ENTITY, LISTED_ENTITY> implements OnDestroy, Subscribable {
|
|
9
|
+
readonly changeDetectorRef: ChangeDetectorRef | null;
|
|
10
|
+
readonly allSubscriptions: Subscriptions;
|
|
11
|
+
/**
|
|
12
|
+
* This will allow you to provide a visual indicator that some of the columns have been hidden.
|
|
13
|
+
*/
|
|
14
|
+
hasHiddenColumns$: Observable<boolean> | undefined;
|
|
15
|
+
item?: PARENT_ENTITY;
|
|
16
|
+
private _detail;
|
|
17
|
+
set detail(value: LISTED_ENTITY[]);
|
|
18
|
+
/**
|
|
19
|
+
* A properties enum to make kendo grid columns definitions type safe
|
|
20
|
+
* {@example <kendo-grid-column [field]="props.FIELD_NAME">}
|
|
21
|
+
*/
|
|
22
|
+
abstract readonly props: any;
|
|
23
|
+
state: State;
|
|
24
|
+
readonly sortSettings: SortSettings;
|
|
25
|
+
private _gridData;
|
|
26
|
+
gridData$: BehaviorSubject<LISTED_ENTITY[] | ODataResult<LISTED_ENTITY>>;
|
|
27
|
+
get gridData(): ODataResult<LISTED_ENTITY> | LISTED_ENTITY[];
|
|
28
|
+
set gridData(value: ODataResult<LISTED_ENTITY> | LISTED_ENTITY[]);
|
|
29
|
+
constructor(changeDetectorRef?: ChangeDetectorRef | null);
|
|
30
|
+
readonly markForCheck: () => void;
|
|
31
|
+
dataStateChange(state: DataStateChangeEvent | State): void;
|
|
32
|
+
pageChange(t: PageChangeEvent): void;
|
|
33
|
+
filterChange(t: CompositeFilterDescriptor): void;
|
|
34
|
+
sortChange(t: SortDescriptor[]): void;
|
|
35
|
+
ngOnDestroy(): void;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KendoArrayBasedComponent<any, any>, never>;
|
|
37
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KendoArrayBasedComponent<any, any>, "ng-component", never, { "item": "item"; "detail": "detail"; }, {}, never, never>;
|
|
38
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { OnInit, OnDestroy, AfterViewInit } from '@angular/core';
|
|
2
|
+
import { GridComponent, PagerSettings } from '@progress/kendo-angular-grid';
|
|
3
|
+
import { Subscribable, Subscriptions } from 'imng-ngrx-utils';
|
|
4
|
+
import { KendoArrayBasedComponent } from './kendo-array-base-component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class ImngArrayGridDirective implements OnInit, AfterViewInit, OnDestroy, Subscribable {
|
|
7
|
+
readonly gridComponent: GridComponent;
|
|
8
|
+
readonly allSubscriptions: Subscriptions;
|
|
9
|
+
arrayComponent?: KendoArrayBasedComponent<object, object>;
|
|
10
|
+
pageable: boolean | PagerSettings;
|
|
11
|
+
constructor(gridComponent: GridComponent);
|
|
12
|
+
ngOnInit(): void;
|
|
13
|
+
ngAfterViewInit(): void;
|
|
14
|
+
ngOnDestroy(): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ImngArrayGridDirective, never>;
|
|
16
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ImngArrayGridDirective, "[imngArrayGrid]", never, { "arrayComponent": "imngArrayGrid"; "pageable": "pageable"; }, {}, never>;
|
|
17
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "imng-kendo-grid-array",
|
|
3
|
+
"version": "4.102.10",
|
|
4
|
+
"keywords": [
|
|
5
|
+
"Angular",
|
|
6
|
+
"NGRX",
|
|
7
|
+
"Kendo",
|
|
8
|
+
"DataGrid"
|
|
9
|
+
],
|
|
10
|
+
"peerDependencies": {
|
|
11
|
+
"@angular/common": "^13.2.0",
|
|
12
|
+
"@angular/core": "^13.2.0",
|
|
13
|
+
"imng-kendo-grid": "4.102.10"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"tslib": "^2.3.0"
|
|
17
|
+
},
|
|
18
|
+
"license": "MIT",
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "https://github.com/ikemtz/AngularMonoRepo.git"
|
|
22
|
+
},
|
|
23
|
+
"icon": "https://avatars.githubusercontent.com/u/6444182?v=4",
|
|
24
|
+
"private": false,
|
|
25
|
+
"author": {
|
|
26
|
+
"name": "Isaac Martinez <@ikemtz>",
|
|
27
|
+
"url": "https://github.com/ikemtz"
|
|
28
|
+
},
|
|
29
|
+
"module": "fesm2015/imng-kendo-grid-array.mjs",
|
|
30
|
+
"es2020": "fesm2020/imng-kendo-grid-array.mjs",
|
|
31
|
+
"esm2020": "esm2020/imng-kendo-grid-array.mjs",
|
|
32
|
+
"fesm2020": "fesm2020/imng-kendo-grid-array.mjs",
|
|
33
|
+
"fesm2015": "fesm2015/imng-kendo-grid-array.mjs",
|
|
34
|
+
"typings": "imng-kendo-grid-array.d.ts",
|
|
35
|
+
"exports": {
|
|
36
|
+
"./package.json": {
|
|
37
|
+
"default": "./package.json"
|
|
38
|
+
},
|
|
39
|
+
".": {
|
|
40
|
+
"types": "./imng-kendo-grid-array.d.ts",
|
|
41
|
+
"esm2020": "./esm2020/imng-kendo-grid-array.mjs",
|
|
42
|
+
"es2020": "./fesm2020/imng-kendo-grid-array.mjs",
|
|
43
|
+
"es2015": "./fesm2015/imng-kendo-grid-array.mjs",
|
|
44
|
+
"node": "./fesm2015/imng-kendo-grid-array.mjs",
|
|
45
|
+
"default": "./fesm2020/imng-kendo-grid-array.mjs"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"sideEffects": false
|
|
49
|
+
}
|