@cleavelandprice/ngx-lib 3.11.3 → 3.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/active-directory/gui/components/user-chooser/user-chooser.component.d.ts +20 -2
  2. package/active-directory/gui/components/user-form-field/user-form-field.component.d.ts +5 -4
  3. package/authentication/token/gui/components/login/login.component.d.ts +3 -3
  4. package/authentication/token/gui/components/login-form/login-form.component.d.ts +1 -2
  5. package/authentication/token/gui/services/authentication.service.d.ts +2 -4
  6. package/authentication/token/services/authentication.service.d.ts +3 -4
  7. package/dialog/components/base/base.component.d.ts +6 -5
  8. package/esm2022/active-directory/gui/components/user-chooser/user-chooser.component.mjs +60 -68
  9. package/esm2022/active-directory/gui/components/user-form-field/user-form-field.component.mjs +22 -27
  10. package/esm2022/authentication/token/gui/components/login/login.component.mjs +9 -10
  11. package/esm2022/authentication/token/gui/components/login-form/login-form.component.mjs +11 -12
  12. package/esm2022/authentication/token/gui/services/authentication.service.mjs +5 -7
  13. package/esm2022/authentication/token/services/authentication.service.mjs +9 -8
  14. package/esm2022/dialog/components/base/base.component.mjs +26 -26
  15. package/esm2022/lib/services/app-path-config.service.mjs +13 -10
  16. package/esm2022/quill/components/editor/editor.component.mjs +41 -48
  17. package/esm2022/quill/mention/components/editor/editor.component.mjs +30 -40
  18. package/esm2022/sharepoint/components/user-photo/user-photo.component.mjs +36 -0
  19. package/esm2022/sharepoint/pipes/user-photo-url.pipe.mjs +38 -0
  20. package/esm2022/sharepoint/public_api.mjs +3 -3
  21. package/esm2022/sharepoint/sharepoint.module.mjs +11 -11
  22. package/esm2022/upload/components/upload-dialog/upload-dialog.component.mjs +3 -3
  23. package/fesm2022/cleavelandprice-ngx-lib-active-directory-gui.mjs +79 -91
  24. package/fesm2022/cleavelandprice-ngx-lib-active-directory-gui.mjs.map +1 -1
  25. package/fesm2022/cleavelandprice-ngx-lib-authentication-token-gui.mjs +23 -27
  26. package/fesm2022/cleavelandprice-ngx-lib-authentication-token-gui.mjs.map +1 -1
  27. package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs +8 -7
  28. package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs.map +1 -1
  29. package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs +25 -25
  30. package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
  31. package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs +30 -40
  32. package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -1
  33. package/fesm2022/cleavelandprice-ngx-lib-quill.mjs +43 -49
  34. package/fesm2022/cleavelandprice-ngx-lib-quill.mjs.map +1 -1
  35. package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs +34 -35
  36. package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
  37. package/fesm2022/cleavelandprice-ngx-lib-upload.mjs +2 -2
  38. package/fesm2022/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
  39. package/fesm2022/cleavelandprice-ngx-lib.mjs +12 -9
  40. package/fesm2022/cleavelandprice-ngx-lib.mjs.map +1 -1
  41. package/lib/services/app-path-config.service.d.ts +1 -2
  42. package/package.json +1 -1
  43. package/quill/components/editor/editor.component.d.ts +2 -7
  44. package/quill/mention/components/editor/editor.component.d.ts +13 -10
  45. package/sharepoint/components/user-photo/user-photo.component.d.ts +15 -0
  46. package/sharepoint/pipes/{employee-photo-url.pipe.d.ts → user-photo-url.pipe.d.ts} +3 -3
  47. package/sharepoint/public_api.d.ts +2 -2
  48. package/sharepoint/sharepoint.module.d.ts +3 -3
  49. package/esm2022/sharepoint/components/employee-photo/employee-photo.component.mjs +0 -37
  50. package/esm2022/sharepoint/pipes/employee-photo-url.pipe.mjs +0 -38
  51. package/sharepoint/components/employee-photo/employee-photo.component.d.ts +0 -15
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
1
+ import { Component, EventEmitter, Output, input } from '@angular/core';
2
2
  import { ConfirmationDialogMode } from '../../model/confirmation-dialog-mode';
3
3
  import { DialogType } from '../../model/dialog-type';
4
4
  import * as i0 from "@angular/core";
@@ -10,42 +10,46 @@ import * as i5 from "@angular/material/form-field";
10
10
  import * as i6 from "@angular/material/input";
11
11
  export class BaseComponent {
12
12
  constructor() {
13
- // This is so that DialogType can be publish accessible from the HTML template
13
+ // This is so that DialogType can be accessible from the HTML template
14
14
  this.DialogType = DialogType;
15
- this.dialogType = DialogType.Message;
15
+ this.dialogType = input(DialogType.Message);
16
+ this.data = input.required();
16
17
  this.closed = new EventEmitter();
17
18
  this.ConfirmationDialogMode = ConfirmationDialogMode;
18
19
  }
20
+ get #customTrueFalseTextValid() {
21
+ return this.data().customTrueFalseText?.length === 2;
22
+ }
19
23
  get customTrueText() {
20
- return this.data.customTrueFalseText ?
21
- this.data.customTrueFalseText[0] :
22
- null;
24
+ return this.#customTrueFalseTextValid ?
25
+ this.data().customTrueFalseText[0] :
26
+ undefined;
23
27
  }
24
28
  get customFalseText() {
25
- return this.data.customTrueFalseText ?
26
- this.data.customTrueFalseText[1] :
27
- null;
29
+ return this.#customTrueFalseTextValid ?
30
+ this.data().customTrueFalseText[1] :
31
+ undefined;
28
32
  }
29
33
  get choices() {
30
- return this.dialogType === DialogType.Choice ?
31
- this.data.choices :
34
+ return this.dialogType() === DialogType.Choice ?
35
+ this.data().choices :
32
36
  null;
33
37
  }
34
38
  ngOnInit() {
35
- this.userInput = this.data.value;
39
+ this.userInput = this.data().value;
36
40
  }
