@vgip/meta-ui 1.9.0 → 1.9.1

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.
@@ -6,15 +6,19 @@ import { metaDark, metaLight } from "../common/utils/colorThemes";
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "../services/metaResource";
8
8
  import * as i2 from "../services/metaReference";
9
- import * as i3 from "@angular/common";
10
- import * as i4 from "../metaField/index";
9
+ import * as i3 from "../services/metaMsg";
10
+ import * as i4 from "../services/metaContext";
11
+ import * as i5 from "@angular/common";
12
+ import * as i6 from "../metaField/index";
11
13
  export class MetaLayout {
12
- constructor(viewContainerRef, ref, el, metaResource, referenceService) {
14
+ constructor(viewContainerRef, ref, el, metaResource, referenceService, metaMsgService, metaContext) {
13
15
  this.viewContainerRef = viewContainerRef;
14
16
  this.ref = ref;
15
17
  this.el = el;
16
18
  this.metaResource = metaResource;
17
19
  this.referenceService = referenceService;
20
+ this.metaMsgService = metaMsgService;
21
+ this.metaContext = metaContext;
18
22
  this.optionalFields = {};
19
23
  this.showAll = false;
20
24
  this.fieldsVisibilityChanged = new Subject();
@@ -55,6 +59,10 @@ export class MetaLayout {
55
59
  }
56
60
  ngDoCheck() {
57
61
  this.countOptionalFields();
62
+ if (JSON.stringify(this.resource) !== JSON.stringify(this._resource)) {
63
+ this._resource = JSON.parse(JSON.stringify(this.resource));
64
+ this.buildExternalLink();
65
+ }
58
66
  }
59
67
  ngOnChanges(changes) {
60
68
  if (changes.meta) {
@@ -63,7 +71,7 @@ export class MetaLayout {
63
71
  this.countOptionalFields();
64
72
  }, 0);
65
73
  }
66
- else if (changes.theme) {
74
+ if (changes.theme) {
67
75
  this.theme = changes.theme.currentValue;
68
76
  this.applyTheme();
69
77
  }
@@ -110,6 +118,36 @@ export class MetaLayout {
110
118
  this.showAll = !this.showAll;
111
119
  this.ngAfterContentChecked();
112
120
  }
121
+ buildExternalLink() {
122
+ if (this.isPersistedResource && this.meta.children && this.preview) {
123
+ for (const child of this.meta.children) {
124
+ if (this.resource[child.name]) {
125
+ for (const c in this.resource[child.name]) {
126
+ if (this.resource[child.name][c]._vgis.externalId || this.resource[child.name][c]._vgis.id) {
127
+ this.metaMsgService.sendMessage(this.integrationCode.toUpperCase(), {
128
+ action: "buildExternalLink",
129
+ integrationCode: this.integrationCode.toLowerCase(),
130
+ ref: {
131
+ parentRefId: this.resource._vgis.externalId || this.resource._vgis.id,
132
+ parentResourceType: this.resource._vgis.resourceType,
133
+ ...this.resource[child.name][c]._vgis
134
+ },
135
+ profile: this.metaContext.profiles[this.integrationCode.toUpperCase()],
136
+ }, (response) => {
137
+ if (!response.error) {
138
+ this._resource[child.name][c]._vgis.externalLink = response.externalLink;
139
+ this.resource[child.name][c]._vgis.externalLink = response.externalLink;
140
+ }
141
+ else {
142
+ console.warn("No external link support for", this.integrationCode, this.resource[child.name][c]._vgis.resourceType);
143
+ }
144
+ });
145
+ }
146
+ }
147
+ }
148
+ }
149
+ }
150
+ }
113
151
  async openChild(childResource, childModel) {
114
152
  const metaRefDialog = await import("../refDialog").then((m) => m.MetaRefDialog);
115
153
  childResource.reference.parent = this.resource._vgis; // eslint-disable-line no-underscore-dangle
@@ -137,13 +175,13 @@ export class MetaLayout {
137
175
  this.el.nativeElement.style.setProperty(key, metaTheme.properties[key]);
138
176
  }
139
177
  }
140
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: MetaLayout, deps: [{ token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.MetaResourceService }, { token: i2.MetaReferenceService }], target: i0.ɵɵFactoryTarget.Component }); }
141
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: MetaLayout, selector: "vgip-meta-layout", inputs: { meta: "meta", resource: "resource", integration: "integration", type: "type", preview: "preview", theme: "theme" }, usesOnChanges: true, ngImport: i0, template: "<div *ngFor='let section of meta.sections' class='Vlt-section' [ngClass]=\"{ shown: showAll || section.visible || (!meta.oneTimeOptional && !section.$optional) || (meta.oneTimeOptional && !optionalFieldsCount) }\">\n\t<h5 *ngIf='section.label' class=\"Vlt-section__title\">{{section.label}}</h5>\n\t<div style='overflow: visible;' [ngClass]=\"{ 'for-preview': preview }\">\n\t\t<small *ngIf='section.description' class=\"Vlt-form__element__hint\">{{section.description}}</small>\n\t\t<div>\n\t\t\t<ng-container *ngFor='let field of section.fields'>\n\t\t\t\t<vgip-meta-field *ngIf='!field.$hidden && (showAll || section.visible || !field.$optional)' [meta]='field' [parent]='resource' [integrationCode]='integrationCode' [resourceType]='resourceType' [preview]='preview' [ngClass]=\"{ shown: !field.$invisible && (showAll || true) }\" theme='inherit' [attr.data-theme]='theme'></vgip-meta-field>\n\t\t\t</ng-container>\n\t\t</div>\n\t</div>\n</div>\n<div *ngIf='isPersistedResource && meta.children && preview'>\n\t<div *ngFor='let child of meta.children'>\n\t\t<h5 class='Vlt-children__title'>\n\t\t\t<svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-stack\" /></svg>&nbsp;\n\t\t\t{{child.label}} <span class='Vlt-grey'>({{(resource[child.name] || []).length}})</span>\n\t\t</h5>\n\t\t<div *ngFor=\"let c of resource[child.name]\" style='position: relative;'>\n\n\t\t\t<div class=\"Vlt-card Vlt-bg-white\">\n\t\t\t\t<div class=\"Vlt-card__content Vlt-btn-on-hover\">\n\t\t\t\t\t<h5>{{childResourceCardLabel(c)}}</h5>\n\t\t\t\t\t<div style='font-size: 12px; line-height: 16px;'>\n\t\t\t\t\t\tCreated: <span class='Vlt-black'>{{c._vgis.createdDate | date:'mediumDate'}}</span>\n\t\t\t\t\t\tEdited: <span class='Vlt-black'>{{c._vgis.modifiedDate | date:'medium'}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"Vlt-badge Vlt-badge--app Vlt-badge--purple Vlt-badge--small\">{{c._vgis.resourceType}}</div>\n\t\t\t\t\t<div class=\"Vlt-btn-group Vlt-btn-group--hover\">\n\t\t\t\t\t\t<a *ngIf='c._vgis.externalLink' attr.href='{{c._vgis.externalLink}}' target='_blank' rel='noopener' rel='noopener' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Open external'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\"/></svg></a>\n\t\t\t\t\t\t<button type='button' (click)='openChild(child, c)' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\"><svg style='margin-left: 0; margin-right: 0;'><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ child.reference.editable ? 'edit' : 'eye-negative' }}\"/></svg></button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<button style='width: 100%; margin-top: 0; max-width: 100%;' type='button' (click)='openChild(child)' class=\"Vlt-btn Vlt-btn--small Vlt-btn--secondary\" [disabled]='child.creatable === false'>\n\t\t\t<svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>{{child.reference.label}}\n\t\t</button>\n\t</div>\n</div>\n<div *ngIf='!(meta.oneTimeOptional && showAll)' [ngClass]='{ centered: !meta.oneTimeOptional }'>\n\t<button *ngIf='!preview && optionalFieldsCount' type='button' (click)='toggleOptionalFields()' class=\"Vlt-btn Vlt-btn--small Vlt-btn--link more-button\" style='margin: 0; margin-bottom: 10px;'>\n\t\t<svg><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-chevron-{{ showAll ? 'up' : 'down' }}\"/></svg>\n\t\t{{ showAll ? 'Hide' : 'Show' }} Optional Fields ({{optionalFieldsCount}})\n\t</button>\n</div>\n", styles: ["vgip-meta-field{display:none}vgip-meta-field.shown{display:initial}.Vlt-section__title{line-height:14px;padding:16px 16px 14px 3px;margin:-9px -1px 8px;background-color:var(--vgip-meta-resource-bg-color);color:var(--vgip-meta-resource-color);position:sticky;top:-9px;z-index:3;border-bottom:1px solid var(--vgip-meta-separator-color)}.Vlt-section{margin:0;padding-bottom:8px;display:none}.Vlt-section.shown{display:block}.Vlt-btn.vlt-add-child:hover{transform:scale(1.02)}.for-preview{margin-top:-6px}.Vlt-card{margin-bottom:16px;padding:16px}.Vlt-card .Vlt-btn-group.Vlt-btn-group--hover{right:-8px}button.more-button:focus{font-weight:700}.centered{text-align:center}.Vlt-btn--link{color:var(--vgip-meta-link-color)}.Vlt-btn--link:hover{color:var(--vgip-meta-link-hover-color)}.Vlt-btn--link svg{fill:var(--vgip-meta-link-color)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MetaField, selector: "vgip-meta-field", inputs: ["meta", "parent", "integrationCode", "resourceType", "index", "scope", "preview", "theme", "overlayContainer"], outputs: ["onChange", "onLeave"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
178
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: MetaLayout, deps: [{ token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.MetaResourceService }, { token: i2.MetaReferenceService }, { token: i3.MetaMsgService }, { token: i4.MetaContextService }], target: i0.ɵɵFactoryTarget.Component }); }
179
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: MetaLayout, selector: "vgip-meta-layout", inputs: { meta: "meta", resource: "resource", integration: "integration", type: "type", preview: "preview", theme: "theme" }, usesOnChanges: true, ngImport: i0, template: "<div *ngFor='let section of meta.sections' class='Vlt-section' [ngClass]=\"{ shown: showAll || section.visible || (!meta.oneTimeOptional && !section.$optional) || (meta.oneTimeOptional && !optionalFieldsCount) }\">\n\t<h5 *ngIf='section.label' class=\"Vlt-section__title\">{{section.label}}</h5>\n\t<div style='overflow: visible;' [ngClass]=\"{ 'for-preview': preview }\">\n\t\t<small *ngIf='section.description' class=\"Vlt-form__element__hint\">{{section.description}}</small>\n\t\t<div>\n\t\t\t<ng-container *ngFor='let field of section.fields'>\n\t\t\t\t<vgip-meta-field *ngIf='!field.$hidden && (showAll || section.visible || !field.$optional)' [meta]='field' [parent]='resource' [integrationCode]='integrationCode' [resourceType]='resourceType' [preview]='preview' [ngClass]=\"{ shown: !field.$invisible && (showAll || true) }\" theme='inherit' [attr.data-theme]='theme'></vgip-meta-field>\n\t\t\t</ng-container>\n\t\t</div>\n\t</div>\n</div>\n<div *ngIf='isPersistedResource && meta.children && preview'>\n\t<div *ngFor='let child of meta.children'>\n\t\t<h5 class='Vlt-children__title'>\n\t\t\t<svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-stack\" /></svg>&nbsp;\n\t\t\t{{child.label}} <span class='Vlt-grey'>({{(resource[child.name] || []).length}})</span>\n\t\t</h5>\n\t\t<div *ngFor=\"let c of resource[child.name]\" style='position: relative;'>\n\n\t\t\t<div class=\"Vlt-card Vlt-bg-white\">\n\t\t\t\t<div class=\"Vlt-card__content Vlt-btn-on-hover\">\n\t\t\t\t\t<h5>{{childResourceCardLabel(c)}}</h5>\n\t\t\t\t\t<div style='font-size: 12px; line-height: 16px;'>\n\t\t\t\t\t\tCreated: <span class='Vlt-black'>{{c._vgis.createdDate | date:'mediumDate'}}</span>\n\t\t\t\t\t\tEdited: <span class='Vlt-black'>{{c._vgis.modifiedDate | date:'medium'}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"Vlt-badge Vlt-badge--app Vlt-badge--purple Vlt-badge--small\">{{c._vgis.resourceType}}</div>\n\t\t\t\t\t<div class=\"Vlt-btn-group Vlt-btn-group--hover\">\n\t\t\t\t\t\t<a *ngIf='c._vgis.externalLink' attr.href='{{c._vgis.externalLink}}' target='_blank' rel='noopener' rel='noopener' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Open external'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\"/></svg></a>\n\t\t\t\t\t\t<button type='button' (click)='openChild(child, c)' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\"><svg style='margin-left: 0; margin-right: 0;'><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ child.reference.editable ? 'edit' : 'eye-negative' }}\"/></svg></button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<button style='width: 100%; margin-top: 0; max-width: 100%;' type='button' (click)='openChild(child)' class=\"Vlt-btn Vlt-btn--small Vlt-btn--secondary\" [disabled]='child.creatable === false'>\n\t\t\t<svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>{{child.reference.label}}\n\t\t</button>\n\t</div>\n</div>\n<div *ngIf='!(meta.oneTimeOptional && showAll)' [ngClass]='{ centered: !meta.oneTimeOptional }'>\n\t<button *ngIf='!preview && optionalFieldsCount' type='button' (click)='toggleOptionalFields()' class=\"Vlt-btn Vlt-btn--small Vlt-btn--link more-button\" style='margin: 0; margin-bottom: 10px;'>\n\t\t<svg><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-chevron-{{ showAll ? 'up' : 'down' }}\"/></svg>\n\t\t{{ showAll ? 'Hide' : 'Show' }} Optional Fields ({{optionalFieldsCount}})\n\t</button>\n</div>\n", styles: ["vgip-meta-field{display:none}vgip-meta-field.shown{display:initial}.Vlt-section__title{line-height:14px;padding:16px 16px 14px 3px;margin:-9px -1px 8px;background-color:var(--vgip-meta-resource-bg-color);color:var(--vgip-meta-resource-color);position:sticky;top:-9px;z-index:3;border-bottom:1px solid var(--vgip-meta-separator-color)}.Vlt-section{margin:0;padding-bottom:8px;display:none}.Vlt-section.shown{display:block}.Vlt-btn.vlt-add-child:hover{transform:scale(1.02)}.for-preview{margin-top:-6px}.Vlt-card{margin-bottom:16px;padding:16px}.Vlt-card .Vlt-btn-group.Vlt-btn-group--hover{right:-8px}button.more-button:focus{font-weight:700}.centered{text-align:center}.Vlt-btn--link{color:var(--vgip-meta-link-color)}.Vlt-btn--link:hover{color:var(--vgip-meta-link-hover-color)}.Vlt-btn--link svg{fill:var(--vgip-meta-link-color)}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MetaField, selector: "vgip-meta-field", inputs: ["meta", "parent", "integrationCode", "resourceType", "index", "scope", "preview", "theme", "overlayContainer"], outputs: ["onChange", "onLeave"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }] }); }
142
180
  }
