@myclub_se/data-access 2.5.15 → 2.5.16

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.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWFjdGl2aXR5LWxvY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9hcGktbW9kZWxzL2FwaS1hY3Rpdml0eS1sb2NhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBcGlBY3Rpdml0eUxvY2F0aW9uIHtcbiAgYWN0aXZlOiBib29sZWFuO1xuICBjbHViX2lkOiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIG11bl9sb2NhdGlvbl9jaXR5X2FyZWE6IHN0cmluZztcbiAgbXVuX2xvY2F0aW9uX25hbWU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBzZWN0aW9uX2lkOiBzdHJpbmcgfCBudWxsO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWFjdGl2aXR5LWxvY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9hcGktbW9kZWxzL2FwaS1hY3Rpdml0eS1sb2NhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcGlBY3Rpdml0eUxvY2F0aW9uUGFydH0gZnJvbSBcIi4vYXBpLWFjdGl2aXR5LWxvY2F0aW9uLXBhcnRcIjtcbmltcG9ydCB7QXBpQWN0aXZpdHlMb2NhdGlvblRhZ30gZnJvbSBcIi4vYXBpLWFjdGl2aXR5LWxvY2F0aW9uLXRhZ1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaUFjdGl2aXR5TG9jYXRpb24ge1xuICBhY3RpdmU6IGJvb2xlYW47XG4gIGNsdWJfaWQ6IHN0cmluZztcbiAgZ3JvdXBfaWQ6IHN0cmluZyB8IG51bGw7XG4gIGlkOiBzdHJpbmc7XG4gIG11bl9sb2NhdGlvbl9jaXR5X2FyZWE6IHN0cmluZztcbiAgbXVuX2xvY2F0aW9uX25hbWU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBzZWN0aW9uX2lkOiBzdHJpbmcgfCBudWxsO1xuICB0YWdzPzogQXJyYXk8QXBpQWN0aXZpdHlMb2NhdGlvblRhZz4gfCBudWxsO1xuICBwYXJ0cz86IEFycmF5PEFwaUFjdGl2aXR5TG9jYXRpb25QYXJ0PiB8IG51bGw7XG59XG4iXX0=
@@ -1,7 +1,14 @@
1
+ import { FormControl, FormGroup, Validators } from "@angular/forms";
1
2
  export class ActivityLocationPart {
2
3
  constructor(id, name) {
3
4
  this.id = id;
4
5
  this.name = name;
5
6
  }
7
+ static asFormGroup(tag) {
8
+ return new FormGroup({
9
+ id: new FormControl(tag?.id || ''),
10
+ name: new FormControl(tag?.name || '', Validators.required),
11
+ });
12
+ }
6
13
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9jYXRpb24tcGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvbW9kZWxzL2FjdGl2aXR5LWxvY2F0aW9uLXBhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUNTLEVBQVUsRUFDVixJQUFZO1FBRFosT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLFNBQUksR0FBSixJQUFJLENBQVE7SUFFckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEFjdGl2aXR5TG9jYXRpb25QYXJ0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGlkOiBzdHJpbmcsXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyxcbiAgKSB7XG4gIH1cbn1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9jYXRpb24tcGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvbW9kZWxzL2FjdGl2aXR5LWxvY2F0aW9uLXBhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQixZQUNTLEVBQVUsRUFDVixJQUFZO1FBRFosT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLFNBQUksR0FBSixJQUFJLENBQVE7SUFFckIsQ0FBQztJQVhELE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBMEI7UUFDM0MsT0FBTyxJQUFJLFNBQVMsQ0FBQztZQUNuQixFQUFFLEVBQUUsSUFBSSxXQUFXLENBQVMsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDMUMsSUFBSSxFQUFFLElBQUksV0FBVyxDQUFTLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDcEUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQU9GIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5TG9jYXRpb25QYXJ0IHtcbiAgc3RhdGljIGFzRm9ybUdyb3VwKHRhZz86IEFjdGl2aXR5TG9jYXRpb25QYXJ0KSB7XG4gICAgcmV0dXJuIG5ldyBGb3JtR3JvdXAoe1xuICAgICAgaWQ6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KHRhZz8uaWQgfHwgJycpLFxuICAgICAgbmFtZTogbmV3IEZvcm1Db250cm9sPHN0cmluZz4odGFnPy5uYW1lIHx8ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpZDogc3RyaW5nLFxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcsXG4gICkge1xuICB9XG59XG4iXX0=
@@ -1,3 +1,4 @@
1
+ import { FormControl, FormGroup, Validators } from "@angular/forms";
1
2
  export class ActivityLocationTag {
2
3
  constructor(id, club_id, section_id, name) {
3
4
  this.id = id;
@@ -5,5 +6,11 @@ export class ActivityLocationTag {
5
6
  this.section_id = section_id;
6
7
  this.name = name;
7
8
  }
9
+ static asFormGroup(tag) {
10
+ return new FormGroup({
11
+ id: new FormControl(tag?.id || ''),
12
+ name: new FormControl(tag?.name || '', Validators.required),
13
+ });
14
+ }
8
15
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9jYXRpb24tdGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9tb2RlbHMvYWN0aXZpdHktbG9jYXRpb24tdGFnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDUyxFQUFVLEVBQ1YsT0FBZSxFQUNmLFVBQXlCLEVBQ3pCLElBQVk7UUFIWixPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGVBQVUsR0FBVixVQUFVLENBQWU7UUFDekIsU0FBSSxHQUFKLElBQUksQ0FBUTtJQUVyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQWN0aXZpdHlMb2NhdGlvblRhZyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpZDogc3RyaW5nLFxuICAgIHB1YmxpYyBjbHViX2lkOiBzdHJpbmcsXG4gICAgcHVibGljIHNlY3Rpb25faWQ6IHN0cmluZyB8IG51bGwsXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyxcbiAgKSB7XG4gIH1cbn1cbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9jYXRpb24tdGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9tb2RlbHMvYWN0aXZpdHktbG9jYXRpb24tdGFnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE1BQU0sT0FBTyxtQkFBbUI7SUFROUIsWUFDUyxFQUFVLEVBQ1YsT0FBZSxFQUNmLFVBQXlCLEVBQ3pCLElBQVk7UUFIWixPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGVBQVUsR0FBVixVQUFVLENBQWU7UUFDekIsU0FBSSxHQUFKLElBQUksQ0FBUTtJQUVyQixDQUFDO0lBYkQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUF5QjtRQUMxQyxPQUFPLElBQUksU0FBUyxDQUFDO1lBQ25CLEVBQUUsRUFBRSxJQUFJLFdBQVcsQ0FBUyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMxQyxJQUFJLEVBQUUsSUFBSSxXQUFXLENBQVMsR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUNwRSxDQUFDLENBQUM7SUFDTCxDQUFDO0NBU0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Zvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnN9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlMb2NhdGlvblRhZyB7XG4gIHN0YXRpYyBhc0Zvcm1Hcm91cCh0YWc/OiBBY3Rpdml0eUxvY2F0aW9uVGFnKSB7XG4gICAgcmV0dXJuIG5ldyBGb3JtR3JvdXAoe1xuICAgICAgaWQ6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KHRhZz8uaWQgfHwgJycpLFxuICAgICAgbmFtZTogbmV3IEZvcm1Db250cm9sPHN0cmluZz4odGFnPy5uYW1lIHx8ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpZDogc3RyaW5nLFxuICAgIHB1YmxpYyBjbHViX2lkOiBzdHJpbmcsXG4gICAgcHVibGljIHNlY3Rpb25faWQ6IHN0cmluZyB8IG51bGwsXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyxcbiAgKSB7XG4gIH1cbn1cbiJdfQ==
@@ -1,12 +1,36 @@
1
+ import { ActivityLocationTag } from "./activity-location-tag";
2
+ import { ActivityLocationPart } from "./activity-location-part";
3
+ import { FormArray, FormControl, FormGroup, Validators } from "@angular/forms";
1
4
  export class ActivityLocation {
2
- constructor(id, club_id, section_id, active, mun_location_city_area, mun_location_name, name) {
5
+ constructor(id, club_id, section_id, group_id, active, mun_location_city_area, mun_location_name, name, tags, parts) {
3
6
  this.id = id;
4
7
  this.club_id = club_id;
5
8
  this.section_id = section_id;
9
+ this.group_id = group_id;
6
10
  this.active = active;
7
11
  this.mun_location_city_area = mun_location_city_area;
8
12
  this.mun_location_name = mun_location_name;
9
13
  this.name = name;
14
+ this.tags = tags;
15
+ this.parts = parts;
16
+ }
17
+ static asFormGroup(location) {
18
+ const tags = [];
19
+ const parts = [];
20
+ if (location?.tags) {
21
+ location.tags.forEach((tag) => tags.push(ActivityLocationTag.asFormGroup(tag)));
22
+ }
23
+ if (location?.parts) {
24
+ location.parts.forEach((part) => parts.push(ActivityLocationPart.asFormGroup(part)));
25
+ }
26
+ return new FormGroup({
27
+ id: new FormControl(location?.id || ''),
28
+ club_id: new FormControl(location?.club_id || '', Validators.required),
29
+ active: new FormControl(typeof location?.active !== 'undefined' ? location?.active : false),
30
+ group_id: new FormControl(location?.group_id || ''),
31
+ tags: new FormArray(tags),
32
+ parts: new FormArray(parts),
33
+ });
10
34
  }
11
35
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9jYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWFjY2Vzcy9zcmMvbGliL21vZGVscy9hY3Rpdml0eS1sb2NhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQW1CLEVBQVUsRUFBUyxPQUFlLEVBQVMsVUFBeUIsRUFBUyxNQUFlLEVBQzVGLHNCQUE4QixFQUFTLGlCQUF5QixFQUFTLElBQVk7UUFEckYsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFlO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUM1RiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVE7UUFBUyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFRO0lBQ3hHLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBBY3Rpdml0eUxvY2F0aW9uIHtcbiAgY29uc3RydWN0b3IocHVibGljIGlkOiBzdHJpbmcsIHB1YmxpYyBjbHViX2lkOiBzdHJpbmcsIHB1YmxpYyBzZWN0aW9uX2lkOiBzdHJpbmcgfCBudWxsLCBwdWJsaWMgYWN0aXZlOiBib29sZWFuLFxuICAgICAgICAgICAgICBwdWJsaWMgbXVuX2xvY2F0aW9uX2NpdHlfYXJlYTogc3RyaW5nLCBwdWJsaWMgbXVuX2xvY2F0aW9uX25hbWU6IHN0cmluZywgcHVibGljIG5hbWU6IHN0cmluZykge1xuICB9XG59XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9jYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWFjY2Vzcy9zcmMvbGliL21vZGVscy9hY3Rpdml0eS1sb2NhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0UsTUFBTSxPQUFPLGdCQUFnQjtJQXVCM0IsWUFDUyxFQUFVLEVBQ1YsT0FBZSxFQUNmLFVBQXlCLEVBQ3pCLFFBQXVCLEVBQ3ZCLE1BQWUsRUFDZixzQkFBOEIsRUFDOUIsaUJBQXlCLEVBQ3pCLElBQVksRUFDWixJQUF3QyxFQUN4QyxLQUEwQztRQVQxQyxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGVBQVUsR0FBVixVQUFVLENBQWU7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBZTtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQ2YsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFRO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUN6QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osU0FBSSxHQUFKLElBQUksQ0FBb0M7UUFDeEMsVUFBSyxHQUFMLEtBQUssQ0FBcUM7SUFFbkQsQ0FBQztJQWxDRCxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQTJCO1FBQzVDLE1BQU0sSUFBSSxHQUFxQixFQUFFLENBQUM7UUFDbEMsTUFBTSxLQUFLLEdBQXFCLEVBQUUsQ0FBQztRQUVuQyxJQUFJLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDbEIsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUF3QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEc7UUFFRCxJQUFJLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDbkIsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUEwQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUc7UUFFRCxPQUFPLElBQUksU0FBUyxDQUFDO1lBQ25CLEVBQUUsRUFBRSxJQUFJLFdBQVcsQ0FBUyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMvQyxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQVMsUUFBUSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM5RSxNQUFNLEVBQUUsSUFBSSxXQUFXLENBQVUsT0FBTyxRQUFRLEVBQUUsTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3BHLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBUyxRQUFRLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUMzRCxJQUFJLEVBQUUsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ3pCLEtBQUssRUFBRSxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUM7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQWVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3Rpdml0eUxvY2F0aW9uVGFnfSBmcm9tIFwiLi9hY3Rpdml0eS1sb2NhdGlvbi10YWdcIjtcbmltcG9ydCB7QWN0aXZpdHlMb2NhdGlvblBhcnR9IGZyb20gXCIuL2FjdGl2aXR5LWxvY2F0aW9uLXBhcnRcIjtcbmltcG9ydCB7Rm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5TG9jYXRpb24ge1xuICBzdGF0aWMgYXNGb3JtR3JvdXAobG9jYXRpb24/OiBBY3Rpdml0eUxvY2F0aW9uKSB7XG4gICAgY29uc3QgdGFnczogQXJyYXk8Rm9ybUdyb3VwPiA9IFtdO1xuICAgIGNvbnN0IHBhcnRzOiBBcnJheTxGb3JtR3JvdXA+ID0gW107XG5cbiAgICBpZiAobG9jYXRpb24/LnRhZ3MpIHtcbiAgICAgIGxvY2F0aW9uLnRhZ3MuZm9yRWFjaCgodGFnOiBBY3Rpdml0eUxvY2F0aW9uVGFnKSA9PiB0YWdzLnB1c2goQWN0aXZpdHlMb2NhdGlvblRhZy5hc0Zvcm1Hcm91cCh0YWcpKSk7XG4gICAgfVxuXG4gICAgaWYgKGxvY2F0aW9uPy5wYXJ0cykge1xuICAgICAgbG9jYXRpb24ucGFydHMuZm9yRWFjaCgocGFydDogQWN0aXZpdHlMb2NhdGlvblBhcnQpID0+IHBhcnRzLnB1c2goQWN0aXZpdHlMb2NhdGlvblBhcnQuYXNGb3JtR3JvdXAocGFydCkpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEZvcm1Hcm91cCh7XG4gICAgICBpZDogbmV3IEZvcm1Db250cm9sPHN0cmluZz4obG9jYXRpb24/LmlkIHx8ICcnKSxcbiAgICAgIGNsdWJfaWQ6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KGxvY2F0aW9uPy5jbHViX2lkIHx8ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGFjdGl2ZTogbmV3IEZvcm1Db250cm9sPGJvb2xlYW4+KHR5cGVvZiBsb2NhdGlvbj8uYWN0aXZlICE9PSAndW5kZWZpbmVkJyA/IGxvY2F0aW9uPy5hY3RpdmUgOiBmYWxzZSksXG4gICAgICBncm91cF9pZDogbmV3IEZvcm1Db250cm9sPHN0cmluZz4obG9jYXRpb24/Lmdyb3VwX2lkIHx8ICcnKSxcbiAgICAgIHRhZ3M6IG5ldyBGb3JtQXJyYXkodGFncyksXG4gICAgICBwYXJ0czogbmV3IEZvcm1BcnJheShwYXJ0cyksXG4gICAgfSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgY2x1Yl9pZDogc3RyaW5nLFxuICAgIHB1YmxpYyBzZWN0aW9uX2lkOiBzdHJpbmcgfCBudWxsLFxuICAgIHB1YmxpYyBncm91cF9pZDogc3RyaW5nIHwgbnVsbCxcbiAgICBwdWJsaWMgYWN0aXZlOiBib29sZWFuLFxuICAgIHB1YmxpYyBtdW5fbG9jYXRpb25fY2l0eV9hcmVhOiBzdHJpbmcsXG4gICAgcHVibGljIG11bl9sb2NhdGlvbl9uYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgdGFncz86IEFycmF5PEFjdGl2aXR5TG9jYXRpb25UYWc+IHwgbnVsbCxcbiAgICBwdWJsaWMgcGFydHM/OiBBcnJheTxBY3Rpdml0eUxvY2F0aW9uUGFydD4gfCBudWxsLFxuICApIHtcbiAgfVxufVxuIl19
@@ -23,6 +23,7 @@ const CLUB_ACTIVITY_SETTINGS_PATH = ':clubId/activities/settings/';
23
23
  const TEAM_ACTIVITY_TYPES_PATH = ':teamId/activities/types/';
24
24
  const TEAM_CALENDAR_PATH = ':teamId/activities/calendar/';
25
25
  const CLUB_ACTIVITY_LOCATIONS_PATH = ':clubId/activities/locations/';
26
+ const CLUB_ACTIVITY_LOCATION_PATH = ':clubId/activities/locations/:locationId/';
26
27
  const CLUB_ACTIVITY_LOCATION_GROUPS_PATH = ':clubId/activities/locations/groups/';
27
28
  const CLUB_ACTIVITY_LOCATION_TAGS_PATH = ':clubId/activities/locations/tags/';
28
29
  const CLUB_ACTIVITY_LOCATION_PARTS_PATH = ':clubId/activities/locations/:locationId/parts/';
@@ -102,8 +103,14 @@ export class ActivityService {
102
103
  return this.apiService
103
104
  .getResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITY_PATH, { teamId, id });
104
105
  }
105
- getTeamActivityLocations(teamId) {
106
- if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 })) {
106
+ getActivityLocations(role, clubOrTeamId, force = false) {
107
+ if (role == Role.ClubAdmin) {
108
+ return this.getClubActivityLocations(clubOrTeamId, force);
109
+ }
110
+ return this.getTeamActivityLocations(clubOrTeamId, force);
111
+ }
112
+ getTeamActivityLocations(teamId, force = false) {
113
+ if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 }) && !force) {
107
114
  return of(this.activityLocationCollection);
108
115
  }
109
116
  return this.apiService
@@ -112,8 +119,8 @@ export class ActivityService {
112
119
  this.activityLocationCollection = activityLocationCollection;
113
120
  }));
