@skyux/ag-grid 5.9.4 → 6.0.0-beta.10

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