@skyux/ag-grid 5.7.1 → 5.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/bundles/skyux-ag-grid.umd.js +63 -35
  2. package/documentation.json +57 -57
  3. package/esm2015/lib/modules/ag-grid/ag-grid-wrapper.component.js +8 -1
  4. package/esm2015/lib/modules/ag-grid/ag-grid-wrapper.component.js.map +1 -1
  5. package/esm2015/lib/modules/ag-grid/ag-grid.service.js +4 -2
  6. package/esm2015/lib/modules/ag-grid/ag-grid.service.js.map +1 -1
  7. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.js +8 -1
  8. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.js.map +1 -1
  9. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.js +4 -1
  10. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.js.map +1 -1
  11. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.js +3 -1
  12. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.js.map +1 -1
  13. package/esm2015/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js +31 -24
  14. package/esm2015/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js.map +1 -1
  15. package/esm2015/lib/modules/ag-grid/types/cell-editor-number-params.js +2 -0
  16. package/esm2015/lib/modules/ag-grid/types/cell-editor-number-params.js.map +1 -0
  17. package/esm2015/lib/modules/ag-grid/types/cell-editor-text-params.js +2 -0
  18. package/esm2015/lib/modules/ag-grid/types/cell-editor-text-params.js.map +1 -0
  19. package/esm2015/lib/modules/ag-grid/types/number-properties.js +2 -0
  20. package/esm2015/lib/modules/ag-grid/types/number-properties.js.map +1 -0
  21. package/esm2015/lib/modules/ag-grid/types/text-properties.js +2 -0
  22. package/esm2015/lib/modules/ag-grid/types/text-properties.js.map +1 -0
  23. package/fesm2015/skyux-ag-grid.js +57 -28
  24. package/fesm2015/skyux-ag-grid.js.map +1 -1
  25. package/lib/modules/ag-grid/ag-grid-wrapper.component.d.ts +4 -0
  26. package/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.d.ts +4 -0
  27. package/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.d.ts +4 -2
  28. package/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.d.ts +3 -2
  29. package/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.d.ts +5 -6
  30. package/lib/modules/ag-grid/types/cell-editor-number-params.d.ts +5 -0
  31. package/lib/modules/ag-grid/types/cell-editor-text-params.d.ts +5 -0
  32. package/lib/modules/ag-grid/types/number-properties.d.ts +7 -0
  33. package/lib/modules/ag-grid/types/text-properties.d.ts +6 -0
  34. package/package.json +13 -13
@@ -14,7 +14,7 @@
14
14
  "originalName": "",
15
15
  "children": [
16
16
  {
17
- "id": 542,
17
+ "id": 549,
18
18
  "name": "SkyCellType",
19
19
  "kind": 8,
20
20
  "kindString": "Enumeration",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "children": [
26
26
  {
27
- "id": 543,
27
+ "id": 550,
28
28
  "name": "Autocomplete",
29
29
  "kind": 16,
30
30
  "kindString": "Enumeration member",
@@ -42,7 +42,7 @@
42
42
  "defaultValue": "\"skyCellAutocomplete\""
43
43
  },
44
44
  {
45
- "id": 544,
45
+ "id": 551,
46
46
  "name": "Currency",
47
47
  "kind": 16,
48
48
  "kindString": "Enumeration member",
@@ -60,7 +60,7 @@
60
60
  "defaultValue": "\"skyCellCurrency\""
61
61
  },
62
62
  {
63
- "id": 545,
63
+ "id": 552,
64
64
  "name": "CurrencyValidator",
65
65
  "kind": 16,
66
66
  "kindString": "Enumeration member",
@@ -78,7 +78,7 @@
78
78
  "defaultValue": "\"skyCellCurrencyValidator\""
79
79
  },
80
80
  {
81
- "id": 546,
81
+ "id": 553,
82
82
  "name": "Date",
83
83
  "kind": 16,
84
84
  "kindString": "Enumeration member",
@@ -96,7 +96,7 @@
96
96
  "defaultValue": "\"skyCellDate\""
97
97
  },
98
98
  {
99
- "id": 547,
99
+ "id": 554,
100
100
  "name": "Lookup",
101
101
  "kind": 16,
102
102
  "kindString": "Enumeration member",
@@ -114,7 +114,7 @@
114
114
  "defaultValue": "\"skyCellLookup\""
115
115
  },
116
116
  {
117
- "id": 548,
117
+ "id": 555,
118
118
  "name": "Number",
119
119
  "kind": 16,
120
120
  "kindString": "Enumeration member",
@@ -132,7 +132,7 @@
132
132
  "defaultValue": "\"skyCellNumber\""
133
133
  },
134
134
  {
135
- "id": 549,
135
+ "id": 556,
136
136
  "name": "NumberValidator",
137
137
  "kind": 16,
138
138
  "kindString": "Enumeration member",
@@ -150,7 +150,7 @@
150
150
  "defaultValue": "\"skyCellNumberValidator\""
151
151
  },
152
152
  {
153
- "id": 550,
153
+ "id": 557,
154
154
  "name": "RowSelector",
155
155
  "kind": 16,
156
156
  "kindString": "Enumeration member",
@@ -168,7 +168,7 @@
168
168
  "defaultValue": "\"skyCellRowSelector\""
169
169
  },
170
170
  {
171
- "id": 551,
171
+ "id": 558,
172
172
  "name": "Text",
173
173
  "kind": 16,
174
174
  "kindString": "Enumeration member",
@@ -186,7 +186,7 @@
186
186
  "defaultValue": "\"skyCellText\""
187
187
  },
188
188
  {
189
- "id": 552,
189
+ "id": 559,
190
190
  "name": "Validator",
191
191
  "kind": 16,
192
192
  "kindString": "Enumeration member",
@@ -209,16 +209,16 @@
209
209
  "title": "Enumeration members",
210
210
  "kind": 16,
211
211
  "children": [
212
- 543,
213
- 544,
214
- 545,
215
- 546,
216
- 547,
217
- 548,
218
- 549,
219
212
  550,
220
213
  551,
221
- 552
214
+ 552,
215
+ 553,
216
+ 554,
217
+ 555,
218
+ 556,
219
+ 557,
220
+ 558,
221
+ 559
222
222
  ]
223
223
  }
224
224
  ],
@@ -231,7 +231,7 @@
231
231
  ]
232
232
  },
233
233
  {
234
- "id": 469,
234
+ "id": 476,
235
235
  "name": "SkyAgGridModule",
236
236
  "kind": 128,
237
237
  "kindString": "Class",
@@ -256,7 +256,7 @@
256
256
  "title": "Constructors",
257
257
  "kind": 512,
258
258
  "children": [
259
- 470
259
+ 477
260
260
  ]
261
261
  }
262
262
  ],
@@ -269,7 +269,7 @@
269
269
  ]
270
270
  },
271
271
  {
272
- "id": 472,
272
+ "id": 479,
273
273
  "name": "SkyAgGridService",
274
274
  "kind": 128,
275
275
  "kindString": "Class",
@@ -293,7 +293,7 @@
293
293
  ],
294
294
  "children": [
295
295
  {
296
- "id": 473,
296
+ "id": 480,
297
297
  "name": "constructor",
298
298
  "kind": 512,
299
299
  "kindString": "Constructor",
@@ -307,14 +307,14 @@
307
307
  ],
308
308
  "signatures": [
309
309
  {
310
- "id": 474,
310
+ "id": 481,
311
311
  "name": "new SkyAgGridService",
312
312
  "kind": 16384,
313
313
  "kindString": "Constructor signature",
314
314
  "flags": {},
315
315
  "parameters": [
316
316
  {
317
- "id": 475,
317
+ "id": 482,
318
318
  "name": "agGridAdapterService",
319
319
  "kind": 32768,
320
320
  "kindString": "Parameter",
@@ -325,7 +325,7 @@
325
325
  }
326
326
  },
327
327
  {
328
- "id": 476,
328
+ "id": 483,
329
329
  "name": "themeSvc",
330
330
  "kind": 32768,
331
331
  "kindString": "Parameter",
@@ -350,7 +350,7 @@
350
350
  }
351
351
  },
352
352
  {
353
- "id": 477,
353
+ "id": 484,
354
354
  "name": "resources",
355
355
  "kind": 32768,
356
356
  "kindString": "Parameter",
@@ -377,14 +377,14 @@
377
377
  ],
378
378
  "type": {
379
379
  "type": "reference",
380
- "id": 472,
380
+ "id": 479,
381
381
  "name": "SkyAgGridService"
382
382
  }
383
383
  }
384
384
  ]
