@skyux/ag-grid 5.1.3 → 5.1.7

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 (39) hide show
  1. package/bundles/skyux-ag-grid.umd.js +143 -119
  2. package/css/sky-ag-grid.css +42 -8
  3. package/documentation.json +205 -54
  4. package/esm2015/modules/ag-grid/ag-grid-adapter.service.js +3 -3
  5. package/esm2015/modules/ag-grid/ag-grid-data-manager-adapter.directive.js +37 -13
  6. package/esm2015/modules/ag-grid/ag-grid-row-delete.component.js +3 -3
  7. package/esm2015/modules/ag-grid/ag-grid-row-delete.directive.js +3 -3
  8. package/esm2015/modules/ag-grid/ag-grid-wrapper.component.js +3 -3
  9. package/esm2015/modules/ag-grid/ag-grid.module.js +4 -4
  10. package/esm2015/modules/ag-grid/ag-grid.service.js +7 -7
  11. package/esm2015/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.js +3 -3
  12. package/esm2015/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.js +4 -4
  13. package/esm2015/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.js +3 -3
  14. package/esm2015/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.module.js +4 -4
  15. package/esm2015/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.js +3 -3
  16. package/esm2015/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.module.js +4 -4
  17. package/esm2015/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.js +3 -3
  18. package/esm2015/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.js +4 -4
  19. package/esm2015/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.js +3 -3
  20. package/esm2015/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.module.js +4 -4
  21. package/esm2015/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.js +3 -3
  22. package/esm2015/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.module.js +4 -4
  23. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.js +3 -3
  24. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.js +3 -3
  25. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.js +4 -4
  26. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js +3 -3
  27. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js +4 -4
  28. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.js +3 -3
  29. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module.js +4 -4
  30. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.js +3 -3
  31. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module.js +4 -4
  32. package/esm2015/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js +6 -6
  33. package/esm2015/modules/ag-grid/cell-validator/ag-grid-cell-validator.module.js +4 -4
  34. package/esm2015/modules/shared/ag-grid-resources.module.js +4 -4
  35. package/fesm2015/skyux-ag-grid.js +144 -120
  36. package/fesm2015/skyux-ag-grid.js.map +1 -1
  37. package/modules/ag-grid/ag-grid-data-manager-adapter.directive.d.ts +2 -0
  38. package/package.json +10 -10
  39. package/bundles/skyux-ag-grid.umd.js.map +0 -1
@@ -14,7 +14,7 @@
14
14
  "originalName": "",
15
15
  "children": [
16
16
  {
17
- "id": 373,
17
+ "id": 379,
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": 374,
27
+ "id": 380,
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": 375,
45
+ "id": 381,
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": 376,
63
+ "id": 382,
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": 377,
81
+ "id": 383,
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": 378,
99
+ "id": 384,
100
100
  "name": "Lookup",
101
101
  "kind": 16,
102
102
  "kindString": "Enumeration member",
@@ -111,7 +111,7 @@
111
111
  "defaultValue": "\"skyCellLookup\""
112
112
  },
113
113
  {
114
- "id": 379,
114
+ "id": 385,
115
115
  "name": "Number",
116
116
  "kind": 16,
117
117
  "kindString": "Enumeration member",
@@ -129,7 +129,7 @@
129
129
  "defaultValue": "\"skyCellNumber\""
130
130
  },
131
131
  {
132
- "id": 380,
132
+ "id": 386,
133
133
  "name": "NumberValidator",
134
134
  "kind": 16,
135
135
  "kindString": "Enumeration member",
@@ -147,7 +147,7 @@
147
147
  "defaultValue": "\"skyCellNumberValidator\""
148
148
  },
149
149
  {
150
- "id": 381,
150
+ "id": 387,
151
151
  "name": "RowSelector",
152
152
  "kind": 16,
153
153
  "kindString": "Enumeration member",
@@ -165,7 +165,7 @@
165
165
  "defaultValue": "\"skyCellRowSelector\""
166
166
  },
167
167
  {
168
- "id": 382,
168
+ "id": 388,
169
169
  "name": "Text",
170
170
  "kind": 16,
171
171
  "kindString": "Enumeration member",
@@ -183,7 +183,7 @@
183
183
  "defaultValue": "\"skyCellText\""
184
184
  },
185
185
  {
186
- "id": 383,
186
+ "id": 389,
187
187
  "name": "Validator",
188
188
  "kind": 16,
189
189
  "kindString": "Enumeration member",
@@ -206,16 +206,16 @@
206
206
  "title": "Enumeration members",
207
207
  "kind": 16,
208
208
  "children": [
209
- 374,
210
- 375,
211
- 376,
212
- 377,
213
- 378,
214
- 379,
215
209
  380,
216
210
  381,
217
211
  382,
218
- 383
212
+ 383,
213
+ 384,
214
+ 385,
215
+ 386,
216
+ 387,
217
+ 388,
218
+ 389
219
219
  ]
220
220
  }
221
221
  ],
@@ -228,7 +228,7 @@
228
228
  ]
229
229
  },
230
230
  {
231
- "id": 300,
231
+ "id": 306,
232
232
  "name": "SkyAgGridModule",
233
233
  "kind": 128,
234
234
  "kindString": "Class",
@@ -247,21 +247,21 @@
247
247
  ],
248
248
  "children": [
249
249
  {
250
- "id": 301,
250
+ "id": 307,
251
251
  "name": "constructor",
252
252
  "kind": 512,
253
253
  "kindString": "Constructor",
254
254
  "flags": {},
255
255
  "signatures": [
256
256
  {
257
- "id": 302,
257
+ "id": 308,
258
258
  "name": "new SkyAgGridModule",
259
259
  "kind": 16384,
260
260
  "kindString": "Constructor signature",
261
261
  "flags": {},
262
262
  "type": {
263
263
  "type": "reference",
264
- "id": 300,
264
+ "id": 306,
265
265
  "name": "SkyAgGridModule"
266
266
  }
267
267
  }
@@ -273,7 +273,7 @@
273
273
  "title": "Constructors",
274
274
  "kind": 512,
275
275
  "children": [
276
- 301
276
+ 307
277
277
  ]
278
278
  }
279
279
  ],
@@ -286,7 +286,7 @@
286
286
  ]
287
287
  },
288
288
  {
289
- "id": 303,
289
+ "id": 309,
290
290
  "name": "SkyAgGridService",
291
291
  "kind": 128,
292
292
  "kindString": "Class",
@@ -308,7 +308,7 @@
308
308
  ],
309
309
  "children": [
310
310
  {
311
- "id": 304,
311
+ "id": 310,
312
312
  "name": "constructor",
313
313
  "kind": 512,
314
314
  "kindString": "Constructor",
@@ -322,14 +322,14 @@
322
322
  ],
323
323
  "signatures": [
324
324
  {
325
- "id": 305,
325
+ "id": 311,
326
326
  "name": "new SkyAgGridService",
327
327
  "kind": 16384,
328
328
  "kindString": "Constructor signature",
329
329
  "flags": {},
330
330
  "parameters": [
331
331
  {
332
- "id": 306,
332
+ "id": 312,
333
333
  "name": "agGridAdapterService",
334
334
  "kind": 32768,
335
335
  "kindString": "Parameter",
@@ -340,7 +340,7 @@
340
340
  }
341
341
  },
342
342
  {
343
- "id": 307,
343
+ "id": 313,
344
344
  "name": "themeSvc",
345
345
  "kind": 32768,
346
346
  "kindString": "Parameter",
@@ -363,7 +363,7 @@
363
363
  }
364
364
  },
365
365
  {
366
- "id": 308,
366
+ "id": 314,
367
367
  "name": "resources",
368
368
  "kind": 32768,
369
369
  "kindString": "Parameter",
@@ -388,14 +388,14 @@
388
388
  ],
389
389
  "type": {
390
390
  "type": "reference",
391
- "id": 303,
391
+ "id": 309,
392
392
  "name": "SkyAgGridService"
393
393
  }
394
394
  }
395
395
  ]
396
396
  },
397
397
  {
398
- "id": 316,
398
+ "id": 322,
399
399
  "name": "getEditableGridOptions",
400
400
  "kind": 2048,
401
401
  "kindString": "Method",
@@ -411,7 +411,7 @@
411
411
  ],