143
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: MetaLayout, decorators: [{
144
182
  type: Component,
145
183
  args: [{ selector: "vgip-meta-layout", template: "<div *ngFor='let section of meta.sections' class='Vlt-section' [ngClass]=\"{ shown: showAll || section.visible || (!meta.oneTimeOptional && !section.$optional) || (meta.oneTimeOptional && !optionalFieldsCount) }\">\n\t<h5 *ngIf='section.label' class=\"Vlt-section__title\">{{section.label}}</h5>\n\t<div style='overflow: visible;' [ngClass]=\"{ 'for-preview': preview }\">\n\t\t<small *ngIf='section.description' class=\"Vlt-form__element__hint\">{{section.description}}</small>\n\t\t<div>\n\t\t\t<ng-container *ngFor='let field of section.fields'>\n\t\t\t\t<vgip-meta-field *ngIf='!field.$hidden && (showAll || section.visible || !field.$optional)' [meta]='field' [parent]='resource' [integrationCode]='integrationCode' [resourceType]='resourceType' [preview]='preview' [ngClass]=\"{ shown: !field.$invisible && (showAll || true) }\" theme='inherit' [attr.data-theme]='theme'></vgip-meta-field>\n\t\t\t</ng-container>\n\t\t</div>\n\t</div>\n</div>\n<div *ngIf='isPersistedResource && meta.children && preview'>\n\t<div *ngFor='let child of meta.children'>\n\t\t<h5 class='Vlt-children__title'>\n\t\t\t<svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-stack\" /></svg>&nbsp;\n\t\t\t{{child.label}} <span class='Vlt-grey'>({{(resource[child.name] || []).length}})</span>\n\t\t</h5>\n\t\t<div *ngFor=\"let c of resource[child.name]\" style='position: relative;'>\n\n\t\t\t<div class=\"Vlt-card Vlt-bg-white\">\n\t\t\t\t<div class=\"Vlt-card__content Vlt-btn-on-hover\">\n\t\t\t\t\t<h5>{{childResourceCardLabel(c)}}</h5>\n\t\t\t\t\t<div style='font-size: 12px; line-height: 16px;'>\n\t\t\t\t\t\tCreated: <span class='Vlt-black'>{{c._vgis.createdDate | date:'mediumDate'}}</span>\n\t\t\t\t\t\tEdited: <span class='Vlt-black'>{{c._vgis.modifiedDate | date:'medium'}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"Vlt-badge Vlt-badge--app Vlt-badge--purple Vlt-badge--small\">{{c._vgis.resourceType}}</div>\n\t\t\t\t\t<div class=\"Vlt-btn-group Vlt-btn-group--hover\">\n\t\t\t\t\t\t<a *ngIf='c._vgis.externalLink' attr.href='{{c._vgis.externalLink}}' target='_blank' rel='noopener' rel='noopener' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Open external'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\"/></svg></a>\n\t\t\t\t\t\t<button type='button' (click)='openChild(child, c)' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\"><svg style='margin-left: 0; margin-right: 0;'><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ child.reference.editable ? 'edit' : 'eye-negative' }}\"/></svg></button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<button style='width: 100%; margin-top: 0; max-width: 100%;' type='button' (click)='openChild(child)' class=\"Vlt-btn Vlt-btn--small Vlt-btn--secondary\" [disabled]='child.creatable === false'>\n\t\t\t<svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>{{child.reference.label}}\n\t\t</button>\n\t</div>\n</div>\n<div *ngIf='!(meta.oneTimeOptional && showAll)' [ngClass]='{ centered: !meta.oneTimeOptional }'>\n\t<button *ngIf='!preview && optionalFieldsCount' type='button' (click)='toggleOptionalFields()' class=\"Vlt-btn Vlt-btn--small Vlt-btn--link more-button\" style='margin: 0; margin-bottom: 10px;'>\n\t\t<svg><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-chevron-{{ showAll ? 'up' : 'down' }}\"/></svg>\n\t\t{{ showAll ? 'Hide' : 'Show' }} Optional Fields ({{optionalFieldsCount}})\n\t</button>\n</div>\n", styles: ["vgip-meta-field{display:none}vgip-meta-field.shown{display:initial}.Vlt-section__title{line-height:14px;padding:16px 16px 14px 3px;margin:-9px -1px 8px;background-color:var(--vgip-meta-resource-bg-color);color:var(--vgip-meta-resource-color);position:sticky;top:-9px;z-index:3;border-bottom:1px solid var(--vgip-meta-separator-color)}.Vlt-section{margin:0;padding-bottom:8px;display:none}.Vlt-section.shown{display:block}.Vlt-btn.vlt-add-child:hover{transform:scale(1.02)}.for-preview{margin-top:-6px}.Vlt-card{margin-bottom:16px;padding:16px}.Vlt-card .Vlt-btn-group.Vlt-btn-group--hover{right:-8px}button.more-button:focus{font-weight:700}.centered{text-align:center}.Vlt-btn--link{color:var(--vgip-meta-link-color)}.Vlt-btn--link:hover{color:var(--vgip-meta-link-hover-color)}.Vlt-btn--link svg{fill:var(--vgip-meta-link-color)}\n"] }]
146
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.MetaResourceService }, { type: i2.MetaReferenceService }]; }, propDecorators: { meta: [{
184
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.MetaResourceService }, { type: i2.MetaReferenceService }, { type: i3.MetaMsgService }, { type: i4.MetaContextService }]; }, propDecorators: { meta: [{
147
185
  type: Input
148
186
  }], resource: [{
149
187
  type: Input
@@ -156,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
156
194
  }], theme: [{
157
195
  type: Input
158
196
  }] } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXRhLXVpL3NyYy9saWIvbGF5b3V0L2luZGV4LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWV0YS11aS9zcmMvbGliL2xheW91dC92aWV3Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxLQUFLLEdBS04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUd0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBT2xFLE1BQU0sT0FBTyxVQUFVO0lBa0JyQixZQUNVLGdCQUFrQyxFQUNsQyxHQUFzQixFQUN0QixFQUFjLEVBQ2QsWUFBaUMsRUFDakMsZ0JBQXNDO1FBSnRDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXNCO1FBZmhELG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBRXpCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsNEJBQXVCLEdBQW9CLElBQUksT0FBTyxFQUFVLENBQUM7UUFJakUsMkJBQXNCLEdBQUcsaUJBQWlCLENBQUM7UUFVekMsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixnREFB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U0FBUyxDQUFDO1FBQy9ELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbkQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3pFO0lBQ0gsQ0FBQzsrR0FuS1UsVUFBVTttR0FBVixVQUFVLDJNQ3ZCdkIsKzZHQTZDQTs7NEZEdEJhLFVBQVU7a0JBTHRCLFNBQVM7K0JBQ0Usa0JBQWtCO3FPQUtuQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBEb0NoZWNrLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyByZXNvdXJjZUNhcmRMYWJlbCB9IGZyb20gXCIuLi9jb21tb24vdXRpbHMvcmVzb3VyY2VDYXJkTGFiZWxcIjtcbmltcG9ydCB7IE1ldGFSZXNvdXJjZVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvbWV0YVJlc291cmNlXCI7XG5pbXBvcnQgeyBNZXRhUmVmZXJlbmNlU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9tZXRhUmVmZXJlbmNlXCI7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBtZXRhRGFyaywgbWV0YUxpZ2h0IH0gZnJvbSBcIi4uL2NvbW1vbi91dGlscy9jb2xvclRoZW1lc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwidmdpcC1tZXRhLWxheW91dFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3ZpZXcuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vc3R5bGUuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgTWV0YUxheW91dCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgT25DaGFuZ2VzLCBEb0NoZWNrIHtcbiAgQElucHV0KCkgbWV0YTogYW55O1xuICBASW5wdXQoKSByZXNvdXJjZTogYW55O1xuICBASW5wdXQoKSBpbnRlZ3JhdGlvbjogYW55O1xuICBASW5wdXQoKSB0eXBlOiBhbnk7XG4gIEBJbnB1dCgpIHByZXZpZXc6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHRoZW1lOiBzdHJpbmc7XG5cbiAgb3B0aW9uYWxGaWVsZHM6IGFueSA9IHt9O1xuICBvcHRpb25hbEZpZWxkc0NvdW50OiBudW1iZXI7XG4gIHNob3dBbGwgPSBmYWxzZTtcbiAgZmllbGRzVmlzaWJpbGl0eUNoYW5nZWQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcGFyZW50Rm9ybTogSFRNTEZvcm1FbGVtZW50O1xuICBpbnRlZ3JhdGlvbkNvZGU6IHN0cmluZztcbiAgcmVzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIGNoaWxkUmVzb3VyY2VDYXJkTGFiZWwgPSByZXNvdXJjZUNhcmRMYWJlbDtcbiAgb3ZlcmxheUNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgbWV0YVJlc291cmNlOiBNZXRhUmVzb3VyY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVmZXJlbmNlU2VydmljZTogTWV0YVJlZmVyZW5jZVNlcnZpY2VcbiAgKSB7XG4gICAgLy8gY29uc29sZS5sb2coJ01ldGFMYXlvdXQnLCB0aGlzLm1ldGEpO1xuICAgIHRoaXMub3ZlcmxheUNvbnRhaW5lciA9IGVsLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBnZXQgaXNQZXJzaXN0ZWRSZXNvdXJjZSgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5yZXNvdXJjZSAmJlxuICAgICAgdGhpcy5yZXNvdXJjZS5fdmdpcyAmJlxuICAgICAgKHRoaXMucmVzb3VyY2UuX3ZnaXMuZXh0ZXJuYWxJZCB8fCB0aGlzLnJlc291cmNlLl92Z2lzLmlkKVxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmludGVncmF0aW9uQ29kZSA9IHRoaXMubWV0YS5pbnRlZ3JhdGlvbkNvZGUgfHwgdGhpcy5pbnRlZ3JhdGlvbjtcbiAgICB0aGlzLnJlc291cmNlVHlwZSA9IHRoaXMubWV0YS5yZXNvdXJjZVR5cGUgfHwgdGhpcy50eXBlO1xuICAgIHRoaXMucGFyZW50Rm9ybSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbG9zZXN0KFwiZm9ybVwiKTtcbiAgICB0aGlzLmNvbmZpZ3VyZU9wdGlvbmFsU2VjdGlvbnMoKTtcblxuICAgIHRoaXMuZmllbGRzVmlzaWJpbGl0eUNoYW5nZWRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY291bnRPcHRpb25hbEZpZWxkcygpO1xuICAgICAgfSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNvdW50T3B0aW9uYWxGaWVsZHMoKTtcbiAgICB9LCAwKTtcblxuICAgIGlmICh0aGlzLnBhcmVudEZvcm0pIHtcbiAgICAgIHRoaXMucGFyZW50Rm9ybS5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5maWVsZHNWaXNpYmlsaXR5Q2hhbmdlZC5uZXh0KEpTT04uc3RyaW5naWZ5KHRoaXMucmVzb3VyY2UpKTtcbiAgICAgICAgICB0aGlzLmNvdW50T3B0aW9uYWxGaWVsZHMoKTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50aGVtZSAhPT0gXCJpbmhlcml0XCIpIHtcbiAgICAgIHRoaXMuYXBwbHlUaGVtZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICB0aGlzLmNvdW50T3B0aW9uYWxGaWVsZHMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IGFueSkge1xuICAgIGlmIChjaGFuZ2VzLm1ldGEpIHtcbiAgICAgIHRoaXMuY29uZmlndXJlT3B0aW9uYWxTZWN0aW9ucygpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY291bnRPcHRpb25hbEZpZWxkcygpO1xuICAgICAgfSwgMCk7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2VzLnRoZW1lKSB7XG4gICAgICB0aGlzLnRoZW1lID0gY2hhbmdlcy50aGVtZS5jdXJyZW50VmFsdWU7XG4gICAgICB0aGlzLmFwcGx5VGhlbWUoKTtcbiAgICB9XG4gIH1cblxuICBjb3VudE9wdGlvbmFsRmllbGRzKCkge1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgY29uc3QgY291bnRTZWN0aW9uRmllbGRzID0gKHMpID0+IHtcbiAgICAgIGZvciAoY29uc3QgZiBvZiBzLmZpZWxkcyB8fCBbXSkge1xuICAgICAgICBpZiAoZi5maWVsZHM/Lmxlbmd0aCAmJiAhZi52aXNpYmxlKSB7XG4gICAgICAgICAgY291bnRTZWN0aW9uRmllbGRzKGYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChmLiRvcHRpb25hbCAmJiAhZi4kaGlkZGVuKSB7XG4gICAgICAgICAgICBjb3VudCsrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgZm9yIChjb25zdCBzIG9mIHRoaXMubWV0YS5zZWN0aW9ucykge1xuICAgICAgY29uc3Qgbm90T3B0aW9uYWxBbnkgPSBzLmZpZWxkcz8uZmluZCgoZikgPT4gIWYuJG9wdGlvbmFsKTtcbiAgICAgIHMuJG9wdGlvbmFsID0gIW5vdE9wdGlvbmFsQW55O1xuICAgICAgaWYgKCFzLnZpc2libGUpIHtcbiAgICAgICAgY291bnRTZWN0aW9uRmllbGRzKHMpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLm9wdGlvbmFsRmllbGRzQ291bnQgPSBjb3VudDtcbiAgfVxuXG4gIGNvbmZpZ3VyZU9wdGlvbmFsU2VjdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMubWV0YT8uc2VjdGlvbnMpIHtcbiAgICAgIGZvciAoY29uc3QgcyBvZiB0aGlzLm1ldGEuc2VjdGlvbnMpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsIFwiJG9wdGlvbmFsXCIsIHtcbiAgICAgICAgICB2YWx1ZTogdHJ1ZSxcbiAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB0b2dnbGVPcHRpb25hbEZpZWxkcygpIHtcbiAgICB0aGlzLnNob3dBbGwgPSAhdGhpcy5zaG93QWxsO1xuICAgIHRoaXMubmdBZnRlckNvbnRlbnRDaGVja2VkKCk7XG4gIH1cblxuICBhc3luYyBvcGVuQ2hpbGQoY2hpbGRSZXNvdXJjZSwgY2hpbGRNb2RlbD8pIHtcbiAgICBjb25zdCBtZXRhUmVmRGlhbG9nID0gYXdhaXQgaW1wb3J0KFwiLi4vcmVmRGlhbG9nXCIpLnRoZW4oXG4gICAgICAobSkgPT4gbS5NZXRhUmVmRGlhbG9nXG4gICAgKTtcbiAgICBjaGlsZFJlc291cmNlLnJlZmVyZW5jZS5wYXJlbnQgPSB0aGlzLnJlc291cmNlLl92Z2lzOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG4gICAgY29uc3QgcmVmRGlhbG9nQ29tcG9uZW50ID1cbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQobWV0YVJlZkRpYWxvZyk7XG4gICAgdGhpcy5yZWZlcmVuY2VTZXJ2aWNlXG4gICAgICAub3BlbkRpYWxvZyhcbiAgICAgICAgcmVmRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICB0aGlzLm1ldGFSZXNvdXJjZSxcbiAgICAgICAgdGhpcy5pbnRlZ3JhdGlvbkNvZGUsXG4gICAgICAgIGNoaWxkUmVzb3VyY2UucmVmZXJlbmNlLFxuICAgICAgICBjaGlsZE1vZGVsLFxuICAgICAgICBjaGlsZE1vZGVsICYmIGNoaWxkUmVzb3VyY2UucmVmZXJlbmNlLmVkaXRhYmxlID09PSBmYWxzZSAvLyBpcyBwcmV2aWV3IG1vZGVcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LnJhdykge1xuICAgICAgICAgIGlmICghdGhpcy5yZXNvdXJjZVtjaGlsZFJlc291cmNlLm5hbWVdKSB7XG4gICAgICAgICAgICB0aGlzLnJlc291cmNlW2NoaWxkUmVzb3VyY2UubmFtZV0gPSBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNoaWxkTW9kZWwpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oY2hpbGRNb2RlbCwgcmVzdWx0LnJhdyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VbY2hpbGRSZXNvdXJjZS5uYW1lXS5wdXNoKHJlc3VsdC5yYXcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5VGhlbWUoKSB7XG4gICAgY29uc3QgbWV0YVRoZW1lID0gdGhpcy50aGVtZSA9PT0gXCJkYXJrXCIgPyBtZXRhRGFyayA6IG1ldGFMaWdodDtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtZXRhVGhlbWUucHJvcGVydGllcykpIHtcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIG1ldGFUaGVtZS5wcm9wZXJ0aWVzW2tleV0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdGb3I9J2xldCBzZWN0aW9uIG9mIG1ldGEuc2VjdGlvbnMnIGNsYXNzPSdWbHQtc2VjdGlvbicgW25nQ2xhc3NdPVwieyBzaG93bjogc2hvd0FsbCB8fCBzZWN0aW9uLnZpc2libGUgfHwgKCFtZXRhLm9uZVRpbWVPcHRpb25hbCAmJiAhc2VjdGlvbi4kb3B0aW9uYWwpIHx8IChtZXRhLm9uZVRpbWVPcHRpb25hbCAmJiAhb3B0aW9uYWxGaWVsZHNDb3VudCkgfVwiPlxuXHQ8aDUgKm5nSWY9J3NlY3Rpb24ubGFiZWwnIGNsYXNzPVwiVmx0LXNlY3Rpb25fX3RpdGxlXCI+e3tzZWN0aW9uLmxhYmVsfX08L2g1PlxuXHQ8ZGl2IHN0eWxlPSdvdmVyZmxvdzogdmlzaWJsZTsnIFtuZ0NsYXNzXT1cInsgJ2Zvci1wcmV2aWV3JzogcHJldmlldyB9XCI+XG5cdFx0PHNtYWxsICpuZ0lmPSdzZWN0aW9uLmRlc2NyaXB0aW9uJyBjbGFzcz1cIlZsdC1mb3JtX19lbGVtZW50X19oaW50XCI+e3tzZWN0aW9uLmRlc2NyaXB0aW9ufX08L3NtYWxsPlxuXHRcdDxkaXY+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj0nbGV0IGZpZWxkIG9mIHNlY3Rpb24uZmllbGRzJz5cblx0XHRcdFx0PHZnaXAtbWV0YS1maWVsZCAqbmdJZj0nIWZpZWxkLiRoaWRkZW4gJiYgKHNob3dBbGwgfHwgc2VjdGlvbi52aXNpYmxlIHx8ICFmaWVsZC4kb3B0aW9uYWwpJyBbbWV0YV09J2ZpZWxkJyBbcGFyZW50XT0ncmVzb3VyY2UnIFtpbnRlZ3JhdGlvbkNvZGVdPSdpbnRlZ3JhdGlvbkNvZGUnIFtyZXNvdXJjZVR5cGVdPSdyZXNvdXJjZVR5cGUnIFtwcmV2aWV3XT0ncHJldmlldycgW25nQ2xhc3NdPVwieyBzaG93bjogIWZpZWxkLiRpbnZpc2libGUgJiYgKHNob3dBbGwgfHwgdHJ1ZSkgfVwiIHRoZW1lPSdpbmhlcml0JyBbYXR0ci5kYXRhLXRoZW1lXT0ndGhlbWUnPjwvdmdpcC1tZXRhLWZpZWxkPlxuXHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPSdpc1BlcnNpc3RlZFJlc291cmNlICYmIG1ldGEuY2hpbGRyZW4gJiYgcHJldmlldyc+XG5cdDxkaXYgKm5nRm9yPSdsZXQgY2hpbGQgb2YgbWV0YS5jaGlsZHJlbic+XG5cdFx0PGg1IGNsYXNzPSdWbHQtY2hpbGRyZW5fX3RpdGxlJz5cblx0XHRcdDxzdmcgY2xhc3M9XCJWbHQtaWNvblwiPjx1c2UgeGxpbms6aHJlZj1cInZvbHRhL3ZvbHRhLWljb25zLnN2ZyNWbHQtaWNvbi1zdGFja1wiIC8+PC9zdmc+Jm5ic3A7XG5cdFx0XHR7e2NoaWxkLmxhYmVsfX0gPHNwYW4gY2xhc3M9J1ZsdC1ncmV5Jz4oe3socmVzb3VyY2VbY2hpbGQubmFtZV0gfHwgW10pLmxlbmd0aH19KTwvc3Bhbj5cblx0XHQ8L2g1PlxuXHRcdDxkaXYgKm5nRm9yPVwibGV0IGMgb2YgcmVzb3VyY2VbY2hpbGQubmFtZV1cIiBzdHlsZT0ncG9zaXRpb246IHJlbGF0aXZlOyc+XG5cblx0XHRcdDxkaXYgY2xhc3M9XCJWbHQtY2FyZCBWbHQtYmctd2hpdGVcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cIlZsdC1jYXJkX19jb250ZW50IFZsdC1idG4tb24taG92ZXJcIj5cblx0XHRcdFx0XHQ8aDU+e3tjaGlsZFJlc291cmNlQ2FyZExhYmVsKGMpfX08L2g1PlxuXHRcdFx0XHRcdDxkaXYgc3R5bGU9J2ZvbnQtc2l6ZTogMTJweDsgbGluZS1oZWlnaHQ6IDE2cHg7Jz5cblx0XHRcdFx0XHRcdENyZWF0ZWQ6IDxzcGFuIGNsYXNzPSdWbHQtYmxhY2snPnt7Yy5fdmdpcy5jcmVhdGVkRGF0ZSB8IGRhdGU6J21lZGl1bURhdGUnfX08L3NwYW4+XG5cdFx0XHRcdFx0XHRFZGl0ZWQ6IDxzcGFuIGNsYXNzPSdWbHQtYmxhY2snPnt7Yy5fdmdpcy5tb2RpZmllZERhdGUgfCBkYXRlOidtZWRpdW0nfX08L3NwYW4+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cIlZsdC1iYWRnZSBWbHQtYmFkZ2UtLWFwcCBWbHQtYmFkZ2UtLXB1cnBsZSBWbHQtYmFkZ2UtLXNtYWxsXCI+e3tjLl92Z2lzLnJlc291cmNlVHlwZX19PC9kaXY+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cIlZsdC1idG4tZ3JvdXAgVmx0LWJ0bi1ncm91cC0taG92ZXJcIj5cblx0XHRcdFx0XHRcdDxhICpuZ0lmPSdjLl92Z2lzLmV4dGVybmFsTGluaycgYXR0ci5ocmVmPSd7e2MuX3ZnaXMuZXh0ZXJuYWxMaW5rfX0nIHRhcmdldD0nX2JsYW5rJyByZWw9J25vb3BlbmVyJyByZWw9J25vb3BlbmVyJyBjbGFzcz1cIlZsdC1idG4gVmx0LWJ0bi0tdGVydGlhcnkgVmx0LWJ0bi0taWNvblwiIGFyaWEtbGFiZWw9J09wZW4gZXh0ZXJuYWwnPjxzdmcgc3R5bGU9J21hcmdpbi1sZWZ0OiAwOyBtYXJnaW4tcmlnaHQ6IDA7Jz48dXNlIHhsaW5rOmhyZWY9XCJ2b2x0YS92b2x0YS1pY29ucy5zdmcjVmx0LWljb24tb3BlblwiLz48L3N2Zz48L2E+XG5cdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9J2J1dHRvbicgKGNsaWNrKT0nb3BlbkNoaWxkKGNoaWxkLCBjKScgY2xhc3M9XCJWbHQtYnRuIFZsdC1idG4tLXRlcnRpYXJ5IFZsdC1idG4tLWljb25cIj48c3ZnIHN0eWxlPSdtYXJnaW4tbGVmdDogMDsgbWFyZ2luLXJpZ2h0OiAwOyc+PHVzZSBhdHRyLnhsaW5rOmhyZWY9XCJ2b2x0YS92b2x0YS1pY29ucy5zdmcjVmx0LWljb24te3sgY2hpbGQucmVmZXJlbmNlLmVkaXRhYmxlID8gJ2VkaXQnIDogJ2V5ZS1uZWdhdGl2ZScgfX1cIi8+PC9zdmc+PC9idXR0b24+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGJ1dHRvbiBzdHlsZT0nd2lkdGg6IDEwMCU7IG1hcmdpbi10b3A6IDA7IG1heC13aWR0aDogMTAwJTsnIHR5cGU9J2J1dHRvbicgKGNsaWNrKT0nb3BlbkNoaWxkKGNoaWxkKScgY2xhc3M9XCJWbHQtYnRuIFZsdC1idG4tLXNtYWxsIFZsdC1idG4tLXNlY29uZGFyeVwiIFtkaXNhYmxlZF09J2NoaWxkLmNyZWF0YWJsZSA9PT0gZmFsc2UnPlxuXHRcdFx0PHN2Zz48dXNlIHhsaW5rOmhyZWY9XCJ2b2x0YS92b2x0YS1pY29ucy5zdmcjVmx0LWljb24tcGx1c1wiLz48L3N2Zz57e2NoaWxkLnJlZmVyZW5jZS5sYWJlbH19XG5cdFx0PC9idXR0b24+XG5cdDwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPSchKG1ldGEub25lVGltZU9wdGlvbmFsICYmIHNob3dBbGwpJyBbbmdDbGFzc109J3sgY2VudGVyZWQ6ICFtZXRhLm9uZVRpbWVPcHRpb25hbCB9Jz5cblx0PGJ1dHRvbiAqbmdJZj0nIXByZXZpZXcgJiYgb3B0aW9uYWxGaWVsZHNDb3VudCcgdHlwZT0nYnV0dG9uJyAoY2xpY2spPSd0b2dnbGVPcHRpb25hbEZpZWxkcygpJyBjbGFzcz1cIlZsdC1idG4gVmx0LWJ0bi0tc21hbGwgVmx0LWJ0bi0tbGluayBtb3JlLWJ1dHRvblwiIHN0eWxlPSdtYXJnaW46IDA7IG1hcmdpbi1ib3R0b206IDEwcHg7Jz5cblx0XHQ8c3ZnPjx1c2UgYXR0ci54bGluazpocmVmPVwidm9sdGEvdm9sdGEtaWNvbnMuc3ZnI1ZsdC1pY29uLWNoZXZyb24te3sgc2hvd0FsbCA/ICd1cCcgOiAnZG93bicgfX1cIi8+PC9zdmc+XG5cdFx0e3sgc2hvd0FsbCA/ICdIaWRlJyA6ICdTaG93JyB9fSBPcHRpb25hbCBGaWVsZHMgKHt7b3B0aW9uYWxGaWVsZHNDb3VudH19KVxuXHQ8L2J1dHRvbj5cbjwvZGl2PlxuIl19
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXRhLXVpL3NyYy9saWIvbGF5b3V0L2luZGV4LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWV0YS11aS9zcmMvbGliL2xheW91dC92aWV3Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxLQUFLLEdBS04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUd0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7QUFTbEUsTUFBTSxPQUFPLFVBQVU7SUFxQnJCLFlBQ1UsZ0JBQWtDLEVBQ2xDLEdBQXNCLEVBQ3RCLEVBQWMsRUFDZCxZQUFpQyxFQUNqQyxnQkFBc0MsRUFDdEMsY0FBOEIsRUFDOUIsV0FBK0I7UUFOL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBc0I7UUFDdEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQWpCekMsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFFekIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQiw0QkFBdUIsR0FBb0IsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUlqRSwyQkFBc0IsR0FBRyxpQkFBaUIsQ0FBQztRQVl6Qyx3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLGdEQUFnRDtRQUNoRCxPQUFPLENBQ0wsSUFBSSxDQUFDLFFBQVE7WUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUs7WUFDbkIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQzNELENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFFakMsSUFBSSxDQUFDLHVCQUF1QjthQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUM7YUFDL0MsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVOLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQzlDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO29CQUNqRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDN0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ1IsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFDO1lBQ2xFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1lBQzFELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFZO1FBQ3RCLElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtZQUNoQixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUNqQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO1FBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFDeEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDL0IsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7b0JBQ2xDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN2QjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFO3dCQUM3QixLQUFLLEVBQUUsQ0FBQztxQkFDVDtpQkFDRjthQUNGO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQyxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0QsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLGNBQWMsQ0FBQztZQUM5QixJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRTtnQkFDZCxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN2QjtTQUNGO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDdkIsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDbEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFO29CQUNwQyxLQUFLLEVBQUUsSUFBSTtvQkFDWCxRQUFRLEVBQUUsSUFBSTtvQkFDZCxZQUFZLEVBQUUsSUFBSTtvQkFDbEIsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDbEUsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDdEMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDN0IsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDekMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUU7NEJBQzFGLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxFQUNsQztnQ0FDRSxNQUFNLEVBQUUsbUJBQW1CO2dDQUMzQixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUU7Z0NBQ25ELEdBQUcsRUFBRTtvQ0FDSCxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7b0NBQ3JFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFlBQVk7b0NBQ3BELEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztpQ0FDdEM7Z0NBQ0QsT0FBTyxFQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUNuQzs2QkFDSixFQUNELENBQUMsUUFBUSxFQUFFLEVBQUU7Z0NBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7b0NBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztvQ0FDekUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO2lDQUN6RTtxQ0FBTTtvQ0FDTCxPQUFPLENBQUMsSUFBSSxDQUNWLDhCQUE4QixFQUM5QixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUNoRCxDQUFDO2lDQUNIOzRCQUNILENBQUMsQ0FDRixDQUFDO3lCQUNIO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxVQUFXO1FBQ3hDLE1BQU0sYUFBYSxHQUFHLE1BQU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FDckQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQ3ZCLENBQUM7UUFDRixhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLDJDQUEyQztRQUNqRyxNQUFNLGtCQUFrQixHQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxnQkFBZ0I7YUFDbEIsVUFBVSxDQUNULGtCQUFrQixFQUNsQixJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsZUFBZSxFQUNwQixhQUFhLENBQUMsU0FBUyxFQUN2QixVQUFVLEVBQ1YsVUFBVSxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxrQkFBa0I7U0FDNUU7YUFDQSxTQUFTLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUN6QixJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFO2dCQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztpQkFDeEM7Z0JBQ0QsSUFBSSxVQUFVLEVBQUU7b0JBQ2QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN2QztxQkFBTTtvQkFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNwRDthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sVUFBVTtRQUNoQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDL0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDekU7SUFDSCxDQUFDOytHQXROVSxVQUFVO21HQUFWLFVBQVUsMk1DekJ2QiwrNkdBNkNBOzs0RkRwQmEsVUFBVTtrQkFMdEIsU0FBUzsrQkFDRSxrQkFBa0I7bVNBUW5CLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIERvQ2hlY2ssXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHJlc291cmNlQ2FyZExhYmVsIH0gZnJvbSBcIi4uL2NvbW1vbi91dGlscy9yZXNvdXJjZUNhcmRMYWJlbFwiO1xuaW1wb3J0IHsgTWV0YVJlc291cmNlU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9tZXRhUmVzb3VyY2VcIjtcbmltcG9ydCB7IE1ldGFSZWZlcmVuY2VTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL21ldGFSZWZlcmVuY2VcIjtcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IG1ldGFEYXJrLCBtZXRhTGlnaHQgfSBmcm9tIFwiLi4vY29tbW9uL3V0aWxzL2NvbG9yVGhlbWVzXCI7XG5pbXBvcnQgeyBNZXRhTXNnU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9tZXRhTXNnXCI7XG5pbXBvcnQgeyBNZXRhQ29udGV4dFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvbWV0YUNvbnRleHRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInZnaXAtbWV0YS1sYXlvdXRcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi92aWV3Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3N0eWxlLnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIE1ldGFMYXlvdXRcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudENoZWNrZWQsIE9uQ2hhbmdlcywgRG9DaGVja1xue1xuICBwcml2YXRlIF9yZXNvdXJjZTogYW55O1xuICBASW5wdXQoKSBtZXRhOiBhbnk7XG4gIEBJbnB1dCgpIHJlc291cmNlOiBhbnk7XG4gIEBJbnB1dCgpIGludGVncmF0aW9uOiBhbnk7XG4gIEBJbnB1dCgpIHR5cGU6IGFueTtcbiAgQElucHV0KCkgcHJldmlldzogYm9vbGVhbjtcbiAgQElucHV0KCkgdGhlbWU6IHN0cmluZztcblxuICBvcHRpb25hbEZpZWxkczogYW55ID0ge307XG4gIG9wdGlvbmFsRmllbGRzQ291bnQ6IG51bWJlcjtcbiAgc2hvd0FsbCA9IGZhbHNlO1xuICBmaWVsZHNWaXNpYmlsaXR5Q2hhbmdlZDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwYXJlbnRGb3JtOiBIVE1MRm9ybUVsZW1lbnQ7XG4gIGludGVncmF0aW9uQ29kZTogc3RyaW5nO1xuICByZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgY2hpbGRSZXNvdXJjZUNhcmRMYWJlbCA9IHJlc291cmNlQ2FyZExhYmVsO1xuICBvdmVybGF5Q29udGFpbmVyOiBIVE1MRWxlbWVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBtZXRhUmVzb3VyY2U6IE1ldGFSZXNvdXJjZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWZlcmVuY2VTZXJ2aWNlOiBNZXRhUmVmZXJlbmNlU2VydmljZSxcbiAgICBwcml2YXRlIG1ldGFNc2dTZXJ2aWNlOiBNZXRhTXNnU2VydmljZSxcbiAgICBwcml2YXRlIG1ldGFDb250ZXh0OiBNZXRhQ29udGV4dFNlcnZpY2VcbiAgKSB7XG4gICAgLy8gY29uc29sZS5sb2coJ01ldGFMYXlvdXQnLCB0aGlzLm1ldGEpO1xuICAgIHRoaXMub3ZlcmxheUNvbnRhaW5lciA9IGVsLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBnZXQgaXNQZXJzaXN0ZWRSZXNvdXJjZSgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5yZXNvdXJjZSAmJlxuICAgICAgdGhpcy5yZXNvdXJjZS5fdmdpcyAmJlxuICAgICAgKHRoaXMucmVzb3VyY2UuX3ZnaXMuZXh0ZXJuYWxJZCB8fCB0aGlzLnJlc291cmNlLl92Z2lzLmlkKVxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmludGVncmF0aW9uQ29kZSA9IHRoaXMubWV0YS5pbnRlZ3JhdGlvbkNvZGUgfHwgdGhpcy5pbnRlZ3JhdGlvbjtcbiAgICB0aGlzLnJlc291cmNlVHlwZSA9IHRoaXMubWV0YS5yZXNvdXJjZVR5cGUgfHwgdGhpcy50eXBlO1xuICAgIHRoaXMucGFyZW50Rm9ybSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbG9zZXN0KFwiZm9ybVwiKTtcbiAgICB0aGlzLmNvbmZpZ3VyZU9wdGlvbmFsU2VjdGlvbnMoKTtcblxuICAgIHRoaXMuZmllbGRzVmlzaWJpbGl0eUNoYW5nZWRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY291bnRPcHRpb25hbEZpZWxkcygpO1xuICAgICAgfSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNvdW50T3B0aW9uYWxGaWVsZHMoKTtcbiAgICB9LCAwKTtcblxuICAgIGlmICh0aGlzLnBhcmVudEZvcm0pIHtcbiAgICAgIHRoaXMucGFyZW50Rm9ybS5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5maWVsZHNWaXNpYmlsaXR5Q2hhbmdlZC5uZXh0KEpTT04uc3RyaW5naWZ5KHRoaXMucmVzb3VyY2UpKTtcbiAgICAgICAgICB0aGlzLmNvdW50T3B0aW9uYWxGaWVsZHMoKTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50aGVtZSAhPT0gXCJpbmhlcml0XCIpIHtcbiAgICAgIHRoaXMuYXBwbHlUaGVtZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICB0aGlzLmNvdW50T3B0aW9uYWxGaWVsZHMoKTtcbiAgICBpZihKU09OLnN0cmluZ2lmeSh0aGlzLnJlc291cmNlKSAhPT0gSlNPTi5zdHJpbmdpZnkodGhpcy5fcmVzb3VyY2UpKXtcbiAgICAgIHRoaXMuX3Jlc291cmNlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnJlc291cmNlKSlcbiAgICAgIHRoaXMuYnVpbGRFeHRlcm5hbExpbmsoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpIHtcbiAgICBpZiAoY2hhbmdlcy5tZXRhKSB7XG4gICAgICB0aGlzLmNvbmZpZ3VyZU9wdGlvbmFsU2VjdGlvbnMoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNvdW50T3B0aW9uYWxGaWVsZHMoKTtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcy50aGVtZSkge1xuICAgICAgdGhpcy50aGVtZSA9IGNoYW5nZXMudGhlbWUuY3VycmVudFZhbHVlO1xuICAgICAgdGhpcy5hcHBseVRoZW1lKCk7XG4gICAgfVxuICB9XG5cbiAgY291bnRPcHRpb25hbEZpZWxkcygpIHtcbiAgICBsZXQgY291bnQgPSAwO1xuICAgIGNvbnN0IGNvdW50U2VjdGlvbkZpZWxkcyA9IChzKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGYgb2Ygcy5maWVsZHMgfHwgW10pIHtcbiAgICAgICAgaWYgKGYuZmllbGRzPy5sZW5ndGggJiYgIWYudmlzaWJsZSkge1xuICAgICAgICAgIGNvdW50U2VjdGlvbkZpZWxkcyhmKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZi4kb3B0aW9uYWwgJiYgIWYuJGhpZGRlbikge1xuICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIGZvciAoY29uc3QgcyBvZiB0aGlzLm1ldGEuc2VjdGlvbnMpIHtcbiAgICAgIGNvbnN0IG5vdE9wdGlvbmFsQW55ID0gcy5maWVsZHM/LmZpbmQoKGYpID0+ICFmLiRvcHRpb25hbCk7XG4gICAgICBzLiRvcHRpb25hbCA9ICFub3RPcHRpb25hbEFueTtcbiAgICAgIGlmICghcy52aXNpYmxlKSB7XG4gICAgICAgIGNvdW50U2VjdGlvbkZpZWxkcyhzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5vcHRpb25hbEZpZWxkc0NvdW50ID0gY291bnQ7XG4gIH1cblxuICBjb25maWd1cmVPcHRpb25hbFNlY3Rpb25zKCkge1xuICAgIGlmICh0aGlzLm1ldGE/LnNlY3Rpb25zKSB7XG4gICAgICBmb3IgKGNvbnN0IHMgb2YgdGhpcy5tZXRhLnNlY3Rpb25zKSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCBcIiRvcHRpb25hbFwiLCB7XG4gICAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKSB7XG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdG9nZ2xlT3B0aW9uYWxGaWVsZHMoKSB7XG4gICAgdGhpcy5zaG93QWxsID0gIXRoaXMuc2hvd0FsbDtcbiAgICB0aGlzLm5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEV4dGVybmFsTGluaygpIHtcbiAgICBpZiAodGhpcy5pc1BlcnNpc3RlZFJlc291cmNlICYmIHRoaXMubWV0YS5jaGlsZHJlbiAmJiB0aGlzLnByZXZpZXcpIHtcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5tZXRhLmNoaWxkcmVuKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc291cmNlW2NoaWxkLm5hbWVdKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBjIGluIHRoaXMucmVzb3VyY2VbY2hpbGQubmFtZV0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnJlc291cmNlW2NoaWxkLm5hbWVdW2NdLl92Z2lzLmV4dGVybmFsSWQgfHwgdGhpcy5yZXNvdXJjZVtjaGlsZC5uYW1lXVtjXS5fdmdpcy5pZCkge1xuICAgICAgICAgICAgICB0aGlzLm1ldGFNc2dTZXJ2aWNlLnNlbmRNZXNzYWdlKFxuICAgICAgICAgICAgICAgIHRoaXMuaW50ZWdyYXRpb25Db2RlLnRvVXBwZXJDYXNlKCksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWN0aW9uOiBcImJ1aWxkRXh0ZXJuYWxMaW5rXCIsXG4gICAgICAgICAgICAgICAgICBpbnRlZ3JhdGlvbkNvZGU6IHRoaXMuaW50ZWdyYXRpb25Db2RlLnRvTG93ZXJDYXNlKCksIC8vIGRvbid0IGtub3cgd2h5IGJ1dCBhbGwgd29ya2VycyBhcmUgd3JpdHRlbiBleHBlY3RpbmcgbG93ZXJjYXNlXG4gICAgICAgICAgICAgICAgICByZWY6IHtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50UmVmSWQ6IHRoaXMucmVzb3VyY2UuX3ZnaXMuZXh0ZXJuYWxJZCB8fCB0aGlzLnJlc291cmNlLl92Z2lzLmlkLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRSZXNvdXJjZVR5cGU6IHRoaXMucmVzb3VyY2UuX3ZnaXMucmVzb3VyY2VUeXBlLFxuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnJlc291cmNlW2NoaWxkLm5hbWVdW2NdLl92Z2lzXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgcHJvZmlsZTpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXRhQ29udGV4dC5wcm9maWxlc1tcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmludGVncmF0aW9uQ29kZS50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICghcmVzcG9uc2UuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2VbY2hpbGQubmFtZV1bY10uX3ZnaXMuZXh0ZXJuYWxMaW5rID0gcmVzcG9uc2UuZXh0ZXJuYWxMaW5rO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc291cmNlW2NoaWxkLm5hbWVdW2NdLl92Z2lzLmV4dGVybmFsTGluayA9IHJlc3BvbnNlLmV4dGVybmFsTGluaztcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgICBcIk5vIGV4dGVybmFsIGxpbmsgc3VwcG9ydCBmb3JcIixcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmludGVncmF0aW9uQ29kZSxcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc291cmNlW2NoaWxkLm5hbWVdW2NdLl92Z2lzLnJlc291cmNlVHlwZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBvcGVuQ2hpbGQoY2hpbGRSZXNvdXJjZSwgY2hpbGRNb2RlbD8pIHtcbiAgICBjb25zdCBtZXRhUmVmRGlhbG9nID0gYXdhaXQgaW1wb3J0KFwiLi4vcmVmRGlhbG9nXCIpLnRoZW4oXG4gICAgICAobSkgPT4gbS5NZXRhUmVmRGlhbG9nXG4gICAgKTtcbiAgICBjaGlsZFJlc291cmNlLnJlZmVyZW5jZS5wYXJlbnQgPSB0aGlzLnJlc291cmNlLl92Z2lzOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG4gICAgY29uc3QgcmVmRGlhbG9nQ29tcG9uZW50ID1cbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQobWV0YVJlZkRpYWxvZyk7XG4gICAgdGhpcy5yZWZlcmVuY2VTZXJ2aWNlXG4gICAgICAub3BlbkRpYWxvZyhcbiAgICAgICAgcmVmRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICB0aGlzLm1ldGFSZXNvdXJjZSxcbiAgICAgICAgdGhpcy5pbnRlZ3JhdGlvbkNvZGUsXG4gICAgICAgIGNoaWxkUmVzb3VyY2UucmVmZXJlbmNlLFxuICAgICAgICBjaGlsZE1vZGVsLFxuICAgICAgICBjaGlsZE1vZGVsICYmIGNoaWxkUmVzb3VyY2UucmVmZXJlbmNlLmVkaXRhYmxlID09PSBmYWxzZSAvLyBpcyBwcmV2aWV3IG1vZGVcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LnJhdykge1xuICAgICAgICAgIGlmICghdGhpcy5yZXNvdXJjZVtjaGlsZFJlc291cmNlLm5hbWVdKSB7XG4gICAgICAgICAgICB0aGlzLnJlc291cmNlW2NoaWxkUmVzb3VyY2UubmFtZV0gPSBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNoaWxkTW9kZWwpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oY2hpbGRNb2RlbCwgcmVzdWx0LnJhdyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VbY2hpbGRSZXNvdXJjZS5uYW1lXS5wdXNoKHJlc3VsdC5yYXcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5VGhlbWUoKSB7XG4gICAgY29uc3QgbWV0YVRoZW1lID0gdGhpcy50aGVtZSA9PT0gXCJkYXJrXCIgPyBtZXRhRGFyayA6IG1ldGFMaWdodDtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtZXRhVGhlbWUucHJvcGVydGllcykpIHtcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIG1ldGFUaGVtZS5wcm9wZXJ0aWVzW2tleV0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdGb3I9J2xldCBzZWN0aW9uIG9mIG1ldGEuc2VjdGlvbnMnIGNsYXNzPSdWbHQtc2VjdGlvbicgW25nQ2xhc3NdPVwieyBzaG93bjogc2hvd0FsbCB8fCBzZWN0aW9uLnZpc2libGUgfHwgKCFtZXRhLm9uZVRpbWVPcHRpb25hbCAmJiAhc2VjdGlvbi4kb3B0aW9uYWwpIHx8IChtZXRhLm9uZVRpbWVPcHRpb25hbCAmJiAhb3B0aW9uYWxGaWVsZHNDb3VudCkgfVwiPlxuXHQ8aDUgKm5nSWY9J3NlY3Rpb24ubGFiZWwnIGNsYXNzPVwiVmx0LXNlY3Rpb25fX3RpdGxlXCI+e3tzZWN0aW9uLmxhYmVsfX08L2g1PlxuXHQ8ZGl2IHN0eWxlPSdvdmVyZmxvdzogdmlzaWJsZTsnIFtuZ0NsYXNzXT1cInsgJ2Zvci1wcmV2aWV3JzogcHJldmlldyB9XCI+XG5cdFx0PHNtYWxsICpuZ0lmPSdzZWN0aW9uLmRlc2NyaXB0aW9uJyBjbGFzcz1cIlZsdC1mb3JtX19lbGVtZW50X19oaW50XCI+e3tzZWN0aW9uLmRlc2NyaXB0aW9ufX08L3NtYWxsPlxuXHRcdDxkaXY+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj0nbGV0IGZpZWxkIG9mIHNlY3Rpb24uZmllbGRzJz5cblx0XHRcdFx0PHZnaXAtbWV0YS1maWVsZCAqbmdJZj0nIWZpZWxkLiRoaWRkZW4gJiYgKHNob3dBbGwgfHwgc2VjdGlvbi52aXNpYmxlIHx8ICFmaWVsZC4kb3B0aW9uYWwpJyBbbWV0YV09J2ZpZWxkJyBbcGFyZW50XT0ncmVzb3VyY2UnIFtpbnRlZ3JhdGlvbkNvZGVdPSdpbnRlZ3JhdGlvbkNvZGUnIFtyZXNvdXJjZVR5cGVdPSdyZXNvdXJjZVR5cGUnIFtwcmV2aWV3XT0ncHJldmlldycgW25nQ2xhc3NdPVwieyBzaG93bjogIWZpZWxkLiRpbnZpc2libGUgJiYgKHNob3dBbGwgfHwgdHJ1ZSkgfVwiIHRoZW1lPSdpbmhlcml0JyBbYXR0ci5kYXRhLXRoZW1lXT0ndGhlbWUnPjwvdmdpcC1tZXRhLWZpZWxkPlxuXHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPSdpc1BlcnNpc3RlZFJlc291cmNlICYmIG1ldGEuY2hpbGRyZW4gJiYgcHJldmlldyc+XG5cdDxkaXYgKm5nRm9yPSdsZXQgY2hpbGQgb2YgbWV0YS5jaGlsZHJlbic+XG5cdFx0PGg1IGNsYXNzPSdWbHQtY2hpbGRyZW5fX3RpdGxlJz5cblx0XHRcdDxzdmcgY2xhc3M9XCJWbHQtaWNvblwiPjx1c2UgeGxpbms6aHJlZj1cInZvbHRhL3ZvbHRhLWljb25zLnN2ZyNWbHQtaWNvbi1zdGFja1wiIC8+PC9zdmc+Jm5ic3A7XG5cdFx0XHR7e2NoaWxkLmxhYmVsfX0gPHNwYW4gY2xhc3M9J1ZsdC1ncmV5Jz4oe3socmVzb3VyY2VbY2hpbGQubmFtZV0gfHwgW10pLmxlbmd0aH19KTwvc3Bhbj5cblx0XHQ8L2g1PlxuXHRcdDxkaXYgKm5nRm9yPVwibGV0IGMgb2YgcmVzb3VyY2VbY2hpbGQubmFtZV1cIiBzdHlsZT0ncG9zaXRpb246IHJlbGF0aXZlOyc+XG5cblx0XHRcdDxkaXYgY2xhc3M9XCJWbHQtY2FyZCBWbHQtYmctd2hpdGVcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cIlZsdC1jYXJkX19jb250ZW50IFZsdC1idG4tb24taG92ZXJcIj5cblx0XHRcdFx0XHQ8aDU+e3tjaGlsZFJlc291cmNlQ2FyZExhYmVsKGMpfX08L2g1PlxuXHRcdFx0XHRcdDxkaXYgc3R5bGU9J2ZvbnQtc2l6ZTogMTJweDsgbGluZS1oZWlnaHQ6IDE2cHg7Jz5cblx0XHRcdFx0XHRcdENyZWF0ZWQ6IDxzcGFuIGNsYXNzPSdWbHQtYmxhY2snPnt7Yy5fdmdpcy5jcmVhdGVkRGF0ZSB8IGRhdGU6J21lZGl1bURhdGUnfX08L3NwYW4+XG5cdFx0XHRcdFx0XHRFZGl0ZWQ6IDxzcGFuIGNsYXNzPSdWbHQtYmxhY2snPnt7Yy5fdmdpcy5tb2RpZmllZERhdGUgfCBkYXRlOidtZWRpdW0nfX08L3NwYW4+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cIlZsdC1iYWRnZSBWbHQtYmFkZ2UtLWFwcCBWbHQtYmFkZ2UtLXB1cnBsZSBWbHQtYmFkZ2UtLXNtYWxsXCI+e3tjLl92Z2lzLnJlc291cmNlVHlwZX19PC9kaXY+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cIlZsdC1idG4tZ3JvdXAgVmx0LWJ0bi1ncm91cC0taG92ZXJcIj5cblx0XHRcdFx0XHRcdDxhICpuZ0lmPSdjLl92Z2lzLmV4dGVybmFsTGluaycgYXR0ci5ocmVmPSd7e2MuX3ZnaXMuZXh0ZXJuYWxMaW5rfX0nIHRhcmdldD0nX2JsYW5rJyByZWw9J25vb3BlbmVyJyByZWw9J25vb3BlbmVyJyBjbGFzcz1cIlZsdC1idG4gVmx0LWJ0bi0tdGVydGlhcnkgVmx0LWJ0bi0taWNvblwiIGFyaWEtbGFiZWw9J09wZW4gZXh0ZXJuYWwnPjxzdmcgc3R5bGU9J21hcmdpbi1sZWZ0OiAwOyBtYXJnaW4tcmlnaHQ6IDA7Jz48dXNlIHhsaW5rOmhyZWY9XCJ2b2x0YS92b2x0YS1pY29ucy5zdmcjVmx0LWljb24tb3BlblwiLz48L3N2Zz48L2E+XG5cdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9J2J1dHRvbicgKGNsaWNrKT0nb3BlbkNoaWxkKGNoaWxkLCBjKScgY2xhc3M9XCJWbHQtYnRuIFZsdC1idG4tLXRlcnRpYXJ5IFZsdC1idG4tLWljb25cIj48c3ZnIHN0eWxlPSdtYXJnaW4tbGVmdDogMDsgbWFyZ2luLXJpZ2h0OiAwOyc+PHVzZSBhdHRyLnhsaW5rOmhyZWY9XCJ2b2x0YS92b2x0YS1pY29ucy5zdmcjVmx0LWljb24te3sgY2hpbGQucmVmZXJlbmNlLmVkaXRhYmxlID8gJ2VkaXQnIDogJ2V5ZS1uZWdhdGl2ZScgfX1cIi8+PC9zdmc+PC9idXR0b24+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGJ1dHRvbiBzdHlsZT0nd2lkdGg6IDEwMCU7IG1hcmdpbi10b3A6IDA7IG1heC13aWR0aDogMTAwJTsnIHR5cGU9J2J1dHRvbicgKGNsaWNrKT0nb3BlbkNoaWxkKGNoaWxkKScgY2xhc3M9XCJWbHQtYnRuIFZsdC1idG4tLXNtYWxsIFZsdC1idG4tLXNlY29uZGFyeVwiIFtkaXNhYmxlZF09J2NoaWxkLmNyZWF0YWJsZSA9PT0gZmFsc2UnPlxuXHRcdFx0PHN2Zz48dXNlIHhsaW5rOmhyZWY9XCJ2b2x0YS92b2x0YS1pY29ucy5zdmcjVmx0LWljb24tcGx1c1wiLz48L3N2Zz57e2NoaWxkLnJlZmVyZW5jZS5sYWJlbH19XG5cdFx0PC9idXR0b24+XG5cdDwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPSchKG1ldGEub25lVGltZU9wdGlvbmFsICYmIHNob3dBbGwpJyBbbmdDbGFzc109J3sgY2VudGVyZWQ6ICFtZXRhLm9uZVRpbWVPcHRpb25hbCB9Jz5cblx0PGJ1dHRvbiAqbmdJZj0nIXByZXZpZXcgJiYgb3B0aW9uYWxGaWVsZHNDb3VudCcgdHlwZT0nYnV0dG9uJyAoY2xpY2spPSd0b2dnbGVPcHRpb25hbEZpZWxkcygpJyBjbGFzcz1cIlZsdC1idG4gVmx0LWJ0bi0tc21hbGwgVmx0LWJ0bi0tbGluayBtb3JlLWJ1dHRvblwiIHN0eWxlPSdtYXJnaW46IDA7IG1hcmdpbi1ib3R0b206IDEwcHg7Jz5cblx0XHQ8c3ZnPjx1c2UgYXR0ci54bGluazpocmVmPVwidm9sdGEvdm9sdGEtaWNvbnMuc3ZnI1ZsdC1pY29uLWNoZXZyb24te3sgc2hvd0FsbCA/ICd1cCcgOiAnZG93bicgfX1cIi8+PC9zdmc+XG5cdFx0e3sgc2hvd0FsbCA/ICdIaWRlJyA6ICdTaG93JyB9fSBPcHRpb25hbCBGaWVsZHMgKHt7b3B0aW9uYWxGaWVsZHNDb3VudH19KVxuXHQ8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -9,7 +9,7 @@ import * as i1 from '@angular/common/http';
9
9
  import { HttpParams, HttpHeaders } from '@angular/common/http';