114
121
  }
115
- getClubActivityLocations(clubId) {
116
- if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 })) {
122
+ getClubActivityLocations(clubId, force = false) {
123
+ if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 }) && !force) {
117
124
  return of(this.activityLocationCollection);
118
125
  }
119
126
  return this.apiService
@@ -122,6 +129,13 @@ export class ActivityService {
122
129
  this.activityLocationCollection = activityLocationCollection;
123
130
  }));
124
131
  }
132
+ updateClubActivityLocation(clubId, location) {
133
+ return this.apiService
134
+ .updateResource(activityLocationFactory, Role.ClubAdmin, CLUB_ACTIVITY_LOCATION_PATH, {
135
+ clubId,
136
+ locationId: location.id
137
+ }, location);
138
+ }
125
139
  getActivityLocationGroups(role, clubOrTeamId) {
126
140
  if (role == Role.ClubAdmin) {
127
141
  return this.getClubActivityLocationGroups(clubOrTeamId);
@@ -150,6 +164,26 @@ export class ActivityService {
150
164
  return this.apiService
151
165
  .getCollection(activityLocationTagFactory, Role.TeamAdmin, TEAM_ACTIVITY_LOCATION_TAGS_PATH, { teamId }, { params: { limit: 'null' } });
152
166
  }
167
+ createActivityLocationTag(role, clubOrTeamId, tag) {
168
+ if (role == Role.ClubAdmin) {
169
+ return this.createClubActivityLocationTag(clubOrTeamId, tag);
170
+ }
171
+ return this.createTeamActivityLocationTag(clubOrTeamId, tag);
172
+ }
173
+ createClubActivityLocationTag(clubId, tag) {
174
+ delete tag.id;
175
+ return this.apiService
176
+ .postResource(activityLocationTagFactory, Role.ClubAdmin, CLUB_ACTIVITY_LOCATION_TAGS_PATH, {
177
+ clubId,
178
+ }, tag);
179
+ }
180
+ createTeamActivityLocationTag(teamId, tag) {
181
+ delete tag.id;
182
+ return this.apiService
183
+ .postResource(activityLocationTagFactory, Role.TeamAdmin, TEAM_ACTIVITY_LOCATION_TAGS_PATH, {
184
+ teamId,
185
+ }, tag);
186
+ }
153
187
  getActivityLocationParts(role, clubOrTeamId, locationId) {
154
188
  if (role == Role.ClubAdmin) {
155
189
  return this.getClubActivityLocationParts(clubOrTeamId, locationId);
@@ -284,4 +318,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
284
318
  providedIn: 'root'
285
319
  }]
286
320
  }], ctorParameters: function () { return [{ type: i1.ApiService }]; } });
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc2VydmljZXMvYWN0aXZpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFNTCxJQUFJLEdBQ0wsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osMkJBQTJCLEVBQzNCLG1CQUFtQixHQUNwQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzdCLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDOzs7QUFFdkYsTUFBTSwyQkFBMkIsR0FBRyx5Q0FBeUMsQ0FBQztBQUM5RSxNQUFNLDRCQUE0QixHQUFHLHVCQUF1QixDQUFDO0FBQzdELE1BQU0sb0JBQW9CLEdBQUcsZ0NBQWdDLENBQUM7QUFDOUQsTUFBTSwyQkFBMkIsR0FBRyx3QkFBd0IsQ0FBQztBQUM3RCxNQUFNLG9CQUFvQixHQUFHLHFCQUFxQixDQUFDO0FBQ25ELE1BQU0sMEJBQTBCLEdBQUcseUNBQXlDLENBQUM7QUFDN0UsTUFBTSx5QkFBeUIsR0FBRywyREFBMkQsQ0FBQztBQUM5RixNQUFNLGdDQUFnQyxHQUFHLHlFQUF5RSxDQUFDO0FBQ25ILE1BQU0sc0JBQXNCLEdBQUcseUJBQXlCLENBQUM7QUFDekQsTUFB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RyxFQUFFO1FBQ0wsQ0FBQyxFQUNELElBQUksQ0FBQyxTQUFTLEVBQ2QsK0JBQStCLEVBQy9CO1lBQ0UsTUFBTTtZQUNOLFVBQVU7U0FDWCxFQUNEO1lBQ0UsT0FBTztTQUNSLENBQ0YsQ0FBQztJQUNOLENBQUM7SUFFTywwQkFBMEIsQ0FBQyxRQUEyQjtRQUM1RCxJQUFJLE9BQU8sUUFBUSxDQUFDLEVBQUUsS0FBSyxXQUFXLEVBQUU7WUFDdEMsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUFDO1NBQ3BCO1FBRUQsSUFBSSxPQUFPLFFBQVEsQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtZQUMxRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDdEI7UUFFRCxJQUFJLE9BQU8sUUFBUSxDQUFDLHlCQUF5QixLQUFLLFdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsRUFBRTtZQUNwRyxPQUFPLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQztTQUMzQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7OzZHQWxkVSxlQUFlO2lIQUFmLGVBQWUsY0FGZCxNQUFNOzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QXBpU2VydmljZX0gZnJvbSAnLi9hcGkuc2VydmljZSc7XG5pbXBvcnQge1xuICBBY3Rpdml0eSxcbiAgQWN0aXZpdHlMb2NhdGlvbixcbiAgQWN0aXZpdHlUeXBlLFxuICBDb2xsZWN0aW9uLFxuICBNZW1iZXJBY3Rpdml0eUludml0ZSxcbiAgUm9sZSxcbn0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7dGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge29mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGFjdGl2aXR5RmFjdG9yeSxcbiAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICBhY3Rpdml0eUxvY2F0aW9uRmFjdG9yeSxcbiAgYWN0aXZpdHlMb2NhdGlvbkdyb3VwRmFjdG9yeSxcbiAgYWN0aXZpdHlMb2NhdGlvblRhZ0ZhY3RvcnksXG4gIGFjdGl2aXR5U2V0dGluZ3NGYWN0b3J5LFxuICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICBldmVudEZhY3RvcnksXG4gIG1lbWJlckFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgc2VhcmNoTWVtYmVyRmFjdG9yeSxcbn0gZnJvbSAnLi9mYWN0b3JpZXMnO1xuaW1wb3J0IHtzdWJ9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7YWN0aXZpdHlMb2NhdGlvblBhcnRGYWN0b3J5fSBmcm9tIFwiLi9mYWN0b3JpZXMvYWN0aXZpdHktbG9jYXRpb24tcGFydC1mYWN0b3J5XCI7XG5cbmNvbnN0IE1FTUJFUl9BQ1RJVklUWV9JTlZJVEVfUEFUSCA9ICc6bWVtYmVySWQvYWN0aXZpdGllcy86YWN0aXZpdHlJbnZpdGVJZC8nO1xuY29uc3QgTUVNQkVSX0FDVElWSVRZX0lOVklURVNfUEFUSCA9ICc6bWVtYmVySWQvYWN0aXZpdGllcy8nO1xuY29uc3QgTUVNQkVSX0NBTEVOREFSX1BBVEggPSAnOm1lbWJlcklkL2FjdGl2aXRpZXMvY2FsZW5kYXIvJztcbmNvbnN0IFBVQkxJQ19BQ1RJVklUWV9JTlZJVEVfUEFUSCA9ICdhY3Rpdml0aWVzLzppZC86dG9rZW4vJztcbmNvbnN0IFRFQU1fQUNUSVZJVElFU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9JTlZJVEVTX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzLzphY3Rpdml0eUlkL2ludml0ZXMvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfSU5WSVRFX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzLzphY3Rpdml0eUlkL2ludml0ZXMvOmFjdGl2aXR5SW52aXRlSWQvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfSU5WSVRFX1JFU0VORF9QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy86YWN0aXZpdHlJZC9pbnZpdGVzLzphY3Rpdml0eUludml0ZUlkL3Jlc2VuZC1pbnZpdGUvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfTkVXX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzL25ldy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9QQVJUSUNJUEFOVFNfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvOmFjdGl2aXR5SWQvcGFydGljaXBhbnRzLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzLzppZC8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9TRVRUSU5HU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9zZXR0aW5ncy8nO1xuY29uc3QgQ0xVQl9BQ1RJVklUWV9TRVRUSU5HU19QQVRIID0gJzpjbHViSWQvYWN0aXZpdGllcy9zZXR0aW5ncy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9UWVBFU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy90eXBlcy8nO1xuY29uc3QgVEVBTV9DQUxFTkRBUl9QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9jYWxlbmRhci8nO1xuXG5jb25zdCBDTFVCX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRIID0gJzpjbHViSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvJztcbmNvbnN0IENMVUJfQUNUSVZJVFlfTE9DQVRJT05fR1JPVVBTX1BBVEggPSAnOmNsdWJJZC9hY3Rpdml0aWVzL2xvY2F0aW9ucy9ncm91cHMvJztcbmNvbnN0IENMVUJfQUNUSVZJVFlfTE9DQVRJT05fVEFHU19QQVRIID0gJzpjbHViSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvdGFncy8nO1xuY29uc3QgQ0xVQl9BQ1RJVklUWV9MT0NBVElPTl9QQVJUU19QQVRIID0gJzpjbHViSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvOmxvY2F0aW9uSWQvcGFydHMvJztcblxuY29uc3QgVEVBTV9BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvbG9jYXRpb25zLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX0xPQ0FUSU9OX0dST1VQU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvZ3JvdXBzLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX0xPQ0FUSU9OX1RBR1NfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvbG9jYXRpb25zL3RhZ3MvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfTE9DQVRJT05fUEFSVFNfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvbG9jYXRpb25zLzpsb2NhdGlvbklkL3BhcnRzLyc7XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlTZXJ2aWNlIHtcbiAgYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb246IENvbGxlY3Rpb248QWN0aXZpdHlMb2NhdGlvbj4gfCB1bmRlZmluZWQ7XG4gIGFjdGl2aXR5VHlwZUNvbGxlY3Rpb246IENvbGxlY3Rpb248QWN0aXZpdHlUeXBlPiB8IHVuZGVmaW5lZDtcblxuICBhY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuICBhY3Rpdml0eVR5cGVSZXNwb25zZURhdGU6IERhdGUgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBBcGlTZXJ2aWNlKSB7XG4gIH1cblxuICBhZGRUZWFtQWN0aXZpdHlJbnZpdGVzKHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcsIG1lbWJlcklkczogQXJyYXk8c3RyaW5nPikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5wb3N0UmVzb3VyY2UoXG4gICAgICAgICgpID0+IHRydWUsXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX0lOVklURVNfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJzOiBtZW1iZXJJZHNcbiAgICAgICAgfVxuICAgICAgKVxuICB9XG5cbiAgY3JlYXRlVGVhbUFjdGl2aXR5KHRlYW1JZDogc3RyaW5nLCBkYXRhOiBQYXJ0aWFsPEFjdGl2aXR5Pikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5wb3N0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5RmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVElFU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMucmVtb3ZlVW51c2VkQWN0aXZpdHlGaWVsZHMoZGF0YSlcbiAgICAgIClcbiAgfVxuXG4gIGRlbGV0ZVRlYW1BY3Rpdml0eSh0ZWFtSWQ6IHN0cmluZywgaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5kZWxldGVSZXNvdXJjZShcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBpZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZGVsZXRlVGVhbUFjdGl2aXR5SW52aXRlKHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5kZWxldGVSZXNvdXJjZShcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZCxcbiAgICAgICAgICBhY3Rpdml0eUludml0ZUlkXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRNZW1iZXJBY3Rpdml0eUludml0ZShtZW1iZXJJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgbWVtYmVySWQsXG4gICAgICAgICAgYWN0aXZpdHlJbnZpdGVJZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0TWVtYmVyQWN0aXZpdHlJbnZpdGVzKG1lbWJlcklkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7bGltaXQ6ICdudWxsJ307XG5cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFU19QQVRILFxuICAgICAgICB7bWVtYmVySWR9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRNZW1iZXJDYWxlbmRhckV2ZW50cyhtZW1iZXJJZDogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBlbmREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIGNvbnN0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtsaW1pdDogJ251bGwnfTtcblxuICAgIGlmIChzdGFydERhdGUpIHtcbiAgICAgIHBhcmFtc1snc2VhcmNoX3N0YXJ0X2RheSddID0gc3RhcnREYXRlO1xuICAgIH1cblxuICAgIGlmIChlbmREYXRlKSB7XG4gICAgICBwYXJhbXNbJ3NlYXJjaF9lbmRfZGF5J10gPSBlbmREYXRlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBldmVudEZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9DQUxFTkRBUl9QQVRILFxuICAgICAgICB7bWVtYmVySWR9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zXG4gICAgICAgIH1cbiAgICAgIClcbiAgfVxuXG4gIGdldFB1YmxpY0FjdGl2aXR5SW52aXRlKGlkOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5QdWJsaWMsXG4gICAgICAgIFBVQkxJQ19BQ1RJVklUWV9JTlZJVEVfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIHRva2VuXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHkodGVhbUlkOiBzdHJpbmcsIGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5RmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfUEFUSCxcbiAgICAgICAge3RlYW1JZCwgaWR9XG4gICAgICApXG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlMb2NhdGlvbnModGVhbUlkOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlICYmIHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSA+IHN1YihuZXcgRGF0ZSgpLCB7aG91cnM6IDF9KSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb24pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfTE9DQVRJT05TX1BBVEgsXG4gICAgICAgIHt0ZWFtSWR9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApLnBpcGUoXG4gICAgICAgIHRhcCgoYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb246IENvbGxlY3Rpb248QWN0aXZpdHlMb2NhdGlvbj4pID0+IHtcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb24gPSBhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBnZXRDbHViQWN0aXZpdHlMb2NhdGlvbnMoY2x1YklkOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlICYmIHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSA+IHN1YihuZXcgRGF0ZSgpLCB7aG91cnM6IDF9KSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb24pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uRmFjdG9yeSxcbiAgICAgICAgUm9sZS5DbHViQWRtaW4sXG4gICAgICAgIENMVUJfQUNUSVZJVFlfTE9DQVRJT05TX1BBVEgsXG4gICAgICAgIHtjbHViSWR9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApLnBpcGUoXG4gICAgICAgIHRhcCgoYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb246IENvbGxlY3Rpb248QWN0aXZpdHlMb2NhdGlvbj4pID0+IHtcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb24gPSBhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBnZXRBY3Rpdml0eUxvY2F0aW9uR3JvdXBzKHJvbGU6IFJvbGUsIGNsdWJPclRlYW1JZDogc3RyaW5nKSB7XG4gICAgaWYgKHJvbGUgPT0gUm9sZS5DbHViQWRtaW4pIHtcbiAgICAgIHJldHVybiB0aGlzLmdldENsdWJBY3Rpdml0eUxvY2F0aW9uR3JvdXBzKGNsdWJPclRlYW1JZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldFRlYW1BY3Rpdml0eUxvY2F0aW9uR3JvdXBzKGNsdWJPclRlYW1JZCk7XG4gIH1cblxuICBnZXRDbHViQWN0aXZpdHlMb2NhdGlvbkdyb3VwcyhjbHViSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uR3JvdXBGYWN0b3J5LFxuICAgICAgICBSb2xlLkNsdWJBZG1pbixcbiAgICAgICAgQ0xVQl9BQ1RJVklUWV9MT0NBVElPTl9HUk9VUFNfUEFUSCxcbiAgICAgICAge2NsdWJJZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlMb2NhdGlvbkdyb3Vwcyh0ZWFtSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uR3JvdXBGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9MT0NBVElPTl9HUk9VUFNfUEFUSCxcbiAgICAgICAge3RlYW1JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRBY3Rpdml0eUxvY2F0aW9uVGFncyhyb2xlOiBSb2xlLCBjbHViT3JUZWFtSWQ6IHN0cmluZykge1xuICAgIGlmIChyb2xlID09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDbHViQWN0aXZpdHlMb2NhdGlvblRhZ3MoY2x1Yk9yVGVhbUlkKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGVhbUFjdGl2aXR5TG9jYXRpb25UYWdzKGNsdWJPclRlYW1JZCk7XG4gIH1cblxuICBnZXRDbHViQWN0aXZpdHlMb2NhdGlvblRhZ3MoY2x1YklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvblRhZ0ZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0FDVElWSVRZX0xPQ0FUSU9OX1RBR1NfUEFUSCxcbiAgICAgICAge2NsdWJJZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlMb2NhdGlvblRhZ3ModGVhbUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvblRhZ0ZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX0xPQ0FUSU9OX1RBR1NfUEFUSCxcbiAgICAgICAge3RlYW1JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRBY3Rpdml0eUxvY2F0aW9uUGFydHMocm9sZTogUm9sZSwgY2x1Yk9yVGVhbUlkOiBzdHJpbmcsIGxvY2F0aW9uSWQ6IHN0cmluZykge1xuICAgIGlmIChyb2xlID09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDbHViQWN0aXZpdHlMb2NhdGlvblBhcnRzKGNsdWJPclRlYW1JZCwgbG9jYXRpb25JZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldFRlYW1BY3Rpdml0eUxvY2F0aW9uUGFydHMoY2x1Yk9yVGVhbUlkLCBsb2NhdGlvbklkKTtcbiAgfVxuXG4gIGdldENsdWJBY3Rpdml0eUxvY2F0aW9uUGFydHMoY2x1YklkOiBzdHJpbmcsIGxvY2F0aW9uSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uUGFydEZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0FDVElWSVRZX0xPQ0FUSU9OX1BBUlRTX1BBVEgsXG4gICAgICAgIHtjbHViSWQsIGxvY2F0aW9uSWR9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApO1xuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5TG9jYXRpb25QYXJ0cyh0ZWFtSWQ6IHN0cmluZywgbG9jYXRpb25JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25QYXJ0RmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfTE9DQVRJT05fUEFSVFNfUEFUSCxcbiAgICAgICAge3RlYW1JZCwgbG9jYXRpb25JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlOZXcodGVhbUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5RmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfTkVXX1BBVEgsXG4gICAgICAgIHt0ZWFtSWR9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5UGFydGljaXBhbnRzKHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgc2VhcmNoTWVtYmVyRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfUEFSVElDSVBBTlRTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApO1xuICB9XG5cbiAgZ2V0QWN0aXZpdHlTZXR0aW5ncyhyb2xlOiBSb2xlLCBjbHViT3JUZWFtSWQ6IHN0cmluZykge1xuICAgIGlmIChyb2xlID09PSBSb2xlLkNsdWJBZG1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2x1YkFjdGl2aXR5U2V0dGluZ3MoY2x1Yk9yVGVhbUlkKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGVhbUFjdGl2aXR5U2V0dGluZ3MoY2x1Yk9yVGVhbUlkKTtcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eVNldHRpbmdzKHRlYW1JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eVNldHRpbmdzRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfU0VUVElOR1NfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0Q2x1YkFjdGl2aXR5U2V0dGluZ3MoY2x1YklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5U2V0dGluZ3NGYWN0b3J5LFxuICAgICAgICBSb2xlLkNsdWJBZG1pbixcbiAgICAgICAgQ0xVQl9BQ1RJVklUWV9TRVRUSU5HU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgY2x1YklkLFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5VHlwZXModGVhbUlkOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5hY3Rpdml0eVR5cGVSZXNwb25zZURhdGUgJiYgdGhpcy5hY3Rpdml0eVR5cGVSZXNwb25zZURhdGUgPiBzdWIobmV3IERhdGUoKSwge2hvdXJzOiAxfSkpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmFjdGl2aXR5VHlwZUNvbGxlY3Rpb24pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9UWVBFU19QQVRILFxuICAgICAgICB7dGVhbUlkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKS5waXBlKFxuICAgICAgICB0YXAoKGFjdGl2aXR5VHlwZUNvbGxlY3Rpb246IENvbGxlY3Rpb248QWN0aXZpdHlUeXBlPikgPT4ge1xuICAgICAgICAgIHRoaXMuYWN0aXZpdHlUeXBlUmVzcG9uc2VEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5VHlwZUNvbGxlY3Rpb24gPSBhY3Rpdml0eVR5cGVDb2xsZWN0aW9uO1xuICAgICAgICB9KVxuICAgICAgKVxuICB9XG5cbiAgZ2V0VGVhbUNhbGVuZGFyRXZlbnRzKHRlYW1JZDogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBlbmREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIGNvbnN0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtsaW1pdDogJ251bGwnfTtcblxuICAgIGlmIChzdGFydERhdGUpIHtcbiAgICAgIHBhcmFtc1snc2VhcmNoX3N0YXJ0X2RheSddID0gc3RhcnREYXRlO1xuICAgIH1cblxuICAgIGlmIChlbmREYXRlKSB7XG4gICAgICBwYXJhbXNbJ3NlYXJjaF9lbmRfZGF5J10gPSBlbmREYXRlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBldmVudEZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0NBTEVOREFSX1BBVEgsXG4gICAgICAgIHt0ZWFtSWR9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICByZXNlbmRJbnZpdGUodGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9JTlZJVEVfUkVTRU5EX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZCxcbiAgICAgICAgICBhY3Rpdml0eUludml0ZUlkXG4gICAgICAgIH0sXG4gICAgICAgIHt9XG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlTWVtYmVyQWN0aXZpdHkobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZTogdW5rbm93bikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZCxcbiAgICAgICAgICBhY3Rpdml0eUludml0ZUlkXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5SW52aXRlXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlUHVibGljQWN0aXZpdHlJbnZpdGUoaWQ6IHN0cmluZywgdG9rZW46IHN0cmluZywgYWN0aXZpdHlJbnZpdGU6IHVua25vd24pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5QdWJsaWMsXG4gICAgICAgIFBVQkxJQ19BQ1RJVklUWV9JTlZJVEVfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIHRva2VuXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5SW52aXRlXG4gICAgICApXG4gIH1cblxuICB1cGRhdGVUZWFtQWN0aXZpdHkodGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5OiBBY3Rpdml0eSkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICAgIGlkOiBhY3Rpdml0eS5pZFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLnJlbW92ZVVudXNlZEFjdGl2aXR5RmllbGRzKGFjdGl2aXR5KVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eUludml0ZSh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZUlkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlOiBNZW1iZXJBY3Rpdml0eUludml0ZSkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgbWVtYmVyQWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9JTlZJVEVfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBhY3Rpdml0eUlkLFxuICAgICAgICAgIGFjdGl2aXR5SW52aXRlSWRcbiAgICAgICAgfSxcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVcbiAgICAgIClcbiAgfVxuXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eVBhcnRpY2lwYW50cyh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBtZW1iZXJzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICB9LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9QQVJUSUNJUEFOVFNfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJzXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVVudXNlZEFjdGl2aXR5RmllbGRzKGFjdGl2aXR5OiBQYXJ0aWFsPEFjdGl2aXR5Pik6IFBhcnRpYWw8QWN0aXZpdHk+IHtcbiAgICBpZiAodHlwZW9mIGFjdGl2aXR5LmlkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgZGVsZXRlIGFjdGl2aXR5LmlkO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgYWN0aXZpdHkuZmlsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgIWFjdGl2aXR5LmZpbGUpIHtcbiAgICAgIGRlbGV0ZSBhY3Rpdml0eS5maWxlO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgYWN0aXZpdHkuaW52aXRlX2xhc3RfcmVzcG9uc2VfZGF0ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgIWFjdGl2aXR5Lmludml0ZV9sYXN0X3Jlc3BvbnNlX2RhdGUpIHtcbiAgICAgIGRlbGV0ZSBhY3Rpdml0eS5pbnZpdGVfbGFzdF9yZXNwb25zZV9kYXRlO1xuICAgIH1cblxuICAgIHJldHVybiBhY3Rpdml0eTtcbiAgfVxufVxuIl19
321
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc2VydmljZXMvYWN0aXZpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFPTCxJQUFJLEdBQ0wsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osMkJBQTJCLEVBQzNCLG1CQUFtQixHQUNwQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzdCLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDOzs7QUFFdkYsTUFBTSwyQkFBMkIsR0FBRyx5Q0FBeUMsQ0FBQztBQUM5RSxNQUFNLDRCQUE0QixHQUFHLHVCQUF1QixDQUFDO0FBQzdELE1BQU0sb0JBQW9CLEdBQUcsZ0NBQWdDLENBQUM7QUFDOUQsTUFBTSwyQkFBMkIsR0FBRyx3QkFBd0IsQ0FBQztBQUM3RCxNQUFNLG9CQUFvQixHQUFHLHFCQUFxQixDQUFDO0FBQ25ELE1BQU0sMEJBQTBCLEdBQUcseUNBQXlDLENBQUM7QUFDN0UsTUFBTSx5QkFBeUIsR0FBRywyREFBMkQsQ0FBQztBQUM5RixNQUFNLGdDQUFnQyxHQUFHLHlFQUF5RSxDQUFDO0FBQ25ILE1BQU0sc0JBQXNCLEdBQUcseUJBQXlCLENBQUM7QUFDekQsTUFB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LFVBQVU7YUFDbkIsY0FBYyxDQUNiLDJCQUEyQixFQUMzQixJQUFJLENBQUMsU0FBUyxFQUNkLHlCQUF5QixFQUN6QjtZQUNFLE1BQU07WUFDTixVQUFVO1lBQ1YsZ0JBQWdCO1NBQ2pCLEVBQ0QsY0FBYyxDQUNmLENBQUE7SUFDTCxDQUFDO0lBRUQsOEJBQThCLENBQUMsTUFBYyxFQUFFLFVBQWtCLEVBQUUsT0FBc0I7UUFDdkYsT0FBTyxJQUFJLENBQUMsVUFBVTthQUNuQixZQUFZLENBQ1gsR0FBRyxFQUFFO1FBQ0wsQ0FBQyxFQUNELElBQUksQ0FBQyxTQUFTLEVBQ2QsK0JBQStCLEVBQy9CO1lBQ0UsTUFBTTtZQUNOLFVBQVU7U0FDWCxFQUNEO1lBQ0UsT0FBTztTQUNSLENBQ0YsQ0FBQztJQUNOLENBQUM7SUFFTywwQkFBMEIsQ0FBQyxRQUEyQjtRQUM1RCxJQUFJLE9BQU8sUUFBUSxDQUFDLEVBQUUsS0FBSyxXQUFXLEVBQUU7WUFDdEMsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUFDO1NBQ3BCO1FBRUQsSUFBSSxPQUFPLFFBQVEsQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtZQUMxRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDdEI7UUFFRCxJQUFJLE9BQU8sUUFBUSxDQUFDLHlCQUF5QixLQUFLLFdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsRUFBRTtZQUNwRyxPQUFPLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQztTQUMzQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7OzZHQTFnQlUsZUFBZTtpSEFBZixlQUFlLGNBRmQsTUFBTTs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FwaVNlcnZpY2V9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQWN0aXZpdHksXG4gIEFjdGl2aXR5TG9jYXRpb24sXG4gIEFjdGl2aXR5TG9jYXRpb25UYWcsXG4gIEFjdGl2aXR5VHlwZSxcbiAgQ29sbGVjdGlvbixcbiAgTWVtYmVyQWN0aXZpdHlJbnZpdGUsXG4gIFJvbGUsXG59IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge3RhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBhY3Rpdml0eUZhY3RvcnksXG4gIGFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gIGFjdGl2aXR5TG9jYXRpb25Hcm91cEZhY3RvcnksXG4gIGFjdGl2aXR5TG9jYXRpb25UYWdGYWN0b3J5LFxuICBhY3Rpdml0eVNldHRpbmdzRmFjdG9yeSxcbiAgYWN0aXZpdHlUeXBlRmFjdG9yeSxcbiAgZXZlbnRGYWN0b3J5LFxuICBtZW1iZXJBY3Rpdml0eUludml0ZUZhY3RvcnksXG4gIHNlYXJjaE1lbWJlckZhY3RvcnksXG59IGZyb20gJy4vZmFjdG9yaWVzJztcbmltcG9ydCB7c3VifSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQge2FjdGl2aXR5TG9jYXRpb25QYXJ0RmFjdG9yeX0gZnJvbSBcIi4vZmFjdG9yaWVzL2FjdGl2aXR5LWxvY2F0aW9uLXBhcnQtZmFjdG9yeVwiO1xuXG5jb25zdCBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFX1BBVEggPSAnOm1lbWJlcklkL2FjdGl2aXRpZXMvOmFjdGl2aXR5SW52aXRlSWQvJztcbmNvbnN0IE1FTUJFUl9BQ1RJVklUWV9JTlZJVEVTX1BBVEggPSAnOm1lbWJlcklkL2FjdGl2aXRpZXMvJztcbmNvbnN0IE1FTUJFUl9DQUxFTkRBUl9QQVRIID0gJzptZW1iZXJJZC9hY3Rpdml0aWVzL2NhbGVuZGFyLyc7XG5jb25zdCBQVUJMSUNfQUNUSVZJVFlfSU5WSVRFX1BBVEggPSAnYWN0aXZpdGllcy86aWQvOnRva2VuLyc7XG5jb25zdCBURUFNX0FDVElWSVRJRVNfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfSU5WSVRFU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy86YWN0aXZpdHlJZC9pbnZpdGVzLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX0lOVklURV9QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy86YWN0aXZpdHlJZC9pbnZpdGVzLzphY3Rpdml0eUludml0ZUlkLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX0lOVklURV9SRVNFTkRfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvOmFjdGl2aXR5SWQvaW52aXRlcy86YWN0aXZpdHlJbnZpdGVJZC9yZXNlbmQtaW52aXRlLyc7XG5jb25zdCBURUFNX0FDVElWSVRZX05FV19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9uZXcvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfUEFSVElDSVBBTlRTX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzLzphY3Rpdml0eUlkL3BhcnRpY2lwYW50cy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy86aWQvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfU0VUVElOR1NfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvc2V0dGluZ3MvJztcbmNvbnN0IENMVUJfQUNUSVZJVFlfU0VUVElOR1NfUEFUSCA9ICc6Y2x1YklkL2FjdGl2aXRpZXMvc2V0dGluZ3MvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfVFlQRVNfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvdHlwZXMvJztcbmNvbnN0IFRFQU1fQ0FMRU5EQVJfUEFUSCA9ICc6dGVhbUlkL2FjdGl2aXRpZXMvY2FsZW5kYXIvJztcblxuY29uc3QgQ0xVQl9BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCA9ICc6Y2x1YklkL2FjdGl2aXRpZXMvbG9jYXRpb25zLyc7XG5jb25zdCBDTFVCX0FDVElWSVRZX0xPQ0FUSU9OX1BBVEggPSAnOmNsdWJJZC9hY3Rpdml0aWVzL2xvY2F0aW9ucy86bG9jYXRpb25JZC8nO1xuY29uc3QgQ0xVQl9BQ1RJVklUWV9MT0NBVElPTl9HUk9VUFNfUEFUSCA9ICc6Y2x1YklkL2FjdGl2aXRpZXMvbG9jYXRpb25zL2dyb3Vwcy8nO1xuY29uc3QgQ0xVQl9BQ1RJVklUWV9MT0NBVElPTl9UQUdTX1BBVEggPSAnOmNsdWJJZC9hY3Rpdml0aWVzL2xvY2F0aW9ucy90YWdzLyc7XG5jb25zdCBDTFVCX0FDVElWSVRZX0xPQ0FUSU9OX1BBUlRTX1BBVEggPSAnOmNsdWJJZC9hY3Rpdml0aWVzL2xvY2F0aW9ucy86bG9jYXRpb25JZC9wYXJ0cy8nO1xuXG5jb25zdCBURUFNX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfTE9DQVRJT05fR1JPVVBTX1BBVEggPSAnOnRlYW1JZC9hY3Rpdml0aWVzL2xvY2F0aW9ucy9ncm91cHMvJztcbmNvbnN0IFRFQU1fQUNUSVZJVFlfTE9DQVRJT05fVEFHU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvdGFncy8nO1xuY29uc3QgVEVBTV9BQ1RJVklUWV9MT0NBVElPTl9QQVJUU19QQVRIID0gJzp0ZWFtSWQvYWN0aXZpdGllcy9sb2NhdGlvbnMvOmxvY2F0aW9uSWQvcGFydHMvJztcblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eVNlcnZpY2Uge1xuICBhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPiB8IHVuZGVmaW5lZDtcbiAgYWN0aXZpdHlUeXBlQ29sbGVjdGlvbjogQ29sbGVjdGlvbjxBY3Rpdml0eVR5cGU+IHwgdW5kZWZpbmVkO1xuXG4gIGFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGU6IERhdGUgfCB1bmRlZmluZWQ7XG4gIGFjdGl2aXR5VHlwZVJlc3BvbnNlRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UpIHtcbiAgfVxuXG4gIGFkZFRlYW1BY3Rpdml0eUludml0ZXModGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgbWVtYmVySWRzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgKCkgPT4gdHJ1ZSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfSU5WSVRFU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICAgIGFjdGl2aXR5SWRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1lbWJlcnM6IG1lbWJlcklkc1xuICAgICAgICB9XG4gICAgICApXG4gIH1cblxuICBjcmVhdGVUZWFtQWN0aXZpdHkodGVhbUlkOiBzdHJpbmcsIGRhdGE6IFBhcnRpYWw8QWN0aXZpdHk+KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUSUVTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWRcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5yZW1vdmVVbnVzZWRBY3Rpdml0eUZpZWxkcyhkYXRhKVxuICAgICAgKVxuICB9XG5cbiAgZGVsZXRlVGVhbUFjdGl2aXR5KHRlYW1JZDogc3RyaW5nLCBpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmRlbGV0ZVJlc291cmNlKFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICAgIGlkXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBkZWxldGVUZWFtQWN0aXZpdHlJbnZpdGUodGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmRlbGV0ZVJlc291cmNlKFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9JTlZJVEVfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBhY3Rpdml0eUlkLFxuICAgICAgICAgIGFjdGl2aXR5SW52aXRlSWRcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGdldE1lbWJlckFjdGl2aXR5SW52aXRlKG1lbWJlcklkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZCxcbiAgICAgICAgICBhY3Rpdml0eUludml0ZUlkXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRNZW1iZXJBY3Rpdml0eUludml0ZXMobWVtYmVySWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtsaW1pdDogJ251bGwnfTtcblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eUludml0ZUZhY3RvcnksXG4gICAgICAgIFJvbGUuTWVtYmVyQWRtaW4sXG4gICAgICAgIE1FTUJFUl9BQ1RJVklUWV9JTlZJVEVTX1BBVEgsXG4gICAgICAgIHttZW1iZXJJZH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXNcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGdldE1lbWJlckNhbGVuZGFyRXZlbnRzKG1lbWJlcklkOiBzdHJpbmcsIHN0YXJ0RGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGVuZERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgY29uc3QgcGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge2xpbWl0OiAnbnVsbCd9O1xuXG4gICAgaWYgKHN0YXJ0RGF0ZSkge1xuICAgICAgcGFyYW1zWydzZWFyY2hfc3RhcnRfZGF5J10gPSBzdGFydERhdGU7XG4gICAgfVxuXG4gICAgaWYgKGVuZERhdGUpIHtcbiAgICAgIHBhcmFtc1snc2VhcmNoX2VuZF9kYXknXSA9IGVuZERhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGV2ZW50RmFjdG9yeSxcbiAgICAgICAgUm9sZS5NZW1iZXJBZG1pbixcbiAgICAgICAgTUVNQkVSX0NBTEVOREFSX1BBVEgsXG4gICAgICAgIHttZW1iZXJJZH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXNcbiAgICAgICAgfVxuICAgICAgKVxuICB9XG5cbiAgZ2V0UHVibGljQWN0aXZpdHlJbnZpdGUoaWQ6IHN0cmluZywgdG9rZW46IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlB1YmxpYyxcbiAgICAgICAgUFVCTElDX0FDVElWSVRZX0lOVklURV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgdG9rZW5cbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eSh0ZWFtSWQ6IHN0cmluZywgaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9QQVRILFxuICAgICAgICB7dGVhbUlkLCBpZH1cbiAgICAgIClcbiAgfVxuXG4gIGdldEFjdGl2aXR5TG9jYXRpb25zKHJvbGU6IFJvbGUsIGNsdWJPclRlYW1JZDogc3RyaW5nLCBmb3JjZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgaWYgKHJvbGUgPT0gUm9sZS5DbHViQWRtaW4pIHtcbiAgICAgIHJldHVybiB0aGlzLmdldENsdWJBY3Rpdml0eUxvY2F0aW9ucyhjbHViT3JUZWFtSWQsIGZvcmNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGVhbUFjdGl2aXR5TG9jYXRpb25zKGNsdWJPclRlYW1JZCwgZm9yY2UpXG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlMb2NhdGlvbnModGVhbUlkOiBzdHJpbmcsIGZvcmNlOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlICYmIHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSA+IHN1YihuZXcgRGF0ZSgpLCB7aG91cnM6IDF9KSAmJiAhZm9yY2UpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX0xPQ0FUSU9OU19QQVRILFxuICAgICAgICB7dGVhbUlkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKS5waXBlKFxuICAgICAgICB0YXAoKGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uOiBDb2xsZWN0aW9uPEFjdGl2aXR5TG9jYXRpb24+KSA9PiB7XG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvY2F0aW9uUmVzcG9uc2VEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uID0gYWN0aXZpdHlMb2NhdGlvbkNvbGxlY3Rpb247XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZ2V0Q2x1YkFjdGl2aXR5TG9jYXRpb25zKGNsdWJJZDogc3RyaW5nLCBmb3JjZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSAmJiB0aGlzLmFjdGl2aXR5TG9jYXRpb25SZXNwb25zZURhdGUgPiBzdWIobmV3IERhdGUoKSwge2hvdXJzOiAxfSkgJiYgIWZvcmNlKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5hY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5LFxuICAgICAgICBSb2xlLkNsdWJBZG1pbixcbiAgICAgICAgQ0xVQl9BQ1RJVklUWV9MT0NBVElPTlNfUEFUSCxcbiAgICAgICAge2NsdWJJZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICkucGlwZShcbiAgICAgICAgdGFwKChhY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbjogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPikgPT4ge1xuICAgICAgICAgIHRoaXMuYWN0aXZpdHlMb2NhdGlvblJlc3BvbnNlRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgdGhpcy5hY3Rpdml0eUxvY2F0aW9uQ29sbGVjdGlvbiA9IGFjdGl2aXR5TG9jYXRpb25Db2xsZWN0aW9uO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZUNsdWJBY3Rpdml0eUxvY2F0aW9uKGNsdWJJZDogc3RyaW5nLCBsb2NhdGlvbjogQWN0aXZpdHlMb2NhdGlvbikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvbkZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0FDVElWSVRZX0xPQ0FUSU9OX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBjbHViSWQsXG4gICAgICAgICAgbG9jYXRpb25JZDogbG9jYXRpb24uaWRcbiAgICAgICAgfSxcbiAgICAgICAgbG9jYXRpb25cbiAgICAgICk7XG4gIH1cblxuICBnZXRBY3Rpdml0eUxvY2F0aW9uR3JvdXBzKHJvbGU6IFJvbGUsIGNsdWJPclRlYW1JZDogc3RyaW5nKSB7XG4gICAgaWYgKHJvbGUgPT0gUm9sZS5DbHViQWRtaW4pIHtcbiAgICAgIHJldHVybiB0aGlzLmdldENsdWJBY3Rpdml0eUxvY2F0aW9uR3JvdXBzKGNsdWJPclRlYW1JZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldFRlYW1BY3Rpdml0eUxvY2F0aW9uR3JvdXBzKGNsdWJPclRlYW1JZCk7XG4gIH1cblxuICBnZXRDbHViQWN0aXZpdHlMb2NhdGlvbkdyb3VwcyhjbHViSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uR3JvdXBGYWN0b3J5LFxuICAgICAgICBSb2xlLkNsdWJBZG1pbixcbiAgICAgICAgQ0xVQl9BQ1RJVklUWV9MT0NBVElPTl9HUk9VUFNfUEFUSCxcbiAgICAgICAge2NsdWJJZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlMb2NhdGlvbkdyb3Vwcyh0ZWFtSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uR3JvdXBGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9MT0NBVElPTl9HUk9VUFNfUEFUSCxcbiAgICAgICAge3RlYW1JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRBY3Rpdml0eUxvY2F0aW9uVGFncyhyb2xlOiBSb2xlLCBjbHViT3JUZWFtSWQ6IHN0cmluZykge1xuICAgIGlmIChyb2xlID09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDbHViQWN0aXZpdHlMb2NhdGlvblRhZ3MoY2x1Yk9yVGVhbUlkKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGVhbUFjdGl2aXR5TG9jYXRpb25UYWdzKGNsdWJPclRlYW1JZCk7XG4gIH1cblxuICBnZXRDbHViQWN0aXZpdHlMb2NhdGlvblRhZ3MoY2x1YklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvblRhZ0ZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0FDVElWSVRZX0xPQ0FUSU9OX1RBR1NfUEFUSCxcbiAgICAgICAge2NsdWJJZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlMb2NhdGlvblRhZ3ModGVhbUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgYWN0aXZpdHlMb2NhdGlvblRhZ0ZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0FDVElWSVRZX0xPQ0FUSU9OX1RBR1NfUEFUSCxcbiAgICAgICAge3RlYW1JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBjcmVhdGVBY3Rpdml0eUxvY2F0aW9uVGFnKHJvbGU6IFJvbGUsIGNsdWJPclRlYW1JZDogc3RyaW5nLCB0YWc6IFBhcnRpYWw8QWN0aXZpdHlMb2NhdGlvblRhZz4pIHtcbiAgICBpZiAocm9sZSA9PSBSb2xlLkNsdWJBZG1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ2x1YkFjdGl2aXR5TG9jYXRpb25UYWcoY2x1Yk9yVGVhbUlkLCB0YWcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVUZWFtQWN0aXZpdHlMb2NhdGlvblRhZyhjbHViT3JUZWFtSWQsIHRhZyk7XG4gIH1cblxuICBjcmVhdGVDbHViQWN0aXZpdHlMb2NhdGlvblRhZyhjbHViSWQ6IHN0cmluZywgdGFnOiBQYXJ0aWFsPEFjdGl2aXR5TG9jYXRpb25UYWc+KSB7XG4gICAgZGVsZXRlIHRhZy5pZDtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAucG9zdFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uVGFnRmFjdG9yeSxcbiAgICAgICAgUm9sZS5DbHViQWRtaW4sXG4gICAgICAgIENMVUJfQUNUSVZJVFlfTE9DQVRJT05fVEFHU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgY2x1YklkLFxuICAgICAgICB9LFxuICAgICAgICB0YWcsXG4gICAgICApXG4gIH1cblxuICBjcmVhdGVUZWFtQWN0aXZpdHlMb2NhdGlvblRhZyh0ZWFtSWQ6IHN0cmluZywgdGFnOiBQYXJ0aWFsPEFjdGl2aXR5TG9jYXRpb25UYWc+KSB7XG4gICAgZGVsZXRlIHRhZy5pZDtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAucG9zdFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uVGFnRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfTE9DQVRJT05fVEFHU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICB9LFxuICAgICAgICB0YWcsXG4gICAgICApXG4gIH1cblxuICBnZXRBY3Rpdml0eUxvY2F0aW9uUGFydHMocm9sZTogUm9sZSwgY2x1Yk9yVGVhbUlkOiBzdHJpbmcsIGxvY2F0aW9uSWQ6IHN0cmluZykge1xuICAgIGlmIChyb2xlID09IFJvbGUuQ2x1YkFkbWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDbHViQWN0aXZpdHlMb2NhdGlvblBhcnRzKGNsdWJPclRlYW1JZCwgbG9jYXRpb25JZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldFRlYW1BY3Rpdml0eUxvY2F0aW9uUGFydHMoY2x1Yk9yVGVhbUlkLCBsb2NhdGlvbklkKTtcbiAgfVxuXG4gIGdldENsdWJBY3Rpdml0eUxvY2F0aW9uUGFydHMoY2x1YklkOiBzdHJpbmcsIGxvY2F0aW9uSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eUxvY2F0aW9uUGFydEZhY3RvcnksXG4gICAgICAgIFJvbGUuQ2x1YkFkbWluLFxuICAgICAgICBDTFVCX0FDVElWSVRZX0xPQ0FUSU9OX1BBUlRTX1BBVEgsXG4gICAgICAgIHtjbHViSWQsIGxvY2F0aW9uSWR9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApO1xuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5TG9jYXRpb25QYXJ0cyh0ZWFtSWQ6IHN0cmluZywgbG9jYXRpb25JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldENvbGxlY3Rpb24oXG4gICAgICAgIGFjdGl2aXR5TG9jYXRpb25QYXJ0RmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfTE9DQVRJT05fUEFSVFNfUEFUSCxcbiAgICAgICAge3RlYW1JZCwgbG9jYXRpb25JZH0sXG4gICAgICAgIHtwYXJhbXM6IHtsaW1pdDogJ251bGwnfX1cbiAgICAgICk7XG4gIH1cblxuICBnZXRUZWFtQWN0aXZpdHlOZXcodGVhbUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5RmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfTkVXX1BBVEgsXG4gICAgICAgIHt0ZWFtSWR9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5UGFydGljaXBhbnRzKHRlYW1JZDogc3RyaW5nLCBhY3Rpdml0eUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0Q29sbGVjdGlvbihcbiAgICAgICAgc2VhcmNoTWVtYmVyRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfUEFSVElDSVBBTlRTX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZFxuICAgICAgICB9LFxuICAgICAgICB7cGFyYW1zOiB7bGltaXQ6ICdudWxsJ319XG4gICAgICApO1xuICB9XG5cbiAgZ2V0QWN0aXZpdHlTZXR0aW5ncyhyb2xlOiBSb2xlLCBjbHViT3JUZWFtSWQ6IHN0cmluZykge1xuICAgIGlmIChyb2xlID09PSBSb2xlLkNsdWJBZG1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2x1YkFjdGl2aXR5U2V0dGluZ3MoY2x1Yk9yVGVhbUlkKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGVhbUFjdGl2aXR5U2V0dGluZ3MoY2x1Yk9yVGVhbUlkKTtcbiAgfVxuXG4gIGdldFRlYW1BY3Rpdml0eVNldHRpbmdzKHRlYW1JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLmdldFJlc291cmNlKFxuICAgICAgICBhY3Rpdml0eVNldHRpbmdzRmFjdG9yeSxcbiAgICAgICAgUm9sZS5UZWFtQWRtaW4sXG4gICAgICAgIFRFQU1fQUNUSVZJVFlfU0VUVElOR1NfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0Q2x1YkFjdGl2aXR5U2V0dGluZ3MoY2x1YklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZ2V0UmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5U2V0dGluZ3NGYWN0b3J5LFxuICAgICAgICBSb2xlLkNsdWJBZG1pbixcbiAgICAgICAgQ0xVQl9BQ1RJVklUWV9TRVRUSU5HU19QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgY2x1YklkLFxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0VGVhbUFjdGl2aXR5VHlwZXModGVhbUlkOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5hY3Rpdml0eVR5cGVSZXNwb25zZURhdGUgJiYgdGhpcy5hY3Rpdml0eVR5cGVSZXNwb25zZURhdGUgPiBzdWIobmV3IERhdGUoKSwge2hvdXJzOiAxfSkpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmFjdGl2aXR5VHlwZUNvbGxlY3Rpb24pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBhY3Rpdml0eVR5cGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9UWVBFU19QQVRILFxuICAgICAgICB7dGVhbUlkfSxcbiAgICAgICAge3BhcmFtczoge2xpbWl0OiAnbnVsbCd9fVxuICAgICAgKS5waXBlKFxuICAgICAgICB0YXAoKGFjdGl2aXR5VHlwZUNvbGxlY3Rpb246IENvbGxlY3Rpb248QWN0aXZpdHlUeXBlPikgPT4ge1xuICAgICAgICAgIHRoaXMuYWN0aXZpdHlUeXBlUmVzcG9uc2VEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5VHlwZUNvbGxlY3Rpb24gPSBhY3Rpdml0eVR5cGVDb2xsZWN0aW9uO1xuICAgICAgICB9KVxuICAgICAgKVxuICB9XG5cbiAgZ2V0VGVhbUNhbGVuZGFyRXZlbnRzKHRlYW1JZDogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsLCBlbmREYXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIGNvbnN0IHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtsaW1pdDogJ251bGwnfTtcblxuICAgIGlmIChzdGFydERhdGUpIHtcbiAgICAgIHBhcmFtc1snc2VhcmNoX3N0YXJ0X2RheSddID0gc3RhcnREYXRlO1xuICAgIH1cblxuICAgIGlmIChlbmREYXRlKSB7XG4gICAgICBwYXJhbXNbJ3NlYXJjaF9lbmRfZGF5J10gPSBlbmREYXRlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5nZXRDb2xsZWN0aW9uKFxuICAgICAgICBldmVudEZhY3RvcnksXG4gICAgICAgIFJvbGUuVGVhbUFkbWluLFxuICAgICAgICBURUFNX0NBTEVOREFSX1BBVEgsXG4gICAgICAgIHt0ZWFtSWR9LFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICByZXNlbmRJbnZpdGUodGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5SWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9JTlZJVEVfUkVTRU5EX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWFtSWQsXG4gICAgICAgICAgYWN0aXZpdHlJZCxcbiAgICAgICAgICBhY3Rpdml0eUludml0ZUlkXG4gICAgICAgIH0sXG4gICAgICAgIHt9XG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlTWVtYmVyQWN0aXZpdHkobWVtYmVySWQ6IHN0cmluZywgYWN0aXZpdHlJbnZpdGVJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZTogdW5rbm93bikge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLk1lbWJlckFkbWluLFxuICAgICAgICBNRU1CRVJfQUNUSVZJVFlfSU5WSVRFX1BBVEgsXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJJZCxcbiAgICAgICAgICBhY3Rpdml0eUludml0ZUlkXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5SW52aXRlXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlUHVibGljQWN0aXZpdHlJbnZpdGUoaWQ6IHN0cmluZywgdG9rZW46IHN0cmluZywgYWN0aXZpdHlJbnZpdGU6IHVua25vd24pIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAudXBkYXRlUmVzb3VyY2UoXG4gICAgICAgIGFjdGl2aXR5SW52aXRlRmFjdG9yeSxcbiAgICAgICAgUm9sZS5QdWJsaWMsXG4gICAgICAgIFBVQkxJQ19BQ1RJVklUWV9JTlZJVEVfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIHRva2VuXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2aXR5SW52aXRlXG4gICAgICApXG4gIH1cblxuICB1cGRhdGVUZWFtQWN0aXZpdHkodGVhbUlkOiBzdHJpbmcsIGFjdGl2aXR5OiBBY3Rpdml0eSkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgYWN0aXZpdHlGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9QQVRILFxuICAgICAgICB7XG4gICAgICAgICAgdGVhbUlkLFxuICAgICAgICAgIGlkOiBhY3Rpdml0eS5pZFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLnJlbW92ZVVudXNlZEFjdGl2aXR5RmllbGRzKGFjdGl2aXR5KVxuICAgICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eUludml0ZSh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBhY3Rpdml0eUludml0ZUlkOiBzdHJpbmcsIGFjdGl2aXR5SW52aXRlOiBNZW1iZXJBY3Rpdml0eUludml0ZSkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC51cGRhdGVSZXNvdXJjZShcbiAgICAgICAgbWVtYmVyQWN0aXZpdHlJbnZpdGVGYWN0b3J5LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9JTlZJVEVfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBhY3Rpdml0eUlkLFxuICAgICAgICAgIGFjdGl2aXR5SW52aXRlSWRcbiAgICAgICAgfSxcbiAgICAgICAgYWN0aXZpdHlJbnZpdGVcbiAgICAgIClcbiAgfVxuXG4gIHVwZGF0ZVRlYW1BY3Rpdml0eVBhcnRpY2lwYW50cyh0ZWFtSWQ6IHN0cmluZywgYWN0aXZpdHlJZDogc3RyaW5nLCBtZW1iZXJzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgLnBvc3RSZXNvdXJjZShcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICB9LFxuICAgICAgICBSb2xlLlRlYW1BZG1pbixcbiAgICAgICAgVEVBTV9BQ1RJVklUWV9QQVJUSUNJUEFOVFNfUEFUSCxcbiAgICAgICAge1xuICAgICAgICAgIHRlYW1JZCxcbiAgICAgICAgICBhY3Rpdml0eUlkXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtZW1iZXJzXG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVVudXNlZEFjdGl2aXR5RmllbGRzKGFjdGl2aXR5OiBQYXJ0aWFsPEFjdGl2aXR5Pik6IFBhcnRpYWw8QWN0aXZpdHk+IHtcbiAgICBpZiAodHlwZW9mIGFjdGl2aXR5LmlkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgZGVsZXRlIGFjdGl2aXR5LmlkO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgYWN0aXZpdHkuZmlsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgIWFjdGl2aXR5LmZpbGUpIHtcbiAgICAgIGRlbGV0ZSBhY3Rpdml0eS5maWxlO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgYWN0aXZpdHkuaW52aXRlX2xhc3RfcmVzcG9uc2VfZGF0ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgIWFjdGl2aXR5Lmludml0ZV9sYXN0X3Jlc3BvbnNlX2RhdGUpIHtcbiAgICAgIGRlbGV0ZSBhY3Rpdml0eS5pbnZpdGVfbGFzdF9yZXNwb25zZV9kYXRlO1xuICAgIH1cblxuICAgIHJldHVybiBhY3Rpdml0eTtcbiAgfVxufVxuIl19
@@ -1,3 +1,5 @@
1
1
  import { ActivityLocation } from '../../models';
