@skyux/ag-grid 5.5.0 → 5.6.0

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 (52) hide show
  1. package/bundles/skyux-ag-grid.umd.js +1671 -1671
  2. package/documentation.json +14 -14
  3. package/esm2015/lib/modules/ag-grid/ag-grid-adapter.service.js +1 -1
  4. package/esm2015/lib/modules/ag-grid/ag-grid-adapter.service.js.map +1 -1
  5. package/esm2015/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.js +4 -4
  6. package/esm2015/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.js.map +1 -1
  7. package/esm2015/lib/modules/ag-grid/ag-grid-row-delete.directive.js +5 -5
  8. package/esm2015/lib/modules/ag-grid/ag-grid-row-delete.directive.js.map +1 -1
  9. package/esm2015/lib/modules/ag-grid/ag-grid-wrapper.component.js +1 -1
  10. package/esm2015/lib/modules/ag-grid/ag-grid-wrapper.component.js.map +1 -1
  11. package/esm2015/lib/modules/ag-grid/ag-grid.module.js +8 -8
  12. package/esm2015/lib/modules/ag-grid/ag-grid.module.js.map +1 -1
  13. package/esm2015/lib/modules/ag-grid/ag-grid.service.js +7 -7
  14. package/esm2015/lib/modules/ag-grid/ag-grid.service.js.map +1 -1
  15. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.js.map +1 -1
  16. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.js +1 -1
  17. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.js.map +1 -1
  18. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.js.map +1 -1
  19. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.module.js.map +1 -1
  20. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.js.map +1 -1
  21. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.module.js.map +1 -1
  22. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.js.map +1 -1
  23. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.js +1 -1
  24. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.js.map +1 -1
  25. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.js.map +1 -1
  26. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.module.js.map +1 -1
  27. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.js.map +1 -1
  28. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.module.js.map +1 -1
  29. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.js.map +1 -1
  30. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.js +1 -1
  31. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.js.map +1 -1
  32. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js.map +1 -1
  33. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js +1 -1
  34. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js.map +1 -1
  35. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.js +1 -1
  36. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.js.map +1 -1
  37. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module.js.map +1 -1
  38. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.js.map +1 -1
  39. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module.js.map +1 -1
  40. package/esm2015/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js.map +1 -1
  41. package/esm2015/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator.module.js.map +1 -1
  42. package/esm2015/lib/modules/ag-grid/types/cell-editor-lookup-params.js.map +1 -1
  43. package/esm2015/lib/modules/ag-grid/types/cell-renderer-lookup-params.js.map +1 -1
  44. package/esm2015/lib/modules/ag-grid/types/cell-renderer-validator-params.js.map +1 -1
  45. package/esm2015/lib/modules/shared/ag-grid-resources.module.js +1 -1
  46. package/esm2015/lib/modules/shared/ag-grid-resources.module.js.map +1 -1
  47. package/fesm2015/skyux-ag-grid.js +1147 -1147
  48. package/fesm2015/skyux-ag-grid.js.map +1 -1
  49. package/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.d.ts +1 -1
  50. package/lib/modules/ag-grid/ag-grid.service.d.ts +2 -2
  51. package/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.d.ts +1 -1
  52. package/package.json +10 -10
@@ -282,7 +282,7 @@
282
282
  "sources": [
283
283
  {
284
284
  "fileName": "libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid.module.ts",
285
- "line": 105,
285
+ "line": 78,
286
286
  "character": 13
287
287
  }
288
288
  ]
@@ -320,7 +320,7 @@
320
320
  "sources": [
321
321
  {
322
322
  "fileName": "libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid.service.ts",
323
- "line": 148,
323
+ "line": 128,
324
324
  "character": 2
325
325
  }
326
326
  ],
@@ -413,7 +413,7 @@
413
413
  "sources": [
414
414
  {
415
415
  "fileName": "libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid.service.ts",
416
- "line": 189,
416
+ "line": 169,
417
417
  "character": 9
418
418
  }
419
419
  ],
@@ -463,7 +463,7 @@
463
463
  "sources": [
464
464
  {
465
465
  "fileName": "libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid.service.ts",
466
- "line": 174,
466
+ "line": 154,
467
467
  "character": 9
468
468
  }
469
469
  ],
@@ -513,7 +513,7 @@
513
513
  "sources": [
514
514
  {
515
515
  "fileName": "libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid.service.ts",
516
- "line": 164,
516
+ "line": 144,
517
517
  "character": 9
518
518
  }
519
519
  ],
@@ -561,7 +561,7 @@
561
561
  "sources": [
562
562
  {
563
563
  "fileName": "libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid.service.ts",
564
- "line": 141,
564
+ "line": 121,
565
565
  "character": 13
566
566
  }
567
567
  ],
@@ -708,7 +708,7 @@
708
708
  {
709
709
  "fileName": "data-entry-grid-docs-demo-edit-modal.component.ts",
710
710
  "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/basic/data-entry-grid-docs-demo-edit-modal.component.ts",
711
- "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 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 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"
711
+ "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"
712
712
  },