412
412
  "signatures": [
413
413
  {
414
- "id": 317,
414
+ "id": 323,
415
415
  "name": "getEditableGridOptions",
416
416
  "kind": 4096,
417
417
  "kindString": "Call signature",
@@ -422,7 +422,7 @@
422
422
  },
423
423
  "parameters": [
424
424
  {
425
- "id": 318,
425
+ "id": 324,
426
426
  "name": "args",
427
427
  "kind": 32768,
428
428
  "kindString": "Parameter",
@@ -430,7 +430,7 @@
430
430
  "comment": {},
431
431
  "type": {
432
432
  "type": "reference",
433
- "id": 393,
433
+ "id": 399,
434
434
  "name": "SkyGetGridOptionsArgs"
435
435
  }
436
436
  }
@@ -443,7 +443,7 @@
443
443
  ]
444
444
  },
445
445
  {
446
- "id": 313,
446
+ "id": 319,
447
447
  "name": "getGridOptions",
448
448
  "kind": 2048,
449
449
  "kindString": "Method",
@@ -459,7 +459,7 @@
459
459
  ],
460
460
  "signatures": [
461
461
  {
462
- "id": 314,
462
+ "id": 320,
463
463
  "name": "getGridOptions",
464
464
  "kind": 4096,
465
465
  "kindString": "Call signature",
@@ -470,7 +470,7 @@
470
470
  },
471
471
  "parameters": [
472
472
  {
473
- "id": 315,
473
+ "id": 321,
474
474
  "name": "args",
475
475
  "kind": 32768,
476
476
  "kindString": "Parameter",
@@ -478,7 +478,7 @@
478
478
  "comment": {},
479
479
  "type": {
480
480
  "type": "reference",
481
- "id": 393,
481
+ "id": 399,
482
482
  "name": "SkyGetGridOptionsArgs"
483
483
  }
484
484
  }
@@ -491,7 +491,7 @@
491
491
  ]
492
492
  },
493
493
  {
494
- "id": 311,
494
+ "id": 317,
495
495
  "name": "ngOnDestroy",
496
496
  "kind": 2048,
497
497
  "kindString": "Method",
@@ -507,7 +507,7 @@
507
507
  ],
508
508
  "signatures": [
509
509
  {
510
- "id": 312,
510
+ "id": 318,
511
511
  "name": "ngOnDestroy",
512
512
  "kind": 4096,
513
513
  "kindString": "Call signature",
@@ -533,16 +533,16 @@
533
533
  "title": "Constructors",
534
534
  "kind": 512,
535
535
  "children": [
536
- 304
536
+ 310
537
537
  ]
538
538
  },
539
539
  {
540
540
  "title": "Methods",
541
541
  "kind": 2048,
542
542
  "children": [
543
- 316,
544
- 313,
545
- 311
543
+ 322,
544
+ 319,
545
+ 317
546
546
  ]
547
547
  }
548
548
  ],
@@ -561,14 +561,14 @@
561
561
  ]
562
562
  },
563
563
  {
564
- "id": 393,
564
+ "id": 399,
565
565
  "name": "SkyGetGridOptionsArgs",
566
566
  "kind": 256,
567
567
  "kindString": "Interface",
568
568
  "flags": {},
569
569
  "children": [
570
570
  {
571
- "id": 394,
571
+ "id": 400,
572
572
  "name": "gridOptions",
573
573
  "kind": 1024,
574
574
  "kindString": "Property",
@@ -589,7 +589,7 @@
589
589
  }
590
590
  },
591
591
  {
592
- "id": 395,
592
+ "id": 401,
593
593
  "name": "locale",
594
594
  "kind": 1024,
595
595
  "kindString": "Property",
@@ -617,8 +617,8 @@
617
617
  "title": "Properties",
618
618
  "kind": 1024,
619
619
  "children": [
620
- 394,
621
- 395
620
+ 400,
621
+ 401
622
622
  ]
623
623
  }
624
624
  ],
@@ -636,22 +636,22 @@
636
636
  "title": "Enumerations",
637
637
  "kind": 8,
638
638
  "children": [
639
- 373
639
+ 379
640
640
  ]
641
641
  },
642
642
  {
643
643
  "title": "Classes",
644
644
  "kind": 128,
645
645
  "children": [
646
- 300,
647
- 303
646
+ 306,
647
+ 309
648
648
  ]
649
649
  },
650
650
  {
651
651
  "title": "Interfaces",
652
652
  "kind": 256,
653
653
  "children": [
654
- 393
654
+ 399
655
655
  ]
656
656
  }
657
657
  ],
@@ -663,5 +663,156 @@
663
663
  }
664
664
  ]
665
665
  },