2
- export const activityLocationFactory = (apiActivityLocation) => new ActivityLocation(apiActivityLocation.id, apiActivityLocation.club_id, apiActivityLocation.section_id, apiActivityLocation.active, apiActivityLocation.mun_location_city_area, apiActivityLocation.mun_location_name, apiActivityLocation.name);
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9jYXRpb24tZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc2VydmljZXMvZmFjdG9yaWVzL2FjdGl2aXR5LWxvY2F0aW9uLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsbUJBQXdDLEVBQUUsRUFBRSxDQUNsRixJQUFJLGdCQUFnQixDQUNsQixtQkFBbUIsQ0FBQyxFQUFFLEVBQ3RCLG1CQUFtQixDQUFDLE9BQU8sRUFDM0IsbUJBQW1CLENBQUMsVUFBVSxFQUM5QixtQkFBbUIsQ0FBQyxNQUFNLEVBQzFCLG1CQUFtQixDQUFDLHNCQUFzQixFQUMxQyxtQkFBbUIsQ0FBQyxpQkFBaUIsRUFDckMsbUJBQW1CLENBQUMsSUFBSSxDQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpQWN0aXZpdHlMb2NhdGlvbiB9IGZyb20gJy4uLy4uL2FwaS1tb2RlbHMnO1xuaW1wb3J0IHsgQWN0aXZpdHlMb2NhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbmV4cG9ydCBjb25zdCBhY3Rpdml0eUxvY2F0aW9uRmFjdG9yeSA9IChhcGlBY3Rpdml0eUxvY2F0aW9uOiBBcGlBY3Rpdml0eUxvY2F0aW9uKSA9PlxuICBuZXcgQWN0aXZpdHlMb2NhdGlvbihcbiAgICBhcGlBY3Rpdml0eUxvY2F0aW9uLmlkLFxuICAgIGFwaUFjdGl2aXR5TG9jYXRpb24uY2x1Yl9pZCxcbiAgICBhcGlBY3Rpdml0eUxvY2F0aW9uLnNlY3Rpb25faWQsXG4gICAgYXBpQWN0aXZpdHlMb2NhdGlvbi5hY3RpdmUsXG4gICAgYXBpQWN0aXZpdHlMb2NhdGlvbi5tdW5fbG9jYXRpb25fY2l0eV9hcmVhLFxuICAgIGFwaUFjdGl2aXR5TG9jYXRpb24ubXVuX2xvY2F0aW9uX25hbWUsXG4gICAgYXBpQWN0aXZpdHlMb2NhdGlvbi5uYW1lXG4gICk7XG4iXX0=
2
+ import { activityLocationTagFactory } from "./activity-location-tag-factory";
3
+ import { activityLocationPartFactory } from "./activity-location-part-factory";
4
+ export const activityLocationFactory = (apiActivityLocation) => new ActivityLocation(apiActivityLocation.id, apiActivityLocation.club_id, apiActivityLocation.section_id, apiActivityLocation.group_id, apiActivityLocation.active, apiActivityLocation.mun_location_city_area, apiActivityLocation.mun_location_name, apiActivityLocation.name, apiActivityLocation.tags && apiActivityLocation.tags.length > 0 ? apiActivityLocation.tags.map((apiActivityLocationTag) => activityLocationTagFactory(apiActivityLocationTag)) : [], apiActivityLocation.parts && apiActivityLocation.parts.length > 0 ? apiActivityLocation.parts.map((apiActivityLocationPart) => activityLocationPartFactory(apiActivityLocationPart)) : []);
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9jYXRpb24tZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc2VydmljZXMvZmFjdG9yaWVzL2FjdGl2aXR5LWxvY2F0aW9uLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzNFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTdFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsbUJBQXdDLEVBQUUsRUFBRSxDQUNsRixJQUFJLGdCQUFnQixDQUNsQixtQkFBbUIsQ0FBQyxFQUFFLEVBQ3RCLG1CQUFtQixDQUFDLE9BQU8sRUFDM0IsbUJBQW1CLENBQUMsVUFBVSxFQUM5QixtQkFBbUIsQ0FBQyxRQUFRLEVBQzVCLG1CQUFtQixDQUFDLE1BQU0sRUFDMUIsbUJBQW1CLENBQUMsc0JBQXNCLEVBQzFDLG1CQUFtQixDQUFDLGlCQUFpQixFQUNyQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQ3hCLG1CQUFtQixDQUFDLElBQUksSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDNUYsQ0FBQyxzQkFBOEMsRUFBRSxFQUFFLENBQUMsMEJBQTBCLENBQUMsc0JBQXNCLENBQUMsQ0FDdkcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUNOLG1CQUFtQixDQUFDLEtBQUssSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDL0YsQ0FBQyx1QkFBZ0QsRUFBRSxFQUFFLENBQUMsMkJBQTJCLENBQUMsdUJBQXVCLENBQUMsQ0FDM0csQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FwaUFjdGl2aXR5TG9jYXRpb24sIEFwaUFjdGl2aXR5TG9jYXRpb25QYXJ0LCBBcGlBY3Rpdml0eUxvY2F0aW9uVGFnfSBmcm9tICcuLi8uLi9hcGktbW9kZWxzJztcbmltcG9ydCB7IEFjdGl2aXR5TG9jYXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHthY3Rpdml0eUxvY2F0aW9uVGFnRmFjdG9yeX0gZnJvbSBcIi4vYWN0aXZpdHktbG9jYXRpb24tdGFnLWZhY3RvcnlcIjtcbmltcG9ydCB7YWN0aXZpdHlMb2NhdGlvblBhcnRGYWN0b3J5fSBmcm9tIFwiLi9hY3Rpdml0eS1sb2NhdGlvbi1wYXJ0LWZhY3RvcnlcIjtcblxuZXhwb3J0IGNvbnN0IGFjdGl2aXR5TG9jYXRpb25GYWN0b3J5ID0gKGFwaUFjdGl2aXR5TG9jYXRpb246IEFwaUFjdGl2aXR5TG9jYXRpb24pID0+XG4gIG5ldyBBY3Rpdml0eUxvY2F0aW9uKFxuICAgIGFwaUFjdGl2aXR5TG9jYXRpb24uaWQsXG4gICAgYXBpQWN0aXZpdHlMb2NhdGlvbi5jbHViX2lkLFxuICAgIGFwaUFjdGl2aXR5TG9jYXRpb24uc2VjdGlvbl9pZCxcbiAgICBhcGlBY3Rpdml0eUxvY2F0aW9uLmdyb3VwX2lkLFxuICAgIGFwaUFjdGl2aXR5TG9jYXRpb24uYWN0aXZlLFxuICAgIGFwaUFjdGl2aXR5TG9jYXRpb24ubXVuX2xvY2F0aW9uX2NpdHlfYXJlYSxcbiAgICBhcGlBY3Rpdml0eUxvY2F0aW9uLm11bl9sb2NhdGlvbl9uYW1lLFxuICAgIGFwaUFjdGl2aXR5TG9jYXRpb24ubmFtZSxcbiAgICBhcGlBY3Rpdml0eUxvY2F0aW9uLnRhZ3MgJiYgYXBpQWN0aXZpdHlMb2NhdGlvbi50YWdzLmxlbmd0aCA+IDAgPyBhcGlBY3Rpdml0eUxvY2F0aW9uLnRhZ3MubWFwKFxuICAgICAgKGFwaUFjdGl2aXR5TG9jYXRpb25UYWc6IEFwaUFjdGl2aXR5TG9jYXRpb25UYWcpID0+IGFjdGl2aXR5TG9jYXRpb25UYWdGYWN0b3J5KGFwaUFjdGl2aXR5TG9jYXRpb25UYWcpXG4gICAgKSA6IFtdLFxuICAgIGFwaUFjdGl2aXR5TG9jYXRpb24ucGFydHMgJiYgYXBpQWN0aXZpdHlMb2NhdGlvbi5wYXJ0cy5sZW5ndGggPiAwID8gYXBpQWN0aXZpdHlMb2NhdGlvbi5wYXJ0cy5tYXAoXG4gICAgICAoYXBpQWN0aXZpdHlMb2NhdGlvblBhcnQ6IEFwaUFjdGl2aXR5TG9jYXRpb25QYXJ0KSA9PiBhY3Rpdml0eUxvY2F0aW9uUGFydEZhY3RvcnkoYXBpQWN0aXZpdHlMb2NhdGlvblBhcnQpXG4gICAgKSA6IFtdLFxuICApO1xuIl19
@@ -127,42 +127,75 @@ class ActivityInvite {
127
127
  }
