@firestitch/filter 12.11.2 → 12.11.4
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 +5 -2
- package/app/components/action-button/action-button.component.d.ts +2 -0
- package/app/components/filter/filter.component.d.ts +7 -7
- package/app/enums/action-type.enum.d.ts +3 -1
- package/app/enums/button-style.d.ts +9 -0
- package/app/enums/index.d.ts +3 -2
- package/app/interfaces/config.interface.d.ts +9 -8
- package/app/models/action.model.d.ts +3 -2
- package/app/models/filter-config.d.ts +2 -2
- package/bundles/firestitch-filter.umd.js +1229 -1204
- package/bundles/firestitch-filter.umd.js.map +1 -1
- package/esm2015/app/classes/actions-controller.js +7 -3
- package/esm2015/app/components/action-button/action-button.component.js +6 -2
- package/esm2015/app/components/actions/actions.component.js +2 -2
- package/esm2015/app/components/filter/filter.component.js +11 -11
- package/esm2015/app/enums/action-type.enum.js +3 -1
- package/esm2015/app/enums/button-style.js +11 -0
- package/esm2015/app/enums/index.js +4 -3
- package/esm2015/app/interfaces/config.interface.js +1 -1
- package/esm2015/app/models/action.model.js +12 -7
- package/esm2015/app/models/filter-config.js +3 -2
- package/esm2015/public_api.js +10 -10
- package/fesm2015/firestitch-filter.js +1061 -1036
- package/fesm2015/firestitch-filter.js.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +16 -16
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
1
|
import { BreakpointObserver } from '@angular/cdk/layout';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
3
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
4
4
|
import { skip, takeUntil } from 'rxjs/operators';
|
|
5
5
|
import { Action } from '../models/action.model';
|
|
@@ -38,13 +38,17 @@ export class ActionsController {
|
|
|
38
38
|
this._destroy$.next();
|
|
39
39
|
this._destroy$.complete();
|
|
40
40
|
}
|
|
41
|
+
setConfig(config) {
|
|
42
|
+
this._config = config;
|
|
43
|
+
this.initActions(config.actions);
|
|
44
|
+
}
|
|
41
45
|
initActions(rawActions) {
|
|
42
46
|
if (!rawActions || !Array.isArray(rawActions)) {
|
|
43
47
|
return;
|
|
44
48
|
}
|
|
45
49
|
this.show();
|
|
46
50
|
this._allActions = rawActions
|
|
47
|
-
.map((action) => new Action(action));
|
|
51
|
+
.map((action) => new Action(this._config, action));
|
|
48
52
|
if (this._reorderAction) {
|
|
49
53
|
this._allActions.unshift(this._reorderAction);
|
|
50
54
|
}
|
|
@@ -120,4 +124,4 @@ ActionsController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
|
|
|
120
124
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ActionsController, decorators: [{
|
|
121
125
|
type: Injectable
|
|
122
126
|
}], ctorParameters: function () { return [{ type: i1.BreakpointObserver }]; } });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL2FjdGlvbnMtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFLaEQsTUFBTSxPQUFPLGlCQUFpQjtJQVc1QixZQUNVLG1CQUF1QztRQUF2Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBVnpDLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVcsRUFBRSxDQUFDLENBQUM7UUFDOUMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUNsRCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV2QixpQkFBWSxHQUFHLG9CQUFvQixDQUFDO1FBQzdDLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBTWpDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxT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QUFqQixpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2tpcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvYWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IEZzRmlsdGVyQWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9hY3Rpb24uaW50ZXJmYWNlJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWN0aW9uc0NvbnRyb2xsZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX3Zpc2libGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByaXZhdGUgX2FjdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBY3Rpb25bXT4oW10pO1xuICBwcml2YXRlIF9tZW51QWN0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFjdGlvbltdPihbXSk7XG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tb2JpbGVNZWRpYSA9ICcobWF4LXdpZHRoOiA3OTlweCknO1xuICBwcml2YXRlIF9hbGxBY3Rpb25zOiBBY3Rpb25bXSA9IFtdO1xuICBwcml2YXRlIF9yZW9yZGVyQWN0aW9uOiBBY3Rpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsXG4gICkge1xuICAgIHRoaXMuX2xpc3Rlbk1vYmlsZU1lZGlhKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lbnVBY3Rpb25zKCk6IEFjdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5fbWVudUFjdGlvbnMkLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3Rpb25zKCk6IEFjdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9ucyQudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGlvbnMkKCk6IE9ic2VydmFibGU8QWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9ucyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lbnVBY3Rpb25zJCgpOiBPYnNlcnZhYmxlPEFjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuX21lbnVBY3Rpb25zJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlzaWJsZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGUkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2JpbGVNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKHRoaXMuX21vYmlsZU1lZGlhKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0QWN0aW9ucyhyYXdBY3Rpb25zOiBGc0ZpbHRlckFjdGlvbltdKSB7XG4gICAgaWYgKCFyYXdBY3Rpb25zIHx8ICFBcnJheS5pc0FycmF5KHJhd0FjdGlvbnMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93KCk7XG5cbiAgICB0aGlzLl9hbGxBY3Rpb25zID0gcmF3QWN0aW9uc1xuICAgICAgLm1hcCgoYWN0aW9uKSA9PiBuZXcgQWN0aW9uKGFjdGlvbikpO1xuXG4gICAgaWYgKHRoaXMuX3Jlb3JkZXJBY3Rpb24pIHtcbiAgICAgIHRoaXMuX2FsbEFjdGlvbnMudW5zaGlmdCh0aGlzLl9yZW9yZGVyQWN0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLl9jbGFzc2lmeUFjdGlvbnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93KCkge1xuICAgIHRoaXMuX3Zpc2libGUkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgaGlkZSgpIHtcbiAgICB0aGlzLl92aXNpYmxlJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRSZW9yZGVyQWN0aW9uKGFjdGlvbjogQWN0aW9uKSB7XG4gICAgdGhpcy5fYWxsQWN0aW9ucy51bnNoaWZ0KGFjdGlvbik7XG5cbiAgICBhY3Rpb24uaXNSZW9yZGVyQWN0aW9uID0gdHJ1ZTtcblxuICAgIHRoaXMuX2NsYXNzaWZ5QWN0aW9uKGFjdGlvbik7XG4gICAgdGhpcy5fcmVvcmRlckFjdGlvbiA9IGFjdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckFjdGlvbnMoKSB7XG4gICAgdGhpcy5fYWxsQWN0aW9ucyA9IFtdO1xuICAgIHRoaXMuX3NldEFjdGlvbnMoW10pO1xuICAgIHRoaXMuX3NldEtlYmFiQWN0aW9ucyhbXSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQWN0aW9uc1Zpc2liaWxpdHkoKSB7XG4gICAgdGhpcy5fYWxsQWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IGFjdGlvbi51cGRhdGVWaXNpYmlsaXR5KCkpO1xuICAgIHRoaXMuX2NsYXNzaWZ5QWN0aW9ucygpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZURpc2FibGVkU3RhdGUoKSB7XG4gICAgdGhpcy5hY3Rpb25zLmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLnVwZGF0ZURpc2FibGVkU3RhdGUoKSlcbiAgfVxuXG4gIHByaXZhdGUgX3NldEtlYmFiQWN0aW9ucyhhY3Rpb25zOiBBY3Rpb25bXSkge1xuICAgIHRoaXMuX21lbnVBY3Rpb25zJC5uZXh0KGFjdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0QWN0aW9ucyhhY3Rpb25zOiBBY3Rpb25bXSkge1xuICAgIHRoaXMuX2FjdGlvbnMkLm5leHQoYWN0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIF9jbGFzc2lmeUFjdGlvbnMoKSB7XG4gICAgY29uc3Qga2ViYWJBY3Rpb25zID0gW107XG4gICAgY29uc3QgYWN0aW9ucyA9IFtdO1xuICAgIGNvbnN0IG1vYmlsZU1vZGUgPSB0aGlzLm1vYmlsZU1vZGU7XG5cbiAgICB0aGlzLl9hbGxBY3Rpb25zXG4gICAgICAuZmlsdGVyKChhY3Rpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbi52aXNpYmxlO1xuICAgICAgfSlcbiAgICAgIC5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgICAgaWYgKGFjdGlvbi5tZW51ICE9PSBmYWxzZSAmJiAoYWN0aW9uLm1lbnUgfHwgbW9iaWxlTW9kZSkpIHtcbiAgICAgICAgICBrZWJhYkFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuX3NldEtlYmFiQWN0aW9ucyhrZWJhYkFjdGlvbnMpO1xuICAgIHRoaXMuX3NldEFjdGlvbnMoYWN0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIF9jbGFzc2lmeUFjdGlvbihhY3Rpb246IEFjdGlvbikge1xuICAgIGlmIChhY3Rpb24ubWVudSkge1xuICAgICAgdGhpcy5fc2V0S2ViYWJBY3Rpb25zKFsuLi50aGlzLm1lbnVBY3Rpb25zLCBhY3Rpb24gXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3NldEFjdGlvbnMoIFsuLi50aGlzLmFjdGlvbnMsIGFjdGlvbiBdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5Nb2JpbGVNZWRpYSgpIHtcbiAgICB0aGlzLl9icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9tb2JpbGVNZWRpYSlcbiAgICAgIC5waXBlKFxuICAgICAgICBza2lwKDEpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2NsYXNzaWZ5QWN0aW9ucygpO1xuICAgICAgfSlcbiAgfVxufVxuIl19
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL2FjdGlvbnMtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFLaEQsTUFBTSxPQUFPLGlCQUFpQjtJQVk1QixZQUNVLG1CQUF1QztRQUF2Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBWHpDLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVcsRUFBRSxDQUFDLENBQUM7UUFDOUMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUNsRCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUd2QixpQkFBWSxHQUFHLG9CQUFvQixDQUFDO1FBQzdDLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBTWpDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxT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QVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQzs7K0dBbkpVLGlCQUFpQjttSEFBakIsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNraXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRnNGaWx0ZXJBY3Rpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2FjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2FjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBGc0ZpbHRlckNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9maWx0ZXItY29uZmlnJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWN0aW9uc0NvbnRyb2xsZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX3Zpc2libGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByaXZhdGUgX2FjdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBY3Rpb25bXT4oW10pO1xuICBwcml2YXRlIF9tZW51QWN0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFjdGlvbltdPihbXSk7XG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfY29uZmlnOiBGc0ZpbHRlckNvbmZpZztcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tb2JpbGVNZWRpYSA9ICcobWF4LXdpZHRoOiA3OTlweCknO1xuICBwcml2YXRlIF9hbGxBY3Rpb25zOiBBY3Rpb25bXSA9IFtdO1xuICBwcml2YXRlIF9yZW9yZGVyQWN0aW9uOiBBY3Rpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsXG4gICkge1xuICAgIHRoaXMuX2xpc3Rlbk1vYmlsZU1lZGlhKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lbnVBY3Rpb25zKCk6IEFjdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5fbWVudUFjdGlvbnMkLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3Rpb25zKCk6IEFjdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9ucyQudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGlvbnMkKCk6IE9ic2VydmFibGU8QWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9ucyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lbnVBY3Rpb25zJCgpOiBPYnNlcnZhYmxlPEFjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuX21lbnVBY3Rpb25zJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlzaWJsZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGUkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2JpbGVNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKHRoaXMuX21vYmlsZU1lZGlhKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb25maWcoY29uZmlnOiBGc0ZpbHRlckNvbmZpZykge1xuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLmluaXRBY3Rpb25zKGNvbmZpZy5hY3Rpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0QWN0aW9ucyhyYXdBY3Rpb25zOiBGc0ZpbHRlckFjdGlvbltdKSB7XG4gICAgaWYgKCFyYXdBY3Rpb25zIHx8ICFBcnJheS5pc0FycmF5KHJhd0FjdGlvbnMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93KCk7XG5cbiAgICB0aGlzLl9hbGxBY3Rpb25zID0gcmF3QWN0aW9uc1xuICAgICAgLm1hcCgoYWN0aW9uKSA9PiBuZXcgQWN0aW9uKHRoaXMuX2NvbmZpZywgYWN0aW9uKSk7XG5cbiAgICBpZiAodGhpcy5fcmVvcmRlckFjdGlvbikge1xuICAgICAgdGhpcy5fYWxsQWN0aW9ucy51bnNoaWZ0KHRoaXMuX3Jlb3JkZXJBY3Rpb24pO1xuICAgIH1cblxuICAgIHRoaXMuX2NsYXNzaWZ5QWN0aW9ucygpO1xuICB9XG5cbiAgcHVibGljIHNob3coKSB7XG4gICAgdGhpcy5fdmlzaWJsZSQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBoaWRlKCkge1xuICAgIHRoaXMuX3Zpc2libGUkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIGFkZFJlb3JkZXJBY3Rpb24oYWN0aW9uOiBBY3Rpb24pIHtcbiAgICB0aGlzLl9hbGxBY3Rpb25zLnVuc2hpZnQoYWN0aW9uKTtcblxuICAgIGFjdGlvbi5pc1Jlb3JkZXJBY3Rpb24gPSB0cnVlO1xuXG4gICAgdGhpcy5fY2xhc3NpZnlBY3Rpb24oYWN0aW9uKTtcbiAgICB0aGlzLl9yZW9yZGVyQWN0aW9uID0gYWN0aW9uO1xuICB9XG5cbiAgcHVibGljIGNsZWFyQWN0aW9ucygpIHtcbiAgICB0aGlzLl9hbGxBY3Rpb25zID0gW107XG4gICAgdGhpcy5fc2V0QWN0aW9ucyhbXSk7XG4gICAgdGhpcy5fc2V0S2ViYWJBY3Rpb25zKFtdKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVBY3Rpb25zVmlzaWJpbGl0eSgpIHtcbiAgICB0aGlzLl9hbGxBY3Rpb25zLmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLnVwZGF0ZVZpc2liaWxpdHkoKSk7XG4gICAgdGhpcy5fY2xhc3NpZnlBY3Rpb25zKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRGlzYWJsZWRTdGF0ZSgpIHtcbiAgICB0aGlzLmFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiBhY3Rpb24udXBkYXRlRGlzYWJsZWRTdGF0ZSgpKVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0S2ViYWJBY3Rpb25zKGFjdGlvbnM6IEFjdGlvbltdKSB7XG4gICAgdGhpcy5fbWVudUFjdGlvbnMkLm5leHQoYWN0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRBY3Rpb25zKGFjdGlvbnM6IEFjdGlvbltdKSB7XG4gICAgdGhpcy5fYWN0aW9ucyQubmV4dChhY3Rpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NsYXNzaWZ5QWN0aW9ucygpIHtcbiAgICBjb25zdCBrZWJhYkFjdGlvbnMgPSBbXTtcbiAgICBjb25zdCBhY3Rpb25zID0gW107XG4gICAgY29uc3QgbW9iaWxlTW9kZSA9IHRoaXMubW9iaWxlTW9kZTtcblxuICAgIHRoaXMuX2FsbEFjdGlvbnNcbiAgICAgIC5maWx0ZXIoKGFjdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gYWN0aW9uLnZpc2libGU7XG4gICAgICB9KVxuICAgICAgLmZvckVhY2goKGFjdGlvbikgPT4ge1xuICAgICAgICBpZiAoYWN0aW9uLm1lbnUgIT09IGZhbHNlICYmIChhY3Rpb24ubWVudSB8fCBtb2JpbGVNb2RlKSkge1xuICAgICAgICAgIGtlYmFiQWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fc2V0S2ViYWJBY3Rpb25zKGtlYmFiQWN0aW9ucyk7XG4gICAgdGhpcy5fc2V0QWN0aW9ucyhhY3Rpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NsYXNzaWZ5QWN0aW9uKGFjdGlvbjogQWN0aW9uKSB7XG4gICAgaWYgKGFjdGlvbi5tZW51KSB7XG4gICAgICB0aGlzLl9zZXRLZWJhYkFjdGlvbnMoWy4uLnRoaXMubWVudUFjdGlvbnMsIGFjdGlvbl0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZXRBY3Rpb25zKFsuLi50aGlzLmFjdGlvbnMsIGFjdGlvbl0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2xpc3Rlbk1vYmlsZU1lZGlhKCkge1xuICAgIHRoaXMuX2JyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMuX21vYmlsZU1lZGlhKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHNraXAoMSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fY2xhc3NpZnlBY3Rpb25zKCk7XG4gICAgICB9KVxuICB9XG59XG4iXX0=
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { ActionType } from '../../enums/action-type.enum';
|
|
2
3
|
import { Action } from '../../models/action.model';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "@angular/material/button";
|
|
5
6
|
import * as i2 from "@angular/material/icon";
|
|
6
7
|
import * as i3 from "@angular/common";
|
|
7
8
|
export class FsFilterActionButtonComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.ActionType = ActionType;
|
|
11
|
+
}
|
|
8
12
|
}
|
|
9
13
|
FsFilterActionButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFilterActionButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
-
FsFilterActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsFilterActionButtonComponent, selector: "fs-filter-action-button", inputs: { action: "action" }, host: { classAttribute: "action-button" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"action.type\">\n
|
|
14
|
+
FsFilterActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsFilterActionButtonComponent, selector: "fs-filter-action-button", inputs: { action: "action" }, host: { classAttribute: "action-button" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"action.type\">\n <button\n type=\"button\"\n *ngSwitchCase=\"ActionType.Icon\"\n mat-icon-button\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Fab button -->\n <button \n type=\"button\"\n *ngSwitchCase=\"ActionType.Fab\"\n mat-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Mini Fab button -->\n <button \n type=\"button\"\n *ngSwitchCase=\"ActionType.MiniFab\"\n mat-mini-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <button \n type=\"button\"\n *ngSwitchDefault\n mat-button\n [ngClass]=\"{ \n 'mat-raised-button': action.type === 'raised',\n 'mat-flat-button': action.type === 'flat',\n 'mat-stroked-button': action.type === 'stroked',\n 'mat-button': action.type === 'basic',\n 'mat-icon-button': action.type === 'icon'\n }\"\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [class]=\"action.classArray.join(' ')\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <ng-template #buttonContent>\n <ng-container *ngIf=\"!action.icon else withIcon\">\n {{action.label}}\n </ng-container>\n\n <ng-template #withIcon>\n <mat-icon *ngIf=\"!action.iconPlacement || action.iconPlacement === 'left'\">{{action.icon}}</mat-icon>\n {{action.label}}\n <mat-icon *ngIf=\"action.iconPlacement === 'right'\">{{action.icon}}</mat-icon>\n </ng-template>\n </ng-template>\n</ng-container>\n", components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
11
15
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFilterActionButtonComponent, decorators: [{
|
|
12
16
|
type: Component,
|
|
13
17
|
args: [{
|
|
@@ -21,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
21
25
|
}], propDecorators: { action: [{
|
|
22
26
|
type: Input
|
|
23
27
|
}] } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYWN0aW9uLWJ1dHRvbi9hY3Rpb24tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hY3Rpb24tYnV0dG9uL2FjdGlvbi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7QUFXbkQsTUFBTSxPQUFPLDZCQUE2QjtJQVIxQztRQVVTLGVBQVUsR0FBRyxVQUFVLENBQUM7S0FLaEM7OzJIQVBZLDZCQUE2QjsrR0FBN0IsNkJBQTZCLHdJQ2IxQyx1MkVBc0VBOzRGRHpEYSw2QkFBNkI7a0JBUnpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsV0FBVyxFQUFFLGdDQUFnQztvQkFDN0MsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxlQUFlO3FCQUN2QjtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OEJBTVEsTUFBTTtzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvblR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9hY3Rpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb24ubW9kZWwnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWZpbHRlci1hY3Rpb24tYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdhY3Rpb24tYnV0dG9uJyxcbiAgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZzRmlsdGVyQWN0aW9uQnV0dG9uQ29tcG9uZW50IHtcblxuICBwdWJsaWMgQWN0aW9uVHlwZSA9IEFjdGlvblR5cGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFjdGlvbjogQWN0aW9uO1xuXG59XG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJhY3Rpb24udHlwZVwiPlxuICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJBY3Rpb25UeXBlLkljb25cIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAoY2xpY2spPVwiYWN0aW9uLmNsaWNrICYmIGFjdGlvbi5jbGljaygkZXZlbnQpXCJcbiAgICAgIFtjb2xvcl09XCJhY3Rpb24uY29sb3JcIlxuICAgICAgW25nQ2xhc3NdPVwiYWN0aW9uLmNsYXNzQXJyYXlcIlxuICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5kaXNhYmxlZCQgfCBhc3luY1wiXG4gICAgICBbdGFiSW5kZXhdPVwiYWN0aW9uLnRhYkluZGV4XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvbkNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICA8L2J1dHRvbj5cblxuICA8IS0tIEZhYiBidXR0b24gLS0+XG4gIDxidXR0b24gXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJBY3Rpb25UeXBlLkZhYlwiXG4gICAgICBtYXQtZmFiXG4gICAgICAoY2xpY2spPVwiYWN0aW9uLmNsaWNrICYmIGFjdGlvbi5jbGljaygkZXZlbnQpXCJcbiAgICAgIFtjb2xvcl09XCJhY3Rpb24uY29sb3JcIlxuICAgICAgW25nQ2xhc3NdPVwiYWN0aW9uLmNsYXNzQXJyYXlcIlxuICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5kaXNhYmxlZCQgfCBhc3luY1wiXG4gICAgICBbdGFiSW5kZXhdPVwiYWN0aW9uLnRhYkluZGV4XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvbkNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICA8L2J1dHRvbj5cblxuICA8IS0tIE1pbmkgRmFiIGJ1dHRvbiAtLT5cbiAgPGJ1dHRvbiBcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIkFjdGlvblR5cGUuTWluaUZhYlwiXG4gICAgICBtYXQtbWluaS1mYWJcbiAgICAgIChjbGljayk9XCJhY3Rpb24uY2xpY2sgJiYgYWN0aW9uLmNsaWNrKCRldmVudClcIlxuICAgICAgW2NvbG9yXT1cImFjdGlvbi5jb2xvclwiXG4gICAgICBbbmdDbGFzc109XCJhY3Rpb24uY2xhc3NBcnJheVwiXG4gICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uLmRpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgIFt0YWJJbmRleF09XCJhY3Rpb24udGFiSW5kZXhcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnV0dG9uQ29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b24gXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICpuZ1N3aXRjaERlZmF1bHRcbiAgICAgIG1hdC1idXR0b25cbiAgICAgIFtuZ0NsYXNzXT1cInsgICAgICAgIFxuICAgICAgICAnbWF0LXJhaXNlZC1idXR0b24nOiBhY3Rpb24udHlwZSA9PT0gJ3JhaXNlZCcsXG4gICAgICAgICdtYXQtZmxhdC1idXR0b24nOiBhY3Rpb24udHlwZSA9PT0gJ2ZsYXQnLFxuICAgICAgICAnbWF0LXN0cm9rZWQtYnV0dG9uJzogYWN0aW9uLnR5cGUgPT09ICdzdHJva2VkJyxcbiAgICAgICAgJ21hdC1idXR0b24nOiBhY3Rpb24udHlwZSA9PT0gJ2Jhc2ljJyxcbiAgICAgICAgJ21hdC1pY29uLWJ1dHRvbic6IGFjdGlvbi50eXBlID09PSAnaWNvbidcbiAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cImFjdGlvbi5jbGljayAmJiBhY3Rpb24uY2xpY2soJGV2ZW50KVwiXG4gICAgICBbY29sb3JdPVwiYWN0aW9uLmNvbG9yXCJcbiAgICAgIFtjbGFzc109XCJhY3Rpb24uY2xhc3NBcnJheS5qb2luKCcgJylcIlxuICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5kaXNhYmxlZCQgfCBhc3luY1wiXG4gICAgICBbdGFiSW5kZXhdPVwiYWN0aW9uLnRhYkluZGV4XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvbkNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICA8L2J1dHRvbj5cblxuICA8bmctdGVtcGxhdGUgI2J1dHRvbkNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhY3Rpb24uaWNvbiBlbHNlIHdpdGhJY29uXCI+XG4gICAgICB7e2FjdGlvbi5sYWJlbH19XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI3dpdGhJY29uPlxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwiIWFjdGlvbi5pY29uUGxhY2VtZW50IHx8IGFjdGlvbi5pY29uUGxhY2VtZW50ID09PSAnbGVmdCdcIj57e2FjdGlvbi5pY29ufX08L21hdC1pY29uPlxuICAgICAge3thY3Rpb24ubGFiZWx9fVxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwiYWN0aW9uLmljb25QbGFjZW1lbnQgPT09ICdyaWdodCdcIj57e2FjdGlvbi5pY29ufX08L21hdC1pY29uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -14,7 +14,7 @@ export class FsFilterActionsComponent {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
FsFilterActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFilterActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
-
FsFilterActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsFilterActionsComponent, selector: "fs-filter-actions", inputs: { kebabActions: "kebabActions", actions: "actions" }, ngImport: i0, template: "<!-- Buttons -->\n<ng-container *ngFor=\"let action of actions\">\n <ng-container [ngSwitch]=\"action.mode\">\n <ng-container *ngSwitchCase=\"'button'\">\n <fs-filter-action-button\n [action]=\"action\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n </fs-filter-action-button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'menu'\">\n <fs-filter-action-button\n [action]=\"action\"\n [fsMenuTriggerFor]=\"someRef\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n </fs-filter-action-button>\n\n <fs-menu #someRef>\n <ng-container *ngFor=\"let childAction of action.items\">\n <ng-container *ngIf=\"childAction.isGroup else simpleMenuItem\">\n <fs-menu-group [label]=\"childAction.label\">\n <ng-container *ngFor=\"let subAction of childAction.items\">\n <ng-template\n fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [hidden]=\"!(subAction.visible$ | async)\"\n (click)=\"subAction.click($event)\">\n <mat-icon *ngIf=\"subAction.icon\">{{subAction.icon}}</mat-icon>\n {{subAction.label}}\n </ng-template>\n </ng-container>\n </fs-menu-group>\n </ng-container>\n <ng-template #simpleMenuItem>\n <ng-template\n fs-menu-item\n [link]=\"childAction.routerLink?.link\"\n [queryParams]=\"childAction.routerLink?.queryParams\"\n [hidden]=\"!(childAction.visible$ | async)\"\n (click)=\"childAction.click($event);\">\n <mat-icon *ngIf=\"childAction.icon\">{{childAction.icon}}</mat-icon>\n {{childAction.label}}\n </ng-template>\n </ng-template>\n </ng-container>\n </fs-menu>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'file'\">\n <fs-file\n class=\"action-button\"\n [accept]=\"action.accept || '*'\"\n [multiple]=\"action.multiple\"\n [minWidth]=\"action.minWidth\"\n [minHeight]=\"action.minHeight\"\n [imageWidth]=\"action.maxWidth\"\n [imageHeight]=\"action.maxHeight\"\n (select)=\"action.fileSelected($event)\"\n (error)=\"action.fileError($event)\"\n (clicked)=\"action.click($event)\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n <fs-filter-action-button [action]=\"action\"
|
|
17
|
+
FsFilterActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsFilterActionsComponent, selector: "fs-filter-actions", inputs: { kebabActions: "kebabActions", actions: "actions" }, ngImport: i0, template: "<!-- Buttons -->\n<ng-container *ngFor=\"let action of actions\">\n <ng-container [ngSwitch]=\"action.mode\">\n <ng-container *ngSwitchCase=\"'button'\">\n <fs-filter-action-button\n [action]=\"action\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n </fs-filter-action-button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'menu'\">\n <fs-filter-action-button\n [action]=\"action\"\n [fsMenuTriggerFor]=\"someRef\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n </fs-filter-action-button>\n\n <fs-menu #someRef>\n <ng-container *ngFor=\"let childAction of action.items\">\n <ng-container *ngIf=\"childAction.isGroup else simpleMenuItem\">\n <fs-menu-group [label]=\"childAction.label\">\n <ng-container *ngFor=\"let subAction of childAction.items\">\n <ng-template\n fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [hidden]=\"!(subAction.visible$ | async)\"\n (click)=\"subAction.click($event)\">\n <mat-icon *ngIf=\"subAction.icon\">{{subAction.icon}}</mat-icon>\n {{subAction.label}}\n </ng-template>\n </ng-container>\n </fs-menu-group>\n </ng-container>\n <ng-template #simpleMenuItem>\n <ng-template\n fs-menu-item\n [link]=\"childAction.routerLink?.link\"\n [queryParams]=\"childAction.routerLink?.queryParams\"\n [hidden]=\"!(childAction.visible$ | async)\"\n (click)=\"childAction.click($event);\">\n <mat-icon *ngIf=\"childAction.icon\">{{childAction.icon}}</mat-icon>\n {{childAction.label}}\n </ng-template>\n </ng-template>\n </ng-container>\n </fs-menu>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'file'\">\n <fs-file\n class=\"action-button\"\n [accept]=\"action.accept || '*'\"\n [multiple]=\"action.multiple\"\n [minWidth]=\"action.minWidth\"\n [minHeight]=\"action.minHeight\"\n [imageWidth]=\"action.maxWidth\"\n [imageHeight]=\"action.maxHeight\"\n (select)=\"action.fileSelected($event)\"\n (error)=\"action.fileError($event)\"\n (clicked)=\"action.click($event)\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n <fs-filter-action-button \n [action]=\"action\">\n </fs-filter-action-button>\n </fs-file>\n </ng-container>\n </ng-container>\n</ng-container>\n<!-- /Buttons -->\n<!-- menu -->\n<ng-container *ngIf=\"kebabActions?.length\">\n <fs-filter-action-kebab-actions\n [kebabActions]=\"kebabActions\">\n </fs-filter-action-kebab-actions>\n</ng-container>\n", styles: [":host{display:inline-flex}.action-button{display:block}.action-button+.action-button,fs-menu+.action-button{margin-left:5px}.menu-button{width:36px;height:36px;line-height:36px}\n"], components: [{ type: i1.FsFilterActionButtonComponent, selector: "fs-filter-action-button", inputs: ["action"] }, { type: i2.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass"], outputs: ["opened", "closed"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.FsFileComponent, selector: "fs-file", inputs: ["minHeight", "minWidth", "multiple", "capture", "allowClick", "allowDrop", "accept", "disabled", "imageWidth", "imageHeight", "imageQuality"], outputs: ["select", "error", "clicked", "declined"] }, { type: i5.FsFilterActionKebabActionsComponent, selector: "fs-filter-action-kebab-actions", inputs: ["kebabActions"] }], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.FsPopoverDirective, selector: "[fsPopover]", inputs: ["text", "template", "data", "leaveDelay", "showDelay", "maxWidth", "wrapperClass", "autoShow", "autoClose", "loadingDiameter", "loading", "indication", "position", "theme", "size", "trigger", "enabled"] }, { type: i2.FsMenuTriggerDirective, selector: "[fsMenuTriggerFor]", inputs: ["fsMenuTriggerFor"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }], pipes: { "async": i6.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
18
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFilterActionsComponent, decorators: [{
|
|
19
19
|
type: Component,
|
|
20
20
|
args: [{
|
|
@@ -28,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
28
28
|
}], actions: [{
|
|
29
29
|
type: Input
|
|
30
30
|
}] } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYWN0aW9ucy9hY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hY3Rpb25zL2FjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFVdkIsTUFBTSxPQUFPLHdCQUF3QjtJQU5yQztRQVNTLGlCQUFZLEdBQWEsRUFBRSxDQUFDO1FBRzVCLFlBQU8sR0FBYSxFQUFFLENBQUM7S0FDL0I7O3NIQVBZLHdCQUF3QjswR0FBeEIsd0JBQXdCLHVIQ2RyQyxxaEdBa0ZBOzRGRHBFYSx3QkFBd0I7a0JBTnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsV0FBVyxFQUFFLDBCQUEwQjtvQkFDdkMsU0FBUyxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQ3ZDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs4QkFJUSxZQUFZO3NCQURsQixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb24ubW9kZWwnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWZpbHRlci1hY3Rpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY3Rpb25zLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGc0ZpbHRlckFjdGlvbnNDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBrZWJhYkFjdGlvbnM6IEFjdGlvbltdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFjdGlvbnM6IEFjdGlvbltdID0gW107XG59XG4iLCI8IS0tIEJ1dHRvbnMgLS0+XG48bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uc1wiPlxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJhY3Rpb24ubW9kZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIididXR0b24nXCI+XG4gICAgICA8ZnMtZmlsdGVyLWFjdGlvbi1idXR0b25cbiAgICAgICAgW2FjdGlvbl09XCJhY3Rpb25cIlxuICAgICAgICBmc1BvcG92ZXJcbiAgICAgICAgW2VuYWJsZWRdPVwiISFhY3Rpb24udG9vbHRpcFwiXG4gICAgICAgIFt0ZXh0XT1cImFjdGlvbi50b29sdGlwXCI+XG4gICAgICA8L2ZzLWZpbHRlci1hY3Rpb24tYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21lbnUnXCI+XG4gICAgICA8ZnMtZmlsdGVyLWFjdGlvbi1idXR0b25cbiAgICAgICAgW2FjdGlvbl09XCJhY3Rpb25cIlxuICAgICAgICBbZnNNZW51VHJpZ2dlckZvcl09XCJzb21lUmVmXCJcbiAgICAgICAgZnNQb3BvdmVyXG4gICAgICAgIFtlbmFibGVkXT1cIiEhYWN0aW9uLnRvb2x0aXBcIlxuICAgICAgICBbdGV4dF09XCJhY3Rpb24udG9vbHRpcFwiPlxuICAgICAgPC9mcy1maWx0ZXItYWN0aW9uLWJ1dHRvbj5cblxuICAgICAgPGZzLW1lbnUgI3NvbWVSZWY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkQWN0aW9uIG9mIGFjdGlvbi5pdGVtc1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjaGlsZEFjdGlvbi5pc0dyb3VwIGVsc2Ugc2ltcGxlTWVudUl0ZW1cIj5cbiAgICAgICAgICAgIDxmcy1tZW51LWdyb3VwIFtsYWJlbF09XCJjaGlsZEFjdGlvbi5sYWJlbFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdWJBY3Rpb24gb2YgY2hpbGRBY3Rpb24uaXRlbXNcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgZnMtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgIFtsaW5rXT1cInN1YkFjdGlvbi5yb3V0ZXJMaW5rPy5saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cInN1YkFjdGlvbi5yb3V0ZXJMaW5rPy5xdWVyeVBhcmFtc1wiXG4gICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiIShzdWJBY3Rpb24udmlzaWJsZSQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic3ViQWN0aW9uLmNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInN1YkFjdGlvbi5pY29uXCI+e3tzdWJBY3Rpb24uaWNvbn19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgIHt7c3ViQWN0aW9uLmxhYmVsfX1cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZnMtbWVudS1ncm91cD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3NpbXBsZU1lbnVJdGVtPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgZnMtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgW2xpbmtdPVwiY2hpbGRBY3Rpb24ucm91dGVyTGluaz8ubGlua1wiXG4gICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cImNoaWxkQWN0aW9uLnJvdXRlckxpbms/LnF1ZXJ5UGFyYW1zXCJcbiAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIiEoY2hpbGRBY3Rpb24udmlzaWJsZSQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGlsZEFjdGlvbi5jbGljaygkZXZlbnQpO1wiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJjaGlsZEFjdGlvbi5pY29uXCI+e3tjaGlsZEFjdGlvbi5pY29ufX08L21hdC1pY29uPlxuICAgICAgICAgICAgICB7e2NoaWxkQWN0aW9uLmxhYmVsfX1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2ZzLW1lbnU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmlsZSdcIj5cbiAgICAgIDxmcy1maWxlXG4gICAgICAgICAgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICBbYWNjZXB0XT1cImFjdGlvbi5hY2NlcHQgfHwgJyonXCJcbiAgICAgICAgICBbbXVsdGlwbGVdPVwiYWN0aW9uLm11bHRpcGxlXCJcbiAgICAgICAgICBbbWluV2lkdGhdPVwiYWN0aW9uLm1pbldpZHRoXCJcbiAgICAgICAgICBbbWluSGVpZ2h0XT1cImFjdGlvbi5taW5IZWlnaHRcIlxuICAgICAgICAgIFtpbWFnZVdpZHRoXT1cImFjdGlvbi5tYXhXaWR0aFwiXG4gICAgICAgICAgW2ltYWdlSGVpZ2h0XT1cImFjdGlvbi5tYXhIZWlnaHRcIlxuICAgICAgICAgIChzZWxlY3QpPVwiYWN0aW9uLmZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoZXJyb3IpPVwiYWN0aW9uLmZpbGVFcnJvcigkZXZlbnQpXCJcbiAgICAgICAgICAoY2xpY2tlZCk9XCJhY3Rpb24uY2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgZnNQb3BvdmVyXG4gICAgICAgICAgW2VuYWJsZWRdPVwiISFhY3Rpb24udG9vbHRpcFwiXG4gICAgICAgICAgW3RleHRdPVwiYWN0aW9uLnRvb2x0aXBcIj5cbiAgICAgICAgPGZzLWZpbHRlci1hY3Rpb24tYnV0dG9uIFxuICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCI+XG4gICAgICAgIDwvZnMtZmlsdGVyLWFjdGlvbi1idXR0b24+XG4gICAgICA8L2ZzLWZpbGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48IS0tIC9CdXR0b25zIC0tPlxuPCEtLSBtZW51IC0tPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImtlYmFiQWN0aW9ucz8ubGVuZ3RoXCI+XG4gIDxmcy1maWx0ZXItYWN0aW9uLWtlYmFiLWFjdGlvbnNcbiAgICBba2ViYWJBY3Rpb25zXT1cImtlYmFiQWN0aW9uc1wiPlxuICA8L2ZzLWZpbHRlci1hY3Rpb24ta2ViYWItYWN0aW9ucz5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, HostBinding, Inject, Input, NgZone, Optional, Output, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
3
|
import { MatInput } from '@angular/material/input';
|
|
4
4
|
import { BehaviorSubject, combineLatest, fromEvent, Subject } from 'rxjs';
|
|
5
5
|
import { debounceTime, distinctUntilChanged, filter, map, takeUntil } from 'rxjs/operators';
|
|
6
|
-
import {
|
|
7
|
-
import { FsFilterConfig } from '../../models/filter-config';
|
|
6
|
+
import { ActionsController } from '../../classes/actions-controller';
|
|
8
7
|
import { objectsAreEquals } from '../../helpers/compare';
|
|
9
|
-
import {
|
|
10
|
-
import { FilterStatusBarDirective } from './../../directives/status-bar/status-bar.directive';
|
|
11
|
-
import { FsFilterItemsStore } from '../../services/items-store.service';
|
|
8
|
+
import { FsFilterConfig } from '../../models/filter-config';
|
|
12
9
|
import { ExternalParamsController } from '../../services/external-params-controller.service';
|
|
13
10
|
import { PersistanceParamsController } from '../../services/external-params/persistance-params-controller.service';
|
|
14
11
|
import { QueryParamsController } from '../../services/external-params/query-params-controller.service';
|
|
15
|
-
import { FocusControllerService } from '../../services/focus-controller.service';
|
|
16
12
|
import { SavedFiltersController } from '../../services/external-params/saved-filters-controller.service';
|
|
17
|
-
import {
|
|
13
|
+
import { FsFilterOverlayService } from '../../services/filter-overlay.service';
|
|
14
|
+
import { FocusControllerService } from '../../services/focus-controller.service';
|
|
15
|
+
import { FsFilterItemsStore } from '../../services/items-store.service';
|
|
16
|
+
import { FilterStatusBarDirective } from './../../directives/status-bar/status-bar.directive';
|
|
17
|
+
import { FS_FILTER_CONFIG } from './../../injectors/filter-config';
|
|
18
18
|
import * as i0 from "@angular/core";
|
|
19
19
|
import * as i1 from "../../services/filter-overlay.service";
|
|
20
20
|
import * as i2 from "../../services/external-params-controller.service";
|
|
@@ -435,7 +435,7 @@ export class FilterComponent {
|
|
|
435
435
|
}
|
|
436
436
|
config = Object.assign(Object.assign({}, (this._defaultConfig || {})), config);
|
|
437
437
|
this._config = new FsFilterConfig(config);
|
|
438
|
-
this._actions.
|
|
438
|
+
this._actions.setConfig(this._config);
|
|
439
439
|
this._filterItems.setConfig(this._config);
|
|
440
440
|
this._externalParams.setConfig(this._config);
|
|
441
441
|
this._syncSearchInputWithKeyword();
|
|
@@ -562,7 +562,7 @@ FilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
562
562
|
FsFilterItemsStore,
|
|
563
563
|
SavedFiltersController,
|
|
564
564
|
ActionsController,
|
|
565
|
-
], queries: [{ propertyName: "statusBar", first: true, predicate: FilterStatusBarDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "searchTextInput", first: true, predicate: ["searchTextInput"], descendants: true }, { propertyName: "searchTextMatInput", first: true, predicate: ["searchTextInput"], descendants: true, read: MatInput }], ngImport: i0, template: "<ng-container>\n <div class=\"filter-container\">\n <ng-container *ngIf=\"hasKeyword\">\n <div class=\"filter-keyword\">\n <form autocomplete=\"off\" role=\"presentation\" *ngIf=\"keywordVisible$ | async\">\n <mat-form-field floatLabel=\"never\">\n
|
|
565
|
+
], queries: [{ propertyName: "statusBar", first: true, predicate: FilterStatusBarDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "searchTextInput", first: true, predicate: ["searchTextInput"], descendants: true }, { propertyName: "searchTextMatInput", first: true, predicate: ["searchTextInput"], descendants: true, read: MatInput }], ngImport: i0, template: "<ng-container>\n <div class=\"filter-container\">\n <ng-container *ngIf=\"hasKeyword\">\n <div class=\"filter-keyword\">\n <form autocomplete=\"off\" role=\"presentation\" *ngIf=\"keywordVisible$ | async\">\n <mat-form-field [floatLabel]=\"'never'\" appearance=\"outline\" class=\"form-field-padless\" ngClass=\"search\">\n <span matPrefix>\n <mat-icon matPrefix>search</mat-icon>\n </span>\n <input\n #searchTextInput\n matInput\n [formControl]=\"searchText\"\n name=\"filter-input\"\n [placeholder]=\"searchPlaceholder\"\n (click)=\"filterInputEvent($event)\">\n\n <div matSuffix *ngIf=\"searchText.value && showFilterInput && config.clear\">\n <a\n mat-icon-button \n (click)=\"clearSearchText($event)\"\n class=\"clear\">\n <mat-icon>clear</mat-icon>\n </a>\n </div>\n <div matSuffix>\n <a \n mat-icon-button\n (click)=\"reload($event)\"\n class=\"reload\"\n *ngIf=\"config.reload\">\n <mat-icon>refresh</mat-icon>\n </a>\n </div>\n </mat-form-field>\n </form>\n </div>\n </ng-container>\n\n <div class=\"filter-actions\">\n <ng-container *ngIf=\"hasVisibleItemOrSorting && filtersBtnVisible$ | async\">\n <button\n mat-button\n class=\"filters-button\"\n [ngClass]=\"{\n 'mat-raised-button': config.button.style === 'raised',\n 'mat-flat-button': config.button.style === 'flat',\n 'mat-stroked-button': config.button.style === 'stroked',\n 'mat-button': config.button.style === 'basic',\n 'mat-icon-button': config.button.style === 'icon'\n }\"\n (click)=\"changeVisibilityClick(!showFilterMenu, $event)\"\n type=\"button\"\n [color]=\"config.button.color\">\n <mat-icon *ngIf=\"config.button.icon\">{{config.button.icon}}</mat-icon>\n {{ config.button.label }}\n </button>\n </ng-container>\n \n <fs-filter-actions\n *ngIf=\"actionsVisible$ | async\"\n [actions]=\"actions$ | async\"\n [kebabActions]=\"menuActions$ | async\">\n </fs-filter-actions>\n </div>\n </div>\n <div class=\"filter-status-container\">\n <div class=\"filter-status\" *ngIf=\"statusBar\">\n <ng-container *ngTemplateOutlet=\"statusBar\"></ng-container>\n </div>\n <fs-filter-chips\n *ngIf=\"config.chips && hasFilterChips$ | async\"\n class=\"filter-chips\"\n [filters]=\"items\">\n </fs-filter-chips>\n </div>\n</ng-container>", styles: ["fs-filter{display:block}.fs-filter{margin-bottom:20px;display:block}.fs-filter:not(.has-keyword){display:flex;flex-direction:row-reverse}.fs-filter .results{min-height:90px;position:relative;overflow-x:auto;overflow-y:hidden}.fs-filter .filter-status-container{flex-grow:1;display:flex;justify-content:center;flex-direction:column;margin:4px 0}.fs-filter .filter-status-container .filter-status{overflow:hidden;text-overflow:ellipsis;line-height:17px}.fs-filter .filter-status-container .filter-status+fs-filter-chips{margin-top:4px}.fs-filter .filter-status-container fs-filter-chips{display:block}.fs-filter .filter-container{flex-direction:row;box-sizing:border-box;display:flex;position:relative}.fs-filter .filter-container form{width:100%;height:100%}.fs-filter .filter-container .filter-keyword{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;flex:1}.fs-filter .filter-container .filter-keyword .search.mat-form-field{height:100%}.fs-filter .filter-container .filter-keyword .search.mat-form-field.mat-focused .mat-icon{color:inherit}.fs-filter .filter-container .filter-keyword .search.mat-form-field.mat-form-field-appearance-outline{background:#fff;border-radius:5px}.fs-filter .filter-container .filter-keyword .search.mat-form-field.mat-form-field-appearance-outline .mat-form-field-suffix,.fs-filter .filter-container .filter-keyword .search.mat-form-field.mat-form-field-appearance-outline .mat-form-field-prefix{top:0}.fs-filter .filter-container .filter-keyword .search.mat-form-field.mat-form-field-appearance-legacy .mat-form-field-underline{bottom:auto}.fs-filter .filter-container .filter-keyword .search.mat-form-field.mat-form-field-appearance-legacy .mat-form-field-infix{border-top:0}.fs-filter .filter-container .filter-keyword .search.mat-form-field.mat-form-field-appearance-legacy .mat-form-field-wrapper{padding-bottom:0}.fs-filter .filter-container .filter-keyword .search.mat-form-field .mat-form-field-flex{align-items:center;height:100%}.fs-filter .filter-container .filter-keyword .search.mat-form-field .mat-icon{font-size:22px;color:#626262}.fs-filter .filter-container .filter-keyword .mat-form-field-wrapper{height:100%}.fs-filter .filter-container .filter-keyword .mat-form-field-suffix{display:flex}.fs-filter .filter-container .filter-keyword .mat-form-field-suffix .mat-icon-button{height:24px;width:24px}.fs-filter .filter-container .filter-keyword .mat-form-field-suffix .mat-icon-button .mat-icon{display:inline}.fs-filter .filter-actions{display:flex;align-items:center}@media screen and (min-width: 599px){.filter-actions{margin-left:10px}.filters-button+fs-filter-actions:not(:empty){margin-left:5px}}@media screen and (max-width: 600px){.filter-actions{margin-left:5px}.filter-actions .filters-button{font-size:0;padding:0;min-width:unset;width:36px;height:36px;border-radius:50%;box-shadow:unset!important}}@media screen and (min-width: 1200px){body.fs-filter-open{margin-right:350px}.fs-filter-backdrop{display:none}}body.fs-filter-open::-webkit-scrollbar{width:0;background:transparent}\n"], components: [{ type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.FsFilterActionsComponent, selector: "fs-filter-actions", inputs: ["kebabActions", "actions"] }, { type: i9.FsFilterChipsComponent, selector: "fs-filter-chips", inputs: ["filters"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i11.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i11.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.MatPrefix, selector: "[matPrefix]" }, { type: i12.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i5.MatSuffix, selector: "[matSuffix]" }, { type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i10.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
566
566
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FilterComponent, decorators: [{
|
|
567
567
|
type: Component,
|
|
568
568
|
args: [{
|
|
@@ -625,4 +625,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
625
625
|
type: HostBinding,
|
|
626
626
|
args: ['class.has-keyword']
|
|
627
627
|
}] } });
|
|
628
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEVBQ1gsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFv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LE1BQU07Z0JBQ1UsS0FBSztzQkFBckIsTUFBTTtnQkFHQSxTQUFTO3NCQURmLFlBQVk7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUl0RCxlQUFlO3NCQURyQixTQUFTO3VCQUFDLGlCQUFpQjtnQkFJckIsa0JBQWtCO3NCQUR4QixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtnQkFJekMsY0FBYztzQkFEcEIsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBSTFCLGFBQWE7c0JBRG5CLFdBQVc7dUJBQUMsc0JBQXNCO2dCQUk1QixhQUFhO3NCQURuQixXQUFXO3VCQUFDLGlCQUFpQjtnQkFJbkIsVUFBVTtzQkFEcEIsV0FBVzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBPdXRwdXQsXG4gIE9wdGlvbmFsLFxuICBJbmplY3QsXG4gIENvbnRlbnRDaGlsZCxcbiAgVGVtcGxhdGVSZWYsXG4gIEhvc3RCaW5kaW5nLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0SW5wdXQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGU19GSUxURVJfQ09ORklHIH0gZnJvbSAnLi8uLi8uLi9pbmplY3RvcnMvZmlsdGVyLWNvbmZpZyc7XG5pbXBvcnQgeyBGc0ZpbHRlckNvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9maWx0ZXItY29uZmlnJztcbmltcG9ydCB7IG9iamVjdHNBcmVFcXVhbHMgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NvbXBhcmUnO1xuaW1wb3J0IHsgRnNGaWx0ZXJPdmVybGF5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpbHRlci1vdmVybGF5LnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsdGVyU3RhdHVzQmFyRGlyZWN0aXZlIH0gZnJvbSAnLi8uLi8uLi9kaXJlY3RpdmVzL3N0YXR1cy1iYXIvc3RhdHVzLWJhci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlnLCBGaWx0ZXJTb3J0LCBJRmlsdGVyQ29uZmlnSXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCYXNlSXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9pdGVtcy9iYXNlLWl0ZW0nO1xuaW1wb3J0IHsgRnNGaWx0ZXJJdGVtc1N0b3JlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaXRlbXMtc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBFeHRlcm5hbFBhcmFtc0NvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlcm5hbC1wYXJhbXMtY29udHJvbGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcnNpc3RhbmNlUGFyYW1zQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V4dGVybmFsLXBhcmFtcy9wZXJzaXN0YW5jZS1wYXJhbXMtY29udHJvbGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IFF1ZXJ5UGFyYW1zQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V4dGVybmFsLXBhcmFtcy9xdWVyeS1wYXJhbXMtY29udHJvbGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IEZvY3VzQ29udHJvbGxlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb2N1cy1jb250cm9sbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2F2ZWRGaWx0ZXJzQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V4dGVybmFsLXBhcmFtcy9zYXZlZC1maWx0ZXJzLWNvbnRyb2xsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJU29ydGluZ0NoYW5nZUV2ZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZzRmlsdGVyQWN0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IEFjdGlvbnNDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9hY3Rpb25zLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgSVVwZGF0ZUZpbHRlckl0ZW1Db25maWcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3VwZGF0ZS1maWx0ZXItaXRlbS5pbnRlcmZhY2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWZpbHRlcicsXG4gIHN0eWxlVXJsczogWyAnLi9maWx0ZXIuY29tcG9uZW50LnNjc3MnIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICBGc0ZpbHRlck92ZXJsYXlTZXJ2aWNlLFxuICAgIEV4dGVybmFsUGFyYW1zQ29udHJvbGxlcixcbiAgICBQZXJzaXN0YW5jZVBhcmFtc0NvbnRyb2xsZXIsXG4gICAgUXVlcnlQYXJhbXNDb250cm9sbGVyLFxuICAgIEZvY3VzQ29udHJvbGxlclNlcnZpY2UsXG4gICAgRnNGaWx0ZXJJdGVtc1N0b3JlLFxuICAgIFNhdmVkRmlsdGVyc0NvbnRyb2xsZXIsXG4gICAgQWN0aW9uc0NvbnRyb2xsZXIsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCdjb25maWcnKVxuICBzZXQgc2V0Q29uZmlnKGNvbmZpZykge1xuICAgIHRoaXMuX2luaXRGaWx0ZXJXaXRoQ29uZmlnKGNvbmZpZyk7XG4gIH1cblxuICBASW5wdXQoJ2ZpbHRlcicpXG4gIHNldCBzZXRGaWx0ZXIoY29uZmlnKSB7XG4gICAgdGhpcy5faW5pdEZpbHRlcldpdGhDb25maWcoY29uZmlnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93U29ydEJ5OiBhbnkgPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd0ZpbHRlcklucHV0ID0gdHJ1ZTtcbiAgQE91dHB1dCgpIHB1YmxpYyBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAQ29udGVudENoaWxkKEZpbHRlclN0YXR1c0JhckRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBwdWJsaWMgc3RhdHVzQmFyO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaFRleHRJbnB1dCcpXG4gIHB1YmxpYyBzZWFyY2hUZXh0SW5wdXQ6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoVGV4dElucHV0JywgeyByZWFkOiBNYXRJbnB1dCB9KVxuICBwdWJsaWMgc2VhcmNoVGV4dE1hdElucHV0OiBNYXRJbnB1dDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZpbHRlcnMtb3BlbicpXG4gIHB1YmxpYyBzaG93RmlsdGVyTWVudSA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2luZG93LWRlc2t0b3AnKVxuICBwdWJsaWMgd2luZG93RGVza3RvcCA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZnMtZmlsdGVyJylcbiAgcHVibGljIGZzRmlsdGVyQ2xhc3MgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaGFzLWtleXdvcmQnKVxuICBwdWJsaWMgZ2V0IGhhc0tleXdvcmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckl0ZW1zLmhhc0tleXdvcmQ7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoVGV4dCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBwdWJsaWMgc2VhcmNoUGxhY2Vob2xkZXIgPSAnU2VhcmNoJztcblxuICBwcm90ZWN0ZWQgX2NvbmZpZzogRnNGaWx0ZXJDb25maWcgPSBudWxsO1xuXG4gIHByaXZhdGUgX3NvcnQ6IEZpbHRlclNvcnQ7XG4gIHByaXZhdGUgX2ZpbHRlcnNCdG5WaXNpYmxlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHByaXZhdGUgX2tleXdvcmRWaXNpYmxlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHByaXZhdGUgX2hhc0ZpbHRlckNoaXBzJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZmlsdGVyT3ZlcmxheTogRnNGaWx0ZXJPdmVybGF5U2VydmljZSxcbiAgICBwcml2YXRlIF96b25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBfZXh0ZXJuYWxQYXJhbXM6IEV4dGVybmFsUGFyYW1zQ29udHJvbGxlcixcbiAgICBwcml2YXRlIF9maWx0ZXJJdGVtczogRnNGaWx0ZXJJdGVtc1N0b3JlLFxuICAgIHByaXZhdGUgX2FjdGlvbnM6IEFjdGlvbnNDb250cm9sbGVyLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRlNfRklMVEVSX0NPTkZJRykgcHJpdmF0ZSBfZGVmYXVsdENvbmZpZzogRnNGaWx0ZXJDb25maWdcbiAgKSB7XG4gICAgdGhpcy5fbGlzdGVuV2hlbkZpbHRlclJlYWR5KCk7XG4gICAgdGhpcy5fdXBkYXRlV2luZG93V2lkdGgoKTtcblxuICAgIHRoaXMuX2ZpbHRlck92ZXJsYXkuYXR0YWNoJFxuICAgIC5waXBlKFxuICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXG4gICAgKVxuICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zaG93RmlsdGVyTWVudSA9IHRydWU7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9maWx0ZXJPdmVybGF5LmRldGFjaCRcbiAgICAucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcbiAgICApXG4gICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dGaWx0ZXJNZW51ID0gZmFsc2U7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9saXN0ZW5XaW5kb3dSZXNpemUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29uZmlnKCk6IEZzRmlsdGVyQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJQYXJhbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckl0ZW1zLnZhbHVlcygpO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJQYXJhbXNRdWVyeSgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckl0ZW1zLnZhbHVlc0FzUXVlcnkoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXRlbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckl0ZW1zLml0ZW1zO1xuICB9XG5cbiAgcHVibGljIGdldCB2aXNpYmxlSXRlbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckl0ZW1zLnZpc2libGVJdGVtcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXRlbXNSZWFkeSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckl0ZW1zLnJlYWR5JDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzRmlsdGVyQ2hpcHMkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9oYXNGaWx0ZXJDaGlwcyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1Zpc2libGVJdGVtT3JTb3J0aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVJdGVtcy5sZW5ndGggPiAwIHx8ICEhdGhpcy5fZmlsdGVySXRlbXMuc29ydEJ5SXRlbVxuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJzQnRuVmlzaWJsZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcnNCdG5WaXNpYmxlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQga2V5d29yZFZpc2libGUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9rZXl3b3JkVmlzaWJsZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGlvbnNWaXNpYmxlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9ucy52aXNpYmxlJDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aW9ucyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnMuYWN0aW9ucyQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lbnVBY3Rpb25zJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9ucy5tZW51QWN0aW9ucyQ7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG5cbiAgICAvLyBBdm9pZCBuZ0NoYW5nZXMgZXJyb3JcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5hdXRvZm9jdXMpIHtcbiAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fbGlzdGVuSW50ZXJuYWxJdGVtc0NoYW5nZSgpO1xuICAgIHRoaXMuX2luaXRPdmVybGF5KCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2xpc3RlbklucHV0S2V5RXZlbnRzKCk7XG4gICAgLy8gRklYTUUgcHJldmVudCBmaXJlIGNoYW5nZSBhZnRlciBpbml0XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9saXN0ZW5JbnB1dENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcblxuICAgIHRoaXMuX2Rlc3Ryb3lGaWx0ZXJEcmF3ZXIoKTtcblxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCkge1xuICAgIGlmICh0aGlzLnNlYXJjaFRleHRNYXRJbnB1dCkge1xuICAgICAgdGhpcy5zZWFyY2hUZXh0TWF0SW5wdXQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlU29ydChzb3J0OiBJU29ydGluZ0NoYW5nZUV2ZW50KSB7XG4gICAgdGhpcy5fZmlsdGVySXRlbXMudXBkYXRlU29ydChzb3J0KVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIERvIHVwZGF0ZSB2YWx1ZSBvZiBzb21lIGZpZWxkXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZXMgLSB2YWx1ZXMgZm9yIHVwZGF0ZVxuICAgKlxuICAgKiBUbyB1cGRhdGUgdGV4dCB2YWx1ZSBqdXN0IHBhc3MgbmV3IHRleHQgdmFsdWVcbiAgICpcbiAgICogcHVibGljIHVwZGF0ZVNlbGVjdFZhbHVlKHZhbCkge1xuICAgKiAgIHRoaXMuZmlsdGVyRWwudXBkYXRlVmFsdWVzKHsga2V5d29yZDogdmFsIH0pO1xuICAgKiB9XG4gICAqXG4gICAqIFRvIHVwZGF0ZSBzZWxlY3Qgb3Igb2JzZXJ2YWJsZSBzZWxlY3QgeW91IGNvdWxkIHBhc3Mgc3VpdGFibGUgdmFsdWVcbiAgICpcbiAgICogcHVibGljIHVwZGF0ZVNlbGVjdFZhbHVlKHZhbDogbnVtYmVyKSB7XG4gICAqICAgdGhpcy5maWx0ZXJFbC51cGRhdGVWYWx1ZXMoeyBzaW1wbGVfc2VsZWN0OiB2YWwgfSwgeyBvYnNlcnZhYmxlX3NlbGVjdDogdmFsIH0pO1xuICAgKiB9XG4gICAqXG4gICAqIFRvIHVwZGF0ZSBjaGVja2JveCB2YWx1ZSBqdXN0IHBhc3MgdHJ1ZS9mYWxzZSBhcyB2YWx1ZVxuICAgKlxuICAgKiBwdWJsaWMgdXBkYXRlQ2hlY2tveCh2YWw6IGJvb2xlYW4pIHtcbiAgICogICB0aGlzLmZpbHRlckVsLnVwZGF0ZVZhbHVlcyh7IGNoZWNrYm94OiB2YWwgfSk7XG4gICAqIH1cbiAgICpcbiAgICogVG8gdXBkYXRlIHJhbmdlIHZhbHVlIGp1c3QgcGFzcyBvYmplY3Qgd2l0aCBtaW4mbWF4IG9iamVjdCBvciBqdXN0IHdpdGggb25lIG9mIHRhcmdldHNcbiAgICpcbiAgICogRXguOiB7IG1pbjogMTAsIG1heCAxNSB9LCB7IG1pbjogNSB9LCB7IG1heCA1IH1cbiAgICpcbiAgICogcHVibGljIHVwZGF0ZVJhbmdlKHZhbCkge1xuICAgKiAgIHRoaXMuZmlsdGVyRWwudXBkYXRlVmFsdWVzKHsgcmFuZ2U6IHZhbCB9KTtcbiAgICogfVxuICAgKlxuICAgKiBUbyB1cGRhdGUgYXV0b2NvbXBsZXRlIGp1c3QgcGFzcyBvYmplY3Qgd2l0aCBuYW1lL3ZhbHVlIGZpZWxkc1xuICAgKlxuICAgKiBFeC46IHsgbmFtZTogJ0pvaG4gRG9lJywgdmFsdWU6IDEgfVxuICAgKlxuICAgKiBwdWJsaWMgdXBkYXRlQXV0b2NvbXBsZXRlKHZhbCkge1xuICAgKiAgIHRoaXMuZmlsdGVyRWwudXBkYXRlVmFsdWVzKHsgYXV0b2NvbXBsZXRlX3VzZXJfaWQ6IHZhbCB9KTtcbiAgICogfVxuICAgKlxuICAgKiBUbyB1cGRhdGUgYXV0b2NvbXBsZXRlY2hpcHMganVzdCBwYXNzOlxuICAgKlxuICAgKiAxKSBvYmplY3Qgd2l0aCBuYW1lL3ZhbHVlIGZpZWxkcyAtIHdpbGwgYmUgYXBwZW5kZWQgdG8gZXhpc3Rpbmcgc2V0IG9mIHZhbHVlc1xuICAgKlxuICAgKiB7IG5hbWU6ICdKb2huIERvZScsIHZhbHVlOiAxIH1cbiAgICpcbiAgICogMikgYXJyYXkgb2Ygb2JqZWN0cyAtIHdpbGwgYmUgYXBwZW5kZWQgdG8gZXhpc3Rpbmcgc2V0IG9mIHZhbHVlc1xuICAgKlxuICAgKiBbeyBuYW1lOiAnSm9obiBEb2UnLCB2YWx1ZTogMSB9LCB7IG5hbWU6ICdEYXJ5YSBGaWxpcG92YScsIHZhbHVlOiAyIH1dXG4gICAqXG4gICAqIDMpIG51bGwgLSBjbGVhciBleGlzdGluZyBzZXQgb2YgdmFsdWVzXG4gICAqXG4gICAqIHB1YmxpYyB1cGRhdGVBdXRvY29tcGxldGUodmFsKSB7XG4gICAqICAgdGhpcy5maWx0ZXJFbC51cGRhdGVWYWx1ZXMoeyBhdXRvY29tcGxldGVjaGlwc191c2VyX2lkOiB2YWwgfSk7XG4gICAqIH1cbiAgICpcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVWYWx1ZXModmFsdWVzKSB7XG4gICAgT2JqZWN0LmtleXModmFsdWVzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlckl0ZW0gPSB0aGlzLml0ZW1zXG4gICAgICAgIC5maW5kKChpdGVtKSA9PiBpdGVtLm5hbWUgPT09IGtleSk7XG5cbiAgICAgIGlmICghZmlsdGVySXRlbSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGZpbHRlckl0ZW0ubW9kZWwgPSB2YWx1ZXNba2V5XTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBoaWRlKCkge1xuICAgIHRoaXMuY2hhbmdlVmlzaWJpbGl0eShmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgc2hvdygpIHtcbiAgICB0aGlzLmNoYW5nZVZpc2liaWxpdHkodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlVmlzaWJpbGl0eUNsaWNrKHZhbHVlLCBldmVudCA9IG51bGwpIHtcblxuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2VWaXNpYmlsaXR5KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWx0ZXJJbnB1dEV2ZW50KGV2ZW50KSB7XG5cbiAgICBpZiAoIXRoaXMud2luZG93RGVza3RvcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoWydFbnRlcicsICdOdW1wYWRFbnRlcicsICdFc2NhcGUnXS5pbmRleE9mKGV2ZW50LmNvZGUpID49IDApIHtcbiAgICAgIHRoaXMuY2hhbmdlVmlzaWJpbGl0eShmYWxzZSk7XG5cbiAgICAgIGlmICh0aGlzLnNlYXJjaFRleHRJbnB1dCkge1xuICAgICAgICB0aGlzLnNlYXJjaFRleHRJbnB1dC5uYXRpdmVFbGVtZW50LmJsdXIoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXRlbVZhbHVlcygpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXNcbiAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0udmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldCBub25FbXB0eUl0ZW1WYWx1ZXMoKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zXG4gICAgICAuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAubWFwKChpdGVtKSA9PiBpdGVtLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzSXRlbVZhbHVlcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc1xuICAgICAgLnNvbWUoKGl0ZW0pID0+IGl0ZW0udmFsdWUgIT09IHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SXRlbVZhbHVlKG5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLml0ZW1zXG4gICAgICAuZmluZCgoaXRlbSkgPT4gaXRlbS5uYW1lID09PSBuYW1lKTtcblxuICAgIHJldHVybiBpdGVtPy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93SXRlbShuYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRJdGVtKG5hbWUpO1xuXG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIGl0ZW0uaGlkZSA9IGZhbHNlO1xuXG4gICAgICB0aGlzLl9maWx0ZXJJdGVtcy51cGRhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGlkZUl0ZW0obmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbShuYW1lKTtcblxuICAgIGlmICghaXRlbSkgeyByZXR1cm4gfVxuXG4gICAgaXRlbS5oaWRlID0gdHJ1ZTtcblxuICAgIHRoaXMuX2ZpbHRlckl0ZW1zLnVwZGF0ZVZpc2libGVJdGVtcygpO1xuICB9XG5cbiAgcHVibGljIGNsZWFySXRlbShuYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRJdGVtKG5hbWUpO1xuXG4gICAgaWYgKCFpdGVtKSB7IHJldHVybiB9XG5cbiAgICBpdGVtLmNsZWFyKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlSXRlbUNvbmZpZyhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgcGFyYW1zOiBJVXBkYXRlRmlsdGVySXRlbUNvbmZpZ1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRJdGVtKG5hbWUpO1xuXG4gICAgaWYgKCFpdGVtKSB7IHJldHVybiB9XG5cbiAgICBpdGVtLmxhYmVsID0gcGFyYW1zLmxhYmVsID8/IGl0ZW0ubGFiZWw7XG4gICAgaXRlbS5jaGlwTGFiZWwgPSBwYXJhbXMuY2hpcExhYmVsID8/IGl0ZW0uY2hpcExhYmVsO1xuXG4gICAgdGhpcy5fZmlsdGVySXRlbXMudXBkYXRlVmlzaWJsZUl0ZW1zKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SXRlbVZhbHVlQ2hhbmdlJChuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4gfCBudWxsIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtcy5maW5kKChpKSA9PiBpLm5hbWUgPT09IG5hbWUpO1xuXG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHJldHVybiBpdGVtLnZhbHVlJFxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubW9kZWw7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VWaXNpYmlsaXR5KHN0YXRlOiBib29sZWFuKSB7XG5cbiAgICBpZiAoc3RhdGUgPT09IHRoaXMuc2hvd0ZpbHRlck1lbnUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXN0YXRlKSB7XG4gICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gICAgICByZXR1cm4gdGhpcy5fZGVzdHJveUZpbHRlckRyYXdlcigpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5oYXNWaXNpYmxlSXRlbU9yU29ydGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2xpc3RlbkVzY0J1dHRvbigpO1xuXG4gICAgdGhpcy5vcGVuZWQuZW1pdCgpO1xuXG4gICAgdGhpcy5fZmlsdGVyT3ZlcmxheS5vcGVuKCk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJTZWFyY2hUZXh0KGV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5zZWFyY2hUZXh0LnNldFZhbHVlKCcnKTtcbiAgICB0aGlzLl9maWx0ZXJJdGVtcy5rZXl3b3JkSXRlbS5jbGVhcigpO1xuICAgIHRoaXMuc2VhcmNoVGV4dElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9maWx0ZXJJdGVtcy52YWx1ZXNBc1F1ZXJ5KCk7XG4gICAgdGhpcy5fc29ydCA9IHRoaXMuX2ZpbHRlckl0ZW1zLmdldFNvcnQoKTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5pbml0KSB7XG4gICAgICB0aGlzLmNvbmZpZy5pbml0KGRhdGEsIHRoaXMuX3NvcnQpO1xuICAgIH1cblxuICAgIHRoaXMuX3VwZGF0ZUNoaXBzVmlzaWJpbGl0eSgpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKGV2ZW50ID0gbnVsbCkge1xuXG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICB0aGlzLl9maWx0ZXJJdGVtcy5maWx0ZXJzQ2xlYXIoKTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5jbGVhcikge1xuICAgICAgdGhpcy5jb25maWcuY2xlYXIoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgZmlsdGVyIHdpbmRvdyBhbmQgZG8gY2hhbmdlIGNhbGxiYWNrXG4gICAqL1xuICBwdWJsaWMgc2VhcmNoKGV2ZW50KSB7XG4gICAgdGhpcy5jaGFuZ2VWaXNpYmlsaXR5Q2xpY2soZmFsc2UsIGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWQoZXZlbnQgPSBudWxsKSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuX2ZpbHRlckl0ZW1zLnZhbHVlc0FzUXVlcnkoKTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5yZWxvYWQpIHtcbiAgICAgIHRoaXMuY29uZmlnLnJlbG9hZChkYXRhLCB0aGlzLl9maWx0ZXJJdGVtcy5nZXRTb3J0KCkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRJdGVtKG5hbWUpOiBCYXNlSXRlbTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc1xuICAgICAgLmZpbmQoKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PT0gbmFtZSk7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hRdWVyeVBhcmFtcygpOiB2b2lkIHtcbiAgICB0aGlzLl9leHRlcm5hbFBhcmFtcy5mZXRjaFF1ZXJ5UGFyYW1zKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbCBjaGFuZ2UgY2FsbGJhY2sgYW5kIGFwcGx5IG5ldyBmaWx0ZXIgdmFsdWVzXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlKCkge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9maWx0ZXJJdGVtcy52YWx1ZXNBc1F1ZXJ5KCk7XG4gICAgY29uc3Qgc29ydCA9IHRoaXMuX2ZpbHRlckl0ZW1zLmdldFNvcnQoKTtcblxuICAgIGNvbnN0IHNvcnRpbmdDaGFuZ2VkID0gKCghc29ydCB8fCAhdGhpcy5fc29ydCkgJiYgc29ydCAhPT0gdGhpcy5fc29ydClcbiAgICAgIHx8IChzb3J0ICYmIHRoaXMuX3NvcnQgJiYgIW9iamVjdHNBcmVFcXVhbHModGhpcy5fc29ydCwgc29ydCkpO1xuXG4gICAgaWYgKHNvcnRpbmdDaGFuZ2VkKSB7XG4gICAgICB0aGlzLl9zb3J0ID0gc29ydDtcblxuICAgICAgaWYgKHRoaXMuY29uZmlnLnNvcnRDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5jb25maWcuc29ydENoYW5nZShkYXRhLCBzb3J0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcuY2hhbmdlKSB7XG4gICAgICB0aGlzLmNvbmZpZy5jaGFuZ2UoZGF0YSwgc29ydCk7XG4gICAgfVxuXG4gICAgdGhpcy5fdXBkYXRlQ2hpcHNWaXNpYmlsaXR5KCk7XG5cbiAgICAvLyB2aXNpYmlsaXR5IGZvciBhY3Rpb25zIGNhbiBkZXBlbmQgb24gZmlsdGVycyBzdGF0ZVxuICAgIHRoaXMuX2FjdGlvbnMudXBkYXRlQWN0aW9uc1Zpc2liaWxpdHkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgZmlsdGVyIGFjdGlvbnMgY29uZmlnXG4gICAqIEBwYXJhbSBhY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlQWN0aW9ucyhhY3Rpb25zOiBGc0ZpbHRlckFjdGlvbltdKTogdm9pZCB7XG4gICAgdGhpcy5fYWN0aW9ucy5pbml0QWN0aW9ucyhhY3Rpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93IFwiRmlsdGVyc1wiIGJ1dHRvblxuICAgKi9cbiAgcHVibGljIHNob3dGaWx0ZXJzQnRuKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZpbHRlcnNCdG5WaXNpYmxlJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhpZGUgXCJGaWx0ZXJzXCIgYnV0dG9uXG4gICAqL1xuICBwdWJsaWMgaGlkZUZpbHRlcnNCdG4oKTogdm9pZCB7XG4gICAgdGhpcy5fZmlsdGVyc0J0blZpc2libGUkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgXCJLZXl3b3JkXCIgZmllbGQgaWYgaXQgcHJlc2VudFxuICAgKi9cbiAgcHVibGljIHNob3dLZXl3b3JkRmllbGQoKTogdm9pZCB7XG4gICAgdGhpcy5fa2V5d29yZFZpc2libGUkLm5leHQodHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogSGlkZSBcIktleXdvcmRcIiBmaWVsZCBpZiBpdCBwcmVzZW50XG4gICAqL1xuICBwdWJsaWMgaGlkZUtleXdvcmRGaWVsZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9rZXl3b3JkVmlzaWJsZSQubmV4dChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogR28gdGhyb3VnaCBhY3Rpb25zIGFuZCBjaGVjayBzaG93KCkgY2FsbGJhY2sgYW5kIHVwZGF0ZSB2aXNpYmxlIGFjdGlvbnNcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVBY3Rpb25zVmlzaWJpbGl0eSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hY3Rpb25zLnVwZGF0ZUFjdGlvbnNWaXNpYmlsaXR5KCk7XG4gIH1cblxuICAvKipcbiAgICogR28gdGhyb3VnaCBhY3Rpb25zIGFuZCBjaGVjayBkaXNhYmxlZCgpIGNhbGxiYWNrIGFuZCB1cGRhdGUgZGlzYWJsZWQgc3RhdGVcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVEaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuX2FjdGlvbnMudXBkYXRlRGlzYWJsZWRTdGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldEl0ZW1zKGl0ZW1zOiBJRmlsdGVyQ29uZmlnSXRlbVtdKSB7XG4gICAgdGhpcy5fZmlsdGVySXRlbXMuZGVzdHJveUl0ZW1zKCk7XG5cbiAgICB0aGlzLmNvbmZpZy5pdGVtcyA9IGl0ZW1zO1xuICAgIHRoaXMuX2ZpbHRlckl0ZW1zLnNldENvbmZpZyh0aGlzLl9jb25maWcpO1xuICAgIHRoaXMuX2V4dGVybmFsUGFyYW1zLmluaXRJdGVtcygpO1xuICAgIHRoaXMuX3N5bmNTZWFyY2hJbnB1dFdpdGhLZXl3b3JkKCk7XG4gICAgdGhpcy5fbGlzdGVuS2V5d29yZEl0ZW1DbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEZpbHRlcldpdGhDb25maWcoY29uZmlnOiBGaWx0ZXJDb25maWcpIHtcbiAgICBpZiAodGhpcy5jb25maWcpIHtcbiAgICAgIHRoaXMuX2ZpbHRlckl0ZW1zLmRlc3Ryb3lJdGVtcygpO1xuICAgIH1cblxuICAgIGNvbmZpZyA9IHtcbiAgICAgIC4uLih0aGlzLl9kZWZhdWx0Q29uZmlnIHx8IHt9KSxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICB9O1xuXG4gICAgdGhpcy5fY29uZmlnID0gbmV3IEZzRmlsdGVyQ29uZmlnKGNvbmZpZyk7XG4gICAgdGhpcy5fYWN0aW9ucy5pbml0QWN0aW9ucyh0aGlzLl9jb25maWcuYWN0aW9ucyk7XG4gICAgdGhpcy5fZmlsdGVySXRlbXMuc2V0Q29uZmlnKHRoaXMuX2NvbmZpZyk7XG4gICAgdGhpcy5fZXh0ZXJuYWxQYXJhbXMuc2V0Q29uZmlnKHRoaXMuX2NvbmZpZyk7XG5cbiAgICB0aGlzLl9zeW5jU2VhcmNoSW5wdXRXaXRoS2V5d29yZCgpO1xuXG4gICAgaWYgKCEhdGhpcy5jb25maWcucmVsb2FkV2hlbkNvbmZpZ0NoYW5nZWQpIHtcbiAgICAgIHRoaXMuY2hhbmdlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fbGlzdGVuS2V5d29yZEl0ZW1DbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVzdHJveUZpbHRlckRyYXdlcigpIHtcbiAgICB0aGlzLl9maWx0ZXJPdmVybGF5LmNsb3NlKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVXaW5kb3dXaWR0aCgpIHtcbiAgICB0aGlzLndpbmRvd0Rlc2t0b3AgPSB3aW5kb3cuaW5uZXJXaWR0aCA+IDEyMDA7XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5Fc2NCdXR0b24oKSB7XG4gICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBmcm9tRXZlbnQod2luZG93LCAna2V5dXAnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiBldmVudC5jb2RlID09PSAnRXNjYXBlJyksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuY2xvc2VkKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlVmlzaWJpbGl0eShmYWxzZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuSW5wdXRLZXlFdmVudHMoKSB7XG4gICAgaWYgKCF0aGlzLnNlYXJjaFRleHRJbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZnJvbUV2ZW50KHRoaXMuc2VhcmNoVGV4dElucHV0Lm5hdGl2ZUVsZW1lbnQsICdrZXlkb3duJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICAgICAgZmlsdGVyKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIFsnRW50ZXInLCAnTnVtcGFkRW50ZXInLCAnRXNjYXBlJ10uaW5kZXhPZihldmVudC5jb2RlKSA+IC0xO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLl96b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcklucHV0RXZlbnQoZXZlbnQpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuV2luZG93UmVzaXplKCkge1xuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlV2luZG93V2lkdGgoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlbklucHV0Q2hhbmdlcygpIHtcbiAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuc2VhcmNoVGV4dC52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgIT09IHRoaXMuX2ZpbHRlckl0ZW1zLmtleXdvcmRJdGVtPy5tb2RlbDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5d29yZEl0ZW0gPSB0aGlzLl9maWx0ZXJJdGVtcy5rZXl3b3JkSXRlbTtcblxuICAgICAgICAgICAgaWYgKGtleXdvcmRJdGVtICYmIGtleXdvcmRJdGVtLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgICBrZXl3b3JkSXRlbS5tb2RlbCA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY1NlYXJjaElucHV0V2l0aEtleXdvcmQoKTogdm9pZCB7XG4gICAgY29uc3Qga2V5d29yZEl0ZW0gPSB0aGlzLl9maWx0ZXJJdGVtcy5rZXl3b3JkSXRlbTtcbiAgICBpZiAoa2V5d29yZEl0ZW0pIHtcbiAgICAgIHRoaXMuc2VhcmNoVGV4dC5zZXRWYWx1ZShrZXl3b3JkSXRlbS5tb2RlbCk7XG4gICAgICB0aGlzLnNlYXJjaFBsYWNlaG9sZGVyID0ga2V5d29yZEl0ZW0ubGFiZWwgYXMgc3RyaW5nIHx8ICdTZWFyY2gnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlbktleXdvcmRJdGVtQ2xlYXIoKSB7XG4gICAgdGhpcy5fZmlsdGVySXRlbXNcbiAgICAgIC5rZXl3b3JkSXRlbVxuICAgICAgPy5jbGVhciRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZmlsdGVySXRlbXMua2V5d29yZEl0ZW0uZGVzdHJveSQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoVGV4dC5zZXRWYWx1ZSgnJyk7XG4gICAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuSW50ZXJuYWxJdGVtc0NoYW5nZSgpIHtcbiAgICB0aGlzLl9maWx0ZXJJdGVtc1xuICAgICAgLml0ZW1zQ2hhbmdlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jaGFuZ2UoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdE92ZXJsYXkoKSB7XG4gICAgdGhpcy5fZmlsdGVyT3ZlcmxheS5zZXRDbGVhckZuKHRoaXMuY2xlYXIuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5fZmlsdGVyT3ZlcmxheS5zZXREb25lRm4odGhpcy5oaWRlLmJpbmQodGhpcykpO1xuICB9XG5cbiAgLy8gV2UgbWF5IG5lZWQgc29tZSB0aW1lIHRvIHJlY2lldmUgZXh0ZXJuYWwgcGFyYW1zIGFuZCBhZnRlciB0aGF0IHJlYWR5IGNhbiBiZSBlbWl0dGVkXG4gIHByaXZhdGUgX2xpc3RlbldoZW5GaWx0ZXJSZWFkeSgpIHtcbiAgICBjb21iaW5lTGF0ZXN0KFxuICAgIFtcbiAgICAgIHRoaXMuX2V4dGVybmFsUGFyYW1zLnBlbmRpbmckLFxuICAgICAgdGhpcy5pdGVtc1JlYWR5JCxcbiAgICBdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoW3BlbmRpbmdQYXJhbXMsIGl0ZW1zUmVhZHldKSA9PiAhcGVuZGluZ1BhcmFtcyAmJiBpdGVtc1JlYWR5KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgICAgdGhpcy5fc3luY1NlYXJjaElucHV0V2l0aEtleXdvcmQoKTtcblxuICAgICAgICB0aGlzLnJlYWR5LmVtaXQoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQ2hpcHNWaXNpYmlsaXR5KCkge1xuICAgIGNvbnN0IGhhc0ZpbHRlckNoaXBzID0gdGhpcy5fZmlsdGVySXRlbXMuaXRlbXNcbiAgICAgIC5zb21lKChpdGVtOiBCYXNlSXRlbTxhbnk+KSA9PiB7XG4gICAgICAgIHJldHVybiBpdGVtLmlzQ2hpcFZpc2libGU7XG4gICAgICB9KTtcblxuICAgIHRoaXMuX2hhc0ZpbHRlckNoaXBzJC5uZXh0KGhhc0ZpbHRlckNoaXBzKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cImZpbHRlci1jb250YWluZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzS2V5d29yZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1rZXl3b3JkXCI+XG4gICAgICAgIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHJvbGU9XCJwcmVzZW50YXRpb25cIiAqbmdJZj1cImtleXdvcmRWaXNpYmxlJCB8IGFzeW5jXCI+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJuZXZlclwiPlxuICAgICAgICAgICAgICA8c3BhbiBtYXRQcmVmaXg+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdFByZWZpeD5zZWFyY2g8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAjc2VhcmNoVGV4dElucHV0XG4gICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hUZXh0XCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgbmFtZT1cImZpbHRlci1pbnB1dFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJmaWx0ZXJJbnB1dEV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICBjbGFzcz1cImZpbHRlci1pbnB1dFwiPlxuXG4gICAgICAgICAgICA8ZGl2IG1hdFN1ZmZpeCAqbmdJZj1cInNlYXJjaFRleHQudmFsdWUgJiYgc2hvd0ZpbHRlcklucHV0ICYmIGNvbmZpZy5jbGVhclwiPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXJTZWFyY2hUZXh0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2xlYXJcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2xlYXI8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgbWF0U3VmZml4PlxuICAgICAgICAgICAgICA8YSBcbiAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbG9hZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVsb2FkXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLnJlbG9hZFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5yZWZyZXNoPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWFjdGlvbnNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNWaXNpYmxlSXRlbU9yU29ydGluZyAmJiBmaWx0ZXJzQnRuVmlzaWJsZSQgfCBhc3luY1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImZpbHRlcnMtYnV0dG9uXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ21hdC1yYWlzZWQtYnV0dG9uJzogY29uZmlnLmJ1dHRvbi5zdHlsZSA9PSAncmFpc2VkJyxcbiAgICAgICAgICAgICAgJ21hdC1idXR0b24nOiBjb25maWcuYnV0dG9uLnN0eWxlID09ICdiYXNpYycsXG4gICAgICAgICAgICAgICdtYXQtaWNvbi1idXR0b24nOiBjb25maWcuYnV0dG9uLnN0eWxlID09ICdpY29uJ1xuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlVmlzaWJpbGl0eUNsaWNrKCFzaG93RmlsdGVyTWVudSwgJGV2ZW50KVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtjb2xvcl09XCJjb25maWcuYnV0dG9uLmNvbG9yXCI+XG4gICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiY29uZmlnLmJ1dHRvbi5pY29uXCI+e3tjb25maWcuYnV0dG9uLmljb259fTwvbWF0LWljb24+XG4gICAgICAgICAge3sgY29uZmlnLmJ1dHRvbi5sYWJlbCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICBcbiAgICAgIDxmcy1maWx0ZXItYWN0aW9uc1xuICAgICAgICAqbmdJZj1cImFjdGlvbnNWaXNpYmxlJCB8IGFzeW5jXCJcbiAgICAgICAgW2FjdGlvbnNdPVwiYWN0aW9ucyQgfCBhc3luY1wiXG4gICAgICAgIFtrZWJhYkFjdGlvbnNdPVwibWVudUFjdGlvbnMkIHwgYXN5bmNcIj5cbiAgICAgIDwvZnMtZmlsdGVyLWFjdGlvbnM+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXN0YXR1cy1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXN0YXR1c1wiICpuZ0lmPVwic3RhdHVzQmFyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RhdHVzQmFyXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGZzLWZpbHRlci1jaGlwc1xuICAgICAgKm5nSWY9XCJjb25maWcuY2hpcHMgJiYgaGFzRmlsdGVyQ2hpcHMkIHwgYXN5bmNcIlxuICAgICAgY2xhc3M9XCJmaWx0ZXItY2hpcHNcIlxuICAgICAgW2ZpbHRlcnNdPVwiaXRlbXNcIj5cbiAgICA8L2ZzLWZpbHRlci1jaGlwcz5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj4iXX0=
|
|
628
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFHTixRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdFQUFn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VSxLQUFLO3NCQUFyQixNQUFNO2dCQUdBLFNBQVM7c0JBRGYsWUFBWTt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBSXRELGVBQWU7c0JBRHJCLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUlyQixrQkFBa0I7c0JBRHhCLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2dCQUl6QyxjQUFjO3NCQURwQixXQUFXO3VCQUFDLG9CQUFvQjtnQkFJMUIsYUFBYTtzQkFEbkIsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBSTVCLGFBQWE7c0JBRG5CLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUluQixVQUFVO3NCQURwQixXQUFXO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmcm9tRXZlbnQsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFjdGlvbnNDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9hY3Rpb25zLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgb2JqZWN0c0FyZUVxdWFscyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY29tcGFyZSc7XG5pbXBvcnQgeyBGc0ZpbHRlckFjdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWx0ZXJDb25maWcsIEZpbHRlclNvcnQsIElGaWx0ZXJDb25maWdJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IElTb3J0aW5nQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVVwZGF0ZUZpbHRlckl0ZW1Db25maWcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3VwZGF0ZS1maWx0ZXItaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRnNGaWx0ZXJDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsdGVyLWNvbmZpZyc7XG5pbXBvcnQgeyBCYXNlSXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9pdGVtcy9iYXNlLWl0ZW0nO1xuaW1wb3J0IHsgRXh0ZXJuYWxQYXJhbXNDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXh0ZXJuYWwtcGFyYW1zLWNvbnRyb2xsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQZXJzaXN0YW5jZVBhcmFtc0NvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlcm5hbC1wYXJhbXMvcGVyc2lzdGFuY2UtcGFyYW1zLWNvbnRyb2xsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBRdWVyeVBhcmFtc0NvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlcm5hbC1wYXJhbXMvcXVlcnktcGFyYW1zLWNvbnRyb2xsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTYXZlZEZpbHRlcnNDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXh0ZXJuYWwtcGFyYW1zL3NhdmVkLWZpbHRlcnMtY29udHJvbGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IEZzRmlsdGVyT3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWx0ZXItb3ZlcmxheS5zZXJ2aWNlJztcbmltcG9ydCB7IEZvY3VzQ29udHJvbGxlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb2N1cy1jb250cm9sbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRnNGaWx0ZXJJdGVtc1N0b3JlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaXRlbXMtc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJTdGF0dXNCYXJEaXJlY3RpdmUgfSBmcm9tICcuLy4uLy4uL2RpcmVjdGl2ZXMvc3RhdHVzLWJhci9zdGF0dXMtYmFyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGU19GSUxURVJfQ09ORklHIH0gZnJvbSAnLi8uLi8uLi9pbmplY3RvcnMvZmlsdGVyLWNvbmZpZyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtZmlsdGVyJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICBGc0ZpbHRlck92ZXJsYXlTZXJ2aWNlLFxuICAgIEV4dGVybmFsUGFyYW1zQ29udHJvbGxlcixcbiAgICBQZXJzaXN0YW5jZVBhcmFtc0NvbnRyb2xsZXIsXG4gICAgUXVlcnlQYXJhbXNDb250cm9sbGVyLFxuICAgIEZvY3VzQ29udHJvbGxlclNlcnZpY2UsXG4gICAgRnNGaWx0ZXJJdGVtc1N0b3JlLFxuICAgIFNhdmVkRmlsdGVyc0NvbnRyb2xsZXIsXG4gICAgQWN0aW9uc0NvbnRyb2xsZXIsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCdjb25maWcnKVxuICBzZXQgc2V0Q29uZmlnKGNvbmZpZykge1xuICAgIHRoaXMuX2luaXRGaWx0ZXJXaXRoQ29uZmlnKGNvbmZpZyk7XG4gIH1cblxuICBASW5wdXQoJ2ZpbHRlcicpXG4gIHNldCBzZXRGaWx0ZXIoY29uZmlnKSB7XG4gICAgdGhpcy5faW5pdEZpbHRlcldpdGhDb25maWcoY29uZmlnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93U29ydEJ5OiBhbnkgPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd0ZpbHRlcklucHV0ID0gdHJ1ZTtcbiAgQE91dHB1dCgpIHB1YmxpYyBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAQ29udGVudENoaWxkKEZpbHRlclN0YXR1c0JhckRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBwdWJsaWMgc3RhdHVzQmFyO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaFRleHRJbnB1dCcpXG4gIHB1YmxpYyBzZWFyY2hUZXh0SW5wdXQ6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoVGV4dElucHV0JywgeyByZWFkOiBNYXRJbnB1dCB9KVxuICBwdWJsaWMgc2VhcmNoVGV4dE1hdElucHV0OiBNYXRJbnB1dDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZpbHRlcnMtb3BlbicpXG4gIHB1YmxpYyBzaG93RmlsdGVyTWVudSA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2luZG93LWRlc2t0b3AnKVxuICBwdWJsaWMgd2luZG93RGVza3RvcCA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZnMtZmlsdGVyJylcbiAgcHVibGljIGZzRmlsdGVyQ2xhc3MgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaGFzLWtleXdvcmQnKVxuICBwdWJsaWMgZ2V0IGhhc0tleXdvcmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckl0ZW1zLmhhc0tleXdvcmQ7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoVGV4dCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBwdWJsaWMgc2VhcmNoUGxhY2Vob2xkZXIgPSAnU2VhcmNoJztcblxuICBwcm90ZWN0ZWQgX2NvbmZpZzogRnNGaWx0ZXJDb25maWcgPSBudWxsO1xuXG4gIHByaXZhdGUgX3NvcnQ6IEZpbHRlclNvcnQ7XG4gIHByaXZhdGUgX2ZpbHRlcnNCdG5WaXNpYmxlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHByaXZhdGUgX2tleXdvcmRWaXNpYmxlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHByaXZhdGUgX2hhc0ZpbHRlckNoaXBzJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZmlsdGVyT3ZlcmxheTogRnNGaWx0ZXJPdmVybGF5U2VydmljZSxcbiAgICBwcml2YXRlIF96b25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBfZXh0ZXJuYWxQYXJhbXM6IEV4dGVybmFsUGFyYW1zQ29udHJvbGxlcixcbiAgICBwcml2YXRlIF9maWx0ZXJJdGVtczogRnNGaWx0ZXJJdGVtc1N0b3JlLFxuICAgIHByaXZhdGUgX2FjdGlvbnM6IEFjdGlvbnNDb250cm9sbGVyLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRlNfRklMVEVSX0NPTkZJRykgcHJpdmF0ZSBfZGVmYXVsdENvbmZpZzogRnNGaWx0ZXJDb25maWdcbiAgKSB7XG4gICAgdGhpcy5fbGlzdGVuV2hlbkZpbHRlclJlYWR5KCk7XG4gICAgdGhpcy5fdXBkYXRlV2luZG93V2lkdGgoKTtcblxuICAgIHRoaXMuX2ZpbHRlck92ZXJsYXkuYXR0YWNoJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dGaWx0ZXJNZW51ID0gdHJ1ZTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fZmlsdGVyT3ZlcmxheS5kZXRhY2gkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2hvd0ZpbHRlck1lbnUgPSBmYWxzZTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fbGlzdGVuV2luZG93UmVzaXplKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbmZpZygpOiBGc0ZpbHRlckNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsdGVyUGFyYW1zKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJJdGVtcy52YWx1ZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsdGVyUGFyYW1zUXVlcnkoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJJdGVtcy52YWx1ZXNBc1F1ZXJ5KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGl0ZW1zKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJJdGVtcy5pdGVtcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlzaWJsZUl0ZW1zKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJJdGVtcy52aXNpYmxlSXRlbXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGl0ZW1zUmVhZHkkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJJdGVtcy5yZWFkeSQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0ZpbHRlckNoaXBzJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faGFzRmlsdGVyQ2hpcHMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNWaXNpYmxlSXRlbU9yU29ydGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlSXRlbXMubGVuZ3RoID4gMCB8fCAhIXRoaXMuX2ZpbHRlckl0ZW1zLnNvcnRCeUl0ZW1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsdGVyc0J0blZpc2libGUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJzQnRuVmlzaWJsZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGtleXdvcmRWaXNpYmxlJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fa2V5d29yZFZpc2libGUkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3Rpb25zVmlzaWJsZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnMudmlzaWJsZSQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGlvbnMkKCkge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25zLmFjdGlvbnMkO1xuICB9XG5cbiAgcHVibGljIGdldCBtZW51QWN0aW9ucyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnMubWVudUFjdGlvbnMkO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuXG4gICAgLy8gQXZvaWQgbmdDaGFuZ2VzIGVycm9yXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jb25maWcuYXV0b2ZvY3VzKSB7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX2xpc3RlbkludGVybmFsSXRlbXNDaGFuZ2UoKTtcbiAgICB0aGlzLl9pbml0T3ZlcmxheSgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9saXN0ZW5JbnB1dEtleUV2ZW50cygpO1xuICAgIC8vIEZJWE1FIHByZXZlbnQgZmlyZSBjaGFuZ2UgYWZ0ZXIgaW5pdFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fbGlzdGVuSW5wdXRDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG5cbiAgICB0aGlzLl9kZXN0cm95RmlsdGVyRHJhd2VyKCk7XG5cbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cygpIHtcbiAgICBpZiAodGhpcy5zZWFyY2hUZXh0TWF0SW5wdXQpIHtcbiAgICAgIHRoaXMuc2VhcmNoVGV4dE1hdElucHV0LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZVNvcnQoc29ydDogSVNvcnRpbmdDaGFuZ2VFdmVudCkge1xuICAgIHRoaXMuX2ZpbHRlckl0ZW1zLnVwZGF0ZVNvcnQoc29ydClcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBEbyB1cGRhdGUgdmFsdWUgb2Ygc29tZSBmaWVsZFxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWVzIC0gdmFsdWVzIGZvciB1cGRhdGVcbiAgICpcbiAgICogVG8gdXBkYXRlIHRleHQgdmFsdWUganVzdCBwYXNzIG5ldyB0ZXh0IHZhbHVlXG4gICAqXG4gICAqIHB1YmxpYyB1cGRhdGVTZWxlY3RWYWx1ZSh2YWwpIHtcbiAgICogICB0aGlzLmZpbHRlckVsLnVwZGF0ZVZhbHVlcyh7IGtleXdvcmQ6IHZhbCB9KTtcbiAgICogfVxuICAgKlxuICAgKiBUbyB1cGRhdGUgc2VsZWN0IG9yIG9ic2VydmFibGUgc2VsZWN0IHlvdSBjb3VsZCBwYXNzIHN1aXRhYmxlIHZhbHVlXG4gICAqXG4gICAqIHB1YmxpYyB1cGRhdGVTZWxlY3RWYWx1ZSh2YWw6IG51bWJlcikge1xuICAgKiAgIHRoaXMuZmlsdGVyRWwudXBkYXRlVmFsdWVzKHsgc2ltcGxlX3NlbGVjdDogdmFsIH0sIHsgb2JzZXJ2YWJsZV9zZWxlY3Q6IHZhbCB9KTtcbiAgICogfVxuICAgKlxuICAgKiBUbyB1cGRhdGUgY2hlY2tib3ggdmFsdWUganVzdCBwYXNzIHRydWUvZmFsc2UgYXMgdmFsdWVcbiAgICpcbiAgICogcHVibGljIHVwZGF0ZUNoZWNrb3godmFsOiBib29sZWFuKSB7XG4gICAqICAgdGhpcy5maWx0ZXJFbC51cGRhdGVWYWx1ZXMoeyBjaGVja2JveDogdmFsIH0pO1xuICAgKiB9XG4gICAqXG4gICAqIFRvIHVwZGF0ZSByYW5nZSB2YWx1ZSBqdXN0IHBhc3Mgb2JqZWN0IHdpdGggbWluJm1heCBvYmplY3Qgb3IganVzdCB3aXRoIG9uZSBvZiB0YXJnZXRzXG4gICAqXG4gICAqIEV4LjogeyBtaW46IDEwLCBtYXggMTUgfSwgeyBtaW46IDUgfSwgeyBtYXggNSB9XG4gICAqXG4gICAqIHB1YmxpYyB1cGRhdGVSYW5nZSh2YWwpIHtcbiAgICogICB0aGlzLmZpbHRlckVsLnVwZGF0ZVZhbHVlcyh7IHJhbmdlOiB2YWwgfSk7XG4gICAqIH1cbiAgICpcbiAgICogVG8gdXBkYXRlIGF1dG9jb21wbGV0ZSBqdXN0IHBhc3Mgb2JqZWN0IHdpdGggbmFtZS92YWx1ZSBmaWVsZHNcbiAgICpcbiAgICogRXguOiB7IG5hbWU6ICdKb2huIERvZScsIHZhbHVlOiAxIH1cbiAgICpcbiAgICogcHVibGljIHVwZGF0ZUF1dG9jb21wbGV0ZSh2YWwpIHtcbiAgICogICB0aGlzLmZpbHRlckVsLnVwZGF0ZVZhbHVlcyh7IGF1dG9jb21wbGV0ZV91c2VyX2lkOiB2YWwgfSk7XG4gICAqIH1cbiAgICpcbiAgICogVG8gdXBkYXRlIGF1dG9jb21wbGV0ZWNoaXBzIGp1c3QgcGFzczpcbiAgICpcbiAgICogMSkgb2JqZWN0IHdpdGggbmFtZS92YWx1ZSBmaWVsZHMgLSB3aWxsIGJlIGFwcGVuZGVkIHRvIGV4aXN0aW5nIHNldCBvZiB2YWx1ZXNcbiAgICpcbiAgICogeyBuYW1lOiAnSm9obiBEb2UnLCB2YWx1ZTogMSB9XG4gICAqXG4gICAqIDIpIGFycmF5IG9mIG9iamVjdHMgLSB3aWxsIGJlIGFwcGVuZGVkIHRvIGV4aXN0aW5nIHNldCBvZiB2YWx1ZXNcbiAgICpcbiAgICogW3sgbmFtZTogJ0pvaG4gRG9lJywgdmFsdWU6IDEgfSwgeyBuYW1lOiAnRGFyeWEgRmlsaXBvdmEnLCB2YWx1ZTogMiB9XVxuICAgKlxuICAgKiAzKSBudWxsIC0gY2xlYXIgZXhpc3Rpbmcgc2V0IG9mIHZhbHVlc1xuICAgKlxuICAgKiBwdWJsaWMgdXBkYXRlQXV0b2NvbXBsZXRlKHZhbCkge1xuICAgKiAgIHRoaXMuZmlsdGVyRWwudXBkYXRlVmFsdWVzKHsgYXV0b2NvbXBsZXRlY2hpcHNfdXNlcl9pZDogdmFsIH0pO1xuICAgKiB9XG4gICAqXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlVmFsdWVzKHZhbHVlcykge1xuICAgIE9iamVjdC5rZXlzKHZhbHVlcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCBmaWx0ZXJJdGVtID0gdGhpcy5pdGVtc1xuICAgICAgICAuZmluZCgoaXRlbSkgPT4gaXRlbS5uYW1lID09PSBrZXkpO1xuXG4gICAgICBpZiAoIWZpbHRlckl0ZW0pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBmaWx0ZXJJdGVtLm1vZGVsID0gdmFsdWVzW2tleV07XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgaGlkZSgpIHtcbiAgICB0aGlzLmNoYW5nZVZpc2liaWxpdHkoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIHNob3coKSB7XG4gICAgdGhpcy5jaGFuZ2VWaXNpYmlsaXR5KHRydWUpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZVZpc2liaWxpdHlDbGljayh2YWx1ZSwgZXZlbnQgPSBudWxsKSB7XG5cbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIHRoaXMuY2hhbmdlVmlzaWJpbGl0eSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVySW5wdXRFdmVudChldmVudCkge1xuXG4gICAgaWYgKCF0aGlzLndpbmRvd0Rlc2t0b3ApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKFsnRW50ZXInLCAnTnVtcGFkRW50ZXInLCAnRXNjYXBlJ10uaW5kZXhPZihldmVudC5jb2RlKSA+PSAwKSB7XG4gICAgICB0aGlzLmNoYW5nZVZpc2liaWxpdHkoZmFsc2UpO1xuXG4gICAgICBpZiAodGhpcy5zZWFyY2hUZXh0SW5wdXQpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hUZXh0SW5wdXQubmF0aXZlRWxlbWVudC5ibHVyKClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGl0ZW1WYWx1ZXMoKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zXG4gICAgICAubWFwKChpdGVtKSA9PiBpdGVtLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbm9uRW1wdHlJdGVtVmFsdWVzKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc1xuICAgICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbS52YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0l0ZW1WYWx1ZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXNcbiAgICAgIC5zb21lKChpdGVtKSA9PiBpdGVtLnZhbHVlICE9PSB1bmRlZmluZWQpO1xuICB9XG5cbiAgcHVibGljIGdldEl0ZW1WYWx1ZShuYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtc1xuICAgICAgLmZpbmQoKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PT0gbmFtZSk7XG5cbiAgICByZXR1cm4gaXRlbT8udmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2hvd0l0ZW0obmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbShuYW1lKTtcblxuICAgIGlmIChpdGVtKSB7XG4gICAgICBpdGVtLmhpZGUgPSBmYWxzZTtcblxuICAgICAgdGhpcy5fZmlsdGVySXRlbXMudXBkYXRlVmlzaWJsZUl0ZW1zKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhpZGVJdGVtKG5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldEl0ZW0obmFtZSk7XG5cbiAgICBpZiAoIWl0ZW0pIHsgcmV0dXJuIH1cblxuICAgIGl0ZW0uaGlkZSA9IHRydWU7XG5cbiAgICB0aGlzLl9maWx0ZXJJdGVtcy51cGRhdGVWaXNpYmxlSXRlbXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckl0ZW0obmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbShuYW1lKTtcblxuICAgIGlmICghaXRlbSkgeyByZXR1cm4gfVxuXG4gICAgaXRlbS5jbGVhcigpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUl0ZW1Db25maWcoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHBhcmFtczogSVVwZGF0ZUZpbHRlckl0ZW1Db25maWdcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbShuYW1lKTtcblxuICAgIGlmICghaXRlbSkgeyByZXR1cm4gfVxuXG4gICAgaXRlbS5sYWJlbCA9IHBhcmFtcy5sYWJlbCA/PyBpdGVtLmxhYmVsO1xuICAgIGl0ZW0uY2hpcExhYmVsID0gcGFyYW1zLmNoaXBMYWJlbCA/PyBpdGVtLmNoaXBMYWJlbDtcblxuICAgIHRoaXMuX2ZpbHRlckl0ZW1zLnVwZGF0ZVZpc2libGVJdGVtcygpO1xuICB9XG5cbiAgcHVibGljIGdldEl0ZW1WYWx1ZUNoYW5nZSQobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHwgbnVsbCB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXMuZmluZCgoaSkgPT4gaS5uYW1lID09PSBuYW1lKTtcblxuICAgIGlmIChpdGVtKSB7XG4gICAgICByZXR1cm4gaXRlbS52YWx1ZSRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtLm1vZGVsO1xuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlVmlzaWJpbGl0eShzdGF0ZTogYm9vbGVhbikge1xuXG4gICAgaWYgKHN0YXRlID09PSB0aGlzLnNob3dGaWx0ZXJNZW51KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFzdGF0ZSkge1xuICAgICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICAgICAgcmV0dXJuIHRoaXMuX2Rlc3Ryb3lGaWx0ZXJEcmF3ZXIoKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaGFzVmlzaWJsZUl0ZW1PclNvcnRpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9saXN0ZW5Fc2NCdXR0b24oKTtcblxuICAgIHRoaXMub3BlbmVkLmVtaXQoKTtcblxuICAgIHRoaXMuX2ZpbHRlck92ZXJsYXkub3BlbigpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyU2VhcmNoVGV4dChldmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc2VhcmNoVGV4dC5zZXRWYWx1ZSgnJyk7XG4gICAgdGhpcy5fZmlsdGVySXRlbXMua2V5d29yZEl0ZW0uY2xlYXIoKTtcbiAgICB0aGlzLnNlYXJjaFRleHRJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdCgpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5fZmlsdGVySXRlbXMudmFsdWVzQXNRdWVyeSgpO1xuICAgIHRoaXMuX3NvcnQgPSB0aGlzLl9maWx0ZXJJdGVtcy5nZXRTb3J0KCk7XG5cbiAgICBpZiAodGhpcy5jb25maWcuaW5pdCkge1xuICAgICAgdGhpcy5jb25maWcuaW5pdChkYXRhLCB0aGlzLl9zb3J0KTtcbiAgICB9XG5cbiAgICB0aGlzLl91cGRhdGVDaGlwc1Zpc2liaWxpdHkoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcihldmVudCA9IG51bGwpIHtcblxuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fZmlsdGVySXRlbXMuZmlsdGVyc0NsZWFyKCk7XG5cbiAgICBpZiAodGhpcy5jb25maWcuY2xlYXIpIHtcbiAgICAgIHRoaXMuY29uZmlnLmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIGZpbHRlciB3aW5kb3cgYW5kIGRvIGNoYW5nZSBjYWxsYmFja1xuICAgKi9cbiAgcHVibGljIHNlYXJjaChldmVudCkge1xuICAgIHRoaXMuY2hhbmdlVmlzaWJpbGl0eUNsaWNrKGZhbHNlLCBldmVudCk7XG4gIH1cblxuICBwdWJsaWMgcmVsb2FkKGV2ZW50ID0gbnVsbCkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9maWx0ZXJJdGVtcy52YWx1ZXNBc1F1ZXJ5KCk7XG5cbiAgICBpZiAodGhpcy5jb25maWcucmVsb2FkKSB7XG4gICAgICB0aGlzLmNvbmZpZy5yZWxvYWQoZGF0YSwgdGhpcy5fZmlsdGVySXRlbXMuZ2V0U29ydCgpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0SXRlbShuYW1lKTogQmFzZUl0ZW08YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXNcbiAgICAgIC5maW5kKChpdGVtKSA9PiBpdGVtLm5hbWUgPT09IG5hbWUpO1xuICB9XG5cbiAgcHVibGljIGZldGNoUXVlcnlQYXJhbXMoKTogdm9pZCB7XG4gICAgdGhpcy5fZXh0ZXJuYWxQYXJhbXMuZmV0Y2hRdWVyeVBhcmFtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGwgY2hhbmdlIGNhbGxiYWNrIGFuZCBhcHBseSBuZXcgZmlsdGVyIHZhbHVlc1xuICAgKi9cbiAgcHVibGljIGNoYW5nZSgpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5fZmlsdGVySXRlbXMudmFsdWVzQXNRdWVyeSgpO1xuICAgIGNvbnN0IHNvcnQgPSB0aGlzLl9maWx0ZXJJdGVtcy5nZXRTb3J0KCk7XG5cbiAgICBjb25zdCBzb3J0aW5nQ2hhbmdlZCA9ICgoIXNvcnQgfHwgIXRoaXMuX3NvcnQpICYmIHNvcnQgIT09IHRoaXMuX3NvcnQpXG4gICAgICB8fCAoc29ydCAmJiB0aGlzLl9zb3J0ICYmICFvYmplY3RzQXJlRXF1YWxzKHRoaXMuX3NvcnQsIHNvcnQpKTtcblxuICAgIGlmIChzb3J0aW5nQ2hhbmdlZCkge1xuICAgICAgdGhpcy5fc29ydCA9IHNvcnQ7XG5cbiAgICAgIGlmICh0aGlzLmNvbmZpZy5zb3J0Q2hhbmdlKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLnNvcnRDaGFuZ2UoZGF0YSwgc29ydCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnLmNoYW5nZSkge1xuICAgICAgdGhpcy5jb25maWcuY2hhbmdlKGRhdGEsIHNvcnQpO1xuICAgIH1cblxuICAgIHRoaXMuX3VwZGF0ZUNoaXBzVmlzaWJpbGl0eSgpO1xuXG4gICAgLy8gdmlzaWJpbGl0eSBmb3IgYWN0aW9ucyBjYW4gZGVwZW5kIG9uIGZpbHRlcnMgc3RhdGVcbiAgICB0aGlzLl9hY3Rpb25zLnVwZGF0ZUFjdGlvbnNWaXNpYmlsaXR5KCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGZpbHRlciBhY3Rpb25zIGNvbmZpZ1xuICAgKiBAcGFyYW0gYWN0aW9uc1xuICAgKi9cbiAgcHVibGljIHVwZGF0ZUFjdGlvbnMoYWN0aW9uczogRnNGaWx0ZXJBY3Rpb25bXSk6IHZvaWQge1xuICAgIHRoaXMuX2FjdGlvbnMuaW5pdEFjdGlvbnMoYWN0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogU2hvdyBcIkZpbHRlcnNcIiBidXR0b25cbiAgICovXG4gIHB1YmxpYyBzaG93RmlsdGVyc0J0bigpOiB2b2lkIHtcbiAgICB0aGlzLl9maWx0ZXJzQnRuVmlzaWJsZSQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRlIFwiRmlsdGVyc1wiIGJ1dHRvblxuICAgKi9cbiAgcHVibGljIGhpZGVGaWx0ZXJzQnRuKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZpbHRlcnNCdG5WaXNpYmxlJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93IFwiS2V5d29yZFwiIGZpZWxkIGlmIGl0IHByZXNlbnRcbiAgICovXG4gIHB1YmxpYyBzaG93S2V5d29yZEZpZWxkKCk6IHZvaWQge1xuICAgIHRoaXMuX2tleXdvcmRWaXNpYmxlJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhpZGUgXCJLZXl3b3JkXCIgZmllbGQgaWYgaXQgcHJlc2VudFxuICAgKi9cbiAgcHVibGljIGhpZGVLZXl3b3JkRmllbGQoKTogdm9pZCB7XG4gICAgdGhpcy5fa2V5d29yZFZpc2libGUkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdvIHRocm91Z2ggYWN0aW9ucyBhbmQgY2hlY2sgc2hvdygpIGNhbGxiYWNrIGFuZCB1cGRhdGUgdmlzaWJsZSBhY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlQWN0aW9uc1Zpc2liaWxpdHkoKTogdm9pZCB7XG4gICAgdGhpcy5fYWN0aW9ucy51cGRhdGVBY3Rpb25zVmlzaWJpbGl0eSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdvIHRocm91Z2ggYWN0aW9ucyBhbmQgY2hlY2sgZGlzYWJsZWQoKSBjYWxsYmFjayBhbmQgdXBkYXRlIGRpc2FibGVkIHN0YXRlXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlRGlzYWJsZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hY3Rpb25zLnVwZGF0ZURpc2FibGVkU3RhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRJdGVtcyhpdGVtczogSUZpbHRlckNvbmZpZ0l0ZW1bXSkge1xuICAgIHRoaXMuX2ZpbHRlckl0ZW1zLmRlc3Ryb3lJdGVtcygpO1xuXG4gICAgdGhpcy5jb25maWcuaXRlbXMgPSBpdGVtcztcbiAgICB0aGlzLl9maWx0ZXJJdGVtcy5zZXRDb25maWcodGhpcy5fY29uZmlnKTtcbiAgICB0aGlzLl9leHRlcm5hbFBhcmFtcy5pbml0SXRlbXMoKTtcbiAgICB0aGlzLl9zeW5jU2VhcmNoSW5wdXRXaXRoS2V5d29yZCgpO1xuICAgIHRoaXMuX2xpc3RlbktleXdvcmRJdGVtQ2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRGaWx0ZXJXaXRoQ29uZmlnKGNvbmZpZzogRmlsdGVyQ29uZmlnKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnKSB7XG4gICAgICB0aGlzLl9maWx0ZXJJdGVtcy5kZXN0cm95SXRlbXMoKTtcbiAgICB9XG5cbiAgICBjb25maWcgPSB7XG4gICAgICAuLi4odGhpcy5fZGVmYXVsdENvbmZpZyB8fCB7fSksXG4gICAgICAuLi5jb25maWcsXG4gICAgfTtcblxuICAgIHRoaXMuX2NvbmZpZyA9IG5ldyBGc0ZpbHRlckNvbmZpZyhjb25maWcpO1xuICAgIHRoaXMuX2FjdGlvbnMuc2V0Q29uZmlnKHRoaXMuX2NvbmZpZyk7XG4gICAgdGhpcy5fZmlsdGVySXRlbXMuc2V0Q29uZmlnKHRoaXMuX2NvbmZpZyk7XG4gICAgdGhpcy5fZXh0ZXJuYWxQYXJhbXMuc2V0Q29uZmlnKHRoaXMuX2NvbmZpZyk7XG5cbiAgICB0aGlzLl9zeW5jU2VhcmNoSW5wdXRXaXRoS2V5d29yZCgpO1xuXG4gICAgaWYgKCEhdGhpcy5jb25maWcucmVsb2FkV2hlbkNvbmZpZ0NoYW5nZWQpIHtcbiAgICAgIHRoaXMuY2hhbmdlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fbGlzdGVuS2V5d29yZEl0ZW1DbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVzdHJveUZpbHRlckRyYXdlcigpIHtcbiAgICB0aGlzLl9maWx0ZXJPdmVybGF5LmNsb3NlKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVXaW5kb3dXaWR0aCgpIHtcbiAgICB0aGlzLndpbmRvd0Rlc2t0b3AgPSB3aW5kb3cuaW5uZXJXaWR0aCA+IDEyMDA7XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5Fc2NCdXR0b24oKSB7XG4gICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBmcm9tRXZlbnQod2luZG93LCAna2V5dXAnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiBldmVudC5jb2RlID09PSAnRXNjYXBlJyksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuY2xvc2VkKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlVmlzaWJpbGl0eShmYWxzZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuSW5wdXRLZXlFdmVudHMoKSB7XG4gICAgaWYgKCF0aGlzLnNlYXJjaFRleHRJbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZnJvbUV2ZW50KHRoaXMuc2VhcmNoVGV4dElucHV0Lm5hdGl2ZUVsZW1lbnQsICdrZXlkb3duJylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICAgICAgZmlsdGVyKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIFsnRW50ZXInLCAnTnVtcGFkRW50ZXInLCAnRXNjYXBlJ10uaW5kZXhPZihldmVudC5jb2RlKSA+IC0xO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLl96b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcklucHV0RXZlbnQoZXZlbnQpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuV2luZG93UmVzaXplKCkge1xuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlV2luZG93V2lkdGgoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlbklucHV0Q2hhbmdlcygpIHtcbiAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuc2VhcmNoVGV4dC52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgIT09IHRoaXMuX2ZpbHRlckl0ZW1zLmtleXdvcmRJdGVtPy5tb2RlbDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5d29yZEl0ZW0gPSB0aGlzLl9maWx0ZXJJdGVtcy5rZXl3b3JkSXRlbTtcblxuICAgICAgICAgICAgaWYgKGtleXdvcmRJdGVtICYmIGtleXdvcmRJdGVtLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgICBrZXl3b3JkSXRlbS5tb2RlbCA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY1NlYXJjaElucHV0V2l0aEtleXdvcmQoKTogdm9pZCB7XG4gICAgY29uc3Qga2V5d29yZEl0ZW0gPSB0aGlzLl9maWx0ZXJJdGVtcy5rZXl3b3JkSXRlbTtcbiAgICBpZiAoa2V5d29yZEl0ZW0pIHtcbiAgICAgIHRoaXMuc2VhcmNoVGV4dC5zZXRWYWx1ZShrZXl3b3JkSXRlbS5tb2RlbCk7XG4gICAgICB0aGlzLnNlYXJjaFBsYWNlaG9sZGVyID0ga2V5d29yZEl0ZW0ubGFiZWwgYXMgc3RyaW5nIHx8ICdTZWFyY2gnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlbktleXdvcmRJdGVtQ2xlYXIoKSB7XG4gICAgdGhpcy5fZmlsdGVySXRlbXNcbiAgICAgIC5rZXl3b3JkSXRlbVxuICAgICAgPy5jbGVhciRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZmlsdGVySXRlbXMua2V5d29yZEl0ZW0uZGVzdHJveSQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoVGV4dC5zZXRWYWx1ZSgnJyk7XG4gICAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuSW50ZXJuYWxJdGVtc0NoYW5nZSgpIHtcbiAgICB0aGlzLl9maWx0ZXJJdGVtc1xuICAgICAgLml0ZW1zQ2hhbmdlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jaGFuZ2UoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdE92ZXJsYXkoKSB7XG4gICAgdGhpcy5fZmlsdGVyT3ZlcmxheS5zZXRDbGVhckZuKHRoaXMuY2xlYXIuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5fZmlsdGVyT3ZlcmxheS5zZXREb25lRm4odGhpcy5oaWRlLmJpbmQodGhpcykpO1xuICB9XG5cbiAgLy8gV2UgbWF5IG5lZWQgc29tZSB0aW1lIHRvIHJlY2lldmUgZXh0ZXJuYWwgcGFyYW1zIGFuZCBhZnRlciB0aGF0IHJlYWR5IGNhbiBiZSBlbWl0dGVkXG4gIHByaXZhdGUgX2xpc3RlbldoZW5GaWx0ZXJSZWFkeSgpIHtcbiAgICBjb21iaW5lTGF0ZXN0KFxuICAgICAgW1xuICAgICAgICB0aGlzLl9leHRlcm5hbFBhcmFtcy5wZW5kaW5nJCxcbiAgICAgICAgdGhpcy5pdGVtc1JlYWR5JCxcbiAgICAgIF0pXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChbcGVuZGluZ1BhcmFtcywgaXRlbXNSZWFkeV0pID0+ICFwZW5kaW5nUGFyYW1zICYmIGl0ZW1zUmVhZHkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgICB0aGlzLl9zeW5jU2VhcmNoSW5wdXRXaXRoS2V5d29yZCgpO1xuXG4gICAgICAgIHRoaXMucmVhZHkuZW1pdCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVDaGlwc1Zpc2liaWxpdHkoKSB7XG4gICAgY29uc3QgaGFzRmlsdGVyQ2hpcHMgPSB0aGlzLl9maWx0ZXJJdGVtcy5pdGVtc1xuICAgICAgLnNvbWUoKGl0ZW06IEJhc2VJdGVtPGFueT4pID0+IHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaXNDaGlwVmlzaWJsZTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5faGFzRmlsdGVyQ2hpcHMkLm5leHQoaGFzRmlsdGVyQ2hpcHMpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNvbnRhaW5lclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNLZXl3b3JkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWtleXdvcmRcIj5cbiAgICAgICAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgcm9sZT1cInByZXNlbnRhdGlvblwiICpuZ0lmPVwia2V5d29yZFZpc2libGUkIHwgYXN5bmNcIj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgW2Zsb2F0TGFiZWxdPVwiJ25ldmVyJ1wiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJmb3JtLWZpZWxkLXBhZGxlc3NcIiBuZ0NsYXNzPVwic2VhcmNoXCI+XG4gICAgICAgICAgICA8c3BhbiBtYXRQcmVmaXg+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRQcmVmaXg+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAjc2VhcmNoVGV4dElucHV0XG4gICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hUZXh0XCJcbiAgICAgICAgICAgICAgbmFtZT1cImZpbHRlci1pbnB1dFwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJmaWx0ZXJJbnB1dEV2ZW50KCRldmVudClcIj5cblxuICAgICAgICAgICAgPGRpdiBtYXRTdWZmaXggKm5nSWY9XCJzZWFyY2hUZXh0LnZhbHVlICYmIHNob3dGaWx0ZXJJbnB1dCAmJiBjb25maWcuY2xlYXJcIj5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b24gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VhcmNoVGV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNsZWFyXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmNsZWFyPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IG1hdFN1ZmZpeD5cbiAgICAgICAgICAgICAgPGEgXG4gICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWxvYWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInJlbG9hZFwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZy5yZWxvYWRcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+cmVmcmVzaDwvbWF0LWljb24+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiBjbGFzcz1cImZpbHRlci1hY3Rpb25zXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzVmlzaWJsZUl0ZW1PclNvcnRpbmcgJiYgZmlsdGVyc0J0blZpc2libGUkIHwgYXN5bmNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJmaWx0ZXJzLWJ1dHRvblwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICdtYXQtcmFpc2VkLWJ1dHRvbic6IGNvbmZpZy5idXR0b24uc3R5bGUgPT09ICdyYWlzZWQnLFxuICAgICAgICAgICAgICAnbWF0LWZsYXQtYnV0dG9uJzogY29uZmlnLmJ1dHRvbi5zdHlsZSA9PT0gJ2ZsYXQnLFxuICAgICAgICAgICAgICAnbWF0LXN0cm9rZWQtYnV0dG9uJzogY29uZmlnLmJ1dHRvbi5zdHlsZSA9PT0gJ3N0cm9rZWQnLFxuICAgICAgICAgICAgICAnbWF0LWJ1dHRvbic6IGNvbmZpZy5idXR0b24uc3R5bGUgPT09ICdiYXNpYycsXG4gICAgICAgICAgICAgICdtYXQtaWNvbi1idXR0b24nOiBjb25maWcuYnV0dG9uLnN0eWxlID09PSAnaWNvbidcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVZpc2liaWxpdHlDbGljayghc2hvd0ZpbHRlck1lbnUsICRldmVudClcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbY29sb3JdPVwiY29uZmlnLmJ1dHRvbi5jb2xvclwiPlxuICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImNvbmZpZy5idXR0b24uaWNvblwiPnt7Y29uZmlnLmJ1dHRvbi5pY29ufX08L21hdC1pY29uPlxuICAgICAgICAgIHt7IGNvbmZpZy5idXR0b24ubGFiZWwgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgXG4gICAgICA8ZnMtZmlsdGVyLWFjdGlvbnNcbiAgICAgICAgKm5nSWY9XCJhY3Rpb25zVmlzaWJsZSQgfCBhc3luY1wiXG4gICAgICAgIFthY3Rpb25zXT1cImFjdGlvbnMkIHwgYXN5bmNcIlxuICAgICAgICBba2ViYWJBY3Rpb25zXT1cIm1lbnVBY3Rpb25zJCB8IGFzeW5jXCI+XG4gICAgICA8L2ZzLWZpbHRlci1hY3Rpb25zPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZpbHRlci1zdGF0dXMtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImZpbHRlci1zdGF0dXNcIiAqbmdJZj1cInN0YXR1c0JhclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0JhclwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxmcy1maWx0ZXItY2hpcHNcbiAgICAgICpuZ0lmPVwiY29uZmlnLmNoaXBzICYmIGhhc0ZpbHRlckNoaXBzJCB8IGFzeW5jXCJcbiAgICAgIGNsYXNzPVwiZmlsdGVyLWNoaXBzXCJcbiAgICAgIFtmaWx0ZXJzXT1cIml0ZW1zXCI+XG4gICAgPC9mcy1maWx0ZXItY2hpcHM+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
|
|
@@ -5,5 +5,7 @@ export var ActionType;
|
|
|
5
5
|
ActionType["Icon"] = "icon";
|
|
6
6
|
ActionType["Fab"] = "fab";
|
|
7
7
|
ActionType["MiniFab"] = "mini-fab";
|
|
8
|
+
ActionType["Flat"] = "flat";
|
|
9
|
+
ActionType["Stroked"] = "stroked";
|
|
8
10
|
})(ActionType || (ActionType = {}));
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXR5cGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvZW51bXMvYWN0aW9uLXR5cGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxVQVFYO0FBUkQsV0FBWSxVQUFVO0lBQ3BCLDZCQUFlLENBQUE7SUFDZiwrQkFBaUIsQ0FBQTtJQUNqQiwyQkFBYSxDQUFBO0lBQ2IseUJBQVcsQ0FBQTtJQUNYLGtDQUFvQixDQUFBO0lBQ3BCLDJCQUFhLENBQUE7SUFDYixpQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBUlcsVUFBVSxLQUFWLFVBQVUsUUFRckIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBBY3Rpb25UeXBlIHtcbiAgQmFzaWMgPSAnYmFzaWMnLFxuICBSYWlzZWQgPSAncmFpc2VkJyxcbiAgSWNvbiA9ICdpY29uJyxcbiAgRmFiID0gJ2ZhYicsXG4gIE1pbmlGYWIgPSAnbWluaS1mYWInLFxuICBGbGF0ID0gJ2ZsYXQnLFxuICBTdHJva2VkID0gJ3N0cm9rZWQnLFxufVxuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export var ButtonStyle;
|
|
2
|
+
(function (ButtonStyle) {
|
|
3
|
+
ButtonStyle["Basic"] = "basic";
|
|
4
|
+
ButtonStyle["Raised"] = "raised";
|
|
5
|
+
ButtonStyle["Icon"] = "icon";
|
|
6
|
+
ButtonStyle["Fab"] = "fab";
|
|
7
|
+
ButtonStyle["MiniFab"] = "mini-fab";
|
|
8
|
+
ButtonStyle["Flat"] = "flat";
|
|
9
|
+
ButtonStyle["Stroked"] = "stroked";
|
|
10
|
+
})(ButtonStyle || (ButtonStyle = {}));
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXN0eWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9lbnVtcy9idXR0b24tc3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksV0FRWDtBQVJELFdBQVksV0FBVztJQUNyQiw4QkFBZSxDQUFBO0lBQ2YsZ0NBQWlCLENBQUE7SUFDakIsNEJBQWEsQ0FBQTtJQUNiLDBCQUFXLENBQUE7SUFDWCxtQ0FBb0IsQ0FBQTtJQUNwQiw0QkFBYSxDQUFBO0lBQ2Isa0NBQW1CLENBQUE7QUFDckIsQ0FBQyxFQVJXLFdBQVcsS0FBWCxXQUFXLFFBUXRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQnV0dG9uU3R5bGUge1xuICBCYXNpYyA9ICdiYXNpYycsXG4gIFJhaXNlZCA9ICdyYWlzZWQnLFxuICBJY29uID0gJ2ljb24nLFxuICBGYWIgPSAnZmFiJyxcbiAgTWluaUZhYiA9ICdtaW5pLWZhYicsXG4gIEZsYXQgPSAnZmxhdCcsXG4gIFN0cm9rZWQgPSAnc3Ryb2tlZCcsXG59XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './action-mode.enum';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './action-type.enum';
|
|
3
|
+
export * from './button-style';
|
|
3
4
|
export * from './item-date-mode.enum';
|
|
5
|
+
export * from './item-type.enum';
|
|
4
6
|
export * from './picker-view-type.enum';
|
|
5
|
-
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2VudW1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLW1vZGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2l0ZW0tdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vaXRlbS1kYXRlLW1vZGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL3BpY2tlci12aWV3LXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2l0ZW0tZGF0ZS1tb2RlLmVudW0nO1xuXG4iXX0=
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2VudW1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24tbW9kZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi1zdHlsZSc7XG5leHBvcnQgKiBmcm9tICcuL2l0ZW0tZGF0ZS1tb2RlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9pdGVtLXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL3BpY2tlci12aWV3LXR5cGUuZW51bSc7XG5cbiJdfQ==
|