385
385
  },
386
386
  {
387
- "id": 485,
387
+ "id": 492,
388
388
  "name": "getEditableGridOptions",
389
389
  "kind": 2048,
390
390
  "kindString": "Method",
@@ -400,7 +400,7 @@
400
400
  ],
401
401
  "signatures": [
402
402
  {
403
- "id": 486,
403
+ "id": 493,
404
404
  "name": "getEditableGridOptions",
405
405
  "kind": 4096,
406
406
  "kindString": "Call signature",
@@ -411,7 +411,7 @@
411
411
  },
412
412
  "parameters": [
413
413
  {
414
- "id": 487,
414
+ "id": 494,
415
415
  "name": "args",
416
416
  "kind": 32768,
417
417
  "kindString": "Parameter",
@@ -419,7 +419,7 @@
419
419
  "comment": {},
420
420
  "type": {
421
421
  "type": "reference",
422
- "id": 562,
422
+ "id": 569,
423
423
  "name": "SkyGetGridOptionsArgs"
424
424
  }
425
425
  }
@@ -434,7 +434,7 @@
434
434
  ]
435
435
  },
436
436
  {
437
- "id": 482,
437
+ "id": 489,
438
438
  "name": "getGridOptions",
439
439
  "kind": 2048,
440
440
  "kindString": "Method",
@@ -450,7 +450,7 @@
450
450
  ],
451
451
  "signatures": [
452
452
  {
453
- "id": 483,
453
+ "id": 490,
454
454
  "name": "getGridOptions",
455
455
  "kind": 4096,
456
456
  "kindString": "Call signature",
@@ -461,7 +461,7 @@
461
461
  },
462
462
  "parameters": [
463
463
  {
464
- "id": 484,
464
+ "id": 491,
465
465
  "name": "args",
466
466
  "kind": 32768,
467
467
  "kindString": "Parameter",
@@ -469,7 +469,7 @@
469
469
  "comment": {},
470
470
  "type": {
471
471
  "type": "reference",
472
- "id": 562,
472
+ "id": 569,
473
473
  "name": "SkyGetGridOptionsArgs"
474
474
  }
475
475
  }
@@ -484,7 +484,7 @@
484
484
  ]
485
485
  },
486
486
  {
487
- "id": 480,
487
+ "id": 487,
488
488
  "name": "ngOnDestroy",
489
489
  "kind": 2048,
490
490
  "kindString": "Method",
@@ -500,7 +500,7 @@
500
500
  ],
501
501
  "signatures": [
502
502
  {
503
- "id": 481,
503
+ "id": 488,
504
504
  "name": "ngOnDestroy",
505
505
  "kind": 4096,
506
506
  "kindString": "Call signature",
@@ -526,16 +526,16 @@
526
526
  "title": "Constructors",
527
527
  "kind": 512,
528
528
  "children": [
529
- 473
529
+ 480
530
530
  ]
531
531
  },
532
532
  {
533
533
  "title": "Methods",
534
534
  "kind": 2048,
535
535
  "children": [
536
- 485,
537
- 482,
538
- 480
536
+ 492,
537
+ 489,
538
+ 487
539
539
  ]
540
540
  }
541
541
  ],
@@ -556,14 +556,14 @@
556
556
  ]
557
557
  },
558
558
  {
559
- "id": 562,
559
+ "id": 569,
560
560
  "name": "SkyGetGridOptionsArgs",
561
561
  "kind": 256,
562
562
  "kindString": "Interface",
563
563
  "flags": {},
564
564
  "children": [
565
565
  {
566
- "id": 563,
566
+ "id": 570,
567
567
  "name": "gridOptions",
568
568
  "kind": 1024,
569
569
  "kindString": "Property",
@@ -586,7 +586,7 @@
586
586
  }
587
587
  },
588
588
  {
589
- "id": 564,
589
+ "id": 571,
590
590
  "name": "locale",
591
591
  "kind": 1024,
592
592
  "kindString": "Property",
@@ -614,8 +614,8 @@
614
614
  "title": "Properties",
615
615
  "kind": 1024,
616
616
  "children": [
617
- 563,
618
- 564
617
+ 570,
618
+ 571
619
619
  ]
620
620
  }
621
621
  ],
@@ -633,22 +633,22 @@
633
633
  "title": "Enumerations",
634
634
  "kind": 8,
635
635
  "children": [
636
- 542
636
+ 549
637
637
  ]
638
638
  },
639
639
  {
640
640
  "title": "Classes",
641
641
  "kind": 128,
642
642
  "children": [
643
- 469,
644
- 472
643
+ 476,
644
+ 479
645
645
  ]
646
646
  },
647
647
  {
648
648
  "title": "Interfaces",
649
649
  "kind": 256,
650
650
  "children": [
651
- 562
651
+ 569
652
652
  ]
653
653
  }
654
654
  ],