37
41
  close() {
38
42
  let data;
39
- switch (this.dialogType) {
43
+ switch (this.dialogType()) {
40
44
  case DialogType.Message:
41
- data = this.data.checkboxMessage ?
45
+ data = this.data().checkboxMessage ?
42
46
  {
43
47
  checkbox: this.checkboxValue || false
44
48
  } :
45
49
  null;
46
50
  break;
47
51
  case DialogType.Input:
48
- data = this.data.checkboxMessage ?
52
+ data = this.data().checkboxMessage ?
49
53
  {
50
54
  response: this.userInput,
51
55
  checkbox: this.checkboxValue || false
@@ -53,7 +57,7 @@ export class BaseComponent {
53
57
  this.userInput;
54
58
  break;
55
59
  case DialogType.Confirmation:
56
- data = this.data.checkboxMessage ?
60
+ data = this.data().checkboxMessage ?
57
61
  {
58
62
  response: true,
59
63
  checkbox: this.checkboxValue || false
@@ -65,8 +69,8 @@ export class BaseComponent {
65
69
  }
66
70
  cancel() {
67
71
  let data;
68
- if (this.dialogType === DialogType.Confirmation) {
69
- data = this.data.checkboxMessage ?
72
+ if (this.dialogType() === DialogType.Confirmation) {
73
+ data = this.data().checkboxMessage ?
70
74
  {
71
75
  response: false,
72
76
  checkbox: this.checkboxValue || false
@@ -76,16 +80,12 @@ export class BaseComponent {
76
80
  this.closed.emit(data);
77
81
  }
78
82
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
79
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: BaseComponent, selector: "cp-dialog-base", inputs: { dialogType: "dialogType", data: "data" }, outputs: { closed: "closed" }, ngImport: i0, template: "@if (data?.title) {\n <h2 mat-dialog-title [innerHTML]=\"data.title\"></h2>\n}\n\n<mat-dialog-content>\n @if (data?.message) {\n <div [innerHTML]=\"data.message\"></div>\n }\n\n @if (dialogType === DialogType.Input) {\n <mat-form-field>\n <textarea matInput [placeholder]=\"data.placeholder ?? ''\" [(ngModel)]=\"userInput\"></textarea>\n </mat-form-field>\n }\n\n @if (data?.checkboxMessage) {\n <div id=\"checkbox\">\n <mat-checkbox [(ngModel)]=\"checkboxValue\">\n <span [innerHTML]=\"data.checkboxMessage\"></span>\n </mat-checkbox>\n </div>\n }\n</mat-dialog-content>\n\n<mat-dialog-actions>\n @if (dialogType !== DialogType.Choice) {\n <button mat-raised-button (click)=\"close()\" [disabled]=\"dialogType === DialogType.Input && !userInput\">\n <span>\n @switch (data.mode) {\n @case (ConfirmationDialogMode.YesNo) {\n <span>Yes</span>\n }\n @case (ConfirmationDialogMode.TrueFalse) {\n <span>True</span>\n }\n @case (ConfirmationDialogMode.Custom) {\n <span>{{ customTrueText }}</span>\n }\n @default {\n <span>OK</span>\n }\n }\n </span>\n </button>\n @if (dialogType !== DialogType.Message) {\n <button mat-raised-button (click)=\"cancel()\">\n <span>\n @switch (data.mode) {\n @case (ConfirmationDialogMode.YesNo) {\n <span>No</span>\n }\n @case (ConfirmationDialogMode.TrueFalse) {\n <span>False</span>\n }\n @case (ConfirmationDialogMode.Custom) {\n <span>{{ customFalseText }}</span>\n }\n @default {\n <span>Cancel</span>\n }\n }\n </span>\n </button>\n }\n }\n\n @if (dialogType === DialogType.Choice) {\n @for (choice of choices; track choice; let i = $index) {\n <button mat-raised-button [matDialogClose]=\"i\">\n <span>{{ choice }}</span>\n </button>\n }\n }\n</mat-dialog-actions>", styles: ["mat-form-field{margin-top:2em;width:100%}#checkbox{margin:2em 0}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
83
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: BaseComponent, selector: "cp-dialog-base", inputs: { dialogType: { classPropertyName: "dialogType", publicName: "dialogType", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { closed: "closed" }, ngImport: i0, template: "@if (data().title) {\n <h2 mat-dialog-title [innerHTML]=\"data().title\"></h2>\n}\n\n<mat-dialog-content>\n @if (data().message) {\n <div [innerHTML]=\"data().message\"></div>\n }\n\n @if (dialogType() === DialogType.Input) {\n <mat-form-field>\n <textarea matInput [placeholder]=\"data().placeholder ?? ''\" [(ngModel)]=\"userInput\"></textarea>\n </mat-form-field>\n }\n\n @if (data().checkboxMessage) {\n <div id=\"checkbox\">\n <mat-checkbox [(ngModel)]=\"checkboxValue\">\n <span [innerHTML]=\"data().checkboxMessage\"></span>\n </mat-checkbox>\n </div>\n }\n</mat-dialog-content>\n\n<mat-dialog-actions>\n @if (dialogType() !== DialogType.Choice) {\n <button mat-raised-button (click)=\"close()\" [disabled]=\"dialogType() === DialogType.Input && !userInput\">\n <span>\n @switch (data().mode) {\n @case (ConfirmationDialogMode.YesNo) {\n <span>Yes</span>\n }\n @case (ConfirmationDialogMode.TrueFalse) {\n <span>True</span>\n }\n @case (ConfirmationDialogMode.Custom) {\n <span>{{ customTrueText }}</span>\n }\n @default {\n <span>OK</span>\n }\n }\n </span>\n </button>\n @if (dialogType() !== DialogType.Message) {\n <button mat-raised-button (click)=\"cancel()\">\n <span>\n @switch (data().mode) {\n @case (ConfirmationDialogMode.YesNo) {\n <span>No</span>\n }\n @case (ConfirmationDialogMode.TrueFalse) {\n <span>False</span>\n }\n @case (ConfirmationDialogMode.Custom) {\n <span>{{ customFalseText }}</span>\n }\n @default {\n <span>Cancel</span>\n }\n }\n </span>\n </button>\n }\n }\n\n @if (dialogType() === DialogType.Choice) {\n @for (choice of choices; track choice; let i = $index) {\n <button mat-raised-button [matDialogClose]=\"i\">\n <span>{{ choice }}</span>\n </button>\n }\n }\n</mat-dialog-actions>", styles: ["mat-form-field{margin-top:2em;width:100%}#checkbox{margin:2em 0}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
80
84
  }
81
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BaseComponent, decorators: [{
82
86
  type: Component,
83
- args: [{ selector: 'cp-dialog-base', template: "@if (data?.title) {\n <h2 mat-dialog-title [innerHTML]=\"data.title\"></h2>\n}\n\n<mat-dialog-content>\n @if (data?.message) {\n <div [innerHTML]=\"data.message\"></div>\n }\n\n @if (dialogType === DialogType.Input) {\n <mat-form-field>\n <textarea matInput [placeholder]=\"data.placeholder ?? ''\" [(ngModel)]=\"userInput\"></textarea>\n </mat-form-field>\n }\n\n @if (data?.checkboxMessage) {\n <div id=\"checkbox\">\n <mat-checkbox [(ngModel)]=\"checkboxValue\">\n <span [innerHTML]=\"data.checkboxMessage\"></span>\n </mat-checkbox>\n </div>\n }\n</mat-dialog-content>\n\n<mat-dialog-actions>\n @if (dialogType !== DialogType.Choice) {\n <button mat-raised-button (click)=\"close()\" [disabled]=\"dialogType === DialogType.Input && !userInput\">\n <span>\n @switch (data.mode) {\n @case (ConfirmationDialogMode.YesNo) {\n <span>Yes</span>\n }\n @case (ConfirmationDialogMode.TrueFalse) {\n <span>True</span>\n }\n @case (ConfirmationDialogMode.Custom) {\n <span>{{ customTrueText }}</span>\n }\n @default {\n <span>OK</span>\n }\n }\n </span>\n </button>\n @if (dialogType !== DialogType.Message) {\n <button mat-raised-button (click)=\"cancel()\">\n <span>\n @switch (data.mode) {\n @case (ConfirmationDialogMode.YesNo) {\n <span>No</span>\n }\n @case (ConfirmationDialogMode.TrueFalse) {\n <span>False</span>\n }\n @case (ConfirmationDialogMode.Custom) {\n <span>{{ customFalseText }}</span>\n }\n @default {\n <span>Cancel</span>\n }\n }\n </span>\n </button>\n }\n }\n\n @if (dialogType === DialogType.Choice) {\n @for (choice of choices; track choice; let i = $index) {\n <button mat-raised-button [matDialogClose]=\"i\">\n <span>{{ choice }}</span>\n </button>\n }\n }\n</mat-dialog-actions>", styles: ["mat-form-field{margin-top:2em;width:100%}#checkbox{margin:2em 0}\n"] }]
84
- }], propDecorators: { dialogType: [{
85
- type: Input
86
- }], data: [{
87
- type: Input
88
- }], closed: [{
87
+ args: [{ selector: 'cp-dialog-base', template: "@if (data().title) {\n <h2 mat-dialog-title [innerHTML]=\"data().title\"></h2>\n}\n\n<mat-dialog-content>\n @if (data().message) {\n <div [innerHTML]=\"data().message\"></div>\n }\n\n @if (dialogType() === DialogType.Input) {\n <mat-form-field>\n <textarea matInput [placeholder]=\"data().placeholder ?? ''\" [(ngModel)]=\"userInput\"></textarea>\n </mat-form-field>\n }\n\n @if (data().checkboxMessage) {\n <div id=\"checkbox\">\n <mat-checkbox [(ngModel)]=\"checkboxValue\">\n <span [innerHTML]=\"data().checkboxMessage\"></span>\n </mat-checkbox>\n </div>\n }\n</mat-dialog-content>\n\n<mat-dialog-actions>\n @if (dialogType() !== DialogType.Choice) {\n <button mat-raised-button (click)=\"close()\" [disabled]=\"dialogType() === DialogType.Input && !userInput\">\n <span>\n @switch (data().mode) {\n @case (ConfirmationDialogMode.YesNo) {\n <span>Yes</span>\n }\n @case (ConfirmationDialogMode.TrueFalse) {\n <span>True</span>\n }\n @case (ConfirmationDialogMode.Custom) {\n <span>{{ customTrueText }}</span>\n }\n @default {\n <span>OK</span>\n }\n }\n </span>\n </button>\n @if (dialogType() !== DialogType.Message) {\n <button mat-raised-button (click)=\"cancel()\">\n <span>\n @switch (data().mode) {\n @case (ConfirmationDialogMode.YesNo) {\n <span>No</span>\n }\n @case (ConfirmationDialogMode.TrueFalse) {\n <span>False</span>\n }\n @case (ConfirmationDialogMode.Custom) {\n <span>{{ customFalseText }}</span>\n }\n @default {\n <span>Cancel</span>\n }\n }\n </span>\n </button>\n }\n }\n\n @if (dialogType() === DialogType.Choice) {\n @for (choice of choices; track choice; let i = $index) {\n <button mat-raised-button [matDialogClose]=\"i\">\n <span>{{ choice }}</span>\n </button>\n }\n }\n</mat-dialog-actions>", styles: ["mat-form-field{margin-top:2em;width:100%}#checkbox{margin:2em 0}\n"] }]
88
+ }], propDecorators: { closed: [{
89
89
  type: Output
90
90
  }] } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9kaWFsb2cvc3JjL2NvbXBvbmVudHMvYmFzZS9iYXNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2RpYWxvZy9zcmMvY29tcG9uZW50cy9iYXNlL2Jhc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUc5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBT3JELE1BQU0sT0FBTyxhQUFhO0lBTDFCO1FBTUUsOEVBQThFO1FBQzlFLGVBQVUsR0FBRyxVQUFVLENBQUM7UUFDZixlQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUUvQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUUzQywyQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQztLQTBFakQ7SUFwRUMsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUM7SUFDVCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUM7SUFDVCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsSUFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUM7SUFDVCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLElBQVMsQ0FBQztRQUVkLFFBQVEsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3RCLEtBQUssVUFBVSxDQUFDLE9BQU87Z0JBQ25CLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUM5Qjt3QkFDSSxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxLQUFLO3FCQUN4QyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDO2dCQUNULE1BQU07WUFDVixLQUFLLFVBQVUsQ0FBQyxLQUFLO2dCQUNqQixJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDOUI7d0JBQ0ksUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO3dCQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxLQUFLO3FCQUN4QyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDbkIsTUFBTTtZQUNWLEtBQUssVUFBVSxDQUFDLFlBQVk7Z0JBQ3hCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUM5Qjt3QkFDSSxRQUFRLEVBQUUsSUFBSTt3QkFDZCxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxLQUFLO3FCQUN4QyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDO2dCQUNULE1BQU07UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLElBQVMsQ0FBQztRQUVkLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDOUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQzlCO29CQUNJLFFBQVEsRUFBRSxLQUFLO29CQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxJQUFJLEtBQUs7aUJBQ3hDLENBQUMsQ0FBQztnQkFDSCxLQUFLLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQzs4R0FoRlUsYUFBYTtrR0FBYixhQUFhLHlJQ1oxQiw0akVBeUVxQjs7MkZEN0RSLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsZ0JBQWdCOzhCQU9qQixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dNb2RlIH0gZnJvbSAnLi4vLi4vbW9kZWwvY29uZmlybWF0aW9uLWRpYWxvZy1tb2RlJztcclxuaW1wb3J0IHsgRGlhbG9nQmFzZURhdGEgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFsb2ctYmFzZS1kYXRhJztcclxuaW1wb3J0IHsgRGlhbG9nQ2hvaWNlRGF0YSB9IGZyb20gJy4uLy4uL21vZGVsL2RpYWxvZy1jaG9pY2UtZGF0YSc7XHJcbmltcG9ydCB7IERpYWxvZ1R5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFsb2ctdHlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NwLWRpYWxvZy1iYXNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmFzZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmFzZS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vIFRoaXMgaXMgc28gdGhhdCBEaWFsb2dUeXBlIGNhbiBiZSBwdWJsaXNoIGFjY2Vzc2libGUgZnJvbSB0aGUgSFRNTCB0ZW1wbGF0ZVxyXG4gIERpYWxvZ1R5cGUgPSBEaWFsb2dUeXBlO1xyXG4gIEBJbnB1dCgpIGRpYWxvZ1R5cGUgPSBEaWFsb2dUeXBlLk1lc3NhZ2U7XHJcbiAgQElucHV0KCkgZGF0YSE6IERpYWxvZ0Jhc2VEYXRhO1xyXG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQ29uZmlybWF0aW9uRGlhbG9nTW9kZSA9IENvbmZpcm1hdGlvbkRpYWxvZ01vZGU7XHJcblxyXG4gIC8vIEZvcm0gdmFsdWVzXHJcbiAgdXNlcklucHV0Pzogc3RyaW5nO1xyXG4gIGNoZWNrYm94VmFsdWUhOiBib29sZWFuO1xyXG5cclxuICBnZXQgY3VzdG9tVHJ1ZVRleHQoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhLmN1c3RvbVRydWVGYWxzZVRleHQgP1xyXG4gICAgICB0aGlzLmRhdGEuY3VzdG9tVHJ1ZUZhbHNlVGV4dFswXSA6XHJcbiAgICAgIG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXQgY3VzdG9tRmFsc2VUZXh0KCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YS5jdXN0b21UcnVlRmFsc2VUZXh0ID9cclxuICAgICAgdGhpcy5kYXRhLmN1c3RvbVRydWVGYWxzZVRleHRbMV0gOlxyXG4gICAgICBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNob2ljZXMoKTogc3RyaW5nW10gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmRpYWxvZ1R5cGUgPT09IERpYWxvZ1R5cGUuQ2hvaWNlID9cclxuICAgICAgKHRoaXMuZGF0YSBhcyBEaWFsb2dDaG9pY2VEYXRhKS5jaG9pY2VzIDpcclxuICAgICAgbnVsbDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy51c2VySW5wdXQgPSB0aGlzLmRhdGEudmFsdWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpOiB2b2lkIHtcclxuICAgIGxldCBkYXRhOiBhbnk7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLmRpYWxvZ1R5cGUpIHtcclxuICAgICAgICBjYXNlIERpYWxvZ1R5cGUuTWVzc2FnZTpcclxuICAgICAgICAgICAgZGF0YSA9IHRoaXMuZGF0YS5jaGVja2JveE1lc3NhZ2UgP1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrYm94OiB0aGlzLmNoZWNrYm94VmFsdWUgfHwgZmFsc2VcclxuICAgICAgICAgICAgICAgIH0gOlxyXG4gICAgICAgICAgICAgICAgbnVsbDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBEaWFsb2dUeXBlLklucHV0OlxyXG4gICAgICAgICAgICBkYXRhID0gdGhpcy5kYXRhLmNoZWNrYm94TWVzc2FnZSA/XHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2U6IHRoaXMudXNlcklucHV0LFxyXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrYm94OiB0aGlzLmNoZWNrYm94VmFsdWUgfHwgZmFsc2VcclxuICAgICAgICAgICAgICAgIH0gOlxyXG4gICAgICAgICAgICAgICAgdGhpcy51c2VySW5wdXQ7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRGlhbG9nVHlwZS5Db25maXJtYXRpb246XHJcbiAgICAgICAgICAgIGRhdGEgPSB0aGlzLmRhdGEuY2hlY2tib3hNZXNzYWdlID9cclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBjaGVja2JveDogdGhpcy5jaGVja2JveFZhbHVlIHx8IGZhbHNlXHJcbiAgICAgICAgICAgICAgICB9IDpcclxuICAgICAgICAgICAgICAgIHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2xvc2VkLmVtaXQoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICBsZXQgZGF0YTogYW55O1xyXG5cclxuICAgIGlmICh0aGlzLmRpYWxvZ1R5cGUgPT09IERpYWxvZ1R5cGUuQ29uZmlybWF0aW9uKSB7XHJcbiAgICAgICAgZGF0YSA9IHRoaXMuZGF0YS5jaGVja2JveE1lc3NhZ2UgP1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBjaGVja2JveDogdGhpcy5jaGVja2JveFZhbHVlIHx8IGZhbHNlXHJcbiAgICAgICAgICAgIH0gOlxyXG4gICAgICAgICAgICBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNsb3NlZC5lbWl0KGRhdGEpO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKGRhdGE/LnRpdGxlKSB7XG4gIDxoMiBtYXQtZGlhbG9nLXRpdGxlIFtpbm5lckhUTUxdPVwiZGF0YS50aXRsZVwiPjwvaDI+XG59XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIEBpZiAoZGF0YT8ubWVzc2FnZSkge1xuICAgIDxkaXYgW2lubmVySFRNTF09XCJkYXRhLm1lc3NhZ2VcIj48L2Rpdj5cbiAgfVxuXG4gIEBpZiAoZGlhbG9nVHlwZSA9PT0gRGlhbG9nVHlwZS5JbnB1dCkge1xuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPVwiZGF0YS5wbGFjZWhvbGRlciA/PyAnJ1wiIFsobmdNb2RlbCldPVwidXNlcklucHV0XCI+PC90ZXh0YXJlYT5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICB9XG5cbiAgQGlmIChkYXRhPy5jaGVja2JveE1lc3NhZ2UpIHtcbiAgICA8ZGl2IGlkPVwiY2hlY2tib3hcIj5cbiAgICAgIDxtYXQtY2hlY2tib3ggWyhuZ01vZGVsKV09XCJjaGVja2JveFZhbHVlXCI+XG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiZGF0YS5jaGVja2JveE1lc3NhZ2VcIj48L3NwYW4+XG4gICAgICA8L21hdC1jaGVja2JveD5cbiAgICA8L2Rpdj5cbiAgfVxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gIEBpZiAoZGlhbG9nVHlwZSAhPT0gRGlhbG9nVHlwZS5DaG9pY2UpIHtcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgW2Rpc2FibGVkXT1cImRpYWxvZ1R5cGUgPT09IERpYWxvZ1R5cGUuSW5wdXQgJiYgIXVzZXJJbnB1dFwiPlxuICAgICAgPHNwYW4+XG4gICAgICAgIEBzd2l0Y2ggKGRhdGEubW9kZSkge1xuICAgICAgICAgIEBjYXNlIChDb25maXJtYXRpb25EaWFsb2dNb2RlLlllc05vKSB7XG4gICAgICAgICAgICA8c3Bhbj5ZZXM8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlIChDb25maXJtYXRpb25EaWFsb2dNb2RlLlRydWVGYWxzZSkge1xuICAgICAgICAgICAgPHNwYW4+VHJ1ZTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGNhc2UgKENvbmZpcm1hdGlvbkRpYWxvZ01vZGUuQ3VzdG9tKSB7XG4gICAgICAgICAgICA8c3Bhbj57eyBjdXN0b21UcnVlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgPHNwYW4+T0s8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgQGlmIChkaWFsb2dUeXBlICE9PSBEaWFsb2dUeXBlLk1lc3NhZ2UpIHtcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImNhbmNlbCgpXCI+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIEBzd2l0Y2ggKGRhdGEubW9kZSkge1xuICAgICAgICAgICAgQGNhc2UgKENvbmZpcm1hdGlvbkRpYWxvZ01vZGUuWWVzTm8pIHtcbiAgICAgICAgICAgICAgPHNwYW4+Tm88L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoQ29uZmlybWF0aW9uRGlhbG9nTW9kZS5UcnVlRmFsc2UpIHtcbiAgICAgICAgICAgICAgPHNwYW4+RmFsc2U8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoQ29uZmlybWF0aW9uRGlhbG9nTW9kZS5DdXN0b20pIHtcbiAgICAgICAgICAgICAgPHNwYW4+e3sgY3VzdG9tRmFsc2VUZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICA8c3Bhbj5DYW5jZWw8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG4gIH1cblxuICBAaWYgKGRpYWxvZ1R5cGUgPT09IERpYWxvZ1R5cGUuQ2hvaWNlKSB7XG4gICAgQGZvciAoY2hvaWNlIG9mIGNob2ljZXM7IHRyYWNrIGNob2ljZTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gW21hdERpYWxvZ0Nsb3NlXT1cImlcIj5cbiAgICAgICAgPHNwYW4+e3sgY2hvaWNlIH19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICB9XG48L21hdC1kaWFsb2ctYWN0aW9ucz4iXX0=
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9kaWFsb2cvc3JjL2NvbXBvbmVudHMvYmFzZS9iYXNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2RpYWxvZy9zcmMvY29tcG9uZW50cy9iYXNlL2Jhc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUc5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBT3JELE1BQU0sT0FBTyxhQUFhO0lBTDFCO1FBTUUsc0VBQXNFO1FBQ3RFLGVBQVUsR0FBRyxVQUFVLENBQUM7UUFDeEIsZUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWtCLENBQUM7UUFDOUIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFM0MsMkJBQXNCLEdBQUcsc0JBQXNCLENBQUM7S0E4RWpEO0lBeEVDLElBQUkseUJBQXlCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLG1CQUFtQixFQUFFLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxtQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLFNBQVMsQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsbUJBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxTQUFTLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxJQUFJLEVBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDO0lBQ1QsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLElBQVMsQ0FBQztRQUVkLFFBQVEsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDeEIsS0FBSyxVQUFVLENBQUMsT0FBTztnQkFDbkIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDaEM7d0JBQ0ksUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLElBQUksS0FBSztxQkFDeEMsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQztnQkFDVCxNQUFNO1lBQ1YsS0FBSyxVQUFVLENBQUMsS0FBSztnQkFDakIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDaEM7d0JBQ0ksUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO3dCQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxLQUFLO3FCQUN4QyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDbkIsTUFBTTtZQUNWLEtBQUssVUFBVSxDQUFDLFlBQVk7Z0JBQ3hCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQ2hDO3dCQUNJLFFBQVEsRUFBRSxJQUFJO3dCQUNkLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxJQUFJLEtBQUs7cUJBQ3hDLENBQUMsQ0FBQztvQkFDSCxJQUFJLENBQUM7Z0JBQ1QsTUFBTTtRQUNkLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksSUFBUyxDQUFDO1FBRWQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2hELElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ2hDO29CQUNJLFFBQVEsRUFBRSxLQUFLO29CQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxJQUFJLEtBQUs7aUJBQ3hDLENBQUMsQ0FBQztnQkFDSCxLQUFLLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQzs4R0FwRlUsYUFBYTtrR0FBYixhQUFhLDRWQ1oxQixxbEVBeUVxQjs7MkZEN0RSLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsZ0JBQWdCOzhCQVNoQixNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dNb2RlIH0gZnJvbSAnLi4vLi4vbW9kZWwvY29uZmlybWF0aW9uLWRpYWxvZy1tb2RlJztcclxuaW1wb3J0IHsgRGlhbG9nQmFzZURhdGEgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFsb2ctYmFzZS1kYXRhJztcclxuaW1wb3J0IHsgRGlhbG9nQ2hvaWNlRGF0YSB9IGZyb20gJy4uLy4uL21vZGVsL2RpYWxvZy1jaG9pY2UtZGF0YSc7XHJcbmltcG9ydCB7IERpYWxvZ1R5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFsb2ctdHlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NwLWRpYWxvZy1iYXNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmFzZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmFzZS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vIFRoaXMgaXMgc28gdGhhdCBEaWFsb2dUeXBlIGNhbiBiZSBhY2Nlc3NpYmxlIGZyb20gdGhlIEhUTUwgdGVtcGxhdGVcclxuICBEaWFsb2dUeXBlID0gRGlhbG9nVHlwZTtcclxuICBkaWFsb2dUeXBlID0gaW5wdXQoRGlhbG9nVHlwZS5NZXNzYWdlKTtcclxuICBkYXRhID0gaW5wdXQucmVxdWlyZWQ8RGlhbG9nQmFzZURhdGE+KCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBDb25maXJtYXRpb25EaWFsb2dNb2RlID0gQ29uZmlybWF0aW9uRGlhbG9nTW9kZTtcclxuXHJcbiAgLy8gRm9ybSB2YWx1ZXNcclxuICB1c2VySW5wdXQ/OiBzdHJpbmc7XHJcbiAgY2hlY2tib3hWYWx1ZSE6IGJvb2xlYW47XHJcblxyXG4gIGdldCAjY3VzdG9tVHJ1ZUZhbHNlVGV4dFZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YSgpLmN1c3RvbVRydWVGYWxzZVRleHQ/Lmxlbmd0aCA9PT0gMjtcclxuICB9XHJcblxyXG4gIGdldCBjdXN0b21UcnVlVGV4dCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuI2N1c3RvbVRydWVGYWxzZVRleHRWYWxpZCA/XHJcbiAgICAgIHRoaXMuZGF0YSgpLmN1c3RvbVRydWVGYWxzZVRleHQhWzBdIDpcclxuICAgICAgdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1c3RvbUZhbHNlVGV4dCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuI2N1c3RvbVRydWVGYWxzZVRleHRWYWxpZCA/XHJcbiAgICAgIHRoaXMuZGF0YSgpLmN1c3RvbVRydWVGYWxzZVRleHQhWzFdIDpcclxuICAgICAgdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNob2ljZXMoKTogc3RyaW5nW10gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmRpYWxvZ1R5cGUoKSA9PT0gRGlhbG9nVHlwZS5DaG9pY2UgP1xyXG4gICAgICAodGhpcy5kYXRhKCkgYXMgRGlhbG9nQ2hvaWNlRGF0YSkuY2hvaWNlcyA6XHJcbiAgICAgIG51bGw7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudXNlcklucHV0ID0gdGhpcy5kYXRhKCkudmFsdWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpOiB2b2lkIHtcclxuICAgIGxldCBkYXRhOiBhbnk7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLmRpYWxvZ1R5cGUoKSkge1xyXG4gICAgICAgIGNhc2UgRGlhbG9nVHlwZS5NZXNzYWdlOlxyXG4gICAgICAgICAgICBkYXRhID0gdGhpcy5kYXRhKCkuY2hlY2tib3hNZXNzYWdlID9cclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGVja2JveDogdGhpcy5jaGVja2JveFZhbHVlIHx8IGZhbHNlXHJcbiAgICAgICAgICAgICAgICB9IDpcclxuICAgICAgICAgICAgICAgIG51bGw7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRGlhbG9nVHlwZS5JbnB1dDpcclxuICAgICAgICAgICAgZGF0YSA9IHRoaXMuZGF0YSgpLmNoZWNrYm94TWVzc2FnZSA/XHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2U6IHRoaXMudXNlcklucHV0LFxyXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrYm94OiB0aGlzLmNoZWNrYm94VmFsdWUgfHwgZmFsc2VcclxuICAgICAgICAgICAgICAgIH0gOlxyXG4gICAgICAgICAgICAgICAgdGhpcy51c2VySW5wdXQ7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRGlhbG9nVHlwZS5Db25maXJtYXRpb246XHJcbiAgICAgICAgICAgIGRhdGEgPSB0aGlzLmRhdGEoKS5jaGVja2JveE1lc3NhZ2UgP1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrYm94OiB0aGlzLmNoZWNrYm94VmFsdWUgfHwgZmFsc2VcclxuICAgICAgICAgICAgICAgIH0gOlxyXG4gICAgICAgICAgICAgICAgdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jbG9zZWQuZW1pdChkYXRhKTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpOiB2b2lkIHtcclxuICAgIGxldCBkYXRhOiBhbnk7XHJcblxyXG4gICAgaWYgKHRoaXMuZGlhbG9nVHlwZSgpID09PSBEaWFsb2dUeXBlLkNvbmZpcm1hdGlvbikge1xyXG4gICAgICAgIGRhdGEgPSB0aGlzLmRhdGEoKS5jaGVja2JveE1lc3NhZ2UgP1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBjaGVja2JveDogdGhpcy5jaGVja2JveFZhbHVlIHx8IGZhbHNlXHJcbiAgICAgICAgICAgIH0gOlxyXG4gICAgICAgICAgICBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNsb3NlZC5lbWl0KGRhdGEpO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKGRhdGEoKS50aXRsZSkge1xuICA8aDIgbWF0LWRpYWxvZy10aXRsZSBbaW5uZXJIVE1MXT1cImRhdGEoKS50aXRsZVwiPjwvaDI+XG59XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIEBpZiAoZGF0YSgpLm1lc3NhZ2UpIHtcbiAgICA8ZGl2IFtpbm5lckhUTUxdPVwiZGF0YSgpLm1lc3NhZ2VcIj48L2Rpdj5cbiAgfVxuXG4gIEBpZiAoZGlhbG9nVHlwZSgpID09PSBEaWFsb2dUeXBlLklucHV0KSB7XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPHRleHRhcmVhIG1hdElucHV0IFtwbGFjZWhvbGRlcl09XCJkYXRhKCkucGxhY2Vob2xkZXIgPz8gJydcIiBbKG5nTW9kZWwpXT1cInVzZXJJbnB1dFwiPjwvdGV4dGFyZWE+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgfVxuXG4gIEBpZiAoZGF0YSgpLmNoZWNrYm94TWVzc2FnZSkge1xuICAgIDxkaXYgaWQ9XCJjaGVja2JveFwiPlxuICAgICAgPG1hdC1jaGVja2JveCBbKG5nTW9kZWwpXT1cImNoZWNrYm94VmFsdWVcIj5cbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJkYXRhKCkuY2hlY2tib3hNZXNzYWdlXCI+PC9zcGFuPlxuICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgPC9kaXY+XG4gIH1cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zPlxuICBAaWYgKGRpYWxvZ1R5cGUoKSAhPT0gRGlhbG9nVHlwZS5DaG9pY2UpIHtcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgW2Rpc2FibGVkXT1cImRpYWxvZ1R5cGUoKSA9PT0gRGlhbG9nVHlwZS5JbnB1dCAmJiAhdXNlcklucHV0XCI+XG4gICAgICA8c3Bhbj5cbiAgICAgICAgQHN3aXRjaCAoZGF0YSgpLm1vZGUpIHtcbiAgICAgICAgICBAY2FzZSAoQ29uZmlybWF0aW9uRGlhbG9nTW9kZS5ZZXNObykge1xuICAgICAgICAgICAgPHNwYW4+WWVzPC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoQ29uZmlybWF0aW9uRGlhbG9nTW9kZS5UcnVlRmFsc2UpIHtcbiAgICAgICAgICAgIDxzcGFuPlRydWU8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlIChDb25maXJtYXRpb25EaWFsb2dNb2RlLkN1c3RvbSkge1xuICAgICAgICAgICAgPHNwYW4+e3sgY3VzdG9tVHJ1ZVRleHQgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgIDxzcGFuPk9LPC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIEBpZiAoZGlhbG9nVHlwZSgpICE9PSBEaWFsb2dUeXBlLk1lc3NhZ2UpIHtcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImNhbmNlbCgpXCI+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIEBzd2l0Y2ggKGRhdGEoKS5tb2RlKSB7XG4gICAgICAgICAgICBAY2FzZSAoQ29uZmlybWF0aW9uRGlhbG9nTW9kZS5ZZXNObykge1xuICAgICAgICAgICAgICA8c3Bhbj5Obzwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlIChDb25maXJtYXRpb25EaWFsb2dNb2RlLlRydWVGYWxzZSkge1xuICAgICAgICAgICAgICA8c3Bhbj5GYWxzZTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlIChDb25maXJtYXRpb25EaWFsb2dNb2RlLkN1c3RvbSkge1xuICAgICAgICAgICAgICA8c3Bhbj57eyBjdXN0b21GYWxzZVRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgIDxzcGFuPkNhbmNlbDwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgfVxuXG4gIEBpZiAoZGlhbG9nVHlwZSgpID09PSBEaWFsb2dUeXBlLkNob2ljZSkge1xuICAgIEBmb3IgKGNob2ljZSBvZiBjaG9pY2VzOyB0cmFjayBjaG9pY2U7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIFttYXREaWFsb2dDbG9zZV09XCJpXCI+XG4gICAgICAgIDxzcGFuPnt7IGNob2ljZSB9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgfVxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+Il19
@@ -7,28 +7,31 @@ export class AppPathConfigService {
7
7
  //#region Services
8
8
  this.config = inject(ServiceConfig, { optional: true }) ?? new ServiceConfig();
9
9
  this.http = inject(HttpClient);
10
- this.url = `${this.config.apiUrl}/apppathconfigs`;
10
+ //#endregion
11
+ this.#url = `${this.config.apiUrl}/apppathconfigs`;
11
12
  }
13
+ //#endregion
14
+ #url;
12
15
  getAll() {
13
- return this.http.get(this.url);
16
+ return this.http.get(this.#url);
14
17
  }
15
18
  getById(id) {
16
- return this.http.get(`${this.url}/${id}`);
19
+ return this.http.get(`${this.#url}/${id}`);
17
20
  }
18
21
  getByAppId(id) {
19
- return this.http.get(`${this.url}/appid/${id}`);
22
+ return this.http.get(`${this.#url}/appid/${id}`);
20
23
  }
21
24
  getByApp(name) {
22
- return this.http.get(`${this.url}/app/${name}`);
25
+ return this.http.get(`${this.#url}/app/${name}`);
23
26
  }
24
27
  getByAppTypeId(id) {
25
- return this.http.get(`${this.url}/apptypeid/${id}`);
28
+ return this.http.get(`${this.#url}/apptypeid/${id}`);
26
29
  }
27
30
  getByAppType(name) {
28
- return this.http.get(`${this.url}/apptype/${name}`);
31
+ return this.http.get(`${this.#url}/apptype/${name}`);
29
32
  }
30
33
  getByAppFunction(name) {
31
- return this.http.get(`${this.url}/function/${name}`);
34
+ return this.http.get(`${this.#url}/function/${name}`);
32
35
  }
33
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppPathConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
34
37
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppPathConfigService, providedIn: 'root' }); }
@@ -38,5 +41,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
38
41
  args: [{
39
42
  providedIn: 'root'
40
43
  }]
41
- }], ctorParameters: () => [] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXBhdGgtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9zcmMvbGliL3NlcnZpY2VzL2FwcC1wYXRoLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBS3hELE1BQU0sT0FBTyxvQkFBb0I7SUFRL0I7UUFQQSxrQkFBa0I7UUFDVixXQUFNLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksYUFBYSxFQUFFLENBQUM7UUFDMUUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQU1oQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixDQUFBO0lBQ25ELENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxPQUFPLENBQUMsRUFBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFnQixHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsR0FBRyxJQUFJLENBQUMsR0FBRyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWtCLEdBQUcsSUFBSSxDQUFDLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxjQUFjLENBQUMsRUFBVTtRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFrQixHQUFHLElBQUksQ0FBQyxHQUFHLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVk7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsR0FBRyxJQUFJLENBQUMsR0FBRyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVk7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsR0FBRyxJQUFJLENBQUMsR0FBRyxhQUFhLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQzs4R0F0Q1Usb0JBQW9CO2tIQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBBcHBQYXRoQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvYXBwLXBhdGgtY29uZmlnJztcclxuaW1wb3J0IHsgU2VydmljZUNvbmZpZyB9IGZyb20gJy4uL21vZGVsL3NlcnZpY2UtY29uZmlnJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcFBhdGhDb25maWdTZXJ2aWNlIHtcclxuICAvLyNyZWdpb24gU2VydmljZXNcclxuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChTZXJ2aWNlQ29uZmlnLCB7IG9wdGlvbmFsOiB0cnVlIH0pID8/IG5ldyBTZXJ2aWNlQ29uZmlnKCk7XHJcbiAgcHJpdmF0ZSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICB1cmwhOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy51cmwgPSBgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L2FwcHBhdGhjb25maWdzYFxyXG4gIH1cclxuXHJcbiAgZ2V0QWxsKCk6IE9ic2VydmFibGU8QXBwUGF0aENvbmZpZ1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcHBQYXRoQ29uZmlnW10+KHRoaXMudXJsKTtcclxuICB9XHJcblxyXG4gIGdldEJ5SWQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8QXBwUGF0aENvbmZpZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBwUGF0aENvbmZpZz4oYCR7dGhpcy51cmx9LyR7aWR9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRCeUFwcElkKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEFwcFBhdGhDb25maWdbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBwUGF0aENvbmZpZ1tdPihgJHt0aGlzLnVybH0vYXBwaWQvJHtpZH1gKTtcclxuICB9XHJcblxyXG4gIGdldEJ5QXBwKG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8QXBwUGF0aENvbmZpZ1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcHBQYXRoQ29uZmlnW10+KGAke3RoaXMudXJsfS9hcHAvJHtuYW1lfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnlBcHBUeXBlSWQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8QXBwUGF0aENvbmZpZ1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcHBQYXRoQ29uZmlnW10+KGAke3RoaXMudXJsfS9hcHB0eXBlaWQvJHtpZH1gKTtcclxuICB9XHJcblxyXG4gIGdldEJ5QXBwVHlwZShuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFwcFBhdGhDb25maWdbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBwUGF0aENvbmZpZ1tdPihgJHt0aGlzLnVybH0vYXBwdHlwZS8ke25hbWV9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRCeUFwcEZ1bmN0aW9uKG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8QXBwUGF0aENvbmZpZ1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcHBQYXRoQ29uZmlnW10+KGAke3RoaXMudXJsfS9mdW5jdGlvbi8ke25hbWV9YCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
44
+ }] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXBhdGgtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9zcmMvbGliL3NlcnZpY2VzL2FwcC1wYXRoLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBS3hELE1BQU0sT0FBTyxvQkFBb0I7SUFIakM7UUFJRSxrQkFBa0I7UUFDVixXQUFNLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksYUFBYSxFQUFFLENBQUM7UUFDMUUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQyxZQUFZO1FBRVosU0FBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixDQUFDO0tBNkIvQztJQS9CQyxZQUFZO0lBRVosSUFBSSxDQUEwQztJQUU5QyxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxPQUFPLENBQUMsRUFBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWtCLEdBQUcsSUFBSSxDQUFDLElBQUksUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxjQUFjLENBQUMsRUFBVTtRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVk7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxZQUFZLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVk7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxhQUFhLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQzs4R0FsQ1Usb0JBQW9CO2tIQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBBcHBQYXRoQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvYXBwLXBhdGgtY29uZmlnJztcclxuaW1wb3J0IHsgU2VydmljZUNvbmZpZyB9IGZyb20gJy4uL21vZGVsL3NlcnZpY2UtY29uZmlnJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcFBhdGhDb25maWdTZXJ2aWNlIHtcclxuICAvLyNyZWdpb24gU2VydmljZXNcclxuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChTZXJ2aWNlQ29uZmlnLCB7IG9wdGlvbmFsOiB0cnVlIH0pID8/IG5ldyBTZXJ2aWNlQ29uZmlnKCk7XHJcbiAgcHJpdmF0ZSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAjdXJsID0gYCR7dGhpcy5jb25maWcuYXBpVXJsfS9hcHBwYXRoY29uZmlnc2A7XHJcblxyXG4gIGdldEFsbCgpOiBPYnNlcnZhYmxlPEFwcFBhdGhDb25maWdbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBwUGF0aENvbmZpZ1tdPih0aGlzLiN1cmwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnlJZChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxBcHBQYXRoQ29uZmlnPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcHBQYXRoQ29uZmlnPihgJHt0aGlzLiN1cmx9LyR7aWR9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRCeUFwcElkKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEFwcFBhdGhDb25maWdbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBwUGF0aENvbmZpZ1tdPihgJHt0aGlzLiN1cmx9L2FwcGlkLyR7aWR9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRCeUFwcChuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFwcFBhdGhDb25maWdbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBwUGF0aENvbmZpZ1tdPihgJHt0aGlzLiN1cmx9L2FwcC8ke25hbWV9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRCeUFwcFR5cGVJZChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxBcHBQYXRoQ29uZmlnW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwcFBhdGhDb25maWdbXT4oYCR7dGhpcy4jdXJsfS9hcHB0eXBlaWQvJHtpZH1gKTtcclxuICB9XHJcblxyXG4gIGdldEJ5QXBwVHlwZShuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFwcFBhdGhDb25maWdbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBwUGF0aENvbmZpZ1tdPihgJHt0aGlzLiN1cmx9L2FwcHR5cGUvJHtuYW1lfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnlBcHBGdW5jdGlvbihuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFwcFBhdGhDb25maWdbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBwUGF0aENvbmZpZ1tdPihgJHt0aGlzLiN1cmx9L2Z1bmN0aW9uLyR7bmFtZX1gKTtcclxuICB9XHJcbn1cclxuIl19