@firestitch/list 12.8.0 → 12.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) 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 +90 -90
  4. package/app/classes/external-params-controller.d.ts +31 -31
  5. package/app/classes/index.d.ts +2 -2
  6. package/app/classes/list-controller.d.ts +174 -174
  7. package/app/classes/pagination-controller.d.ts +189 -189
  8. package/app/classes/persistance-controller.d.ts +10 -10
  9. package/app/classes/reorder-controller.d.ts +62 -62
  10. package/app/classes/selection-controller.d.ts +141 -141
  11. package/app/classes/sorting-controller.d.ts +64 -64
  12. package/app/components/body/body.component.d.ts +32 -32
  13. package/app/components/body/row/actions/actions.component.d.ts +34 -34
  14. package/app/components/body/row/cell/cell.component.d.ts +23 -23
  15. package/app/components/body/row/inline-action/inline-action.component.d.ts +16 -16
  16. package/app/components/body/row/menu-action/menu-action.component.d.ts +14 -14
  17. package/app/components/body/row/row.component.d.ts +72 -72
  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 +11 -11
  21. package/app/components/footer/footer.component.d.ts +11 -11
  22. package/app/components/head/head-cell/head-cell.component.d.ts +14 -14
  23. package/app/components/head/head.component.d.ts +43 -43
  24. package/app/components/list/list.component.d.ts +116 -116
  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 +33 -33
  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 +80 -80
  35. package/app/directives/draggable-row/draggable-row.directive.d.ts +21 -21
  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/enums/button-type.enum.d.ts +7 -7
  43. package/app/enums/page-change-type.enum.d.ts +4 -4
  44. package/app/enums/pagination-strategy.enum.d.ts +5 -5
  45. package/app/enums/row-type.enum.d.ts +6 -6
  46. package/app/enums/state.enum.d.ts +9 -9
  47. package/app/fs-list.module.d.ts +57 -57
  48. package/app/fs-list.providers.d.ts +3 -3
  49. package/app/interfaces/cellconfig.interface.d.ts +5 -5
  50. package/app/interfaces/column-config.interface.d.ts +2 -2
  51. package/app/interfaces/draggable-list.interface.d.ts +7 -7
  52. package/app/interfaces/external-params.interface.d.ts +13 -13
  53. package/app/interfaces/index.d.ts +3 -3
  54. package/app/interfaces/listconfig.interface.d.ts +250 -250
  55. package/app/interfaces/pagination.interface.d.ts +13 -13
  56. package/app/models/column-async-attribute.d.ts +5 -5
  57. package/app/models/column-attributes.d.ts +39 -39
  58. package/app/models/column.model.d.ts +59 -59
  59. package/app/models/row/base-row.d.ts +13 -13
  60. package/app/models/row/child-row.d.ts +12 -12
  61. package/app/models/row/group-footer-row.d.ts +10 -10
  62. package/app/models/row/group-row.d.ts +16 -16
  63. package/app/models/row/simple-row.d.ts +5 -5
  64. package/app/models/row-action.model.d.ts +29 -29
  65. package/app/models/row.d.ts +30 -30
  66. package/app/models/styleConfig.model.d.ts +31 -31
  67. package/app/pipes/action-label.d.ts +8 -8
  68. package/app/pipes/index.d.ts +1 -1
  69. package/app/services/group-expand-notifier.service.d.ts +11 -11
  70. package/bundles/firestitch-list.umd.js +6552 -6551
  71. package/bundles/firestitch-list.umd.js.map +1 -1
  72. package/esm2015/app/classes/actions-controller.js +55 -55
  73. package/esm2015/app/classes/columns-controller.js +205 -205
  74. package/esm2015/app/classes/data-controller.js +331 -332
  75. package/esm2015/app/classes/external-params-controller.js +153 -153
  76. package/esm2015/app/classes/index.js +3 -3
  77. package/esm2015/app/classes/list-controller.js +714 -714
  78. package/esm2015/app/classes/pagination-controller.js +460 -460
  79. package/esm2015/app/classes/persistance-controller.js +19 -19
  80. package/esm2015/app/classes/reorder-controller.js +177 -177
  81. package/esm2015/app/classes/selection-controller.js +445 -445
  82. package/esm2015/app/classes/sorting-controller.js +180 -180
  83. package/esm2015/app/components/body/body.component.js +75 -75
  84. package/esm2015/app/components/body/row/actions/actions.component.js +95 -95
  85. package/esm2015/app/components/body/row/cell/cell.component.js +107 -104
  86. package/esm2015/app/components/body/row/inline-action/inline-action.component.js +39 -39
  87. package/esm2015/app/components/body/row/menu-action/menu-action.component.js +35 -35
  88. package/esm2015/app/components/body/row/row.component.js +253 -253
  89. package/esm2015/app/components/customize-cols/customize-cols.component.js +72 -72
  90. package/esm2015/app/components/footer/footer-row/footer-cell/footer-cell.component.js +20 -20
  91. package/esm2015/app/components/footer/footer-row/footer-row.component.js +26 -26
  92. package/esm2015/app/components/footer/footer.component.js +26 -26
  93. package/esm2015/app/components/head/head-cell/head-cell.component.js +33 -33
  94. package/esm2015/app/components/head/head.component.js +90 -90
  95. package/esm2015/app/components/list/list.component.js +375 -375
  96. package/esm2015/app/components/loader/loader.component.js +47 -47
  97. package/esm2015/app/components/manage-saved-filters/manage-saved-filters.component.js +78 -78
  98. package/esm2015/app/components/pagination/pagination.component.js +44 -44
  99. package/esm2015/app/components/saved-filters/saved-filters.component.js +33 -33
  100. package/esm2015/app/components/status/status.component.js +74 -74
  101. package/esm2015/app/directives/cell/cell.directive.js +18 -18
  102. package/esm2015/app/directives/column/column.directive.js +111 -111
  103. package/esm2015/app/directives/content/content.directive.js +12 -12
  104. package/esm2015/app/directives/content-init/content-init.directive.js +21 -21
  105. package/esm2015/app/directives/draggable-list/draggable-list.directive.js +255 -256
  106. package/esm2015/app/directives/draggable-row/draggable-row.directive.js +73 -73
  107. package/esm2015/app/directives/empty-state/empty-state.directive.js +13 -13
  108. package/esm2015/app/directives/footer/footer.directive.js +18 -18
  109. package/esm2015/app/directives/group-expand-trigger/group-expand-trigger.directive.js +26 -26
  110. package/esm2015/app/directives/group-footer/group-footer.directive.js +13 -13
  111. package/esm2015/app/directives/group-header/group-header.directive.js +13 -13
  112. package/esm2015/app/directives/header/header.directive.js +18 -18
  113. package/esm2015/app/enums/button-type.enum.js +9 -9
  114. package/esm2015/app/enums/page-change-type.enum.js +6 -6
  115. package/esm2015/app/enums/pagination-strategy.enum.js +7 -7
  116. package/esm2015/app/enums/row-type.enum.js +7 -7
  117. package/esm2015/app/enums/state.enum.js +11 -11
  118. package/esm2015/app/fs-list.module.js +231 -231
  119. package/esm2015/app/fs-list.providers.js +4 -4
  120. package/esm2015/app/interfaces/cellconfig.interface.js +2 -2
  121. package/esm2015/app/interfaces/column-config.interface.js +1 -1
  122. package/esm2015/app/interfaces/draggable-list.interface.js +2 -2
  123. package/esm2015/app/interfaces/external-params.interface.js +2 -2
  124. package/esm2015/app/interfaces/index.js +4 -4
  125. package/esm2015/app/interfaces/listconfig.interface.js +1 -1
  126. package/esm2015/app/interfaces/pagination.interface.js +2 -2
  127. package/esm2015/app/models/column-async-attribute.js +13 -13
  128. package/esm2015/app/models/column-attributes.js +130 -130
  129. package/esm2015/app/models/column.model.js +166 -166
  130. package/esm2015/app/models/row/base-row.js +23 -23
  131. package/esm2015/app/models/row/child-row.js +28 -28
  132. package/esm2015/app/models/row/group-footer-row.js +20 -20
  133. package/esm2015/app/models/row/group-row.js +44 -44
  134. package/esm2015/app/models/row/simple-row.js +10 -10
  135. package/esm2015/app/models/row-action.model.js +94 -94
  136. package/esm2015/app/models/row.js +80 -80
  137. package/esm2015/app/models/styleConfig.model.js +75 -75
  138. package/esm2015/app/pipes/action-label.js +16 -16
  139. package/esm2015/app/pipes/index.js +1 -1
  140. package/esm2015/app/services/group-expand-notifier.service.js +26 -26
  141. package/esm2015/firestitch-list.js +4 -4
  142. package/esm2015/public_api.js +44 -44
  143. package/fesm2015/firestitch-list.js +5392 -5391
  144. package/fesm2015/firestitch-list.js.map +1 -1
  145. package/firestitch-list.d.ts +5 -5
  146. package/package.json +1 -1
  147. package/public_api.d.ts +38 -38
