@provoly/dashboard 0.12.6 → 0.12.8
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/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.d.ts +2 -1
- package/admin/components/admin-classes/store/admin-class.effects.d.ts +2 -1
- package/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.d.ts +2 -1
- package/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.d.ts +2 -1
- package/admin/i18n/en.translations.d.ts +2 -0
- package/admin/i18n/fr.translations.d.ts +2 -0
- package/admin/store/admin.actions.d.ts +31 -1
- package/admin/store/admin.effects.d.ts +27 -5
- package/admin/store/admin.reducer.d.ts +2 -1
- package/admin/store/admin.selectors.d.ts +1 -0
- package/admin/store/admin.service.d.ts +5 -1
- package/esm2022/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.mjs +5 -3
- package/esm2022/admin/components/admin-classes/admin-classes.component.mjs +2 -1
- package/esm2022/admin/components/admin-classes/store/admin-class.actions.mjs +1 -1
- package/esm2022/admin/components/admin-classes/store/admin-class.effects.mjs +5 -4
- package/esm2022/admin/components/admin-classes/store/admin-class.reducer.mjs +1 -1
- package/esm2022/admin/components/admin-dataset/admin-dataset.component.mjs +2 -1
- package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +5 -3
- package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +5 -3
- package/esm2022/admin/components/admin-fields/admin-fields.component.mjs +2 -1
- package/esm2022/admin/components/admin-predicates/admin-predicates-select/admin-predicates-select.component.mjs +3 -3
- package/esm2022/admin/components/admin-predicates/admin-predicates.component.mjs +1 -1
- package/esm2022/admin/components/admin.component.mjs +1 -1
- package/esm2022/admin/i18n/en.translations.mjs +3 -1
- package/esm2022/admin/i18n/fr.translations.mjs +3 -1
- package/esm2022/admin/store/admin.actions.mjs +8 -2
- package/esm2022/admin/store/admin.effects.mjs +6 -2
- package/esm2022/admin/store/admin.reducer.mjs +6 -2
- package/esm2022/admin/store/admin.selectors.mjs +4 -2
- package/esm2022/admin/store/admin.service.mjs +21 -1
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +2 -2
- package/esm2022/dataset/components/dataset.component.mjs +2 -1
- package/esm2022/lib/core/store/class/class.interface.mjs +1 -1
- package/esm2022/lib/core/store/data-source/data-source.actions.mjs +3 -1
- package/esm2022/lib/core/store/data-source/data-source.effects.mjs +6 -4
- package/esm2022/lib/core/store/data-source/data-source.reducer.mjs +27 -2
- package/esm2022/lib/core/store/data-source/data-source.service.mjs +6 -1
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +97 -0
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +29 -62
- package/esm2022/lib/dashboard/components/widgets/public-api.mjs +2 -1
- package/esm2022/lib/dashboard/dashboard.module.mjs +8 -4
- package/esm2022/lib/dashboard/store/refresh.service.mjs +3 -2
- package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +4 -1
- package/esm2022/restitution/components/restitution/restitution.component.mjs +7 -24
- package/esm2022/restitution/style/css.component.mjs +2 -2
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +6 -5
- package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +3 -3
- package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +1 -1
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +3 -3
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +19 -12
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +3 -3
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +3 -3
- package/fesm2022/provoly-dashboard-admin.mjs +61 -14
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +2 -1
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +3 -0
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +8 -25
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +5 -4
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +2 -2
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +2 -2
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +18 -11
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +2 -2
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +2 -2
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +164 -74
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/store/class/class.interface.d.ts +11 -0
- package/lib/core/store/data-source/data-source.actions.d.ts +12 -0
- package/lib/core/store/data-source/data-source.effects.d.ts +5 -0
- package/lib/core/store/data-source/data-source.service.d.ts +1 -0
- package/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.d.ts +34 -0
- package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +5 -16
- package/lib/dashboard/components/widgets/public-api.d.ts +1 -0
- package/lib/dashboard/dashboard.module.d.ts +15 -14
- package/package.json +31 -31
- package/restitution/components/restitution/restitution.component.d.ts +3 -9
- package/restitution/style/_o-restitution.scss +0 -4
- package/schematics/ng-add/index.spec.js +0 -2
- package/schematics/ng-add/index.spec.js.map +1 -1
- package/styles/components/_o-datasources.scss +17 -56
- package/styles/components/_o-widget.scss +40 -32
- package/styles-theme/components-theme/_o-datasources.theme.scss +8 -5
- package/widgets/widget-map/component/widget-map.component.d.ts +5 -2
package/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
3
3
|
import { Store } from '@ngrx/store';
|
|
4
|
-
import { Class } from '@provoly/dashboard';
|
|
4
|
+
import { Associations, Class } from '@provoly/dashboard';
|
|
5
5
|
import { Observable, Subscription } from 'rxjs';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export declare class AdminClassesSelectComponent implements OnInit, OnDestroy {
|
|
@@ -14,6 +14,7 @@ export declare class AdminClassesSelectComponent implements OnInit, OnDestroy {
|
|
|
14
14
|
sub: Subscription;
|
|
15
15
|
currentClass$: Observable<Class | undefined>;
|
|
16
16
|
linkedObjects$: Observable<any[]>;
|
|
17
|
+
associations$: Observable<Associations | undefined>;
|
|
17
18
|
constructor(store: Store<any>, router: Router, route: ActivatedRoute);
|
|
18
19
|
ngOnInit(): void;
|
|
19
20
|
switch(number: number): void;
|
|
@@ -6,6 +6,7 @@ export declare class AdminClassEffects {
|
|
|
6
6
|
private actions$;
|
|
7
7
|
private adminService;
|
|
8
8
|
private pryDialog;
|
|
9
|
+
private service;
|
|
9
10
|
updateToolbox$: import("rxjs").Observable<({
|
|
10
11
|
componentType: string | null;
|
|
11
12
|
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Select component Type for panel ">) | import("@ngrx/store/src/models").TypedAction<"[Class] Load Classes">> & import("@ngrx/effects").CreateEffectMetadata;
|
|
@@ -75,7 +76,7 @@ export declare class AdminClassEffects {
|
|
|
75
76
|
backPath: string;
|
|
76
77
|
addAttrPath: string;
|
|
77
78
|
} & import("@ngrx/store/src/models").TypedAction<"[Class] Open modal for attribute deletion">> & import("@ngrx/effects").CreateEffectMetadata;
|
|
78
|
-
constructor(actions$: Actions, adminService: AdminService, pryDialog: PryDialogService);
|
|
79
|
+
constructor(actions$: Actions, adminService: AdminService, pryDialog: PryDialogService, service: AdminService);
|
|
79
80
|
static ɵfac: i0.ɵɵFactoryDeclaration<AdminClassEffects, never>;
|
|
80
81
|
static ɵprov: i0.ɵɵInjectableDeclaration<AdminClassEffects>;
|
|
81
82
|
}
|
package/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { OnDestroy, OnInit } from '@angular/core';
|
|
|
2
2
|
import { FormBuilder, FormGroup } from '@angular/forms';
|
|
3
3
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
4
4
|
import { Store } from '@ngrx/store';
|
|
5
|
-
import { Dataset, DatasetMetadata, IMetadata, SubscriptionnerDirective } from '@provoly/dashboard';
|
|
5
|
+
import { Associations, Dataset, DatasetMetadata, IMetadata, SubscriptionnerDirective } from '@provoly/dashboard';
|
|
6
6
|
import { Observable, Subscription } from 'rxjs';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export declare class AdminSelectDatasetComponent extends SubscriptionnerDirective implements OnInit, OnDestroy {
|
|
@@ -13,6 +13,7 @@ export declare class AdminSelectDatasetComponent extends SubscriptionnerDirectiv
|
|
|
13
13
|
static id: string;
|
|
14
14
|
compId: number;
|
|
15
15
|
selectedDataset$: Observable<Dataset | null>;
|
|
16
|
+
associations$: Observable<Associations | undefined>;
|
|
16
17
|
sub: Subscription;
|
|
17
18
|
currentTypeTranslation: string;
|
|
18
19
|
tab: number;
|
package/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
3
3
|
import { Store } from '@ngrx/store';
|
|
4
|
-
import { Field } from '@provoly/dashboard';
|
|
4
|
+
import { Associations, Field } from '@provoly/dashboard';
|
|
5
5
|
import { Observable, Subscription } from 'rxjs';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export declare class AdminFieldsSelectComponent implements OnInit, OnDestroy {
|
|
@@ -10,6 +10,7 @@ export declare class AdminFieldsSelectComponent implements OnInit, OnDestroy {
|
|
|
10
10
|
private route;
|
|
11
11
|
static id: string;
|
|
12
12
|
currentField$: Observable<Field | undefined>;
|
|
13
|
+
associations$: Observable<Associations | undefined>;
|
|
13
14
|
compId: number;
|
|
14
15
|
tab: number;
|
|
15
16
|
sub: Subscription;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseToolboxAction } from '@provoly/dashboard';
|
|
1
|
+
import { Associations, BaseToolboxAction } from '@provoly/dashboard';
|
|
2
2
|
export declare const AdminActions: {
|
|
3
3
|
highlightMenu: import("@ngrx/store").ActionCreator<"[Admin] selecting highLight", (props: {
|
|
4
4
|
menu: string;
|
|
@@ -38,4 +38,34 @@ export declare const AdminActions: {
|
|
|
38
38
|
}) => {
|
|
39
39
|
componentType: string | null;
|
|
40
40
|
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Select component Type for panel ">>;
|
|
41
|
+
fetchClassAssociations: import("@ngrx/store").ActionCreator<"[Admin] Fetch Class associations", (props: {
|
|
42
|
+
id: string;
|
|
43
|
+
}) => {
|
|
44
|
+
id: string;
|
|
45
|
+
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Fetch Class associations">>;
|
|
46
|
+
fetchFieldAssociations: import("@ngrx/store").ActionCreator<"[Admin] Fetch field associations", (props: {
|
|
47
|
+
id: string;
|
|
48
|
+
}) => {
|
|
49
|
+
id: string;
|
|
50
|
+
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Fetch field associations">>;
|
|
51
|
+
fetchAttributeAssociations: import("@ngrx/store").ActionCreator<"[Admin] Fetch Attribute associations", (props: {
|
|
52
|
+
id: string;
|
|
53
|
+
}) => {
|
|
54
|
+
id: string;
|
|
55
|
+
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Fetch Attribute associations">>;
|
|
56
|
+
fetchDatasetAssociations: import("@ngrx/store").ActionCreator<"[Admin] Fetch Dataset associations", (props: {
|
|
57
|
+
id: string;
|
|
58
|
+
}) => {
|
|
59
|
+
id: string;
|
|
60
|
+
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Fetch Dataset associations">>;
|
|
61
|
+
fetchAssociationsSuccess: import("@ngrx/store").ActionCreator<"[Admin] Fetch Associations Success", (props: {
|
|
62
|
+
association: Associations;
|
|
63
|
+
}) => {
|
|
64
|
+
association: Associations;
|
|
65
|
+
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Fetch Associations Success">>;
|
|
66
|
+
fetchAssociationsFailure: import("@ngrx/store").ActionCreator<"[Admin] Fetch Associations failure", (props: {
|
|
67
|
+
error: any;
|
|
68
|
+
}) => {
|
|
69
|
+
error: any;
|
|
70
|
+
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Fetch Associations failure">>;
|
|
41
71
|
};
|
|
@@ -1,33 +1,55 @@
|
|
|
1
1
|
import { Router } from '@angular/router';
|
|
2
2
|
import { Actions } from '@ngrx/effects';
|
|
3
|
+
import { Associations } from '@provoly/dashboard';
|
|
3
4
|
import { AdminService } from './admin.service';
|
|
5
|
+
import { Observable } from 'rxjs';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
7
|
export declare class AdminEffects {
|
|
6
8
|
private actions$;
|
|
7
9
|
private service;
|
|
8
10
|
private router;
|
|
9
|
-
routeTo$:
|
|
10
|
-
deleteRelationTypeSuccess$:
|
|
11
|
+
routeTo$: Observable<import("@ngrx/store/src/models").TypedAction<"[Admin] reset toolbox main and sub actions">> & import("@ngrx/effects").CreateEffectMetadata;
|
|
12
|
+
deleteRelationTypeSuccess$: Observable<({
|
|
11
13
|
actions: import("@provoly/dashboard").BaseToolboxAction[];
|
|
12
14
|
} & import("@ngrx/store/src/models").TypedAction<"[Admin] set toolbox main actions">) | ({
|
|
13
15
|
componentType: string | null;
|
|
14
16
|
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Select component Type for panel ">) | import("@ngrx/store/src/models").TypedAction<"[Relation Types] Load Relation Types">> & import("@ngrx/effects").CreateEffectMetadata;
|
|
15
|
-
closePanel$:
|
|
17
|
+
closePanel$: Observable<{
|
|
16
18
|
panelOpen: boolean;
|
|
17
19
|
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Toggle panel">> & import("@ngrx/effects").CreateEffectMetadata;
|
|
18
|
-
deleted$:
|
|
20
|
+
deleted$: Observable<({
|
|
19
21
|
actions: import("@provoly/dashboard").BaseToolboxAction[];
|
|
20
22
|
} & import("@ngrx/store/src/models").TypedAction<"[Admin] set toolbox main actions">) | ({
|
|
21
23
|
panelOpen: boolean;
|
|
22
24
|
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Toggle panel">) | ({
|
|
23
25
|
componentType: string | null;
|
|
24
26
|
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Select component Type for panel ">)> & import("@ngrx/effects").CreateEffectMetadata;
|
|
25
|
-
openNewDataset$:
|
|
27
|
+
openNewDataset$: Observable<{
|
|
26
28
|
path: string;
|
|
27
29
|
params?: {
|
|
28
30
|
[p: string]: string;
|
|
29
31
|
} | undefined;
|
|
30
32
|
} & import("@ngrx/store/src/models").TypedAction<"[Admin] route to">> & import("@ngrx/effects").CreateEffectMetadata;
|
|
33
|
+
fetchClassAssociations$: Observable<({
|
|
34
|
+
association: Associations;
|
|
35
|
+
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Fetch Associations Success">) | ({
|
|
36
|
+
error: any;
|
|
37
|
+
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Fetch Associations failure">)> & import("@ngrx/effects").CreateEffectMetadata;
|
|
38
|
+
fetchFieldAssociations$: Observable<({
|
|
39
|
+
association: Associations;
|
|
40
|
+
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Fetch Associations Success">) | ({
|
|
41
|
+
error: any;
|
|
42
|
+
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Fetch Associations failure">)> & import("@ngrx/effects").CreateEffectMetadata;
|
|
43
|
+
fetchDatasetAssociations$: Observable<({
|
|
44
|
+
association: Associations;
|
|
45
|
+
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Fetch Associations Success">) | ({
|
|
46
|
+
error: any;
|
|
47
|
+
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Fetch Associations failure">)> & import("@ngrx/effects").CreateEffectMetadata;
|
|
48
|
+
fetchAttributeAssociations$: Observable<({
|
|
49
|
+
association: Associations;
|
|
50
|
+
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Fetch Associations Success">) | ({
|
|
51
|
+
error: any;
|
|
52
|
+
} & import("@ngrx/store/src/models").TypedAction<"[Admin] Fetch Associations failure">)> & import("@ngrx/effects").CreateEffectMetadata;
|
|
31
53
|
constructor(actions$: Actions, service: AdminService, router: Router);
|
|
32
54
|
static ɵfac: i0.ɵɵFactoryDeclaration<AdminEffects, never>;
|
|
33
55
|
static ɵprov: i0.ɵɵInjectableDeclaration<AdminEffects>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseMenuItem, BaseToolboxAction } from '@provoly/dashboard';
|
|
1
|
+
import { Associations, BaseMenuItem, BaseToolboxAction } from '@provoly/dashboard';
|
|
2
2
|
export declare const adminFeatureKey = "@pry/admin";
|
|
3
3
|
export interface AdminState {
|
|
4
4
|
highlightedMenu: string;
|
|
@@ -8,6 +8,7 @@ export interface AdminState {
|
|
|
8
8
|
subActions: BaseToolboxAction[];
|
|
9
9
|
panelOpen: boolean;
|
|
10
10
|
componentType: string | null;
|
|
11
|
+
selectedAssociation: Associations | undefined;
|
|
11
12
|
}
|
|
12
13
|
export declare const initialAdminState: AdminState;
|
|
13
14
|
export declare const adminReducer: import("@ngrx/store").ActionReducer<AdminState, import("@ngrx/store").Action>;
|
|
@@ -10,4 +10,5 @@ export declare const AdminSelectors: {
|
|
|
10
10
|
subActions: import("@ngrx/store").MemoizedSelector<object, import("@provoly/dashboard").BaseToolboxAction[], (s1: fromAdmin.AdminState) => import("@provoly/dashboard").BaseToolboxAction[]>;
|
|
11
11
|
panelOpen: import("@ngrx/store").MemoizedSelector<object, boolean, (s1: fromAdmin.AdminState) => boolean>;
|
|
12
12
|
componentType: import("@ngrx/store").MemoizedSelector<object, string | null, (s1: fromAdmin.AdminState) => string | null>;
|
|
13
|
+
selectedAssociation: import("@ngrx/store").MemoizedSelector<object, import("@provoly/dashboard").Associations | undefined, (s1: fromAdmin.AdminState) => import("@provoly/dashboard").Associations | undefined>;
|
|
13
14
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
2
|
import { Store } from '@ngrx/store';
|
|
3
|
-
import { Attribute, Category, Class, Environment, IMetadata, Link, LinkDetails, MetadataRules, MetadataRulesCreate, MetadataUser, Predicate, UserInfo } from '@provoly/dashboard';
|
|
3
|
+
import { Associations, Attribute, Category, Class, Environment, IMetadata, Link, LinkDetails, MetadataRules, MetadataRulesCreate, MetadataUser, Predicate, UserInfo } from '@provoly/dashboard';
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
5
5
|
import { AbacRule } from '../components/admin-abac-rules/store/abac-rules.model';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
@@ -24,6 +24,10 @@ export declare class AdminService {
|
|
|
24
24
|
getAbacRules(): Observable<AbacRule[]>;
|
|
25
25
|
getAbacRule(id: string): Observable<AbacRule>;
|
|
26
26
|
saveAbacRule(rule: AbacRule): Observable<void>;
|
|
27
|
+
getClassAssociations(id: string): Observable<Associations>;
|
|
28
|
+
getDatasetAssociations(id: string): Observable<Associations>;
|
|
29
|
+
getFieldAssociations(id: string): Observable<Associations>;
|
|
30
|
+
getAttributeAssociations(id: string): Observable<Associations>;
|
|
27
31
|
getClass(id: string): Observable<Class>;
|
|
28
32
|
saveClass(clazz: Class): Observable<void>;
|
|
29
33
|
saveAttributeForClass(classId: string, attribute: Attribute): Observable<void>;
|
|
@@ -5,6 +5,7 @@ import { map, Subscription } from 'rxjs';
|
|
|
5
5
|
import { AdminActions } from '../../../store/admin.actions';
|
|
6
6
|
import { AdminClassActions } from '../store/admin-class.actions';
|
|
7
7
|
import { AdminClassSelectors } from '../store/admin-class.selectors';
|
|
8
|
+
import { AdminSelectors } from '../../../store/admin.selectors';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "@ngrx/store";
|
|
10
11
|
import * as i2 from "@angular/router";
|
|
@@ -20,6 +21,7 @@ export class AdminClassesSelectComponent {
|
|
|
20
21
|
this.tab = 0;
|
|
21
22
|
this.sub = new Subscription();
|
|
22
23
|
this.currentClass$ = this.store.select(AdminClassSelectors.selectedClass);
|
|
24
|
+
this.associations$ = this.store.select(AdminSelectors.selectedAssociation);
|
|
23
25
|
this.compId = nextCompId++;
|
|
24
26
|
this.linkedObjects$ = this.currentClass$.pipe(concatLatestFrom((clazz) => this.store.select(DataSourceSelectors.datasets)), map(([clazz, datasets]) => datasets.filter((dataset) => dataset.oClass === clazz?.id)));
|
|
25
27
|
}
|
|
@@ -98,10 +100,10 @@ export class AdminClassesSelectComponent {
|
|
|
98
100
|
}));
|
|
99
101
|
}
|
|
100
102
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminClassesSelectComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
101
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminClassesSelectComponent, selector: "pry-admin-classes-select", ngImport: i0, template: "<div\n *ngIf=\"currentClass$ | async as clazz\"\n [id]=\"'panel-class-' + clazz.id\"\n [attr.aria-labelledby]=\"'button-class-' + clazz.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.classes.info' | i18n }}\n </h3>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.details' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-1'\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 1 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.classes.linkedObjects' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <div class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.name' | i18n }} :\n <strong>{{ clazz.name }}</strong>\n </p>\n <p class=\"a-p u-display-flex -align-center\">\n {{ '@pry.admin.classes.image' | i18n }} :\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"clazz.id | translateId: { type: 'class', output: 'icon' } | async\"\n />\n </p>\n </div>\n </div>\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"1\"\n >\n <div class=\"o-tabs__panels__item__content\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.admin.classes.name' | i18n }}</th>\n <th>{{ '@pry.admin.classes.type' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let object of linkedObjects$ | async\">\n <td>{{ object.name }}</td>\n <td>{{ '@pry.admin.dataset.title' | i18n }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
103
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminClassesSelectComponent, selector: "pry-admin-classes-select", ngImport: i0, template: "<div\n *ngIf=\"currentClass$ | async as clazz\"\n [id]=\"'panel-class-' + clazz.id\"\n [attr.aria-labelledby]=\"'button-class-' + clazz.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.classes.info' | i18n }}\n </h3>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.details' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-1'\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 1 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.classes.linkedObjects' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-2'\"\n [attr.aria-selected]=\"tab === 2\"\n [attr.tabindex]=\"tab === 2 ? 2 : -2\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-2'\"\n (click)=\"switch(2)\"\n >\n {{ '@pry.admin.classes.associations' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <div class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.name' | i18n }} :\n <strong>{{ clazz.name }}</strong>\n </p>\n <p class=\"a-p u-display-flex -align-center\">\n {{ '@pry.admin.classes.image' | i18n }} :\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"clazz.id | translateId : { type: 'class', output: 'icon' } | async\"\n />\n </p>\n </div>\n </div>\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"1\"\n >\n <div class=\"o-tabs__panels__item__content\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.admin.classes.name' | i18n }}</th>\n <th>{{ '@pry.admin.classes.type' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let object of linkedObjects$ | async\">\n <td>{{ object.name }}</td>\n <td>{{ '@pry.admin.dataset.title' | i18n }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 2\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"2\"\n >\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <div *ngFor=\"let association of associations.associations\">\n <p class=\"a-p\">\n {{ '@pry.admin.classes.name' | i18n }} :\n <strong>{{ association.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.type' | i18n }} :\n <strong>{{ association.type }}</strong>\n </p>\n </div>\n <p *ngIf=\"associations.usedElsewhere === true\" class=\"a-p\">\n <strong>{{ '@pry.admin.classes.usedElsewhere' | i18n }}</strong>\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
102
104
|
}
|
|
103
105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminClassesSelectComponent, decorators: [{
|
|
104
106
|
type: Component,
|
|
105
|
-
args: [{ selector: 'pry-admin-classes-select', template: "<div\n *ngIf=\"currentClass$ | async as clazz\"\n [id]=\"'panel-class-' + clazz.id\"\n [attr.aria-labelledby]=\"'button-class-' + clazz.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.classes.info' | i18n }}\n </h3>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.details' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-1'\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 1 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.classes.linkedObjects' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <div class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.name' | i18n }} :\n <strong>{{ clazz.name }}</strong>\n </p>\n <p class=\"a-p u-display-flex -align-center\">\n {{ '@pry.admin.classes.image' | i18n }} :\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"clazz.id | translateId: { type: 'class', output: 'icon' } | async\"\n />\n </p>\n </div>\n </div>\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"1\"\n >\n <div class=\"o-tabs__panels__item__content\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.admin.classes.name' | i18n }}</th>\n <th>{{ '@pry.admin.classes.type' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let object of linkedObjects$ | async\">\n <td>{{ object.name }}</td>\n <td>{{ '@pry.admin.dataset.title' | i18n }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
107
|
+
args: [{ selector: 'pry-admin-classes-select', template: "<div\n *ngIf=\"currentClass$ | async as clazz\"\n [id]=\"'panel-class-' + clazz.id\"\n [attr.aria-labelledby]=\"'button-class-' + clazz.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.classes.info' | i18n }}\n </h3>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.details' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-1'\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 1 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.classes.linkedObjects' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-2'\"\n [attr.aria-selected]=\"tab === 2\"\n [attr.tabindex]=\"tab === 2 ? 2 : -2\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-2'\"\n (click)=\"switch(2)\"\n >\n {{ '@pry.admin.classes.associations' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <div class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.name' | i18n }} :\n <strong>{{ clazz.name }}</strong>\n </p>\n <p class=\"a-p u-display-flex -align-center\">\n {{ '@pry.admin.classes.image' | i18n }} :\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"clazz.id | translateId : { type: 'class', output: 'icon' } | async\"\n />\n </p>\n </div>\n </div>\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"1\"\n >\n <div class=\"o-tabs__panels__item__content\">\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th>{{ '@pry.admin.classes.name' | i18n }}</th>\n <th>{{ '@pry.admin.classes.type' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let object of linkedObjects$ | async\">\n <td>{{ object.name }}</td>\n <td>{{ '@pry.admin.dataset.title' | i18n }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 2\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"2\"\n >\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <div *ngFor=\"let association of associations.associations\">\n <p class=\"a-p\">\n {{ '@pry.admin.classes.name' | i18n }} :\n <strong>{{ association.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.type' | i18n }} :\n <strong>{{ association.type }}</strong>\n </p>\n </div>\n <p *ngIf=\"associations.usedElsewhere === true\" class=\"a-p\">\n <strong>{{ '@pry.admin.classes.usedElsewhere' | i18n }}</strong>\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
106
108
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3Nlcy1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtc2VsZWN0L2FkbWluLWNsYXNzZXMtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXNlbGVjdC9hZG1pbi1jbGFzc2VzLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFTLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsT0FBTyxFQUFFLEdBQUcsRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7QUFFckUsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBTW5CLE1BQU0sT0FBTywyQkFBMkI7YUFDL0IsT0FBRSxHQUFHLDZCQUE2QixDQUFDO0lBTzFDLFlBQ1UsS0FBaUIsRUFDakIsTUFBYyxFQUNkLEtBQXFCO1FBRnJCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENB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QUFDO1FBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNqQixZQUFZLENBQUMsV0FBVyxDQUFDO1lBQ3ZCLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxNQUFNLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztvQkFDdkQsS0FBSyxFQUFFLEtBQUs7b0JBQ1osSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLFlBQVksRUFBRSxPQUFPO29CQUNyQixVQUFVLEVBQUUsU0FBUztvQkFDckIsWUFBWSxFQUFFLE9BQU87aUJBQ3RCO2FBQ0Y7U0FDRixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OEdBdkdVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGdFQ2hCeEMsZ3NIQTZHQTs7MkZEN0ZhLDJCQUEyQjtrQkFKdkMsU0FBUzsrQkFDRSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGNvbmNhdExhdGVzdEZyb20gfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQ2xhc3MsIERhdGFTb3VyY2VTZWxlY3RvcnMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFkbWluQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2FkbWluLmFjdGlvbnMnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc0FjdGlvbnMgfSBmcm9tICcuLi9zdG9yZS9hZG1pbi1jbGFzcy5hY3Rpb25zJztcbmltcG9ydCB7IEFkbWluQ2xhc3NTZWxlY3RvcnMgfSBmcm9tICcuLi9zdG9yZS9hZG1pbi1jbGFzcy5zZWxlY3RvcnMnO1xuXG5sZXQgbmV4dENvbXBJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hZG1pbi1jbGFzc2VzLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi1jbGFzc2VzLXNlbGVjdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWRtaW5DbGFzc2VzU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBzdGF0aWMgaWQgPSAnQWRtaW5DbGFzc2VzU2VsZWN0Q29tcG9uZW50JztcbiAgY29tcElkOiBudW1iZXI7XG4gIHRhYjogbnVtYmVyID0gMDtcbiAgc3ViID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBjdXJyZW50Q2xhc3MkOiBPYnNlcnZhYmxlPENsYXNzIHwgdW5kZWZpbmVkPjtcbiAgbGlua2VkT2JqZWN0cyQ6IE9ic2VydmFibGU8YW55W10+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4sXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHtcbiAgICB0aGlzLmN1cnJlbnRDbGFzcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChBZG1pbkNsYXNzU2VsZWN0b3JzLnNlbGVjdGVkQ2xhc3MpO1xuICAgIHRoaXMuY29tcElkID0gbmV4dENvbXBJZCsrO1xuICAgIHRoaXMubGlua2VkT2JqZWN0cyQgPSB0aGlzLmN1cnJlbnRDbGFzcyQucGlwZShcbiAgICAgIGNvbmNhdExhdGVzdEZyb20oKGNsYXp6KSA9PiB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmRhdGFzZXRzKSksXG4gICAgICBtYXAoKFtjbGF6eiwgZGF0YXNldHNdKSA9PiBkYXRhc2V0cy5maWx0ZXIoKGRhdGFzZXQpID0+IGRhdGFzZXQub0NsYXNzID09PSBjbGF6ej8uaWQpKVxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1Yi5hZGQoXG4gICAgICB0aGlzLmN1cnJlbnRDbGFzcyQucGlwZShjb25jYXRMYXRlc3RGcm9tKChjbGF6eikgPT4gdGhpcy5saW5rZWRPYmplY3RzJCkpLnN1YnNjcmliZSgoW2NsYXp6LCBsaW5rZWRPYmplY3RzXSkgPT4ge1xuICAgICAgICBpZiAoY2xhenopIHtcbiAgICAgICAgICBjb25zdCBuZXdQYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4nLCAnY2xhc3NlcycsICduZXcnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgICAgICAgIGNvbnN0IGVkaXRQYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4nLCAnY2xhc3NlcycsIGNsYXp6LmlkLCAnZWRpdCddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgICAgICAgY29uc3QgY3VzdG9taXplUGF0aCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWycuJywgJ2NsYXNzZXMnLCBjbGF6ei5pZCwgJ2N1c3RvbWl6ZSddLCB7XG4gICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3Qgdmlld0F0dHJpYnV0ZXNQYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4nLCAnY2xhc3NlcycsIGNsYXp6LmlkXSwge1xuICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICBBZG1pbkFjdGlvbnMubWFpbkFjdGlvbnMoe1xuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWN0aW9uOiBBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IGVkaXRQYXRoLnRvU3RyaW5nKCkgfSksXG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ3JlbmFtZScsXG4gICAgICAgICAgICAgICAgICBpY29uOiAnZWRpdCcsXG4gICAgICAgICAgICAgICAgICBtb2R1bGVBY2Nlc3M6ICdhZG1pbicsXG4gICAgICAgICAgICAgICAgICBwYWdlQWNjZXNzOiAnY2xhc3NlcycsXG4gICAgICAgICAgICAgICAgICBhY3Rpb25BY2Nlc3M6ICd3cml0ZSdcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGFjdGlvbjogQWRtaW5DbGFzc0FjdGlvbnMuY29uZmlybUNsYXNzRGVsZXRpb24oeyBpZDogY2xhenouaWQsIHBhdGg6IG5ld1BhdGgudG9TdHJpbmcoKSB9KSxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnZGVsZXRlJyxcbiAgICAgICAgICAgICAgICAgIGljb246ICdkZWxldGUnLFxuICAgICAgICAgICAgICAgICAgbW9kdWxlQWNjZXNzOiAnYWRtaW4nLFxuICAgICAgICAgICAgICAgICAgcGFnZUFjY2VzczogJ2NsYXNzZXMnLFxuICAgICAgICAgICAgICAgICAgYWN0aW9uQWNjZXNzOiAnd3JpdGUnLFxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGxpbmtlZE9iamVjdHMubGVuZ3RoID4gMFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWN0aW9uOiBBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IGN1c3RvbWl6ZVBhdGgudG9TdHJpbmcoKSB9KSxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnY3VzdG9taXplLnRpdGxlJyxcbiAgICAgICAgICAgICAgICAgIGljb246ICdjaGF0LXNldHRpbmdzJyxcbiAgICAgICAgICAgICAgICAgIG1vZHVsZUFjY2VzczogJ2FkbWluJyxcbiAgICAgICAgICAgICAgICAgIHBhZ2VBY2Nlc3M6ICdjbGFzc2VzJyxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbkFjY2VzczogJ3dyaXRlJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWN0aW9uOiBBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IHZpZXdBdHRyaWJ1dGVzUGF0aC50b1N0cmluZygpIH0pLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdlZGl0JyxcbiAgICAgICAgICAgICAgICAgIGljb246ICdhZG1pbicsXG4gICAgICAgICAgICAgICAgICBtb2R1bGVBY2Nlc3M6ICdhZG1pbicsXG4gICAgICAgICAgICAgICAgICBwYWdlQWNjZXNzOiAnY2xhc3NlcycsXG4gICAgICAgICAgICAgICAgICBhY3Rpb25BY2Nlc3M6ICd3cml0ZSdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgc3dpdGNoKG51bWJlcjogbnVtYmVyKSB7XG4gICAgdGhpcy50YWIgPSBudW1iZXI7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgY2xvc2VQYW5lbCgpIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4nLCAnY2xhc3NlcycsICduZXcnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5DbGFzc0FjdGlvbnMudW5zZWxlY3RDbGFzcygpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQWN0aW9ucy50b2dnbGVQYW5lbCh7IHBhbmVsT3BlbjogZmFsc2UgfSkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBBZG1pbkFjdGlvbnMubWFpbkFjdGlvbnMoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWN0aW9uOiBBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IHBhdGgudG9TdHJpbmcoKSB9KSxcbiAgICAgICAgICAgIGxhYmVsOiAnYWRkJyxcbiAgICAgICAgICAgIGljb246ICdhZGRfY29sdW1uJyxcbiAgICAgICAgICAgIG1vZHVsZUFjY2VzczogJ2FkbWluJyxcbiAgICAgICAgICAgIHBhZ2VBY2Nlc3M6ICdjbGFzc2VzJyxcbiAgICAgICAgICAgIGFjdGlvbkFjY2VzczogJ3dyaXRlJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwiY3VycmVudENsYXNzJCB8IGFzeW5jIGFzIGNsYXp6XCJcbiAgW2lkXT1cIidwYW5lbC1jbGFzcy0nICsgY2xhenouaWRcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ2J1dHRvbi1jbGFzcy0nICsgY2xhenouaWRcIlxuICBjbGFzcz1cIm8tcGFuZWxcIlxuPlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvLXBhbmVsX19oZWFkZXJcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJjbG9zZVBhbmVsKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LmFjdGlvbi5jbG9zZVBhbmVsJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIj48L3ByeS1pY29uPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxoMyBbaWRdPVwiJ3RhYi10aXRsZS0nICsgY29tcElkXCIgY2xhc3M9XCJhLWgzXCI+XG4gICAgICAgIHt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuaW5mbycgfCBpMThuIH19XG4gICAgICA8L2gzPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm8tdGFic1wiPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tdGFic19fbGlzdFwiIHJvbGU9XCJ0YWJsaXN0XCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIid0YWItdGl0bGUtJyArIGNvbXBJZFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJvLXRhYnNfX2xpc3RfX2J0blwiXG4gICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgW2lkXT1cIid0YWItJyArIGNvbXBJZCArICctMCdcIlxuICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwidGFiID09PSAwXCJcbiAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWIgPT09IDAgPyAwIDogLTFcIlxuICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ3RhYnBhbmVsLScgKyBjb21wSWQgKyAnLTAnXCJcbiAgICAgICAgICAoY2xpY2spPVwic3dpdGNoKDApXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLmRldGFpbHMnIHwgaTE4biB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiby10YWJzX19saXN0X19idG5cIlxuICAgICAgICAgIHJvbGU9XCJ0YWJcIlxuICAgICAgICAgIFtpZF09XCIndGFiLScgKyBjb21wSWQgKyAnLTEnXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInRhYiA9PT0gMVwiXG4gICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiID09PSAxID8gMSA6IC0xXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIid0YWJwYW5lbC0nICsgY29tcElkICsgJy0xJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cInN3aXRjaCgxKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnQHByeS5hZG1pbi5jbGFzc2VzLmxpbmtlZE9iamVjdHMnIHwgaTE4biB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiby10YWJzX19wYW5lbHNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiby10YWJzX19wYW5lbHNfX2l0ZW1cIlxuICAgICAgICAgIFtjbGFzcy5pcy1oaWRkZW5dPVwidGFiICE9PSAwXCJcbiAgICAgICAgICBbaWRdPVwiJ3RhYnBhbmVsLScgKyBjb21wSWQgKyAnLTAnXCJcbiAgICAgICAgICByb2xlPVwidGFicGFuZWxcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIndGFiLScgKyBjb21wSWQgKyAnLTAnXCJcbiAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8tdGFic19fcGFuZWxzX19pdGVtX19jb250ZW50XCI+XG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJhLWg0XCI+e3sgJ0BwcnkuYWRtaW4ucHJvcGVydGllcycgfCBpMThuIH19PC9oND5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiYS1wXCI+XG4gICAgICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLmNsYXNzZXMubmFtZScgfCBpMThuIH19IDpcbiAgICAgICAgICAgICAgPHN0cm9uZz57eyBjbGF6ei5uYW1lIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImEtcCB1LWRpc3BsYXktZmxleCAtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuaW1hZ2UnIHwgaTE4biB9fSA6XG4gICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiMjVcIlxuICAgICAgICAgICAgICAgIFt3aWR0aF09XCIyNVwiXG4gICAgICAgICAgICAgICAgW3NyY109XCJjbGF6ei5pZCB8IHRyYW5zbGF0ZUlkOiB7IHR5cGU6ICdjbGFzcycsIG91dHB1dDogJ2ljb24nIH0gfCBhc3luY1wiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJvLXRhYnNfX3BhbmVsc19faXRlbVwiXG4gICAgICAgICAgW2NsYXNzLmlzLWhpZGRlbl09XCJ0YWIgIT09IDFcIlxuICAgICAgICAgIFtpZF09XCIndGFicGFuZWwtJyArIGNvbXBJZCArICctMSdcIlxuICAgICAgICAgIHJvbGU9XCJ0YWJwYW5lbFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIid0YWItJyArIGNvbXBJZCArICctMSdcIlxuICAgICAgICAgIHRhYmluZGV4PVwiMVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby10YWJzX19wYW5lbHNfX2l0ZW1fX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImEtdGFibGVcIj5cbiAgICAgICAgICAgICAgPGNhcHRpb24+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICdAcHJ5LmFkbWluLmRhdGFzZXQudGl0bGUnIHwgaTE4blxuICAgICAgICAgICAgICAgIH19LFxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAnQHByeS5hY3Rpb24uc29ydGFibGVDb2x1bW5IZWFkZXInIHwgaTE4blxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIDwvY2FwdGlvbj5cbiAgICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgIDx0aD57eyAnQHByeS5hZG1pbi5jbGFzc2VzLm5hbWUnIHwgaTE4biB9fTwvdGg+XG4gICAgICAgICAgICAgICAgICA8dGg+e3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy50eXBlJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IG9iamVjdCBvZiBsaW5rZWRPYmplY3RzJCB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgICA8dGQ+e3sgb2JqZWN0Lm5hbWUgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgPHRkPnt7ICdAcHJ5LmFkbWluLmRhdGFzZXQudGl0bGUnIHwgaTE4biB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3Nlcy1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtc2VsZWN0L2FkbWluLWNsYXNzZXMtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXNlbGVjdC9hZG1pbi1jbGFzc2VzLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUF1QixtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxHQUFHLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7OztBQUVoRSxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFNbkIsTUFBTSxPQUFPLDJCQUEyQjthQUMvQixPQUFFLEdBQUcsNkJBQTZCLENBQUM7SUFRMUMsWUFBb0IsS0FBaUIsRUFBVSxNQUFjLEVBQVUsS0FBcUI7UUFBeEUsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFV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RSxLQUFLLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNqQixZQUFZLENBQUMsV0FBVyxDQUFDO1lBQ3ZCLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxNQUFNLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztvQkFDdkQsS0FBSyxFQUFFLEtBQUs7b0JBQ1osSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLFlBQVksRUFBRSxPQUFPO29CQUNyQixVQUFVLEVBQUUsU0FBUztvQkFDckIsWUFBWSxFQUFFLE9BQU87aUJBQ3RCO2FBQ0Y7U0FDRixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OEdBckdVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGdFQ2pCeEMsK3JLQWtKQTs7MkZEaklhLDJCQUEyQjtrQkFKdkMsU0FBUzsrQkFDRSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGNvbmNhdExhdGVzdEZyb20gfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQXNzb2NpYXRpb25zLCBDbGFzcywgRGF0YVNvdXJjZVNlbGVjdG9ycyB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWRtaW5BY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvYWRtaW4uYWN0aW9ucyc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzQWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlL2FkbWluLWNsYXNzLmFjdGlvbnMnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc1NlbGVjdG9ycyB9IGZyb20gJy4uL3N0b3JlL2FkbWluLWNsYXNzLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBBZG1pblNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2FkbWluLnNlbGVjdG9ycyc7XG5cbmxldCBuZXh0Q29tcElkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWFkbWluLWNsYXNzZXMtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkbWluLWNsYXNzZXMtc2VsZWN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZG1pbkNsYXNzZXNTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHN0YXRpYyBpZCA9ICdBZG1pbkNsYXNzZXNTZWxlY3RDb21wb25lbnQnO1xuICBjb21wSWQ6IG51bWJlcjtcbiAgdGFiOiBudW1iZXIgPSAwO1xuICBzdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIGN1cnJlbnRDbGFzcyQ6IE9ic2VydmFibGU8Q2xhc3MgfCB1bmRlZmluZWQ+O1xuICBsaW5rZWRPYmplY3RzJDogT2JzZXJ2YWJsZTxhbnlbXT47XG4gIGFzc29jaWF0aW9ucyQ6IE9ic2VydmFibGU8QXNzb2NpYXRpb25zIHwgdW5kZWZpbmVkPjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZTxhbnk+LCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgIHRoaXMuY3VycmVudENsYXNzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KEFkbWluQ2xhc3NTZWxlY3RvcnMuc2VsZWN0ZWRDbGFzcyk7XG4gICAgdGhpcy5hc3NvY2lhdGlvbnMkID0gdGhpcy5zdG9yZS5zZWxlY3QoQWRtaW5TZWxlY3RvcnMuc2VsZWN0ZWRBc3NvY2lhdGlvbik7XG4gICAgdGhpcy5jb21wSWQgPSBuZXh0Q29tcElkKys7XG4gICAgdGhpcy5saW5rZWRPYmplY3RzJCA9IHRoaXMuY3VycmVudENsYXNzJC5waXBlKFxuICAgICAgY29uY2F0TGF0ZXN0RnJvbSgoY2xhenopID0+IHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZGF0YXNldHMpKSxcbiAgICAgIG1hcCgoW2NsYXp6LCBkYXRhc2V0c10pID0+IGRhdGFzZXRzLmZpbHRlcigoZGF0YXNldCkgPT4gZGF0YXNldC5vQ2xhc3MgPT09IGNsYXp6Py5pZCkpXG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViLmFkZChcbiAgICAgIHRoaXMuY3VycmVudENsYXNzJC5waXBlKGNvbmNhdExhdGVzdEZyb20oKGNsYXp6KSA9PiB0aGlzLmxpbmtlZE9iamVjdHMkKSkuc3Vic2NyaWJlKChbY2xhenosIGxpbmtlZE9iamVjdHNdKSA9PiB7XG4gICAgICAgIGlmIChjbGF6eikge1xuICAgICAgICAgIGNvbnN0IG5ld1BhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLicsICdjbGFzc2VzJywgJ25ldyddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgICAgICAgY29uc3QgZWRpdFBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLicsICdjbGFzc2VzJywgY2xhenouaWQsICdlZGl0J10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICAgICAgICBjb25zdCBjdXN0b21pemVQYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4nLCAnY2xhc3NlcycsIGNsYXp6LmlkLCAnY3VzdG9taXplJ10sIHtcbiAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zdCB2aWV3QXR0cmlidXRlc1BhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLicsICdjbGFzc2VzJywgY2xhenouaWRdLCB7XG4gICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgIEFkbWluQWN0aW9ucy5tYWluQWN0aW9ucyh7XG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBhY3Rpb246IEFkbWluQWN0aW9ucy5yb3V0ZVRvKHsgcGF0aDogZWRpdFBhdGgudG9TdHJpbmcoKSB9KSxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAncmVuYW1lJyxcbiAgICAgICAgICAgICAgICAgIGljb246ICdlZGl0JyxcbiAgICAgICAgICAgICAgICAgIG1vZHVsZUFjY2VzczogJ2FkbWluJyxcbiAgICAgICAgICAgICAgICAgIHBhZ2VBY2Nlc3M6ICdjbGFzc2VzJyxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbkFjY2VzczogJ3dyaXRlJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWN0aW9uOiBBZG1pbkNsYXNzQWN0aW9ucy5jb25maXJtQ2xhc3NEZWxldGlvbih7IGlkOiBjbGF6ei5pZCwgcGF0aDogbmV3UGF0aC50b1N0cmluZygpIH0pLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdkZWxldGUnLFxuICAgICAgICAgICAgICAgICAgaWNvbjogJ2RlbGV0ZScsXG4gICAgICAgICAgICAgICAgICBtb2R1bGVBY2Nlc3M6ICdhZG1pbicsXG4gICAgICAgICAgICAgICAgICBwYWdlQWNjZXNzOiAnY2xhc3NlcycsXG4gICAgICAgICAgICAgICAgICBhY3Rpb25BY2Nlc3M6ICd3cml0ZScsXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZDogbGlua2VkT2JqZWN0cy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBhY3Rpb246IEFkbWluQWN0aW9ucy5yb3V0ZVRvKHsgcGF0aDogY3VzdG9taXplUGF0aC50b1N0cmluZygpIH0pLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdjdXN0b21pemUudGl0bGUnLFxuICAgICAgICAgICAgICAgICAgaWNvbjogJ2NoYXQtc2V0dGluZ3MnLFxuICAgICAgICAgICAgICAgICAgbW9kdWxlQWNjZXNzOiAnYWRtaW4nLFxuICAgICAgICAgICAgICAgICAgcGFnZUFjY2VzczogJ2NsYXNzZXMnLFxuICAgICAgICAgICAgICAgICAgYWN0aW9uQWNjZXNzOiAnd3JpdGUnXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBhY3Rpb246IEFkbWluQWN0aW9ucy5yb3V0ZVRvKHsgcGF0aDogdmlld0F0dHJpYnV0ZXNQYXRoLnRvU3RyaW5nKCkgfSksXG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ2VkaXQnLFxuICAgICAgICAgICAgICAgICAgaWNvbjogJ2FkbWluJyxcbiAgICAgICAgICAgICAgICAgIG1vZHVsZUFjY2VzczogJ2FkbWluJyxcbiAgICAgICAgICAgICAgICAgIHBhZ2VBY2Nlc3M6ICdjbGFzc2VzJyxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbkFjY2VzczogJ3dyaXRlJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzd2l0Y2gobnVtYmVyOiBudW1iZXIpIHtcbiAgICB0aGlzLnRhYiA9IG51bWJlcjtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBjbG9zZVBhbmVsKCkge1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLicsICdjbGFzc2VzJywgJ25ldyddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkNsYXNzQWN0aW9ucy51bnNlbGVjdENsYXNzKCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5BY3Rpb25zLnRvZ2dsZVBhbmVsKHsgcGFuZWxPcGVuOiBmYWxzZSB9KSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIEFkbWluQWN0aW9ucy5tYWluQWN0aW9ucyh7XG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhY3Rpb246IEFkbWluQWN0aW9ucy5yb3V0ZVRvKHsgcGF0aDogcGF0aC50b1N0cmluZygpIH0pLFxuICAgICAgICAgICAgbGFiZWw6ICdhZGQnLFxuICAgICAgICAgICAgaWNvbjogJ2FkZF9jb2x1bW4nLFxuICAgICAgICAgICAgbW9kdWxlQWNjZXNzOiAnYWRtaW4nLFxuICAgICAgICAgICAgcGFnZUFjY2VzczogJ2NsYXNzZXMnLFxuICAgICAgICAgICAgYWN0aW9uQWNjZXNzOiAnd3JpdGUnXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJjdXJyZW50Q2xhc3MkIHwgYXN5bmMgYXMgY2xhenpcIlxuICBbaWRdPVwiJ3BhbmVsLWNsYXNzLScgKyBjbGF6ei5pZFwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInYnV0dG9uLWNsYXNzLScgKyBjbGF6ei5pZFwiXG4gIGNsYXNzPVwiby1wYW5lbFwiXG4+XG4gIDxkaXY+XG4gICAgPGRpdiBjbGFzcz1cIm8tcGFuZWxfX2hlYWRlclwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCIgKGNsaWNrKT1cImNsb3NlUGFuZWwoKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkuYWN0aW9uLmNsb3NlUGFuZWwnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiPjwvcHJ5LWljb24+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGgzIFtpZF09XCIndGFiLXRpdGxlLScgKyBjb21wSWRcIiBjbGFzcz1cImEtaDNcIj5cbiAgICAgICAge3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5pbmZvJyB8IGkxOG4gfX1cbiAgICAgIDwvaDM+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiby10YWJzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby10YWJzX19saXN0XCIgcm9sZT1cInRhYmxpc3RcIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ3RhYi10aXRsZS0nICsgY29tcElkXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cIm8tdGFic19fbGlzdF9fYnRuXCJcbiAgICAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICAgICBbaWRdPVwiJ3RhYi0nICsgY29tcElkICsgJy0wJ1wiXG4gICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJ0YWIgPT09IDBcIlxuICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYiA9PT0gMCA/IDAgOiAtMVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCIndGFicGFuZWwtJyArIGNvbXBJZCArICctMCdcIlxuICAgICAgICAgIChjbGljayk9XCJzd2l0Y2goMClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0BwcnkuYWRtaW4uZGV0YWlscycgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJvLXRhYnNfX2xpc3RfX2J0blwiXG4gICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgW2lkXT1cIid0YWItJyArIGNvbXBJZCArICctMSdcIlxuICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwidGFiID09PSAxXCJcbiAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWIgPT09IDEgPyAxIDogLTFcIlxuICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ3RhYnBhbmVsLScgKyBjb21wSWQgKyAnLTEnXCJcbiAgICAgICAgICAoY2xpY2spPVwic3dpdGNoKDEpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLmNsYXNzZXMubGlua2VkT2JqZWN0cycgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJvLXRhYnNfX2xpc3RfX2J0blwiXG4gICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgW2lkXT1cIid0YWItJyArIGNvbXBJZCArICctMidcIlxuICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwidGFiID09PSAyXCJcbiAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWIgPT09IDIgPyAyIDogLTJcIlxuICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ3RhYnBhbmVsLScgKyBjb21wSWQgKyAnLTInXCJcbiAgICAgICAgICAoY2xpY2spPVwic3dpdGNoKDIpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuYXNzb2NpYXRpb25zJyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm8tdGFic19fcGFuZWxzXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm8tdGFic19fcGFuZWxzX19pdGVtXCJcbiAgICAgICAgICBbY2xhc3MuaXMtaGlkZGVuXT1cInRhYiAhPT0gMFwiXG4gICAgICAgICAgW2lkXT1cIid0YWJwYW5lbC0nICsgY29tcElkICsgJy0wJ1wiXG4gICAgICAgICAgcm9sZT1cInRhYnBhbmVsXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ3RhYi0nICsgY29tcElkICsgJy0wJ1wiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXRhYnNfX3BhbmVsc19faXRlbV9fY29udGVudFwiPlxuICAgICAgICAgICAgPGg0IGNsYXNzPVwiYS1oNFwiPnt7ICdAcHJ5LmFkbWluLnByb3BlcnRpZXMnIHwgaTE4biB9fTwvaDQ+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImEtcFwiPlxuICAgICAgICAgICAgICB7eyAnQHByeS5hZG1pbi5jbGFzc2VzLm5hbWUnIHwgaTE4biB9fSA6XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgY2xhenoubmFtZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJhLXAgdS1kaXNwbGF5LWZsZXggLWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICB7eyAnQHByeS5hZG1pbi5jbGFzc2VzLmltYWdlJyB8IGkxOG4gfX0gOlxuICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIjI1XCJcbiAgICAgICAgICAgICAgICBbd2lkdGhdPVwiMjVcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiY2xhenouaWQgfCB0cmFuc2xhdGVJZCA6IHsgdHlwZTogJ2NsYXNzJywgb3V0cHV0OiAnaWNvbicgfSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm8tdGFic19fcGFuZWxzX19pdGVtXCJcbiAgICAgICAgICBbY2xhc3MuaXMtaGlkZGVuXT1cInRhYiAhPT0gMVwiXG4gICAgICAgICAgW2lkXT1cIid0YWJwYW5lbC0nICsgY29tcElkICsgJy0xJ1wiXG4gICAgICAgICAgcm9sZT1cInRhYnBhbmVsXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ3RhYi0nICsgY29tcElkICsgJy0xJ1wiXG4gICAgICAgICAgdGFiaW5kZXg9XCIxXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXRhYnNfX3BhbmVsc19faXRlbV9fY29udGVudFwiPlxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwiYS10YWJsZVwiPlxuICAgICAgICAgICAgICA8Y2FwdGlvbj5cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgJ0BwcnkuYWRtaW4uZGF0YXNldC50aXRsZScgfCBpMThuXG4gICAgICAgICAgICAgICAgfX0sXG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICdAcHJ5LmFjdGlvbi5zb3J0YWJsZUNvbHVtbkhlYWRlcicgfCBpMThuXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9jYXB0aW9uPlxuICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgPHRoPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMubmFtZScgfCBpMThuIH19PC90aD5cbiAgICAgICAgICAgICAgICAgIDx0aD57eyAnQHByeS5hZG1pbi5jbGFzc2VzLnR5cGUnIHwgaTE4biB9fTwvdGg+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgb2JqZWN0IG9mIGxpbmtlZE9iamVjdHMkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZD57eyBvYmplY3QubmFtZSB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICA8dGQ+e3sgJ0BwcnkuYWRtaW4uZGF0YXNldC50aXRsZScgfCBpMThuIH19PC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm8tdGFic19fcGFuZWxzX19pdGVtXCJcbiAgICAgICAgICBbY2xhc3MuaXMtaGlkZGVuXT1cInRhYiAhPT0gMlwiXG4gICAgICAgICAgW2lkXT1cIid0YWJwYW5lbC0nICsgY29tcElkICsgJy0xJ1wiXG4gICAgICAgICAgcm9sZT1cInRhYnBhbmVsXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ3RhYi0nICsgY29tcElkICsgJy0xJ1wiXG4gICAgICAgICAgdGFiaW5kZXg9XCIyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJhc3NvY2lhdGlvbnMkIHwgYXN5bmMgYXMgYXNzb2NpYXRpb25zXCIgY2xhc3M9XCJvLXRhYnNfX3BhbmVsc19faXRlbV9fY29udGVudFwiPlxuICAgICAgICAgICAgPGg0IGNsYXNzPVwiYS1oNFwiPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuYXNzb2NpYXRpb25zJyB8IGkxOG4gfX08L2g0PlxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYXNzb2NpYXRpb24gb2YgYXNzb2NpYXRpb25zLmFzc29jaWF0aW9uc1wiPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cImEtcFwiPlxuICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLmNsYXNzZXMubmFtZScgfCBpMThuIH19IDpcbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IGFzc29jaWF0aW9uLm5hbWUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cImEtcFwiPlxuICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLmNsYXNzZXMudHlwZScgfCBpMThuIH19IDpcbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IGFzc29jaWF0aW9uLnR5cGUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8cCAqbmdJZj1cImFzc29jaWF0aW9ucy51c2VkRWxzZXdoZXJlID09PSB0cnVlXCIgY2xhc3M9XCJhLXBcIj5cbiAgICAgICAgICAgICAgPHN0cm9uZz57eyAnQHByeS5hZG1pbi5jbGFzc2VzLnVzZWRFbHNld2hlcmUnIHwgaTE4biB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -57,6 +57,7 @@ export class AdminClassesComponent {
|
|
|
57
57
|
this.store.dispatch(AdminActions.routeTo({ path: path.toString() }));
|
|
58
58
|
}
|
|
59
59
|
selectClass(clazz) {
|
|
60
|
+
this.store.dispatch(AdminActions.fetchClassAssociations({ id: clazz.id }));
|
|
60
61
|
this.store.dispatch(AdminClassActions.selectClass({ clazz: clazz }));
|
|
61
62
|
this.store.dispatch(AdminActions.selectComponentType({ componentType: 'AdminClassesSelectComponent' }));
|
|
62
63
|
}
|
|
@@ -67,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
67
68
|
type: Component,
|
|
68
69
|
args: [{ selector: 'pry-admin-classes', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ '@pry.admin.classes.list' | i18n }}</h1>\n <table\n class=\"a-table\"\n prySortTable\n prySortActive=\"name\"\n prySortDirection=\"asc\"\n (prySortChange)=\"sortActive = $event.active; sortDirection = $event.direction\"\n >\n <caption>\n {{\n '@pry.admin.classes.list' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th></th>\n <th prySortHeader=\"image\">{{ '@pry.admin.classes.image' | i18n }}</th>\n <th prySortHeader=\"name\">{{ '@pry.admin.classes.name' | i18n }}</th>\n <th prySortHeader=\"lines\">{{ '@pry.admin.menus.dataset' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let clazz of classesInputFlows$ | async | prySortData: sortActive : sortDirection\"\n (click)=\"selectClass(clazz)\"\n [class.is-selected]=\"(selectedClassId$ | async) === clazz.id\"\n >\n <td class=\"view-details\">\n <button\n id=\"button-class-{{ clazz.id }}\"\n type=\"button\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.action.viewDetails' | i18n }}\"\n [attr.aria-expanded]=\"(selectedClassId$ | async) === clazz.id\"\n aria-haspopup\n [attr.aria-controls]=\"'panel-class-' + clazz.id\"\n >\n <span class=\"u-visually-hidden\">{{ clazz.name }}, {{ '@pry.action.viewDetails' | i18n }}</span>\n <pry-icon iconSvg=\"eye\" [width]=\"15\" [height]=\"15\"></pry-icon>\n </button>\n </td>\n <td>\n <img\n alt=\"\"\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"clazz.id | translateId: { type: 'class', output: 'icon' } | async\"\n />\n </td>\n <td>{{ clazz.name }}</td>\n <td>{{ clazz.count }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
|
|
69
70
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3Nlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUc3RCxPQUFPLEVBQVMsWUFBWSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQWdCLE1BQU0sb0JBQW9CLENBQUM7QUFDdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0FBTXBFLE1BQU0sT0FBTyxxQkFBcUI7SUFTaEMsWUFDVSxLQUFpQixFQUNqQixNQUFjLEVBQ2QsS0FBcUI7UUFGckIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFQL0IsZUFBVSxHQUFJLE1BQU0sQ0FBQztRQUNyQixrQkFBYSxHQUFJLEtBQUssQ0FBQztRQUN2QixRQUFHLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU92QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsZ0JB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T0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVk7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsRUFBRSxhQUFhLEVBQUUsNkJBQTZCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUcsQ0FBQzs4R0FoRVUscUJBQXFCO2tHQUFyQixxQkFBcUIseURDYmxDLDIrREEyREE7OzJGRDlDYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0UsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IENsYXNzLCBDbGFzc0FjdGlvbnMsIENsYXNzU2VsZWN0b3JzLCBDb25maWdBY3Rpb25zLCBEYXRhc2V0Q291bnQgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFkbWluQWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL2FkbWluLmFjdGlvbnMnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc0FjdGlvbnMgfSBmcm9tICcuL3N0b3JlL2FkbWluLWNsYXNzLmFjdGlvbnMnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc1NlbGVjdG9ycyB9IGZyb20gJy4vc3RvcmUvYWRtaW4tY2xhc3Muc2VsZWN0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWFkbWluLWNsYXNzZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRtaW4tY2xhc3Nlcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWRtaW5DbGFzc2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBjbGFzc2VzJDogT2JzZXJ2YWJsZTxDbGFzc1tdPjtcbiAgc2VsZWN0ZWRDbGFzc0lkJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBkYXRhc2V0Q291bnRzJDogT2JzZXJ2YWJsZTxEYXRhc2V0Q291bnRbXT47XG4gIGNsYXNzZXNJbnB1dEZsb3dzJDogT2JzZXJ2YWJsZTxhbnlbXT47XG4gIHNvcnRBY3RpdmU/ID0gJ25hbWUnO1xuICBzb3J0RGlyZWN0aW9uPyA9ICdhc2MnO1xuICBzdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ2xhc3NBY3Rpb25zLmxvYWREYXRhc2V0Q291bnQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDbGFzc0FjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnVuc2VsZWN0Q2xhc3MoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkNsYXNzQWN0aW9ucy5yZXNldEludGVyQ2xhc3MoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmxvYWRDdXN0b21pemF0aW9uKCkpO1xuICAgIHRoaXMuY2xhc3NlcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc2VzKTtcbiAgICB0aGlzLnNlbGVjdGVkQ2xhc3NJZCQgPSB0aGlzLnN0b3JlLnNlbGVjdChBZG1pbkNsYXNzU2VsZWN0b3JzLnNlbGVjdGVkQ2xhc3NJZCk7XG4gICAgdGhpcy5kYXRhc2V0Q291bnRzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KENsYXNzU2VsZWN0b3JzLmRhdGFzZXRDb3VudHMpO1xuICAgIHRoaXMuY2xhc3Nlc0lucHV0Rmxvd3MkID0gY29tYmluZUxhdGVzdChbdGhpcy5jbGFzc2VzJCwgdGhpcy5kYXRhc2V0Q291bnRzJF0pLnBpcGUoXG4gICAgICBtYXAoKFtjbGFzc2VzLCBkYXRhc2V0Q291bnRzXSkgPT4ge1xuICAgICAgICByZXR1cm4gY2xhc3Nlcy5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICAgIGNvdW50OiBkYXRhc2V0Q291bnRzLmZpbmQoKGRhdGFzZXRDb3VudCkgPT4gZGF0YXNldENvdW50LmlkID09PSBpdGVtLmlkKT8uY291bnQgfHwgMFxuICAgICAgICB9KSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4nLCAnbmV3J10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgQWRtaW5BY3Rpb25zLm1haW5BY3Rpb25zKHtcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFjdGlvbjogQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBwYXRoLnRvU3RyaW5nKCkgfSksXG4gICAgICAgICAgICBsYWJlbDogJ2FkZCcsXG4gICAgICAgICAgICBpY29uOiAnYWRkX2NvbHVtbicsXG4gICAgICAgICAgICBtb2R1bGVBY2Nlc3M6ICdhZG1pbicsXG4gICAgICAgICAgICBwYWdlQWNjZXNzOiAnY2xhc3NlcycsXG4gICAgICAgICAgICBhY3Rpb25BY2Nlc3M6ICd3cml0ZSdcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICB2aWV3QXR0cmlidXRlc0NsYXNzKGNsYXp6OiBDbGFzcykge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5DbGFzc0FjdGlvbnMuc2VsZWN0Q2xhc3MoeyBjbGF6ejogY2xhenogfSkpO1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLicsIGNsYXp6LmlkXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBwYXRoLnRvU3RyaW5nKCkgfSkpO1xuICB9XG5cbiAgc2VsZWN0Q2xhc3MoY2xheno6IENsYXNzKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkNsYXNzQWN0aW9ucy5zZWxlY3RDbGFzcyh7IGNsYXp6OiBjbGF6eiB9KSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkFjdGlvbnMuc2VsZWN0Q29tcG9uZW50VHlwZSh7IGNvbXBvbmVudFR5cGU6ICdBZG1pbkNsYXNzZXNTZWxlY3RDb21wb25lbnQnIH0pKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm8tYmFzZS1jb250YWluZXJcIj5cbiAgPGgxIGNsYXNzPVwiYS1oMVwiPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMubGlzdCcgfCBpMThuIH19PC9oMT5cbiAgPHRhYmxlXG4gICAgY2xhc3M9XCJhLXRhYmxlXCJcbiAgICBwcnlTb3J0VGFibGVcbiAgICBwcnlTb3J0QWN0aXZlPVwibmFtZVwiXG4gICAgcHJ5U29ydERpcmVjdGlvbj1cImFzY1wiXG4gICAgKHByeVNvcnRDaGFuZ2UpPVwic29ydEFjdGl2ZSA9ICRldmVudC5hY3RpdmU7IHNvcnREaXJlY3Rpb24gPSAkZXZlbnQuZGlyZWN0aW9uXCJcbiAgPlxuICAgIDxjYXB0aW9uPlxuICAgICAge3tcbiAgICAgICAgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5saXN0JyB8IGkxOG5cbiAgICAgIH19LFxuICAgICAge3tcbiAgICAgICAgJ0BwcnkuYWN0aW9uLnNvcnRhYmxlQ29sdW1uSGVhZGVyJyB8IGkxOG5cbiAgICAgIH19XG4gICAgPC9jYXB0aW9uPlxuICAgIDx0aGVhZD5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgIDx0aCBwcnlTb3J0SGVhZGVyPVwiaW1hZ2VcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmltYWdlJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICA8dGggcHJ5U29ydEhlYWRlcj1cIm5hbWVcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLm5hbWUnIHwgaTE4biB9fTwvdGg+XG4gICAgICAgIDx0aCBwcnlTb3J0SGVhZGVyPVwibGluZXNcIj57eyAnQHByeS5hZG1pbi5tZW51cy5kYXRhc2V0JyB8IGkxOG4gfX08L3RoPlxuICAgICAgPC90cj5cbiAgICA8L3RoZWFkPlxuICAgIDx0Ym9keT5cbiAgICAgIDx0clxuICAgICAgICAqbmdGb3I9XCJsZXQgY2xhenogb2YgY2xhc3Nlc0lucHV0Rmxvd3MkIHwgYXN5bmMgfCBwcnlTb3J0RGF0YTogc29ydEFjdGl2ZSA6IHNvcnREaXJlY3Rpb25cIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0Q2xhc3MoY2xhenopXCJcbiAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cIihzZWxlY3RlZENsYXNzSWQkIHwgYXN5bmMpID09PSBjbGF6ei5pZFwiXG4gICAgICA+XG4gICAgICAgIDx0ZCBjbGFzcz1cInZpZXctZGV0YWlsc1wiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwiYnV0dG9uLWNsYXNzLXt7IGNsYXp6LmlkIH19XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ0BwcnkuYWN0aW9uLnZpZXdEZXRhaWxzJyB8IGkxOG4gfX1cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIoc2VsZWN0ZWRDbGFzc0lkJCB8IGFzeW5jKSA9PT0gY2xhenouaWRcIlxuICAgICAgICAgICAgYXJpYS1oYXNwb3B1cFxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCIncGFuZWwtY2xhc3MtJyArIGNsYXp6LmlkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgY2xhenoubmFtZSB9fSwge3sgJ0BwcnkuYWN0aW9uLnZpZXdEZXRhaWxzJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImV5ZVwiIFt3aWR0aF09XCIxNVwiIFtoZWlnaHRdPVwiMTVcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQ+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgIFtoZWlnaHRdPVwiMjVcIlxuICAgICAgICAgICAgW3dpZHRoXT1cIjI1XCJcbiAgICAgICAgICAgIFtzcmNdPVwiY2xhenouaWQgfCB0cmFuc2xhdGVJZDogeyB0eXBlOiAnY2xhc3MnLCBvdXRwdXQ6ICdpY29uJyB9IHwgYXN5bmNcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZD57eyBjbGF6ei5uYW1lIH19PC90ZD5cbiAgICAgICAgPHRkPnt7IGNsYXp6LmNvdW50IH19PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC90Ym9keT5cbiAgPC90YWJsZT5cbjwvZGl2PlxuIl19
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3Nlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUc3RCxPQUFPLEVBQVMsWUFBWSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQWdCLE1BQU0sb0JBQW9CLENBQUM7QUFDdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0FBTXBFLE1BQU0sT0FBTyxxQkFBcUI7SUFTaEMsWUFBb0IsS0FBaUIsRUFBVSxNQUFjLEVBQVUsS0FBcUI7UUFBeEUsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUo1RixlQUFVLEdBQUksTUFBTSxDQUFDO1FBQ3JCLGtCQUFhLEdBQUksS0FBSyxDQUFDO1FBQ3ZCLFFBQUcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxnQkFB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QUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBWTtRQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLGFBQWEsRUFBRSw2QkFBNkIsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxRyxDQUFDOzhHQTdEVSxxQkFBcUI7a0dBQXJCLHFCQUFxQix5RENibEMsMitEQTJEQTs7MkZEOUNhLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDRSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQ2xhc3MsIENsYXNzQWN0aW9ucywgQ2xhc3NTZWxlY3RvcnMsIENvbmZpZ0FjdGlvbnMsIERhdGFzZXRDb3VudCB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWRtaW5BY3Rpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvYWRtaW4uYWN0aW9ucyc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzQWN0aW9ucyB9IGZyb20gJy4vc3RvcmUvYWRtaW4tY2xhc3MuYWN0aW9ucyc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzU2VsZWN0b3JzIH0gZnJvbSAnLi9zdG9yZS9hZG1pbi1jbGFzcy5zZWxlY3RvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktYWRtaW4tY2xhc3NlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi1jbGFzc2VzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZG1pbkNsYXNzZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGNsYXNzZXMkOiBPYnNlcnZhYmxlPENsYXNzW10+O1xuICBzZWxlY3RlZENsYXNzSWQkOiBPYnNlcnZhYmxlPHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIGRhdGFzZXRDb3VudHMkOiBPYnNlcnZhYmxlPERhdGFzZXRDb3VudFtdPjtcbiAgY2xhc3Nlc0lucHV0Rmxvd3MkOiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgc29ydEFjdGl2ZT8gPSAnbmFtZSc7XG4gIHNvcnREaXJlY3Rpb24/ID0gJ2FzYyc7XG4gIHN1YiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZTxhbnk+LCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ2xhc3NBY3Rpb25zLmxvYWREYXRhc2V0Q291bnQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDbGFzc0FjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnVuc2VsZWN0Q2xhc3MoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkNsYXNzQWN0aW9ucy5yZXNldEludGVyQ2xhc3MoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmxvYWRDdXN0b21pemF0aW9uKCkpO1xuICAgIHRoaXMuY2xhc3NlcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc2VzKTtcbiAgICB0aGlzLnNlbGVjdGVkQ2xhc3NJZCQgPSB0aGlzLnN0b3JlLnNlbGVjdChBZG1pbkNsYXNzU2VsZWN0b3JzLnNlbGVjdGVkQ2xhc3NJZCk7XG4gICAgdGhpcy5kYXRhc2V0Q291bnRzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KENsYXNzU2VsZWN0b3JzLmRhdGFzZXRDb3VudHMpO1xuICAgIHRoaXMuY2xhc3Nlc0lucHV0Rmxvd3MkID0gY29tYmluZUxhdGVzdChbdGhpcy5jbGFzc2VzJCwgdGhpcy5kYXRhc2V0Q291bnRzJF0pLnBpcGUoXG4gICAgICBtYXAoKFtjbGFzc2VzLCBkYXRhc2V0Q291bnRzXSkgPT4ge1xuICAgICAgICByZXR1cm4gY2xhc3Nlcy5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICAgIGNvdW50OiBkYXRhc2V0Q291bnRzLmZpbmQoKGRhdGFzZXRDb3VudCkgPT4gZGF0YXNldENvdW50LmlkID09PSBpdGVtLmlkKT8uY291bnQgfHwgMFxuICAgICAgICB9KSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4nLCAnbmV3J10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgQWRtaW5BY3Rpb25zLm1haW5BY3Rpb25zKHtcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFjdGlvbjogQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBwYXRoLnRvU3RyaW5nKCkgfSksXG4gICAgICAgICAgICBsYWJlbDogJ2FkZCcsXG4gICAgICAgICAgICBpY29uOiAnYWRkX2NvbHVtbicsXG4gICAgICAgICAgICBtb2R1bGVBY2Nlc3M6ICdhZG1pbicsXG4gICAgICAgICAgICBwYWdlQWNjZXNzOiAnY2xhc3NlcycsXG4gICAgICAgICAgICBhY3Rpb25BY2Nlc3M6ICd3cml0ZSdcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICB2aWV3QXR0cmlidXRlc0NsYXNzKGNsYXp6OiBDbGFzcykge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5DbGFzc0FjdGlvbnMuc2VsZWN0Q2xhc3MoeyBjbGF6ejogY2xhenogfSkpO1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLicsIGNsYXp6LmlkXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBwYXRoLnRvU3RyaW5nKCkgfSkpO1xuICB9XG5cbiAgc2VsZWN0Q2xhc3MoY2xheno6IENsYXNzKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkFjdGlvbnMuZmV0Y2hDbGFzc0Fzc29jaWF0aW9ucyh7IGlkOiBjbGF6ei5pZCB9KSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkNsYXNzQWN0aW9ucy5zZWxlY3RDbGFzcyh7IGNsYXp6OiBjbGF6eiB9KSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkFjdGlvbnMuc2VsZWN0Q29tcG9uZW50VHlwZSh7IGNvbXBvbmVudFR5cGU6ICdBZG1pbkNsYXNzZXNTZWxlY3RDb21wb25lbnQnIH0pKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm8tYmFzZS1jb250YWluZXJcIj5cbiAgPGgxIGNsYXNzPVwiYS1oMVwiPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMubGlzdCcgfCBpMThuIH19PC9oMT5cbiAgPHRhYmxlXG4gICAgY2xhc3M9XCJhLXRhYmxlXCJcbiAgICBwcnlTb3J0VGFibGVcbiAgICBwcnlTb3J0QWN0aXZlPVwibmFtZVwiXG4gICAgcHJ5U29ydERpcmVjdGlvbj1cImFzY1wiXG4gICAgKHByeVNvcnRDaGFuZ2UpPVwic29ydEFjdGl2ZSA9ICRldmVudC5hY3RpdmU7IHNvcnREaXJlY3Rpb24gPSAkZXZlbnQuZGlyZWN0aW9uXCJcbiAgPlxuICAgIDxjYXB0aW9uPlxuICAgICAge3tcbiAgICAgICAgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5saXN0JyB8IGkxOG5cbiAgICAgIH19LFxuICAgICAge3tcbiAgICAgICAgJ0BwcnkuYWN0aW9uLnNvcnRhYmxlQ29sdW1uSGVhZGVyJyB8IGkxOG5cbiAgICAgIH19XG4gICAgPC9jYXB0aW9uPlxuICAgIDx0aGVhZD5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgIDx0aCBwcnlTb3J0SGVhZGVyPVwiaW1hZ2VcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmltYWdlJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICA8dGggcHJ5U29ydEhlYWRlcj1cIm5hbWVcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLm5hbWUnIHwgaTE4biB9fTwvdGg+XG4gICAgICAgIDx0aCBwcnlTb3J0SGVhZGVyPVwibGluZXNcIj57eyAnQHByeS5hZG1pbi5tZW51cy5kYXRhc2V0JyB8IGkxOG4gfX08L3RoPlxuICAgICAgPC90cj5cbiAgICA8L3RoZWFkPlxuICAgIDx0Ym9keT5cbiAgICAgIDx0clxuICAgICAgICAqbmdGb3I9XCJsZXQgY2xhenogb2YgY2xhc3Nlc0lucHV0Rmxvd3MkIHwgYXN5bmMgfCBwcnlTb3J0RGF0YTogc29ydEFjdGl2ZSA6IHNvcnREaXJlY3Rpb25cIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0Q2xhc3MoY2xhenopXCJcbiAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cIihzZWxlY3RlZENsYXNzSWQkIHwgYXN5bmMpID09PSBjbGF6ei5pZFwiXG4gICAgICA+XG4gICAgICAgIDx0ZCBjbGFzcz1cInZpZXctZGV0YWlsc1wiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwiYnV0dG9uLWNsYXNzLXt7IGNsYXp6LmlkIH19XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ0BwcnkuYWN0aW9uLnZpZXdEZXRhaWxzJyB8IGkxOG4gfX1cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIoc2VsZWN0ZWRDbGFzc0lkJCB8IGFzeW5jKSA9PT0gY2xhenouaWRcIlxuICAgICAgICAgICAgYXJpYS1oYXNwb3B1cFxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCIncGFuZWwtY2xhc3MtJyArIGNsYXp6LmlkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgY2xhenoubmFtZSB9fSwge3sgJ0BwcnkuYWN0aW9uLnZpZXdEZXRhaWxzJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImV5ZVwiIFt3aWR0aF09XCIxNVwiIFtoZWlnaHRdPVwiMTVcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQ+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgIFtoZWlnaHRdPVwiMjVcIlxuICAgICAgICAgICAgW3dpZHRoXT1cIjI1XCJcbiAgICAgICAgICAgIFtzcmNdPVwiY2xhenouaWQgfCB0cmFuc2xhdGVJZDogeyB0eXBlOiAnY2xhc3MnLCBvdXRwdXQ6ICdpY29uJyB9IHwgYXN5bmNcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZD57eyBjbGF6ei5uYW1lIH19PC90ZD5cbiAgICAgICAgPHRkPnt7IGNsYXp6LmNvdW50IH19PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC90Ym9keT5cbiAgPC90YWJsZT5cbjwvZGl2PlxuIl19
|
|
@@ -29,4 +29,4 @@ export const AdminClassActions = {
|
|
|
29
29
|
confirmClassDeletion: createAction('[Class] Open modal for deleting class', props()),
|
|
30
30
|
confirmAttributeDeletion: createAction('[Class] Open modal for attribute deletion', props())
|
|
31
31
|
};
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3MuYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9zdG9yZS9hZG1pbi1jbGFzcy5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2xELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLGFBQWEsRUFBRSxZQUFZLENBQUMsc0NBQXNDLENBQUM7SUFFbkUsY0FBYyxFQUFFLFlBQVksQ0FBQyxrQ0FBa0MsRUFBRSxLQUFLLEVBQW1DLENBQUM7SUFDMUcsZUFBZSxFQUFFLFlBQVksQ0FBQyxtQ0FBbUMsQ0FBQztJQUVsRSxTQUFTLEVBQUUsWUFBWSxDQUFDLDRCQUE0QixFQUFFLEtBQUssRUFBbUMsQ0FBQztJQUMvRixnQkFBZ0IsRUFBRSxZQUFZLENBQUMsd0NBQXdDLEVBQUUsS0FBSyxFQUFxQixDQUFDO0lBQ3BHLGdCQUFnQixFQUFFLFlBQVksQ0FBQyx3Q0FBd0MsRUFBRSxLQUFLLEVBQWtCLENBQUM7SUFFakcsWUFBWSxFQUFFLFlBQVksQ0FBQywrQkFBK0IsRUFBRSxLQUFLLEVBQTBCLENBQUM7SUFDNUYsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLDJDQUEyQyxDQUFDO0lBQzlFLG1CQUFtQixFQUFFLFlBQVksQ0FBQywyQ0FBMkMsRUFBRSxLQUFLLEVBQWtCLENBQUM7SUFFdkcsV0FBVyxFQUFFLFlBQVksQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLEVBQW9CLENBQUM7SUFDcEYsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLDBDQUEwQyxFQUFFLEtBQUssRUFBa0IsQ0FBQztJQUVyRyxhQUFhLEVBQUUsWUFBWSxDQUFDLGdDQUFnQyxDQUFDO0lBRTdELFdBQVcsRUFBRSxZQUFZLENBQUMsOEJBQThCLEVBQUUsS0FBSyxFQUFpQyxDQUFDO0lBQ2pHLGtCQUFrQixFQUFFLFlBQVksQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLEVBQXFCLENBQUM7SUFDeEcsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLDBDQUEwQyxFQUFFLEtBQUssRUFBa0IsQ0FBQztJQUVyRyx1QkFBdUIsRUFBRSxZQUFZLENBQ25DLDRDQUE0QyxFQUM1QyxLQUFLLEVBQThFLENBQ3BGO0lBQ0QsOEJBQThCLEVBQUUsWUFBWSxDQUMxQyx3REFBd0QsRUFDeEQsS0FBSyxFQUE4RCxDQUNwRTtJQUNELDhCQUE4QixFQUFFLFlBQVksQ0FDMUMsd0RBQXdELEVBQ3hELEtBQUssRUFBa0IsQ0FDeEI7SUFFRCxlQUFlLEVBQUUsWUFBWSxDQUMzQiwwQ0FBMEMsRUFDMUMsS0FBSyxFQUF1QyxDQUM3QztJQUNELGlCQUFpQixFQUFFLFlBQVksQ0FBQyw0Q0FBNEMsQ0FBQztJQUU3RSxxQkFBcUIsRUFBRSxZQUFZLENBQ2pDLG1EQUFtRCxFQUNuRCxLQUFLLEVBQTRELENBQ2xFO0lBQ0QsNEJBQTRCLEVBQUUsWUFBWSxDQUN4QywrREFBK0QsRUFDL0QsS0FBSyxFQUFxQixDQUMzQjtJQUNELDRCQUE0QixFQUFFLFlBQVksQ0FDeEMsK0RBQStELEVBQy9ELEtBQUssRUFBa0IsQ0FDeEI7SUFDRCxJQUFJLEVBQUUsWUFBWSxDQUFDLHNCQUFzQixFQUFFLEtBQUssRUFBb0IsQ0FBQztJQUNyRSxTQUFTLEVBQUUsWUFBWSxDQUFDLG9CQUFvQixDQUFDO0lBQzdDLFVBQVUsRUFBRSxZQUFZLENBQUMscUJBQXFCLENBQUM7SUFDL0Msb0JBQW9CLEVBQUUsWUFBWSxDQUFDLHVDQUF1QyxFQUFFLEtBQUssRUFBZ0MsQ0FBQztJQUNsSCx3QkFBd0IsRUFBRSxZQUFZLENBQ3BDLDJDQUEyQyxFQUMzQyxLQUFLLEVBS0QsQ0FDTDtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVBY3Rpb24sIHByb3BzIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQXR0cmlidXRlLCBBdHRyaWJ1dGVFeHRlbmRlZCwgQ2F0ZWdvcnksIENsYXNzLCBBc3NvY2lhdGlvbnMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuXG5leHBvcnQgY29uc3QgQWRtaW5DbGFzc0FjdGlvbnMgPSB7XG4gIHVwZGF0ZVRvb2xib3g6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXNdIFVwZGF0ZSBUb29sYm94IENsYXNzJyksXG5cbiAgc2F2ZUludGVyQ2xhc3M6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXNdIFNhdmUgSW50ZXIgQ2xhc3MnLCBwcm9wczx7IGNsYXNzOiBDbGFzczsgcm91dGU6IHN0cmluZyB9PigpKSxcbiAgcmVzZXRJbnRlckNsYXNzOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzXSBSZXNldCBJbnRlciBDbGFzcycpLFxuXG4gIHNhdmVDbGFzczogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3Nlc10gU2F2ZSBDbGFzcycsIHByb3BzPHsgY2xhc3M6IENsYXNzOyByb3V0ZTogc3RyaW5nIH0+KCkpLFxuICBzYXZlQ2xhc3NTdWNjZXNzOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzIEFwaV0gU2F2ZSBDbGFzcyBTdWNjZXNzJywgcHJvcHM8eyByb3V0ZTogc3RyaW5nIH0+KCkpLFxuICBzYXZlQ2xhc3NGYWlsdXJlOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzIEFwaV0gU2F2ZSBDbGFzcyBGYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogYW55IH0+KCkpLFxuXG4gIHNhdmVDYXRlZ29yeTogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3Nlc10gU2F2ZSBDYXRlZ29yeScsIHByb3BzPHsgY2F0ZWdvcnk6IENhdGVnb3J5IH0+KCkpLFxuICBzYXZlQ2F0ZWdvcnlTdWNjZXNzOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzIEFwaV0gU2F2ZSBDYXRlZ29yeSBTdWNjZXNzJyksXG4gIHNhdmVDYXRlZ29yeUZhaWx1cmU6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXMgQXBpXSBTYXZlIENhdGVnb3J5IEZhaWx1cmUnLCBwcm9wczx7IGVycm9yOiBhbnkgfT4oKSksXG5cbiAgc2VsZWN0Q2xhc3M6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXNdIFNlbGVjdCBDbGFzcycsIHByb3BzPHsgY2xheno6IENsYXNzIH0+KCkpLFxuICBzZWxlY3RDbGFzc0ZhaWx1cmU6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXMgQXBpXSBTZWxlY3QgQ2xhc3MgRmFpbHVyZScsIHByb3BzPHsgZXJyb3I6IGFueSB9PigpKSxcblxuICB1bnNlbGVjdENsYXNzOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzXSBVbnNlbGVjdCBDbGFzcycpLFxuXG4gIGRlbGV0ZUNsYXNzOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzXSBEZWxldGUgQ2xhc3MnLCBwcm9wczx7IGlkOiBzdHJpbmc7IHJvdXRlOiBzdHJpbmcgfT4oKSksXG4gIGRlbGV0ZUNsYXNzU3VjY2VzczogY3JlYXRlQWN0aW9uKCdbQWRtaW4vQ2xhc3NlcyBBcGldIERlbGV0ZSBDbGFzcyBTdWNjZXNzJywgcHJvcHM8eyByb3V0ZTogc3RyaW5nIH0+KCkpLFxuICBkZWxldGVDbGFzc0ZhaWx1cmU6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXMgQXBpXSBEZWxldGUgQ2xhc3MgRmFpbHVyZScsIHByb3BzPHsgZXJyb3I6IGFueSB9PigpKSxcblxuICBkZWxldGVBdHRyaWJ1dGVGb3JDbGFzczogY3JlYXRlQWN0aW9uKFxuICAgICdbQWRtaW4vQ2xhc3Nlc10gRGVsZXRlIEF0dHJpYnV0ZSBmb3IgQ2xhc3MnLFxuICAgIHByb3BzPHsgY2xhc3NJZDogc3RyaW5nOyBhdHRySWQ6IHN0cmluZzsgYmFja1BhdGg6IHN0cmluZzsgYWRkQXR0clBhdGg6IHN0cmluZyB9PigpXG4gICksXG4gIGRlbGV0ZUF0dHJpYnV0ZUZvckNsYXNzU3VjY2VzczogY3JlYXRlQWN0aW9uKFxuICAgICdbQWRtaW4vQ2xhc3NlcyBBcGldIERlbGV0ZSBBdHRyaWJ1dGUgZm9yIENsYXNzIFN1Y2Nlc3MnLFxuICAgIHByb3BzPHsgY2xhc3NJZDogc3RyaW5nOyBiYWNrUGF0aDogc3RyaW5nOyBhZGRBdHRyUGF0aDogc3RyaW5nIH0+KClcbiAgKSxcbiAgZGVsZXRlQXR0cmlidXRlRm9yQ2xhc3NGYWlsdXJlOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tBZG1pbi9DbGFzc2VzIEFwaV0gRGVsZXRlIEF0dHJpYnV0ZSBmb3IgQ2xhc3MgRmFpbHVyZScsXG4gICAgcHJvcHM8eyBlcnJvcjogYW55IH0+KClcbiAgKSxcblxuICBzZWxlY3RBdHRyaWJ1dGU6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0FkbWluL0NsYXNzZXNdIFNlbGVjdCBjdXJyZW50IEF0dHJpYnV0ZScsXG4gICAgcHJvcHM8eyBhdHRyRXh0ZW5kZWQ6IEF0dHJpYnV0ZUV4dGVuZGVkIH0+KClcbiAgKSxcbiAgdW5zZWxlY3RBdHRyaWJ1dGU6IGNyZWF0ZUFjdGlvbignW0FkbWluL0NsYXNzZXNdIFVuc2VsZWN0IGN1cnJlbnQgQXR0cmlidXRlJyksXG5cbiAgc2F2ZUF0dHJpYnV0ZUZvckNsYXNzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tBZG1pbi9DbGFzc2VzXSBTYXZlIEF0dHJpYnV0ZSBmb3IgU2VsZWN0ZWQgQ2xhc3MnLFxuICAgIHByb3BzPHsgY2xhc3NJZDogc3RyaW5nOyBhdHRyaWJ1dGU6IEF0dHJpYnV0ZTsgcm91dGU6IHN0cmluZyB9PigpXG4gICksXG4gIHNhdmVBdHRyaWJ1dGVGb3JDbGFzc1N1Y2Nlc3M6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0FkbWluL0NsYXNzZXMgQXBpXSBTYXZlIEF0dHJpYnV0ZSBmb3IgU2VsZWN0ZWQgQ2xhc3MgU3VjY2VzcycsXG4gICAgcHJvcHM8eyByb3V0ZTogc3RyaW5nIH0+KClcbiAgKSxcbiAgc2F2ZUF0dHJpYnV0ZUZvckNsYXNzRmFpbHVyZTogY3JlYXRlQWN0aW9uKFxuICAgICdbQWRtaW4vQ2xhc3NlcyBBcGldIFNhdmUgQXR0cmlidXRlIGZvciBTZWxlY3RlZCBDbGFzcyBGYWlsdXJlJyxcbiAgICBwcm9wczx7IGVycm9yOiBhbnkgfT4oKVxuICApLFxuICBiYWNrOiBjcmVhdGVBY3Rpb24oJ1tBZG1pbi9DbGFzc2VzXSBiYWNrJywgcHJvcHM8eyBwYXRoOiBzdHJpbmcgfT4oKSksXG4gIG9wZW5Nb2RhbDogY3JlYXRlQWN0aW9uKCdbQ2xhc3NdIE9wZW4gbW9kYWwnKSxcbiAgY2xvc2VNb2RhbDogY3JlYXRlQWN0aW9uKCdbQ2xhc3NdIENsb3NlIG1vZGFsJyksXG4gIGNvbmZpcm1DbGFzc0RlbGV0aW9uOiBjcmVhdGVBY3Rpb24oJ1tDbGFzc10gT3BlbiBtb2RhbCBmb3IgZGVsZXRpbmcgY2xhc3MnLCBwcm9wczx7IGlkOiBzdHJpbmc7IHBhdGg6IHN0cmluZyB9PigpKSxcbiAgY29uZmlybUF0dHJpYnV0ZURlbGV0aW9uOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tDbGFzc10gT3BlbiBtb2RhbCBmb3IgYXR0cmlidXRlIGRlbGV0aW9uJyxcbiAgICBwcm9wczx7XG4gICAgICBjbGFzc0lkOiBzdHJpbmc7XG4gICAgICBhdHRySWQ6IHN0cmluZztcbiAgICAgIGJhY2tQYXRoOiBzdHJpbmc7XG4gICAgICBhZGRBdHRyUGF0aDogc3RyaW5nO1xuICAgIH0+KClcbiAgKVxufTtcbiJdfQ==
|