imng-kendo-grid 4.89.7 → 4.102.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/{esm2015/imng-kendo-grid.js → esm2020/imng-kendo-grid.mjs} +0 -0
  2. package/esm2020/index.mjs +6 -0
  3. package/esm2020/lib/grid-header-component/grid-header.component.mjs +184 -0
  4. package/esm2020/lib/imng-kendo-grid.module.mjs +20 -0
  5. package/esm2020/lib/kendo-child-column-component/kendo-child-column-template.component.mjs +92 -0
  6. package/esm2020/lib/kendo-grid-state-change-event.mjs +2 -0
  7. package/esm2020/lib/kendo-has-hidden-columns.mjs +5 -0
  8. package/{esm2015/testing/imng-kendo-grid-testing.js → esm2020/testing/imng-kendo-grid-testing.mjs} +2 -2
  9. package/esm2020/testing/index.mjs +2 -0
  10. package/esm2020/testing/lib/mock-datagrid.mjs +21 -0
  11. package/fesm2015/imng-kendo-grid-testing.mjs +28 -0
  12. package/fesm2015/imng-kendo-grid-testing.mjs.map +1 -0
  13. package/fesm2015/imng-kendo-grid.mjs +301 -0
  14. package/fesm2015/imng-kendo-grid.mjs.map +1 -0
  15. package/fesm2020/imng-kendo-grid-testing.mjs +28 -0
  16. package/fesm2020/imng-kendo-grid-testing.mjs.map +1 -0
  17. package/fesm2020/imng-kendo-grid.mjs +301 -0
  18. package/fesm2020/imng-kendo-grid.mjs.map +1 -0
  19. package/imng-kendo-grid.d.ts +0 -1
  20. package/index.d.ts +5 -4
  21. package/lib/grid-header-component/grid-header.component.d.ts +16 -0
  22. package/lib/imng-kendo-grid.module.d.ts +10 -0
  23. package/lib/kendo-child-column-component/kendo-child-column-template.component.d.ts +21 -0
  24. package/lib/kendo-grid-state-change-event.d.ts +8 -0
  25. package/lib/kendo-has-hidden-columns.d.ts +2 -0
  26. package/package.json +38 -21
  27. package/testing/README.md +3 -0
  28. package/testing/imng-kendo-grid-testing.d.ts +1 -2
  29. package/testing/index.d.ts +1 -2
  30. package/testing/lib/mock-datagrid.d.ts +17 -0
  31. package/testing/package.json +5 -5
  32. package/bundles/imng-kendo-grid-testing.umd.js +0 -362
  33. package/bundles/imng-kendo-grid-testing.umd.js.map +0 -1
  34. package/bundles/imng-kendo-grid.umd.js +0 -566
  35. package/bundles/imng-kendo-grid.umd.js.map +0 -1
  36. package/esm2015/index.js +0 -4
  37. package/esm2015/lib/editable-data-grid.directive.js +0 -57
  38. package/esm2015/lib/editable-data-grid.module.js +0 -18
  39. package/esm2015/lib/grid-data-entry.helper.js +0 -100
  40. package/esm2015/testing/index.js +0 -2
  41. package/esm2015/testing/kendo-grid-tests.js +0 -20
  42. package/esm2015/testing/public_api.js +0 -2
  43. package/fesm2015/imng-kendo-grid-testing.js +0 -27
  44. package/fesm2015/imng-kendo-grid-testing.js.map +0 -1
  45. package/fesm2015/imng-kendo-grid.js +0 -176
  46. package/fesm2015/imng-kendo-grid.js.map +0 -1
  47. package/imng-kendo-grid.d.ts.map +0 -1
  48. package/index.d.ts.map +0 -1
  49. package/lib/editable-data-grid.directive.d.ts +0 -19
  50. package/lib/editable-data-grid.directive.d.ts.map +0 -1
  51. package/lib/editable-data-grid.module.d.ts +0 -9
  52. package/lib/editable-data-grid.module.d.ts.map +0 -1
  53. package/lib/grid-data-entry.helper.d.ts +0 -34
  54. package/lib/grid-data-entry.helper.d.ts.map +0 -1
  55. package/testing/imng-kendo-grid-testing.d.ts.map +0 -1
  56. package/testing/index.d.ts.map +0 -1
  57. package/testing/kendo-grid-tests.d.ts +0 -10
  58. package/testing/kendo-grid-tests.d.ts.map +0 -1
  59. package/testing/public_api.d.ts +0 -2
  60. package/testing/public_api.d.ts.map +0 -1
