@skyux/ag-grid 5.7.0 → 6.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +5 -5
- package/esm2020/index.mjs +28 -0
- package/esm2020/lib/modules/ag-grid/ag-grid-adapter.service.mjs +55 -0
- package/esm2020/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.mjs +211 -0
- package/esm2020/lib/modules/ag-grid/ag-grid-row-delete.component.mjs +77 -0
- package/esm2020/lib/modules/ag-grid/ag-grid-row-delete.directive.mjs +229 -0
- package/esm2020/lib/modules/ag-grid/ag-grid-wrapper.component.mjs +92 -0
- package/esm2020/lib/modules/ag-grid/ag-grid.module.mjs +101 -0
- package/esm2020/lib/modules/ag-grid/ag-grid.service.mjs +408 -0
- package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.mjs +36 -0
- package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.mjs +20 -0
- package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.mjs +52 -0
- package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.module.mjs +20 -0
- package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.mjs +70 -0
- package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.module.mjs +19 -0
- package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.mjs +68 -0
- package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.mjs +38 -0
- package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.mjs +44 -0
- package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.module.mjs +19 -0
- package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.mjs +44 -0
- package/esm2020/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.module.mjs +19 -0
- package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.mjs +39 -0
- package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.mjs +48 -0
- package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.mjs +47 -0
- package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.mjs +29 -0
- package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.mjs +19 -0
- package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.mjs +62 -0
- package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module.mjs +20 -0
- package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.mjs +36 -0
- package/esm2020/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module.mjs +18 -0
- package/esm2020/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.mjs +78 -0
- package/esm2020/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator.module.mjs +20 -0
- package/esm2020/lib/modules/ag-grid/types/ag-grid-row-delete-cancel-args.mjs +2 -0
- package/esm2020/lib/modules/ag-grid/types/ag-grid-row-delete-config.mjs +2 -0
- package/esm2020/lib/modules/ag-grid/types/ag-grid-row-delete-confirm-args.mjs +2 -0
- package/esm2020/lib/modules/ag-grid/types/ag-grid-row-delete-contents.mjs +2 -0
- package/esm2020/lib/modules/ag-grid/types/autocomplete-properties.mjs +2 -0
- package/esm2020/lib/modules/ag-grid/types/cell-class.mjs +17 -0
- package/esm2020/lib/modules/ag-grid/types/cell-editor-autocomplete-params.mjs +2 -0
- package/esm2020/lib/modules/ag-grid/types/cell-editor-currency-params.mjs +2 -0
- package/esm2020/lib/modules/ag-grid/types/cell-editor-datepicker-params.mjs +2 -0
- package/esm2020/lib/modules/ag-grid/types/cell-editor-lookup-params.mjs +2 -0
- package/esm2020/lib/modules/ag-grid/types/cell-renderer-currency-params.mjs +2 -0
- package/esm2020/lib/modules/ag-grid/types/cell-renderer-lookup-params.mjs +2 -0
- package/esm2020/lib/modules/ag-grid/types/cell-renderer-validator-params.mjs +2 -0
- package/esm2020/lib/modules/ag-grid/types/cell-type.mjs +93 -0
- package/esm2020/lib/modules/ag-grid/types/currency-properties.mjs +2 -0
- package/esm2020/lib/modules/ag-grid/types/datepicker-properties.mjs +2 -0
- package/esm2020/lib/modules/ag-grid/types/header-class.mjs +8 -0
- package/esm2020/lib/modules/ag-grid/types/lookup-properties.mjs +26 -0
- package/esm2020/lib/modules/ag-grid/types/sky-grid-options.mjs +2 -0
- package/esm2020/lib/modules/ag-grid/types/validator-options.mjs +2 -0
- package/esm2020/lib/modules/shared/sky-ag-grid-resources.module.mjs +71 -0
- package/esm2020/skyux-ag-grid.mjs +5 -0
- package/fesm2015/{skyux-ag-grid.js → skyux-ag-grid.mjs} +176 -248
- package/fesm2015/skyux-ag-grid.mjs.map +1 -0
- package/fesm2020/skyux-ag-grid.mjs +2084 -0
- package/fesm2020/skyux-ag-grid.mjs.map +1 -0
- package/package.json +33 -20
- package/bundles/skyux-ag-grid.umd.js +0 -2569
- package/esm2015/index.js +0 -28
- package/esm2015/index.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/ag-grid-adapter.service.js +0 -55
- package/esm2015/lib/modules/ag-grid/ag-grid-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.js +0 -211
- package/esm2015/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/ag-grid-row-delete.component.js +0 -77
- package/esm2015/lib/modules/ag-grid/ag-grid-row-delete.component.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/ag-grid-row-delete.directive.js +0 -230
- package/esm2015/lib/modules/ag-grid/ag-grid-row-delete.directive.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/ag-grid-wrapper.component.js +0 -96
- package/esm2015/lib/modules/ag-grid/ag-grid-wrapper.component.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/ag-grid.module.js +0 -122
- package/esm2015/lib/modules/ag-grid/ag-grid.module.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/ag-grid.service.js +0 -355
- package/esm2015/lib/modules/ag-grid/ag-grid.service.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.js +0 -41
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.js +0 -20
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.js +0 -57
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.module.js +0 -20
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.module.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.js +0 -77
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.module.js +0 -19
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.module.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.js +0 -74
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.js +0 -38
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.js +0 -49
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.module.js +0 -19
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.module.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.js +0 -49
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.module.js +0 -19
- package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.module.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.js +0 -43
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.js +0 -54
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.js +0 -47
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js +0 -35
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js +0 -19
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.js +0 -68
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module.js +0 -20
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.js +0 -41
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module.js +0 -18
- package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js +0 -83
- package/esm2015/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator.module.js +0 -20
- package/esm2015/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator.module.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/ag-grid-row-delete-cancel-args.js +0 -2
- package/esm2015/lib/modules/ag-grid/types/ag-grid-row-delete-cancel-args.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/ag-grid-row-delete-config.js +0 -2
- package/esm2015/lib/modules/ag-grid/types/ag-grid-row-delete-config.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/ag-grid-row-delete-confirm-args.js +0 -2
- package/esm2015/lib/modules/ag-grid/types/ag-grid-row-delete-confirm-args.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/ag-grid-row-delete-contents.js +0 -2
- package/esm2015/lib/modules/ag-grid/types/ag-grid-row-delete-contents.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/autocomplete-properties.js +0 -2
- package/esm2015/lib/modules/ag-grid/types/autocomplete-properties.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/cell-class.js +0 -17
- package/esm2015/lib/modules/ag-grid/types/cell-class.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/cell-editor-autocomplete-params.js +0 -2
- package/esm2015/lib/modules/ag-grid/types/cell-editor-autocomplete-params.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/cell-editor-currency-params.js +0 -2
- package/esm2015/lib/modules/ag-grid/types/cell-editor-currency-params.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/cell-editor-datepicker-params.js +0 -2
- package/esm2015/lib/modules/ag-grid/types/cell-editor-datepicker-params.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/cell-editor-lookup-params.js +0 -2
- package/esm2015/lib/modules/ag-grid/types/cell-editor-lookup-params.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/cell-renderer-currency-params.js +0 -2
- package/esm2015/lib/modules/ag-grid/types/cell-renderer-currency-params.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/cell-renderer-lookup-params.js +0 -2
- package/esm2015/lib/modules/ag-grid/types/cell-renderer-lookup-params.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/cell-renderer-validator-params.js +0 -2
- package/esm2015/lib/modules/ag-grid/types/cell-renderer-validator-params.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/cell-type.js +0 -93
- package/esm2015/lib/modules/ag-grid/types/cell-type.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/currency-properties.js +0 -2
- package/esm2015/lib/modules/ag-grid/types/currency-properties.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/datepicker-properties.js +0 -2
- package/esm2015/lib/modules/ag-grid/types/datepicker-properties.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/header-class.js +0 -8
- package/esm2015/lib/modules/ag-grid/types/header-class.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/lookup-properties.js +0 -26
- package/esm2015/lib/modules/ag-grid/types/lookup-properties.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/sky-grid-options.js +0 -2
- package/esm2015/lib/modules/ag-grid/types/sky-grid-options.js.map +0 -1
- package/esm2015/lib/modules/ag-grid/types/validator-options.js +0 -2
- package/esm2015/lib/modules/ag-grid/types/validator-options.js.map +0 -1
- package/esm2015/lib/modules/shared/sky-ag-grid-resources.module.js +0 -71
- package/esm2015/lib/modules/shared/sky-ag-grid-resources.module.js.map +0 -1
- package/esm2015/skyux-ag-grid.js +0 -5
- package/esm2015/skyux-ag-grid.js.map +0 -1
- package/fesm2015/skyux-ag-grid.js.map +0 -1
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { ChangeDetectorRef, ComponentFactoryResolver, ContentChild, Directive, ElementRef, EventEmitter, Input, Output, ViewContainerRef, } from '@angular/core';
|
|
2
|
+
import { SkyAffixAutoFitContext, SkyAffixService, SkyOverlayService, } from '@skyux/core';
|
|
3
|
+
import { AgGridAngular } from 'ag-grid-angular';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import { takeUntil } from 'rxjs/operators';
|
|
6
|
+
import { SkyAgGridRowDeleteComponent } from './ag-grid-row-delete.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@skyux/core";
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export class SkyAgGridRowDeleteDirective {
|
|
13
|
+
constructor(affixService, changeDetector, elementRef, resolver, overlayService, viewContainerRef) {
|
|
14
|
+
this.affixService = affixService;
|
|
15
|
+
this.changeDetector = changeDetector;
|
|
16
|
+
this.elementRef = elementRef;
|
|
17
|
+
this.resolver = resolver;
|
|
18
|
+
this.overlayService = overlayService;
|
|
19
|
+
this.viewContainerRef = viewContainerRef;
|
|
20
|
+
/**
|
|
21
|
+
* Emits a `SkyAgGridRowDeleteCancelArgs` object when a row's inline delete is cancelled.
|
|
22
|
+
*/
|
|
23
|
+
this.rowDeleteCancel = new EventEmitter();
|
|
24
|
+
/**
|
|
25
|
+
* Emits a `SkyAgGridRowDeleteConfirmArgs` object when a row's inline delete is confirmed.
|
|
26
|
+
*/
|
|
27
|
+
this.rowDeleteConfirm = new EventEmitter();
|
|
28
|
+
/**
|
|
29
|
+
* Emits when the list of ids of the data in the rows where inline deletes are shown changes.
|
|
30
|
+
*/
|
|
31
|
+
this.rowDeleteIdsChange = new EventEmitter();
|
|
32
|
+
this.rowDeleteConfigs = [];
|
|
33
|
+
this.ngUnsubscribe = new Subject();
|
|
34
|
+
this.rowDeleteContents = {};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Specifies the ids of the data in the rows on which inline delete's should be shown.
|
|
38
|
+
*/
|
|
39
|
+
set rowDeleteIds(value) {
|
|
40
|
+
this._rowDeleteIds = value;
|
|
41
|
+
if (!value) {
|
|
42
|
+
for (const config of this.rowDeleteConfigs) {
|
|
43
|
+
this.destroyRowDelete(config.id);
|
|
44
|
+
}
|
|
45
|
+
this.changeDetector.markForCheck();
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
for (const id of value) {
|
|
49
|
+
const existingConfig = this.rowDeleteConfigs.find((config) => config.id === id);
|
|
50
|
+
if (existingConfig) {
|
|
51
|
+
existingConfig.pending = false;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this.rowDeleteConfigs.push({
|
|
55
|
+
id: id,
|
|
56
|
+
pending: false,
|
|
57
|
+
});
|
|
58
|
+
const overlay = this.overlayService.create({
|
|
59
|
+
enableScroll: true,
|
|
60
|
+
showBackdrop: false,
|
|
61
|
+
closeOnNavigation: true,
|
|
62
|
+
enableClose: false,
|
|
63
|
+
enablePointerEvents: true,
|
|
64
|
+
});
|
|
65
|
+
overlay.attachTemplate(this.rowDeleteComponent.inlineDeleteTemplateRef, {
|
|
66
|
+
$implicit: this.agGrid.api.getRowNode(id),
|
|
67
|
+
tableWidth: () => {
|
|
68
|
+
return this.tableWidth;
|
|
69
|
+
},
|
|
70
|
+
getRowDeleteItem: (row) => this.getRowDeleteItem(row),
|
|
71
|
+
cancelRowDelete: (row) => this.cancelRowDelete(row),
|
|
72
|
+
confirmRowDelete: (row) => this.confirmRowDelete(row),
|
|
73
|
+
});
|
|
74
|
+
/**
|
|
75
|
+
* We are manually setting the z-index here because overlays will always be on top of
|
|
76
|
+
* the omnibar. This manual setting is 2 less than the omnibar's z-index of 1000 and one less than
|
|
77
|
+
* the header row's viewkeeper which is 999. We discussed changing the overlay service to allow for this
|
|
78
|
+
* but decided against that change at this time due to its niche nature.
|
|
79
|
+
*/
|
|
80
|
+
overlay.componentRef.instance.zIndex = '998';
|
|
81
|
+
setTimeout(() => {
|
|
82
|
+
const inlineDeleteRef = this.rowDeleteComponent.inlineDeleteRefs
|
|
83
|
+
.toArray()
|
|
84
|
+
.find((elRef) => {
|
|
85
|
+
return elRef.nativeElement.id === 'row-delete-ref-' + id;
|
|
86
|
+
});
|
|
87
|
+
const affixer = this.affixService.createAffixer(inlineDeleteRef);
|
|
88
|
+
this.affixToRow(affixer, id);
|
|
89
|
+
this.rowDeleteContents[id] = {
|
|
90
|
+
affixer: affixer,
|
|
91
|
+
overlay: overlay,
|
|
92
|
+
};
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
for (const config of this.rowDeleteConfigs) {
|
|
97
|
+
if (value.indexOf(config.id) < 0) {
|
|
98
|
+
this.destroyRowDelete(config.id);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
this.changeDetector.markForCheck();
|
|
102
|
+
}
|
|
103
|
+
get rowDeleteIds() {
|
|
104
|
+
return this._rowDeleteIds;
|
|
105
|
+
}
|
|
106
|
+
get tableWidth() {
|
|
107
|
+
return this.elementRef.nativeElement.querySelectorAll('.sky-ag-grid')[0]
|
|
108
|
+
.offsetWidth;
|
|
109
|
+
}
|
|
110
|
+
ngAfterContentInit() {
|
|
111
|
+
const factory = this.resolver.resolveComponentFactory(SkyAgGridRowDeleteComponent);
|
|
112
|
+
this.rowDeleteComponent =
|
|
113
|
+
this.viewContainerRef.createComponent(factory).instance;
|
|
114
|
+
this.agGrid.rowDataChanged
|
|
115
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
116
|
+
.subscribe(() => {
|
|
117
|
+
this.updateRowDeleteStates();
|
|
118
|
+
});
|
|
119
|
+
this.agGrid.rowDataUpdated
|
|
120
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
121
|
+
.subscribe(() => {
|
|
122
|
+
this.updateRowDeleteStates();
|
|
123
|
+
});
|
|
124
|
+
this.agGrid.sortChanged
|
|
125
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
126
|
+
.subscribe(() => {
|
|
127
|
+
this.updateRowDeleteStates();
|
|
128
|
+
});
|
|
129
|
+
this.agGrid.filterChanged
|
|
130
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
131
|
+
.subscribe(() => {
|
|
132
|
+
this.updateRowDeleteStates();
|
|
133
|
+
});
|
|
134
|
+
this.agGrid.getRowNodeId = (data) => {
|
|
135
|
+
return data.id.toString();
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
ngOnDestroy() {
|
|
139
|
+
this.ngUnsubscribe.next();
|
|
140
|
+
this.ngUnsubscribe.complete();
|
|
141
|
+
Object.keys(this.rowDeleteContents).forEach((id) => {
|
|
142
|
+
this.destroyRowDelete(id);
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
cancelRowDelete(row) {
|
|
146
|
+
this.rowDeleteConfigs = this.rowDeleteConfigs.filter((config) => config.id !== row.id);
|
|
147
|
+
this.rowDeleteCancel.emit({ id: row.id });
|
|
148
|
+
this.destroyRowDelete(row.id);
|
|
149
|
+
}
|
|
150
|
+
confirmRowDelete(row) {
|
|
151
|
+
this.rowDeleteConfigs.find((config) => config.id === row.id).pending = true;
|
|
152
|
+
this.rowDeleteConfirm.emit({ id: row.id });
|
|
153
|
+
}
|
|
154
|
+
getRowDeleteItem(row) {
|
|
155
|
+
return this.rowDeleteConfigs.find((rowDelete) => rowDelete.id === row.id);
|
|
156
|
+
}
|
|
157
|
+
affixToRow(affixer, id) {
|
|
158
|
+
let rowElement = this.elementRef.nativeElement.querySelector(`
|
|
159
|
+
[row-id="${id}"] div[aria-colindex="1"],
|
|
160
|
+
.ag-row.sky-ag-grid-row-${id} div[aria-colindex="1"]
|
|
161
|
+
`);
|
|
162
|
+
// This covers cases where AG Grid places the column index on an inner element (such as with the `enableCellTextSelection` option)
|
|
163
|
+
// This appears to have been fixed by AG Grid in version 24 and so it is not testable after that version.
|
|
164
|
+
/* istanbul ignore if */
|
|
165
|
+
if (!rowElement) {
|
|
166
|
+
const columns = this.elementRef.nativeElement.querySelectorAll('[row-id="' + id + '"] > div');
|
|
167
|
+
for (let i = 0; i < columns.length; i++) {
|
|
168
|
+
if (columns[i].querySelector('[aria-colindex="1"]')) {
|
|
169
|
+
rowElement = columns[i];
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
affixer.affixTo(rowElement, {
|
|
175
|
+
autoFitContext: SkyAffixAutoFitContext.Viewport,
|
|
176
|
+
isSticky: true,
|
|
177
|
+
placement: 'above',
|
|
178
|
+
verticalAlignment: 'top',
|
|
179
|
+
horizontalAlignment: 'left',
|
|
180
|
+
enableAutoFit: false,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
destroyRowDelete(id) {
|
|
184
|
+
const rowDeleteContents = this.rowDeleteContents[id];
|
|
185
|
+
/* sanity check */
|
|
186
|
+
/* istanbul ignore else */
|
|
187
|
+
if (rowDeleteContents) {
|
|
188
|
+
rowDeleteContents.affixer.destroy();
|
|
189
|
+
this.overlayService.close(rowDeleteContents.overlay);
|
|
190
|
+
delete this.rowDeleteContents[id];
|
|
191
|
+
this.rowDeleteConfigs = this.rowDeleteConfigs.filter((config) => config.id !== id);
|
|
192
|
+
this._rowDeleteIds = this.rowDeleteIds?.filter((arrayId) => arrayId !== id);
|
|
193
|
+
this.rowDeleteIdsChange.emit(this._rowDeleteIds);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
updateRowDeleteStates() {
|
|
197
|
+
this.rowDeleteConfigs.forEach((config) => {
|
|
198
|
+
if (!this.agGrid.api.getRowNode(config.id)) {
|
|
199
|
+
this.destroyRowDelete(config.id);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
// We must reaffix things when the data changes because the rows rerender and the previous element that the delete was affixed
|
|
203
|
+
// to is destroyed.
|
|
204
|
+
this.affixToRow(this.rowDeleteContents[config.id].affixer, config.id);
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
this.changeDetector.markForCheck();
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
SkyAgGridRowDeleteDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", 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 });
|
|
211
|
+
SkyAgGridRowDeleteDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", 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 });
|
|
212
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAgGridRowDeleteDirective, decorators: [{
|
|
213
|
+
type: Directive,
|
|
214
|
+
args: [{
|
|
215
|
+
selector: '[skyAgGridRowDelete]',
|
|
216
|
+
}]
|
|
217
|
+
}], ctorParameters: function () { return [{ type: i1.SkyAffixService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.ComponentFactoryResolver }, { type: i1.SkyOverlayService }, { type: i0.ViewContainerRef }]; }, propDecorators: { rowDeleteIds: [{
|
|
218
|
+
type: Input
|
|
219
|
+
}], rowDeleteCancel: [{
|
|
220
|
+
type: Output
|
|
221
|
+
}], rowDeleteConfirm: [{
|
|
222
|
+
type: Output
|
|
223
|
+
}], rowDeleteIdsChange: [{
|
|
224
|
+
type: Output
|
|
225
|
+
}], agGrid: [{
|
|
226
|
+
type: ContentChild,
|
|
227
|
+
args: [AgGridAngular]
|
|
228
|
+
}] } });
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1yb3ctZGVsZXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtcm93LWRlbGV0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsZUFBZSxFQUVmLGlCQUFpQixHQUNsQixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQU03RTs7R0FFRztBQUlILE1BQU0sT0FBTywyQkFBMkI7SUE4SHRDLFlBQ1UsWUFBNkIsRUFDN0IsY0FBaUMsRUFDakMsVUFBc0IsRUFDdEIsUUFBa0MsRUFDbEMsY0FBaUMsRUFDakMsZ0JBQWtDO1FBTGxDLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUNsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXhDNUM7O1dBRUc7UUFFSSxvQkFBZSxHQUFHLElBQUksWUFB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QUM1QyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FDNUIsQ0FBQztZQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBZ0MsRUFBRSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUMxQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ2xDO2lCQUFNO2dCQUNMLDhIQUE4SDtnQkFDOUgsbUJBQW1CO2dCQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN2RTtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzt3SEFuUVUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsMlFBcUh4QixhQUFhOzJGQXJIaEIsMkJBQTJCO2tCQUh2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDO3FRQVFLLFlBQVk7c0JBRGYsS0FBSztnQkEwRkMsZUFBZTtzQkFEckIsTUFBTTtnQkFPQSxnQkFBZ0I7c0JBRHRCLE1BQU07Z0JBT0Esa0JBQWtCO3NCQUR4QixNQUFNO2dCQVdBLE1BQU07c0JBRFosWUFBWTt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNreUFmZml4QXV0b0ZpdENvbnRleHQsXG4gIFNreUFmZml4U2VydmljZSxcbiAgU2t5QWZmaXhlcixcbiAgU2t5T3ZlcmxheVNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBSb3dOb2RlIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVDb21wb25lbnQgfSBmcm9tICcuL2FnLWdyaWQtcm93LWRlbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkUm93RGVsZXRlQ2FuY2VsQXJncyB9IGZyb20gJy4vdHlwZXMvYWctZ3JpZC1yb3ctZGVsZXRlLWNhbmNlbC1hcmdzJztcbmltcG9ydCB7IFNreUFnR3JpZFJvd0RlbGV0ZUNvbmZpZyB9IGZyb20gJy4vdHlwZXMvYWctZ3JpZC1yb3ctZGVsZXRlLWNvbmZpZyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVDb25maXJtQXJncyB9IGZyb20gJy4vdHlwZXMvYWctZ3JpZC1yb3ctZGVsZXRlLWNvbmZpcm0tYXJncyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRSb3dEZWxldGVDb250ZW50cyB9IGZyb20gJy4vdHlwZXMvYWctZ3JpZC1yb3ctZGVsZXRlLWNvbnRlbnRzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreUFnR3JpZFJvd0RlbGV0ZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRSb3dEZWxldGVEaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3lcbntcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgaWRzIG9mIHRoZSBkYXRhIGluIHRoZSByb3dzIG9uIHdoaWNoIGlubGluZSBkZWxldGUncyBzaG91bGQgYmUgc2hvd24uXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgcm93RGVsZXRlSWRzKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX3Jvd0RlbGV0ZUlkcyA9IHZhbHVlO1xuXG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgZm9yIChjb25zdCBjb25maWcgb2YgdGhpcy5yb3dEZWxldGVDb25maWdzKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveVJvd0RlbGV0ZShjb25maWcuaWQpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBpZCBvZiB2YWx1ZSkge1xuICAgICAgY29uc3QgZXhpc3RpbmdDb25maWcgPSB0aGlzLnJvd0RlbGV0ZUNvbmZpZ3MuZmluZChcbiAgICAgICAgKGNvbmZpZykgPT4gY29uZmlnLmlkID09PSBpZFxuICAgICAgKTtcbiAgICAgIGlmIChleGlzdGluZ0NvbmZpZykge1xuICAgICAgICBleGlzdGluZ0NvbmZpZy5wZW5kaW5nID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJvd0RlbGV0ZUNvbmZpZ3MucHVzaCh7XG4gICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgIHBlbmRpbmc6IGZhbHNlLFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBvdmVybGF5ID0gdGhpcy5vdmVybGF5U2VydmljZS5jcmVhdGUoe1xuICAgICAgICAgIGVuYWJsZVNjcm9sbDogdHJ1ZSxcbiAgICAgICAgICBzaG93QmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgICAgIGVuYWJsZUNsb3NlOiBmYWxzZSxcbiAgICAgICAgICBlbmFibGVQb2ludGVyRXZlbnRzOiB0cnVlLFxuICAgICAgICB9KTtcblxuICAgICAgICBvdmVybGF5LmF0dGFjaFRlbXBsYXRlKFxuICAgICAgICAgIHRoaXMucm93RGVsZXRlQ29tcG9uZW50LmlubGluZURlbGV0ZVRlbXBsYXRlUmVmLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgICRpbXBsaWNpdDogdGhpcy5hZ0dyaWQuYXBpLmdldFJvd05vZGUoaWQpLFxuICAgICAgICAgICAgdGFibGVXaWR0aDogKCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy50YWJsZVdpZHRoO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFJvd0RlbGV0ZUl0ZW06IChyb3c6IFJvd05vZGUpID0+IHRoaXMuZ2V0Um93RGVsZXRlSXRlbShyb3cpLFxuICAgICAgICAgICAgY2FuY2VsUm93RGVsZXRlOiAocm93OiBSb3dOb2RlKSA9PiB0aGlzLmNhbmNlbFJvd0RlbGV0ZShyb3cpLFxuICAgICAgICAgICAgY29uZmlybVJvd0RlbGV0ZTogKHJvdzogUm93Tm9kZSkgPT4gdGhpcy5jb25maXJtUm93RGVsZXRlKHJvdyksXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXZSBhcmUgbWFudWFsbHkgc2V0dGluZyB0aGUgei1pbmRleCBoZXJlIGJlY2F1c2Ugb3ZlcmxheXMgd2lsbCBhbHdheXMgYmUgb24gdG9wIG9mXG4gICAgICAgICAqIHRoZSBvbW5pYmFyLiBUaGlzIG1hbnVhbCBzZXR0aW5nIGlzIDIgbGVzcyB0aGFuIHRoZSBvbW5pYmFyJ3Mgei1pbmRleCBvZiAxMDAwIGFuZCBvbmUgbGVzcyB0aGFuXG4gICAgICAgICAqIHRoZSBoZWFkZXIgcm93J3Mgdmlld2tlZXBlciB3aGljaCBpcyA5OTkuIFdlIGRpc2N1c3NlZCBjaGFuZ2luZyB0aGUgb3ZlcmxheSBzZXJ2aWNlIHRvIGFsbG93IGZvciB0aGlzXG4gICAgICAgICAqIGJ1dCBkZWNpZGVkIGFnYWluc3QgdGhhdCBjaGFuZ2UgYXQgdGhpcyB0aW1lIGR1ZSB0byBpdHMgbmljaGUgbmF0dXJlLlxuICAgICAgICAgKi9cbiAgICAgICAgb3ZlcmxheS5jb21wb25lbnRSZWYuaW5zdGFuY2UuekluZGV4ID0gJzk5OCc7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5saW5lRGVsZXRlUmVmID0gdGhpcy5yb3dEZWxldGVDb21wb25lbnQuaW5saW5lRGVsZXRlUmVmc1xuICAgICAgICAgICAgLnRvQXJyYXkoKVxuICAgICAgICAgICAgLmZpbmQoKGVsUmVmKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBlbFJlZi5uYXRpdmVFbGVtZW50LmlkID09PSAncm93LWRlbGV0ZS1yZWYtJyArIGlkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3QgYWZmaXhlciA9IHRoaXMuYWZmaXhTZXJ2aWNlLmNyZWF0ZUFmZml4ZXIoaW5saW5lRGVsZXRlUmVmKTtcblxuICAgICAgICAgIHRoaXMuYWZmaXhUb1JvdyhhZmZpeGVyLCBpZCk7XG5cbiAgICAgICAgICB0aGlzLnJvd0RlbGV0ZUNvbnRlbnRzW2lkXSA9IHtcbiAgICAgICAgICAgIGFmZml4ZXI6IGFmZml4ZXIsXG4gICAgICAgICAgICBvdmVybGF5OiBvdmVybGF5LFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgY29uZmlnIG9mIHRoaXMucm93RGVsZXRlQ29uZmlncykge1xuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoY29uZmlnLmlkKSA8IDApIHtcbiAgICAgICAgdGhpcy5kZXN0cm95Um93RGVsZXRlKGNvbmZpZy5pZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCByb3dEZWxldGVJZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9yb3dEZWxldGVJZHM7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgYSBgU2t5QWdHcmlkUm93RGVsZXRlQ2FuY2VsQXJnc2Agb2JqZWN0IHdoZW4gYSByb3cncyBpbmxpbmUgZGVsZXRlIGlzIGNhbmNlbGxlZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcm93RGVsZXRlQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lBZ0dyaWRSb3dEZWxldGVDYW5jZWxBcmdzPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBhIGBTa3lBZ0dyaWRSb3dEZWxldGVDb25maXJtQXJnc2Agb2JqZWN0IHdoZW4gYSByb3cncyBpbmxpbmUgZGVsZXRlIGlzIGNvbmZpcm1lZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcm93RGVsZXRlQ29uZmlybSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5QWdHcmlkUm93RGVsZXRlQ29uZmlybUFyZ3M+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGxpc3Qgb2YgaWRzIG9mIHRoZSBkYXRhIGluIHRoZSByb3dzIHdoZXJlIGlubGluZSBkZWxldGVzIGFyZSBzaG93biBjaGFuZ2VzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByb3dEZWxldGVJZHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xuXG4gIHB1YmxpYyByb3dEZWxldGVDb25maWdzOiBTa3lBZ0dyaWRSb3dEZWxldGVDb25maWdbXSA9IFtdO1xuXG4gIHB1YmxpYyBnZXQgdGFibGVXaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnNreS1hZy1ncmlkJylbMF1cbiAgICAgIC5vZmZzZXRXaWR0aDtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoQWdHcmlkQW5ndWxhcilcbiAgcHVibGljIGFnR3JpZDogQWdHcmlkQW5ndWxhcjtcblxuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIHJvd0RlbGV0ZUNvbXBvbmVudDogU2t5QWdHcmlkUm93RGVsZXRlQ29tcG9uZW50O1xuICBwcml2YXRlIHJvd0RlbGV0ZUNvbnRlbnRzOiB7IFtpZDogc3RyaW5nXTogU2t5QWdHcmlkUm93RGVsZXRlQ29udGVudHMgfSA9IHt9O1xuXG4gIHByaXZhdGUgX3Jvd0RlbGV0ZUlkczogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhZmZpeFNlcnZpY2U6IFNreUFmZml4U2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgb3ZlcmxheVNlcnZpY2U6IFNreU92ZXJsYXlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHt9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShcbiAgICAgIFNreUFnR3JpZFJvd0RlbGV0ZUNvbXBvbmVudFxuICAgICk7XG4gICAgdGhpcy5yb3dEZWxldGVDb21wb25lbnQgPVxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KS5pbnN0YW5jZTtcbiAgICB0aGlzLmFnR3JpZC5yb3dEYXRhQ2hhbmdlZFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVSb3dEZWxldGVTdGF0ZXMoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5hZ0dyaWQucm93RGF0YVVwZGF0ZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlUm93RGVsZXRlU3RhdGVzKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuYWdHcmlkLnNvcnRDaGFuZ2VkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZVJvd0RlbGV0ZVN0YXRlcygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmFnR3JpZC5maWx0ZXJDaGFuZ2VkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZVJvd0RlbGV0ZVN0YXRlcygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmFnR3JpZC5nZXRSb3dOb2RlSWQgPSAoZGF0YTogYW55KSA9PiB7XG4gICAgICByZXR1cm4gZGF0YS5pZC50b1N0cmluZygpO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcblxuICAgIE9iamVjdC5rZXlzKHRoaXMucm93RGVsZXRlQ29udGVudHMpLmZvckVhY2goKGlkKSA9PiB7XG4gICAgICB0aGlzLmRlc3Ryb3lSb3dEZWxldGUoaWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbFJvd0RlbGV0ZShyb3c6IFJvd05vZGUpOiB2b2lkIHtcbiAgICB0aGlzLnJvd0RlbGV0ZUNvbmZpZ3MgPSB0aGlzLnJvd0RlbGV0ZUNvbmZpZ3MuZmlsdGVyKFxuICAgICAgKGNvbmZpZykgPT4gY29uZmlnLmlkICE9PSByb3cuaWRcbiAgICApO1xuICAgIHRoaXMucm93RGVsZXRlQ2FuY2VsLmVtaXQoeyBpZDogcm93LmlkIH0pO1xuXG4gICAgdGhpcy5kZXN0cm95Um93RGVsZXRlKHJvdy5pZCk7XG4gIH1cblxuICBwdWJsaWMgY29uZmlybVJvd0RlbGV0ZShyb3c6IFJvd05vZGUpOiB2b2lkIHtcbiAgICB0aGlzLnJvd0RlbGV0ZUNvbmZpZ3MuZmluZCgoY29uZmlnKSA9PiBjb25maWcuaWQgPT09IHJvdy5pZCkucGVuZGluZyA9IHRydWU7XG4gICAgdGhpcy5yb3dEZWxldGVDb25maXJtLmVtaXQoeyBpZDogcm93LmlkIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFJvd0RlbGV0ZUl0ZW0ocm93OiBSb3dOb2RlKTogU2t5QWdHcmlkUm93RGVsZXRlQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5yb3dEZWxldGVDb25maWdzLmZpbmQoKHJvd0RlbGV0ZSkgPT4gcm93RGVsZXRlLmlkID09PSByb3cuaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZmZpeFRvUm93KGFmZml4ZXI6IFNreUFmZml4ZXIsIGlkOiBzdHJpbmcpIHtcbiAgICBsZXQgcm93RWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGBcbiAgICAgIFtyb3ctaWQ9XCIke2lkfVwiXSBkaXZbYXJpYS1jb2xpbmRleD1cIjFcIl0sXG4gICAgICAuYWctcm93LnNreS1hZy1ncmlkLXJvdy0ke2lkfSBkaXZbYXJpYS1jb2xpbmRleD1cIjFcIl1cbiAgICBgKTtcblxuICAgIC8vIFRoaXMgY292ZXJzIGNhc2VzIHdoZXJlIEFHIEdyaWQgcGxhY2VzIHRoZSBjb2x1bW4gaW5kZXggb24gYW4gaW5uZXIgZWxlbWVudCAoc3VjaCBhcyB3aXRoIHRoZSBgZW5hYmxlQ2VsbFRleHRTZWxlY3Rpb25gIG9wdGlvbilcbiAgICAvLyBUaGlzIGFwcGVhcnMgdG8gaGF2ZSBiZWVuIGZpeGVkIGJ5IEFHIEdyaWQgaW4gdmVyc2lvbiAyNCBhbmQgc28gaXQgaXMgbm90IHRlc3RhYmxlIGFmdGVyIHRoYXQgdmVyc2lvbi5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIXJvd0VsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAnW3Jvdy1pZD1cIicgKyBpZCArICdcIl0gPiBkaXYnXG4gICAgICApO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbHVtbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGNvbHVtbnNbaV0ucXVlcnlTZWxlY3RvcignW2FyaWEtY29saW5kZXg9XCIxXCJdJykpIHtcbiAgICAgICAgICByb3dFbGVtZW50ID0gY29sdW1uc1tpXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGFmZml4ZXIuYWZmaXhUbyhyb3dFbGVtZW50LCB7XG4gICAgICBhdXRvRml0Q29udGV4dDogU2t5QWZmaXhBdXRvRml0Q29udGV4dC5WaWV3cG9ydCxcbiAgICAgIGlzU3RpY2t5OiB0cnVlLFxuICAgICAgcGxhY2VtZW50OiAnYWJvdmUnLFxuICAgICAgdmVydGljYWxBbGlnbm1lbnQ6ICd0b3AnLFxuICAgICAgaG9yaXpvbnRhbEFsaWdubWVudDogJ2xlZnQnLFxuICAgICAgZW5hYmxlQXV0b0ZpdDogZmFsc2UsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lSb3dEZWxldGUoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHJvd0RlbGV0ZUNvbnRlbnRzID0gdGhpcy5yb3dEZWxldGVDb250ZW50c1tpZF07XG5cbiAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChyb3dEZWxldGVDb250ZW50cykge1xuICAgICAgcm93RGVsZXRlQ29udGVudHMuYWZmaXhlci5kZXN0cm95KCk7XG4gICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmNsb3NlKHJvd0RlbGV0ZUNvbnRlbnRzLm92ZXJsYXkpO1xuICAgICAgZGVsZXRlIHRoaXMucm93RGVsZXRlQ29udGVudHNbaWRdO1xuICAgICAgdGhpcy5yb3dEZWxldGVDb25maWdzID0gdGhpcy5yb3dEZWxldGVDb25maWdzLmZpbHRlcihcbiAgICAgICAgKGNvbmZpZykgPT4gY29uZmlnLmlkICE9PSBpZFxuICAgICAgKTtcbiAgICAgIHRoaXMuX3Jvd0RlbGV0ZUlkcyA9IHRoaXMucm93RGVsZXRlSWRzPy5maWx0ZXIoXG4gICAgICAgIChhcnJheUlkKSA9PiBhcnJheUlkICE9PSBpZFxuICAgICAgKTtcbiAgICAgIHRoaXMucm93RGVsZXRlSWRzQ2hhbmdlLmVtaXQodGhpcy5fcm93RGVsZXRlSWRzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVJvd0RlbGV0ZVN0YXRlcygpOiB2b2lkIHtcbiAgICB0aGlzLnJvd0RlbGV0ZUNvbmZpZ3MuZm9yRWFjaCgoY29uZmlnOiBTa3lBZ0dyaWRSb3dEZWxldGVDb25maWcpID0+IHtcbiAgICAgIGlmICghdGhpcy5hZ0dyaWQuYXBpLmdldFJvd05vZGUoY29uZmlnLmlkKSkge1xuICAgICAgICB0aGlzLmRlc3Ryb3lSb3dEZWxldGUoY29uZmlnLmlkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdlIG11c3QgcmVhZmZpeCB0aGluZ3Mgd2hlbiB0aGUgZGF0YSBjaGFuZ2VzIGJlY2F1c2UgdGhlIHJvd3MgcmVyZW5kZXIgYW5kIHRoZSBwcmV2aW91cyBlbGVtZW50IHRoYXQgdGhlIGRlbGV0ZSB3YXMgYWZmaXhlZFxuICAgICAgICAvLyB0byBpcyBkZXN0cm95ZWQuXG4gICAgICAgIHRoaXMuYWZmaXhUb1Jvdyh0aGlzLnJvd0RlbGV0ZUNvbnRlbnRzW2NvbmZpZy5pZF0uYWZmaXhlciwgY29uZmlnLmlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, } from '@angular/core';
|
|
2
|
+
import { AgGridAngular } from 'ag-grid-angular';
|
|
3
|
+
import { SkyAgGridAdapterService } from './ag-grid-adapter.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./ag-grid-adapter.service";
|
|
6
|
+
import * as i2 from "@skyux/core";
|
|
7
|
+
let idIndex = 0;
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export class SkyAgGridWrapperComponent {
|
|
12
|
+
constructor(adapterService, changeDetector, elementRef) {
|
|
13
|
+
this.adapterService = adapterService;
|
|
14
|
+
this.changeDetector = changeDetector;
|
|
15
|
+
this.elementRef = elementRef;
|
|
16
|
+
this._viewkeeperClasses = [];
|
|
17
|
+
idIndex++;
|
|
18
|
+
this.afterAnchorId = 'sky-ag-grid-nav-anchor-after-' + idIndex;
|
|
19
|
+
this.beforeAnchorId = 'sky-ag-grid-nav-anchor-before-' + idIndex;
|
|
20
|
+
this.gridId = 'sky-ag-grid-' + idIndex;
|
|
21
|
+
}
|
|
22
|
+
get viewkeeperClasses() {
|
|
23
|
+
return this._viewkeeperClasses;
|
|
24
|
+
}
|
|
25
|
+
set viewkeeperClasses(value) {
|
|
26
|
+
this._viewkeeperClasses = value;
|
|
27
|
+
this.changeDetector.markForCheck();
|
|
28
|
+
}
|
|
29
|
+
ngAfterContentInit() {
|
|
30
|
+
if (this.agGrid.gridOptions &&
|
|
31
|
+
this.agGrid.gridOptions.domLayout === 'autoHeight') {
|
|
32
|
+
this.viewkeeperClasses.push('.ag-header');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
onGridKeydown(event) {
|
|
36
|
+
if (this.agGrid && !this.isInEditMode && event.key === 'Tab') {
|
|
37
|
+
const idToFocus = event.shiftKey
|
|
38
|
+
? this.beforeAnchorId
|
|
39
|
+
: this.afterAnchorId;
|
|
40
|
+
this.adapterService.setFocusedElementById(this.elementRef.nativeElement, idToFocus);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
onAnchorFocus(event) {
|
|
44
|
+
const gridId = this.gridId;
|
|
45
|
+
const relatedTarget = event.relatedTarget;
|
|
46
|
+
const previousFocusedId = relatedTarget && relatedTarget.id;
|
|
47
|
+
const previousWasCell = relatedTarget &&
|
|
48
|
+
!!this.adapterService.getElementOrParentWithClass(relatedTarget, 'ag-cell');
|
|
49
|
+
if (previousFocusedId !== gridId && !previousWasCell) {
|
|
50
|
+
const columns = this.agGrid.columnApi.getAllDisplayedColumns();
|
|
51
|
+
const firstColumn = columns && columns[0];
|
|
52
|
+
const rowIndex = this.agGrid.api.getFirstDisplayedRow();
|
|
53
|
+
if (firstColumn && rowIndex >= 0) {
|
|
54
|
+
this.agGrid.api.setFocusedCell(rowIndex, firstColumn);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
get isInEditMode() {
|
|
59
|
+
/* Sanity check */
|
|
60
|
+
/* istanbul ignore else */
|
|
61
|
+
if (this.agGrid && this.agGrid.api) {
|
|
62
|
+
const primaryGridEditing = this.agGrid.api.getEditingCells().length > 0;
|
|
63
|
+
if (primaryGridEditing) {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
let innerEditing = false;
|
|
68
|
+
this.agGrid.api.forEachDetailGridInfo((detailGrid) => {
|
|
69
|
+
if (detailGrid.api.getEditingCells().length > 0) {
|
|
70
|
+
innerEditing = true;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
return innerEditing;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
SkyAgGridWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAgGridWrapperComponent, deps: [{ token: i1.SkyAgGridAdapterService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
+
SkyAgGridWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", 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 });
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAgGridWrapperComponent, decorators: [{
|
|
84
|
+
type: Component,
|
|
85
|
+
args: [{ selector: 'sky-ag-grid-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, 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" }]
|
|
86
|
+
}], ctorParameters: function () { return [{ type: i1.SkyAgGridAdapterService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { agGrid: [{
|
|
87
|
+
type: ContentChild,
|
|
88
|
+
args: [AgGridAngular, {
|
|
89
|
+
static: true,
|
|
90
|
+
}]
|
|
91
|
+
}] } });
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7O0FBRXBFLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQUVoQjs7R0FFRztBQU1ILE1BQU0sT0FBTyx5QkFBeUI7SUFxQnBDLFlBQ1UsY0FBdUMsRUFDdkMsY0FBaUMsRUFDakMsVUFBc0I7UUFGdEIsbUJBQWMsR0FBZCxjQUFjLENBQXlCO1FBQ3ZDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBTHhCLHVCQUFrQixHQUFhLEVBQUUsQ0FBQztRQU94QyxPQUFPLEVBQUUsQ0FBQztRQUNWLElBQUksQ0FBQyxhQUFhLEdBQUcsK0JBQStCLEdBQUcsT0FBTyxDQUFDO1FBQy9ELElBQUksQ0FBQyxjQUFjLEdBQUcsZ0NBQWdDLEdBQUcsT0FBTyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxHQUFHLE9BQU8sQ0FBQztJQUN6QyxDQUFDO0lBcEJELElBQVcsaUJBQWlCO1FBQzFC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ZDtJQUNILENBQUM7O3NIQS9GVSx5QkFBeUI7MEdBQXpCLHlCQUF5QiwrRkFDdEIsYUFBYSw4REN6QjdCLDJiQXVCQTsyRkRDYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUVkLHVCQUF1QixDQUFDLE1BQU07dUtBTXhDLE1BQU07c0JBSFosWUFBWTt1QkFBQyxhQUFhLEVBQUU7d0JBQzNCLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgRGV0YWlsR3JpZEluZm8gfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbmltcG9ydCB7IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9hZy1ncmlkLWFkYXB0ZXIuc2VydmljZSc7XG5cbmxldCBpZEluZGV4ID0gMDtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBAQ29udGVudENoaWxkKEFnR3JpZEFuZ3VsYXIsIHtcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHB1YmxpYyBhZ0dyaWQ6IEFnR3JpZEFuZ3VsYXI7XG5cbiAgcHVibGljIGFmdGVyQW5jaG9ySWQ6IHN0cmluZztcbiAgcHVibGljIGJlZm9yZUFuY2hvcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBncmlkSWQ6IHN0cmluZztcblxuICBwdWJsaWMgZ2V0IHZpZXdrZWVwZXJDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld2tlZXBlckNsYXNzZXM7XG4gIH1cblxuICBwdWJsaWMgc2V0IHZpZXdrZWVwZXJDbGFzc2VzKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX3ZpZXdrZWVwZXJDbGFzc2VzID0gdmFsdWU7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZpZXdrZWVwZXJDbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWRhcHRlclNlcnZpY2U6IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHtcbiAgICBpZEluZGV4Kys7XG4gICAgdGhpcy5hZnRlckFuY2hvcklkID0gJ3NreS1hZy1ncmlkLW5hdi1hbmNob3ItYWZ0ZXItJyArIGlkSW5kZXg7XG4gICAgdGhpcy5iZWZvcmVBbmNob3JJZCA9ICdza3ktYWctZ3JpZC1uYXYtYW5jaG9yLWJlZm9yZS0nICsgaWRJbmRleDtcbiAgICB0aGlzLmdyaWRJZCA9ICdza3ktYWctZ3JpZC0nICsgaWRJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5hZ0dyaWQuZ3JpZE9wdGlvbnMgJiZcbiAgICAgIHRoaXMuYWdHcmlkLmdyaWRPcHRpb25zLmRvbUxheW91dCA9PT0gJ2F1dG9IZWlnaHQnXG4gICAgKSB7XG4gICAgICB0aGlzLnZpZXdrZWVwZXJDbGFzc2VzLnB1c2goJy5hZy1oZWFkZXInKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25HcmlkS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFnR3JpZCAmJiAhdGhpcy5pc0luRWRpdE1vZGUgJiYgZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgY29uc3QgaWRUb0ZvY3VzID0gZXZlbnQuc2hpZnRLZXlcbiAgICAgICAgPyB0aGlzLmJlZm9yZUFuY2hvcklkXG4gICAgICAgIDogdGhpcy5hZnRlckFuY2hvcklkO1xuICAgICAgdGhpcy5hZGFwdGVyU2VydmljZS5zZXRGb2N1c2VkRWxlbWVudEJ5SWQoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICBpZFRvRm9jdXNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQW5jaG9yRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBncmlkSWQgPSB0aGlzLmdyaWRJZDtcbiAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0gZXZlbnQucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBwcmV2aW91c0ZvY3VzZWRJZCA9IHJlbGF0ZWRUYXJnZXQgJiYgcmVsYXRlZFRhcmdldC5pZDtcbiAgICBjb25zdCBwcmV2aW91c1dhc0NlbGwgPVxuICAgICAgcmVsYXRlZFRhcmdldCAmJlxuICAgICAgISF0aGlzLmFkYXB0ZXJTZXJ2aWNlLmdldEVsZW1lbnRPclBhcmVudFdpdGhDbGFzcyhcbiAgICAgICAgcmVsYXRlZFRhcmdldCxcbiAgICAgICAgJ2FnLWNlbGwnXG4gICAgICApO1xuXG4gICAgaWYgKHByZXZpb3VzRm9jdXNlZElkICE9PSBncmlkSWQgJiYgIXByZXZpb3VzV2FzQ2VsbCkge1xuICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuYWdHcmlkLmNvbHVtbkFwaS5nZXRBbGxEaXNwbGF5ZWRDb2x1bW5zKCk7XG4gICAgICBjb25zdCBmaXJzdENvbHVtbiA9IGNvbHVtbnMgJiYgY29sdW1uc1swXTtcbiAgICAgIGNvbnN0IHJvd0luZGV4ID0gdGhpcy5hZ0dyaWQuYXBpLmdldEZpcnN0RGlzcGxheWVkUm93KCk7XG5cbiAgICAgIGlmIChmaXJzdENvbHVtbiAmJiByb3dJbmRleCA+PSAwKSB7XG4gICAgICAgIHRoaXMuYWdHcmlkLmFwaS5zZXRGb2N1c2VkQ2VsbChyb3dJbmRleCwgZmlyc3RDb2x1bW4pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGlzSW5FZGl0TW9kZSgpOiBib29sZWFuIHtcbiAgICAvKiBTYW5pdHkgY2hlY2sgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmFnR3JpZCAmJiB0aGlzLmFnR3JpZC5hcGkpIHtcbiAgICAgIGNvbnN0IHByaW1hcnlHcmlkRWRpdGluZyA9IHRoaXMuYWdHcmlkLmFwaS5nZXRFZGl0aW5nQ2VsbHMoKS5sZW5ndGggPiAwO1xuICAgICAgaWYgKHByaW1hcnlHcmlkRWRpdGluZykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBpbm5lckVkaXRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hZ0dyaWQuYXBpLmZvckVhY2hEZXRhaWxHcmlkSW5mbygoZGV0YWlsR3JpZDogRGV0YWlsR3JpZEluZm8pID0+IHtcbiAgICAgICAgICBpZiAoZGV0YWlsR3JpZC5hcGkuZ2V0RWRpdGluZ0NlbGxzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaW5uZXJFZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBpbm5lckVkaXRpbmc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiIsIjxzcGFuXG4gIGNsYXNzPVwibmF2LWFuY2hvclwiXG4gIHRhYmluZGV4PVwiMFwiXG4gIFtpZF09XCJiZWZvcmVBbmNob3JJZFwiXG4gIChmb2N1c2luKT1cIm9uQW5jaG9yRm9jdXMoJGV2ZW50KVwiXG4+XG48L3NwYW4+XG48ZGl2XG4gIGNsYXNzPVwic2t5LWFnLWdyaWRcIlxuICB0YWJpbmRleD1cIjBcIlxuICBbaWRdPVwiZ3JpZElkXCJcbiAgW3NreVZpZXdrZWVwZXJdPVwidmlld2tlZXBlckNsYXNzZXNcIlxuICAoa2V5ZG93bik9XCJvbkdyaWRLZXlkb3duKCRldmVudClcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxzcGFuXG4gIHRhYmluZGV4PVwiMFwiXG4gIGNsYXNzPVwibmF2LWFuY2hvclwiXG4gIFtpZF09XCJhZnRlckFuY2hvcklkXCJcbiAgKGZvY3VzaW4pPVwib25BbmNob3JGb2N1cygkZXZlbnQpXCJcbj5cbjwvc3Bhbj5cbiJdfQ==
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { SkyViewkeeperModule } from '@skyux/core';
|
|
4
|
+
import { SkyDataManagerModule } from '@skyux/data-manager';
|
|
5
|
+
import { SkyInlineDeleteModule } from '@skyux/layout';
|
|
6
|
+
import { AgGridModule } from 'ag-grid-angular';
|
|
7
|
+
import { SkyAgGridDataManagerAdapterDirective } from './ag-grid-data-manager-adapter.directive';
|
|
8
|
+
import { SkyAgGridRowDeleteComponent } from './ag-grid-row-delete.component';
|
|
9
|
+
import { SkyAgGridRowDeleteDirective } from './ag-grid-row-delete.directive';
|
|
10
|
+
import { SkyAgGridWrapperComponent } from './ag-grid-wrapper.component';
|
|
11
|
+
import { SkyAgGridCellEditorAutocompleteModule } from './cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module';
|
|
12
|
+
import { SkyAgGridCellEditorCurrencyModule } from './cell-editors/cell-editor-currency/cell-editor-currency.module';
|
|
13
|
+
import { SkyAgGridCellEditorDatepickerModule } from './cell-editors/cell-editor-datepicker/cell-editor-datepicker.module';
|
|
14
|
+
import { SkyAgGridCellEditorLookupModule } from './cell-editors/cell-editor-lookup/cell-editor-lookup.module';
|
|
15
|
+
import { SkyAgGridCellEditorNumberModule } from './cell-editors/cell-editor-number/cell-editor-number.module';
|
|
16
|
+
import { SkyAgGridCellEditorTextModule } from './cell-editors/cell-editor-text/cell-editor-text.module';
|
|
17
|
+
import { SkyAgGridCellRendererCurrencyModule } from './cell-renderers/cell-renderer-currency/cell-renderer-currency.module';
|
|
18
|
+
import { SkyAgGridCellRendererLookupModule } from './cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module';
|
|
19
|
+
import { SkyAgGridCellRendererRowSelectorModule } from './cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module';
|
|
20
|
+
import { SkyAgGridCellRendererValidatorTooltipModule } from './cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module';
|
|
21
|
+
import { SkyAgGridCellValidatorModule } from './cell-validator/ag-grid-cell-validator.module';
|
|
22
|
+
import * as i0 from "@angular/core";
|
|
23
|
+
export class SkyAgGridModule {
|
|
24
|
+
}
|
|
25
|
+
SkyAgGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
26
|
+
SkyAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAgGridModule, declarations: [SkyAgGridDataManagerAdapterDirective,
|
|
27
|
+
SkyAgGridRowDeleteComponent,
|
|
28
|
+
SkyAgGridRowDeleteDirective,
|
|
29
|
+
SkyAgGridWrapperComponent], imports: [AgGridModule,
|
|
30
|
+
CommonModule,
|
|
31
|
+
SkyAgGridCellEditorAutocompleteModule,
|
|
32
|
+
SkyAgGridCellEditorDatepickerModule,
|
|
33
|
+
SkyAgGridCellEditorLookupModule,
|
|
34
|
+
SkyAgGridCellEditorNumberModule,
|
|
35
|
+
SkyAgGridCellEditorCurrencyModule,
|
|
36
|
+
SkyAgGridCellRendererCurrencyModule,
|
|
37
|
+
SkyAgGridCellRendererLookupModule,
|
|
38
|
+
SkyAgGridCellRendererRowSelectorModule,
|
|
39
|
+
SkyAgGridCellRendererValidatorTooltipModule,
|
|
40
|
+
SkyAgGridCellValidatorModule,
|
|
41
|
+
SkyAgGridCellEditorTextModule,
|
|
42
|
+
SkyDataManagerModule,
|
|
43
|
+
SkyInlineDeleteModule,
|
|
44
|
+
SkyViewkeeperModule], exports: [SkyAgGridDataManagerAdapterDirective,
|
|
45
|
+
SkyAgGridRowDeleteComponent,
|
|
46
|
+
SkyAgGridRowDeleteDirective,
|
|
47
|
+
SkyAgGridWrapperComponent] });
|
|
48
|
+
SkyAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAgGridModule, imports: [[
|
|
49
|
+
AgGridModule,
|
|
50
|
+
CommonModule,
|
|
51
|
+
SkyAgGridCellEditorAutocompleteModule,
|
|
52
|
+
SkyAgGridCellEditorDatepickerModule,
|
|
53
|
+
SkyAgGridCellEditorLookupModule,
|
|
54
|
+
SkyAgGridCellEditorNumberModule,
|
|
55
|
+
SkyAgGridCellEditorCurrencyModule,
|
|
56
|
+
SkyAgGridCellRendererCurrencyModule,
|
|
57
|
+
SkyAgGridCellRendererLookupModule,
|
|
58
|
+
SkyAgGridCellRendererRowSelectorModule,
|
|
59
|
+
SkyAgGridCellRendererValidatorTooltipModule,
|
|
60
|
+
SkyAgGridCellValidatorModule,
|
|
61
|
+
SkyAgGridCellEditorTextModule,
|
|
62
|
+
SkyDataManagerModule,
|
|
63
|
+
SkyInlineDeleteModule,
|
|
64
|
+
SkyViewkeeperModule,
|
|
65
|
+
]] });
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyAgGridModule, decorators: [{
|
|
67
|
+
type: NgModule,
|
|
68
|
+
args: [{
|
|
69
|
+
declarations: [
|
|
70
|
+
SkyAgGridDataManagerAdapterDirective,
|
|
71
|
+
SkyAgGridRowDeleteComponent,
|
|
72
|
+
SkyAgGridRowDeleteDirective,
|
|
73
|
+
SkyAgGridWrapperComponent,
|
|
74
|
+
],
|
|
75
|
+
imports: [
|
|
76
|
+
AgGridModule,
|
|
77
|
+
CommonModule,
|
|
78
|
+
SkyAgGridCellEditorAutocompleteModule,
|
|
79
|
+
SkyAgGridCellEditorDatepickerModule,
|
|
80
|
+
SkyAgGridCellEditorLookupModule,
|
|
81
|
+
SkyAgGridCellEditorNumberModule,
|
|
82
|
+
SkyAgGridCellEditorCurrencyModule,
|
|
83
|
+
SkyAgGridCellRendererCurrencyModule,
|
|
84
|
+
SkyAgGridCellRendererLookupModule,
|
|
85
|
+
SkyAgGridCellRendererRowSelectorModule,
|
|
86
|
+
SkyAgGridCellRendererValidatorTooltipModule,
|
|
87
|
+
SkyAgGridCellValidatorModule,
|
|
88
|
+
SkyAgGridCellEditorTextModule,
|
|
89
|
+
SkyDataManagerModule,
|
|
90
|
+
SkyInlineDeleteModule,
|
|
91
|
+
SkyViewkeeperModule,
|
|
92
|
+
],
|
|
93
|
+
exports: [
|
|
94
|
+
SkyAgGridDataManagerAdapterDirective,
|
|
95
|
+
SkyAgGridRowDeleteComponent,
|
|
96
|
+
SkyAgGridRowDeleteDirective,
|
|
97
|
+
SkyAgGridWrapperComponent,
|
|
98
|
+
],
|
|
99
|
+
}]
|
|
100
|
+
}] });
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV4RSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUVoSSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUVwSCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUU5RyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUU5RyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUd4RyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUM1SCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUV0SCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUV2SSxPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSx5RkFBeUYsQ0FBQztBQUN0SixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7QUFrQzlGLE1BQU0sT0FBTyxlQUFlOzs0R0FBZixlQUFlOzZHQUFmLGVBQWUsaUJBOUJ4QixvQ0FBb0M7UUFDcEMsMkJBQTJCO1FBQzNCLDJCQUEyQjtRQUMzQix5QkFBeUIsYUFHekIsWUFBWTtRQUNaLFlBQVk7UUFDWixxQ0FBcUM7UUFDckMsbUNBQW1DO1FBQ25DLCtCQUErQjtRQUMvQiwrQkFBK0I7UUFDL0IsaUNBQWlDO1FBQ2pDLG1DQUFtQztRQUNuQyxpQ0FBaUM7UUFDakMsc0NBQXNDO1FBQ3RDLDJDQUEyQztRQUMzQyw0QkFBNEI7UUFDNUIsNkJBQTZCO1FBQzdCLG9CQUFvQjtRQUNwQixxQkFBcUI7UUFDckIsbUJBQW1CLGFBR25CLG9DQUFvQztRQUNwQywyQkFBMkI7UUFDM0IsMkJBQTJCO1FBQzNCLHlCQUF5Qjs2R0FHaEIsZUFBZSxZQXpCakI7WUFDUCxZQUFZO1lBQ1osWUFBWTtZQUNaLHFDQUFxQztZQUNyQyxtQ0FBbUM7WUFDbkMsK0JBQStCO1lBQy9CLCtCQUErQjtZQUMvQixpQ0FBaUM7WUFDakMsbUNBQW1DO1lBQ25DLGlDQUFpQztZQUNqQyxzQ0FBc0M7WUFDdEMsMkNBQTJDO1lBQzNDLDRCQUE0QjtZQUM1Qiw2QkFBNkI7WUFDN0Isb0JBQW9CO1lBQ3BCLHFCQUFxQjtZQUNyQixtQkFBbUI7U0FDcEI7MkZBUVUsZUFBZTtrQkFoQzNCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG9DQUFvQzt3QkFDcEMsMkJBQTJCO3dCQUMzQiwyQkFBMkI7d0JBQzNCLHlCQUF5QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixxQ0FBcUM7d0JBQ3JDLG1DQUFtQzt3QkFDbkMsK0JBQStCO3dCQUMvQiwrQkFBK0I7d0JBQy9CLGlDQUFpQzt3QkFDakMsbUNBQW1DO3dCQUNuQyxpQ0FBaUM7d0JBQ2pDLHNDQUFzQzt3QkFDdEMsMkNBQTJDO3dCQUMzQyw0QkFBNEI7d0JBQzVCLDZCQUE2Qjt3QkFDN0Isb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9DQUFvQzt3QkFDcEMsMkJBQTJCO3dCQUMzQiwyQkFBMkI7d0JBQzNCLHlCQUF5QjtxQkFDMUI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreVZpZXdrZWVwZXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9kYXRhLW1hbmFnZXInO1xuaW1wb3J0IHsgU2t5SW5saW5lRGVsZXRlTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xheW91dCc7XG5cbmltcG9ydCB7IEFnR3JpZE1vZHVsZSB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5cbmltcG9ydCB7IFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSB9IGZyb20gJy4vYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2t5QWdHcmlkUm93RGVsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi9hZy1ncmlkLXJvdy1kZWxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZFJvd0RlbGV0ZURpcmVjdGl2ZSB9IGZyb20gJy4vYWctZ3JpZC1yb3ctZGVsZXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yQXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItY3VycmVuY3kvY2VsbC1lZGl0b3ItY3VycmVuY3kuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JDdXJyZW5jeU1vZHVsZSB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWN1cnJlbmN5L2NlbGwtZWRpdG9yLWN1cnJlbmN5Lm1vZHVsZSc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckRhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1kYXRlcGlja2VyL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIubW9kdWxlJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JMb29rdXBNb2R1bGUgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1sb29rdXAvY2VsbC1lZGl0b3ItbG9va3VwLm1vZHVsZSc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItbnVtYmVyL2NlbGwtZWRpdG9yLW51bWJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlck1vZHVsZSB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLW51bWJlci9jZWxsLWVkaXRvci1udW1iZXIubW9kdWxlJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItdGV4dC9jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yVGV4dE1vZHVsZSB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLXRleHQvY2VsbC1lZGl0b3ItdGV4dC5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItY3VycmVuY3kvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5TW9kdWxlIH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3kubW9kdWxlJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cE1vZHVsZSB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAubW9kdWxlJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyUm93U2VsZWN0b3JNb2R1bGUgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItcm93LXNlbGVjdG9yL2NlbGwtcmVuZGVyZXItcm93LXNlbGVjdG9yLm1vZHVsZSc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJWYWxpZGF0b3JUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlclZhbGlkYXRvclRvb2x0aXBNb2R1bGUgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFZhbGlkYXRvck1vZHVsZSB9IGZyb20gJy4vY2VsbC12YWxpZGF0b3IvYWctZ3JpZC1jZWxsLXZhbGlkYXRvci5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTa3lBZ0dyaWREYXRhTWFuYWdlckFkYXB0ZXJEaXJlY3RpdmUsXG4gICAgU2t5QWdHcmlkUm93RGVsZXRlQ29tcG9uZW50LFxuICAgIFNreUFnR3JpZFJvd0RlbGV0ZURpcmVjdGl2ZSxcbiAgICBTa3lBZ0dyaWRXcmFwcGVyQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQWdHcmlkTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lBZ0dyaWRDZWxsRWRpdG9yQXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIFNreUFnR3JpZENlbGxFZGl0b3JEYXRlcGlja2VyTW9kdWxlLFxuICAgIFNreUFnR3JpZENlbGxFZGl0b3JMb29rdXBNb2R1bGUsXG4gICAgU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlck1vZHVsZSxcbiAgICBTa3lBZ0dyaWRDZWxsRWRpdG9yQ3VycmVuY3lNb2R1bGUsXG4gICAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lNb2R1bGUsXG4gICAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwTW9kdWxlLFxuICAgIFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yTW9kdWxlLFxuICAgIFNreUFnR3JpZENlbGxSZW5kZXJlclZhbGlkYXRvclRvb2x0aXBNb2R1bGUsXG4gICAgU2t5QWdHcmlkQ2VsbFZhbGlkYXRvck1vZHVsZSxcbiAgICBTa3lBZ0dyaWRDZWxsRWRpdG9yVGV4dE1vZHVsZSxcbiAgICBTa3lEYXRhTWFuYWdlck1vZHVsZSxcbiAgICBTa3lJbmxpbmVEZWxldGVNb2R1bGUsXG4gICAgU2t5Vmlld2tlZXBlck1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreUFnR3JpZERhdGFNYW5hZ2VyQWRhcHRlckRpcmVjdGl2ZSxcbiAgICBTa3lBZ0dyaWRSb3dEZWxldGVDb21wb25lbnQsXG4gICAgU2t5QWdHcmlkUm93RGVsZXRlRGlyZWN0aXZlLFxuICAgIFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZE1vZHVsZSB7fVxuIl19
|