@@ -689,7 +689,7 @@
689
689
  {
690
690
  "fileName": "data-entry-grid-docs-demo-edit-modal.component.ts",
691
691
  "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/basic/data-entry-grid-docs-demo-edit-modal.component.ts",
692
- "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport {\n SkyAgGridService,\n SkyAutocompleteProperties,\n SkyCellType,\n SkyDatepickerProperties,\n} from '@skyux/ag-grid';\nimport { SkyAutocompleteSelectionChange } from '@skyux/lookup';\nimport { SkyModalInstance } from '@skyux/modals';\n\nimport {\n ColDef,\n GridApi,\n GridOptions,\n GridReadyEvent,\n ICellEditorParams,\n NewValueParams,\n RowNode,\n} from 'ag-grid-community';\n\nimport {\n SKY_DEPARTMENTS,\n SKY_JOB_TITLES,\n SkyAgGridDemoRow,\n} from './data-entry-grid-docs-demo-data';\nimport { SkyDataEntryGridEditModalContext } from './data-entry-grid-docs-demo-edit-modal-context';\n\n@Component({\n selector: 'app-data-entry-grid-docs-demo-edit-modal',\n templateUrl: './data-entry-grid-docs-demo-edit-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDataEntryGridEditModalComponent {\n public columnDefs: ColDef[];\n private gridApi: GridApi | undefined;\n public gridData: SkyAgGridDemoRow[];\n public gridOptions: GridOptions;\n\n constructor(\n private agGridService: SkyAgGridService,\n public context: SkyDataEntryGridEditModalContext,\n public instance: SkyModalInstance,\n private changeDetector: ChangeDetectorRef\n ) {\n this.columnDefs = [\n {\n field: 'name',\n headerName: 'Name',\n },\n {\n field: 'age',\n headerName: 'Age',\n type: SkyCellType.Number,\n maxWidth: 100,\n editable: true,\n },\n {\n field: 'startDate',\n headerName: 'Start date',\n type: SkyCellType.Date,\n sort: 'asc',\n },\n {\n field: 'endDate',\n headerName: 'End date',\n type: SkyCellType.Date,\n editable: true,\n cellEditorParams: (\n params: ICellEditorParams\n ): { skyComponentProperties: SkyDatepickerProperties } => {\n return { skyComponentProperties: { minDate: params.data.startDate } };\n },\n },\n {\n field: 'department',\n headerName: 'Department',\n type: SkyCellType.Autocomplete,\n editable: true,\n cellEditorParams: (\n params: ICellEditorParams\n ): { skyComponentProperties: SkyAutocompleteProperties } => {\n return {\n skyComponentProperties: {\n data: SKY_DEPARTMENTS,\n selectionChange: (\n change: SkyAutocompleteSelectionChange\n ): void => {\n this.departmentSelectionChange(change, params.node);\n },\n },\n };\n },\n onCellValueChanged: (event: NewValueParams): void => {\n if (event.newValue !== event.oldValue) {\n this.clearJobTitle(event.node);\n }\n },\n },\n {\n field: 'jobTitle',\n headerName: 'Title',\n type: SkyCellType.Autocomplete,\n editable: true,\n cellEditorParams: (\n params: ICellEditorParams\n ): { skyComponentProperties: SkyAutocompleteProperties } => {\n const selectedDepartment: string =\n params.data &&\n params.data.department &&\n params.data.department.name;\n const editParams: {\n skyComponentProperties: SkyAutocompleteProperties;\n } = { skyComponentProperties: { data: [] } };\n\n if (selectedDepartment) {\n editParams.skyComponentProperties.data =\n SKY_JOB_TITLES[selectedDepartment];\n }\n return editParams;\n },\n },\n ];\n this.gridData = this.context.gridData;\n this.gridOptions = {\n columnDefs: this.columnDefs,\n onGridReady: (gridReadyEvent) => this.onGridReady(gridReadyEvent),\n };\n this.gridOptions = this.agGridService.getEditableGridOptions({\n gridOptions: this.gridOptions,\n });\n this.changeDetector.markForCheck();\n }\n\n public onGridReady(gridReadyEvent: GridReadyEvent): void {\n this.gridApi = gridReadyEvent.api;\n this.gridApi.sizeColumnsToFit();\n this.changeDetector.markForCheck();\n }\n\n private departmentSelectionChange(\n change: SkyAutocompleteSelectionChange,\n node: RowNode\n ): void {\n if (change.selectedItem && change.selectedItem !== node.data.department) {\n this.clearJobTitle(node);\n }\n }\n\n private clearJobTitle(node: RowNode | null): void {\n if (node) {\n node.data.jobTitle = undefined;\n this.changeDetector.markForCheck();\n if (this.gridApi) {\n this.gridApi.refreshCells({ rowNodes: [node] });\n }\n }\n }\n}\n"
692
+ "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport {\n SkyAgGridService,\n SkyAutocompleteProperties,\n SkyCellType,\n SkyDatepickerProperties,\n} from '@skyux/ag-grid';\nimport { SkyAutocompleteSelectionChange } from '@skyux/lookup';\nimport { SkyModalInstance } from '@skyux/modals';\n\nimport {\n ColDef,\n GridApi,\n GridOptions,\n GridReadyEvent,\n ICellEditorParams,\n NewValueParams,\n RowNode,\n} from 'ag-grid-community';\n\nimport {\n SKY_DEPARTMENTS,\n SKY_JOB_TITLES,\n SkyAgGridDemoRow,\n} from './data-entry-grid-docs-demo-data';\nimport { SkyDataEntryGridEditModalContext } from './data-entry-grid-docs-demo-edit-modal-context';\n\n@Component({\n selector: 'app-data-entry-grid-docs-demo-edit-modal',\n templateUrl: './data-entry-grid-docs-demo-edit-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDataEntryGridEditModalComponent {\n public columnDefs: ColDef[];\n private gridApi: GridApi | undefined;\n public gridData: SkyAgGridDemoRow[];\n public gridOptions: GridOptions;\n\n constructor(\n private agGridService: SkyAgGridService,\n public context: SkyDataEntryGridEditModalContext,\n public instance: SkyModalInstance,\n private changeDetector: ChangeDetectorRef\n ) {\n this.columnDefs = [\n {\n field: 'name',\n headerName: 'Name',\n type: SkyCellType.Text,\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value): boolean => String(value).length <= 10,\n validatorMessage: `Value exceeds maximum length`,\n },\n },\n cellEditorParams: {\n skyComponentProperties: {\n maxlength: 10,\n },\n },\n editable: true,\n },\n {\n field: 'age',\n headerName: 'Age',\n type: SkyCellType.Number,\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value: any) => value >= 18,\n validatorMessage: `Age must be 18+`,\n },\n },\n maxWidth: 60,\n cellEditorParams: {\n skyComponentProperties: {\n min: 18,\n },\n },\n editable: true,\n },\n {\n field: 'startDate',\n headerName: 'Start date',\n type: SkyCellType.Date,\n sort: 'asc',\n },\n {\n field: 'endDate',\n headerName: 'End date',\n type: SkyCellType.Date,\n editable: true,\n cellEditorParams: (\n params: ICellEditorParams\n ): { skyComponentProperties: SkyDatepickerProperties } => {\n return { skyComponentProperties: { minDate: params.data.startDate } };\n },\n },\n {\n field: 'department',\n headerName: 'Department',\n type: SkyCellType.Autocomplete,\n editable: true,\n cellEditorParams: (\n params: ICellEditorParams\n ): { skyComponentProperties: SkyAutocompleteProperties } => {\n return {\n skyComponentProperties: {\n data: SKY_DEPARTMENTS,\n selectionChange: (\n change: SkyAutocompleteSelectionChange\n ): void => {\n this.departmentSelectionChange(change, params.node);\n },\n },\n };\n },\n onCellValueChanged: (event: NewValueParams): void => {\n if (event.newValue !== event.oldValue) {\n this.clearJobTitle(event.node);\n }\n },\n },\n {\n field: 'jobTitle',\n headerName: 'Title',\n type: SkyCellType.Autocomplete,\n editable: true,\n cellEditorParams: (\n params: ICellEditorParams\n ): { skyComponentProperties: SkyAutocompleteProperties } => {\n const selectedDepartment: string =\n params.data &&\n params.data.department &&\n params.data.department.name;\n const editParams: {\n skyComponentProperties: SkyAutocompleteProperties;\n } = { skyComponentProperties: { data: [] } };\n\n if (selectedDepartment) {\n editParams.skyComponentProperties.data =\n SKY_JOB_TITLES[selectedDepartment];\n }\n return editParams;\n },\n },\n {\n colId: 'validationCurrency',\n field: 'validationCurrency',\n headerName: 'Validation currency',\n type: [SkyCellType.CurrencyValidator],\n editable: true,\n },\n {\n colId: 'validationDate',\n field: 'validationDate',\n headerName: 'Validation date',\n type: [SkyCellType.Date, SkyCellType.Validator],\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value: Date) =>\n !!value && value > new Date(1985, 9, 26),\n validatorMessage: 'Please enter a future date',\n },\n },\n editable: true,\n },\n ];\n this.gridData = this.context.gridData;\n this.gridOptions = {\n columnDefs: this.columnDefs,\n onGridReady: (gridReadyEvent) => this.onGridReady(gridReadyEvent),\n };\n this.gridOptions = this.agGridService.getEditableGridOptions({\n gridOptions: this.gridOptions,\n });\n this.changeDetector.markForCheck();\n }\n\n public onGridReady(gridReadyEvent: GridReadyEvent): void {\n this.gridApi = gridReadyEvent.api;\n this.gridApi.sizeColumnsToFit();\n this.changeDetector.markForCheck();\n }\n\n private departmentSelectionChange(\n change: SkyAutocompleteSelectionChange,\n node: RowNode\n ): void {\n if (change.selectedItem && change.selectedItem !== node.data.department) {\n this.clearJobTitle(node);\n }\n }\n\n private clearJobTitle(node: RowNode | null): void {\n if (node) {\n node.data.jobTitle = undefined;\n this.changeDetector.markForCheck();\n if (this.gridApi) {\n this.gridApi.refreshCells({ rowNodes: [node] });\n }\n }\n }\n}\n"
693
693
  },
