@pega/angular-sdk-components 0.242.5 → 0.242.7

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 (47) hide show
  1. package/esm2022/lib/_components/field/email/email.component.mjs +16 -8
  2. package/esm2022/lib/_components/field/integer/integer.component.mjs +17 -9
  3. package/esm2022/lib/_components/field/text-area/text-area.component.mjs +17 -9
  4. package/esm2022/lib/_components/field/text-input/text-input.component.mjs +17 -9
  5. package/esm2022/lib/_components/field/url/url.component.mjs +17 -9
  6. package/esm2022/lib/_components/field/user-reference/user-reference.component.mjs +30 -13
  7. package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +10 -44
  8. package/esm2022/lib/_components/infra/Containers/flow-container/helpers.mjs +2 -2
  9. package/esm2022/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.mjs +2 -8
  10. package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +75 -47
  11. package/esm2022/lib/_components/infra/assignment-card/assignment-card.component.mjs +30 -10
  12. package/esm2022/lib/_components/infra/reference/reference.component.mjs +14 -11
  13. package/esm2022/lib/_components/infra/root-container/root-container.component.mjs +3 -13
  14. package/esm2022/lib/_components/infra/view/view.component.mjs +15 -2
  15. package/esm2022/lib/_components/template/base/form-template-base.mjs +4 -1
  16. package/esm2022/lib/_components/template/default-form/default-form.component.mjs +33 -8
  17. package/esm2022/lib/_components/template/field-group-template/field-group-template.component.mjs +2 -2
  18. package/esm2022/lib/_components/template/simple-table-manual/helpers.mjs +7 -6
  19. package/esm2022/lib/_components/template/simple-table-manual/simple-table-manual.component.mjs +1 -2
  20. package/esm2022/lib/_components/widget/todo/todo.component.mjs +6 -4
  21. package/esm2022/lib/_services/banner.service.mjs +35 -0
  22. package/esm2022/lib/_services/endpoints.mjs +1 -2
  23. package/esm2022/lib/_services/idle-detection.service.mjs +26 -0
  24. package/esm2022/public-api.mjs +3 -1
  25. package/fesm2022/pega-angular-sdk-components.mjs +459 -308
  26. package/fesm2022/pega-angular-sdk-components.mjs.map +1 -1
  27. package/lib/_components/field/integer/integer.component.d.ts +1 -1
  28. package/lib/_components/field/text-area/text-area.component.d.ts +1 -1
  29. package/lib/_components/field/text-input/text-input.component.d.ts +1 -1
  30. package/lib/_components/field/url/url.component.d.ts +1 -1
  31. package/lib/_components/field/user-reference/user-reference.component.d.ts +5 -0
  32. package/lib/_components/infra/Containers/flow-container/flow-container.component.d.ts +0 -1
  33. package/lib/_components/infra/Containers/flow-container/helpers.d.ts +1 -0
  34. package/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.d.ts +1 -2
  35. package/lib/_components/infra/assignment/assignment.component.d.ts +6 -3
  36. package/lib/_components/infra/assignment-card/assignment-card.component.d.ts +10 -2
  37. package/lib/_components/infra/root-container/root-container.component.d.ts +0 -1
  38. package/lib/_components/template/base/form-template-base.d.ts +2 -0
  39. package/lib/_components/template/default-form/default-form.component.d.ts +8 -3
  40. package/lib/_components/template/simple-table-manual/helpers.d.ts +1 -0
  41. package/lib/_components/widget/todo/todo.component.d.ts +1 -1
  42. package/lib/_services/banner.service.d.ts +8 -0
  43. package/lib/_services/endpoints.d.ts +0 -1
  44. package/lib/_services/idle-detection.service.d.ts +9 -0
  45. package/lib/doc/KeyReleaseUpdates.md +23 -6
  46. package/package.json +1 -1
  47. package/public-api.d.ts +2 -0