10
10
  import * as i2 from '@angular/forms';
11
11
  import * as i1$1 from '@angular/router';
12
- import { M as MetaField } from './vgip-meta-ui-index-cfed1bf9.mjs';
12
+ import { M as MetaField } from './vgip-meta-ui-index-eb491f7e.mjs';
13
13
 
14
14
  const numberFieldNormalizer = (field) => {
15
15
  const f = {
@@ -1173,12 +1173,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
1173
1173
  }], ctorParameters: function () { return [{ type: i1$1.Router }]; } });
1174
1174
 
1175
1175
  class MetaLayout {
1176
- constructor(viewContainerRef, ref, el, metaResource, referenceService) {
1176
+ constructor(viewContainerRef, ref, el, metaResource, referenceService, metaMsgService, metaContext) {
1177
1177
  this.viewContainerRef = viewContainerRef;
1178
1178
  this.ref = ref;
1179
1179
  this.el = el;
1180
1180
  this.metaResource = metaResource;
1181
1181
  this.referenceService = referenceService;
1182
+ this.metaMsgService = metaMsgService;
1183
+ this.metaContext = metaContext;
1182
1184
  this.optionalFields = {};
1183
1185
  this.showAll = false;
1184
1186
  this.fieldsVisibilityChanged = new Subject();
@@ -1219,6 +1221,10 @@ class MetaLayout {
1219
1221
  }
1220
1222
  ngDoCheck() {
1221
1223
  this.countOptionalFields();
1224
+ if (JSON.stringify(this.resource) !== JSON.stringify(this._resource)) {
1225
+ this._resource = JSON.parse(JSON.stringify(this.resource));
1226
+ this.buildExternalLink();
1227
+ }
1222
1228
  }
1223
1229
  ngOnChanges(changes) {
1224
1230
  if (changes.meta) {
@@ -1227,7 +1233,7 @@ class MetaLayout {
1227
1233
  this.countOptionalFields();
1228
1234
  }, 0);
1229
1235
  }
1230
- else if (changes.theme) {
1236
+ if (changes.theme) {
1231
1237
  this.theme = changes.theme.currentValue;
1232
1238
  this.applyTheme();
1233
1239
  }
@@ -1274,6 +1280,36 @@ class MetaLayout {
1274
1280
  this.showAll = !this.showAll;
1275
1281
  this.ngAfterContentChecked();
1276
1282
  }
1283
+ buildExternalLink() {
1284
+ if (this.isPersistedResource && this.meta.children && this.preview) {
1285
+ for (const child of this.meta.children) {
1286
+ if (this.resource[child.name]) {
1287
+ for (const c in this.resource[child.name]) {
1288
+ if (this.resource[child.name][c]._vgis.externalId || this.resource[child.name][c]._vgis.id) {
1289
+ this.metaMsgService.sendMessage(this.integrationCode.toUpperCase(), {
1290
+ action: "buildExternalLink",
1291
+ integrationCode: this.integrationCode.toLowerCase(),
1292
+ ref: {
1293
+ parentRefId: this.resource._vgis.externalId || this.resource._vgis.id,
1294
+ parentResourceType: this.resource._vgis.resourceType,
1295
+ ...this.resource[child.name][c]._vgis
1296
+ },
1297
+ profile: this.metaContext.profiles[this.integrationCode.toUpperCase()],
1298
+ }, (response) => {
1299
+ if (!response.error) {
1300
+ this._resource[child.name][c]._vgis.externalLink = response.externalLink;
1301
+ this.resource[child.name][c]._vgis.externalLink = response.externalLink;
1302
+ }
1303
+ else {
1304
+ console.warn("No external link support for", this.integrationCode, this.resource[child.name][c]._vgis.resourceType);
1305
+ }
1306
+ });
1307
+ }
1308
+ }
1309
+ }
1310
+ }
1311
+ }
1312
+ }
1277
1313
  async openChild(childResource, childModel) {
1278
1314
  const metaRefDialog = await Promise.resolve().then(function () { return index; }).then((m) => m.MetaRefDialog);
1279
1315
  childResource.reference.parent = this.resource._vgis; // eslint-disable-line no-underscore-dangle
@@ -1301,13 +1337,13 @@ class MetaLayout {
1301
1337
  this.el.nativeElement.style.setProperty(key, metaTheme.properties[key]);
1302
1338
  }
1303
1339
  }
1304
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: MetaLayout, deps: [{ token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: MetaResourceService }, { token: MetaReferenceService }], target: i0.ɵɵFactoryTarget.Component }); }
1340
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: MetaLayout, deps: [{ token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: MetaResourceService }, { token: MetaReferenceService }, { token: MetaMsgService }, { token: MetaContextService }], target: i0.ɵɵFactoryTarget.Component }); }
1305
1341
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: MetaLayout, selector: "vgip-meta-layout", inputs: { meta: "meta", resource: "resource", integration: "integration", type: "type", preview: "preview", theme: "theme" }, usesOnChanges: true, ngImport: i0, template: "<div *ngFor='let section of meta.sections' class='Vlt-section' [ngClass]=\"{ shown: showAll || section.visible || (!meta.oneTimeOptional && !section.$optional) || (meta.oneTimeOptional && !optionalFieldsCount) }\">\n\t<h5 *ngIf='section.label' class=\"Vlt-section__title\">{{section.label}}</h5>\n\t<div style='overflow: visible;' [ngClass]=\"{ 'for-preview': preview }\">\n\t\t<small *ngIf='section.description' class=\"Vlt-form__element__hint\">{{section.description}}</small>\n\t\t<div>\n\t\t\t<ng-container *ngFor='let field of section.fields'>\n\t\t\t\t<vgip-meta-field *ngIf='!field.$hidden && (showAll || section.visible || !field.$optional)' [meta]='field' [parent]='resource' [integrationCode]='integrationCode' [resourceType]='resourceType' [preview]='preview' [ngClass]=\"{ shown: !field.$invisible && (showAll || true) }\" theme='inherit' [attr.data-theme]='theme'></vgip-meta-field>\n\t\t\t</ng-container>\n\t\t</div>\n\t</div>\n</div>\n<div *ngIf='isPersistedResource && meta.children && preview'>\n\t<div *ngFor='let child of meta.children'>\n\t\t<h5 class='Vlt-children__title'>\n\t\t\t<svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-stack\" /></svg>&nbsp;\n\t\t\t{{child.label}} <span class='Vlt-grey'>({{(resource[child.name] || []).length}})</span>\n\t\t</h5>\n\t\t<div *ngFor=\"let c of resource[child.name]\" style='position: relative;'>\n\n\t\t\t<div class=\"Vlt-card Vlt-bg-white\">\n\t\t\t\t<div class=\"Vlt-card__content Vlt-btn-on-hover\">\n\t\t\t\t\t<h5>{{childResourceCardLabel(c)}}</h5>\n\t\t\t\t\t<div style='font-size: 12px; line-height: 16px;'>\n\t\t\t\t\t\tCreated: <span class='Vlt-black'>{{c._vgis.createdDate | date:'mediumDate'}}</span>\n\t\t\t\t\t\tEdited: <span class='Vlt-black'>{{c._vgis.modifiedDate | date:'medium'}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"Vlt-badge Vlt-badge--app Vlt-badge--purple Vlt-badge--small\">{{c._vgis.resourceType}}</div>\n\t\t\t\t\t<div class=\"Vlt-btn-group Vlt-btn-group--hover\">\n\t\t\t\t\t\t<a *ngIf='c._vgis.externalLink' attr.href='{{c._vgis.externalLink}}' target='_blank' rel='noopener' rel='noopener' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Open external'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\"/></svg></a>\n\t\t\t\t\t\t<button type='button' (click)='openChild(child, c)' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\"><svg style='margin-left: 0; margin-right: 0;'><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ child.reference.editable ? 'edit' : 'eye-negative' }}\"/></svg></button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<button style='width: 100%; margin-top: 0; max-width: 100%;' type='button' (click)='openChild(child)' class=\"Vlt-btn Vlt-btn--small Vlt-btn--secondary\" [disabled]='child.creatable === false'>\n\t\t\t<svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>{{child.reference.label}}\n\t\t</button>\n\t</div>\n</div>\n<div *ngIf='!(meta.oneTimeOptional && showAll)' [ngClass]='{ centered: !meta.oneTimeOptional }'>\n\t<button *ngIf='!preview && optionalFieldsCount' type='button' (click)='toggleOptionalFields()' class=\"Vlt-btn Vlt-btn--small Vlt-btn--link more-button\" style='margin: 0; margin-bottom: 10px;'>\n\t\t<svg><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-chevron-{{ showAll ? 'up' : 'down' }}\"/></svg>\n\t\t{{ showAll ? 'Hide' : 'Show' }} Optional Fields ({{optionalFieldsCount}})\n\t</button>\n</div>\n", styles: ["vgip-meta-field{display:none}vgip-meta-field.shown{display:initial}.Vlt-section__title{line-height:14px;padding:16px 16px 14px 3px;margin:-9px -1px 8px;background-color:var(--vgip-meta-resource-bg-color);color:var(--vgip-meta-resource-color);position:sticky;top:-9px;z-index:3;border-bottom:1px solid var(--vgip-meta-separator-color)}.Vlt-section{margin:0;padding-bottom:8px;display:none}.Vlt-section.shown{display:block}.Vlt-btn.vlt-add-child:hover{transform:scale(1.02)}.for-preview{margin-top:-6px}.Vlt-card{margin-bottom:16px;padding:16px}.Vlt-card .Vlt-btn-group.Vlt-btn-group--hover{right:-8px}button.more-button:focus{font-weight:700}.centered{text-align:center}.Vlt-btn--link{color:var(--vgip-meta-link-color)}.Vlt-btn--link:hover{color:var(--vgip-meta-link-hover-color)}.Vlt-btn--link svg{fill:var(--vgip-meta-link-color)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MetaField, selector: "vgip-meta-field", inputs: ["meta", "parent", "integrationCode", "resourceType", "index", "scope", "preview", "theme", "overlayContainer"], outputs: ["onChange", "onLeave"] }, { kind: "pipe", type: i1$2.DatePipe, name: "date" }] }); }
1306
1342
  }
