ontimize-web-ngx 15.0.0-beta.5 → 15.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/form/navigation/o-form.navigation.class.mjs +5 -2
- package/esm2020/lib/components/image/o-image.component.mjs +3 -3
- package/esm2020/lib/components/index.mjs +2 -1
- package/esm2020/lib/components/tree/header/index.mjs +2 -0
- package/esm2020/lib/components/tree/header/tree-menu/o-tree-menu.component.mjs +33 -0
- package/esm2020/lib/components/tree/index.mjs +5 -0
- package/esm2020/lib/components/tree/o-tree-dao.service.mjs +43 -0
- package/esm2020/lib/components/tree/o-tree.component.mjs +523 -0
- package/esm2020/lib/components/tree/o-tree.datasource.mjs +79 -0
- package/esm2020/lib/components/tree/o-tree.module.mjs +24 -0
- package/esm2020/lib/components/tree/tree-node/tree-node.component.mjs +49 -0
- package/esm2020/lib/config/o-modules.mjs +8 -6
- package/esm2020/lib/i18n/i18n.mjs +6 -3
- package/esm2020/lib/ontimize-web-ngx.module.mjs +4 -3
- package/esm2020/lib/services/permissions/o-permissions.module.mjs +1 -3
- package/esm2020/lib/services/permissions/permissions.service.mjs +18 -8
- package/esm2020/lib/services/state/o-tree-component-state.class.mjs +4 -0
- package/esm2020/lib/services/state/o-tree-component-state.service.mjs +50 -0
- package/fesm2015/ontimize-web-ngx.mjs +6233 -5518
- package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
- package/fesm2020/ontimize-web-ngx.mjs +10871 -10160
- package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/components/tree/header/index.d.ts +1 -0
- package/lib/components/tree/header/tree-menu/o-tree-menu.component.d.ts +13 -0
- package/lib/components/tree/index.d.ts +4 -0
- package/lib/components/tree/o-tree-dao.service.d.ts +18 -0
- package/lib/components/tree/o-tree.component.d.ts +111 -0
- package/lib/components/tree/o-tree.datasource.d.ts +22 -0
- package/lib/components/tree/o-tree.module.d.ts +14 -0
- package/lib/components/tree/tree-node/tree-node.component.d.ts +14 -0
- package/lib/i18n/i18n.d.ts +3 -0
- package/lib/ontimize-web-ngx.module.d.ts +2 -1
- package/lib/services/state/o-tree-component-state.class.d.ts +3 -0
- package/lib/services/state/o-tree-component-state.service.d.ts +13 -0
- package/package.json +1 -1
- package/theme.scss +69 -69
- package/theming/ontimize-style-v8.scss +2 -1
- package/theming/styles/density.scss +6 -2
- package/theming/themes/ontimize-black-yellow.scss +13 -3
|
@@ -39,14 +39,21 @@ export class PermissionsService {
|
|
|
39
39
|
}
|
|
40
40
|
getUserPermissionsAsPromise() {
|
|
41
41
|
const self = this;
|
|
42
|
-
return new Promise((resolve
|
|
42
|
+
return new Promise((resolve) => {
|
|
43
43
|
self.permissions = {};
|
|
44
44
|
if (Util.isDefined(self.ontimizePermissionsConfig)) {
|
|
45
45
|
self.configureService();
|
|
46
|
-
self.queryPermissions().subscribe(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
const subscription = self.queryPermissions().subscribe({
|
|
47
|
+
next: () => {
|
|
48
|
+
resolve(true);
|
|
49
|
+
},
|
|
50
|
+
error: (err) => {
|
|
51
|
+
console.error(err);
|
|
52
|
+
resolve(true);
|
|
53
|
+
},
|
|
54
|
+
complete: () => {
|
|
55
|
+
subscription.unsubscribe();
|
|
56
|
+
}
|
|
50
57
|
});
|
|
51
58
|
}
|
|
52
59
|
else {
|
|
@@ -190,8 +197,11 @@ export class PermissionsService {
|
|
|
190
197
|
}
|
|
191
198
|
}
|
|
192
199
|
PermissionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PermissionsService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
193
|
-
PermissionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PermissionsService });
|
|
200
|
+
PermissionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PermissionsService, providedIn: 'root' });
|
|
194
201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PermissionsService, decorators: [{
|
|
195
|
-
type: Injectable
|
|
202
|
+
type: Injectable,
|
|
203
|
+
args: [{
|
|
204
|
+
providedIn: 'root'
|
|
205
|
+
}]
|
|
196
206
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9wZXJtaXNzaW9ucy9wZXJtaXNzaW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVFwRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRzVFLE1BQU0sT0FBTyxrQkFBa0I7SUFPN0IsWUFBc0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUN0QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRWxFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsRUFBRTtZQUN0RCxJQUFJLENBQUMseUJBQXlCLEdBQUcsU0FBUyxDQUFDLHdCQUF3QixDQUFDO1NBQ3JFO0lBQ0gsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixNQUFNLGNBQWMsR0FBUSwwQkFBMEIsQ0FBQztRQUN2RCxJQUFJO1lBQ0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxD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QUFPLENBQUM7Z0JBQzdCLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUM5QjtpQkFBTTtnQkFDTCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ25CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRVMsMEJBQTBCLENBQUMsWUFBbUMsRUFBRSxZQUFtQztRQUMzRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDbEUsT0FBTyxZQUFZLElBQUksWUFBWSxDQUFDO1NBQ3JDO1FBQ0QsTUFBTSxNQUFNLEdBQUc7WUFDYixPQUFPLEVBQUUsWUFBWSxDQUFDLE9BQU87WUFDN0IsT0FBTyxFQUFFLFlBQVksQ0FBQyxPQUFPO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDO1NBQzVFLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsNkJBQTZCLENBQUMsWUFBb0I7UUFDaEQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLFlBQVksQ0FBQyxDQUFDO1FBQ3JHLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQztJQUNsRSxDQUFDOzsrR0F2TVUsa0JBQWtCO21IQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzaGFyZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlnL2FwcC1jb25maWcnO1xuaW1wb3J0IHsgT0NvbXBvbmVudFBlcm1pc3Npb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMvby1jb21wb25lbnQtcGVybWlzc2lvbnMudHlwZSc7XG5pbXBvcnQgeyBPRm9ybVBlcm1pc3Npb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMvby1mb3JtLXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgT1Blcm1pc3Npb25zRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzL28tcGVybWlzc2lvbnMtZGVmaW5pdGlvbi50eXBlJztcbmltcG9ydCB7IE9QZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzL28tcGVybWlzc2lvbnMudHlwZSc7XG5pbXBvcnQgeyBPUm91dGVQZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzL28tcm91dGUtcGVybWlzc2lvbnMudHlwZSc7XG5pbXBvcnQgeyBPVGFibGVNZW51UGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi90eXBlcy90YWJsZS9vLXRhYmxlLW1lbnUtcGVybWlzc2lvbnMudHlwZSc7XG5pbXBvcnQgeyBPVGFibGVQZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzL3RhYmxlL28tdGFibGUtcGVybWlzc2lvbnMudHlwZSc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9udGltaXplRUVQZXJtaXNzaW9uc1NlcnZpY2UgfSBmcm9tICcuL29udGltaXplLWVlLXBlcm1pc3Npb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgT250aW1pemVQZXJtaXNzaW9uc1NlcnZpY2UgfSBmcm9tICcuL29udGltaXplLXBlcm1pc3Npb25zLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbnNTZXJ2aWNlIHtcblxuICBwcm90ZWN0ZWQgcGVybWlzc2lvbnNTZXJ2aWNlOiBhbnk7XG4gIHByb3RlY3RlZCBvbnRpbWl6ZVBlcm1pc3Npb25zQ29uZmlnOiBhbnk7XG5cbiAgcHJvdGVjdGVkIHBlcm1pc3Npb25zOiBPUGVybWlzc2lvbnNEZWZpbml0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBjb25zdCBhcHBDb25maWcgPSB0aGlzLmluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChhcHBDb25maWcucGVybWlzc2lvbnNDb25maWd1cmF0aW9uKSkge1xuICAgICAgdGhpcy5vbnRpbWl6ZVBlcm1pc3Npb25zQ29uZmlnID0gYXBwQ29uZmlnLnBlcm1pc3Npb25zQ29uZmlndXJhdGlvbjtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uZmlndXJlU2VydmljZSgpIHtcbiAgICBjb25zdCBsb2FkaW5nU2VydmljZTogYW55ID0gT250aW1pemVQZXJtaXNzaW9uc1NlcnZpY2U7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQobG9hZGluZ1NlcnZpY2UpO1xuICAgICAgaWYgKFV0aWwuaXNQZXJtaXNzaW9uc1NlcnZpY2UodGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UpKSB7XG4gICAgICAgIGlmICh0aGlzLnBlcm1pc3Npb25zU2VydmljZSBpbnN0YW5jZW9mIE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlKSB7XG4gICAgICAgICAgKHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlIGFzIE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlKS5jb25maWd1cmVTZXJ2aWNlKHRoaXMub250aW1pemVQZXJtaXNzaW9uc0NvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UgaW5zdGFuY2VvZiBPbnRpbWl6ZUVFUGVybWlzc2lvbnNTZXJ2aWNlKSB7XG4gICAgICAgICAgKHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlIGFzIE9udGltaXplRUVQZXJtaXNzaW9uc1NlcnZpY2UpLmNvbmZpZ3VyZVNlcnZpY2UodGhpcy5vbnRpbWl6ZVBlcm1pc3Npb25zQ29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgcmVzdGFydCgpIHtcbiAgICB0aGlzLnBlcm1pc3Npb25zID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgaGFzUGVybWlzc2lvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbnMgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldFVzZXJQZXJtaXNzaW9uc0FzUHJvbWlzZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IGFueSwgcmVqZWN0OiBhbnkpID0+IHtcbiAgICAgIHNlbGYucGVybWlzc2lvbnMgPSB7fTtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChzZWxmLm9udGltaXplUGVybWlzc2lvbnNDb25maWcpKSB7XG4gICAgICAgIHNlbGYuY29uZmlndXJlU2VydmljZSgpO1xuICAgICAgICBzZWxmLnF1ZXJ5UGVybWlzc2lvbnMoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcXVlcnlQZXJtaXNzaW9ucygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGNvbnN0IGRhdGFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4gPSBuZXcgT2JzZXJ2YWJsZShpbm5lck9ic2VydmVyID0+IHtcbiAgICAgIHNlbGYucGVybWlzc2lvbnNTZXJ2aWNlLmxvYWRQZXJtaXNzaW9ucygpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgc2VsZi5wZXJtaXNzaW9ucyA9IHJlcztcbiAgICAgICAgaW5uZXJPYnNlcnZlci5uZXh0KHJlcyk7XG4gICAgICB9LCAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignW1Blcm1pc3Npb25zLnF1ZXJ5UGVybWlzc2lvbnNdOiBlcnJvcicsIGVycik7XG4gICAgICAgIGlubmVyT2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgIH0sICgpID0+IHtcbiAgICAgICAgaW5uZXJPYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGFPYnNlcnZhYmxlLnBpcGUoc2hhcmUoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0UGVybWlzc2lvbklkRnJvbUFjdFJvdXRlKGFjdFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IHN0cmluZyB7XG4gICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuICAgIGxldCBzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCA9IGFjdFJvdXRlLnNuYXBzaG90O1xuICAgIHJlc3VsdCA9ICgoc25hcHNob3QuZGF0YSB8fCB7fSlbJ29QZXJtaXNzaW9uJ10gfHwge30pWydwZXJtaXNzaW9uSWQnXTtcbiAgICB3aGlsZSAoVXRpbC5pc0RlZmluZWQoc25hcHNob3QuZmlyc3RDaGlsZCkgJiYgIVV0aWwuaXNEZWZpbmVkKHJlc3VsdCkpIHtcbiAgICAgIHNuYXBzaG90ID0gc25hcHNob3QuZmlyc3RDaGlsZDtcbiAgICAgIHJlc3VsdCA9ICgoc25hcHNob3QuZGF0YSB8fCB7fSlbJ29QZXJtaXNzaW9uJ10gfHwge30pWydwZXJtaXNzaW9uSWQnXTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb21wb25lbnRQZXJtaXNzaW9uc1VzaW5nUm91dGUoYXR0cjogc3RyaW5nLCBhY3RSb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBPQ29tcG9uZW50UGVybWlzc2lvbnMge1xuICAgIGxldCByZXN1bHQ6IE9Db21wb25lbnRQZXJtaXNzaW9ucztcbiAgICBjb25zdCBwZXJtaXNzaW9uSWQgPSB0aGlzLmdldFBlcm1pc3Npb25JZEZyb21BY3RSb3V0ZShhY3RSb3V0ZSk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHBlcm1pc3Npb25JZCkpIHtcbiAgICAgIGNvbnN0IHJvdXRlUGVybWlzc2lvbnM6IE9Sb3V0ZVBlcm1pc3Npb25zID0gKHRoaXMucGVybWlzc2lvbnMucm91dGVzIHx8IFtdKS5maW5kKHJvdXRlID0+IHJvdXRlLnBlcm1pc3Npb25JZCA9PT0gcGVybWlzc2lvbklkKTtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChyb3V0ZVBlcm1pc3Npb25zKSkge1xuICAgICAgICByZXN1bHQgPSAocm91dGVQZXJtaXNzaW9ucy5jb21wb25lbnRzIHx8IFtdKS5maW5kKGNvbXAgPT4gY29tcC5hdHRyID09PSBhdHRyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRPQ29tcG9uZW50UGVybWlzc2lvbnMoYXR0cjogc3RyaW5nLCBhY3RSb3V0ZTogQWN0aXZhdGVkUm91dGUsIHNlbGVjdG9yOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5wZXJtaXNzaW9ucykpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGxldCByb3V0ZVBlcm1pc3Npb25zOiBhbnk7XG4gICAgY29uc3QgZ2VuZXJpY1JvdXRlUGVybTogT0NvbXBvbmVudFBlcm1pc3Npb25zID0gdGhpcy5nZXRDb21wb25lbnRQZXJtaXNzaW9uc1VzaW5nUm91dGUoYXR0ciwgYWN0Um91dGUpO1xuICAgIGlmIChnZW5lcmljUm91dGVQZXJtICYmIGdlbmVyaWNSb3V0ZVBlcm0uc2VsZWN0b3IgPT09IHNlbGVjdG9yKSB7XG4gICAgICByb3V0ZVBlcm1pc3Npb25zID0gZ2VuZXJpY1JvdXRlUGVybTtcbiAgICB9XG4gICAgbGV0IGNvbXBQZXJtaXNzaW9uczogYW55O1xuICAgIGNvbnN0IGF0dHJQZXJtaXNzaW9ucyA9ICh0aGlzLnBlcm1pc3Npb25zLmNvbXBvbmVudHMgfHwgW10pLmZpbmQoY29tcCA9PiBjb21wLmF0dHIgPT09IGF0dHIpO1xuICAgIGlmIChhdHRyUGVybWlzc2lvbnMgJiYgYXR0clBlcm1pc3Npb25zLnNlbGVjdG9yID09PSBzZWxlY3Rvcikge1xuICAgICAgY29tcFBlcm1pc3Npb25zID0gYXR0clBlcm1pc3Npb25zO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgcm91dGU6IHJvdXRlUGVybWlzc2lvbnMsXG4gICAgICBjb21wb25lbnQ6IGNvbXBQZXJtaXNzaW9uc1xuICAgIH07XG4gIH1cblxuICBnZXRUYWJsZVBlcm1pc3Npb25zKGF0dHI6IHN0cmluZywgYWN0Um91dGU6IEFjdGl2YXRlZFJvdXRlKTogT1RhYmxlUGVybWlzc2lvbnMge1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5wZXJtaXNzaW9ucykpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHBlcm0gPSB0aGlzLmdldE9Db21wb25lbnRQZXJtaXNzaW9ucyhhdHRyLCBhY3RSb3V0ZSwgJ28tdGFibGUnKTtcbiAgICBjb25zdCByb3V0ZVBlcm06IE9UYWJsZVBlcm1pc3Npb25zID0gPE9UYWJsZVBlcm1pc3Npb25zPnBlcm0ucm91dGU7XG4gICAgY29uc3QgY29tcFBlcm06IE9UYWJsZVBlcm1pc3Npb25zID0gPE9UYWJsZVBlcm1pc3Npb25zPnBlcm0uY29tcG9uZW50O1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQocm91dGVQZXJtKSB8fCAhVXRpbC5pc0RlZmluZWQoY29tcFBlcm0pKSB7XG4gICAgICByZXR1cm4gY29tcFBlcm0gfHwgcm91dGVQZXJtO1xuICAgIH1cbiAgICBjb25zdCBwZXJtaXNzaW9uczogT1RhYmxlUGVybWlzc2lvbnMgPSB7XG4gICAgICBzZWxlY3RvcjogJ28tdGFibGUnLFxuICAgICAgYXR0cjogcm91dGVQZXJtLmF0dHIsXG4gICAgICBtZW51OiB0aGlzLm1lcmdlT1RhYmxlTWVudVBlcm1pc3Npb25zKGNvbXBQZXJtLm1lbnUsIHJvdXRlUGVybS5tZW51KSxcbiAgICAgIGNvbHVtbnM6IHRoaXMubWVyZ2VPUGVybWlzc2lvbnNBcnJheXMoY29tcFBlcm0uY29sdW1ucywgcm91dGVQZXJtLmNvbHVtbnMpLFxuICAgICAgYWN0aW9uczogdGhpcy5tZXJnZU9QZXJtaXNzaW9uc0FycmF5cyhjb21wUGVybS5hY3Rpb25zLCByb3V0ZVBlcm0uYWN0aW9ucyksXG4gICAgICBjb250ZXh0TWVudTogdGhpcy5tZXJnZU9QZXJtaXNzaW9uc0FycmF5cyhjb21wUGVybS5jb250ZXh0TWVudSwgcm91dGVQZXJtLmNvbnRleHRNZW51KVxuICAgIH07XG4gICAgcmV0dXJuIHBlcm1pc3Npb25zO1xuICB9XG5cbiAgZ2V0Rm9ybVBlcm1pc3Npb25zKGF0dHI6IHN0cmluZywgYWN0Um91dGU6IEFjdGl2YXRlZFJvdXRlKTogT0Zvcm1QZXJtaXNzaW9ucyB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZCh0aGlzLnBlcm1pc3Npb25zKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgcGVybSA9IHRoaXMuZ2V0T0NvbXBvbmVudFBlcm1pc3Npb25zKGF0dHIsIGFjdFJvdXRlLCAnby1mb3JtJyk7XG4gICAgY29uc3Qgcm91dGVQZXJtOiBPRm9ybVBlcm1pc3Npb25zID0gPE9Gb3JtUGVybWlzc2lvbnM+cGVybS5yb3V0ZTtcbiAgICBjb25zdCBjb21wUGVybTogT0Zvcm1QZXJtaXNzaW9ucyA9IDxPRm9ybVBlcm1pc3Npb25zPnBlcm0uY29tcG9uZW50O1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQocm91dGVQZXJtKSB8fCAhVXRpbC5pc0RlZmluZWQoY29tcFBlcm0pKSB7XG4gICAgICByZXR1cm4gY29tcFBlcm0gfHwgcm91dGVQZXJtO1xuICAgIH1cbiAgICBjb25zdCBwZXJtaXNzaW9uczogT0Zvcm1QZXJtaXNzaW9ucyA9IHtcbiAgICAgIHNlbGVjdG9yOiAnby1mb3JtJyxcbiAgICAgIGF0dHI6IHJvdXRlUGVybS5hdHRyLFxuICAgICAgY29tcG9uZW50czogdGhpcy5tZXJnZU9QZXJtaXNzaW9uc0FycmF5cyhjb21wUGVybS5jb21wb25lbnRzLCByb3V0ZVBlcm0uY29tcG9uZW50cyksXG4gICAgICBhY3Rpb25zOiB0aGlzLm1lcmdlT1Blcm1pc3Npb25zQXJyYXlzKGNvbXBQZXJtLmFjdGlvbnMsIHJvdXRlUGVybS5hY3Rpb25zKVxuICAgIH07XG4gICAgcmV0dXJuIHBlcm1pc3Npb25zO1xuICB9XG5cbiAgZ2V0TWVudVBlcm1pc3Npb25zKGF0dHI6IHN0cmluZyk6IE9QZXJtaXNzaW9ucyB7XG4gICAgbGV0IHBlcm1pc3Npb25zO1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5wZXJtaXNzaW9ucykpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGFsbE1lbnU6IE9QZXJtaXNzaW9uc1tdID0gdGhpcy5wZXJtaXNzaW9ucy5tZW51IHx8IFtdO1xuXG4gICAgcGVybWlzc2lvbnMgPSBhbGxNZW51LmZpbmQoY29tcCA9PiBjb21wLmF0dHIgPT09IGF0dHIpO1xuXG4gICAgcmV0dXJuIHBlcm1pc3Npb25zO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1lcmdlT1Blcm1pc3Npb25zQXJyYXlzKHBlcm1pc3Npb25zQTogT1Blcm1pc3Npb25zW10sIHBlcm1pc3Npb25zQjogT1Blcm1pc3Npb25zW10pOiBPUGVybWlzc2lvbnNbXSB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZChwZXJtaXNzaW9uc0EpIHx8ICFVdGlsLmlzRGVmaW5lZChwZXJtaXNzaW9uc0IpKSB7XG4gICAgICByZXR1cm4gcGVybWlzc2lvbnNBIHx8IHBlcm1pc3Npb25zQjtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmFzc2lnbihbXSwgcGVybWlzc2lvbnNBKTtcbiAgICBwZXJtaXNzaW9uc0IuZm9yRWFjaCgocGVybTogT1Blcm1pc3Npb25zKSA9PiB7XG4gICAgICBjb25zdCBmb3VuZCA9IHJlc3VsdC5maW5kKHIgPT4gci5hdHRyID09PSBwZXJtLmF0dHIpO1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIGZvdW5kLnZpc2libGUgPSBwZXJtLnZpc2libGU7XG4gICAgICAgIGZvdW5kLmVuYWJsZWQgPSBwZXJtLmVuYWJsZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQucHVzaChwZXJtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJvdGVjdGVkIG1lcmdlT1RhYmxlTWVudVBlcm1pc3Npb25zKHBlcm1pc3Npb25zQTogT1RhYmxlTWVudVBlcm1pc3Npb25zLCBwZXJtaXNzaW9uc0I6IE9UYWJsZU1lbnVQZXJtaXNzaW9ucyk6IE9UYWJsZU1lbnVQZXJtaXNzaW9ucyB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZChwZXJtaXNzaW9uc0EpIHx8ICFVdGlsLmlzRGVmaW5lZChwZXJtaXNzaW9uc0IpKSB7XG4gICAgICByZXR1cm4gcGVybWlzc2lvbnNBIHx8IHBlcm1pc3Npb25zQjtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgdmlzaWJsZTogcGVybWlzc2lvbnNCLnZpc2libGUsXG4gICAgICBlbmFibGVkOiBwZXJtaXNzaW9uc0IuZW5hYmxlZCxcbiAgICAgIGl0ZW1zOiB0aGlzLm1lcmdlT1Blcm1pc3Npb25zQXJyYXlzKHBlcm1pc3Npb25zQS5pdGVtcywgcGVybWlzc2lvbnNCLml0ZW1zKVxuICAgIH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGlzUGVybWlzc2lvbklkUm91dGVSZXN0cmljdGVkKHBlcm1pc3Npb25JZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgcm91dGVEYXRhID0gKHRoaXMucGVybWlzc2lvbnMucm91dGVzIHx8IFtdKS5maW5kKHJvdXRlID0+IHJvdXRlLnBlcm1pc3Npb25JZCA9PT0gcGVybWlzc2lvbklkKTtcbiAgICByZXR1cm4gVXRpbC5pc0RlZmluZWQocm91dGVEYXRhKSAmJiByb3V0ZURhdGEuZW5hYmxlZCA9PT0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9wZXJtaXNzaW9ucy9wZXJtaXNzaW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVFwRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBSzVFLE1BQU0sT0FBTyxrQkFBa0I7SUFPN0IsWUFBc0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUN0QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRWxFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsRUFBRTtZQUN0RCxJQUFJLENBQUMseUJBQXlCLEdBQUcsU0FBUyxDQUFDLHdCQUF3QixDQUFDO1NBQ3JFO0lBQ0gsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixNQUFNLGNBQWMsR0FBUSwwQkFBMEIsQ0FBQztRQUN2RCxJQUFJO1lBQ0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxD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QUFPLEtBQUssS0FBSyxDQUFDO0lBQ2xFLENBQUM7OytHQS9NVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2hhcmUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZy9hcHAtY29uZmlnJztcbmltcG9ydCB7IE9Db21wb25lbnRQZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzL28tY29tcG9uZW50LXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgT0Zvcm1QZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzL28tZm9ybS1wZXJtaXNzaW9ucy50eXBlJztcbmltcG9ydCB7IE9QZXJtaXNzaW9uc0RlZmluaXRpb24gfSBmcm9tICcuLi8uLi90eXBlcy9vLXBlcm1pc3Npb25zLWRlZmluaXRpb24udHlwZSc7XG5pbXBvcnQgeyBPUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi90eXBlcy9vLXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgT1JvdXRlUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi90eXBlcy9vLXJvdXRlLXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgT1RhYmxlTWVudVBlcm1pc3Npb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby10YWJsZS1tZW51LXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgT1RhYmxlUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi90eXBlcy90YWJsZS9vLXRhYmxlLXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9vbnRpbWl6ZS1lZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9vbnRpbWl6ZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbnNTZXJ2aWNlIHtcblxuICBwcm90ZWN0ZWQgcGVybWlzc2lvbnNTZXJ2aWNlOiBhbnk7XG4gIHByb3RlY3RlZCBvbnRpbWl6ZVBlcm1pc3Npb25zQ29uZmlnOiBhbnk7XG5cbiAgcHJvdGVjdGVkIHBlcm1pc3Npb25zOiBPUGVybWlzc2lvbnNEZWZpbml0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBjb25zdCBhcHBDb25maWcgPSB0aGlzLmluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChhcHBDb25maWcucGVybWlzc2lvbnNDb25maWd1cmF0aW9uKSkge1xuICAgICAgdGhpcy5vbnRpbWl6ZVBlcm1pc3Npb25zQ29uZmlnID0gYXBwQ29uZmlnLnBlcm1pc3Npb25zQ29uZmlndXJhdGlvbjtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uZmlndXJlU2VydmljZSgpIHtcbiAgICBjb25zdCBsb2FkaW5nU2VydmljZTogYW55ID0gT250aW1pemVQZXJtaXNzaW9uc1NlcnZpY2U7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQobG9hZGluZ1NlcnZpY2UpO1xuICAgICAgaWYgKFV0aWwuaXNQZXJtaXNzaW9uc1NlcnZpY2UodGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UpKSB7XG4gICAgICAgIGlmICh0aGlzLnBlcm1pc3Npb25zU2VydmljZSBpbnN0YW5jZW9mIE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlKSB7XG4gICAgICAgICAgKHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlIGFzIE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlKS5jb25maWd1cmVTZXJ2aWNlKHRoaXMub250aW1pemVQZXJtaXNzaW9uc0NvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UgaW5zdGFuY2VvZiBPbnRpbWl6ZUVFUGVybWlzc2lvbnNTZXJ2aWNlKSB7XG4gICAgICAgICAgKHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlIGFzIE9udGltaXplRUVQZXJtaXNzaW9uc1NlcnZpY2UpLmNvbmZpZ3VyZVNlcnZpY2UodGhpcy5vbnRpbWl6ZVBlcm1pc3Npb25zQ29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgcmVzdGFydCgpIHtcbiAgICB0aGlzLnBlcm1pc3Npb25zID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgaGFzUGVybWlzc2lvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbnMgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldFVzZXJQZXJtaXNzaW9uc0FzUHJvbWlzZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCkgPT4ge1xuICAgICAgc2VsZi5wZXJtaXNzaW9ucyA9IHt9O1xuICAgICAgaWYgKFV0aWwuaXNEZWZpbmVkKHNlbGYub250aW1pemVQZXJtaXNzaW9uc0NvbmZpZykpIHtcbiAgICAgICAgc2VsZi5jb25maWd1cmVTZXJ2aWNlKCk7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHNlbGYucXVlcnlQZXJtaXNzaW9ucygpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxuICBwcm90ZWN0ZWQgcXVlcnlQZXJtaXNzaW9ucygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGNvbnN0IGRhdGFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4gPSBuZXcgT2JzZXJ2YWJsZShpbm5lck9ic2VydmVyID0+IHtcbiAgICAgIHNlbGYucGVybWlzc2lvbnNTZXJ2aWNlLmxvYWRQZXJtaXNzaW9ucygpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgc2VsZi5wZXJtaXNzaW9ucyA9IHJlcztcbiAgICAgICAgaW5uZXJPYnNlcnZlci5uZXh0KHJlcyk7XG4gICAgICB9LCAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignW1Blcm1pc3Npb25zLnF1ZXJ5UGVybWlzc2lvbnNdOiBlcnJvcicsIGVycik7XG4gICAgICAgIGlubmVyT2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgIH0sICgpID0+IHtcbiAgICAgICAgaW5uZXJPYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGFPYnNlcnZhYmxlLnBpcGUoc2hhcmUoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0UGVybWlzc2lvbklkRnJvbUFjdFJvdXRlKGFjdFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IHN0cmluZyB7XG4gICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuICAgIGxldCBzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCA9IGFjdFJvdXRlLnNuYXBzaG90O1xuICAgIHJlc3VsdCA9ICgoc25hcHNob3QuZGF0YSB8fCB7fSlbJ29QZXJtaXNzaW9uJ10gfHwge30pWydwZXJtaXNzaW9uSWQnXTtcbiAgICB3aGlsZSAoVXRpbC5pc0RlZmluZWQoc25hcHNob3QuZmlyc3RDaGlsZCkgJiYgIVV0aWwuaXNEZWZpbmVkKHJlc3VsdCkpIHtcbiAgICAgIHNuYXBzaG90ID0gc25hcHNob3QuZmlyc3RDaGlsZDtcbiAgICAgIHJlc3VsdCA9ICgoc25hcHNob3QuZGF0YSB8fCB7fSlbJ29QZXJtaXNzaW9uJ10gfHwge30pWydwZXJtaXNzaW9uSWQnXTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb21wb25lbnRQZXJtaXNzaW9uc1VzaW5nUm91dGUoYXR0cjogc3RyaW5nLCBhY3RSb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBPQ29tcG9uZW50UGVybWlzc2lvbnMge1xuICAgIGxldCByZXN1bHQ6IE9Db21wb25lbnRQZXJtaXNzaW9ucztcbiAgICBjb25zdCBwZXJtaXNzaW9uSWQgPSB0aGlzLmdldFBlcm1pc3Npb25JZEZyb21BY3RSb3V0ZShhY3RSb3V0ZSk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHBlcm1pc3Npb25JZCkpIHtcbiAgICAgIGNvbnN0IHJvdXRlUGVybWlzc2lvbnM6IE9Sb3V0ZVBlcm1pc3Npb25zID0gKHRoaXMucGVybWlzc2lvbnMucm91dGVzIHx8IFtdKS5maW5kKHJvdXRlID0+IHJvdXRlLnBlcm1pc3Npb25JZCA9PT0gcGVybWlzc2lvbklkKTtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChyb3V0ZVBlcm1pc3Npb25zKSkge1xuICAgICAgICByZXN1bHQgPSAocm91dGVQZXJtaXNzaW9ucy5jb21wb25lbnRzIHx8IFtdKS5maW5kKGNvbXAgPT4gY29tcC5hdHRyID09PSBhdHRyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRPQ29tcG9uZW50UGVybWlzc2lvbnMoYXR0cjogc3RyaW5nLCBhY3RSb3V0ZTogQWN0aXZhdGVkUm91dGUsIHNlbGVjdG9yOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5wZXJtaXNzaW9ucykpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGxldCByb3V0ZVBlcm1pc3Npb25zOiBhbnk7XG4gICAgY29uc3QgZ2VuZXJpY1JvdXRlUGVybTogT0NvbXBvbmVudFBlcm1pc3Npb25zID0gdGhpcy5nZXRDb21wb25lbnRQZXJtaXNzaW9uc1VzaW5nUm91dGUoYXR0ciwgYWN0Um91dGUpO1xuICAgIGlmIChnZW5lcmljUm91dGVQZXJtICYmIGdlbmVyaWNSb3V0ZVBlcm0uc2VsZWN0b3IgPT09IHNlbGVjdG9yKSB7XG4gICAgICByb3V0ZVBlcm1pc3Npb25zID0gZ2VuZXJpY1JvdXRlUGVybTtcbiAgICB9XG4gICAgbGV0IGNvbXBQZXJtaXNzaW9uczogYW55O1xuICAgIGNvbnN0IGF0dHJQZXJtaXNzaW9ucyA9ICh0aGlzLnBlcm1pc3Npb25zLmNvbXBvbmVudHMgfHwgW10pLmZpbmQoY29tcCA9PiBjb21wLmF0dHIgPT09IGF0dHIpO1xuICAgIGlmIChhdHRyUGVybWlzc2lvbnMgJiYgYXR0clBlcm1pc3Npb25zLnNlbGVjdG9yID09PSBzZWxlY3Rvcikge1xuICAgICAgY29tcFBlcm1pc3Npb25zID0gYXR0clBlcm1pc3Npb25zO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgcm91dGU6IHJvdXRlUGVybWlzc2lvbnMsXG4gICAgICBjb21wb25lbnQ6IGNvbXBQZXJtaXNzaW9uc1xuICAgIH07XG4gIH1cblxuICBnZXRUYWJsZVBlcm1pc3Npb25zKGF0dHI6IHN0cmluZywgYWN0Um91dGU6IEFjdGl2YXRlZFJvdXRlKTogT1RhYmxlUGVybWlzc2lvbnMge1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5wZXJtaXNzaW9ucykpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHBlcm0gPSB0aGlzLmdldE9Db21wb25lbnRQZXJtaXNzaW9ucyhhdHRyLCBhY3RSb3V0ZSwgJ28tdGFibGUnKTtcbiAgICBjb25zdCByb3V0ZVBlcm06IE9UYWJsZVBlcm1pc3Npb25zID0gPE9UYWJsZVBlcm1pc3Npb25zPnBlcm0ucm91dGU7XG4gICAgY29uc3QgY29tcFBlcm06IE9UYWJsZVBlcm1pc3Npb25zID0gPE9UYWJsZVBlcm1pc3Npb25zPnBlcm0uY29tcG9uZW50O1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQocm91dGVQZXJtKSB8fCAhVXRpbC5pc0RlZmluZWQoY29tcFBlcm0pKSB7XG4gICAgICByZXR1cm4gY29tcFBlcm0gfHwgcm91dGVQZXJtO1xuICAgIH1cbiAgICBjb25zdCBwZXJtaXNzaW9uczogT1RhYmxlUGVybWlzc2lvbnMgPSB7XG4gICAgICBzZWxlY3RvcjogJ28tdGFibGUnLFxuICAgICAgYXR0cjogcm91dGVQZXJtLmF0dHIsXG4gICAgICBtZW51OiB0aGlzLm1lcmdlT1RhYmxlTWVudVBlcm1pc3Npb25zKGNvbXBQZXJtLm1lbnUsIHJvdXRlUGVybS5tZW51KSxcbiAgICAgIGNvbHVtbnM6IHRoaXMubWVyZ2VPUGVybWlzc2lvbnNBcnJheXMoY29tcFBlcm0uY29sdW1ucywgcm91dGVQZXJtLmNvbHVtbnMpLFxuICAgICAgYWN0aW9uczogdGhpcy5tZXJnZU9QZXJtaXNzaW9uc0FycmF5cyhjb21wUGVybS5hY3Rpb25zLCByb3V0ZVBlcm0uYWN0aW9ucyksXG4gICAgICBjb250ZXh0TWVudTogdGhpcy5tZXJnZU9QZXJtaXNzaW9uc0FycmF5cyhjb21wUGVybS5jb250ZXh0TWVudSwgcm91dGVQZXJtLmNvbnRleHRNZW51KVxuICAgIH07XG4gICAgcmV0dXJuIHBlcm1pc3Npb25zO1xuICB9XG5cbiAgZ2V0Rm9ybVBlcm1pc3Npb25zKGF0dHI6IHN0cmluZywgYWN0Um91dGU6IEFjdGl2YXRlZFJvdXRlKTogT0Zvcm1QZXJtaXNzaW9ucyB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZCh0aGlzLnBlcm1pc3Npb25zKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgcGVybSA9IHRoaXMuZ2V0T0NvbXBvbmVudFBlcm1pc3Npb25zKGF0dHIsIGFjdFJvdXRlLCAnby1mb3JtJyk7XG4gICAgY29uc3Qgcm91dGVQZXJtOiBPRm9ybVBlcm1pc3Npb25zID0gPE9Gb3JtUGVybWlzc2lvbnM+cGVybS5yb3V0ZTtcbiAgICBjb25zdCBjb21wUGVybTogT0Zvcm1QZXJtaXNzaW9ucyA9IDxPRm9ybVBlcm1pc3Npb25zPnBlcm0uY29tcG9uZW50O1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQocm91dGVQZXJtKSB8fCAhVXRpbC5pc0RlZmluZWQoY29tcFBlcm0pKSB7XG4gICAgICByZXR1cm4gY29tcFBlcm0gfHwgcm91dGVQZXJtO1xuICAgIH1cbiAgICBjb25zdCBwZXJtaXNzaW9uczogT0Zvcm1QZXJtaXNzaW9ucyA9IHtcbiAgICAgIHNlbGVjdG9yOiAnby1mb3JtJyxcbiAgICAgIGF0dHI6IHJvdXRlUGVybS5hdHRyLFxuICAgICAgY29tcG9uZW50czogdGhpcy5tZXJnZU9QZXJtaXNzaW9uc0FycmF5cyhjb21wUGVybS5jb21wb25lbnRzLCByb3V0ZVBlcm0uY29tcG9uZW50cyksXG4gICAgICBhY3Rpb25zOiB0aGlzLm1lcmdlT1Blcm1pc3Npb25zQXJyYXlzKGNvbXBQZXJtLmFjdGlvbnMsIHJvdXRlUGVybS5hY3Rpb25zKVxuICAgIH07XG4gICAgcmV0dXJuIHBlcm1pc3Npb25zO1xuICB9XG5cbiAgZ2V0TWVudVBlcm1pc3Npb25zKGF0dHI6IHN0cmluZyk6IE9QZXJtaXNzaW9ucyB7XG4gICAgbGV0IHBlcm1pc3Npb25zO1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5wZXJtaXNzaW9ucykpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGFsbE1lbnU6IE9QZXJtaXNzaW9uc1tdID0gdGhpcy5wZXJtaXNzaW9ucy5tZW51IHx8IFtdO1xuXG4gICAgcGVybWlzc2lvbnMgPSBhbGxNZW51LmZpbmQoY29tcCA9PiBjb21wLmF0dHIgPT09IGF0dHIpO1xuXG4gICAgcmV0dXJuIHBlcm1pc3Npb25zO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1lcmdlT1Blcm1pc3Npb25zQXJyYXlzKHBlcm1pc3Npb25zQTogT1Blcm1pc3Npb25zW10sIHBlcm1pc3Npb25zQjogT1Blcm1pc3Npb25zW10pOiBPUGVybWlzc2lvbnNbXSB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZChwZXJtaXNzaW9uc0EpIHx8ICFVdGlsLmlzRGVmaW5lZChwZXJtaXNzaW9uc0IpKSB7XG4gICAgICByZXR1cm4gcGVybWlzc2lvbnNBIHx8IHBlcm1pc3Npb25zQjtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmFzc2lnbihbXSwgcGVybWlzc2lvbnNBKTtcbiAgICBwZXJtaXNzaW9uc0IuZm9yRWFjaCgocGVybTogT1Blcm1pc3Npb25zKSA9PiB7XG4gICAgICBjb25zdCBmb3VuZCA9IHJlc3VsdC5maW5kKHIgPT4gci5hdHRyID09PSBwZXJtLmF0dHIpO1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIGZvdW5kLnZpc2libGUgPSBwZXJtLnZpc2libGU7XG4gICAgICAgIGZvdW5kLmVuYWJsZWQgPSBwZXJtLmVuYWJsZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQucHVzaChwZXJtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJvdGVjdGVkIG1lcmdlT1RhYmxlTWVudVBlcm1pc3Npb25zKHBlcm1pc3Npb25zQTogT1RhYmxlTWVudVBlcm1pc3Npb25zLCBwZXJtaXNzaW9uc0I6IE9UYWJsZU1lbnVQZXJtaXNzaW9ucyk6IE9UYWJsZU1lbnVQZXJtaXNzaW9ucyB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZChwZXJtaXNzaW9uc0EpIHx8ICFVdGlsLmlzRGVmaW5lZChwZXJtaXNzaW9uc0IpKSB7XG4gICAgICByZXR1cm4gcGVybWlzc2lvbnNBIHx8IHBlcm1pc3Npb25zQjtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgdmlzaWJsZTogcGVybWlzc2lvbnNCLnZpc2libGUsXG4gICAgICBlbmFibGVkOiBwZXJtaXNzaW9uc0IuZW5hYmxlZCxcbiAgICAgIGl0ZW1zOiB0aGlzLm1lcmdlT1Blcm1pc3Npb25zQXJyYXlzKHBlcm1pc3Npb25zQS5pdGVtcywgcGVybWlzc2lvbnNCLml0ZW1zKVxuICAgIH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGlzUGVybWlzc2lvbklkUm91dGVSZXN0cmljdGVkKHBlcm1pc3Npb25JZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgcm91dGVEYXRhID0gKHRoaXMucGVybWlzc2lvbnMucm91dGVzIHx8IFtdKS5maW5kKHJvdXRlID0+IHJvdXRlLnBlcm1pc3Npb25JZCA9PT0gcGVybWlzc2lvbklkKTtcbiAgICByZXR1cm4gVXRpbC5pc0RlZmluZWQocm91dGVEYXRhKSAmJiByb3V0ZURhdGEuZW5hYmxlZCA9PT0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { DefaultServiceComponentStateClass } from './o-component-state.class';
|
|
2
|
+
export class OTreeComponentStateClass extends DefaultServiceComponentStateClass {
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10cmVlLWNvbXBvbmVudC1zdGF0ZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9zdGF0ZS9vLXRyZWUtY29tcG9uZW50LXN0YXRlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlFLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxpQ0FBaUM7Q0FFOUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWZhdWx0U2VydmljZUNvbXBvbmVudFN0YXRlQ2xhc3MgfSBmcm9tICcuL28tY29tcG9uZW50LXN0YXRlLmNsYXNzJztcblxuZXhwb3J0IGNsYXNzIE9UcmVlQ29tcG9uZW50U3RhdGVDbGFzcyBleHRlbmRzIERlZmF1bHRTZXJ2aWNlQ29tcG9uZW50U3RhdGVDbGFzcyB7XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { AbstractComponentStateService } from './o-component-state.service';
|
|
3
|
+
import { OTreeComponentStateClass } from './o-tree-component-state.class';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class OTreeComponentStateService extends AbstractComponentStateService {
|
|
6
|
+
initialize(component) {
|
|
7
|
+
this.state = new OTreeComponentStateClass();
|
|
8
|
+
super.initialize(component);
|
|
9
|
+
}
|
|
10
|
+
initializeState(state) {
|
|
11
|
+
super.initializeState(state);
|
|
12
|
+
}
|
|
13
|
+
getDataToStore() {
|
|
14
|
+
const dataToStore = {};
|
|
15
|
+
const propertiesKeys = [
|
|
16
|
+
'sort-columns',
|
|
17
|
+
'oColumns-display',
|
|
18
|
+
'columns-filter',
|
|
19
|
+
'quick-filter',
|
|
20
|
+
'page',
|
|
21
|
+
'selection',
|
|
22
|
+
'initial-configuration',
|
|
23
|
+
'filter-columns',
|
|
24
|
+
'filter-column-active',
|
|
25
|
+
'grouped-columns',
|
|
26
|
+
'grouped-column-types',
|
|
27
|
+
'user-stored-filters',
|
|
28
|
+
'user-stored-configurations'
|
|
29
|
+
];
|
|
30
|
+
Object.assign(dataToStore, this.getTablePropertiesToStore(propertiesKeys));
|
|
31
|
+
return dataToStore;
|
|
32
|
+
}
|
|
33
|
+
getTablePropertiesToStore(properties) {
|
|
34
|
+
const result = {};
|
|
35
|
+
properties.forEach(prop => {
|
|
36
|
+
Object.assign(result, this.getTreePropertyToStore(prop));
|
|
37
|
+
});
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
getTreePropertyToStore(property) {
|
|
41
|
+
let result = {};
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
OTreeComponentStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTreeComponentStateService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
46
|
+
OTreeComponentStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTreeComponentStateService });
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTreeComponentStateService, decorators: [{
|
|
48
|
+
type: Injectable
|
|
49
|
+
}] });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10cmVlLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL3N0YXRlL28tdHJlZS1jb21wb25lbnQtc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUkxRSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsNkJBQXVFO0lBRXJILFVBQVUsQ0FBQyxTQUF5QjtRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksd0JBQXdCLEVBQUUsQ0FBQztRQUM1QyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBK0I7UUFDN0MsS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sV0FBVyxHQUFRLEVBQUUsQ0FBQztRQUM1QixNQUFNLGNBQWMsR0FBRztZQUNyQixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2QsTUFBTTtZQUNOLFdBQVc7WUFDWCx1QkFBdUI7WUFDdkIsZ0JBQWdCO1lBQ2hCLHNCQUFzQjtZQUN0QixpQkFBaUI7WUFDakIsc0JBQXNCO1lBQ3RCLHFCQUFxQjtZQUNyQiw0QkFBNEI7U0FDN0IsQ0FBQztRQUNGLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFUyx5QkFBeUIsQ0FBQyxVQUFvQjtRQUN0RCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFUyxzQkFBc0IsQ0FBQyxRQUFnQjtRQUMvQyxJQUFJLE1BQU0sR0FBUSxFQUFFLENBQUM7UUFDckIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7dUhBM0NVLDBCQUEwQjsySEFBMUIsMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBRHRDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9UcmVlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy90cmVlL28tdHJlZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL28tY29tcG9uZW50LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT1RyZWVDb21wb25lbnRTdGF0ZUNsYXNzIH0gZnJvbSAnLi9vLXRyZWUtY29tcG9uZW50LXN0YXRlLmNsYXNzJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT1RyZWVDb21wb25lbnRTdGF0ZVNlcnZpY2UgZXh0ZW5kcyBBYnN0cmFjdENvbXBvbmVudFN0YXRlU2VydmljZTxPVHJlZUNvbXBvbmVudFN0YXRlQ2xhc3MsIE9UcmVlQ29tcG9uZW50PiB7XG5cbiAgaW5pdGlhbGl6ZShjb21wb25lbnQ6IE9UcmVlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zdGF0ZSA9IG5ldyBPVHJlZUNvbXBvbmVudFN0YXRlQ2xhc3MoKTtcbiAgICBzdXBlci5pbml0aWFsaXplKGNvbXBvbmVudCk7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoc3RhdGU6IE9UcmVlQ29tcG9uZW50U3RhdGVDbGFzcykge1xuICAgIHN1cGVyLmluaXRpYWxpemVTdGF0ZShzdGF0ZSk7XG4gIH1cblxuICBnZXREYXRhVG9TdG9yZSgpOiBhbnkge1xuICAgIGNvbnN0IGRhdGFUb1N0b3JlOiBhbnkgPSB7fTtcbiAgICBjb25zdCBwcm9wZXJ0aWVzS2V5cyA9IFtcbiAgICAgICdzb3J0LWNvbHVtbnMnLFxuICAgICAgJ29Db2x1bW5zLWRpc3BsYXknLFxuICAgICAgJ2NvbHVtbnMtZmlsdGVyJyxcbiAgICAgICdxdWljay1maWx0ZXInLFxuICAgICAgJ3BhZ2UnLFxuICAgICAgJ3NlbGVjdGlvbicsXG4gICAgICAnaW5pdGlhbC1jb25maWd1cmF0aW9uJyxcbiAgICAgICdmaWx0ZXItY29sdW1ucycsXG4gICAgICAnZmlsdGVyLWNvbHVtbi1hY3RpdmUnLFxuICAgICAgJ2dyb3VwZWQtY29sdW1ucycsXG4gICAgICAnZ3JvdXBlZC1jb2x1bW4tdHlwZXMnLFxuICAgICAgJ3VzZXItc3RvcmVkLWZpbHRlcnMnLFxuICAgICAgJ3VzZXItc3RvcmVkLWNvbmZpZ3VyYXRpb25zJ1xuICAgIF07XG4gICAgT2JqZWN0LmFzc2lnbihkYXRhVG9TdG9yZSwgdGhpcy5nZXRUYWJsZVByb3BlcnRpZXNUb1N0b3JlKHByb3BlcnRpZXNLZXlzKSk7XG4gICAgcmV0dXJuIGRhdGFUb1N0b3JlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRhYmxlUHJvcGVydGllc1RvU3RvcmUocHJvcGVydGllczogc3RyaW5nW10pOiBhbnkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIHByb3BlcnRpZXMuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmVzdWx0LCB0aGlzLmdldFRyZWVQcm9wZXJ0eVRvU3RvcmUocHJvcCkpO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VHJlZVByb3BlcnR5VG9TdG9yZShwcm9wZXJ0eTogc3RyaW5nKTogYW55IHtcbiAgICBsZXQgcmVzdWx0OiBhbnkgPSB7fTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cblxuIl19
|