@firestitch/list 13.0.5 → 13.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/app/classes/actions-controller.d.ts +20 -20
  2. package/app/classes/columns-controller.d.ts +71 -71
  3. package/app/classes/data-controller.d.ts +91 -91
  4. package/app/classes/external-params-controller.d.ts +32 -32
  5. package/app/classes/index.d.ts +2 -2
  6. package/app/classes/list-controller.d.ts +191 -191
  7. package/app/classes/pagination-controller.d.ts +198 -198
  8. package/app/classes/persistance-controller.d.ts +10 -10
  9. package/app/classes/reorder-controller.d.ts +68 -68
  10. package/app/classes/selection-controller.d.ts +155 -155
  11. package/app/classes/sorting-controller.d.ts +65 -65
  12. package/app/components/body/body.component.d.ts +28 -28
  13. package/app/components/body/row/actions/actions.component.d.ts +36 -36
  14. package/app/components/body/row/cell/cell.component.d.ts +22 -22
  15. package/app/components/body/row/inline-action/inline-action.component.d.ts +13 -13
  16. package/app/components/body/row/menu-action/menu-action.component.d.ts +20 -20
  17. package/app/components/body/row/row.component.d.ts +85 -85
  18. package/app/components/customize-cols/customize-cols.component.d.ts +17 -17
  19. package/app/components/footer/footer-row/footer-cell/footer-cell.component.d.ts +7 -7
  20. package/app/components/footer/footer-row/footer-row.component.d.ts +14 -14
  21. package/app/components/footer/footer.component.d.ts +15 -15
  22. package/app/components/head/head-cell/head-cell.component.d.ts +14 -14
  23. package/app/components/head/head.component.d.ts +49 -49
  24. package/app/components/list/list.component.d.ts +128 -128
  25. package/app/components/loader/loader.component.d.ts +14 -14
  26. package/app/components/manage-saved-filters/manage-saved-filters.component.d.ts +13 -13
  27. package/app/components/pagination/pagination.component.d.ts +14 -14
  28. package/app/components/saved-filters/saved-filters.component.d.ts +15 -15
  29. package/app/components/status/status.component.d.ts +21 -21
  30. package/app/directives/cell/cell.directive.d.ts +8 -8
  31. package/app/directives/column/column.directive.d.ts +37 -37
  32. package/app/directives/content/content.directive.d.ts +5 -5
  33. package/app/directives/content-init/content-init.directive.d.ts +9 -9
  34. package/app/directives/draggable-list/draggable-list.directive.d.ts +95 -95
  35. package/app/directives/draggable-row/draggable-row.directive.d.ts +23 -23
  36. package/app/directives/empty-state/empty-state.directive.d.ts +5 -5
  37. package/app/directives/footer/footer.directive.d.ts +8 -8
  38. package/app/directives/group-expand-trigger/group-expand-trigger.directive.d.ts +10 -10
  39. package/app/directives/group-footer/group-footer.directive.d.ts +6 -6
  40. package/app/directives/group-header/group-header.directive.d.ts +6 -6
  41. package/app/directives/header/header.directive.d.ts +8 -8
  42. package/app/directives/heading/heading.directive.d.ts +5 -5
  43. package/app/directives/heading-container/heading-container.directive.d.ts +5 -5
  44. package/app/directives/index.d.ts +3 -3
  45. package/app/directives/subheading/subheading.directive.d.ts +5 -5
  46. package/app/enums/button-type.enum.d.ts +7 -7
  47. package/app/enums/page-change-type.enum.d.ts +4 -4
  48. package/app/enums/pagination-strategy.enum.d.ts +5 -5
  49. package/app/enums/row-type.enum.d.ts +6 -6
  50. package/app/enums/state.enum.d.ts +9 -9
  51. package/app/fs-list.module.d.ts +60 -60
  52. package/app/fs-list.providers.d.ts +3 -3
  53. package/app/interfaces/cellconfig.interface.d.ts +5 -5
  54. package/app/interfaces/column-config.interface.d.ts +2 -2
  55. package/app/interfaces/draggable-list.interface.d.ts +7 -7
  56. package/app/interfaces/external-params.interface.d.ts +13 -13
  57. package/app/interfaces/index.d.ts +4 -4
  58. package/app/interfaces/listconfig.interface.d.ts +247 -247
  59. package/app/interfaces/pagination-state.interface.d.ts +9 -9
  60. package/app/interfaces/pagination.interface.d.ts +13 -13
  61. package/app/interfaces/sorting-change-event.interface.d.ts +4 -4
  62. package/app/models/column-async-attribute.d.ts +5 -5
  63. package/app/models/column-attributes.d.ts +39 -39
  64. package/app/models/column.model.d.ts +61 -61
  65. package/app/models/row/base-row.d.ts +13 -13
  66. package/app/models/row/child-row.d.ts +12 -12
  67. package/app/models/row/group-footer-row.d.ts +10 -10
  68. package/app/models/row/group-row.d.ts +16 -16
  69. package/app/models/row/simple-row.d.ts +5 -5
  70. package/app/models/row-action.model.d.ts +29 -29
  71. package/app/models/row.d.ts +34 -34
  72. package/app/models/styleConfig.model.d.ts +31 -31
  73. package/app/pipes/action-label.d.ts +8 -8
  74. package/app/pipes/index.d.ts +1 -1
  75. package/app/services/group-expand-notifier.service.d.ts +11 -11
  76. package/esm2020/app/classes/actions-controller.mjs +55 -55
  77. package/esm2020/app/classes/columns-controller.mjs +205 -205
  78. package/esm2020/app/classes/data-controller.mjs +366 -366
  79. package/esm2020/app/classes/external-params-controller.mjs +146 -146
  80. package/esm2020/app/classes/index.mjs +3 -3
  81. package/esm2020/app/classes/list-controller.mjs +751 -751
  82. package/esm2020/app/classes/pagination-controller.mjs +477 -477
  83. package/esm2020/app/classes/persistance-controller.mjs +19 -19
  84. package/esm2020/app/classes/reorder-controller.mjs +181 -181
  85. package/esm2020/app/classes/selection-controller.mjs +467 -467
  86. package/esm2020/app/classes/sorting-controller.mjs +183 -183
  87. package/esm2020/app/components/body/body.component.mjs +63 -63
  88. package/esm2020/app/components/body/row/actions/actions.component.mjs +97 -97
  89. package/esm2020/app/components/body/row/cell/cell.component.mjs +107 -107
  90. package/esm2020/app/components/body/row/inline-action/inline-action.component.mjs +32 -32
  91. package/esm2020/app/components/body/row/menu-action/menu-action.component.mjs +45 -45
  92. package/esm2020/app/components/body/row/row.component.mjs +322 -322
  93. package/esm2020/app/components/customize-cols/customize-cols.component.mjs +68 -68
  94. package/esm2020/app/components/footer/footer-row/footer-cell/footer-cell.component.mjs +16 -16
  95. package/esm2020/app/components/footer/footer-row/footer-row.component.mjs +27 -27
  96. package/esm2020/app/components/footer/footer.component.mjs +30 -30
  97. package/esm2020/app/components/head/head-cell/head-cell.component.mjs +29 -29
  98. package/esm2020/app/components/head/head.component.mjs +102 -102
  99. package/esm2020/app/components/list/list.component.mjs +391 -391
  100. package/esm2020/app/components/loader/loader.component.mjs +40 -40
  101. package/esm2020/app/components/manage-saved-filters/manage-saved-filters.component.mjs +76 -76
  102. package/esm2020/app/components/pagination/pagination.component.mjs +37 -37
  103. package/esm2020/app/components/saved-filters/saved-filters.component.mjs +29 -29
  104. package/esm2020/app/components/status/status.component.mjs +66 -66
  105. package/esm2020/app/directives/cell/cell.directive.mjs +18 -18
  106. package/esm2020/app/directives/column/column.directive.mjs +120 -120
  107. package/esm2020/app/directives/content/content.directive.mjs +12 -12
  108. package/esm2020/app/directives/content-init/content-init.directive.mjs +21 -21
  109. package/esm2020/app/directives/draggable-list/draggable-list.directive.mjs +327 -327
  110. package/esm2020/app/directives/draggable-row/draggable-row.directive.mjs +77 -77
  111. package/esm2020/app/directives/empty-state/empty-state.directive.mjs +13 -13
  112. package/esm2020/app/directives/footer/footer.directive.mjs +18 -18
  113. package/esm2020/app/directives/group-expand-trigger/group-expand-trigger.directive.mjs +26 -26
  114. package/esm2020/app/directives/group-footer/group-footer.directive.mjs +13 -13
  115. package/esm2020/app/directives/group-header/group-header.directive.mjs +13 -13
  116. package/esm2020/app/directives/header/header.directive.mjs +18 -18
  117. package/esm2020/app/directives/heading/heading.directive.mjs +13 -13
  118. package/esm2020/app/directives/heading-container/heading-container.directive.mjs +13 -13
  119. package/esm2020/app/directives/index.mjs +4 -4
  120. package/esm2020/app/directives/subheading/subheading.directive.mjs +13 -13
  121. package/esm2020/app/enums/button-type.enum.mjs +9 -9
  122. package/esm2020/app/enums/page-change-type.enum.mjs +6 -6
  123. package/esm2020/app/enums/pagination-strategy.enum.mjs +7 -7
  124. package/esm2020/app/enums/row-type.enum.mjs +7 -7
  125. package/esm2020/app/enums/state.enum.mjs +11 -11
  126. package/esm2020/app/fs-list.module.mjs +245 -245
  127. package/esm2020/app/fs-list.providers.mjs +4 -4
  128. package/esm2020/app/interfaces/cellconfig.interface.mjs +2 -2
  129. package/esm2020/app/interfaces/column-config.interface.mjs +1 -1
  130. package/esm2020/app/interfaces/draggable-list.interface.mjs +2 -2
  131. package/esm2020/app/interfaces/external-params.interface.mjs +2 -2
  132. package/esm2020/app/interfaces/index.mjs +5 -5
  133. package/esm2020/app/interfaces/listconfig.interface.mjs +1 -1
  134. package/esm2020/app/interfaces/pagination-state.interface.mjs +1 -1
  135. package/esm2020/app/interfaces/pagination.interface.mjs +2 -2
  136. package/esm2020/app/interfaces/sorting-change-event.interface.mjs +2 -2
  137. package/esm2020/app/models/column-async-attribute.mjs +13 -13
  138. package/esm2020/app/models/column-attributes.mjs +131 -131
  139. package/esm2020/app/models/column.model.mjs +163 -163
  140. package/esm2020/app/models/row/base-row.mjs +23 -23
  141. package/esm2020/app/models/row/child-row.mjs +28 -28
  142. package/esm2020/app/models/row/group-footer-row.mjs +20 -20
  143. package/esm2020/app/models/row/group-row.mjs +44 -44
  144. package/esm2020/app/models/row/simple-row.mjs +10 -10
  145. package/esm2020/app/models/row-action.model.mjs +89 -89
  146. package/esm2020/app/models/row.mjs +88 -88
  147. package/esm2020/app/models/styleConfig.model.mjs +75 -75
  148. package/esm2020/app/pipes/action-label.mjs +16 -16
  149. package/esm2020/app/pipes/index.mjs +1 -1
  150. package/esm2020/app/services/group-expand-notifier.service.mjs +26 -26
  151. package/esm2020/firestitch-list.mjs +4 -4
  152. package/esm2020/public_api.mjs +45 -45
  153. package/fesm2015/firestitch-list.mjs +5710 -5710
  154. package/fesm2015/firestitch-list.mjs.map +1 -1
  155. package/fesm2020/firestitch-list.mjs +5695 -5695
  156. package/fesm2020/firestitch-list.mjs.map +1 -1
  157. package/firestitch-list.d.ts +5 -5
  158. package/package.json +1 -1
  159. package/public_api.d.ts +41 -41
