@firestitch/list 9.9.9 → 9.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/classes/actions-controller.d.ts +20 -20
- package/app/classes/columns-controller.d.ts +65 -65
- package/app/classes/data-controller.d.ts +89 -89
- package/app/classes/external-params-controller.d.ts +31 -31
- package/app/classes/index.d.ts +2 -2
- package/app/classes/list-controller.d.ts +166 -166
- package/app/classes/pagination-controller.d.ts +185 -185
- package/app/classes/persistance-controller.d.ts +7 -7
- package/app/classes/reorder-controller.d.ts +56 -56
- package/app/classes/selection-controller.d.ts +141 -141
- package/app/classes/sorting-controller.d.ts +64 -63
- package/app/components/body/body.component.d.ts +29 -29
- package/app/components/body/row/actions/actions.component.d.ts +32 -32
- package/app/components/body/row/cell/cell.component.d.ts +20 -20
- package/app/components/body/row/inline-action/inline-action.component.d.ts +10 -10
- package/app/components/body/row/row.component.d.ts +66 -66
- package/app/components/customize-cols/customize-cols.component.d.ts +14 -14
- package/app/components/footer/footer-row/footer-cell/footer-cell.component.d.ts +7 -4
- package/app/components/footer/footer-row/footer-row.component.d.ts +10 -8
- package/app/components/footer/footer.component.d.ts +10 -8
- package/app/components/head/head-cell/head-cell.component.d.ts +11 -11
- package/app/components/head/head.component.d.ts +40 -40
- package/app/components/list/list.component.d.ts +108 -108
- package/app/components/loader/loader.component.d.ts +11 -11
- package/app/components/manage-saved-filters/manage-saved-filters.component.d.ts +10 -10
- package/app/components/pagination/pagination.component.d.ts +11 -11
- package/app/components/saved-filters/saved-filters.component.d.ts +12 -12
- package/app/components/status/status.component.d.ts +18 -18
- package/app/directives/cell/cell.directive.d.ts +5 -5
- package/app/directives/column/column.directive.d.ts +24 -23
- package/app/directives/draggable-list/draggable-list.directive.d.ts +77 -77
- package/app/directives/draggable-row/draggable-row.directive.d.ts +18 -18
- package/app/directives/empty-state/empty-state.directive.d.ts +2 -2
- package/app/directives/footer/footer.directive.d.ts +5 -5
- package/app/directives/group-cell/group-cell.directive.d.ts +3 -3
- package/app/directives/group-expand-trigger/group-expand-trigger.directive.d.ts +7 -7
- package/app/directives/header/header.directive.d.ts +5 -5
- package/app/enums/button-type.enum.d.ts +7 -7
- package/app/enums/page-change-type.enum.d.ts +4 -4
- package/app/enums/pagination-strategy.enum.d.ts +5 -5
- package/app/enums/row-type.enum.d.ts +5 -5
- package/app/enums/state.enum.d.ts +9 -9
- package/app/fs-list.module.d.ts +6 -6
- package/app/fs-list.providers.d.ts +3 -3
- package/app/interfaces/cellconfig.interface.d.ts +5 -5
- package/app/interfaces/draggable-list.interface.d.ts +7 -7
- package/app/interfaces/external-params.interface.d.ts +13 -13
- package/app/interfaces/index.d.ts +3 -3
- package/app/interfaces/listconfig.interface.d.ts +220 -220
- package/app/interfaces/pagination.interface.d.ts +13 -13
- package/app/models/column.model.d.ts +48 -46
- package/app/models/row/base-row.d.ts +13 -13
- package/app/models/row/child-row.d.ts +12 -12
- package/app/models/row/group-row.d.ts +14 -14
- package/app/models/row/simple-row.d.ts +5 -5
- package/app/models/row-action.model.d.ts +29 -29
- package/app/models/row.d.ts +28 -28
- package/app/models/styleConfig.model.d.ts +31 -31
- package/app/services/group-expand-notifier.service.d.ts +8 -8
- package/bundles/firestitch-list.umd.js +5832 -5783
- package/bundles/firestitch-list.umd.js.map +1 -1
- package/bundles/firestitch-list.umd.min.js +1 -1
- package/bundles/firestitch-list.umd.min.js.map +1 -1
- package/esm2015/app/classes/actions-controller.js +55 -55
- package/esm2015/app/classes/columns-controller.js +185 -185
- package/esm2015/app/classes/data-controller.js +318 -311
- package/esm2015/app/classes/external-params-controller.js +155 -155
- package/esm2015/app/classes/index.js +3 -3
- package/esm2015/app/classes/list-controller.js +730 -730
- package/esm2015/app/classes/pagination-controller.js +461 -461
- package/esm2015/app/classes/persistance-controller.js +22 -22
- package/esm2015/app/classes/reorder-controller.js +161 -161
- package/esm2015/app/classes/selection-controller.js +444 -444
- package/esm2015/app/classes/sorting-controller.js +177 -167
- package/esm2015/app/components/body/body.component.js +103 -103
- package/esm2015/app/components/body/row/actions/actions.component.js +110 -110
- package/esm2015/app/components/body/row/cell/cell.component.js +93 -93
- package/esm2015/app/components/body/row/inline-action/inline-action.component.js +34 -34
- package/esm2015/app/components/body/row/row.component.js +267 -267
- package/esm2015/app/components/customize-cols/customize-cols.component.js +67 -67
- package/esm2015/app/components/footer/footer-row/footer-cell/footer-cell.component.js +27 -18
- package/esm2015/app/components/footer/footer-row/footer-row.component.js +39 -35
- package/esm2015/app/components/footer/footer.component.js +34 -30
- package/esm2015/app/components/head/head-cell/head-cell.component.js +35 -35
- package/esm2015/app/components/head/head.component.js +99 -99
- package/esm2015/app/components/list/list.component.js +357 -357
- package/esm2015/app/components/loader/loader.component.js +46 -46
- package/esm2015/app/components/manage-saved-filters/manage-saved-filters.component.js +75 -75
- package/esm2015/app/components/pagination/pagination.component.js +44 -44
- package/esm2015/app/components/saved-filters/saved-filters.component.js +36 -36
- package/esm2015/app/components/status/status.component.js +77 -77
- package/esm2015/app/directives/cell/cell.directive.js +21 -21
- package/esm2015/app/directives/column/column.directive.js +97 -93
- package/esm2015/app/directives/draggable-list/draggable-list.directive.js +264 -264
- package/esm2015/app/directives/draggable-row/draggable-row.directive.js +81 -81
- package/esm2015/app/directives/empty-state/empty-state.directive.js +11 -11
- package/esm2015/app/directives/footer/footer.directive.js +21 -21
- package/esm2015/app/directives/group-cell/group-cell.directive.js +12 -12
- package/esm2015/app/directives/group-expand-trigger/group-expand-trigger.directive.js +32 -32
- package/esm2015/app/directives/header/header.directive.js +21 -21
- package/esm2015/app/enums/button-type.enum.js +9 -9
- package/esm2015/app/enums/page-change-type.enum.js +6 -6
- package/esm2015/app/enums/pagination-strategy.enum.js +7 -7
- package/esm2015/app/enums/row-type.enum.js +7 -7
- package/esm2015/app/enums/state.enum.js +11 -11
- package/esm2015/app/fs-list.module.js +140 -140
- package/esm2015/app/fs-list.providers.js +4 -4
- package/esm2015/app/interfaces/cellconfig.interface.js +1 -1
- package/esm2015/app/interfaces/draggable-list.interface.js +1 -1
- package/esm2015/app/interfaces/external-params.interface.js +1 -1
- package/esm2015/app/interfaces/index.js +1 -1
- package/esm2015/app/interfaces/listconfig.interface.js +1 -1
- package/esm2015/app/interfaces/pagination.interface.js +1 -1
- package/esm2015/app/models/column.model.js +185 -175
- package/esm2015/app/models/row/base-row.js +23 -23
- package/esm2015/app/models/row/child-row.js +28 -28
- package/esm2015/app/models/row/group-row.js +41 -41
- package/esm2015/app/models/row/simple-row.js +10 -10
- package/esm2015/app/models/row-action.model.js +115 -115
- package/esm2015/app/models/row.js +77 -77
- package/esm2015/app/models/styleConfig.model.js +86 -86
- package/esm2015/app/services/group-expand-notifier.service.js +25 -25
- package/esm2015/firestitch-list.js +17 -17
- package/esm2015/public_api.js +40 -40
- package/esm5/app/classes/actions-controller.js +71 -71
- package/esm5/app/classes/columns-controller.js +236 -236
- package/esm5/app/classes/data-controller.js +374 -365
- package/esm5/app/classes/external-params-controller.js +185 -185
- package/esm5/app/classes/index.js +3 -3
- package/esm5/app/classes/list-controller.js +749 -749
- package/esm5/app/classes/pagination-controller.js +568 -568
- package/esm5/app/classes/persistance-controller.js +25 -25
- package/esm5/app/classes/reorder-controller.js +195 -195
- package/esm5/app/classes/selection-controller.js +465 -465
- package/esm5/app/classes/sorting-controller.js +204 -194
- package/esm5/app/components/body/body.component.js +104 -104
- package/esm5/app/components/body/row/actions/actions.component.js +113 -113
- package/esm5/app/components/body/row/cell/cell.component.js +95 -95
- package/esm5/app/components/body/row/inline-action/inline-action.component.js +35 -35
- package/esm5/app/components/body/row/row.component.js +295 -295
- package/esm5/app/components/customize-cols/customize-cols.component.js +69 -69
- package/esm5/app/components/footer/footer-row/footer-cell/footer-cell.component.js +29 -20
- package/esm5/app/components/footer/footer-row/footer-row.component.js +42 -38
- package/esm5/app/components/footer/footer.component.js +35 -31
- package/esm5/app/components/head/head-cell/head-cell.component.js +38 -38
- package/esm5/app/components/head/head.component.js +106 -106
- package/esm5/app/components/list/list.component.js +391 -391
- package/esm5/app/components/loader/loader.component.js +47 -47
- package/esm5/app/components/manage-saved-filters/manage-saved-filters.component.js +81 -81
- package/esm5/app/components/pagination/pagination.component.js +46 -46
- package/esm5/app/components/saved-filters/saved-filters.component.js +41 -41
- package/esm5/app/components/status/status.component.js +79 -79
- package/esm5/app/directives/cell/cell.directive.js +24 -24
- package/esm5/app/directives/column/column.directive.js +98 -94
- package/esm5/app/directives/draggable-list/draggable-list.directive.js +281 -281
- package/esm5/app/directives/draggable-row/draggable-row.directive.js +83 -83
- package/esm5/app/directives/empty-state/empty-state.directive.js +14 -14
- package/esm5/app/directives/footer/footer.directive.js +24 -24
- package/esm5/app/directives/group-cell/group-cell.directive.js +17 -17
- package/esm5/app/directives/group-expand-trigger/group-expand-trigger.directive.js +33 -33
- package/esm5/app/directives/header/header.directive.js +24 -24
- package/esm5/app/enums/button-type.enum.js +9 -9
- package/esm5/app/enums/page-change-type.enum.js +6 -6
- package/esm5/app/enums/pagination-strategy.enum.js +7 -7
- package/esm5/app/enums/row-type.enum.js +7 -7
- package/esm5/app/enums/state.enum.js +11 -11
- package/esm5/app/fs-list.module.js +145 -145
- package/esm5/app/fs-list.providers.js +4 -4
- package/esm5/app/interfaces/cellconfig.interface.js +1 -1
- package/esm5/app/interfaces/draggable-list.interface.js +1 -1
- package/esm5/app/interfaces/external-params.interface.js +1 -1
- package/esm5/app/interfaces/index.js +1 -1
- package/esm5/app/interfaces/listconfig.interface.js +1 -1
- package/esm5/app/interfaces/pagination.interface.js +1 -1
- package/esm5/app/models/column.model.js +204 -194
- package/esm5/app/models/row/base-row.js +35 -35
- package/esm5/app/models/row/child-row.js +43 -43
- package/esm5/app/models/row/group-row.js +61 -61
- package/esm5/app/models/row/simple-row.js +15 -15
- package/esm5/app/models/row-action.model.js +126 -126
- package/esm5/app/models/row.js +126 -126
- package/esm5/app/models/styleConfig.model.js +91 -91
- package/esm5/app/services/group-expand-notifier.service.js +30 -30
- package/esm5/firestitch-list.js +17 -17
- package/esm5/public_api.js +40 -40
- package/fesm2015/firestitch-list.js +5188 -5141
- package/fesm2015/firestitch-list.js.map +1 -1
- package/fesm5/firestitch-list.js +5817 -5768
- package/fesm5/firestitch-list.js.map +1 -1
- package/firestitch-list.d.ts +18 -18
- package/firestitch-list.metadata.json +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +33 -33
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { ActivatedRoute } from '@angular/router';
|
|
4
|
-
import { FsPersistanceStore, FsStore } from '@firestitch/store';
|
|
5
|
-
const FILTER_STORE_KEY = 'fs-list-persist';
|
|
6
|
-
let PersistanceController = class PersistanceController extends FsPersistanceStore {
|
|
7
|
-
constructor(_store, _route) {
|
|
8
|
-
super(_store, _route);
|
|
9
|
-
this.STORE_KEY = FILTER_STORE_KEY;
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
|
-
PersistanceController.ctorParameters = () => [
|
|
13
|
-
{ type: FsStore },
|
|
14
|
-
{ type: ActivatedRoute }
|
|
15
|
-
];
|
|
16
|
-
PersistanceController = __decorate([
|
|
17
|
-
Injectable(),
|
|
18
|
-
__metadata("design:paramtypes", [FsStore,
|
|
19
|
-
ActivatedRoute])
|
|
20
|
-
], PersistanceController);
|
|
21
|
-
export { PersistanceController };
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { ActivatedRoute } from '@angular/router';
|
|
4
|
+
import { FsPersistanceStore, FsStore } from '@firestitch/store';
|
|
5
|
+
const FILTER_STORE_KEY = 'fs-list-persist';
|
|
6
|
+
let PersistanceController = class PersistanceController extends FsPersistanceStore {
|
|
7
|
+
constructor(_store, _route) {
|
|
8
|
+
super(_store, _route);
|
|
9
|
+
this.STORE_KEY = FILTER_STORE_KEY;
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
PersistanceController.ctorParameters = () => [
|
|
13
|
+
{ type: FsStore },
|
|
14
|
+
{ type: ActivatedRoute }
|
|
15
|
+
];
|
|
16
|
+
PersistanceController = __decorate([
|
|
17
|
+
Injectable(),
|
|
18
|
+
__metadata("design:paramtypes", [FsStore,
|
|
19
|
+
ActivatedRoute])
|
|
20
|
+
], PersistanceController);
|
|
21
|
+
export { PersistanceController };
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGFuY2UtY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2xpc3QvIiwic291cmNlcyI6WyJhcHAvY2xhc3Nlcy9wZXJzaXN0YW5jZS1jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHaEUsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztBQUczQyxJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFzQixTQUFRLGtCQUFvQztJQUk3RSxZQUNFLE1BQWUsRUFDZixNQUFzQjtRQUV0QixLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBTmQsY0FBUyxHQUFHLGdCQUFnQixDQUFDO0lBT3ZDLENBQUM7Q0FFRixDQUFBOztZQU5XLE9BQU87WUFDUCxjQUFjOztBQU5iLHFCQUFxQjtJQURqQyxVQUFVLEVBQUU7cUNBTUQsT0FBTztRQUNQLGNBQWM7R0FOYixxQkFBcUIsQ0FXakM7U0FYWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEZzUGVyc2lzdGFuY2VTdG9yZSwgRnNTdG9yZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3N0b3JlJztcbmltcG9ydCB7IEZzTGlzdFBlcnNpdGFuY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuY29uc3QgRklMVEVSX1NUT1JFX0tFWSA9ICdmcy1saXN0LXBlcnNpc3QnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGVyc2lzdGFuY2VDb250cm9sbGVyIGV4dGVuZHMgRnNQZXJzaXN0YW5jZVN0b3JlPEZzTGlzdFBlcnNpdGFuY2U+IHtcblxuICBwcm90ZWN0ZWQgU1RPUkVfS0VZID0gRklMVEVSX1NUT1JFX0tFWTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBfc3RvcmU6IEZzU3RvcmUsXG4gICAgX3JvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgKSB7XG4gICAgc3VwZXIoX3N0b3JlLCBfcm91dGUpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,161 +1,161 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { BehaviorSubject, Observable, Subject } from 'rxjs';
|
|
4
|
-
import { distinctUntilChanged, map, shareReplay, takeUntil } from 'rxjs/operators';
|
|
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
|
-
let ReorderController = class ReorderController {
|
|
17
|
-
constructor() {
|
|
18
|
-
this._enabled$ = new BehaviorSubject(false);
|
|
19
|
-
this._manualReorderActivated$ = new BehaviorSubject(false);
|
|
20
|
-
this._reorderDisabled$ = new BehaviorSubject(false);
|
|
21
|
-
this._destroy$ = new Subject();
|
|
22
|
-
}
|
|
23
|
-
get enabled() {
|
|
24
|
-
return this._enabled$.getValue();
|
|
25
|
-
}
|
|
26
|
-
set enabled(value) {
|
|
27
|
-
this._enabled$.next(value);
|
|
28
|
-
this._manualReorderActivated$.next(this.enabled && this.strategy === ReorderStrategy.Manual);
|
|
29
|
-
}
|
|
30
|
-
get dataController() {
|
|
31
|
-
return this._dataController;
|
|
32
|
-
}
|
|
33
|
-
get manualReorderActivated$() {
|
|
34
|
-
return this._manualReorderActivated$.asObservable();
|
|
35
|
-
}
|
|
36
|
-
get leftReorderActivated$() {
|
|
37
|
-
return this._enabled$
|
|
38
|
-
.pipe(map((enabled) => {
|
|
39
|
-
return enabled && this.position === ReorderPosition.Left;
|
|
40
|
-
}), distinctUntilChanged(), shareReplay(), takeUntil(this._destroy$));
|
|
41
|
-
}
|
|
42
|
-
get rightReorderActivated$() {
|
|
43
|
-
return this._enabled$
|
|
44
|
-
.pipe(map((enabled) => {
|
|
45
|
-
return enabled && this.position === ReorderPosition.Right;
|
|
46
|
-
}), distinctUntilChanged(), shareReplay(), takeUntil(this._destroy$));
|
|
47
|
-
}
|
|
48
|
-
get reorderDisabled$() {
|
|
49
|
-
return this._reorderDisabled$.asObservable();
|
|
50
|
-
}
|
|
51
|
-
get reorderDisabled() {
|
|
52
|
-
return this._reorderDisabled$.getValue();
|
|
53
|
-
}
|
|
54
|
-
initWithConfig(data, dataController, actionsController) {
|
|
55
|
-
var _a, _b, _c, _d;
|
|
56
|
-
if (!data) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
this.menu = (_a = data.menu, (_a !== null && _a !== void 0 ? _a : true));
|
|
60
|
-
this.position = (_b = data.position, (_b !== null && _b !== void 0 ? _b : ReorderPosition.Left));
|
|
61
|
-
this.strategy = (_c = data.strategy, (_c !== null && _c !== void 0 ? _c : ReorderStrategy.Manual));
|
|
62
|
-
this.status = (_d = data.status, (_d !== null && _d !== void 0 ? _d : true));
|
|
63
|
-
this.label = data.label;
|
|
64
|
-
this.startCallback = data.start;
|
|
65
|
-
this.movedCallback = data.moved;
|
|
66
|
-
this.doneCallback = data.done;
|
|
67
|
-
this.moveDropCallback = data.moveDrop;
|
|
68
|
-
this._dataController = dataController;
|
|
69
|
-
this._actionsController = actionsController;
|
|
70
|
-
if (this.strategy === ReorderStrategy.Always) {
|
|
71
|
-
this.enableReorder();
|
|
72
|
-
}
|
|
73
|
-
else if (this.strategy === ReorderStrategy.Manual) {
|
|
74
|
-
actionsController.addReorderAction({
|
|
75
|
-
label: this.label || 'Reorder',
|
|
76
|
-
menu: this.menu,
|
|
77
|
-
primary: false,
|
|
78
|
-
click: () => {
|
|
79
|
-
this.enableReorder();
|
|
80
|
-
},
|
|
81
|
-
disabled: () => {
|
|
82
|
-
return this.reorderDisabled;
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
actionsController.addReorderDoneAction({
|
|
86
|
-
label: 'Done',
|
|
87
|
-
primary: false,
|
|
88
|
-
click: () => {
|
|
89
|
-
this.disableReorder();
|
|
90
|
-
},
|
|
91
|
-
disabled: () => {
|
|
92
|
-
return this.reorderDisabled;
|
|
93
|
-
},
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
enableReorder() {
|
|
98
|
-
if (this.strategy === ReorderStrategy.Manual || this.strategy === ReorderStrategy.Custom) {
|
|
99
|
-
const returnedValue = this.startCallback();
|
|
100
|
-
if (returnedValue && returnedValue instanceof Observable) {
|
|
101
|
-
this.disableReorderAction();
|
|
102
|
-
returnedValue
|
|
103
|
-
.pipe(takeUntil(this._destroy$))
|
|
104
|
-
.subscribe(() => {
|
|
105
|
-
this.enabled = true;
|
|
106
|
-
this.enableReorderAction();
|
|
107
|
-
});
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
this.enabled = true;
|
|
112
|
-
}
|
|
113
|
-
disableReorder() {
|
|
114
|
-
if (this.strategy === ReorderStrategy.Manual || this.strategy === ReorderStrategy.Custom) {
|
|
115
|
-
const returnedValue = this.reorderFinished();
|
|
116
|
-
if (returnedValue && returnedValue instanceof Observable) {
|
|
117
|
-
this.disableReorderAction();
|
|
118
|
-
returnedValue
|
|
119
|
-
.pipe(takeUntil(this._destroy$))
|
|
120
|
-
.subscribe(() => {
|
|
121
|
-
this.enabled = false;
|
|
122
|
-
this.enableReorderAction();
|
|
123
|
-
});
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
this.enabled = false;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Exec end callback
|
|
131
|
-
*/
|
|
132
|
-
reorderFinished() {
|
|
133
|
-
if (this.doneCallback) {
|
|
134
|
-
return this.doneCallback(this._dataController.reorderData);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
ngOnDestroy() {
|
|
138
|
-
this._destroy$.next();
|
|
139
|
-
this._destroy$.complete();
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Enable reorder action and update filter actions state
|
|
143
|
-
*/
|
|
144
|
-
enableReorderAction() {
|
|
145
|
-
this._reorderDisabled$.next(false);
|
|
146
|
-
this._actionsController.updateDisabledState();
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Disable reorder action and update filter actions state
|
|
150
|
-
*/
|
|
151
|
-
disableReorderAction() {
|
|
152
|
-
this._reorderDisabled$.next(true);
|
|
153
|
-
this._actionsController.updateDisabledState();
|
|
154
|
-
}
|
|
155
|
-
};
|
|
156
|
-
ReorderController = __decorate([
|
|
157
|
-
Injectable(),
|
|
158
|
-
__metadata("design:paramtypes", [])
|
|
159
|
-
], ReorderController);
|
|
160
|
-
export { ReorderController };
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVvcmRlci1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvbGlzdC8iLCJzb3VyY2VzIjpbImFwcC9jbGFzc2VzL3Jlb3JkZXItY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFXbkYsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN6QixnQ0FBYSxDQUFBO0lBQ2Isa0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3pCLG9DQUFpQixDQUFBO0lBQ2pCLG9DQUFpQixDQUFBO0lBQ2pCLG9DQUFpQixDQUFBO0FBQ25CLENBQUMsRUFKVyxlQUFlLEtBQWYsZUFBZSxRQUkxQjtBQUdELElBQWEsaUJBQWlCLEdBQTlCLE1BQWEsaUJBQWlCO0lBc0I1QjtRQU5RLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNoRCw2QkFBd0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVuQixDQUFDO0lBRWhCLElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVcsT0FBTyxDQUFDLEtBQUs7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b0JBQW9CO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDaEQsQ0FBQztDQUNGLENBQUE7QUFyTVksaUJBQWlCO0lBRDdCLFVBQVUsRUFBRTs7R0FDQSxpQkFBaUIsQ0FxTTdCO1NBck1ZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEZzTGlzdFJlb3JkZXJEb25lQ2FsbGJhY2ssXHJcbiAgRnNMaXN0UmVvcmRlck1vdmVkQ2FsbGJhY2ssXHJcbiAgRnNMaXN0UmVvcmRlck1vdmVJbkdyb3VwQ2FsbGJhY2tcclxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmltcG9ydCB7IERhdGFDb250cm9sbGVyIH0gZnJvbSAnLi9kYXRhLWNvbnRyb2xsZXInO1xyXG5pbXBvcnQgeyBBY3Rpb25zQ29udHJvbGxlciB9IGZyb20gJy4vYWN0aW9ucy1jb250cm9sbGVyJztcclxuXHJcbmV4cG9ydCBlbnVtIFJlb3JkZXJQb3NpdGlvbiB7XHJcbiAgTGVmdCA9ICdsZWZ0JyxcclxuICBSaWdodCA9ICdyaWdodCcsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFJlb3JkZXJTdHJhdGVneSB7XHJcbiAgQWx3YXlzID0gJ2Fsd2F5cycsXHJcbiAgTWFudWFsID0gJ21hbnVhbCcsXHJcbiAgQ3VzdG9tID0gJ2N1c3RvbScsXHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFJlb3JkZXJDb250cm9sbGVyIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgcHVibGljIHN0YXJ0Q2FsbGJhY2s6ICgpID0+IHZvaWQgfCBPYnNlcnZhYmxlPHZvaWQ+O1xyXG4gIHB1YmxpYyBtb3ZlZENhbGxiYWNrOiBGc0xpc3RSZW9yZGVyTW92ZWRDYWxsYmFjaztcclxuICBwdWJsaWMgZG9uZUNhbGxiYWNrOiBGc0xpc3RSZW9yZGVyRG9uZUNhbGxiYWNrO1xyXG4gIHB1YmxpYyBtb3ZlRHJvcENhbGxiYWNrOiBGc0xpc3RSZW9yZGVyTW92ZUluR3JvdXBDYWxsYmFjaztcclxuXHJcbiAgcHVibGljIHN0YXR1czogYm9vbGVhbjtcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcclxuICBwdWJsaWMgbWVudTogYm9vbGVhbjtcclxuICBwdWJsaWMgcG9zaXRpb246IFJlb3JkZXJQb3NpdGlvbjtcclxuICBwdWJsaWMgc3RyYXRlZ3k6IFJlb3JkZXJTdHJhdGVneTtcclxuXHJcbiAgcHJpdmF0ZSBfZGF0YUNvbnRyb2xsZXI6IERhdGFDb250cm9sbGVyO1xyXG4gIHByaXZhdGUgX2FjdGlvbnNDb250cm9sbGVyOiBBY3Rpb25zQ29udHJvbGxlcjtcclxuXHJcbiAgcHJpdmF0ZSBfZW5hYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBwcml2YXRlIF9tYW51YWxSZW9yZGVyQWN0aXZhdGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG4gIHByaXZhdGUgX3Jlb3JkZXJEaXNhYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuXHJcbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIHB1YmxpYyBnZXQgZW5hYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9lbmFibGVkJC5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBlbmFibGVkKHZhbHVlKSB7XHJcbiAgICB0aGlzLl9lbmFibGVkJC5uZXh0KHZhbHVlKTtcclxuXHJcbiAgICB0aGlzLl9tYW51YWxSZW9yZGVyQWN0aXZhdGVkJC5uZXh0KHRoaXMuZW5hYmxlZCAmJiB0aGlzLnN0cmF0ZWd5ID09PSBSZW9yZGVyU3RyYXRlZ3kuTWFudWFsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGF0YUNvbnRyb2xsZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YUNvbnRyb2xsZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1hbnVhbFJlb3JkZXJBY3RpdmF0ZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX21hbnVhbFJlb3JkZXJBY3RpdmF0ZWQkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBsZWZ0UmVvcmRlckFjdGl2YXRlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlZCRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChlbmFibGVkKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gZW5hYmxlZCAmJiB0aGlzLnBvc2l0aW9uID09PSBSZW9yZGVyUG9zaXRpb24uTGVmdDtcclxuICAgICAgICB9KSxcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgIHNoYXJlUmVwbGF5KCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcclxuICAgICAgKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByaWdodFJlb3JkZXJBY3RpdmF0ZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoZW5hYmxlZCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGVuYWJsZWQgJiYgdGhpcy5wb3NpdGlvbiA9PT0gUmVvcmRlclBvc2l0aW9uLlJpZ2h0O1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgc2hhcmVSZXBsYXkoKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxyXG4gICAgICApXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlb3JkZXJEaXNhYmxlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVvcmRlckRpc2FibGVkJC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcmVvcmRlckRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Jlb3JkZXJEaXNhYmxlZCQuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0V2l0aENvbmZpZyhkYXRhLCBkYXRhQ29udHJvbGxlcjogRGF0YUNvbnRyb2xsZXIsIGFjdGlvbnNDb250cm9sbGVyOiBBY3Rpb25zQ29udHJvbGxlcikge1xyXG4gICAgaWYgKCFkYXRhKSB7IHJldHVybiB9XHJcblxyXG4gICAgdGhpcy5tZW51ID0gZGF0YS5tZW51ID8/IHRydWU7XHJcbiAgICB0aGlzLnBvc2l0aW9uID0gZGF0YS5wb3NpdGlvbiA/PyBSZW9yZGVyUG9zaXRpb24uTGVmdDtcclxuICAgIHRoaXMuc3RyYXRlZ3kgPSBkYXRhLnN0cmF0ZWd5ID8/IFJlb3JkZXJTdHJhdGVneS5NYW51YWw7XHJcbiAgICB0aGlzLnN0YXR1cyA9IGRhdGEuc3RhdHVzID8/IHRydWU7XHJcbiAgICB0aGlzLmxhYmVsID0gZGF0YS5sYWJlbDtcclxuXHJcbiAgICB0aGlzLnN0YXJ0Q2FsbGJhY2sgPSBkYXRhLnN0YXJ0O1xyXG4gICAgdGhpcy5tb3ZlZENhbGxiYWNrID0gZGF0YS5tb3ZlZDtcclxuICAgIHRoaXMuZG9uZUNhbGxiYWNrID0gZGF0YS5kb25lO1xyXG4gICAgdGhpcy5tb3ZlRHJvcENhbGxiYWNrID0gZGF0YS5tb3ZlRHJvcDtcclxuXHJcbiAgICB0aGlzLl9kYXRhQ29udHJvbGxlciA9IGRhdGFDb250cm9sbGVyO1xyXG4gICAgdGhpcy5fYWN0aW9uc0NvbnRyb2xsZXIgPSBhY3Rpb25zQ29udHJvbGxlcjtcclxuXHJcbiAgICBpZiAodGhpcy5zdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5LkFsd2F5cykge1xyXG4gICAgICB0aGlzLmVuYWJsZVJlb3JkZXIoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5Lk1hbnVhbCkge1xyXG4gICAgICBhY3Rpb25zQ29udHJvbGxlci5hZGRSZW9yZGVyQWN0aW9uKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxhYmVsOiB0aGlzLmxhYmVsIHx8ICdSZW9yZGVyJyxcclxuICAgICAgICAgIG1lbnU6IHRoaXMubWVudSxcclxuICAgICAgICAgIHByaW1hcnk6IGZhbHNlLFxyXG4gICAgICAgICAgY2xpY2s6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5lbmFibGVSZW9yZGVyKCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGlzYWJsZWQ6ICgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVvcmRlckRpc2FibGVkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICAgIGFjdGlvbnNDb250cm9sbGVyLmFkZFJlb3JkZXJEb25lQWN0aW9uKHtcclxuICAgICAgICAgIGxhYmVsOiAnRG9uZScsXHJcbiAgICAgICAgICBwcmltYXJ5OiBmYWxzZSxcclxuICAgICAgICAgIGNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZVJlb3JkZXIoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkaXNhYmxlZDogKCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZW9yZGVyRGlzYWJsZWQ7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGVuYWJsZVJlb3JkZXIoKSB7XHJcbiAgICBpZiAodGhpcy5zdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5Lk1hbnVhbCB8fCB0aGlzLnN0cmF0ZWd5ID09PSBSZW9yZGVyU3RyYXRlZ3kuQ3VzdG9tKSB7XHJcbiAgICAgIGNvbnN0IHJldHVybmVkVmFsdWUgPSB0aGlzLnN0YXJ0Q2FsbGJhY2soKTtcclxuXHJcbiAgICAgIGlmIChyZXR1cm5lZFZhbHVlICYmIHJldHVybmVkVmFsdWUgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlUmVvcmRlckFjdGlvbigpO1xyXG5cclxuICAgICAgICByZXR1cm5lZFZhbHVlXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmVuYWJsZVJlb3JkZXJBY3Rpb24oKTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmVuYWJsZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRpc2FibGVSZW9yZGVyKCkge1xyXG4gICAgaWYgKHRoaXMuc3RyYXRlZ3kgPT09IFJlb3JkZXJTdHJhdGVneS5NYW51YWwgfHwgdGhpcy5zdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5LkN1c3RvbSkge1xyXG4gICAgICBjb25zdCByZXR1cm5lZFZhbHVlID0gdGhpcy5yZW9yZGVyRmluaXNoZWQoKTtcclxuXHJcbiAgICAgIGlmIChyZXR1cm5lZFZhbHVlICYmIHJldHVybmVkVmFsdWUgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlUmVvcmRlckFjdGlvbigpO1xyXG5cclxuICAgICAgICByZXR1cm5lZFZhbHVlXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmVuYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5lbmFibGVSZW9yZGVyQWN0aW9uKCk7XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5lbmFibGVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeGVjIGVuZCBjYWxsYmFja1xyXG4gICAqL1xyXG4gIHB1YmxpYyByZW9yZGVyRmluaXNoZWQoKSB7XHJcbiAgICBpZiAodGhpcy5kb25lQ2FsbGJhY2spIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZG9uZUNhbGxiYWNrKHRoaXMuX2RhdGFDb250cm9sbGVyLnJlb3JkZXJEYXRhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbmFibGUgcmVvcmRlciBhY3Rpb24gYW5kIHVwZGF0ZSBmaWx0ZXIgYWN0aW9ucyBzdGF0ZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBlbmFibGVSZW9yZGVyQWN0aW9uKCkge1xyXG4gICAgdGhpcy5fcmVvcmRlckRpc2FibGVkJC5uZXh0KGZhbHNlKTtcclxuICAgIHRoaXMuX2FjdGlvbnNDb250cm9sbGVyLnVwZGF0ZURpc2FibGVkU3RhdGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc2FibGUgcmVvcmRlciBhY3Rpb24gYW5kIHVwZGF0ZSBmaWx0ZXIgYWN0aW9ucyBzdGF0ZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBkaXNhYmxlUmVvcmRlckFjdGlvbigpIHtcclxuICAgIHRoaXMuX3Jlb3JkZXJEaXNhYmxlZCQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuX2FjdGlvbnNDb250cm9sbGVyLnVwZGF0ZURpc2FibGVkU3RhdGUoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject, Observable, Subject } from 'rxjs';
|
|
4
|
+
import { distinctUntilChanged, map, shareReplay, takeUntil } from 'rxjs/operators';
|
|
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
|
+
let ReorderController = class ReorderController {
|
|
17
|
+
constructor() {
|
|
18
|
+
this._enabled$ = new BehaviorSubject(false);
|
|
19
|
+
this._manualReorderActivated$ = new BehaviorSubject(false);
|
|
20
|
+
this._reorderDisabled$ = new BehaviorSubject(false);
|
|
21
|
+
this._destroy$ = new Subject();
|
|
22
|
+
}
|
|
23
|
+
get enabled() {
|
|
24
|
+
return this._enabled$.getValue();
|
|
25
|
+
}
|
|
26
|
+
set enabled(value) {
|
|
27
|
+
this._enabled$.next(value);
|
|
28
|
+
this._manualReorderActivated$.next(this.enabled && this.strategy === ReorderStrategy.Manual);
|
|
29
|
+
}
|
|
30
|
+
get dataController() {
|
|
31
|
+
return this._dataController;
|
|
32
|
+
}
|
|
33
|
+
get manualReorderActivated$() {
|
|
34
|
+
return this._manualReorderActivated$.asObservable();
|
|
35
|
+
}
|
|
36
|
+
get leftReorderActivated$() {
|
|
37
|
+
return this._enabled$
|
|
38
|
+
.pipe(map((enabled) => {
|
|
39
|
+
return enabled && this.position === ReorderPosition.Left;
|
|
40
|
+
}), distinctUntilChanged(), shareReplay(), takeUntil(this._destroy$));
|
|
41
|
+
}
|
|
42
|
+
get rightReorderActivated$() {
|
|
43
|
+
return this._enabled$
|
|
44
|
+
.pipe(map((enabled) => {
|
|
45
|
+
return enabled && this.position === ReorderPosition.Right;
|
|
46
|
+
}), distinctUntilChanged(), shareReplay(), takeUntil(this._destroy$));
|
|
47
|
+
}
|
|
48
|
+
get reorderDisabled$() {
|
|
49
|
+
return this._reorderDisabled$.asObservable();
|
|
50
|
+
}
|
|
51
|
+
get reorderDisabled() {
|
|
52
|
+
return this._reorderDisabled$.getValue();
|
|
53
|
+
}
|
|
54
|
+
initWithConfig(data, dataController, actionsController) {
|
|
55
|
+
var _a, _b, _c, _d;
|
|
56
|
+
if (!data) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
this.menu = (_a = data.menu, (_a !== null && _a !== void 0 ? _a : true));
|
|
60
|
+
this.position = (_b = data.position, (_b !== null && _b !== void 0 ? _b : ReorderPosition.Left));
|
|
61
|
+
this.strategy = (_c = data.strategy, (_c !== null && _c !== void 0 ? _c : ReorderStrategy.Manual));
|
|
62
|
+
this.status = (_d = data.status, (_d !== null && _d !== void 0 ? _d : true));
|
|
63
|
+
this.label = data.label;
|
|
64
|
+
this.startCallback = data.start;
|
|
65
|
+
this.movedCallback = data.moved;
|
|
66
|
+
this.doneCallback = data.done;
|
|
67
|
+
this.moveDropCallback = data.moveDrop;
|
|
68
|
+
this._dataController = dataController;
|
|
69
|
+
this._actionsController = actionsController;
|
|
70
|
+
if (this.strategy === ReorderStrategy.Always) {
|
|
71
|
+
this.enableReorder();
|
|
72
|
+
}
|
|
73
|
+
else if (this.strategy === ReorderStrategy.Manual) {
|
|
74
|
+
actionsController.addReorderAction({
|
|
75
|
+
label: this.label || 'Reorder',
|
|
76
|
+
menu: this.menu,
|
|
77
|
+
primary: false,
|
|
78
|
+
click: () => {
|
|
79
|
+
this.enableReorder();
|
|
80
|
+
},
|
|
81
|
+
disabled: () => {
|
|
82
|
+
return this.reorderDisabled;
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
actionsController.addReorderDoneAction({
|
|
86
|
+
label: 'Done',
|
|
87
|
+
primary: false,
|
|
88
|
+
click: () => {
|
|
89
|
+
this.disableReorder();
|
|
90
|
+
},
|
|
91
|
+
disabled: () => {
|
|
92
|
+
return this.reorderDisabled;
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
enableReorder() {
|
|
98
|
+
if (this.strategy === ReorderStrategy.Manual || this.strategy === ReorderStrategy.Custom) {
|
|
99
|
+
const returnedValue = this.startCallback();
|
|
100
|
+
if (returnedValue && returnedValue instanceof Observable) {
|
|
101
|
+
this.disableReorderAction();
|
|
102
|
+
returnedValue
|
|
103
|
+
.pipe(takeUntil(this._destroy$))
|
|
104
|
+
.subscribe(() => {
|
|
105
|
+
this.enabled = true;
|
|
106
|
+
this.enableReorderAction();
|
|
107
|
+
});
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
this.enabled = true;
|
|
112
|
+
}
|
|
113
|
+
disableReorder() {
|
|
114
|
+
if (this.strategy === ReorderStrategy.Manual || this.strategy === ReorderStrategy.Custom) {
|
|
115
|
+
const returnedValue = this.reorderFinished();
|
|
116
|
+
if (returnedValue && returnedValue instanceof Observable) {
|
|
117
|
+
this.disableReorderAction();
|
|
118
|
+
returnedValue
|
|
119
|
+
.pipe(takeUntil(this._destroy$))
|
|
120
|
+
.subscribe(() => {
|
|
121
|
+
this.enabled = false;
|
|
122
|
+
this.enableReorderAction();
|
|
123
|
+
});
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
this.enabled = false;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Exec end callback
|
|
131
|
+
*/
|
|
132
|
+
reorderFinished() {
|
|
133
|
+
if (this.doneCallback) {
|
|
134
|
+
return this.doneCallback(this._dataController.reorderData);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
ngOnDestroy() {
|
|
138
|
+
this._destroy$.next();
|
|
139
|
+
this._destroy$.complete();
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Enable reorder action and update filter actions state
|
|
143
|
+
*/
|
|
144
|
+
enableReorderAction() {
|
|
145
|
+
this._reorderDisabled$.next(false);
|
|
146
|
+
this._actionsController.updateDisabledState();
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Disable reorder action and update filter actions state
|
|
150
|
+
*/
|
|
151
|
+
disableReorderAction() {
|
|
152
|
+
this._reorderDisabled$.next(true);
|
|
153
|
+
this._actionsController.updateDisabledState();
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
ReorderController = __decorate([
|
|
157
|
+
Injectable(),
|
|
158
|
+
__metadata("design:paramtypes", [])
|
|
159
|
+
], ReorderController);
|
|
160
|
+
export { ReorderController };
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVvcmRlci1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvbGlzdC8iLCJzb3VyY2VzIjpbImFwcC9jbGFzc2VzL3Jlb3JkZXItY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFXbkYsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN6QixnQ0FBYSxDQUFBO0lBQ2Isa0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3pCLG9DQUFpQixDQUFBO0lBQ2pCLG9DQUFpQixDQUFBO0lBQ2pCLG9DQUFpQixDQUFBO0FBQ25CLENBQUMsRUFKVyxlQUFlLEtBQWYsZUFBZSxRQUkxQjtBQUdELElBQWEsaUJBQWlCLEdBQTlCLE1BQWEsaUJBQWlCO0lBc0I1QjtRQU5RLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNoRCw2QkFBd0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVuQixDQUFDO0lBRWhCLElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVcsT0FBTyxDQUFDLEtBQUs7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFM0IsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLHVCQUF1QjtRQUNoQyxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBVyxxQkFBcUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsU0FBUzthQUNsQixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDZCxPQUFPLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLGVBQWUsQ0FBQyxJQUFJLENBQUM7UUFDM0QsQ0FBQyxDQUFDLEVBQ0Ysb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxFQUFFLEVBQ2IsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUIsQ0FBQTtJQUNMLENBQUM7SUFFRCxJQUFXLHNCQUFzQjtRQUMvQixPQUFPLElBQUksQ0FBQyxTQUFTO2FBQ2xCLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNkLE9BQU8sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssZUFBZSxDQUFDLEtBQUssQ0FBQztRQUM1RCxDQUFDLENBQUMsRUFDRixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLEVBQUUsRUFDYixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQixDQUFBO0lBQ0wsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBOEIsRUFBRSxpQkFBb0M7O1FBQzlGLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFBRSxPQUFNO1NBQUU7UUFFckIsSUFBSSxDQUFDLElBQUksU0FBRyxJQUFJLENBQUMsSUFBSSx1Q0FBSSxJQUFJLEVBQUEsQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxTQUFHLElBQUksQ0FBQyxRQUFRLHVDQUFJLGVBQWUsQ0FBQyxJQUFJLEVBQUEsQ0FBQztRQUN0RCxJQUFJLENBQUMsUUFBUSxTQUFHLElBQUksQ0FBQyxRQUFRLHVDQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUEsQ0FBQztRQUN4RCxJQUFJLENBQUMsTUFBTSxTQUFHLElBQUksQ0FBQyxNQUFNLHVDQUFJLElBQUksRUFBQSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUV4QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUV0QyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUN0QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQWlCLENBQUM7UUFFNUMsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLGVBQWUsQ0FBQyxNQUFNLEVBQUU7WUFDNUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLGVBQWUsQ0FBQyxNQUFNLEVBQUU7WUFDbkQsaUJBQWlCLENBQUMsZ0JBQWdCLENBQ2hDO2dCQUNFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLFNBQVM7Z0JBQzlCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixPQUFPLEVBQUUsS0FBSztnQkFDZCxLQUFLLEVBQUUsR0FBRyxFQUFFO29CQUNWLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDdkIsQ0FBQztnQkFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFO29CQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDOUIsQ0FBQzthQUNGLENBQ0YsQ0FBQztZQUVGLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDO2dCQUNuQyxLQUFLLEVBQUUsTUFBTTtnQkFDYixPQUFPLEVBQUUsS0FBSztnQkFDZCxLQUFLLEVBQUUsR0FBRyxFQUFFO29CQUNWLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQztnQkFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFO29CQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDOUIsQ0FBQzthQUNGLENBQ0YsQ0FBQTtTQUNGO0lBQ0gsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLGVBQWUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxlQUFlLENBQUMsTUFBTSxFQUFFO1lBQ3hGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUUzQyxJQUFJLGFBQWEsSUFBSSxhQUFhLFlBQVksVUFBVSxFQUFFO2dCQUN4RCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFFNUIsYUFBYTtxQkFDVixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7cUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztvQkFDcEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxDQUFDO2dCQUVMLE9BQU87YUFDUjtTQUNGO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLGVBQWUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxlQUFlLENBQUMsTUFBTSxFQUFFO1lBQ3hGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUU3QyxJQUFJLGFBQWEsSUFBSSxhQUFhLFlBQVksVUFBVSxFQUFFO2dCQUN4RCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFFNUIsYUFBYTtxQkFDVixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7cUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDckIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxDQUFDO2dCQUVMLE9BQU87YUFDUjtTQUNGO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZUFBZTtRQUNwQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksb0JBQW9CO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDaEQsQ0FBQztDQUNGLENBQUE7QUFyTVksaUJBQWlCO0lBRDdCLFVBQVUsRUFBRTs7R0FDQSxpQkFBaUIsQ0FxTTdCO1NBck1ZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIEZzTGlzdFJlb3JkZXJEb25lQ2FsbGJhY2ssXG4gIEZzTGlzdFJlb3JkZXJNb3ZlZENhbGxiYWNrLFxuICBGc0xpc3RSZW9yZGVyTW92ZUluR3JvdXBDYWxsYmFja1xufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgRGF0YUNvbnRyb2xsZXIgfSBmcm9tICcuL2RhdGEtY29udHJvbGxlcic7XG5pbXBvcnQgeyBBY3Rpb25zQ29udHJvbGxlciB9IGZyb20gJy4vYWN0aW9ucy1jb250cm9sbGVyJztcblxuZXhwb3J0IGVudW0gUmVvcmRlclBvc2l0aW9uIHtcbiAgTGVmdCA9ICdsZWZ0JyxcbiAgUmlnaHQgPSAncmlnaHQnLFxufVxuXG5leHBvcnQgZW51bSBSZW9yZGVyU3RyYXRlZ3kge1xuICBBbHdheXMgPSAnYWx3YXlzJyxcbiAgTWFudWFsID0gJ21hbnVhbCcsXG4gIEN1c3RvbSA9ICdjdXN0b20nLFxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmVvcmRlckNvbnRyb2xsZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBzdGFydENhbGxiYWNrOiAoKSA9PiB2b2lkIHwgT2JzZXJ2YWJsZTx2b2lkPjtcbiAgcHVibGljIG1vdmVkQ2FsbGJhY2s6IEZzTGlzdFJlb3JkZXJNb3ZlZENhbGxiYWNrO1xuICBwdWJsaWMgZG9uZUNhbGxiYWNrOiBGc0xpc3RSZW9yZGVyRG9uZUNhbGxiYWNrO1xuICBwdWJsaWMgbW92ZURyb3BDYWxsYmFjazogRnNMaXN0UmVvcmRlck1vdmVJbkdyb3VwQ2FsbGJhY2s7XG5cbiAgcHVibGljIHN0YXR1czogYm9vbGVhbjtcbiAgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBtZW51OiBib29sZWFuO1xuICBwdWJsaWMgcG9zaXRpb246IFJlb3JkZXJQb3NpdGlvbjtcbiAgcHVibGljIHN0cmF0ZWd5OiBSZW9yZGVyU3RyYXRlZ3k7XG5cbiAgcHJpdmF0ZSBfZGF0YUNvbnRyb2xsZXI6IERhdGFDb250cm9sbGVyO1xuICBwcml2YXRlIF9hY3Rpb25zQ29udHJvbGxlcjogQWN0aW9uc0NvbnRyb2xsZXI7XG5cbiAgcHJpdmF0ZSBfZW5hYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBfbWFudWFsUmVvcmRlckFjdGl2YXRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJpdmF0ZSBfcmVvcmRlckRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIGdldCBlbmFibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGVkJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldCBlbmFibGVkKHZhbHVlKSB7XG4gICAgdGhpcy5fZW5hYmxlZCQubmV4dCh2YWx1ZSk7XG5cbiAgICB0aGlzLl9tYW51YWxSZW9yZGVyQWN0aXZhdGVkJC5uZXh0KHRoaXMuZW5hYmxlZCAmJiB0aGlzLnN0cmF0ZWd5ID09PSBSZW9yZGVyU3RyYXRlZ3kuTWFudWFsKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YUNvbnRyb2xsZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGFDb250cm9sbGVyO1xuICB9XG5cbiAgcHVibGljIGdldCBtYW51YWxSZW9yZGVyQWN0aXZhdGVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFudWFsUmVvcmRlckFjdGl2YXRlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxlZnRSZW9yZGVyQWN0aXZhdGVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGVuYWJsZWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gZW5hYmxlZCAmJiB0aGlzLnBvc2l0aW9uID09PSBSZW9yZGVyUG9zaXRpb24uTGVmdDtcbiAgICAgICAgfSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHNoYXJlUmVwbGF5KCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gIH1cblxuICBwdWJsaWMgZ2V0IHJpZ2h0UmVvcmRlckFjdGl2YXRlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQkXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChlbmFibGVkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVuYWJsZWQgJiYgdGhpcy5wb3NpdGlvbiA9PT0gUmVvcmRlclBvc2l0aW9uLlJpZ2h0O1xuICAgICAgICB9KSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVvcmRlckRpc2FibGVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fcmVvcmRlckRpc2FibGVkJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVvcmRlckRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZW9yZGVyRGlzYWJsZWQkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdFdpdGhDb25maWcoZGF0YSwgZGF0YUNvbnRyb2xsZXI6IERhdGFDb250cm9sbGVyLCBhY3Rpb25zQ29udHJvbGxlcjogQWN0aW9uc0NvbnRyb2xsZXIpIHtcbiAgICBpZiAoIWRhdGEpIHsgcmV0dXJuIH1cblxuICAgIHRoaXMubWVudSA9IGRhdGEubWVudSA/PyB0cnVlO1xuICAgIHRoaXMucG9zaXRpb24gPSBkYXRhLnBvc2l0aW9uID8/IFJlb3JkZXJQb3NpdGlvbi5MZWZ0O1xuICAgIHRoaXMuc3RyYXRlZ3kgPSBkYXRhLnN0cmF0ZWd5ID8/IFJlb3JkZXJTdHJhdGVneS5NYW51YWw7XG4gICAgdGhpcy5zdGF0dXMgPSBkYXRhLnN0YXR1cyA/PyB0cnVlO1xuICAgIHRoaXMubGFiZWwgPSBkYXRhLmxhYmVsO1xuXG4gICAgdGhpcy5zdGFydENhbGxiYWNrID0gZGF0YS5zdGFydDtcbiAgICB0aGlzLm1vdmVkQ2FsbGJhY2sgPSBkYXRhLm1vdmVkO1xuICAgIHRoaXMuZG9uZUNhbGxiYWNrID0gZGF0YS5kb25lO1xuICAgIHRoaXMubW92ZURyb3BDYWxsYmFjayA9IGRhdGEubW92ZURyb3A7XG5cbiAgICB0aGlzLl9kYXRhQ29udHJvbGxlciA9IGRhdGFDb250cm9sbGVyO1xuICAgIHRoaXMuX2FjdGlvbnNDb250cm9sbGVyID0gYWN0aW9uc0NvbnRyb2xsZXI7XG5cbiAgICBpZiAodGhpcy5zdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5LkFsd2F5cykge1xuICAgICAgdGhpcy5lbmFibGVSZW9yZGVyKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0cmF0ZWd5ID09PSBSZW9yZGVyU3RyYXRlZ3kuTWFudWFsKSB7XG4gICAgICBhY3Rpb25zQ29udHJvbGxlci5hZGRSZW9yZGVyQWN0aW9uKFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6IHRoaXMubGFiZWwgfHwgJ1Jlb3JkZXInLFxuICAgICAgICAgIG1lbnU6IHRoaXMubWVudSxcbiAgICAgICAgICBwcmltYXJ5OiBmYWxzZSxcbiAgICAgICAgICBjbGljazogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVSZW9yZGVyKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBkaXNhYmxlZDogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVvcmRlckRpc2FibGVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgYWN0aW9uc0NvbnRyb2xsZXIuYWRkUmVvcmRlckRvbmVBY3Rpb24oe1xuICAgICAgICAgIGxhYmVsOiAnRG9uZScsXG4gICAgICAgICAgcHJpbWFyeTogZmFsc2UsXG4gICAgICAgICAgY2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZVJlb3JkZXIoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRpc2FibGVkOiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZW9yZGVyRGlzYWJsZWQ7XG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbmFibGVSZW9yZGVyKCkge1xuICAgIGlmICh0aGlzLnN0cmF0ZWd5ID09PSBSZW9yZGVyU3RyYXRlZ3kuTWFudWFsIHx8IHRoaXMuc3RyYXRlZ3kgPT09IFJlb3JkZXJTdHJhdGVneS5DdXN0b20pIHtcbiAgICAgIGNvbnN0IHJldHVybmVkVmFsdWUgPSB0aGlzLnN0YXJ0Q2FsbGJhY2soKTtcblxuICAgICAgaWYgKHJldHVybmVkVmFsdWUgJiYgcmV0dXJuZWRWYWx1ZSBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlUmVvcmRlckFjdGlvbigpO1xuXG4gICAgICAgIHJldHVybmVkVmFsdWVcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlUmVvcmRlckFjdGlvbigpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmVuYWJsZWQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGRpc2FibGVSZW9yZGVyKCkge1xuICAgIGlmICh0aGlzLnN0cmF0ZWd5ID09PSBSZW9yZGVyU3RyYXRlZ3kuTWFudWFsIHx8IHRoaXMuc3RyYXRlZ3kgPT09IFJlb3JkZXJTdHJhdGVneS5DdXN0b20pIHtcbiAgICAgIGNvbnN0IHJldHVybmVkVmFsdWUgPSB0aGlzLnJlb3JkZXJGaW5pc2hlZCgpO1xuXG4gICAgICBpZiAocmV0dXJuZWRWYWx1ZSAmJiByZXR1cm5lZFZhbHVlIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgICB0aGlzLmRpc2FibGVSZW9yZGVyQWN0aW9uKCk7XG5cbiAgICAgICAgcmV0dXJuZWRWYWx1ZVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlUmVvcmRlckFjdGlvbigpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmVuYWJsZWQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjIGVuZCBjYWxsYmFja1xuICAgKi9cbiAgcHVibGljIHJlb3JkZXJGaW5pc2hlZCgpIHtcbiAgICBpZiAodGhpcy5kb25lQ2FsbGJhY2spIHtcbiAgICAgIHJldHVybiB0aGlzLmRvbmVDYWxsYmFjayh0aGlzLl9kYXRhQ29udHJvbGxlci5yZW9yZGVyRGF0YSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZSByZW9yZGVyIGFjdGlvbiBhbmQgdXBkYXRlIGZpbHRlciBhY3Rpb25zIHN0YXRlXG4gICAqL1xuICBwdWJsaWMgZW5hYmxlUmVvcmRlckFjdGlvbigpIHtcbiAgICB0aGlzLl9yZW9yZGVyRGlzYWJsZWQkLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuX2FjdGlvbnNDb250cm9sbGVyLnVwZGF0ZURpc2FibGVkU3RhdGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHJlb3JkZXIgYWN0aW9uIGFuZCB1cGRhdGUgZmlsdGVyIGFjdGlvbnMgc3RhdGVcbiAgICovXG4gIHB1YmxpYyBkaXNhYmxlUmVvcmRlckFjdGlvbigpIHtcbiAgICB0aGlzLl9yZW9yZGVyRGlzYWJsZWQkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5fYWN0aW9uc0NvbnRyb2xsZXIudXBkYXRlRGlzYWJsZWRTdGF0ZSgpO1xuICB9XG59XG4iXX0=
|