@@ -0,0 +1,301 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, Input, Output, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import * as i2 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i1 from '@progress/kendo-angular-grid';
6
+ import { GridModule } from '@progress/kendo-angular-grid';
7
+ import { map } from 'rxjs';
8
+
9
+ class ImngGridHeaderComponent {
10
+ constructor() {
11
+ this.entityName = '';
12
+ this.hideColumnChooser = false;
13
+ this.hideClearFilters = false;
14
+ this.hideReloadData = false;
15
+ this.hideExports = false;
16
+ this.addItemClicked = new EventEmitter();
17
+ this.clearFiltersClicked = new EventEmitter();
18
+ this.reloadEntitiesClicked = new EventEmitter();
19
+ }
20
+ }
21
+ ImngGridHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngGridHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
+ ImngGridHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: ImngGridHeaderComponent, selector: "imng-kendo-odata-grid-header", inputs: { entityName: "entityName", hideColumnChooser: "hideColumnChooser", hideClearFilters: "hideClearFilters", hideReloadData: "hideReloadData", hideExports: "hideExports", hasHiddenColumns$: "hasHiddenColumns$" }, outputs: { addItemClicked: "addItemClicked", clearFiltersClicked: "clearFiltersClicked", reloadEntitiesClicked: "reloadEntitiesClicked" }, ngImport: i0, template: `<div class="mr-5 pr-5">
23
+ <button
24
+ *ngIf="entityName"
25
+ type="button"
26
+ title="Add {{ entityName }}"
27
+ primary="true"
28
+ (click)="addItemClicked.emit()"
29
+ class="btn btn-sm btn-primary mx-1"
30
+ >
31
+ <span class="k-icon k-i-plus-circle"></span> Add {{ entityName }}
32
+ </button>
33
+ <button
34
+ *ngIf="hideClearFilters !== true"
35
+ type="button"
36
+ title="Clear Filters"
37
+ (click)="clearFiltersClicked.emit()"
38
+ class="btn btn-sm mx-1"
39
+ >
40
+ <span class="k-icon k-i-filter-clear"></span> Clear Filters
41
+ </button>
42
+ <button
43
+ *ngIf="hideReloadData !== true"
44
+ type="button"
45
+ title="Clear Cache And Reload Data"
46
+ (click)="reloadEntitiesClicked.emit()"
47
+ class="btn btn-sm mx-1"
48
+ >
49
+ <span class="k-icon k-i-reset"></span> Reload Data
50
+ </button>
51
+ <button
52
+ *ngIf="hideExports !== true"
53
+ type="button"
54
+ title="Export To PDF"
55
+ kendoGridPDFCommand
56
+ icon="file-pdf"
57
+ class="mx-1"
58
+ >
59
+ Export to PDF
60
+ </button>
61
+ <button
62
+ *ngIf="hideExports !== true"
63
+ type="button"
64
+ title="Export To Excel"
65
+ kendoGridExcelCommand
66
+ icon="file-excel"
67
+ class="mx-1"
68
+ >
69
+ Export To Excel
70
+ </button>
71
+ <kendo-grid-column-chooser
72
+ *ngIf="hideColumnChooser !== true"
73
+ title="Columns"
74
+ [allowHideAll]="true"
75
+ [autoSync]="true"
76
+ [ngClass]="{
77
+ 'text-primary': (hasHiddenColumns$ | async)
78
+ }"
79
+ ></kendo-grid-column-chooser>
80
+ </div> `, isInline: true, styles: [".btn-sm{height:30px;border-radius:2px;background-color:#f5f5f5;border-color:#00000014}.btn-primary{background-color:#007bff}.k-icon{padding-bottom:3px}.k-bare{border-color:#00000014!important;background-color:#f5f5f5!important;background-image:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.02))!important}\n"], components: [{ type: i1.ColumnChooserComponent, selector: "kendo-grid-column-chooser", inputs: ["autoSync", "allowHideAll"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i2.AsyncPipe } });
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngGridHeaderComponent, decorators: [{
82
+ type: Component,
83
+ args: [{
84
+ selector: 'imng-kendo-odata-grid-header',
85
+ template: `<div class="mr-5 pr-5">
86
+ <button
87
+ *ngIf="entityName"
88
+ type="button"
89
+ title="Add {{ entityName }}"
90
+ primary="true"
91
+ (click)="addItemClicked.emit()"
92
+ class="btn btn-sm btn-primary mx-1"
93
+ >
94
+ <span class="k-icon k-i-plus-circle"></span> Add {{ entityName }}
95
+ </button>
96
+ <button
97
+ *ngIf="hideClearFilters !== true"
98
+ type="button"
99
+ title="Clear Filters"
100
+ (click)="clearFiltersClicked.emit()"
101
+ class="btn btn-sm mx-1"
102
+ >
103
+ <span class="k-icon k-i-filter-clear"></span> Clear Filters
104
+ </button>
105
+ <button
106
+ *ngIf="hideReloadData !== true"
107
+ type="button"
108
+ title="Clear Cache And Reload Data"
109
+ (click)="reloadEntitiesClicked.emit()"
110
+ class="btn btn-sm mx-1"
111
+ >
112
+ <span class="k-icon k-i-reset"></span> Reload Data
113
+ </button>
114
+ <button
115
+ *ngIf="hideExports !== true"
116
+ type="button"
117
+ title="Export To PDF"
118
+ kendoGridPDFCommand
119
+ icon="file-pdf"
120
+ class="mx-1"
121
+ >
122
+ Export to PDF
123
+ </button>
124
+ <button
125
+ *ngIf="hideExports !== true"
126
+ type="button"
127
+ title="Export To Excel"
128
+ kendoGridExcelCommand
129
+ icon="file-excel"
130
+ class="mx-1"
131
+ >
132
+ Export To Excel
133
+ </button>
134
+ <kendo-grid-column-chooser
135
+ *ngIf="hideColumnChooser !== true"
136
+ title="Columns"
137
+ [allowHideAll]="true"
138
+ [autoSync]="true"
139
+ [ngClass]="{
140
+ 'text-primary': (hasHiddenColumns$ | async)
141
+ }"
142
+ ></kendo-grid-column-chooser>
143
+ </div> `,
144
+ styles: [
145
+ `
146
+ .btn-sm {
147
+ height: 30px;
148
+ border-radius: 2px;
149
+ background-color: #f5f5f5;
150
+ border-color: rgba(0, 0, 0, 0.08);
151
+ }
152
+ .btn-primary {
153
+ background-color: #007bff;
154
+ }
155
+ .k-icon {
156
+ padding-bottom: 3px;
157
+ }
158
+ .k-bare {
159
+ border-color: rgba(0, 0, 0, 0.08) !important;
160
+ background-color: #f5f5f5 !important;
161
+ background-image: linear-gradient(
162
+ rgba(0, 0, 0, 0),
163
+ rgba(0, 0, 0, 0.02)
164
+ ) !important;
165
+ }
166
+ `,
167
+ ],
168
+ }]
169
+ }], propDecorators: { entityName: [{
170
+ type: Input
171
+ }], hideColumnChooser: [{
172
+ type: Input
173
+ }], hideClearFilters: [{
174
+ type: Input
175
+ }], hideReloadData: [{
176
+ type: Input
177
+ }], hideExports: [{
178
+ type: Input
179
+ }], hasHiddenColumns$: [{
180
+ type: Input
181
+ }], addItemClicked: [{
182
+ type: Output
183
+ }], clearFiltersClicked: [{
184
+ type: Output
185
+ }], reloadEntitiesClicked: [{
186
+ type: Output
187
+ }] } });
188
+
189
+ class ImngGridChildColumnTemplateComponent {
190
+ constructor(changeDetectorRef) {
191
+ this.changeDetectorRef = changeDetectorRef;
192
+ this._data = [];
193
+ this.currentData = [];
194
+ this.initialized = false;
195
+ this.showMoreClicked = new EventEmitter();
196
+ this.field = '';
197
+ this.visibleRecCount = 5; //NOSONAR
198
+ this.showMore = true;
199
+ this.toolTipJoinCharacter = ';';
200
+ }
201
+ set data(value) {
202
+ this._data = value;
203
+ if (this.initialized) {
204
+ this.ngOnInit();
205
+ this.changeDetectorRef.markForCheck();
206
+ }
207
+ }
208
+ get data() {
209
+ return this._data;
210
+ }
211
+ ngOnInit() {
212
+ this.currentData = (this.data || [])
213
+ .filter((val) => (typeof val === 'string' ? val.length > 0 : true))
214
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
215
+ .map((t) => t[this.field]); //NOSONAR
216
+ this.initialized = true;
217
+ }
218
+ formatToolTip() {
219
+ return this.currentData
220
+ .filter((_val, index) => index >= this.visibleRecCount)
221
+ .join(`${this.toolTipJoinCharacter} `);
222
+ }
223
+ moreClicked() {
224
+ this.showMoreClicked.emit();
225
+ }
226
+ }
227
+ ImngGridChildColumnTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngGridChildColumnTemplateComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
228
+ ImngGridChildColumnTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: ImngGridChildColumnTemplateComponent, selector: "imng-kendo-grid-child-column-template", inputs: { field: "field", visibleRecCount: "visibleRecCount", showMore: "showMore", toolTipJoinCharacter: "toolTipJoinCharacter", data: "data" }, outputs: { showMoreClicked: "showMoreClicked" }, ngImport: i0, template: `<div *ngFor="let item of currentData | slice: 0:visibleRecCount">
229
+ {{ item }}
230
+ </div>
231
+ <button
232
+ type="button"
233
+ *ngIf="showMore && (currentData?.length || 0) > visibleRecCount"
234
+ class="btn btn-sm btn-primary"
235
+ [title]="formatToolTip()"
236
+ (click)="moreClicked()"
237
+ >
238
+ More ...
239
+ <span class="badge bg-secondary">{{
240
+ currentData.length - visibleRecCount
241
+ }}</span>
242
+ </button>`, isInline: true, directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "slice": i2.SlicePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngGridChildColumnTemplateComponent, decorators: [{
244
+ type: Component,
245
+ args: [{
246
+ selector: 'imng-kendo-grid-child-column-template',
247
+ template: `<div *ngFor="let item of currentData | slice: 0:visibleRecCount">
248
+ {{ item }}
249
+ </div>
250
+ <button
251
+ type="button"
252
+ *ngIf="showMore && (currentData?.length || 0) > visibleRecCount"
253
+ class="btn btn-sm btn-primary"
254
+ [title]="formatToolTip()"
255
+ (click)="moreClicked()"
256
+ >
257
+ More ...
258
+ <span class="badge bg-secondary">{{
259
+ currentData.length - visibleRecCount
260
+ }}</span>
261
+ </button>`,
262
+ changeDetection: ChangeDetectionStrategy.OnPush,
263
+ }]
264
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { showMoreClicked: [{
265
+ type: Output
266
+ }], field: [{
267
+ type: Input
268
+ }], visibleRecCount: [{
269
+ type: Input
270
+ }], showMore: [{
271
+ type: Input
272
+ }], toolTipJoinCharacter: [{
273
+ type: Input
274
+ }], data: [{
275
+ type: Input
276
+ }] } });
277
+
278
+ class ImngKendoGridModule {
279
+ }
280
+ ImngKendoGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
281
+ ImngKendoGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridModule, declarations: [ImngGridHeaderComponent, ImngGridChildColumnTemplateComponent], imports: [CommonModule, GridModule], exports: [ImngGridHeaderComponent, ImngGridChildColumnTemplateComponent] });
282
+ ImngKendoGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridModule, imports: [[CommonModule, GridModule]] });
283
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridModule, decorators: [{
284
+ type: NgModule,
285
+ args: [{
286
+ declarations: [ImngGridHeaderComponent, ImngGridChildColumnTemplateComponent],
287
+ imports: [CommonModule, GridModule],
288
+ exports: [ImngGridHeaderComponent, ImngGridChildColumnTemplateComponent],
289
+ }]
290
+ }] });
291
+
292
+ function hasHiddenColumns(gridComponent) {
293
+ return map(() => gridComponent.columns.some((s) => s.hidden));
294
+ }
295
+
296
+ /**
297
+ * Generated bundle index. Do not edit.
298
+ */
299
+
300
+ export { ImngGridChildColumnTemplateComponent, ImngGridHeaderComponent, ImngKendoGridModule, hasHiddenColumns };
301
+ //# sourceMappingURL=imng-kendo-grid.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imng-kendo-grid.mjs","sources":["../../../../libs/imng-kendo-grid/src/lib/grid-header-component/grid-header.component.ts","../../../../libs/imng-kendo-grid/src/lib/kendo-child-column-component/kendo-child-column-template.component.ts","../../../../libs/imng-kendo-grid/src/lib/imng-kendo-grid.module.ts","../../../../libs/imng-kendo-grid/src/lib/kendo-has-hidden-columns.ts","../../../../libs/imng-kendo-grid/src/imng-kendo-grid.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'imng-kendo-odata-grid-header',\n template: `<div class=\"mr-5 pr-5\">\n <button\n *ngIf=\"entityName\"\n type=\"button\"\n title=\"Add {{ entityName }}\"\n primary=\"true\"\n (click)=\"addItemClicked.emit()\"\n class=\"btn btn-sm btn-primary mx-1\"\n >\n <span class=\"k-icon k-i-plus-circle\"></span> Add {{ entityName }}\n </button>\n <button\n *ngIf=\"hideClearFilters !== true\"\n type=\"button\"\n title=\"Clear Filters\"\n (click)=\"clearFiltersClicked.emit()\"\n class=\"btn btn-sm mx-1\"\n >\n <span class=\"k-icon k-i-filter-clear\"></span> Clear Filters\n </button>\n <button\n *ngIf=\"hideReloadData !== true\"\n type=\"button\"\n title=\"Clear Cache And Reload Data\"\n (click)=\"reloadEntitiesClicked.emit()\"\n class=\"btn btn-sm mx-1\"\n >\n <span class=\"k-icon k-i-reset\"></span> Reload Data\n </button>\n <button\n *ngIf=\"hideExports !== true\"\n type=\"button\"\n title=\"Export To PDF\"\n kendoGridPDFCommand\n icon=\"file-pdf\"\n class=\"mx-1\"\n >\n Export to PDF\n </button>\n <button\n *ngIf=\"hideExports !== true\"\n type=\"button\"\n title=\"Export To Excel\"\n kendoGridExcelCommand\n icon=\"file-excel\"\n class=\"mx-1\"\n >\n Export To Excel\n </button>\n <kendo-grid-column-chooser\n *ngIf=\"hideColumnChooser !== true\"\n title=\"Columns\"\n [allowHideAll]=\"true\"\n [autoSync]=\"true\"\n [ngClass]=\"{\n 'text-primary': (hasHiddenColumns$ | async)\n }\"\n ></kendo-grid-column-chooser>\n </div> `,\n styles: [\n `\n .btn-sm {\n height: 30px;\n border-radius: 2px;\n background-color: #f5f5f5;\n border-color: rgba(0, 0, 0, 0.08);\n }\n .btn-primary {\n background-color: #007bff;\n }\n .k-icon {\n padding-bottom: 3px;\n }\n .k-bare {\n border-color: rgba(0, 0, 0, 0.08) !important;\n background-color: #f5f5f5 !important;\n background-image: linear-gradient(\n rgba(0, 0, 0, 0),\n rgba(0, 0, 0, 0.02)\n ) !important;\n }\n `,\n ],\n})\nexport class ImngGridHeaderComponent {\n @Input()\n public entityName = '';\n @Input()\n public hideColumnChooser = false;\n @Input()\n public hideClearFilters = false;\n @Input()\n public hideReloadData = false;\n @Input()\n public hideExports = false;\n @Input()\n public hasHiddenColumns$: Observable<boolean> | undefined;\n @Output()\n public addItemClicked = new EventEmitter();\n @Output()\n public clearFiltersClicked = new EventEmitter();\n @Output()\n public reloadEntitiesClicked = new EventEmitter();\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n OnInit,\n ChangeDetectorRef,\n} from '@angular/core';\n\n@Component({\n selector: 'imng-kendo-grid-child-column-template',\n template: `<div *ngFor=\"let item of currentData | slice: 0:visibleRecCount\">\n {{ item }}\n </div>\n <button\n type=\"button\"\n *ngIf=\"showMore && (currentData?.length || 0) > visibleRecCount\"\n class=\"btn btn-sm btn-primary\"\n [title]=\"formatToolTip()\"\n (click)=\"moreClicked()\"\n >\n More ...\n <span class=\"badge bg-secondary\">{{\n currentData.length - visibleRecCount\n }}</span>\n </button>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ImngGridChildColumnTemplateComponent implements OnInit {\n private _data: unknown[] = [];\n public currentData: unknown[] = [];\n private initialized = false;\n\n @Output() showMoreClicked = new EventEmitter();\n @Input() public field = '';\n @Input() public visibleRecCount = 5; //NOSONAR\n @Input() public showMore = true;\n @Input() public toolTipJoinCharacter = ';';\n @Input() set data(value: unknown[]) {\n this._data = value;\n if (this.initialized) {\n this.ngOnInit();\n this.changeDetectorRef.markForCheck();\n }\n }\n get data(): unknown[] {\n return this._data;\n }\n\n constructor(public readonly changeDetectorRef: ChangeDetectorRef) { }\n\n public ngOnInit(): void {\n this.currentData = (this.data || [])\n .filter((val) => (typeof val === 'string' ? val.length > 0 : true))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map((t: any) => t[this.field]); //NOSONAR\n this.initialized = true;\n }\n public formatToolTip(): string {\n return this.currentData\n .filter((_val, index) => index >= this.visibleRecCount)\n .join(`${this.toolTipJoinCharacter} `);\n }\n\n public moreClicked(): void {\n this.showMoreClicked.emit();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GridModule } from '@progress/kendo-angular-grid';\nimport { ImngGridHeaderComponent } from './grid-header-component/grid-header.component';\nimport { ImngGridChildColumnTemplateComponent } from './kendo-child-column-component/kendo-child-column-template.component';\n\n@NgModule({\n declarations: [ImngGridHeaderComponent, ImngGridChildColumnTemplateComponent],\n imports: [CommonModule, GridModule],\n exports: [ImngGridHeaderComponent, ImngGridChildColumnTemplateComponent],\n})\nexport class ImngKendoGridModule {}\n","import { GridComponent } from '@progress/kendo-angular-grid';\nimport { map } from 'rxjs';\n\nexport function hasHiddenColumns(gridComponent: GridComponent) {\n return map(() => gridComponent.columns.some((s) => s.hidden));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { EventEmitter } from '@angular/core';
2
+
3
+ class MockGridComponent {
4
+ constructor() {
5
+ this.dataStateChange = new EventEmitter(false);
6
+ this.pageChange = new EventEmitter(false);
7
+ this.sortChange = new EventEmitter(false);
8
+ this.filterChange = new EventEmitter(false);
9
+ this.columnVisibilityChange = new EventEmitter(false);
10
+ this.data = { total: 0, data: [] };
11
+ this.reorderable = true;
12
+ this.resizable = true;
13
+ this.navigable = true;
14
+ this.loading = false;
15
+ this.filterable = 'menu';
16
+ this.sortable = {
17
+ allowUnsort: true,
18
+ mode: 'multiple',
19
+ };
20
+ }
21
+ }
22
+
23
+ /**
24
+ * Generated bundle index. Do not edit.
25
+ */
26
+
27
+ export { MockGridComponent };
28
+ //# sourceMappingURL=imng-kendo-grid-testing.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imng-kendo-grid-testing.mjs","sources":["../../../../libs/imng-kendo-grid/testing/src/lib/mock-datagrid.ts","../../../../libs/imng-kendo-grid/testing/src/imng-kendo-grid-testing.ts"],"sourcesContent":["import { EventEmitter } from '@angular/core';\nimport {\n ColumnVisibilityChangeEvent,\n DataStateChangeEvent,\n FilterableSettings,\n PageChangeEvent,\n SortSettings,\n} from '@progress/kendo-angular-grid';\nimport {\n CompositeFilterDescriptor,\n DataResult,\n SortDescriptor,\n} from '@progress/kendo-data-query';\n\nexport class MockGridComponent {\n public dataStateChange = new EventEmitter<DataStateChangeEvent>(false);\n public pageChange = new EventEmitter<PageChangeEvent>(false);\n public sortChange = new EventEmitter<Array<SortDescriptor>>(false);\n public filterChange = new EventEmitter<CompositeFilterDescriptor>(false);\n public columnVisibilityChange = new EventEmitter<ColumnVisibilityChangeEvent>(\n false\n );\n public data: never[] | DataResult = { total: 0, data: [] };\n public reorderable = true;\n public resizable = true;\n public navigable = true;\n public loading = false;\n public filterable: FilterableSettings = 'menu';\n public sortable: SortSettings = {\n allowUnsort: true,\n mode: 'multiple',\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;MAca,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;AACS,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,CAAuB,KAAK,CAAC,CAAC;AAChE,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,CAAkB,KAAK,CAAC,CAAC;AACtD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,CAAwB,KAAK,CAAC,CAAC;AAC5D,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,CAA4B,KAAK,CAAC,CAAC;AAClE,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,YAAY,CAC9C,KAAK,CACN,CAAC;QACK,IAAI,CAAA,IAAA,GAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACpD,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;QACnB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACjB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACjB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAChB,IAAU,CAAA,UAAA,GAAuB,MAAM,CAAC;AACxC,QAAA,IAAA,CAAA,QAAQ,GAAiB;AAC9B,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,IAAI,EAAE,UAAU;SACjB,CAAC;KACH;AAAA;;AChCD;;AAEG;;;;"}
@@ -0,0 +1,301 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, Input, Output, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import * as i2 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i1 from '@progress/kendo-angular-grid';
6
+ import { GridModule } from '@progress/kendo-angular-grid';
7
+ import { map } from 'rxjs';
8
+
9
+ class ImngGridHeaderComponent {
10
+ constructor() {
11
+ this.entityName = '';
12
+ this.hideColumnChooser = false;
13
+ this.hideClearFilters = false;
14
+ this.hideReloadData = false;
15
+ this.hideExports = false;
16
+ this.addItemClicked = new EventEmitter();
17
+ this.clearFiltersClicked = new EventEmitter();
18
+ this.reloadEntitiesClicked = new EventEmitter();
19
+ }
20
+ }
21
+ ImngGridHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngGridHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
+ ImngGridHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: ImngGridHeaderComponent, selector: "imng-kendo-odata-grid-header", inputs: { entityName: "entityName", hideColumnChooser: "hideColumnChooser", hideClearFilters: "hideClearFilters", hideReloadData: "hideReloadData", hideExports: "hideExports", hasHiddenColumns$: "hasHiddenColumns$" }, outputs: { addItemClicked: "addItemClicked", clearFiltersClicked: "clearFiltersClicked", reloadEntitiesClicked: "reloadEntitiesClicked" }, ngImport: i0, template: `<div class="mr-5 pr-5">
23
+ <button
24
+ *ngIf="entityName"
25
+ type="button"
26
+ title="Add {{ entityName }}"
27
+ primary="true"
28
+ (click)="addItemClicked.emit()"
29
+ class="btn btn-sm btn-primary mx-1"
30
+ >
31
+ <span class="k-icon k-i-plus-circle"></span> Add {{ entityName }}
32
+ </button>
33
+ <button
34
+ *ngIf="hideClearFilters !== true"
35
+ type="button"
36
+ title="Clear Filters"
37
+ (click)="clearFiltersClicked.emit()"
38
+ class="btn btn-sm mx-1"
39
+ >
40
+ <span class="k-icon k-i-filter-clear"></span> Clear Filters
41
+ </button>
42
+ <button
43
+ *ngIf="hideReloadData !== true"
44
+ type="button"
45
+ title="Clear Cache And Reload Data"
46
+ (click)="reloadEntitiesClicked.emit()"
47
+ class="btn btn-sm mx-1"
48
+ >
49
+ <span class="k-icon k-i-reset"></span> Reload Data
50
+ </button>
51
+ <button
52
+ *ngIf="hideExports !== true"
53
+ type="button"
54
+ title="Export To PDF"
55
+ kendoGridPDFCommand
56
+ icon="file-pdf"
57
+ class="mx-1"
58
+ >
59
+ Export to PDF
60
+ </button>
61
+ <button
62
+ *ngIf="hideExports !== true"
63
+ type="button"
64
+ title="Export To Excel"
65
+ kendoGridExcelCommand
66
+ icon="file-excel"
67
+ class="mx-1"
68
+ >
69
+ Export To Excel
70
+ </button>
71
+ <kendo-grid-column-chooser
72
+ *ngIf="hideColumnChooser !== true"
73
+ title="Columns"
74
+ [allowHideAll]="true"
75
+ [autoSync]="true"
76
+ [ngClass]="{
77
+ 'text-primary': (hasHiddenColumns$ | async)
78
+ }"
79
+ ></kendo-grid-column-chooser>
80
+ </div> `, isInline: true, styles: [".btn-sm{height:30px;border-radius:2px;background-color:#f5f5f5;border-color:#00000014}.btn-primary{background-color:#007bff}.k-icon{padding-bottom:3px}.k-bare{border-color:#00000014!important;background-color:#f5f5f5!important;background-image:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.02))!important}\n"], components: [{ type: i1.ColumnChooserComponent, selector: "kendo-grid-column-chooser", inputs: ["autoSync", "allowHideAll"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i2.AsyncPipe } });
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngGridHeaderComponent, decorators: [{
82
+ type: Component,
83
+ args: [{
84
+ selector: 'imng-kendo-odata-grid-header',
85
+ template: `<div class="mr-5 pr-5">
86
+ <button
87
+ *ngIf="entityName"
88
+ type="button"
89
+ title="Add {{ entityName }}"
90
+ primary="true"
91
+ (click)="addItemClicked.emit()"
92
+ class="btn btn-sm btn-primary mx-1"
93
+ >
94
+ <span class="k-icon k-i-plus-circle"></span> Add {{ entityName }}
95
+ </button>
96
+ <button
97
+ *ngIf="hideClearFilters !== true"
98
+ type="button"
99
+ title="Clear Filters"
100
+ (click)="clearFiltersClicked.emit()"
101
+ class="btn btn-sm mx-1"
102
+ >
103
+ <span class="k-icon k-i-filter-clear"></span> Clear Filters
104
+ </button>
105
+ <button
106
+ *ngIf="hideReloadData !== true"
107
+ type="button"
108
+ title="Clear Cache And Reload Data"
109
+ (click)="reloadEntitiesClicked.emit()"
110
+ class="btn btn-sm mx-1"
111
+ >
112
+ <span class="k-icon k-i-reset"></span> Reload Data
113
+ </button>
114
+ <button
115
+ *ngIf="hideExports !== true"
116
+ type="button"
117
+ title="Export To PDF"
118
+ kendoGridPDFCommand
119
+ icon="file-pdf"
120
+ class="mx-1"
121
+ >
122
+ Export to PDF
123
+ </button>
124
+ <button
125
+ *ngIf="hideExports !== true"
126
+ type="button"
127
+ title="Export To Excel"
128
+ kendoGridExcelCommand
129
+ icon="file-excel"
130
+ class="mx-1"
131
+ >
132
+ Export To Excel
133
+ </button>
134
+ <kendo-grid-column-chooser
135
+ *ngIf="hideColumnChooser !== true"
136
+ title="Columns"
137
+ [allowHideAll]="true"
138
+ [autoSync]="true"
139
+ [ngClass]="{
140
+ 'text-primary': (hasHiddenColumns$ | async)
141
+ }"
142
+ ></kendo-grid-column-chooser>
143
+ </div> `,
144
+ styles: [
145
+ `
146
+ .btn-sm {
147
+ height: 30px;
148
+ border-radius: 2px;
149
+ background-color: #f5f5f5;
150
+ border-color: rgba(0, 0, 0, 0.08);
151
+ }
152
+ .btn-primary {
153
+ background-color: #007bff;
154
+ }
155
+ .k-icon {
156
+ padding-bottom: 3px;
157
+ }
158
+ .k-bare {
159
+ border-color: rgba(0, 0, 0, 0.08) !important;
160
+ background-color: #f5f5f5 !important;
161
+ background-image: linear-gradient(
162
+ rgba(0, 0, 0, 0),
163
+ rgba(0, 0, 0, 0.02)
164
+ ) !important;
165
+ }
166
+ `,
167
+ ],
168
+ }]
169
+ }], propDecorators: { entityName: [{
170
+ type: Input
171
+ }], hideColumnChooser: [{
172
+ type: Input
173
+ }], hideClearFilters: [{
174
+ type: Input
175
+ }], hideReloadData: [{
176
+ type: Input
177
+ }], hideExports: [{
178
+ type: Input
179
+ }], hasHiddenColumns$: [{
180
+ type: Input
181
+ }], addItemClicked: [{
182
+ type: Output
183
+ }], clearFiltersClicked: [{
184
+ type: Output
185
+ }], reloadEntitiesClicked: [{
186
+ type: Output
187
+ }] } });
188
+
189
+ class ImngGridChildColumnTemplateComponent {
190
+ constructor(changeDetectorRef) {
191
+ this.changeDetectorRef = changeDetectorRef;
192
+ this._data = [];
193
+ this.currentData = [];
194
+ this.initialized = false;
195
+ this.showMoreClicked = new EventEmitter();
196
+ this.field = '';
197
+ this.visibleRecCount = 5; //NOSONAR
198
+ this.showMore = true;
199
+ this.toolTipJoinCharacter = ';';
200
+ }
201
+ set data(value) {
202
+ this._data = value;
203
+ if (this.initialized) {
204
+ this.ngOnInit();
205
+ this.changeDetectorRef.markForCheck();
206
+ }
207
+ }
208
+ get data() {
209
+ return this._data;
210
+ }
211
+ ngOnInit() {
212
+ this.currentData = (this.data || [])
213
+ .filter((val) => (typeof val === 'string' ? val.length > 0 : true))
214
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
215
+ .map((t) => t[this.field]); //NOSONAR
216
+ this.initialized = true;
217
+ }
218
+ formatToolTip() {
219
+ return this.currentData
220
+ .filter((_val, index) => index >= this.visibleRecCount)
221
+ .join(`${this.toolTipJoinCharacter} `);
222
+ }
223
+ moreClicked() {
224
+ this.showMoreClicked.emit();
225
+ }
226
+ }
227
+ ImngGridChildColumnTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngGridChildColumnTemplateComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
228
+ ImngGridChildColumnTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: ImngGridChildColumnTemplateComponent, selector: "imng-kendo-grid-child-column-template", inputs: { field: "field", visibleRecCount: "visibleRecCount", showMore: "showMore", toolTipJoinCharacter: "toolTipJoinCharacter", data: "data" }, outputs: { showMoreClicked: "showMoreClicked" }, ngImport: i0, template: `<div *ngFor="let item of currentData | slice: 0:visibleRecCount">
229
+ {{ item }}
230
+ </div>
231
+ <button
232
+ type="button"
233
+ *ngIf="showMore && (currentData?.length || 0) > visibleRecCount"
234
+ class="btn btn-sm btn-primary"
235
+ [title]="formatToolTip()"
236
+ (click)="moreClicked()"
237
+ >
238
+ More ...
239
+ <span class="badge bg-secondary">{{
240
+ currentData.length - visibleRecCount
241
+ }}</span>
242
+ </button>`, isInline: true, directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "slice": i2.SlicePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngGridChildColumnTemplateComponent, decorators: [{
244
+ type: Component,
245
+ args: [{
246
+ selector: 'imng-kendo-grid-child-column-template',
247
+ template: `<div *ngFor="let item of currentData | slice: 0:visibleRecCount">
248
+ {{ item }}
249
+ </div>
250
+ <button
251
+ type="button"
252
+ *ngIf="showMore && (currentData?.length || 0) > visibleRecCount"
253
+ class="btn btn-sm btn-primary"
254
+ [title]="formatToolTip()"
255
+ (click)="moreClicked()"
256
+ >
257
+ More ...
258
+ <span class="badge bg-secondary">{{
259
+ currentData.length - visibleRecCount
260
+ }}</span>
261
+ </button>`,
262
+ changeDetection: ChangeDetectionStrategy.OnPush,
263
+ }]
264
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { showMoreClicked: [{
265
+ type: Output
266
+ }], field: [{
267
+ type: Input
268
+ }], visibleRecCount: [{
269
+ type: Input
270
+ }], showMore: [{
271
+ type: Input
272
+ }], toolTipJoinCharacter: [{
273
+ type: Input
274
+ }], data: [{
275
+ type: Input
276
+ }] } });
277
+
278
+ class ImngKendoGridModule {
279
+ }
280
+ ImngKendoGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
281
+ ImngKendoGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridModule, declarations: [ImngGridHeaderComponent, ImngGridChildColumnTemplateComponent], imports: [CommonModule, GridModule], exports: [ImngGridHeaderComponent, ImngGridChildColumnTemplateComponent] });
282
+ ImngKendoGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridModule, imports: [[CommonModule, GridModule]] });
283
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngKendoGridModule, decorators: [{
284
+ type: NgModule,
285
+ args: [{
286
+ declarations: [ImngGridHeaderComponent, ImngGridChildColumnTemplateComponent],
287
+ imports: [CommonModule, GridModule],
288
+ exports: [ImngGridHeaderComponent, ImngGridChildColumnTemplateComponent],
289
+ }]
290
+ }] });
291
+
292
+ function hasHiddenColumns(gridComponent) {
293
+ return map(() => gridComponent.columns.some((s) => s.hidden));
294
+ }
295
+
296
+ /**
297
+ * Generated bundle index. Do not edit.
298
+ */
299
+
300
+ export { ImngGridChildColumnTemplateComponent, ImngGridHeaderComponent, ImngKendoGridModule, hasHiddenColumns };
301
+ //# sourceMappingURL=imng-kendo-grid.mjs.map