694
694
  {
695
695
  "fileName": "data-entry-grid-docs-demo.component.html",
@@ -699,12 +699,12 @@
699
699
  {
700
700
  "fileName": "data-entry-grid-docs-demo.component.ts",
701
701
  "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/basic/data-entry-grid-docs-demo.component.ts",
702
- "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport { SkyAgGridService, SkyCellType } from '@skyux/ag-grid';\nimport { SkyModalCloseArgs, SkyModalService } from '@skyux/modals';\n\nimport {\n GridApi,\n GridOptions,\n GridReadyEvent,\n ValueFormatterParams,\n} from 'ag-grid-community';\n\nimport { SkyDataEntryGridContextMenuComponent } from './data-entry-grid-docs-demo-context-menu.component';\nimport { SKY_AG_GRID_DEMO_DATA } from './data-entry-grid-docs-demo-data';\nimport { SkyDataEntryGridEditModalContext } from './data-entry-grid-docs-demo-edit-modal-context';\nimport { SkyDataEntryGridEditModalComponent } from './data-entry-grid-docs-demo-edit-modal.component';\n\n@Component({\n selector: 'app-data-entry-grid-docs-demo',\n templateUrl: './data-entry-grid-docs-demo.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDataEntryGridDemoComponent {\n public gridData = SKY_AG_GRID_DEMO_DATA;\n public columnDefs = [\n {\n field: 'selected',\n type: SkyCellType.RowSelector,\n },\n {\n colId: 'context',\n headerName: '',\n maxWidth: 50,\n sortable: false,\n cellRendererFramework: SkyDataEntryGridContextMenuComponent,\n },\n {\n field: 'name',\n headerName: 'Name',\n },\n {\n field: 'age',\n headerName: 'Age',\n type: SkyCellType.Number,\n maxWidth: 60,\n },\n {\n field: 'startDate',\n headerName: 'Start date',\n type: SkyCellType.Date,\n sort: 'asc',\n },\n {\n field: 'endDate',\n headerName: 'End date',\n type: SkyCellType.Date,\n valueFormatter: this.endDateFormatter,\n },\n {\n field: 'department',\n headerName: 'Department',\n type: SkyCellType.Autocomplete,\n },\n {\n field: 'jobTitle',\n headerName: 'Title',\n type: SkyCellType.Autocomplete,\n },\n {\n colId: 'validationCurrency',\n field: 'validationCurrency',\n headerName: 'Validation currency',\n type: [SkyCellType.CurrencyValidator],\n },\n {\n colId: 'validationDate',\n field: 'validationDate',\n headerName: 'Validation date',\n type: [SkyCellType.Date, SkyCellType.Validator],\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value: Date) => !!value && value > new Date(1985, 9, 26),\n validatorMessage: 'Please enter a future date',\n },\n },\n },\n ];\n\n public gridApi: GridApi | undefined;\n public gridOptions: GridOptions;\n public searchText = '';\n public noRowsTemplate: string;\n\n constructor(\n private agGridService: SkyAgGridService,\n private modalService: SkyModalService,\n private changeDetection: ChangeDetectorRef\n ) {\n this.noRowsTemplate = `<div class=\"sky-deemphasized\">No results found.</div>`;\n this.gridOptions = {\n columnDefs: this.columnDefs,\n onGridReady: (gridReadyEvent) => this.onGridReady(gridReadyEvent),\n };\n this.gridOptions = this.agGridService.getGridOptions({\n gridOptions: this.gridOptions,\n });\n this.changeDetection.markForCheck();\n }\n\n public onGridReady(gridReadyEvent: GridReadyEvent): void {\n this.gridApi = gridReadyEvent.api;\n this.gridApi.sizeColumnsToFit();\n this.changeDetection.markForCheck();\n }\n\n public openModal(): void {\n const context = new SkyDataEntryGridEditModalContext();\n context.gridData = this.gridData;\n\n const options = {\n providers: [\n { provide: SkyDataEntryGridEditModalContext, useValue: context },\n ],\n ariaDescribedBy: 'docs-edit-grid-modal-content',\n size: 'large',\n };\n\n const modalInstance = this.modalService.open(\n SkyDataEntryGridEditModalComponent,\n options\n );\n\n modalInstance.closed.subscribe((result: SkyModalCloseArgs) => {\n if (result.reason === 'cancel' || result.reason === 'close') {\n alert('Edits canceled!');\n } else {\n this.gridData = result.data;\n if (this.gridApi) {\n this.gridApi.refreshCells();\n }\n alert('Saving data!');\n }\n });\n }\n\n public searchApplied(searchText: string | void): void {\n if (searchText) {\n this.searchText = searchText;\n } else {\n this.searchText = '';\n }\n if (this.gridApi) {\n this.gridApi.setQuickFilter(searchText);\n const displayedRowCount = this.gridApi.getDisplayedRowCount();\n if (displayedRowCount > 0) {\n this.gridApi.hideOverlay();\n } else {\n this.gridApi.showNoRowsOverlay();\n }\n }\n }\n\n private endDateFormatter(params: ValueFormatterParams): string {\n const dateConfig = { year: 'numeric', month: '2-digit', day: '2-digit' };\n return params.value\n ? params.value.toLocaleDateString('en-us', dateConfig)\n : 'N/A';\n }\n}\n"
702
+ "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport { SkyAgGridService, SkyCellType } from '@skyux/ag-grid';\nimport { SkyModalCloseArgs, SkyModalService } from '@skyux/modals';\n\nimport {\n GridApi,\n GridOptions,\n GridReadyEvent,\n ValueFormatterParams,\n} from 'ag-grid-community';\n\nimport { SkyDataEntryGridContextMenuComponent } from './data-entry-grid-docs-demo-context-menu.component';\nimport { SKY_AG_GRID_DEMO_DATA } from './data-entry-grid-docs-demo-data';\nimport { SkyDataEntryGridEditModalContext } from './data-entry-grid-docs-demo-edit-modal-context';\nimport { SkyDataEntryGridEditModalComponent } from './data-entry-grid-docs-demo-edit-modal.component';\n\n@Component({\n selector: 'app-data-entry-grid-docs-demo',\n templateUrl: './data-entry-grid-docs-demo.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDataEntryGridDemoComponent {\n public gridData = SKY_AG_GRID_DEMO_DATA;\n public columnDefs = [\n {\n field: 'selected',\n type: SkyCellType.RowSelector,\n },\n {\n colId: 'context',\n headerName: '',\n maxWidth: 50,\n sortable: false,\n cellRendererFramework: SkyDataEntryGridContextMenuComponent,\n },\n {\n field: 'name',\n headerName: 'Name',\n type: SkyCellType.Text,\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value): boolean => String(value).length <= 10,\n validatorMessage: `Value exceeds maximum length`,\n },\n },\n },\n {\n field: 'age',\n headerName: 'Age',\n type: SkyCellType.Number,\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value: any) => value >= 18,\n validatorMessage: `Age must be 18+`,\n },\n },\n maxWidth: 60,\n },\n {\n field: 'startDate',\n headerName: 'Start date',\n type: SkyCellType.Date,\n sort: 'asc',\n },\n {\n field: 'endDate',\n headerName: 'End date',\n type: SkyCellType.Date,\n valueFormatter: this.endDateFormatter,\n },\n {\n field: 'department',\n headerName: 'Department',\n type: SkyCellType.Autocomplete,\n },\n {\n field: 'jobTitle',\n headerName: 'Title',\n type: SkyCellType.Autocomplete,\n },\n {\n colId: 'validationCurrency',\n field: 'validationCurrency',\n headerName: 'Validation currency',\n type: [SkyCellType.CurrencyValidator],\n },\n {\n colId: 'validationDate',\n field: 'validationDate',\n headerName: 'Validation date',\n type: [SkyCellType.Date, SkyCellType.Validator],\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value: Date) => !!value && value > new Date(1985, 9, 26),\n validatorMessage: 'Please enter a future date',\n },\n },\n },\n ];\n\n public gridApi: GridApi | undefined;\n public gridOptions: GridOptions;\n public searchText = '';\n public noRowsTemplate: string;\n\n constructor(\n private agGridService: SkyAgGridService,\n private modalService: SkyModalService,\n private changeDetection: ChangeDetectorRef\n ) {\n this.noRowsTemplate = `<div class=\"sky-deemphasized\">No results found.</div>`;\n this.gridOptions = {\n columnDefs: this.columnDefs,\n onGridReady: (gridReadyEvent) => this.onGridReady(gridReadyEvent),\n };\n this.gridOptions = this.agGridService.getGridOptions({\n gridOptions: this.gridOptions,\n });\n this.changeDetection.markForCheck();\n }\n\n public onGridReady(gridReadyEvent: GridReadyEvent): void {\n this.gridApi = gridReadyEvent.api;\n this.gridApi.sizeColumnsToFit();\n this.changeDetection.markForCheck();\n }\n\n public openModal(): void {\n const context = new SkyDataEntryGridEditModalContext();\n context.gridData = this.gridData;\n\n const options = {\n providers: [\n { provide: SkyDataEntryGridEditModalContext, useValue: context },\n ],\n ariaDescribedBy: 'docs-edit-grid-modal-content',\n size: 'large',\n };\n\n const modalInstance = this.modalService.open(\n SkyDataEntryGridEditModalComponent,\n options\n );\n\n modalInstance.closed.subscribe((result: SkyModalCloseArgs) => {\n if (result.reason === 'cancel' || result.reason === 'close') {\n alert('Edits canceled!');\n } else {\n this.gridData = result.data;\n if (this.gridApi) {\n this.gridApi.refreshCells();\n }\n alert('Saving data!');\n }\n });\n }\n\n public searchApplied(searchText: string | void): void {\n if (searchText) {\n this.searchText = searchText;\n } else {\n this.searchText = '';\n }\n if (this.gridApi) {\n this.gridApi.setQuickFilter(searchText);\n const displayedRowCount = this.gridApi.getDisplayedRowCount();\n if (displayedRowCount > 0) {\n this.gridApi.hideOverlay();\n } else {\n this.gridApi.showNoRowsOverlay();\n }\n }\n }\n\n private endDateFormatter(params: ValueFormatterParams): string {\n const dateConfig = { year: 'numeric', month: '2-digit', day: '2-digit' };\n return params.value\n ? params.value.toLocaleDateString('en-us', dateConfig)\n : 'N/A';\n }\n}\n"
703
703
  },
704
704
  {
705
705
  "fileName": "data-entry-grid-docs-demo.module.ts",
706
706
  "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/basic/data-entry-grid-docs-demo.module.ts",
707
- "rawContents": "import { NgModule } from '@angular/core';\nimport { SkyAgGridModule } from '@skyux/ag-grid';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkySearchModule } from '@skyux/lookup';\nimport { SkyModalModule } from '@skyux/modals';\nimport { SkyDropdownModule } from '@skyux/popovers';\n\nimport { AgGridModule } from 'ag-grid-angular';\n\nimport { SkyDataEntryGridContextMenuComponent } from './data-entry-grid-docs-demo-context-menu.component';\nimport { SkyDataEntryGridEditModalComponent } from './data-entry-grid-docs-demo-edit-modal.component';\nimport { SkyDataEntryGridDemoComponent } from './data-entry-grid-docs-demo.component';\n\n@NgModule({\n declarations: [\n SkyDataEntryGridContextMenuComponent,\n SkyDataEntryGridDemoComponent,\n SkyDataEntryGridEditModalComponent,\n ],\n imports: [\n AgGridModule.withComponents([SkyDataEntryGridContextMenuComponent]),\n SkyToolbarModule,\n SkySearchModule,\n AgGridModule,\n SkyAgGridModule,\n SkyModalModule,\n SkyDropdownModule,\n ],\n exports: [SkyDataEntryGridDemoComponent],\n})\nexport class SkyDataEntryGridDocsDemoModule {}\n"
707
+ "rawContents": "import { NgModule } from '@angular/core';\nimport { SkyAgGridModule } from '@skyux/ag-grid';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkySearchModule } from '@skyux/lookup';\nimport { SkyModalModule } from '@skyux/modals';\nimport { SkyDropdownModule } from '@skyux/popovers';\n\nimport { AgGridModule } from 'ag-grid-angular';\n\nimport { SkyDataEntryGridContextMenuComponent } from './data-entry-grid-docs-demo-context-menu.component';\nimport { SkyDataEntryGridEditModalComponent } from './data-entry-grid-docs-demo-edit-modal.component';\nimport { SkyDataEntryGridDemoComponent } from './data-entry-grid-docs-demo.component';\n\n@NgModule({\n declarations: [\n SkyDataEntryGridContextMenuComponent,\n SkyDataEntryGridDemoComponent,\n SkyDataEntryGridEditModalComponent,\n ],\n imports: [\n AgGridModule.withComponents([SkyDataEntryGridContextMenuComponent]),\n SkyToolbarModule,\n SkySearchModule,\n AgGridModule,\n SkyAgGridModule,\n SkyModalModule,\n SkyDropdownModule,\n ],\n exports: [SkyDataEntryGridDemoComponent],\n entryComponents: [SkyDataEntryGridEditModalComponent],\n})\nexport class SkyDataEntryGridDocsDemoModule {}\n"
708
708
  },
709
709
  {
710
710
  "fileName": "data-manager-data-entry-grid-docs-demo-context-menu.component.html",
@@ -734,7 +734,7 @@
734
734
  {
735
735
  "fileName": "data-manager-data-entry-grid-docs-demo-edit-modal.component.ts",
736
736
  "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo-edit-modal.component.ts",
737
- "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport {\n SkyAgGridService,\n SkyAutocompleteProperties,\n SkyCellType,\n SkyDatepickerProperties,\n} from '@skyux/ag-grid';\nimport { SkyAutocompleteSelectionChange } from '@skyux/lookup';\nimport { SkyModalInstance } from '@skyux/modals';\n\nimport {\n CellValueChangedEvent,\n ColDef,\n GridApi,\n GridOptions,\n GridReadyEvent,\n ICellEditorParams,\n NewValueParams,\n RowNode,\n} from 'ag-grid-community';\n\nimport {\n SKY_DEPARTMENTS,\n SKY_JOB_TITLES,\n SkyAgGridDemoRow,\n} from './data-manager-data-entry-grid-docs-demo-data';\nimport { SkyDataEntryGridEditModalContext } from './data-manager-data-entry-grid-docs-demo-edit-modal-context';\n\n@Component({\n selector: 'app-data-manager-data-entry-grid-docs-demo-edit-modal',\n templateUrl:\n './data-manager-data-entry-grid-docs-demo-edit-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDataManagerDataEntryGridEditModalComponent {\n public columnDefs: ColDef[];\n private gridApi: GridApi | undefined;\n public gridData: SkyAgGridDemoRow[];\n public gridOptions: GridOptions;\n\n constructor(\n private agGridService: SkyAgGridService,\n public context: SkyDataEntryGridEditModalContext,\n public instance: SkyModalInstance,\n private changeDetector: ChangeDetectorRef\n ) {\n this.columnDefs = [\n {\n field: 'name',\n headerName: 'Name',\n },\n {\n field: 'age',\n headerName: 'Age',\n type: SkyCellType.Number,\n maxWidth: 100,\n editable: true,\n },\n {\n field: 'startDate',\n headerName: 'Start date',\n type: SkyCellType.Date,\n sort: 'asc',\n },\n {\n field: 'endDate',\n headerName: 'End date',\n type: SkyCellType.Date,\n editable: true,\n cellEditorParams: (\n params: ICellEditorParams\n ): { skyComponentProperties: SkyDatepickerProperties } => {\n return { skyComponentProperties: { minDate: params.data.startDate } };\n },\n },\n {\n field: 'department',\n headerName: 'Department',\n type: SkyCellType.Autocomplete,\n editable: true,\n cellEditorParams: (\n params: ICellEditorParams\n ): { skyComponentProperties: SkyAutocompleteProperties } => {\n return {\n skyComponentProperties: {\n data: SKY_DEPARTMENTS,\n selectionChange: (\n change: SkyAutocompleteSelectionChange\n ): void => {\n this.departmentSelectionChange(change, params.node);\n },\n },\n };\n },\n onCellValueChanged: (event: NewValueParams): void => {\n if (event.newValue !== event.oldValue) {\n this.clearJobTitle(event.node);\n }\n },\n },\n {\n field: 'jobTitle',\n headerName: 'Title',\n type: SkyCellType.Autocomplete,\n editable: true,\n cellEditorParams: (\n params: ICellEditorParams\n ): { skyComponentProperties: SkyAutocompleteProperties } => {\n const selectedDepartment: string =\n params.data &&\n params.data.department &&\n params.data.department.name;\n const editParams: {\n skyComponentProperties: SkyAutocompleteProperties;\n } = { skyComponentProperties: { data: [] } };\n\n if (selectedDepartment) {\n editParams.skyComponentProperties.data =\n SKY_JOB_TITLES[selectedDepartment];\n }\n return editParams;\n },\n },\n ];\n this.gridData = this.context.gridData;\n this.gridOptions = {\n columnDefs: this.columnDefs,\n onGridReady: (gridReadyEvent) => this.onGridReady(gridReadyEvent),\n };\n this.gridOptions = this.agGridService.getEditableGridOptions({\n gridOptions: this.gridOptions,\n });\n this.changeDetector.markForCheck();\n }\n\n public onGridReady(gridReadyEvent: GridReadyEvent): void {\n this.gridApi = gridReadyEvent.api;\n\n this.gridApi.sizeColumnsToFit();\n this.changeDetector.markForCheck();\n }\n\n private departmentSelectionChange(\n change: SkyAutocompleteSelectionChange,\n node: RowNode\n ): void {\n if (change.selectedItem && change.selectedItem !== node.data.department) {\n this.clearJobTitle(node);\n }\n }\n\n private clearJobTitle(node: RowNode | null): void {\n if (node) {\n node.data.jobTitle = undefined;\n if (this.gridApi) {\n this.gridApi.refreshCells({ rowNodes: [node] });\n }\n }\n this.changeDetector.markForCheck();\n }\n}\n"
737
+ "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport {\n SkyAgGridService,\n SkyAutocompleteProperties,\n SkyCellType,\n SkyDatepickerProperties,\n} from '@skyux/ag-grid';\nimport { SkyAutocompleteSelectionChange } from '@skyux/lookup';\nimport { SkyModalInstance } from '@skyux/modals';\n\nimport {\n CellValueChangedEvent,\n ColDef,\n GridApi,\n GridOptions,\n GridReadyEvent,\n ICellEditorParams,\n NewValueParams,\n RowNode,\n} from 'ag-grid-community';\n\nimport {\n SKY_DEPARTMENTS,\n SKY_JOB_TITLES,\n SkyAgGridDemoRow,\n} from './data-manager-data-entry-grid-docs-demo-data';\nimport { SkyDataEntryGridEditModalContext } from './data-manager-data-entry-grid-docs-demo-edit-modal-context';\n\n@Component({\n selector: 'app-data-manager-data-entry-grid-docs-demo-edit-modal',\n templateUrl:\n './data-manager-data-entry-grid-docs-demo-edit-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDataManagerDataEntryGridEditModalComponent {\n public columnDefs: ColDef[];\n private gridApi: GridApi | undefined;\n public gridData: SkyAgGridDemoRow[];\n public gridOptions: GridOptions;\n\n constructor(\n private agGridService: SkyAgGridService,\n public context: SkyDataEntryGridEditModalContext,\n public instance: SkyModalInstance,\n private changeDetector: ChangeDetectorRef\n ) {\n this.columnDefs = [\n {\n field: 'name',\n headerName: 'Name',\n },\n {\n field: 'age',\n headerName: 'Age',\n type: SkyCellType.Number,\n maxWidth: 60,\n editable: true,\n },\n {\n field: 'startDate',\n headerName: 'Start date',\n type: SkyCellType.Date,\n sort: 'asc',\n },\n {\n field: 'endDate',\n headerName: 'End date',\n type: SkyCellType.Date,\n editable: true,\n cellEditorParams: (\n params: ICellEditorParams\n ): { skyComponentProperties: SkyDatepickerProperties } => {\n return { skyComponentProperties: { minDate: params.data.startDate } };\n },\n },\n {\n field: 'department',\n headerName: 'Department',\n type: SkyCellType.Autocomplete,\n editable: true,\n cellEditorParams: (\n params: ICellEditorParams\n ): { skyComponentProperties: SkyAutocompleteProperties } => {\n return {\n skyComponentProperties: {\n data: SKY_DEPARTMENTS,\n selectionChange: (\n change: SkyAutocompleteSelectionChange\n ): void => {\n this.departmentSelectionChange(change, params.node);\n },\n },\n };\n },\n onCellValueChanged: (event: NewValueParams): void => {\n if (event.newValue !== event.oldValue) {\n this.clearJobTitle(event.node);\n }\n },\n },\n {\n field: 'jobTitle',\n headerName: 'Title',\n type: SkyCellType.Autocomplete,\n editable: true,\n cellEditorParams: (\n params: ICellEditorParams\n ): { skyComponentProperties: SkyAutocompleteProperties } => {\n const selectedDepartment: string =\n params.data &&\n params.data.department &&\n params.data.department.name;\n const editParams: {\n skyComponentProperties: SkyAutocompleteProperties;\n } = { skyComponentProperties: { data: [] } };\n\n if (selectedDepartment) {\n editParams.skyComponentProperties.data =\n SKY_JOB_TITLES[selectedDepartment];\n }\n return editParams;\n },\n },\n {\n colId: 'validationCurrency',\n field: 'validationCurrency',\n headerName: 'Validation currency',\n type: [SkyCellType.CurrencyValidator],\n editable: true,\n },\n {\n colId: 'validationDate',\n field: 'validationDate',\n headerName: 'Validation date',\n type: [SkyCellType.Date, SkyCellType.Validator],\n cellRendererParams: {\n skyComponentProperties: {\n validator: (value: Date) =>\n !!value && value > new Date(1985, 9, 26),\n validatorMessage: 'Please enter a future date',\n },\n },\n editable: true,\n },\n ];\n this.gridData = this.context.gridData;\n this.gridOptions = {\n columnDefs: this.columnDefs,\n onGridReady: (gridReadyEvent) => this.onGridReady(gridReadyEvent),\n };\n this.gridOptions = this.agGridService.getEditableGridOptions({\n gridOptions: this.gridOptions,\n });\n this.changeDetector.markForCheck();\n }\n\n public onGridReady(gridReadyEvent: GridReadyEvent): void {\n this.gridApi = gridReadyEvent.api;\n\n this.gridApi.sizeColumnsToFit();\n this.changeDetector.markForCheck();\n }\n\n private departmentSelectionChange(\n change: SkyAutocompleteSelectionChange,\n node: RowNode\n ): void {\n if (change.selectedItem && change.selectedItem !== node.data.department) {\n this.clearJobTitle(node);\n }\n }\n\n private clearJobTitle(node: RowNode | null): void {\n if (node) {\n node.data.jobTitle = undefined;\n if (this.gridApi) {\n this.gridApi.refreshCells({ rowNodes: [node] });\n }\n }\n this.changeDetector.markForCheck();\n }\n}\n"
738
738
  },
739
739
  {
740
740
  "fileName": "data-manager-data-entry-grid-docs-demo-filter-modal.component.html",
@@ -769,7 +769,7 @@
769
769
  {
770
770
  "fileName": "data-manager-data-entry-grid-docs-demo.module.ts",
771
771
  "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo.module.ts",
772
- "rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyAgGridModule } from '@skyux/ag-grid';\nimport { SkyDataManagerModule } from '@skyux/data-manager';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkySearchModule } from '@skyux/lookup';\nimport { SkyModalModule } from '@skyux/modals';\nimport { SkyDropdownModule } from '@skyux/popovers';\n\nimport { AgGridModule } from 'ag-grid-angular';\n\nimport { SkyDataManagerDataEntryGridContextMenuComponent } from './data-manager-data-entry-grid-docs-demo-context-menu.component';\nimport { SkyDataManagerDataEntryGridEditModalComponent } from './data-manager-data-entry-grid-docs-demo-edit-modal.component';\nimport { DataManagerDataEntryGridDocsDemoFiltersModalComponent } from './data-manager-data-entry-grid-docs-demo-filter-modal.component';\nimport { DataManagerDataEntryGridDocsDemoViewGridComponent } from './data-manager-data-entry-grid-docs-demo-view-grid.component';\nimport { SkyDataManagerDataEntryGridDemoComponent } from './data-manager-data-entry-grid-docs-demo.component';\n\n@NgModule({\n declarations: [\n SkyDataManagerDataEntryGridContextMenuComponent,\n SkyDataManagerDataEntryGridDemoComponent,\n SkyDataManagerDataEntryGridEditModalComponent,\n DataManagerDataEntryGridDocsDemoFiltersModalComponent,\n DataManagerDataEntryGridDocsDemoViewGridComponent,\n ],\n imports: [\n AgGridModule.withComponents([\n SkyDataManagerDataEntryGridContextMenuComponent,\n ]),\n CommonModule,\n FormsModule,\n SkyToolbarModule,\n SkySearchModule,\n AgGridModule,\n SkyAgGridModule,\n SkyModalModule,\n SkyDropdownModule,\n SkyDataManagerModule,\n SkyCheckboxModule,\n ],\n exports: [SkyDataManagerDataEntryGridDemoComponent],\n})\nexport class SkyDataManagerDataEntryGridDocsDemoModule {}\n"
772
+ "rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyAgGridModule } from '@skyux/ag-grid';\nimport { SkyDataManagerModule } from '@skyux/data-manager';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkySearchModule } from '@skyux/lookup';\nimport { SkyModalModule } from '@skyux/modals';\nimport { SkyDropdownModule } from '@skyux/popovers';\n\nimport { AgGridModule } from 'ag-grid-angular';\n\nimport { SkyDataManagerDataEntryGridContextMenuComponent } from './data-manager-data-entry-grid-docs-demo-context-menu.component';\nimport { SkyDataManagerDataEntryGridEditModalComponent } from './data-manager-data-entry-grid-docs-demo-edit-modal.component';\nimport { DataManagerDataEntryGridDocsDemoFiltersModalComponent } from './data-manager-data-entry-grid-docs-demo-filter-modal.component';\nimport { DataManagerDataEntryGridDocsDemoViewGridComponent } from './data-manager-data-entry-grid-docs-demo-view-grid.component';\nimport { SkyDataManagerDataEntryGridDemoComponent } from './data-manager-data-entry-grid-docs-demo.component';\n\n@NgModule({\n declarations: [\n SkyDataManagerDataEntryGridContextMenuComponent,\n SkyDataManagerDataEntryGridDemoComponent,\n SkyDataManagerDataEntryGridEditModalComponent,\n DataManagerDataEntryGridDocsDemoFiltersModalComponent,\n DataManagerDataEntryGridDocsDemoViewGridComponent,\n ],\n imports: [\n AgGridModule.withComponents([\n SkyDataManagerDataEntryGridContextMenuComponent,\n ]),\n CommonModule,\n FormsModule,\n SkyToolbarModule,\n SkySearchModule,\n AgGridModule,\n SkyAgGridModule,\n SkyModalModule,\n SkyDropdownModule,\n SkyDataManagerModule,\n SkyCheckboxModule,\n ],\n exports: [SkyDataManagerDataEntryGridDemoComponent],\n entryComponents: [\n SkyDataManagerDataEntryGridEditModalComponent,\n DataManagerDataEntryGridDocsDemoFiltersModalComponent,\n ],\n})\nexport class SkyDataManagerDataEntryGridDocsDemoModule {}\n"
773
773
  },
774
774
  {
775
775
  "fileName": "basic-data-grid-docs-demo-data.ts",
@@ -829,7 +829,7 @@
829
829
  {
830
830
  "fileName": "data-manager-data-grid-docs-demo.module.ts",
831
831
  "filePath": "/projects/ag-grid/documentation/code-examples/data-grid/data-manager-added/data-manager-data-grid-docs-demo.module.ts",
832
- "rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyAgGridModule } from '@skyux/ag-grid';\nimport { SkyDataManagerModule } from '@skyux/data-manager';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkySearchModule } from '@skyux/lookup';\nimport { SkyModalModule } from '@skyux/modals';\n\nimport { AgGridModule } from 'ag-grid-angular';\n\nimport { DataManagerDataGridDocsDemoFiltersModalComponent } from './data-manager-data-grid-docs-demo-filter-modal.component';\nimport { DataManagerDataGridsDocsDemoViewGridComponent } from './data-manager-data-grid-docs-demo-view-grid.component';\nimport { SkyDataManagerDataGridDemoComponent } from './data-manager-data-grid-docs-demo.component';\n\n@NgModule({\n declarations: [\n SkyDataManagerDataGridDemoComponent,\n DataManagerDataGridDocsDemoFiltersModalComponent,\n DataManagerDataGridsDocsDemoViewGridComponent,\n ],\n exports: [SkyDataManagerDataGridDemoComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyToolbarModule,\n SkySearchModule,\n SkyDataManagerModule,\n SkyAgGridModule,\n AgGridModule,\n SkyDataManagerModule,\n SkyModalModule,\n SkyCheckboxModule,\n ],\n})\nexport class SkyDataManagerDataGridDocsDemoModule {}\n"
832
+ "rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyAgGridModule } from '@skyux/ag-grid';\nimport { SkyDataManagerModule } from '@skyux/data-manager';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkySearchModule } from '@skyux/lookup';\nimport { SkyModalModule } from '@skyux/modals';\n\nimport { AgGridModule } from 'ag-grid-angular';\n\nimport { DataManagerDataGridDocsDemoFiltersModalComponent } from './data-manager-data-grid-docs-demo-filter-modal.component';\nimport { DataManagerDataGridsDocsDemoViewGridComponent } from './data-manager-data-grid-docs-demo-view-grid.component';\nimport { SkyDataManagerDataGridDemoComponent } from './data-manager-data-grid-docs-demo.component';\n\n@NgModule({\n declarations: [\n SkyDataManagerDataGridDemoComponent,\n DataManagerDataGridDocsDemoFiltersModalComponent,\n DataManagerDataGridsDocsDemoViewGridComponent,\n ],\n entryComponents: [DataManagerDataGridDocsDemoFiltersModalComponent],\n exports: [SkyDataManagerDataGridDemoComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyToolbarModule,\n SkySearchModule,\n SkyDataManagerModule,\n SkyAgGridModule,\n AgGridModule,\n SkyDataManagerModule,\n SkyModalModule,\n SkyCheckboxModule,\n ],\n})\nexport class SkyDataManagerDataGridDocsDemoModule {}\n"
833
833
  }
834
834
  ]
835
835
  }
@@ -32,6 +32,13 @@ export class SkyAgGridWrapperComponent {
32
32
  this.viewkeeperClasses.push('.ag-header');
33
33
  }
34
34
  }
35
+ /**
36
+ * Prevent closing a modal when focused in AG Grid.
37
+ */
38
+ onKeyUpEscape($event) {
39
+ $event.stopPropagation();
40
+ this.agGrid.api.stopEditing(true);
41
+ }
35
42
  onGridKeydown(event) {
36
43
  if (this.agGrid && !this.isInEditMode && event.key === 'Tab') {
37
44
  const idToFocus = event.shiftKey
@@ -79,7 +86,7 @@ export class SkyAgGridWrapperComponent {
79
86
  }
80
87
  }
81
88
  SkyAgGridWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridWrapperComponent, deps: [{ token: i1.SkyAgGridAdapterService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
82
- SkyAgGridWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridWrapperComponent, selector: "sky-ag-grid-wrapper", queries: [{ propertyName: "agGrid", first: true, predicate: AgGridAngular, descendants: true, static: true }], ngImport: i0, template: "<span\n class=\"nav-anchor\"\n tabindex=\"0\"\n [id]=\"beforeAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n<div\n class=\"sky-ag-grid\"\n tabindex=\"0\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n (keydown)=\"onGridKeydown($event)\"\n>\n <ng-content></ng-content>\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n", directives: [{ type: i2.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
89
+ SkyAgGridWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridWrapperComponent, selector: "sky-ag-grid-wrapper", queries: [{ propertyName: "agGrid", first: true, predicate: AgGridAngular, descendants: true, static: true }], ngImport: i0, template: "<span\n class=\"nav-anchor\"\n tabindex=\"0\"\n [id]=\"beforeAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n<div\n class=\"sky-ag-grid\"\n tabindex=\"0\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n (keydown)=\"onGridKeydown($event)\"\n (keyup.escape)=\"onKeyUpEscape($event)\"\n>\n <ng-content></ng-content>\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n", directives: [{ type: i2.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
83
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridWrapperComponent, decorators: [{
84
91
  type: Component,
85
92
  args: [{
@@ -1 +1 @@
1
- {"version":3,"file":"ag-grid-wrapper.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-wrapper.component.ts","../../../../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-wrapper.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n} from '@angular/core';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { DetailGridInfo } from 'ag-grid-community';\n\nimport { SkyAgGridAdapterService } from './ag-grid-adapter.service';\n\nlet idIndex = 0;\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-wrapper',\n templateUrl: './ag-grid-wrapper.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridWrapperComponent implements AfterContentInit {\n @ContentChild(AgGridAngular, {\n static: true,\n })\n public agGrid: AgGridAngular;\n\n public afterAnchorId: string;\n public beforeAnchorId: string;\n public gridId: string;\n\n public get viewkeeperClasses(): string[] {\n return this._viewkeeperClasses;\n }\n\n public set viewkeeperClasses(value: string[]) {\n this._viewkeeperClasses = value;\n this.changeDetector.markForCheck();\n }\n\n private _viewkeeperClasses: string[] = [];\n\n constructor(\n private adapterService: SkyAgGridAdapterService,\n private changeDetector: ChangeDetectorRef,\n private elementRef: ElementRef\n ) {\n idIndex++;\n this.afterAnchorId = 'sky-ag-grid-nav-anchor-after-' + idIndex;\n this.beforeAnchorId = 'sky-ag-grid-nav-anchor-before-' + idIndex;\n this.gridId = 'sky-ag-grid-' + idIndex;\n }\n\n public ngAfterContentInit(): void {\n if (\n this.agGrid.gridOptions &&\n this.agGrid.gridOptions.domLayout === 'autoHeight'\n ) {\n this.viewkeeperClasses.push('.ag-header');\n }\n }\n\n public onGridKeydown(event: KeyboardEvent): void {\n if (this.agGrid && !this.isInEditMode && event.key === 'Tab') {\n const idToFocus = event.shiftKey\n ? this.beforeAnchorId\n : this.afterAnchorId;\n this.adapterService.setFocusedElementById(\n this.elementRef.nativeElement,\n idToFocus\n );\n }\n }\n\n public onAnchorFocus(event: FocusEvent): void {\n const gridId = this.gridId;\n const relatedTarget = event.relatedTarget as HTMLElement;\n const previousFocusedId = relatedTarget && relatedTarget.id;\n const previousWasCell =\n relatedTarget &&\n !!this.adapterService.getElementOrParentWithClass(\n relatedTarget,\n 'ag-cell'\n );\n\n if (previousFocusedId !== gridId && !previousWasCell) {\n const columns = this.agGrid.columnApi.getAllDisplayedColumns();\n const firstColumn = columns && columns[0];\n const rowIndex = this.agGrid.api.getFirstDisplayedRow();\n\n if (firstColumn && rowIndex >= 0) {\n this.agGrid.api.setFocusedCell(rowIndex, firstColumn);\n }\n }\n }\n\n private get isInEditMode(): boolean {\n /* Sanity check */\n /* istanbul ignore else */\n if (this.agGrid && this.agGrid.api) {\n const primaryGridEditing = this.agGrid.api.getEditingCells().length > 0;\n if (primaryGridEditing) {\n return true;\n } else {\n let innerEditing = false;\n this.agGrid.api.forEachDetailGridInfo((detailGrid: DetailGridInfo) => {\n if (detailGrid.api.getEditingCells().length > 0) {\n innerEditing = true;\n }\n });\n\n return innerEditing;\n }\n } else {\n return false;\n }\n }\n}\n","<span\n class=\"nav-anchor\"\n tabindex=\"0\"\n [id]=\"beforeAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n<div\n class=\"sky-ag-grid\"\n tabindex=\"0\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n (keydown)=\"onGridKeydown($event)\"\n>\n <ng-content></ng-content>\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n"]}
1
+ {"version":3,"file":"ag-grid-wrapper.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-wrapper.component.ts","../../../../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-wrapper.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n} from '@angular/core';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { DetailGridInfo } from 'ag-grid-community';\n\nimport { SkyAgGridAdapterService } from './ag-grid-adapter.service';\n\nlet idIndex = 0;\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-ag-grid-wrapper',\n templateUrl: './ag-grid-wrapper.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAgGridWrapperComponent implements AfterContentInit {\n @ContentChild(AgGridAngular, {\n static: true,\n })\n public agGrid: AgGridAngular;\n\n public afterAnchorId: string;\n public beforeAnchorId: string;\n public gridId: string;\n\n public get viewkeeperClasses(): string[] {\n return this._viewkeeperClasses;\n }\n\n public set viewkeeperClasses(value: string[]) {\n this._viewkeeperClasses = value;\n this.changeDetector.markForCheck();\n }\n\n private _viewkeeperClasses: string[] = [];\n\n constructor(\n private adapterService: SkyAgGridAdapterService,\n private changeDetector: ChangeDetectorRef,\n private elementRef: ElementRef\n ) {\n idIndex++;\n this.afterAnchorId = 'sky-ag-grid-nav-anchor-after-' + idIndex;\n this.beforeAnchorId = 'sky-ag-grid-nav-anchor-before-' + idIndex;\n this.gridId = 'sky-ag-grid-' + idIndex;\n }\n\n public ngAfterContentInit(): void {\n if (\n this.agGrid.gridOptions &&\n this.agGrid.gridOptions.domLayout === 'autoHeight'\n ) {\n this.viewkeeperClasses.push('.ag-header');\n }\n }\n\n /**\n * Prevent closing a modal when focused in AG Grid.\n */\n public onKeyUpEscape($event: Event) {\n $event.stopPropagation();\n this.agGrid.api.stopEditing(true);\n }\n\n public onGridKeydown(event: KeyboardEvent): void {\n if (this.agGrid && !this.isInEditMode && event.key === 'Tab') {\n const idToFocus = event.shiftKey\n ? this.beforeAnchorId\n : this.afterAnchorId;\n this.adapterService.setFocusedElementById(\n this.elementRef.nativeElement,\n idToFocus\n );\n }\n }\n\n public onAnchorFocus(event: FocusEvent): void {\n const gridId = this.gridId;\n const relatedTarget = event.relatedTarget as HTMLElement;\n const previousFocusedId = relatedTarget && relatedTarget.id;\n const previousWasCell =\n relatedTarget &&\n !!this.adapterService.getElementOrParentWithClass(\n relatedTarget,\n 'ag-cell'\n );\n\n if (previousFocusedId !== gridId && !previousWasCell) {\n const columns = this.agGrid.columnApi.getAllDisplayedColumns();\n const firstColumn = columns && columns[0];\n const rowIndex = this.agGrid.api.getFirstDisplayedRow();\n\n if (firstColumn && rowIndex >= 0) {\n this.agGrid.api.setFocusedCell(rowIndex, firstColumn);\n }\n }\n }\n\n private get isInEditMode(): boolean {\n /* Sanity check */\n /* istanbul ignore else */\n if (this.agGrid && this.agGrid.api) {\n const primaryGridEditing = this.agGrid.api.getEditingCells().length > 0;\n if (primaryGridEditing) {\n return true;\n } else {\n let innerEditing = false;\n this.agGrid.api.forEachDetailGridInfo((detailGrid: DetailGridInfo) => {\n if (detailGrid.api.getEditingCells().length > 0) {\n innerEditing = true;\n }\n });\n\n return innerEditing;\n }\n } else {\n return false;\n }\n }\n}\n","<span\n class=\"nav-anchor\"\n tabindex=\"0\"\n [id]=\"beforeAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n<div\n class=\"sky-ag-grid\"\n tabindex=\"0\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n (keydown)=\"onGridKeydown($event)\"\n (keyup.escape)=\"onKeyUpEscape($event)\"\n>\n <ng-content></ng-content>\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n"]}
@@ -190,7 +190,8 @@ export class SkyAgGridService {
190
190
  minWidth: 185,
191
191
  },
192
192
  [SkyCellType.Number]: {
193
- cellClassRules: Object.assign({ [SkyCellClass.Number]: cellClassRuleTrueExpression }, editableCellClassRules),
193
+ cellClassRules: Object.assign(Object.assign({ [SkyCellClass.Number]: cellClassRuleTrueExpression }, validatorCellClassRules), editableCellClassRules),
194
+ cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-validator-tooltip'),
194
195
  cellEditorFramework: SkyAgGridCellEditorNumberComponent,
195
196
  headerClass: SkyHeaderClass.RightAligned,
196
197
  },
@@ -207,8 +208,9 @@ export class SkyAgGridService {
207
208
  width: 55,
208
209
  },
209
210
  [SkyCellType.Text]: {
210
- cellClassRules: Object.assign({ [SkyCellClass.Text]: cellClassRuleTrueExpression }, editableCellClassRules),
211
+ cellClassRules: Object.assign(Object.assign({ [SkyCellClass.Text]: cellClassRuleTrueExpression }, validatorCellClassRules), editableCellClassRules),
211
212
  cellEditorFramework: SkyAgGridCellEditorTextComponent,
213
+ cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-validator-tooltip'),
212
214
  },
213
215
  [SkyCellType.Validator]: {
214
216
  cellClassRules: Object.assign(Object.assign({}, validatorCellClassRules), editableCellClassRules),