@@ -21,18 +21,16 @@ export class ReferenceComponent {
21
21
  static createFullReferencedViewFromRef(inPConn) {
22
22
  // BAIL and ERROR if inPConn is NOT a reference!
23
23
  if (inPConn.getComponentName() !== 'reference') {
24
- // debugger;
25
24
  console.error(`Reference component: createFullReferencedViewFromRef inPConn is NOT a reference! ${inPConn.getComponentName()}`);
26
25
  }
27
- const theResolvedConfigProps = inPConn.resolveConfigProps(inPConn.getConfigProps());
28
26
  const referenceConfig = { ...inPConn.getComponentConfig() } || {};
29
27
  // Since SDK-A implements Reference as static methods and we don't rely on
30
28
  // the Reference component's handling of the visibility prop, we leave it in
31
29
  // (and also leaving the others in for now) so the referenced View can act on
32
30
  // the visibility prop. (The following 3 lines were carried over from React SDK)
33
31
  delete referenceConfig?.name;
34
- // delete referenceConfig?.type;
35
- // delete referenceConfig?.visibility;
32
+ delete referenceConfig?.type;
33
+ delete referenceConfig?.visibility;
36
34
  const viewMetadata = inPConn.getReferencedView();
37
35
  if (!viewMetadata) {
38
36
  console.log('View not found ', inPConn.getComponentConfig());
@@ -47,23 +45,28 @@ export class ReferenceComponent {
47
45
  ...referenceConfig
48
46
  }
49
47
  };
48
+ const theResolvedConfigProps = inPConn.resolveConfigProps(inPConn.getConfigProps());
49
+ const { visibility = true, context, readOnly = false, displayMode = '' } = theResolvedConfigProps;
50
50
  if (ReferenceComponent.bLogging) {
51
- console.log(`Reference: about to call createComponent with pageReference: context: ${theResolvedConfigProps.context}`);
51
+ console.log(`Reference: about to call createComponent with pageReference: context: ${inPConn.getContextName()}`);
52
52
  }
53
53
  const viewComponent = inPConn.createComponent(viewObject, null, null, {
54
- pageReference: theResolvedConfigProps.context
54
+ pageReference: context && context.startsWith('@CLASS') ? '' : context
55
55
  });
56
56
  // updating the referencedComponent should trigger a render
57
57
  const newCompPConnect = viewComponent.getPConnect();
58
58
  newCompPConnect.setInheritedConfig({
59
59
  ...referenceConfig,
60
- readOnly: theResolvedConfigProps.readOnly ? theResolvedConfigProps.readOnly : false,
61
- displayMode: theResolvedConfigProps.displayMode ? theResolvedConfigProps.displayMode : null
60
+ readOnly,
61
+ displayMode
62
62
  });
63
63
  if (ReferenceComponent.bLogging) {
64
64
  console.log(`Angular Reference component: createFullReferencedViewFromRef -> newCompPConnect configProps: ${JSON.stringify(newCompPConnect.getConfigProps())}`);
65
65
  }
66
- return newCompPConnect;
66
+ if (visibility !== false) {
67
+ return newCompPConnect;
68
+ }
69
+ return null;
67
70
  }
68
71
  // STATIC method that other components can call to normalize
69
72
  // a pConn object that might be a 'reference'. If the incoming
@@ -97,7 +100,7 @@ export class ReferenceComponent {
97
100
  // debugger;
98
101
  let theRefViewPConn = this.createFullReferencedViewFromRef(inPConn.getPConnect());
99
102
  // now return its PConnect
100
- theRefViewPConn = theRefViewPConn.getComponent();
103
+ theRefViewPConn = theRefViewPConn?.getComponent();
101
104
  // const theFullReference = theRefViewPConn.getPConnect().getFullReference();
102
105
  // console.log(`theFullReference: ${theFullReference}`);
103
106
  return theRefViewPConn;
@@ -130,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
130
133
  type: Component,
131
134
  args: [{ selector: 'app-reference', standalone: true, template: "<!-- Reference component is all static methods so .html not used -->\n" }]
132
135
  }], ctorParameters: () => [] });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFDOzs7O0dBSUc7QUFRSCxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLDRDQUE0QzthQUM3QixhQUFRLEdBQUcsS0FBSyxBQUFSLENBQVM7SUFFaEM7UUFMQSx3QkFBbUIsR0FBUSxJQUFJLENBQUM7UUFNOUIscUVBQXFFO1FBQ3JFLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUVuRCxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELDRFQUE0RTtJQUM1RSxzREFBc0Q7SUFFdEQseUZBQXlGO0lBQ3pGLDZGQUE2RjtJQUM3RixNQUFNLENBQUMsK0JBQStCLENBQUMsT0FBWTtRQUNqRCxnREFBZ0Q7UUFDaEQsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUMvQyxZQUFZO1lBRVosT0FBTyxDQUFDLEtBQUssQ0FBQyxvRkFBb0YsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xJLENBQUM7UUFFRCxNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUVwRixNQUFNLGVBQWUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFbEUsMEVBQTBFO1FBQzFFLDZFQUE2RTtRQUM3RSw4RUFBOEU7UUFDOUUsaUZBQWlGO1FBQ2pGLE9BQU8sZUFBZSxFQUFFLElBQUksQ0FBQztRQUM3QixnQ0FBZ0M7UUFDaEMsc0NBQXNDO1FBRXRDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRWpELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7WUFDN0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsMkRBQTJEO1FBQzNELHFEQUFxRDtRQUVyRCxNQUFNLFVBQVUsR0FBRztZQUNqQixHQUFHLFlBQVk7WUFDZixNQUFNLEVBQUU7Z0JBQ04sR0FBRyxZQUFZLENBQUMsTUFBTTtnQkFDdEIsR0FBRyxlQUFlO2FBQ25CO1NBQ0YsQ0FBQztRQUVGLElBQUksa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5RUFBeUUsc0JBQXNCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN6SCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtZQUNwRSxhQUFhLEVBQUUsc0JBQXNCLENBQUMsT0FBTztTQUM5QyxDQUFDLENBQUM7UUFFSCwyREFBMkQ7UUFDM0QsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXBELGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQztZQUNqQyxHQUFHLGVBQWU7WUFDbEIsUUFBUSxFQUFFLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ25GLFdBQVcsRUFBRSxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUM1RixDQUFDLENBQUM7UUFFSCxJQUFJLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQ1QsZ0dBQWdHLElBQUksQ0FBQyxTQUFTLENBQzVHLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FDakMsRUFBRSxDQUNKLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVELDREQUE0RDtJQUM1RCwrREFBK0Q7SUFDL0QsaUVBQWlFO0lBQ2pFLGdFQUFnRTtJQUNoRSxvREFBb0Q7SUFDcEQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFZO1FBQ2hDLFlBQVk7UUFFWixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBRXRCLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hCLHFFQUFxRTtZQUNyRSxvREFBb0Q7WUFDcEQsNEJBQTRCO1lBQzVCLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDakIsWUFBWSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFELENBQUM7YUFBTSxDQUFDO1lBQ04sOERBQThEO1lBQzlELDhEQUE4RDtZQUM5RCxxQkFBcUI7WUFDckIsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNsQixZQUFZLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDNUMsQ0FBQztRQUVELElBQUksWUFBWSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsVUFBVTtnQkFDVixpRkFBaUY7Z0JBQ2pGLDJGQUEyRjtnQkFDM0Ysa0RBQWtEO2dCQUNsRCxZQUFZO2dCQUNaLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDbEYsMEJBQTBCO2dCQUMxQixlQUFlLEdBQUcsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUVqRCw2RUFBNkU7Z0JBQzdFLHdEQUF3RDtnQkFFeEQsT0FBTyxlQUFlLENBQUM7WUFDekIsQ0FBQztZQUNELDhGQUE4RjtZQUM5RixZQUFZO1lBRVosT0FBTyxJQUFJLENBQUMsK0JBQStCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCw0REFBNEQ7SUFDNUQsNkRBQTZEO0lBQzdELDREQUE0RDtJQUM1RCw2REFBNkQ7SUFDN0QsMkRBQTJEO0lBQzNELDJDQUEyQztJQUUzQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsWUFBaUI7UUFDMUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hDLGlEQUFpRDtZQUNqRCxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlCLE9BQU8sa0JBQWtCLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FySlUsa0JBQWtCO21HQUFsQixrQkFBa0IseUVDZC9CLHdFQUNBOzs0RkRhYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZUFBZSxjQUdiLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBXQVJOSU5HOiBJdCBpcyBub3QgZXhwZWN0ZWQgdGhhdCB0aGlzIGZpbGUgc2hvdWxkIGJlIG1vZGlmaWVkLiAgSXQgaXMgcGFydCBvZiBpbmZyYXN0cnVjdHVyZSBjb2RlIHRoYXQgd29ya3Mgd2l0aFxuICogUmVkdXggYW5kIGNyZWF0aW9uL3VwZGF0ZSBvZiBSZWR1eCBjb250YWluZXJzIGFuZCBQQ29ubmVjdC4gIE1vZGlmeWluZyB0aGlzIGNvZGUgY291bGQgaGF2ZSB1bmRlc2lyZWFibGUgcmVzdWx0cyBhbmRcbiAqIGlzIHRvdGFsbHkgYXQgeW91ciBvd24gcmlzay5cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcmVmZXJlbmNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZmVyZW5jZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlZmVyZW5jZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFJlZmVyZW5jZUNvbXBvbmVudCB7XG4gIHJlZmVyZW5jZWRDb21wb25lbnQ6IGFueSA9IG51bGw7XG5cbiAgLyogVXNlZCB0byB0b2dnbGUgc29tZSBjbGFzcy13aWRlIGxvZ2dpbmcgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgYkxvZ2dpbmcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBXaXRoIG5ldyBzdGF0aWMgbWV0aG9kIGFwcHJvYWNoLCB0aGlzIHNob3VsZG4ndCBiZSBjYWxsZWQgYW55IG1vcmVcbiAgICB3aW5kb3cuYWxlcnQoYGluIFJlZmVyZW5jZUNvbXBvbmVudCBjb25zdHJ1Y3RvciFgKTtcblxuICAgIGNvbnNvbGUuZXJyb3IoYGluIFJlZmVyZW5jZUNvbXBvbmVudCBjb25zdHJ1Y3RvciFgKTtcbiAgfVxuXG4gIC8vIG9uU3RhdGVDaGFuZ2UgYW5kIHVwZGF0ZVNlbGYgbWV0aG9kcyByZW1vdmVkIGZyb20gb3JpZ2luYWwgaW1wbGVtZW50YXRpb25cbiAgLy8gIHdoZW4gd2UgbW92ZWQgdG8gdGhlIHN0YXRpYyBtZXRob2QgaW1wbGVtZW50YXRpb24uXG5cbiAgLy8gU1RBVElDIG1ldGhvZCB0byBjcmVhdGUgYSBub3JtYWxpemVkIFBDb25uIChhIGZ1bGx5IHJlYWxpemVkIFZpZXcgdGhhdCB0aGUgJ3JlZmVyZW5jZSdcbiAgLy8gIGNvbXBvbmVudCByZWZlcnMgdG8pIGZyb20gdGhlIGdpdmVuIHBDb25uLiBIYXMgdG8gYWRkIGluIHNvbWUgc3R1ZmYgYXMgaW4gdGhlIGNvbnN0cnVjdG9yXG4gIHN0YXRpYyBjcmVhdGVGdWxsUmVmZXJlbmNlZFZpZXdGcm9tUmVmKGluUENvbm46IGFueSkge1xuICAgIC8vIEJBSUwgYW5kIEVSUk9SIGlmIGluUENvbm4gaXMgTk9UIGEgcmVmZXJlbmNlIVxuICAgIGlmIChpblBDb25uLmdldENvbXBvbmVudE5hbWUoKSAhPT0gJ3JlZmVyZW5jZScpIHtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuXG4gICAgICBjb25zb2xlLmVycm9yKGBSZWZlcmVuY2UgY29tcG9uZW50OiBjcmVhdGVGdWxsUmVmZXJlbmNlZFZpZXdGcm9tUmVmIGluUENvbm4gaXMgTk9UIGEgcmVmZXJlbmNlISAke2luUENvbm4uZ2V0Q29tcG9uZW50TmFtZSgpfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHRoZVJlc29sdmVkQ29uZmlnUHJvcHMgPSBpblBDb25uLnJlc29sdmVDb25maWdQcm9wcyhpblBDb25uLmdldENvbmZpZ1Byb3BzKCkpO1xuXG4gICAgY29uc3QgcmVmZXJlbmNlQ29uZmlnID0geyAuLi5pblBDb25uLmdldENvbXBvbmVudENvbmZpZygpIH0gfHwge307XG5cbiAgICAvLyBTaW5jZSBTREstQSBpbXBsZW1lbnRzIFJlZmVyZW5jZSBhcyBzdGF0aWMgbWV0aG9kcyBhbmQgd2UgZG9uJ3QgcmVseSBvblxuICAgIC8vICB0aGUgUmVmZXJlbmNlIGNvbXBvbmVudCdzIGhhbmRsaW5nIG9mIHRoZSB2aXNpYmlsaXR5IHByb3AsIHdlIGxlYXZlIGl0IGluXG4gICAgLy8gIChhbmQgYWxzbyBsZWF2aW5nIHRoZSBvdGhlcnMgaW4gZm9yIG5vdykgc28gdGhlIHJlZmVyZW5jZWQgVmlldyBjYW4gYWN0IG9uXG4gICAgLy8gIHRoZSB2aXNpYmlsaXR5IHByb3AuIChUaGUgZm9sbG93aW5nIDMgbGluZXMgd2VyZSBjYXJyaWVkIG92ZXIgZnJvbSBSZWFjdCBTREspXG4gICAgZGVsZXRlIHJlZmVyZW5jZUNvbmZpZz8ubmFtZTtcbiAgICAvLyBkZWxldGUgcmVmZXJlbmNlQ29uZmlnPy50eXBlO1xuICAgIC8vIGRlbGV0ZSByZWZlcmVuY2VDb25maWc/LnZpc2liaWxpdHk7XG5cbiAgICBjb25zdCB2aWV3TWV0YWRhdGEgPSBpblBDb25uLmdldFJlZmVyZW5jZWRWaWV3KCk7XG5cbiAgICBpZiAoIXZpZXdNZXRhZGF0YSkge1xuICAgICAgY29uc29sZS5sb2coJ1ZpZXcgbm90IGZvdW5kICcsIGluUENvbm4uZ2V0Q29tcG9uZW50Q29uZmlnKCkpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gSWYgd2UgZ2V0IGhlcmUsIHdlIGhhdmUgbWV0YWRhdGEgZm9yIGEgVmlldyBjb21wb25lbnQuLi5cbiAgICAvLyBjb25zdCByZWZlcmVuY2VkQ29tcG9uZW50TmFtZSA9IHZpZXdNZXRhZGF0YS50eXBlO1xuXG4gICAgY29uc3Qgdmlld09iamVjdCA9IHtcbiAgICAgIC4uLnZpZXdNZXRhZGF0YSxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICAuLi52aWV3TWV0YWRhdGEuY29uZmlnLFxuICAgICAgICAuLi5yZWZlcmVuY2VDb25maWdcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKFJlZmVyZW5jZUNvbXBvbmVudC5iTG9nZ2luZykge1xuICAgICAgY29uc29sZS5sb2coYFJlZmVyZW5jZTogYWJvdXQgdG8gY2FsbCBjcmVhdGVDb21wb25lbnQgd2l0aCBwYWdlUmVmZXJlbmNlOiBjb250ZXh0OiAke3RoZVJlc29sdmVkQ29uZmlnUHJvcHMuY29udGV4dH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCB2aWV3Q29tcG9uZW50ID0gaW5QQ29ubi5jcmVhdGVDb21wb25lbnQodmlld09iamVjdCwgbnVsbCwgbnVsbCwge1xuICAgICAgcGFnZVJlZmVyZW5jZTogdGhlUmVzb2x2ZWRDb25maWdQcm9wcy5jb250ZXh0XG4gICAgfSk7XG5cbiAgICAvLyB1cGRhdGluZyB0aGUgcmVmZXJlbmNlZENvbXBvbmVudCBzaG91bGQgdHJpZ2dlciBhIHJlbmRlclxuICAgIGNvbnN0IG5ld0NvbXBQQ29ubmVjdCA9IHZpZXdDb21wb25lbnQuZ2V0UENvbm5lY3QoKTtcblxuICAgIG5ld0NvbXBQQ29ubmVjdC5zZXRJbmhlcml0ZWRDb25maWcoe1xuICAgICAgLi4ucmVmZXJlbmNlQ29uZmlnLFxuICAgICAgcmVhZE9ubHk6IHRoZVJlc29sdmVkQ29uZmlnUHJvcHMucmVhZE9ubHkgPyB0aGVSZXNvbHZlZENvbmZpZ1Byb3BzLnJlYWRPbmx5IDogZmFsc2UsXG4gICAgICBkaXNwbGF5TW9kZTogdGhlUmVzb2x2ZWRDb25maWdQcm9wcy5kaXNwbGF5TW9kZSA/IHRoZVJlc29sdmVkQ29uZmlnUHJvcHMuZGlzcGxheU1vZGUgOiBudWxsXG4gICAgfSk7XG5cbiAgICBpZiAoUmVmZXJlbmNlQ29tcG9uZW50LmJMb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYEFuZ3VsYXIgUmVmZXJlbmNlIGNvbXBvbmVudDogY3JlYXRlRnVsbFJlZmVyZW5jZWRWaWV3RnJvbVJlZiAtPiBuZXdDb21wUENvbm5lY3QgY29uZmlnUHJvcHM6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgbmV3Q29tcFBDb25uZWN0LmdldENvbmZpZ1Byb3BzKClcbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXdDb21wUENvbm5lY3Q7XG4gIH1cblxuICAvLyBTVEFUSUMgbWV0aG9kIHRoYXQgb3RoZXIgY29tcG9uZW50cyBjYW4gY2FsbCB0byBub3JtYWxpemVcbiAgLy8gIGEgcENvbm4gb2JqZWN0IHRoYXQgbWlnaHQgYmUgYSAncmVmZXJlbmNlJy4gSWYgdGhlIGluY29taW5nXG4gIC8vICBwQ29ubiBpcyBhIHJlZmVyZW5jZSwgcmV0dXJuIGl0cyBkZXJlZmVyZW5jZWQgVmlldyBQQ29ubmVjdCdzXG4gIC8vICBnZXRQQ29ubmVjdC4gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHBhc3NlZCBpbiBwQ29ubiB1bmNoYW5nZWRcbiAgLy8gIGluUENvbm4gPSBhIFBDb25uIG9iamVjdCAoZXg6IHsgZ2V0UENvbm5lY3QoKX0gKVxuICBzdGF0aWMgbm9ybWFsaXplUENvbm4oaW5QQ29ubjogYW55KSB7XG4gICAgLy8gZGVidWdnZXI7XG5cbiAgICBsZXQgcmV0dXJuT2JqID0gZmFsc2U7XG4gICAgbGV0IHRoZVBDb25uVHlwZSA9ICcnO1xuXG4gICAgaWYgKGluUENvbm4uZ2V0UENvbm5lY3QpIHtcbiAgICAgIC8vIGluUENvbm4gaXMgYW4gb2JqZWN0IChleDogeyBnZXRQQ29ubmVjdCgpfSApLCBzbyB3ZSB3YW50IHRvIHJldHVyblxuICAgICAgLy8gIGFueSByZWZlcmVuY2VkIHZpZXcgYXMgdGhlIG9iamVjdCBjb250YWluaW5nIHRoZVxuICAgICAgLy8gIHRoZSBnZXRQQ29ubmVjdCBmdW5jdGlvblxuICAgICAgcmV0dXJuT2JqID0gdHJ1ZTtcbiAgICAgIHRoZVBDb25uVHlwZSA9IGluUENvbm4uZ2V0UENvbm5lY3QoKS5nZXRDb21wb25lbnROYW1lKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGluUENvbm4gaXMgYW4gb2JqZWN0IHdpdGggdGhlIFBDb25uZWN0IGZ1bmN0aW9uLCBzbyB3ZSB3YW50XG4gICAgICAvLyAgdG8gcmV0dXJuIGFueSByZWZlcmVuY2VkIHZpZXcgYXMgdGhlIG9iamVjdCBjb250YWluaW5nIHRoZVxuICAgICAgLy8gIHRoZSBjMTFuIGZ1bmN0aW9uXG4gICAgICByZXR1cm5PYmogPSBmYWxzZTtcbiAgICAgIHRoZVBDb25uVHlwZSA9IGluUENvbm4uZ2V0Q29tcG9uZW50TmFtZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGVQQ29ublR5cGUgPT09ICdyZWZlcmVuY2UnKSB7XG4gICAgICBpZiAocmV0dXJuT2JqKSB7XG4gICAgICAgIC8vICBXQVMuLi5cbiAgICAgICAgLy8gY29uc3QgdGhlUmVmVmlld1BDb25uID0gaW5QQ29ubi5nZXRQQ29ubmVjdCgpLmdldFJlZmVyZW5jZWRWaWV3UENvbm5lY3QodHJ1ZSk7XG4gICAgICAgIC8vIE5vdzogQUxXQVlTIGNhbGxpbmcgY3JlYXRlRnVsbFJlZmVyZW5jZWRWaWV3RnJvbVJlZiB0byBoYXZlIG9wdGlvbnMsIFBhZ2VSZWZlcmVuY2UsIGV0Yy5cbiAgICAgICAgLy8gIHNldCBjb3JyZWN0bHkgaW4gdGhlIEMxMW5FbnYgKFBDb25uZWN0KSBvYmplY3RcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgIGxldCB0aGVSZWZWaWV3UENvbm4gPSB0aGlzLmNyZWF0ZUZ1bGxSZWZlcmVuY2VkVmlld0Zyb21SZWYoaW5QQ29ubi5nZXRQQ29ubmVjdCgpKTtcbiAgICAgICAgLy8gbm93IHJldHVybiBpdHMgUENvbm5lY3RcbiAgICAgICAgdGhlUmVmVmlld1BDb25uID0gdGhlUmVmVmlld1BDb25uLmdldENvbXBvbmVudCgpO1xuXG4gICAgICAgIC8vIGNvbnN0IHRoZUZ1bGxSZWZlcmVuY2UgPSB0aGVSZWZWaWV3UENvbm4uZ2V0UENvbm5lY3QoKS5nZXRGdWxsUmVmZXJlbmNlKCk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGB0aGVGdWxsUmVmZXJlbmNlOiAke3RoZUZ1bGxSZWZlcmVuY2V9YCk7XG5cbiAgICAgICAgcmV0dXJuIHRoZVJlZlZpZXdQQ29ubjtcbiAgICAgIH1cbiAgICAgIC8vIGNvbnNvbGUubG9nKGBjcmVhdGVkIHRoZUZ1bGxSZWZWaWV3IGZ1bGwgcmVmZXJlbmNlOiAke3RoZUZ1bGxSZWZWaWV3LmdldEZ1bGxSZWZlcmVuY2UoKX1gKTtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuXG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVGdWxsUmVmZXJlbmNlZFZpZXdGcm9tUmVmKGluUENvbm4pO1xuICAgIH1cbiAgICByZXR1cm4gaW5QQ29ubjtcbiAgfVxuXG4gIC8vIFNUQVRJQyBtZXRob2QgdGhhdCBvdGhlciBjb21wb25lbnRzIGNhbiBjYWxsIHRvIG5vcm1hbGl6ZVxuICAvLyAgYW4gYXJyYXkgb2YgcENvbm4gb2JqZWN0cyB3aGVyZSBhbnkgb2YgdGhlIGNoaWxkcmVuIG1pZ2h0XG4gIC8vICBiZSBhICdyZWZlcmVuY2UnLiBUaGUgYXJyYXkgcmV0dXJucyBhbiBhcnJheSBvZiBjaGlsZHJlblxuICAvLyAgd2hlcmUgYW55ICdyZWZlcmVuY2UnIGlzIHJlcGxhY2VkIHdpdGggaXRzIFJlZmVyZW5jZWRWaWV3XG4gIC8vICBpblBDb25uQXJyYXkgaXMgYW4gYXJyYXkgb2YgUENvbm4gb2JqZWN0cyBvciBmdW5jdGlvbnMuXG4gIC8vICAgIEl0cyB2YWx1ZSBpcyBwYXNzZWQgdG8gbm9ybWFsaXplUENvbm5cblxuICBzdGF0aWMgbm9ybWFsaXplUENvbm5BcnJheShpblBDb25uQXJyYXk6IGFueSkge1xuICAgIGlmICghKGluUENvbm5BcnJheT8ubGVuZ3RoID4gMCkpIHtcbiAgICAgIC8vIG51bGwgb3IgZW1wdHkgYXJyYXksIHJldHVybiB3aGF0IHdhcyBwYXNzZWQgaW5cbiAgICAgIHJldHVybiBpblBDb25uQXJyYXk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluUENvbm5BcnJheS5tYXAoY2hpbGQgPT4ge1xuICAgICAgcmV0dXJuIFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubihjaGlsZCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjwhLS0gUmVmZXJlbmNlIGNvbXBvbmVudCBpcyBhbGwgc3RhdGljIG1ldGhvZHMgc28gLmh0bWwgbm90IHVzZWQgLS0+XG4iXX0=
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFDOzs7O0dBSUc7QUFRSCxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLDRDQUE0QzthQUM3QixhQUFRLEdBQUcsS0FBSyxBQUFSLENBQVM7SUFFaEM7UUFMQSx3QkFBbUIsR0FBUSxJQUFJLENBQUM7UUFNOUIscUVBQXFFO1FBQ3JFLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUVuRCxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELDRFQUE0RTtJQUM1RSxzREFBc0Q7SUFFdEQseUZBQXlGO0lBQ3pGLDZGQUE2RjtJQUM3RixNQUFNLENBQUMsK0JBQStCLENBQUMsT0FBWTtRQUNqRCxnREFBZ0Q7UUFDaEQsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUMvQyxPQUFPLENBQUMsS0FBSyxDQUFDLG9GQUFvRixPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEksQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUVsRSww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RSxDQUFDO1lBQ2pDLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsVUFBVTtnQkFDVixpRkFBaUY7Z0JBQ2pGLDJGQUEyRjtnQkFDM0Ysa0RBQWtEO2dCQUNsRCxZQUFZO2dCQUNaLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDbEYsMEJBQTBCO2dCQUMxQixlQUFlLEdBQUcsZUFBZSxFQUFFLFlBQVksRUFBRSxDQUFDO2dCQUVsRCw2RUFBNkU7Z0JBQzdFLHdEQUF3RDtnQkFFeEQsT0FBTyxlQUFlLENBQUM7WUFDekIsQ0FBQztZQUNELDhGQUE4RjtZQUM5RixZQUFZO1lBRVosT0FBTyxJQUFJLENBQUMsK0JBQStCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCw0REFBNEQ7SUFDNUQsNkRBQTZEO0lBQzdELDREQUE0RDtJQUM1RCw2REFBNkQ7SUFDN0QsMkRBQTJEO0lBQzNELDJDQUEyQztJQUUzQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsWUFBaUI7UUFDMUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hDLGlEQUFpRDtZQUNqRCxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlCLE9BQU8sa0JBQWtCLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F4SlUsa0JBQWtCO21HQUFsQixrQkFBa0IseUVDZC9CLHdFQUNBOzs0RkRhYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZUFBZSxjQUdiLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBXQVJOSU5HOiBJdCBpcyBub3QgZXhwZWN0ZWQgdGhhdCB0aGlzIGZpbGUgc2hvdWxkIGJlIG1vZGlmaWVkLiAgSXQgaXMgcGFydCBvZiBpbmZyYXN0cnVjdHVyZSBjb2RlIHRoYXQgd29ya3Mgd2l0aFxuICogUmVkdXggYW5kIGNyZWF0aW9uL3VwZGF0ZSBvZiBSZWR1eCBjb250YWluZXJzIGFuZCBQQ29ubmVjdC4gIE1vZGlmeWluZyB0aGlzIGNvZGUgY291bGQgaGF2ZSB1bmRlc2lyZWFibGUgcmVzdWx0cyBhbmRcbiAqIGlzIHRvdGFsbHkgYXQgeW91ciBvd24gcmlzay5cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcmVmZXJlbmNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZmVyZW5jZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlZmVyZW5jZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFJlZmVyZW5jZUNvbXBvbmVudCB7XG4gIHJlZmVyZW5jZWRDb21wb25lbnQ6IGFueSA9IG51bGw7XG5cbiAgLyogVXNlZCB0byB0b2dnbGUgc29tZSBjbGFzcy13aWRlIGxvZ2dpbmcgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgYkxvZ2dpbmcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBXaXRoIG5ldyBzdGF0aWMgbWV0aG9kIGFwcHJvYWNoLCB0aGlzIHNob3VsZG4ndCBiZSBjYWxsZWQgYW55IG1vcmVcbiAgICB3aW5kb3cuYWxlcnQoYGluIFJlZmVyZW5jZUNvbXBvbmVudCBjb25zdHJ1Y3RvciFgKTtcblxuICAgIGNvbnNvbGUuZXJyb3IoYGluIFJlZmVyZW5jZUNvbXBvbmVudCBjb25zdHJ1Y3RvciFgKTtcbiAgfVxuXG4gIC8vIG9uU3RhdGVDaGFuZ2UgYW5kIHVwZGF0ZVNlbGYgbWV0aG9kcyByZW1vdmVkIGZyb20gb3JpZ2luYWwgaW1wbGVtZW50YXRpb25cbiAgLy8gIHdoZW4gd2UgbW92ZWQgdG8gdGhlIHN0YXRpYyBtZXRob2QgaW1wbGVtZW50YXRpb24uXG5cbiAgLy8gU1RBVElDIG1ldGhvZCB0byBjcmVhdGUgYSBub3JtYWxpemVkIFBDb25uIChhIGZ1bGx5IHJlYWxpemVkIFZpZXcgdGhhdCB0aGUgJ3JlZmVyZW5jZSdcbiAgLy8gIGNvbXBvbmVudCByZWZlcnMgdG8pIGZyb20gdGhlIGdpdmVuIHBDb25uLiBIYXMgdG8gYWRkIGluIHNvbWUgc3R1ZmYgYXMgaW4gdGhlIGNvbnN0cnVjdG9yXG4gIHN0YXRpYyBjcmVhdGVGdWxsUmVmZXJlbmNlZFZpZXdGcm9tUmVmKGluUENvbm46IGFueSkge1xuICAgIC8vIEJBSUwgYW5kIEVSUk9SIGlmIGluUENvbm4gaXMgTk9UIGEgcmVmZXJlbmNlIVxuICAgIGlmIChpblBDb25uLmdldENvbXBvbmVudE5hbWUoKSAhPT0gJ3JlZmVyZW5jZScpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFJlZmVyZW5jZSBjb21wb25lbnQ6IGNyZWF0ZUZ1bGxSZWZlcmVuY2VkVmlld0Zyb21SZWYgaW5QQ29ubiBpcyBOT1QgYSByZWZlcmVuY2UhICR7aW5QQ29ubi5nZXRDb21wb25lbnROYW1lKCl9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVmZXJlbmNlQ29uZmlnID0geyAuLi5pblBDb25uLmdldENvbXBvbmVudENvbmZpZygpIH0gfHwge307XG5cbiAgICAvLyBTaW5jZSBTREstQSBpbXBsZW1lbnRzIFJlZmVyZW5jZSBhcyBzdGF0aWMgbWV0aG9kcyBhbmQgd2UgZG9uJ3QgcmVseSBvblxuICAgIC8vICB0aGUgUmVmZXJlbmNlIGNvbXBvbmVudCdzIGhhbmRsaW5nIG9mIHRoZSB2aXNpYmlsaXR5IHByb3AsIHdlIGxlYXZlIGl0IGluXG4gICAgLy8gIChhbmQgYWxzbyBsZWF2aW5nIHRoZSBvdGhlcnMgaW4gZm9yIG5vdykgc28gdGhlIHJlZmVyZW5jZWQgVmlldyBjYW4gYWN0IG9uXG4gICAgLy8gIHRoZSB2aXNpYmlsaXR5IHByb3AuIChUaGUgZm9sbG93aW5nIDMgbGluZXMgd2VyZSBjYXJyaWVkIG92ZXIgZnJvbSBSZWFjdCBTREspXG4gICAgZGVsZXRlIHJlZmVyZW5jZUNvbmZpZz8ubmFtZTtcbiAgICBkZWxldGUgcmVmZXJlbmNlQ29uZmlnPy50eXBlO1xuICAgIGRlbGV0ZSByZWZlcmVuY2VDb25maWc/LnZpc2liaWxpdHk7XG5cbiAgICBjb25zdCB2aWV3TWV0YWRhdGEgPSBpblBDb25uLmdldFJlZmVyZW5jZWRWaWV3KCk7XG5cbiAgICBpZiAoIXZpZXdNZXRhZGF0YSkge1xuICAgICAgY29uc29sZS5sb2coJ1ZpZXcgbm90IGZvdW5kICcsIGluUENvbm4uZ2V0Q29tcG9uZW50Q29uZmlnKCkpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gSWYgd2UgZ2V0IGhlcmUsIHdlIGhhdmUgbWV0YWRhdGEgZm9yIGEgVmlldyBjb21wb25lbnQuLi5cbiAgICAvLyBjb25zdCByZWZlcmVuY2VkQ29tcG9uZW50TmFtZSA9IHZpZXdNZXRhZGF0YS50eXBlO1xuXG4gICAgY29uc3Qgdmlld09iamVjdCA9IHtcbiAgICAgIC4uLnZpZXdNZXRhZGF0YSxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICAuLi52aWV3TWV0YWRhdGEuY29uZmlnLFxuICAgICAgICAuLi5yZWZlcmVuY2VDb25maWdcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgdGhlUmVzb2x2ZWRDb25maWdQcm9wcyA9IGluUENvbm4ucmVzb2x2ZUNvbmZpZ1Byb3BzKGluUENvbm4uZ2V0Q29uZmlnUHJvcHMoKSk7XG4gICAgY29uc3QgeyB2aXNpYmlsaXR5ID0gdHJ1ZSwgY29udGV4dCwgcmVhZE9ubHkgPSBmYWxzZSwgZGlzcGxheU1vZGUgPSAnJyB9ID0gdGhlUmVzb2x2ZWRDb25maWdQcm9wcztcblxuICAgIGlmIChSZWZlcmVuY2VDb21wb25lbnQuYkxvZ2dpbmcpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBSZWZlcmVuY2U6IGFib3V0IHRvIGNhbGwgY3JlYXRlQ29tcG9uZW50IHdpdGggcGFnZVJlZmVyZW5jZTogY29udGV4dDogJHtpblBDb25uLmdldENvbnRleHROYW1lKCl9YCk7XG4gICAgfVxuXG4gICAgY29uc3Qgdmlld0NvbXBvbmVudCA9IGluUENvbm4uY3JlYXRlQ29tcG9uZW50KHZpZXdPYmplY3QsIG51bGwsIG51bGwsIHtcbiAgICAgIHBhZ2VSZWZlcmVuY2U6IGNvbnRleHQgJiYgY29udGV4dC5zdGFydHNXaXRoKCdAQ0xBU1MnKSA/ICcnIDogY29udGV4dFxuICAgIH0pO1xuXG4gICAgLy8gdXBkYXRpbmcgdGhlIHJlZmVyZW5jZWRDb21wb25lbnQgc2hvdWxkIHRyaWdnZXIgYSByZW5kZXJcbiAgICBjb25zdCBuZXdDb21wUENvbm5lY3QgPSB2aWV3Q29tcG9uZW50LmdldFBDb25uZWN0KCk7XG5cbiAgICBuZXdDb21wUENvbm5lY3Quc2V0SW5oZXJpdGVkQ29uZmlnKHtcbiAgICAgIC4uLnJlZmVyZW5jZUNvbmZpZyxcbiAgICAgIHJlYWRPbmx5LFxuICAgICAgZGlzcGxheU1vZGVcbiAgICB9KTtcblxuICAgIGlmIChSZWZlcmVuY2VDb21wb25lbnQuYkxvZ2dpbmcpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgQW5ndWxhciBSZWZlcmVuY2UgY29tcG9uZW50OiBjcmVhdGVGdWxsUmVmZXJlbmNlZFZpZXdGcm9tUmVmIC0+IG5ld0NvbXBQQ29ubmVjdCBjb25maWdQcm9wczogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICBuZXdDb21wUENvbm5lY3QuZ2V0Q29uZmlnUHJvcHMoKVxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHZpc2liaWxpdHkgIT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gbmV3Q29tcFBDb25uZWN0O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gU1RBVElDIG1ldGhvZCB0aGF0IG90aGVyIGNvbXBvbmVudHMgY2FuIGNhbGwgdG8gbm9ybWFsaXplXG4gIC8vICBhIHBDb25uIG9iamVjdCB0aGF0IG1pZ2h0IGJlIGEgJ3JlZmVyZW5jZScuIElmIHRoZSBpbmNvbWluZ1xuICAvLyAgcENvbm4gaXMgYSByZWZlcmVuY2UsIHJldHVybiBpdHMgZGVyZWZlcmVuY2VkIFZpZXcgUENvbm5lY3Qnc1xuICAvLyAgZ2V0UENvbm5lY3QuIE90aGVyd2lzZSwgcmV0dXJuIHRoZSBwYXNzZWQgaW4gcENvbm4gdW5jaGFuZ2VkXG4gIC8vICBpblBDb25uID0gYSBQQ29ubiBvYmplY3QgKGV4OiB7IGdldFBDb25uZWN0KCl9IClcbiAgc3RhdGljIG5vcm1hbGl6ZVBDb25uKGluUENvbm46IGFueSkge1xuICAgIC8vIGRlYnVnZ2VyO1xuXG4gICAgbGV0IHJldHVybk9iaiA9IGZhbHNlO1xuICAgIGxldCB0aGVQQ29ublR5cGUgPSAnJztcblxuICAgIGlmIChpblBDb25uLmdldFBDb25uZWN0KSB7XG4gICAgICAvLyBpblBDb25uIGlzIGFuIG9iamVjdCAoZXg6IHsgZ2V0UENvbm5lY3QoKX0gKSwgc28gd2Ugd2FudCB0byByZXR1cm5cbiAgICAgIC8vICBhbnkgcmVmZXJlbmNlZCB2aWV3IGFzIHRoZSBvYmplY3QgY29udGFpbmluZyB0aGVcbiAgICAgIC8vICB0aGUgZ2V0UENvbm5lY3QgZnVuY3Rpb25cbiAgICAgIHJldHVybk9iaiA9IHRydWU7XG4gICAgICB0aGVQQ29ublR5cGUgPSBpblBDb25uLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpblBDb25uIGlzIGFuIG9iamVjdCB3aXRoIHRoZSBQQ29ubmVjdCBmdW5jdGlvbiwgc28gd2Ugd2FudFxuICAgICAgLy8gIHRvIHJldHVybiBhbnkgcmVmZXJlbmNlZCB2aWV3IGFzIHRoZSBvYmplY3QgY29udGFpbmluZyB0aGVcbiAgICAgIC8vICB0aGUgYzExbiBmdW5jdGlvblxuICAgICAgcmV0dXJuT2JqID0gZmFsc2U7XG4gICAgICB0aGVQQ29ublR5cGUgPSBpblBDb25uLmdldENvbXBvbmVudE5hbWUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhlUENvbm5UeXBlID09PSAncmVmZXJlbmNlJykge1xuICAgICAgaWYgKHJldHVybk9iaikge1xuICAgICAgICAvLyAgV0FTLi4uXG4gICAgICAgIC8vIGNvbnN0IHRoZVJlZlZpZXdQQ29ubiA9IGluUENvbm4uZ2V0UENvbm5lY3QoKS5nZXRSZWZlcmVuY2VkVmlld1BDb25uZWN0KHRydWUpO1xuICAgICAgICAvLyBOb3c6IEFMV0FZUyBjYWxsaW5nIGNyZWF0ZUZ1bGxSZWZlcmVuY2VkVmlld0Zyb21SZWYgdG8gaGF2ZSBvcHRpb25zLCBQYWdlUmVmZXJlbmNlLCBldGMuXG4gICAgICAgIC8vICBzZXQgY29ycmVjdGx5IGluIHRoZSBDMTFuRW52IChQQ29ubmVjdCkgb2JqZWN0XG4gICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICBsZXQgdGhlUmVmVmlld1BDb25uID0gdGhpcy5jcmVhdGVGdWxsUmVmZXJlbmNlZFZpZXdGcm9tUmVmKGluUENvbm4uZ2V0UENvbm5lY3QoKSk7XG4gICAgICAgIC8vIG5vdyByZXR1cm4gaXRzIFBDb25uZWN0XG4gICAgICAgIHRoZVJlZlZpZXdQQ29ubiA9IHRoZVJlZlZpZXdQQ29ubj8uZ2V0Q29tcG9uZW50KCk7XG5cbiAgICAgICAgLy8gY29uc3QgdGhlRnVsbFJlZmVyZW5jZSA9IHRoZVJlZlZpZXdQQ29ubi5nZXRQQ29ubmVjdCgpLmdldEZ1bGxSZWZlcmVuY2UoKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coYHRoZUZ1bGxSZWZlcmVuY2U6ICR7dGhlRnVsbFJlZmVyZW5jZX1gKTtcblxuICAgICAgICByZXR1cm4gdGhlUmVmVmlld1BDb25uO1xuICAgICAgfVxuICAgICAgLy8gY29uc29sZS5sb2coYGNyZWF0ZWQgdGhlRnVsbFJlZlZpZXcgZnVsbCByZWZlcmVuY2U6ICR7dGhlRnVsbFJlZlZpZXcuZ2V0RnVsbFJlZmVyZW5jZSgpfWApO1xuICAgICAgLy8gZGVidWdnZXI7XG5cbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUZ1bGxSZWZlcmVuY2VkVmlld0Zyb21SZWYoaW5QQ29ubik7XG4gICAgfVxuICAgIHJldHVybiBpblBDb25uO1xuICB9XG5cbiAgLy8gU1RBVElDIG1ldGhvZCB0aGF0IG90aGVyIGNvbXBvbmVudHMgY2FuIGNhbGwgdG8gbm9ybWFsaXplXG4gIC8vICBhbiBhcnJheSBvZiBwQ29ubiBvYmplY3RzIHdoZXJlIGFueSBvZiB0aGUgY2hpbGRyZW4gbWlnaHRcbiAgLy8gIGJlIGEgJ3JlZmVyZW5jZScuIFRoZSBhcnJheSByZXR1cm5zIGFuIGFycmF5IG9mIGNoaWxkcmVuXG4gIC8vICB3aGVyZSBhbnkgJ3JlZmVyZW5jZScgaXMgcmVwbGFjZWQgd2l0aCBpdHMgUmVmZXJlbmNlZFZpZXdcbiAgLy8gIGluUENvbm5BcnJheSBpcyBhbiBhcnJheSBvZiBQQ29ubiBvYmplY3RzIG9yIGZ1bmN0aW9ucy5cbiAgLy8gICAgSXRzIHZhbHVlIGlzIHBhc3NlZCB0byBub3JtYWxpemVQQ29ublxuXG4gIHN0YXRpYyBub3JtYWxpemVQQ29ubkFycmF5KGluUENvbm5BcnJheTogYW55KSB7XG4gICAgaWYgKCEoaW5QQ29ubkFycmF5Py5sZW5ndGggPiAwKSkge1xuICAgICAgLy8gbnVsbCBvciBlbXB0eSBhcnJheSwgcmV0dXJuIHdoYXQgd2FzIHBhc3NlZCBpblxuICAgICAgcmV0dXJuIGluUENvbm5BcnJheTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5QQ29ubkFycmF5Lm1hcChjaGlsZCA9PiB7XG4gICAgICByZXR1cm4gUmVmZXJlbmNlQ29tcG9uZW50Lm5vcm1hbGl6ZVBDb25uKGNoaWxkKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPCEtLSBSZWZlcmVuY2UgY29tcG9uZW50IGlzIGFsbCBzdGF0aWMgbWV0aG9kcyBzbyAuaHRtbCBub3QgdXNlZCAtLT5cbiJdfQ==
@@ -88,16 +88,6 @@ export class RootContainerComponent {
88
88
  this.updateSelf();
89
89
  }