@@ -1,19 +1,19 @@
1
- import { Injectable } from '@angular/core';
2
- import { ActivatedRoute } from '@angular/router';
3
- import { FsPersistanceStore, FsStore } from '@firestitch/store';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@firestitch/store";
6
- import * as i2 from "@angular/router";
7
- const FILTER_STORE_KEY = 'fs-list-persist';
8
- export class PersistanceController extends FsPersistanceStore {
9
- constructor(_store, _route) {
10
- super(_store, _route);
11
- this.STORE_KEY = FILTER_STORE_KEY;
12
- }
13
- }
14
- PersistanceController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PersistanceController, deps: [{ token: i1.FsStore }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
15
- PersistanceController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PersistanceController });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PersistanceController, decorators: [{
17
- type: Injectable
18
- }], ctorParameters: function () { return [{ type: i1.FsStore }, { type: i2.ActivatedRoute }]; } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGFuY2UtY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvY2xhc3Nlcy9wZXJzaXN0YW5jZS1jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUdoRSxNQUFNLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDO0FBRzNDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxrQkFBb0M7SUFJN0UsWUFDRSxNQUFlLEVBQ2YsTUFBc0I7UUFFdEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQU5kLGNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztJQU92QyxDQUFDOzttSEFUVSxxQkFBcUI7dUhBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBGc1BlcnNpc3RhbmNlU3RvcmUsIEZzU3RvcmUgfSBmcm9tICdAZmlyZXN0aXRjaC9zdG9yZSc7XHJcbmltcG9ydCB7IEZzTGlzdFBlcnNpdGFuY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmNvbnN0IEZJTFRFUl9TVE9SRV9LRVkgPSAnZnMtbGlzdC1wZXJzaXN0JztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFBlcnNpc3RhbmNlQ29udHJvbGxlciBleHRlbmRzIEZzUGVyc2lzdGFuY2VTdG9yZTxGc0xpc3RQZXJzaXRhbmNlPiB7XHJcblxyXG4gIHByb3RlY3RlZCBTVE9SRV9LRVkgPSBGSUxURVJfU1RPUkVfS0VZO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIF9zdG9yZTogRnNTdG9yZSxcclxuICAgIF9yb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgKSB7XHJcbiAgICBzdXBlcihfc3RvcmUsIF9yb3V0ZSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
1
+ import { Injectable } from '@angular/core';
2
+ import { ActivatedRoute } from '@angular/router';
3
+ import { FsPersistanceStore, FsStore } from '@firestitch/store';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@firestitch/store";
6
+ import * as i2 from "@angular/router";
7
+ const FILTER_STORE_KEY = 'fs-list-persist';
8
+ export class PersistanceController extends FsPersistanceStore {
9
+ constructor(_store, _route) {
10
+ super(_store, _route);
11
+ this.STORE_KEY = FILTER_STORE_KEY;
12
+ }
13
+ }
14
+ PersistanceController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PersistanceController, deps: [{ token: i1.FsStore }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
15
+ PersistanceController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PersistanceController });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PersistanceController, decorators: [{
17
+ type: Injectable
18
+ }], ctorParameters: function () { return [{ type: i1.FsStore }, { type: i2.ActivatedRoute }]; } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGFuY2UtY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvY2xhc3Nlcy9wZXJzaXN0YW5jZS1jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUdoRSxNQUFNLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDO0FBRzNDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxrQkFBb0M7SUFJN0UsWUFDRSxNQUFlLEVBQ2YsTUFBc0I7UUFFdEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQU5kLGNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztJQU92QyxDQUFDOzttSEFUVSxxQkFBcUI7dUhBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBGc1BlcnNpc3RhbmNlU3RvcmUsIEZzU3RvcmUgfSBmcm9tICdAZmlyZXN0aXRjaC9zdG9yZSc7XG5pbXBvcnQgeyBGc0xpc3RQZXJzaXRhbmNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmNvbnN0IEZJTFRFUl9TVE9SRV9LRVkgPSAnZnMtbGlzdC1wZXJzaXN0JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBlcnNpc3RhbmNlQ29udHJvbGxlciBleHRlbmRzIEZzUGVyc2lzdGFuY2VTdG9yZTxGc0xpc3RQZXJzaXRhbmNlPiB7XG5cbiAgcHJvdGVjdGVkIFNUT1JFX0tFWSA9IEZJTFRFUl9TVE9SRV9LRVk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgX3N0b3JlOiBGc1N0b3JlLFxuICAgIF9yb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICkge1xuICAgIHN1cGVyKF9zdG9yZSwgX3JvdXRlKTtcbiAgfVxuXG59XG4iXX0=
@@ -1,178 +1,178 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject, Observable, Subject } from 'rxjs';
3
- import { distinctUntilChanged, map, shareReplay, takeUntil } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- export var ReorderPosition;
6
- (function (ReorderPosition) {
7
- ReorderPosition["Left"] = "left";
8
- ReorderPosition["Right"] = "right";
9
- })(ReorderPosition || (ReorderPosition = {}));
10
- export var ReorderStrategy;
11
- (function (ReorderStrategy) {
12
- ReorderStrategy["Always"] = "always";
13
- ReorderStrategy["Manual"] = "manual";
14
- ReorderStrategy["Custom"] = "custom";
15
- })(ReorderStrategy || (ReorderStrategy = {}));
16
- export class ReorderController {
17
- constructor() {
18
- this._enabled$ = new BehaviorSubject(false);
19
- this._manualReorderActivated$ = new BehaviorSubject(false);
20
- this._reorderDisabled$ = new BehaviorSubject(false);
21
- this._numberOfActiveFilters = 0;
22
- this._destroy$ = new Subject();
23
- }
24
- get enabled() {
25
- return this._enabled$.getValue();
26
- }
27
- set enabled(value) {
28
- this._enabled$.next(value);
29
- this._manualReorderActivated$.next(this.enabled && this.strategy === ReorderStrategy.Manual);
30
- }
31
- get dataController() {
32
- return this._dataController;
33
- }
34
- get manualReorderActivated$() {
35
- return this._manualReorderActivated$.asObservable();
36
- }
37
- get manualReorderActivated() {
38
- return this._manualReorderActivated$.getValue();
39
- }
40
- get leftReorderActivated$() {
41
- return this._enabled$
42
- .pipe(map((enabled) => {
43
- return enabled && this.position === ReorderPosition.Left;
44
- }), map((enabled) => {
45
- return enabled && this._numberOfActiveFilters === 0;
46
- }), distinctUntilChanged(), shareReplay());
47
- }
48
- get rightReorderActivated$() {
49
- return this._enabled$
50
- .pipe(map((enabled) => {
51
- return enabled && this.position === ReorderPosition.Right;
52
- }), map((enabled) => {
53
- return enabled && this._numberOfActiveFilters === 0;
54
- }), distinctUntilChanged(), shareReplay());
55
- }
56
- get reorderDisabled$() {
57
- return this._reorderDisabled$.asObservable();
58
- }
59
- get reorderDisabled() {
60
- return this._reorderDisabled$.getValue();
61
- }
62
- initWithConfig(data, dataController, actionsController) {
63
- var _a, _b;
64
- if (!data) {
65
- return;
66
- }
67
- this.menu = (_a = data.menu) !== null && _a !== void 0 ? _a : false;
68
- this.position = (_b = data.position) !== null && _b !== void 0 ? _b : ReorderPosition.Left;
69
- if (!data.disabled) {
70
- this.strategy = ReorderStrategy.Always;
71
- }
72
- if (data.toggle) {
73
- this.strategy = ReorderStrategy.Manual;
74
- }
75
- // this.strategy = data.strategy ?? ReorderStrategy.Manual;
76
- this.label = data.label;
77
- this.startCallback = data.start;
78
- this.movedCallback = data.moved;
79
- this.doneCallback = data.done;
80
- this.moveDropCallback = data.moveDrop;
81
- this._dataController = dataController;
82
- this._actionsController = actionsController;
83
- if (this.strategy === ReorderStrategy.Always) {
84
- this.enableReorder();
85
- }
86
- else if (this.strategy === ReorderStrategy.Manual) {
87
- actionsController.addReorderAction({
88
- label: this.label || 'Reorder',
89
- menu: this.menu,
90
- primary: false,
91
- click: () => {
92
- this.enableReorder();
93
- },
94
- disabled: () => {
95
- return this.reorderDisabled;
96
- }
97
- });
98
- actionsController.addReorderDoneAction({
99
- label: 'Done',
100
- primary: false,
101
- click: () => {
102
- this.disableReorder();
103
- },
104
- disabled: () => {
105
- return this.reorderDisabled;
106
- },
107
- });
108
- }
109
- }
110
- enableReorder() {
111
- if (this.strategy === ReorderStrategy.Manual || this.strategy === ReorderStrategy.Custom) {
112
- const returnedValue = this.startCallback();
113
- if (returnedValue && returnedValue instanceof Observable) {
114
- this.disableReorderAction();
115
- returnedValue
116
- .pipe(takeUntil(this._destroy$))
117
- .subscribe(() => {
118
- this.enabled = true;
119
- this.enableReorderAction();
120
- });
121
- return;
122
- }
123
- }
124
- this.enabled = true;
125
- }
126
- disableReorder() {
127
- if (this.strategy === ReorderStrategy.Manual || this.strategy === ReorderStrategy.Custom) {
128
- const returnedValue = this.reorderFinished();
129
- if (returnedValue && returnedValue instanceof Observable) {
130
- this.disableReorderAction();
131
- returnedValue
132
- .pipe(takeUntil(this._destroy$))
133
- .subscribe(() => {
134
- this.enabled = false;
135
- this.enableReorderAction();
136
- });
137
- return;
138
- }
139
- }
140
- this.enabled = false;
141
- }
142
- /**
143
- * Exec end callback
144
- */
145
- reorderFinished() {
146
- if (this.doneCallback) {
147
- return this.doneCallback(this._dataController.reorderData);
148
- }
149
- }
150
- ngOnDestroy() {
151
- this._destroy$.next();
152
- this._destroy$.complete();
153
- }
154
- /**
155
- * Enable reorder action and update filter actions state
156
- */
157
- enableReorderAction() {
158
- this._reorderDisabled$.next(false);
159
- this._actionsController.updateDisabledState();
160
- }
161
- /**
162
- * Disable reorder action and update filter actions state
163
- */
164
- disableReorderAction() {
165
- this._reorderDisabled$.next(true);
166
- this._actionsController.updateDisabledState();
167
- }
168
- setNunberOfActiveFilters(activeFilters) {
169
- this._numberOfActiveFilters = activeFilters;
170
- this.enabled = this.enabled;
171
- }
172
- }
173
- ReorderController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReorderController, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
174
- ReorderController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReorderController });
175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReorderController, decorators: [{
176
- type: Injectable
177
- }], ctorParameters: function () { return []; } });
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject, Observable, Subject } from 'rxjs';
3
+ import { distinctUntilChanged, map, shareReplay, takeUntil } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ export var ReorderPosition;
6
+ (function (ReorderPosition) {
7
+ ReorderPosition["Left"] = "left";
8
+ ReorderPosition["Right"] = "right";
9
+ })(ReorderPosition || (ReorderPosition = {}));
10
+ export var ReorderStrategy;
11
+ (function (ReorderStrategy) {
12
+ ReorderStrategy["Always"] = "always";
13
+ ReorderStrategy["Manual"] = "manual";
14
+ ReorderStrategy["Custom"] = "custom";
15
+ })(ReorderStrategy || (ReorderStrategy = {}));
16
+ export class ReorderController {
17
+ constructor() {
18
+ this._enabled$ = new BehaviorSubject(false);
19
+ this._manualReorderActivated$ = new BehaviorSubject(false);
20
+ this._reorderDisabled$ = new BehaviorSubject(false);
21
+ this._numberOfActiveFilters = 0;
22
+ this._destroy$ = new Subject();
23
+ }
24
+ get enabled() {
25
+ return this._enabled$.getValue();
26
+ }
27
+ set enabled(value) {
28
+ this._enabled$.next(value);
29
+ this._manualReorderActivated$.next(this.enabled && this.strategy === ReorderStrategy.Manual);
30
+ }
31
+ get dataController() {
32
+ return this._dataController;
33
+ }
34
+ get manualReorderActivated$() {
35
+ return this._manualReorderActivated$.asObservable();
36
+ }
37
+ get manualReorderActivated() {
38
+ return this._manualReorderActivated$.getValue();
39
+ }
40
+ get leftReorderActivated$() {
41
+ return this._enabled$
42
+ .pipe(map((enabled) => {
43
+ return enabled && this.position === ReorderPosition.Left;
44
+ }), map((enabled) => {
45
+ return enabled && this._numberOfActiveFilters === 0;
46
+ }), distinctUntilChanged(), shareReplay());
47
+ }
48
+ get rightReorderActivated$() {
49
+ return this._enabled$
50
+ .pipe(map((enabled) => {
51
+ return enabled && this.position === ReorderPosition.Right;
52
+ }), map((enabled) => {
53
+ return enabled && this._numberOfActiveFilters === 0;
54
+ }), distinctUntilChanged(), shareReplay());
55
+ }
56
+ get reorderDisabled$() {
57
+ return this._reorderDisabled$.asObservable();
58
+ }
59
+ get reorderDisabled() {
60
+ return this._reorderDisabled$.getValue();
61
+ }
62
+ initWithConfig(data, dataController, actionsController) {
63
+ var _a, _b;
64
+ if (!data) {
65
+ return;
66
+ }
67
+ this.menu = (_a = data.menu) !== null && _a !== void 0 ? _a : false;
68
+ this.position = (_b = data.position) !== null && _b !== void 0 ? _b : ReorderPosition.Left;
69
+ if (!data.disabled) {
70
+ this.strategy = ReorderStrategy.Always;
71
+ }
72
+ if (data.toggle) {
73
+ this.strategy = ReorderStrategy.Manual;
74
+ }
75
+ // this.strategy = data.strategy ?? ReorderStrategy.Manual;
76
+ this.label = data.label;
77
+ this.startCallback = data.start;
78
+ this.movedCallback = data.moved;
79
+ this.doneCallback = data.done;
80
+ this.moveDropCallback = data.moveDrop;
81
+ this._dataController = dataController;
82
+ this._actionsController = actionsController;
83
+ if (this.strategy === ReorderStrategy.Always) {
84
+ this.enableReorder();
85
+ }
86
+ else if (this.strategy === ReorderStrategy.Manual) {
87
+ actionsController.addReorderAction({
88
+ label: this.label || 'Reorder',
89
+ menu: this.menu,
90
+ primary: false,
91
+ click: () => {
92
+ this.enableReorder();
93
+ },
94
+ disabled: () => {
95
+ return this.reorderDisabled;
96
+ }
97
+ });
98
+ actionsController.addReorderDoneAction({
99
+ label: 'Done',
100
+ primary: false,
101
+ click: () => {
102
+ this.disableReorder();
103
+ },
104
+ disabled: () => {
105
+ return this.reorderDisabled;
106
+ },
107
+ });
108
+ }
109
+ }
110
+ enableReorder() {
111
+ if (this.strategy === ReorderStrategy.Manual || this.strategy === ReorderStrategy.Custom) {
112
+ const returnedValue = this.startCallback();
113
+ if (returnedValue && returnedValue instanceof Observable) {
114
+ this.disableReorderAction();
115
+ returnedValue
116
+ .pipe(takeUntil(this._destroy$))
117
+ .subscribe(() => {
118
+ this.enabled = true;
119
+ this.enableReorderAction();
120
+ });
121
+ return;
122
+ }
123
+ }
124
+ this.enabled = true;
125
+ }
126
+ disableReorder() {
127
+ if (this.strategy === ReorderStrategy.Manual || this.strategy === ReorderStrategy.Custom) {
128
+ const returnedValue = this.reorderFinished();
129
+ if (returnedValue && returnedValue instanceof Observable) {
130
+ this.disableReorderAction();
131
+ returnedValue
132
+ .pipe(takeUntil(this._destroy$))
133
+ .subscribe(() => {
134
+ this.enabled = false;
135
+ this.enableReorderAction();
136
+ });
137
+ return;
138
+ }
139
+ }
140
+ this.enabled = false;
141
+ }
142
+ /**
143
+ * Exec end callback
144
+ */
145
+ reorderFinished() {
146
+ if (this.doneCallback) {
147
+ return this.doneCallback(this._dataController.reorderData);
148
+ }
149
+ }
150
+ ngOnDestroy() {
151
+ this._destroy$.next();
152
+ this._destroy$.complete();
153
+ }
154
+ /**
155
+ * Enable reorder action and update filter actions state
156
+ */
157
+ enableReorderAction() {
158
+ this._reorderDisabled$.next(false);
159
+ this._actionsController.updateDisabledState();
160
+ }
161
+ /**
162
+ * Disable reorder action and update filter actions state
163
+ */
164
+ disableReorderAction() {
165
+ this._reorderDisabled$.next(true);
166
+ this._actionsController.updateDisabledState();
167
+ }
168
+ setNunberOfActiveFilters(activeFilters) {
169
+ this._numberOfActiveFilters = activeFilters;
170
+ this.enabled = this.enabled;
171
+ }
172
+ }
173
+ ReorderController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReorderController, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
174
+ ReorderController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReorderController });
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReorderController, decorators: [{
176
+ type: Injectable
177
+ }], ctorParameters: function () { return []; } });
178
178
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVvcmRlci1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL3Jlb3JkZXItY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFZbkYsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN6QixnQ0FBYSxDQUFBO0lBQ2Isa0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3pCLG9DQUFpQixDQUFBO0lBQ2pCLG9DQUFpQixDQUFBO0lBQ2pCLG9DQUFpQixDQUFBO0FBQ25CLENBQUMsRUFKVyxlQUFlLEtBQWYsZUFBZSxRQUkxQjtBQUdELE1BQU0sT0FBTyxpQkFBaUI7SUF3QjVCO1FBUlEsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2hELDZCQUF3QixHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9DLDJCQUFzQixHQUFHLENBQUMsQ0FBQztRQUUzQixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVuQixDQUFDO0lBRWhCLElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVcsT0FBTyxD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U0FDNUQ7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksb0JBQW9CO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVNLHdCQUF3QixDQUFDLGFBQXFCO1FBQ25ELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxhQUFhLENBQUM7UUFFNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzlCLENBQUM7OytHQTNOVSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXksIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgRnNMaXN0UmVvcmRlckNvbmZpZyxcbiAgRnNMaXN0UmVvcmRlckRvbmVDYWxsYmFjayxcbiAgRnNMaXN0UmVvcmRlck1vdmVkQ2FsbGJhY2ssXG4gIEZzTGlzdFJlb3JkZXJNb3ZlSW5Hcm91cENhbGxiYWNrXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBEYXRhQ29udHJvbGxlciB9IGZyb20gJy4vZGF0YS1jb250cm9sbGVyJztcbmltcG9ydCB7IEFjdGlvbnNDb250cm9sbGVyIH0gZnJvbSAnLi9hY3Rpb25zLWNvbnRyb2xsZXInO1xuXG5leHBvcnQgZW51bSBSZW9yZGVyUG9zaXRpb24ge1xuICBMZWZ0ID0gJ2xlZnQnLFxuICBSaWdodCA9ICdyaWdodCcsXG59XG5cbmV4cG9ydCBlbnVtIFJlb3JkZXJTdHJhdGVneSB7XG4gIEFsd2F5cyA9ICdhbHdheXMnLFxuICBNYW51YWwgPSAnbWFudWFsJyxcbiAgQ3VzdG9tID0gJ2N1c3RvbScsXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZW9yZGVyQ29udHJvbGxlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIHN0YXJ0Q2FsbGJhY2s6ICgpID0+IHZvaWQgfCBPYnNlcnZhYmxlPHZvaWQ+O1xuICBwdWJsaWMgbW92ZWRDYWxsYmFjazogRnNMaXN0UmVvcmRlck1vdmVkQ2FsbGJhY2s7XG4gIHB1YmxpYyBkb25lQ2FsbGJhY2s6IEZzTGlzdFJlb3JkZXJEb25lQ2FsbGJhY2s7XG4gIHB1YmxpYyBtb3ZlRHJvcENhbGxiYWNrOiBGc0xpc3RSZW9yZGVyTW92ZUluR3JvdXBDYWxsYmFjaztcblxuICBwdWJsaWMgc3RhdHVzOiBib29sZWFuO1xuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcbiAgcHVibGljIG1lbnU6IGJvb2xlYW47XG4gIHB1YmxpYyBwb3NpdGlvbjogUmVvcmRlclBvc2l0aW9uO1xuICBwdWJsaWMgc3RyYXRlZ3k6IFJlb3JkZXJTdHJhdGVneTtcblxuICBwcml2YXRlIF9kYXRhQ29udHJvbGxlcjogRGF0YUNvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2FjdGlvbnNDb250cm9sbGVyOiBBY3Rpb25zQ29udHJvbGxlcjtcblxuICBwcml2YXRlIF9lbmFibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIF9tYW51YWxSZW9yZGVyQWN0aXZhdGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIF9yZW9yZGVyRGlzYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcHJpdmF0ZSBfbnVtYmVyT2ZBY3RpdmVGaWx0ZXJzID0gMDtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBnZXQgZW5hYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlZCQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgZW5hYmxlZCh2YWx1ZSkge1xuICAgIHRoaXMuX2VuYWJsZWQkLm5leHQodmFsdWUpO1xuXG4gICAgdGhpcy5fbWFudWFsUmVvcmRlckFjdGl2YXRlZCQubmV4dCh0aGlzLmVuYWJsZWQgJiYgdGhpcy5zdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5Lk1hbnVhbCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRhdGFDb250cm9sbGVyKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhQ29udHJvbGxlcjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWFudWFsUmVvcmRlckFjdGl2YXRlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX21hbnVhbFJlb3JkZXJBY3RpdmF0ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBtYW51YWxSZW9yZGVyQWN0aXZhdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tYW51YWxSZW9yZGVyQWN0aXZhdGVkJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBsZWZ0UmVvcmRlckFjdGl2YXRlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQkXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChlbmFibGVkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVuYWJsZWQgJiYgdGhpcy5wb3NpdGlvbiA9PT0gUmVvcmRlclBvc2l0aW9uLkxlZnQ7XG4gICAgICAgIH0pLFxuICAgICAgICBtYXAoKGVuYWJsZWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gZW5hYmxlZCAmJiB0aGlzLl9udW1iZXJPZkFjdGl2ZUZpbHRlcnMgPT09IDA7XG4gICAgICAgIH0pLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBzaGFyZVJlcGxheSgpLFxuICAgICAgKVxuICB9XG5cbiAgcHVibGljIGdldCByaWdodFJlb3JkZXJBY3RpdmF0ZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGVkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoZW5hYmxlZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBlbmFibGVkICYmIHRoaXMucG9zaXRpb24gPT09IFJlb3JkZXJQb3NpdGlvbi5SaWdodDtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgoZW5hYmxlZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBlbmFibGVkICYmIHRoaXMuX251bWJlck9mQWN0aXZlRmlsdGVycyA9PT0gMDtcbiAgICAgICAgfSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHNoYXJlUmVwbGF5KCksXG4gICAgICApXG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlb3JkZXJEaXNhYmxlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlb3JkZXJEaXNhYmxlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlb3JkZXJEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVvcmRlckRpc2FibGVkJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGluaXRXaXRoQ29uZmlnKGRhdGE6IEZzTGlzdFJlb3JkZXJDb25maWcsIGRhdGFDb250cm9sbGVyOiBEYXRhQ29udHJvbGxlciwgYWN0aW9uc0NvbnRyb2xsZXI6IEFjdGlvbnNDb250cm9sbGVyKSB7XG4gICAgaWYgKCFkYXRhKSB7IHJldHVybiB9XG5cbiAgICB0aGlzLm1lbnUgPSBkYXRhLm1lbnUgPz8gZmFsc2U7XG4gICAgdGhpcy5wb3NpdGlvbiA9IGRhdGEucG9zaXRpb24gPz8gUmVvcmRlclBvc2l0aW9uLkxlZnQ7XG5cbiAgICBpZiAoIWRhdGEuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc3RyYXRlZ3kgPSBSZW9yZGVyU3RyYXRlZ3kuQWx3YXlzO1xuICAgIH1cblxuICAgIGlmIChkYXRhLnRvZ2dsZSkge1xuICAgICAgdGhpcy5zdHJhdGVneSA9IFJlb3JkZXJTdHJhdGVneS5NYW51YWxcbiAgICB9XG4gICAgLy8gdGhpcy5zdHJhdGVneSA9IGRhdGEuc3RyYXRlZ3kgPz8gUmVvcmRlclN0cmF0ZWd5Lk1hbnVhbDtcbiAgICB0aGlzLmxhYmVsID0gZGF0YS5sYWJlbDtcblxuICAgIHRoaXMuc3RhcnRDYWxsYmFjayA9IGRhdGEuc3RhcnQ7XG4gICAgdGhpcy5tb3ZlZENhbGxiYWNrID0gZGF0YS5tb3ZlZDtcbiAgICB0aGlzLmRvbmVDYWxsYmFjayA9IGRhdGEuZG9uZTtcbiAgICB0aGlzLm1vdmVEcm9wQ2FsbGJhY2sgPSBkYXRhLm1vdmVEcm9wO1xuXG4gICAgdGhpcy5fZGF0YUNvbnRyb2xsZXIgPSBkYXRhQ29udHJvbGxlcjtcbiAgICB0aGlzLl9hY3Rpb25zQ29udHJvbGxlciA9IGFjdGlvbnNDb250cm9sbGVyO1xuXG4gICAgaWYgKHRoaXMuc3RyYXRlZ3kgPT09IFJlb3JkZXJTdHJhdGVneS5BbHdheXMpIHtcbiAgICAgIHRoaXMuZW5hYmxlUmVvcmRlcigpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5Lk1hbnVhbCkge1xuICAgICAgYWN0aW9uc0NvbnRyb2xsZXIuYWRkUmVvcmRlckFjdGlvbihcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiB0aGlzLmxhYmVsIHx8ICdSZW9yZGVyJyxcbiAgICAgICAgICBtZW51OiB0aGlzLm1lbnUsXG4gICAgICAgICAgcHJpbWFyeTogZmFsc2UsXG4gICAgICAgICAgY2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlUmVvcmRlcigpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGlzYWJsZWQ6ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlb3JkZXJEaXNhYmxlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIGFjdGlvbnNDb250cm9sbGVyLmFkZFJlb3JkZXJEb25lQWN0aW9uKHtcbiAgICAgICAgICBsYWJlbDogJ0RvbmUnLFxuICAgICAgICAgIHByaW1hcnk6IGZhbHNlLFxuICAgICAgICAgIGNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVSZW9yZGVyKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBkaXNhYmxlZDogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVvcmRlckRpc2FibGVkO1xuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW5hYmxlUmVvcmRlcigpIHtcbiAgICBpZiAodGhpcy5zdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5Lk1hbnVhbCB8fCB0aGlzLnN0cmF0ZWd5ID09PSBSZW9yZGVyU3RyYXRlZ3kuQ3VzdG9tKSB7XG4gICAgICBjb25zdCByZXR1cm5lZFZhbHVlID0gdGhpcy5zdGFydENhbGxiYWNrKCk7XG5cbiAgICAgIGlmIChyZXR1cm5lZFZhbHVlICYmIHJldHVybmVkVmFsdWUgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZVJlb3JkZXJBY3Rpb24oKTtcblxuICAgICAgICByZXR1cm5lZFZhbHVlXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZVJlb3JkZXJBY3Rpb24oKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5lbmFibGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlUmVvcmRlcigpIHtcbiAgICBpZiAodGhpcy5zdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5Lk1hbnVhbCB8fCB0aGlzLnN0cmF0ZWd5ID09PSBSZW9yZGVyU3RyYXRlZ3kuQ3VzdG9tKSB7XG4gICAgICBjb25zdCByZXR1cm5lZFZhbHVlID0gdGhpcy5yZW9yZGVyRmluaXNoZWQoKTtcblxuICAgICAgaWYgKHJldHVybmVkVmFsdWUgJiYgcmV0dXJuZWRWYWx1ZSBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlUmVvcmRlckFjdGlvbigpO1xuXG4gICAgICAgIHJldHVybmVkVmFsdWVcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZVJlb3JkZXJBY3Rpb24oKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5lbmFibGVkID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRXhlYyBlbmQgY2FsbGJhY2tcbiAgICovXG4gIHB1YmxpYyByZW9yZGVyRmluaXNoZWQoKSB7XG4gICAgaWYgKHRoaXMuZG9uZUNhbGxiYWNrKSB7XG4gICAgICByZXR1cm4gdGhpcy5kb25lQ2FsbGJhY2sodGhpcy5fZGF0YUNvbnRyb2xsZXIucmVvcmRlckRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGUgcmVvcmRlciBhY3Rpb24gYW5kIHVwZGF0ZSBmaWx0ZXIgYWN0aW9ucyBzdGF0ZVxuICAgKi9cbiAgcHVibGljIGVuYWJsZVJlb3JkZXJBY3Rpb24oKSB7XG4gICAgdGhpcy5fcmVvcmRlckRpc2FibGVkJC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLl9hY3Rpb25zQ29udHJvbGxlci51cGRhdGVEaXNhYmxlZFN0YXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZSByZW9yZGVyIGFjdGlvbiBhbmQgdXBkYXRlIGZpbHRlciBhY3Rpb25zIHN0YXRlXG4gICAqL1xuICBwdWJsaWMgZGlzYWJsZVJlb3JkZXJBY3Rpb24oKSB7XG4gICAgdGhpcy5fcmVvcmRlckRpc2FibGVkJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuX2FjdGlvbnNDb250cm9sbGVyLnVwZGF0ZURpc2FibGVkU3RhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXROdW5iZXJPZkFjdGl2ZUZpbHRlcnMoYWN0aXZlRmlsdGVyczogbnVtYmVyKSB7XG4gICAgdGhpcy5fbnVtYmVyT2ZBY3RpdmVGaWx0ZXJzID0gYWN0aXZlRmlsdGVycztcblxuICAgIHRoaXMuZW5hYmxlZCA9IHRoaXMuZW5hYmxlZDtcbiAgfVxufVxuIl19