@wemake4u/form-player-se 1.0.17 → 1.0.19

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 (77) hide show
  1. package/esm2022/lib/controls/checklist.mjs +4 -1
  2. package/esm2022/lib/controls/chipchecklist.mjs +4 -1
  3. package/esm2022/lib/controls/chipradio.mjs +4 -1
  4. package/esm2022/lib/controls/control.mjs +6 -27
  5. package/esm2022/lib/controls/radio.mjs +4 -1
  6. package/esm2022/lib/controls/select.mjs +4 -1
  7. package/esm2022/lib/controls/table.mjs +8 -5
  8. package/esm2022/lib/controls/taglist.mjs +4 -1
  9. package/esm2022/lib/controls/textfield.mjs +3 -3
  10. package/esm2022/lib/dialog/dialog.component.mjs +101 -0
  11. package/esm2022/lib/directives/accordion.directive.mjs +2 -13
  12. package/esm2022/lib/directives/dialog.directive.mjs +25 -0
  13. package/esm2022/lib/directives/dropdown.directive.mjs +7 -7
  14. package/esm2022/lib/directives/grid.directive.mjs +7 -7
  15. package/esm2022/lib/directives/refresh.directive.mjs +25 -0
  16. package/esm2022/lib/directives/register.directive.mjs +5 -8
  17. package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +46 -19
  18. package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +106 -53
  19. package/esm2022/lib/locale/locale-de.mjs +11 -1
  20. package/esm2022/lib/locale/locale-en.mjs +11 -1
  21. package/esm2022/lib/locale/locale-es.mjs +11 -1
  22. package/esm2022/lib/locale/locale-fr.mjs +11 -1
  23. package/esm2022/lib/locale/locale-it.mjs +11 -1
  24. package/esm2022/lib/locale/locale-pt.mjs +11 -1
  25. package/esm2022/lib/services/dialog.service.mjs +103 -0
  26. package/esm2022/lib/services/function.service.mjs +47 -0
  27. package/esm2022/lib/services/grid.service.mjs +61 -5
  28. package/esm2022/lib/services/metadata.service.mjs +28 -1
  29. package/esm2022/lib/services/programmability.service.mjs +59 -40
  30. package/esm2022/lib/services/register.service.mjs +62 -30
  31. package/esm2022/lib/services/scope.service.mjs +12 -23
  32. package/esm2022/lib/services/toast.service.mjs +10 -1
  33. package/esm2022/lib/services/weak.service.mjs +1 -11
  34. package/esm2022/lib/utils/functions.mjs +31 -0
  35. package/esm2022/lib/utils/gridCells.mjs +14 -10
  36. package/esm2022/lib/utils/patchForm.mjs +32 -13
  37. package/esm2022/public-api.mjs +2 -1
  38. package/fesm2022/wemake4u-form-player-se.mjs +1257 -809
  39. package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
  40. package/lib/controls/checklist.d.ts +1 -0
  41. package/lib/controls/chipchecklist.d.ts +1 -0
  42. package/lib/controls/chipradio.d.ts +1 -0
  43. package/lib/controls/control.d.ts +1 -4
  44. package/lib/controls/radio.d.ts +1 -0
  45. package/lib/controls/select.d.ts +1 -0
  46. package/lib/controls/table.d.ts +3 -2
  47. package/lib/controls/taglist.d.ts +1 -0
  48. package/lib/controls/textfield.d.ts +1 -1
  49. package/lib/dialog/dialog.component.d.ts +293 -0
  50. package/lib/directives/dialog.directive.d.ts +8 -0
  51. package/lib/directives/refresh.directive.d.ts +10 -0
  52. package/lib/directives/register.directive.d.ts +1 -3
  53. package/lib/dynamic-fields/dynamic-fields.component.d.ts +79 -4
  54. package/lib/dynamic-form/dynamic-form.component.d.ts +87 -6
  55. package/lib/locale/locale-de.d.ts +10 -0
  56. package/lib/locale/locale-en.d.ts +10 -0
  57. package/lib/locale/locale-es.d.ts +10 -0
  58. package/lib/locale/locale-fr.d.ts +10 -0
  59. package/lib/locale/locale-it.d.ts +10 -0
  60. package/lib/locale/locale-pt.d.ts +10 -0
  61. package/lib/locale/locale.d.ts +70 -0
  62. package/lib/services/dialog.service.d.ts +41 -0
  63. package/lib/services/function.service.d.ts +16 -0
  64. package/lib/services/grid.service.d.ts +3 -0
  65. package/lib/services/metadata.service.d.ts +4 -0
  66. package/lib/services/programmability.service.d.ts +14 -6
  67. package/lib/services/register.service.d.ts +10 -9
  68. package/lib/services/scope.service.d.ts +7 -8
  69. package/lib/services/toast.service.d.ts +3 -1
  70. package/lib/utils/functions.d.ts +2 -0
  71. package/lib/utils/gridCells.d.ts +20 -0
  72. package/lib/utils/patchForm.d.ts +1 -0
  73. package/lib/utils/setFilter.d.ts +10 -0
  74. package/package.json +1 -1
  75. package/public-api.d.ts +1 -0
  76. package/esm2022/lib/services/proxy.service.mjs +0 -131
  77. package/lib/services/proxy.service.d.ts +0 -32
@@ -1,29 +1,34 @@
1
1
  import { Injectable, Optional } from '@angular/core';
2
2
  import { FormArray } from '@angular/forms';
3
- import { ProxyOptions } from '../services/proxy.service';
3
+ import { ToProxy } from '../utils/functions';
4
4
  import { Subject, takeUntil } from "rxjs";
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../services/feel.service";
7
7
  import * as i2 from "../services/weak.service";
