imng-kendo-grid 4.62.1 → 4.102.13
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/{esm2015/imng-kendo-grid.js → esm2020/imng-kendo-grid.mjs} +0 -0
- package/esm2020/index.mjs +6 -0
- package/esm2020/lib/grid-header-component/grid-header.component.mjs +184 -0
- package/esm2020/lib/imng-kendo-grid.module.mjs +20 -0
- package/esm2020/lib/kendo-child-column-component/kendo-child-column-template.component.mjs +92 -0
- package/esm2020/lib/kendo-grid-state-change-event.mjs +2 -0
- package/esm2020/lib/kendo-has-hidden-columns.mjs +5 -0
- package/{esm2015/testing/imng-kendo-grid-testing.js → esm2020/testing/imng-kendo-grid-testing.mjs} +2 -2
- package/esm2020/testing/index.mjs +2 -0
- package/esm2020/testing/lib/mock-datagrid.mjs +21 -0
- package/fesm2015/imng-kendo-grid-testing.mjs +28 -0
- package/fesm2015/imng-kendo-grid-testing.mjs.map +1 -0
- package/fesm2015/imng-kendo-grid.mjs +301 -0
- package/fesm2015/imng-kendo-grid.mjs.map +1 -0
- package/fesm2020/imng-kendo-grid-testing.mjs +28 -0
- package/fesm2020/imng-kendo-grid-testing.mjs.map +1 -0
- package/fesm2020/imng-kendo-grid.mjs +301 -0
- package/fesm2020/imng-kendo-grid.mjs.map +1 -0
- package/imng-kendo-grid.d.ts +0 -1
- package/index.d.ts +5 -4
- package/lib/grid-header-component/grid-header.component.d.ts +16 -0
- package/lib/imng-kendo-grid.module.d.ts +10 -0
- package/lib/kendo-child-column-component/kendo-child-column-template.component.d.ts +21 -0
- package/lib/kendo-grid-state-change-event.d.ts +8 -0
- package/lib/kendo-has-hidden-columns.d.ts +2 -0
- package/package.json +38 -21
- package/testing/README.md +3 -0
- package/testing/imng-kendo-grid-testing.d.ts +1 -2
- package/testing/index.d.ts +1 -2
- package/testing/lib/mock-datagrid.d.ts +17 -0
- package/testing/package.json +5 -5
- package/bundles/imng-kendo-grid-testing.umd.js +0 -362
- package/bundles/imng-kendo-grid-testing.umd.js.map +0 -1
- package/bundles/imng-kendo-grid.umd.js +0 -566
- package/bundles/imng-kendo-grid.umd.js.map +0 -1
- package/esm2015/index.js +0 -4
- package/esm2015/lib/editable-data-grid.directive.js +0 -57
- package/esm2015/lib/editable-data-grid.module.js +0 -18
- package/esm2015/lib/grid-data-entry.helper.js +0 -100
- package/esm2015/testing/index.js +0 -2
- package/esm2015/testing/kendo-grid-tests.js +0 -20
- package/esm2015/testing/public_api.js +0 -2
- package/fesm2015/imng-kendo-grid-testing.js +0 -27
- package/fesm2015/imng-kendo-grid-testing.js.map +0 -1
- package/fesm2015/imng-kendo-grid.js +0 -176
- package/fesm2015/imng-kendo-grid.js.map +0 -1
- package/imng-kendo-grid.d.ts.map +0 -1
- package/index.d.ts.map +0 -1
- package/lib/editable-data-grid.directive.d.ts +0 -19
- package/lib/editable-data-grid.directive.d.ts.map +0 -1
- package/lib/editable-data-grid.module.d.ts +0 -9
- package/lib/editable-data-grid.module.d.ts.map +0 -1
- package/lib/grid-data-entry.helper.d.ts +0 -34
- package/lib/grid-data-entry.helper.d.ts.map +0 -1
- package/testing/imng-kendo-grid-testing.d.ts.map +0 -1
- package/testing/index.d.ts.map +0 -1
- package/testing/kendo-grid-tests.d.ts +0 -10
- package/testing/kendo-grid-tests.d.ts.map +0 -1
- package/testing/public_api.d.ts +0 -2
- 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
|