90
90
  }
91
- modalVisibleChanged(isVisible) {
92
- if (this.displayOnlyFA$) {
93
- if (isVisible) {
94
- this.bShowRoot$ = false;
95
- }
96
- else {
97
- this.bShowRoot$ = true;
98
- }
99
- }
100
- }
101
91
  updateSelf() {
102
92
  // need to call this.getCurrentCompleteProps (not this.thePConn.getConfigProps)
103
93
  // to get full set of props that affect this component in Redux
@@ -206,7 +196,7 @@ export class RootContainerComponent {
206
196
  }
207
197
  }
208
198
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: RootContainerComponent, deps: [{ token: i1.AngularPConnectService }, { token: i2.ProgressSpinnerService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
209
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: RootContainerComponent, isStandalone: true, selector: "app-root-container", inputs: { pConn$: "pConn$", displayOnlyFA$: "displayOnlyFA$", isMashup$: "isMashup$" }, ngImport: i0, template: "<div class=\"progress-box\" *ngIf=\"bIsProgress$\">\n <mat-spinner class=\"progress-spinner\"></mat-spinner>\n</div>\n\n<div *ngIf=\"bShowRoot$\">\n <div [ngSwitch]=\"componentName$\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$, displayOnlyFA$ }\"></component-mapper>\n <!-- <app-reference *ngSwitchCase=\"'reference'\" [pConn$]=\"pConn$\" [displayOnlyFA$]=\"displayOnlyFA$\"></app-reference> -->\n <component-mapper\n *ngSwitchCase=\"'ViewContainer'\"\n name=\"ViewContainer\"\n [props]=\"{ pConn$: displayOnlyFA$ ? viewContainerPConn$ : pConn$, displayOnlyFA$ }\"\n ></component-mapper>\n <app-hybrid-view-container *ngSwitchCase=\"'HybridViewContainer'\" [pConn$]=\"pConn$\" [displayOnlyFA$]=\"displayOnlyFA$\"></app-hybrid-view-container>\n <app-modal-view-container\n *ngSwitchCase=\"'ModalViewContainer'\"\n [pConn$]=\"pConn$\"\n [displayOnlyFA$]=\"displayOnlyFA$\"\n (modalVisibleChange)=\"modalVisibleChanged($event)\"\n ></app-modal-view-container>\n <div *ngSwitchCase=\"''\"></div>\n <div *ngSwitchDefault>{{ localizedVal('RootContainer Missing: ' + componentName$, localeCategory) }}.</div>\n </div>\n</div>\n\n<div *ngIf=\"pvConn$ != null\">\n <app-preview-view-container [pConn$]=\"pvConn$\"></app-preview-view-container>\n</div>\n\n<div *ngIf=\"mConn$ != null\">\n <app-modal-view-container\n [pConn$]=\"mConn$\"\n [displayOnlyFA$]=\"displayOnlyFA$\"\n (modalVisibleChange)=\"modalVisibleChanged($event)\"\n ></app-modal-view-container>\n</div>\n", styles: [".progress-box{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;background-color:var(--app-background-color);position:fixed;z-index:99999;top:0rem;left:0rem;opacity:.5}.progress-spinner{text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgSwitch), selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgSwitchCase), selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgSwitchDefault), selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: i0.forwardRef(() => MatProgressSpinnerModule) }, { kind: "component", type: i0.forwardRef(() => i4.MatProgressSpinner), selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i0.forwardRef(() => HybridViewContainerComponent), selector: "app-hybrid-view-container", inputs: ["pConn$", "formGroup$", "displayOnlyFA$"] }, { kind: "component", type: i0.forwardRef(() => ModalViewContainerComponent), selector: "app-modal-view-container", inputs: ["pConn$", "displayOnlyFA$"], outputs: ["modalVisibleChange"] }, { kind: "component", type: i0.forwardRef(() => PreviewViewContainerComponent), selector: "app-preview-view-container", inputs: ["pConn$"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
199
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: RootContainerComponent, isStandalone: true, selector: "app-root-container", inputs: { pConn$: "pConn$", displayOnlyFA$: "displayOnlyFA$", isMashup$: "isMashup$" }, ngImport: i0, template: "<div class=\"progress-box\" *ngIf=\"bIsProgress$\">\n <mat-spinner class=\"progress-spinner\"></mat-spinner>\n</div>\n\n<div *ngIf=\"bShowRoot$\">\n <div [ngSwitch]=\"componentName$\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$, displayOnlyFA$ }\"></component-mapper>\n <component-mapper\n *ngSwitchCase=\"'ViewContainer'\"\n name=\"ViewContainer\"\n [props]=\"{ pConn$: viewContainerPConn$, displayOnlyFA$ }\"\n ></component-mapper>\n <div *ngSwitchDefault>{{ localizedVal('RootContainer Missing: ' + componentName$, localeCategory) }}.</div>\n </div>\n</div>\n\n<div *ngIf=\"pvConn$ != null\">\n <app-preview-view-container [pConn$]=\"pvConn$\"></app-preview-view-container>\n</div>\n\n<div *ngIf=\"mConn$ != null\">\n <app-modal-view-container [pConn$]=\"mConn$\"></app-modal-view-container>\n</div>\n", styles: [".progress-box{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;background-color:var(--app-background-color);position:fixed;z-index:99999;top:0rem;left:0rem;opacity:.5}.progress-spinner{text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgSwitch), selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgSwitchCase), selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgSwitchDefault), selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: i0.forwardRef(() => MatProgressSpinnerModule) }, { kind: "component", type: i0.forwardRef(() => i4.MatProgressSpinner), selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i0.forwardRef(() => ModalViewContainerComponent), selector: "app-modal-view-container", inputs: ["pConn$"], outputs: ["modalVisibleChange"] }, { kind: "component", type: i0.forwardRef(() => PreviewViewContainerComponent), selector: "app-preview-view-container", inputs: ["pConn$"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
210
200
  }
211
201
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: RootContainerComponent, decorators: [{
212
202
  type: Component,
@@ -217,7 +207,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
217
207
  ModalViewContainerComponent,
218
208
  PreviewViewContainerComponent,
219
209
  forwardRef(() => ComponentMapperComponent)
220
- ], template: "<div class=\"progress-box\" *ngIf=\"bIsProgress$\">\n <mat-spinner class=\"progress-spinner\"></mat-spinner>\n</div>\n\n<div *ngIf=\"bShowRoot$\">\n <div [ngSwitch]=\"componentName$\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$, displayOnlyFA$ }\"></component-mapper>\n <!-- <app-reference *ngSwitchCase=\"'reference'\" [pConn$]=\"pConn$\" [displayOnlyFA$]=\"displayOnlyFA$\"></app-reference> -->\n <component-mapper\n *ngSwitchCase=\"'ViewContainer'\"\n name=\"ViewContainer\"\n [props]=\"{ pConn$: displayOnlyFA$ ? viewContainerPConn$ : pConn$, displayOnlyFA$ }\"\n ></component-mapper>\n <app-hybrid-view-container *ngSwitchCase=\"'HybridViewContainer'\" [pConn$]=\"pConn$\" [displayOnlyFA$]=\"displayOnlyFA$\"></app-hybrid-view-container>\n <app-modal-view-container\n *ngSwitchCase=\"'ModalViewContainer'\"\n [pConn$]=\"pConn$\"\n [displayOnlyFA$]=\"displayOnlyFA$\"\n (modalVisibleChange)=\"modalVisibleChanged($event)\"\n ></app-modal-view-container>\n <div *ngSwitchCase=\"''\"></div>\n <div *ngSwitchDefault>{{ localizedVal('RootContainer Missing: ' + componentName$, localeCategory) }}.</div>\n </div>\n</div>\n\n<div *ngIf=\"pvConn$ != null\">\n <app-preview-view-container [pConn$]=\"pvConn$\"></app-preview-view-container>\n</div>\n\n<div *ngIf=\"mConn$ != null\">\n <app-modal-view-container\n [pConn$]=\"mConn$\"\n [displayOnlyFA$]=\"displayOnlyFA$\"\n (modalVisibleChange)=\"modalVisibleChanged($event)\"\n ></app-modal-view-container>\n</div>\n", styles: [".progress-box{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;background-color:var(--app-background-color);position:fixed;z-index:99999;top:0rem;left:0rem;opacity:.5}.progress-spinner{text-align:center}\n"] }]
210
+ ], template: "<div class=\"progress-box\" *ngIf=\"bIsProgress$\">\n <mat-spinner class=\"progress-spinner\"></mat-spinner>\n</div>\n\n<div *ngIf=\"bShowRoot$\">\n <div [ngSwitch]=\"componentName$\">\n <component-mapper *ngSwitchCase=\"'View'\" name=\"View\" [props]=\"{ pConn$, displayOnlyFA$ }\"></component-mapper>\n <component-mapper\n *ngSwitchCase=\"'ViewContainer'\"\n name=\"ViewContainer\"\n [props]=\"{ pConn$: viewContainerPConn$, displayOnlyFA$ }\"\n ></component-mapper>\n <div *ngSwitchDefault>{{ localizedVal('RootContainer Missing: ' + componentName$, localeCategory) }}.</div>\n </div>\n</div>\n\n<div *ngIf=\"pvConn$ != null\">\n <app-preview-view-container [pConn$]=\"pvConn$\"></app-preview-view-container>\n</div>\n\n<div *ngIf=\"mConn$ != null\">\n <app-modal-view-container [pConn$]=\"mConn$\"></app-modal-view-container>\n</div>\n", styles: [".progress-box{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;background-color:var(--app-background-color);position:fixed;z-index:99999;top:0rem;left:0rem;opacity:.5}.progress-spinner{text-align:center}\n"] }]
221
211
  }], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i2.ProgressSpinnerService }, { type: i0.NgZone }], propDecorators: { pConn$: [{
222
212
  type: Input
223
213
  }], displayOnlyFA$: [{
@@ -225,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
225
215
  }], isMashup$: [{
226
216
  type: Input
227
217
  }] } });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL3Jvb3QtY29udGFpbmVyL3Jvb3QtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9yb290LWNvbnRhaW5lci9yb290LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBVSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ3RILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7Ozs7QUFFeEc7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBZ0JuQyxNQUFNLE9BQU8sc0JBQXNCO0lBdUJqQyxZQUNVLGVBQXVDLEVBQ3ZDLFNBQWlDLEVBQ2pDLE1BQWM7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R2hDLHNCQUFzQjtrQkFkbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FHbEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osd0JBQXdCO3dCQUN4Qiw0QkFBNEI7d0JBQzVCLDJCQUEyQjt3QkFDM0IsNkJBQTZCO3dCQUM3QixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7cUJBQzNDO3FKQUdRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE5nWm9uZSwgZm9yd2FyZFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBpbnRlcnZhbCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IFByb2dyZXNzU3Bpbm5lclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fbWVzc2FnZXMvcHJvZ3Jlc3Mtc3Bpbm5lci5zZXJ2aWNlJztcbmltcG9ydCB7IFJlZmVyZW5jZUNvbXBvbmVudCB9IGZyb20gJy4uL3JlZmVyZW5jZS9yZWZlcmVuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IFByZXZpZXdWaWV3Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vQ29udGFpbmVycy9wcmV2aWV3LXZpZXctY29udGFpbmVyL3ByZXZpZXctdmlldy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsVmlld0NvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL0NvbnRhaW5lcnMvbW9kYWwtdmlldy1jb250YWluZXIvbW9kYWwtdmlldy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEh5YnJpZFZpZXdDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9Db250YWluZXJzL2h5YnJpZC12aWV3LWNvbnRhaW5lci9oeWJyaWQtdmlldy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogV0FSTklORzogIEl0IGlzIG5vdCBleHBlY3RlZCB0aGF0IHRoaXMgZmlsZSBzaG91bGQgYmUgbW9kaWZpZWQuICBJdCBpcyBwYXJ0IG9mIGluZnJhc3RydWN0dXJlIGNvZGUgdGhhdCB3b3JrcyB3aXRoXG4gKiBSZWR1eCBhbmQgY3JlYXRpb24vdXBkYXRlIG9mIFJlZHV4IGNvbnRhaW5lcnMgYW5kIFBDb25uZWN0LiAgTW9kaWZ5aW5nIHRoaXMgY29kZSBjb3VsZCBoYXZlIHVuZGVzaXJlYWJsZSByZXN1bHRzIGFuZFxuICogaXMgdG90YWxseSBhdCB5b3VyIG93biByaXNrLlxuICovXG5cbmNvbnN0IG9wdGlvbnMgPSB7IGNvbnRleHQ6ICdhcHAnIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yb290LWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yb290LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jvb3QtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIEh5YnJpZFZpZXdDb250YWluZXJDb21wb25lbnQsXG4gICAgTW9kYWxWaWV3Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIFByZXZpZXdWaWV3Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJvb3RDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBkaXNwbGF5T25seUZBJDogYm9vbGVhbjtcbiAgQElucHV0KCkgaXNNYXNodXAkOiBib29sZWFuO1xuXG4gIC8vIEZvciBpbnRlcmFjdGlvbiB3aXRoIEFuZ3VsYXJQQ29ubmVjdFxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG5cbiAgY29tcG9uZW50TmFtZSQgPSAnJztcbiAgYklzUHJvZ3Jlc3MkID0gZmFsc2U7XG5cbiAgLy8gcHJldmlldyBhbmQgbW9kYWx2aWV3IHBDb25uXG4gIHB2Q29ubiQ6IGFueSA9IG51bGw7XG4gIG1Db25uJDogYW55ID0gbnVsbDtcblxuICBiU2hvd1Jvb3QkID0gdHJ1ZTtcblxuICBwcm9ncmVzc1NwaW5uZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgc3Bpbm5lclRpbWVyOiBhbnkgPSBudWxsO1xuICB2aWV3Q29udGFpbmVyUENvbm4kOiBhbnkgPSBudWxsO1xuICBsb2NhbGl6ZWRWYWw6IGFueTtcbiAgbG9jYWxlQ2F0ZWdvcnkgPSAnTWVzc2FnZXMnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYW5ndWxhclBDb25uZWN0OiBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHNTZXJ2aWNlOiBQcm9ncmVzc1NwaW5uZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IG15Q29udGV4dCA9ICdhcHAnO1xuXG4gICAgY29uc3QgeyBjb250YWluZXJzIH0gPSBQQ29yZS5nZXRTdG9yZSgpLmdldFN0YXRlKCk7XG4gICAgY29uc3QgaXRlbXMgPSBPYmplY3Qua2V5cyhjb250YWluZXJzKS5maWx0ZXIoaXRlbSA9PiBpdGVtLmluY2x1ZGVzKCdyb290JykpO1xuXG4gICAgUENvcmUuZ2V0Q29udGFpbmVyVXRpbHMoKS5nZXRDb250YWluZXJBUEkoKS5hZGRDb250YWluZXJJdGVtcyhpdGVtcyk7XG5cbiAgICAvLyBhZGQgcHJldmlldyBhbmQgbW9kYWx2aWV3IGNvbnRhaW5lcnMgdG8gcmVkdXhcbiAgICAvLyBrZWVwIGxvY2FsIGNvcGllcyBvZiB0aGUgdGhlIHBDb25uZWN0IHRoYXQgaXMgcmVsYXRlZFxuXG4gICAgY29uc3QgY29uZmlnT2JqUHJldmlldyA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KHtcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgdHlwZTogJ1ByZXZpZXdWaWV3Q29udGFpbmVyJyxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgbmFtZTogJ3ByZXZpZXcnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBvcHRpb25zXG4gICAgfSk7XG5cbiAgICB0aGlzLnB2Q29ubiQgPSBjb25maWdPYmpQcmV2aWV3LmdldFBDb25uZWN0KCk7XG5cbiAgICBjb25zdCBjb25maWdPYmpNb2RhbCA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KHtcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgdHlwZTogJ01vZGFsVmlld0NvbnRhaW5lcicsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIG5hbWU6ICdtb2RhbCdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgcGFnZVJlZmVyZW5jZTogJ3B5UG9ydGFsJyxcbiAgICAgICAgY29udGV4dDogbXlDb250ZXh0XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBjbGVhciBvdXQgaGFzVmlld0NvbnRhaW5lclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2hhc1ZpZXdDb250YWluZXInLCAnZmFsc2UnKTtcblxuICAgIHRoaXMubUNvbm4kID0gY29uZmlnT2JqTW9kYWwuZ2V0UENvbm5lY3QoKTtcblxuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuXG4gICAgLy8gaGFuZGxlIHNob3dpbmcgYW5kIGhpZGluZyB0aGUgcHJvZ3Jlc3Mgc3Bpbm5lclxuICAgIHRoaXMucHJvZ3Jlc3NTcGlubmVyU3Vic2NyaXB0aW9uID0gdGhpcy5wc1NlcnZpY2UuZ2V0TWVzc2FnZSgpLnN1YnNjcmliZShtZXNzYWdlID0+IHtcbiAgICAgIHRoaXMuc2hvd0hpZGVQcm9ncmVzcyhtZXNzYWdlLnNob3cpO1xuICAgIH0pO1xuICAgIHRoaXMubG9jYWxpemVkVmFsID0gUENvcmUuZ2V0TG9jYWxlVXRpbHMoKS5nZXRMb2NhbGVWYWx1ZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIGlmIChiVXBkYXRlU2VsZikge1xuICAgICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gICAgfVxuICB9XG5cbiAgbW9kYWxWaXNpYmxlQ2hhbmdlZChpc1Zpc2libGUpIHtcbiAgICBpZiAodGhpcy5kaXNwbGF5T25seUZBJCkge1xuICAgICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICB0aGlzLmJTaG93Um9vdCQgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYlNob3dSb290JCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlU2VsZigpIHtcbiAgICAvLyBuZWVkIHRvIGNhbGwgdGhpcy5nZXRDdXJyZW50Q29tcGxldGVQcm9wcyAobm90IHRoaXMudGhlUENvbm4uZ2V0Q29uZmlnUHJvcHMpXG4gICAgLy8gIHRvIGdldCBmdWxsIHNldCBvZiBwcm9wcyB0aGF0IGFmZmVjdCB0aGlzIGNvbXBvbmVudCBpbiBSZWR1eFxuICAgIGNvbnN0IG15UHJvcHM6IGFueSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LmdldEN1cnJlbnRDb21wbGV0ZVByb3BzKHRoaXMpO1xuXG4gICAgY29uc3QgcmVuZGVyaW5nTW9kZXMgPSBbJ3BvcnRhbCcsICd2aWV3J107XG4gICAgY29uc3Qgbm9Qb3J0YWxNb2RlID0gJ25vUG9ydGFsJztcblxuICAgIGNvbnN0IHsgcmVuZGVyaW5nTW9kZSwgY2hpbGRyZW4sIHNrZWxldG9uLCByb3V0aW5nSW5mbyB9ID0gbXlQcm9wcztcblxuICAgIGlmIChyb3V0aW5nSW5mbyAmJiByZW5kZXJpbmdNb2Rlcy5pbmNsdWRlcyhyZW5kZXJpbmdNb2RlKSkge1xuICAgICAgY29uc3QgeyBhY2Nlc3NlZE9yZGVyLCBpdGVtcyB9ID0gcm91dGluZ0luZm87XG4gICAgICBpZiAoYWNjZXNzZWRPcmRlciAmJiBpdGVtcykge1xuICAgICAgICAvLyBib290c3RyYXAgbG9hZFBvcnRhbCByZXNvbHZlcyB0byBoZXJlXG4gICAgICAgIGNvbnN0IGtleSA9IGFjY2Vzc2VkT3JkZXJbYWNjZXNzZWRPcmRlci5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKGl0ZW1zW2tleV0gJiYgaXRlbXNba2V5XS52aWV3ICYmIE9iamVjdC5rZXlzKGl0ZW1zW2tleV0udmlldykubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGl0ZW1WaWV3ID0gaXRlbXNba2V5XS52aWV3O1xuXG4gICAgICAgICAgY29uc3Qgcm9vdE9iamVjdCA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KHtcbiAgICAgICAgICAgIG1ldGE6IGl0ZW1WaWV3LFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBjb250ZXh0OiBpdGVtc1trZXldLmNvbnRleHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgLy8gbWFrZXMgc3VyZSBBbmd1bGFyIHRyYWNrcyB0aGVzZSBjaGFuZ2VzXG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAvLyB0aGUgbmV3IHJvb3RPYmplY3QgbWF5IGJlIGEgJ3JlZmVyZW5jZScuIFNvLFxuICAgICAgICAgICAgICAvLyAgbm9ybWFsaXplIGl0IHRvIGdldCB0aGUgcmVmZXJlbmNlZFZpZXcgaWYgdGhhdCdzIHRoZSBjYXNlXG4gICAgICAgICAgICAgIGNvbnN0IHRoZU5ld1BDb25uID0gUmVmZXJlbmNlQ29tcG9uZW50Lm5vcm1hbGl6ZVBDb25uKHJvb3RPYmplY3QuZ2V0UENvbm5lY3QoKSk7XG4gICAgICAgICAgICAgIC8vIHVwZGF0ZSBDb21wb25lbnROYW1lJCBiZWZvcmUgd2UgdXBkYXRlIHBDb25uJCB0byBtYWtlIHN1cmUgdGhleSdyZSBpbiBzeW5jXG4gICAgICAgICAgICAgIC8vICB3aGVuIHJlbmRlcmluZy4uLlxuICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudE5hbWUkID0gdGhlTmV3UENvbm4uZ2V0Q29tcG9uZW50TmFtZSgpO1xuXG4gICAgICAgICAgICAgIHRoaXMucENvbm4kID0gdGhlTmV3UENvbm47XG4gICAgICAgICAgICAgIC8vIHRoaXMucENvbm4kID0gcm9vdE9iamVjdC5nZXRQQ29ubmVjdCgpO1xuXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBSb290Q29udGFpbmVyIHVwZGF0ZWQgcENvbm4kIHRvIGJlOiAke3RoaXMuY29tcG9uZW50TmFtZSR9YCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocmVuZGVyaW5nTW9kZSA9PT0gbm9Qb3J0YWxNb2RlKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyhgUm9vdENvbnRhaW5lcjogcmVuZGVyaW5nTW9kZSA9PT0gbm9Qb3J0YWxNb2RlOiAke25vUG9ydGFsTW9kZX1gKTtcbiAgICAgIHRoaXMuZ2VuZXJhdGVWaWV3Q29udGFpbmVyRm9yTm9Qb3J0YWwoKTtcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuICYmIGNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIGhhdmVuJ3QgcmVzb2x2ZWQgdG8gaGVyZVxuICAgIH0gZWxzZSBpZiAoc2tlbGV0b24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gVE9ETzogbmVlZCB0byB1cGRhdGUgb25jZSBza2VsZXRvbnMgYXJlIGF2YWlsYWJsZTtcbiAgICB9XG4gIH1cblxuICBnZW5lcmF0ZVZpZXdDb250YWluZXJGb3JOb1BvcnRhbCgpIHtcbiAgICAvLyBib290c3RyYXAgbG9hZE1hc2h1cCByZXNvbHZlcyB0byBoZXJlXG4gICAgY29uc3QgYXJDaGlsZHJlbiA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKCkgYXMgYW55W107XG4gICAgaWYgKGFyQ2hpbGRyZW4gJiYgYXJDaGlsZHJlbi5sZW5ndGggPT0gMSkge1xuICAgICAgLy8gaGF2ZSB0byBoYXZlIGEgcXVpY2sgdGltZW91dCBvciBnZXQgYW4gXCJleHByZXNzaW9ucyBjaGFuZ2VkXCIgYW5ndWxhciBlcnJvclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgbG9jYWxQQ29ubiA9IGFyQ2hpbGRyZW5bMF0uZ2V0UENvbm5lY3QoKTtcblxuICAgICAgICAgIHRoaXMuY29tcG9uZW50TmFtZSQgPSBsb2NhbFBDb25uLmdldENvbXBvbmVudE5hbWUoKTtcbiAgICAgICAgICBpZiAodGhpcy5jb21wb25lbnROYW1lJCA9PT0gJ1ZpZXdDb250YWluZXInKSB7XG4gICAgICAgICAgICBjb25zdCBjb25maWdQcm9wcyA9IHRoaXMucENvbm4kLmdldENvbmZpZ1Byb3BzKCk7XG4gICAgICAgICAgICBjb25zdCB2aWV3Q29udENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgbWV0YToge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdWaWV3Q29udGFpbmVyJyxcbiAgICAgICAgICAgICAgICBjb25maWc6IGNvbmZpZ1Byb3BzXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIG9wdGlvbnNcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lclBDb25uJCA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KHZpZXdDb250Q29uZmlnKS5nZXRQQ29ubmVjdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmJTaG93Um9vdCQgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNob3dIaWRlUHJvZ3Jlc3MoYlNob3c6IGJvb2xlYW4pIHtcbiAgICAvLyBvbmx5IHNob3cgc3Bpbm5lciBhZnRlciA1MDBtcyB3YWl0LCBzbyBpZiBzZXJ2ZXIgZmFzdCwgd29uJ3Qgc2VlXG4gICAgaWYgKGJTaG93KSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9uby1jb2xsYXBzaWJsZS1pZlxuICAgICAgaWYgKCF0aGlzLmJJc1Byb2dyZXNzJCkge1xuICAgICAgICAvLyBtYWtlcyBzdXJlIEFuZ3VsYXIgdHJhY2tzIHRoZXNlIGNoYW5nZXNcbiAgICAgICAgaWYgKCF0aGlzLnNwaW5uZXJUaW1lciB8fCB0aGlzLnNwaW5uZXJUaW1lci5pc1N0b3BwZWQpIHtcbiAgICAgICAgICB0aGlzLnNwaW5uZXJUaW1lciA9IGludGVydmFsKDUwMCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHRoaXMuc3Bpbm5lclRpbWVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgICAgICAvKiBlbXB0eSAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmJJc1Byb2dyZXNzJCA9IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5zcGlubmVyVGltZXIgJiYgIXRoaXMuc3Bpbm5lclRpbWVyLmlzU3RvcHBlZCkge1xuICAgICAgICB0aGlzLnNwaW5uZXJUaW1lci51bnN1YnNjcmliZSgpO1xuICAgICAgfVxuXG4gICAgICAvLyBkb24ndCB0b3VjaCBiSXNQcm9ncmVzcyQgdW5sZXNzIGRpZmZlcm5lbnRcbiAgICAgIGlmIChiU2hvdyAhPSB0aGlzLmJJc1Byb2dyZXNzJCkge1xuICAgICAgICAvLyBtYWtlcyBzdXJlIEFuZ3VsYXIgdHJhY2tzIHRoZXNlIGNoYW5nZXNcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmJJc1Byb2dyZXNzJCA9IGJTaG93O1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwcm9ncmVzcy1ib3hcIiAqbmdJZj1cImJJc1Byb2dyZXNzJFwiPlxuICA8bWF0LXNwaW5uZXIgY2xhc3M9XCJwcm9ncmVzcy1zcGlubmVyXCI+PC9tYXQtc3Bpbm5lcj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiYlNob3dSb290JFwiPlxuICA8ZGl2IFtuZ1N3aXRjaF09XCJjb21wb25lbnROYW1lJFwiPlxuICAgIDxjb21wb25lbnQtbWFwcGVyICpuZ1N3aXRjaENhc2U9XCInVmlldydcIiBuYW1lPVwiVmlld1wiIFtwcm9wc109XCJ7IHBDb25uJCwgZGlzcGxheU9ubHlGQSQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8IS0tIDxhcHAtcmVmZXJlbmNlICpuZ1N3aXRjaENhc2U9XCIncmVmZXJlbmNlJ1wiIFtwQ29ubiRdPVwicENvbm4kXCIgW2Rpc3BsYXlPbmx5RkEkXT1cImRpc3BsYXlPbmx5RkEkXCI+PC9hcHAtcmVmZXJlbmNlPiAtLT5cbiAgICA8Y29tcG9uZW50LW1hcHBlclxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIidWaWV3Q29udGFpbmVyJ1wiXG4gICAgICBuYW1lPVwiVmlld0NvbnRhaW5lclwiXG4gICAgICBbcHJvcHNdPVwieyBwQ29ubiQ6IGRpc3BsYXlPbmx5RkEkID8gdmlld0NvbnRhaW5lclBDb25uJCA6IHBDb25uJCwgZGlzcGxheU9ubHlGQSQgfVwiXG4gICAgPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8YXBwLWh5YnJpZC12aWV3LWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0h5YnJpZFZpZXdDb250YWluZXInXCIgW3BDb25uJF09XCJwQ29ubiRcIiBbZGlzcGxheU9ubHlGQSRdPVwiZGlzcGxheU9ubHlGQSRcIj48L2FwcC1oeWJyaWQtdmlldy1jb250YWluZXI+XG4gICAgPGFwcC1tb2RhbC12aWV3LWNvbnRhaW5lclxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIidNb2RhbFZpZXdDb250YWluZXInXCJcbiAgICAgIFtwQ29ubiRdPVwicENvbm4kXCJcbiAgICAgIFtkaXNwbGF5T25seUZBJF09XCJkaXNwbGF5T25seUZBJFwiXG4gICAgICAobW9kYWxWaXNpYmxlQ2hhbmdlKT1cIm1vZGFsVmlzaWJsZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgPjwvYXBwLW1vZGFsLXZpZXctY29udGFpbmVyPlxuICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIicnXCI+PC9kaXY+XG4gICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0Pnt7IGxvY2FsaXplZFZhbCgnUm9vdENvbnRhaW5lciBNaXNzaW5nOiAnICsgY29tcG9uZW50TmFtZSQsIGxvY2FsZUNhdGVnb3J5KSB9fS48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cInB2Q29ubiQgIT0gbnVsbFwiPlxuICA8YXBwLXByZXZpZXctdmlldy1jb250YWluZXIgW3BDb25uJF09XCJwdkNvbm4kXCI+PC9hcHAtcHJldmlldy12aWV3LWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwibUNvbm4kICE9IG51bGxcIj5cbiAgPGFwcC1tb2RhbC12aWV3LWNvbnRhaW5lclxuICAgIFtwQ29ubiRdPVwibUNvbm4kXCJcbiAgICBbZGlzcGxheU9ubHlGQSRdPVwiZGlzcGxheU9ubHlGQSRcIlxuICAgIChtb2RhbFZpc2libGVDaGFuZ2UpPVwibW9kYWxWaXNpYmxlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgPjwvYXBwLW1vZGFsLXZpZXctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL2luZnJhL3Jvb3QtY29udGFpbmVyL3Jvb3QtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS9yb290LWNvbnRhaW5lci9yb290LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBVSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ3RILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7Ozs7QUFFeEc7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBZ0JuQyxNQUFNLE9BQU8sc0JBQXNCO0lBdUJqQyxZQUNVLGVBQXVDLEVBQ3ZDLFNBQWlDLEVBQ2pDLE1BQWM7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UztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgTmdab25lLCBmb3J3YXJkUmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IGludGVydmFsLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NTcGlubmVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXNzYWdlcy9wcm9ncmVzcy1zcGlubmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVmZXJlbmNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVmZXJlbmNlL3JlZmVyZW5jZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJldmlld1ZpZXdDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9Db250YWluZXJzL3ByZXZpZXctdmlldy1jb250YWluZXIvcHJldmlldy12aWV3LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxWaWV3Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vQ29udGFpbmVycy9tb2RhbC12aWV3LWNvbnRhaW5lci9tb2RhbC12aWV3LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHlicmlkVmlld0NvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL0NvbnRhaW5lcnMvaHlicmlkLXZpZXctY29udGFpbmVyL2h5YnJpZC12aWV3LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcblxuLyoqXG4gKiBXQVJOSU5HOiAgSXQgaXMgbm90IGV4cGVjdGVkIHRoYXQgdGhpcyBmaWxlIHNob3VsZCBiZSBtb2RpZmllZC4gIEl0IGlzIHBhcnQgb2YgaW5mcmFzdHJ1Y3R1cmUgY29kZSB0aGF0IHdvcmtzIHdpdGhcbiAqIFJlZHV4IGFuZCBjcmVhdGlvbi91cGRhdGUgb2YgUmVkdXggY29udGFpbmVycyBhbmQgUENvbm5lY3QuICBNb2RpZnlpbmcgdGhpcyBjb2RlIGNvdWxkIGhhdmUgdW5kZXNpcmVhYmxlIHJlc3VsdHMgYW5kXG4gKiBpcyB0b3RhbGx5IGF0IHlvdXIgb3duIHJpc2suXG4gKi9cblxuY29uc3Qgb3B0aW9ucyA9IHsgY29udGV4dDogJ2FwcCcgfTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJvb3QtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jvb3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcm9vdC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgSHlicmlkVmlld0NvbnRhaW5lckNvbXBvbmVudCxcbiAgICBNb2RhbFZpZXdDb250YWluZXJDb21wb25lbnQsXG4gICAgUHJldmlld1ZpZXdDb250YWluZXJDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUm9vdENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGRpc3BsYXlPbmx5RkEkOiBib29sZWFuO1xuICBASW5wdXQoKSBpc01hc2h1cCQ6IGJvb2xlYW47XG5cbiAgLy8gRm9yIGludGVyYWN0aW9uIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcblxuICBjb21wb25lbnROYW1lJCA9ICcnO1xuICBiSXNQcm9ncmVzcyQgPSBmYWxzZTtcblxuICAvLyBwcmV2aWV3IGFuZCBtb2RhbHZpZXcgcENvbm5cbiAgcHZDb25uJDogYW55ID0gbnVsbDtcbiAgbUNvbm4kOiBhbnkgPSBudWxsO1xuXG4gIGJTaG93Um9vdCQgPSB0cnVlO1xuXG4gIHByb2dyZXNzU3Bpbm5lclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBzcGlubmVyVGltZXI6IGFueSA9IG51bGw7XG4gIHZpZXdDb250YWluZXJQQ29ubiQ6IGFueSA9IG51bGw7XG4gIGxvY2FsaXplZFZhbDogYW55O1xuICBsb2NhbGVDYXRlZ29yeSA9ICdNZXNzYWdlcyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwc1NlcnZpY2U6IFByb2dyZXNzU3Bpbm5lclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgbXlDb250ZXh0ID0gJ2FwcCc7XG5cbiAgICBjb25zdCB7IGNvbnRhaW5lcnMgfSA9IFBDb3JlLmdldFN0b3JlKCkuZ2V0U3RhdGUoKTtcbiAgICBjb25zdCBpdGVtcyA9IE9iamVjdC5rZXlzKGNvbnRhaW5lcnMpLmZpbHRlcihpdGVtID0+IGl0ZW0uaW5jbHVkZXMoJ3Jvb3QnKSk7XG5cbiAgICBQQ29yZS5nZXRDb250YWluZXJVdGlscygpLmdldENvbnRhaW5lckFQSSgpLmFkZENvbnRhaW5lckl0ZW1zKGl0ZW1zKTtcblxuICAgIC8vIGFkZCBwcmV2aWV3IGFuZCBtb2RhbHZpZXcgY29udGFpbmVycyB0byByZWR1eFxuICAgIC8vIGtlZXAgbG9jYWwgY29waWVzIG9mIHRoZSB0aGUgcENvbm5lY3QgdGhhdCBpcyByZWxhdGVkXG5cbiAgICBjb25zdCBjb25maWdPYmpQcmV2aWV3ID0gUENvcmUuY3JlYXRlUENvbm5lY3Qoe1xuICAgICAgbWV0YToge1xuICAgICAgICB0eXBlOiAnUHJldmlld1ZpZXdDb250YWluZXInLFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBuYW1lOiAncHJldmlldydcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG9wdGlvbnNcbiAgICB9KTtcblxuICAgIHRoaXMucHZDb25uJCA9IGNvbmZpZ09ialByZXZpZXcuZ2V0UENvbm5lY3QoKTtcblxuICAgIGNvbnN0IGNvbmZpZ09iak1vZGFsID0gUENvcmUuY3JlYXRlUENvbm5lY3Qoe1xuICAgICAgbWV0YToge1xuICAgICAgICB0eXBlOiAnTW9kYWxWaWV3Q29udGFpbmVyJyxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgbmFtZTogJ21vZGFsJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBwYWdlUmVmZXJlbmNlOiAncHlQb3J0YWwnLFxuICAgICAgICBjb250ZXh0OiBteUNvbnRleHRcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIGNsZWFyIG91dCBoYXNWaWV3Q29udGFpbmVyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnaGFzVmlld0NvbnRhaW5lcicsICdmYWxzZScpO1xuXG4gICAgdGhpcy5tQ29ubiQgPSBjb25maWdPYmpNb2RhbC5nZXRQQ29ubmVjdCgpO1xuXG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG5cbiAgICAvLyBoYW5kbGUgc2hvd2luZyBhbmQgaGlkaW5nIHRoZSBwcm9ncmVzcyBzcGlubmVyXG4gICAgdGhpcy5wcm9ncmVzc1NwaW5uZXJTdWJzY3JpcHRpb24gPSB0aGlzLnBzU2VydmljZS5nZXRNZXNzYWdlKCkuc3Vic2NyaWJlKG1lc3NhZ2UgPT4ge1xuICAgICAgdGhpcy5zaG93SGlkZVByb2dyZXNzKG1lc3NhZ2Uuc2hvdyk7XG4gICAgfSk7XG4gICAgdGhpcy5sb2NhbGl6ZWRWYWwgPSBQQ29yZS5nZXRMb2NhbGVVdGlscygpLmdldExvY2FsZVZhbHVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGxiYWNrIHBhc3NlZCB3aGVuIHN1YnNjcmliaW5nIHRvIHN0b3JlIGNoYW5nZVxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgY2hlY2sgdGhlIGJyaWRnZSB0byBzZWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWxmKCkge1xuICAgIC8vIG5lZWQgdG8gY2FsbCB0aGlzLmdldEN1cnJlbnRDb21wbGV0ZVByb3BzIChub3QgdGhpcy50aGVQQ29ubi5nZXRDb25maWdQcm9wcylcbiAgICAvLyAgdG8gZ2V0IGZ1bGwgc2V0IG9mIHByb3BzIHRoYXQgYWZmZWN0IHRoaXMgY29tcG9uZW50IGluIFJlZHV4XG4gICAgY29uc3QgbXlQcm9wczogYW55ID0gdGhpcy5hbmd1bGFyUENvbm5lY3QuZ2V0Q3VycmVudENvbXBsZXRlUHJvcHModGhpcyk7XG5cbiAgICBjb25zdCByZW5kZXJpbmdNb2RlcyA9IFsncG9ydGFsJywgJ3ZpZXcnXTtcbiAgICBjb25zdCBub1BvcnRhbE1vZGUgPSAnbm9Qb3J0YWwnO1xuXG4gICAgY29uc3QgeyByZW5kZXJpbmdNb2RlLCBjaGlsZHJlbiwgc2tlbGV0b24sIHJvdXRpbmdJbmZvIH0gPSBteVByb3BzO1xuXG4gICAgaWYgKHJvdXRpbmdJbmZvICYmIHJlbmRlcmluZ01vZGVzLmluY2x1ZGVzKHJlbmRlcmluZ01vZGUpKSB7XG4gICAgICBjb25zdCB7IGFjY2Vzc2VkT3JkZXIsIGl0ZW1zIH0gPSByb3V0aW5nSW5mbztcbiAgICAgIGlmIChhY2Nlc3NlZE9yZGVyICYmIGl0ZW1zKSB7XG4gICAgICAgIC8vIGJvb3RzdHJhcCBsb2FkUG9ydGFsIHJlc29sdmVzIHRvIGhlcmVcbiAgICAgICAgY29uc3Qga2V5ID0gYWNjZXNzZWRPcmRlclthY2Nlc3NlZE9yZGVyLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAoaXRlbXNba2V5XSAmJiBpdGVtc1trZXldLnZpZXcgJiYgT2JqZWN0LmtleXMoaXRlbXNba2V5XS52aWV3KS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgaXRlbVZpZXcgPSBpdGVtc1trZXldLnZpZXc7XG5cbiAgICAgICAgICBjb25zdCByb290T2JqZWN0ID0gUENvcmUuY3JlYXRlUENvbm5lY3Qoe1xuICAgICAgICAgICAgbWV0YTogaXRlbVZpZXcsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IGl0ZW1zW2tleV0uY29udGV4dFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBtYWtlcyBzdXJlIEFuZ3VsYXIgdHJhY2tzIHRoZXNlIGNoYW5nZXNcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgIC8vIHRoZSBuZXcgcm9vdE9iamVjdCBtYXkgYmUgYSAncmVmZXJlbmNlJy4gU28sXG4gICAgICAgICAgICAgIC8vICBub3JtYWxpemUgaXQgdG8gZ2V0IHRoZSByZWZlcmVuY2VkVmlldyBpZiB0aGF0J3MgdGhlIGNhc2VcbiAgICAgICAgICAgICAgY29uc3QgdGhlTmV3UENvbm4gPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm4ocm9vdE9iamVjdC5nZXRQQ29ubmVjdCgpKTtcbiAgICAgICAgICAgICAgLy8gdXBkYXRlIENvbXBvbmVudE5hbWUkIGJlZm9yZSB3ZSB1cGRhdGUgcENvbm4kIHRvIG1ha2Ugc3VyZSB0aGV5J3JlIGluIHN5bmNcbiAgICAgICAgICAgICAgLy8gIHdoZW4gcmVuZGVyaW5nLi4uXG4gICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50TmFtZSQgPSB0aGVOZXdQQ29ubi5nZXRDb21wb25lbnROYW1lKCk7XG5cbiAgICAgICAgICAgICAgdGhpcy5wQ29ubiQgPSB0aGVOZXdQQ29ubjtcbiAgICAgICAgICAgICAgLy8gdGhpcy5wQ29ubiQgPSByb290T2JqZWN0LmdldFBDb25uZWN0KCk7XG5cbiAgICAgICAgICAgICAgY29uc29sZS5sb2coYFJvb3RDb250YWluZXIgdXBkYXRlZCBwQ29ubiQgdG8gYmU6ICR7dGhpcy5jb21wb25lbnROYW1lJH1gKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChyZW5kZXJpbmdNb2RlID09PSBub1BvcnRhbE1vZGUpIHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKGBSb290Q29udGFpbmVyOiByZW5kZXJpbmdNb2RlID09PSBub1BvcnRhbE1vZGU6ICR7bm9Qb3J0YWxNb2RlfWApO1xuICAgICAgdGhpcy5nZW5lcmF0ZVZpZXdDb250YWluZXJGb3JOb1BvcnRhbCgpO1xuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4gJiYgY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgLy8gaGF2ZW4ndCByZXNvbHZlZCB0byBoZXJlXG4gICAgfSBlbHNlIGlmIChza2VsZXRvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBUT0RPOiBuZWVkIHRvIHVwZGF0ZSBvbmNlIHNrZWxldG9ucyBhcmUgYXZhaWxhYmxlO1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlVmlld0NvbnRhaW5lckZvck5vUG9ydGFsKCkge1xuICAgIC8vIGJvb3RzdHJhcCBsb2FkTWFzaHVwIHJlc29sdmVzIHRvIGhlcmVcbiAgICBjb25zdCBhckNoaWxkcmVuID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBhbnlbXTtcbiAgICBpZiAoYXJDaGlsZHJlbiAmJiBhckNoaWxkcmVuLmxlbmd0aCA9PSAxKSB7XG4gICAgICAvLyBoYXZlIHRvIGhhdmUgYSBxdWljayB0aW1lb3V0IG9yIGdldCBhbiBcImV4cHJlc3Npb25zIGNoYW5nZWRcIiBhbmd1bGFyIGVycm9yXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBsb2NhbFBDb25uID0gYXJDaGlsZHJlblswXS5nZXRQQ29ubmVjdCgpO1xuXG4gICAgICAgICAgdGhpcy5jb21wb25lbnROYW1lJCA9IGxvY2FsUENvbm4uZ2V0Q29tcG9uZW50TmFtZSgpO1xuICAgICAgICAgIGlmICh0aGlzLmNvbXBvbmVudE5hbWUkID09PSAnVmlld0NvbnRhaW5lcicpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ1Byb3BzID0gdGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKTtcbiAgICAgICAgICAgIGNvbnN0IHZpZXdDb250Q29uZmlnID0ge1xuICAgICAgICAgICAgICBtZXRhOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ1ZpZXdDb250YWluZXInLFxuICAgICAgICAgICAgICAgIGNvbmZpZzogY29uZmlnUHJvcHNcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgb3B0aW9uc1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUENvbm4kID0gUENvcmUuY3JlYXRlUENvbm5lY3Qodmlld0NvbnRDb25maWcpLmdldFBDb25uZWN0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuYlNob3dSb290JCA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2hvd0hpZGVQcm9ncmVzcyhiU2hvdzogYm9vbGVhbikge1xuICAgIC8vIG9ubHkgc2hvdyBzcGlubmVyIGFmdGVyIDUwMG1zIHdhaXQsIHNvIGlmIHNlcnZlciBmYXN0LCB3b24ndCBzZWVcbiAgICBpZiAoYlNob3cpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL25vLWNvbGxhcHNpYmxlLWlmXG4gICAgICBpZiAoIXRoaXMuYklzUHJvZ3Jlc3MkKSB7XG4gICAgICAgIC8vIG1ha2VzIHN1cmUgQW5ndWxhciB0cmFja3MgdGhlc2UgY2hhbmdlc1xuICAgICAgICBpZiAoIXRoaXMuc3Bpbm5lclRpbWVyIHx8IHRoaXMuc3Bpbm5lclRpbWVyLmlzU3RvcHBlZCkge1xuICAgICAgICAgIHRoaXMuc3Bpbm5lclRpbWVyID0gaW50ZXJ2YWwoNTAwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgdGhpcy5zcGlubmVyVGltZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgICAgIC8qIGVtcHR5ICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuYklzUHJvZ3Jlc3MkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnNwaW5uZXJUaW1lciAmJiAhdGhpcy5zcGlubmVyVGltZXIuaXNTdG9wcGVkKSB7XG4gICAgICAgIHRoaXMuc3Bpbm5lclRpbWVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIGRvbid0IHRvdWNoIGJJc1Byb2dyZXNzJCB1bmxlc3MgZGlmZmVybmVudFxuICAgICAgaWYgKGJTaG93ICE9IHRoaXMuYklzUHJvZ3Jlc3MkKSB7XG4gICAgICAgIC8vIG1ha2VzIHN1cmUgQW5ndWxhciB0cmFja3MgdGhlc2UgY2hhbmdlc1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYklzUHJvZ3Jlc3MkID0gYlNob3c7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInByb2dyZXNzLWJveFwiICpuZ0lmPVwiYklzUHJvZ3Jlc3MkXCI+XG4gIDxtYXQtc3Bpbm5lciBjbGFzcz1cInByb2dyZXNzLXNwaW5uZXJcIj48L21hdC1zcGlubmVyPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJiU2hvd1Jvb3QkXCI+XG4gIDxkaXYgW25nU3dpdGNoXT1cImNvbXBvbmVudE5hbWUkXCI+XG4gICAgPGNvbXBvbmVudC1tYXBwZXIgKm5nU3dpdGNoQ2FzZT1cIidWaWV3J1wiIG5hbWU9XCJWaWV3XCIgW3Byb3BzXT1cInsgcENvbm4kLCBkaXNwbGF5T25seUZBJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiJ1ZpZXdDb250YWluZXInXCJcbiAgICAgIG5hbWU9XCJWaWV3Q29udGFpbmVyXCJcbiAgICAgIFtwcm9wc109XCJ7IHBDb25uJDogdmlld0NvbnRhaW5lclBDb25uJCwgZGlzcGxheU9ubHlGQSQgfVwiXG4gICAgPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8ZGl2ICpuZ1N3aXRjaERlZmF1bHQ+e3sgbG9jYWxpemVkVmFsKCdSb290Q29udGFpbmVyIE1pc3Npbmc6ICcgKyBjb21wb25lbnROYW1lJCwgbG9jYWxlQ2F0ZWdvcnkpIH19LjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwicHZDb25uJCAhPSBudWxsXCI+XG4gIDxhcHAtcHJldmlldy12aWV3LWNvbnRhaW5lciBbcENvbm4kXT1cInB2Q29ubiRcIj48L2FwcC1wcmV2aWV3LXZpZXctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJtQ29ubiQgIT0gbnVsbFwiPlxuICA8YXBwLW1vZGFsLXZpZXctY29udGFpbmVyIFtwQ29ubiRdPVwibUNvbm4kXCI+PC9hcHAtbW9kYWwtdmlldy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -8,6 +8,19 @@ import * as i1 from "../../../_bridge/angular-pconnect";