713
713
  {
714
714
  "fileName": "data-entry-grid-docs-demo.component.html",
@@ -718,7 +718,7 @@
718
718
  {
719
719
  "fileName": "data-entry-grid-docs-demo.component.ts",
720
720
  "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/basic/data-entry-grid-docs-demo.component.ts",
721
- "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 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"
721
+ "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"
722
722
  },
723
723
  {
724
724
  "fileName": "data-entry-grid-docs-demo.module.ts",
@@ -753,7 +753,7 @@
753
753
  {
754
754
  "fileName": "data-manager-data-entry-grid-docs-demo-edit-modal.component.ts",
755
755
  "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo-edit-modal.component.ts",
756
- "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 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"
756
+ "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"
757
757
  },
758
758
  {
759
759
  "fileName": "data-manager-data-entry-grid-docs-demo-filter-modal.component.html",
@@ -773,7 +773,7 @@
773
773
  {
774
774
  "fileName": "data-manager-data-entry-grid-docs-demo-view-grid.component.ts",
775
775
  "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo-view-grid.component.ts",
776
- "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { SkyAgGridService, SkyCellType } from '@skyux/ag-grid';\nimport {\n SkyDataManagerState,\n SkyDataViewConfig,\n SkyDataManagerService,\n} from '@skyux/data-manager';\n\nimport {\n ColDef,\n ColumnApi,\n GridApi,\n GridOptions,\n GridReadyEvent,\n RowSelectedEvent,\n ValueFormatterParams,\n} from 'ag-grid-community';\n\n@Component({\n selector: 'app-data-manager-data-entry-grid-docs-demo-view-grid',\n templateUrl:\n './data-manager-data-entry-grid-docs-demo-view-grid.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataManagerDataEntryGridDocsDemoViewGridComponent\n implements OnInit\n{\n @Input()\n public set items(value: any[]) {\n this._items = value;\n this.changeDetector.markForCheck();\n if (this.gridApi) {\n this.gridApi.refreshCells();\n }\n }\n\n public viewId = 'dataEntryGridWithDataManagerView';\n\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 field: 'validationCurrency',\n headerName: 'Validation currency',\n type: [SkyCellType.CurrencyValidator],\n },\n {\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 dataState = new SkyDataManagerState({});\n\n public columnApi?: ColumnApi;\n public displayedItems: any[] = [];\n public gridApi?: GridApi;\n public gridInitialized = false;\n public gridOptions!: GridOptions;\n public noRowsTemplate: string;\n public isActive = false;\n\n public viewConfig: SkyDataViewConfig = {\n id: this.viewId,\n name: 'Data 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\n private _items: any[] = [];\n\n constructor(\n private agGridService: SkyAgGridService,\n private changeDetector: ChangeDetectorRef,\n private dataManagerService: SkyDataManagerService\n ) {\n this.noRowsTemplate = `<div class=\"sky-deemphasized\">No results found.</div>`;\n }\n\n public ngOnInit(): void {\n this.displayedItems = this._items;\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\n this.dataManagerService\n .getDataStateUpdates(this.viewId)\n .subscribe((state) => {\n this.dataState = state;\n this.setInitialColumnOrder();\n this.updateData();\n this.changeDetector.detectChanges();\n });\n\n this.dataManagerService.getActiveViewIdUpdates().subscribe((id) => {\n this.isActive = id === this.viewId;\n this.changeDetector.detectChanges();\n });\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\n if (this.displayedItems.length > 0) {\n this.gridApi?.hideOverlay();\n } else {\n this.gridApi?.showNoRowsOverlay();\n }\n\n this.changeDetector.markForCheck();\n }\n\n public setInitialColumnOrder(): void {\n const viewState = this.dataState.getViewStateById(this.viewId);\n const visibleColumns = viewState.displayedColumnIds;\n\n this.columnDefs.sort((col1, col2) => {\n const col1Index = visibleColumns.findIndex(\n (colId: string) => colId === col1.colId\n );\n const 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 onRowSelected(rowSelectedEvent: RowSelectedEvent): void {\n if (!rowSelectedEvent.data.selected) {\n this.updateData();\n }\n }\n\n public sortItems(): void {\n const sortOption = this.dataState.activeSortOption;\n if (this.columnApi && sortOption) {\n this.columnApi.applyColumnState({\n state: [\n {\n colId: sortOption.propertyName,\n sort: sortOption.descending ? 'desc' : 'asc',\n },\n ],\n });\n }\n }\n\n public searchItems(items: any[]): any[] {\n let searchedItems = items;\n const 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\n return searchedItems;\n }\n\n public filterItems(items: any[]): any[] {\n let filteredItems = items;\n const filterData = this.dataState && this.dataState.filterData;\n\n if (filterData && filterData.filters) {\n const 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"
776
+ "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { SkyAgGridService, SkyCellType } from '@skyux/ag-grid';\nimport {\n SkyDataManagerService,\n SkyDataManagerState,\n SkyDataViewConfig,\n} from '@skyux/data-manager';\n\nimport {\n ColDef,\n ColumnApi,\n GridApi,\n GridOptions,\n GridReadyEvent,\n RowSelectedEvent,\n ValueFormatterParams,\n} from 'ag-grid-community';\n\n@Component({\n selector: 'app-data-manager-data-entry-grid-docs-demo-view-grid',\n templateUrl:\n './data-manager-data-entry-grid-docs-demo-view-grid.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataManagerDataEntryGridDocsDemoViewGridComponent\n implements OnInit\n{\n @Input()\n public set items(value: any[]) {\n this._items = value;\n this.changeDetector.markForCheck();\n if (this.gridApi) {\n this.gridApi.refreshCells();\n }\n }\n\n public viewId = 'dataEntryGridWithDataManagerView';\n\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 field: 'validationCurrency',\n headerName: 'Validation currency',\n type: [SkyCellType.CurrencyValidator],\n },\n {\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 dataState = new SkyDataManagerState({});\n\n public columnApi?: ColumnApi;\n public displayedItems: any[] = [];\n public gridApi?: GridApi;\n public gridInitialized = false;\n public gridOptions!: GridOptions;\n public noRowsTemplate: string;\n public isActive = false;\n\n public viewConfig: SkyDataViewConfig = {\n id: this.viewId,\n name: 'Data 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\n private _items: any[] = [];\n\n constructor(\n private agGridService: SkyAgGridService,\n private changeDetector: ChangeDetectorRef,\n private dataManagerService: SkyDataManagerService\n ) {\n this.noRowsTemplate = `<div class=\"sky-deemphasized\">No results found.</div>`;\n }\n\n public ngOnInit(): void {\n this.displayedItems = this._items;\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\n this.dataManagerService\n .getDataStateUpdates(this.viewId)\n .subscribe((state) => {\n this.dataState = state;\n this.setInitialColumnOrder();\n this.updateData();\n this.changeDetector.detectChanges();\n });\n\n this.dataManagerService.getActiveViewIdUpdates().subscribe((id) => {\n this.isActive = id === this.viewId;\n this.changeDetector.detectChanges();\n });\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\n if (this.displayedItems.length > 0) {\n this.gridApi?.hideOverlay();\n } else {\n this.gridApi?.showNoRowsOverlay();\n }\n\n this.changeDetector.markForCheck();\n }\n\n public setInitialColumnOrder(): void {\n const viewState = this.dataState.getViewStateById(this.viewId);\n const visibleColumns = viewState.displayedColumnIds;\n\n this.columnDefs.sort((col1, col2) => {\n const col1Index = visibleColumns.findIndex(\n (colId: string) => colId === col1.colId\n );\n const 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 onRowSelected(rowSelectedEvent: RowSelectedEvent): void {\n if (!rowSelectedEvent.data.selected) {\n this.updateData();\n }\n }\n\n public sortItems(): void {\n const sortOption = this.dataState.activeSortOption;\n if (this.columnApi && sortOption) {\n this.columnApi.applyColumnState({\n state: [\n {\n colId: sortOption.propertyName,\n sort: sortOption.descending ? 'desc' : 'asc',\n },\n ],\n });\n }\n }\n\n public searchItems(items: any[]): any[] {\n let searchedItems = items;\n const 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\n return searchedItems;\n }\n\n public filterItems(items: any[]): any[] {\n let filteredItems = items;\n const filterData = this.dataState && this.dataState.filterData;\n\n if (filterData && filterData.filters) {\n const 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"
777
777
  },
778
778
  {
779
779
  "fileName": "data-manager-data-entry-grid-docs-demo.component.html",
@@ -783,12 +783,12 @@
783
783
  {
784
784
  "fileName": "data-manager-data-entry-grid-docs-demo.component.ts",
785
785
  "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo.component.ts",
786
- "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\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';\nimport { DataManagerDataEntryGridDocsDemoViewGridComponent } from './data-manager-data-entry-grid-docs-demo-view-grid.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 items = SKY_AG_GRID_DEMO_DATA;\n\n public activeViewId = 'dataEntryGridWithDataManagerView';\n\n public dataState = new SkyDataManagerState({});\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: 'dataEntryGridWithDataManagerView',\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 changeDetector: ChangeDetectorRef,\n private dataManagerService: SkyDataManagerService,\n private modalService: SkyModalService\n ) {\n this.dataManagerService\n .getDataStateUpdates('dataEntryGridDataManager')\n .subscribe((state) => {\n this.dataState = state;\n this.changeDetector.detectChanges();\n });\n this.dataManagerService\n .getActiveViewIdUpdates()\n .subscribe((activeViewId) => {\n this.activeViewId = activeViewId;\n this.changeDetector.detectChanges();\n });\n }\n\n public ngOnInit(): void {\n this.dataManagerService.initDataManager({\n activeViewId: this.activeViewId,\n dataManagerConfig: this.dataManagerConfig,\n defaultDataState: this.defaultDataState,\n });\n }\n\n public openModal(): void {\n const context = new SkyDataEntryGridEditModalContext();\n context.gridData = this.items.slice();\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.items = result.data;\n alert('Saving data!');\n }\n this.changeDetector.markForCheck();\n });\n }\n}\n"
786
+ "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n SkyDataManagerService,\n SkyDataManagerState,\n SkyDataViewConfig,\n} from '@skyux/data-manager';\nimport { SkyModalCloseArgs, SkyModalService } from '@skyux/modals';\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 { 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';\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 items = SKY_AG_GRID_DEMO_DATA;\n\n public activeViewId = 'dataEntryGridWithDataManagerView';\n\n public dataState = new SkyDataManagerState({});\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: 'dataEntryGridWithDataManagerView',\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 changeDetector: ChangeDetectorRef,\n private dataManagerService: SkyDataManagerService,\n private modalService: SkyModalService\n ) {\n this.dataManagerService\n .getDataStateUpdates('dataEntryGridDataManager')\n .subscribe((state) => {\n this.dataState = state;\n this.changeDetector.detectChanges();\n });\n this.dataManagerService\n .getActiveViewIdUpdates()\n .subscribe((activeViewId) => {\n this.activeViewId = activeViewId;\n this.changeDetector.detectChanges();\n });\n }\n\n public ngOnInit(): void {\n this.dataManagerService.initDataManager({\n activeViewId: this.activeViewId,\n dataManagerConfig: this.dataManagerConfig,\n defaultDataState: this.defaultDataState,\n });\n }\n\n public openModal(): void {\n const context = new SkyDataEntryGridEditModalContext();\n context.gridData = this.items.slice();\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.items = result.data;\n alert('Saving data!');\n }\n this.changeDetector.markForCheck();\n });\n }\n}\n"
787
787
  },
788
788
  {
789
789
  "fileName": "data-manager-data-entry-grid-docs-demo.module.ts",
790
790
  "filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo.module.ts",
791
- "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';\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';\nimport { DataManagerDataEntryGridDocsDemoViewGridComponent } from './data-manager-data-entry-grid-docs-demo-view-grid.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"
791
+ "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"
792
792
  },
793
793
  {
794
794
  "fileName": "basic-data-grid-docs-demo-data.ts",
@@ -803,7 +803,7 @@
803
803
  {
804
804
  "fileName": "basic-data-grid-docs-demo.component.ts",
805
805
  "filePath": "/projects/ag-grid/documentation/code-examples/data-grid/basic/basic-data-grid-docs-demo.component.ts",
806
- "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\n public gridApi: GridApi | undefined;\n public gridData = SKY_AG_GRID_DEMO_DATA;\n public gridOptions: GridOptions;\n public searchText = '';\n public noRowsTemplate: string;\n\n constructor(\n private agGridService: SkyAgGridService,\n private changeDetector: ChangeDetectorRef\n ) {\n this.noRowsTemplate = `<div class=\"sky-deemphasized\">No results found.</div>`;\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 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"
806
+ "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport { SkyAgGridService, SkyCellType } from '@skyux/ag-grid';\n\nimport {\n GridApi,\n GridOptions,\n GridReadyEvent,\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\n public gridApi: GridApi | undefined;\n public gridData = SKY_AG_GRID_DEMO_DATA;\n public gridOptions: GridOptions;\n public searchText = '';\n public noRowsTemplate: string;\n\n constructor(\n private agGridService: SkyAgGridService,\n private changeDetector: ChangeDetectorRef\n ) {\n this.noRowsTemplate = `<div class=\"sky-deemphasized\">No results found.</div>`;\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 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"
807
807
  },
808
808
  {
809
809
  "fileName": "basic-data-grid-docs-demo.module.ts",
@@ -833,7 +833,7 @@
833
833
  {
834
834
  "fileName": "data-manager-data-grid-docs-demo-view-grid.component.ts",
835
835
  "filePath": "/projects/ag-grid/documentation/code-examples/data-grid/data-manager-added/data-manager-data-grid-docs-demo-view-grid.component.ts",
836
- "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { SkyAgGridService, SkyCellType } from '@skyux/ag-grid';\nimport {\n SkyDataManagerState,\n SkyDataViewConfig,\n SkyDataManagerService,\n} from '@skyux/data-manager';\n\nimport {\n ColDef,\n ColumnApi,\n GridApi,\n GridOptions,\n GridReadyEvent,\n RowSelectedEvent,\n ValueFormatterParams,\n} from 'ag-grid-community';\n\n@Component({\n selector: 'app-data-manager-data-grid-docs-demo-view-grid',\n templateUrl: './data-manager-data-grid-docs-demo-view-grid.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataManagerDataGridsDocsDemoViewGridComponent implements OnInit {\n @Input()\n public items: any[] = [];\n\n public viewId = 'dataGridWithDataManagerView';\n\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\n public dataState = new SkyDataManagerState({});\n\n public columnApi?: ColumnApi;\n public displayedItems: any[] = [];\n public gridApi?: GridApi;\n public gridInitialized = false;\n public gridOptions!: GridOptions;\n public noRowsTemplate: string;\n public isActive = false;\n\n public viewConfig: SkyDataViewConfig = {\n id: this.viewId,\n name: 'Data 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 };\n\n constructor(\n private agGridService: SkyAgGridService,\n private changeDetector: ChangeDetectorRef,\n private dataManagerService: SkyDataManagerService\n ) {\n this.noRowsTemplate = `<div class=\"sky-deemphasized\">No results found.</div>`;\n }\n\n public ngOnInit(): void {\n this.displayedItems = this.items;\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\n this.dataManagerService\n .getDataStateUpdates(this.viewId)\n .subscribe((state) => {\n this.dataState = state;\n this.setInitialColumnOrder();\n this.updateData();\n this.changeDetector.detectChanges();\n });\n\n this.dataManagerService.getActiveViewIdUpdates().subscribe((id) => {\n this.isActive = id === this.viewId;\n this.changeDetector.detectChanges();\n });\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\n if (this.displayedItems.length > 0) {\n this.gridApi?.hideOverlay();\n } else {\n this.gridApi?.showNoRowsOverlay();\n }\n\n this.changeDetector.markForCheck();\n }\n\n public setInitialColumnOrder(): void {\n const viewState = this.dataState.getViewStateById(this.viewId);\n const visibleColumns = viewState.displayedColumnIds;\n\n this.columnDefs.sort((col1, col2) => {\n const col1Index = visibleColumns.findIndex(\n (colId: string) => colId === col1.colId\n );\n const 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 onRowSelected(rowSelectedEvent: RowSelectedEvent): void {\n if (!rowSelectedEvent.data.selected) {\n this.updateData();\n }\n }\n\n public sortItems(): void {\n const sortOption = this.dataState.activeSortOption;\n if (this.columnApi && sortOption) {\n this.columnApi.applyColumnState({\n state: [\n {\n colId: sortOption.propertyName,\n sort: sortOption.descending ? 'desc' : 'asc',\n },\n ],\n });\n }\n }\n\n public searchItems(items: any[]): any[] {\n let searchedItems = items;\n const 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 const filterData = this.dataState && this.dataState.filterData;\n\n if (filterData && filterData.filters) {\n const 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"
836
+ "rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { SkyAgGridService, SkyCellType } from '@skyux/ag-grid';\nimport {\n SkyDataManagerService,\n SkyDataManagerState,\n SkyDataViewConfig,\n} from '@skyux/data-manager';\n\nimport {\n ColDef,\n ColumnApi,\n GridApi,\n GridOptions,\n GridReadyEvent,\n RowSelectedEvent,\n ValueFormatterParams,\n} from 'ag-grid-community';\n\n@Component({\n selector: 'app-data-manager-data-grid-docs-demo-view-grid',\n templateUrl: './data-manager-data-grid-docs-demo-view-grid.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataManagerDataGridsDocsDemoViewGridComponent implements OnInit {\n @Input()\n public items: any[] = [];\n\n public viewId = 'dataGridWithDataManagerView';\n\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\n public dataState = new SkyDataManagerState({});\n\n public columnApi?: ColumnApi;\n public displayedItems: any[] = [];\n public gridApi?: GridApi;\n public gridInitialized = false;\n public gridOptions!: GridOptions;\n public noRowsTemplate: string;\n public isActive = false;\n\n public viewConfig: SkyDataViewConfig = {\n id: this.viewId,\n name: 'Data 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 };\n\n constructor(\n private agGridService: SkyAgGridService,\n private changeDetector: ChangeDetectorRef,\n private dataManagerService: SkyDataManagerService\n ) {\n this.noRowsTemplate = `<div class=\"sky-deemphasized\">No results found.</div>`;\n }\n\n public ngOnInit(): void {\n this.displayedItems = this.items;\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\n this.dataManagerService\n .getDataStateUpdates(this.viewId)\n .subscribe((state) => {\n this.dataState = state;\n this.setInitialColumnOrder();\n this.updateData();\n this.changeDetector.detectChanges();\n });\n\n this.dataManagerService.getActiveViewIdUpdates().subscribe((id) => {\n this.isActive = id === this.viewId;\n this.changeDetector.detectChanges();\n });\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\n if (this.displayedItems.length > 0) {\n this.gridApi?.hideOverlay();\n } else {\n this.gridApi?.showNoRowsOverlay();\n }\n\n this.changeDetector.markForCheck();\n }\n\n public setInitialColumnOrder(): void {\n const viewState = this.dataState.getViewStateById(this.viewId);\n const visibleColumns = viewState.displayedColumnIds;\n\n this.columnDefs.sort((col1, col2) => {\n const col1Index = visibleColumns.findIndex(\n (colId: string) => colId === col1.colId\n );\n const 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 onRowSelected(rowSelectedEvent: RowSelectedEvent): void {\n if (!rowSelectedEvent.data.selected) {\n this.updateData();\n }\n }\n\n public sortItems(): void {\n const sortOption = this.dataState.activeSortOption;\n if (this.columnApi && sortOption) {\n this.columnApi.applyColumnState({\n state: [\n {\n colId: sortOption.propertyName,\n sort: sortOption.descending ? 'desc' : 'asc',\n },\n ],\n });\n }\n }\n\n public searchItems(items: any[]): any[] {\n let searchedItems = items;\n const 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 const filterData = this.dataState && this.dataState.filterData;\n\n if (filterData && filterData.filters) {\n const 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"
837
837
  },
838
838
  {
839
839
  "fileName": "data-manager-data-grid-docs-demo.component.html",
@@ -38,7 +38,7 @@ export class SkyAgGridAdapterService {
38
38
  }
39
39
  }
40
40
  focusOnFocusableChildren(element) {
41
- let focusableChildren = this.skyAdapterService.getFocusableChildren(element);
41
+ const focusableChildren = this.skyAdapterService.getFocusableChildren(element);
42
42
  if (focusableChildren.length) {
43
43
  focusableChildren[0].focus();
44
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ag-grid-adapter.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-adapter.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;;;AAKpD,MAAM,OAAO,uBAAuB;IAClC,YAAoB,iBAAwC;QAAxC,sBAAiB,GAAjB,iBAAiB,CAAuB;IAAG,CAAC;IAEzD,2BAA2B,CAChC,OAAoB,EACpB,SAAiB;QAEjB,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YACpD,OAAO,OAAO,CAAC;SAChB;aAAM,IAAI,OAAO,CAAC,aAAa,EAAE;YAChC,OAAO,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;SAC3E;IACH,CAAC;IAEM,qBAAqB,CAAC,QAAqB,EAAE,QAAgB;QAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,EAAE,CAAgB,CAAC;QAEtE,0BAA0B;QAC1B,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,KAAK,EAAE,CAAC;SACjB;IACH,CAAC;IAEM,iBAAiB;QACtB,OAAO,QAAQ,CAAC,aAA4B,CAAC;IAC/C,CAAC;IAEM,uBAAuB,CAC5B,SAAsB,EACtB,QAAqB,EACrB,aAAuB;QAEvB,IAAI,QAAQ,EAAE;YACZ,MAAM,iBAAiB,GACrB,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACjE,MAAM,SAAS,GAAG,aAAa;gBAC7B,CAAC,CAAC,mBAAmB,GAAG,CAAC;gBACzB,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC;YAE5B,IACE,CAAC,CAAC,aAAa,IAAI,iBAAiB,CAAC,MAAM,IAAI,SAAS,CAAC;gBACzD,CAAC,aAAa,IAAI,SAAS,IAAI,CAAC,CAAC,EACjC;gBACA,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;aACrC;SACF;IACH,CAAC;IAEM,wBAAwB,CAAC,OAAoB;QAClD,IAAI,iBAAiB,GACnB,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAEvD,IAAI,iBAAiB,CAAC,MAAM,EAAE;YAC5B,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;SAC9B;IACH,CAAC;;qHAxDU,uBAAuB;yHAAvB,uBAAuB,cAFtB,MAAM;4FAEP,uBAAuB;kBAHnC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB","sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SkyCoreAdapterService } from '@skyux/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAgGridAdapterService {\n constructor(private skyAdapterService: SkyCoreAdapterService) {}\n\n public getElementOrParentWithClass(\n element: HTMLElement,\n className: string\n ): HTMLElement | undefined {\n if (element && element.classList.contains(className)) {\n return element;\n } else if (element.parentElement) {\n return this.getElementOrParentWithClass(element.parentElement, className);\n }\n }\n\n public setFocusedElementById(parentEl: HTMLElement, selector: string): void {\n const element = parentEl.querySelector(`#${selector}`) as HTMLElement;\n\n /* istanbul ignore else */\n if (element) {\n element.focus();\n }\n }\n\n public getFocusedElement(): HTMLElement {\n return document.activeElement as HTMLElement;\n }\n\n public getNextFocusableElement(\n currentEl: HTMLElement,\n parentEl: HTMLElement,\n moveFocusLeft?: boolean\n ): HTMLElement | undefined {\n if (parentEl) {\n const focusableChildren =\n this.skyAdapterService.getFocusableChildren(parentEl);\n const currentElementIndex = focusableChildren.indexOf(currentEl);\n const nextIndex = moveFocusLeft\n ? currentElementIndex - 1\n : currentElementIndex + 1;\n\n if (\n (!moveFocusLeft && focusableChildren.length >= nextIndex) ||\n (moveFocusLeft && nextIndex >= 0)\n ) {\n return focusableChildren[nextIndex];\n }\n }\n }\n\n public focusOnFocusableChildren(element: HTMLElement): void {\n let focusableChildren =\n this.skyAdapterService.getFocusableChildren(element);\n\n if (focusableChildren.length) {\n focusableChildren[0].focus();\n }\n }\n}\n"]}
1
+ {"version":3,"file":"ag-grid-adapter.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-adapter.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;;;AAKpD,MAAM,OAAO,uBAAuB;IAClC,YAAoB,iBAAwC;QAAxC,sBAAiB,GAAjB,iBAAiB,CAAuB;IAAG,CAAC;IAEzD,2BAA2B,CAChC,OAAoB,EACpB,SAAiB;QAEjB,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YACpD,OAAO,OAAO,CAAC;SAChB;aAAM,IAAI,OAAO,CAAC,aAAa,EAAE;YAChC,OAAO,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;SAC3E;IACH,CAAC;IAEM,qBAAqB,CAAC,QAAqB,EAAE,QAAgB;QAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,EAAE,CAAgB,CAAC;QAEtE,0BAA0B;QAC1B,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,KAAK,EAAE,CAAC;SACjB;IACH,CAAC;IAEM,iBAAiB;QACtB,OAAO,QAAQ,CAAC,aAA4B,CAAC;IAC/C,CAAC;IAEM,uBAAuB,CAC5B,SAAsB,EACtB,QAAqB,EACrB,aAAuB;QAEvB,IAAI,QAAQ,EAAE;YACZ,MAAM,iBAAiB,GACrB,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACjE,MAAM,SAAS,GAAG,aAAa;gBAC7B,CAAC,CAAC,mBAAmB,GAAG,CAAC;gBACzB,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC;YAE5B,IACE,CAAC,CAAC,aAAa,IAAI,iBAAiB,CAAC,MAAM,IAAI,SAAS,CAAC;gBACzD,CAAC,aAAa,IAAI,SAAS,IAAI,CAAC,CAAC,EACjC;gBACA,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;aACrC;SACF;IACH,CAAC;IAEM,wBAAwB,CAAC,OAAoB;QAClD,MAAM,iBAAiB,GACrB,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAEvD,IAAI,iBAAiB,CAAC,MAAM,EAAE;YAC5B,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;SAC9B;IACH,CAAC;;qHAxDU,uBAAuB;yHAAvB,uBAAuB,cAFtB,MAAM;4FAEP,uBAAuB;kBAHnC,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB","sourcesContent":["import { Injectable } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAgGridAdapterService {\n constructor(private skyAdapterService: SkyCoreAdapterService) {}\n\n public getElementOrParentWithClass(\n element: HTMLElement,\n className: string\n ): HTMLElement | undefined {\n if (element && element.classList.contains(className)) {\n return element;\n } else if (element.parentElement) {\n return this.getElementOrParentWithClass(element.parentElement, className);\n }\n }\n\n public setFocusedElementById(parentEl: HTMLElement, selector: string): void {\n const element = parentEl.querySelector(`#${selector}`) as HTMLElement;\n\n /* istanbul ignore else */\n if (element) {\n element.focus();\n }\n }\n\n public getFocusedElement(): HTMLElement {\n return document.activeElement as HTMLElement;\n }\n\n public getNextFocusableElement(\n currentEl: HTMLElement,\n parentEl: HTMLElement,\n moveFocusLeft?: boolean\n ): HTMLElement | undefined {\n if (parentEl) {\n const focusableChildren =\n this.skyAdapterService.getFocusableChildren(parentEl);\n const currentElementIndex = focusableChildren.indexOf(currentEl);\n const nextIndex = moveFocusLeft\n ? currentElementIndex - 1\n : currentElementIndex + 1;\n\n if (\n (!moveFocusLeft && focusableChildren.length >= nextIndex) ||\n (moveFocusLeft && nextIndex >= 0)\n ) {\n return focusableChildren[nextIndex];\n }\n }\n }\n\n public focusOnFocusableChildren(element: HTMLElement): void {\n const focusableChildren =\n this.skyAdapterService.getFocusableChildren(element);\n\n if (focusableChildren.length) {\n focusableChildren[0].focus();\n }\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import { ChangeDetectorRef, ContentChildren, Directive, Input, QueryList, } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { takeUntil, filter } from 'rxjs/operators';
4
- import { AgGridAngular } from 'ag-grid-angular';
5
2
  import { SkyDataManagerService, } from '@skyux/data-manager';
3
+ import { AgGridAngular } from 'ag-grid-angular';
4
+ import { Subject } from 'rxjs';
5
+ import { filter, takeUntil } from 'rxjs/operators';
6
6
  import { SkyAgGridWrapperComponent } from './ag-grid-wrapper.component';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@skyux/data-manager";
@@ -122,7 +122,7 @@ export class SkyAgGridDataManagerAdapterDirective {
122
122
  .pipe(takeUntil(this.ngUnsubscribe))
123
123
  .subscribe((event) => {
124
124
  const row = event.node;
125
- let selectedIds = this.currentDataState.selectedIds || [];
125
+ const selectedIds = this.currentDataState.selectedIds || [];
126
126
  const rowIndex = selectedIds.indexOf(row.data.id);
127
127
  if (row.isSelected() && rowIndex === -1) {
128
128
  selectedIds.push(row.data.id);
@@ -1 +1 @@
1
- {"version":3,"file":"ag-grid-data-manager-adapter.directive.js","sourceRoot":"","sources":["../../../../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n Input,\n OnDestroy,\n QueryList,\n} from '@angular/core';\n\nimport { Subject, Subscription } from 'rxjs';\n\nimport { takeUntil, filter } from 'rxjs/operators';\n\nimport { AgGridAngular } from 'ag-grid-angular';\n\nimport {\n ColumnApi,\n ColumnMovedEvent,\n ColumnState,\n DragStartedEvent,\n DragStoppedEvent,\n RowSelectedEvent,\n} from 'ag-grid-community';\n\nimport {\n SkyDataManagerService,\n SkyDataManagerSortOption,\n SkyDataManagerState,\n SkyDataViewConfig,\n} from '@skyux/data-manager';\n\nimport { SkyAgGridWrapperComponent } from './ag-grid-wrapper.component';\n\n/**\n * @internal\n */\n@Directive({\n selector: '[skyAgGridDataManagerAdapter]',\n})\nexport class SkyAgGridDataManagerAdapterDirective\n implements AfterContentInit, OnDestroy\n{\n @Input()\n public viewId: string;\n\n @ContentChildren(AgGridAngular, { descendants: true })\n public agGridList: QueryList<AgGridAngular>;\n\n @ContentChildren(SkyAgGridWrapperComponent, { descendants: true })\n public skyAgGridWrapperList: QueryList<SkyAgGridWrapperComponent>;\n\n private currentAgGrid: AgGridAngular;\n private currentDataState: SkyDataManagerState;\n private currentSkyAgGridWrapper: SkyAgGridWrapperComponent;\n private dataStateSub: Subscription;\n private viewConfig: SkyDataViewConfig;\n private ngUnsubscribe = new Subject();\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private dataManagerSvc: SkyDataManagerService\n ) {}\n\n public ngAfterContentInit(): void {\n this.dataManagerSvc.setViewkeeperClasses(this.viewId, ['.ag-header']);\n\n this.viewConfig = this.dataManagerSvc.getViewById(this.viewId);\n this.checkForAgGrid();\n this.checkForSkyAgGridWrapper();\n\n this.agGridList.changes\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => this.checkForAgGrid());\n\n this.skyAgGridWrapperList.changes\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => this.checkForSkyAgGridWrapper());\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n private checkForAgGrid(): void {\n const agGridCount = this.agGridList.length;\n\n /* istanbul ignore else */\n if (agGridCount === 0) {\n this.unregisterAgGrid();\n } else if (this.agGridList.first !== this.currentAgGrid) {\n this.registerAgGrid();\n }\n\n if (agGridCount > 1) {\n console.warn(\n 'More than one ag-grid child component was found. Using the first ag-Grid.'\n );\n }\n }\n\n private checkForSkyAgGridWrapper(): void {\n const skyAgGridWrapperCount = this.skyAgGridWrapperList.length;\n\n /* istanbul ignore else */\n if (skyAgGridWrapperCount === 0) {\n this.unregisterSkyAgGridWrapper();\n } else if (\n this.skyAgGridWrapperList.first !== this.currentSkyAgGridWrapper\n ) {\n this.registerSkyAgGridWrapper();\n }\n\n if (skyAgGridWrapperCount > 1) {\n console.warn(\n 'More than one ag-grid child component was found. Using the first ag-Grid.'\n );\n }\n }\n\n private unregisterAgGrid(): void {\n this.currentAgGrid = undefined;\n\n /* istanbul ignore if */\n if (this.dataStateSub) {\n this.dataStateSub.unsubscribe();\n }\n }\n\n private unregisterSkyAgGridWrapper(): void {\n this.currentSkyAgGridWrapper = undefined;\n }\n\n private registerSkyAgGridWrapper(): void {\n this.unregisterSkyAgGridWrapper();\n\n this.currentSkyAgGridWrapper = this.skyAgGridWrapperList.first;\n\n setTimeout(() => {\n if (this.currentSkyAgGridWrapper) {\n this.currentSkyAgGridWrapper.viewkeeperClasses = [];\n }\n });\n }\n\n private registerAgGrid(): void {\n this.unregisterAgGrid();\n\n const agGrid = this.agGridList.first;\n\n this.currentAgGrid = agGrid;\n\n agGrid.gridReady.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.viewConfig.onSelectAllClick = this.selectAll.bind(this);\n this.viewConfig.onClearAllClick = this.clearAll.bind(this);\n\n this.dataManagerSvc.updateViewConfig(this.viewConfig);\n\n this.dataStateSub = this.dataManagerSvc\n .getDataStateUpdates(this.viewConfig.id)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((dataState: SkyDataManagerState) => {\n this.currentDataState = dataState;\n this.displayColumns(dataState);\n });\n\n agGrid.api.sizeColumnsToFit();\n });\n\n agGrid.columnMoved\n .pipe(\n takeUntil(this.ngUnsubscribe),\n filter(\n (event: ColumnMovedEvent) =>\n ![\n 'gridInitializing',\n 'uiColumnResized',\n 'uiColumnDragged',\n 'api',\n ].includes(event.source)\n )\n )\n .subscribe((value: ColumnMovedEvent) => {\n this.updateColumnsInCurrentDataState(value.columnApi);\n });\n let currentColumns: string[];\n agGrid.dragStarted\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((value: DragStartedEvent) => {\n currentColumns = this.getColumnOrder(value.columnApi);\n });\n agGrid.dragStopped\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((value: DragStoppedEvent) => {\n const newColumns = this.getColumnOrder(value.columnApi);\n const hasChanged = currentColumns.findIndex(\n (colId, i) => colId !== newColumns[i]\n );\n if (hasChanged > -1) {\n this.updateColumnsInCurrentDataState(value.columnApi);\n }\n });\n\n agGrid.rowSelected\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: RowSelectedEvent) => {\n const row = event.node;\n let selectedIds = this.currentDataState.selectedIds || [];\n const rowIndex = selectedIds.indexOf(row.data.id);\n\n if (row.isSelected() && rowIndex === -1) {\n selectedIds.push(row.data.id);\n } else if (!row.isSelected() && rowIndex !== -1) {\n selectedIds.splice(rowIndex, 1);\n }\n\n this.currentDataState.selectedIds = selectedIds;\n this.dataManagerSvc.updateDataState(\n this.currentDataState,\n this.viewConfig.id\n );\n this.changeDetector.markForCheck();\n });\n\n agGrid.sortChanged.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n const gridColumnStates: ColumnState[] = agGrid.columnApi.getColumnState();\n let sortOption: SkyDataManagerSortOption;\n\n /* istanbul ignore else */\n if (gridColumnStates.length) {\n const activeSortColumnState = gridColumnStates.find(\n (aGridColumnState) => aGridColumnState.sortIndex === 0\n );\n\n const dataManagerConfig =\n this.dataManagerSvc.getCurrentDataManagerConfig();\n\n /* istanbul ignore else */\n if (dataManagerConfig.sortOptions && activeSortColumnState) {\n sortOption = dataManagerConfig.sortOptions.find(\n (option: SkyDataManagerSortOption) => {\n return (\n option.propertyName === activeSortColumnState.colId &&\n option.descending === (activeSortColumnState.sort === 'desc')\n );\n }\n );\n } else {\n sortOption = undefined;\n }\n }\n this.currentDataState.activeSortOption = sortOption;\n this.dataManagerSvc.updateDataState(\n this.currentDataState,\n this.viewConfig.id\n );\n });\n }\n\n private updateColumnsInCurrentDataState(columnApi: ColumnApi) {\n const columnOrder = this.getColumnOrder(columnApi);\n\n const viewState = this.currentDataState.getViewStateById(\n this.viewConfig.id\n );\n viewState.displayedColumnIds = columnOrder;\n\n this.dataManagerSvc.updateDataState(\n this.currentDataState.addOrUpdateView(this.viewConfig.id, viewState),\n this.viewConfig.id\n );\n }\n\n private getColumnOrder(columnApi: ColumnApi): string[] {\n return columnApi\n .getAllDisplayedVirtualColumns()\n .map((col) => col.getColDef().colId);\n }\n\n private displayColumns(dataState: SkyDataManagerState): void {\n const agGrid = this.currentAgGrid;\n const viewState = dataState.getViewStateById(this.viewConfig.id);\n let displayedColumnIds: string[] = [];\n /*istanbul ignore else*/\n if (viewState.displayedColumnIds) {\n displayedColumnIds = viewState.displayedColumnIds;\n }\n const columns = agGrid.columnApi.getAllColumns();\n\n for (const column of columns) {\n const colId = column.getColId();\n const colIndex = displayedColumnIds.indexOf(colId);\n\n agGrid.columnApi.setColumnVisible(colId, colIndex !== -1);\n agGrid.columnApi.moveColumn(colId, colIndex);\n }\n }\n\n private selectAll(): void {\n const agGrid = this.agGridList.first;\n agGrid.api.selectAll();\n }\n\n private clearAll(): void {\n const agGrid = this.agGridList.first;\n agGrid.api.deselectAll();\n }\n}\n"]}
1
+ {"version":3,"file":"ag-grid-data-manager-adapter.directive.js","sourceRoot":"","sources":["../../../../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n Input,\n OnDestroy,\n QueryList,\n} from '@angular/core';\nimport {\n SkyDataManagerService,\n SkyDataManagerSortOption,\n SkyDataManagerState,\n SkyDataViewConfig,\n} from '@skyux/data-manager';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport {\n ColumnApi,\n ColumnMovedEvent,\n ColumnState,\n DragStartedEvent,\n DragStoppedEvent,\n RowSelectedEvent,\n} from 'ag-grid-community';\nimport { Subject, Subscription } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { SkyAgGridWrapperComponent } from './ag-grid-wrapper.component';\n\n/**\n * @internal\n */\n@Directive({\n selector: '[skyAgGridDataManagerAdapter]',\n})\nexport class SkyAgGridDataManagerAdapterDirective\n implements AfterContentInit, OnDestroy\n{\n @Input()\n public viewId: string;\n\n @ContentChildren(AgGridAngular, { descendants: true })\n public agGridList: QueryList<AgGridAngular>;\n\n @ContentChildren(SkyAgGridWrapperComponent, { descendants: true })\n public skyAgGridWrapperList: QueryList<SkyAgGridWrapperComponent>;\n\n private currentAgGrid: AgGridAngular;\n private currentDataState: SkyDataManagerState;\n private currentSkyAgGridWrapper: SkyAgGridWrapperComponent;\n private dataStateSub: Subscription;\n private viewConfig: SkyDataViewConfig;\n private ngUnsubscribe = new Subject();\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private dataManagerSvc: SkyDataManagerService\n ) {}\n\n public ngAfterContentInit(): void {\n this.dataManagerSvc.setViewkeeperClasses(this.viewId, ['.ag-header']);\n\n this.viewConfig = this.dataManagerSvc.getViewById(this.viewId);\n this.checkForAgGrid();\n this.checkForSkyAgGridWrapper();\n\n this.agGridList.changes\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => this.checkForAgGrid());\n\n this.skyAgGridWrapperList.changes\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => this.checkForSkyAgGridWrapper());\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n private checkForAgGrid(): void {\n const agGridCount = this.agGridList.length;\n\n /* istanbul ignore else */\n if (agGridCount === 0) {\n this.unregisterAgGrid();\n } else if (this.agGridList.first !== this.currentAgGrid) {\n this.registerAgGrid();\n }\n\n if (agGridCount > 1) {\n console.warn(\n 'More than one ag-grid child component was found. Using the first ag-Grid.'\n );\n }\n }\n\n private checkForSkyAgGridWrapper(): void {\n const skyAgGridWrapperCount = this.skyAgGridWrapperList.length;\n\n /* istanbul ignore else */\n if (skyAgGridWrapperCount === 0) {\n this.unregisterSkyAgGridWrapper();\n } else if (\n this.skyAgGridWrapperList.first !== this.currentSkyAgGridWrapper\n ) {\n this.registerSkyAgGridWrapper();\n }\n\n if (skyAgGridWrapperCount > 1) {\n console.warn(\n 'More than one ag-grid child component was found. Using the first ag-Grid.'\n );\n }\n }\n\n private unregisterAgGrid(): void {\n this.currentAgGrid = undefined;\n\n /* istanbul ignore if */\n if (this.dataStateSub) {\n this.dataStateSub.unsubscribe();\n }\n }\n\n private unregisterSkyAgGridWrapper(): void {\n this.currentSkyAgGridWrapper = undefined;\n }\n\n private registerSkyAgGridWrapper(): void {\n this.unregisterSkyAgGridWrapper();\n\n this.currentSkyAgGridWrapper = this.skyAgGridWrapperList.first;\n\n setTimeout(() => {\n if (this.currentSkyAgGridWrapper) {\n this.currentSkyAgGridWrapper.viewkeeperClasses = [];\n }\n });\n }\n\n private registerAgGrid(): void {\n this.unregisterAgGrid();\n\n const agGrid = this.agGridList.first;\n\n this.currentAgGrid = agGrid;\n\n agGrid.gridReady.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.viewConfig.onSelectAllClick = this.selectAll.bind(this);\n this.viewConfig.onClearAllClick = this.clearAll.bind(this);\n\n this.dataManagerSvc.updateViewConfig(this.viewConfig);\n\n this.dataStateSub = this.dataManagerSvc\n .getDataStateUpdates(this.viewConfig.id)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((dataState: SkyDataManagerState) => {\n this.currentDataState = dataState;\n this.displayColumns(dataState);\n });\n\n agGrid.api.sizeColumnsToFit();\n });\n\n agGrid.columnMoved\n .pipe(\n takeUntil(this.ngUnsubscribe),\n filter(\n (event: ColumnMovedEvent) =>\n ![\n 'gridInitializing',\n 'uiColumnResized',\n 'uiColumnDragged',\n 'api',\n ].includes(event.source)\n )\n )\n .subscribe((value: ColumnMovedEvent) => {\n this.updateColumnsInCurrentDataState(value.columnApi);\n });\n let currentColumns: string[];\n agGrid.dragStarted\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((value: DragStartedEvent) => {\n currentColumns = this.getColumnOrder(value.columnApi);\n });\n agGrid.dragStopped\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((value: DragStoppedEvent) => {\n const newColumns = this.getColumnOrder(value.columnApi);\n const hasChanged = currentColumns.findIndex(\n (colId, i) => colId !== newColumns[i]\n );\n if (hasChanged > -1) {\n this.updateColumnsInCurrentDataState(value.columnApi);\n }\n });\n\n agGrid.rowSelected\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: RowSelectedEvent) => {\n const row = event.node;\n const selectedIds = this.currentDataState.selectedIds || [];\n const rowIndex = selectedIds.indexOf(row.data.id);\n\n if (row.isSelected() && rowIndex === -1) {\n selectedIds.push(row.data.id);\n } else if (!row.isSelected() && rowIndex !== -1) {\n selectedIds.splice(rowIndex, 1);\n }\n\n this.currentDataState.selectedIds = selectedIds;\n this.dataManagerSvc.updateDataState(\n this.currentDataState,\n this.viewConfig.id\n );\n this.changeDetector.markForCheck();\n });\n\n agGrid.sortChanged.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n const gridColumnStates: ColumnState[] = agGrid.columnApi.getColumnState();\n let sortOption: SkyDataManagerSortOption;\n\n /* istanbul ignore else */\n if (gridColumnStates.length) {\n const activeSortColumnState = gridColumnStates.find(\n (aGridColumnState) => aGridColumnState.sortIndex === 0\n );\n\n const dataManagerConfig =\n this.dataManagerSvc.getCurrentDataManagerConfig();\n\n /* istanbul ignore else */\n if (dataManagerConfig.sortOptions && activeSortColumnState) {\n sortOption = dataManagerConfig.sortOptions.find(\n (option: SkyDataManagerSortOption) => {\n return (\n option.propertyName === activeSortColumnState.colId &&\n option.descending === (activeSortColumnState.sort === 'desc')\n );\n }\n );\n } else {\n sortOption = undefined;\n }\n }\n this.currentDataState.activeSortOption = sortOption;\n this.dataManagerSvc.updateDataState(\n this.currentDataState,\n this.viewConfig.id\n );\n });\n }\n\n private updateColumnsInCurrentDataState(columnApi: ColumnApi) {\n const columnOrder = this.getColumnOrder(columnApi);\n\n const viewState = this.currentDataState.getViewStateById(\n this.viewConfig.id\n );\n viewState.displayedColumnIds = columnOrder;\n\n this.dataManagerSvc.updateDataState(\n this.currentDataState.addOrUpdateView(this.viewConfig.id, viewState),\n this.viewConfig.id\n );\n }\n\n private getColumnOrder(columnApi: ColumnApi): string[] {\n return columnApi\n .getAllDisplayedVirtualColumns()\n .map((col) => col.getColDef().colId);\n }\n\n private displayColumns(dataState: SkyDataManagerState): void {\n const agGrid = this.currentAgGrid;\n const viewState = dataState.getViewStateById(this.viewConfig.id);\n let displayedColumnIds: string[] = [];\n /*istanbul ignore else*/\n if (viewState.displayedColumnIds) {\n displayedColumnIds = viewState.displayedColumnIds;\n }\n const columns = agGrid.columnApi.getAllColumns();\n\n for (const column of columns) {\n const colId = column.getColId();\n const colIndex = displayedColumnIds.indexOf(colId);\n\n agGrid.columnApi.setColumnVisible(colId, colIndex !== -1);\n agGrid.columnApi.moveColumn(colId, colIndex);\n }\n }\n\n private selectAll(): void {\n const agGrid = this.agGridList.first;\n agGrid.api.selectAll();\n }\n\n private clearAll(): void {\n const agGrid = this.agGridList.first;\n agGrid.api.deselectAll();\n }\n}\n"]}
@@ -39,13 +39,13 @@ export class SkyAgGridRowDeleteDirective {
39
39
  set rowDeleteIds(value) {
40
40
  this._rowDeleteIds = value;
41
41
  if (!value) {
42
- for (let config of this.rowDeleteConfigs) {
42
+ for (const config of this.rowDeleteConfigs) {
43
43
  this.destroyRowDelete(config.id);
44
44
  }
45
45
  this.changeDetector.markForCheck();
46
46
  return;
47
47
  }
48
- for (let id of value) {
48
+ for (const id of value) {
49
49
  const existingConfig = this.rowDeleteConfigs.find((config) => config.id === id);
50
50
  if (existingConfig) {
51
51
  existingConfig.pending = false;
@@ -55,7 +55,7 @@ export class SkyAgGridRowDeleteDirective {
55
55
  id: id,
56
56
  pending: false,
57
57
  });
58
- let overlay = this.overlayService.create({
58
+ const overlay = this.overlayService.create({
59
59
  enableScroll: true,
60
60
  showBackdrop: false,
61
61
  closeOnNavigation: true,
@@ -84,7 +84,7 @@ export class SkyAgGridRowDeleteDirective {
84
84
  .find((elRef) => {
85
85
  return elRef.nativeElement.id === 'row-delete-ref-' + id;
86
86
  });
87
- let affixer = this.affixService.createAffixer(inlineDeleteRef);
87
+ const affixer = this.affixService.createAffixer(inlineDeleteRef);
88
88
  this.affixToRow(affixer, id);
89
89
  this.rowDeleteContents[id] = {
90
90
  affixer: affixer,
@@ -93,7 +93,7 @@ export class SkyAgGridRowDeleteDirective {
93
93
  });
94
94
  }
95
95
  }
96
- for (let config of this.rowDeleteConfigs) {
96
+ for (const config of this.rowDeleteConfigs) {
97
97
  if (value.indexOf(config.id) < 0) {
98
98
  this.destroyRowDelete(config.id);
99
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ag-grid-row-delete.directive.js","sourceRoot":"","sources":["../../../../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-row-delete.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterContentInit,\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {\n SkyAffixAutoFitContext,\n SkyAffixer,\n SkyAffixService,\n SkyOverlayService,\n} from '@skyux/core';\n\nimport { AgGridAngular } from 'ag-grid-angular';\n\nimport { RowNode } from 'ag-grid-community';\n\nimport { Subject } from 'rxjs';\n\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyAgGridRowDeleteComponent } from './ag-grid-row-delete.component';\n\nimport { SkyAgGridRowDeleteCancelArgs } from './types/ag-grid-row-delete-cancel-args';\n\nimport { SkyAgGridRowDeleteConfig } from './types/ag-grid-row-delete-config';\n\nimport { SkyAgGridRowDeleteConfirmArgs } from './types/ag-grid-row-delete-confirm-args';\n\nimport { SkyAgGridRowDeleteContents } from './types/ag-grid-row-delete-contents';\n\n/**\n * @internal\n */\n@Directive({\n selector: '[skyAgGridRowDelete]',\n})\nexport class SkyAgGridRowDeleteDirective\n implements AfterContentInit, OnDestroy\n{\n /**\n * Specifies the ids of the data in the rows on which inline delete's should be shown.\n */\n @Input()\n set rowDeleteIds(value: string[]) {\n this._rowDeleteIds = value;\n\n if (!value) {\n for (let config of this.rowDeleteConfigs) {\n this.destroyRowDelete(config.id);\n }\n\n this.changeDetector.markForCheck();\n\n return;\n }\n\n for (let id of value) {\n const existingConfig = this.rowDeleteConfigs.find(\n (config) => config.id === id\n );\n if (existingConfig) {\n existingConfig.pending = false;\n } else {\n this.rowDeleteConfigs.push({\n id: id,\n pending: false,\n });\n\n let overlay = this.overlayService.create({\n enableScroll: true,\n showBackdrop: false,\n closeOnNavigation: true,\n enableClose: false,\n enablePointerEvents: true,\n });\n\n overlay.attachTemplate(\n this.rowDeleteComponent.inlineDeleteTemplateRef,\n {\n $implicit: this.agGrid.api.getRowNode(id),\n tableWidth: () => {\n return this.tableWidth;\n },\n getRowDeleteItem: (row: RowNode) => this.getRowDeleteItem(row),\n cancelRowDelete: (row: RowNode) => this.cancelRowDelete(row),\n confirmRowDelete: (row: RowNode) => this.confirmRowDelete(row),\n }\n );\n\n /**\n * We are manually setting the z-index here because overlays will always be on top of\n * the omnibar. This manual setting is 2 less than the omnibar's z-index of 1000 and one less than\n * the header row's viewkeeper which is 999. We discussed changing the overlay service to allow for this\n * but decided against that change at this time due to its niche nature.\n */\n overlay.componentRef.instance.zIndex = '998';\n\n setTimeout(() => {\n const inlineDeleteRef = this.rowDeleteComponent.inlineDeleteRefs\n .toArray()\n .find((elRef) => {\n return elRef.nativeElement.id === 'row-delete-ref-' + id;\n });\n let affixer = this.affixService.createAffixer(inlineDeleteRef);\n\n this.affixToRow(affixer, id);\n\n this.rowDeleteContents[id] = {\n affixer: affixer,\n overlay: overlay,\n };\n });\n }\n }\n\n for (let config of this.rowDeleteConfigs) {\n if (value.indexOf(config.id) < 0) {\n this.destroyRowDelete(config.id);\n }\n }\n\n this.changeDetector.markForCheck();\n }\n\n get rowDeleteIds(): string[] {\n return this._rowDeleteIds;\n }\n\n /**\n * Emits a `SkyAgGridRowDeleteCancelArgs` object when a row's inline delete is cancelled.\n */\n @Output()\n public rowDeleteCancel = new EventEmitter<SkyAgGridRowDeleteCancelArgs>();\n\n /**\n * Emits a `SkyAgGridRowDeleteConfirmArgs` object when a row's inline delete is confirmed.\n */\n @Output()\n public rowDeleteConfirm = new EventEmitter<SkyAgGridRowDeleteConfirmArgs>();\n\n /**\n * Emits when the list of ids of the data in the rows where inline deletes are shown changes.\n */\n @Output()\n public rowDeleteIdsChange = new EventEmitter<string[]>();\n\n public rowDeleteConfigs: SkyAgGridRowDeleteConfig[] = [];\n\n public get tableWidth() {\n return this.elementRef.nativeElement.querySelectorAll('.sky-ag-grid')[0]\n .offsetWidth;\n }\n\n @ContentChild(AgGridAngular)\n public agGrid: AgGridAngular;\n\n private ngUnsubscribe = new Subject();\n private rowDeleteComponent: SkyAgGridRowDeleteComponent;\n private rowDeleteContents: { [id: string]: SkyAgGridRowDeleteContents } = {};\n\n private _rowDeleteIds: string[];\n\n constructor(\n private affixService: SkyAffixService,\n private changeDetector: ChangeDetectorRef,\n private elementRef: ElementRef,\n private resolver: ComponentFactoryResolver,\n private overlayService: SkyOverlayService,\n private viewContainerRef: ViewContainerRef\n ) {}\n\n public ngAfterContentInit(): void {\n const factory = this.resolver.resolveComponentFactory(\n SkyAgGridRowDeleteComponent\n );\n this.rowDeleteComponent =\n this.viewContainerRef.createComponent(factory).instance;\n this.agGrid.rowDataChanged\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.updateRowDeleteStates();\n });\n\n this.agGrid.rowDataUpdated\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.updateRowDeleteStates();\n });\n\n this.agGrid.sortChanged\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.updateRowDeleteStates();\n });\n\n this.agGrid.filterChanged\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.updateRowDeleteStates();\n });\n\n this.agGrid.getRowNodeId = (data: any) => {\n return data.id.toString();\n };\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n\n Object.keys(this.rowDeleteContents).forEach((id) => {\n this.destroyRowDelete(id);\n });\n }\n\n public cancelRowDelete(row: RowNode): void {\n this.rowDeleteConfigs = this.rowDeleteConfigs.filter(\n (config) => config.id !== row.id\n );\n this.rowDeleteCancel.emit({ id: row.id });\n\n this.destroyRowDelete(row.id);\n }\n\n public confirmRowDelete(row: RowNode): void {\n this.rowDeleteConfigs.find((config) => config.id === row.id).pending = true;\n this.rowDeleteConfirm.emit({ id: row.id });\n }\n\n public getRowDeleteItem(row: RowNode): SkyAgGridRowDeleteConfig {\n return this.rowDeleteConfigs.find((rowDelete) => rowDelete.id === row.id);\n }\n\n private affixToRow(affixer: SkyAffixer, id: string) {\n let rowElement: HTMLElement = this.elementRef.nativeElement.querySelector(`\n [row-id=\"${id}\"] div[aria-colindex=\"1\"],\n .ag-row.sky-ag-grid-row-${id} div[aria-colindex=\"1\"]\n `);\n\n // This covers cases where AG Grid places the column index on an inner element (such as with the `enableCellTextSelection` option)\n // This appears to have been fixed by AG Grid in version 24 and so it is not testable after that version.\n /* istanbul ignore if */\n if (!rowElement) {\n const columns = this.elementRef.nativeElement.querySelectorAll(\n '[row-id=\"' + id + '\"] > div'\n );\n\n for (let i = 0; i < columns.length; i++) {\n if (columns[i].querySelector('[aria-colindex=\"1\"]')) {\n rowElement = columns[i];\n break;\n }\n }\n }\n\n affixer.affixTo(rowElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n isSticky: true,\n placement: 'above',\n verticalAlignment: 'top',\n horizontalAlignment: 'left',\n enableAutoFit: false,\n });\n }\n\n private destroyRowDelete(id: string): void {\n const rowDeleteContents = this.rowDeleteContents[id];\n\n /* sanity check */\n /* istanbul ignore else */\n if (rowDeleteContents) {\n rowDeleteContents.affixer.destroy();\n this.overlayService.close(rowDeleteContents.overlay);\n delete this.rowDeleteContents[id];\n this.rowDeleteConfigs = this.rowDeleteConfigs.filter(\n (config) => config.id !== id\n );\n this._rowDeleteIds = this.rowDeleteIds?.filter(\n (arrayId) => arrayId !== id\n );\n this.rowDeleteIdsChange.emit(this._rowDeleteIds);\n }\n }\n\n private updateRowDeleteStates(): void {\n this.rowDeleteConfigs.forEach((config: SkyAgGridRowDeleteConfig) => {\n if (!this.agGrid.api.getRowNode(config.id)) {\n this.destroyRowDelete(config.id);\n } else {\n // We must reaffix things when the data changes because the rows rerender and the previous element that the delete was affixed\n // to is destroyed.\n this.affixToRow(this.rowDeleteContents[config.id].affixer, config.id);\n }\n });\n this.changeDetector.markForCheck();\n }\n}\n"]}
1
+ {"version":3,"file":"ag-grid-row-delete.directive.js","sourceRoot":"","sources":["../../../../../../../../libs/components/ag-grid/src/lib/modules/ag-grid/ag-grid-row-delete.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterContentInit,\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n SkyAffixAutoFitContext,\n SkyAffixService,\n SkyAffixer,\n SkyOverlayService,\n} from '@skyux/core';\n\nimport { AgGridAngular } from 'ag-grid-angular';\nimport { RowNode } from 'ag-grid-community';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyAgGridRowDeleteComponent } from './ag-grid-row-delete.component';\nimport { SkyAgGridRowDeleteCancelArgs } from './types/ag-grid-row-delete-cancel-args';\nimport { SkyAgGridRowDeleteConfig } from './types/ag-grid-row-delete-config';\nimport { SkyAgGridRowDeleteConfirmArgs } from './types/ag-grid-row-delete-confirm-args';\nimport { SkyAgGridRowDeleteContents } from './types/ag-grid-row-delete-contents';\n\n/**\n * @internal\n */\n@Directive({\n selector: '[skyAgGridRowDelete]',\n})\nexport class SkyAgGridRowDeleteDirective\n implements AfterContentInit, OnDestroy\n{\n /**\n * Specifies the ids of the data in the rows on which inline delete's should be shown.\n */\n @Input()\n set rowDeleteIds(value: string[]) {\n this._rowDeleteIds = value;\n\n if (!value) {\n for (const config of this.rowDeleteConfigs) {\n this.destroyRowDelete(config.id);\n }\n\n this.changeDetector.markForCheck();\n\n return;\n }\n\n for (const id of value) {\n const existingConfig = this.rowDeleteConfigs.find(\n (config) => config.id === id\n );\n if (existingConfig) {\n existingConfig.pending = false;\n } else {\n this.rowDeleteConfigs.push({\n id: id,\n pending: false,\n });\n\n const overlay = this.overlayService.create({\n enableScroll: true,\n showBackdrop: false,\n closeOnNavigation: true,\n enableClose: false,\n enablePointerEvents: true,\n });\n\n overlay.attachTemplate(\n this.rowDeleteComponent.inlineDeleteTemplateRef,\n {\n $implicit: this.agGrid.api.getRowNode(id),\n tableWidth: () => {\n return this.tableWidth;\n },\n getRowDeleteItem: (row: RowNode) => this.getRowDeleteItem(row),\n cancelRowDelete: (row: RowNode) => this.cancelRowDelete(row),\n confirmRowDelete: (row: RowNode) => this.confirmRowDelete(row),\n }\n );\n\n /**\n * We are manually setting the z-index here because overlays will always be on top of\n * the omnibar. This manual setting is 2 less than the omnibar's z-index of 1000 and one less than\n * the header row's viewkeeper which is 999. We discussed changing the overlay service to allow for this\n * but decided against that change at this time due to its niche nature.\n */\n overlay.componentRef.instance.zIndex = '998';\n\n setTimeout(() => {\n const inlineDeleteRef = this.rowDeleteComponent.inlineDeleteRefs\n .toArray()\n .find((elRef) => {\n return elRef.nativeElement.id === 'row-delete-ref-' + id;\n });\n const affixer = this.affixService.createAffixer(inlineDeleteRef);\n\n this.affixToRow(affixer, id);\n\n this.rowDeleteContents[id] = {\n affixer: affixer,\n overlay: overlay,\n };\n });\n }\n }\n\n for (const config of this.rowDeleteConfigs) {\n if (value.indexOf(config.id) < 0) {\n this.destroyRowDelete(config.id);\n }\n }\n\n this.changeDetector.markForCheck();\n }\n\n get rowDeleteIds(): string[] {\n return this._rowDeleteIds;\n }\n\n /**\n * Emits a `SkyAgGridRowDeleteCancelArgs` object when a row's inline delete is cancelled.\n */\n @Output()\n public rowDeleteCancel = new EventEmitter<SkyAgGridRowDeleteCancelArgs>();\n\n /**\n * Emits a `SkyAgGridRowDeleteConfirmArgs` object when a row's inline delete is confirmed.\n */\n @Output()\n public rowDeleteConfirm = new EventEmitter<SkyAgGridRowDeleteConfirmArgs>();\n\n /**\n * Emits when the list of ids of the data in the rows where inline deletes are shown changes.\n */\n @Output()\n public rowDeleteIdsChange = new EventEmitter<string[]>();\n\n public rowDeleteConfigs: SkyAgGridRowDeleteConfig[] = [];\n\n public get tableWidth() {\n return this.elementRef.nativeElement.querySelectorAll('.sky-ag-grid')[0]\n .offsetWidth;\n }\n\n @ContentChild(AgGridAngular)\n public agGrid: AgGridAngular;\n\n private ngUnsubscribe = new Subject();\n private rowDeleteComponent: SkyAgGridRowDeleteComponent;\n private rowDeleteContents: { [id: string]: SkyAgGridRowDeleteContents } = {};\n\n private _rowDeleteIds: string[];\n\n constructor(\n private affixService: SkyAffixService,\n private changeDetector: ChangeDetectorRef,\n private elementRef: ElementRef,\n private resolver: ComponentFactoryResolver,\n private overlayService: SkyOverlayService,\n private viewContainerRef: ViewContainerRef\n ) {}\n\n public ngAfterContentInit(): void {\n const factory = this.resolver.resolveComponentFactory(\n SkyAgGridRowDeleteComponent\n );\n this.rowDeleteComponent =\n this.viewContainerRef.createComponent(factory).instance;\n this.agGrid.rowDataChanged\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.updateRowDeleteStates();\n });\n\n this.agGrid.rowDataUpdated\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.updateRowDeleteStates();\n });\n\n this.agGrid.sortChanged\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.updateRowDeleteStates();\n });\n\n this.agGrid.filterChanged\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.updateRowDeleteStates();\n });\n\n this.agGrid.getRowNodeId = (data: any) => {\n return data.id.toString();\n };\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n\n Object.keys(this.rowDeleteContents).forEach((id) => {\n this.destroyRowDelete(id);\n });\n }\n\n public cancelRowDelete(row: RowNode): void {\n this.rowDeleteConfigs = this.rowDeleteConfigs.filter(\n (config) => config.id !== row.id\n );\n this.rowDeleteCancel.emit({ id: row.id });\n\n this.destroyRowDelete(row.id);\n }\n\n public confirmRowDelete(row: RowNode): void {\n this.rowDeleteConfigs.find((config) => config.id === row.id).pending = true;\n this.rowDeleteConfirm.emit({ id: row.id });\n }\n\n public getRowDeleteItem(row: RowNode): SkyAgGridRowDeleteConfig {\n return this.rowDeleteConfigs.find((rowDelete) => rowDelete.id === row.id);\n }\n\n private affixToRow(affixer: SkyAffixer, id: string) {\n let rowElement: HTMLElement = this.elementRef.nativeElement.querySelector(`\n [row-id=\"${id}\"] div[aria-colindex=\"1\"],\n .ag-row.sky-ag-grid-row-${id} div[aria-colindex=\"1\"]\n `);\n\n // This covers cases where AG Grid places the column index on an inner element (such as with the `enableCellTextSelection` option)\n // This appears to have been fixed by AG Grid in version 24 and so it is not testable after that version.\n /* istanbul ignore if */\n if (!rowElement) {\n const columns = this.elementRef.nativeElement.querySelectorAll(\n '[row-id=\"' + id + '\"] > div'\n );\n\n for (let i = 0; i < columns.length; i++) {\n if (columns[i].querySelector('[aria-colindex=\"1\"]')) {\n rowElement = columns[i];\n break;\n }\n }\n }\n\n affixer.affixTo(rowElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n isSticky: true,\n placement: 'above',\n verticalAlignment: 'top',\n horizontalAlignment: 'left',\n enableAutoFit: false,\n });\n }\n\n private destroyRowDelete(id: string): void {\n const rowDeleteContents = this.rowDeleteContents[id];\n\n /* sanity check */\n /* istanbul ignore else */\n if (rowDeleteContents) {\n rowDeleteContents.affixer.destroy();\n this.overlayService.close(rowDeleteContents.overlay);\n delete this.rowDeleteContents[id];\n this.rowDeleteConfigs = this.rowDeleteConfigs.filter(\n (config) => config.id !== id\n );\n this._rowDeleteIds = this.rowDeleteIds?.filter(\n (arrayId) => arrayId !== id\n );\n this.rowDeleteIdsChange.emit(this._rowDeleteIds);\n }\n }\n\n private updateRowDeleteStates(): void {\n this.rowDeleteConfigs.forEach((config: SkyAgGridRowDeleteConfig) => {\n if (!this.agGrid.api.getRowNode(config.id)) {\n this.destroyRowDelete(config.id);\n } else {\n // We must reaffix things when the data changes because the rows rerender and the previous element that the delete was affixed\n // to is destroyed.\n this.affixToRow(this.rowDeleteContents[config.id].affixer, config.id);\n }\n });\n this.changeDetector.markForCheck();\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { ChangeDetectorRef, ChangeDetectionStrategy, Component, ContentChild, ElementRef, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, } from '@angular/core';
2
2
  import { AgGridAngular } from 'ag-grid-angular';
3
3
  import { SkyAgGridAdapterService } from './ag-grid-adapter.service';
4
4
  import * as i0 from "@angular/core";