@@ -1,55 +1,55 @@
1
- import { Subject } from 'rxjs';
2
- export class ActionsController {
3
- constructor() {
4
- this._actions = [];
5
- this._destroy$ = new Subject();
6
- }
7
- get destroy$() {
8
- return this._destroy$.asObservable();
9
- }
10
- get actions() {
11
- return this._actions;
12
- }
13
- get hasActions() {
14
- return this._actions.length > 0;
15
- }
16
- setFilterRef(ref) {
17
- this._filterRef = ref;
18
- }
19
- setActions(actions) {
20
- this.clearActions();
21
- this._actions = actions;
22
- if (this._reorderAction) {
23
- this._actions.unshift(this._reorderAction);
24
- }
25
- }
26
- addReorderAction(action) {
27
- const actionClickFn = action.click;
28
- this._actions.unshift(action);
29
- action.click = () => {
30
- this._filterRef.updateActions([this._doneAction]);
31
- this._filterRef.hideKeywordField();
32
- this._filterRef.hideFiltersBtn();
33
- actionClickFn(null);
34
- };
35
- this._reorderAction = action;
36
- }
37
- addReorderDoneAction(action) {
38
- this._doneAction = action;
39
- const actionClickFn = action.click;
40
- this._doneAction.click = () => {
41
- this._filterRef.updateActions(this._actions);
42
- this._filterRef.showKeywordField();
43
- this._filterRef.showFiltersBtn();
44
- actionClickFn(null);
45
- };
46
- }
47
- clearActions() {
48
- this._actions = [];
49
- this._destroy$.next();
50
- }
51
- updateDisabledState() {
52
- this._filterRef.updateDisabledState();
53
- }
54
- }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL2FjdGlvbnMtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFVNUI7UUFOUSxhQUFRLEdBQW1CLEVBQUUsQ0FBQztRQUk5QixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUV6QixDQUFDO0lBRWhCLElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sWUFBWSxDQUFDLEdBQW9CO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBdUI7UUFDdkMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBRXhCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsTUFBb0I7UUFDMUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5QixNQUFNLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRTtZQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ2pDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUE7UUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBRU0sb0JBQW9CLENBQUMsTUFBb0I7UUFDOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7UUFDMUIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUVuQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ2pDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUE7SUFDSCxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEZpbHRlckNvbXBvbmVudCB9IGZyb20gJ0BmaXJlc3RpdGNoL2ZpbHRlcic7XHJcbmltcG9ydCB7IEZzTGlzdEFjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvbGlzdGNvbmZpZy5pbnRlcmZhY2UnO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25zQ29udHJvbGxlciB7XHJcblxyXG4gIHByaXZhdGUgX2ZpbHRlclJlZjogRmlsdGVyQ29tcG9uZW50O1xyXG5cclxuICBwcml2YXRlIF9hY3Rpb25zOiBGc0xpc3RBY3Rpb25bXSA9IFtdO1xyXG4gIHByaXZhdGUgX3Jlb3JkZXJBY3Rpb246IEZzTGlzdEFjdGlvbjtcclxuICBwcml2YXRlIF9kb25lQWN0aW9uOiBGc0xpc3RBY3Rpb247XHJcblxyXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBwdWJsaWMgZ2V0IGRlc3Ryb3kkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rlc3Ryb3kkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhY3Rpb25zKCk6IEZzTGlzdEFjdGlvbltdIHtcclxuICAgIHJldHVybiB0aGlzLl9hY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBoYXNBY3Rpb25zKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnMubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRGaWx0ZXJSZWYocmVmOiBGaWx0ZXJDb21wb25lbnQpIHtcclxuICAgIHRoaXMuX2ZpbHRlclJlZiA9IHJlZjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRBY3Rpb25zKGFjdGlvbnM6IEZzTGlzdEFjdGlvbltdKSB7XHJcbiAgICB0aGlzLmNsZWFyQWN0aW9ucygpO1xyXG4gICAgdGhpcy5fYWN0aW9ucyA9IGFjdGlvbnM7XHJcblxyXG4gICAgaWYgKHRoaXMuX3Jlb3JkZXJBY3Rpb24pIHtcclxuICAgICAgdGhpcy5fYWN0aW9ucy51bnNoaWZ0KHRoaXMuX3Jlb3JkZXJBY3Rpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZFJlb3JkZXJBY3Rpb24oYWN0aW9uOiBGc0xpc3RBY3Rpb24pIHtcclxuICAgIGNvbnN0IGFjdGlvbkNsaWNrRm4gPSBhY3Rpb24uY2xpY2s7XHJcbiAgICB0aGlzLl9hY3Rpb25zLnVuc2hpZnQoYWN0aW9uKTtcclxuXHJcbiAgICBhY3Rpb24uY2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2ZpbHRlclJlZi51cGRhdGVBY3Rpb25zKFt0aGlzLl9kb25lQWN0aW9uXSk7XHJcbiAgICAgIHRoaXMuX2ZpbHRlclJlZi5oaWRlS2V5d29yZEZpZWxkKCk7XHJcbiAgICAgIHRoaXMuX2ZpbHRlclJlZi5oaWRlRmlsdGVyc0J0bigpO1xyXG4gICAgICBhY3Rpb25DbGlja0ZuKG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3Jlb3JkZXJBY3Rpb24gPSBhY3Rpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkUmVvcmRlckRvbmVBY3Rpb24oYWN0aW9uOiBGc0xpc3RBY3Rpb24pIHtcclxuICAgIHRoaXMuX2RvbmVBY3Rpb24gPSBhY3Rpb247XHJcbiAgICBjb25zdCBhY3Rpb25DbGlja0ZuID0gYWN0aW9uLmNsaWNrO1xyXG5cclxuICAgIHRoaXMuX2RvbmVBY3Rpb24uY2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2ZpbHRlclJlZi51cGRhdGVBY3Rpb25zKHRoaXMuX2FjdGlvbnMpO1xyXG4gICAgICB0aGlzLl9maWx0ZXJSZWYuc2hvd0tleXdvcmRGaWVsZCgpO1xyXG4gICAgICB0aGlzLl9maWx0ZXJSZWYuc2hvd0ZpbHRlcnNCdG4oKTtcclxuICAgICAgYWN0aW9uQ2xpY2tGbihudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckFjdGlvbnMoKSB7XHJcbiAgICB0aGlzLl9hY3Rpb25zID0gW107XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlRGlzYWJsZWRTdGF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2ZpbHRlclJlZi51cGRhdGVEaXNhYmxlZFN0YXRlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
1
+ import { Subject } from 'rxjs';
2
+ export class ActionsController {
3
+ constructor() {
4
+ this._actions = [];
5
+ this._destroy$ = new Subject();
6
+ }
7
+ get destroy$() {
8
+ return this._destroy$.asObservable();
9
+ }
10
+ get actions() {
11
+ return this._actions;
12
+ }
13
+ get hasActions() {
14
+ return this._actions.length > 0;
15
+ }
16
+ setFilterRef(ref) {
17
+ this._filterRef = ref;
18
+ }
19
+ setActions(actions) {
20
+ this.clearActions();
21
+ this._actions = actions;
22
+ if (this._reorderAction) {
23
+ this._actions.unshift(this._reorderAction);
24
+ }
25
+ }
26
+ addReorderAction(action) {
27
+ const actionClickFn = action.click;
28
+ this._actions.unshift(action);
29
+ action.click = () => {
30
+ this._filterRef.updateActions([this._doneAction]);
31
+ this._filterRef.hideKeywordField();
32
+ this._filterRef.hideFiltersBtn();
33
+ actionClickFn(null);
34
+ };
35
+ this._reorderAction = action;
36
+ }
37
+ addReorderDoneAction(action) {
38
+ this._doneAction = action;
39
+ const actionClickFn = action.click;
40
+ this._doneAction.click = () => {
41
+ this._filterRef.updateActions(this._actions);
42
+ this._filterRef.showKeywordField();
43
+ this._filterRef.showFiltersBtn();
44
+ actionClickFn(null);
45
+ };
46
+ }
47
+ clearActions() {
48
+ this._actions = [];
49
+ this._destroy$.next();
50
+ }
51
+ updateDisabledState() {
52
+ this._filterRef.updateDisabledState();
53
+ }
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL2FjdGlvbnMtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFVNUI7UUFOUSxhQUFRLEdBQW1CLEVBQUUsQ0FBQztRQUk5QixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUV6QixDQUFDO0lBRWhCLElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sWUFBWSxDQUFDLEdBQW9CO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBdUI7UUFDdkMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBRXhCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsTUFBb0I7UUFDMUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5QixNQUFNLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRTtZQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ2pDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUE7UUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBRU0sb0JBQW9CLENBQUMsTUFBb0I7UUFDOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7UUFDMUIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUVuQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ2pDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUE7SUFDSCxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcbmltcG9ydCB7IEZzTGlzdEFjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvbGlzdGNvbmZpZy5pbnRlcmZhY2UnO1xuXG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25zQ29udHJvbGxlciB7XG5cbiAgcHJpdmF0ZSBfZmlsdGVyUmVmOiBGaWx0ZXJDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBfYWN0aW9uczogRnNMaXN0QWN0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBfcmVvcmRlckFjdGlvbjogRnNMaXN0QWN0aW9uO1xuICBwcml2YXRlIF9kb25lQWN0aW9uOiBGc0xpc3RBY3Rpb247XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgZ2V0IGRlc3Ryb3kkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9kZXN0cm95JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aW9ucygpOiBGc0xpc3RBY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0FjdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRGaWx0ZXJSZWYocmVmOiBGaWx0ZXJDb21wb25lbnQpIHtcbiAgICB0aGlzLl9maWx0ZXJSZWYgPSByZWY7XG4gIH1cblxuICBwdWJsaWMgc2V0QWN0aW9ucyhhY3Rpb25zOiBGc0xpc3RBY3Rpb25bXSkge1xuICAgIHRoaXMuY2xlYXJBY3Rpb25zKCk7XG4gICAgdGhpcy5fYWN0aW9ucyA9IGFjdGlvbnM7XG5cbiAgICBpZiAodGhpcy5fcmVvcmRlckFjdGlvbikge1xuICAgICAgdGhpcy5fYWN0aW9ucy51bnNoaWZ0KHRoaXMuX3Jlb3JkZXJBY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRSZW9yZGVyQWN0aW9uKGFjdGlvbjogRnNMaXN0QWN0aW9uKSB7XG4gICAgY29uc3QgYWN0aW9uQ2xpY2tGbiA9IGFjdGlvbi5jbGljaztcbiAgICB0aGlzLl9hY3Rpb25zLnVuc2hpZnQoYWN0aW9uKTtcblxuICAgIGFjdGlvbi5jbGljayA9ICgpID0+IHtcbiAgICAgIHRoaXMuX2ZpbHRlclJlZi51cGRhdGVBY3Rpb25zKFt0aGlzLl9kb25lQWN0aW9uXSk7XG4gICAgICB0aGlzLl9maWx0ZXJSZWYuaGlkZUtleXdvcmRGaWVsZCgpO1xuICAgICAgdGhpcy5fZmlsdGVyUmVmLmhpZGVGaWx0ZXJzQnRuKCk7XG4gICAgICBhY3Rpb25DbGlja0ZuKG51bGwpO1xuICAgIH1cblxuICAgIHRoaXMuX3Jlb3JkZXJBY3Rpb24gPSBhY3Rpb247XG4gIH1cblxuICBwdWJsaWMgYWRkUmVvcmRlckRvbmVBY3Rpb24oYWN0aW9uOiBGc0xpc3RBY3Rpb24pIHtcbiAgICB0aGlzLl9kb25lQWN0aW9uID0gYWN0aW9uO1xuICAgIGNvbnN0IGFjdGlvbkNsaWNrRm4gPSBhY3Rpb24uY2xpY2s7XG5cbiAgICB0aGlzLl9kb25lQWN0aW9uLmNsaWNrID0gKCkgPT4ge1xuICAgICAgdGhpcy5fZmlsdGVyUmVmLnVwZGF0ZUFjdGlvbnModGhpcy5fYWN0aW9ucyk7XG4gICAgICB0aGlzLl9maWx0ZXJSZWYuc2hvd0tleXdvcmRGaWVsZCgpO1xuICAgICAgdGhpcy5fZmlsdGVyUmVmLnNob3dGaWx0ZXJzQnRuKCk7XG4gICAgICBhY3Rpb25DbGlja0ZuKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbGVhckFjdGlvbnMoKSB7XG4gICAgdGhpcy5fYWN0aW9ucyA9IFtdO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVEaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZpbHRlclJlZi51cGRhdGVEaXNhYmxlZFN0YXRlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,206 +1,206 @@
1
- import { isNumber } from 'lodash-es';
2
- import { BehaviorSubject, merge, Subject } from 'rxjs';
3
- import { skip, takeUntil, tap } from 'rxjs/operators';
4
- import { Column } from '../models/column.model';
5
- export class ColumnsController {
6
- constructor() {
7
- this._visibleColumns$ = new BehaviorSubject([]);
8
- this._visibleColumnsShared$ = this._visibleColumns$.pipe();
9
- this._theadClass = '';
10
- this._isConfigured = false;
11
- this._loadFnConfigured = false;
12
- this._changeFnConfigured = false;
13
- this._columnsFetched = false;
14
- this._hasHeader = false;
15
- this._hasFooter = false;
16
- this._columns = [];
17
- this._columnsUpdated$ = new Subject();
18
- this._destroy$ = new Subject();
19
- }
20
- get columns() {
21
- return this._columns.slice();
22
- }
23
- get visibleColumns() {
24
- return this._visibleColumns$.getValue();
25
- }
26
- get visibleColumns$() {
27
- return this._visibleColumnsShared$;
28
- }
29
- get columnsForDialog() {
30
- const hasCustomTitle = !!this._customizeFieldTitleFn;
31
- const hasCustomDisabledStatus = !!this._customizeFieldDisabledFn;
32
- const hasCustomTooltip = !!this._columnTooltipFn;
33
- return this._columns
34
- .filter((column) => column.customize && !!column.name)
35
- .map((column) => {
36
- const title = hasCustomTitle
37
- ? this._customizeFieldTitleFn(column.name, column.title)
38
- : column.name;
39
- const disabled = hasCustomDisabledStatus
40
- ? this._customizeFieldDisabledFn(column.name)
41
- : false;
42
- const tooltip = hasCustomTooltip
43
- ? this._columnTooltipFn(column.name, column.visible, disabled)
44
- : void 0;
45
- return {
46
- template: column.headerTemplate,
47
- name: column.name,
48
- show: column.visible,
49
- title: title,
50
- disabled: disabled,
51
- tooltip: tooltip,
52
- };
53
- });
54
- }
55
- get columnsFetched() {
56
- return this._columnsFetched;
57
- }
58
- get hasHeader() {
59
- return this._hasHeader;
60
- }
61
- get hasFooter() {
62
- return this._hasFooter;
63
- }
64
- get theadClass() {
65
- return this._theadClass;
66
- }
67
- get configured() {
68
- return this._isConfigured;
69
- }
70
- get loadFnConfigured() {
71
- return this._loadFnConfigured;
72
- }
73
- get changeFnConfigured() {
74
- return this._changeFnConfigured;
75
- }
76
- get changeFn() {
77
- return this._changeFn;
78
- }
79
- get visibleColumnsNames() {
80
- return this.visibleColumns
81
- .map((column) => column.name)
82
- .filter((name) => !!name);
83
- }
84
- setDefaults(defaults) {
85
- this._defaultConfigs = defaults;
86
- }
87
- /**
88
- * Set data from list config
89
- * @param config
90
- */
91
- initConfig(config) {
92
- if (config) {
93
- if (config.load) {
94
- this._loadFn = config.load;
95
- this._loadFnConfigured = true;
96
- }
97
- if (config.change) {
98
- this._changeFn = config.change;
99
- this._changeFnConfigured = true;
100
- }
101
- if (config.title) {
102
- this._customizeFieldTitleFn = config.title;
103
- }
104
- if (config.disabled) {
105
- this._customizeFieldDisabledFn = config.disabled;
106
- }
107
- if (config.tooltip) {
108
- this._columnTooltipFn = config.tooltip;
109
- }
110
- this._isConfigured = true;
111
- }
112
- }
113
- /**
114
- * Base initialization for columns
115
- * @param templates
116
- */
117
- initializeColumns(templates) {
118
- this._columns = [];
119
- templates.forEach((column) => {
120
- const col = new Column(column, this._defaultConfigs);
121
- if (col.headerTemplate || col.title) {
122
- this._hasHeader = true;
123
- }
124
- if (col.footerTemplate) {
125
- this._hasFooter = true;
126
- }
127
- this._columns.push(col);
128
- });
129
- this._theadClass = this.hasHeader ? 'has-header' : '';
130
- this._updateColspans('headerConfigs', 'headerColspanned');
131
- this._updateColspans('groupHeaderConfigs', 'groupHeaderColspanned');
132
- this._updateColspans('groupFooterConfigs', 'groupFooterColspanned');
133
- this._updateColspans('cellConfigs', 'cellColspanned');
134
- this._updateColspans('footerConfigs', 'footerColspanned');
135
- this.updateVisibleColumns();
136
- this._listenColumnVisibilityUpdates();
137
- }
138
- /**
139
- * Load visiblity config for columns from remote
140
- */
141
- loadRemoteColumnConfigs() {
142
- return this._loadFn()
143
- .pipe(takeUntil(this._destroy$), tap((columnConfigs) => {
144
- this._columnsFetched = true;
145
- this.updateVisibilityForCols(columnConfigs);
146
- }));
147
- }
148
- /**
149
- * Set visible columns based on current columns show status
150
- */
151
- updateVisibleColumns() {
152
- this._visibleColumns$.next(this._columns.filter((column) => column.visible) || []);
153
- }
154
- /**
155
- * Update visibility based on passed config
156
- * @param columnsConfig
157
- */
158
- updateVisibilityForCols(columnsConfig) {
159
- columnsConfig.forEach((columnConfig) => {
160
- const col = this._columns
161
- .find((column) => column.name === columnConfig.name);
162
- if (col) {
163
- col.updateVisibility(columnConfig.show);
164
- }
165
- });
166
- this.updateVisibleColumns();
167
- }
168
- destroy() {
169
- this._destroy$.next();
170
- this._destroy$.complete();
171
- this._columnsUpdated$.complete();
172
- this._columns = void 0;
173
- this._visibleColumns$ = void 0;
174
- this._defaultConfigs = void 0;
175
- this._loadFn = void 0;
176
- this._changeFn = void 0;
177
- }
178
- _listenColumnVisibilityUpdates() {
179
- this._columnsUpdated$.next();
180
- const columnsVisibility = this._columns.map((column) => {
181
- return column.visible$.pipe(skip(1));
182
- });
183
- merge(...columnsVisibility)
184
- .pipe(takeUntil(this._columnsUpdated$), takeUntil(this._destroy$))
185
- .subscribe(() => {
186
- this.updateVisibleColumns();
187
- });
188
- }
189
- _updateColspans(config, updateFlag) {
190
- this._columns.forEach((col, index) => {
191
- if (col[config].colspan !== void 0) {
192
- const spanTo = index + +col[config].colspan;
193
- if (!isNumber(spanTo)) {
194
- return;
195
- }
196
- this._columns[index][updateFlag] = false;
197
- for (let i = index + 1; i < spanTo; i++) {
198
- if (this._columns[i]) {
199
- this._columns[i][updateFlag] = true;
200
- }
201
- }
202
- }
203
- });
204
- }
205
- }
1
+ import { isNumber } from 'lodash-es';
2
+ import { BehaviorSubject, merge, Subject } from 'rxjs';
3
+ import { skip, takeUntil, tap } from 'rxjs/operators';
4
+ import { Column } from '../models/column.model';
5
+ export class ColumnsController {
6
+ constructor() {
7
+ this._visibleColumns$ = new BehaviorSubject([]);
8
+ this._visibleColumnsShared$ = this._visibleColumns$.pipe();
9
+ this._theadClass = '';
10
+ this._isConfigured = false;
11
+ this._loadFnConfigured = false;
12
+ this._changeFnConfigured = false;
13
+ this._columnsFetched = false;
14
+ this._hasHeader = false;
15
+ this._hasFooter = false;
16
+ this._columns = [];
17
+ this._columnsUpdated$ = new Subject();
18
+ this._destroy$ = new Subject();
19
+ }
20
+ get columns() {
21
+ return this._columns.slice();
22
+ }
23
+ get visibleColumns() {
24
+ return this._visibleColumns$.getValue();
25
+ }
26
+ get visibleColumns$() {
27
+ return this._visibleColumnsShared$;
28
+ }
29
+ get columnsForDialog() {
30
+ const hasCustomTitle = !!this._customizeFieldTitleFn;
31
+ const hasCustomDisabledStatus = !!this._customizeFieldDisabledFn;
32
+ const hasCustomTooltip = !!this._columnTooltipFn;
33
+ return this._columns
34
+ .filter((column) => column.customize && !!column.name)
35
+ .map((column) => {
36
+ const title = hasCustomTitle
37
+ ? this._customizeFieldTitleFn(column.name, column.title)
38
+ : column.name;
39
+ const disabled = hasCustomDisabledStatus
40
+ ? this._customizeFieldDisabledFn(column.name)
41
+ : false;
42
+ const tooltip = hasCustomTooltip
43
+ ? this._columnTooltipFn(column.name, column.visible, disabled)
44
+ : void 0;
45
+ return {
46
+ template: column.headerTemplate,
47
+ name: column.name,
48
+ show: column.visible,
49
+ title: title,
50
+ disabled: disabled,
51
+ tooltip: tooltip,
52
+ };
53
+ });
54
+ }
55
+ get columnsFetched() {
56
+ return this._columnsFetched;
57
+ }
58
+ get hasHeader() {
59
+ return this._hasHeader;
60
+ }
61
+ get hasFooter() {
62
+ return this._hasFooter;
63
+ }
64
+ get theadClass() {
65
+ return this._theadClass;
66
+ }
67
+ get configured() {
68
+ return this._isConfigured;
69
+ }
70
+ get loadFnConfigured() {
71
+ return this._loadFnConfigured;
72
+ }
73
+ get changeFnConfigured() {
74
+ return this._changeFnConfigured;
75
+ }
76
+ get changeFn() {
77
+ return this._changeFn;
78
+ }
79
+ get visibleColumnsNames() {
80
+ return this.visibleColumns
81
+ .map((column) => column.name)
82
+ .filter((name) => !!name);
83
+ }
84
+ setDefaults(defaults) {
85
+ this._defaultConfigs = defaults;
86
+ }
87
+ /**
88
+ * Set data from list config
89
+ * @param config
90
+ */
91
+ initConfig(config) {
92
+ if (config) {
93
+ if (config.load) {
94
+ this._loadFn = config.load;
95
+ this._loadFnConfigured = true;
96
+ }
97
+ if (config.change) {
98
+ this._changeFn = config.change;
99
+ this._changeFnConfigured = true;
100
+ }
101
+ if (config.title) {
102
+ this._customizeFieldTitleFn = config.title;
103
+ }
104
+ if (config.disabled) {
105
+ this._customizeFieldDisabledFn = config.disabled;
106
+ }
107
+ if (config.tooltip) {
108
+ this._columnTooltipFn = config.tooltip;
109
+ }
110
+ this._isConfigured = true;
111
+ }
112
+ }
113
+ /**
114
+ * Base initialization for columns
115
+ * @param templates
116
+ */
117
+ initializeColumns(templates) {
118
+ this._columns = [];
119
+ templates.forEach((column) => {
120
+ const col = new Column(column, this._defaultConfigs);
121
+ if (col.headerTemplate || col.title) {
122
+ this._hasHeader = true;
123
+ }
124
+ if (col.footerTemplate) {
125
+ this._hasFooter = true;
126
+ }
127
+ this._columns.push(col);
128
+ });
129
+ this._theadClass = this.hasHeader ? 'has-header' : '';
130
+ this._updateColspans('headerConfigs', 'headerColspanned');
131
+ this._updateColspans('groupHeaderConfigs', 'groupHeaderColspanned');
132
+ this._updateColspans('groupFooterConfigs', 'groupFooterColspanned');
133
+ this._updateColspans('cellConfigs', 'cellColspanned');
134
+ this._updateColspans('footerConfigs', 'footerColspanned');
135
+ this.updateVisibleColumns();
136
+ this._listenColumnVisibilityUpdates();
137
+ }
138
+ /**
139
+ * Load visiblity config for columns from remote
140
+ */
141
+ loadRemoteColumnConfigs() {
142
+ return this._loadFn()
143
+ .pipe(takeUntil(this._destroy$), tap((columnConfigs) => {
144
+ this._columnsFetched = true;
145
+ this.updateVisibilityForCols(columnConfigs);
146
+ }));
147
+ }
148
+ /**
149
+ * Set visible columns based on current columns show status
150
+ */
151
+ updateVisibleColumns() {
152
+ this._visibleColumns$.next(this._columns.filter((column) => column.visible) || []);
153
+ }
154
+ /**
155
+ * Update visibility based on passed config
156
+ * @param columnsConfig
157
+ */
158
+ updateVisibilityForCols(columnsConfig) {
159
+ columnsConfig.forEach((columnConfig) => {
160
+ const col = this._columns
161
+ .find((column) => column.name === columnConfig.name);
162
+ if (col) {
163
+ col.updateVisibility(columnConfig.show);
164
+ }
165
+ });
166
+ this.updateVisibleColumns();
167
+ }
168
+ destroy() {
169
+ this._destroy$.next();
170
+ this._destroy$.complete();
171
+ this._columnsUpdated$.complete();
172
+ this._columns = void 0;
173
+ this._visibleColumns$ = void 0;
174
+ this._defaultConfigs = void 0;
175
+ this._loadFn = void 0;
176
+ this._changeFn = void 0;
177
+ }
178
+ _listenColumnVisibilityUpdates() {
179
+ this._columnsUpdated$.next();
180
+ const columnsVisibility = this._columns.map((column) => {
181
+ return column.visible$.pipe(skip(1));
182
+ });
183
+ merge(...columnsVisibility)
184
+ .pipe(takeUntil(this._columnsUpdated$), takeUntil(this._destroy$))
185
+ .subscribe(() => {
186
+ this.updateVisibleColumns();
187
+ });
188
+ }
189
+ _updateColspans(config, updateFlag) {
190
+ this._columns.forEach((col, index) => {
191
+ if (col[config].colspan !== void 0) {
192
+ const spanTo = index + +col[config].colspan;
193
+ if (!isNumber(spanTo)) {
194
+ return;
195
+ }
196
+ this._columns[index][updateFlag] = false;
197
+ for (let i = index + 1; i < spanTo; i++) {
198
+ if (this._columns[i]) {
199
+ this._columns[i][updateFlag] = true;
200
+ }
201
+ }
202
+ }
203
+ });
204
+ }
205
+ }
206
206
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL2NvbHVtbnMtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFXaEQsTUFBTSxPQUFPLGlCQUFpQjtJQXVCNUI7UUFyQlEscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQVcsRUFBRSxDQUFDLENBQUM7UUFDckQsMkJBQXNCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RELGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBT2pCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGFBQVEsR0FBYSxFQUFFLENBQUM7UUFHeEIscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN2QyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUV6QixDQUFDO0lBRWhCLElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxnQkFB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fSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2tpcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IENvbHVtbiB9IGZyb20gJy4uL21vZGVscy9jb2x1bW4ubW9kZWwnO1xuaW1wb3J0IHtcbiAgRnNMaXN0Q29sdW1uQ2hhbmdlRm4sXG4gIEZzTGlzdENvbHVtbkNvbmZpZyxcbiAgRnNMaXN0Q29sdW1uRGlzYWJsZWRGbixcbiAgRnNMaXN0Q29sdW1uTG9hZEZuLFxuICBGc0xpc3RDb2x1bW5UaXRsZUZuLFxuICBGc0xpc3RDb2x1bW5Ub29sdGlwRm4sXG59IGZyb20gJy4uL2ludGVyZmFjZXMvbGlzdGNvbmZpZy5pbnRlcmZhY2UnO1xuXG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5zQ29udHJvbGxlciB7XG5cbiAgcHJpdmF0ZSBfdmlzaWJsZUNvbHVtbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb2x1bW5bXT4oW10pO1xuICBwcml2YXRlIF92aXNpYmxlQ29sdW1uc1NoYXJlZCQgPSB0aGlzLl92aXNpYmxlQ29sdW1ucyQucGlwZSgpO1xuICBwcml2YXRlIF90aGVhZENsYXNzID0gJyc7XG4gIHByaXZhdGUgX2xvYWRGbjogRnNMaXN0Q29sdW1uTG9hZEZuO1xuICBwcml2YXRlIF9jaGFuZ2VGbjogRnNMaXN0Q29sdW1uQ2hhbmdlRm47XG4gIHByaXZhdGUgX2N1c3RvbWl6ZUZpZWxkVGl0bGVGbjogRnNMaXN0Q29sdW1uVGl0bGVGbjtcbiAgcHJpdmF0ZSBfY3VzdG9taXplRmllbGREaXNhYmxlZEZuOiBGc0xpc3RDb2x1bW5EaXNhYmxlZEZuO1xuICBwcml2YXRlIF9jb2x1bW5Ub29sdGlwRm46IEZzTGlzdENvbHVtblRvb2x0aXBGbjtcblxuICBwcml2YXRlIF9pc0NvbmZpZ3VyZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbG9hZEZuQ29uZmlndXJlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9jaGFuZ2VGbkNvbmZpZ3VyZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfY29sdW1uc0ZldGNoZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaGFzSGVhZGVyID0gZmFsc2U7XG4gIHByaXZhdGUgX2hhc0Zvb3RlciA9IGZhbHNlO1xuICBwcml2YXRlIF9jb2x1bW5zOiBDb2x1bW5bXSA9IFtdO1xuICBwcml2YXRlIF9kZWZhdWx0Q29uZmlncztcblxuICBwcml2YXRlIF9jb2x1bW5zVXBkYXRlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBnZXQgY29sdW1ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1ucy5zbGljZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCB2aXNpYmxlQ29sdW1ucygpOiBDb2x1bW5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGVDb2x1bW5zJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCB2aXNpYmxlQ29sdW1ucyQoKTogT2JzZXJ2YWJsZTxDb2x1bW5bXT4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlQ29sdW1uc1NoYXJlZCQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbHVtbnNGb3JEaWFsb2coKSB7XG4gICAgY29uc3QgaGFzQ3VzdG9tVGl0bGUgPSAhIXRoaXMuX2N1c3RvbWl6ZUZpZWxkVGl0bGVGbjtcbiAgICBjb25zdCBoYXNDdXN0b21EaXNhYmxlZFN0YXR1cyA9ICEhdGhpcy5fY3VzdG9taXplRmllbGREaXNhYmxlZEZuO1xuICAgIGNvbnN0IGhhc0N1c3RvbVRvb2x0aXAgPSAhIXRoaXMuX2NvbHVtblRvb2x0aXBGbjtcblxuICAgIHJldHVybiB0aGlzLl9jb2x1bW5zXG4gICAgICAuZmlsdGVyKChjb2x1bW4pID0+IGNvbHVtbi5jdXN0b21pemUgJiYgISFjb2x1bW4ubmFtZSlcbiAgICAgIC5tYXAoKGNvbHVtbikgPT4ge1xuICAgICAgICBjb25zdCB0aXRsZSA9IGhhc0N1c3RvbVRpdGxlXG4gICAgICAgICAgPyB0aGlzLl9jdXN0b21pemVGaWVsZFRpdGxlRm4oY29sdW1uLm5hbWUsIGNvbHVtbi50aXRsZSlcbiAgICAgICAgICA6IGNvbHVtbi5uYW1lO1xuXG4gICAgICAgIGNvbnN0IGRpc2FibGVkID0gaGFzQ3VzdG9tRGlzYWJsZWRTdGF0dXNcbiAgICAgICAgICA/IHRoaXMuX2N1c3RvbWl6ZUZpZWxkRGlzYWJsZWRGbihjb2x1bW4ubmFtZSlcbiAgICAgICAgICA6IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHRvb2x0aXAgPSBoYXNDdXN0b21Ub29sdGlwXG4gICAgICAgICAgPyB0aGlzLl9jb2x1bW5Ub29sdGlwRm4oY29sdW1uLm5hbWUsIGNvbHVtbi52aXNpYmxlLCBkaXNhYmxlZClcbiAgICAgICAgICA6IHZvaWQgMDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRlbXBsYXRlOiBjb2x1bW4uaGVhZGVyVGVtcGxhdGUsXG4gICAgICAgICAgbmFtZTogY29sdW1uLm5hbWUsXG4gICAgICAgICAgc2hvdzogY29sdW1uLnZpc2libGUsXG4gICAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICAgICAgICB0b29sdGlwOiB0b29sdGlwLFxuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29sdW1uc0ZldGNoZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbnNGZXRjaGVkO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNIZWFkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hhc0hlYWRlcjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzRm9vdGVyKCkge1xuICAgIHJldHVybiB0aGlzLl9oYXNGb290ZXI7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRoZWFkQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RoZWFkQ2xhc3M7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbmZpZ3VyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzQ29uZmlndXJlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbG9hZEZuQ29uZmlndXJlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZEZuQ29uZmlndXJlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhbmdlRm5Db25maWd1cmVkKCkge1xuICAgIHJldHVybiB0aGlzLl9jaGFuZ2VGbkNvbmZpZ3VyZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoYW5nZUZuKCkge1xuICAgIHJldHVybiB0aGlzLl9jaGFuZ2VGbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlzaWJsZUNvbHVtbnNOYW1lcygpIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlQ29sdW1uc1xuICAgICAgLm1hcCgoY29sdW1uKSA9PiBjb2x1bW4ubmFtZSlcbiAgICAgIC5maWx0ZXIoKG5hbWUpID0+ICEhbmFtZSk7XG4gIH1cblxuICBwdWJsaWMgc2V0RGVmYXVsdHMoZGVmYXVsdHMpIHtcbiAgICB0aGlzLl9kZWZhdWx0Q29uZmlncyA9IGRlZmF1bHRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBkYXRhIGZyb20gbGlzdCBjb25maWdcbiAgICogQHBhcmFtIGNvbmZpZ1xuICAgKi9cbiAgcHVibGljIGluaXRDb25maWcoY29uZmlnOiBGc0xpc3RDb2x1bW5Db25maWcpIHtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICBpZiAoY29uZmlnLmxvYWQpIHtcbiAgICAgICAgdGhpcy5fbG9hZEZuID0gY29uZmlnLmxvYWQ7XG4gICAgICAgIHRoaXMuX2xvYWRGbkNvbmZpZ3VyZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29uZmlnLmNoYW5nZSkge1xuICAgICAgICB0aGlzLl9jaGFuZ2VGbiA9IGNvbmZpZy5jaGFuZ2U7XG4gICAgICAgIHRoaXMuX2NoYW5nZUZuQ29uZmlndXJlZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb25maWcudGl0bGUpIHtcbiAgICAgICAgdGhpcy5fY3VzdG9taXplRmllbGRUaXRsZUZuID0gY29uZmlnLnRpdGxlO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29uZmlnLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuX2N1c3RvbWl6ZUZpZWxkRGlzYWJsZWRGbiA9IGNvbmZpZy5kaXNhYmxlZDtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbmZpZy50b29sdGlwKSB7XG4gICAgICAgIHRoaXMuX2NvbHVtblRvb2x0aXBGbiA9IGNvbmZpZy50b29sdGlwO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9pc0NvbmZpZ3VyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCYXNlIGluaXRpYWxpemF0aW9uIGZvciBjb2x1bW5zXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZXNcbiAgICovXG4gIHB1YmxpYyBpbml0aWFsaXplQ29sdW1ucyh0ZW1wbGF0ZXMpIHtcbiAgICB0aGlzLl9jb2x1bW5zID0gW107XG5cbiAgICB0ZW1wbGF0ZXMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICBjb25zdCBjb2wgPSBuZXcgQ29sdW1uKGNvbHVtbiwgdGhpcy5fZGVmYXVsdENvbmZpZ3MpO1xuXG5cbiAgICAgIGlmIChjb2wuaGVhZGVyVGVtcGxhdGUgfHwgY29sLnRpdGxlKSB7XG4gICAgICAgIHRoaXMuX2hhc0hlYWRlciA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoY29sLmZvb3RlclRlbXBsYXRlKSB7XG4gICAgICAgIHRoaXMuX2hhc0Zvb3RlciA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2NvbHVtbnMucHVzaChjb2wpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fdGhlYWRDbGFzcyA9IHRoaXMuaGFzSGVhZGVyID8gJ2hhcy1oZWFkZXInIDogJyc7XG5cbiAgICB0aGlzLl91cGRhdGVDb2xzcGFucygnaGVhZGVyQ29uZmlncycsICdoZWFkZXJDb2xzcGFubmVkJyk7XG4gICAgdGhpcy5fdXBkYXRlQ29sc3BhbnMoJ2dyb3VwSGVhZGVyQ29uZmlncycsICdncm91cEhlYWRlckNvbHNwYW5uZWQnKTtcbiAgICB0aGlzLl91cGRhdGVDb2xzcGFucygnZ3JvdXBGb290ZXJDb25maWdzJywgJ2dyb3VwRm9vdGVyQ29sc3Bhbm5lZCcpO1xuICAgIHRoaXMuX3VwZGF0ZUNvbHNwYW5zKCdjZWxsQ29uZmlncycsICdjZWxsQ29sc3Bhbm5lZCcpO1xuICAgIHRoaXMuX3VwZGF0ZUNvbHNwYW5zKCdmb290ZXJDb25maWdzJywgJ2Zvb3RlckNvbHNwYW5uZWQnKTtcblxuICAgIHRoaXMudXBkYXRlVmlzaWJsZUNvbHVtbnMoKTtcbiAgICB0aGlzLl9saXN0ZW5Db2x1bW5WaXNpYmlsaXR5VXBkYXRlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdmlzaWJsaXR5IGNvbmZpZyBmb3IgY29sdW1ucyBmcm9tIHJlbW90ZVxuICAgKi9cbiAgcHVibGljIGxvYWRSZW1vdGVDb2x1bW5Db25maWdzKCkge1xuICAgIHJldHVybiB0aGlzLl9sb2FkRm4oKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIHRhcCgoY29sdW1uQ29uZmlncykgPT4ge1xuICAgICAgICAgIHRoaXMuX2NvbHVtbnNGZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVZpc2liaWxpdHlGb3JDb2xzKGNvbHVtbkNvbmZpZ3MpO1xuICAgICAgICB9KVxuICAgICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB2aXNpYmxlIGNvbHVtbnMgYmFzZWQgb24gY3VycmVudCBjb2x1bW5zIHNob3cgc3RhdHVzXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlVmlzaWJsZUNvbHVtbnMoKSB7XG4gICAgdGhpcy5fdmlzaWJsZUNvbHVtbnMkLm5leHQoXG4gICAgICB0aGlzLl9jb2x1bW5zLmZpbHRlcigoY29sdW1uKSA9PiBjb2x1bW4udmlzaWJsZSkgfHwgW11cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB2aXNpYmlsaXR5IGJhc2VkIG9uIHBhc3NlZCBjb25maWdcbiAgICogQHBhcmFtIGNvbHVtbnNDb25maWdcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVWaXNpYmlsaXR5Rm9yQ29scyhjb2x1bW5zQ29uZmlnKSB7XG4gICAgY29sdW1uc0NvbmZpZy5mb3JFYWNoKChjb2x1bW5Db25maWcpID0+IHtcbiAgICAgIGNvbnN0IGNvbCA9IHRoaXMuX2NvbHVtbnNcbiAgICAgICAgLmZpbmQoKGNvbHVtbikgPT4gY29sdW1uLm5hbWUgPT09IGNvbHVtbkNvbmZpZy5uYW1lKTtcblxuICAgICAgaWYgKGNvbCkge1xuICAgICAgICBjb2wudXBkYXRlVmlzaWJpbGl0eShjb2x1bW5Db25maWcuc2hvdyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnVwZGF0ZVZpc2libGVDb2x1bW5zKCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9jb2x1bW5zVXBkYXRlZCQuY29tcGxldGUoKTtcblxuICAgIHRoaXMuX2NvbHVtbnMgPSB2b2lkIDA7XG4gICAgdGhpcy5fdmlzaWJsZUNvbHVtbnMkID0gdm9pZCAwO1xuICAgIHRoaXMuX2RlZmF1bHRDb25maWdzID0gdm9pZCAwO1xuXG4gICAgdGhpcy5fbG9hZEZuID0gdm9pZCAwO1xuICAgIHRoaXMuX2NoYW5nZUZuID0gdm9pZCAwO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuQ29sdW1uVmlzaWJpbGl0eVVwZGF0ZXMoKSB7XG4gICAgdGhpcy5fY29sdW1uc1VwZGF0ZWQkLm5leHQoKTtcblxuICAgIGNvbnN0IGNvbHVtbnNWaXNpYmlsaXR5ID0gdGhpcy5fY29sdW1ucy5tYXAoKGNvbHVtbikgPT4ge1xuICAgICAgcmV0dXJuIGNvbHVtbi52aXNpYmxlJC5waXBlKHNraXAoMSkpXG4gICAgfSk7XG5cbiAgICBtZXJnZSguLi5jb2x1bW5zVmlzaWJpbGl0eSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fY29sdW1uc1VwZGF0ZWQkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZVZpc2libGVDb2x1bW5zKCk7XG4gICAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQ29sc3BhbnMoY29uZmlnLCB1cGRhdGVGbGFnKSB7XG4gICAgdGhpcy5fY29sdW1ucy5mb3JFYWNoKChjb2wsIGluZGV4KSA9PiB7XG5cbiAgICAgIGlmIChjb2xbY29uZmlnXS5jb2xzcGFuICE9PSB2b2lkIDApIHtcbiAgICAgICAgY29uc3Qgc3BhblRvID0gaW5kZXggKyArY29sW2NvbmZpZ10uY29sc3BhbjtcblxuICAgICAgICBpZiAoIWlzTnVtYmVyKHNwYW5UbykpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY29sdW1uc1tpbmRleF1bdXBkYXRlRmxhZ10gPSBmYWxzZTtcblxuICAgICAgICBmb3IgKGxldCBpID0gaW5kZXggKyAxOyBpIDwgc3BhblRvOyBpKyspIHtcbiAgICAgICAgICBpZiAodGhpcy5fY29sdW1uc1tpXSkge1xuICAgICAgICAgICAgdGhpcy5fY29sdW1uc1tpXVt1cGRhdGVGbGFnXSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG59XG4iXX0=