8
8
  import * as i2 from "../../../_helpers/utils";
9
9
  import * as i3 from "@angular/common";
10
10
  const NO_HEADER_TEMPLATES = ['SubTabs', 'SimpleTable', 'Confirmation', 'DynamicTabs', 'DetailsSubTabs'];
11
+ const DETAILS_TEMPLATES = [
12
+ 'Details',
13
+ 'DetailsFields',
14
+ 'DetailsOneColumn',
15
+ 'DetailsSubTabs',
16
+ 'DetailsThreeColumn',
17
+ 'DetailsTwoColumn',
18
+ 'NarrowWideDetails',
19
+ 'WideNarrowDetails'
20
+ ];
21
+ function isDetailsTemplate(template) {
22
+ return DETAILS_TEMPLATES.includes(template);
23
+ }
11
24
  /**
12
25
  * WARNING: It is not expected that this file should be modified. It is part of infrastructure code that works with
13
26
  * Redux and creation/update of Redux containers and PConnect. Modifying this code could have undesireable results and
@@ -100,7 +113,7 @@ export class ViewComponent {
100
113
  this.templateName$ = this.configProps$.template || '';
101
114
  this.title$ = this.configProps$.title || '';
102
115
  this.label$ = this.configProps$.label || '';
103
- this.showLabel$ = this.configProps$.showLabel || this.showLabel$;
116
+ this.showLabel$ = this.configProps$.showLabel || isDetailsTemplate(this.templateName$) || this.showLabel$;
104
117
  // label & showLabel within inheritedProps takes precedence over configProps
105
118
  this.label$ = this.inheritedProps$.label || this.label$;
106
119
  this.showLabel$ = this.inheritedProps$.showLabel || this.showLabel$;
@@ -172,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
172
185
  }], displayOnlyFA$: [{
173
186
  type: Input
174
187
  }] } });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvaW5mcmEvdmlldy92aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS92aWV3L3ZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsVUFBVSxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7OztBQUV4RyxNQUFNLG1CQUFtQixHQUFHLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFFeEc7Ozs7R0FJRztBQUVIOzs7O0dBSUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLE1BQU07SUFDaEMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNsRCxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEMsd0dBQXdHO1FBQ3hHLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsaUdBQWlH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b0JBQ3RDLGdEQUFnRDtvQkFDaEQsTUFBTSxXQUFXLEdBQUc7d0JBQ2xCLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO3dCQUMzQixlQUFlLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztxQkFDOUIsQ0FBQztvQkFDRixPQUFPLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUN0RCxNQUFNO2dCQUVSLEtBQUssU0FBUztvQkFDWixTQUFTLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUN0QyxPQUFPLEdBQUcsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ25DLE1BQU07Z0JBQ1I7b0JBQ0UsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7K0dBL0lVLGFBQWE7bUdBQWIsYUFBYSxtTEN6RTFCLG81QkF5QkEscVFEOENZLFlBQVksK1RBQW1CLHdCQUF3Qjs7NEZBRXRELGFBQWE7a0JBUHpCLFNBQVM7K0JBQ0UsVUFBVSxjQUdSLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQzsrR0FHMUQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgZm9yd2FyZFJlZiwgU2ltcGxlQ2hhbmdlcywgT25EZXN0cm95LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vX2hlbHBlcnMvdXRpbHMnO1xuaW1wb3J0IHsgZ2V0QWxsRmllbGRzIH0gZnJvbSAnLi4vLi4vdGVtcGxhdGUvdXRpbHMnO1xuaW1wb3J0IHsgUmVmZXJlbmNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVmZXJlbmNlL3JlZmVyZW5jZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9jb21wb25lbnQtbWFwcGVyL2NvbXBvbmVudC1tYXBwZXIuY29tcG9uZW50JztcblxuY29uc3QgTk9fSEVBREVSX1RFTVBMQVRFUyA9IFsnU3ViVGFicycsICdTaW1wbGVUYWJsZScsICdDb25maXJtYXRpb24nLCAnRHluYW1pY1RhYnMnLCAnRGV0YWlsc1N1YlRhYnMnXTtcblxuLyoqXG4gKiBXQVJOSU5HOiAgSXQgaXMgbm90IGV4cGVjdGVkIHRoYXQgdGhpcyBmaWxlIHNob3VsZCBiZSBtb2RpZmllZC4gIEl0IGlzIHBhcnQgb2YgaW5mcmFzdHJ1Y3R1cmUgY29kZSB0aGF0IHdvcmtzIHdpdGhcbiAqIFJlZHV4IGFuZCBjcmVhdGlvbi91cGRhdGUgb2YgUmVkdXggY29udGFpbmVycyBhbmQgUENvbm5lY3QuICBNb2RpZnlpbmcgdGhpcyBjb2RlIGNvdWxkIGhhdmUgdW5kZXNpcmVhYmxlIHJlc3VsdHMgYW5kXG4gKiBpcyB0b3RhbGx5IGF0IHlvdXIgb3duIHJpc2suXG4gKi9cblxuLyoqXG4gKlxuICogQHBhcmFtIHBDb25ubiAtIFBDb25uZWN0IE9iamVjdFxuICogQHJldHVybnMgdmlzaWJpbGl0eSBleHByZXNzaW9uIHJlc3VsdCBpZiBleGlzdHMsIG90aGVyd2lzZSB0cnVlXG4gKi9cbmZ1bmN0aW9uIGV2YWx1YXRlVmlzaWJpbGl0eShwQ29ubm4pIHtcbiAgbGV0IGJWaXNpYmlsaXR5ID0gdHJ1ZTtcbiAgY29uc3Qgc1Zpc2liaWxpdHkgPSBwQ29ubm4ubWV0YS5jb25maWcudmlzaWJpbGl0eTtcbiAgaWYgKHNWaXNpYmlsaXR5ICYmIHNWaXNpYmlsaXR5Lmxlbmd0aCkge1xuICAgIC8vIGUuZy4gXCJARSAuRW1iZWRkZWREYXRhX1NlbGVjdGVkVGVzdE5hbWUgPT0gJ1JlYWRvbmx5JyAmJiAuRW1iZWRkZWREYXRhX1NlbGVjdGVkU3ViQ2F0ZWdvcnkgPT0gJ01vZGUnXCJcbiAgICBjb25zdCBhVmlzaWJpbGl0eSA9IHNWaXNpYmlsaXR5LnNwbGl0KCcmJicpO1xuICAgIC8vIGUuZy4gW1wiRW1iZWRkZWREYXRhX1NlbGVjdGVkVGVzdE5hbWVcIjogXCJSZWFkb25seVwiLCBcIkVtYmVkZGVkRGF0YV9TZWxlY3RlZFN1YkNhdGVnb3J5XCI6IFwiTW9kZVwiXVxuICAgIGNvbnN0IGNvbnRleHQgPSBwQ29ubm4uZ2V0Q29udGV4dE5hbWUoKTtcbiAgICAvLyBSZWFkaW5nIHZhbHVlcyBmcm9tIHRoZSBTdG9yZSB0byBldmFsdWF0ZSB0aGUgdmlzaWJpbGl0eSBleHByZXNzaW9uc1xuICAgIGNvbnN0IHN0b3JlRGF0YSA9IFBDb3JlLmdldFN0b3JlKCkuZ2V0U3RhdGUoKT8uZGF0YVtjb250ZXh0XS5jYXNlSW5mby5jb250ZW50O1xuXG4gICAgY29uc3QgaW5pdGlhbFZhbCA9IHt9O1xuICAgIGNvbnN0IG9Qcm9wZXJ0aWVzID0gYVZpc2liaWxpdHkucmVkdWNlKChwcm9wZXJ0aWVzLCBwcm9wZXJ0eSkgPT4ge1xuICAgICAgY29uc3Qga2V5U3RhcnRJbmRleCA9IHByb3BlcnR5LmluZGV4T2YoJy4nKTtcbiAgICAgIGNvbnN0IGtleUVuZEluZGV4ID0gcHJvcGVydHkuaW5kZXhPZignPScpIC0gMTtcbiAgICAgIGNvbnN0IHZhbHVlU3RhcnRJbmRleCA9IHByb3BlcnR5LmluZGV4T2YoXCInXCIpO1xuICAgICAgY29uc3QgdmFsdWVFbmRJbmRleCA9IHByb3BlcnR5Lmxhc3RJbmRleE9mKFwiJ1wiKSAtIDE7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcm9wZXJ0aWVzLFxuICAgICAgICBbcHJvcGVydHkuc3Vic3RyKGtleVN0YXJ0SW5kZXggKyAxLCBrZXlFbmRJbmRleCAtIGtleVN0YXJ0SW5kZXggLSAxKV06IHByb3BlcnR5LnN1YnN0cih2YWx1ZVN0YXJ0SW5kZXggKyAxLCB2YWx1ZUVuZEluZGV4IC0gdmFsdWVTdGFydEluZGV4KVxuICAgICAgfTtcbiAgICB9LCBpbml0aWFsVmFsKTtcblxuICAgIGNvbnN0IHByb3BlcnR5S2V5cyA9IE9iamVjdC5rZXlzKG9Qcm9wZXJ0aWVzKTtcbiAgICBjb25zdCBwcm9wZXJ0eVZhbHVlcyA9IE9iamVjdC52YWx1ZXMob1Byb3BlcnRpZXMpO1xuXG4gICAgZm9yIChsZXQgcHJvcGVydHlJbmRleCA9IDA7IHByb3BlcnR5SW5kZXggPCBwcm9wZXJ0eUtleXMubGVuZ3RoOyBwcm9wZXJ0eUluZGV4KyspIHtcbiAgICAgIGlmIChzdG9yZURhdGFbcHJvcGVydHlLZXlzW3Byb3BlcnR5SW5kZXhdXSAhPT0gcHJvcGVydHlWYWx1ZXNbcHJvcGVydHlJbmRleF0pIHtcbiAgICAgICAgYlZpc2liaWxpdHkgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGJWaXNpYmlsaXR5O1xufVxuXG5pbnRlcmZhY2UgVmlld1Byb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiB0aGlzIGNvbXBvbmVudFxuICB0ZW1wbGF0ZT86IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHNob3dMYWJlbDogYm9vbGVhbjtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHZpc2liaWxpdHk/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlldy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZGlzcGxheU9ubHlGQSQ6IGJvb2xlYW47XG4gIC8vIEBJbnB1dCgpIHVwZGF0ZVRva2VuJDogbnVtYmVyO1xuXG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcblxuICBub0hlYWRlclRlbXBsYXRlcyA9IE5PX0hFQURFUl9URU1QTEFURVM7XG5cbiAgY29uZmlnUHJvcHMkOiBWaWV3UHJvcHM7XG4gIGluaGVyaXRlZFByb3BzJDogYW55O1xuICBhckNoaWxkcmVuJDogYW55W107XG4gIHRlbXBsYXRlTmFtZSQ6IHN0cmluZztcbiAgdGl0bGUkID0gJyc7XG4gIGxhYmVsJCA9ICcnO1xuICBzaG93TGFiZWwkID0gZmFsc2U7XG4gIHZpc2liaWxpdHkkID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG5cbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cblxuICBjaGVja0FuZFVwZGF0ZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCB7IHBDb25uJCB9ID0gY2hhbmdlcztcblxuICAgIGlmIChwQ29ubiQucHJldmlvdXNWYWx1ZSAmJiBwQ29ubiQucHJldmlvdXNWYWx1ZSAhPT0gcENvbm4kLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVNlbGYoKSB7XG4gICAgaWYgKHRoaXMuYW5ndWxhclBDb25uZWN0LmdldENvbXBvbmVudElEKHRoaXMpID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBkZWJ1Z2dlcjtcblxuICAgIC8vIG5vcm1hbGl6ZSB0aGlzLnBDb25uJCBpbiBjYXNlIGl0IGNvbnRhaW5zIGEgJ3JlZmVyZW5jZSdcbiAgICB0aGlzLnBDb25uJCA9IFJlZmVyZW5jZUNvbXBvbmVudC5ub3JtYWxpemVQQ29ubih0aGlzLnBDb25uJCk7XG5cbiAgICB0aGlzLmNvbmZpZ1Byb3BzJCA9IHRoaXMucENvbm4kLnJlc29sdmVDb25maWdQcm9wcyh0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpKSBhcyBWaWV3UHJvcHM7XG4gICAgdGhpcy5pbmhlcml0ZWRQcm9wcyQgPSB0aGlzLnBDb25uJC5nZXRJbmhlcml0ZWRQcm9wcygpO1xuXG4gICAgLy8gTk9URTogdGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eSddIGlzIHVzZWQgaW4gdmlldy5jb21wb25lbnQudHMgc3VjaCB0aGF0XG4gICAgLy8gIHRoZSBWaWV3IHdpbGwgb25seSBiZSByZW5kZXJlZCB3aGVuIHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHknXSBpcyBmYWxzZS5cbiAgICAvLyAgSXQgV0lMTCByZW5kZXIgaWYgdHJ1ZSBvciB1bmRlZmluZWQuXG5cbiAgICB0aGlzLnRlbXBsYXRlTmFtZSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC50ZW1wbGF0ZSB8fCAnJztcbiAgICB0aGlzLnRpdGxlJCA9IHRoaXMuY29uZmlnUHJvcHMkLnRpdGxlIHx8ICcnO1xuICAgIHRoaXMubGFiZWwkID0gdGhpcy5jb25maWdQcm9wcyQubGFiZWwgfHwgJyc7XG4gICAgdGhpcy5zaG93TGFiZWwkID0gdGhpcy5jb25maWdQcm9wcyQuc2hvd0xhYmVsIHx8IHRoaXMuc2hvd0xhYmVsJDtcbiAgICAvLyBsYWJlbCAmIHNob3dMYWJlbCB3aXRoaW4gaW5oZXJpdGVkUHJvcHMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGNvbmZpZ1Byb3BzXG4gICAgdGhpcy5sYWJlbCQgPSB0aGlzLmluaGVyaXRlZFByb3BzJC5sYWJlbCB8fCB0aGlzLmxhYmVsJDtcbiAgICB0aGlzLnNob3dMYWJlbCQgPSB0aGlzLmluaGVyaXRlZFByb3BzJC5zaG93TGFiZWwgfHwgdGhpcy5zaG93TGFiZWwkO1xuICAgIC8vIGNoaWxkcmVuIG1heSBoYXZlIGEgJ3JlZmVyZW5jZScgc28gbm9ybWFsaXplIHRoZSBjaGlsZHJlbiBhcnJheVxuICAgIHRoaXMuYXJDaGlsZHJlbiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm5BcnJheSh0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpKTtcblxuICAgIHRoaXMudmlzaWJpbGl0eSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5ID8/IHRoaXMudmlzaWJpbGl0eSQ7XG5cbiAgICAvKipcbiAgICAgKiBJbiBpbnN0YW5jZXMgd2hlcmUgdGhlcmUgaXMgY29udGV4dCwgbGlrZSB3aXRoIFwic2hpcHBpbmdBZGRyZXNzLFwiIHRoZSBwYWdlUmVmZXJlbmNlIGJlY29tZXMgXCJjYXNlSW5mby5jb250ZW50LnNoaXBwaW5nQWRkcmVzcy5cIlxuICAgICAqIFRoaXMgbGVhZHMgdG8gcHJvYmxlbXMgaW4gdGhlIGdldFByb3BlcnR5IEFQSSwgYXMgaXQgaW5jb3JyZWN0bHkgYXNzZXNzZXMgdGhlIHZpc2liaWxpdHkgY29uZGl0aW9uIGJ5IGxvb2tpbmcgaW4gdGhlIHdyb25nIGxvY2F0aW9uXG4gICAgICogaW4gdGhlIFN0b3JlIGZvciB0aGUgcHJvcGVydHkgdmFsdWVzLiBSZWZlcmVuY2UgY29tcG9uZW50IHNob3VsZCBiZSBhYmxlIHRvIGhhbmRsZSBzdWNoIHNjZW5hcmlvcyhhcyBkb25lIGluIFNESy1SKSBzaW5jZSBpdCBoYXMgdGhlXG4gICAgICogZXhwZWN0ZWQgcGFnZVJlZmVyZW5jZSB2YWx1ZXMsIHRoZSBWaWV3IGNvbXBvbmVudCBjdXJyZW50bHkgY2Fubm90IGhhbmRsZSB0aGlzLlxuICAgICAqIFRoZSByZXNvbHV0aW9uIGxpZXMgaW4gdHJhbnNmZXJyaW5nIHRoaXMgcmVzcG9uc2liaWxpdHkgdG8gdGhlIFJlZmVyZW5jZSBjb21wb25lbnQsIGVsaW1pbmF0aW5nIHRoZSBuZWVkIGZvciB0aGlzIGNvZGUgd2hlbiBSZWZlcmVuY2VcbiAgICAgKiBjb21wb25lbnQgaXMgYWJsZSB0byBoYW5kbGUgaXQuXG4gICAgICovXG4gICAgaWYgKCF0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5ICYmIHRoaXMucENvbm4kLmdldFBhZ2VSZWZlcmVuY2UoKS5sZW5ndGggPiAnY2FzZUluZm8uY29udGVudCcubGVuZ3RoKSB7XG4gICAgICB0aGlzLnZpc2liaWxpdHkkID0gZXZhbHVhdGVWaXNpYmlsaXR5KHRoaXMucENvbm4kKTtcbiAgICB9XG5cbiAgICAvLyB3YXM6ICB0aGlzLmFyQ2hpbGRyZW4kID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBBcnJheTxhbnk+O1xuXG4gICAgLy8gZGVidWdcbiAgICAvLyBsZXQgIGtpZExpc3Q6IHN0cmluZyA9IFwiXCI7XG4gICAgLy8gZm9yIChsZXQgaSBpbiB0aGlzLmFyQ2hpbGRyZW4kKSB7XG4gICAgLy8gICBraWRMaXN0ID0ga2lkTGlzdC5jb25jYXQodGhpcy5hckNoaWxkcmVuJFtpXS5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSkuY29uY2F0KFwiLFwiKTtcbiAgICAvLyB9XG4gICAgLy8gY29uc29sZS5sb2coXCItLT52aWV3IHVwZGF0ZTogXCIgKyB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRJRCh0aGlzKSArIFwiLCB0ZW1wbGF0ZTogXCIgKyB0aGlzLnRlbXBsYXRlTmFtZSQgKyBcIiwga2lkczogXCIgKyBraWRMaXN0KTtcbiAgfVxuXG4gIC8vIEpBIC0gYWRhcHRpbmcgYWRkaXRpb25hbFByb3BzIGZyb20gTmVidWxhL0NvbnN0ZWxsYXRpb24gdmVyc2lvbiB3aGljaCB1c2VzIHN0YXRpYyBtZXRob2RzXG4gIC8vICAgIG9uIHRoZSBjb21wb25lbnQgY2xhc3NlcyBzdG9yZWQgaW4gUENvbXBvbmVudHMgKHRoYXQgQW5ndWxhciBkb2Vzbid0IGhhdmUpLi4uXG4gIGFkZGl0aW9uYWxQcm9wcyhzdGF0ZTogYW55LCBnZXRQQ29ubmVjdDogYW55KSB7XG4gICAgbGV0IHByb3BPYmogPSB7fTtcblxuICAgIC8vIFdlIGFscmVhZHkgaGF2ZSB0aGUgdGVtcGxhdGUgbmFtZSBpbiB0aGlzLnRlbXBsYXRlTmFtZSRcbiAgICBpZiAodGhpcy50ZW1wbGF0ZU5hbWUkICE9PSAnJykge1xuICAgICAgbGV0IGFsbEZpZWxkcyA9IHt9O1xuXG4gICAgICAvLyBUaGVzZSB1c2VzIGFyZSBhZGFwdGVkIGZyb20gTmVidWxhL0NvbnN0ZWxsYXRpb24gQ2FzZVN1bW1hcnkuYWRkaXRpb25hbFByb3BzXG4gICAgICBzd2l0Y2ggKHRoaXMudGVtcGxhdGVOYW1lJCkge1xuICAgICAgICBjYXNlICdDYXNlU3VtbWFyeSc6XG4gICAgICAgICAgYWxsRmllbGRzID0gZ2V0QWxsRmllbGRzKGdldFBDb25uZWN0KTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY2FzZS1kZWNsYXJhdGlvbnNcbiAgICAgICAgICBjb25zdCB1bnJlc0ZpZWxkcyA9IHtcbiAgICAgICAgICAgIHByaW1hcnlGaWVsZHM6IGFsbEZpZWxkc1swXSxcbiAgICAgICAgICAgIHNlY29uZGFyeUZpZWxkczogYWxsRmllbGRzWzFdXG4gICAgICAgICAgfTtcbiAgICAgICAgICBwcm9wT2JqID0gZ2V0UENvbm5lY3QucmVzb2x2ZUNvbmZpZ1Byb3BzKHVucmVzRmllbGRzKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdEZXRhaWxzJzpcbiAgICAgICAgICBhbGxGaWVsZHMgPSBnZXRBbGxGaWVsZHMoZ2V0UENvbm5lY3QpO1xuICAgICAgICAgIHByb3BPYmogPSB7IGZpZWxkczogYWxsRmllbGRzWzBdIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BPYmo7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwidmlzaWJpbGl0eSQgIT09IGZhbHNlXCIgY2xhc3M9XCJuZy12aWV3LXRvcFwiPlxuICA8ZGl2ICpuZ0lmPVwic2hvd0xhYmVsJCAmJiBsYWJlbCQgJiYgIW5vSGVhZGVyVGVtcGxhdGVzLmluY2x1ZGVzKHRlbXBsYXRlTmFtZSQpXCIgY2xhc3M9XCJ0ZW1wbGF0ZS10aXRsZS1jb250YWluZXJcIj5cbiAgICA8c3Bhbj57eyBsYWJlbCQgfX08L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZU5hbWUkOyBlbHNlIG5vVGVtcGxhdGVcIj5cbiAgICA8ZGl2PlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAgICAgW25hbWVdPVwidGVtcGxhdGVOYW1lJFwiXG4gICAgICAgIFtwcm9wc109XCJ7IGZvcm1Hcm91cCQsIHBDb25uJCwgZGlzcGxheU9ubHlGQSQgfVwiXG4gICAgICAgIGVycm9yTXNnPVwiVmlldyB0ZW1wbGF0ZSBub3QgcmVjb2duaXplZDogW3t7IHRlbXBsYXRlTmFtZSQgfX1dXCJcbiAgICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjbm9UZW1wbGF0ZT5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgYXJDaGlsZHJlbiRcIj5cbiAgICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICAgIFtuYW1lXT1cImtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKVwiXG4gICAgICAgIFtwcm9wc109XCJ7IHBDb25uJDoga2lkLmdldFBDb25uZWN0KCkgfVwiXG4gICAgICAgIGVycm9yTXNnPVwiVmlldyBNaXNzaW5nIChkaXNwbGF5QWxsKToge3sga2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpIH19XCJcbiAgICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2NvbXBvbmVudHMvaW5mcmEvdmlldy92aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy9pbmZyYS92aWV3L3ZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsVUFBVSxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7OztBQUV4RyxNQUFNLG1CQUFtQixHQUFHLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDeEcsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixTQUFTO0lBQ1QsZUFBZTtJQUNmLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsbUJBQW1CO0NBQ3BCLENBQUM7QUFFRixTQUFTLGlCQUFpQixDQUFDLFFBQVE7SUFDakMsT0FBTyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVEOzs7O0dBSUc7QUFFSDs7OztHQUlHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxNQUFNO0lB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QyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDOytHQUcxRCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBmb3J3YXJkUmVmLCBTaW1wbGVDaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFuZ3VsYXJQQ29ubmVjdERhdGEsIEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2FuZ3VsYXItcGNvbm5lY3QnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy91dGlscyc7XG5pbXBvcnQgeyBnZXRBbGxGaWVsZHMgfSBmcm9tICcuLi8uLi90ZW1wbGF0ZS91dGlscyc7XG5pbXBvcnQgeyBSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuLi9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRNYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fYnJpZGdlL2NvbXBvbmVudC1tYXBwZXIvY29tcG9uZW50LW1hcHBlci5jb21wb25lbnQnO1xuXG5jb25zdCBOT19IRUFERVJfVEVNUExBVEVTID0gWydTdWJUYWJzJywgJ1NpbXBsZVRhYmxlJywgJ0NvbmZpcm1hdGlvbicsICdEeW5hbWljVGFicycsICdEZXRhaWxzU3ViVGFicyddO1xuY29uc3QgREVUQUlMU19URU1QTEFURVMgPSBbXG4gICdEZXRhaWxzJyxcbiAgJ0RldGFpbHNGaWVsZHMnLFxuICAnRGV0YWlsc09uZUNvbHVtbicsXG4gICdEZXRhaWxzU3ViVGFicycsXG4gICdEZXRhaWxzVGhyZWVDb2x1bW4nLFxuICAnRGV0YWlsc1R3b0NvbHVtbicsXG4gICdOYXJyb3dXaWRlRGV0YWlscycsXG4gICdXaWRlTmFycm93RGV0YWlscydcbl07XG5cbmZ1bmN0aW9uIGlzRGV0YWlsc1RlbXBsYXRlKHRlbXBsYXRlKSB7XG4gIHJldHVybiBERVRBSUxTX1RFTVBMQVRFUy5pbmNsdWRlcyh0ZW1wbGF0ZSk7XG59XG5cbi8qKlxuICogV0FSTklORzogIEl0IGlzIG5vdCBleHBlY3RlZCB0aGF0IHRoaXMgZmlsZSBzaG91bGQgYmUgbW9kaWZpZWQuICBJdCBpcyBwYXJ0IG9mIGluZnJhc3RydWN0dXJlIGNvZGUgdGhhdCB3b3JrcyB3aXRoXG4gKiBSZWR1eCBhbmQgY3JlYXRpb24vdXBkYXRlIG9mIFJlZHV4IGNvbnRhaW5lcnMgYW5kIFBDb25uZWN0LiAgTW9kaWZ5aW5nIHRoaXMgY29kZSBjb3VsZCBoYXZlIHVuZGVzaXJlYWJsZSByZXN1bHRzIGFuZFxuICogaXMgdG90YWxseSBhdCB5b3VyIG93biByaXNrLlxuICovXG5cbi8qKlxuICpcbiAqIEBwYXJhbSBwQ29ubm4gLSBQQ29ubmVjdCBPYmplY3RcbiAqIEByZXR1cm5zIHZpc2liaWxpdHkgZXhwcmVzc2lvbiByZXN1bHQgaWYgZXhpc3RzLCBvdGhlcndpc2UgdHJ1ZVxuICovXG5mdW5jdGlvbiBldmFsdWF0ZVZpc2liaWxpdHkocENvbm5uKSB7XG4gIGxldCBiVmlzaWJpbGl0eSA9IHRydWU7XG4gIGNvbnN0IHNWaXNpYmlsaXR5ID0gcENvbm5uLm1ldGEuY29uZmlnLnZpc2liaWxpdHk7XG4gIGlmIChzVmlzaWJpbGl0eSAmJiBzVmlzaWJpbGl0eS5sZW5ndGgpIHtcbiAgICAvLyBlLmcuIFwiQEUgLkVtYmVkZGVkRGF0YV9TZWxlY3RlZFRlc3ROYW1lID09ICdSZWFkb25seScgJiYgLkVtYmVkZGVkRGF0YV9TZWxlY3RlZFN1YkNhdGVnb3J5ID09ICdNb2RlJ1wiXG4gICAgY29uc3QgYVZpc2liaWxpdHkgPSBzVmlzaWJpbGl0eS5zcGxpdCgnJiYnKTtcbiAgICAvLyBlLmcuIFtcIkVtYmVkZGVkRGF0YV9TZWxlY3RlZFRlc3ROYW1lXCI6IFwiUmVhZG9ubHlcIiwgXCJFbWJlZGRlZERhdGFfU2VsZWN0ZWRTdWJDYXRlZ29yeVwiOiBcIk1vZGVcIl1cbiAgICBjb25zdCBjb250ZXh0ID0gcENvbm5uLmdldENvbnRleHROYW1lKCk7XG4gICAgLy8gUmVhZGluZyB2YWx1ZXMgZnJvbSB0aGUgU3RvcmUgdG8gZXZhbHVhdGUgdGhlIHZpc2liaWxpdHkgZXhwcmVzc2lvbnNcbiAgICBjb25zdCBzdG9yZURhdGEgPSBQQ29yZS5nZXRTdG9yZSgpLmdldFN0YXRlKCk/LmRhdGFbY29udGV4dF0uY2FzZUluZm8uY29udGVudDtcblxuICAgIGNvbnN0IGluaXRpYWxWYWwgPSB7fTtcbiAgICBjb25zdCBvUHJvcGVydGllcyA9IGFWaXNpYmlsaXR5LnJlZHVjZSgocHJvcGVydGllcywgcHJvcGVydHkpID0+IHtcbiAgICAgIGNvbnN0IGtleVN0YXJ0SW5kZXggPSBwcm9wZXJ0eS5pbmRleE9mKCcuJyk7XG4gICAgICBjb25zdCBrZXlFbmRJbmRleCA9IHByb3BlcnR5LmluZGV4T2YoJz0nKSAtIDE7XG4gICAgICBjb25zdCB2YWx1ZVN0YXJ0SW5kZXggPSBwcm9wZXJ0eS5pbmRleE9mKFwiJ1wiKTtcbiAgICAgIGNvbnN0IHZhbHVlRW5kSW5kZXggPSBwcm9wZXJ0eS5sYXN0SW5kZXhPZihcIidcIikgLSAxO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJvcGVydGllcyxcbiAgICAgICAgW3Byb3BlcnR5LnN1YnN0cihrZXlTdGFydEluZGV4ICsgMSwga2V5RW5kSW5kZXggLSBrZXlTdGFydEluZGV4IC0gMSldOiBwcm9wZXJ0eS5zdWJzdHIodmFsdWVTdGFydEluZGV4ICsgMSwgdmFsdWVFbmRJbmRleCAtIHZhbHVlU3RhcnRJbmRleClcbiAgICAgIH07XG4gICAgfSwgaW5pdGlhbFZhbCk7XG5cbiAgICBjb25zdCBwcm9wZXJ0eUtleXMgPSBPYmplY3Qua2V5cyhvUHJvcGVydGllcyk7XG4gICAgY29uc3QgcHJvcGVydHlWYWx1ZXMgPSBPYmplY3QudmFsdWVzKG9Qcm9wZXJ0aWVzKTtcblxuICAgIGZvciAobGV0IHByb3BlcnR5SW5kZXggPSAwOyBwcm9wZXJ0eUluZGV4IDwgcHJvcGVydHlLZXlzLmxlbmd0aDsgcHJvcGVydHlJbmRleCsrKSB7XG4gICAgICBpZiAoc3RvcmVEYXRhW3Byb3BlcnR5S2V5c1twcm9wZXJ0eUluZGV4XV0gIT09IHByb3BlcnR5VmFsdWVzW3Byb3BlcnR5SW5kZXhdKSB7XG4gICAgICAgIGJWaXNpYmlsaXR5ID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBiVmlzaWJpbGl0eTtcbn1cblxuaW50ZXJmYWNlIFZpZXdQcm9wcyB7XG4gIC8vIElmIGFueSwgZW50ZXIgYWRkaXRpb25hbCBwcm9wcyB0aGF0IG9ubHkgZXhpc3Qgb24gdGhpcyBjb21wb25lbnRcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBzaG93TGFiZWw6IGJvb2xlYW47XG4gIHRpdGxlPzogc3RyaW5nO1xuICB2aXNpYmlsaXR5PzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDb21wb25lbnRNYXBwZXJDb21wb25lbnQpXVxufSlcbmV4cG9ydCBjbGFzcyBWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuICBASW5wdXQoKSBmb3JtR3JvdXAkOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGRpc3BsYXlPbmx5RkEkOiBib29sZWFuO1xuICAvLyBASW5wdXQoKSB1cGRhdGVUb2tlbiQ6IG51bWJlcjtcblxuICBhbmd1bGFyUENvbm5lY3REYXRhOiBBbmd1bGFyUENvbm5lY3REYXRhID0ge307XG5cbiAgbm9IZWFkZXJUZW1wbGF0ZXMgPSBOT19IRUFERVJfVEVNUExBVEVTO1xuXG4gIGNvbmZpZ1Byb3BzJDogVmlld1Byb3BzO1xuICBpbmhlcml0ZWRQcm9wcyQ6IGFueTtcbiAgYXJDaGlsZHJlbiQ6IGFueVtdO1xuICB0ZW1wbGF0ZU5hbWUkOiBzdHJpbmc7XG4gIHRpdGxlJCA9ICcnO1xuICBsYWJlbCQgPSAnJztcbiAgc2hvd0xhYmVsJCA9IGZhbHNlO1xuICB2aXNpYmlsaXR5JCA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbmd1bGFyUENvbm5lY3Q6IEFuZ3VsYXJQQ29ubmVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1dGlsczogVXRpbHNcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuXG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgLy8gQ2FsbGJhY2sgcGFzc2VkIHdoZW4gc3Vic2NyaWJpbmcgdG8gc3RvcmUgY2hhbmdlXG4gIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy5jaGVja0FuZFVwZGF0ZSgpO1xuICB9XG5cbiAgY2hlY2tBbmRVcGRhdGUoKSB7XG4gICAgLy8gU2hvdWxkIGFsd2F5cyBjaGVjayB0aGUgYnJpZGdlIHRvIHNlZSBpZiB0aGUgY29tcG9uZW50IHNob3VsZFxuICAgIC8vIHVwZGF0ZSBpdHNlbGYgKHJlLXJlbmRlcilcbiAgICBjb25zdCBiVXBkYXRlU2VsZiA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnNob3VsZENvbXBvbmVudFVwZGF0ZSh0aGlzKTtcblxuICAgIC8vIE9OTFkgY2FsbCB1cGRhdGVTZWxmIHdoZW4gdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlXG4gICAgaWYgKGJVcGRhdGVTZWxmKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGYoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgeyBwQ29ubiQgfSA9IGNoYW5nZXM7XG5cbiAgICBpZiAocENvbm4kLnByZXZpb3VzVmFsdWUgJiYgcENvbm4kLnByZXZpb3VzVmFsdWUgIT09IHBDb25uJC5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWxmKCkge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRJRCh0aGlzKSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gZGVidWdnZXI7XG5cbiAgICAvLyBub3JtYWxpemUgdGhpcy5wQ29ubiQgaW4gY2FzZSBpdCBjb250YWlucyBhICdyZWZlcmVuY2UnXG4gICAgdGhpcy5wQ29ubiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm4odGhpcy5wQ29ubiQpO1xuXG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSkgYXMgVmlld1Byb3BzO1xuICAgIHRoaXMuaW5oZXJpdGVkUHJvcHMkID0gdGhpcy5wQ29ubiQuZ2V0SW5oZXJpdGVkUHJvcHMoKTtcblxuICAgIC8vIE5PVEU6IHRoaXMuY29uZmlnUHJvcHMkLnZpc2liaWxpdHknXSBpcyB1c2VkIGluIHZpZXcuY29tcG9uZW50LnRzIHN1Y2ggdGhhdFxuICAgIC8vICB0aGUgVmlldyB3aWxsIG9ubHkgYmUgcmVuZGVyZWQgd2hlbiB0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5J10gaXMgZmFsc2UuXG4gICAgLy8gIEl0IFdJTEwgcmVuZGVyIGlmIHRydWUgb3IgdW5kZWZpbmVkLlxuXG4gICAgdGhpcy50ZW1wbGF0ZU5hbWUkID0gdGhpcy5jb25maWdQcm9wcyQudGVtcGxhdGUgfHwgJyc7XG4gICAgdGhpcy50aXRsZSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC50aXRsZSB8fCAnJztcbiAgICB0aGlzLmxhYmVsJCA9IHRoaXMuY29uZmlnUHJvcHMkLmxhYmVsIHx8ICcnO1xuICAgIHRoaXMuc2hvd0xhYmVsJCA9IHRoaXMuY29uZmlnUHJvcHMkLnNob3dMYWJlbCB8fCBpc0RldGFpbHNUZW1wbGF0ZSh0aGlzLnRlbXBsYXRlTmFtZSQpIHx8IHRoaXMuc2hvd0xhYmVsJDtcbiAgICAvLyBsYWJlbCAmIHNob3dMYWJlbCB3aXRoaW4gaW5oZXJpdGVkUHJvcHMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGNvbmZpZ1Byb3BzXG4gICAgdGhpcy5sYWJlbCQgPSB0aGlzLmluaGVyaXRlZFByb3BzJC5sYWJlbCB8fCB0aGlzLmxhYmVsJDtcbiAgICB0aGlzLnNob3dMYWJlbCQgPSB0aGlzLmluaGVyaXRlZFByb3BzJC5zaG93TGFiZWwgfHwgdGhpcy5zaG93TGFiZWwkO1xuICAgIC8vIGNoaWxkcmVuIG1heSBoYXZlIGEgJ3JlZmVyZW5jZScgc28gbm9ybWFsaXplIHRoZSBjaGlsZHJlbiBhcnJheVxuICAgIHRoaXMuYXJDaGlsZHJlbiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm5BcnJheSh0aGlzLnBDb25uJC5nZXRDaGlsZHJlbigpKTtcblxuICAgIHRoaXMudmlzaWJpbGl0eSQgPSB0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5ID8/IHRoaXMudmlzaWJpbGl0eSQ7XG5cbiAgICAvKipcbiAgICAgKiBJbiBpbnN0YW5jZXMgd2hlcmUgdGhlcmUgaXMgY29udGV4dCwgbGlrZSB3aXRoIFwic2hpcHBpbmdBZGRyZXNzLFwiIHRoZSBwYWdlUmVmZXJlbmNlIGJlY29tZXMgXCJjYXNlSW5mby5jb250ZW50LnNoaXBwaW5nQWRkcmVzcy5cIlxuICAgICAqIFRoaXMgbGVhZHMgdG8gcHJvYmxlbXMgaW4gdGhlIGdldFByb3BlcnR5IEFQSSwgYXMgaXQgaW5jb3JyZWN0bHkgYXNzZXNzZXMgdGhlIHZpc2liaWxpdHkgY29uZGl0aW9uIGJ5IGxvb2tpbmcgaW4gdGhlIHdyb25nIGxvY2F0aW9uXG4gICAgICogaW4gdGhlIFN0b3JlIGZvciB0aGUgcHJvcGVydHkgdmFsdWVzLiBSZWZlcmVuY2UgY29tcG9uZW50IHNob3VsZCBiZSBhYmxlIHRvIGhhbmRsZSBzdWNoIHNjZW5hcmlvcyhhcyBkb25lIGluIFNESy1SKSBzaW5jZSBpdCBoYXMgdGhlXG4gICAgICogZXhwZWN0ZWQgcGFnZVJlZmVyZW5jZSB2YWx1ZXMsIHRoZSBWaWV3IGNvbXBvbmVudCBjdXJyZW50bHkgY2Fubm90IGhhbmRsZSB0aGlzLlxuICAgICAqIFRoZSByZXNvbHV0aW9uIGxpZXMgaW4gdHJhbnNmZXJyaW5nIHRoaXMgcmVzcG9uc2liaWxpdHkgdG8gdGhlIFJlZmVyZW5jZSBjb21wb25lbnQsIGVsaW1pbmF0aW5nIHRoZSBuZWVkIGZvciB0aGlzIGNvZGUgd2hlbiBSZWZlcmVuY2VcbiAgICAgKiBjb21wb25lbnQgaXMgYWJsZSB0byBoYW5kbGUgaXQuXG4gICAgICovXG4gICAgaWYgKCF0aGlzLmNvbmZpZ1Byb3BzJC52aXNpYmlsaXR5ICYmIHRoaXMucENvbm4kLmdldFBhZ2VSZWZlcmVuY2UoKS5sZW5ndGggPiAnY2FzZUluZm8uY29udGVudCcubGVuZ3RoKSB7XG4gICAgICB0aGlzLnZpc2liaWxpdHkkID0gZXZhbHVhdGVWaXNpYmlsaXR5KHRoaXMucENvbm4kKTtcbiAgICB9XG5cbiAgICAvLyB3YXM6ICB0aGlzLmFyQ2hpbGRyZW4kID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKSBhcyBBcnJheTxhbnk+O1xuXG4gICAgLy8gZGVidWdcbiAgICAvLyBsZXQgIGtpZExpc3Q6IHN0cmluZyA9IFwiXCI7XG4gICAgLy8gZm9yIChsZXQgaSBpbiB0aGlzLmFyQ2hpbGRyZW4kKSB7XG4gICAgLy8gICBraWRMaXN0ID0ga2lkTGlzdC5jb25jYXQodGhpcy5hckNoaWxkcmVuJFtpXS5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKSkuY29uY2F0KFwiLFwiKTtcbiAgICAvLyB9XG4gICAgLy8gY29uc29sZS5sb2coXCItLT52aWV3IHVwZGF0ZTogXCIgKyB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5nZXRDb21wb25lbnRJRCh0aGlzKSArIFwiLCB0ZW1wbGF0ZTogXCIgKyB0aGlzLnRlbXBsYXRlTmFtZSQgKyBcIiwga2lkczogXCIgKyBraWRMaXN0KTtcbiAgfVxuXG4gIC8vIEpBIC0gYWRhcHRpbmcgYWRkaXRpb25hbFByb3BzIGZyb20gTmVidWxhL0NvbnN0ZWxsYXRpb24gdmVyc2lvbiB3aGljaCB1c2VzIHN0YXRpYyBtZXRob2RzXG4gIC8vICAgIG9uIHRoZSBjb21wb25lbnQgY2xhc3NlcyBzdG9yZWQgaW4gUENvbXBvbmVudHMgKHRoYXQgQW5ndWxhciBkb2Vzbid0IGhhdmUpLi4uXG4gIGFkZGl0aW9uYWxQcm9wcyhzdGF0ZTogYW55LCBnZXRQQ29ubmVjdDogYW55KSB7XG4gICAgbGV0IHByb3BPYmogPSB7fTtcblxuICAgIC8vIFdlIGFscmVhZHkgaGF2ZSB0aGUgdGVtcGxhdGUgbmFtZSBpbiB0aGlzLnRlbXBsYXRlTmFtZSRcbiAgICBpZiAodGhpcy50ZW1wbGF0ZU5hbWUkICE9PSAnJykge1xuICAgICAgbGV0IGFsbEZpZWxkcyA9IHt9O1xuXG4gICAgICAvLyBUaGVzZSB1c2VzIGFyZSBhZGFwdGVkIGZyb20gTmVidWxhL0NvbnN0ZWxsYXRpb24gQ2FzZVN1bW1hcnkuYWRkaXRpb25hbFByb3BzXG4gICAgICBzd2l0Y2ggKHRoaXMudGVtcGxhdGVOYW1lJCkge1xuICAgICAgICBjYXNlICdDYXNlU3VtbWFyeSc6XG4gICAgICAgICAgYWxsRmllbGRzID0gZ2V0QWxsRmllbGRzKGdldFBDb25uZWN0KTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY2FzZS1kZWNsYXJhdGlvbnNcbiAgICAgICAgICBjb25zdCB1bnJlc0ZpZWxkcyA9IHtcbiAgICAgICAgICAgIHByaW1hcnlGaWVsZHM6IGFsbEZpZWxkc1swXSxcbiAgICAgICAgICAgIHNlY29uZGFyeUZpZWxkczogYWxsRmllbGRzWzFdXG4gICAgICAgICAgfTtcbiAgICAgICAgICBwcm9wT2JqID0gZ2V0UENvbm5lY3QucmVzb2x2ZUNvbmZpZ1Byb3BzKHVucmVzRmllbGRzKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdEZXRhaWxzJzpcbiAgICAgICAgICBhbGxGaWVsZHMgPSBnZXRBbGxGaWVsZHMoZ2V0UENvbm5lY3QpO1xuICAgICAgICAgIHByb3BPYmogPSB7IGZpZWxkczogYWxsRmllbGRzWzBdIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BPYmo7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4pIHtcbiAgICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YS51bnN1YnNjcmliZUZuKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwidmlzaWJpbGl0eSQgIT09IGZhbHNlXCIgY2xhc3M9XCJuZy12aWV3LXRvcFwiPlxuICA8ZGl2ICpuZ0lmPVwic2hvd0xhYmVsJCAmJiBsYWJlbCQgJiYgIW5vSGVhZGVyVGVtcGxhdGVzLmluY2x1ZGVzKHRlbXBsYXRlTmFtZSQpXCIgY2xhc3M9XCJ0ZW1wbGF0ZS10aXRsZS1jb250YWluZXJcIj5cbiAgICA8c3Bhbj57eyBsYWJlbCQgfX08L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZU5hbWUkOyBlbHNlIG5vVGVtcGxhdGVcIj5cbiAgICA8ZGl2PlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAgICAgW25hbWVdPVwidGVtcGxhdGVOYW1lJFwiXG4gICAgICAgIFtwcm9wc109XCJ7IGZvcm1Hcm91cCQsIHBDb25uJCwgZGlzcGxheU9ubHlGQSQgfVwiXG4gICAgICAgIGVycm9yTXNnPVwiVmlldyB0ZW1wbGF0ZSBub3QgcmVjb2duaXplZDogW3t7IHRlbXBsYXRlTmFtZSQgfX1dXCJcbiAgICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjbm9UZW1wbGF0ZT5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBraWQgb2YgYXJDaGlsZHJlbiRcIj5cbiAgICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICAgIFtuYW1lXT1cImtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKVwiXG4gICAgICAgIFtwcm9wc109XCJ7IHBDb25uJDoga2lkLmdldFBDb25uZWN0KCkgfVwiXG4gICAgICAgIGVycm9yTXNnPVwiVmlldyBNaXNzaW5nIChkaXNwbGF5QWxsKToge3sga2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpIH19XCJcbiAgICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
@@ -3,6 +3,9 @@ import * as i0 from "@angular/core";
3
3
  export class FormTemplateBase {
4
4
  ngOnDestroy() {
5
5
  PCore.getContextTreeManager().removeContextTreeNode(this.pConn$.getContextName());
6
+ if (this.angularPConnectData?.unsubscribeFn) {
7
+ this.angularPConnectData.unsubscribeFn();
8
+ }
6
9
  }
7
10
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FormTemplateBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8
11
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: FormTemplateBase, ngImport: i0 }); }
@@ -10,4 +13,4 @@ export class FormTemplateBase {
10
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FormTemplateBase, decorators: [{
11
14
  type: Directive
12
15
  }] });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS10ZW1wbGF0ZS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL3RlbXBsYXRlL2Jhc2UvZm9ybS10ZW1wbGF0ZS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7O0FBR3JELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsV0FBVztRQUNULEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDOytHQUxVLGdCQUFnQjttR0FBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgRm9ybVRlbXBsYXRlQmFzZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHBDb25uJDogYW55O1xuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIFBDb3JlLmdldENvbnRleHRUcmVlTWFuYWdlcigpLnJlbW92ZUNvbnRleHRUcmVlTm9kZSh0aGlzLnBDb25uJC5nZXRDb250ZXh0TmFtZSgpKTtcbiAgfVxufVxuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS10ZW1wbGF0ZS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL3RlbXBsYXRlL2Jhc2UvZm9ybS10ZW1wbGF0ZS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7O0FBSXJELE1BQU0sT0FBTyxnQkFBZ0I7SUFJM0IsV0FBVztRQUNULEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUVsRixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7K0dBVlUsZ0JBQWdCO21HQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEZvcm1UZW1wbGF0ZUJhc2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwQ29ubiQ6IGFueTtcbiAgYW5ndWxhclBDb25uZWN0RGF0YTogQW5ndWxhclBDb25uZWN0RGF0YTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBQQ29yZS5nZXRDb250ZXh0VHJlZU1hbmFnZXIoKS5yZW1vdmVDb250ZXh0VHJlZU5vZGUodGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKSk7XG5cbiAgICBpZiAodGhpcy5hbmd1bGFyUENvbm5lY3REYXRhPy51bnN1YnNjcmliZUZuKSB7XG4gICAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbigpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -4,14 +4,35 @@ import { ReferenceComponent } from '../../infra/reference/reference.component';
4
4
  import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
5
5
  import { FormTemplateBase } from '../base/form-template-base';
6
6
  import * as i0 from "@angular/core";
7
- import * as i1 from "../../../_helpers/template-utils";
8
- import * as i2 from "@angular/common";
7
+ import * as i1 from "../../../_bridge/angular-pconnect";
8
+ import * as i2 from "../../../_helpers/template-utils";
9
+ import * as i3 from "@angular/common";
10
+ function areViewsChanged(oldViews, newViews) {
11
+ if (oldViews?.length !== newViews?.length) {
12
+ return true;
13
+ }
14
+ return !oldViews?.every((oldView, index) => {
15
+ const newView = newViews[index];
16
+ return oldView.getPConnect().viewName === newView.getPConnect().viewName;
17
+ });
18
+ }
9
19
  export class DefaultFormComponent extends FormTemplateBase {
10
- constructor(templateUtils) {
20
+ constructor(angularPConnect, templateUtils) {
11
21
  super();
22
+ this.angularPConnect = angularPConnect;
12
23
  this.templateUtils = templateUtils;
24
+ // Used with AngularPConnect
25
+ this.angularPConnectData = {};
13
26
  }
14
27
  ngOnInit() {
28
+ // First thing in initialization is registering and subscribing to the AngularPConnect service
29
+ this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
30
+ this.updateSelf();
31
+ }
32
+ onStateChange() {
33
+ this.updateSelf();
34
+ }
35
+ updateSelf() {
15
36
  const configProps = this.pConn$.getConfigProps();
16
37
  const kids = this.pConn$.getChildren();
17
38
  this.instructions = this.templateUtils.getInstructions(this.pConn$, configProps?.instructions);
@@ -33,17 +54,21 @@ export class DefaultFormComponent extends FormTemplateBase {
33
54
  // repoint children before getting templateArray
34
55
  // Children may contain 'reference' component, so we need to
35
56
  // normalize them
36
- this.arChildren$ = ReferenceComponent.normalizePConnArray(kids[0].getPConnect().getChildren());
57
+ const children = ReferenceComponent.normalizePConnArray(kids[0].getPConnect().getChildren());
58
+ const visibleChildren = children?.filter(child => child !== undefined) || [];
59
+ if (areViewsChanged(this.arChildren$, visibleChildren)) {
60
+ this.arChildren$ = visibleChildren;
61
+ }
37
62
  }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DefaultFormComponent, deps: [{ token: i1.TemplateUtils }], target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: DefaultFormComponent, isStandalone: true, selector: "app-default-form", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-default-form-one-column{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));column-gap:1rem}.psdk-default-form-two-column{display:grid;grid-template-columns:repeat(2,1fr);column-gap:1rem}.psdk-default-form-three-column{display:grid;grid-template-columns:repeat(3,1fr);column-gap:1rem}.psdk-default-form-three-column .grid-column{grid-column:1/span 3}.psdk-default-form-two-column .grid-column{grid-column:1/span 2}.psdk-default-form-one-column .grid-column{grid-column:1}.template-title-container{font-size:.9375rem;font-weight:600;margin:10px 0}.psdk-default-form-instruction-text{padding-top:.625rem;padding-bottom:.625rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i2.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DefaultFormComponent, deps: [{ token: i1.AngularPConnectService }, { token: i2.TemplateUtils }], target: i0.ɵɵFactoryTarget.Component }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: DefaultFormComponent, isStandalone: true, selector: "app-default-form", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-default-form-one-column{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));column-gap:1rem}.psdk-default-form-two-column{display:grid;grid-template-columns:repeat(2,1fr);column-gap:1rem}.psdk-default-form-three-column{display:grid;grid-template-columns:repeat(3,1fr);column-gap:1rem}.psdk-default-form-three-column .grid-column{grid-column:1/span 3}.psdk-default-form-two-column .grid-column{grid-column:1/span 2}.psdk-default-form-one-column .grid-column{grid-column:1}.template-title-container{font-size:.9375rem;font-weight:600;margin:10px 0}.psdk-default-form-instruction-text{padding-top:.625rem;padding-bottom:.625rem}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i3.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i3.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(() => ComponentMapperComponent), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
40
65
  }
41
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DefaultFormComponent, decorators: [{
42
67
  type: Component,
43
68
  args: [{ selector: 'app-default-form', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<div *ngIf=\"instructions\" class=\"psdk-default-form-instruction-text\">\n <div key=\"instructions\" id=\"instruction-text\" [innerHTML]=\"instructions\"></div>\n</div>\n<div [className]=\"divClass$\">\n <div *ngFor=\"let kid of arChildren$\" [ngClass]=\"{ 'grid-column': kid.getPConnect().getComponentName() === 'View' }\">\n <component-mapper\n [name]=\"kid.getPConnect().getComponentName()\"\n [props]=\"{\n pConn$: kid.getPConnect(),\n formGroup$: formGroup$\n }\"\n errorMsg=\"DefaultForm wants component not yet available: {{ kid.getPConnect().getComponentName() }}\"\n ></component-mapper>\n </div>\n</div>\n", styles: [".psdk-default-form-one-column{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));column-gap:1rem}.psdk-default-form-two-column{display:grid;grid-template-columns:repeat(2,1fr);column-gap:1rem}.psdk-default-form-three-column{display:grid;grid-template-columns:repeat(3,1fr);column-gap:1rem}.psdk-default-form-three-column .grid-column{grid-column:1/span 3}.psdk-default-form-two-column .grid-column{grid-column:1/span 2}.psdk-default-form-one-column .grid-column{grid-column:1}.template-title-container{font-size:.9375rem;font-weight:600;margin:10px 0}.psdk-default-form-instruction-text{padding-top:.625rem;padding-bottom:.625rem}\n"] }]
44
- }], ctorParameters: () => [{ type: i1.TemplateUtils }], propDecorators: { pConn$: [{
69
+ }], ctorParameters: () => [{ type: i1.AngularPConnectService }, { type: i2.TemplateUtils }], propDecorators: { pConn$: [{
45
70
  type: Input
46
71
  }], formGroup$: [{
47
72
  type: Input
48
73
  }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFFeEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFlOUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQVF4RCxZQUFvQixhQUE0QjtRQUM5QyxLQUFLLEVBQUUsQ0FBQztRQURVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBRWhELENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQXNCLENBQUM7UUFDckUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRS9GLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNoRSxRQUFRLE9BQU8sRUFBRSxDQUFDO1lBQ2hCLEtBQUssR0FBRztnQkFDTixJQUFJLENBQUMsU0FBUyxHQUFHLDhCQUE4QixDQUFDO2dCQUNoRCxNQUFNO1lBQ1IsS0FBSyxHQUFHO2dCQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsOEJBQThCLENBQUM7Z0JBQ2hELE1BQU07WUFDUixLQUFLLEdBQUc7Z0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxnQ0FBZ0MsQ0FBQztnQkFDbEQsTUFBTTtZQUNSO2dCQUNFLElBQUksQ0FBQyxTQUFTLEdBQUcsOEJBQThCLENBQUM7Z0JBQ2hELE1BQU07UUFDVixDQUFDO1FBRUQsZ0RBQWdEO1FBQ2hELDREQUE0RDtRQUM1RCxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDOytHQXJDVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiwySkNyQmpDLHFwQkFlQSw2c0JESVksWUFBWSxrYkFBbUIsd0JBQXdCOzs0RkFFdEQsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLGtCQUFrQixjQUdoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUM7a0ZBR2pELE1BQU07c0JBQXZCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJlZmVyZW5jZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2luZnJhL3JlZmVyZW5jZS9yZWZlcmVuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZW1wbGF0ZVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vX2hlbHBlcnMvdGVtcGxhdGUtdXRpbHMnO1xuaW1wb3J0IHsgRm9ybVRlbXBsYXRlQmFzZSB9IGZyb20gJy4uL2Jhc2UvZm9ybS10ZW1wbGF0ZS1iYXNlJztcblxuaW50ZXJmYWNlIERlZmF1bHRGb3JtUHJvcHMge1xuICAvLyBJZiBhbnksIGVudGVyIGFkZGl0aW9uYWwgcHJvcHMgdGhhdCBvbmx5IGV4aXN0IG9uIHRoaXMgY29tcG9uZW50XG4gIE51bUNvbHM6IHN0cmluZztcbiAgaW5zdHJ1Y3Rpb25zOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1kZWZhdWx0LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQ29tcG9uZW50TWFwcGVyQ29tcG9uZW50KV1cbn0pXG5leHBvcnQgY2xhc3MgRGVmYXVsdEZvcm1Db21wb25lbnQgZXh0ZW5kcyBGb3JtVGVtcGxhdGVCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgb3ZlcnJpZGUgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcblxuICBhckNoaWxkcmVuJDogYW55W107XG4gIGRpdkNsYXNzJDogc3RyaW5nO1xuICBpbnN0cnVjdGlvbnM6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRlbXBsYXRlVXRpbHM6IFRlbXBsYXRlVXRpbHMpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnUHJvcHMgPSB0aGlzLnBDb25uJC5nZXRDb25maWdQcm9wcygpIGFzIERlZmF1bHRGb3JtUHJvcHM7XG4gICAgY29uc3Qga2lkcyA9IHRoaXMucENvbm4kLmdldENoaWxkcmVuKCk7XG4gICAgdGhpcy5pbnN0cnVjdGlvbnMgPSB0aGlzLnRlbXBsYXRlVXRpbHMuZ2V0SW5zdHJ1Y3Rpb25zKHRoaXMucENvbm4kLCBjb25maWdQcm9wcz8uaW5zdHJ1Y3Rpb25zKTtcblxuICAgIGNvbnN0IG51bUNvbHMgPSBjb25maWdQcm9wcy5OdW1Db2xzID8gY29uZmlnUHJvcHMuTnVtQ29scyA6ICcxJztcbiAgICBzd2l0Y2ggKG51bUNvbHMpIHtcbiAgICAgIGNhc2UgJzEnOlxuICAgICAgICB0aGlzLmRpdkNsYXNzJCA9ICdwc2RrLWRlZmF1bHQtZm9ybS1vbmUtY29sdW1uJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICcyJzpcbiAgICAgICAgdGhpcy5kaXZDbGFzcyQgPSAncHNkay1kZWZhdWx0LWZvcm0tdHdvLWNvbHVtbic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnMyc6XG4gICAgICAgIHRoaXMuZGl2Q2xhc3MkID0gJ3BzZGstZGVmYXVsdC1mb3JtLXRocmVlLWNvbHVtbic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5kaXZDbGFzcyQgPSAncHNkay1kZWZhdWx0LWZvcm0tb25lLWNvbHVtbic7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIHJlcG9pbnQgY2hpbGRyZW4gYmVmb3JlIGdldHRpbmcgdGVtcGxhdGVBcnJheVxuICAgIC8vIENoaWxkcmVuIG1heSBjb250YWluICdyZWZlcmVuY2UnIGNvbXBvbmVudCwgc28gd2UgbmVlZCB0b1xuICAgIC8vICBub3JtYWxpemUgdGhlbVxuICAgIHRoaXMuYXJDaGlsZHJlbiQgPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm5BcnJheShraWRzWzBdLmdldFBDb25uZWN0KCkuZ2V0Q2hpbGRyZW4oKSk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJpbnN0cnVjdGlvbnNcIiBjbGFzcz1cInBzZGstZGVmYXVsdC1mb3JtLWluc3RydWN0aW9uLXRleHRcIj5cbiAgPGRpdiBrZXk9XCJpbnN0cnVjdGlvbnNcIiBpZD1cImluc3RydWN0aW9uLXRleHRcIiBbaW5uZXJIVE1MXT1cImluc3RydWN0aW9uc1wiPjwvZGl2PlxuPC9kaXY+XG48ZGl2IFtjbGFzc05hbWVdPVwiZGl2Q2xhc3MkXCI+XG4gIDxkaXYgKm5nRm9yPVwibGV0IGtpZCBvZiBhckNoaWxkcmVuJFwiIFtuZ0NsYXNzXT1cInsgJ2dyaWQtY29sdW1uJzoga2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpID09PSAnVmlldycgfVwiPlxuICAgIDxjb21wb25lbnQtbWFwcGVyXG4gICAgICBbbmFtZV09XCJraWQuZ2V0UENvbm5lY3QoKS5nZXRDb21wb25lbnROYW1lKClcIlxuICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgcENvbm4kOiBraWQuZ2V0UENvbm5lY3QoKSxcbiAgICAgICAgZm9ybUdyb3VwJDogZm9ybUdyb3VwJFxuICAgICAgfVwiXG4gICAgICBlcnJvck1zZz1cIkRlZmF1bHRGb3JtIHdhbnRzIGNvbXBvbmVudCBub3QgeWV0IGF2YWlsYWJsZToge3sga2lkLmdldFBDb25uZWN0KCkuZ2V0Q29tcG9uZW50TmFtZSgpIH19XCJcbiAgICA+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9kZWZhdWx0LWZvcm0vZGVmYXVsdC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFFeEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBRTlELFNBQVMsZUFBZSxDQUFDLFFBQWUsRUFBRSxRQUFlO0lBQ3ZELElBQUksUUFBUSxFQUFFLE1BQU0sS0FBSyxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDekMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQzNFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQWVELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFXeEQsWUFDVSxlQUF1QyxFQUN2QyxhQUE0QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUhBLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUN2QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVR0Qyw0QkFBNEI7UUFDbkIsd0JBQW1CLEdBQXdCLEVBQUUsQ0FBQztJQVd2RCxDQUFDO0lBRUQsUUFBUTtRQUNOLDhGQUE4RjtRQUM5RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXhHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFzQixDQUFDO1FBQ3JFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUUvRixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDaEUsUUFBUSxPQUFPLEVBQUUsQ0FBQztZQUNoQixLQUFLLEdBQUc7Z0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyw4QkFBOEIsQ0FBQztnQkFDaEQsTUFBTTtZQUNSLEtBQUssR0FBRztnQkFDTixJQUFJLENBQUMsU0FBUyxHQUFHLDhCQUE4QixDQUFDO2dCQUNoRCxNQUFNO1lBQ1IsS0FBSyxHQUFHO2dCQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsZ0NBQWdDLENBQUM7Z0JBQ2xELE1BQU07WUFDUjtnQkFDRSxJQUFJLENBQUMsU0FBUyxHQUFHLDhCQUE4QixDQUFDO2dCQUNoRCxNQUFNO1FBQ1YsQ0FBQztRQUVELGdEQUFnRDtRQUNoRCw0REFBNEQ7UUFDNUQsa0JBQWtCO1FBQ2xCLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRTdGLE1BQU0sZUFBZSxHQUFHLFFBQVEsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTdFLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQzsrR0E1RFUsb0JBQW9CO21HQUFwQixvQkFBb0IsMkpDakNqQyxxcEJBZUEsNnNCRGdCWSxZQUFZLGtiQUFtQix3QkFBd0I7OzRGQUV0RCxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQzt1SEFHakQsTUFBTTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBmb3J3YXJkUmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbmZyYS9yZWZlcmVuY2UvcmVmZXJlbmNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmd1bGFyUENvbm5lY3REYXRhLCBBbmd1bGFyUENvbm5lY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX2JyaWRnZS9hbmd1bGFyLXBjb25uZWN0JztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZW1wbGF0ZVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vX2hlbHBlcnMvdGVtcGxhdGUtdXRpbHMnO1xuaW1wb3J0IHsgRm9ybVRlbXBsYXRlQmFzZSB9IGZyb20gJy4uL2Jhc2UvZm9ybS10ZW1wbGF0ZS1iYXNlJztcblxuZnVuY3Rpb24gYXJlVmlld3NDaGFuZ2VkKG9sZFZpZXdzOiBhbnlbXSwgbmV3Vmlld3M6IGFueVtdKTogYm9vbGVhbiB7XG4gIGlmIChvbGRWaWV3cz8ubGVuZ3RoICE9PSBuZXdWaWV3cz8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gIW9sZFZpZXdzPy5ldmVyeSgob2xkVmlldywgaW5kZXgpID0+IHtcbiAgICBjb25zdCBuZXdWaWV3ID0gbmV3Vmlld3NbaW5kZXhdO1xuICAgIHJldHVybiBvbGRWaWV3LmdldFBDb25uZWN0KCkudmlld05hbWUgPT09IG5ld1ZpZXcuZ2V0UENvbm5lY3QoKS52aWV3TmFtZTtcbiAgfSk7XG59XG5cbmludGVyZmFjZSBEZWZhdWx0Rm9ybVByb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiB0aGlzIGNvbXBvbmVudFxuICBOdW1Db2xzOiBzdHJpbmc7XG4gIGluc3RydWN0aW9uczogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGVmYXVsdC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RlZmF1bHQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RlZmF1bHQtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIERlZmF1bHRGb3JtQ29tcG9uZW50IGV4dGVuZHMgRm9ybVRlbXBsYXRlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgb3ZlcnJpZGUgcENvbm4kOiB0eXBlb2YgUENvbm5lY3Q7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCQ6IEZvcm1Hcm91cDtcblxuICAvLyBVc2VkIHdpdGggQW5ndWxhclBDb25uZWN0XG4gIG92ZXJyaWRlIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcblxuICBhckNoaWxkcmVuJDogYW55W107XG4gIGRpdkNsYXNzJDogc3RyaW5nO1xuICBpbnN0cnVjdGlvbnM6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIHRlbXBsYXRlVXRpbHM6IFRlbXBsYXRlVXRpbHNcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEZpcnN0IHRoaW5nIGluIGluaXRpYWxpemF0aW9uIGlzIHJlZ2lzdGVyaW5nIGFuZCBzdWJzY3JpYmluZyB0byB0aGUgQW5ndWxhclBDb25uZWN0IHNlcnZpY2VcbiAgICB0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEgPSB0aGlzLmFuZ3VsYXJQQ29ubmVjdC5yZWdpc3RlckFuZFN1YnNjcmliZUNvbXBvbmVudCh0aGlzLCB0aGlzLm9uU3RhdGVDaGFuZ2UpO1xuXG4gICAgdGhpcy51cGRhdGVTZWxmKCk7XG4gIH1cblxuICBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICB9XG5cbiAgdXBkYXRlU2VsZigpIHtcbiAgICBjb25zdCBjb25maWdQcm9wcyA9IHRoaXMucENvbm4kLmdldENvbmZpZ1Byb3BzKCkgYXMgRGVmYXVsdEZvcm1Qcm9wcztcbiAgICBjb25zdCBraWRzID0gdGhpcy5wQ29ubiQuZ2V0Q2hpbGRyZW4oKTtcbiAgICB0aGlzLmluc3RydWN0aW9ucyA9IHRoaXMudGVtcGxhdGVVdGlscy5nZXRJbnN0cnVjdGlvbnModGhpcy5wQ29ubiQsIGNvbmZpZ1Byb3BzPy5pbnN0cnVjdGlvbnMpO1xuXG4gICAgY29uc3QgbnVtQ29scyA9IGNvbmZpZ1Byb3BzLk51bUNvbHMgPyBjb25maWdQcm9wcy5OdW1Db2xzIDogJzEnO1xuICAgIHN3aXRjaCAobnVtQ29scykge1xuICAgICAgY2FzZSAnMSc6XG4gICAgICAgIHRoaXMuZGl2Q2xhc3MkID0gJ3BzZGstZGVmYXVsdC1mb3JtLW9uZS1jb2x1bW4nO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzInOlxuICAgICAgICB0aGlzLmRpdkNsYXNzJCA9ICdwc2RrLWRlZmF1bHQtZm9ybS10d28tY29sdW1uJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICczJzpcbiAgICAgICAgdGhpcy5kaXZDbGFzcyQgPSAncHNkay1kZWZhdWx0LWZvcm0tdGhyZWUtY29sdW1uJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmRpdkNsYXNzJCA9ICdwc2RrLWRlZmF1bHQtZm9ybS1vbmUtY29sdW1uJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gcmVwb2ludCBjaGlsZHJlbiBiZWZvcmUgZ2V0dGluZyB0ZW1wbGF0ZUFycmF5XG4gICAgLy8gQ2hpbGRyZW4gbWF5IGNvbnRhaW4gJ3JlZmVyZW5jZScgY29tcG9uZW50LCBzbyB3ZSBuZWVkIHRvXG4gICAgLy8gIG5vcm1hbGl6ZSB0aGVtXG4gICAgY29uc3QgY2hpbGRyZW4gPSBSZWZlcmVuY2VDb21wb25lbnQubm9ybWFsaXplUENvbm5BcnJheShraWRzWzBdLmdldFBDb25uZWN0KCkuZ2V0Q2hpbGRyZW4oKSk7XG5cbiAgICBjb25zdCB2aXNpYmxlQ2hpbGRyZW4gPSBjaGlsZHJlbj8uZmlsdGVyKGNoaWxkID0+IGNoaWxkICE9PSB1bmRlZmluZWQpIHx8IFtdO1xuXG4gICAgaWYgKGFyZVZpZXdzQ2hhbmdlZCh0aGlzLmFyQ2hpbGRyZW4kLCB2aXNpYmxlQ2hpbGRyZW4pKSB7XG4gICAgICB0aGlzLmFyQ2hpbGRyZW4kID0gdmlzaWJsZUNoaWxkcmVuO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImluc3RydWN0aW9uc1wiIGNsYXNzPVwicHNkay1kZWZhdWx0LWZvcm0taW5zdHJ1Y3Rpb24tdGV4dFwiPlxuICA8ZGl2IGtleT1cImluc3RydWN0aW9uc1wiIGlkPVwiaW5zdHJ1Y3Rpb24tdGV4dFwiIFtpbm5lckhUTUxdPVwiaW5zdHJ1Y3Rpb25zXCI+PC9kaXY+XG48L2Rpdj5cbjxkaXYgW2NsYXNzTmFtZV09XCJkaXZDbGFzcyRcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQga2lkIG9mIGFyQ2hpbGRyZW4kXCIgW25nQ2xhc3NdPVwieyAnZ3JpZC1jb2x1bW4nOiBraWQuZ2V0UENvbm5lY3QoKS5nZXRDb21wb25lbnROYW1lKCkgPT09ICdWaWV3JyB9XCI+XG4gICAgPGNvbXBvbmVudC1tYXBwZXJcbiAgICAgIFtuYW1lXT1cImtpZC5nZXRQQ29ubmVjdCgpLmdldENvbXBvbmVudE5hbWUoKVwiXG4gICAgICBbcHJvcHNdPVwie1xuICAgICAgICBwQ29ubiQ6IGtpZC5nZXRQQ29ubmVjdCgpLFxuICAgICAgICBmb3JtR3JvdXAkOiBmb3JtR3JvdXAkXG4gICAgICB9XCJcbiAgICAgIGVycm9yTXNnPVwiRGVmYXVsdEZvcm0gd2FudHMgY29tcG9uZW50IG5vdCB5ZXQgYXZhaWxhYmxlOiB7eyBraWQuZ2V0UENvbm5lY3QoKS5nZXRDb21wb25lbnROYW1lKCkgfX1cIlxuICAgID48L2NvbXBvbmVudC1tYXBwZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=