8
- import * as i3 from "../services/proxy.service";
9
- import * as i4 from "../services/toast.service";
10
- import * as i5 from "../services/register.service";
11
- import * as i6 from "../services/scope.service";
8
+ import * as i3 from "../services/toast.service";
9
+ import * as i4 from "../services/dialog.service";
10
+ import * as i5 from "../services/function.service";
11
+ import * as i6 from "../services/register.service";
12
+ import * as i7 from "../services/scope.service";
12
13
  export class ProgrammabilityService {
13
14
  feelService;
14
15
  weakService;
15
- proxyService;
16
16
  toastService;
17
+ dialogService;
18
+ functionService;
17
19
  register;
18
20
  scope;
19
- constructor(feelService, weakService, proxyService, toastService, register, scope) {
21
+ constructor(feelService, weakService, toastService, dialogService, functionService, register, scope) {
20
22
  this.feelService = feelService;
21
23
  this.weakService = weakService;
22
- this.proxyService = proxyService;
23
24
  this.toastService = toastService;
25
+ this.dialogService = dialogService;
26
+ this.functionService = functionService;
24
27
  this.register = register;
25
28
  this.scope = scope;
29
+ this.predefinedFunctions = this.getPredefinedFunctions();
26
30
  }
31
+ predefinedFunctions;
27
32
  destroy$ = new Subject();
28
33
  ngOnDestroy() {
29
34
  this.destroy$.next();
@@ -91,6 +96,11 @@ export class ProgrammabilityService {
91
96
  }
92
97
  return null;
93
98
  }
99
+ invalidate(value) {
100
+ if (this.isExpression(value)) {
101
+ this.weakService.invalidate(this, this.getExpression(value));
102
+ }
103
+ }
94
104
  cacheable = true;
95
105
  evalUnaryTest(formGroup, expression, input) {
96
106
  try {
@@ -132,40 +142,33 @@ export class ProgrammabilityService {
132
142
  return null;
133
143
  }
134
144
  }
135
- createProxy(formGroup, proxyFn = null) {
136
- if (!formGroup) {
137
- return null;
138
- }
139
- const options = new ProxyOptions();
140
- const scope = this.scope ? this.scope.proxy() : null;
141
- options.extend = {
142
- parent: this.getParentContext(formGroup),
143
- getFormGroup: () => this.proxyService.getProxy(formGroup),
144
- getScope: () => scope,
145
- controls: () => this.register ? this.register.proxy() : null,
146
- notifyInfo: (message, delay) => this.toastService.notifyInfo(message, delay),
147
- notifySuccess: (message, delay) => this.toastService.notifySuccess(message, delay),
148
- notifyWarning: (message, delay) => this.toastService.notifyWarning(message, delay),
149
- notifyError: (message, delay) => this.toastService.notifyError(message, delay)
150
- };
151
- const scopeSymbol = "_";
152
- if (formGroup.get(scopeSymbol) === null) {
153
- options.extend[scopeSymbol] = scope;
154
- }
155
- if (proxyFn)
156
- proxyFn(options);
157
- return this.proxyService.getProxy(formGroup.value, options);
145
+ getPredefinedFunctions() {
146
+ const providers = [
147
+ this.dialogService,
148
+ this.toastService,
149
+ this.functionService,
150
+ this.register
151
+ ];
152
+ return providers.reduce((acc, provider) => {
153
+ return {
154
+ ...acc,
155
+ ...provider.getContext()
156
+ };
157
+ }, {});
158
158
  }
159
159
  getParentContext(formGroup) {
160
+ if (formGroup === null) {
161
+ return null;
162
+ }
160
163
  const parent = this.getParent(formGroup);
161
164
  if (!parent) {
162
165
  return null;
163
166
  }
164
- const options = new ProxyOptions();
165
- options.extend = {
166
- parent: this.getParentContext(parent)
167
+ return {
168
+ ...parent.value,
169
+ formGroup: () => parent,
170
+ parent: () => this.getParentContext(parent)
167
171
  };
168
- return this.proxyService.getProxy(parent.value, options);
169
172
  }
170
173
  getParent(formGroup) {
171
174
  let parent = formGroup.parent;
@@ -176,7 +179,23 @@ export class ProgrammabilityService {
176
179
  }
177
180
  getContext(control, options = {}) {
178
181
  const formGroup = control;
179
- const context = this.createProxy(formGroup, options.proxyFn);
182
+ const baseContext = formGroup?.value ?? {};
183
+ let context = {
184
+ ...baseContext,
185
+ parent: () => this.getParentContext(formGroup),
186
+ formGroup: () => ToProxy(formGroup),
187
+ _: this.scope?.getContext(),
188
+ fn: this.predefinedFunctions
189
+ };
190
+ if (options.extendContext) {
191
+ const extended = options.extendContext();
192
+ if (extended) {
193
+ context = {
194
+ ...context,
195
+ ...extended
196
+ };
197
+ }
198
+ }
180
199
  return context;
181
200
  }
182
201
  watchExpression(formGroup, expression, callback) {
@@ -221,14 +240,14 @@ export class ProgrammabilityService {
221
240
  }
222
241
  }
223
242
  }
224
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProgrammabilityService, deps: [{ token: i1.FeelService }, { token: i2.WeakService }, { token: i3.ProxyService }, { token: i4.ToastService }, { token: i5.RegisterService, optional: true }, { token: i6.ScopeService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
243
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProgrammabilityService, deps: [{ token: i1.FeelService }, { token: i2.WeakService }, { token: i3.ToastService }, { token: i4.DialogService }, { token: i5.FunctionService }, { token: i6.RegisterService, optional: true }, { token: i7.ScopeService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
225
244
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProgrammabilityService });
226
245
  }
227
246
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProgrammabilityService, decorators: [{
228
247
  type: Injectable
229
- }], ctorParameters: () => [{ type: i1.FeelService }, { type: i2.WeakService }, { type: i3.ProxyService }, { type: i4.ToastService }, { type: i5.RegisterService, decorators: [{
248
+ }], ctorParameters: () => [{ type: i1.FeelService }, { type: i2.WeakService }, { type: i3.ToastService }, { type: i4.DialogService }, { type: i5.FunctionService }, { type: i6.RegisterService, decorators: [{
230
249
  type: Optional
231
- }] }, { type: i6.ScopeService, decorators: [{
250
+ }] }, { type: i7.ScopeService, decorators: [{
232
251
  type: Optional
233
252
  }] }] });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbW1hYmlsaXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9zZXJ2aWNlcy9wcm9ncmFtbWFiaWxpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQW1CLFNBQVMsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZFLE9BQU8sRUFBZ0IsWUFBWSxFQUFpQixNQUFNLDJCQUEyQixDQUFDO0FBSXRGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQUcxQyxNQUFNLE9BQU8sc0JBQXNCO0lBRWI7SUFDUjtJQUNBO0lBQ0E7SUFDWTtJQUNBO0lBTHhCLFlBQW9CLFdBQXdCLEVBQ2hDLFdBQXdCLEVBQ3hCLFlBQTBCLEVBQzFCLFlBQTBCLEVBQ2QsUUFBeUIsRUFDekIsS0FBbUI7UUFMdkIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixVQUFLLEdBQUwsS0FBSyxDQUFjO0lBQ3ZDLENBQUM7SUFFRyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUV2QyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBbUI7UUFDOUIsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENB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QUM1QyxJQUFJLE9BQU8sRUFBRSxDQUFDO3dCQUNaLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDckIsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzFDLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1osU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNyQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO3dHQS9QVSxzQkFBc0I7NEdBQXRCLHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVTs7MEJBT0osUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRmVlbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mZWVsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTY29wZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zY29wZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJveHlTZXJ2aWNlLCBQcm94eU9wdGlvbnMsIFByb3h5Q29uZmlnRm4gfSBmcm9tICcuLi9zZXJ2aWNlcy9wcm94eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVnaXN0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmVnaXN0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXZWFrU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3dlYWsuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQcm9ncmFtbWFiaWxpdHlTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmZWVsU2VydmljZTogRmVlbFNlcnZpY2VcclxuICAgICwgcHJpdmF0ZSB3ZWFrU2VydmljZTogV2Vha1NlcnZpY2VcclxuICAgICwgcHJpdmF0ZSBwcm94eVNlcnZpY2U6IFByb3h5U2VydmljZVxyXG4gICAgLCBwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlXHJcbiAgICAsIEBPcHRpb25hbCgpIHByaXZhdGUgcmVnaXN0ZXI6IFJlZ2lzdGVyU2VydmljZVxyXG4gICAgLCBAT3B0aW9uYWwoKSBwcml2YXRlIHNjb3BlOiBTY29wZVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGlzRXhwcmVzc2lvbih0ZXh0OiBzdHJpbmcgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGV4dCAhPSBudWxsICYmIHRleHQuc3RhcnRzV2l0aChcIj1cIik7XHJcbiAgfTtcclxuXHJcbiAgZ2V0RXhwcmVzc2lvbih0ZXh0OiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmlzRXhwcmVzc2lvbih0ZXh0KSlcclxuICAgICAgcmV0dXJuIHRleHQhLnN1YnN0cmluZygxKTtcclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH07XHJcblxyXG4gIGV2YWx1YXRlU3RyaW5nKGZvcm1Hcm91cDogRm9ybUdyb3VwLCB2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5pc0V4cHJlc3Npb24odmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmV2YWxFeHByZXNzaW9uKGZvcm1Hcm91cCwgdGhpcy5nZXRFeHByZXNzaW9uKHZhbHVlKSkgYXMgc3RyaW5nO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlID8/IFwiXCI7XHJcbiAgfVxyXG5cclxuICBldmFsdWF0ZUJvb2xlYW4oZm9ybUdyb3VwOiBGb3JtR3JvdXAsIHZhbHVlOiBib29sZWFuIHwgc3RyaW5nIHwgbnVsbCwgb3B0aW9uczogRXZhbHVhdGVPcHRpb25zID0ge30pOiBib29sZWFuIHwgbnVsbCB7XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICBjb25zdCBzdHJWYWx1ZTogc3RyaW5nID0gdmFsdWU7XHJcbiAgICAgIGlmICh0aGlzLmlzRXhwcmVzc2lvbihzdHJWYWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5ldmFsRXhwcmVzc2lvbihmb3JtR3JvdXAsIHRoaXMuZ2V0RXhwcmVzc2lvbihzdHJWYWx1ZSksIG9wdGlvbnMpIGFzIGJvb2xlYW47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZXZhbHVhdGVOdW1iZXIoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIGNvbnN0IHN0clZhbHVlOiBzdHJpbmcgPSB2YWx1ZTtcclxuICAgICAgaWYgKHRoaXMuaXNFeHByZXNzaW9uKHN0clZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmV2YWxFeHByZXNzaW9uKGZvcm1Hcm91cCwgdGhpcy5nZXRFeHByZXNzaW9uKHN0clZhbHVlKSkgYXMgbnVtYmVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGV2YWx1YXRlKGZvcm1Hcm91cDogRm9ybUdyb3VwLCB2YWx1ZTogc3RyaW5nIHwgbnVsbCwgb3B0aW9uczogRXZhbHVhdGVPcHRpb25zID0geyB9KTogYW55IHtcclxuICAgIGlmICh0aGlzLmlzRXhwcmVzc2lvbih2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZXZhbEV4cHJlc3Npb24oZm9ybUdyb3VwLCB0aGlzLmdldEV4cHJlc3Npb24odmFsdWUpLCBvcHRpb25zKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZXZhbHVhdGVUZW1wbGF0ZShmb3JtR3JvdXA6IEZvcm1Hcm91cCwgdmFsdWU6IHN0cmluZyB8IG51bGwpOiBhbnkge1xyXG5cclxuICAgIGxldCB0ZW1wbGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNFeHByZXNzaW9uKHZhbHVlKSkge1xyXG4gICAgICB0ZW1wbGF0ZSA9IHRoaXMuZXZhbEV4cHJlc3Npb24oZm9ybUdyb3VwLCB0aGlzLmdldEV4cHJlc3Npb24odmFsdWUpKSBhcyBzdHJpbmc7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGVtcGxhdGUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5ldmFsVGVtcGxhdGUoZm9ybUdyb3VwLCB0ZW1wbGF0ZSA/PyBcIlwiKTtcclxuICB9XHJcblxyXG4gIGV2YWx1YXRlVW5hcnkoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIHZhbHVlOiBzdHJpbmcgfCBudWxsLCBpbnB1dDogYW55KTogYW55IHtcclxuICAgIGlmICh0aGlzLmlzRXhwcmVzc2lvbih2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZXZhbFVuYXJ5VGVzdChmb3JtR3JvdXAsIHRoaXMuZ2V0RXhwcmVzc2lvbih2YWx1ZSksIGlucHV0KTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWNoZWFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIGV2YWxVbmFyeVRlc3QoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGV4cHJlc3Npb246IHN0cmluZywgaW5wdXQ6IGFueSkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmVlbFNlcnZpY2UuZXZhbFVuYXJ5VGVzdChleHByZXNzaW9uXHJcbiAgICAgICAgLCB0aGlzLmdldENvbnRleHQoZm9ybUdyb3VwKVxyXG4gICAgICAgICwgaW5wdXQpO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhleHByZXNzaW9uLCBlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV2YWxFeHByZXNzaW9uKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBleHByZXNzaW9uOiBzdHJpbmcsIG9wdGlvbnM6IEV2YWx1YXRlT3B0aW9ucyA9IHt9KTogYW55IHtcclxuICAgIGNvbnN0IGV2YWx1YXRlID0gKCkgPT4ge1xyXG4gICAgICB0cnkge1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5mZWVsU2VydmljZS5ldmFsRXhwcmVzc2lvbihleHByZXNzaW9uXHJcbiAgICAgICAgICAsIHRoaXMuZ2V0Q29udGV4dChmb3JtR3JvdXAsIG9wdGlvbnMpKVxyXG4gICAgICB9XHJcbiAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXhwcmVzc2lvbiwgZSk7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgY2FjaGVhYmxlID0gb3B0aW9ucy5jYWNoZWFibGUgPz8gdGhpcy5jYWNoZWFibGU7XHJcblxyXG4gICAgaWYgKGNhY2hlYWJsZSkge1xyXG4gICAgICBjb25zdCB3YXRjaEtleSA9IGA6d2F0Y2goJHtleHByZXNzaW9ufSlgO1xyXG5cclxuICAgICAgdGhpcy53ZWFrU2VydmljZS5jYWxsKHRoaXMsIHdhdGNoS2V5LCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy53YXRjaEV4cHJlc3Npb24oZm9ybUdyb3VwLCBleHByZXNzaW9uXHJcbiAgICAgICAgICAsICgpID0+IHRoaXMud2Vha1NlcnZpY2UuaW52YWxpZGF0ZSh0aGlzLCBleHByZXNzaW9uKSk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMud2Vha1NlcnZpY2UuY2FsbCh0aGlzLCBleHByZXNzaW9uLCBldmFsdWF0ZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIGV2YWx1YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV2YWxUZW1wbGF0ZShmb3JtR3JvdXA6IEZvcm1Hcm91cCwgZXhwcmVzc2lvbjogc3RyaW5nKTogYW55IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZlZWxTZXJ2aWNlLmV2YWxUZW1wbGF0ZShleHByZXNzaW9uXHJcbiAgICAgICAgLCB0aGlzLmdldENvbnRleHQoZm9ybUdyb3VwKSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVQcm94eShmb3JtR3JvdXA6IEZvcm1Hcm91cCB8IG51bGxcclxuICAgICwgcHJveHlGbjogKChvcHRpb25zOiBQcm94eU9wdGlvbnMpID0+IHZvaWQpIHwgbnVsbCA9IG51bGwpOiBhbnkge1xyXG5cclxuICAgIGlmICghZm9ybUdyb3VwKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9wdGlvbnMgPSBuZXcgUHJveHlPcHRpb25zKCk7XHJcblxyXG4gICAgY29uc3Qgc2NvcGUgPSB0aGlzLnNjb3BlID8gdGhpcy5zY29wZS5wcm94eSgpIDogbnVsbDtcclxuXHJcbiAgICBvcHRpb25zLmV4dGVuZCA9IHtcclxuICAgICAgcGFyZW50OiB0aGlzLmdldFBhcmVudENvbnRleHQoZm9ybUdyb3VwKSxcclxuICAgICAgZ2V0Rm9ybUdyb3VwOiAoKSA9PiB0aGlzLnByb3h5U2VydmljZS5nZXRQcm94eShmb3JtR3JvdXApLFxyXG4gICAgICBnZXRTY29wZTogKCkgPT4gc2NvcGUsXHJcbiAgICAgIGNvbnRyb2xzOiAoKSA9PiB0aGlzLnJlZ2lzdGVyID8gdGhpcy5yZWdpc3Rlci5wcm94eSgpIDogbnVsbCxcclxuICAgICAgbm90aWZ5SW5mbzogKG1lc3NhZ2U6IHN0cmluZywgZGVsYXk/OiBudW1iZXIpID0+IHRoaXMudG9hc3RTZXJ2aWNlLm5vdGlmeUluZm8obWVzc2FnZSwgZGVsYXkpLFxyXG4gICAgICBub3RpZnlTdWNjZXNzOiAobWVzc2FnZTogc3RyaW5nLCBkZWxheT86IG51bWJlcikgPT4gdGhpcy50b2FzdFNlcnZpY2Uubm90aWZ5U3VjY2VzcyhtZXNzYWdlLCBkZWxheSksXHJcbiAgICAgIG5vdGlmeVdhcm5pbmc6IChtZXNzYWdlOiBzdHJpbmcsIGRlbGF5PzogbnVtYmVyKSA9PiB0aGlzLnRvYXN0U2VydmljZS5ub3RpZnlXYXJuaW5nKG1lc3NhZ2UsIGRlbGF5KSxcclxuICAgICAgbm90aWZ5RXJyb3I6IChtZXNzYWdlOiBzdHJpbmcsIGRlbGF5PzogbnVtYmVyKSA9PiB0aGlzLnRvYXN0U2VydmljZS5ub3RpZnlFcnJvcihtZXNzYWdlLCBkZWxheSlcclxuICAgIH07XHJcblxyXG4gICAgY29uc3Qgc2NvcGVTeW1ib2wgPSBcIl9cIjtcclxuXHJcbiAgICBpZiAoZm9ybUdyb3VwLmdldChzY29wZVN5bWJvbCkgPT09IG51bGwpIHsgXHJcbiAgICAgIG9wdGlvbnMuZXh0ZW5kW3Njb3BlU3ltYm9sXSA9IHNjb3BlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwcm94eUZuKVxyXG4gICAgICBwcm94eUZuKG9wdGlvbnMpO1xyXG4gICAgXHJcbiAgICByZXR1cm4gdGhpcy5wcm94eVNlcnZpY2UuZ2V0UHJveHkoZm9ybUdyb3VwLnZhbHVlLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UGFyZW50Q29udGV4dChmb3JtR3JvdXA6IEZvcm1Hcm91cCk6IGFueSB7XHJcblxyXG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5nZXRQYXJlbnQoZm9ybUdyb3VwKTtcclxuXHJcbiAgICBpZiAoIXBhcmVudCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcHRpb25zID0gbmV3IFByb3h5T3B0aW9ucygpO1xyXG5cclxuICAgIG9wdGlvbnMuZXh0ZW5kID0ge1xyXG4gICAgICBwYXJlbnQ6IHRoaXMuZ2V0UGFyZW50Q29udGV4dChwYXJlbnQpXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLnByb3h5U2VydmljZS5nZXRQcm94eShwYXJlbnQudmFsdWUsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQYXJlbnQoZm9ybUdyb3VwOiBGb3JtR3JvdXApIDogRm9ybUdyb3VwIHwgbnVsbCB7XHJcbiAgICBsZXQgcGFyZW50ID0gZm9ybUdyb3VwLnBhcmVudDtcclxuXHJcbiAgICB3aGlsZSAocGFyZW50IGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XHJcbiAgICAgIHBhcmVudCA9IHBhcmVudD8ucGFyZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwYXJlbnQgYXMgRm9ybUdyb3VwIHwgbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q29udGV4dChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIG9wdGlvbnM6IEV2YWx1YXRlT3B0aW9ucyA9IHt9KTogUmVjb3JkPHN0cmluZywgYW55PiB7XHJcblxyXG4gICAgY29uc3QgZm9ybUdyb3VwID0gY29udHJvbCBhcyBGb3JtR3JvdXAgfCBudWxsO1xyXG4gICAgXHJcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jcmVhdGVQcm94eShmb3JtR3JvdXAsIG9wdGlvbnMucHJveHlGbikgYXMgUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHJcbiAgICByZXR1cm4gY29udGV4dDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgd2F0Y2hFeHByZXNzaW9uKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBleHByZXNzaW9uOiBzdHJpbmcsIGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KGZvcm1Hcm91cCk7XHJcbiAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSB0aGlzLmZlZWxTZXJ2aWNlLmdldERlcGVuZGVuY2llcyhleHByZXNzaW9uLCBjb250ZXh0KTtcclxuICAgIHRoaXMud2F0Y2hEZXBlbmRlbmNpZXMoZm9ybUdyb3VwLCBkZXBlbmRlbmNpZXMsIGNhbGxiYWNrKTtcclxuICB9O1xyXG5cclxuICBwcml2YXRlIHdhdGNoRGVwZW5kZW5jaWVzKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBkZXBlbmRlbmNpZXM6IChzdHJpbmcgfCBzdHJpbmdbXSlbXSwgY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHBhcmVudE5hbWU6IHN0cmluZyA9IFwicGFyZW50XCI7XHJcblxyXG4gICAgY29uc3Qgc3Vic2NyaWJlID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgICBjb250cm9sLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChjb25zdCBkZXBlbmRlbmNlIG9mIGRlcGVuZGVuY2llcykge1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShkZXBlbmRlbmNlKSkge1xyXG4gICAgICAgIGxldCB0YXJnZXRGb3JtOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gZm9ybUdyb3VwO1xyXG4gICAgICAgIGxldCBjb250cm9sUGF0aCA9IGRlcGVuZGVuY2U7XHJcblxyXG4gICAgICAgIHdoaWxlIChjb250cm9sUGF0aC5sZW5ndGggPiAwICYmIGNvbnRyb2xQYXRoWzBdID09PSBwYXJlbnROYW1lKSB7XHJcbiAgICAgICAgICBpZiAoIXRhcmdldEZvcm0ucGFyZW50KVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIHRhcmdldEZvcm0gPSB0YXJnZXRGb3JtLnBhcmVudDtcclxuICAgICAgICAgIGNvbnRyb2xQYXRoID0gY29udHJvbFBhdGguc2xpY2UoMSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY29udHJvbFBhdGgubGVuZ3RoID4gMCAmJiB0YXJnZXRGb3JtKSB7XHJcbiAgICAgICAgICBjb25zdCBjb250cm9sID0gdGFyZ2V0Rm9ybS5nZXQoY29udHJvbFBhdGgpO1xyXG4gICAgICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICAgICAgc3Vic2NyaWJlKGNvbnRyb2wpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChkZXBlbmRlbmNlKTtcclxuICAgICAgICBpZiAoY29udHJvbCkge1xyXG4gICAgICAgICAgc3Vic2NyaWJlKGNvbnRyb2wpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSAgICBcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGVPcHRpb25zIHtcclxuICBjYWNoZWFibGU/OiBib29sZWFuO1xyXG4gIHByb3h5Rm4/OiBQcm94eUNvbmZpZ0ZuO1xyXG59XHJcbiJdfQ==
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbW1hYmlsaXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9zZXJ2aWNlcy9wcm9ncmFtbWFiaWxpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQW1CLFNBQVMsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBUXZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7O0FBRzFDLE1BQU0sT0FBTyxzQkFBc0I7SUFFYjtJQUNSO0lBQ0E7SUFDQTtJQUNBO0lBQ1k7SUFDQTtJQU54QixZQUFvQixXQUF3QixFQUNoQyxXQUF3QixFQUN4QixZQUEwQixFQUMxQixhQUE0QixFQUM1QixlQUFnQyxFQUNwQixRQUF5QixFQUN6QixLQUFtQjtRQU52QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDcEIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUd6QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUVnQixtQkFBbUIsQ0FBc0I7SUFFbEQsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFdkMsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFD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Q0FBQztRQUNILENBQUM7SUFDSCxDQUFDO3dHQTVRVSxzQkFBc0I7NEdBQXRCLHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVTs7MEJBUUosUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRmVlbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mZWVsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTY29wZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zY29wZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVnaXN0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmVnaXN0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGdW5jdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mdW5jdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2Vha1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy93ZWFrLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb1Byb3h5IH0gZnJvbSAnLi4vdXRpbHMvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFByb2dyYW1tYWJpbGl0eVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZlZWxTZXJ2aWNlOiBGZWVsU2VydmljZVxyXG4gICAgLCBwcml2YXRlIHdlYWtTZXJ2aWNlOiBXZWFrU2VydmljZVxyXG4gICAgLCBwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlXHJcbiAgICAsIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZVxyXG4gICAgLCBwcml2YXRlIGZ1bmN0aW9uU2VydmljZTogRnVuY3Rpb25TZXJ2aWNlXHJcbiAgICAsIEBPcHRpb25hbCgpIHByaXZhdGUgcmVnaXN0ZXI6IFJlZ2lzdGVyU2VydmljZVxyXG4gICAgLCBAT3B0aW9uYWwoKSBwcml2YXRlIHNjb3BlOiBTY29wZVNlcnZpY2VcclxuICApIHtcclxuXHJcbiAgICB0aGlzLnByZWRlZmluZWRGdW5jdGlvbnMgPSB0aGlzLmdldFByZWRlZmluZWRGdW5jdGlvbnMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJlZGVmaW5lZEZ1bmN0aW9uczogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBpc0V4cHJlc3Npb24odGV4dDogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRleHQgIT0gbnVsbCAmJiB0ZXh0LnN0YXJ0c1dpdGgoXCI9XCIpO1xyXG4gIH07XHJcblxyXG4gIGdldEV4cHJlc3Npb24odGV4dDogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5pc0V4cHJlc3Npb24odGV4dCkpXHJcbiAgICAgIHJldHVybiB0ZXh0IS5zdWJzdHJpbmcoMSk7XHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9O1xyXG5cclxuICBldmFsdWF0ZVN0cmluZyhmb3JtR3JvdXA6IEZvcm1Hcm91cCwgdmFsdWU6IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuaXNFeHByZXNzaW9uKHZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5ldmFsRXhwcmVzc2lvbihmb3JtR3JvdXAsIHRoaXMuZ2V0RXhwcmVzc2lvbih2YWx1ZSkpIGFzIHN0cmluZztcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZSA/PyBcIlwiO1xyXG4gIH1cclxuXHJcbiAgZXZhbHVhdGVCb29sZWFuKGZvcm1Hcm91cDogRm9ybUdyb3VwLCB2YWx1ZTogYm9vbGVhbiB8IHN0cmluZyB8IG51bGwsIG9wdGlvbnM6IEV2YWx1YXRlT3B0aW9ucyA9IHt9KTogYm9vbGVhbiB8IG51bGwge1xyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgY29uc3Qgc3RyVmFsdWU6IHN0cmluZyA9IHZhbHVlO1xyXG4gICAgICBpZiAodGhpcy5pc0V4cHJlc3Npb24oc3RyVmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXZhbEV4cHJlc3Npb24oZm9ybUdyb3VwLCB0aGlzLmdldEV4cHJlc3Npb24oc3RyVmFsdWUpLCBvcHRpb25zKSBhcyBib29sZWFuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGV2YWx1YXRlTnVtYmVyKGZvcm1Hcm91cDogRm9ybUdyb3VwLCB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCk6IG51bWJlciB8IG51bGwge1xyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICBjb25zdCBzdHJWYWx1ZTogc3RyaW5nID0gdmFsdWU7XHJcbiAgICAgIGlmICh0aGlzLmlzRXhwcmVzc2lvbihzdHJWYWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5ldmFsRXhwcmVzc2lvbihmb3JtR3JvdXAsIHRoaXMuZ2V0RXhwcmVzc2lvbihzdHJWYWx1ZSkpIGFzIG51bWJlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBldmFsdWF0ZShmb3JtR3JvdXA6IEZvcm1Hcm91cCwgdmFsdWU6IHN0cmluZyB8IG51bGwsIG9wdGlvbnM6IEV2YWx1YXRlT3B0aW9ucyA9IHsgfSk6IGFueSB7XHJcbiAgICBpZiAodGhpcy5pc0V4cHJlc3Npb24odmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmV2YWxFeHByZXNzaW9uKGZvcm1Hcm91cCwgdGhpcy5nZXRFeHByZXNzaW9uKHZhbHVlKSwgb3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGV2YWx1YXRlVGVtcGxhdGUoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIHZhbHVlOiBzdHJpbmcgfCBudWxsKTogYW55IHtcclxuXHJcbiAgICBsZXQgdGVtcGxhdGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIGlmICh0aGlzLmlzRXhwcmVzc2lvbih2YWx1ZSkpIHtcclxuICAgICAgdGVtcGxhdGUgPSB0aGlzLmV2YWxFeHByZXNzaW9uKGZvcm1Hcm91cCwgdGhpcy5nZXRFeHByZXNzaW9uKHZhbHVlKSkgYXMgc3RyaW5nO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRlbXBsYXRlID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZXZhbFRlbXBsYXRlKGZvcm1Hcm91cCwgdGVtcGxhdGUgPz8gXCJcIik7XHJcbiAgfVxyXG5cclxuICBldmFsdWF0ZVVuYXJ5KGZvcm1Hcm91cDogRm9ybUdyb3VwLCB2YWx1ZTogc3RyaW5nIHwgbnVsbCwgaW5wdXQ6IGFueSk6IGFueSB7XHJcbiAgICBpZiAodGhpcy5pc0V4cHJlc3Npb24odmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmV2YWxVbmFyeVRlc3QoZm9ybUdyb3VwLCB0aGlzLmdldEV4cHJlc3Npb24odmFsdWUpLCBpbnB1dCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGludmFsaWRhdGUodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzRXhwcmVzc2lvbih2YWx1ZSkpIHtcclxuICAgICAgdGhpcy53ZWFrU2VydmljZS5pbnZhbGlkYXRlKHRoaXMsIHRoaXMuZ2V0RXhwcmVzc2lvbih2YWx1ZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWNoZWFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIGV2YWxVbmFyeVRlc3QoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGV4cHJlc3Npb246IHN0cmluZywgaW5wdXQ6IGFueSkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmVlbFNlcnZpY2UuZXZhbFVuYXJ5VGVzdChleHByZXNzaW9uXHJcbiAgICAgICAgLCB0aGlzLmdldENvbnRleHQoZm9ybUdyb3VwKVxyXG4gICAgICAgICwgaW5wdXQpO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhleHByZXNzaW9uLCBlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV2YWxFeHByZXNzaW9uKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBleHByZXNzaW9uOiBzdHJpbmcsIG9wdGlvbnM6IEV2YWx1YXRlT3B0aW9ucyA9IHt9KTogYW55IHtcclxuICAgIGNvbnN0IGV2YWx1YXRlID0gKCkgPT4ge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZlZWxTZXJ2aWNlLmV2YWxFeHByZXNzaW9uKGV4cHJlc3Npb25cclxuICAgICAgICAgICwgdGhpcy5nZXRDb250ZXh0KGZvcm1Hcm91cCwgb3B0aW9ucykpXHJcbiAgICAgIH1cclxuICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhleHByZXNzaW9uLCBlKTtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBjYWNoZWFibGUgPSBvcHRpb25zLmNhY2hlYWJsZSA/PyB0aGlzLmNhY2hlYWJsZTtcclxuXHJcbiAgICBpZiAoY2FjaGVhYmxlKSB7XHJcbiAgICAgIGNvbnN0IHdhdGNoS2V5ID0gYDp3YXRjaCgke2V4cHJlc3Npb259KWA7XHJcblxyXG4gICAgICB0aGlzLndlYWtTZXJ2aWNlLmNhbGwodGhpcywgd2F0Y2hLZXksICgpID0+IHtcclxuICAgICAgICB0aGlzLndhdGNoRXhwcmVzc2lvbihmb3JtR3JvdXAsIGV4cHJlc3Npb25cclxuICAgICAgICAgICwgKCkgPT4gdGhpcy53ZWFrU2VydmljZS5pbnZhbGlkYXRlKHRoaXMsIGV4cHJlc3Npb24pKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy53ZWFrU2VydmljZS5jYWxsKHRoaXMsIGV4cHJlc3Npb24sIGV2YWx1YXRlKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gZXZhbHVhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXZhbFRlbXBsYXRlKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBleHByZXNzaW9uOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmVlbFNlcnZpY2UuZXZhbFRlbXBsYXRlKGV4cHJlc3Npb25cclxuICAgICAgICAsIHRoaXMuZ2V0Q29udGV4dChmb3JtR3JvdXApKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFByZWRlZmluZWRGdW5jdGlvbnMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XHJcblxyXG4gICAgY29uc3QgcHJvdmlkZXJzOiBJRXZhbHVhdG9yUHJvdmlkZXJbXSA9IFtcclxuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLFxyXG4gICAgICB0aGlzLnRvYXN0U2VydmljZSxcclxuICAgICAgdGhpcy5mdW5jdGlvblNlcnZpY2UsXHJcbiAgICAgIHRoaXMucmVnaXN0ZXIgICAgICBcclxuICAgIF07XHJcblxyXG4gICAgcmV0dXJuIHByb3ZpZGVycy5yZWR1Y2UoKGFjYywgcHJvdmlkZXIpID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5hY2MsXHJcbiAgICAgICAgLi4ucHJvdmlkZXIuZ2V0Q29udGV4dCgpXHJcbiAgICAgIH07XHJcbiAgICB9LCB7fSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBhcmVudENvbnRleHQoZm9ybUdyb3VwOiBGb3JtR3JvdXAgfCBudWxsKTogUmVjb3JkPHN0cmluZywgYW55PiB8IG51bGwge1xyXG4gICAgaWYgKGZvcm1Hcm91cCA9PT0gbnVsbCkgeyBcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5nZXRQYXJlbnQoZm9ybUdyb3VwKTtcclxuXHJcbiAgICBpZiAoIXBhcmVudCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5wYXJlbnQudmFsdWUsXHJcbiAgICAgIGZvcm1Hcm91cDogKCkgPT4gcGFyZW50LFxyXG4gICAgICBwYXJlbnQ6ICgpID0+IHRoaXMuZ2V0UGFyZW50Q29udGV4dChwYXJlbnQpXHJcbiAgICB9OyAgICBcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UGFyZW50KGZvcm1Hcm91cDogRm9ybUdyb3VwKSA6IEZvcm1Hcm91cCB8IG51bGwge1xyXG4gICAgbGV0IHBhcmVudCA9IGZvcm1Hcm91cC5wYXJlbnQ7XHJcblxyXG4gICAgd2hpbGUgKHBhcmVudCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xyXG4gICAgICBwYXJlbnQgPSBwYXJlbnQ/LnBhcmVudDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcGFyZW50IGFzIEZvcm1Hcm91cCB8IG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbnRleHQoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBvcHRpb25zOiBFdmFsdWF0ZU9wdGlvbnMgPSB7fSk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xyXG5cclxuICAgIGNvbnN0IGZvcm1Hcm91cCA9IGNvbnRyb2wgYXMgRm9ybUdyb3VwIHwgbnVsbDtcclxuXHJcbiAgICBjb25zdCBiYXNlQ29udGV4dCA9IGZvcm1Hcm91cD8udmFsdWUgPz8geyB9O1xyXG5cclxuICAgIGxldCBjb250ZXh0ID0ge1xyXG4gICAgICAuLi5iYXNlQ29udGV4dCxcclxuICAgICAgcGFyZW50OiAoKSA9PiB0aGlzLmdldFBhcmVudENvbnRleHQoZm9ybUdyb3VwKSxcclxuICAgICAgZm9ybUdyb3VwOiAoKSA9PiBUb1Byb3h5KGZvcm1Hcm91cCksXHJcbiAgICAgIF86IHRoaXMuc2NvcGU/LmdldENvbnRleHQoKSxcclxuICAgICAgZm46IHRoaXMucHJlZGVmaW5lZEZ1bmN0aW9uc1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvcHRpb25zLmV4dGVuZENvbnRleHQpIHtcclxuICAgICAgY29uc3QgZXh0ZW5kZWQgPSBvcHRpb25zLmV4dGVuZENvbnRleHQoKTtcclxuICAgICAgaWYgKGV4dGVuZGVkKSB7XHJcbiAgICAgICAgY29udGV4dCA9IHtcclxuICAgICAgICAgIC4uLmNvbnRleHQsXHJcbiAgICAgICAgICAuLi5leHRlbmRlZFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjb250ZXh0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB3YXRjaEV4cHJlc3Npb24oZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGV4cHJlc3Npb246IHN0cmluZywgY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoZm9ybUdyb3VwKTtcclxuICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IHRoaXMuZmVlbFNlcnZpY2UuZ2V0RGVwZW5kZW5jaWVzKGV4cHJlc3Npb24sIGNvbnRleHQpO1xyXG4gICAgdGhpcy53YXRjaERlcGVuZGVuY2llcyhmb3JtR3JvdXAsIGRlcGVuZGVuY2llcywgY2FsbGJhY2spO1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgd2F0Y2hEZXBlbmRlbmNpZXMoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGRlcGVuZGVuY2llczogKHN0cmluZyB8IHN0cmluZ1tdKVtdLCBjYWxsYmFjazogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgY29uc3QgcGFyZW50TmFtZTogc3RyaW5nID0gXCJwYXJlbnRcIjtcclxuXHJcbiAgICBjb25zdCBzdWJzY3JpYmUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XHJcbiAgICAgIGNvbnRyb2wudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGNvbnN0IGRlcGVuZGVuY2Ugb2YgZGVwZW5kZW5jaWVzKSB7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGRlcGVuZGVuY2UpKSB7XHJcbiAgICAgICAgbGV0IHRhcmdldEZvcm06IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBmb3JtR3JvdXA7XHJcbiAgICAgICAgbGV0IGNvbnRyb2xQYXRoID0gZGVwZW5kZW5jZTtcclxuXHJcbiAgICAgICAgd2hpbGUgKGNvbnRyb2xQYXRoLmxlbmd0aCA+IDAgJiYgY29udHJvbFBhdGhbMF0gPT09IHBhcmVudE5hbWUpIHtcclxuICAgICAgICAgIGlmICghdGFyZ2V0Rm9ybS5wYXJlbnQpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgdGFyZ2V0Rm9ybSA9IHRhcmdldEZvcm0ucGFyZW50O1xyXG4gICAgICAgICAgY29udHJvbFBhdGggPSBjb250cm9sUGF0aC5zbGljZSgxKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb250cm9sUGF0aC5sZW5ndGggPiAwICYmIHRhcmdldEZvcm0pIHtcclxuICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0YXJnZXRGb3JtLmdldChjb250cm9sUGF0aCk7XHJcbiAgICAgICAgICBpZiAoY29udHJvbCkge1xyXG4gICAgICAgICAgICBzdWJzY3JpYmUoY29udHJvbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGRlcGVuZGVuY2UpO1xyXG4gICAgICAgIGlmIChjb250cm9sKSB7XHJcbiAgICAgICAgICBzdWJzY3JpYmUoY29udHJvbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9ICAgIFxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRXZhbHVhdG9yUHJvdmlkZXIge1xyXG4gIGdldENvbnRleHQoKTogUmVjb3JkPHN0cmluZywgYW55PjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0ZU9wdGlvbnMge1xyXG4gIGNhY2hlYWJsZT86IGJvb2xlYW47XHJcbiAgZXh0ZW5kQ29udGV4dD86IEV4dGVuZENvbnRleHRGbjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXh0ZW5kQ29udGV4dEZuID0gKCkgPT4gUmVjb3JkPHN0cmluZywgYW55PjtcclxuIl19
@@ -1,12 +1,9 @@
1
1
  import { Injectable, Optional, SkipSelf } from '@angular/core';
2
- import { ProxyOptions } from '../services/proxy.service';
2
+ import { ContainerControl } from '../controls/control';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "../services/proxy.service";
5
4
  export class RegisterService {
6
- proxyService;
7
5
  parent;
8
- constructor(proxyService, parent) {
9
- this.proxyService = proxyService;
6
+ constructor(parent) {
10
7
  this.parent = parent;
11
8
  }
12
9
  controls = {};
@@ -19,42 +16,77 @@ export class RegisterService {
19
16
  unregisterAll() {
20
17
  this.controls = {};
21
18
  }
19
+ getContext() {
20
+ return {
21
+ control: (name) => this.getControl(name)
22
+ };
23
+ }
22
24
  getControl(name) {
23
- return this.controls[name];
25
+ name = this.castString(name);
26
+ if (!name)
27
+ return null;
28
+ if (name.startsWith("../"))
29
+ return this.resolveParent(name.substring(3));
30
+ const controls = this.findControl(control => control.name === name, true, true);
31
+ return (controls.length === 0)
32
+ ? null
33
+ : controls[0];
24
34
  }
25
- getControls() {
26
- return Object.values(this.controls);
35
+ getControlAs(name, type) {
36
+ const ctrl = this.getControl(name);
37
+ return ctrl instanceof type ? ctrl : null;
27
38
  }
28
- proxy() {
29
- const parentName = "parent";
30
- const options = new ProxyOptions();
31
- options.isCustom = (target, property, root) => {
32
- return root || (property === parentName);
33
- };
34
- options.getCustom = (target, property, root) => {
35
- if (property === parentName) {
36
- return this.parent?.proxy();
39
+ findControl(predicate, firstOnly = false, parent = false) {
40
+ const controls = [];
41
+ for (const control of Object.values(this.controls)) {
42
+ if (predicate(control)) {
43
+ controls.push(control);
44
+ if (firstOnly) {
45
+ return controls;
46
+ }
37
47
  }
38
- return this.resolve(property.toString());
39
- };
40
- options.canDelete = () => false;
41
- options.canSet = () => false;
42
- return this.proxyService.getProxy(this.controls, options);
48
+ if (control instanceof ContainerControl) {
49
+ controls.push(...control.findControl(predicate, firstOnly));
50
+ if (controls.length > 0 && firstOnly) {
51
+ return controls;
52
+ }
53
+ }
54
+ }
55
+ if (parent) {
56
+ let currentParent = this.parent;
57
+ while (currentParent) {
58
+ for (const control of Object.values(currentParent.controls)) {
59
+ if (predicate(control)) {
60
+ controls.push(control);
61
+ if (firstOnly) {
62
+ return controls;
63
+ }
64
+ }
65
+ }
66
+ currentParent = currentParent.parent;
67
+ }
68
+ }
69
+ return controls;
70
+ }
71
+ castString(value) {
72
+ return typeof value === 'string' ? value.trim() : "";
43
73
  }
44
- resolve(name) {
45
- const result = this.controls[name];
46
- if (result)
47
- return result;
48
- return this.parent?.resolve(name);
74
+ resolveParent(name) {
75
+ if (!this.parent) {
76
+ return null;
77
+ }
78
+ else {
79
+ return this.parent.getControl(name);
80
+ }
49
81
  }
50
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RegisterService, deps: [{ token: i1.ProxyService }, { token: RegisterService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable });
82
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RegisterService, deps: [{ token: RegisterService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable });
51
83
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RegisterService });
52
84
  }
53
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RegisterService, decorators: [{
54
86
  type: Injectable
55
- }], ctorParameters: () => [{ type: i1.ProxyService }, { type: RegisterService, decorators: [{
87
+ }], ctorParameters: () => [{ type: RegisterService, decorators: [{
56
88
  type: Optional
57
89
  }, {
58
90
  type: SkipSelf
59
91
  }] }] });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL3NlcnZpY2VzL3JlZ2lzdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9ELE9BQU8sRUFBZ0IsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQUd2RSxNQUFNLE9BQU8sZUFBZTtJQUdoQjtJQUMwQjtJQUZwQyxZQUNVLFlBQTBCLEVBQ0EsTUFBOEI7UUFEeEQsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDQSxXQUFNLEdBQU4sTUFBTSxDQUF3QjtJQUVsRSxDQUFDO0lBRU8sUUFBUSxHQUE0QixFQUFFLENBQUM7SUFFL0MsUUFBUSxDQUFDLElBQVksRUFBRSxPQUFnQjtRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQztJQUNoQyxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFHLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELEtBQUs7UUFFSCxNQUFNLFVBQVUsR0FBVyxRQUFRLENBQUM7UUFFcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuQyxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM1QyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxVQUFVLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUM7UUFFRixPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM3QyxJQUFJLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQzlCLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDO1FBRUYsT0FBTyxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFFaEMsT0FBTyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFFN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTyxPQUFPLENBQUMsSUFBWTtRQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5DLElBQUksTUFBTTtZQUNSLE9BQU8sTUFBTSxDQUFDO1FBRWhCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQzt3R0E3RFUsZUFBZTs0R0FBZixlQUFlOzs0RkFBZixlQUFlO2tCQUQzQixVQUFVOzswQkFLSixRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9jb250cm9sJztcclxuaW1wb3J0IHsgUHJveHlTZXJ2aWNlLCBQcm94eU9wdGlvbnMgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcm94eS5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFJlZ2lzdGVyU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBwcm94eVNlcnZpY2U6IFByb3h5U2VydmljZVxyXG4gICAgLCBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHBhcmVudDogUmVnaXN0ZXJTZXJ2aWNlIHwgbnVsbClcclxuICB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnRyb2xzOiBSZWNvcmQ8c3RyaW5nLCBDb250cm9sPiA9IHt9O1xyXG5cclxuICByZWdpc3RlcihuYW1lOiBzdHJpbmcsIGNvbnRyb2w6IENvbnRyb2wpIHtcclxuICAgIHRoaXMuY29udHJvbHNbbmFtZV0gPSBjb250cm9sO1xyXG4gIH1cclxuXHJcbiAgdW5yZWdpc3RlcihuYW1lOiBzdHJpbmcpIHtcclxuICAgIGRlbGV0ZSB0aGlzLmNvbnRyb2xzW25hbWVdO1xyXG4gIH1cclxuXHJcbiAgdW5yZWdpc3RlckFsbCgpIHtcclxuICAgIHRoaXMuY29udHJvbHMgPSB7IH07XHJcbiAgfVxyXG5cclxuICBnZXRDb250cm9sKG5hbWU6IHN0cmluZykgOiBDb250cm9sIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2xzW25hbWVdO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29udHJvbHMoKSA6IENvbnRyb2xbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmNvbnRyb2xzKTtcclxuICB9XHJcblxyXG4gIHByb3h5KCk6IGFueSB7XHJcblxyXG4gICAgY29uc3QgcGFyZW50TmFtZTogc3RyaW5nID0gXCJwYXJlbnRcIjtcclxuXHJcbiAgICBjb25zdCBvcHRpb25zID0gbmV3IFByb3h5T3B0aW9ucygpO1xyXG5cclxuICAgIG9wdGlvbnMuaXNDdXN0b20gPSAodGFyZ2V0LCBwcm9wZXJ0eSwgcm9vdCkgPT4ge1xyXG4gICAgICByZXR1cm4gcm9vdCB8fCAocHJvcGVydHkgPT09IHBhcmVudE5hbWUpO1xyXG4gICAgfTtcclxuXHJcbiAgICBvcHRpb25zLmdldEN1c3RvbSA9ICh0YXJnZXQsIHByb3BlcnR5LCByb290KSA9PiB7XHJcbiAgICAgIGlmIChwcm9wZXJ0eSA9PT0gcGFyZW50TmFtZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudD8ucHJveHkoKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5yZXNvbHZlKHByb3BlcnR5LnRvU3RyaW5nKCkpO1xyXG4gICAgfTtcclxuXHJcbiAgICBvcHRpb25zLmNhbkRlbGV0ZSA9ICgpID0+IGZhbHNlO1xyXG5cclxuICAgIG9wdGlvbnMuY2FuU2V0ID0gKCkgPT4gZmFsc2U7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucHJveHlTZXJ2aWNlLmdldFByb3h5KHRoaXMuY29udHJvbHMsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNvbHZlKG5hbWU6IHN0cmluZyk6IENvbnRyb2wgfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5jb250cm9sc1tuYW1lXTtcclxuXHJcbiAgICBpZiAocmVzdWx0KVxyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG5cclxuICAgIHJldHVybiB0aGlzLnBhcmVudD8ucmVzb2x2ZShuYW1lKTtcclxuICB9XHJcbn1cclxuIl19
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL3NlcnZpY2VzL3JlZ2lzdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBVyxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUloRSxNQUFNLE9BQU8sZUFBZTtJQUdRO0lBRGxDLFlBQ2tDLE1BQThCO1FBQTlCLFdBQU0sR0FBTixNQUFNLENBQXdCO0lBRWhFLENBQUM7SUFFTyxRQUFRLEdBQTRCLEVBQUUsQ0FBQztJQUUvQyxRQUFRLENBQUMsSUFBWSxFQUFFLE9BQWdCO1FBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUcsQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU87WUFDTCxPQUFPLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1NBQ2pELENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDckIsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0IsSUFBSSxDQUFDLElBQUk7WUFDUCxPQUFPLElBQUksQ0FBQztRQUVkLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFD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ImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sLCBDb250YWluZXJDb250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvY29udHJvbCc7XHJcbmltcG9ydCB7IElFdmFsdWF0b3JQcm92aWRlciB9IGZyb20gJy4uL3NlcnZpY2VzL3Byb2dyYW1tYWJpbGl0eS5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFJlZ2lzdGVyU2VydmljZSBpbXBsZW1lbnRzIElFdmFsdWF0b3JQcm92aWRlciB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHJpdmF0ZSBwYXJlbnQ6IFJlZ2lzdGVyU2VydmljZSB8IG51bGwpXHJcbiAge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb250cm9sczogUmVjb3JkPHN0cmluZywgQ29udHJvbD4gPSB7fTtcclxuXHJcbiAgcmVnaXN0ZXIobmFtZTogc3RyaW5nLCBjb250cm9sOiBDb250cm9sKSB7XHJcbiAgICB0aGlzLmNvbnRyb2xzW25hbWVdID0gY29udHJvbDtcclxuICB9XHJcblxyXG4gIHVucmVnaXN0ZXIobmFtZTogc3RyaW5nKSB7XHJcbiAgICBkZWxldGUgdGhpcy5jb250cm9sc1tuYW1lXTtcclxuICB9XHJcblxyXG4gIHVucmVnaXN0ZXJBbGwoKSB7XHJcbiAgICB0aGlzLmNvbnRyb2xzID0geyB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29udGV4dCgpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNvbnRyb2w6IChuYW1lOiBzdHJpbmcpID0+IHRoaXMuZ2V0Q29udHJvbChuYW1lKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldENvbnRyb2wobmFtZTogc3RyaW5nKTogQ29udHJvbCB8IG51bGwge1xyXG4gICAgbmFtZSA9IHRoaXMuY2FzdFN0cmluZyhuYW1lKTtcclxuXHJcbiAgICBpZiAoIW5hbWUpXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoXCIuLi9cIikpXHJcbiAgICAgIHJldHVybiB0aGlzLnJlc29sdmVQYXJlbnQobmFtZS5zdWJzdHJpbmcoMykpO1xyXG4gICAgXHJcbiAgICBjb25zdCBjb250cm9scyA9IHRoaXMuZmluZENvbnRyb2woY29udHJvbCA9PiBjb250cm9sLm5hbWUgPT09IG5hbWUsIHRydWUsIHRydWUpO1xyXG4gICAgcmV0dXJuIChjb250cm9scy5sZW5ndGggPT09IDApXHJcbiAgICAgID8gbnVsbFxyXG4gICAgICA6IGNvbnRyb2xzWzBdO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29udHJvbEFzPFQgZXh0ZW5kcyBDb250cm9sPihuYW1lOiBzdHJpbmcsIHR5cGU6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQpOiBUIHwgbnVsbCB7XHJcbiAgICBjb25zdCBjdHJsID0gdGhpcy5nZXRDb250cm9sKG5hbWUpO1xyXG4gICAgcmV0dXJuIGN0cmwgaW5zdGFuY2VvZiB0eXBlID8gY3RybCA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBmaW5kQ29udHJvbChwcmVkaWNhdGU6IChjb250cm9sOiBDb250cm9sKSA9PiBib29sZWFuLCBmaXJzdE9ubHk6IGJvb2xlYW4gPSBmYWxzZSwgcGFyZW50OiBib29sZWFuID0gZmFsc2UpOiBDb250cm9sW10ge1xyXG4gICAgY29uc3QgY29udHJvbHM6IENvbnRyb2xbXSA9IFtdO1xyXG5cclxuICAgIGZvciAoY29uc3QgY29udHJvbCBvZiBPYmplY3QudmFsdWVzKHRoaXMuY29udHJvbHMpKSB7XHJcbiAgICAgIGlmIChwcmVkaWNhdGUoY29udHJvbCkpIHtcclxuICAgICAgICBjb250cm9scy5wdXNoKGNvbnRyb2wpO1xyXG4gICAgICAgIGlmIChmaXJzdE9ubHkpIHtcclxuICAgICAgICAgIHJldHVybiBjb250cm9scztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgQ29udGFpbmVyQ29udHJvbCkge1xyXG4gICAgICAgIGNvbnRyb2xzLnB1c2goLi4uY29udHJvbC5maW5kQ29udHJvbChwcmVkaWNhdGUsIGZpcnN0T25seSkpO1xyXG4gICAgICAgIGlmIChjb250cm9scy5sZW5ndGggPiAwICYmIGZpcnN0T25seSkge1xyXG4gICAgICAgICAgcmV0dXJuIGNvbnRyb2xzO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgbGV0IGN1cnJlbnRQYXJlbnQgPSB0aGlzLnBhcmVudDtcclxuXHJcbiAgICAgIHdoaWxlIChjdXJyZW50UGFyZW50KSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBjb250cm9sIG9mIE9iamVjdC52YWx1ZXMoY3VycmVudFBhcmVudC5jb250cm9scykpIHtcclxuICAgICAgICAgIGlmIChwcmVkaWNhdGUoY29udHJvbCkpIHtcclxuICAgICAgICAgICAgY29udHJvbHMucHVzaChjb250cm9sKTtcclxuICAgICAgICAgICAgaWYgKGZpcnN0T25seSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBjb250cm9scztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjdXJyZW50UGFyZW50ID0gY3VycmVudFBhcmVudC5wYXJlbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgcmV0dXJuIGNvbnRyb2xzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYXN0U3RyaW5nKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50cmltKCkgOiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNvbHZlUGFyZW50KG5hbWU6IHN0cmluZykgOiBDb250cm9sIHwgbnVsbCB7XHJcbiAgICBpZiAoIXRoaXMucGFyZW50KSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnBhcmVudC5nZXRDb250cm9sKG5hbWUpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,12 +1,8 @@
1
1
  import { Injectable, Optional, SkipSelf } from '@angular/core';
2
- import { ProxyOptions } from '../services/proxy.service';
3
2
  import * as i0 from "@angular/core";
4
- import * as i1 from "../services/proxy.service";
5
3
  export class ScopeService {
6
- proxyService;
7
4
  parent;
8
- constructor(proxyService, parent) {
9
- this.proxyService = proxyService;
5
+ constructor(parent) {
10
6
  this.parent = parent;
11
7
  }
12
8
  scope = null;
@@ -16,31 +12,24 @@ export class ScopeService {
16
12
  get() {
17
13
  return this.scope;
18
14
  }
19
- proxy() {
20
- const parentName = "parent";
21
- const options = new ProxyOptions();
22
- options.isCustom = (target, property, root) => {
23
- return root && (property === parentName);
15
+ getContext() {
16
+ if (!this.scope)
17
+ return {};
18
+ return {
19
+ ...this.scope,
20
+ parent: () => {
21
+ this.parent?.getContext();
22
+ }
24
23
  };
25
- options.getCustom = (target, property, root) => {
26
- return this.parent?.proxy();
27
- };
28
- options.canDelete = (target, property, root) => {
29
- return !(root && property === parentName);
30
- };
31
- options.canSet = (target, property, root) => {
32
- return !(root && property === parentName);
33
- };
34
- return this.proxyService.getProxy(this.scope ?? {}, options);
35
24
  }
36
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScopeService, deps: [{ token: i1.ProxyService }, { token: ScopeService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable });
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScopeService, deps: [{ token: ScopeService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable });
37
26
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScopeService });
38
27
  }
39
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScopeService, decorators: [{
40
29
  type: Injectable
41
- }], ctorParameters: () => [{ type: i1.ProxyService }, { type: ScopeService, decorators: [{
30
+ }], ctorParameters: () => [{ type: ScopeService, decorators: [{
42
31
  type: Optional
43
32
  }, {
44
33
  type: SkipSelf
45
34
  }] }] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL3NlcnZpY2VzL3Njb3BlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBZ0IsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQUd2RSxNQUFNLE9BQU8sWUFBWTtJQUdiO0lBQ3dCO0lBRmxDLFlBQ1UsWUFBMEIsRUFDRixNQUEyQjtRQURuRCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUNGLFdBQU0sR0FBTixNQUFNLENBQXFCO0lBQzdELENBQUM7SUFFTyxLQUFLLEdBQStCLElBQUksQ0FBQztJQUVqRCxHQUFHLENBQUMsS0FBMEI7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELEdBQUc7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELEtBQUs7UUFFSCxNQUFNLFVBQVUsR0FBVyxRQUFRLENBQUM7UUFFcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuQyxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM1QyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxVQUFVLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUM7UUFFRixPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM3QyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDO1FBRUYsT0FBTyxDQUFDLFNBQVMsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDN0MsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLFFBQVEsS0FBSyxVQUFVLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUM7UUFFRixPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUMxQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksUUFBUSxLQUFLLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0QsQ0FBQzt3R0F4Q1UsWUFBWTs0R0FBWixZQUFZOzs0RkFBWixZQUFZO2tCQUR4QixVQUFVOzswQkFLTixRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFByb3h5U2VydmljZSwgUHJveHlPcHRpb25zIH0gZnJvbSAnLi4vc2VydmljZXMvcHJveHkuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTY29wZVNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcHJveHlTZXJ2aWNlOiBQcm94eVNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHBhcmVudDogU2NvcGVTZXJ2aWNlIHwgbnVsbCkge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY29wZTogUmVjb3JkPHN0cmluZywgYW55PiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBzZXQoc2NvcGU6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuICAgIHRoaXMuc2NvcGUgPSBzY29wZTtcclxuICB9XHJcblxyXG4gIGdldCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2NvcGU7IFxyXG4gIH1cclxuXHJcbiAgcHJveHkoKTogYW55IHtcclxuXHJcbiAgICBjb25zdCBwYXJlbnROYW1lOiBzdHJpbmcgPSBcInBhcmVudFwiO1xyXG5cclxuICAgIGNvbnN0IG9wdGlvbnMgPSBuZXcgUHJveHlPcHRpb25zKCk7XHJcblxyXG4gICAgb3B0aW9ucy5pc0N1c3RvbSA9ICh0YXJnZXQsIHByb3BlcnR5LCByb290KSA9PiB7XHJcbiAgICAgIHJldHVybiByb290ICYmIChwcm9wZXJ0eSA9PT0gcGFyZW50TmFtZSk7XHJcbiAgICB9O1xyXG5cclxuICAgIG9wdGlvbnMuZ2V0Q3VzdG9tID0gKHRhcmdldCwgcHJvcGVydHksIHJvb3QpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMucGFyZW50Py5wcm94eSgpO1xyXG4gICAgfTtcclxuXHJcbiAgICBvcHRpb25zLmNhbkRlbGV0ZSA9ICh0YXJnZXQsIHByb3BlcnR5LCByb290KSA9PiB7XHJcbiAgICAgIHJldHVybiAhKHJvb3QgJiYgcHJvcGVydHkgPT09IHBhcmVudE5hbWUpO1xyXG4gICAgfTtcclxuXHJcbiAgICBvcHRpb25zLmNhblNldCA9ICh0YXJnZXQsIHByb3BlcnR5LCByb290KSA9PiB7XHJcbiAgICAgIHJldHVybiAhKHJvb3QgJiYgcHJvcGVydHkgPT09IHBhcmVudE5hbWUpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wcm94eVNlcnZpY2UuZ2V0UHJveHkodGhpcy5zY29wZSA/PyB7fSwgb3B0aW9ucyk7XHJcbiAgfSAgXHJcbn1cclxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL3NlcnZpY2VzL3Njb3BlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkvRCxNQUFNLE9BQU8sWUFBWTtJQUdXO0lBRGxDLFlBQ2tDLE1BQTJCO1FBQTNCLFdBQU0sR0FBTixNQUFNLENBQXFCO0lBQzdELENBQUM7SUFFTyxLQUFLLEdBQStCLElBQUksQ0FBQztJQUVqRCxHQUFHLENBQUMsS0FBaUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELEdBQUc7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMzQixPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUMsS0FBSztZQUNiLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUM1QixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7d0dBeEJVLFlBQVk7NEdBQVosWUFBWTs7NEZBQVosWUFBWTtrQkFEeEIsVUFBVTs7MEJBSU4sUUFBUTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJRXZhbHVhdG9yUHJvdmlkZXIgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcm9ncmFtbWFiaWxpdHkuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTY29wZVNlcnZpY2UgaW1wbGVtZW50cyBJRXZhbHVhdG9yUHJvdmlkZXIge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHByaXZhdGUgcGFyZW50OiBTY29wZVNlcnZpY2UgfCBudWxsKSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNjb3BlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHNldChzY29wZTogUmVjb3JkPHN0cmluZywgYW55PiB8IG51bGwpIHtcclxuICAgIHRoaXMuc2NvcGUgPSBzY29wZTtcclxuICB9XHJcblxyXG4gIGdldCgpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5zY29wZTsgXHJcbiAgfVxyXG5cclxuICBnZXRDb250ZXh0KCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xyXG4gICAgaWYgKCF0aGlzLnNjb3BlKSByZXR1cm4ge307XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi50aGlzLnNjb3BlLFxyXG4gICAgICBwYXJlbnQ6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnBhcmVudD8uZ2V0Q29udGV4dCgpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH0gIFxyXG59XHJcbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { ToBoundArrows } from '../utils/functions';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "ngx-sirio-lib";
4
5
  export class ToastService {
@@ -18,6 +19,14 @@ export class ToastService {
18
19
  notifyError(message, delay = 2000) {
19
20
  this.notify(message, "danger", delay);
20
21
  }
22
+ getContext() {
23
+ return ToBoundArrows(this, [
24
+ "notifyInfo",
25
+ "notifySuccess",
26
+ "notifyWarning",
27
+ "notifyError"
28
+ ]);
29
+ }
21
30
  notify(message, type, delay = 2000) {
22
31
  this.sirioToast.openToast({
23
32
  delay: delay,
@@ -34,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
34
43
  providedIn: 'root'
35
44
  }]
36
45
  }], ctorParameters: () => [{ type: i1.SirioToastService }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTTNDLE1BQU0sT0FBTyxZQUFZO0lBR2I7SUFEVixZQUNVLFVBQTZCO1FBQTdCLGVBQVUsR0FBVixVQUFVLENBQW1CO0lBQ25DLENBQUM7SUFFTCxVQUFVLENBQUMsT0FBZSxFQUFFLFFBQWdCLElBQUk7UUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBZSxFQUFFLFFBQWdCLElBQUk7UUFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBZSxFQUFFLFFBQWdCLElBQUk7UUFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBZSxFQUFFLFFBQWdCLElBQUk7UUFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTyxNQUFNLENBQUMsT0FBZSxFQUFFLElBQWdCLEVBQUUsUUFBZ0IsSUFBSTtRQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztZQUN4QixLQUFLLEVBQUUsS0FBSztZQUNaLElBQUksRUFBRSxPQUFPO1lBQ2IsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDO3dHQTVCVSxZQUFZOzRHQUFaLFlBQVksY0FGWCxNQUFNOzs0RkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2lyaW9Ub2FzdFNlcnZpY2UsIFRvYXN0VHlwZXMgfSBmcm9tIFwibmd4LXNpcmlvLWxpYlwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9hc3RTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNpcmlvVG9hc3Q6IFNpcmlvVG9hc3RTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbm90aWZ5SW5mbyhtZXNzYWdlOiBzdHJpbmcsIGRlbGF5OiBudW1iZXIgPSAyMDAwKSB7XHJcbiAgICB0aGlzLm5vdGlmeShtZXNzYWdlLCBcImluZm9cIiwgZGVsYXkpO1xyXG4gIH1cclxuXHJcbiAgbm90aWZ5U3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcsIGRlbGF5OiBudW1iZXIgPSAyMDAwKSB7XHJcbiAgICB0aGlzLm5vdGlmeShtZXNzYWdlLCBcInN1Y2Nlc3NcIiwgZGVsYXkpO1xyXG4gIH1cclxuXHJcbiAgbm90aWZ5V2FybmluZyhtZXNzYWdlOiBzdHJpbmcsIGRlbGF5OiBudW1iZXIgPSAyMDAwKSB7XHJcbiAgICB0aGlzLm5vdGlmeShtZXNzYWdlLCBcIndhcm5pbmdcIiwgZGVsYXkpO1xyXG4gIH1cclxuXHJcbiAgbm90aWZ5RXJyb3IobWVzc2FnZTogc3RyaW5nLCBkZWxheTogbnVtYmVyID0gMjAwMCkge1xyXG4gICAgdGhpcy5ub3RpZnkobWVzc2FnZSwgXCJkYW5nZXJcIiwgZGVsYXkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBub3RpZnkobWVzc2FnZTogc3RyaW5nLCB0eXBlOiBUb2FzdFR5cGVzLCBkZWxheTogbnVtYmVyID0gMjAwMCkge1xyXG4gICAgdGhpcy5zaXJpb1RvYXN0Lm9wZW5Ub2FzdCh7XHJcbiAgICAgIGRlbGF5OiBkZWxheSxcclxuICAgICAgdGV4dDogbWVzc2FnZSxcclxuICAgICAgdHlwZTogdHlwZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQU1uRCxNQUFNLE9BQU8sWUFBWTtJQUdiO0lBRFYsWUFDVSxVQUE2QjtRQUE3QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtJQUNuQyxDQUFDO0lBRUwsVUFBVSxDQUFDLE9BQWUsRUFBRSxRQUFnQixJQUFJO1FBQzlDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWUsRUFBRSxRQUFnQixJQUFJO1FBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWUsRUFBRSxRQUFnQixJQUFJO1FBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQWUsRUFBRSxRQUFnQixJQUFJO1FBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sYUFBYSxDQUFDLElBQUksRUFBRTtZQUN6QixZQUFZO1lBQ1osZUFBZTtZQUNmLGVBQWU7WUFDZixhQUFhO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLE1BQU0sQ0FBQyxPQUFlLEVBQUUsSUFBZ0IsRUFBRSxRQUFnQixJQUFJO1FBQ3BFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1lBQ3hCLEtBQUssRUFBRSxLQUFLO1lBQ1osSUFBSSxFQUFFLE9BQU87WUFDYixJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBckNVLFlBQVk7NEdBQVosWUFBWSxjQUZYLE1BQU07OzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJRXZhbHVhdG9yUHJvdmlkZXIgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcm9ncmFtbWFiaWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvQm91bmRBcnJvd3MgfSBmcm9tICcuLi91dGlscy9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBTaXJpb1RvYXN0U2VydmljZSwgVG9hc3RUeXBlcyB9IGZyb20gXCJuZ3gtc2lyaW8tbGliXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb2FzdFNlcnZpY2UgaW1wbGVtZW50cyBJRXZhbHVhdG9yUHJvdmlkZXIge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2lyaW9Ub2FzdDogU2lyaW9Ub2FzdFNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBub3RpZnlJbmZvKG1lc3NhZ2U6IHN0cmluZywgZGVsYXk6IG51bWJlciA9IDIwMDApIHtcclxuICAgIHRoaXMubm90aWZ5KG1lc3NhZ2UsIFwiaW5mb1wiLCBkZWxheSk7XHJcbiAgfVxyXG5cclxuICBub3RpZnlTdWNjZXNzKG1lc3NhZ2U6IHN0cmluZywgZGVsYXk6IG51bWJlciA9IDIwMDApIHtcclxuICAgIHRoaXMubm90aWZ5KG1lc3NhZ2UsIFwic3VjY2Vzc1wiLCBkZWxheSk7XHJcbiAgfVxyXG5cclxuICBub3RpZnlXYXJuaW5nKG1lc3NhZ2U6IHN0cmluZywgZGVsYXk6IG51bWJlciA9IDIwMDApIHtcclxuICAgIHRoaXMubm90aWZ5KG1lc3NhZ2UsIFwid2FybmluZ1wiLCBkZWxheSk7XHJcbiAgfVxyXG5cclxuICBub3RpZnlFcnJvcihtZXNzYWdlOiBzdHJpbmcsIGRlbGF5OiBudW1iZXIgPSAyMDAwKSB7XHJcbiAgICB0aGlzLm5vdGlmeShtZXNzYWdlLCBcImRhbmdlclwiLCBkZWxheSk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250ZXh0KCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xyXG4gICAgcmV0dXJuIFRvQm91bmRBcnJvd3ModGhpcywgW1xyXG4gICAgICBcIm5vdGlmeUluZm9cIixcclxuICAgICAgXCJub3RpZnlTdWNjZXNzXCIsXHJcbiAgICAgIFwibm90aWZ5V2FybmluZ1wiLFxyXG4gICAgICBcIm5vdGlmeUVycm9yXCJcclxuICAgIF0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBub3RpZnkobWVzc2FnZTogc3RyaW5nLCB0eXBlOiBUb2FzdFR5cGVzLCBkZWxheTogbnVtYmVyID0gMjAwMCkge1xyXG4gICAgdGhpcy5zaXJpb1RvYXN0Lm9wZW5Ub2FzdCh7XHJcbiAgICAgIGRlbGF5OiBkZWxheSxcclxuICAgICAgdGV4dDogbWVzc2FnZSxcclxuICAgICAgdHlwZTogdHlwZVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -32,16 +32,6 @@ export class WeakService {
32
32
  result = result.pipe(take(1), tap((res) => {
33
33
  cachedObject[key] = of(res);
34
34
  }), shareReplay(1));
35
- //let subscription: Subscription;
36
- //subscription = result
37
- // .subscribe({
38
- // next: (result: any) => {
39
- // subscription.unsubscribe();
40
- // cachedObject[key] = of(result);
41
- // },
42
- // error: (error : any) => console.error(error),
43
- // complete: () => console.log('Observable complete')
44
- // });
45
35
  }
46
36
  cachedObject[key] = result;
47
37
  return result;
@@ -61,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
61
51
  providedIn: 'root'
62
52
  }]
63
53
  }], ctorParameters: () => [] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vhay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvc2VydmljZXMvd2Vhay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSzdDLE1BQU0sT0FBTyxXQUFXO0lBRXRCLGdCQUFnQixDQUFDO0lBRVQsS0FBSyxHQUFHLElBQUksT0FBTyxFQUErQixDQUFDO0lBRTNELE1BQU0sQ0FBQyxNQUFjLEVBQUUsR0FBVztRQUNoQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFFLENBQUM7WUFDN0MsT0FBTyxDQUFDLEdBQUcsSUFBSSxZQUFZLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxDQUFJLE1BQWMsRUFBRSxHQUFXLEVBQUUsSUFBYSxFQUM5QyxXQUEyQyxJQUFJLEVBQy9DLFFBQW9DLElBQUk7UUFFMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUUsQ0FBQztRQUU3QyxJQUFJLEdBQUcsSUFBSSxZQUFZO2VBQ2xCLENBQUMsUUFBUSxJQUFJLElBQUk7bUJBQ2YsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQ25DLENBQUM7WUFDQyxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxNQUFNLEdBQVEsSUFBSSxFQUFFLENBQUM7UUFFekIsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbEIsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXhDLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVyQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDbEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNmLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7WUFFRixpQ0FBaUM7WUFFakMsdUJBQXVCO1lBQ3ZCLGdCQUFnQjtZQUNoQiw4QkFBOEI7WUFDOUIsbUNBQW1DO1lBQ25DLHVDQUF1QztZQUN2QyxRQUFRO1lBQ1IsbURBQW1EO1lBQ25ELHdEQUF3RDtZQUN4RCxPQUFPO1FBQ1QsQ0FBQztRQUVELFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7UUFFM0IsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFjLEVBQUUsR0FBVztRQUNwQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFFLENBQUM7WUFDN0MsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7d0dBekVVLFdBQVc7NEdBQVgsV0FBVyxjQUZWLE1BQU07OzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc09ic2VydmFibGUsIG9mLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXZWFrU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIHByaXZhdGUgY2FjaGUgPSBuZXcgV2Vha01hcDxvYmplY3QsIFJlY29yZDxzdHJpbmcsIGFueT4+KCk7XHJcblxyXG4gIGV4aXN0cyhzb3VyY2U6IG9iamVjdCwga2V5OiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmNhY2hlLmhhcyhzb3VyY2UpKSB7XHJcbiAgICAgIGNvbnN0IGNhY2hlZE9iamVjdCA9IHRoaXMuY2FjaGUuZ2V0KHNvdXJjZSkhO1xyXG4gICAgICByZXR1cm4gKGtleSBpbiBjYWNoZWRPYmplY3QpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY2FsbDxUPihzb3VyY2U6IG9iamVjdCwga2V5OiBzdHJpbmcsIGZ1bmM6ICgpID0+IFRcclxuICAgICwgcmV1c2FibGU6ICgodmFsdWU6IFQpID0+IGJvb2xlYW4pIHwgbnVsbCA9IG51bGxcclxuICAgICwgc3RvcmU6ICgodmFsdWU6IFQpID0+IGFueSkgfCBudWxsID0gbnVsbFxyXG4gICAgKTogVCB7XHJcbiAgICBpZiAoIXRoaXMuY2FjaGUuaGFzKHNvdXJjZSkpIHtcclxuICAgICAgdGhpcy5jYWNoZS5zZXQoc291cmNlLCB7fSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY2FjaGVkT2JqZWN0ID0gdGhpcy5jYWNoZS5nZXQoc291cmNlKSE7XHJcblxyXG4gICAgaWYgKGtleSBpbiBjYWNoZWRPYmplY3RcclxuICAgICAgJiYgKHJldXNhYmxlID09IG51bGxcclxuICAgICAgICB8fCByZXVzYWJsZShjYWNoZWRPYmplY3Rba2V5XSkpKVxyXG4gICAge1xyXG4gICAgICByZXR1cm4gY2FjaGVkT2JqZWN0W2tleV07XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHJlc3VsdDogYW55ID0gZnVuYygpO1xyXG5cclxuICAgIGlmIChzdG9yZSAhPSBudWxsKSB7XHJcbiAgICAgIHJlc3VsdCA9IHN0b3JlKHJlc3VsdCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZSA9IGlzT2JzZXJ2YWJsZShyZXN1bHQpO1xyXG5cclxuICAgIGlmIChvYnNlcnZhYmxlKSB7XHJcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5waXBlKHNoYXJlUmVwbGF5KDEpKTtcclxuXHJcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5waXBlKFxyXG4gICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgdGFwKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgY2FjaGVkT2JqZWN0W2tleV0gPSBvZihyZXMpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpXHJcbiAgICAgICk7XHJcblxyXG4gICAgICAvL2xldCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICAgIC8vc3Vic2NyaXB0aW9uID0gcmVzdWx0XHJcbiAgICAgIC8vICAuc3Vic2NyaWJlKHtcclxuICAgICAgLy8gICAgbmV4dDogKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIC8vICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIC8vICAgICAgY2FjaGVkT2JqZWN0W2tleV0gPSBvZihyZXN1bHQpO1xyXG4gICAgICAvLyAgICB9LFxyXG4gICAgICAvLyAgICBlcnJvcjogKGVycm9yIDogYW55KSA9PiBjb25zb2xlLmVycm9yKGVycm9yKSxcclxuICAgICAgLy8gICAgY29tcGxldGU6ICgpID0+IGNvbnNvbGUubG9nKCdPYnNlcnZhYmxlIGNvbXBsZXRlJylcclxuICAgICAgLy8gIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNhY2hlZE9iamVjdFtrZXldID0gcmVzdWx0O1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBpbnZhbGlkYXRlKHNvdXJjZTogb2JqZWN0LCBrZXk6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuY2FjaGUuaGFzKHNvdXJjZSkpIHtcclxuICAgICAgY29uc3QgY2FjaGVkT2JqZWN0ID0gdGhpcy5jYWNoZS5nZXQoc291cmNlKSE7XHJcbiAgICAgIGRlbGV0ZSBjYWNoZWRPYmplY3Rba2V5XTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vhay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvc2VydmljZXMvd2Vhay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSzdDLE1BQU0sT0FBTyxXQUFXO0lBRXRCLGdCQUFnQixDQUFDO0lBRVQsS0FBSyxHQUFHLElBQUksT0FBTyxFQUErQixDQUFDO0lBRTNELE1BQU0sQ0FBQyxNQUFjLEVBQUUsR0FBVztRQUNoQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFFLENBQUM7WUFDN0MsT0FBTyxDQUFDLEdBQUcsSUFBSSxZQUFZLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxDQUFJLE1BQWMsRUFBRSxHQUFXLEVBQUUsSUFBYSxFQUM5QyxXQUEyQyxJQUFJLEVBQy9DLFFBQW9DLElBQUk7UUFFMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUUsQ0FBQztRQUU3QyxJQUFJLEdBQUcsSUFBSSxZQUFZO2VBQ2xCLENBQUMsUUFBUSxJQUFJLElBQUk7bUJBQ2YsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQ25DLENBQUM7WUFDQyxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxNQUFNLEdBQVEsSUFBSSxFQUFFLENBQUM7UUFFekIsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbEIsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXhDLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVyQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDbEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNmLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFDSixDQUFDO1FBRUQsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUUzQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQWMsRUFBRSxHQUFXO1FBQ3BDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUUsQ0FBQztZQUM3QyxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQzt3R0E3RFUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSwgb2YsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFdlYWtTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgcHJpdmF0ZSBjYWNoZSA9IG5ldyBXZWFrTWFwPG9iamVjdCwgUmVjb3JkPHN0cmluZywgYW55Pj4oKTtcclxuXHJcbiAgZXhpc3RzKHNvdXJjZTogb2JqZWN0LCBrZXk6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuY2FjaGUuaGFzKHNvdXJjZSkpIHtcclxuICAgICAgY29uc3QgY2FjaGVkT2JqZWN0ID0gdGhpcy5jYWNoZS5nZXQoc291cmNlKSE7XHJcbiAgICAgIHJldHVybiAoa2V5IGluIGNhY2hlZE9iamVjdCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBjYWxsPFQ+KHNvdXJjZTogb2JqZWN0LCBrZXk6IHN0cmluZywgZnVuYzogKCkgPT4gVFxyXG4gICAgLCByZXVzYWJsZTogKCh2YWx1ZTogVCkgPT4gYm9vbGVhbikgfCBudWxsID0gbnVsbFxyXG4gICAgLCBzdG9yZTogKCh2YWx1ZTogVCkgPT4gYW55KSB8IG51bGwgPSBudWxsXHJcbiAgICApOiBUIHtcclxuICAgIGlmICghdGhpcy5jYWNoZS5oYXMoc291cmNlKSkge1xyXG4gICAgICB0aGlzLmNhY2hlLnNldChzb3VyY2UsIHt9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjYWNoZWRPYmplY3QgPSB0aGlzLmNhY2hlLmdldChzb3VyY2UpITtcclxuXHJcbiAgICBpZiAoa2V5IGluIGNhY2hlZE9iamVjdFxyXG4gICAgICAmJiAocmV1c2FibGUgPT0gbnVsbFxyXG4gICAgICAgIHx8IHJldXNhYmxlKGNhY2hlZE9iamVjdFtrZXldKSkpXHJcbiAgICB7XHJcbiAgICAgIHJldHVybiBjYWNoZWRPYmplY3Rba2V5XTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcmVzdWx0OiBhbnkgPSBmdW5jKCk7XHJcblxyXG4gICAgaWYgKHN0b3JlICE9IG51bGwpIHtcclxuICAgICAgcmVzdWx0ID0gc3RvcmUocmVzdWx0KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvYnNlcnZhYmxlID0gaXNPYnNlcnZhYmxlKHJlc3VsdCk7XHJcblxyXG4gICAgaWYgKG9ic2VydmFibGUpIHtcclxuICAgICAgcmVzdWx0ID0gcmVzdWx0LnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xyXG5cclxuICAgICAgcmVzdWx0ID0gcmVzdWx0LnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICB0YXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBjYWNoZWRPYmplY3Rba2V5XSA9IG9mKHJlcyk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjYWNoZWRPYmplY3Rba2V5XSA9IHJlc3VsdDtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgaW52YWxpZGF0ZShzb3VyY2U6IG9iamVjdCwga2V5OiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmNhY2hlLmhhcyhzb3VyY2UpKSB7XHJcbiAgICAgIGNvbnN0IGNhY2hlZE9iamVjdCA9IHRoaXMuY2FjaGUuZ2V0KHNvdXJjZSkhO1xyXG4gICAgICBkZWxldGUgY2FjaGVkT2JqZWN0W2tleV07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,31 @@
1
+ export function ToBoundArrows(instance, methodNames) {
2
+ const result = {};
3
+ for (const name of methodNames) {
4
+ const original = instance[name];
5
+ if (typeof original === 'function') {
6
+ result[name] = (...args) => original.apply(instance, args);
7
+ }
8
+ }
9
+ return result;
10
+ }
11
+ export function ToProxy(instance) {
12
+ if (!instance) {
13
+ return instance;
14
+ }
15
+ return new Proxy(instance, {
16
+ get: (target, property) => {
17
+ let value = undefined;
18
+ if (property in target) {
19
+ value = Reflect.get(target, property, target);
20
+ }
21
+ if (typeof value === 'function') {
22
+ return (...args) => value.apply(instance, args);
23
+ }
24
+ else if (typeof value === 'object' && value !== null) {
25
+ return ToProxy(value);
26
+ }
27
+ return value;
28
+ }
29
+ });
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvdXRpbHMvZnVuY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxhQUFhLENBQzNCLFFBQVcsRUFDWCxXQUF3QjtJQUN4QixNQUFNLE1BQU0sR0FBd0IsRUFBRSxDQUFDO0lBRXZDLEtBQUssTUFBTSxJQUFJLElBQUksV0FBVyxFQUFFLENBQUM7UUFDL0IsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksT0FBTyxRQUFRLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDbkMsTUFBTSxDQUFDLElBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlFLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsUUFBYTtJQUVuQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsT0FBTyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7UUFDekIsR0FBRyxFQUFFLENBQUMsTUFBVyxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBRTdCLElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUV0QixJQUFJLFFBQVEsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNoRCxDQUFDO1lBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6RCxDQUFDO2lCQUNJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDckQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsQ0FBQztZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztLQUNGLENBQUMsQ0FBQztBQUVMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gVG9Cb3VuZEFycm93czxUIGV4dGVuZHMgb2JqZWN0PihcclxuICBpbnN0YW5jZTogVCxcclxuICBtZXRob2ROYW1lczogKGtleW9mIFQpW10pIDogUmVjb3JkPHN0cmluZywgYW55PiB7XHJcbiAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcblxyXG4gIGZvciAoY29uc3QgbmFtZSBvZiBtZXRob2ROYW1lcykge1xyXG4gICAgY29uc3Qgb3JpZ2luYWwgPSBpbnN0YW5jZVtuYW1lXTtcclxuICAgIGlmICh0eXBlb2Ygb3JpZ2luYWwgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgcmVzdWx0W25hbWUgYXMgc3RyaW5nXSA9ICguLi5hcmdzOiBhbnlbXSkgPT4gb3JpZ2luYWwuYXBwbHkoaW5zdGFuY2UsIGFyZ3MpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFRvUHJveHkoaW5zdGFuY2U6IGFueSkge1xyXG5cclxuICBpZiAoIWluc3RhbmNlKSB7XHJcbiAgICByZXR1cm4gaW5zdGFuY2U7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbmV3IFByb3h5KGluc3RhbmNlLCB7XHJcbiAgICBnZXQ6ICh0YXJnZXQ6IGFueSwgcHJvcGVydHkpID0+IHtcclxuXHJcbiAgICAgIGxldCB2YWx1ZSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgIGlmIChwcm9wZXJ0eSBpbiB0YXJnZXQpIHtcclxuICAgICAgICB2YWx1ZSA9IFJlZmxlY3QuZ2V0KHRhcmdldCwgcHJvcGVydHksIHRhcmdldCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICByZXR1cm4gKC4uLmFyZ3M6IGFueVtdKSA9PiB2YWx1ZS5hcHBseShpbnN0YW5jZSwgYXJncyk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiBUb1Byb3h5KHZhbHVlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxufVxyXG4iXX0=