128
128
  }
129
129
 
130
- class ActivityLocation {
131
- constructor(id, club_id, section_id, active, mun_location_city_area, mun_location_name, name) {
130
+ class ActivityLocationTag {
131
+ constructor(id, club_id, section_id, name) {
132
132
  this.id = id;
133
133
  this.club_id = club_id;
134
134
  this.section_id = section_id;
135
- this.active = active;
136
- this.mun_location_city_area = mun_location_city_area;
137
- this.mun_location_name = mun_location_name;
138
135
  this.name = name;
139
136
  }
137
+ static asFormGroup(tag) {
138
+ return new FormGroup({
139
+ id: new FormControl((tag === null || tag === void 0 ? void 0 : tag.id) || ''),
140
+ name: new FormControl((tag === null || tag === void 0 ? void 0 : tag.name) || '', Validators.required),
141
+ });
142
+ }
140
143
  }
141
144
 
142
- class ActivityLocationGroup {
143
- constructor(id, club_id, section_id, active, name, locations) {
145
+ class ActivityLocationPart {
146
+ constructor(id, name) {
144
147
  this.id = id;
145
- this.club_id = club_id;
146
- this.section_id = section_id;
147
- this.active = active;
148
148
  this.name = name;
149
- this.locations = locations;
149
+ }
150
+ static asFormGroup(tag) {
151
+ return new FormGroup({
152
+ id: new FormControl((tag === null || tag === void 0 ? void 0 : tag.id) || ''),
153
+ name: new FormControl((tag === null || tag === void 0 ? void 0 : tag.name) || '', Validators.required),
154
+ });
150
155
  }
151
156
  }
152
157
 
153
- class ActivityLocationTag {
154
- constructor(id, club_id, section_id, name) {
158
+ class ActivityLocation {
159
+ constructor(id, club_id, section_id, group_id, active, mun_location_city_area, mun_location_name, name, tags, parts) {
155
160
  this.id = id;
156
161
  this.club_id = club_id;
157
162
  this.section_id = section_id;
163
+ this.group_id = group_id;
164
+ this.active = active;
165
+ this.mun_location_city_area = mun_location_city_area;
166
+ this.mun_location_name = mun_location_name;
158
167
  this.name = name;
168
+ this.tags = tags;
169
+ this.parts = parts;
170
+ }
171
+ static asFormGroup(location) {
172
+ const tags = [];
173
+ const parts = [];
174
+ if (location === null || location === void 0 ? void 0 : location.tags) {
175
+ location.tags.forEach((tag) => tags.push(ActivityLocationTag.asFormGroup(tag)));
176
+ }
177
+ if (location === null || location === void 0 ? void 0 : location.parts) {
178
+ location.parts.forEach((part) => parts.push(ActivityLocationPart.asFormGroup(part)));
179
+ }
180
+ return new FormGroup({
181
+ id: new FormControl((location === null || location === void 0 ? void 0 : location.id) || ''),
182
+ club_id: new FormControl((location === null || location === void 0 ? void 0 : location.club_id) || '', Validators.required),
183
+ active: new FormControl(typeof (location === null || location === void 0 ? void 0 : location.active) !== 'undefined' ? location === null || location === void 0 ? void 0 : location.active : false),
184
+ group_id: new FormControl((location === null || location === void 0 ? void 0 : location.group_id) || ''),
185
+ tags: new FormArray(tags),
186
+ parts: new FormArray(parts),
187
+ });
159
188
  }
160
189
  }
161
190
 
162
- class ActivityLocationPart {
163
- constructor(id, name) {
191
+ class ActivityLocationGroup {
192
+ constructor(id, club_id, section_id, active, name, locations) {
164
193
  this.id = id;
194
+ this.club_id = club_id;
195
+ this.section_id = section_id;
196
+ this.active = active;
165
197
  this.name = name;
198
+ this.locations = locations;
166
199
  }
167
200
  }
168
201
 
@@ -1492,14 +1525,18 @@ const unpaidInvoiceFactory = (apiUnpaidInvoice) => new UnpaidMemberInvoice(apiUn
1492
1525
 
1493
1526
  const activityInviteFactory = (apiActivityInvite) => new ActivityInvite(apiActivityInvite.id, activityFactory(apiActivityInvite.activity), apiActivityInvite.comment, apiActivityInvite.created, apiActivityInvite.has_unpaid_invoices, apiActivityInvite.last_invite, apiActivityInvite.leader, searchMemberFactory(apiActivityInvite.member), apiActivityInvite.next_invite, apiActivityInvite.reminded, apiActivityInvite.response_date, apiActivityInvite.status, apiActivityInvite.token, apiActivityInvite.unpaid_invoices && apiActivityInvite.unpaid_invoices.length ? apiActivityInvite.unpaid_invoices.map((apiUnpaidInvoice) => unpaidInvoiceFactory(apiUnpaidInvoice)) : [], apiActivityInvite.updated);
1494
1527
 
1495
- const activityLocationFactory = (apiActivityLocation) => new ActivityLocation(apiActivityLocation.id, apiActivityLocation.club_id, apiActivityLocation.section_id, apiActivityLocation.active, apiActivityLocation.mun_location_city_area, apiActivityLocation.mun_location_name, apiActivityLocation.name);
1528
+ const activityLocationTagFactory = (apiActivityLocationTag) => {
1529
+ return new ActivityLocationTag(apiActivityLocationTag.id, apiActivityLocationTag.club_id, apiActivityLocationTag.section_id, apiActivityLocationTag.name);
1530
+ };
1496
1531
 
1497
- const activityLocationGroupFactory = (apiActivityLocationGroup) => {
1498
- return new ActivityLocationGroup(apiActivityLocationGroup.id, apiActivityLocationGroup.club_id, apiActivityLocationGroup.section_id, apiActivityLocationGroup.active, apiActivityLocationGroup.name, apiActivityLocationGroup.locations && apiActivityLocationGroup.locations.length ? apiActivityLocationGroup.locations.map((apiActivityLocation) => activityLocationFactory(apiActivityLocation)) : []);
1532
+ const activityLocationPartFactory = (apiActivityLocationPart) => {
1533
+ return new ActivityLocationPart(apiActivityLocationPart.id, apiActivityLocationPart.name);
1499
1534
  };
1500
1535
 
1501
- const activityLocationTagFactory = (apiActivityLocationTag) => {
1502
- return new ActivityLocationTag(apiActivityLocationTag.id, apiActivityLocationTag.club_id, apiActivityLocationTag.section_id, apiActivityLocationTag.name);
1536
+ const activityLocationFactory = (apiActivityLocation) => new ActivityLocation(apiActivityLocation.id, apiActivityLocation.club_id, apiActivityLocation.section_id, apiActivityLocation.group_id, apiActivityLocation.active, apiActivityLocation.mun_location_city_area, apiActivityLocation.mun_location_name, apiActivityLocation.name, apiActivityLocation.tags && apiActivityLocation.tags.length > 0 ? apiActivityLocation.tags.map((apiActivityLocationTag) => activityLocationTagFactory(apiActivityLocationTag)) : [], apiActivityLocation.parts && apiActivityLocation.parts.length > 0 ? apiActivityLocation.parts.map((apiActivityLocationPart) => activityLocationPartFactory(apiActivityLocationPart)) : []);
1537
+
1538
+ const activityLocationGroupFactory = (apiActivityLocationGroup) => {
1539
+ return new ActivityLocationGroup(apiActivityLocationGroup.id, apiActivityLocationGroup.club_id, apiActivityLocationGroup.section_id, apiActivityLocationGroup.active, apiActivityLocationGroup.name, apiActivityLocationGroup.locations && apiActivityLocationGroup.locations.length ? apiActivityLocationGroup.locations.map((apiActivityLocation) => activityLocationFactory(apiActivityLocation)) : []);
1503
1540
  };
1504
1541
 
1505
1542
  const activitySettingsFactory = (apiActivitySettings) => new ActivitySettings(apiActivitySettings.day_options, apiActivitySettings.hour_options, apiActivitySettings.invite_group_options, apiActivitySettings.invite_settings_options, apiActivitySettings.max_attendance_options, apiActivitySettings.meet_up_time_options, apiActivitySettings.remind_receiver_options, apiActivitySettings.repeat_options, apiActivitySettings.repeat_type_options);
@@ -1706,10 +1743,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
1706
1743
  }]
1707
1744
  }], ctorParameters: function () { return [{ type: ApiService }]; } });
1708
1745
 
1709
- const activityLocationPartFactory = (apiActivityLocationPart) => {
1710
- return new ActivityLocationPart(apiActivityLocationPart.id, apiActivityLocationPart.name);
1711
- };
1712
-
1713
1746
  const MEMBER_ACTIVITY_INVITE_PATH = ':memberId/activities/:activityInviteId/';
1714
1747
  const MEMBER_ACTIVITY_INVITES_PATH = ':memberId/activities/';
1715
1748
  const MEMBER_CALENDAR_PATH = ':memberId/activities/calendar/';
@@ -1726,6 +1759,7 @@ const CLUB_ACTIVITY_SETTINGS_PATH = ':clubId/activities/settings/';
1726
1759
  const TEAM_ACTIVITY_TYPES_PATH = ':teamId/activities/types/';
1727
1760
  const TEAM_CALENDAR_PATH = ':teamId/activities/calendar/';
1728
1761
  const CLUB_ACTIVITY_LOCATIONS_PATH = ':clubId/activities/locations/';
1762
+ const CLUB_ACTIVITY_LOCATION_PATH = ':clubId/activities/locations/:locationId/';
1729
1763
  const CLUB_ACTIVITY_LOCATION_GROUPS_PATH = ':clubId/activities/locations/groups/';
1730
1764
  const CLUB_ACTIVITY_LOCATION_TAGS_PATH = ':clubId/activities/locations/tags/';
1731
1765
  const CLUB_ACTIVITY_LOCATION_PARTS_PATH = ':clubId/activities/locations/:locationId/parts/';
@@ -1805,8 +1839,14 @@ class ActivityService {
1805
1839
  return this.apiService
1806
1840
  .getResource(activityFactory, Role.TeamAdmin, TEAM_ACTIVITY_PATH, { teamId, id });
1807
1841
  }
1808
- getTeamActivityLocations(teamId) {
1809
- if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 })) {
1842
+ getActivityLocations(role, clubOrTeamId, force = false) {
1843
+ if (role == Role.ClubAdmin) {
1844
+ return this.getClubActivityLocations(clubOrTeamId, force);
1845
+ }
1846
+ return this.getTeamActivityLocations(clubOrTeamId, force);
1847
+ }
1848
+ getTeamActivityLocations(teamId, force = false) {
1849
+ if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 }) && !force) {
1810
1850
  return of(this.activityLocationCollection);
1811
1851
  }
1812
1852
  return this.apiService
@@ -1815,8 +1855,8 @@ class ActivityService {
1815
1855
  this.activityLocationCollection = activityLocationCollection;
1816
1856
  }));