666
- "codeExamples": []
666
+ "codeExamples": [
667
+ {
668
+ "fileName": "data-entry-grid-docs-demo-context-menu.component.html",
669
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/basic/data-entry-grid-docs-demo-context-menu.component.html",
670
+ "rawContents": "<sky-dropdown buttonType=\"context-menu\">\n <sky-dropdown-menu>\n <sky-dropdown-item>\n <button type=\"button\" (click)=\"actionClicked('Delete')\">Delete</button>\n </sky-dropdown-item>\n <sky-dropdown-item>\n <button type=\"button\" (click)=\"actionClicked('Mark inactive')\">\n Mark inactive\n </button>\n </sky-dropdown-item>\n <sky-dropdown-item>\n <button type=\"button\" (click)=\"actionClicked('More info')\">\n More info\n </button>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n</sky-dropdown>\n"
671
+ },
672
+ {
673
+ "fileName": "data-entry-grid-docs-demo-context-menu.component.ts",
674
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/basic/data-entry-grid-docs-demo-context-menu.component.ts",
675
+ "rawContents": "import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-data-entry-grid-docs-demo-context-menu',\n templateUrl: './data-entry-grid-docs-demo-context-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDataEntryGridContextMenuComponent\n implements ICellRendererAngularComp\n{\n private name: string = '';\n\n public agInit(params: ICellRendererParams): void {\n this.name = params.data && params.data.name;\n }\n\n public refresh(): boolean {\n return false;\n }\n\n public actionClicked(action: string): void {\n alert(`${action} clicked for ${this.name}`);\n }\n}\n"
676
+ },
677
+ {
678
+ "fileName": "data-entry-grid-docs-demo-data.ts",
679
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/basic/data-entry-grid-docs-demo-data.ts",
680
+ "rawContents": "export interface SkyAutocompleteOption {\n id: string;\n name: string;\n}\n\nexport const SKY_DEPARTMENTS = [\n {\n id: '1',\n name: 'Marketing',\n },\n {\n id: '2',\n name: 'Sales',\n },\n {\n id: '3',\n name: 'Engineering',\n },\n {\n id: '4',\n name: 'Customer Support',\n },\n];\n\nexport const SKY_JOB_TITLES: { [name: string]: SkyAutocompleteOption[] } = {\n Marketing: [\n {\n id: '1',\n name: 'Social Media Coordinator',\n },\n {\n id: '2',\n name: 'Blog Manager',\n },\n {\n id: '3',\n name: 'Events Manager',\n },\n ],\n Sales: [\n {\n id: '4',\n name: 'Business Development Representative',\n },\n {\n id: '5',\n name: 'Account Executive',\n },\n ],\n Engineering: [\n {\n id: '6',\n name: 'Software Engineer',\n },\n {\n id: '7',\n name: 'Senior Software Engineer',\n },\n {\n id: '8',\n name: 'Principal Software Engineer',\n },\n {\n id: '9',\n name: 'UX Designer',\n },\n {\n id: '10',\n name: 'Product Manager',\n },\n ],\n 'Customer Support': [\n {\n id: '11',\n name: 'Customer Support Representative',\n },\n {\n id: '12',\n name: 'Account Manager',\n },\n {\n id: '13',\n name: 'Customer Support Specialist',\n },\n ],\n};\n\nexport interface SkyAgGridDemoRow {\n selected: boolean;\n name: string;\n age: number;\n startDate: Date;\n endDate?: Date;\n department: SkyAutocompleteOption;\n jobTitle?: SkyAutocompleteOption;\n}\n\nexport const SKY_AG_GRID_DEMO_DATA = [\n {\n selected: true,\n name: 'Billy Bob',\n age: 55,\n startDate: new Date('12/1/1994'),\n department: SKY_DEPARTMENTS[3],\n jobTitle: SKY_JOB_TITLES['Customer Support'][1],\n },\n {\n selected: false,\n name: 'Jane Deere',\n age: 33,\n startDate: new Date('7/15/2009'),\n department: SKY_DEPARTMENTS[2],\n jobTitle: SKY_JOB_TITLES['Engineering'][2],\n },\n {\n selected: false,\n name: 'John Doe',\n age: 38,\n startDate: new Date('9/1/2017'),\n endDate: new Date('9/30/2017'),\n department: SKY_DEPARTMENTS[1],\n },\n {\n selected: false,\n name: 'David Smith',\n age: 51,\n startDate: new Date('1/1/2012'),\n endDate: new Date('6/15/2018'),\n department: SKY_DEPARTMENTS[2],\n jobTitle: SKY_JOB_TITLES['Engineering'][4],\n },\n {\n selected: true,\n name: 'Emily Johnson',\n age: 41,\n startDate: new Date('1/15/2014'),\n department: SKY_DEPARTMENTS[0],\n jobTitle: SKY_JOB_TITLES['Marketing'][2],\n },\n {\n selected: false,\n name: 'Nicole Davidson',\n age: 22,\n startDate: new Date('11/1/2019'),\n department: SKY_DEPARTMENTS[2],\n jobTitle: SKY_JOB_TITLES['Engineering'][0],\n },\n {\n selected: false,\n name: 'Carl Roberts',\n age: 23,\n startDate: new Date('11/1/2019'),\n department: SKY_DEPARTMENTS[2],\n jobTitle: SKY_JOB_TITLES['Engineering'][3],\n },\n];\n"
681
+ },
682
+ {
683
+ "fileName": "data-entry-grid-docs-demo-edit-modal-context.ts",
684
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/basic/data-entry-grid-docs-demo-edit-modal-context.ts",
685
+ "rawContents": "import { SkyAgGridDemoRow } from './data-entry-grid-docs-demo-data';\n\nexport class SkyDataEntryGridEditModalContext {\n public gridData: SkyAgGridDemoRow[] = [];\n}\n"
686
+ },
687
+ {
688
+ "fileName": "data-entry-grid-docs-demo-edit-modal.component.html",
689
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/basic/data-entry-grid-docs-demo-edit-modal.component.html",
690
+ "rawContents": "<sky-modal>\n <sky-modal-header> Edit employee information </sky-modal-header>\n <sky-modal-content>\n <div id=\"docs-edit-grid-modal-content\">\n <sky-ag-grid-wrapper>\n <ag-grid-angular\n class=\"sky-ag-grid-editable\"\n [gridOptions]=\"gridOptions\"\n [rowData]=\"gridData\"\n >\n </ag-grid-angular>\n </sky-ag-grid-wrapper>\n </div>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n class=\"sky-btn sky-btn-primary\"\n type=\"button\"\n (click)=\"instance.save(gridData)\"\n >\n Save\n </button>\n <button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n (click)=\"instance.cancel()\"\n >\n Cancel\n </button>\n </sky-modal-footer>\n</sky-modal>\n"
691
+ },
692
+ {
693
+ "fileName": "data-entry-grid-docs-demo-edit-modal.component.ts",
694
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/basic/data-entry-grid-docs-demo-edit-modal.component.ts",
695
+ "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 SkyAgGridDemoRow,\n SKY_DEPARTMENTS,\n SKY_JOB_TITLES,\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 let 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"
696
+ },
697
+ {
698
+ "fileName": "data-entry-grid-docs-demo.component.html",
699
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/basic/data-entry-grid-docs-demo.component.html",
700
+ "rawContents": "<div>\n <sky-toolbar>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-primary\"\n id=\"edit-btn\"\n (click)=\"openModal()\"\n >\n Edit\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <sky-search\n [searchText]=\"searchText\"\n [debounceTime]=\"250\"\n (searchApply)=\"searchApplied($event)\"\n (searchChange)=\"searchApplied($event)\"\n (searchClear)=\"searchApplied($event)\"\n >\n </sky-search>\n </sky-toolbar-item>\n </sky-toolbar>\n <sky-ag-grid-wrapper>\n <ag-grid-angular [gridOptions]=\"gridOptions\" [rowData]=\"gridData\">\n </ag-grid-angular>\n </sky-ag-grid-wrapper>\n</div>\n"
701
+ },
702
+ {
703
+ "fileName": "data-entry-grid-docs-demo.component.ts",
704
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/basic/data-entry-grid-docs-demo.component.ts",
705
+ "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport { SkyCellType, SkyAgGridService } from '@skyux/ag-grid';\nimport { SkyModalService, SkyModalCloseArgs } from '@skyux/modals';\n\nimport {\n GridApi,\n GridReadyEvent,\n GridOptions,\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 type: [SkyCellType.CurrencyValidator],\n },\n {\n colId: 'validationDate',\n field: 'validationDate',\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: string = '';\n\n constructor(\n private agGridService: SkyAgGridService,\n private modalService: SkyModalService,\n private changeDetection: ChangeDetectorRef\n ) {\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 }\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"
706
+ },
707
+ {
708
+ "fileName": "data-entry-grid-docs-demo.module.ts",
709
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/basic/data-entry-grid-docs-demo.module.ts",
710
+ "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"
711
+ },
712
+ {
713
+ "fileName": "data-manager-data-entry-grid-docs-demo-context-menu.component.html",
714
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo-context-menu.component.html",
715
+ "rawContents": "<sky-dropdown buttonType=\"context-menu\">\n <sky-dropdown-menu>\n <sky-dropdown-item>\n <button type=\"button\" (click)=\"actionClicked('Delete')\">Delete</button>\n </sky-dropdown-item>\n <sky-dropdown-item>\n <button type=\"button\" (click)=\"actionClicked('Mark inactive')\">\n Mark inactive\n </button>\n </sky-dropdown-item>\n <sky-dropdown-item>\n <button type=\"button\" (click)=\"actionClicked('More info')\">\n More info\n </button>\n </sky-dropdown-item>\n </sky-dropdown-menu>\n</sky-dropdown>\n"
716
+ },
717
+ {
718
+ "fileName": "data-manager-data-entry-grid-docs-demo-context-menu.component.ts",
719
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo-context-menu.component.ts",
720
+ "rawContents": "import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-data-manager-data-entry-grid-docs-demo-context-menu',\n templateUrl:\n './data-manager-data-entry-grid-docs-demo-context-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDataManagerDataEntryGridContextMenuComponent\n implements ICellRendererAngularComp\n{\n private name: string = '';\n\n public agInit(params: ICellRendererParams): void {\n this.name = params.data && params.data.name;\n }\n\n public refresh(): boolean {\n return false;\n }\n\n public actionClicked(action: string): void {\n alert(`${action} clicked for ${this.name}`);\n }\n}\n"
721
+ },
722
+ {
723
+ "fileName": "data-manager-data-entry-grid-docs-demo-data.ts",
724
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo-data.ts",
725
+ "rawContents": "export interface SkyAutocompleteOption {\n id: string;\n name: string;\n}\n\nexport const SKY_DEPARTMENTS = [\n {\n id: '1',\n name: 'Marketing',\n },\n {\n id: '2',\n name: 'Sales',\n },\n {\n id: '3',\n name: 'Engineering',\n },\n {\n id: '4',\n name: 'Customer Support',\n },\n];\n\nexport const SKY_JOB_TITLES: { [name: string]: SkyAutocompleteOption[] } = {\n Marketing: [\n {\n id: '1',\n name: 'Social Media Coordinator',\n },\n {\n id: '2',\n name: 'Blog Manager',\n },\n {\n id: '3',\n name: 'Events Manager',\n },\n ],\n Sales: [\n {\n id: '4',\n name: 'Business Development Representative',\n },\n {\n id: '5',\n name: 'Account Executive',\n },\n ],\n Engineering: [\n {\n id: '6',\n name: 'Software Engineer',\n },\n {\n id: '7',\n name: 'Senior Software Engineer',\n },\n {\n id: '8',\n name: 'Principal Software Engineer',\n },\n {\n id: '9',\n name: 'UX Designer',\n },\n {\n id: '10',\n name: 'Product Manager',\n },\n ],\n 'Customer Support': [\n {\n id: '11',\n name: 'Customer Support Representative',\n },\n {\n id: '12',\n name: 'Account Manager',\n },\n {\n id: '13',\n name: 'Customer Support Specialist',\n },\n ],\n};\n\nexport interface SkyAgGridDemoRow {\n selected: boolean;\n name: string;\n age: number;\n startDate: Date;\n endDate?: Date;\n department: SkyAutocompleteOption;\n jobTitle?: SkyAutocompleteOption;\n}\n\nexport const SKY_AG_GRID_DEMO_DATA = [\n {\n selected: true,\n name: 'Billy Bob',\n age: 55,\n startDate: new Date('12/1/1994'),\n department: SKY_DEPARTMENTS[3],\n jobTitle: SKY_JOB_TITLES['Customer Support'][1],\n },\n {\n selected: false,\n name: 'Jane Deere',\n age: 33,\n startDate: new Date('7/15/2009'),\n department: SKY_DEPARTMENTS[2],\n jobTitle: SKY_JOB_TITLES['Engineering'][2],\n },\n {\n selected: false,\n name: 'John Doe',\n age: 38,\n startDate: new Date('9/1/2017'),\n endDate: new Date('9/30/2017'),\n department: SKY_DEPARTMENTS[1],\n jobTitle: SKY_JOB_TITLES['Sales'][1],\n },\n {\n selected: false,\n name: 'David Smith',\n age: 51,\n startDate: new Date('1/1/2012'),\n endDate: new Date('6/15/2018'),\n department: SKY_DEPARTMENTS[2],\n jobTitle: SKY_JOB_TITLES['Engineering'][4],\n },\n {\n selected: true,\n name: 'Emily Johnson',\n age: 41,\n startDate: new Date('1/15/2014'),\n department: SKY_DEPARTMENTS[0],\n jobTitle: SKY_JOB_TITLES['Marketing'][2],\n },\n {\n selected: false,\n name: 'Nicole Davidson',\n age: 22,\n startDate: new Date('11/1/2019'),\n department: SKY_DEPARTMENTS[2],\n jobTitle: SKY_JOB_TITLES['Engineering'][0],\n },\n {\n selected: false,\n name: 'Carl Roberts',\n age: 23,\n startDate: new Date('11/1/2019'),\n department: SKY_DEPARTMENTS[2],\n jobTitle: SKY_JOB_TITLES['Engineering'][3],\n },\n];\n"
726
+ },
727
+ {
728
+ "fileName": "data-manager-data-entry-grid-docs-demo-edit-modal-context.ts",
729
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo-edit-modal-context.ts",
730
+ "rawContents": "import { SkyAgGridDemoRow } from './data-manager-data-entry-grid-docs-demo-data';\n\nexport class SkyDataEntryGridEditModalContext {\n public gridData: SkyAgGridDemoRow[] = [];\n}\n"
731
+ },
732
+ {
733
+ "fileName": "data-manager-data-entry-grid-docs-demo-edit-modal.component.html",
734
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo-edit-modal.component.html",
735
+ "rawContents": "<sky-modal>\n <sky-modal-header> Edit employee information </sky-modal-header>\n <sky-modal-content>\n <div id=\"docs-edit-grid-modal-content\">\n <sky-ag-grid-wrapper>\n <ag-grid-angular\n class=\"sky-ag-grid-editable\"\n [gridOptions]=\"gridOptions\"\n [rowData]=\"gridData\"\n >\n </ag-grid-angular>\n </sky-ag-grid-wrapper>\n </div>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n class=\"sky-btn sky-btn-primary\"\n type=\"button\"\n (click)=\"instance.save(gridData)\"\n >\n Save\n </button>\n <button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n (click)=\"instance.cancel()\"\n >\n Cancel\n </button>\n </sky-modal-footer>\n</sky-modal>\n"
736
+ },
737
+ {
738
+ "fileName": "data-manager-data-entry-grid-docs-demo-edit-modal.component.ts",
739
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo-edit-modal.component.ts",
740
+ "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 SkyAgGridDemoRow,\n SKY_DEPARTMENTS,\n SKY_JOB_TITLES,\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 let 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"
741
+ },
742
+ {
743
+ "fileName": "data-manager-data-entry-grid-docs-demo-filter-modal.component.html",
744
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo-filter-modal.component.html",
745
+ "rawContents": "<sky-modal>\n <sky-modal-header> Filter employees </sky-modal-header>\n <sky-modal-content>\n <label for=\"sky-demo-select-type\">Job Title</label>\n <select\n id=\"sky-demo-select-type\"\n [(ngModel)]=\"jobTitle\"\n class=\"sky-form-control\"\n >\n <option value=\"any\">Any job title</option>\n <option value=\"Product Manager\">Product Manager</option>\n <option value=\"Software Engineer\">Software Engineer</option>\n </select>\n <div style=\"margin-top: 15px\">\n <sky-checkbox [(ngModel)]=\"hideSales\">\n <sky-checkbox-label> Hide Sales employees </sky-checkbox-label>\n </sky-checkbox>\n </div>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-primary\"\n (click)=\"applyFilters()\"\n >\n Apply filters\n </button>\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-link\"\n (click)=\"clearAllFilters()\"\n >\n Clear all filters\n </button>\n <button type=\"button\" class=\"sky-btn sky-btn-link\" (click)=\"cancel()\">\n Cancel\n </button>\n </sky-modal-footer>\n</sky-modal>\n"
746
+ },
747
+ {
748
+ "fileName": "data-manager-data-entry-grid-docs-demo-filter-modal.component.ts",
749
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo-filter-modal.component.ts",
750
+ "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport {\n SkyDataManagerFilterData,\n SkyDataManagerFilterModalContext,\n} from '@skyux/data-manager';\nimport { SkyModalInstance } from '@skyux/modals';\n\n@Component({\n selector: 'app-data-manager-data-entry-grid-docs-demo-filter-modal',\n templateUrl:\n './data-manager-data-entry-grid-docs-demo-filter-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataManagerDataEntryGridDocsDemoFiltersModalComponent {\n public jobTitle: string = '';\n\n public hideSales: boolean = false;\n\n constructor(\n public context: SkyDataManagerFilterModalContext,\n public instance: SkyModalInstance,\n private changeDetector: ChangeDetectorRef\n ) {\n if (this.context.filterData && this.context.filterData.filters) {\n let filters = this.context.filterData.filters;\n this.jobTitle = filters.jobTitle?.name || 'any';\n this.hideSales = filters.hideSales || false;\n }\n this.changeDetector.markForCheck();\n }\n\n public applyFilters() {\n let result: SkyDataManagerFilterData = {};\n\n result.filtersApplied = this.jobTitle !== 'any' || this.hideSales;\n result.filters = {\n jobTitle: this.jobTitle,\n hideSales: this.hideSales,\n };\n this.changeDetector.markForCheck();\n\n this.instance.save(result);\n }\n\n public clearAllFilters() {\n this.hideSales = false;\n this.jobTitle = 'any';\n this.changeDetector.markForCheck();\n }\n\n public cancel() {\n this.instance.cancel();\n }\n}\n"
751
+ },
752
+ {
753
+ "fileName": "data-manager-data-entry-grid-docs-demo.component.html",
754
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo.component.html",
755
+ "rawContents": "<sky-data-manager>\n <sky-data-manager-toolbar>\n <sky-data-manager-toolbar-left-item>\n <button\n class=\"sky-btn sky-btn-primary\"\n id=\"edit-btn\"\n (click)=\"openModal()\"\n >\n Edit\n </button>\n </sky-data-manager-toolbar-left-item>\n </sky-data-manager-toolbar>\n <sky-data-view skyAgGridDataManagerAdapter [viewId]=\"viewConfig.id\">\n <sky-ag-grid-wrapper *ngIf=\"gridInitialized\">\n <ag-grid-angular [gridOptions]=\"gridOptions\" [rowData]=\"displayedItems\">\n </ag-grid-angular>\n </sky-ag-grid-wrapper>\n </sky-data-view>\n</sky-data-manager>\n"
756
+ },
757
+ {
758
+ "fileName": "data-manager-data-entry-grid-docs-demo.component.ts",
759
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo.component.ts",
760
+ "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { SkyAgGridService, SkyCellType } from '@skyux/ag-grid';\n\nimport {\n ColDef,\n ColumnApi,\n GridApi,\n GridOptions,\n GridReadyEvent,\n ValueFormatterParams,\n} from 'ag-grid-community';\n\nimport {\n SkyDataManagerState,\n SkyDataViewConfig,\n SkyDataManagerService,\n} from '@skyux/data-manager';\n\nimport { SkyDataManagerDataEntryGridContextMenuComponent } from './data-manager-data-entry-grid-docs-demo-context-menu.component';\nimport { SKY_AG_GRID_DEMO_DATA } from './data-manager-data-entry-grid-docs-demo-data';\nimport { SkyDataEntryGridEditModalContext } from './data-manager-data-entry-grid-docs-demo-edit-modal-context';\nimport { SkyDataManagerDataEntryGridEditModalComponent } from './data-manager-data-entry-grid-docs-demo-edit-modal.component';\nimport { SkyModalCloseArgs, SkyModalService } from '@skyux/modals';\nimport { DataManagerDataEntryGridDocsDemoFiltersModalComponent } from './data-manager-data-entry-grid-docs-demo-filter-modal.component';\n\n@Component({\n selector: 'app-data-manager-data-entry-grid-docs-demo',\n templateUrl: './data-manager-data-entry-grid-docs-demo.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [SkyDataManagerService],\n})\nexport class SkyDataManagerDataEntryGridDemoComponent implements OnInit {\n public columnDefs: ColDef[] = [\n {\n field: 'selected',\n type: SkyCellType.RowSelector,\n },\n {\n field: 'context',\n headerName: '',\n maxWidth: 50,\n sortable: false,\n cellRendererFramework: SkyDataManagerDataEntryGridContextMenuComponent,\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 field: 'validationCurrency',\n type: [SkyCellType.CurrencyValidator],\n },\n {\n field: 'validationDate',\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 public columnApi?: ColumnApi;\n public displayedItems: any[] = [];\n public gridData = SKY_AG_GRID_DEMO_DATA;\n\n public viewId = 'gridView';\n public activeViewId = 'gridView';\n\n public dataState = new SkyDataManagerState({});\n\n public viewConfig: SkyDataViewConfig = {\n id: this.viewId,\n name: 'Grid View',\n icon: 'table',\n searchEnabled: true,\n sortEnabled: true,\n multiselectToolbarEnabled: true,\n columnPickerEnabled: true,\n filterButtonEnabled: true,\n columnOptions: [\n {\n id: 'selected',\n label: 'selected',\n alwaysDisplayed: true,\n },\n\n {\n id: 'context',\n label: 'context',\n alwaysDisplayed: true,\n },\n {\n id: 'name',\n label: 'Name',\n description: 'The name of the employee.',\n },\n {\n id: 'age',\n label: 'Age',\n description: 'The age of the employee.',\n },\n {\n id: 'startDate',\n label: 'Start Date',\n description: 'The start date of the employee.',\n },\n {\n id: 'endDate',\n label: 'End Date',\n description: 'The end date of the employee.',\n },\n {\n id: 'department',\n label: 'Department',\n description: 'The department of the employee',\n },\n {\n id: 'jobTitle',\n label: 'Title',\n description: 'The job title of the employee.',\n },\n {\n id: 'validationCurrency',\n label: 'Validation Currency',\n description: 'An example column for currency validation.',\n },\n {\n id: 'validationDate',\n label: 'Validation Date',\n description: 'An example column for date validation.',\n },\n ],\n };\n\n public dataManagerConfig = {\n filterModalComponent: DataManagerDataEntryGridDocsDemoFiltersModalComponent,\n sortOptions: [\n {\n id: 'az',\n label: 'Name (A - Z)',\n descending: false,\n propertyName: 'name',\n },\n {\n id: 'za',\n label: 'Name (Z - A)',\n descending: true,\n propertyName: 'name',\n },\n ],\n };\n\n public defaultDataState = new SkyDataManagerState({\n filterData: {\n filtersApplied: false,\n filters: {\n hideSales: false,\n },\n },\n views: [\n {\n viewId: this.viewId,\n displayedColumnIds: [\n 'selected',\n 'name',\n 'age',\n 'startDate',\n 'endDate',\n 'department',\n 'jobTitle',\n 'validationCurrency',\n 'validationDate',\n ],\n },\n ],\n });\n\n public gridApi?: GridApi;\n public gridInitialized = false;\n public gridOptions!: GridOptions;\n\n constructor(\n private agGridService: SkyAgGridService,\n private changeDetector: ChangeDetectorRef,\n private dataManagerService: SkyDataManagerService,\n private modalService: SkyModalService\n ) {\n this.dataManagerService\n .getDataStateUpdates(this.viewId)\n .subscribe((state) => {\n this.dataState = state;\n this.setInitialColumnOrder();\n this.updateData();\n this.changeDetector.markForCheck();\n });\n }\n\n public ngOnInit(): void {\n this.displayedItems = this.gridData;\n\n this.dataManagerService.initDataManager({\n activeViewId: this.activeViewId,\n dataManagerConfig: this.dataManagerConfig,\n defaultDataState: this.defaultDataState,\n });\n\n this.dataManagerService.initDataView(this.viewConfig);\n\n this.gridOptions = this.agGridService.getGridOptions({\n gridOptions: {\n columnDefs: this.columnDefs,\n onGridReady: this.onGridReady.bind(this),\n },\n });\n this.changeDetector.markForCheck();\n }\n\n public updateData(): void {\n this.sortItems();\n this.displayedItems = this.filterItems(this.searchItems(this.gridData));\n\n if (this.dataState.onlyShowSelected) {\n this.displayedItems = this.displayedItems.filter((item) => item.selected);\n }\n this.changeDetector.markForCheck();\n }\n\n public setInitialColumnOrder(): void {\n let viewState = this.dataState.getViewStateById(this.viewId);\n let visibleColumns = viewState.displayedColumnIds;\n\n this.columnDefs.sort((col1, col2) => {\n let col1Index = visibleColumns.findIndex(\n (colId: string) => colId === col1.colId\n );\n let col2Index = visibleColumns.findIndex(\n (colId: string) => colId === col2.colId\n );\n\n if (col1Index === -1) {\n col1.hide = true;\n return 0;\n } else if (col2Index === -1) {\n col2.hide = true;\n return 0;\n } else {\n return col1Index - col2Index;\n }\n });\n\n this.gridInitialized = true;\n this.changeDetector.markForCheck();\n }\n\n public onGridReady(event: GridReadyEvent): void {\n this.columnApi = event.columnApi;\n this.gridApi = event.api;\n this.gridApi.sizeColumnsToFit();\n this.updateData();\n this.changeDetector.markForCheck();\n }\n\n public sortItems(): void {\n let sortOption = this.dataState.activeSortOption;\n if (this.columnApi && sortOption) {\n const allColumns = this.columnApi.getAllColumns() || [];\n allColumns.forEach((column) => {\n if (column.getColId() === sortOption.propertyName) {\n column.setSort(sortOption.descending ? 'desc' : 'asc');\n } else {\n column.setSort('none');\n }\n });\n }\n }\n\n public clearAll(): void {\n if (this.dataState) {\n let selectedIds = this.dataState.selectedIds || [];\n\n this.displayedItems.forEach((item) => {\n if (item.selected) {\n let itemIndex = selectedIds.indexOf(item.id);\n item.selected = false;\n selectedIds.splice(itemIndex, 1);\n }\n });\n this.dataState.selectedIds = selectedIds;\n this.dataManagerService.updateDataState(this.dataState, this.viewId);\n }\n }\n\n public selectAll(): void {\n if (this.dataState) {\n let selectedIds = this.dataState.selectedIds || [];\n\n this.displayedItems.forEach((item) => {\n if (!item.selected) {\n item.selected = true;\n selectedIds.push(item.id);\n }\n });\n\n this.dataState.selectedIds = selectedIds;\n this.dataManagerService.updateDataState(this.dataState, this.viewId);\n }\n }\n\n public searchItems(items: any[]): any[] {\n let searchedItems = items;\n let searchText = this.dataState && this.dataState.searchText;\n\n if (searchText) {\n searchedItems = items.filter(function (item: any) {\n let property: any;\n\n for (property in item) {\n if (\n item.hasOwnProperty(property) &&\n (property === 'name' || property === 'description')\n ) {\n const propertyText = item[property].toLowerCase();\n if (propertyText.indexOf(searchText) > -1) {\n return true;\n }\n }\n }\n\n return false;\n });\n }\n return searchedItems;\n }\n\n public filterItems(items: any[]): any[] {\n let filteredItems = items;\n let filterData = this.dataState && this.dataState.filterData;\n\n if (filterData && filterData.filters) {\n let filters = filterData.filters;\n filteredItems = items.filter((item: any) => {\n return (\n ((filters.hideOrange && item.color !== 'orange') ||\n !filters.hideOrange) &&\n ((filters.type !== 'any' && item.type === filters.type) ||\n !filters.type ||\n filters.type === 'any')\n );\n });\n }\n\n return filteredItems;\n }\n\n public openModal(): void {\n const context = new SkyDataEntryGridEditModalContext();\n context.gridData = this.gridData;\n this.changeDetector.markForCheck();\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 SkyDataManagerDataEntryGridEditModalComponent,\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 this.changeDetector.markForCheck();\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"
761
+ },
762
+ {
763
+ "fileName": "data-manager-data-entry-grid-docs-demo.module.ts",
764
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo.module.ts",
765
+ "rawContents": "import { NgModule } from '@angular/core';\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';\nimport { DataManagerDataEntryGridDocsDemoFiltersModalComponent } from './data-manager-data-entry-grid-docs-demo-filter-modal.component';\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 { SkyDataManagerDataEntryGridDemoComponent } from './data-manager-data-entry-grid-docs-demo.component';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [\n SkyDataManagerDataEntryGridContextMenuComponent,\n SkyDataManagerDataEntryGridDemoComponent,\n SkyDataManagerDataEntryGridEditModalComponent,\n DataManagerDataEntryGridDocsDemoFiltersModalComponent,\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"
766
+ },
767
+ {
768
+ "fileName": "basic-data-grid-docs-demo-data.ts",
769
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-grid/basic/basic-data-grid-docs-demo-data.ts",
770
+ "rawContents": "export interface SkyAutocompleteOption {\n id: string;\n name: string;\n}\n\nexport const SKY_DEPARTMENTS = [\n {\n id: '1',\n name: 'Marketing',\n },\n {\n id: '2',\n name: 'Sales',\n },\n {\n id: '3',\n name: 'Engineering',\n },\n {\n id: '4',\n name: 'Customer Support',\n },\n];\n\nexport const SKY_JOB_TITLES: { [name: string]: SkyAutocompleteOption[] } = {\n Marketing: [\n {\n id: '1',\n name: 'Social Media Coordinator',\n },\n {\n id: '2',\n name: 'Blog Manager',\n },\n {\n id: '3',\n name: 'Events Manager',\n },\n ],\n Sales: [\n {\n id: '4',\n name: 'Business Development Representative',\n },\n {\n id: '5',\n name: 'Account Executive',\n },\n ],\n Engineering: [\n {\n id: '6',\n name: 'Software Engineer',\n },\n {\n id: '7',\n name: 'Senior Software Engineer',\n },\n {\n id: '8',\n name: 'Principal Software Engineer',\n },\n {\n id: '9',\n name: 'UX Designer',\n },\n {\n id: '10',\n name: 'Product Manager',\n },\n ],\n 'Customer Support': [\n {\n id: '11',\n name: 'Customer Support Representative',\n },\n {\n id: '12',\n name: 'Account Manager',\n },\n {\n id: '13',\n name: 'Customer Support Specialist',\n },\n ],\n};\n\nexport interface SkyAgGridDemoRow {\n selected: boolean;\n name: string;\n age: number;\n startDate: Date;\n endDate?: Date;\n department: SkyAutocompleteOption;\n jobTitle?: SkyAutocompleteOption;\n}\n\nexport const SKY_AG_GRID_DEMO_DATA = [\n {\n selected: true,\n name: 'Billy Bob',\n age: 55,\n startDate: new Date('12/1/1994'),\n department: SKY_DEPARTMENTS[3],\n jobTitle: SKY_JOB_TITLES['Customer Support'][1],\n },\n {\n selected: false,\n name: 'Jane Deere',\n age: 33,\n startDate: new Date('7/15/2009'),\n department: SKY_DEPARTMENTS[2],\n jobTitle: SKY_JOB_TITLES['Engineering'][2],\n },\n {\n selected: false,\n name: 'John Doe',\n age: 38,\n startDate: new Date('9/1/2017'),\n endDate: new Date('9/30/2017'),\n department: SKY_DEPARTMENTS[1],\n },\n {\n selected: false,\n name: 'David Smith',\n age: 51,\n startDate: new Date('1/1/2012'),\n endDate: new Date('6/15/2018'),\n department: SKY_DEPARTMENTS[2],\n jobTitle: SKY_JOB_TITLES['Engineering'][4],\n },\n {\n selected: true,\n name: 'Emily Johnson',\n age: 41,\n startDate: new Date('1/15/2014'),\n department: SKY_DEPARTMENTS[0],\n jobTitle: SKY_JOB_TITLES['Marketing'][2],\n },\n {\n selected: false,\n name: 'Nicole Davidson',\n age: 22,\n startDate: new Date('11/1/2019'),\n department: SKY_DEPARTMENTS[2],\n jobTitle: SKY_JOB_TITLES['Engineering'][0],\n },\n {\n selected: false,\n name: 'Carl Roberts',\n age: 23,\n startDate: new Date('11/1/2019'),\n department: SKY_DEPARTMENTS[2],\n jobTitle: SKY_JOB_TITLES['Engineering'][3],\n },\n];\n"
771
+ },
772
+ {
773
+ "fileName": "basic-data-grid-docs-demo.component.html",
774
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-grid/basic/basic-data-grid-docs-demo.component.html",
775
+ "rawContents": "<div>\n <sky-toolbar>\n <sky-toolbar-item>\n <sky-search\n [searchText]=\"searchText\"\n [debounceTime]=\"250\"\n (searchApply)=\"searchApplied($event)\"\n (searchChange)=\"searchApplied($event)\"\n (searchClear)=\"searchApplied($event)\"\n >\n </sky-search>\n </sky-toolbar-item>\n </sky-toolbar>\n <sky-ag-grid-wrapper>\n <ag-grid-angular [gridOptions]=\"gridOptions\" [rowData]=\"gridData\">\n </ag-grid-angular>\n </sky-ag-grid-wrapper>\n</div>\n"
776
+ },
777
+ {
778
+ "fileName": "basic-data-grid-docs-demo.component.ts",
779
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-grid/basic/basic-data-grid-docs-demo.component.ts",
780
+ "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport { SkyCellType, SkyAgGridService } from '@skyux/ag-grid';\n\nimport {\n GridApi,\n GridReadyEvent,\n GridOptions,\n ValueFormatterParams,\n} from 'ag-grid-community';\n\nimport { SKY_AG_GRID_DEMO_DATA } from './basic-data-grid-docs-demo-data';\n\n@Component({\n selector: 'app-basic-data-grid-docs-demo',\n templateUrl: './basic-data-grid-docs-demo.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyBasicDataGridDemoComponent {\n public columnDefs = [\n {\n field: 'selected',\n type: SkyCellType.RowSelector,\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 type: [SkyCellType.CurrencyValidator],\n },\n {\n colId: 'validationDate',\n field: 'validationDate',\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 gridData = SKY_AG_GRID_DEMO_DATA;\n public gridOptions: GridOptions;\n public searchText: string = '';\n\n constructor(\n private agGridService: SkyAgGridService,\n private changeDetector: ChangeDetectorRef\n ) {\n this.gridOptions = this.agGridService.getGridOptions({\n gridOptions: {\n columnDefs: this.columnDefs,\n onGridReady: this.onGridReady.bind(this),\n },\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 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 }\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"
781
+ },
782
+ {
783
+ "fileName": "basic-data-grid-docs-demo.module.ts",
784
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-grid/basic/basic-data-grid-docs-demo.module.ts",
785
+ "rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyAgGridModule } from '@skyux/ag-grid';\nimport {\n SkyDataManagerModule,\n SkyDataManagerService,\n} from '@skyux/data-manager';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkySearchModule } from '@skyux/lookup';\n\nimport { AgGridModule } from 'ag-grid-angular';\n\nimport { SkyBasicDataGridDemoComponent } from './basic-data-grid-docs-demo.component';\n\n@NgModule({\n declarations: [SkyBasicDataGridDemoComponent],\n exports: [SkyBasicDataGridDemoComponent],\n imports: [\n CommonModule,\n SkyToolbarModule,\n SkySearchModule,\n SkyDataManagerModule,\n SkyAgGridModule,\n AgGridModule,\n ],\n providers: [SkyDataManagerService],\n})\nexport class SkyBasicDataGridDocsDemoModule {}\n"
786
+ },
787
+ {
788
+ "fileName": "data-manager-data-grid-docs-demo-data.ts",
789
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-grid/data-manager-added/data-manager-data-grid-docs-demo-data.ts",
790
+ "rawContents": "export interface SkyAutocompleteOption {\n id: string;\n name: string;\n}\n\nexport const SKY_DEPARTMENTS = [\n {\n id: '1',\n name: 'Marketing',\n },\n {\n id: '2',\n name: 'Sales',\n },\n {\n id: '3',\n name: 'Engineering',\n },\n {\n id: '4',\n name: 'Customer Support',\n },\n];\n\nexport const SKY_JOB_TITLES: { [name: string]: SkyAutocompleteOption[] } = {\n Marketing: [\n {\n id: '1',\n name: 'Social Media Coordinator',\n },\n {\n id: '2',\n name: 'Blog Manager',\n },\n {\n id: '3',\n name: 'Events Manager',\n },\n ],\n Sales: [\n {\n id: '4',\n name: 'Business Development Representative',\n },\n {\n id: '5',\n name: 'Account Executive',\n },\n ],\n Engineering: [\n {\n id: '6',\n name: 'Software Engineer',\n },\n {\n id: '7',\n name: 'Senior Software Engineer',\n },\n {\n id: '8',\n name: 'Principal Software Engineer',\n },\n {\n id: '9',\n name: 'UX Designer',\n },\n {\n id: '10',\n name: 'Product Manager',\n },\n ],\n 'Customer Support': [\n {\n id: '11',\n name: 'Customer Support Representative',\n },\n {\n id: '12',\n name: 'Account Manager',\n },\n {\n id: '13',\n name: 'Customer Support Specialist',\n },\n ],\n};\n\nexport interface SkyAgGridDemoRow {\n selected: boolean;\n name: string;\n age: number;\n startDate: Date;\n endDate?: Date;\n department: SkyAutocompleteOption;\n jobTitle?: SkyAutocompleteOption;\n}\n\nexport const SKY_AG_GRID_DEMO_DATA = [\n {\n selected: true,\n name: 'Billy Bob',\n age: 55,\n startDate: new Date('12/1/1994'),\n department: SKY_DEPARTMENTS[3],\n jobTitle: SKY_JOB_TITLES['Customer Support'][1],\n },\n {\n selected: false,\n name: 'Jane Deere',\n age: 33,\n startDate: new Date('7/15/2009'),\n department: SKY_DEPARTMENTS[2],\n jobTitle: SKY_JOB_TITLES['Engineering'][2],\n },\n {\n selected: false,\n name: 'John Doe',\n age: 38,\n startDate: new Date('9/1/2017'),\n endDate: new Date('9/30/2017'),\n department: SKY_DEPARTMENTS[1],\n jobTitle: SKY_JOB_TITLES['Sales'][1],\n },\n {\n selected: false,\n name: 'David Smith',\n age: 51,\n startDate: new Date('1/1/2012'),\n endDate: new Date('6/15/2018'),\n department: SKY_DEPARTMENTS[2],\n jobTitle: SKY_JOB_TITLES['Engineering'][4],\n },\n {\n selected: true,\n name: 'Emily Johnson',\n age: 41,\n startDate: new Date('1/15/2014'),\n department: SKY_DEPARTMENTS[0],\n jobTitle: SKY_JOB_TITLES['Marketing'][2],\n },\n {\n selected: false,\n name: 'Nicole Davidson',\n age: 22,\n startDate: new Date('11/1/2019'),\n department: SKY_DEPARTMENTS[2],\n jobTitle: SKY_JOB_TITLES['Engineering'][0],\n },\n {\n selected: false,\n name: 'Carl Roberts',\n age: 23,\n startDate: new Date('11/1/2019'),\n department: SKY_DEPARTMENTS[2],\n jobTitle: SKY_JOB_TITLES['Engineering'][3],\n },\n];\n"
791
+ },
792
+ {
793
+ "fileName": "data-manager-data-grid-docs-demo-filter-modal.component.html",
794
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-grid/data-manager-added/data-manager-data-grid-docs-demo-filter-modal.component.html",
795
+ "rawContents": "<sky-modal>\n <sky-modal-header> Filter employees </sky-modal-header>\n <sky-modal-content>\n <label for=\"sky-demo-select-type\">Job Title</label>\n <select\n id=\"sky-demo-select-type\"\n [(ngModel)]=\"jobTitle\"\n class=\"sky-form-control\"\n >\n <option value=\"any\">Any job title</option>\n <option value=\"Product Manager\">Product Manager</option>\n <option value=\"Software Engineer\">Software Engineer</option>\n </select>\n <div style=\"margin-top: 15px\">\n <sky-checkbox [(ngModel)]=\"hideSales\">\n <sky-checkbox-label> Hide Sales employees </sky-checkbox-label>\n </sky-checkbox>\n </div>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-primary\"\n (click)=\"applyFilters()\"\n >\n Apply filters\n </button>\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-link\"\n (click)=\"clearAllFilters()\"\n >\n Clear all filters\n </button>\n <button type=\"button\" class=\"sky-btn sky-btn-link\" (click)=\"cancel()\">\n Cancel\n </button>\n </sky-modal-footer>\n</sky-modal>\n"
796
+ },
797
+ {
798
+ "fileName": "data-manager-data-grid-docs-demo-filter-modal.component.ts",
799
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-grid/data-manager-added/data-manager-data-grid-docs-demo-filter-modal.component.ts",
800
+ "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport {\n SkyDataManagerFilterData,\n SkyDataManagerFilterModalContext,\n} from '@skyux/data-manager';\nimport { SkyModalInstance } from '@skyux/modals';\n\n@Component({\n selector: 'app-data-manager-data-grid-docs-demo-filter-modal',\n templateUrl: './data-manager-data-grid-docs-demo-filter-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataManagerDataGridDocsDemoFiltersModalComponent {\n public jobTitle: string = '';\n\n public hideSales: boolean = false;\n\n constructor(\n public context: SkyDataManagerFilterModalContext,\n public instance: SkyModalInstance,\n private changeDetector: ChangeDetectorRef\n ) {\n if (this.context.filterData && this.context.filterData.filters) {\n let filters = this.context.filterData.filters;\n this.jobTitle = filters.jobTitle?.name || 'any';\n this.hideSales = filters.hideSales || false;\n }\n this.changeDetector.markForCheck();\n }\n\n public applyFilters() {\n let result: SkyDataManagerFilterData = {};\n\n result.filtersApplied = this.jobTitle !== 'any' || this.hideSales;\n result.filters = {\n jobTitle: this.jobTitle,\n hideSales: this.hideSales,\n };\n this.changeDetector.markForCheck();\n\n this.instance.save(result);\n }\n\n public clearAllFilters() {\n this.hideSales = false;\n this.jobTitle = 'any';\n this.changeDetector.markForCheck();\n }\n\n public cancel() {\n this.instance.cancel();\n }\n}\n"
801
+ },
802
+ {
803
+ "fileName": "data-manager-data-grid-docs-demo.component.html",
804
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-grid/data-manager-added/data-manager-data-grid-docs-demo.component.html",
805
+ "rawContents": "<sky-data-manager>\n <sky-data-manager-toolbar></sky-data-manager-toolbar>\n <sky-data-view skyAgGridDataManagerAdapter [viewId]=\"viewConfig.id\">\n <sky-ag-grid-wrapper *ngIf=\"gridInitialized\">\n <ag-grid-angular [gridOptions]=\"gridOptions\" [rowData]=\"displayedItems\">\n </ag-grid-angular>\n </sky-ag-grid-wrapper>\n </sky-data-view>\n</sky-data-manager>\n"
806
+ },
807
+ {
808
+ "fileName": "data-manager-data-grid-docs-demo.component.ts",
809
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-grid/data-manager-added/data-manager-data-grid-docs-demo.component.ts",
810
+ "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport { SkyCellType, SkyAgGridService } from '@skyux/ag-grid';\nimport {\n SkyDataManagerService,\n SkyDataManagerState,\n SkyDataViewConfig,\n} from '@skyux/data-manager';\n\nimport {\n GridApi,\n GridReadyEvent,\n GridOptions,\n ValueFormatterParams,\n ColumnApi,\n ColDef,\n} from 'ag-grid-community';\n\nimport { SKY_AG_GRID_DEMO_DATA } from './data-manager-data-grid-docs-demo-data';\nimport { DataManagerDataGridDocsDemoFiltersModalComponent } from './data-manager-data-grid-docs-demo-filter-modal.component';\n\n@Component({\n selector: 'app-data-manager-data-grid-docs-demo',\n templateUrl: './data-manager-data-grid-docs-demo.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [SkyDataManagerService],\n})\nexport class SkyDataManagerDataGridDemoComponent implements OnInit {\n public columnDefs: ColDef[] = [\n {\n field: 'selected',\n type: SkyCellType.RowSelector,\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 type: [SkyCellType.CurrencyValidator],\n },\n {\n colId: 'validationDate',\n field: 'validationDate',\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 columnApi?: ColumnApi;\n public displayedItems: any[] = [];\n public gridApi?: GridApi;\n public gridInitialized = false;\n public items = SKY_AG_GRID_DEMO_DATA;\n public gridOptions!: GridOptions;\n\n public searchText: string = '';\n public activeViewId = 'dataManagerGridView';\n public viewId = 'dataManagerGridView';\n public viewConfig: SkyDataViewConfig = {\n id: this.viewId,\n name: 'Grid View',\n icon: 'table',\n searchEnabled: true,\n sortEnabled: true,\n multiselectToolbarEnabled: true,\n columnPickerEnabled: true,\n filterButtonEnabled: true,\n columnOptions: [\n {\n id: 'selected',\n label: 'Selected',\n alwaysDisplayed: true,\n },\n {\n id: 'name',\n label: 'Name',\n description: 'The name of the employee.',\n },\n {\n id: 'age',\n label: 'Age',\n description: 'The age of the employee.',\n },\n {\n id: 'startDate',\n label: 'Start date',\n description: 'The start date of the employee.',\n },\n {\n id: 'endDate',\n label: 'End date',\n description: 'The end date of the employee.',\n },\n {\n id: 'department',\n label: 'Department',\n description: 'The department of the employee',\n },\n {\n id: 'jobTitle',\n label: 'Title',\n description: 'The job title of the employee.',\n },\n {\n id: 'validationCurrency',\n label: 'Validation currency',\n description: 'An example column for currency validation.',\n },\n {\n id: 'validationDate',\n label: 'Validation date',\n description: 'An example column for date validation.',\n },\n ],\n };\n public dataState = new SkyDataManagerState({});\n\n public dataManagerConfig = {\n filterModalComponent: DataManagerDataGridDocsDemoFiltersModalComponent,\n sortOptions: [\n {\n id: 'az',\n label: 'Name (A-Z)',\n descending: false,\n propertyName: 'name',\n },\n {\n id: 'za',\n label: 'Name (Z-A)',\n descending: true,\n propertyName: 'name',\n },\n ],\n };\n public defaultDataState = new SkyDataManagerState({\n filterData: {\n filtersApplied: false,\n filters: {\n hideSales: false,\n },\n },\n views: [\n {\n viewId: this.viewId,\n displayedColumnIds: [\n 'selected',\n 'name',\n 'age',\n 'startDate',\n 'endDate',\n 'department',\n 'jobTitle',\n 'validationCurrency',\n 'validationDate',\n ],\n },\n ],\n });\n\n constructor(\n private agGridService: SkyAgGridService,\n private changeDetector: ChangeDetectorRef,\n private dataManagerService: SkyDataManagerService\n ) {\n this.dataManagerService\n .getDataStateUpdates(this.viewId)\n .subscribe((state) => {\n this.dataState = state;\n this.setInitialColumnOrder();\n this.updateData();\n this.changeDetector.markForCheck();\n });\n }\n\n public ngOnInit(): void {\n this.displayedItems = this.items;\n\n this.dataManagerService.initDataManager({\n activeViewId: this.activeViewId,\n dataManagerConfig: this.dataManagerConfig,\n defaultDataState: this.defaultDataState,\n });\n\n this.dataManagerService.initDataView(this.viewConfig);\n\n this.gridOptions = this.agGridService.getGridOptions({\n gridOptions: {\n columnDefs: this.columnDefs,\n onGridReady: this.onGridReady.bind(this),\n },\n });\n this.changeDetector.markForCheck();\n }\n\n public updateData(): void {\n this.sortItems();\n this.displayedItems = this.filterItems(this.searchItems(this.items));\n\n if (this.dataState.onlyShowSelected) {\n this.displayedItems = this.displayedItems.filter((item) => item.selected);\n }\n this.changeDetector.markForCheck();\n }\n\n public setInitialColumnOrder(): void {\n let viewState = this.dataState.getViewStateById(this.viewId);\n let visibleColumns = viewState.displayedColumnIds;\n\n this.columnDefs.sort((col1, col2) => {\n let col1Index = visibleColumns.findIndex(\n (colId: string) => colId === col1.colId\n );\n let col2Index = visibleColumns.findIndex(\n (colId: string) => colId === col2.colId\n );\n\n if (col1Index === -1) {\n col1.hide = true;\n return 0;\n } else if (col2Index === -1) {\n col2.hide = true;\n return 0;\n } else {\n return col1Index - col2Index;\n }\n });\n\n this.gridInitialized = true;\n this.changeDetector.markForCheck();\n }\n\n public onGridReady(gridReadyEvent: GridReadyEvent): void {\n this.gridApi = gridReadyEvent.api;\n this.gridApi.sizeColumnsToFit();\n this.columnApi = gridReadyEvent.columnApi;\n this.updateData();\n this.changeDetector.markForCheck();\n }\n\n public sortItems(): void {\n let sortOption = this.dataState.activeSortOption;\n if (this.columnApi && sortOption) {\n const allColumns = this.columnApi.getAllColumns() || [];\n allColumns.forEach((column) => {\n if (column.getColId() === sortOption.propertyName) {\n column.setSort(sortOption.descending ? 'desc' : 'asc');\n } else {\n column.setSort('none');\n }\n });\n }\n }\n\n public clearAll(): void {\n if (this.dataState) {\n let selectedIds = this.dataState.selectedIds || [];\n\n this.displayedItems.forEach((item) => {\n if (item.selected) {\n let itemIndex = selectedIds.indexOf(item.id);\n item.selected = false;\n selectedIds.splice(itemIndex, 1);\n }\n });\n this.dataState.selectedIds = selectedIds;\n this.dataManagerService.updateDataState(this.dataState, this.viewId);\n }\n }\n\n public selectAll(): void {\n if (this.dataState) {\n let selectedIds = this.dataState.selectedIds || [];\n\n this.displayedItems.forEach((item) => {\n if (!item.selected) {\n item.selected = true;\n selectedIds.push(item.id);\n }\n });\n\n this.dataState.selectedIds = selectedIds;\n this.dataManagerService.updateDataState(this.dataState, this.viewId);\n }\n }\n\n public searchItems(items: any[]): any[] {\n let searchedItems = items;\n let searchText = this.dataState && this.dataState.searchText;\n\n if (searchText) {\n searchedItems = items.filter(function (item: any) {\n let property: any;\n\n for (property in item) {\n if (\n item.hasOwnProperty(property) &&\n (property === 'name' || property === 'description')\n ) {\n const propertyText = item[property].toLowerCase();\n if (propertyText.indexOf(searchText) > -1) {\n return true;\n }\n }\n }\n return false;\n });\n }\n return searchedItems;\n }\n\n public filterItems(items: any[]): any[] {\n let filteredItems = items;\n let filterData = this.dataState && this.dataState.filterData;\n\n if (filterData && filterData.filters) {\n let filters = filterData.filters;\n filteredItems = items.filter((item: any) => {\n return (\n ((filters.hideSales && item.department.name !== 'Sales') ||\n !filters.hideSales) &&\n ((filters.jobTitle !== 'any' &&\n item.jobTitle?.name === filters.jobTitle) ||\n !filters.jobTitle ||\n filters.jobTitle === 'any')\n );\n });\n }\n\n return filteredItems;\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"
811
+ },
812
+ {
813
+ "fileName": "data-manager-data-grid-docs-demo.module.ts",
814
+ "filePath": "/projects/ag-grid/documentation/code-examples/data-grid/data-manager-added/data-manager-data-grid-docs-demo.module.ts",
815
+ "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 { SkyDataManagerDataGridDemoComponent } from './data-manager-data-grid-docs-demo.component';\n\n@NgModule({\n declarations: [\n SkyDataManagerDataGridDemoComponent,\n DataManagerDataGridDocsDemoFiltersModalComponent,\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"
816
+ }
817
+ ]
667
818
  }