1307
1343
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: MetaLayout, decorators: [{
1308
1344
  type: Component,
1309
1345
  args: [{ selector: "vgip-meta-layout", template: "<div *ngFor='let section of meta.sections' class='Vlt-section' [ngClass]=\"{ shown: showAll || section.visible || (!meta.oneTimeOptional && !section.$optional) || (meta.oneTimeOptional && !optionalFieldsCount) }\">\n\t<h5 *ngIf='section.label' class=\"Vlt-section__title\">{{section.label}}</h5>\n\t<div style='overflow: visible;' [ngClass]=\"{ 'for-preview': preview }\">\n\t\t<small *ngIf='section.description' class=\"Vlt-form__element__hint\">{{section.description}}</small>\n\t\t<div>\n\t\t\t<ng-container *ngFor='let field of section.fields'>\n\t\t\t\t<vgip-meta-field *ngIf='!field.$hidden && (showAll || section.visible || !field.$optional)' [meta]='field' [parent]='resource' [integrationCode]='integrationCode' [resourceType]='resourceType' [preview]='preview' [ngClass]=\"{ shown: !field.$invisible && (showAll || true) }\" theme='inherit' [attr.data-theme]='theme'></vgip-meta-field>\n\t\t\t</ng-container>\n\t\t</div>\n\t</div>\n</div>\n<div *ngIf='isPersistedResource && meta.children && preview'>\n\t<div *ngFor='let child of meta.children'>\n\t\t<h5 class='Vlt-children__title'>\n\t\t\t<svg class=\"Vlt-icon\"><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-stack\" /></svg>&nbsp;\n\t\t\t{{child.label}} <span class='Vlt-grey'>({{(resource[child.name] || []).length}})</span>\n\t\t</h5>\n\t\t<div *ngFor=\"let c of resource[child.name]\" style='position: relative;'>\n\n\t\t\t<div class=\"Vlt-card Vlt-bg-white\">\n\t\t\t\t<div class=\"Vlt-card__content Vlt-btn-on-hover\">\n\t\t\t\t\t<h5>{{childResourceCardLabel(c)}}</h5>\n\t\t\t\t\t<div style='font-size: 12px; line-height: 16px;'>\n\t\t\t\t\t\tCreated: <span class='Vlt-black'>{{c._vgis.createdDate | date:'mediumDate'}}</span>\n\t\t\t\t\t\tEdited: <span class='Vlt-black'>{{c._vgis.modifiedDate | date:'medium'}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"Vlt-badge Vlt-badge--app Vlt-badge--purple Vlt-badge--small\">{{c._vgis.resourceType}}</div>\n\t\t\t\t\t<div class=\"Vlt-btn-group Vlt-btn-group--hover\">\n\t\t\t\t\t\t<a *ngIf='c._vgis.externalLink' attr.href='{{c._vgis.externalLink}}' target='_blank' rel='noopener' rel='noopener' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\" aria-label='Open external'><svg style='margin-left: 0; margin-right: 0;'><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-open\"/></svg></a>\n\t\t\t\t\t\t<button type='button' (click)='openChild(child, c)' class=\"Vlt-btn Vlt-btn--tertiary Vlt-btn--icon\"><svg style='margin-left: 0; margin-right: 0;'><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-{{ child.reference.editable ? 'edit' : 'eye-negative' }}\"/></svg></button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<button style='width: 100%; margin-top: 0; max-width: 100%;' type='button' (click)='openChild(child)' class=\"Vlt-btn Vlt-btn--small Vlt-btn--secondary\" [disabled]='child.creatable === false'>\n\t\t\t<svg><use xlink:href=\"volta/volta-icons.svg#Vlt-icon-plus\"/></svg>{{child.reference.label}}\n\t\t</button>\n\t</div>\n</div>\n<div *ngIf='!(meta.oneTimeOptional && showAll)' [ngClass]='{ centered: !meta.oneTimeOptional }'>\n\t<button *ngIf='!preview && optionalFieldsCount' type='button' (click)='toggleOptionalFields()' class=\"Vlt-btn Vlt-btn--small Vlt-btn--link more-button\" style='margin: 0; margin-bottom: 10px;'>\n\t\t<svg><use attr.xlink:href=\"volta/volta-icons.svg#Vlt-icon-chevron-{{ showAll ? 'up' : 'down' }}\"/></svg>\n\t\t{{ showAll ? 'Hide' : 'Show' }} Optional Fields ({{optionalFieldsCount}})\n\t</button>\n</div>\n", styles: ["vgip-meta-field{display:none}vgip-meta-field.shown{display:initial}.Vlt-section__title{line-height:14px;padding:16px 16px 14px 3px;margin:-9px -1px 8px;background-color:var(--vgip-meta-resource-bg-color);color:var(--vgip-meta-resource-color);position:sticky;top:-9px;z-index:3;border-bottom:1px solid var(--vgip-meta-separator-color)}.Vlt-section{margin:0;padding-bottom:8px;display:none}.Vlt-section.shown{display:block}.Vlt-btn.vlt-add-child:hover{transform:scale(1.02)}.for-preview{margin-top:-6px}.Vlt-card{margin-bottom:16px;padding:16px}.Vlt-card .Vlt-btn-group.Vlt-btn-group--hover{right:-8px}button.more-button:focus{font-weight:700}.centered{text-align:center}.Vlt-btn--link{color:var(--vgip-meta-link-color)}.Vlt-btn--link:hover{color:var(--vgip-meta-link-hover-color)}.Vlt-btn--link svg{fill:var(--vgip-meta-link-color)}\n"] }]
1310
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: MetaResourceService }, { type: MetaReferenceService }]; }, propDecorators: { meta: [{
1346
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: MetaResourceService }, { type: MetaReferenceService }, { type: MetaMsgService }, { type: MetaContextService }]; }, propDecorators: { meta: [{
1311
1347
  type: Input
1312
1348
  }], resource: [{
1313
1349
  type: Input
@@ -2003,4 +2039,4 @@ var index = /*#__PURE__*/Object.freeze({
2003
2039
  });
2004
2040
 
2005
2041
  export { MetaRefDialog as M, MetaResourceService as a, MetaReferenceService as b, MetaLayout as c, MetaResource as d, MetaAutofocusDirective as e, MetaMsgService as f, MetaHttpClient as g, metaNormalizer as m };
2006
- //# sourceMappingURL=vgip-meta-ui-index-8c3f6400.mjs.map
2042
+ //# sourceMappingURL=vgip-meta-ui-index-266f8338.mjs.map