1817
1857
  }
1818
- getClubActivityLocations(clubId) {
1819
- if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 })) {
1858
+ getClubActivityLocations(clubId, force = false) {
1859
+ if (this.activityLocationResponseDate && this.activityLocationResponseDate > sub(new Date(), { hours: 1 }) && !force) {
1820
1860
  return of(this.activityLocationCollection);
1821
1861
  }
1822
1862
  return this.apiService
@@ -1825,6 +1865,13 @@ class ActivityService {
1825
1865
  this.activityLocationCollection = activityLocationCollection;
1826
1866
  }));
1827
1867
  }
1868
+ updateClubActivityLocation(clubId, location) {
1869
+ return this.apiService
1870
+ .updateResource(activityLocationFactory, Role.ClubAdmin, CLUB_ACTIVITY_LOCATION_PATH, {
1871
+ clubId,
1872
+ locationId: location.id
1873
+ }, location);
1874
+ }
1828
1875
  getActivityLocationGroups(role, clubOrTeamId) {
1829
1876
  if (role == Role.ClubAdmin) {
1830
1877
  return this.getClubActivityLocationGroups(clubOrTeamId);
@@ -1853,6 +1900,26 @@ class ActivityService {
1853
1900
  return this.apiService
1854
1901
  .getCollection(activityLocationTagFactory, Role.TeamAdmin, TEAM_ACTIVITY_LOCATION_TAGS_PATH, { teamId }, { params: { limit: 'null' } });
1855
1902
  }
1903
+ createActivityLocationTag(role, clubOrTeamId, tag) {
1904
+ if (role == Role.ClubAdmin) {
1905
+ return this.createClubActivityLocationTag(clubOrTeamId, tag);
1906
+ }
1907
+ return this.createTeamActivityLocationTag(clubOrTeamId, tag);
1908
+ }
1909
+ createClubActivityLocationTag(clubId, tag) {
1910
+ delete tag.id;
1911
+ return this.apiService
1912
+ .postResource(activityLocationTagFactory, Role.ClubAdmin, CLUB_ACTIVITY_LOCATION_TAGS_PATH, {
1913
+ clubId,
1914
+ }, tag);
1915
+ }
1916
+ createTeamActivityLocationTag(teamId, tag) {
1917
+ delete tag.id;
1918
+ return this.apiService
1919
+ .postResource(activityLocationTagFactory, Role.TeamAdmin, TEAM_ACTIVITY_LOCATION_TAGS_PATH, {
1920
+ teamId,
1921
+ }, tag);
1922
+ }
1856
1923
  getActivityLocationParts(role, clubOrTeamId, locationId) {
1857
1924
  if (role == Role.ClubAdmin) {
1858
1925
  return this.getClubActivityLocationParts(clubOrTeamId, locationId);