valtech-components 4.0.941 → 4.0.943

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.
@@ -188,7 +188,7 @@ export class LinksAccordionComponent {
188
188
  </ng-container>
189
189
  </ion-accordion-group>
190
190
  </div>
191
- `, isInline: true, styles: [".links-accordion .accordion-label{font-size:1.3rem}.links-accordion .accordion-item-label{font-size:1.1rem}.links-accordion ion-item{--background: var(--ion-color-light-tint)}.links-accordion ion-accordion{background:transparent}:host-context(body.dark) .links-accordion ion-item,:host-context(html.ion-palette-dark) .links-accordion ion-item{--background: rgba(255, 255, 255, .045)}@media (min-width: 1200px){:host-context([data-menu=collapsed]) .links-accordion .accordion-label{display:none}:host-context([data-menu=collapsed]) .links-accordion ion-item{--padding-start: 0;--inner-padding-end: 0;--min-height: 48px}:host-context([data-menu=collapsed]) .links-accordion .section-icon{margin:0 auto;font-size:1.5rem}:host-context([data-menu=collapsed]) .links-accordion ion-item:not(:has(.section-icon)){display:none}:host-context([data-menu=collapsed]) .links-accordion ion-accordion [slot=content]{display:none}:host-context([data-menu=collapsed]) .links-accordion ::ng-deep .ion-accordion-toggle-icon{display:none}:host-context([data-menu=collapsed]) .links-accordion ion-item{--padding-end: 0;--detail-icon-opacity: 0}:host-context([data-menu=collapsed]) .links-accordion ion-item::part(detail-icon){display:none}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonAccordionGroup, selector: "ion-accordion-group", inputs: ["animated", "disabled", "expand", "mode", "multiple", "readonly", "value"] }, { kind: "component", type: IonAccordion, selector: "ion-accordion", inputs: ["disabled", "mode", "readonly", "toggleIcon", "toggleIconSlot", "value"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
191
+ `, isInline: true, styles: [".links-accordion .accordion-label{font-size:1.3rem}.links-accordion .accordion-item-label{font-size:1.1rem}.links-accordion ion-item{--background: var(--ion-color-light-tint)}.links-accordion ion-accordion{background:transparent}:host-context(body.dark) .links-accordion ion-item,:host-context(html.ion-palette-dark) .links-accordion ion-item{--background: rgba(255, 255, 255, .045)}@media (min-width: 1200px){:host-context([data-menu=collapsed]) .links-accordion .accordion-label{display:none}:host-context([data-menu=collapsed]) .links-accordion ion-item{--padding-start: 0;--inner-padding-end: 0;--min-height: 48px}:host-context([data-menu=collapsed]) .links-accordion ion-item::part(native){justify-content:center}:host-context([data-menu=collapsed]) .links-accordion .section-icon{margin:0;font-size:1.5rem}:host-context([data-menu=collapsed]) .links-accordion ion-item:not(:has(.section-icon)){display:none}:host-context([data-menu=collapsed]) .links-accordion ion-accordion [slot=content]{display:none}:host-context([data-menu=collapsed]) .links-accordion ::ng-deep .ion-accordion-toggle-icon{display:none}:host-context([data-menu=collapsed]) .links-accordion ion-item{--padding-end: 0;--detail-icon-opacity: 0}:host-context([data-menu=collapsed]) .links-accordion ion-item::part(detail-icon){display:none}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonAccordionGroup, selector: "ion-accordion-group", inputs: ["animated", "disabled", "expand", "mode", "multiple", "readonly", "value"] }, { kind: "component", type: IonAccordion, selector: "ion-accordion", inputs: ["disabled", "mode", "readonly", "toggleIcon", "toggleIconSlot", "value"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
192
192
  }
193
193
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LinksAccordionComponent, decorators: [{
194
194
  type: Component,
@@ -256,7 +256,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
256
256
  </ng-container>
257
257
  </ion-accordion-group>
258
258
  </div>
259
- `, styles: [".links-accordion .accordion-label{font-size:1.3rem}.links-accordion .accordion-item-label{font-size:1.1rem}.links-accordion ion-item{--background: var(--ion-color-light-tint)}.links-accordion ion-accordion{background:transparent}:host-context(body.dark) .links-accordion ion-item,:host-context(html.ion-palette-dark) .links-accordion ion-item{--background: rgba(255, 255, 255, .045)}@media (min-width: 1200px){:host-context([data-menu=collapsed]) .links-accordion .accordion-label{display:none}:host-context([data-menu=collapsed]) .links-accordion ion-item{--padding-start: 0;--inner-padding-end: 0;--min-height: 48px}:host-context([data-menu=collapsed]) .links-accordion .section-icon{margin:0 auto;font-size:1.5rem}:host-context([data-menu=collapsed]) .links-accordion ion-item:not(:has(.section-icon)){display:none}:host-context([data-menu=collapsed]) .links-accordion ion-accordion [slot=content]{display:none}:host-context([data-menu=collapsed]) .links-accordion ::ng-deep .ion-accordion-toggle-icon{display:none}:host-context([data-menu=collapsed]) .links-accordion ion-item{--padding-end: 0;--detail-icon-opacity: 0}:host-context([data-menu=collapsed]) .links-accordion ion-item::part(detail-icon){display:none}}\n"] }]
259
+ `, styles: [".links-accordion .accordion-label{font-size:1.3rem}.links-accordion .accordion-item-label{font-size:1.1rem}.links-accordion ion-item{--background: var(--ion-color-light-tint)}.links-accordion ion-accordion{background:transparent}:host-context(body.dark) .links-accordion ion-item,:host-context(html.ion-palette-dark) .links-accordion ion-item{--background: rgba(255, 255, 255, .045)}@media (min-width: 1200px){:host-context([data-menu=collapsed]) .links-accordion .accordion-label{display:none}:host-context([data-menu=collapsed]) .links-accordion ion-item{--padding-start: 0;--inner-padding-end: 0;--min-height: 48px}:host-context([data-menu=collapsed]) .links-accordion ion-item::part(native){justify-content:center}:host-context([data-menu=collapsed]) .links-accordion .section-icon{margin:0;font-size:1.5rem}:host-context([data-menu=collapsed]) .links-accordion ion-item:not(:has(.section-icon)){display:none}:host-context([data-menu=collapsed]) .links-accordion ion-accordion [slot=content]{display:none}:host-context([data-menu=collapsed]) .links-accordion ::ng-deep .ion-accordion-toggle-icon{display:none}:host-context([data-menu=collapsed]) .links-accordion ion-item{--padding-end: 0;--detail-icon-opacity: 0}:host-context([data-menu=collapsed]) .links-accordion ion-item::part(detail-icon){display:none}}\n"] }]
260
260
  }], ctorParameters: () => [{ type: i1.Router }, { type: i2.MenuController }], propDecorators: { props: [{
261
261
  type: Input
262
262
  }], navigate: [{
@@ -265,4 +265,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
265
265
  type: ViewChild,
266
266
  args: ['accordionGroup']
267
267
  }] } });
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua3MtYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGlua3MtYWNjb3JkaW9uL2xpbmtzLWFjY29yZGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFDbEUsT0FBTyxHQUNSLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQUdyRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQXdFSCxNQUFNLE9BQU8sdUJBQXVCO0lBcUJsQyxZQUNVLE1BQWMsRUFDZCxRQUF3QjtRQUR4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUF0QjFCLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0IsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFFakU7O1dBRUc7UUFDTSxVQUFLLEdBQTJCO1lBQ3ZDLFFBQVEsRUFBRSxFQUFFO1lBQ1osZUFBZSxFQUFFLDZCQUE2QjtZQUM5QyxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLHFCQUFxQixFQUFFLElBQUk7U0FDNUIsQ0FBQztRQUVGOztXQUVHO1FBQ08sYUFBUSxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7SUFPL0MsQ0FBQztJQUVKOztPQUVH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R0FBdkIsdUJBQXVCLGdRQW5FeEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnRVQsOHdDQWpFUyxZQUFZLHFWQUFFLGlCQUFpQixxSkFBRSxZQUFZLDZJQUFFLE9BQU8sME5BQUUsUUFBUSw2RkFBRSxPQUFPLHlGQUFFLE9BQU87OzRGQW9FakYsdUJBQXVCO2tCQXZFbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsWUFDbkY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnRVQ7d0dBVVEsS0FBSztzQkFBYixLQUFLO2dCQVVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBRXNCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uQWNjb3JkaW9uLCBJb25BY2NvcmRpb25Hcm91cCwgSW9uSXRlbSwgSW9uTGFiZWwsIElvbkxpc3QsIE1lbnVDb250cm9sbGVyLFxuICBJb25JY29uLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBMaW5rc0FjY29yZGlvbkxpbmssIExpbmtzQWNjb3JkaW9uTWV0YWRhdGEsIExpbmtzQWNjb3JkaW9uU2VjdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIHZhbC1saW5rcy1hY2NvcmRpb25cbiAqXG4gKiBBIGhpZXJhcmNoaWNhbCBuYXZpZ2F0aW9uIGNvbXBvbmVudCB1c2luZyBJb25pYyBhY2NvcmRpb25zLlxuICogU3VwcG9ydHMgc2VjdGlvbnMgd2l0aCBvcHRpb25hbCBzdWItbGlua3MgYW5kIGF1dG9tYXRpYyBtZW51IGNsb3NpbmcuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtbGlua3MtYWNjb3JkaW9uXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgc2VjdGlvbnM6IFtcbiAqICAgICAgIHsgdGl0bGU6ICdIb21lJywgcm91dGU6IFsnLyddIH0sXG4gKiAgICAgICB7IHRpdGxlOiAnUHJvZHVjdHMnLCBsaW5rczogW1xuICogICAgICAgICB7IHRleHQ6ICdDYXRhbG9nJywgcm91dGU6IFsnL3Byb2R1Y3RzJ10gfSxcbiAqICAgICAgICAgeyB0ZXh0OiAnTmV3IEFycml2YWxzJywgcm91dGU6IFsnL3Byb2R1Y3RzJywgJ25ldyddIH1cbiAqICAgICAgIF19XG4gKiAgICAgXVxuICogICB9XCJcbiAqICAgKG5hdmlnYXRlKT1cIm9uTmF2aWdhdGUoJGV2ZW50KVwiXG4gKiA+PC92YWwtbGlua3MtYWNjb3JkaW9uPlxuICpcbiAqIEBpbnB1dCBwcm9wcyAtIEFjY29yZGlvbiBjb25maWd1cmF0aW9uXG4gKiBAb3V0cHV0IG5hdmlnYXRlIC0gRW1pdHMgcm91dGUgd2hlbiBhIGxpbmsgaXMgY2xpY2tlZFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbGlua3MtYWNjb3JkaW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQWNjb3JkaW9uR3JvdXAsIElvbkFjY29yZGlvbiwgSW9uSXRlbSwgSW9uTGFiZWwsIElvbkxpc3QsIElvbkljb25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJsaW5rcy1hY2NvcmRpb25cIj5cbiAgICAgIDxpb24tYWNjb3JkaW9uLWdyb3VwICNhY2NvcmRpb25Hcm91cD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBwcm9wcy5zZWN0aW9uczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgIDwhLS0gRGlyZWN0LWxpbmsgc2VjdGlvbjogcm91dGUgKyBubyBjaGlsZHJlbiAtLT5cbiAgICAgICAgICA8aW9uLWl0ZW1cbiAgICAgICAgICAgICpuZ0lmPVwic2VjdGlvbi5yb3V0ZSAmJiAhc2VjdGlvbi5saW5rcz8ubGVuZ3RoXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZGlyZWN0LWxpbmtcIlxuICAgICAgICAgICAgY29sb3I9XCJsaWdodFwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGJhY2tncm91bmQ6IHByb3BzLmJhY2tncm91bmRDb2xvciB8fCAndmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpJyB9XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNlY3Rpb25DbGljayhzZWN0aW9uLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIGJ1dHRvblxuICAgICAgICAgICAgbGluZXM9XCJub25lXCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImdldFNlY3Rpb25UaXRsZShzZWN0aW9uKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlvbi1pY29uXG4gICAgICAgICAgICAgICpuZ0lmPVwic2VjdGlvbi5pY29uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZWN0aW9uLWljb25cIlxuICAgICAgICAgICAgICBzbG90PVwic3RhcnRcIlxuICAgICAgICAgICAgICBbbmFtZV09XCJzZWN0aW9uLmljb25cIlxuICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwiYWNjb3JkaW9uLWxhYmVsXCI+e3sgZ2V0U2VjdGlvblRpdGxlKHNlY3Rpb24pIH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9pb24taXRlbT5cblxuICAgICAgICAgIDwhLS0gQWNjb3JkaW9uIHNlY3Rpb246IGhhcyBjaGlsZHJlbiAtLT5cbiAgICAgICAgICA8aW9uLWFjY29yZGlvblxuICAgICAgICAgICAgKm5nSWY9XCJzZWN0aW9uLmxpbmtzPy5sZW5ndGhcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImdldFNlY3Rpb25WYWx1ZShzZWN0aW9uLCBpKVwiXG4gICAgICAgICAgICB0b2dnbGVJY29uPVwiY2hldnJvbi1kb3duLW91dGxpbmVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgICBzbG90PVwiaGVhZGVyXCJcbiAgICAgICAgICAgICAgY29sb3I9XCJsaWdodFwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogcHJvcHMuYmFja2dyb3VuZENvbG9yIHx8ICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknIH1cIlxuICAgICAgICAgICAgICBsaW5lcz1cIm5vbmVcIlxuICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJnZXRTZWN0aW9uVGl0bGUoc2VjdGlvbilcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25Hcm91cEhlYWRlckNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cInNlY3Rpb24uaWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZWN0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgIHNsb3Q9XCJzdGFydFwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwic2VjdGlvbi5pY29uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICA+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImFjY29yZGlvbi1sYWJlbFwiPnt7IGdldFNlY3Rpb25UaXRsZShzZWN0aW9uKSB9fTwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICAgIDxkaXYgc2xvdD1cImNvbnRlbnRcIiBbbmdTdHlsZV09XCJ7IGJhY2tncm91bmQ6IHByb3BzLmJhY2tncm91bmRDb2xvciB8fCAndmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpJyB9XCI+XG4gICAgICAgICAgICAgIDxpb24tbGlzdCBsaW5lcz1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICA8aW9uLWl0ZW1cbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsaW5rIG9mIHNlY3Rpb24ubGlua3NcIlxuICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBiYWNrZ3JvdW5kOiBwcm9wcy5iYWNrZ3JvdW5kQ29sb3IgfHwgJ3ZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKScgfVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25MaW5rQ2xpY2sobGluay5yb3V0ZSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICBidXR0b25cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwiYWNjb3JkaW9uLWl0ZW0tbGFiZWxcIj57eyBnZXRMaW5rVGV4dChsaW5rKSB9fTwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgICAgICAgIDwvaW9uLWxpc3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2lvbi1hY2NvcmRpb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9pb24tYWNjb3JkaW9uLWdyb3VwPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9saW5rcy1hY2NvcmRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTGlua3NBY2NvcmRpb25Db21wb25lbnQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG4gIC8qKlxuICAgKiBBY2NvcmRpb24gY29uZmlndXJhdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpIHByb3BzOiBMaW5rc0FjY29yZGlvbk1ldGFkYXRhID0ge1xuICAgIHNlY3Rpb25zOiBbXSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknLFxuICAgIGNsb3NlTWVudU9uQ2xpY2s6IHRydWUsXG4gICAgY2xvc2VBY2NvcmRpb25PbkNsaWNrOiB0cnVlLFxuICB9O1xuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgcm91dGUgd2hlbiBhIGxpbmsgaXMgY2xpY2tlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBuYXZpZ2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG5cbiAgQFZpZXdDaGlsZCgnYWNjb3JkaW9uR3JvdXAnKSBhY2NvcmRpb25Hcm91cCE6IElvbkFjY29yZGlvbkdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBtZW51Q3RybDogTWVudUNvbnRyb2xsZXJcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgdW5pcXVlIHZhbHVlIGZvciB0aGUgYWNjb3JkaW9uIHNlY3Rpb24uXG4gICAqL1xuICBnZXRTZWN0aW9uVmFsdWUoc2VjdGlvbjogTGlua3NBY2NvcmRpb25TZWN0aW9uLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc2VjdGlvbi50aXRsZUtleSB8fCBzZWN0aW9uLnRpdGxlIHx8IGBzZWN0aW9uLSR7aW5kZXh9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzZWN0aW9uIHRpdGxlLCBzdXBwb3J0aW5nIGkxOG4gdmlhIHRpdGxlS2V5LlxuICAgKi9cbiAgZ2V0U2VjdGlvblRpdGxlKHNlY3Rpb246IExpbmtzQWNjb3JkaW9uU2VjdGlvbik6IHN0cmluZyB7XG4gICAgaWYgKHNlY3Rpb24udGl0bGVLZXkgJiYgdGhpcy5wcm9wcy5pMThuTmFtZXNwYWNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5pMThuLnQoc2VjdGlvbi50aXRsZUtleSwgdGhpcy5wcm9wcy5pMThuTmFtZXNwYWNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHNlY3Rpb24udGl0bGUgfHwgJyc7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbGluayB0ZXh0LCBzdXBwb3J0aW5nIGkxOG4gdmlhIHRleHRLZXkuXG4gICAqL1xuICBnZXRMaW5rVGV4dChsaW5rOiBMaW5rc0FjY29yZGlvbkxpbmspOiBzdHJpbmcge1xuICAgIGlmIChsaW5rLnRleHRLZXkgJiYgdGhpcy5wcm9wcy5pMThuTmFtZXNwYWNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5pMThuLnQobGluay50ZXh0S2V5LCB0aGlzLnByb3BzLmkxOG5OYW1lc3BhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gbGluay50ZXh0IHx8ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgbGluayBjbGljayAtIGNsb3NlcyBhY2NvcmRpb24vbWVudSBhbmQgbmF2aWdhdGVzLlxuICAgKi9cbiAgLyoqXG4gICAqIEVzdGFkbyBkZWwgcmFpbC4gRWwgYWNjb3JkaW9uIG5vIGxvIHJlY2liZSBwb3IgaW5wdXQ6IGxvIGxlZSBkZWwgbWlzbW9cbiAgICogYXRyaWJ1dG8gcXVlIHB1YmxpY2EgYHZhbC1tZW51YCB5IHF1ZSB5YSB1c2FuIGVsIGNvbnRlbmlkbyB5IGxhIGJhcnJhXG4gICAqIGluZmVyaW9yLiBVbiBpbnB1dCBvYmxpZ2Fyw61hIGEgY2FkYSBhcHAgYSBjYWJsZWFybG8uXG4gICAqL1xuICBwcml2YXRlIGlzUmFpbENvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgLmNsb3Nlc3QoJ2lvbi1zcGxpdC1wYW5lJylcbiAgICAgICAgPy5nZXRBdHRyaWJ1dGUoJ2RhdGEtbWVudScpID09PSAnY29sbGFwc2VkJ1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUGlkZSBhbCBtZW7DuiBxdWUgc2UgZXhwYW5kYS4gQ29uIGVsIHJhaWwgYW5nb3N0byBubyBoYXkgbHVnYXIgcGFyYVxuICAgKiBkZXNwbGVnYXIgdW5hIHNlY2Npw7NuIGNvbiBoaWpvcywgYXPDrSBxdWUgcHJpbWVybyBzZSBhYnJlIGVsIHJhaWwuXG4gICAqL1xuICBwcml2YXRlIHJlcXVlc3RSYWlsRXhwYW5kKCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ3ZhbE1lbnVFeHBhbmRSZXF1ZXN0JywgeyBidWJibGVzOiB0cnVlIH0pLFxuICAgICk7XG4gIH1cblxuICAvKiogU2VjY2nDs24gY29uIHJ1dGEgcHJvcGlhOiBuYXZlZ2EgaWd1YWwgZXN0w6kgZWwgcmFpbCBhYmllcnRvIG8gY2VycmFkby4gKi9cbiAgYXN5bmMgb25TZWN0aW9uQ2xpY2soXG4gICAgc2VjdGlvbjogTGlua3NBY2NvcmRpb25TZWN0aW9uLFxuICAgIGV2ZW50PzogRXZlbnQsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMub25MaW5rQ2xpY2soc2VjdGlvbi5yb3V0ZSEsIGV2ZW50KTtcbiAgfVxuXG4gIC8qKiBDYWJlY2VyYSBkZSB1bmEgc2VjY2nDs24gcXVlIHNvbG8gYWdydXBhIGhpam9zLiAqL1xuICBvbkdyb3VwSGVhZGVyQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzUmFpbENvbGxhcHNlZCgpKSByZXR1cm47XG4gICAgLy8gQ29uIGVsIHJhaWwgY2VycmFkbyBlbCBkZXNwbGVnYWJsZSBubyBjYWJlOiBleHBhbmRpciBlcyBsYSBhY2Npw7NuIMO6dGlsLlxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5yZXF1ZXN0UmFpbEV4cGFuZCgpO1xuICB9XG5cbiAgYXN5bmMgb25MaW5rQ2xpY2socm91dGU6IHN0cmluZ1tdLCBldmVudD86IEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICAvLyBDbG9zZSBhY2NvcmRpb24gYmVmb3JlIG5hdmlnYXRpbmdcbiAgICBpZiAodGhpcy5wcm9wcy5jbG9zZUFjY29yZGlvbk9uQ2xpY2sgIT09IGZhbHNlICYmIHRoaXMuYWNjb3JkaW9uR3JvdXApIHtcbiAgICAgIHRoaXMuYWNjb3JkaW9uR3JvdXAudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gQ2xvc2UgbWVudSBpZiBlbmFibGVkXG4gICAgaWYgKHRoaXMucHJvcHMuY2xvc2VNZW51T25DbGljayAhPT0gZmFsc2UpIHtcbiAgICAgIGF3YWl0IHRoaXMubWVudUN0cmwuY2xvc2UoKTtcbiAgICB9XG5cbiAgICAvLyBFbWl0IGV2ZW50XG4gICAgdGhpcy5uYXZpZ2F0ZS5lbWl0KHJvdXRlKTtcblxuICAgIC8vIE5hdmlnYXRlXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUocm91dGUpO1xuICB9XG59XG4iXX0=
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua3MtYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGlua3MtYWNjb3JkaW9uL2xpbmtzLWFjY29yZGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFDbEUsT0FBTyxHQUNSLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQUdyRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQXdFSCxNQUFNLE9BQU8sdUJBQXVCO0lBcUJsQyxZQUNVLE1BQWMsRUFDZCxRQUF3QjtRQUR4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUF0QjFCLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0IsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFFakU7O1dBRUc7UUFDTSxVQUFLLEdBQTJCO1lBQ3ZDLFFBQVEsRUFBRSxFQUFFO1lBQ1osZUFBZSxFQUFFLDZCQUE2QjtZQUM5QyxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLHFCQUFxQixFQUFFLElBQUk7U0FDNUIsQ0FBQztRQUVGOztXQUVHO1FBQ08sYUFBUSxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7SUFPL0MsQ0FBQztJQUVKOztPQUVH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R0FBdkIsdUJBQXVCLGdRQW5FeEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnRVQsNjJDQWpFUyxZQUFZLHFWQUFFLGlCQUFpQixxSkFBRSxZQUFZLDZJQUFFLE9BQU8sME5BQUUsUUFBUSw2RkFBRSxPQUFPLHlGQUFFLE9BQU87OzRGQW9FakYsdUJBQXVCO2tCQXZFbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsWUFDbkY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnRVQ7d0dBVVEsS0FBSztzQkFBYixLQUFLO2dCQVVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBRXNCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uQWNjb3JkaW9uLCBJb25BY2NvcmRpb25Hcm91cCwgSW9uSXRlbSwgSW9uTGFiZWwsIElvbkxpc3QsIE1lbnVDb250cm9sbGVyLFxuICBJb25JY29uLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBMaW5rc0FjY29yZGlvbkxpbmssIExpbmtzQWNjb3JkaW9uTWV0YWRhdGEsIExpbmtzQWNjb3JkaW9uU2VjdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIHZhbC1saW5rcy1hY2NvcmRpb25cbiAqXG4gKiBBIGhpZXJhcmNoaWNhbCBuYXZpZ2F0aW9uIGNvbXBvbmVudCB1c2luZyBJb25pYyBhY2NvcmRpb25zLlxuICogU3VwcG9ydHMgc2VjdGlvbnMgd2l0aCBvcHRpb25hbCBzdWItbGlua3MgYW5kIGF1dG9tYXRpYyBtZW51IGNsb3NpbmcuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtbGlua3MtYWNjb3JkaW9uXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgc2VjdGlvbnM6IFtcbiAqICAgICAgIHsgdGl0bGU6ICdIb21lJywgcm91dGU6IFsnLyddIH0sXG4gKiAgICAgICB7IHRpdGxlOiAnUHJvZHVjdHMnLCBsaW5rczogW1xuICogICAgICAgICB7IHRleHQ6ICdDYXRhbG9nJywgcm91dGU6IFsnL3Byb2R1Y3RzJ10gfSxcbiAqICAgICAgICAgeyB0ZXh0OiAnTmV3IEFycml2YWxzJywgcm91dGU6IFsnL3Byb2R1Y3RzJywgJ25ldyddIH1cbiAqICAgICAgIF19XG4gKiAgICAgXVxuICogICB9XCJcbiAqICAgKG5hdmlnYXRlKT1cIm9uTmF2aWdhdGUoJGV2ZW50KVwiXG4gKiA+PC92YWwtbGlua3MtYWNjb3JkaW9uPlxuICpcbiAqIEBpbnB1dCBwcm9wcyAtIEFjY29yZGlvbiBjb25maWd1cmF0aW9uXG4gKiBAb3V0cHV0IG5hdmlnYXRlIC0gRW1pdHMgcm91dGUgd2hlbiBhIGxpbmsgaXMgY2xpY2tlZFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbGlua3MtYWNjb3JkaW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQWNjb3JkaW9uR3JvdXAsIElvbkFjY29yZGlvbiwgSW9uSXRlbSwgSW9uTGFiZWwsIElvbkxpc3QsIElvbkljb25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJsaW5rcy1hY2NvcmRpb25cIj5cbiAgICAgIDxpb24tYWNjb3JkaW9uLWdyb3VwICNhY2NvcmRpb25Hcm91cD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBwcm9wcy5zZWN0aW9uczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgIDwhLS0gRGlyZWN0LWxpbmsgc2VjdGlvbjogcm91dGUgKyBubyBjaGlsZHJlbiAtLT5cbiAgICAgICAgICA8aW9uLWl0ZW1cbiAgICAgICAgICAgICpuZ0lmPVwic2VjdGlvbi5yb3V0ZSAmJiAhc2VjdGlvbi5saW5rcz8ubGVuZ3RoXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZGlyZWN0LWxpbmtcIlxuICAgICAgICAgICAgY29sb3I9XCJsaWdodFwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGJhY2tncm91bmQ6IHByb3BzLmJhY2tncm91bmRDb2xvciB8fCAndmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpJyB9XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNlY3Rpb25DbGljayhzZWN0aW9uLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIGJ1dHRvblxuICAgICAgICAgICAgbGluZXM9XCJub25lXCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImdldFNlY3Rpb25UaXRsZShzZWN0aW9uKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlvbi1pY29uXG4gICAgICAgICAgICAgICpuZ0lmPVwic2VjdGlvbi5pY29uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZWN0aW9uLWljb25cIlxuICAgICAgICAgICAgICBzbG90PVwic3RhcnRcIlxuICAgICAgICAgICAgICBbbmFtZV09XCJzZWN0aW9uLmljb25cIlxuICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwiYWNjb3JkaW9uLWxhYmVsXCI+e3sgZ2V0U2VjdGlvblRpdGxlKHNlY3Rpb24pIH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9pb24taXRlbT5cblxuICAgICAgICAgIDwhLS0gQWNjb3JkaW9uIHNlY3Rpb246IGhhcyBjaGlsZHJlbiAtLT5cbiAgICAgICAgICA8aW9uLWFjY29yZGlvblxuICAgICAgICAgICAgKm5nSWY9XCJzZWN0aW9uLmxpbmtzPy5sZW5ndGhcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImdldFNlY3Rpb25WYWx1ZShzZWN0aW9uLCBpKVwiXG4gICAgICAgICAgICB0b2dnbGVJY29uPVwiY2hldnJvbi1kb3duLW91dGxpbmVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgICBzbG90PVwiaGVhZGVyXCJcbiAgICAgICAgICAgICAgY29sb3I9XCJsaWdodFwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogcHJvcHMuYmFja2dyb3VuZENvbG9yIHx8ICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknIH1cIlxuICAgICAgICAgICAgICBsaW5lcz1cIm5vbmVcIlxuICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJnZXRTZWN0aW9uVGl0bGUoc2VjdGlvbilcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25Hcm91cEhlYWRlckNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cInNlY3Rpb24uaWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZWN0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgIHNsb3Q9XCJzdGFydFwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwic2VjdGlvbi5pY29uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICA+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImFjY29yZGlvbi1sYWJlbFwiPnt7IGdldFNlY3Rpb25UaXRsZShzZWN0aW9uKSB9fTwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICAgIDxkaXYgc2xvdD1cImNvbnRlbnRcIiBbbmdTdHlsZV09XCJ7IGJhY2tncm91bmQ6IHByb3BzLmJhY2tncm91bmRDb2xvciB8fCAndmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpJyB9XCI+XG4gICAgICAgICAgICAgIDxpb24tbGlzdCBsaW5lcz1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICA8aW9uLWl0ZW1cbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsaW5rIG9mIHNlY3Rpb24ubGlua3NcIlxuICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBiYWNrZ3JvdW5kOiBwcm9wcy5iYWNrZ3JvdW5kQ29sb3IgfHwgJ3ZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKScgfVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25MaW5rQ2xpY2sobGluay5yb3V0ZSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICBidXR0b25cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwiYWNjb3JkaW9uLWl0ZW0tbGFiZWxcIj57eyBnZXRMaW5rVGV4dChsaW5rKSB9fTwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgICAgICAgIDwvaW9uLWxpc3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2lvbi1hY2NvcmRpb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9pb24tYWNjb3JkaW9uLWdyb3VwPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9saW5rcy1hY2NvcmRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTGlua3NBY2NvcmRpb25Db21wb25lbnQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG4gIC8qKlxuICAgKiBBY2NvcmRpb24gY29uZmlndXJhdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpIHByb3BzOiBMaW5rc0FjY29yZGlvbk1ldGFkYXRhID0ge1xuICAgIHNlY3Rpb25zOiBbXSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknLFxuICAgIGNsb3NlTWVudU9uQ2xpY2s6IHRydWUsXG4gICAgY2xvc2VBY2NvcmRpb25PbkNsaWNrOiB0cnVlLFxuICB9O1xuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgcm91dGUgd2hlbiBhIGxpbmsgaXMgY2xpY2tlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBuYXZpZ2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG5cbiAgQFZpZXdDaGlsZCgnYWNjb3JkaW9uR3JvdXAnKSBhY2NvcmRpb25Hcm91cCE6IElvbkFjY29yZGlvbkdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBtZW51Q3RybDogTWVudUNvbnRyb2xsZXJcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgdW5pcXVlIHZhbHVlIGZvciB0aGUgYWNjb3JkaW9uIHNlY3Rpb24uXG4gICAqL1xuICBnZXRTZWN0aW9uVmFsdWUoc2VjdGlvbjogTGlua3NBY2NvcmRpb25TZWN0aW9uLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc2VjdGlvbi50aXRsZUtleSB8fCBzZWN0aW9uLnRpdGxlIHx8IGBzZWN0aW9uLSR7aW5kZXh9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzZWN0aW9uIHRpdGxlLCBzdXBwb3J0aW5nIGkxOG4gdmlhIHRpdGxlS2V5LlxuICAgKi9cbiAgZ2V0U2VjdGlvblRpdGxlKHNlY3Rpb246IExpbmtzQWNjb3JkaW9uU2VjdGlvbik6IHN0cmluZyB7XG4gICAgaWYgKHNlY3Rpb24udGl0bGVLZXkgJiYgdGhpcy5wcm9wcy5pMThuTmFtZXNwYWNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5pMThuLnQoc2VjdGlvbi50aXRsZUtleSwgdGhpcy5wcm9wcy5pMThuTmFtZXNwYWNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHNlY3Rpb24udGl0bGUgfHwgJyc7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbGluayB0ZXh0LCBzdXBwb3J0aW5nIGkxOG4gdmlhIHRleHRLZXkuXG4gICAqL1xuICBnZXRMaW5rVGV4dChsaW5rOiBMaW5rc0FjY29yZGlvbkxpbmspOiBzdHJpbmcge1xuICAgIGlmIChsaW5rLnRleHRLZXkgJiYgdGhpcy5wcm9wcy5pMThuTmFtZXNwYWNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5pMThuLnQobGluay50ZXh0S2V5LCB0aGlzLnByb3BzLmkxOG5OYW1lc3BhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gbGluay50ZXh0IHx8ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgbGluayBjbGljayAtIGNsb3NlcyBhY2NvcmRpb24vbWVudSBhbmQgbmF2aWdhdGVzLlxuICAgKi9cbiAgLyoqXG4gICAqIEVzdGFkbyBkZWwgcmFpbC4gRWwgYWNjb3JkaW9uIG5vIGxvIHJlY2liZSBwb3IgaW5wdXQ6IGxvIGxlZSBkZWwgbWlzbW9cbiAgICogYXRyaWJ1dG8gcXVlIHB1YmxpY2EgYHZhbC1tZW51YCB5IHF1ZSB5YSB1c2FuIGVsIGNvbnRlbmlkbyB5IGxhIGJhcnJhXG4gICAqIGluZmVyaW9yLiBVbiBpbnB1dCBvYmxpZ2Fyw61hIGEgY2FkYSBhcHAgYSBjYWJsZWFybG8uXG4gICAqL1xuICBwcml2YXRlIGlzUmFpbENvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgLmNsb3Nlc3QoJ2lvbi1zcGxpdC1wYW5lJylcbiAgICAgICAgPy5nZXRBdHRyaWJ1dGUoJ2RhdGEtbWVudScpID09PSAnY29sbGFwc2VkJ1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUGlkZSBhbCBtZW7DuiBxdWUgc2UgZXhwYW5kYS4gQ29uIGVsIHJhaWwgYW5nb3N0byBubyBoYXkgbHVnYXIgcGFyYVxuICAgKiBkZXNwbGVnYXIgdW5hIHNlY2Npw7NuIGNvbiBoaWpvcywgYXPDrSBxdWUgcHJpbWVybyBzZSBhYnJlIGVsIHJhaWwuXG4gICAqL1xuICBwcml2YXRlIHJlcXVlc3RSYWlsRXhwYW5kKCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ3ZhbE1lbnVFeHBhbmRSZXF1ZXN0JywgeyBidWJibGVzOiB0cnVlIH0pLFxuICAgICk7XG4gIH1cblxuICAvKiogU2VjY2nDs24gY29uIHJ1dGEgcHJvcGlhOiBuYXZlZ2EgaWd1YWwgZXN0w6kgZWwgcmFpbCBhYmllcnRvIG8gY2VycmFkby4gKi9cbiAgYXN5bmMgb25TZWN0aW9uQ2xpY2soXG4gICAgc2VjdGlvbjogTGlua3NBY2NvcmRpb25TZWN0aW9uLFxuICAgIGV2ZW50PzogRXZlbnQsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMub25MaW5rQ2xpY2soc2VjdGlvbi5yb3V0ZSEsIGV2ZW50KTtcbiAgfVxuXG4gIC8qKiBDYWJlY2VyYSBkZSB1bmEgc2VjY2nDs24gcXVlIHNvbG8gYWdydXBhIGhpam9zLiAqL1xuICBvbkdyb3VwSGVhZGVyQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzUmFpbENvbGxhcHNlZCgpKSByZXR1cm47XG4gICAgLy8gQ29uIGVsIHJhaWwgY2VycmFkbyBlbCBkZXNwbGVnYWJsZSBubyBjYWJlOiBleHBhbmRpciBlcyBsYSBhY2Npw7NuIMO6dGlsLlxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5yZXF1ZXN0UmFpbEV4cGFuZCgpO1xuICB9XG5cbiAgYXN5bmMgb25MaW5rQ2xpY2socm91dGU6IHN0cmluZ1tdLCBldmVudD86IEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICAvLyBDbG9zZSBhY2NvcmRpb24gYmVmb3JlIG5hdmlnYXRpbmdcbiAgICBpZiAodGhpcy5wcm9wcy5jbG9zZUFjY29yZGlvbk9uQ2xpY2sgIT09IGZhbHNlICYmIHRoaXMuYWNjb3JkaW9uR3JvdXApIHtcbiAgICAgIHRoaXMuYWNjb3JkaW9uR3JvdXAudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gQ2xvc2UgbWVudSBpZiBlbmFibGVkXG4gICAgaWYgKHRoaXMucHJvcHMuY2xvc2VNZW51T25DbGljayAhPT0gZmFsc2UpIHtcbiAgICAgIGF3YWl0IHRoaXMubWVudUN0cmwuY2xvc2UoKTtcbiAgICB9XG5cbiAgICAvLyBFbWl0IGV2ZW50XG4gICAgdGhpcy5uYXZpZ2F0ZS5lbWl0KHJvdXRlKTtcblxuICAgIC8vIE5hdmlnYXRlXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUocm91dGUpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,280 @@
1
+ import { Component, Input, Output, EventEmitter, signal, computed } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
4
+ import { trigger, transition, style, animate } from '@angular/animations';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ import * as i2 from "@angular/common";
8
+ export class ValCommentThreadComponent {
9
+ set data(value) {
10
+ this._comments.set(value.comments || []);
11
+ this._isLoading.set(value.isLoading ?? false);
12
+ this._currentUserId.set(value.currentUserId ?? '');
13
+ }
14
+ constructor(fb) {
15
+ this.fb = fb;
16
+ this.title = 'Comentarios';
17
+ this.canComment = true;
18
+ this.canDelete = false;
19
+ this.commentAdded = new EventEmitter();
20
+ this.commentDeleted = new EventEmitter();
21
+ this.maxChars = 1000;
22
+ this._comments = signal([]);
23
+ this._isLoading = signal(false);
24
+ this._isSubmitting = signal(false);
25
+ this._currentUserId = signal('');
26
+ this.comments = this._comments.asReadonly();
27
+ this.isLoading = this._isLoading.asReadonly();
28
+ this.isSubmitting = this._isSubmitting.asReadonly();
29
+ this.commentCount = computed(() => this._comments().length);
30
+ this.charCount = computed(() => this.form.get('body')?.value?.length ?? 0);
31
+ this.form = this.fb.group({
32
+ body: ['', [Validators.required, Validators.maxLength(this.maxChars)]],
33
+ });
34
+ }
35
+ ngOnInit() { }
36
+ isOwnComment(comment) {
37
+ return comment.author.userId === this._currentUserId();
38
+ }
39
+ getInitials(name) {
40
+ return name
41
+ .split(' ')
42
+ .map(w => w[0])
43
+ .join('')
44
+ .toUpperCase()
45
+ .slice(0, 2);
46
+ }
47
+ roleLabel(role) {
48
+ const labels = {
49
+ submitter: 'Postulante',
50
+ reviewer: 'Revisor',
51
+ admin: 'Administrador',
52
+ };
53
+ return labels[role] || role;
54
+ }
55
+ formatTime(isoString) {
56
+ const date = new Date(isoString);
57
+ const now = new Date();
58
+ const diffMs = now.getTime() - date.getTime();
59
+ const diffMins = Math.floor(diffMs / 60000);
60
+ const diffHours = Math.floor(diffMs / 3600000);
61
+ const diffDays = Math.floor(diffMs / 86400000);
62
+ if (diffMins < 1)
63
+ return 'hace unos segundos';
64
+ if (diffMins < 60)
65
+ return `hace ${diffMins}m`;
66
+ if (diffHours < 24)
67
+ return `hace ${diffHours}h`;
68
+ if (diffDays < 7)
69
+ return `hace ${diffDays}d`;
70
+ return date.toLocaleDateString('es-CL', { month: 'short', day: 'numeric' });
71
+ }
72
+ onSubmit() {
73
+ if (!this.form.valid)
74
+ return;
75
+ this._isSubmitting.set(true);
76
+ const body = this.form.get('body')?.value;
77
+ this.commentAdded.emit(body);
78
+ // Reset form after short delay
79
+ setTimeout(() => {
80
+ this.form.reset();
81
+ this._isSubmitting.set(false);
82
+ }, 300);
83
+ }
84
+ onDeleteComment(commentId) {
85
+ if (confirm('¿Eliminar este comentario?')) {
86
+ this.commentDeleted.emit(commentId);
87
+ }
88
+ }
89
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ValCommentThreadComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
90
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ValCommentThreadComponent, isStandalone: true, selector: "val-comment-thread", inputs: { title: "title", canComment: "canComment", canDelete: "canDelete", data: "data" }, outputs: { commentAdded: "commentAdded", commentDeleted: "commentDeleted" }, ngImport: i0, template: `
91
+ <div class="comment-thread">
92
+ <!-- Header -->
93
+ <div class="comment-header">
94
+ <h3>{{ title }}</h3>
95
+ <span class="comment-count" *ngIf="commentCount() > 0">
96
+ {{ commentCount() }} {{ commentCount() === 1 ? 'comentario' : 'comentarios' }}
97
+ </span>
98
+ </div>
99
+
100
+ <!-- Comments list -->
101
+ <div class="comments-list" @fadeIn *ngIf="!isLoading()">
102
+ <div *ngIf="comments().length === 0" class="empty-state">
103
+ <p>Sin comentarios aún. Sé el primero en comentar.</p>
104
+ </div>
105
+
106
+ <div
107
+ *ngFor="let comment of comments(); let last = last"
108
+ class="comment-item"
109
+ [class.is-own]="isOwnComment(comment)"
110
+ @slideIn
111
+ >
112
+ <!-- Avatar + header -->
113
+ <div class="comment-header-row">
114
+ <div class="avatar">{{ getInitials(comment.author.name) }}</div>
115
+ <div class="meta">
116
+ <div class="author-line">
117
+ <span class="author-name">{{ comment.author.name }}</span>
118
+ <span *ngIf="comment.author.role" class="author-role"> ({{ roleLabel(comment.author.role) }}) </span>
119
+ </div>
120
+ <time class="timestamp">{{ formatTime(comment.createdAt) }}</time>
121
+ </div>
122
+ <button
123
+ *ngIf="isOwnComment(comment) && canDelete"
124
+ class="btn-delete"
125
+ (click)="onDeleteComment(comment.commentId)"
126
+ aria-label="Eliminar comentario"
127
+ >
128
+
129
+ </button>
130
+ </div>
131
+
132
+ <!-- Body -->
133
+ <div class="comment-body">{{ comment.body }}</div>
134
+
135
+ <!-- Divider (not on last) -->
136
+ <div *ngIf="!last" class="comment-divider"></div>
137
+ </div>
138
+ </div>
139
+
140
+ <!-- Loading -->
141
+ <div *ngIf="isLoading()" class="loading-state">
142
+ <div class="spinner"></div>
143
+ <p>Cargando comentarios...</p>
144
+ </div>
145
+
146
+ <!-- New comment form -->
147
+ <div *ngIf="canComment" class="comment-form" [formGroup]="form">
148
+ <textarea
149
+ formControlName="body"
150
+ placeholder="Escribe un comentario..."
151
+ class="textarea"
152
+ rows="3"
153
+ (keydown.ctrl.enter)="onSubmit()"
154
+ (keydown.meta.enter)="onSubmit()"
155
+ >
156
+ </textarea>
157
+ <div class="form-actions">
158
+ <span class="char-count" [class.near-limit]="charCount() > maxChars * 0.9">
159
+ {{ charCount() }} / {{ maxChars }}
160
+ </span>
161
+ <button type="button" class="btn-submit" [disabled]="!form.valid || isSubmitting()" (click)="onSubmit()">
162
+ {{ isSubmitting() ? 'Enviando...' : 'Comentar' }}
163
+ </button>
164
+ </div>
165
+ <div *ngIf="form.get('body')?.hasError('maxlength')" class="error-msg">Máximo {{ maxChars }} caracteres</div>
166
+ </div>
167
+ </div>
168
+ `, isInline: true, styles: [".comment-thread{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;border-radius:.75rem;background:var(--color-bg-secondary, #f9f9f9);border:1px solid var(--color-border, #e0e0e0)}.comment-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;h3{margin:0;font-size:1rem;font-weight:700;color:var(--color-text-primary, #090f1b)}}.comment-count{font-size:.875rem;color:var(--color-text-muted, #6b7280);background:var(--color-bg-tertiary, #f3f3f3);padding:.25rem .75rem;border-radius:999px}.comments-list{display:flex;flex-direction:column;gap:0}.empty-state{text-align:center;padding:2rem 1rem;color:var(--color-text-muted, #6b7280);p{margin:0}}.comment-item{padding:1rem 0;display:flex;flex-direction:column;gap:.75rem;&.is-own{background:var(--color-bg-highlight, rgba(112, 38, 223, .05));padding:.75rem;border-radius:.5rem}}.comment-header-row{display:flex;align-items:flex-start;gap:.75rem}.avatar{width:2rem;height:2rem;border-radius:50%;background:var(--color-primary, #7026df);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.meta{flex:1}.author-line{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.author-name{font-weight:600;color:var(--color-text-primary, #090f1b);font-size:.95rem}.author-role{font-size:.8rem;color:var(--color-text-muted, #6b7280);background:var(--color-bg-tertiary, #f3f3f3);padding:.125rem .5rem;border-radius:.25rem}.timestamp{display:block;font-size:.8rem;color:var(--color-text-muted, #6b7280);margin-top:.25rem}.btn-delete{background:transparent;border:none;color:var(--color-text-muted, #6b7280);cursor:pointer;font-size:1.25rem;padding:.25rem .5rem;transition:color .2s;&:hover{color:var(--color-error, #ef4444)}}.comment-body{color:var(--color-text-primary, #090f1b);line-height:1.6;word-wrap:break-word;white-space:pre-wrap;font-size:.95rem;padding-left:2.75rem}.comment-divider{height:1px;background:var(--color-border, #e0e0e0);margin:.75rem 0}.loading-state{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 1rem;color:var(--color-text-muted, #6b7280);p{margin:0}}.spinner{width:1.5rem;height:1.5rem;border:2px solid var(--color-border, #e0e0e0);border-top-color:var(--color-primary, #7026df);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.comment-form{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:#fff;border:1px solid var(--color-border, #e0e0e0);border-radius:.5rem}.textarea{width:100%;padding:.75rem;border:1px solid var(--color-border, #e0e0e0);border-radius:.5rem;font-family:inherit;font-size:.95rem;resize:vertical;min-height:3rem;&:focus{outline:none;border-color:var(--color-primary, #7026df);box-shadow:0 0 0 3px var(--color-primary-light, rgba(112, 38, 223, .1))}}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem}.char-count{font-size:.8rem;color:var(--color-text-muted, #6b7280);&.near-limit{color:var(--color-warning, #f59e0b)}}.btn-submit{background:var(--color-primary, #7026df);color:#fff;border:none;padding:.5rem 1.5rem;border-radius:.5rem;font-weight:600;cursor:pointer;transition:background .2s,opacity .2s;&:hover:not(:disabled){background:var(--color-primary-dark, #5a1fb5)}&:disabled{opacity:.5;cursor:not-allowed}}.error-msg{font-size:.8rem;color:var(--color-error, #ef4444);margin-top:.25rem}@media (max-width: 640px){.comment-thread{padding:1rem}.comment-body{padding-left:0;margin-top:.5rem}.form-actions{flex-direction:column-reverse}.btn-submit{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], animations: [
169
+ trigger('fadeIn', [transition(':enter', [style({ opacity: 0 }), animate('200ms ease-in', style({ opacity: 1 }))])]),
170
+ trigger('slideIn', [
171
+ transition(':enter', [
172
+ style({ opacity: 0, transform: 'translateY(-0.5rem)' }),
173
+ animate('200ms ease-out', style({ opacity: 1, transform: 'translateY(0)' })),
174
+ ]),
175
+ ]),
176
+ ] }); }
177
+ }
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ValCommentThreadComponent, decorators: [{
179
+ type: Component,
180
+ args: [{ selector: 'val-comment-thread', standalone: true, imports: [CommonModule, FormsModule, ReactiveFormsModule], template: `
181
+ <div class="comment-thread">
182
+ <!-- Header -->
183
+ <div class="comment-header">
184
+ <h3>{{ title }}</h3>
185
+ <span class="comment-count" *ngIf="commentCount() > 0">
186
+ {{ commentCount() }} {{ commentCount() === 1 ? 'comentario' : 'comentarios' }}
187
+ </span>
188
+ </div>
189
+
190
+ <!-- Comments list -->
191
+ <div class="comments-list" @fadeIn *ngIf="!isLoading()">
192
+ <div *ngIf="comments().length === 0" class="empty-state">
193
+ <p>Sin comentarios aún. Sé el primero en comentar.</p>
194
+ </div>
195
+
196
+ <div
197
+ *ngFor="let comment of comments(); let last = last"
198
+ class="comment-item"
199
+ [class.is-own]="isOwnComment(comment)"
200
+ @slideIn
201
+ >
202
+ <!-- Avatar + header -->
203
+ <div class="comment-header-row">
204
+ <div class="avatar">{{ getInitials(comment.author.name) }}</div>
205
+ <div class="meta">
206
+ <div class="author-line">
207
+ <span class="author-name">{{ comment.author.name }}</span>
208
+ <span *ngIf="comment.author.role" class="author-role"> ({{ roleLabel(comment.author.role) }}) </span>
209
+ </div>
210
+ <time class="timestamp">{{ formatTime(comment.createdAt) }}</time>
211
+ </div>
212
+ <button
213
+ *ngIf="isOwnComment(comment) && canDelete"
214
+ class="btn-delete"
215
+ (click)="onDeleteComment(comment.commentId)"
216
+ aria-label="Eliminar comentario"
217
+ >
218
+
219
+ </button>
220
+ </div>
221
+
222
+ <!-- Body -->
223
+ <div class="comment-body">{{ comment.body }}</div>
224
+
225
+ <!-- Divider (not on last) -->
226
+ <div *ngIf="!last" class="comment-divider"></div>
227
+ </div>
228
+ </div>
229
+
230
+ <!-- Loading -->
231
+ <div *ngIf="isLoading()" class="loading-state">
232
+ <div class="spinner"></div>
233
+ <p>Cargando comentarios...</p>
234
+ </div>
235
+
236
+ <!-- New comment form -->
237
+ <div *ngIf="canComment" class="comment-form" [formGroup]="form">
238
+ <textarea
239
+ formControlName="body"
240
+ placeholder="Escribe un comentario..."
241
+ class="textarea"
242
+ rows="3"
243
+ (keydown.ctrl.enter)="onSubmit()"
244
+ (keydown.meta.enter)="onSubmit()"
245
+ >
246
+ </textarea>
247
+ <div class="form-actions">
248
+ <span class="char-count" [class.near-limit]="charCount() > maxChars * 0.9">
249
+ {{ charCount() }} / {{ maxChars }}
250
+ </span>
251
+ <button type="button" class="btn-submit" [disabled]="!form.valid || isSubmitting()" (click)="onSubmit()">
252
+ {{ isSubmitting() ? 'Enviando...' : 'Comentar' }}
253
+ </button>
254
+ </div>
255
+ <div *ngIf="form.get('body')?.hasError('maxlength')" class="error-msg">Máximo {{ maxChars }} caracteres</div>
256
+ </div>
257
+ </div>
258
+ `, animations: [
259
+ trigger('fadeIn', [transition(':enter', [style({ opacity: 0 }), animate('200ms ease-in', style({ opacity: 1 }))])]),
260
+ trigger('slideIn', [
261
+ transition(':enter', [
262
+ style({ opacity: 0, transform: 'translateY(-0.5rem)' }),
263
+ animate('200ms ease-out', style({ opacity: 1, transform: 'translateY(0)' })),
264
+ ]),
265
+ ]),
266
+ ], styles: [".comment-thread{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;border-radius:.75rem;background:var(--color-bg-secondary, #f9f9f9);border:1px solid var(--color-border, #e0e0e0)}.comment-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;h3{margin:0;font-size:1rem;font-weight:700;color:var(--color-text-primary, #090f1b)}}.comment-count{font-size:.875rem;color:var(--color-text-muted, #6b7280);background:var(--color-bg-tertiary, #f3f3f3);padding:.25rem .75rem;border-radius:999px}.comments-list{display:flex;flex-direction:column;gap:0}.empty-state{text-align:center;padding:2rem 1rem;color:var(--color-text-muted, #6b7280);p{margin:0}}.comment-item{padding:1rem 0;display:flex;flex-direction:column;gap:.75rem;&.is-own{background:var(--color-bg-highlight, rgba(112, 38, 223, .05));padding:.75rem;border-radius:.5rem}}.comment-header-row{display:flex;align-items:flex-start;gap:.75rem}.avatar{width:2rem;height:2rem;border-radius:50%;background:var(--color-primary, #7026df);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.meta{flex:1}.author-line{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.author-name{font-weight:600;color:var(--color-text-primary, #090f1b);font-size:.95rem}.author-role{font-size:.8rem;color:var(--color-text-muted, #6b7280);background:var(--color-bg-tertiary, #f3f3f3);padding:.125rem .5rem;border-radius:.25rem}.timestamp{display:block;font-size:.8rem;color:var(--color-text-muted, #6b7280);margin-top:.25rem}.btn-delete{background:transparent;border:none;color:var(--color-text-muted, #6b7280);cursor:pointer;font-size:1.25rem;padding:.25rem .5rem;transition:color .2s;&:hover{color:var(--color-error, #ef4444)}}.comment-body{color:var(--color-text-primary, #090f1b);line-height:1.6;word-wrap:break-word;white-space:pre-wrap;font-size:.95rem;padding-left:2.75rem}.comment-divider{height:1px;background:var(--color-border, #e0e0e0);margin:.75rem 0}.loading-state{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 1rem;color:var(--color-text-muted, #6b7280);p{margin:0}}.spinner{width:1.5rem;height:1.5rem;border:2px solid var(--color-border, #e0e0e0);border-top-color:var(--color-primary, #7026df);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.comment-form{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:#fff;border:1px solid var(--color-border, #e0e0e0);border-radius:.5rem}.textarea{width:100%;padding:.75rem;border:1px solid var(--color-border, #e0e0e0);border-radius:.5rem;font-family:inherit;font-size:.95rem;resize:vertical;min-height:3rem;&:focus{outline:none;border-color:var(--color-primary, #7026df);box-shadow:0 0 0 3px var(--color-primary-light, rgba(112, 38, 223, .1))}}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem}.char-count{font-size:.8rem;color:var(--color-text-muted, #6b7280);&.near-limit{color:var(--color-warning, #f59e0b)}}.btn-submit{background:var(--color-primary, #7026df);color:#fff;border:none;padding:.5rem 1.5rem;border-radius:.5rem;font-weight:600;cursor:pointer;transition:background .2s,opacity .2s;&:hover:not(:disabled){background:var(--color-primary-dark, #5a1fb5)}&:disabled{opacity:.5;cursor:not-allowed}}.error-msg{font-size:.8rem;color:var(--color-error, #ef4444);margin-top:.25rem}@media (max-width: 640px){.comment-thread{padding:1rem}.comment-body{padding-left:0;margin-top:.5rem}.form-actions{flex-direction:column-reverse}.btn-submit{width:100%}}\n"] }]
267
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { title: [{
268
+ type: Input
269
+ }], canComment: [{
270
+ type: Input
271
+ }], canDelete: [{
272
+ type: Input
273
+ }], data: [{
274
+ type: Input
275
+ }], commentAdded: [{
276
+ type: Output
277
+ }], commentDeleted: [{
278
+ type: Output
279
+ }] } });
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC10aHJlYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9jb21tZW50LXRocmVhZC9jb21tZW50LXRocmVhZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUF3WDFFLE1BQU0sT0FBTyx5QkFBeUI7SUFJcEMsSUFBYSxJQUFJLENBQUMsS0FBb0I7UUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQW9CRCxZQUFvQixFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQTNCMUIsVUFBSyxHQUFHLGFBQWEsQ0FBQztRQUN0QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFPakIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxD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QUFFLHFCQUFxQixFQUFFLENBQUM7Z0NBQ3ZELE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDOzZCQUM3RSxDQUFDO3lCQUNILENBQUM7cUJBQ0g7Z0ZBR1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDTyxJQUFJO3NCQUFoQixLQUFLO2dCQU1JLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIHNpZ25hbCwgY29tcHV0ZWQsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdHJpZ2dlciwgdHJhbnNpdGlvbiwgc3R5bGUsIGFuaW1hdGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBDb21tZW50VGhyZWFkIHtcbiAgcmVxdWVzdElkOiBzdHJpbmc7XG4gIGNvbW1lbnRzOiBDb21tZW50W107XG4gIGlzTG9hZGluZz86IGJvb2xlYW47XG4gIGNhbkNvbW1lbnQ/OiBib29sZWFuO1xuICBjdXJyZW50VXNlcklkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1lbnQge1xuICBjb21tZW50SWQ6IHN0cmluZztcbiAgcmVxdWVzdElkOiBzdHJpbmc7XG4gIGF1dGhvcjoge1xuICAgIHVzZXJJZD86IHN0cmluZztcbiAgICBvcmdJZD86IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcm9sZT86IHN0cmluZzsgLy8gJ3N1Ym1pdHRlcicgfCAncmV2aWV3ZXInIHwgJ2FkbWluJ1xuICB9O1xuICBib2R5OiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY29tbWVudC10aHJlYWQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtdGhyZWFkXCI+XG4gICAgICA8IS0tIEhlYWRlciAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LWhlYWRlclwiPlxuICAgICAgICA8aDM+e3sgdGl0bGUgfX08L2gzPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvbW1lbnQtY291bnRcIiAqbmdJZj1cImNvbW1lbnRDb3VudCgpID4gMFwiPlxuICAgICAgICAgIHt7IGNvbW1lbnRDb3VudCgpIH19IHt7IGNvbW1lbnRDb3VudCgpID09PSAxID8gJ2NvbWVudGFyaW8nIDogJ2NvbWVudGFyaW9zJyB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBDb21tZW50cyBsaXN0IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnRzLWxpc3RcIiBAZmFkZUluICpuZ0lmPVwiIWlzTG9hZGluZygpXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjb21tZW50cygpLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwiZW1wdHktc3RhdGVcIj5cbiAgICAgICAgICA8cD5TaW4gY29tZW50YXJpb3MgYcO6bi4gU8OpIGVsIHByaW1lcm8gZW4gY29tZW50YXIuPC9wPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbW1lbnQgb2YgY29tbWVudHMoKTsgbGV0IGxhc3QgPSBsYXN0XCJcbiAgICAgICAgICBjbGFzcz1cImNvbW1lbnQtaXRlbVwiXG4gICAgICAgICAgW2NsYXNzLmlzLW93bl09XCJpc093bkNvbW1lbnQoY29tbWVudClcIlxuICAgICAgICAgIEBzbGlkZUluXG4gICAgICAgID5cbiAgICAgICAgICA8IS0tIEF2YXRhciArIGhlYWRlciAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1oZWFkZXItcm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyXCI+e3sgZ2V0SW5pdGlhbHMoY29tbWVudC5hdXRob3IubmFtZSkgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRhXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdXRob3ItbGluZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXV0aG9yLW5hbWVcIj57eyBjb21tZW50LmF1dGhvci5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29tbWVudC5hdXRob3Iucm9sZVwiIGNsYXNzPVwiYXV0aG9yLXJvbGVcIj4gKHt7IHJvbGVMYWJlbChjb21tZW50LmF1dGhvci5yb2xlKSB9fSkgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPHRpbWUgY2xhc3M9XCJ0aW1lc3RhbXBcIj57eyBmb3JtYXRUaW1lKGNvbW1lbnQuY3JlYXRlZEF0KSB9fTwvdGltZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImlzT3duQ29tbWVudChjb21tZW50KSAmJiBjYW5EZWxldGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1kZWxldGVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25EZWxldGVDb21tZW50KGNvbW1lbnQuY29tbWVudElkKVwiXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJFbGltaW5hciBjb21lbnRhcmlvXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAg4pyVXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gQm9keSAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1ib2R5XCI+e3sgY29tbWVudC5ib2R5IH19PC9kaXY+XG5cbiAgICAgICAgICA8IS0tIERpdmlkZXIgKG5vdCBvbiBsYXN0KSAtLT5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWxhc3RcIiBjbGFzcz1cImNvbW1lbnQtZGl2aWRlclwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIExvYWRpbmcgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaXNMb2FkaW5nKClcIiBjbGFzcz1cImxvYWRpbmctc3RhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj5cbiAgICAgICAgPHA+Q2FyZ2FuZG8gY29tZW50YXJpb3MuLi48L3A+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBOZXcgY29tbWVudCBmb3JtIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cImNhbkNvbW1lbnRcIiBjbGFzcz1cImNvbW1lbnQtZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJib2R5XCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVzY3JpYmUgdW4gY29tZW50YXJpby4uLlwiXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0YXJlYVwiXG4gICAgICAgICAgcm93cz1cIjNcIlxuICAgICAgICAgIChrZXlkb3duLmN0cmwuZW50ZXIpPVwib25TdWJtaXQoKVwiXG4gICAgICAgICAgKGtleWRvd24ubWV0YS5lbnRlcik9XCJvblN1Ym1pdCgpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1hY3Rpb25zXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGFyLWNvdW50XCIgW2NsYXNzLm5lYXItbGltaXRdPVwiY2hhckNvdW50KCkgPiBtYXhDaGFycyAqIDAuOVwiPlxuICAgICAgICAgICAge3sgY2hhckNvdW50KCkgfX0gLyB7eyBtYXhDaGFycyB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1zdWJtaXRcIiBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWQgfHwgaXNTdWJtaXR0aW5nKClcIiAoY2xpY2spPVwib25TdWJtaXQoKVwiPlxuICAgICAgICAgICAge3sgaXNTdWJtaXR0aW5nKCkgPyAnRW52aWFuZG8uLi4nIDogJ0NvbWVudGFyJyB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImZvcm0uZ2V0KCdib2R5Jyk/Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiIGNsYXNzPVwiZXJyb3ItbXNnXCI+TcOheGltbyB7eyBtYXhDaGFycyB9fSBjYXJhY3RlcmVzPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLmNvbW1lbnQtdGhyZWFkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5LCAjZjlmOWY5KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLCAjZTBlMGUwKTtcbiAgICAgIH1cblxuICAgICAgLmNvbW1lbnQtaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDFyZW07XG4gICAgICAgIGgzIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSwgIzA5MGYxYik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNvbW1lbnQtY291bnQge1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXRlcnRpYXJ5LCAjZjNmM2YzKTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjc1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgIH1cblxuICAgICAgLmNvbW1lbnRzLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDA7XG4gICAgICB9XG5cbiAgICAgIC5lbXB0eS1zdGF0ZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMnJlbSAxcmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgICAgIHAge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY29tbWVudC1pdGVtIHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNzVyZW07XG5cbiAgICAgICAgJi5pcy1vd24ge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLWhpZ2hsaWdodCwgcmdiYSgxMTIsIDM4LCAyMjMsIDAuMDUpKTtcbiAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY29tbWVudC1oZWFkZXItcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGdhcDogMC43NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmF2YXRhciB7XG4gICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSwgIzcwMjZkZik7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG5cbiAgICAgIC5tZXRhIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgIH1cblxuICAgICAgLmF1dGhvci1saW5lIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmF1dGhvci1uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSwgIzA5MGYxYik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmF1dGhvci1yb2xlIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctdGVydGlhcnksICNmM2YzZjMpO1xuICAgICAgICBwYWRkaW5nOiAwLjEyNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gICAgICB9XG5cbiAgICAgIC50aW1lc3RhbXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LW11dGVkLCAjNmI3MjgwKTtcbiAgICAgICAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmJ0bi1kZWxldGUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycztcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItZXJyb3IsICNlZjQ0NDQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jb21tZW50LWJvZHkge1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5LCAjMDkwZjFiKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjc1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY29tbWVudC1kaXZpZGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJvcmRlciwgI2UwZTBlMCk7XG4gICAgICAgIG1hcmdpbjogMC43NXJlbSAwO1xuICAgICAgfVxuXG4gICAgICAubG9hZGluZy1zdGF0ZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMnJlbSAxcmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG4gICAgICAgIHAge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuc3Bpbm5lciB7XG4gICAgICAgIHdpZHRoOiAxLjVyZW07XG4gICAgICAgIGhlaWdodDogMS41cmVtO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIsICNlMGUwZTApO1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LCAjNzAyNmRmKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7XG4gICAgICAgIHRvIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jb21tZW50LWZvcm0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIsICNlMGUwZTApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICB9XG5cbiAgICAgIC50ZXh0YXJlYSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwLjc1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIsICNlMGUwZTApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnksICM3MDI2ZGYpO1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0LCByZ2JhKDExMiwgMzgsIDIyMywgMC4xKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmZvcm0tYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hhci1jb3VudCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1tdXRlZCwgIzZiNzI4MCk7XG5cbiAgICAgICAgJi5uZWFyLWxpbWl0IHtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3Itd2FybmluZywgI2Y1OWUwYik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmJ0bi1zdWJtaXQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LCAjNzAyNmRmKTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxLjVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIGJhY2tncm91bmQgMC4ycyxcbiAgICAgICAgICBvcGFjaXR5IDAuMnM7XG5cbiAgICAgICAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrLCAjNWExZmI1KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5lcnJvci1tc2cge1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWVycm9yLCAjZWY0NDQ0KTtcbiAgICAgICAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAgIC5jb21tZW50LXRocmVhZCB7XG4gICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb21tZW50LWJvZHkge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybS1hY3Rpb25zIHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgICAgIH1cblxuICAgICAgICAuYnRuLXN1Ym1pdCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgLFxuICBdLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignZmFkZUluJywgW3RyYW5zaXRpb24oJzplbnRlcicsIFtzdHlsZSh7IG9wYWNpdHk6IDAgfSksIGFuaW1hdGUoJzIwMG1zIGVhc2UtaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpXSldKSxcbiAgICB0cmlnZ2VyKCdzbGlkZUluJywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTAuNXJlbSknIH0pLFxuICAgICAgICBhbmltYXRlKCcyMDBtcyBlYXNlLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSkpLFxuICAgICAgXSksXG4gICAgXSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFZhbENvbW1lbnRUaHJlYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB0aXRsZSA9ICdDb21lbnRhcmlvcyc7XG4gIEBJbnB1dCgpIGNhbkNvbW1lbnQgPSB0cnVlO1xuICBASW5wdXQoKSBjYW5EZWxldGUgPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0IGRhdGEodmFsdWU6IENvbW1lbnRUaHJlYWQpIHtcbiAgICB0aGlzLl9jb21tZW50cy5zZXQodmFsdWUuY29tbWVudHMgfHwgW10pO1xuICAgIHRoaXMuX2lzTG9hZGluZy5zZXQodmFsdWUuaXNMb2FkaW5nID8/IGZhbHNlKTtcbiAgICB0aGlzLl9jdXJyZW50VXNlcklkLnNldCh2YWx1ZS5jdXJyZW50VXNlcklkID8/ICcnKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBjb21tZW50QWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGNvbW1lbnREZWxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuICBtYXhDaGFycyA9IDEwMDA7XG5cbiAgcHJpdmF0ZSBfY29tbWVudHMgPSBzaWduYWw8Q29tbWVudFtdPihbXSk7XG4gIHByaXZhdGUgX2lzTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgX2lzU3VibWl0dGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgX2N1cnJlbnRVc2VySWQgPSBzaWduYWwoJycpO1xuXG4gIGNvbW1lbnRzID0gdGhpcy5fY29tbWVudHMuYXNSZWFkb25seSgpO1xuICBpc0xvYWRpbmcgPSB0aGlzLl9pc0xvYWRpbmcuYXNSZWFkb25seSgpO1xuICBpc1N1Ym1pdHRpbmcgPSB0aGlzLl9pc1N1Ym1pdHRpbmcuYXNSZWFkb25seSgpO1xuXG4gIGNvbW1lbnRDb3VudCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2NvbW1lbnRzKCkubGVuZ3RoKTtcbiAgY2hhckNvdW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mb3JtLmdldCgnYm9keScpPy52YWx1ZT8ubGVuZ3RoID8/IDApO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBib2R5OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heENoYXJzKV1dLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIGlzT3duQ29tbWVudChjb21tZW50OiBDb21tZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvbW1lbnQuYXV0aG9yLnVzZXJJZCA9PT0gdGhpcy5fY3VycmVudFVzZXJJZCgpO1xuICB9XG5cbiAgZ2V0SW5pdGlhbHMobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmFtZVxuICAgICAgLnNwbGl0KCcgJylcbiAgICAgIC5tYXAodyA9PiB3WzBdKVxuICAgICAgLmpvaW4oJycpXG4gICAgICAudG9VcHBlckNhc2UoKVxuICAgICAgLnNsaWNlKDAsIDIpO1xuICB9XG5cbiAgcm9sZUxhYmVsKHJvbGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFiZWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgc3VibWl0dGVyOiAnUG9zdHVsYW50ZScsXG4gICAgICByZXZpZXdlcjogJ1Jldmlzb3InLFxuICAgICAgYWRtaW46ICdBZG1pbmlzdHJhZG9yJyxcbiAgICB9O1xuICAgIHJldHVybiBsYWJlbHNbcm9sZV0gfHwgcm9sZTtcbiAgfVxuXG4gIGZvcm1hdFRpbWUoaXNvU3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShpc29TdHJpbmcpO1xuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgZGlmZk1zID0gbm93LmdldFRpbWUoKSAtIGRhdGUuZ2V0VGltZSgpO1xuICAgIGNvbnN0IGRpZmZNaW5zID0gTWF0aC5mbG9vcihkaWZmTXMgLyA2MDAwMCk7XG4gICAgY29uc3QgZGlmZkhvdXJzID0gTWF0aC5mbG9vcihkaWZmTXMgLyAzNjAwMDAwKTtcbiAgICBjb25zdCBkaWZmRGF5cyA9IE1hdGguZmxvb3IoZGlmZk1zIC8gODY0MDAwMDApO1xuXG4gICAgaWYgKGRpZmZNaW5zIDwgMSkgcmV0dXJuICdoYWNlIHVub3Mgc2VndW5kb3MnO1xuICAgIGlmIChkaWZmTWlucyA8IDYwKSByZXR1cm4gYGhhY2UgJHtkaWZmTWluc31tYDtcbiAgICBpZiAoZGlmZkhvdXJzIDwgMjQpIHJldHVybiBgaGFjZSAke2RpZmZIb3Vyc31oYDtcbiAgICBpZiAoZGlmZkRheXMgPCA3KSByZXR1cm4gYGhhY2UgJHtkaWZmRGF5c31kYDtcblxuICAgIHJldHVybiBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygnZXMtQ0wnLCB7IG1vbnRoOiAnc2hvcnQnLCBkYXk6ICdudW1lcmljJyB9KTtcbiAgfVxuXG4gIG9uU3VibWl0KCkge1xuICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSByZXR1cm47XG5cbiAgICB0aGlzLl9pc1N1Ym1pdHRpbmcuc2V0KHRydWUpO1xuICAgIGNvbnN0IGJvZHkgPSB0aGlzLmZvcm0uZ2V0KCdib2R5Jyk/LnZhbHVlO1xuXG4gICAgdGhpcy5jb21tZW50QWRkZWQuZW1pdChib2R5KTtcblxuICAgIC8vIFJlc2V0IGZvcm0gYWZ0ZXIgc2hvcnQgZGVsYXlcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgICAgdGhpcy5faXNTdWJtaXR0aW5nLnNldChmYWxzZSk7XG4gICAgfSwgMzAwKTtcbiAgfVxuXG4gIG9uRGVsZXRlQ29tbWVudChjb21tZW50SWQ6IHN0cmluZykge1xuICAgIGlmIChjb25maXJtKCfCv0VsaW1pbmFyIGVzdGUgY29tZW50YXJpbz8nKSkge1xuICAgICAgdGhpcy5jb21tZW50RGVsZXRlZC5lbWl0KGNvbW1lbnRJZCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '4.0.941';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC45NDEnO1xuIl19
5
+ export const VERSION = '4.0.943';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC45NDMnO1xuIl19