@skyux/ag-grid 5.1.10 → 5.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/skyux-ag-grid.umd.js +121 -116
- package/documentation.json +34 -14
- package/esm2015/modules/ag-grid/ag-grid-adapter.service.js +3 -3
- package/esm2015/modules/ag-grid/ag-grid-data-manager-adapter.directive.js +10 -11
- package/esm2015/modules/ag-grid/ag-grid-row-delete.component.js +3 -3
- package/esm2015/modules/ag-grid/ag-grid-row-delete.directive.js +3 -3
- package/esm2015/modules/ag-grid/ag-grid-wrapper.component.js +3 -3
- package/esm2015/modules/ag-grid/ag-grid.module.js +4 -4
- package/esm2015/modules/ag-grid/ag-grid.service.js +5 -5
- package/esm2015/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.js +3 -3
- package/esm2015/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.js +4 -4
- package/esm2015/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.js +3 -3
- package/esm2015/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.module.js +4 -4
- package/esm2015/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.js +3 -3
- package/esm2015/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.module.js +4 -4
- package/esm2015/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.js +9 -5
- package/esm2015/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.js +4 -4
- package/esm2015/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.js +3 -3
- package/esm2015/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.module.js +4 -4
- package/esm2015/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.js +3 -3
- package/esm2015/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.module.js +4 -4
- package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.js +3 -3
- package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.js +3 -3
- package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.js +4 -4
- package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js +3 -3
- package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js +4 -4
- package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.js +3 -3
- package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module.js +4 -4
- package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.js +3 -3
- package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module.js +4 -4
- package/esm2015/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js +3 -3
- package/esm2015/modules/ag-grid/cell-validator/ag-grid-cell-validator.module.js +4 -4
- package/esm2015/modules/ag-grid/types/lookup-properties.js +3 -1
- package/esm2015/modules/shared/ag-grid-resources.module.js +4 -4
- package/fesm2015/skyux-ag-grid.js +120 -115
- package/fesm2015/skyux-ag-grid.js.map +1 -1
- package/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.d.ts +1 -0
- package/modules/ag-grid/types/lookup-properties.d.ts +5 -1
- package/package.json +9 -9
package/documentation.json
CHANGED
|
@@ -302,7 +302,7 @@
|
|
|
302
302
|
"name": "Injectable"
|
|
303
303
|
},
|
|
304
304
|
"arguments": {
|
|
305
|
-
"options": "{\n providedIn: '
|
|
305
|
+
"options": "{\n providedIn: 'any',\n}"
|
|
306
306
|
}
|
|
307
307
|
}
|
|
308
308
|
],
|
|
@@ -316,7 +316,7 @@
|
|
|
316
316
|
"sources": [
|
|
317
317
|
{
|
|
318
318
|
"fileName": "projects/ag-grid/src/modules/ag-grid/ag-grid.service.ts",
|
|
319
|
-
"line":
|
|
319
|
+
"line": 148,
|
|
320
320
|
"character": 2
|
|
321
321
|
}
|
|
322
322
|
],
|
|
@@ -405,7 +405,7 @@
|
|
|
405
405
|
"sources": [
|
|
406
406
|
{
|
|
407
407
|
"fileName": "projects/ag-grid/src/modules/ag-grid/ag-grid.service.ts",
|
|
408
|
-
"line":
|
|
408
|
+
"line": 189,
|
|
409
409
|
"character": 9
|
|
410
410
|
}
|
|
411
411
|
],
|
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
"sources": [
|
|
454
454
|
{
|
|
455
455
|
"fileName": "projects/ag-grid/src/modules/ag-grid/ag-grid.service.ts",
|
|
456
|
-
"line":
|
|
456
|
+
"line": 174,
|
|
457
457
|
"character": 9
|
|
458
458
|
}
|
|
459
459
|
],
|
|
@@ -501,7 +501,7 @@
|
|
|
501
501
|
"sources": [
|
|
502
502
|
{
|
|
503
503
|
"fileName": "projects/ag-grid/src/modules/ag-grid/ag-grid.service.ts",
|
|
504
|
-
"line":
|
|
504
|
+
"line": 164,
|
|
505
505
|
"character": 9
|
|
506
506
|
}
|
|
507
507
|
],
|
|
@@ -549,7 +549,7 @@
|
|
|
549
549
|
"sources": [
|
|
550
550
|
{
|
|
551
551
|
"fileName": "projects/ag-grid/src/modules/ag-grid/ag-grid.service.ts",
|
|
552
|
-
"line":
|
|
552
|
+
"line": 141,
|
|
553
553
|
"character": 13
|
|
554
554
|
}
|
|
555
555
|
],
|
|
@@ -747,22 +747,32 @@
|
|
|
747
747
|
{
|
|
748
748
|
"fileName": "data-manager-data-entry-grid-docs-demo-filter-modal.component.ts",
|
|
749
749
|
"filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo-filter-modal.component.ts",
|
|
750
|
-
"rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport {\n SkyDataManagerFilterData,\n SkyDataManagerFilterModalContext,\n} from '@skyux/data-manager';\nimport { SkyModalInstance } from '@skyux/modals';\n\n@Component({\n selector: 'app-data-manager-data-entry-grid-docs-demo-filter-modal',\n templateUrl:\n './data-manager-data-entry-grid-docs-demo-filter-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataManagerDataEntryGridDocsDemoFiltersModalComponent {\n public jobTitle: string = '';\n\n public hideSales: boolean = false;\n\n constructor(\n public context: SkyDataManagerFilterModalContext,\n public instance: SkyModalInstance,\n private changeDetector: ChangeDetectorRef\n ) {\n if (this.context.filterData && this.context.filterData.filters) {\n let filters = this.context.filterData.filters;\n this.jobTitle = filters.jobTitle
|
|
750
|
+
"rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport {\n SkyDataManagerFilterData,\n SkyDataManagerFilterModalContext,\n} from '@skyux/data-manager';\nimport { SkyModalInstance } from '@skyux/modals';\n\n@Component({\n selector: 'app-data-manager-data-entry-grid-docs-demo-filter-modal',\n templateUrl:\n './data-manager-data-entry-grid-docs-demo-filter-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataManagerDataEntryGridDocsDemoFiltersModalComponent {\n public jobTitle: string = '';\n\n public hideSales: boolean = false;\n\n constructor(\n public context: SkyDataManagerFilterModalContext,\n public instance: SkyModalInstance,\n private changeDetector: ChangeDetectorRef\n ) {\n if (this.context.filterData && this.context.filterData.filters) {\n let filters = this.context.filterData.filters;\n this.jobTitle = filters.jobTitle || 'any';\n this.hideSales = filters.hideSales || false;\n }\n this.changeDetector.markForCheck();\n }\n\n public applyFilters() {\n let result: SkyDataManagerFilterData = {};\n\n result.filtersApplied = this.jobTitle !== 'any' || this.hideSales;\n result.filters = {\n jobTitle: this.jobTitle,\n hideSales: this.hideSales,\n };\n this.changeDetector.markForCheck();\n\n this.instance.save(result);\n }\n\n public clearAllFilters() {\n this.hideSales = false;\n this.jobTitle = 'any';\n this.changeDetector.markForCheck();\n }\n\n public cancel() {\n this.instance.cancel();\n }\n}\n"
|
|
751
|
+
},
|
|
752
|
+
{
|
|
753
|
+
"fileName": "data-manager-data-entry-grid-docs-demo-view-grid.component.html",
|
|
754
|
+
"filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo-view-grid.component.html",
|
|
755
|
+
"rawContents": "<sky-data-view skyAgGridDataManagerAdapter [viewId]=\"viewConfig.id\">\n <sky-ag-grid-wrapper *ngIf=\"isActive && gridInitialized\">\n <ag-grid-angular\n [gridOptions]=\"gridOptions\"\n [rowData]=\"displayedItems\"\n [overlayNoRowsTemplate]=\"noRowsTemplate\"\n (rowSelected)=\"onRowSelected($event)\"\n >\n </ag-grid-angular>\n </sky-ag-grid-wrapper>\n</sky-data-view>\n"
|
|
756
|
+
},
|
|
757
|
+
{
|
|
758
|
+
"fileName": "data-manager-data-entry-grid-docs-demo-view-grid.component.ts",
|
|
759
|
+
"filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo-view-grid.component.ts",
|
|
760
|
+
"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: boolean = 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 let viewState = this.dataState.getViewStateById(this.viewId);\n let visibleColumns = viewState.displayedColumnIds;\n\n this.columnDefs.sort((col1, col2) => {\n let col1Index = visibleColumns.findIndex(\n (colId: string) => colId === col1.colId\n );\n let col2Index = visibleColumns.findIndex(\n (colId: string) => colId === col2.colId\n );\n\n if (col1Index === -1) {\n col1.hide = true;\n return 0;\n } else if (col2Index === -1) {\n col2.hide = true;\n return 0;\n } else {\n return col1Index - col2Index;\n }\n });\n\n this.gridInitialized = true;\n this.changeDetector.markForCheck();\n }\n\n public onGridReady(gridReadyEvent: GridReadyEvent): void {\n this.gridApi = gridReadyEvent.api;\n this.gridApi.sizeColumnsToFit();\n this.columnApi = gridReadyEvent.columnApi;\n this.updateData();\n this.changeDetector.markForCheck();\n }\n\n public onRowSelected(rowSelectedEvent: RowSelectedEvent): void {\n if (!rowSelectedEvent.data.selected) {\n this.updateData();\n }\n }\n\n public sortItems(): void {\n let 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 let searchText = this.dataState && this.dataState.searchText;\n\n if (searchText) {\n searchedItems = items.filter(function (item: any) {\n let property: any;\n\n for (property in item) {\n if (\n item.hasOwnProperty(property) &&\n (property === 'name' || property === 'description')\n ) {\n const propertyText = item[property].toLowerCase();\n if (propertyText.indexOf(searchText) > -1) {\n return true;\n }\n }\n }\n\n return false;\n });\n }\n\n return searchedItems;\n }\n\n public filterItems(items: any[]): any[] {\n let filteredItems = items;\n let filterData = this.dataState && this.dataState.filterData;\n\n if (filterData && filterData.filters) {\n let filters = filterData.filters;\n filteredItems = items.filter((item: any) => {\n return (\n ((filters.hideSales && item.department.name !== 'Sales') ||\n !filters.hideSales) &&\n ((filters.jobTitle !== 'any' &&\n item.jobTitle?.name === filters.jobTitle) ||\n !filters.jobTitle ||\n filters.jobTitle === 'any')\n );\n });\n }\n\n return filteredItems;\n }\n\n private endDateFormatter(params: ValueFormatterParams): string {\n const dateConfig = { year: 'numeric', month: '2-digit', day: '2-digit' };\n return params.value\n ? params.value.toLocaleDateString('en-us', dateConfig)\n : 'N/A';\n }\n}\n"
|
|
751
761
|
},
|
|
752
762
|
{
|
|
753
763
|
"fileName": "data-manager-data-entry-grid-docs-demo.component.html",
|
|
754
764
|
"filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo.component.html",
|
|
755
|
-
"rawContents": "<sky-data-manager>\n <sky-data-manager-toolbar>\n <sky-data-manager-toolbar-left-item>\n <button\n class=\"sky-btn sky-btn-primary\"\n id=\"edit-btn\"\n (click)=\"openModal()\"\n >\n Edit\n </button>\n </sky-data-manager-toolbar-left-item>\n </sky-data-manager-toolbar>\n <
|
|
765
|
+
"rawContents": "<sky-data-manager>\n <sky-data-manager-toolbar>\n <sky-data-manager-toolbar-left-item>\n <button\n class=\"sky-btn sky-btn-primary\"\n id=\"edit-btn\"\n (click)=\"openModal()\"\n >\n Edit\n </button>\n </sky-data-manager-toolbar-left-item>\n </sky-data-manager-toolbar>\n <app-data-manager-data-entry-grid-docs-demo-view-grid\n [items]=\"items\"\n ></app-data-manager-data-entry-grid-docs-demo-view-grid>\n</sky-data-manager>\n"
|
|
756
766
|
},
|
|
757
767
|
{
|
|
758
768
|
"fileName": "data-manager-data-entry-grid-docs-demo.component.ts",
|
|
759
769
|
"filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo.component.ts",
|
|
760
|
-
"rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\n\nimport { SkyAgGridService, SkyCellType } from '@skyux/ag-grid';\n\nimport {\n ColDef,\n ColumnApi,\n GridApi,\n GridOptions,\n GridReadyEvent,\n ValueFormatterParams,\n} from 'ag-grid-community';\n\nimport {\n SkyDataManagerState,\n SkyDataViewConfig,\n SkyDataManagerService,\n} from '@skyux/data-manager';\n\nimport { SkyDataManagerDataEntryGridContextMenuComponent } from './data-manager-data-entry-grid-docs-demo-context-menu.component';\nimport { SKY_AG_GRID_DEMO_DATA } from './data-manager-data-entry-grid-docs-demo-data';\nimport { SkyDataEntryGridEditModalContext } from './data-manager-data-entry-grid-docs-demo-edit-modal-context';\nimport { SkyDataManagerDataEntryGridEditModalComponent } from './data-manager-data-entry-grid-docs-demo-edit-modal.component';\nimport { SkyModalCloseArgs, SkyModalService } from '@skyux/modals';\nimport { DataManagerDataEntryGridDocsDemoFiltersModalComponent } from './data-manager-data-entry-grid-docs-demo-filter-modal.component';\n\n@Component({\n selector: 'app-data-manager-data-entry-grid-docs-demo',\n templateUrl: './data-manager-data-entry-grid-docs-demo.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [SkyDataManagerService],\n})\nexport class SkyDataManagerDataEntryGridDemoComponent implements OnInit {\n public columnDefs: ColDef[] = [\n {\n field: 'selected',\n type: SkyCellType.RowSelector,\n },\n {\n field: 'context',\n headerName: '',\n maxWidth: 50,\n sortable: false,\n cellRendererFramework: SkyDataManagerDataEntryGridContextMenuComponent,\n },\n {\n field: 'name',\n headerName: 'Name',\n },\n {\n field: 'age',\n headerName: 'Age',\n type: SkyCellType.Number,\n maxWidth: 60,\n },\n {\n field: 'startDate',\n headerName: 'Start date',\n type: SkyCellType.Date,\n sort: 'asc',\n },\n {\n field: 'endDate',\n headerName: 'End date',\n type: SkyCellType.Date,\n valueFormatter: this.endDateFormatter,\n },\n {\n field: 'department',\n headerName: 'Department',\n type: SkyCellType.Autocomplete,\n },\n {\n field: 'jobTitle',\n headerName: 'Title',\n type: SkyCellType.Autocomplete,\n },\n {\n field: 'validationCurrency',\n 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 public columnApi?: ColumnApi;\n public displayedItems: any[] = [];\n public gridData = SKY_AG_GRID_DEMO_DATA;\n\n public viewId = 'gridView';\n public activeViewId = 'gridView';\n\n public dataState = new SkyDataManagerState({});\n\n public viewConfig: SkyDataViewConfig = {\n id: this.viewId,\n name: 'Grid View',\n icon: 'table',\n searchEnabled: true,\n sortEnabled: true,\n multiselectToolbarEnabled: true,\n columnPickerEnabled: true,\n filterButtonEnabled: true,\n columnOptions: [\n {\n id: 'selected',\n label: 'selected',\n alwaysDisplayed: true,\n },\n\n {\n id: 'context',\n label: 'context',\n alwaysDisplayed: true,\n },\n {\n id: 'name',\n label: 'Name',\n description: 'The name of the employee.',\n },\n {\n id: 'age',\n label: 'Age',\n description: 'The age of the employee.',\n },\n {\n id: 'startDate',\n label: 'Start date',\n description: 'The start date of the employee.',\n },\n {\n id: 'endDate',\n label: 'End date',\n description: 'The end date of the employee.',\n },\n {\n id: 'department',\n label: 'Department',\n description: 'The department of the employee',\n },\n {\n id: 'jobTitle',\n label: 'Title',\n description: 'The job title of the employee.',\n },\n {\n id: 'validationCurrency',\n label: 'Validation currency',\n description: 'An example column for currency validation.',\n },\n {\n id: 'validationDate',\n label: 'Validation date',\n description: 'An example column for date validation.',\n },\n ],\n };\n\n public dataManagerConfig = {\n filterModalComponent: DataManagerDataEntryGridDocsDemoFiltersModalComponent,\n sortOptions: [\n {\n id: 'az',\n label: 'Name (A - Z)',\n descending: false,\n propertyName: 'name',\n },\n {\n id: 'za',\n label: 'Name (Z - A)',\n descending: true,\n propertyName: 'name',\n },\n ],\n };\n\n public defaultDataState = new SkyDataManagerState({\n filterData: {\n filtersApplied: false,\n filters: {\n hideSales: false,\n },\n },\n views: [\n {\n viewId: this.viewId,\n displayedColumnIds: [\n 'selected',\n 'name',\n 'age',\n 'startDate',\n 'endDate',\n 'department',\n 'jobTitle',\n 'validationCurrency',\n 'validationDate',\n ],\n },\n ],\n });\n\n public gridApi?: GridApi;\n public gridInitialized = false;\n public gridOptions!: GridOptions;\n public noRowsTemplate: string;\n\n constructor(\n private agGridService: SkyAgGridService,\n private changeDetector: ChangeDetectorRef,\n private dataManagerService: SkyDataManagerService,\n private modalService: SkyModalService\n ) {\n this.noRowsTemplate = `<div class=\"sky-deemphasized\">No results found.</div>`;\n this.dataManagerService\n .getDataStateUpdates(this.viewId)\n .subscribe((state) => {\n this.dataState = state;\n this.setInitialColumnOrder();\n this.updateData();\n this.changeDetector.markForCheck();\n });\n }\n\n public ngOnInit(): void {\n this.displayedItems = this.gridData;\n\n this.dataManagerService.initDataManager({\n activeViewId: this.activeViewId,\n dataManagerConfig: this.dataManagerConfig,\n defaultDataState: this.defaultDataState,\n });\n\n this.dataManagerService.initDataView(this.viewConfig);\n\n this.gridOptions = this.agGridService.getGridOptions({\n gridOptions: {\n columnDefs: this.columnDefs,\n onGridReady: this.onGridReady.bind(this),\n },\n });\n this.changeDetector.markForCheck();\n }\n\n public updateData(): void {\n this.sortItems();\n this.displayedItems = this.filterItems(this.searchItems(this.gridData));\n\n if (this.dataState.onlyShowSelected) {\n this.displayedItems = this.displayedItems.filter((item) => item.selected);\n }\n\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 let viewState = this.dataState.getViewStateById(this.viewId);\n let visibleColumns = viewState.displayedColumnIds;\n\n this.columnDefs.sort((col1, col2) => {\n let col1Index = visibleColumns.findIndex(\n (colId: string) => colId === col1.colId\n );\n let col2Index = visibleColumns.findIndex(\n (colId: string) => colId === col2.colId\n );\n\n if (col1Index === -1) {\n col1.hide = true;\n return 0;\n } else if (col2Index === -1) {\n col2.hide = true;\n return 0;\n } else {\n return col1Index - col2Index;\n }\n });\n\n this.gridInitialized = true;\n this.changeDetector.markForCheck();\n }\n\n public onGridReady(event: GridReadyEvent): void {\n this.columnApi = event.columnApi;\n this.gridApi = event.api;\n this.gridApi.sizeColumnsToFit();\n this.updateData();\n this.changeDetector.markForCheck();\n }\n\n public sortItems(): void {\n let sortOption = this.dataState.activeSortOption;\n if (this.columnApi && sortOption) {\n const allColumns = this.columnApi.getAllColumns() || [];\n allColumns.forEach((column) => {\n if (column.getColId() === sortOption.propertyName) {\n column.setSort(sortOption.descending ? 'desc' : 'asc');\n } else {\n column.setSort('none');\n }\n });\n }\n }\n\n public clearAll(): void {\n if (this.dataState) {\n let selectedIds = this.dataState.selectedIds || [];\n\n this.displayedItems.forEach((item) => {\n if (item.selected) {\n let itemIndex = selectedIds.indexOf(item.id);\n item.selected = false;\n selectedIds.splice(itemIndex, 1);\n }\n });\n this.dataState.selectedIds = selectedIds;\n this.dataManagerService.updateDataState(this.dataState, this.viewId);\n }\n }\n\n public selectAll(): void {\n if (this.dataState) {\n let selectedIds = this.dataState.selectedIds || [];\n\n this.displayedItems.forEach((item) => {\n if (!item.selected) {\n item.selected = true;\n selectedIds.push(item.id);\n }\n });\n\n this.dataState.selectedIds = selectedIds;\n this.dataManagerService.updateDataState(this.dataState, this.viewId);\n }\n }\n\n public searchItems(items: any[]): any[] {\n let searchedItems = items;\n let searchText = this.dataState && this.dataState.searchText;\n\n if (searchText) {\n searchedItems = items.filter(function (item: any) {\n let property: any;\n\n for (property in item) {\n if (\n item.hasOwnProperty(property) &&\n (property === 'name' || property === 'description')\n ) {\n const propertyText = item[property].toLowerCase();\n if (propertyText.indexOf(searchText) > -1) {\n return true;\n }\n }\n }\n\n return false;\n });\n }\n return searchedItems;\n }\n\n public filterItems(items: any[]): any[] {\n let filteredItems = items;\n let filterData = this.dataState && this.dataState.filterData;\n\n if (filterData && filterData.filters) {\n let filters = filterData.filters;\n filteredItems = items.filter((item: any) => {\n return (\n ((filters.hideOrange && item.color !== 'orange') ||\n !filters.hideOrange) &&\n ((filters.type !== 'any' && item.type === filters.type) ||\n !filters.type ||\n filters.type === 'any')\n );\n });\n }\n\n return filteredItems;\n }\n\n public openModal(): void {\n const context = new SkyDataEntryGridEditModalContext();\n context.gridData = this.gridData;\n this.changeDetector.markForCheck();\n\n const options = {\n providers: [\n { provide: SkyDataEntryGridEditModalContext, useValue: context },\n ],\n ariaDescribedBy: 'docs-edit-grid-modal-content',\n size: 'large',\n };\n\n const modalInstance = this.modalService.open(\n SkyDataManagerDataEntryGridEditModalComponent,\n options\n );\n\n modalInstance.closed.subscribe((result: SkyModalCloseArgs) => {\n if (result.reason === 'cancel' || result.reason === 'close') {\n alert('Edits canceled!');\n } else {\n this.gridData = result.data;\n if (this.gridApi) {\n this.gridApi.refreshCells();\n }\n alert('Saving data!');\n }\n this.changeDetector.markForCheck();\n });\n }\n\n private endDateFormatter(params: ValueFormatterParams): string {\n const dateConfig = { year: 'numeric', month: '2-digit', day: '2-digit' };\n return params.value\n ? params.value.toLocaleDateString('en-us', dateConfig)\n : 'N/A';\n }\n}\n"
|
|
770
|
+
"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"
|
|
761
771
|
},
|
|
762
772
|
{
|
|
763
773
|
"fileName": "data-manager-data-entry-grid-docs-demo.module.ts",
|
|
764
774
|
"filePath": "/projects/ag-grid/documentation/code-examples/data-entry-grid/data-manager-added/data-manager-data-entry-grid-docs-demo.module.ts",
|
|
765
|
-
"rawContents": "import { NgModule } from '@angular/core';\nimport { SkyAgGridModule } from '@skyux/ag-grid';\nimport { SkyDataManagerModule } from '@skyux/data-manager';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkySearchModule } from '@skyux/lookup';\nimport { SkyModalModule } from '@skyux/modals';\nimport { SkyDropdownModule } from '@skyux/popovers';\n\nimport { AgGridModule } from 'ag-grid-angular';\nimport { DataManagerDataEntryGridDocsDemoFiltersModalComponent } from './data-manager-data-entry-grid-docs-demo-filter-modal.component';\nimport { SkyDataManagerDataEntryGridContextMenuComponent } from './data-manager-data-entry-grid-docs-demo-context-menu.component';\nimport { SkyDataManagerDataEntryGridEditModalComponent } from './data-manager-data-entry-grid-docs-demo-edit-modal.component';\nimport { SkyDataManagerDataEntryGridDemoComponent } from './data-manager-data-entry-grid-docs-demo.component';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [\n SkyDataManagerDataEntryGridContextMenuComponent,\n SkyDataManagerDataEntryGridDemoComponent,\n SkyDataManagerDataEntryGridEditModalComponent,\n DataManagerDataEntryGridDocsDemoFiltersModalComponent,\n ],\n imports: [\n AgGridModule.withComponents([\n SkyDataManagerDataEntryGridContextMenuComponent,\n ]),\n CommonModule,\n FormsModule,\n SkyToolbarModule,\n SkySearchModule,\n AgGridModule,\n SkyAgGridModule,\n SkyModalModule,\n SkyDropdownModule,\n SkyDataManagerModule,\n SkyCheckboxModule,\n ],\n exports: [SkyDataManagerDataEntryGridDemoComponent],\n entryComponents: [\n SkyDataManagerDataEntryGridEditModalComponent,\n DataManagerDataEntryGridDocsDemoFiltersModalComponent,\n ],\n})\nexport class SkyDataManagerDataEntryGridDocsDemoModule {}\n"
|
|
775
|
+
"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"
|
|
766
776
|
},
|
|
767
777
|
{
|
|
768
778
|
"fileName": "basic-data-grid-docs-demo-data.ts",
|
|
@@ -797,22 +807,32 @@
|
|
|
797
807
|
{
|
|
798
808
|
"fileName": "data-manager-data-grid-docs-demo-filter-modal.component.ts",
|
|
799
809
|
"filePath": "/projects/ag-grid/documentation/code-examples/data-grid/data-manager-added/data-manager-data-grid-docs-demo-filter-modal.component.ts",
|
|
800
|
-
"rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport {\n SkyDataManagerFilterData,\n SkyDataManagerFilterModalContext,\n} from '@skyux/data-manager';\nimport { SkyModalInstance } from '@skyux/modals';\n\n@Component({\n selector: 'app-data-manager-data-grid-docs-demo-filter-modal',\n templateUrl: './data-manager-data-grid-docs-demo-filter-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataManagerDataGridDocsDemoFiltersModalComponent {\n public jobTitle: string = '';\n\n public hideSales: boolean = false;\n\n constructor(\n public context: SkyDataManagerFilterModalContext,\n public instance: SkyModalInstance,\n private changeDetector: ChangeDetectorRef\n ) {\n if (this.context.filterData && this.context.filterData.filters) {\n let filters = this.context.filterData.filters;\n this.jobTitle = filters.jobTitle
|
|
810
|
+
"rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\nimport {\n SkyDataManagerFilterData,\n SkyDataManagerFilterModalContext,\n} from '@skyux/data-manager';\nimport { SkyModalInstance } from '@skyux/modals';\n\n@Component({\n selector: 'app-data-manager-data-grid-docs-demo-filter-modal',\n templateUrl: './data-manager-data-grid-docs-demo-filter-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataManagerDataGridDocsDemoFiltersModalComponent {\n public jobTitle: string = '';\n\n public hideSales: boolean = false;\n\n constructor(\n public context: SkyDataManagerFilterModalContext,\n public instance: SkyModalInstance,\n private changeDetector: ChangeDetectorRef\n ) {\n if (this.context.filterData && this.context.filterData.filters) {\n let filters = this.context.filterData.filters;\n this.jobTitle = filters.jobTitle || 'any';\n this.hideSales = filters.hideSales || false;\n }\n this.changeDetector.markForCheck();\n }\n\n public applyFilters() {\n let result: SkyDataManagerFilterData = {};\n\n result.filtersApplied = this.jobTitle !== 'any' || this.hideSales;\n result.filters = {\n jobTitle: this.jobTitle,\n hideSales: this.hideSales,\n };\n this.changeDetector.markForCheck();\n\n this.instance.save(result);\n }\n\n public clearAllFilters() {\n this.hideSales = false;\n this.jobTitle = 'any';\n this.changeDetector.markForCheck();\n }\n\n public cancel() {\n this.instance.cancel();\n }\n}\n"
|
|
811
|
+
},
|
|
812
|
+
{
|
|
813
|
+
"fileName": "data-manager-data-grid-docs-demo-view-grid.component.html",
|
|
814
|
+
"filePath": "/projects/ag-grid/documentation/code-examples/data-grid/data-manager-added/data-manager-data-grid-docs-demo-view-grid.component.html",
|
|
815
|
+
"rawContents": "<sky-data-view skyAgGridDataManagerAdapter [viewId]=\"viewConfig.id\">\n <sky-ag-grid-wrapper *ngIf=\"isActive && gridInitialized\">\n <ag-grid-angular\n [gridOptions]=\"gridOptions\"\n [overlayNoRowsTemplate]=\"noRowsTemplate\"\n [rowData]=\"displayedItems\"\n (rowSelected)=\"onRowSelected($event)\"\n >\n </ag-grid-angular>\n </sky-ag-grid-wrapper>\n</sky-data-view>\n"
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
"fileName": "data-manager-data-grid-docs-demo-view-grid.component.ts",
|
|
819
|
+
"filePath": "/projects/ag-grid/documentation/code-examples/data-grid/data-manager-added/data-manager-data-grid-docs-demo-view-grid.component.ts",
|
|
820
|
+
"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: boolean = 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 let viewState = this.dataState.getViewStateById(this.viewId);\n let visibleColumns = viewState.displayedColumnIds;\n\n this.columnDefs.sort((col1, col2) => {\n let col1Index = visibleColumns.findIndex(\n (colId: string) => colId === col1.colId\n );\n let col2Index = visibleColumns.findIndex(\n (colId: string) => colId === col2.colId\n );\n\n if (col1Index === -1) {\n col1.hide = true;\n return 0;\n } else if (col2Index === -1) {\n col2.hide = true;\n return 0;\n } else {\n return col1Index - col2Index;\n }\n });\n\n this.gridInitialized = true;\n this.changeDetector.markForCheck();\n }\n\n public onGridReady(gridReadyEvent: GridReadyEvent): void {\n this.gridApi = gridReadyEvent.api;\n this.gridApi.sizeColumnsToFit();\n this.columnApi = gridReadyEvent.columnApi;\n this.updateData();\n this.changeDetector.markForCheck();\n }\n\n public onRowSelected(rowSelectedEvent: RowSelectedEvent): void {\n if (!rowSelectedEvent.data.selected) {\n this.updateData();\n }\n }\n\n public sortItems(): void {\n let 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 let searchText = this.dataState && this.dataState.searchText;\n\n if (searchText) {\n searchedItems = items.filter(function (item: any) {\n let property: any;\n\n for (property in item) {\n if (\n item.hasOwnProperty(property) &&\n (property === 'name' || property === 'description')\n ) {\n const propertyText = item[property].toLowerCase();\n if (propertyText.indexOf(searchText) > -1) {\n return true;\n }\n }\n }\n return false;\n });\n }\n return searchedItems;\n }\n\n public filterItems(items: any[]): any[] {\n let filteredItems = items;\n let filterData = this.dataState && this.dataState.filterData;\n\n if (filterData && filterData.filters) {\n let filters = filterData.filters;\n filteredItems = items.filter((item: any) => {\n return (\n ((filters.hideSales && item.department.name !== 'Sales') ||\n !filters.hideSales) &&\n ((filters.jobTitle !== 'any' &&\n item.jobTitle?.name === filters.jobTitle) ||\n !filters.jobTitle ||\n filters.jobTitle === 'any')\n );\n });\n }\n\n return filteredItems;\n }\n\n private endDateFormatter(params: ValueFormatterParams): string {\n const dateConfig = { year: 'numeric', month: '2-digit', day: '2-digit' };\n return params.value\n ? params.value.toLocaleDateString('en-us', dateConfig)\n : 'N/A';\n }\n}\n"
|
|
801
821
|
},
|
|
802
822
|
{
|
|
803
823
|
"fileName": "data-manager-data-grid-docs-demo.component.html",
|
|
804
824
|
"filePath": "/projects/ag-grid/documentation/code-examples/data-grid/data-manager-added/data-manager-data-grid-docs-demo.component.html",
|
|
805
|
-
"rawContents": "<sky-data-manager>\n <sky-data-manager-toolbar></sky-data-manager-toolbar>\n <
|
|
825
|
+
"rawContents": "<sky-data-manager>\n <sky-data-manager-toolbar></sky-data-manager-toolbar>\n <app-data-manager-data-grid-docs-demo-view-grid [items]=\"items\">\n </app-data-manager-data-grid-docs-demo-view-grid>\n</sky-data-manager>\n"
|
|
806
826
|
},
|
|
807
827
|
{
|
|
808
828
|
"fileName": "data-manager-data-grid-docs-demo.component.ts",
|
|
809
829
|
"filePath": "/projects/ag-grid/documentation/code-examples/data-grid/data-manager-added/data-manager-data-grid-docs-demo.component.ts",
|
|
810
|
-
"rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport {
|
|
830
|
+
"rawContents": "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnInit,\n} from '@angular/core';\nimport {\n SkyDataManagerService,\n SkyDataManagerState,\n} from '@skyux/data-manager';\n\nimport { SKY_AG_GRID_DEMO_DATA } from './data-manager-data-grid-docs-demo-data';\nimport { DataManagerDataGridDocsDemoFiltersModalComponent } from './data-manager-data-grid-docs-demo-filter-modal.component';\n\n@Component({\n selector: 'app-data-manager-data-grid-docs-demo',\n templateUrl: './data-manager-data-grid-docs-demo.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [SkyDataManagerService],\n})\nexport class SkyDataManagerDataGridDemoComponent implements OnInit {\n public items = SKY_AG_GRID_DEMO_DATA;\n\n public dataState = new SkyDataManagerState({});\n\n public dataManagerConfig = {\n filterModalComponent: DataManagerDataGridDocsDemoFiltersModalComponent,\n sortOptions: [\n {\n id: 'az',\n label: 'Name (A - Z)',\n descending: false,\n propertyName: 'name',\n },\n {\n id: 'za',\n label: 'Name (Z - A)',\n descending: true,\n propertyName: 'name',\n },\n ],\n };\n\n public defaultDataState = new SkyDataManagerState({\n filterData: {\n filtersApplied: false,\n filters: {\n hideSales: false,\n },\n },\n views: [\n {\n viewId: 'dataGridWithDataManagerView',\n displayedColumnIds: [\n 'selected',\n 'name',\n 'age',\n 'startDate',\n 'endDate',\n 'department',\n 'jobTitle',\n ],\n },\n ],\n });\n\n public activeViewId = 'dataGridWithDataManagerView';\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private dataManagerService: SkyDataManagerService\n ) {\n this.dataManagerService\n .getDataStateUpdates('dataGridDataManager')\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"
|
|
811
831
|
},
|
|
812
832
|
{
|
|
813
833
|
"fileName": "data-manager-data-grid-docs-demo.module.ts",
|
|
814
834
|
"filePath": "/projects/ag-grid/documentation/code-examples/data-grid/data-manager-added/data-manager-data-grid-docs-demo.module.ts",
|
|
815
|
-
"rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyAgGridModule } from '@skyux/ag-grid';\nimport { SkyDataManagerModule } from '@skyux/data-manager';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkySearchModule } from '@skyux/lookup';\nimport { SkyModalModule } from '@skyux/modals';\n\nimport { AgGridModule } from 'ag-grid-angular';\n\nimport { DataManagerDataGridDocsDemoFiltersModalComponent } from './data-manager-data-grid-docs-demo-filter-modal.component';\nimport { SkyDataManagerDataGridDemoComponent } from './data-manager-data-grid-docs-demo.component';\n\n@NgModule({\n declarations: [\n SkyDataManagerDataGridDemoComponent,\n DataManagerDataGridDocsDemoFiltersModalComponent,\n ],\n entryComponents: [DataManagerDataGridDocsDemoFiltersModalComponent],\n exports: [SkyDataManagerDataGridDemoComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyToolbarModule,\n SkySearchModule,\n SkyDataManagerModule,\n SkyAgGridModule,\n AgGridModule,\n SkyDataManagerModule,\n SkyModalModule,\n SkyCheckboxModule,\n ],\n})\nexport class SkyDataManagerDataGridDocsDemoModule {}\n"
|
|
835
|
+
"rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyAgGridModule } from '@skyux/ag-grid';\nimport { SkyDataManagerModule } from '@skyux/data-manager';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport { SkySearchModule } from '@skyux/lookup';\nimport { SkyModalModule } from '@skyux/modals';\n\nimport { AgGridModule } from 'ag-grid-angular';\n\nimport { DataManagerDataGridDocsDemoFiltersModalComponent } from './data-manager-data-grid-docs-demo-filter-modal.component';\nimport { DataManagerDataGridsDocsDemoViewGridComponent } from './data-manager-data-grid-docs-demo-view-grid.component';\nimport { SkyDataManagerDataGridDemoComponent } from './data-manager-data-grid-docs-demo.component';\n\n@NgModule({\n declarations: [\n SkyDataManagerDataGridDemoComponent,\n DataManagerDataGridDocsDemoFiltersModalComponent,\n DataManagerDataGridsDocsDemoViewGridComponent,\n ],\n entryComponents: [DataManagerDataGridDocsDemoFiltersModalComponent],\n exports: [SkyDataManagerDataGridDemoComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyToolbarModule,\n SkySearchModule,\n SkyDataManagerModule,\n SkyAgGridModule,\n AgGridModule,\n SkyDataManagerModule,\n SkyModalModule,\n SkyCheckboxModule,\n ],\n})\nexport class SkyDataManagerDataGridDocsDemoModule {}\n"
|
|
816
836
|
}
|
|
817
837
|
]
|
|
818
838
|
}
|
|
@@ -43,9 +43,9 @@ export class SkyAgGridAdapterService {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
SkyAgGridAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
47
|
-
SkyAgGridAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
46
|
+
SkyAgGridAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridAdapterService, deps: [{ token: i1.SkyCoreAdapterService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
47
|
+
SkyAgGridAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridAdapterService, providedIn: 'root' });
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridAdapterService, decorators: [{
|
|
49
49
|
type: Injectable,
|
|
50
50
|
args: [{
|
|
51
51
|
providedIn: 'root',
|
|
@@ -134,18 +134,17 @@ export class SkyAgGridDataManagerAdapterDirective {
|
|
|
134
134
|
this.changeDetector.markForCheck();
|
|
135
135
|
});
|
|
136
136
|
agGrid.sortChanged.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
|
|
137
|
-
const
|
|
137
|
+
const gridColumnStates = agGrid.columnApi.getColumnState();
|
|
138
138
|
let sortOption;
|
|
139
139
|
/* istanbul ignore else */
|
|
140
|
-
if (
|
|
141
|
-
const
|
|
142
|
-
const activeSortColumn = agGrid.columnApi.getColumn(activeSortModel.colId);
|
|
140
|
+
if (gridColumnStates.length) {
|
|
141
|
+
const activeSortColumnState = gridColumnStates.find((aGridColumnState) => aGridColumnState.sortIndex === 0);
|
|
143
142
|
const dataManagerConfig = this.dataManagerSvc.getCurrentDataManagerConfig();
|
|
144
143
|
/* istanbul ignore else */
|
|
145
|
-
if (dataManagerConfig.sortOptions) {
|
|
144
|
+
if (dataManagerConfig.sortOptions && activeSortColumnState) {
|
|
146
145
|
sortOption = dataManagerConfig.sortOptions.find((option) => {
|
|
147
|
-
return (option.propertyName ===
|
|
148
|
-
option.descending === (
|
|
146
|
+
return (option.propertyName === activeSortColumnState.colId &&
|
|
147
|
+
option.descending === (activeSortColumnState.sort === 'desc'));
|
|
149
148
|
});
|
|
150
149
|
}
|
|
151
150
|
else {
|
|
@@ -192,9 +191,9 @@ export class SkyAgGridDataManagerAdapterDirective {
|
|
|
192
191
|
agGrid.api.deselectAll();
|
|
193
192
|
}
|
|
194
193
|
}
|
|
195
|
-
SkyAgGridDataManagerAdapterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
196
|
-
SkyAgGridDataManagerAdapterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
197
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
194
|
+
SkyAgGridDataManagerAdapterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDataManagerService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
195
|
+
SkyAgGridDataManagerAdapterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridDataManagerAdapterDirective, selector: "[skyAgGridDataManagerAdapter]", inputs: { viewId: "viewId" }, queries: [{ propertyName: "agGridList", predicate: AgGridAngular, descendants: true }, { propertyName: "skyAgGridWrapperList", predicate: SkyAgGridWrapperComponent, descendants: true }], ngImport: i0 });
|
|
196
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, decorators: [{
|
|
198
197
|
type: Directive,
|
|
199
198
|
args: [{
|
|
200
199
|
selector: '[skyAgGridDataManagerAdapter]',
|
|
@@ -208,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
|
208
207
|
type: ContentChildren,
|
|
209
208
|
args: [SkyAgGridWrapperComponent, { descendants: true }]
|
|
210
209
|
}] } });
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZy1ncmlkL3NyYy9tb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGVBQWUsRUFDZixTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRTdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBaUJoRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBRXhFOztHQUVHO0FBSUgsTUFBTSxPQUFPLG9DQUFvQztJQW1CL0MsWUFDVSxjQUFpQyxFQUNqQyxjQUFxQztRQURyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBSnZDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUtuQyxDQUFDO0lBRUcsa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBRWhDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTzthQUNw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LHlCQUF5Qjs0RkFUL0Isb0NBQW9DO2tCQUhoRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwrQkFBK0I7aUJBQzFDOzRJQUtRLE1BQU07c0JBRFosS0FBSztnQkFJQyxVQUFVO3NCQURoQixlQUFlO3VCQUFDLGFBQWEsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSTlDLG9CQUFvQjtzQkFEMUIsZUFBZTt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWwsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5cbmltcG9ydCB7XG4gIENvbHVtbkFwaSxcbiAgQ29sdW1uTW92ZWRFdmVudCxcbiAgRHJhZ1N0YXJ0ZWRFdmVudCxcbiAgRHJhZ1N0b3BwZWRFdmVudCxcbiAgUm93U2VsZWN0ZWRFdmVudCxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5pbXBvcnQge1xuICBTa3lEYXRhTWFuYWdlclNlcnZpY2UsXG4gIFNreURhdGFNYW5hZ2VyU29ydE9wdGlvbixcbiAgU2t5RGF0YU1hbmFnZXJTdGF0ZSxcbiAgU2t5RGF0YVZpZXdDb25maWcsXG59IGZyb20gJ0Bza3l1eC9kYXRhLW1hbmFnZXInO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50JztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWREYXRhTWFuYWdlckFkYXB0ZXJEaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KClcbiAgcHVibGljIHZpZXdJZDogc3RyaW5nO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQWdHcmlkQW5ndWxhciwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwdWJsaWMgYWdHcmlkTGlzdDogUXVlcnlMaXN0PEFnR3JpZEFuZ3VsYXI+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwdWJsaWMgc2t5QWdHcmlkV3JhcHBlckxpc3Q6IFF1ZXJ5TGlzdDxTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50PjtcblxuICBwcml2YXRlIGN1cnJlbnRBZ0dyaWQ6IEFnR3JpZEFuZ3VsYXI7XG4gIHByaXZhdGUgY3VycmVudERhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZTtcbiAgcHJpdmF0ZSBjdXJyZW50U2t5QWdHcmlkV3JhcHBlcjogU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudDtcbiAgcHJpdmF0ZSBkYXRhU3RhdGVTdWI6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSB2aWV3Q29uZmlnOiBTa3lEYXRhVmlld0NvbmZpZztcbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGRhdGFNYW5hZ2VyU3ZjOiBTa3lEYXRhTWFuYWdlclNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhTWFuYWdlclN2Yy5zZXRWaWV3a2VlcGVyQ2xhc3Nlcyh0aGlzLnZpZXdJZCwgWycuYWctaGVhZGVyJ10pO1xuXG4gICAgdGhpcy52aWV3Q29uZmlnID0gdGhpcy5kYXRhTWFuYWdlclN2Yy5nZXRWaWV3QnlJZCh0aGlzLnZpZXdJZCk7XG4gICAgdGhpcy5jaGVja0ZvckFnR3JpZCgpO1xuICAgIHRoaXMuY2hlY2tGb3JTa3lBZ0dyaWRXcmFwcGVyKCk7XG5cbiAgICB0aGlzLmFnR3JpZExpc3QuY2hhbmdlc1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2hlY2tGb3JBZ0dyaWQoKSk7XG5cbiAgICB0aGlzLnNreUFnR3JpZFdyYXBwZXJMaXN0LmNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoZWNrRm9yU2t5QWdHcmlkV3JhcHBlcigpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0ZvckFnR3JpZCgpOiB2b2lkIHtcbiAgICBjb25zdCBhZ0dyaWRDb3VudCA9IHRoaXMuYWdHcmlkTGlzdC5sZW5ndGg7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChhZ0dyaWRDb3VudCA9PT0gMCkge1xuICAgICAgdGhpcy51bnJlZ2lzdGVyQWdHcmlkKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFnR3JpZExpc3QuZmlyc3QgIT09IHRoaXMuY3VycmVudEFnR3JpZCkge1xuICAgICAgdGhpcy5yZWdpc3RlckFnR3JpZCgpO1xuICAgIH1cblxuICAgIGlmIChhZ0dyaWRDb3VudCA+IDEpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ01vcmUgdGhhbiBvbmUgYWctZ3JpZCBjaGlsZCBjb21wb25lbnQgd2FzIGZvdW5kLiBVc2luZyB0aGUgZmlyc3QgYWctR3JpZC4nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tGb3JTa3lBZ0dyaWRXcmFwcGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IHNreUFnR3JpZFdyYXBwZXJDb3VudCA9IHRoaXMuc2t5QWdHcmlkV3JhcHBlckxpc3QubGVuZ3RoO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoc2t5QWdHcmlkV3JhcHBlckNvdW50ID09PSAwKSB7XG4gICAgICB0aGlzLnVucmVnaXN0ZXJTa3lBZ0dyaWRXcmFwcGVyKCk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMuc2t5QWdHcmlkV3JhcHBlckxpc3QuZmlyc3QgIT09IHRoaXMuY3VycmVudFNreUFnR3JpZFdyYXBwZXJcbiAgICApIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJTa3lBZ0dyaWRXcmFwcGVyKCk7XG4gICAgfVxuXG4gICAgaWYgKHNreUFnR3JpZFdyYXBwZXJDb3VudCA+IDEpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ01vcmUgdGhhbiBvbmUgYWctZ3JpZCBjaGlsZCBjb21wb25lbnQgd2FzIGZvdW5kLiBVc2luZyB0aGUgZmlyc3QgYWctR3JpZC4nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdW5yZWdpc3RlckFnR3JpZCgpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRBZ0dyaWQgPSB1bmRlZmluZWQ7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAodGhpcy5kYXRhU3RhdGVTdWIpIHtcbiAgICAgIHRoaXMuZGF0YVN0YXRlU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1bnJlZ2lzdGVyU2t5QWdHcmlkV3JhcHBlcigpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlclNreUFnR3JpZFdyYXBwZXIoKTogdm9pZCB7XG4gICAgdGhpcy51bnJlZ2lzdGVyU2t5QWdHcmlkV3JhcHBlcigpO1xuXG4gICAgdGhpcy5jdXJyZW50U2t5QWdHcmlkV3JhcHBlciA9IHRoaXMuc2t5QWdHcmlkV3JhcHBlckxpc3QuZmlyc3Q7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNreUFnR3JpZFdyYXBwZXIudmlld2tlZXBlckNsYXNzZXMgPSBbXTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJBZ0dyaWQoKTogdm9pZCB7XG4gICAgdGhpcy51bnJlZ2lzdGVyQWdHcmlkKCk7XG5cbiAgICBjb25zdCBhZ0dyaWQgPSB0aGlzLmFnR3JpZExpc3QuZmlyc3Q7XG5cbiAgICB0aGlzLmN1cnJlbnRBZ0dyaWQgPSBhZ0dyaWQ7XG5cbiAgICBhZ0dyaWQuZ3JpZFJlYWR5LnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnZpZXdDb25maWcub25TZWxlY3RBbGxDbGljayA9IHRoaXMuc2VsZWN0QWxsLmJpbmQodGhpcyk7XG4gICAgICB0aGlzLnZpZXdDb25maWcub25DbGVhckFsbENsaWNrID0gdGhpcy5jbGVhckFsbC5iaW5kKHRoaXMpO1xuXG4gICAgICB0aGlzLmRhdGFNYW5hZ2VyU3ZjLnVwZGF0ZVZpZXdDb25maWcodGhpcy52aWV3Q29uZmlnKTtcblxuICAgICAgdGhpcy5kYXRhU3RhdGVTdWIgPSB0aGlzLmRhdGFNYW5hZ2VyU3ZjXG4gICAgICAgIC5nZXREYXRhU3RhdGVVcGRhdGVzKHRoaXMudmlld0NvbmZpZy5pZClcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuY3VycmVudERhdGFTdGF0ZSA9IGRhdGFTdGF0ZTtcbiAgICAgICAgICB0aGlzLmRpc3BsYXlDb2x1bW5zKGRhdGFTdGF0ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICBhZ0dyaWQuYXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcbiAgICB9KTtcblxuICAgIGFnR3JpZC5jb2x1bW5Nb3ZlZFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgKGV2ZW50OiBDb2x1bW5Nb3ZlZEV2ZW50KSA9PlxuICAgICAgICAgICAgIVtcbiAgICAgICAgICAgICAgJ2dyaWRJbml0aWFsaXppbmcnLFxuICAgICAgICAgICAgICAndWlDb2x1bW5SZXNpemVkJyxcbiAgICAgICAgICAgICAgJ3VpQ29sdW1uRHJhZ2dlZCcsXG4gICAgICAgICAgICAgICdhcGknLFxuICAgICAgICAgICAgXS5pbmNsdWRlcyhldmVudC5zb3VyY2UpXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBDb2x1bW5Nb3ZlZEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlQ29sdW1uc0luQ3VycmVudERhdGFTdGF0ZSh2YWx1ZS5jb2x1bW5BcGkpO1xuICAgICAgfSk7XG4gICAgbGV0IGN1cnJlbnRDb2x1bW5zOiBzdHJpbmdbXTtcbiAgICBhZ0dyaWQuZHJhZ1N0YXJ0ZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWU6IERyYWdTdGFydGVkRXZlbnQpID0+IHtcbiAgICAgICAgY3VycmVudENvbHVtbnMgPSB0aGlzLmdldENvbHVtbk9yZGVyKHZhbHVlLmNvbHVtbkFwaSk7XG4gICAgICB9KTtcbiAgICBhZ0dyaWQuZHJhZ1N0b3BwZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWU6IERyYWdTdG9wcGVkRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1ucyA9IHRoaXMuZ2V0Q29sdW1uT3JkZXIodmFsdWUuY29sdW1uQXBpKTtcbiAgICAgICAgY29uc3QgaGFzQ2hhbmdlZCA9IGN1cnJlbnRDb2x1bW5zLmZpbmRJbmRleChcbiAgICAgICAgICAoY29sSWQsIGkpID0+IGNvbElkICE9PSBuZXdDb2x1bW5zW2ldXG4gICAgICAgICk7XG4gICAgICAgIGlmIChoYXNDaGFuZ2VkID4gLTEpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNvbHVtbnNJbkN1cnJlbnREYXRhU3RhdGUodmFsdWUuY29sdW1uQXBpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBhZ0dyaWQucm93U2VsZWN0ZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IFJvd1NlbGVjdGVkRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3Qgcm93ID0gZXZlbnQubm9kZTtcbiAgICAgICAgbGV0IHNlbGVjdGVkSWRzID0gdGhpcy5jdXJyZW50RGF0YVN0YXRlLnNlbGVjdGVkSWRzIHx8IFtdO1xuICAgICAgICBjb25zdCByb3dJbmRleCA9IHNlbGVjdGVkSWRzLmluZGV4T2Yocm93LmRhdGEuaWQpO1xuXG4gICAgICAgIGlmIChyb3cuaXNTZWxlY3RlZCgpICYmIHJvd0luZGV4ID09PSAtMSkge1xuICAgICAgICAgIHNlbGVjdGVkSWRzLnB1c2gocm93LmRhdGEuaWQpO1xuICAgICAgICB9IGVsc2UgaWYgKCFyb3cuaXNTZWxlY3RlZCgpICYmIHJvd0luZGV4ICE9PSAtMSkge1xuICAgICAgICAgIHNlbGVjdGVkSWRzLnNwbGljZShyb3dJbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmN1cnJlbnREYXRhU3RhdGUuc2VsZWN0ZWRJZHMgPSBzZWxlY3RlZElkcztcbiAgICAgICAgdGhpcy5kYXRhTWFuYWdlclN2Yy51cGRhdGVEYXRhU3RhdGUoXG4gICAgICAgICAgdGhpcy5jdXJyZW50RGF0YVN0YXRlLFxuICAgICAgICAgIHRoaXMudmlld0NvbmZpZy5pZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICBhZ0dyaWQuc29ydENoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IGdyaWRTb3J0TW9kZWwgPSBhZ0dyaWQuYXBpLmdldFNvcnRNb2RlbCgpO1xuICAgICAgbGV0IHNvcnRPcHRpb246IFNreURhdGFNYW5hZ2VyU29ydE9wdGlvbjtcblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChncmlkU29ydE1vZGVsLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBhY3RpdmVTb3J0TW9kZWwgPSBncmlkU29ydE1vZGVsWzBdO1xuICAgICAgICBjb25zdCBhY3RpdmVTb3J0Q29sdW1uID0gYWdHcmlkLmNvbHVtbkFwaS5nZXRDb2x1bW4oXG4gICAgICAgICAgYWN0aXZlU29ydE1vZGVsLmNvbElkXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGRhdGFNYW5hZ2VyQ29uZmlnID1cbiAgICAgICAgICB0aGlzLmRhdGFNYW5hZ2VyU3ZjLmdldEN1cnJlbnREYXRhTWFuYWdlckNvbmZpZygpO1xuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChkYXRhTWFuYWdlckNvbmZpZy5zb3J0T3B0aW9ucykge1xuICAgICAgICAgIHNvcnRPcHRpb24gPSBkYXRhTWFuYWdlckNvbmZpZy5zb3J0T3B0aW9ucy5maW5kKFxuICAgICAgICAgICAgKG9wdGlvbjogU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgb3B0aW9uLnByb3BlcnR5TmFtZSA9PT0gYWN0aXZlU29ydENvbHVtbi5nZXRDb2xEZWYoKS5maWVsZCAmJlxuICAgICAgICAgICAgICAgIG9wdGlvbi5kZXNjZW5kaW5nID09PSAoYWN0aXZlU29ydE1vZGVsLnNvcnQgPT09ICdkZXNjJylcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNvcnRPcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuY3VycmVudERhdGFTdGF0ZS5hY3RpdmVTb3J0T3B0aW9uID0gc29ydE9wdGlvbjtcbiAgICAgIHRoaXMuZGF0YU1hbmFnZXJTdmMudXBkYXRlRGF0YVN0YXRlKFxuICAgICAgICB0aGlzLmN1cnJlbnREYXRhU3RhdGUsXG4gICAgICAgIHRoaXMudmlld0NvbmZpZy5pZFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29sdW1uc0luQ3VycmVudERhdGFTdGF0ZShjb2x1bW5BcGk6IENvbHVtbkFwaSkge1xuICAgIGNvbnN0IGNvbHVtbk9yZGVyID0gdGhpcy5nZXRDb2x1bW5PcmRlcihjb2x1bW5BcGkpO1xuXG4gICAgY29uc3Qgdmlld1N0YXRlID0gdGhpcy5jdXJyZW50RGF0YVN0YXRlLmdldFZpZXdTdGF0ZUJ5SWQoXG4gICAgICB0aGlzLnZpZXdDb25maWcuaWRcbiAgICApO1xuICAgIHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMgPSBjb2x1bW5PcmRlcjtcblxuICAgIHRoaXMuZGF0YU1hbmFnZXJTdmMudXBkYXRlRGF0YVN0YXRlKFxuICAgICAgdGhpcy5jdXJyZW50RGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyh0aGlzLnZpZXdDb25maWcuaWQsIHZpZXdTdGF0ZSksXG4gICAgICB0aGlzLnZpZXdDb25maWcuaWRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2x1bW5PcmRlcihjb2x1bW5BcGk6IENvbHVtbkFwaSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gY29sdW1uQXBpXG4gICAgICAuZ2V0QWxsRGlzcGxheWVkVmlydHVhbENvbHVtbnMoKVxuICAgICAgLm1hcCgoY29sKSA9PiBjb2wuZ2V0Q29sRGVmKCkuY29sSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5Q29sdW1ucyhkYXRhU3RhdGU6IFNreURhdGFNYW5hZ2VyU3RhdGUpOiB2b2lkIHtcbiAgICBjb25zdCBhZ0dyaWQgPSB0aGlzLmN1cnJlbnRBZ0dyaWQ7XG4gICAgY29uc3Qgdmlld1N0YXRlID0gZGF0YVN0YXRlLmdldFZpZXdTdGF0ZUJ5SWQodGhpcy52aWV3Q29uZmlnLmlkKTtcbiAgICBsZXQgZGlzcGxheWVkQ29sdW1uSWRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzKSB7XG4gICAgICBkaXNwbGF5ZWRDb2x1bW5JZHMgPSB2aWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzO1xuICAgIH1cbiAgICBjb25zdCBjb2x1bW5zID0gYWdHcmlkLmNvbHVtbkFwaS5nZXRBbGxDb2x1bW5zKCk7XG5cbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5zKSB7XG4gICAgICBjb25zdCBjb2xJZCA9IGNvbHVtbi5nZXRDb2xJZCgpO1xuICAgICAgY29uc3QgY29sSW5kZXggPSBkaXNwbGF5ZWRDb2x1bW5JZHMuaW5kZXhPZihjb2xJZCk7XG5cbiAgICAgIGFnR3JpZC5jb2x1bW5BcGkuc2V0Q29sdW1uVmlzaWJsZShjb2xJZCwgY29sSW5kZXggIT09IC0xKTtcbiAgICAgIGFnR3JpZC5jb2x1bW5BcGkubW92ZUNvbHVtbihjb2xJZCwgY29sSW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIGNvbnN0IGFnR3JpZCA9IHRoaXMuYWdHcmlkTGlzdC5maXJzdDtcbiAgICBhZ0dyaWQuYXBpLnNlbGVjdEFsbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckFsbCgpOiB2b2lkIHtcbiAgICBjb25zdCBhZ0dyaWQgPSB0aGlzLmFnR3JpZExpc3QuZmlyc3Q7XG4gICAgYWdHcmlkLmFwaS5kZXNlbGVjdEFsbCgpO1xuICB9XG59XG4iXX0=
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZy1ncmlkL3NyYy9tb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGVBQWUsRUFDZixTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRTdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBa0JoRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBRXhFOztHQUVHO0FBSUgsTUFBTSxPQUFPLG9DQUFvQztJQW1CL0MsWUFDVSxjQUFpQyxFQUNqQyxjQUFxQztRQURyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBSnZDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUtuQyxDQUFDO0lBRUcsa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBRWhDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTzthQUNw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L0Isb0NBQW9DO2tCQUhoRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwrQkFBK0I7aUJBQzFDOzRJQUtRLE1BQU07c0JBRFosS0FBSztnQkFJQyxVQUFVO3NCQURoQixlQUFlO3VCQUFDLGFBQWEsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSTlDLG9CQUFvQjtzQkFEMUIsZUFBZTt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWwsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5cbmltcG9ydCB7XG4gIENvbHVtbkFwaSxcbiAgQ29sdW1uTW92ZWRFdmVudCxcbiAgQ29sdW1uU3RhdGUsXG4gIERyYWdTdGFydGVkRXZlbnQsXG4gIERyYWdTdG9wcGVkRXZlbnQsXG4gIFJvd1NlbGVjdGVkRXZlbnQsXG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHtcbiAgU2t5RGF0YU1hbmFnZXJTZXJ2aWNlLFxuICBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24sXG4gIFNreURhdGFNYW5hZ2VyU3RhdGUsXG4gIFNreURhdGFWaWV3Q29uZmlnLFxufSBmcm9tICdAc2t5dXgvZGF0YS1tYW5hZ2VyJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lBZ0dyaWREYXRhTWFuYWdlckFkYXB0ZXJdJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkRGF0YU1hbmFnZXJBZGFwdGVyRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2aWV3SWQ6IHN0cmluZztcblxuICBAQ29udGVudENoaWxkcmVuKEFnR3JpZEFuZ3VsYXIsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHVibGljIGFnR3JpZExpc3Q6IFF1ZXJ5TGlzdDxBZ0dyaWRBbmd1bGFyPjtcblxuICBAQ29udGVudENoaWxkcmVuKFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHVibGljIHNreUFnR3JpZFdyYXBwZXJMaXN0OiBRdWVyeUxpc3Q8U2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBjdXJyZW50QWdHcmlkOiBBZ0dyaWRBbmd1bGFyO1xuICBwcml2YXRlIGN1cnJlbnREYXRhU3RhdGU6IFNreURhdGFNYW5hZ2VyU3RhdGU7XG4gIHByaXZhdGUgY3VycmVudFNreUFnR3JpZFdyYXBwZXI6IFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQ7XG4gIHByaXZhdGUgZGF0YVN0YXRlU3ViOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgdmlld0NvbmZpZzogU2t5RGF0YVZpZXdDb25maWc7XG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBkYXRhTWFuYWdlclN2YzogU2t5RGF0YU1hbmFnZXJTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YU1hbmFnZXJTdmMuc2V0Vmlld2tlZXBlckNsYXNzZXModGhpcy52aWV3SWQsIFsnLmFnLWhlYWRlciddKTtcblxuICAgIHRoaXMudmlld0NvbmZpZyA9IHRoaXMuZGF0YU1hbmFnZXJTdmMuZ2V0Vmlld0J5SWQodGhpcy52aWV3SWQpO1xuICAgIHRoaXMuY2hlY2tGb3JBZ0dyaWQoKTtcbiAgICB0aGlzLmNoZWNrRm9yU2t5QWdHcmlkV3JhcHBlcigpO1xuXG4gICAgdGhpcy5hZ0dyaWRMaXN0LmNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoZWNrRm9yQWdHcmlkKCkpO1xuXG4gICAgdGhpcy5za3lBZ0dyaWRXcmFwcGVyTGlzdC5jaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jaGVja0ZvclNreUFnR3JpZFdyYXBwZXIoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tGb3JBZ0dyaWQoKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkQ291bnQgPSB0aGlzLmFnR3JpZExpc3QubGVuZ3RoO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoYWdHcmlkQ291bnQgPT09IDApIHtcbiAgICAgIHRoaXMudW5yZWdpc3RlckFnR3JpZCgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hZ0dyaWRMaXN0LmZpcnN0ICE9PSB0aGlzLmN1cnJlbnRBZ0dyaWQpIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJBZ0dyaWQoKTtcbiAgICB9XG5cbiAgICBpZiAoYWdHcmlkQ291bnQgPiAxKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdNb3JlIHRoYW4gb25lIGFnLWdyaWQgY2hpbGQgY29tcG9uZW50IHdhcyBmb3VuZC4gVXNpbmcgdGhlIGZpcnN0IGFnLUdyaWQuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRm9yU2t5QWdHcmlkV3JhcHBlcigpOiB2b2lkIHtcbiAgICBjb25zdCBza3lBZ0dyaWRXcmFwcGVyQ291bnQgPSB0aGlzLnNreUFnR3JpZFdyYXBwZXJMaXN0Lmxlbmd0aDtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHNreUFnR3JpZFdyYXBwZXJDb3VudCA9PT0gMCkge1xuICAgICAgdGhpcy51bnJlZ2lzdGVyU2t5QWdHcmlkV3JhcHBlcigpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLnNreUFnR3JpZFdyYXBwZXJMaXN0LmZpcnN0ICE9PSB0aGlzLmN1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyXG4gICAgKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyU2t5QWdHcmlkV3JhcHBlcigpO1xuICAgIH1cblxuICAgIGlmIChza3lBZ0dyaWRXcmFwcGVyQ291bnQgPiAxKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdNb3JlIHRoYW4gb25lIGFnLWdyaWQgY2hpbGQgY29tcG9uZW50IHdhcyBmb3VuZC4gVXNpbmcgdGhlIGZpcnN0IGFnLUdyaWQuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVucmVnaXN0ZXJBZ0dyaWQoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50QWdHcmlkID0gdW5kZWZpbmVkO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKHRoaXMuZGF0YVN0YXRlU3ViKSB7XG4gICAgICB0aGlzLmRhdGFTdGF0ZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdW5yZWdpc3RlclNreUFnR3JpZFdyYXBwZXIoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50U2t5QWdHcmlkV3JhcHBlciA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJTa3lBZ0dyaWRXcmFwcGVyKCk6IHZvaWQge1xuICAgIHRoaXMudW5yZWdpc3RlclNreUFnR3JpZFdyYXBwZXIoKTtcblxuICAgIHRoaXMuY3VycmVudFNreUFnR3JpZFdyYXBwZXIgPSB0aGlzLnNreUFnR3JpZFdyYXBwZXJMaXN0LmZpcnN0O1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jdXJyZW50U2t5QWdHcmlkV3JhcHBlcikge1xuICAgICAgICB0aGlzLmN1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyLnZpZXdrZWVwZXJDbGFzc2VzID0gW107XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyQWdHcmlkKCk6IHZvaWQge1xuICAgIHRoaXMudW5yZWdpc3RlckFnR3JpZCgpO1xuXG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy5hZ0dyaWRMaXN0LmZpcnN0O1xuXG4gICAgdGhpcy5jdXJyZW50QWdHcmlkID0gYWdHcmlkO1xuXG4gICAgYWdHcmlkLmdyaWRSZWFkeS5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy52aWV3Q29uZmlnLm9uU2VsZWN0QWxsQ2xpY2sgPSB0aGlzLnNlbGVjdEFsbC5iaW5kKHRoaXMpO1xuICAgICAgdGhpcy52aWV3Q29uZmlnLm9uQ2xlYXJBbGxDbGljayA9IHRoaXMuY2xlYXJBbGwuYmluZCh0aGlzKTtcblxuICAgICAgdGhpcy5kYXRhTWFuYWdlclN2Yy51cGRhdGVWaWV3Q29uZmlnKHRoaXMudmlld0NvbmZpZyk7XG5cbiAgICAgIHRoaXMuZGF0YVN0YXRlU3ViID0gdGhpcy5kYXRhTWFuYWdlclN2Y1xuICAgICAgICAuZ2V0RGF0YVN0YXRlVXBkYXRlcyh0aGlzLnZpZXdDb25maWcuaWQpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChkYXRhU3RhdGU6IFNreURhdGFNYW5hZ2VyU3RhdGUpID0+IHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnREYXRhU3RhdGUgPSBkYXRhU3RhdGU7XG4gICAgICAgICAgdGhpcy5kaXNwbGF5Q29sdW1ucyhkYXRhU3RhdGUpO1xuICAgICAgICB9KTtcblxuICAgICAgYWdHcmlkLmFwaS5zaXplQ29sdW1uc1RvRml0KCk7XG4gICAgfSk7XG5cbiAgICBhZ0dyaWQuY29sdW1uTW92ZWRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIChldmVudDogQ29sdW1uTW92ZWRFdmVudCkgPT5cbiAgICAgICAgICAgICFbXG4gICAgICAgICAgICAgICdncmlkSW5pdGlhbGl6aW5nJyxcbiAgICAgICAgICAgICAgJ3VpQ29sdW1uUmVzaXplZCcsXG4gICAgICAgICAgICAgICd1aUNvbHVtbkRyYWdnZWQnLFxuICAgICAgICAgICAgICAnYXBpJyxcbiAgICAgICAgICAgIF0uaW5jbHVkZXMoZXZlbnQuc291cmNlKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogQ29sdW1uTW92ZWRFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbHVtbnNJbkN1cnJlbnREYXRhU3RhdGUodmFsdWUuY29sdW1uQXBpKTtcbiAgICAgIH0pO1xuICAgIGxldCBjdXJyZW50Q29sdW1uczogc3RyaW5nW107XG4gICAgYWdHcmlkLmRyYWdTdGFydGVkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBEcmFnU3RhcnRlZEV2ZW50KSA9PiB7XG4gICAgICAgIGN1cnJlbnRDb2x1bW5zID0gdGhpcy5nZXRDb2x1bW5PcmRlcih2YWx1ZS5jb2x1bW5BcGkpO1xuICAgICAgfSk7XG4gICAgYWdHcmlkLmRyYWdTdG9wcGVkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBEcmFnU3RvcHBlZEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbnMgPSB0aGlzLmdldENvbHVtbk9yZGVyKHZhbHVlLmNvbHVtbkFwaSk7XG4gICAgICAgIGNvbnN0IGhhc0NoYW5nZWQgPSBjdXJyZW50Q29sdW1ucy5maW5kSW5kZXgoXG4gICAgICAgICAgKGNvbElkLCBpKSA9PiBjb2xJZCAhPT0gbmV3Q29sdW1uc1tpXVxuICAgICAgICApO1xuICAgICAgICBpZiAoaGFzQ2hhbmdlZCA+IC0xKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVDb2x1bW5zSW5DdXJyZW50RGF0YVN0YXRlKHZhbHVlLmNvbHVtbkFwaSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgYWdHcmlkLnJvd1NlbGVjdGVkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBSb3dTZWxlY3RlZEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHJvdyA9IGV2ZW50Lm5vZGU7XG4gICAgICAgIGxldCBzZWxlY3RlZElkcyA9IHRoaXMuY3VycmVudERhdGFTdGF0ZS5zZWxlY3RlZElkcyB8fCBbXTtcbiAgICAgICAgY29uc3Qgcm93SW5kZXggPSBzZWxlY3RlZElkcy5pbmRleE9mKHJvdy5kYXRhLmlkKTtcblxuICAgICAgICBpZiAocm93LmlzU2VsZWN0ZWQoKSAmJiByb3dJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICBzZWxlY3RlZElkcy5wdXNoKHJvdy5kYXRhLmlkKTtcbiAgICAgICAgfSBlbHNlIGlmICghcm93LmlzU2VsZWN0ZWQoKSAmJiByb3dJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICBzZWxlY3RlZElkcy5zcGxpY2Uocm93SW5kZXgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdXJyZW50RGF0YVN0YXRlLnNlbGVjdGVkSWRzID0gc2VsZWN0ZWRJZHM7XG4gICAgICAgIHRoaXMuZGF0YU1hbmFnZXJTdmMudXBkYXRlRGF0YVN0YXRlKFxuICAgICAgICAgIHRoaXMuY3VycmVudERhdGFTdGF0ZSxcbiAgICAgICAgICB0aGlzLnZpZXdDb25maWcuaWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgYWdHcmlkLnNvcnRDaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBncmlkQ29sdW1uU3RhdGVzOiBDb2x1bW5TdGF0ZVtdID0gYWdHcmlkLmNvbHVtbkFwaS5nZXRDb2x1bW5TdGF0ZSgpO1xuICAgICAgbGV0IHNvcnRPcHRpb246IFNreURhdGFNYW5hZ2VyU29ydE9wdGlvbjtcblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChncmlkQ29sdW1uU3RhdGVzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBhY3RpdmVTb3J0Q29sdW1uU3RhdGUgPSBncmlkQ29sdW1uU3RhdGVzLmZpbmQoXG4gICAgICAgICAgKGFHcmlkQ29sdW1uU3RhdGUpID0+IGFHcmlkQ29sdW1uU3RhdGUuc29ydEluZGV4ID09PSAwXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgZGF0YU1hbmFnZXJDb25maWcgPVxuICAgICAgICAgIHRoaXMuZGF0YU1hbmFnZXJTdmMuZ2V0Q3VycmVudERhdGFNYW5hZ2VyQ29uZmlnKCk7XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGRhdGFNYW5hZ2VyQ29uZmlnLnNvcnRPcHRpb25zICYmIGFjdGl2ZVNvcnRDb2x1bW5TdGF0ZSkge1xuICAgICAgICAgIHNvcnRPcHRpb24gPSBkYXRhTWFuYWdlckNvbmZpZy5zb3J0T3B0aW9ucy5maW5kKFxuICAgICAgICAgICAgKG9wdGlvbjogU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgb3B0aW9uLnByb3BlcnR5TmFtZSA9PT0gYWN0aXZlU29ydENvbHVtblN0YXRlLmNvbElkICYmXG4gICAgICAgICAgICAgICAgb3B0aW9uLmRlc2NlbmRpbmcgPT09IChhY3RpdmVTb3J0Q29sdW1uU3RhdGUuc29ydCA9PT0gJ2Rlc2MnKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc29ydE9wdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5jdXJyZW50RGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb24gPSBzb3J0T3B0aW9uO1xuICAgICAgdGhpcy5kYXRhTWFuYWdlclN2Yy51cGRhdGVEYXRhU3RhdGUoXG4gICAgICAgIHRoaXMuY3VycmVudERhdGFTdGF0ZSxcbiAgICAgICAgdGhpcy52aWV3Q29uZmlnLmlkXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb2x1bW5zSW5DdXJyZW50RGF0YVN0YXRlKGNvbHVtbkFwaTogQ29sdW1uQXBpKSB7XG4gICAgY29uc3QgY29sdW1uT3JkZXIgPSB0aGlzLmdldENvbHVtbk9yZGVyKGNvbHVtbkFwaSk7XG5cbiAgICBjb25zdCB2aWV3U3RhdGUgPSB0aGlzLmN1cnJlbnREYXRhU3RhdGUuZ2V0Vmlld1N0YXRlQnlJZChcbiAgICAgIHRoaXMudmlld0NvbmZpZy5pZFxuICAgICk7XG4gICAgdmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcyA9IGNvbHVtbk9yZGVyO1xuXG4gICAgdGhpcy5kYXRhTWFuYWdlclN2Yy51cGRhdGVEYXRhU3RhdGUoXG4gICAgICB0aGlzLmN1cnJlbnREYXRhU3RhdGUuYWRkT3JVcGRhdGVWaWV3KHRoaXMudmlld0NvbmZpZy5pZCwgdmlld1N0YXRlKSxcbiAgICAgIHRoaXMudmlld0NvbmZpZy5pZFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldENvbHVtbk9yZGVyKGNvbHVtbkFwaTogQ29sdW1uQXBpKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBjb2x1bW5BcGlcbiAgICAgIC5nZXRBbGxEaXNwbGF5ZWRWaXJ0dWFsQ29sdW1ucygpXG4gICAgICAubWFwKChjb2wpID0+IGNvbC5nZXRDb2xEZWYoKS5jb2xJZCk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BsYXlDb2x1bW5zKGRhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSk6IHZvaWQge1xuICAgIGNvbnN0IGFnR3JpZCA9IHRoaXMuY3VycmVudEFnR3JpZDtcbiAgICBjb25zdCB2aWV3U3RhdGUgPSBkYXRhU3RhdGUuZ2V0Vmlld1N0YXRlQnlJZCh0aGlzLnZpZXdDb25maWcuaWQpO1xuICAgIGxldCBkaXNwbGF5ZWRDb2x1bW5JZHM6IHN0cmluZ1tdID0gW107XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMpIHtcbiAgICAgIGRpc3BsYXllZENvbHVtbklkcyA9IHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHM7XG4gICAgfVxuICAgIGNvbnN0IGNvbHVtbnMgPSBhZ0dyaWQuY29sdW1uQXBpLmdldEFsbENvbHVtbnMoKTtcblxuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIGNvbHVtbnMpIHtcbiAgICAgIGNvbnN0IGNvbElkID0gY29sdW1uLmdldENvbElkKCk7XG4gICAgICBjb25zdCBjb2xJbmRleCA9IGRpc3BsYXllZENvbHVtbklkcy5pbmRleE9mKGNvbElkKTtcblxuICAgICAgYWdHcmlkLmNvbHVtbkFwaS5zZXRDb2x1bW5WaXNpYmxlKGNvbElkLCBjb2xJbmRleCAhPT0gLTEpO1xuICAgICAgYWdHcmlkLmNvbHVtbkFwaS5tb3ZlQ29sdW1uKGNvbElkLCBjb2xJbmRleCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy5hZ0dyaWRMaXN0LmZpcnN0O1xuICAgIGFnR3JpZC5hcGkuc2VsZWN0QWxsKCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIGNvbnN0IGFnR3JpZCA9IHRoaXMuYWdHcmlkTGlzdC5maXJzdDtcbiAgICBhZ0dyaWQuYXBpLmRlc2VsZWN0QWxsKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -8,8 +8,8 @@ import * as i2 from "@angular/common";
|
|
|
8
8
|
*/
|
|
9
9
|
export class SkyAgGridRowDeleteComponent {
|
|
10
10
|
}
|
|
11
|
-
SkyAgGridRowDeleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
12
|
-
SkyAgGridRowDeleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
11
|
+
SkyAgGridRowDeleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridRowDeleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
SkyAgGridRowDeleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridRowDeleteComponent, selector: "ng-component", viewQueries: [{ propertyName: "inlineDeleteTemplateRef", first: true, predicate: ["inlineDeleteTemplateRef"], descendants: true, read: TemplateRef }, { propertyName: "inlineDeleteRefs", predicate: ["inlineDeleteRef"], descendants: true }], ngImport: i0, template: `
|
|
13
13
|
<ng-template
|
|
14
14
|
let-row
|
|
15
15
|
let-tableWidth="tableWidth()"
|
|
@@ -36,7 +36,7 @@ SkyAgGridRowDeleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
|
|
|
36
36
|
</div>
|
|
37
37
|
</ng-template>
|
|
38
38
|
`, isInline: true, components: [{ type: i1.λ8, selector: "sky-inline-delete", inputs: ["pending"], outputs: ["cancelTriggered", "deleteTriggered"] }], directives: [{ type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridRowDeleteComponent, decorators: [{
|
|
40
40
|
type: Component,
|
|
41
41
|
args: [{
|
|
42
42
|
template: `
|
|
@@ -208,9 +208,9 @@ export class SkyAgGridRowDeleteDirective {
|
|
|
208
208
|
this.changeDetector.markForCheck();
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
|
-
SkyAgGridRowDeleteDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
212
|
-
SkyAgGridRowDeleteDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
213
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
211
|
+
SkyAgGridRowDeleteDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridRowDeleteDirective, deps: [{ token: i1.SkyAffixService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.ComponentFactoryResolver }, { token: i1.SkyOverlayService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
212
|
+
SkyAgGridRowDeleteDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridRowDeleteDirective, selector: "[skyAgGridRowDelete]", inputs: { rowDeleteIds: "rowDeleteIds" }, outputs: { rowDeleteCancel: "rowDeleteCancel", rowDeleteConfirm: "rowDeleteConfirm", rowDeleteIdsChange: "rowDeleteIdsChange" }, queries: [{ propertyName: "agGrid", first: true, predicate: AgGridAngular, descendants: true }], ngImport: i0 });
|
|
213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridRowDeleteDirective, decorators: [{
|
|
214
214
|
type: Directive,
|
|
215
215
|
args: [{
|
|
216
216
|
selector: '[skyAgGridRowDelete]',
|
|
@@ -77,9 +77,9 @@ export class SkyAgGridWrapperComponent {
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
SkyAgGridWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
81
|
-
SkyAgGridWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
80
|
+
SkyAgGridWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridWrapperComponent, deps: [{ token: i1.SkyAgGridAdapterService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
+
SkyAgGridWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridWrapperComponent, selector: "sky-ag-grid-wrapper", queries: [{ propertyName: "agGrid", first: true, predicate: AgGridAngular, descendants: true, static: true }], ngImport: i0, template: "<span\n class=\"nav-anchor\"\n tabindex=\"0\"\n [id]=\"beforeAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n<div\n class=\"sky-ag-grid\"\n tabindex=\"0\"\n [id]=\"gridId\"\n [skyViewkeeper]=\"viewkeeperClasses\"\n (keydown)=\"onGridKeydown($event)\"\n>\n <ng-content></ng-content>\n</div>\n<span\n tabindex=\"0\"\n class=\"nav-anchor\"\n [id]=\"afterAnchorId\"\n (focusin)=\"onAnchorFocus($event)\"\n>\n</span>\n", directives: [{ type: i2.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridWrapperComponent, decorators: [{
|
|
83
83
|
type: Component,
|
|
84
84
|
args: [{
|
|
85
85
|
selector: 'sky-ag-grid-wrapper',
|
|
@@ -31,8 +31,8 @@ import { SkyAgGridCellValidatorModule } from './cell-validator/ag-grid-cell-vali
|
|
|
31
31
|
import * as i0 from "@angular/core";
|
|
32
32
|
export class SkyAgGridModule {
|
|
33
33
|
}
|
|
34
|
-
SkyAgGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
35
|
-
SkyAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
34
|
+
SkyAgGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
35
|
+
SkyAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridModule, declarations: [SkyAgGridDataManagerAdapterDirective,
|
|
36
36
|
SkyAgGridRowDeleteComponent,
|
|
37
37
|
SkyAgGridRowDeleteDirective,
|
|
38
38
|
SkyAgGridWrapperComponent], imports: [AgGridModule,
|
|
@@ -54,7 +54,7 @@ SkyAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
|
|
|
54
54
|
SkyAgGridRowDeleteComponent,
|
|
55
55
|
SkyAgGridRowDeleteDirective,
|
|
56
56
|
SkyAgGridWrapperComponent] });
|
|
57
|
-
SkyAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.
|
|
57
|
+
SkyAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridModule, imports: [[
|
|
58
58
|
AgGridModule,
|
|
59
59
|
CommonModule,
|
|
60
60
|
SkyAgGridCellEditorAutocompleteModule,
|
|
@@ -72,7 +72,7 @@ SkyAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
|
|
|
72
72
|
SkyInlineDeleteModule,
|
|
73
73
|
SkyViewkeeperModule,
|
|
74
74
|
]] });
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridModule, decorators: [{
|
|
76
76
|
type: NgModule,
|
|
77
77
|
args: [{
|
|
78
78
|
declarations: [
|