@leanix/components 0.4.415 → 0.4.417

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.
@@ -23,11 +23,11 @@ export class CounterComponent {
23
23
  return `${this.size} ${this.color}`;
24
24
  }
25
25
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CounterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: CounterComponent, isStandalone: true, selector: "lx-counter", inputs: { content: "content", size: "size", color: "color" }, ngImport: i0, template: "<span class=\"content\" [ngClass]=\"classes\">{{ content }}</span>\n", styles: [":host{display:inline-block}.content{display:inline-block;text-align:center;font-weight:700}.default{min-width:20px;line-height:20px;padding:0 6px;font-size:var(--lxFontSmallSize, 12px);border-radius:10px}.small{min-width:16px;line-height:16px;padding:0 4px;font-size:var(--lxFontSmallSize, 12px);border-radius:8px}.primary{background-color:var(--lx-primarybutton-backgroundcolor);color:var(--lx-primarybutton-fontcolor)}.gray{background-color:#f0f2f5;color:#2a303d;font-weight:400}.darkgray{background-color:#2a303d;color:#fff}.green{background-color:#33cc58;color:#fff}.red{background-color:#f96464;color:#fff}.yellow{background-color:#ffb62a;color:#fff}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: CounterComponent, isStandalone: true, selector: "lx-counter", inputs: { content: "content", size: "size", color: "color" }, ngImport: i0, template: "<span class=\"content\" [ngClass]=\"classes\">{{ content }}</span>\n", styles: [":host{display:inline-block}.content{display:inline-block;text-align:center;font-weight:var(--lxFontBold, 700)}.default{min-width:20px;line-height:20px;padding:0 6px;font-size:var(--lxFontSmallSize, 12px);border-radius:10px}.small{min-width:16px;line-height:16px;padding:0 4px;font-size:var(--lxFontSmallSize, 12px);border-radius:8px}.primary{background-color:var(--lx-primarybutton-backgroundcolor);color:var(--lx-primarybutton-fontcolor)}.gray{background-color:#f0f2f5;color:#2a303d;font-weight:400}.darkgray{background-color:#2a303d;color:#fff}.green{background-color:#33cc58;color:#fff}.red{background-color:#f96464;color:#fff}.yellow{background-color:#ffb62a;color:#fff}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
27
27
  }
28
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CounterComponent, decorators: [{
29
29
  type: Component,
30
- args: [{ selector: 'lx-counter', standalone: true, imports: [NgClass], template: "<span class=\"content\" [ngClass]=\"classes\">{{ content }}</span>\n", styles: [":host{display:inline-block}.content{display:inline-block;text-align:center;font-weight:700}.default{min-width:20px;line-height:20px;padding:0 6px;font-size:var(--lxFontSmallSize, 12px);border-radius:10px}.small{min-width:16px;line-height:16px;padding:0 4px;font-size:var(--lxFontSmallSize, 12px);border-radius:8px}.primary{background-color:var(--lx-primarybutton-backgroundcolor);color:var(--lx-primarybutton-fontcolor)}.gray{background-color:#f0f2f5;color:#2a303d;font-weight:400}.darkgray{background-color:#2a303d;color:#fff}.green{background-color:#33cc58;color:#fff}.red{background-color:#f96464;color:#fff}.yellow{background-color:#ffb62a;color:#fff}\n"] }]
30
+ args: [{ selector: 'lx-counter', standalone: true, imports: [NgClass], template: "<span class=\"content\" [ngClass]=\"classes\">{{ content }}</span>\n", styles: [":host{display:inline-block}.content{display:inline-block;text-align:center;font-weight:var(--lxFontBold, 700)}.default{min-width:20px;line-height:20px;padding:0 6px;font-size:var(--lxFontSmallSize, 12px);border-radius:10px}.small{min-width:16px;line-height:16px;padding:0 4px;font-size:var(--lxFontSmallSize, 12px);border-radius:8px}.primary{background-color:var(--lx-primarybutton-backgroundcolor);color:var(--lx-primarybutton-fontcolor)}.gray{background-color:#f0f2f5;color:#2a303d;font-weight:400}.darkgray{background-color:#2a303d;color:#fff}.green{background-color:#33cc58;color:#fff}.red{background-color:#f96464;color:#fff}.yellow{background-color:#ffb62a;color:#fff}\n"] }]
31
31
  }], propDecorators: { content: [{
32
32
  type: Input
33
33
  }], size: [{
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
35
35
  }], color: [{
36
36
  type: Input
37
37
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9jb3JlLXVpL2NvbXBvbmVudHMvY291bnRlci9jb3VudGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvcmUtdWkvY29tcG9uZW50cy9jb3VudGVyL2NvdW50ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVqRDs7Ozs7Ozs7OztHQVVHO0FBUUgsTUFBTSxPQUFPLGdCQUFnQjtJQVA3QjtRQVVFLCtCQUErQjtRQUN0QixTQUFJLEdBQXdCLFNBQVMsQ0FBQztRQUMvQyxnQ0FBZ0M7UUFDdkIsVUFBSyxHQUFpRSxTQUFTLENBQUM7S0FLMUY7SUFIQyxJQUFJLE9BQU87UUFDVCxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEMsQ0FBQzs4R0FWVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixvSUNyQjdCLHNFQUNBLDJzQkRrQlksT0FBTzs7MkZBRU4sZ0JBQWdCO2tCQVA1QixTQUFTOytCQUNFLFlBQVksY0FHVixJQUFJLFdBQ1AsQ0FBQyxPQUFPLENBQUM7OEJBSVQsT0FBTztzQkFBZixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBDb3VudGVyIGNvbXBvbmVudCBpcyB1c2VkIHRvIGNyZWF0ZSBhIGNvdW50ZXIgd2l0aCBkaWZmZXJlbnQgc3R5bGVzIGFuZCBzaXplcy5cbiAqXG4gKiAjIyBVc2FnZVxuICpcbiAqIDEuIEltcG9ydCB0aGUgYENvdW50ZXJDb21wb25lbnRgIGNvbXBvbmVudCBmcm9tIGBAbGVhbml4L2NvbXBvbmVudHNgIGluIHlvdXIgbW9kdWxlIG9yIHN0YW5kYWxvbmUgY29wbW9uZW50IHdoZXJlIHlvdSB3YW50IHRvIHVzZSB0aGUgY29tcG9uZW50LlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBDb3VudGVyQ29tcG9uZW50IH0gZnJvbSAnQGxlYW5peC9jb21wb25lbnRzJztcbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1jb3VudGVyJyxcbiAgdGVtcGxhdGVVcmw6ICdjb3VudGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2NvdW50ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3NdXG59KVxuZXhwb3J0IGNsYXNzIENvdW50ZXJDb21wb25lbnQge1xuICAvKiogVGhlIGNvbnRlbnQgb2YgdGhlIGNvdW50ZXIuICovXG4gIEBJbnB1dCgpIGNvbnRlbnQ/OiBzdHJpbmcgfCBudW1iZXI7XG4gIC8qKiBUaGUgc2l6ZSBvZiB0aGUgY291bnRlci4gKi9cbiAgQElucHV0KCkgc2l6ZTogJ2RlZmF1bHQnIHwgJ3NtYWxsJyA9ICdkZWZhdWx0JztcbiAgLyoqIFRoZSBjb2xvciBvZiB0aGUgY291bnRlci4gKi9cbiAgQElucHV0KCkgY29sb3I6ICdwcmltYXJ5JyB8ICdncmF5JyB8ICdkYXJrZ3JheScgfCAncmVkJyB8ICd5ZWxsb3cnIHwgJ2dyZWVuJyA9ICdwcmltYXJ5JztcblxuICBnZXQgY2xhc3NlcygpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5zaXplfSAke3RoaXMuY29sb3J9YDtcbiAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJjb250ZW50XCIgW25nQ2xhc3NdPVwiY2xhc3Nlc1wiPnt7IGNvbnRlbnQgfX08L3NwYW4+XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9jb3JlLXVpL2NvbXBvbmVudHMvY291bnRlci9jb3VudGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvcmUtdWkvY29tcG9uZW50cy9jb3VudGVyL2NvdW50ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVqRDs7Ozs7Ozs7OztHQVVHO0FBUUgsTUFBTSxPQUFPLGdCQUFnQjtJQVA3QjtRQVVFLCtCQUErQjtRQUN0QixTQUFJLEdBQXdCLFNBQVMsQ0FBQztRQUMvQyxnQ0FBZ0M7UUFDdkIsVUFBSyxHQUFpRSxTQUFTLENBQUM7S0FLMUY7SUFIQyxJQUFJLE9BQU87UUFDVCxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEMsQ0FBQzs4R0FWVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixvSUNyQjdCLHNFQUNBLDh0QkRrQlksT0FBTzs7MkZBRU4sZ0JBQWdCO2tCQVA1QixTQUFTOytCQUNFLFlBQVksY0FHVixJQUFJLFdBQ1AsQ0FBQyxPQUFPLENBQUM7OEJBSVQsT0FBTztzQkFBZixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBDb3VudGVyIGNvbXBvbmVudCBpcyB1c2VkIHRvIGNyZWF0ZSBhIGNvdW50ZXIgd2l0aCBkaWZmZXJlbnQgc3R5bGVzIGFuZCBzaXplcy5cbiAqXG4gKiAjIyBVc2FnZVxuICpcbiAqIDEuIEltcG9ydCB0aGUgYENvdW50ZXJDb21wb25lbnRgIGNvbXBvbmVudCBmcm9tIGBAbGVhbml4L2NvbXBvbmVudHNgIGluIHlvdXIgbW9kdWxlIG9yIHN0YW5kYWxvbmUgY29wbW9uZW50IHdoZXJlIHlvdSB3YW50IHRvIHVzZSB0aGUgY29tcG9uZW50LlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBDb3VudGVyQ29tcG9uZW50IH0gZnJvbSAnQGxlYW5peC9jb21wb25lbnRzJztcbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1jb3VudGVyJyxcbiAgdGVtcGxhdGVVcmw6ICdjb3VudGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2NvdW50ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3NdXG59KVxuZXhwb3J0IGNsYXNzIENvdW50ZXJDb21wb25lbnQge1xuICAvKiogVGhlIGNvbnRlbnQgb2YgdGhlIGNvdW50ZXIuICovXG4gIEBJbnB1dCgpIGNvbnRlbnQ/OiBzdHJpbmcgfCBudW1iZXI7XG4gIC8qKiBUaGUgc2l6ZSBvZiB0aGUgY291bnRlci4gKi9cbiAgQElucHV0KCkgc2l6ZTogJ2RlZmF1bHQnIHwgJ3NtYWxsJyA9ICdkZWZhdWx0JztcbiAgLyoqIFRoZSBjb2xvciBvZiB0aGUgY291bnRlci4gKi9cbiAgQElucHV0KCkgY29sb3I6ICdwcmltYXJ5JyB8ICdncmF5JyB8ICdkYXJrZ3JheScgfCAncmVkJyB8ICd5ZWxsb3cnIHwgJ2dyZWVuJyA9ICdwcmltYXJ5JztcblxuICBnZXQgY2xhc3NlcygpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5zaXplfSAke3RoaXMuY29sb3J9YDtcbiAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJjb250ZW50XCIgW25nQ2xhc3NdPVwiY2xhc3Nlc1wiPnt7IGNvbnRlbnQgfX08L3NwYW4+XG4iXX0=
@@ -63,11 +63,11 @@ export class IntegrationLinkCardComponent {
63
63
  this.linkClicked.emit(event);
64
64
  }
65
65
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: IntegrationLinkCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: IntegrationLinkCardComponent, isStandalone: true, selector: "lx-integration-link-card", inputs: { sourceIconClasses: "sourceIconClasses", sourceName: "sourceName", title: "title", isInactive: "isInactive", link: "link", queryParams: "queryParams", externalLink: "externalLink", tooltipContent: "tooltipContent", badgeContent: "badgeContent", actionButtonName: "actionButtonName", timestamp: "timestamp", tertiaryInfo: "tertiaryInfo" }, outputs: { actionButtonClicked: "actionButtonClicked", linkClicked: "linkClicked" }, ngImport: i0, template: "<div class=\"integration-link-card-body {{ isInactive ? 'inactive-link' : '' }}\">\n @if (badgeContent) {\n <div class=\"integration-link-card-badge\">\n <lx-badge [content]=\"badgeContent\" />\n </div>\n }\n <div class=\"integration-link-card-source\"><i [class]=\"sourceIconClasses\" aria-hidden=\"true\"></i>{{ sourceName }}</div>\n <h2 class=\"integration-link-card-heading\">{{ title }}</h2>\n @if (tertiaryInfo) {\n <div class=\"integration-link-card-tertiary-info\">{{ tertiaryInfo }}</div>\n }\n @if (timestamp) {\n <div class=\"integration-link-card-timestamp\">{{ timestamp }}</div>\n }\n @if (actionButtonName) {\n <button lx-button color=\"light\" class=\"integration-link-card-action-button\" (click)=\"onActionButtonClicked()\">\n {{ actionButtonName }}\n </button>\n }\n</div>\n@if (link) {\n <div class=\"integration-link-card-link\">\n @if (externalLink) {\n <a\n [href]=\"link\"\n [attr.target]=\"'_blank'\"\n [attr.rel]=\"'noopener norefferer'\"\n [lxTooltip]=\"tooltipContent\"\n [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\"\n (click)=\"onLinkClicked($event)\"\n >\n <i class=\"far fa-external-link\" aria-hidden=\"true\"></i>\n </a>\n } @else {\n @if (link.startsWith('http')) {\n <a [lxTooltip]=\"tooltipContent\" [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\" [href]=\"link\" (click)=\"onLinkClicked($event)\">\n <i class=\"far fa-arrow-circle-right\" aria-hidden=\"true\"></i>\n </a>\n } @else {\n <a\n [lxTooltip]=\"tooltipContent\"\n [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\"\n [routerLink]=\"link\"\n [queryParams]=\"queryParams\"\n (click)=\"onLinkClicked($event)\"\n >\n <i class=\"far fa-arrow-circle-right\" aria-hidden=\"true\"></i>\n </a>\n }\n }\n </div>\n}\n", styles: [":host{width:100%;border-radius:4px;position:relative;display:flex;flex-direction:row;justify-content:space-between;gap:4px;background-color:#e1e5eb;font-size:var(--lxFontSmallSize, 12px)}.integration-link-card-body{display:flex;flex-direction:column;align-items:flex-start;padding:8px}.integration-link-card-badge{margin-bottom:8px}.integration-link-card-source{margin-bottom:4px}.integration-link-card-source i{margin-right:4px}.integration-link-card-tertiary-info{margin-bottom:4px;color:#99a5bb}.integration-link-card-timestamp{margin-bottom:4px;color:#526179}.integration-link-card-action-button{margin:4px 0}.integration-link-card-heading{padding-bottom:4px;font-weight:700;font-size:14px;line-height:16px;margin:0;text-overflow:ellipsis;overflow:hidden;max-width:160px}.integration-link-card-link{width:30px;height:30px;display:flex;justify-content:center;align-items:center;align-self:center;transition:background-color .18s;transition-delay:0s;transition-timing-function:ease;cursor:pointer}.integration-link-card-link:hover,.integration-link-card-link:focus{text-decoration:none}.inactive-link *{color:#61779d}\n"], dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[lxTooltip]", inputs: ["lxTooltip", "lxTooltipPosition", "lxTooltipDelay", "lxTooltipIsHtmlContent"] }, { kind: "component", type: BadgeComponent, selector: "lx-badge", inputs: ["content", "color", "calculateColorsDynamically"] }, { kind: "component", type: ButtonComponent, selector: "button[lx-button]", inputs: ["size", "color", "mode", "pressed", "selected", "square", "circle", "disabled", "showSpinner"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: IntegrationLinkCardComponent, isStandalone: true, selector: "lx-integration-link-card", inputs: { sourceIconClasses: "sourceIconClasses", sourceName: "sourceName", title: "title", isInactive: "isInactive", link: "link", queryParams: "queryParams", externalLink: "externalLink", tooltipContent: "tooltipContent", badgeContent: "badgeContent", actionButtonName: "actionButtonName", timestamp: "timestamp", tertiaryInfo: "tertiaryInfo" }, outputs: { actionButtonClicked: "actionButtonClicked", linkClicked: "linkClicked" }, ngImport: i0, template: "<div class=\"integration-link-card-body {{ isInactive ? 'inactive-link' : '' }}\">\n @if (badgeContent) {\n <div class=\"integration-link-card-badge\">\n <lx-badge [content]=\"badgeContent\" />\n </div>\n }\n <div class=\"integration-link-card-source\"><i [class]=\"sourceIconClasses\" aria-hidden=\"true\"></i>{{ sourceName }}</div>\n <h2 class=\"integration-link-card-heading\">{{ title }}</h2>\n @if (tertiaryInfo) {\n <div class=\"integration-link-card-tertiary-info\">{{ tertiaryInfo }}</div>\n }\n @if (timestamp) {\n <div class=\"integration-link-card-timestamp\">{{ timestamp }}</div>\n }\n @if (actionButtonName) {\n <button lx-button color=\"light\" class=\"integration-link-card-action-button\" (click)=\"onActionButtonClicked()\">\n {{ actionButtonName }}\n </button>\n }\n</div>\n@if (link) {\n <div class=\"integration-link-card-link\">\n @if (externalLink) {\n <a\n [href]=\"link\"\n [attr.target]=\"'_blank'\"\n [attr.rel]=\"'noopener norefferer'\"\n [lxTooltip]=\"tooltipContent\"\n [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\"\n (click)=\"onLinkClicked($event)\"\n >\n <i class=\"far fa-external-link\" aria-hidden=\"true\"></i>\n </a>\n } @else {\n @if (link.startsWith('http')) {\n <a [lxTooltip]=\"tooltipContent\" [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\" [href]=\"link\" (click)=\"onLinkClicked($event)\">\n <i class=\"far fa-arrow-circle-right\" aria-hidden=\"true\"></i>\n </a>\n } @else {\n <a\n [lxTooltip]=\"tooltipContent\"\n [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\"\n [routerLink]=\"link\"\n [queryParams]=\"queryParams\"\n (click)=\"onLinkClicked($event)\"\n >\n <i class=\"far fa-arrow-circle-right\" aria-hidden=\"true\"></i>\n </a>\n }\n }\n </div>\n}\n", styles: [":host{width:100%;border-radius:4px;position:relative;display:flex;flex-direction:row;justify-content:space-between;gap:4px;background-color:#e1e5eb;font-size:var(--lxFontSmallSize, 12px)}.integration-link-card-body{display:flex;flex-direction:column;align-items:flex-start;padding:8px}.integration-link-card-badge{margin-bottom:8px}.integration-link-card-source{margin-bottom:4px}.integration-link-card-source i{margin-right:4px}.integration-link-card-tertiary-info{margin-bottom:4px;color:#99a5bb}.integration-link-card-timestamp{margin-bottom:4px;color:#526179}.integration-link-card-action-button{margin:4px 0}.integration-link-card-heading{padding-bottom:4px;font-weight:var(--lxFontBold, 700);font-size:14px;line-height:16px;margin:0;text-overflow:ellipsis;overflow:hidden;max-width:160px}.integration-link-card-link{width:30px;height:30px;display:flex;justify-content:center;align-items:center;align-self:center;transition:background-color .18s;transition-delay:0s;transition-timing-function:ease;cursor:pointer}.integration-link-card-link:hover,.integration-link-card-link:focus{text-decoration:none}.inactive-link *{color:#61779d}\n"], dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[lxTooltip]", inputs: ["lxTooltip", "lxTooltipPosition", "lxTooltipDelay", "lxTooltipIsHtmlContent"] }, { kind: "component", type: BadgeComponent, selector: "lx-badge", inputs: ["content", "color", "calculateColorsDynamically"] }, { kind: "component", type: ButtonComponent, selector: "button[lx-button]", inputs: ["size", "color", "mode", "pressed", "selected", "square", "circle", "disabled", "showSpinner"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
67
67
  }
68
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: IntegrationLinkCardComponent, decorators: [{
69
69
  type: Component,
70
- args: [{ selector: 'lx-integration-link-card', standalone: true, imports: [TooltipDirective, BadgeComponent, ButtonComponent, RouterLink], template: "<div class=\"integration-link-card-body {{ isInactive ? 'inactive-link' : '' }}\">\n @if (badgeContent) {\n <div class=\"integration-link-card-badge\">\n <lx-badge [content]=\"badgeContent\" />\n </div>\n }\n <div class=\"integration-link-card-source\"><i [class]=\"sourceIconClasses\" aria-hidden=\"true\"></i>{{ sourceName }}</div>\n <h2 class=\"integration-link-card-heading\">{{ title }}</h2>\n @if (tertiaryInfo) {\n <div class=\"integration-link-card-tertiary-info\">{{ tertiaryInfo }}</div>\n }\n @if (timestamp) {\n <div class=\"integration-link-card-timestamp\">{{ timestamp }}</div>\n }\n @if (actionButtonName) {\n <button lx-button color=\"light\" class=\"integration-link-card-action-button\" (click)=\"onActionButtonClicked()\">\n {{ actionButtonName }}\n </button>\n }\n</div>\n@if (link) {\n <div class=\"integration-link-card-link\">\n @if (externalLink) {\n <a\n [href]=\"link\"\n [attr.target]=\"'_blank'\"\n [attr.rel]=\"'noopener norefferer'\"\n [lxTooltip]=\"tooltipContent\"\n [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\"\n (click)=\"onLinkClicked($event)\"\n >\n <i class=\"far fa-external-link\" aria-hidden=\"true\"></i>\n </a>\n } @else {\n @if (link.startsWith('http')) {\n <a [lxTooltip]=\"tooltipContent\" [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\" [href]=\"link\" (click)=\"onLinkClicked($event)\">\n <i class=\"far fa-arrow-circle-right\" aria-hidden=\"true\"></i>\n </a>\n } @else {\n <a\n [lxTooltip]=\"tooltipContent\"\n [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\"\n [routerLink]=\"link\"\n [queryParams]=\"queryParams\"\n (click)=\"onLinkClicked($event)\"\n >\n <i class=\"far fa-arrow-circle-right\" aria-hidden=\"true\"></i>\n </a>\n }\n }\n </div>\n}\n", styles: [":host{width:100%;border-radius:4px;position:relative;display:flex;flex-direction:row;justify-content:space-between;gap:4px;background-color:#e1e5eb;font-size:var(--lxFontSmallSize, 12px)}.integration-link-card-body{display:flex;flex-direction:column;align-items:flex-start;padding:8px}.integration-link-card-badge{margin-bottom:8px}.integration-link-card-source{margin-bottom:4px}.integration-link-card-source i{margin-right:4px}.integration-link-card-tertiary-info{margin-bottom:4px;color:#99a5bb}.integration-link-card-timestamp{margin-bottom:4px;color:#526179}.integration-link-card-action-button{margin:4px 0}.integration-link-card-heading{padding-bottom:4px;font-weight:700;font-size:14px;line-height:16px;margin:0;text-overflow:ellipsis;overflow:hidden;max-width:160px}.integration-link-card-link{width:30px;height:30px;display:flex;justify-content:center;align-items:center;align-self:center;transition:background-color .18s;transition-delay:0s;transition-timing-function:ease;cursor:pointer}.integration-link-card-link:hover,.integration-link-card-link:focus{text-decoration:none}.inactive-link *{color:#61779d}\n"] }]
70
+ args: [{ selector: 'lx-integration-link-card', standalone: true, imports: [TooltipDirective, BadgeComponent, ButtonComponent, RouterLink], template: "<div class=\"integration-link-card-body {{ isInactive ? 'inactive-link' : '' }}\">\n @if (badgeContent) {\n <div class=\"integration-link-card-badge\">\n <lx-badge [content]=\"badgeContent\" />\n </div>\n }\n <div class=\"integration-link-card-source\"><i [class]=\"sourceIconClasses\" aria-hidden=\"true\"></i>{{ sourceName }}</div>\n <h2 class=\"integration-link-card-heading\">{{ title }}</h2>\n @if (tertiaryInfo) {\n <div class=\"integration-link-card-tertiary-info\">{{ tertiaryInfo }}</div>\n }\n @if (timestamp) {\n <div class=\"integration-link-card-timestamp\">{{ timestamp }}</div>\n }\n @if (actionButtonName) {\n <button lx-button color=\"light\" class=\"integration-link-card-action-button\" (click)=\"onActionButtonClicked()\">\n {{ actionButtonName }}\n </button>\n }\n</div>\n@if (link) {\n <div class=\"integration-link-card-link\">\n @if (externalLink) {\n <a\n [href]=\"link\"\n [attr.target]=\"'_blank'\"\n [attr.rel]=\"'noopener norefferer'\"\n [lxTooltip]=\"tooltipContent\"\n [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\"\n (click)=\"onLinkClicked($event)\"\n >\n <i class=\"far fa-external-link\" aria-hidden=\"true\"></i>\n </a>\n } @else {\n @if (link.startsWith('http')) {\n <a [lxTooltip]=\"tooltipContent\" [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\" [href]=\"link\" (click)=\"onLinkClicked($event)\">\n <i class=\"far fa-arrow-circle-right\" aria-hidden=\"true\"></i>\n </a>\n } @else {\n <a\n [lxTooltip]=\"tooltipContent\"\n [lxTooltipPosition]=\"{ y: 'top', x: 'left' }\"\n [routerLink]=\"link\"\n [queryParams]=\"queryParams\"\n (click)=\"onLinkClicked($event)\"\n >\n <i class=\"far fa-arrow-circle-right\" aria-hidden=\"true\"></i>\n </a>\n }\n }\n </div>\n}\n", styles: [":host{width:100%;border-radius:4px;position:relative;display:flex;flex-direction:row;justify-content:space-between;gap:4px;background-color:#e1e5eb;font-size:var(--lxFontSmallSize, 12px)}.integration-link-card-body{display:flex;flex-direction:column;align-items:flex-start;padding:8px}.integration-link-card-badge{margin-bottom:8px}.integration-link-card-source{margin-bottom:4px}.integration-link-card-source i{margin-right:4px}.integration-link-card-tertiary-info{margin-bottom:4px;color:#99a5bb}.integration-link-card-timestamp{margin-bottom:4px;color:#526179}.integration-link-card-action-button{margin:4px 0}.integration-link-card-heading{padding-bottom:4px;font-weight:var(--lxFontBold, 700);font-size:14px;line-height:16px;margin:0;text-overflow:ellipsis;overflow:hidden;max-width:160px}.integration-link-card-link{width:30px;height:30px;display:flex;justify-content:center;align-items:center;align-self:center;transition:background-color .18s;transition-delay:0s;transition-timing-function:ease;cursor:pointer}.integration-link-card-link:hover,.integration-link-card-link:focus{text-decoration:none}.inactive-link *{color:#61779d}\n"] }]
71
71
  }], propDecorators: { sourceIconClasses: [{
72
72
  type: Input,
73
73
  args: [{ required: true }]
@@ -109,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
109
109
  }], linkClicked: [{
110
110
  type: Output
111
111
  }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tbGluay1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvcmUtdWkvY29tcG9uZW50cy9pbnRlZ3JhdGlvbi1saW5rLWNhcmQvaW50ZWdyYXRpb24tbGluay1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvcmUtdWkvY29tcG9uZW50cy9pbnRlZ3JhdGlvbi1saW5rLWNhcmQvaW50ZWdyYXRpb24tbGluay1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBTTdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUNHO0FBUUgsTUFBTSxPQUFPLDRCQUE0QjtJQVB6QztRQWVFOzs7YUFHSztRQUN1QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBcUJ4RCxzREFBc0Q7UUFDNUMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN6RCw2Q0FBNkM7UUFDbkMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO0tBV3hEO0lBVEMsZ0JBQWdCO0lBQ2hCLHFCQUFxQjtRQUNuQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixhQUFhLENBQUMsS0FBaUI7UUFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs4R0E5Q1UsNEJBQTRCO2tHQUE1Qiw0QkFBNEIscWdCQ3ZEekMsMjREQW9EQSwycENEQ1ksZ0JBQWdCLGdKQUFFLGNBQWMsaUhBQUUsZUFBZSx1S0FBRSxVQUFVOzsyRkFFNUQsNEJBQTRCO2tCQVB4QyxTQUFTOytCQUNFLDBCQUEwQixjQUd4QixJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQzs4QkFJN0MsaUJBQWlCO3NCQUEzQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFRSxVQUFVO3NCQUFwQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFRSxLQUFLO3NCQUEvQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFNRyxVQUFVO3NCQUFyQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtnQkFFRSxJQUFJO3NCQUEvQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtnQkFFRSxXQUFXO3NCQUF0QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtnQkFLRSxZQUFZO3NCQUF2QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtnQkFFRSxjQUFjO3NCQUF6QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtnQkFFRSxZQUFZO3NCQUF2QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtnQkFFRSxnQkFBZ0I7c0JBQTNDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUVFLFNBQVM7c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUVFLFlBQVk7c0JBQXZDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUdoQixtQkFBbUI7c0JBQTVCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFkZ2UvYmFkZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcblxuaW50ZXJmYWNlIFJvdXRlUXVlcnlQYXJhbXMge1xuICBbeDogc3RyaW5nXTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEludGVncmF0aW9uIExpbmsgQ2FyZCBDb21wb25lbnQgaXMgYSBjYXJkIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGluZm9ybWF0aW9uIGFib3V0IGFuIGludGVncmF0aW9uIGxpbmsuXG4gKlxuICogVGhpcyBkb2N1bWVudGF0aW9uIHByb3ZpZGVzIGRldGFpbHMgb24gdGhlIHVzYWdlIGFuZCBjb25maWd1cmF0aW9uIG9mIHRoZSBJbnRlZ3JhdGlvbiBMaW5rIENhcmQgQ29tcG9uZW50LlxuICpcbiAqICMjIFVzYWdlXG4gKlxuICogMS4gSW1wb3J0IGBMeENvcmVVaU1vZHVsZWAgbW9kdWxlIGZyb20gYEBsZWFuaXgvY29tcG9uZW50c2AgaW4geW91ciBtb2R1bGUgd2hlcmUgeW91IHdhbnQgdG8gdXNlIHRoZSBjb21wb25lbnQsIG9yIGluIGNhc2Ugb2YgYSBzdGFuZGFsb25lIHBhcmVudCBjb21wb25lbnQsIGltcG9ydCB0aGVcbiAqICAgIGBJbnRlZ3JhdGlvbkxpbmtDYXJkQ29tcG9uZW50YCBkaXJlY3RseSBpbnRvIHlvdXIgc3RhbmRhbG9uZSBjb21wb25lbnQuXG4gKlxuICogLSBNb2R1bGUgaW1wb3J0OlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBMeENvcmVVaU1vZHVsZSB9IGZyb20gJ0BsZWFuaXgvY29tcG9uZW50cyc7XG4gKiBgYGBcbiAqXG4gKiAtIFN0YW5kYWxvbmUgY29tcG9uZW50IGltcG9ydDpcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgSW50ZWdyYXRpb25MaW5rQ2FyZENvbXBvbmVudCB9IGZyb20gJ0BsZWFuaXgvY29tcG9uZW50cyc7XG4gKlxuICogQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAnbHgtbXktY29tcG9uZW50JyxcbiAqICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAqICAgaW1wb3J0czogW0ludGVncmF0aW9uTGlua0NhcmRDb21wb25lbnRdLFxuICogICB0ZW1wbGF0ZVVybDogJy4vbXktY29tcG9uZW50LmNvbXBvbmVudC5odG1sJ1xuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCB7fVxuICogYGBgXG4gKlxuICogIyMgVXNhZ2VcbiAqXG4gKiAjIyMjIFJlcXVpcmVkIElucHV0czpcbiAqXG4gKiAtIGBzb3VyY2VJY29uQ2xhc3Nlc2AgKGBzdHJpbmdgKSAtIGZvbnQgYXdlc29tZSBjbGFzc2VzIGZvciBzb3VyY2UgaWNvbjtcbiAqIC0gYHNvdXJjZU5hbWVgIChgc3RyaW5nYCkgLSB0aGUgbmFtZSBvZiB0aGUgc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgaW50ZWdyYXRpb24gY2FyZDtcbiAqIC0gYHRpdGxlYCAoYHN0cmluZ2ApIC0gdGhlIG1haW4gdGl0bGUgb2YgdGhlIGludGVncmF0aW9uIGNhcmQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LWludGVncmF0aW9uLWxpbmstY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnRlZ3JhdGlvbi1saW5rLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnRlZ3JhdGlvbi1saW5rLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1Rvb2x0aXBEaXJlY3RpdmUsIEJhZGdlQ29tcG9uZW50LCBCdXR0b25Db21wb25lbnQsIFJvdXRlckxpbmtdXG59KVxuZXhwb3J0IGNsYXNzIEludGVncmF0aW9uTGlua0NhcmRDb21wb25lbnQge1xuICAvKiogRm9udCBhd2Vzb21lIGNsYXNzZXMgZm9yIHNvdXJjZSBpY29uICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHNvdXJjZUljb25DbGFzc2VzITogc3RyaW5nO1xuICAvKiogVGhlIG5hbWUgb2YgdGhlIHNvdXJjZSBhc3NvY2lhdGVkIHdpdGggdGhlIGludGVncmF0aW9uIGNhcmQgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgc291cmNlTmFtZSE6IHN0cmluZztcbiAgLyoqIFRoZSBtYWluIHRpdGxlIG9mIHRoZSBpbnRlZ3JhdGlvbiBjYXJkICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHRpdGxlITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBpbnRlZ3JhdGlvbiBpcyBpbiBhbiBpbmFjdGl2ZSBzdGF0ZVxuICAgKiBXaGVuIHNldCB0byB0cnVlLCB0aGUgY2FyZCB3aWxsIGRpc3BsYXkgaW4gYW4gaW5hY3RpdmUgc3RhdGVcbiAgICogKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIGlzSW5hY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIFVSTCBvciByb3V0ZSB0aGUgY2FyZCBsaW5rcyB0byAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UgfSkgbGluaz86IHN0cmluZztcbiAgLyoqIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHRoZSByb3V0ZSAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UgfSkgcXVlcnlQYXJhbXM/OiBSb3V0ZVF1ZXJ5UGFyYW1zO1xuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGUgbGluayBhc3NvY2lhdGVkIHdpdGggdGhlIGNhcmQgaXMgYW4gZXh0ZXJuYWwgbGluay5cbiAgICogVGhpcyBpbmZsdWVuY2VzIGhvdyB0aGUgbGluayBkaXNwbGF5ZWQuIFdoZW4gc2V0IHRvIHRydWUgbGlua3Mgb3BlbiBpbiBhIG5ldyBicm93c2VyIHRhYlxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIGV4dGVybmFsTGluaz86IGJvb2xlYW47XG4gIC8qKiBDb250ZW50IHRvIGJlIGRpc3BsYXllZCB3aXRoaW4gYSBsaW5rIGljb24gdG9vbHRpcCAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UgfSkgdG9vbHRpcENvbnRlbnQ/OiBzdHJpbmc7XG4gIC8qKiBDb250ZW50IGZvciBhIGJhZGdlIGVsZW1lbnQgb24gdGhlIGNhcmQgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIGJhZGdlQ29udGVudD86IHN0cmluZztcbiAgLyoqIFRoZSBuYW1lIG9yIGxhYmVsIG9mIHRoZSBwcmltYXJ5IGFjdGlvbiBidXR0b24gb24gdGhlIGNhcmQgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIGFjdGlvbkJ1dHRvbk5hbWU/OiBzdHJpbmc7XG4gIC8qKiBUaW1lc3RhbXAgcmVsYXRlZCB0byB0aGUgaW50ZWdyYXRpb24sIHN1Y2ggYXMgdGhlIGxhc3QgdXBkYXRlZCB0aW1lIChyZWxhdGl2ZSB0aW1lKSAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UgfSkgdGltZXN0YW1wPzogc3RyaW5nO1xuICAvKiogQWRkaXRpb25hbCwgbGVzcyBjcml0aWNhbCBpbmZvcm1hdGlvbiB0byBkaXNwbGF5IG9uIHRoZSBjYXJkICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiBmYWxzZSB9KSB0ZXJ0aWFyeUluZm8/OiBzdHJpbmc7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgYWN0aW9uIGJ1dHRvbiBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBhY3Rpb25CdXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBsaW5rIGlzIGNsaWNrZWQgKi9cbiAgQE91dHB1dCgpIGxpbmtDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25BY3Rpb25CdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9uQnV0dG9uQ2xpY2tlZC5lbWl0KCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uTGlua0NsaWNrZWQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmxpbmtDbGlja2VkLmVtaXQoZXZlbnQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaW50ZWdyYXRpb24tbGluay1jYXJkLWJvZHkge3sgaXNJbmFjdGl2ZSA/ICdpbmFjdGl2ZS1saW5rJyA6ICcnIH19XCI+XG4gIEBpZiAoYmFkZ2VDb250ZW50KSB7XG4gICAgPGRpdiBjbGFzcz1cImludGVncmF0aW9uLWxpbmstY2FyZC1iYWRnZVwiPlxuICAgICAgPGx4LWJhZGdlIFtjb250ZW50XT1cImJhZGdlQ29udGVudFwiIC8+XG4gICAgPC9kaXY+XG4gIH1cbiAgPGRpdiBjbGFzcz1cImludGVncmF0aW9uLWxpbmstY2FyZC1zb3VyY2VcIj48aSBbY2xhc3NdPVwic291cmNlSWNvbkNsYXNzZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+e3sgc291cmNlTmFtZSB9fTwvZGl2PlxuICA8aDIgY2xhc3M9XCJpbnRlZ3JhdGlvbi1saW5rLWNhcmQtaGVhZGluZ1wiPnt7IHRpdGxlIH19PC9oMj5cbiAgQGlmICh0ZXJ0aWFyeUluZm8pIHtcbiAgICA8ZGl2IGNsYXNzPVwiaW50ZWdyYXRpb24tbGluay1jYXJkLXRlcnRpYXJ5LWluZm9cIj57eyB0ZXJ0aWFyeUluZm8gfX08L2Rpdj5cbiAgfVxuICBAaWYgKHRpbWVzdGFtcCkge1xuICAgIDxkaXYgY2xhc3M9XCJpbnRlZ3JhdGlvbi1saW5rLWNhcmQtdGltZXN0YW1wXCI+e3sgdGltZXN0YW1wIH19PC9kaXY+XG4gIH1cbiAgQGlmIChhY3Rpb25CdXR0b25OYW1lKSB7XG4gICAgPGJ1dHRvbiBseC1idXR0b24gY29sb3I9XCJsaWdodFwiIGNsYXNzPVwiaW50ZWdyYXRpb24tbGluay1jYXJkLWFjdGlvbi1idXR0b25cIiAoY2xpY2spPVwib25BY3Rpb25CdXR0b25DbGlja2VkKClcIj5cbiAgICAgIHt7IGFjdGlvbkJ1dHRvbk5hbWUgfX1cbiAgICA8L2J1dHRvbj5cbiAgfVxuPC9kaXY+XG5AaWYgKGxpbmspIHtcbiAgPGRpdiBjbGFzcz1cImludGVncmF0aW9uLWxpbmstY2FyZC1saW5rXCI+XG4gICAgQGlmIChleHRlcm5hbExpbmspIHtcbiAgICAgIDxhXG4gICAgICAgIFtocmVmXT1cImxpbmtcIlxuICAgICAgICBbYXR0ci50YXJnZXRdPVwiJ19ibGFuaydcIlxuICAgICAgICBbYXR0ci5yZWxdPVwiJ25vb3BlbmVyIG5vcmVmZmVyZXInXCJcbiAgICAgICAgW2x4VG9vbHRpcF09XCJ0b29sdGlwQ29udGVudFwiXG4gICAgICAgIFtseFRvb2x0aXBQb3NpdGlvbl09XCJ7IHk6ICd0b3AnLCB4OiAnbGVmdCcgfVwiXG4gICAgICAgIChjbGljayk9XCJvbkxpbmtDbGlja2VkKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1leHRlcm5hbC1saW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgPC9hPlxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIChsaW5rLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICA8YSBbbHhUb29sdGlwXT1cInRvb2x0aXBDb250ZW50XCIgW2x4VG9vbHRpcFBvc2l0aW9uXT1cInsgeTogJ3RvcCcsIHg6ICdsZWZ0JyB9XCIgW2hyZWZdPVwibGlua1wiIChjbGljayk9XCJvbkxpbmtDbGlja2VkKCRldmVudClcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1hcnJvdy1jaXJjbGUtcmlnaHRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIDwvYT5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8YVxuICAgICAgICAgIFtseFRvb2x0aXBdPVwidG9vbHRpcENvbnRlbnRcIlxuICAgICAgICAgIFtseFRvb2x0aXBQb3NpdGlvbl09XCJ7IHk6ICd0b3AnLCB4OiAnbGVmdCcgfVwiXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwibGlua1wiXG4gICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cInF1ZXJ5UGFyYW1zXCJcbiAgICAgICAgICAoY2xpY2spPVwib25MaW5rQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWFycm93LWNpcmNsZS1yaWdodFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPC9hPlxuICAgICAgfVxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tbGluay1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvcmUtdWkvY29tcG9uZW50cy9pbnRlZ3JhdGlvbi1saW5rLWNhcmQvaW50ZWdyYXRpb24tbGluay1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvcmUtdWkvY29tcG9uZW50cy9pbnRlZ3JhdGlvbi1saW5rLWNhcmQvaW50ZWdyYXRpb24tbGluay1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBTTdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUNHO0FBUUgsTUFBTSxPQUFPLDRCQUE0QjtJQVB6QztRQWVFOzs7YUFHSztRQUN1QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBcUJ4RCxzREFBc0Q7UUFDNUMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN6RCw2Q0FBNkM7UUFDbkMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO0tBV3hEO0lBVEMsZ0JBQWdCO0lBQ2hCLHFCQUFxQjtRQUNuQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixhQUFhLENBQUMsS0FBaUI7UUFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs4R0E5Q1UsNEJBQTRCO2tHQUE1Qiw0QkFBNEIscWdCQ3ZEekMsMjREQW9EQSw4cUNEQ1ksZ0JBQWdCLGdKQUFFLGNBQWMsaUhBQUUsZUFBZSx1S0FBRSxVQUFVOzsyRkFFNUQsNEJBQTRCO2tCQVB4QyxTQUFTOytCQUNFLDBCQUEwQixjQUd4QixJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQzs4QkFJN0MsaUJBQWlCO3NCQUEzQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFRSxVQUFVO3NCQUFwQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFRSxLQUFLO3NCQUEvQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFNRyxVQUFVO3NCQUFyQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtnQkFFRSxJQUFJO3NCQUEvQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtnQkFFRSxXQUFXO3NCQUF0QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtnQkFLRSxZQUFZO3NCQUF2QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtnQkFFRSxjQUFjO3NCQUF6QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtnQkFFRSxZQUFZO3NCQUF2QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtnQkFFRSxnQkFBZ0I7c0JBQTNDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUVFLFNBQVM7c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUVFLFlBQVk7c0JBQXZDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUdoQixtQkFBbUI7c0JBQTVCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFkZ2UvYmFkZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcblxuaW50ZXJmYWNlIFJvdXRlUXVlcnlQYXJhbXMge1xuICBbeDogc3RyaW5nXTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEludGVncmF0aW9uIExpbmsgQ2FyZCBDb21wb25lbnQgaXMgYSBjYXJkIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGluZm9ybWF0aW9uIGFib3V0IGFuIGludGVncmF0aW9uIGxpbmsuXG4gKlxuICogVGhpcyBkb2N1bWVudGF0aW9uIHByb3ZpZGVzIGRldGFpbHMgb24gdGhlIHVzYWdlIGFuZCBjb25maWd1cmF0aW9uIG9mIHRoZSBJbnRlZ3JhdGlvbiBMaW5rIENhcmQgQ29tcG9uZW50LlxuICpcbiAqICMjIFVzYWdlXG4gKlxuICogMS4gSW1wb3J0IGBMeENvcmVVaU1vZHVsZWAgbW9kdWxlIGZyb20gYEBsZWFuaXgvY29tcG9uZW50c2AgaW4geW91ciBtb2R1bGUgd2hlcmUgeW91IHdhbnQgdG8gdXNlIHRoZSBjb21wb25lbnQsIG9yIGluIGNhc2Ugb2YgYSBzdGFuZGFsb25lIHBhcmVudCBjb21wb25lbnQsIGltcG9ydCB0aGVcbiAqICAgIGBJbnRlZ3JhdGlvbkxpbmtDYXJkQ29tcG9uZW50YCBkaXJlY3RseSBpbnRvIHlvdXIgc3RhbmRhbG9uZSBjb21wb25lbnQuXG4gKlxuICogLSBNb2R1bGUgaW1wb3J0OlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBMeENvcmVVaU1vZHVsZSB9IGZyb20gJ0BsZWFuaXgvY29tcG9uZW50cyc7XG4gKiBgYGBcbiAqXG4gKiAtIFN0YW5kYWxvbmUgY29tcG9uZW50IGltcG9ydDpcbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgSW50ZWdyYXRpb25MaW5rQ2FyZENvbXBvbmVudCB9IGZyb20gJ0BsZWFuaXgvY29tcG9uZW50cyc7XG4gKlxuICogQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAnbHgtbXktY29tcG9uZW50JyxcbiAqICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAqICAgaW1wb3J0czogW0ludGVncmF0aW9uTGlua0NhcmRDb21wb25lbnRdLFxuICogICB0ZW1wbGF0ZVVybDogJy4vbXktY29tcG9uZW50LmNvbXBvbmVudC5odG1sJ1xuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCB7fVxuICogYGBgXG4gKlxuICogIyMgVXNhZ2VcbiAqXG4gKiAjIyMjIFJlcXVpcmVkIElucHV0czpcbiAqXG4gKiAtIGBzb3VyY2VJY29uQ2xhc3Nlc2AgKGBzdHJpbmdgKSAtIGZvbnQgYXdlc29tZSBjbGFzc2VzIGZvciBzb3VyY2UgaWNvbjtcbiAqIC0gYHNvdXJjZU5hbWVgIChgc3RyaW5nYCkgLSB0aGUgbmFtZSBvZiB0aGUgc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgaW50ZWdyYXRpb24gY2FyZDtcbiAqIC0gYHRpdGxlYCAoYHN0cmluZ2ApIC0gdGhlIG1haW4gdGl0bGUgb2YgdGhlIGludGVncmF0aW9uIGNhcmQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LWludGVncmF0aW9uLWxpbmstY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnRlZ3JhdGlvbi1saW5rLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnRlZ3JhdGlvbi1saW5rLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1Rvb2x0aXBEaXJlY3RpdmUsIEJhZGdlQ29tcG9uZW50LCBCdXR0b25Db21wb25lbnQsIFJvdXRlckxpbmtdXG59KVxuZXhwb3J0IGNsYXNzIEludGVncmF0aW9uTGlua0NhcmRDb21wb25lbnQge1xuICAvKiogRm9udCBhd2Vzb21lIGNsYXNzZXMgZm9yIHNvdXJjZSBpY29uICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHNvdXJjZUljb25DbGFzc2VzITogc3RyaW5nO1xuICAvKiogVGhlIG5hbWUgb2YgdGhlIHNvdXJjZSBhc3NvY2lhdGVkIHdpdGggdGhlIGludGVncmF0aW9uIGNhcmQgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgc291cmNlTmFtZSE6IHN0cmluZztcbiAgLyoqIFRoZSBtYWluIHRpdGxlIG9mIHRoZSBpbnRlZ3JhdGlvbiBjYXJkICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHRpdGxlITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBpbnRlZ3JhdGlvbiBpcyBpbiBhbiBpbmFjdGl2ZSBzdGF0ZVxuICAgKiBXaGVuIHNldCB0byB0cnVlLCB0aGUgY2FyZCB3aWxsIGRpc3BsYXkgaW4gYW4gaW5hY3RpdmUgc3RhdGVcbiAgICogKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIGlzSW5hY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIFVSTCBvciByb3V0ZSB0aGUgY2FyZCBsaW5rcyB0byAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UgfSkgbGluaz86IHN0cmluZztcbiAgLyoqIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHRoZSByb3V0ZSAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UgfSkgcXVlcnlQYXJhbXM/OiBSb3V0ZVF1ZXJ5UGFyYW1zO1xuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGUgbGluayBhc3NvY2lhdGVkIHdpdGggdGhlIGNhcmQgaXMgYW4gZXh0ZXJuYWwgbGluay5cbiAgICogVGhpcyBpbmZsdWVuY2VzIGhvdyB0aGUgbGluayBkaXNwbGF5ZWQuIFdoZW4gc2V0IHRvIHRydWUgbGlua3Mgb3BlbiBpbiBhIG5ldyBicm93c2VyIHRhYlxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIGV4dGVybmFsTGluaz86IGJvb2xlYW47XG4gIC8qKiBDb250ZW50IHRvIGJlIGRpc3BsYXllZCB3aXRoaW4gYSBsaW5rIGljb24gdG9vbHRpcCAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UgfSkgdG9vbHRpcENvbnRlbnQ/OiBzdHJpbmc7XG4gIC8qKiBDb250ZW50IGZvciBhIGJhZGdlIGVsZW1lbnQgb24gdGhlIGNhcmQgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIGJhZGdlQ29udGVudD86IHN0cmluZztcbiAgLyoqIFRoZSBuYW1lIG9yIGxhYmVsIG9mIHRoZSBwcmltYXJ5IGFjdGlvbiBidXR0b24gb24gdGhlIGNhcmQgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIGFjdGlvbkJ1dHRvbk5hbWU/OiBzdHJpbmc7XG4gIC8qKiBUaW1lc3RhbXAgcmVsYXRlZCB0byB0aGUgaW50ZWdyYXRpb24sIHN1Y2ggYXMgdGhlIGxhc3QgdXBkYXRlZCB0aW1lIChyZWxhdGl2ZSB0aW1lKSAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogZmFsc2UgfSkgdGltZXN0YW1wPzogc3RyaW5nO1xuICAvKiogQWRkaXRpb25hbCwgbGVzcyBjcml0aWNhbCBpbmZvcm1hdGlvbiB0byBkaXNwbGF5IG9uIHRoZSBjYXJkICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiBmYWxzZSB9KSB0ZXJ0aWFyeUluZm8/OiBzdHJpbmc7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgYWN0aW9uIGJ1dHRvbiBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBhY3Rpb25CdXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBsaW5rIGlzIGNsaWNrZWQgKi9cbiAgQE91dHB1dCgpIGxpbmtDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25BY3Rpb25CdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9uQnV0dG9uQ2xpY2tlZC5lbWl0KCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uTGlua0NsaWNrZWQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmxpbmtDbGlja2VkLmVtaXQoZXZlbnQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaW50ZWdyYXRpb24tbGluay1jYXJkLWJvZHkge3sgaXNJbmFjdGl2ZSA/ICdpbmFjdGl2ZS1saW5rJyA6ICcnIH19XCI+XG4gIEBpZiAoYmFkZ2VDb250ZW50KSB7XG4gICAgPGRpdiBjbGFzcz1cImludGVncmF0aW9uLWxpbmstY2FyZC1iYWRnZVwiPlxuICAgICAgPGx4LWJhZGdlIFtjb250ZW50XT1cImJhZGdlQ29udGVudFwiIC8+XG4gICAgPC9kaXY+XG4gIH1cbiAgPGRpdiBjbGFzcz1cImludGVncmF0aW9uLWxpbmstY2FyZC1zb3VyY2VcIj48aSBbY2xhc3NdPVwic291cmNlSWNvbkNsYXNzZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+e3sgc291cmNlTmFtZSB9fTwvZGl2PlxuICA8aDIgY2xhc3M9XCJpbnRlZ3JhdGlvbi1saW5rLWNhcmQtaGVhZGluZ1wiPnt7IHRpdGxlIH19PC9oMj5cbiAgQGlmICh0ZXJ0aWFyeUluZm8pIHtcbiAgICA8ZGl2IGNsYXNzPVwiaW50ZWdyYXRpb24tbGluay1jYXJkLXRlcnRpYXJ5LWluZm9cIj57eyB0ZXJ0aWFyeUluZm8gfX08L2Rpdj5cbiAgfVxuICBAaWYgKHRpbWVzdGFtcCkge1xuICAgIDxkaXYgY2xhc3M9XCJpbnRlZ3JhdGlvbi1saW5rLWNhcmQtdGltZXN0YW1wXCI+e3sgdGltZXN0YW1wIH19PC9kaXY+XG4gIH1cbiAgQGlmIChhY3Rpb25CdXR0b25OYW1lKSB7XG4gICAgPGJ1dHRvbiBseC1idXR0b24gY29sb3I9XCJsaWdodFwiIGNsYXNzPVwiaW50ZWdyYXRpb24tbGluay1jYXJkLWFjdGlvbi1idXR0b25cIiAoY2xpY2spPVwib25BY3Rpb25CdXR0b25DbGlja2VkKClcIj5cbiAgICAgIHt7IGFjdGlvbkJ1dHRvbk5hbWUgfX1cbiAgICA8L2J1dHRvbj5cbiAgfVxuPC9kaXY+XG5AaWYgKGxpbmspIHtcbiAgPGRpdiBjbGFzcz1cImludGVncmF0aW9uLWxpbmstY2FyZC1saW5rXCI+XG4gICAgQGlmIChleHRlcm5hbExpbmspIHtcbiAgICAgIDxhXG4gICAgICAgIFtocmVmXT1cImxpbmtcIlxuICAgICAgICBbYXR0ci50YXJnZXRdPVwiJ19ibGFuaydcIlxuICAgICAgICBbYXR0ci5yZWxdPVwiJ25vb3BlbmVyIG5vcmVmZmVyZXInXCJcbiAgICAgICAgW2x4VG9vbHRpcF09XCJ0b29sdGlwQ29udGVudFwiXG4gICAgICAgIFtseFRvb2x0aXBQb3NpdGlvbl09XCJ7IHk6ICd0b3AnLCB4OiAnbGVmdCcgfVwiXG4gICAgICAgIChjbGljayk9XCJvbkxpbmtDbGlja2VkKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1leHRlcm5hbC1saW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgPC9hPlxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIChsaW5rLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICA8YSBbbHhUb29sdGlwXT1cInRvb2x0aXBDb250ZW50XCIgW2x4VG9vbHRpcFBvc2l0aW9uXT1cInsgeTogJ3RvcCcsIHg6ICdsZWZ0JyB9XCIgW2hyZWZdPVwibGlua1wiIChjbGljayk9XCJvbkxpbmtDbGlja2VkKCRldmVudClcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1hcnJvdy1jaXJjbGUtcmlnaHRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIDwvYT5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8YVxuICAgICAgICAgIFtseFRvb2x0aXBdPVwidG9vbHRpcENvbnRlbnRcIlxuICAgICAgICAgIFtseFRvb2x0aXBQb3NpdGlvbl09XCJ7IHk6ICd0b3AnLCB4OiAnbGVmdCcgfVwiXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwibGlua1wiXG4gICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cInF1ZXJ5UGFyYW1zXCJcbiAgICAgICAgICAoY2xpY2spPVwib25MaW5rQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWFycm93LWNpcmNsZS1yaWdodFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPC9hPlxuICAgICAgfVxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=
@@ -251,7 +251,7 @@ export class DateInputComponent {
251
251
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: DateInputComponent, isStandalone: true, selector: "lx-date-input", inputs: { date: "date", dateString: "dateString", valueAccessor: "valueAccessor", inputId: "inputId", renderingStyle: "renderingStyle", placeholder: "placeholder", cdk: "cdk", datepickerMode: "datepickerMode", initDateString: "initDateString", minDate: "minDate", maxDate: "maxDate", minMode: "minMode", maxMode: "maxMode", showWeeks: "showWeeks", formatDay: "formatDay", formatMonth: "formatMonth", formatYear: "formatYear", formatDayHeader: "formatDayHeader", formatDayTitle: "formatDayTitle", formatMonthTitle: "formatMonthTitle", startingDay: "startingDay", yearRange: "yearRange", onlyCurrentMonth: "onlyCurrentMonth", shortcutPropagation: "shortcutPropagation", customClass: "customClass", disabled: "disabled", dateDisabled: "dateDisabled", autoFocus: "autoFocus", markInvalid: "markInvalid" }, outputs: { closeDateInput: "closeDateInput", dateStringChange: "dateStringChange", dateChange: "dateChange" }, providers: [
252
252
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputComponent), multi: true },
253
253
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateInputComponent), multi: true }
254
- ], queries: [{ propertyName: "dateStringTemplate", first: true, predicate: ["dateStringTemplate"], descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"cdk; else withoutCdkOverlay\">\n <span\n class=\"wrapper\"\n [class.forLink]=\"renderingStyle === 'LINK'\"\n [class.has-error]=\"hasError\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <!-- TODO: The dateInput and datePicker code ist duplicated for cdk and withoutCdK use to solve a placing problem of the\n ngx-bootstrap datepicker component. Writing it in a ng-container led to an unexpected anchoring behavior of the datePicker NOT directly\n below the dateInput element -->\n @switch (renderingStyle) {\n @case ('BUTTON') {\n <button lx-button (click)=\"showPopup()\" lxAutoclose (autoclose)=\"hidePopup()\" size=\"large\">\n @if (dateStringTemplate) {\n <ng-container *ngTemplateOutlet=\"dateStringTemplate\" />\n } @else {\n {{ dateString ?? placeholder }}\n }\n <i class=\"far fa-angle-down lx-margin-left\"></i>\n </button>\n }\n @case ('INPUT') {\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n [lxMarkInvalid]=\"markInvalid\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n />\n }\n @case ('LINK') {\n <a class=\"dateControl\" (click)=\"togglePopup()\">{{ date | lxDate: dateFormat }}</a>\n }\n }\n\n <ng-template\n #cdkDatepicker\n cdkConnectedOverlay\n [cdkConnectedOverlayOpen]=\"showDatepicker\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'backdrop'\"\n (backdropClick)=\"hidePopup()\"\n >\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n />\n </div>\n </div>\n </ng-template>\n </span>\n</ng-container>\n\n<ng-template #withoutCdkOverlay>\n <div class=\"legacy\" [class.forLink]=\"renderingStyle === 'LINK'\">\n <div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n <span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [lxMarkInvalid]=\"markInvalid\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n *ngIf=\"showDatepicker\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n />\n </div>\n </div>\n </span>\n </div>\n</ng-template>\n", styles: [".backdrop{background-color:transparent}.datepickerContainer{z-index:700}.wrapper .forLink .popup{top:15px}.dateControl,.calendar{position:relative}.popup{position:relative;left:0;z-index:700;border-radius:3px}.popup ::ng-deep .text-info{color:#2a303d}.popup ::ng-deep .text-muted{color:#99a5bb}.popup ::ng-deep .btn.active,.popup ::ng-deep .btn.active .text-info{color:#fff}.popup ::ng-deep .well{margin:0;border:1px solid #2a303d}:host-context(.input-group) .datepickerContainer{top:100%}.legacy .backdrop{position:fixed;z-index:2;inset:0}.legacy .datepickerContainer{position:absolute}.legacy.forLink{display:inline-block}.datepickerContainer datepicker{display:block;border-radius:4px;background-color:#fff;box-shadow:0 2px 8px #22364940;width:290px;z-index:700;padding:0 16px 16px;margin-top:4px}datepicker ::ng-deep .well{margin-bottom:0;border:none!important;background:none;box-shadow:none;padding:12px 0 0}datepicker ::ng-deep .btn{border:none!important;font-size:14px}datepicker ::ng-deep .btn.pull-left{font-size:0}datepicker ::ng-deep .btn.pull-left:after{color:#0070f2;font-family:\"Font Awesome 5 Pro\";font-weight:900;content:\"\\f104\";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:14px}datepicker ::ng-deep .btn.pull-right{font-size:0}datepicker ::ng-deep .btn.pull-right:after{color:#0070f2;font-family:\"Font Awesome 5 Pro\";font-weight:900;content:\"\\f105\";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:14px}datepicker ::ng-deep table tr:first-child th{padding-bottom:12px}datepicker ::ng-deep table tr:first-child th .btn{color:#0070f2!important}datepicker ::ng-deep [role=gridcell] .btn-default{border:solid 2px transparent!important;border-radius:8px;padding:8px 6px}datepicker ::ng-deep [role=gridcell] .btn-default:focus,datepicker ::ng-deep [role=gridcell] .btn-default.focus{outline-offset:0}datepicker ::ng-deep [role=gridcell] .btn-default:hover{background-color:#fff;border:#0070f2 2px solid!important;border-radius:8px}datepicker ::ng-deep .btn-default.active{background:none;box-shadow:none;color:#fff;border:solid 2px #0070f2!important;background-color:#0070f2!important;border-radius:8px}datepicker ::ng-deep .btn-default.active .text-muted,datepicker ::ng-deep .btn-default.active .text-primary,datepicker ::ng-deep .btn-default.active .text-info{color:inherit}datepicker ::ng-deep tr td:first-child{padding:0 6px;color:#556b82;font-size:var(--lxFontSmallSize, 12px)}datepicker ::ng-deep th small b{font-weight:400;color:#556b82;font-size:var(--lxFontSmallSize, 12px)}datepicker ::ng-deep table{border-spacing:1px;border-collapse:separate}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutofocusDirective, selector: "[lxAutofocus]", inputs: ["lxAutofocus", "lxAutofocusPreventScroll", "lxAutofocusTimeout"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: DatePickerComponent, selector: "datepicker", inputs: ["datepickerMode", "initDate", "minDate", "maxDate", "minMode", "maxMode", "showWeeks", "formatDay", "formatMonth", "formatYear", "formatDayHeader", "formatDayTitle", "formatMonthTitle", "startingDay", "yearRange", "onlyCurrentMonth", "shortcutPropagation", "monthColLimit", "yearColLimit", "customClass", "dateDisabled", "dayDisabled", "activeDate"], outputs: ["selectionDone", "activeDateChange"] }, { kind: "pipe", type: CustomDatePipe, name: "lxDate" }, { kind: "directive", type: MarkInvalidDirective, selector: "[lxMarkInvalid]", inputs: ["lxMarkInvalid"] }, { kind: "component", type: ButtonComponent, selector: "button[lx-button]", inputs: ["size", "color", "mode", "pressed", "selected", "square", "circle", "disabled", "showSpinner"] }] }); }
254
+ ], queries: [{ propertyName: "dateStringTemplate", first: true, predicate: ["dateStringTemplate"], descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"cdk; else withoutCdkOverlay\">\n <span\n class=\"wrapper\"\n [class.forLink]=\"renderingStyle === 'LINK'\"\n [class.has-error]=\"hasError\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <!-- TODO: The dateInput and datePicker code ist duplicated for cdk and withoutCdK use to solve a placing problem of the\n ngx-bootstrap datepicker component. Writing it in a ng-container led to an unexpected anchoring behavior of the datePicker NOT directly\n below the dateInput element -->\n @switch (renderingStyle) {\n @case ('BUTTON') {\n <button lx-button (click)=\"showPopup()\" lxAutoclose (autoclose)=\"hidePopup()\" size=\"large\">\n @if (dateStringTemplate) {\n <ng-container *ngTemplateOutlet=\"dateStringTemplate\" />\n } @else {\n {{ dateString ?? placeholder }}\n }\n <i class=\"far fa-angle-down lx-margin-left\"></i>\n </button>\n }\n @case ('INPUT') {\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n [lxMarkInvalid]=\"markInvalid\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n />\n }\n @case ('LINK') {\n <a class=\"dateControl\" (click)=\"togglePopup()\">{{ date | lxDate: dateFormat }}</a>\n }\n }\n\n <ng-template\n #cdkDatepicker\n cdkConnectedOverlay\n [cdkConnectedOverlayOpen]=\"showDatepicker\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'backdrop'\"\n (backdropClick)=\"hidePopup()\"\n >\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n />\n </div>\n </div>\n </ng-template>\n </span>\n</ng-container>\n\n<ng-template #withoutCdkOverlay>\n <div class=\"legacy\" [class.forLink]=\"renderingStyle === 'LINK'\">\n <div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n <span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [lxMarkInvalid]=\"markInvalid\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n *ngIf=\"showDatepicker\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n />\n </div>\n </div>\n </span>\n </div>\n</ng-template>\n", styles: [".backdrop{background-color:transparent}.datepickerContainer{z-index:700}.wrapper .forLink .popup{top:15px}.dateControl,.calendar{position:relative}.popup{position:relative;left:0;z-index:700;border-radius:3px}.popup ::ng-deep .text-info{color:#2a303d}.popup ::ng-deep .text-muted{color:#99a5bb}.popup ::ng-deep .btn.active,.popup ::ng-deep .btn.active .text-info{color:#fff}.popup ::ng-deep .well{margin:0;border:1px solid #2a303d}:host-context(.input-group) .datepickerContainer{top:100%}.legacy .backdrop{position:fixed;z-index:2;inset:0}.legacy .datepickerContainer{position:absolute}.legacy.forLink{display:inline-block}.datepickerContainer datepicker{display:block;border-radius:4px;background-color:#fff;box-shadow:0 2px 8px #22364940;width:290px;z-index:700;padding:0 16px 16px;margin-top:4px}datepicker ::ng-deep .well{margin-bottom:0;border:none!important;background:none;box-shadow:none;padding:12px 0 0}datepicker ::ng-deep .btn{border:none!important;font-size:14px}datepicker ::ng-deep .btn.pull-left{font-size:0}datepicker ::ng-deep .btn.pull-left:after{color:#0070f2;font-family:\"Font Awesome 5 Pro\";font-weight:var(--lxFontBlack, 900);content:\"\\f104\";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:14px}datepicker ::ng-deep .btn.pull-right{font-size:0}datepicker ::ng-deep .btn.pull-right:after{color:#0070f2;font-family:\"Font Awesome 5 Pro\";font-weight:var(--lxFontBlack, 900);content:\"\\f105\";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:14px}datepicker ::ng-deep table tr:first-child th{padding-bottom:12px}datepicker ::ng-deep table tr:first-child th .btn{color:#0070f2!important}datepicker ::ng-deep [role=gridcell] .btn-default{border:solid 2px transparent!important;border-radius:8px;padding:8px 6px}datepicker ::ng-deep [role=gridcell] .btn-default:focus,datepicker ::ng-deep [role=gridcell] .btn-default.focus{outline-offset:0}datepicker ::ng-deep [role=gridcell] .btn-default:hover{background-color:#fff;border:#0070f2 2px solid!important;border-radius:8px}datepicker ::ng-deep .btn-default.active{background:none;box-shadow:none;color:#fff;border:solid 2px #0070f2!important;background-color:#0070f2!important;border-radius:8px}datepicker ::ng-deep .btn-default.active .text-muted,datepicker ::ng-deep .btn-default.active .text-primary,datepicker ::ng-deep .btn-default.active .text-info{color:inherit}datepicker ::ng-deep tr td:first-child{padding:0 6px;color:#556b82;font-size:var(--lxFontSmallSize, 12px)}datepicker ::ng-deep th small b{font-weight:400;color:#556b82;font-size:var(--lxFontSmallSize, 12px)}datepicker ::ng-deep table{border-spacing:1px;border-collapse:separate}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutofocusDirective, selector: "[lxAutofocus]", inputs: ["lxAutofocus", "lxAutofocusPreventScroll", "lxAutofocusTimeout"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: DatePickerComponent, selector: "datepicker", inputs: ["datepickerMode", "initDate", "minDate", "maxDate", "minMode", "maxMode", "showWeeks", "formatDay", "formatMonth", "formatYear", "formatDayHeader", "formatDayTitle", "formatMonthTitle", "startingDay", "yearRange", "onlyCurrentMonth", "shortcutPropagation", "monthColLimit", "yearColLimit", "customClass", "dateDisabled", "dayDisabled", "activeDate"], outputs: ["selectionDone", "activeDateChange"] }, { kind: "pipe", type: CustomDatePipe, name: "lxDate" }, { kind: "directive", type: MarkInvalidDirective, selector: "[lxMarkInvalid]", inputs: ["lxMarkInvalid"] }, { kind: "component", type: ButtonComponent, selector: "button[lx-button]", inputs: ["size", "color", "mode", "pressed", "selected", "square", "circle", "disabled", "showSpinner"] }] }); }
255
255
  }
256
256
  __decorate([
257
257
  Observe('initDateString')
@@ -272,7 +272,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
272
272
  CustomDatePipe,
273
273
  MarkInvalidDirective,
274
274
  ButtonComponent
275
- ], template: "<ng-container *ngIf=\"cdk; else withoutCdkOverlay\">\n <span\n class=\"wrapper\"\n [class.forLink]=\"renderingStyle === 'LINK'\"\n [class.has-error]=\"hasError\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <!-- TODO: The dateInput and datePicker code ist duplicated for cdk and withoutCdK use to solve a placing problem of the\n ngx-bootstrap datepicker component. Writing it in a ng-container led to an unexpected anchoring behavior of the datePicker NOT directly\n below the dateInput element -->\n @switch (renderingStyle) {\n @case ('BUTTON') {\n <button lx-button (click)=\"showPopup()\" lxAutoclose (autoclose)=\"hidePopup()\" size=\"large\">\n @if (dateStringTemplate) {\n <ng-container *ngTemplateOutlet=\"dateStringTemplate\" />\n } @else {\n {{ dateString ?? placeholder }}\n }\n <i class=\"far fa-angle-down lx-margin-left\"></i>\n </button>\n }\n @case ('INPUT') {\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n [lxMarkInvalid]=\"markInvalid\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n />\n }\n @case ('LINK') {\n <a class=\"dateControl\" (click)=\"togglePopup()\">{{ date | lxDate: dateFormat }}</a>\n }\n }\n\n <ng-template\n #cdkDatepicker\n cdkConnectedOverlay\n [cdkConnectedOverlayOpen]=\"showDatepicker\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'backdrop'\"\n (backdropClick)=\"hidePopup()\"\n >\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n />\n </div>\n </div>\n </ng-template>\n </span>\n</ng-container>\n\n<ng-template #withoutCdkOverlay>\n <div class=\"legacy\" [class.forLink]=\"renderingStyle === 'LINK'\">\n <div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n <span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [lxMarkInvalid]=\"markInvalid\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n *ngIf=\"showDatepicker\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n />\n </div>\n </div>\n </span>\n </div>\n</ng-template>\n", styles: [".backdrop{background-color:transparent}.datepickerContainer{z-index:700}.wrapper .forLink .popup{top:15px}.dateControl,.calendar{position:relative}.popup{position:relative;left:0;z-index:700;border-radius:3px}.popup ::ng-deep .text-info{color:#2a303d}.popup ::ng-deep .text-muted{color:#99a5bb}.popup ::ng-deep .btn.active,.popup ::ng-deep .btn.active .text-info{color:#fff}.popup ::ng-deep .well{margin:0;border:1px solid #2a303d}:host-context(.input-group) .datepickerContainer{top:100%}.legacy .backdrop{position:fixed;z-index:2;inset:0}.legacy .datepickerContainer{position:absolute}.legacy.forLink{display:inline-block}.datepickerContainer datepicker{display:block;border-radius:4px;background-color:#fff;box-shadow:0 2px 8px #22364940;width:290px;z-index:700;padding:0 16px 16px;margin-top:4px}datepicker ::ng-deep .well{margin-bottom:0;border:none!important;background:none;box-shadow:none;padding:12px 0 0}datepicker ::ng-deep .btn{border:none!important;font-size:14px}datepicker ::ng-deep .btn.pull-left{font-size:0}datepicker ::ng-deep .btn.pull-left:after{color:#0070f2;font-family:\"Font Awesome 5 Pro\";font-weight:900;content:\"\\f104\";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:14px}datepicker ::ng-deep .btn.pull-right{font-size:0}datepicker ::ng-deep .btn.pull-right:after{color:#0070f2;font-family:\"Font Awesome 5 Pro\";font-weight:900;content:\"\\f105\";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:14px}datepicker ::ng-deep table tr:first-child th{padding-bottom:12px}datepicker ::ng-deep table tr:first-child th .btn{color:#0070f2!important}datepicker ::ng-deep [role=gridcell] .btn-default{border:solid 2px transparent!important;border-radius:8px;padding:8px 6px}datepicker ::ng-deep [role=gridcell] .btn-default:focus,datepicker ::ng-deep [role=gridcell] .btn-default.focus{outline-offset:0}datepicker ::ng-deep [role=gridcell] .btn-default:hover{background-color:#fff;border:#0070f2 2px solid!important;border-radius:8px}datepicker ::ng-deep .btn-default.active{background:none;box-shadow:none;color:#fff;border:solid 2px #0070f2!important;background-color:#0070f2!important;border-radius:8px}datepicker ::ng-deep .btn-default.active .text-muted,datepicker ::ng-deep .btn-default.active .text-primary,datepicker ::ng-deep .btn-default.active .text-info{color:inherit}datepicker ::ng-deep tr td:first-child{padding:0 6px;color:#556b82;font-size:var(--lxFontSmallSize, 12px)}datepicker ::ng-deep th small b{font-weight:400;color:#556b82;font-size:var(--lxFontSmallSize, 12px)}datepicker ::ng-deep table{border-spacing:1px;border-collapse:separate}\n"] }]
275
+ ], template: "<ng-container *ngIf=\"cdk; else withoutCdkOverlay\">\n <span\n class=\"wrapper\"\n [class.forLink]=\"renderingStyle === 'LINK'\"\n [class.has-error]=\"hasError\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <!-- TODO: The dateInput and datePicker code ist duplicated for cdk and withoutCdK use to solve a placing problem of the\n ngx-bootstrap datepicker component. Writing it in a ng-container led to an unexpected anchoring behavior of the datePicker NOT directly\n below the dateInput element -->\n @switch (renderingStyle) {\n @case ('BUTTON') {\n <button lx-button (click)=\"showPopup()\" lxAutoclose (autoclose)=\"hidePopup()\" size=\"large\">\n @if (dateStringTemplate) {\n <ng-container *ngTemplateOutlet=\"dateStringTemplate\" />\n } @else {\n {{ dateString ?? placeholder }}\n }\n <i class=\"far fa-angle-down lx-margin-left\"></i>\n </button>\n }\n @case ('INPUT') {\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n [lxMarkInvalid]=\"markInvalid\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n />\n }\n @case ('LINK') {\n <a class=\"dateControl\" (click)=\"togglePopup()\">{{ date | lxDate: dateFormat }}</a>\n }\n }\n\n <ng-template\n #cdkDatepicker\n cdkConnectedOverlay\n [cdkConnectedOverlayOpen]=\"showDatepicker\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'backdrop'\"\n (backdropClick)=\"hidePopup()\"\n >\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n />\n </div>\n </div>\n </ng-template>\n </span>\n</ng-container>\n\n<ng-template #withoutCdkOverlay>\n <div class=\"legacy\" [class.forLink]=\"renderingStyle === 'LINK'\">\n <div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n <span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [lxMarkInvalid]=\"markInvalid\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n *ngIf=\"showDatepicker\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n />\n </div>\n </div>\n </span>\n </div>\n</ng-template>\n", styles: [".backdrop{background-color:transparent}.datepickerContainer{z-index:700}.wrapper .forLink .popup{top:15px}.dateControl,.calendar{position:relative}.popup{position:relative;left:0;z-index:700;border-radius:3px}.popup ::ng-deep .text-info{color:#2a303d}.popup ::ng-deep .text-muted{color:#99a5bb}.popup ::ng-deep .btn.active,.popup ::ng-deep .btn.active .text-info{color:#fff}.popup ::ng-deep .well{margin:0;border:1px solid #2a303d}:host-context(.input-group) .datepickerContainer{top:100%}.legacy .backdrop{position:fixed;z-index:2;inset:0}.legacy .datepickerContainer{position:absolute}.legacy.forLink{display:inline-block}.datepickerContainer datepicker{display:block;border-radius:4px;background-color:#fff;box-shadow:0 2px 8px #22364940;width:290px;z-index:700;padding:0 16px 16px;margin-top:4px}datepicker ::ng-deep .well{margin-bottom:0;border:none!important;background:none;box-shadow:none;padding:12px 0 0}datepicker ::ng-deep .btn{border:none!important;font-size:14px}datepicker ::ng-deep .btn.pull-left{font-size:0}datepicker ::ng-deep .btn.pull-left:after{color:#0070f2;font-family:\"Font Awesome 5 Pro\";font-weight:var(--lxFontBlack, 900);content:\"\\f104\";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:14px}datepicker ::ng-deep .btn.pull-right{font-size:0}datepicker ::ng-deep .btn.pull-right:after{color:#0070f2;font-family:\"Font Awesome 5 Pro\";font-weight:var(--lxFontBlack, 900);content:\"\\f105\";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:14px}datepicker ::ng-deep table tr:first-child th{padding-bottom:12px}datepicker ::ng-deep table tr:first-child th .btn{color:#0070f2!important}datepicker ::ng-deep [role=gridcell] .btn-default{border:solid 2px transparent!important;border-radius:8px;padding:8px 6px}datepicker ::ng-deep [role=gridcell] .btn-default:focus,datepicker ::ng-deep [role=gridcell] .btn-default.focus{outline-offset:0}datepicker ::ng-deep [role=gridcell] .btn-default:hover{background-color:#fff;border:#0070f2 2px solid!important;border-radius:8px}datepicker ::ng-deep .btn-default.active{background:none;box-shadow:none;color:#fff;border:solid 2px #0070f2!important;background-color:#0070f2!important;border-radius:8px}datepicker ::ng-deep .btn-default.active .text-muted,datepicker ::ng-deep .btn-default.active .text-primary,datepicker ::ng-deep .btn-default.active .text-info{color:inherit}datepicker ::ng-deep tr td:first-child{padding:0 6px;color:#556b82;font-size:var(--lxFontSmallSize, 12px)}datepicker ::ng-deep th small b{font-weight:400;color:#556b82;font-size:var(--lxFontSmallSize, 12px)}datepicker ::ng-deep table{border-spacing:1px;border-collapse:separate}\n"] }]
276
276
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
277
277
  type: Inject,
278
278
  args: [DATE_FORMATS]
@@ -352,4 +352,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
352
352
  type: ContentChild,
353
353
  args: ['dateStringTemplate', { read: TemplateRef, static: true }]
354
354
  }] } });
355
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxRQUFRLEVBQ1IsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBaUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwSSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5QyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQXVCLE1BQU0sb0NBQW9DLENBQUM7QUFDdkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDckYs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S0FBSztnQkFFVSxlQUFlO3NCQUE5QixLQUFLO2dCQUVVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBRVUsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRVUsU0FBUztzQkFBeEIsS0FBSztnQkFFVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBRVUsbUJBQW1CO3NCQUFsQyxLQUFLO2dCQUVVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBRVUsUUFBUTtzQkFBdkIsS0FBSztnQkFFVSxZQUFZO3NCQUEzQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFHSSxjQUFjO3NCQUF2QixNQUFNO2dCQUVHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFRyxVQUFVO3NCQUFuQixNQUFNO2dCQUdvQixlQUFlLE1BR3RCLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFFdUQsa0JBQWtCO3NCQUExRixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrQ29ubmVjdGVkT3ZlcmxheSwgQ2RrT3ZlcmxheU9yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgZm9yd2FyZFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZm9ybWF0LCBzdGFydE9mRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29yZS11aS9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERBVEVfRk5fTE9DQUxFLCBEQVRFX0ZPUk1BVFMsIERhdGVGb3JtYXRzUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9jb3JlLXVpL2NvcmUtdWkuY29uc3RhbnRzJztcbmltcG9ydCB7IEF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUtdWkvZGlyZWN0aXZlcy9hdXRvZm9jdXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEN1c3RvbURhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS11aS9waXBlcy9jdXN0b20tZGF0ZS5waXBlJztcbmltcG9ydCB7IGNvbnZlcnREYXRlVG9Mb2NhbGVEYXRlU3RyaW5nLCBjcmVhdGVEYXRlRnJvbURhdGVTdHJpbmcsIGlzVmFsaWREYXRlU3RyaW5nIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RhdGUtaGVscGVycyc7XG5pbXBvcnQgeyBPYnNlcnZlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL29ic2VydmUnO1xuaW1wb3J0IHsgTWFya0ludmFsaWREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL21hcmstaW52YWxpZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGF0ZUZvcm1hdHRlciB9IGZyb20gJy4uL2RhdGUtcGlja2VyLXVpL2RhdGUtZm9ybWF0dGVyJztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlLXBpY2tlci11aS9kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5cbi8vIElucHV0ICsgbmcyLWJvb3RzdHJhcCBkYXRlcGlja2VyXG5leHBvcnQgdHlwZSBEYXRlSW5wdXRSZW5kZXJpbmdTdHlsZSA9ICdJTlBVVCcgfCAnTElOSycgfCAnQlVUVE9OJztcblxuY29uc3QgREVGQVVMVF9NSU5fREFURSA9IG5ldyBEYXRlKCcwMDAwLTAxLTAxJyk7XG5jb25zdCBERUZBVUxUX01BWF9EQVRFID0gbmV3IERhdGUoJzk5OTktMTItMzEnKTtcblxuLyoqXG4gKiBUaGlzIGlzIGEgZGF0ZSBpbnB1dCBjb21wb25lbnQgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWxlY3QgYSBkYXRlLlxuICpcbiAqICMjIFVzYWdlXG4gKlxuICogMS4gSW1wb3J0IHRoZSBgTHhGb3Jtc1VpTW9kdWxlYCBtb2R1bGUgZnJvbSBgQGxlYW5peC9jb21wb25lbnRzYCBpbiB5b3VyIG1vZHVsZSB3aGVyZSB5b3Ugd2FudCB0byB1c2UgdGhlIGNvbXBvbmVudC5cbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgTHhGb3Jtc1VpTW9kdWxlIH0gZnJvbSAnQGxlYW5peC9jb21wb25lbnRzJztcbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1kYXRlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICdkYXRlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2RhdGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZUlucHV0Q29tcG9uZW50KSwgbXVsdGk6IHRydWUgfSxcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVJbnB1dENvbXBvbmVudCksIG11bHRpOiB0cnVlIH1cbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBOZ0lmLFxuICAgIENka092ZXJsYXlPcmlnaW4sXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQXV0b2ZvY3VzRGlyZWN0aXZlLFxuICAgIENka0Nvbm5lY3RlZE92ZXJsYXksXG4gICAgRGF0ZVBpY2tlckNvbXBvbmVudCxcbiAgICBDdXN0b21EYXRlUGlwZSxcbiAgICBNYXJrSW52YWxpZERpcmVjdGl2ZSxcbiAgICBCdXR0b25Db21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgLyoqIFRoZSBpbml0aWFsIGRhdGUgdmFsdWUgZm9yIHRoZSBkYXRlIGlucHV0IGZpZWxkLiBUaGlzIGlzIHVzZWQgZm9yIGBuZ01vZGVsYCBhbmQgYGZvcm1Db250cm9sYC4gKi9cbiAgQElucHV0KCkgcHVibGljIGRhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcbiAgLyoqIFNlY29uZGFyeSwgYWx0ZXJuYXRpdmUgaW5wdXQgd2l0aCBkYXRlIHN0cmluZyAqL1xuICBASW5wdXQoKSBwdWJsaWMgZGF0ZVN0cmluZzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIC8qKiBEZXRlcm1pbmUgd2hldGhlciBmb3JtR3JvdXAncyB2YWx1ZSBhY2Nlc3NvciBpcyBhY2Nlc3NpbmcgdGhlIHNlbGVjdGVkIElEcyBvciB0aGUgc2VsZWN0ZWQgb2JqZWN0cyAqL1xuICBASW5wdXQoKSBwdWJsaWMgdmFsdWVBY2Nlc3NvcjogJ2RhdGUnIHwgJ2RhdGVTdHJpbmcnID0gJ2RhdGUnO1xuICAvKiogSUQgdG8gYmUgc2V0IG9uIGlucHV0IHRvIGNvcnJlc3BvbmQgdG8gb3V0c2lkZSBsYWJlbCAqL1xuICBASW5wdXQoKSBwdWJsaWMgaW5wdXRJZDogc3RyaW5nID0gJyc7XG4gIC8qKiBUaGUgcmVuZGVyaW5nIHN0eWxlIG9mIHRoZSBkYXRlIGlucHV0IGNvbXBvbmVudC4gQ2FuIGJlIG9uZSBvZiBcIkxJTktcIiwgXCJCVVRUT05cIiwgb3IgXCJJTlBVVFwiLiAqL1xuICBASW5wdXQoKSBwdWJsaWMgcmVuZGVyaW5nU3R5bGU6IERhdGVJbnB1dFJlbmRlcmluZ1N0eWxlID0gJ0lOUFVUJztcbiAgLyoqIFRoZSBwbGFjZWhvbGRlciB0ZXh0IHRvIHNob3cgaW4gdGhlIGRhdGUgaW5wdXQgZmllbGQgd2hlbiB0aGVyZSBpcyBubyBkYXRlIHNlbGVjdGVkICovXG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ3l5eXktbW0tZGQnO1xuICAvKiogRGVhY3RpdmF0ZSB0byB1c2Ugb2xkIGRhdGUgcGlja2VyICovXG4gIEBJbnB1dCgpIHB1YmxpYyBjZGsgPSB0cnVlO1xuICAvKiogU2V0cyBkYXRlcGlja2VyIG1vZGUsIHN1cHBvcnRzOiBkYXksIG1vbnRoLCB5ZWFyICovXG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRlcGlja2VyTW9kZTogc3RyaW5nID0gJ2RheSc7XG4gIC8qKiBEZWZhdWx0IGRhdGUgdG8gc2hvdyBpZiBuZy1tb2RlbCB2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkLiBEZWZhdWx0IGRhdGUgdG8gc2hvdyBpZiBuZy1tb2RlbCB2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkICovXG4gIEBJbnB1dCgpIGluaXREYXRlU3RyaW5nITogc3RyaW5nO1xuICAvKiogT2xkZXN0IHNlbGVjdGFibGUgZGF0ZSAqL1xuICBASW5wdXQoKSBwdWJsaWMgbWluRGF0ZSA9IERFRkFVTFRfTUlOX0RBVEU7XG4gIC8qKiBMYXRlc3Qgc2VsZWN0YWJsZSBkYXRlICovXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhEYXRlID0gREVGQVVMVF9NQVhfREFURTtcbiAgLyoqIFNldCBsb3dlciBkYXRlcGlja2VyIG1vZGUsIHN1cHBvcnRzOiBkYXksIG1vbnRoLCB5ZWFyICovXG4gIEBJbnB1dCgpIHB1YmxpYyBtaW5Nb2RlOiBzdHJpbmcgPSAnZGF5JztcbiAgLyoqIFNldHMgdXBwZXIgZGF0ZXBpY2tlciBtb2RlLCBzdXBwb3J0czogZGF5LCBtb250aCwgeWVhciAqL1xuICBASW5wdXQoKSBwdWJsaWMgbWF4TW9kZTogc3RyaW5nID0gJ3llYXInO1xuICAvKiogSWYgZmFsc2Ugd2VlayBudW1iZXJzIHdpbGwgYmUgaGlkZGVuICovXG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93V2Vla3M6IGJvb2xlYW4gPSB0cnVlO1xuICAvKiogRm9ybWF0IG9mIGRheSBpbiBtb250aCAqL1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybWF0RGF5OiBzdHJpbmcgPSAnREQnO1xuICAvKiogRm9ybWF0IG9mIG1vbnRoIGluIHllYXIgKi9cbiAgQElucHV0KCkgcHVibGljIGZvcm1hdE1vbnRoOiBzdHJpbmcgPSAnTU1NTSc7XG4gIC8qKiBGb3JtYXQgb2YgeWVhciBpbiB5ZWFyIHJhbmdlICovXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXRZZWFyOiBzdHJpbmcgPSAnWVlZWSc7XG4gIC8qKiBGb3JtYXQgb2YgZGF5IGluIHdlZWsgaGVhZGVyICovXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXREYXlIZWFkZXI6IHN0cmluZyA9ICdkZCc7XG4gIC8qKiBGb3JtYXQgb2YgdGl0bGUgd2hlbiBzZWxlY3RpbmcgZGF5ICovXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXREYXlUaXRsZTogc3RyaW5nID0gJ01NTU0gWVlZWSc7XG4gIC8qKiBGb3JtYXQgb2YgdGl0bGUgd2hlbiBzZWxlY3RpbmcgbW9udGggKi9cbiAgQElucHV0KCkgcHVibGljIGZvcm1hdE1vbnRoVGl0bGU6IHN0cmluZyA9ICdZWVlZJztcbiAgLyoqIFN0YXJ0aW5nIGRheSBvZiB0aGUgd2VlayBmcm9tIDAtNiAoMD1TdW5kYXksIC4uLiwgNj1TYXR1cmRheSkgcHVibGljICovXG4gIEBJbnB1dCgpIHN0YXJ0aW5nRGF5OiBudW1iZXIgPSAwO1xuICAvKiogTnVtYmVyIG9mIHllYXJzIGRpc3BsYXllZCBpbiB5ZWFyIHNlbGVjdGlvbiAqL1xuICBASW5wdXQoKSBwdWJsaWMgeWVhclJhbmdlOiBudW1iZXIgPSAyMDtcbiAgLyoqIElmIHRydWUgb25seSBkYXRlcyBmcm9tIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIG1vbnRoIHdpbGwgYmUgc2hvd24gKi9cbiAgQElucHV0KCkgcHVibGljIG9ubHlDdXJyZW50TW9udGg6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIElmIHRydWUgc2hvcnRjdXRgcyBldmVudCBwcm9wYWdhdGlvbiB3aWxsIGJlIGRpc2FibGVkICovXG4gIEBJbnB1dCgpIHB1YmxpYyBzaG9ydGN1dFByb3BhZ2F0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBBcnJheSBvZiBjdXN0b20gY3NzIGNsYXNzZXMgdG8gYmUgYXBwbGllZCB0byAqL1xuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tQ2xhc3M6IHsgZGF0ZTogRGF0ZTsgbW9kZTogc3RyaW5nOyBjbGF6ejogc3RyaW5nIH1bXSA9IFtdO1xuICAvKiogSWYgdHJ1ZSwgdGhlIGRhdGUgaW5wdXQgZmllbGQgd2lsbCBiZSBkaXNhYmxlZC4gKi9cbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkITogYm9vbGVhbjtcbiAgLyoqIEFycmF5IG9mIGRpc2FibGVkIGRhdGVzIGlmIG1vZGUgaXMgZGF5LCBvciB5ZWFycywgZXRjLiAqL1xuICBASW5wdXQoKSBwdWJsaWMgZGF0ZURpc2FibGVkOiB7IGRhdGU6IERhdGU7IG1vZGU6IHN0cmluZyB9W10gPSBbXTtcbiAgLyoqIElmIHRydWUsIHRoZSBkYXRlIGlucHV0IGZpZWxkIHdpbGwgYmUgYXV0by1mb2N1c2VkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBmaXJzdCByZW5kZXJlZC4gKi9cbiAgQElucHV0KCkgYXV0b0ZvY3VzID0gZmFsc2U7XG4gIC8qKiBJZiB0cnVlLCB0aGUgZGF0ZSBpbnB1dCBmaWVsZCB3aWxsIGJlIG1hcmtlZCBhcyBpbnZhbGlkLiAqL1xuICBASW5wdXQoKSBtYXJrSW52YWxpZCA9IGZhbHNlO1xuXG4gIC8qKiBUcmlnZ2VyZWQgd2hlbmV2ZXIgdGhlIGRhdGVwaWNrZXIgaXMgY2xvc2VkICovXG4gIEBPdXRwdXQoKSBjbG9zZURhdGVJbnB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqIFRyaWdnZXJlZCB3aGVuZXZlciB0aGUgZGF0ZSBjaGFuZ2VzICovXG4gIEBPdXRwdXQoKSBkYXRlU3RyaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuICAvKiogVHJpZ2dlcmVkIHdoZW5ldmVyIHRoZSBkYXRlIGNoYW5nZXMuICovXG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTtcblxuICAvKiogQGludGVybmFsICovXG4gIEBPYnNlcnZlKCdpbml0RGF0ZVN0cmluZycpIGluaXREYXRlU3RyaW5nJCE6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAvKiogQGludGVybmFsICovXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICAvKiogQGludGVybmFsICovXG4gIEBDb250ZW50Q2hpbGQoJ2RhdGVTdHJpbmdUZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KSBkYXRlU3RyaW5nVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgc2hvd0RhdGVwaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBkYXRlRm9ybWF0OiBzdHJpbmc7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgaW5pdERhdGUhOiBEYXRlO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcmVhZG9ubHkgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBmb3JtQ29udHJvbCE6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBoYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiogQGludGVybmFsICovXG4gIG9uVG91Y2hlZCE6ICgpID0+IHZvaWQ7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm9wYWdhdGVDaGFuZ2UgPSAoX2RhdGU6IERhdGUgfCBudWxsKSA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KERBVEVfRk9STUFUUykgcHJpdmF0ZSBkYXRlRm9ybWF0c1Byb3ZpZGVyOiBEYXRlRm9ybWF0c1Byb3ZpZGVyLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFURV9GTl9MT0NBTEUpIHByaXZhdGUgZ2V0RGF0ZUZuTG9jYWxlPzogRnVuY3Rpb25cbiAgKSB7XG4gICAgdGhpcy5kYXRlRm9ybWF0ID0gdGhpcy5kYXRlRm9ybWF0c1Byb3ZpZGVyLmdldERhdGVGb3JtYXQoKTtcbiAgICAvLyBQYXRjaCBEYXRlUGlja2VyIHVudGlsIGh0dHBzOi8vZ2l0aHViLmNvbS92YWxvci1zb2Z0d2FyZS9uZzItYm9vdHN0cmFwL2lzc3Vlcy8xMzg1IGlzIHJlc29sdmVkXG4gICAgY29uc3Qgd3JpdGVWYWx1ZSA9IERhdGVQaWNrZXJDb21wb25lbnQucHJvdG90eXBlLndyaXRlVmFsdWU7XG4gICAgRGF0ZVBpY2tlckNvbXBvbmVudC5wcm90b3R5cGUud3JpdGVWYWx1ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB3cml0ZVZhbHVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyBhcyBhbnkpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBTb21laG93IGRhdGVwaWNrZXIgZG9lcyB1c2UgYSBzZXBhcmF0ZSBtb21lbnQgaW5zdGFuY2UgdGhhbiB3ZSBkby4gVGhhdCBvbmUgcnVucyBvbiBsb2NhbGUgZW4gYnkgZGVmYXVsdC5cbiAgICAvLyBTbyB3ZSBwYXRjaCB0aGUgZm9ybWF0IGZ1bmN0aW9uIGhlcmUgdG8gdXNlIG91ciBtb21lbnQgaW5zdGFuY2UuXG4gICAgLy8gTWF5YmUgaXQgd2lsbCBiZSBmaXhlZCB3aXRoOiBodHRwczovL2dpdGh1Yi5jb20vdmFsb3Itc29mdHdhcmUvbmd4LWJvb3RzdHJhcC9pc3N1ZXMvNDU1XG4gICAgY29uc3QgbG9jYWxlID0gdGhpcy5nZXREYXRlRm5Mb2NhbGUgPyB0aGlzLmdldERhdGVGbkxvY2FsZSgpIDogbnVsbDtcbiAgICBEYXRlRm9ybWF0dGVyLnByb3RvdHlwZS5mb3JtYXQgPSBmdW5jdGlvbiAoZGF0ZTogRGF0ZSwgZjogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gZm9ybWF0KGRhdGUsIGYsIHsgbG9jYWxlIH0pO1xuICAgIH07XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdERhdGVTdHJpbmckLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgoZGF0ZSkgPT4ge1xuICAgICAgdGhpcy5pbml0RGF0ZSA9IGNyZWF0ZURhdGVGcm9tRGF0ZVN0cmluZyhkYXRlKSA/PyBzdGFydE9mRGF5KG5ldyBEYXRlKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydkYXRlJ10pIHtcbiAgICAgIHRoaXMuZGF0ZVN0cmluZyA9IHRoaXMuZGF0ZSA/IGNvbnZlcnREYXRlVG9Mb2NhbGVEYXRlU3RyaW5nKHRoaXMuZGF0ZSkgOiBudWxsO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlc1snZGF0ZVN0cmluZyddKSB7XG4gICAgICB0aGlzLm9uRGF0ZVN0cmluZ0NoYW5nZSh0aGlzLmRhdGVTdHJpbmcsIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgZm9jdXMoKSB7XG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBzaG93UG9wdXAoKSB7XG4gICAgdGhpcy5zaG93RGF0ZXBpY2tlciA9IHRydWU7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyB0b2dnbGVQb3B1cCgpIHtcbiAgICB0aGlzLnNob3dEYXRlcGlja2VyID0gIXRoaXMuc2hvd0RhdGVwaWNrZXI7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBoaWRlUG9wdXAoKSB7XG4gICAgaWYgKHRoaXMuc2hvd0RhdGVwaWNrZXIpIHtcbiAgICAgIHRoaXMuc2hvd0RhdGVwaWNrZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2xvc2VEYXRlSW5wdXQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25EYXRlU3RyaW5nQ2hhbmdlKG5ld0RhdGVTdHJpbmc6IHN0cmluZyB8IG51bGwsIGVtaXQ6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgaWYgKGlzVmFsaWREYXRlU3RyaW5nKG5ld0RhdGVTdHJpbmcpKSB7XG4gICAgICBjb25zdCBkYXRlID0gY3JlYXRlRGF0ZUZyb21EYXRlU3RyaW5nKG5ld0RhdGVTdHJpbmcpO1xuICAgICAgdGhpcy51cGRhdGVEYXRlKGRhdGUsIGVtaXQpO1xuICAgIH0gZWxzZSBpZiAobmV3RGF0ZVN0cmluZyA9PT0gbnVsbCB8fCBuZXdEYXRlU3RyaW5nID09PSAnJykge1xuICAgICAgdGhpcy51cGRhdGVEYXRlKG51bGwsIGVtaXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc0Vycm9yID0gdHJ1ZTtcbiAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sKSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25TZWxlY3Rpb25Eb25lKG5ld0RhdGU6IERhdGUpIHtcbiAgICB0aGlzLnVwZGF0ZURhdGUobmV3RGF0ZSk7XG4gICAgdGhpcy5oaWRlUG9wdXAoKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25CbHVyKCkge1xuICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURhdGUoZGF0ZTogRGF0ZSB8IG51bGwsIGVtaXQ6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgdGhpcy5kYXRlID0gZGF0ZTtcbiAgICB0aGlzLmRhdGVTdHJpbmcgPSB0aGlzLmRhdGUgPyBjb252ZXJ0RGF0ZVRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmRhdGUpIDogJyc7XG4gICAgaWYgKGVtaXQpIHtcbiAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KGRhdGUpO1xuICAgICAgdGhpcy5kYXRlU3RyaW5nQ2hhbmdlLmVtaXQodGhpcy5kYXRlU3RyaW5nKTtcbiAgICB9XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UoZGF0ZSk7XG4gICAgdGhpcy5yZWNoZWNrRXJyb3JzKCk7XG4gIH1cblxuICBwcml2YXRlIHJlY2hlY2tFcnJvcnMoKSB7XG4gICAgdGhpcy5oYXNFcnJvciA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmZvcm1Db250cm9sKSB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV3JpdGUgYSBuZXcgdmFsdWUgdG8gdGhlIGVsZW1lbnQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgd3JpdGVWYWx1ZShuZXdEYXRlOiBEYXRlIHwgc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMudmFsdWVBY2Nlc3NvciA9PT0gJ2RhdGUnKSB7XG4gICAgICB0aGlzLmRhdGUgPSBuZXdEYXRlIGFzIERhdGU7XG4gICAgICB0aGlzLmRhdGVTdHJpbmcgPSBjb252ZXJ0RGF0ZVRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmRhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGVTdHJpbmcgPSBuZXdEYXRlIGFzIHN0cmluZztcbiAgICAgIHRoaXMub25EYXRlU3RyaW5nQ2hhbmdlKHRoaXMuZGF0ZVN0cmluZywgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHJlY2VpdmVzIGEgY2hhbmdlIGV2ZW50LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIGlmICh0aGlzLnZhbHVlQWNjZXNzb3IgPT09ICdkYXRlJykge1xuICAgICAgdGhpcy5kYXRlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZShmbik7XG4gICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlQWNjZXNzb3IgPT09ICdkYXRlU3RyaW5nJykge1xuICAgICAgdGhpcy5kYXRlU3RyaW5nQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZShmbik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGNvbnRyb2wgcmVjZWl2ZXMgYSB0b3VjaCBldmVudC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHZhbGlkYXRlKGM6IFVudHlwZWRGb3JtQ29udHJvbCkge1xuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBjO1xuICAgIHJldHVybiB0aGlzLmhhc0Vycm9yXG4gICAgICA/IHtcbiAgICAgICAgICBkYXRlRm9ybWF0RXJyb3I6IHtcbiAgICAgICAgICAgIGdpdmVuOiB0aGlzLmRhdGVTdHJpbmcsXG4gICAgICAgICAgICBmb3JtYXQ6ICd5eXl5LW1tLWRkJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgOiBudWxsO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY2RrOyBlbHNlIHdpdGhvdXRDZGtPdmVybGF5XCI+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJ3cmFwcGVyXCJcbiAgICBbY2xhc3MuZm9yTGlua109XCJyZW5kZXJpbmdTdHlsZSA9PT0gJ0xJTksnXCJcbiAgICBbY2xhc3MuaGFzLWVycm9yXT1cImhhc0Vycm9yXCJcbiAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgI29yaWdpbj1cImNka092ZXJsYXlPcmlnaW5cIlxuICA+XG4gICAgPCEtLSBUT0RPOiBUaGUgZGF0ZUlucHV0IGFuZCBkYXRlUGlja2VyIGNvZGUgaXN0IGR1cGxpY2F0ZWQgZm9yIGNkayBhbmQgd2l0aG91dENkSyB1c2UgdG8gc29sdmUgYSBwbGFjaW5nIHByb2JsZW0gb2YgdGhlXG4gICAgICAgbmd4LWJvb3RzdHJhcCBkYXRlcGlja2VyIGNvbXBvbmVudC4gV3JpdGluZyBpdCBpbiBhIG5nLWNvbnRhaW5lciBsZWQgdG8gYW4gdW5leHBlY3RlZCBhbmNob3JpbmcgYmVoYXZpb3Igb2YgdGhlIGRhdGVQaWNrZXIgTk9UIGRpcmVjdGx5XG4gICAgICBiZWxvdyB0aGUgZGF0ZUlucHV0IGVsZW1lbnQgLS0+XG4gICAgQHN3aXRjaCAocmVuZGVyaW5nU3R5bGUpIHtcbiAgICAgIEBjYXNlICgnQlVUVE9OJykge1xuICAgICAgICA8YnV0dG9uIGx4LWJ1dHRvbiAoY2xpY2spPVwic2hvd1BvcHVwKClcIiBseEF1dG9jbG9zZSAoYXV0b2Nsb3NlKT1cImhpZGVQb3B1cCgpXCIgc2l6ZT1cImxhcmdlXCI+XG4gICAgICAgICAgQGlmIChkYXRlU3RyaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlU3RyaW5nVGVtcGxhdGVcIiAvPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAge3sgZGF0ZVN0cmluZyA/PyBwbGFjZWhvbGRlciB9fVxuICAgICAgICAgIH1cbiAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1hbmdsZS1kb3duIGx4LW1hcmdpbi1sZWZ0XCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBjYXNlICgnSU5QVVQnKSB7XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICNpbnB1dFxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGRhdGVDb250cm9sXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCJcbiAgICAgICAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgICAgICAgW2x4QXV0b2ZvY3VzXT1cImF1dG9Gb2N1c1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRlU3RyaW5nXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtseE1hcmtJbnZhbGlkXT1cIm1hcmtJbnZhbGlkXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkRhdGVTdHJpbmdDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgKGZvY3VzKT1cInNob3dQb3B1cCgpXCJcbiAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiaGlkZVBvcHVwKClcIlxuICAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJoaWRlUG9wdXAoKVwiXG4gICAgICAgICAgKGtleWRvd24udGFiKT1cImhpZGVQb3B1cCgpXCJcbiAgICAgICAgICAoa2V5ZG93bi5zaGlmdC50YWIpPVwiaGlkZVBvcHVwKClcIlxuICAgICAgICAgIFtjbGFzcy50ZXh0LWRhbmdlcl09XCJoYXNFcnJvclwiXG4gICAgICAgIC8+XG4gICAgICB9XG4gICAgICBAY2FzZSAoJ0xJTksnKSB7XG4gICAgICAgIDxhIGNsYXNzPVwiZGF0ZUNvbnRyb2xcIiAoY2xpY2spPVwidG9nZ2xlUG9wdXAoKVwiPnt7IGRhdGUgfCBseERhdGU6IGRhdGVGb3JtYXQgfX08L2E+XG4gICAgICB9XG4gICAgfVxuXG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAjY2RrRGF0ZXBpY2tlclxuICAgICAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cInNob3dEYXRlcGlja2VyXCJcbiAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cIm9yaWdpblwiXG4gICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wXT1cInRydWVcIlxuICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlCYWNrZHJvcENsYXNzXT1cIidiYWNrZHJvcCdcIlxuICAgICAgKGJhY2tkcm9wQ2xpY2spPVwiaGlkZVBvcHVwKClcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyQ29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhclwiPlxuICAgICAgICAgIDxkYXRlcGlja2VyXG4gICAgICAgICAgICBjbGFzcz1cInBvcHVwXCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25Eb25lKT1cIm9uU2VsZWN0aW9uRG9uZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImRhdGVcIlxuICAgICAgICAgICAgW2RhdGVwaWNrZXJNb2RlXT1cImRhdGVwaWNrZXJNb2RlXCJcbiAgICAgICAgICAgIFtpbml0RGF0ZV09XCJpbml0RGF0ZVwiXG4gICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgICAgICAgW21pbk1vZGVdPVwibWluTW9kZVwiXG4gICAgICAgICAgICBbbWF4TW9kZV09XCJtYXhNb2RlXCJcbiAgICAgICAgICAgIFtzaG93V2Vla3NdPVwic2hvd1dlZWtzXCJcbiAgICAgICAgICAgIFtmb3JtYXREYXldPVwiZm9ybWF0RGF5XCJcbiAgICAgICAgICAgIFtmb3JtYXRNb250aF09XCJmb3JtYXRNb250aFwiXG4gICAgICAgICAgICBbZm9ybWF0WWVhcl09XCJmb3JtYXRZZWFyXCJcbiAgICAgICAgICAgIFtmb3JtYXREYXlIZWFkZXJdPVwiZm9ybWF0RGF5SGVhZGVyXCJcbiAgICAgICAgICAgIFtmb3JtYXREYXlUaXRsZV09XCJmb3JtYXREYXlUaXRsZVwiXG4gICAgICAgICAgICBbZm9ybWF0TW9udGhUaXRsZV09XCJmb3JtYXRNb250aFRpdGxlXCJcbiAgICAgICAgICAgIFtzdGFydGluZ0RheV09XCJzdGFydGluZ0RheVwiXG4gICAgICAgICAgICBbeWVhclJhbmdlXT1cInllYXJSYW5nZVwiXG4gICAgICAgICAgICBbb25seUN1cnJlbnRNb250aF09XCJvbmx5Q3VycmVudE1vbnRoXCJcbiAgICAgICAgICAgIFtzaG9ydGN1dFByb3BhZ2F0aW9uXT1cInNob3J0Y3V0UHJvcGFnYXRpb25cIlxuICAgICAgICAgICAgW2N1c3RvbUNsYXNzXT1cImN1c3RvbUNsYXNzXCJcbiAgICAgICAgICAgIFtkYXRlRGlzYWJsZWRdPVwiZGF0ZURpc2FibGVkXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvc3Bhbj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3dpdGhvdXRDZGtPdmVybGF5PlxuICA8ZGl2IGNsYXNzPVwibGVnYWN5XCIgW2NsYXNzLmZvckxpbmtdPVwicmVuZGVyaW5nU3R5bGUgPT09ICdMSU5LJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJiYWNrZHJvcFwiICpuZ0lmPVwic2hvd0RhdGVwaWNrZXJcIiAoY2xpY2spPVwiaGlkZVBvcHVwKClcIj48L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cIndyYXBwZXJcIiBbY2xhc3MuZm9yTGlua109XCJyZW5kZXJpbmdTdHlsZSA9PT0gJ0xJTksnXCIgW2NsYXNzLmhhcy1lcnJvcl09XCJoYXNFcnJvclwiPlxuICAgICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBkYXRlQ29udHJvbFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIlxuICAgICAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgICAgIFtseEF1dG9mb2N1c109XCJhdXRvRm9jdXNcIlxuICAgICAgICBbbHhNYXJrSW52YWxpZF09XCJtYXJrSW52YWxpZFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiZGF0ZVN0cmluZ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRGF0ZVN0cmluZ0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzKT1cInNob3dQb3B1cCgpXCJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJoaWRlUG9wdXAoKVwiXG4gICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJoaWRlUG9wdXAoKVwiXG4gICAgICAgIChrZXlkb3duLnRhYik9XCJoaWRlUG9wdXAoKVwiXG4gICAgICAgIChrZXlkb3duLnNoaWZ0LnRhYik9XCJoaWRlUG9wdXAoKVwiXG4gICAgICAgIFtjbGFzcy50ZXh0LWRhbmdlcl09XCJoYXNFcnJvclwiXG4gICAgICAgICpuZ0lmPVwicmVuZGVyaW5nU3R5bGUgPT09ICdJTlBVVCdcIlxuICAgICAgLz5cbiAgICAgIDxhIGNsYXNzPVwiZGF0ZUNvbnRyb2xcIiAoY2xpY2spPVwidG9nZ2xlUG9wdXAoKVwiICpuZ0lmPVwicmVuZGVyaW5nU3R5bGUgPT09ICdMSU5LJ1wiPnt7IGRhdGUgfCBseERhdGU6IGRhdGVGb3JtYXQgfX08L2E+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlckNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXJcIj5cbiAgICAgICAgICA8ZGF0ZXBpY2tlclxuICAgICAgICAgICAgY2xhc3M9XCJwb3B1cFwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dEYXRlcGlja2VyXCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25Eb25lKT1cIm9uU2VsZWN0aW9uRG9uZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImRhdGVcIlxuICAgICAgICAgICAgW2RhdGVwaWNrZXJNb2RlXT1cImRhdGVwaWNrZXJNb2RlXCJcbiAgICAgICAgICAgIFtpbml0RGF0ZV09XCJpbml0RGF0ZVwiXG4gICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgICAgICAgW21pbk1vZGVdPVwibWluTW9kZVwiXG4gICAgICAgICAgICBbbWF4TW9kZV09XCJtYXhNb2RlXCJcbiAgICAgICAgICAgIFtzaG93V2Vla3NdPVwic2hvd1dlZWtzXCJcbiAgICAgICAgICAgIFtmb3JtYXREYXldPVwiZm9ybWF0RGF5XCJcbiAgICAgICAgICAgIFtmb3JtYXRNb250aF09XCJmb3JtYXRNb250aFwiXG4gICAgICAgICAgICBbZm9ybWF0WWVhcl09XCJmb3JtYXRZZWFyXCJcbiAgICAgICAgICAgIFtmb3JtYXREYXlIZWFkZXJdPVwiZm9ybWF0RGF5SGVhZGVyXCJcbiAgICAgICAgICAgIFtmb3JtYXREYXlUaXRsZV09XCJmb3JtYXREYXlUaXRsZVwiXG4gICAgICAgICAgICBbZm9ybWF0TW9udGhUaXRsZV09XCJmb3JtYXRNb250aFRpdGxlXCJcbiAgICAgICAgICAgIFtzdGFydGluZ0RheV09XCJzdGFydGluZ0RheVwiXG4gICAgICAgICAgICBbeWVhclJhbmdlXT1cInllYXJSYW5nZVwiXG4gICAgICAgICAgICBbb25seUN1cnJlbnRNb250aF09XCJvbmx5Q3VycmVudE1vbnRoXCJcbiAgICAgICAgICAgIFtzaG9ydGN1dFByb3BhZ2F0aW9uXT1cInNob3J0Y3V0UHJvcGFnYXRpb25cIlxuICAgICAgICAgICAgW2N1c3RvbUNsYXNzXT1cImN1c3RvbUNsYXNzXCJcbiAgICAgICAgICAgIFtkYXRlRGlzYWJsZWRdPVwiZGF0ZURpc2FibGVkXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
355
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxRQUFRLEVBQ1IsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBaUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwSSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5QyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQXVCLE1BQU0sb0NBQW9DLENBQUM7QUFDdkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDckYs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S0FBSztnQkFFVSxlQUFlO3NCQUE5QixLQUFLO2dCQUVVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBRVUsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRVUsU0FBUztzQkFBeEIsS0FBSztnQkFFVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBRVUsbUJBQW1CO3NCQUFsQyxLQUFLO2dCQUVVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBRVUsUUFBUTtzQkFBdkIsS0FBSztnQkFFVSxZQUFZO3NCQUEzQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFHSSxjQUFjO3NCQUF2QixNQUFNO2dCQUVHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFRyxVQUFVO3NCQUFuQixNQUFNO2dCQUdvQixlQUFlLE1BR3RCLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFFdUQsa0JBQWtCO3NCQUExRixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrQ29ubmVjdGVkT3ZlcmxheSwgQ2RrT3ZlcmxheU9yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgZm9yd2FyZFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZm9ybWF0LCBzdGFydE9mRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29yZS11aS9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERBVEVfRk5fTE9DQUxFLCBEQVRFX0ZPUk1BVFMsIERhdGVGb3JtYXRzUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9jb3JlLXVpL2NvcmUtdWkuY29uc3RhbnRzJztcbmltcG9ydCB7IEF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUtdWkvZGlyZWN0aXZlcy9hdXRvZm9jdXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEN1c3RvbURhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS11aS9waXBlcy9jdXN0b20tZGF0ZS5waXBlJztcbmltcG9ydCB7IGNvbnZlcnREYXRlVG9Mb2NhbGVEYXRlU3RyaW5nLCBjcmVhdGVEYXRlRnJvbURhdGVTdHJpbmcsIGlzVmFsaWREYXRlU3RyaW5nIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RhdGUtaGVscGVycyc7XG5pbXBvcnQgeyBPYnNlcnZlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL29ic2VydmUnO1xuaW1wb3J0IHsgTWFya0ludmFsaWREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL21hcmstaW52YWxpZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGF0ZUZvcm1hdHRlciB9IGZyb20gJy4uL2RhdGUtcGlja2VyLXVpL2RhdGUtZm9ybWF0dGVyJztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlLXBpY2tlci11aS9kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5cbi8vIElucHV0ICsgbmcyLWJvb3RzdHJhcCBkYXRlcGlja2VyXG5leHBvcnQgdHlwZSBEYXRlSW5wdXRSZW5kZXJpbmdTdHlsZSA9ICdJTlBVVCcgfCAnTElOSycgfCAnQlVUVE9OJztcblxuY29uc3QgREVGQVVMVF9NSU5fREFURSA9IG5ldyBEYXRlKCcwMDAwLTAxLTAxJyk7XG5jb25zdCBERUZBVUxUX01BWF9EQVRFID0gbmV3IERhdGUoJzk5OTktMTItMzEnKTtcblxuLyoqXG4gKiBUaGlzIGlzIGEgZGF0ZSBpbnB1dCBjb21wb25lbnQgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWxlY3QgYSBkYXRlLlxuICpcbiAqICMjIFVzYWdlXG4gKlxuICogMS4gSW1wb3J0IHRoZSBgTHhGb3Jtc1VpTW9kdWxlYCBtb2R1bGUgZnJvbSBgQGxlYW5peC9jb21wb25lbnRzYCBpbiB5b3VyIG1vZHVsZSB3aGVyZSB5b3Ugd2FudCB0byB1c2UgdGhlIGNvbXBvbmVudC5cbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgTHhGb3Jtc1VpTW9kdWxlIH0gZnJvbSAnQGxlYW5peC9jb21wb25lbnRzJztcbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1kYXRlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICdkYXRlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2RhdGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZUlucHV0Q29tcG9uZW50KSwgbXVsdGk6IHRydWUgfSxcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVJbnB1dENvbXBvbmVudCksIG11bHRpOiB0cnVlIH1cbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBOZ0lmLFxuICAgIENka092ZXJsYXlPcmlnaW4sXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQXV0b2ZvY3VzRGlyZWN0aXZlLFxuICAgIENka0Nvbm5lY3RlZE92ZXJsYXksXG4gICAgRGF0ZVBpY2tlckNvbXBvbmVudCxcbiAgICBDdXN0b21EYXRlUGlwZSxcbiAgICBNYXJrSW52YWxpZERpcmVjdGl2ZSxcbiAgICBCdXR0b25Db21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgLyoqIFRoZSBpbml0aWFsIGRhdGUgdmFsdWUgZm9yIHRoZSBkYXRlIGlucHV0IGZpZWxkLiBUaGlzIGlzIHVzZWQgZm9yIGBuZ01vZGVsYCBhbmQgYGZvcm1Db250cm9sYC4gKi9cbiAgQElucHV0KCkgcHVibGljIGRhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcbiAgLyoqIFNlY29uZGFyeSwgYWx0ZXJuYXRpdmUgaW5wdXQgd2l0aCBkYXRlIHN0cmluZyAqL1xuICBASW5wdXQoKSBwdWJsaWMgZGF0ZVN0cmluZzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIC8qKiBEZXRlcm1pbmUgd2hldGhlciBmb3JtR3JvdXAncyB2YWx1ZSBhY2Nlc3NvciBpcyBhY2Nlc3NpbmcgdGhlIHNlbGVjdGVkIElEcyBvciB0aGUgc2VsZWN0ZWQgb2JqZWN0cyAqL1xuICBASW5wdXQoKSBwdWJsaWMgdmFsdWVBY2Nlc3NvcjogJ2RhdGUnIHwgJ2RhdGVTdHJpbmcnID0gJ2RhdGUnO1xuICAvKiogSUQgdG8gYmUgc2V0IG9uIGlucHV0IHRvIGNvcnJlc3BvbmQgdG8gb3V0c2lkZSBsYWJlbCAqL1xuICBASW5wdXQoKSBwdWJsaWMgaW5wdXRJZDogc3RyaW5nID0gJyc7XG4gIC8qKiBUaGUgcmVuZGVyaW5nIHN0eWxlIG9mIHRoZSBkYXRlIGlucHV0IGNvbXBvbmVudC4gQ2FuIGJlIG9uZSBvZiBcIkxJTktcIiwgXCJCVVRUT05cIiwgb3IgXCJJTlBVVFwiLiAqL1xuICBASW5wdXQoKSBwdWJsaWMgcmVuZGVyaW5nU3R5bGU6IERhdGVJbnB1dFJlbmRlcmluZ1N0eWxlID0gJ0lOUFVUJztcbiAgLyoqIFRoZSBwbGFjZWhvbGRlciB0ZXh0IHRvIHNob3cgaW4gdGhlIGRhdGUgaW5wdXQgZmllbGQgd2hlbiB0aGVyZSBpcyBubyBkYXRlIHNlbGVjdGVkICovXG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ3l5eXktbW0tZGQnO1xuICAvKiogRGVhY3RpdmF0ZSB0byB1c2Ugb2xkIGRhdGUgcGlja2VyICovXG4gIEBJbnB1dCgpIHB1YmxpYyBjZGsgPSB0cnVlO1xuICAvKiogU2V0cyBkYXRlcGlja2VyIG1vZGUsIHN1cHBvcnRzOiBkYXksIG1vbnRoLCB5ZWFyICovXG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRlcGlja2VyTW9kZTogc3RyaW5nID0gJ2RheSc7XG4gIC8qKiBEZWZhdWx0IGRhdGUgdG8gc2hvdyBpZiBuZy1tb2RlbCB2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkLiBEZWZhdWx0IGRhdGUgdG8gc2hvdyBpZiBuZy1tb2RlbCB2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkICovXG4gIEBJbnB1dCgpIGluaXREYXRlU3RyaW5nITogc3RyaW5nO1xuICAvKiogT2xkZXN0IHNlbGVjdGFibGUgZGF0ZSAqL1xuICBASW5wdXQoKSBwdWJsaWMgbWluRGF0ZSA9IERFRkFVTFRfTUlOX0RBVEU7XG4gIC8qKiBMYXRlc3Qgc2VsZWN0YWJsZSBkYXRlICovXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhEYXRlID0gREVGQVVMVF9NQVhfREFURTtcbiAgLyoqIFNldCBsb3dlciBkYXRlcGlja2VyIG1vZGUsIHN1cHBvcnRzOiBkYXksIG1vbnRoLCB5ZWFyICovXG4gIEBJbnB1dCgpIHB1YmxpYyBtaW5Nb2RlOiBzdHJpbmcgPSAnZGF5JztcbiAgLyoqIFNldHMgdXBwZXIgZGF0ZXBpY2tlciBtb2RlLCBzdXBwb3J0czogZGF5LCBtb250aCwgeWVhciAqL1xuICBASW5wdXQoKSBwdWJsaWMgbWF4TW9kZTogc3RyaW5nID0gJ3llYXInO1xuICAvKiogSWYgZmFsc2Ugd2VlayBudW1iZXJzIHdpbGwgYmUgaGlkZGVuICovXG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93V2Vla3M6IGJvb2xlYW4gPSB0cnVlO1xuICAvKiogRm9ybWF0IG9mIGRheSBpbiBtb250aCAqL1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybWF0RGF5OiBzdHJpbmcgPSAnREQnO1xuICAvKiogRm9ybWF0IG9mIG1vbnRoIGluIHllYXIgKi9cbiAgQElucHV0KCkgcHVibGljIGZvcm1hdE1vbnRoOiBzdHJpbmcgPSAnTU1NTSc7XG4gIC8qKiBGb3JtYXQgb2YgeWVhciBpbiB5ZWFyIHJhbmdlICovXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXRZZWFyOiBzdHJpbmcgPSAnWVlZWSc7XG4gIC8qKiBGb3JtYXQgb2YgZGF5IGluIHdlZWsgaGVhZGVyICovXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXREYXlIZWFkZXI6IHN0cmluZyA9ICdkZCc7XG4gIC8qKiBGb3JtYXQgb2YgdGl0bGUgd2hlbiBzZWxlY3RpbmcgZGF5ICovXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXREYXlUaXRsZTogc3RyaW5nID0gJ01NTU0gWVlZWSc7XG4gIC8qKiBGb3JtYXQgb2YgdGl0bGUgd2hlbiBzZWxlY3RpbmcgbW9udGggKi9cbiAgQElucHV0KCkgcHVibGljIGZvcm1hdE1vbnRoVGl0bGU6IHN0cmluZyA9ICdZWVlZJztcbiAgLyoqIFN0YXJ0aW5nIGRheSBvZiB0aGUgd2VlayBmcm9tIDAtNiAoMD1TdW5kYXksIC4uLiwgNj1TYXR1cmRheSkgcHVibGljICovXG4gIEBJbnB1dCgpIHN0YXJ0aW5nRGF5OiBudW1iZXIgPSAwO1xuICAvKiogTnVtYmVyIG9mIHllYXJzIGRpc3BsYXllZCBpbiB5ZWFyIHNlbGVjdGlvbiAqL1xuICBASW5wdXQoKSBwdWJsaWMgeWVhclJhbmdlOiBudW1iZXIgPSAyMDtcbiAgLyoqIElmIHRydWUgb25seSBkYXRlcyBmcm9tIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIG1vbnRoIHdpbGwgYmUgc2hvd24gKi9cbiAgQElucHV0KCkgcHVibGljIG9ubHlDdXJyZW50TW9udGg6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIElmIHRydWUgc2hvcnRjdXRgcyBldmVudCBwcm9wYWdhdGlvbiB3aWxsIGJlIGRpc2FibGVkICovXG4gIEBJbnB1dCgpIHB1YmxpYyBzaG9ydGN1dFByb3BhZ2F0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBBcnJheSBvZiBjdXN0b20gY3NzIGNsYXNzZXMgdG8gYmUgYXBwbGllZCB0byAqL1xuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tQ2xhc3M6IHsgZGF0ZTogRGF0ZTsgbW9kZTogc3RyaW5nOyBjbGF6ejogc3RyaW5nIH1bXSA9IFtdO1xuICAvKiogSWYgdHJ1ZSwgdGhlIGRhdGUgaW5wdXQgZmllbGQgd2lsbCBiZSBkaXNhYmxlZC4gKi9cbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkITogYm9vbGVhbjtcbiAgLyoqIEFycmF5IG9mIGRpc2FibGVkIGRhdGVzIGlmIG1vZGUgaXMgZGF5LCBvciB5ZWFycywgZXRjLiAqL1xuICBASW5wdXQoKSBwdWJsaWMgZGF0ZURpc2FibGVkOiB7IGRhdGU6IERhdGU7IG1vZGU6IHN0cmluZyB9W10gPSBbXTtcbiAgLyoqIElmIHRydWUsIHRoZSBkYXRlIGlucHV0IGZpZWxkIHdpbGwgYmUgYXV0by1mb2N1c2VkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBmaXJzdCByZW5kZXJlZC4gKi9cbiAgQElucHV0KCkgYXV0b0ZvY3VzID0gZmFsc2U7XG4gIC8qKiBJZiB0cnVlLCB0aGUgZGF0ZSBpbnB1dCBmaWVsZCB3aWxsIGJlIG1hcmtlZCBhcyBpbnZhbGlkLiAqL1xuICBASW5wdXQoKSBtYXJrSW52YWxpZCA9IGZhbHNlO1xuXG4gIC8qKiBUcmlnZ2VyZWQgd2hlbmV2ZXIgdGhlIGRhdGVwaWNrZXIgaXMgY2xvc2VkICovXG4gIEBPdXRwdXQoKSBjbG9zZURhdGVJbnB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqIFRyaWdnZXJlZCB3aGVuZXZlciB0aGUgZGF0ZSBjaGFuZ2VzICovXG4gIEBPdXRwdXQoKSBkYXRlU3RyaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuICAvKiogVHJpZ2dlcmVkIHdoZW5ldmVyIHRoZSBkYXRlIGNoYW5nZXMuICovXG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTtcblxuICAvKiogQGludGVybmFsICovXG4gIEBPYnNlcnZlKCdpbml0RGF0ZVN0cmluZycpIGluaXREYXRlU3RyaW5nJCE6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAvKiogQGludGVybmFsICovXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICAvKiogQGludGVybmFsICovXG4gIEBDb250ZW50Q2hpbGQoJ2RhdGVTdHJpbmdUZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KSBkYXRlU3RyaW5nVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgc2hvd0RhdGVwaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBkYXRlRm9ybWF0OiBzdHJpbmc7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgaW5pdERhdGUhOiBEYXRlO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcmVhZG9ubHkgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBmb3JtQ29udHJvbCE6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBoYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiogQGludGVybmFsICovXG4gIG9uVG91Y2hlZCE6ICgpID0+IHZvaWQ7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm9wYWdhdGVDaGFuZ2UgPSAoX2RhdGU6IERhdGUgfCBudWxsKSA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KERBVEVfRk9STUFUUykgcHJpdmF0ZSBkYXRlRm9ybWF0c1Byb3ZpZGVyOiBEYXRlRm9ybWF0c1Byb3ZpZGVyLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFURV9GTl9MT0NBTEUpIHByaXZhdGUgZ2V0RGF0ZUZuTG9jYWxlPzogRnVuY3Rpb25cbiAgKSB7XG4gICAgdGhpcy5kYXRlRm9ybWF0ID0gdGhpcy5kYXRlRm9ybWF0c1Byb3ZpZGVyLmdldERhdGVGb3JtYXQoKTtcbiAgICAvLyBQYXRjaCBEYXRlUGlja2VyIHVudGlsIGh0dHBzOi8vZ2l0aHViLmNvbS92YWxvci1zb2Z0d2FyZS9uZzItYm9vdHN0cmFwL2lzc3Vlcy8xMzg1IGlzIHJlc29sdmVkXG4gICAgY29uc3Qgd3JpdGVWYWx1ZSA9IERhdGVQaWNrZXJDb21wb25lbnQucHJvdG90eXBlLndyaXRlVmFsdWU7XG4gICAgRGF0ZVBpY2tlckNvbXBvbmVudC5wcm90b3R5cGUud3JpdGVWYWx1ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB3cml0ZVZhbHVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyBhcyBhbnkpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBTb21laG93IGRhdGVwaWNrZXIgZG9lcyB1c2UgYSBzZXBhcmF0ZSBtb21lbnQgaW5zdGFuY2UgdGhhbiB3ZSBkby4gVGhhdCBvbmUgcnVucyBvbiBsb2NhbGUgZW4gYnkgZGVmYXVsdC5cbiAgICAvLyBTbyB3ZSBwYXRjaCB0aGUgZm9ybWF0IGZ1bmN0aW9uIGhlcmUgdG8gdXNlIG91ciBtb21lbnQgaW5zdGFuY2UuXG4gICAgLy8gTWF5YmUgaXQgd2lsbCBiZSBmaXhlZCB3aXRoOiBodHRwczovL2dpdGh1Yi5jb20vdmFsb3Itc29mdHdhcmUvbmd4LWJvb3RzdHJhcC9pc3N1ZXMvNDU1XG4gICAgY29uc3QgbG9jYWxlID0gdGhpcy5nZXREYXRlRm5Mb2NhbGUgPyB0aGlzLmdldERhdGVGbkxvY2FsZSgpIDogbnVsbDtcbiAgICBEYXRlRm9ybWF0dGVyLnByb3RvdHlwZS5mb3JtYXQgPSBmdW5jdGlvbiAoZGF0ZTogRGF0ZSwgZjogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gZm9ybWF0KGRhdGUsIGYsIHsgbG9jYWxlIH0pO1xuICAgIH07XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdERhdGVTdHJpbmckLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgoZGF0ZSkgPT4ge1xuICAgICAgdGhpcy5pbml0RGF0ZSA9IGNyZWF0ZURhdGVGcm9tRGF0ZVN0cmluZyhkYXRlKSA/PyBzdGFydE9mRGF5KG5ldyBEYXRlKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydkYXRlJ10pIHtcbiAgICAgIHRoaXMuZGF0ZVN0cmluZyA9IHRoaXMuZGF0ZSA/IGNvbnZlcnREYXRlVG9Mb2NhbGVEYXRlU3RyaW5nKHRoaXMuZGF0ZSkgOiBudWxsO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlc1snZGF0ZVN0cmluZyddKSB7XG4gICAgICB0aGlzLm9uRGF0ZVN0cmluZ0NoYW5nZSh0aGlzLmRhdGVTdHJpbmcsIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgZm9jdXMoKSB7XG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBzaG93UG9wdXAoKSB7XG4gICAgdGhpcy5zaG93RGF0ZXBpY2tlciA9IHRydWU7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyB0b2dnbGVQb3B1cCgpIHtcbiAgICB0aGlzLnNob3dEYXRlcGlja2VyID0gIXRoaXMuc2hvd0RhdGVwaWNrZXI7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBoaWRlUG9wdXAoKSB7XG4gICAgaWYgKHRoaXMuc2hvd0RhdGVwaWNrZXIpIHtcbiAgICAgIHRoaXMuc2hvd0RhdGVwaWNrZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2xvc2VEYXRlSW5wdXQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25EYXRlU3RyaW5nQ2hhbmdlKG5ld0RhdGVTdHJpbmc6IHN0cmluZyB8IG51bGwsIGVtaXQ6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgaWYgKGlzVmFsaWREYXRlU3RyaW5nKG5ld0RhdGVTdHJpbmcpKSB7XG4gICAgICBjb25zdCBkYXRlID0gY3JlYXRlRGF0ZUZyb21EYXRlU3RyaW5nKG5ld0RhdGVTdHJpbmcpO1xuICAgICAgdGhpcy51cGRhdGVEYXRlKGRhdGUsIGVtaXQpO1xuICAgIH0gZWxzZSBpZiAobmV3RGF0ZVN0cmluZyA9PT0gbnVsbCB8fCBuZXdEYXRlU3RyaW5nID09PSAnJykge1xuICAgICAgdGhpcy51cGRhdGVEYXRlKG51bGwsIGVtaXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc0Vycm9yID0gdHJ1ZTtcbiAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sKSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25TZWxlY3Rpb25Eb25lKG5ld0RhdGU6IERhdGUpIHtcbiAgICB0aGlzLnVwZGF0ZURhdGUobmV3RGF0ZSk7XG4gICAgdGhpcy5oaWRlUG9wdXAoKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25CbHVyKCkge1xuICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURhdGUoZGF0ZTogRGF0ZSB8IG51bGwsIGVtaXQ6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgdGhpcy5kYXRlID0gZGF0ZTtcbiAgICB0aGlzLmRhdGVTdHJpbmcgPSB0aGlzLmRhdGUgPyBjb252ZXJ0RGF0ZVRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmRhdGUpIDogJyc7XG4gICAgaWYgKGVtaXQpIHtcbiAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KGRhdGUpO1xuICAgICAgdGhpcy5kYXRlU3RyaW5nQ2hhbmdlLmVtaXQodGhpcy5kYXRlU3RyaW5nKTtcbiAgICB9XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UoZGF0ZSk7XG4gICAgdGhpcy5yZWNoZWNrRXJyb3JzKCk7XG4gIH1cblxuICBwcml2YXRlIHJlY2hlY2tFcnJvcnMoKSB7XG4gICAgdGhpcy5oYXNFcnJvciA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmZvcm1Db250cm9sKSB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV3JpdGUgYSBuZXcgdmFsdWUgdG8gdGhlIGVsZW1lbnQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgd3JpdGVWYWx1ZShuZXdEYXRlOiBEYXRlIHwgc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMudmFsdWVBY2Nlc3NvciA9PT0gJ2RhdGUnKSB7XG4gICAgICB0aGlzLmRhdGUgPSBuZXdEYXRlIGFzIERhdGU7XG4gICAgICB0aGlzLmRhdGVTdHJpbmcgPSBjb252ZXJ0RGF0ZVRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmRhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGVTdHJpbmcgPSBuZXdEYXRlIGFzIHN0cmluZztcbiAgICAgIHRoaXMub25EYXRlU3RyaW5nQ2hhbmdlKHRoaXMuZGF0ZVN0cmluZywgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHJlY2VpdmVzIGEgY2hhbmdlIGV2ZW50LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIGlmICh0aGlzLnZhbHVlQWNjZXNzb3IgPT09ICdkYXRlJykge1xuICAgICAgdGhpcy5kYXRlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZShmbik7XG4gICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlQWNjZXNzb3IgPT09ICdkYXRlU3RyaW5nJykge1xuICAgICAgdGhpcy5kYXRlU3RyaW5nQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZShmbik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGNvbnRyb2wgcmVjZWl2ZXMgYSB0b3VjaCBldmVudC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHZhbGlkYXRlKGM6IFVudHlwZWRGb3JtQ29udHJvbCkge1xuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBjO1xuICAgIHJldHVybiB0aGlzLmhhc0Vycm9yXG4gICAgICA/IHtcbiAgICAgICAgICBkYXRlRm9ybWF0RXJyb3I6IHtcbiAgICAgICAgICAgIGdpdmVuOiB0aGlzLmRhdGVTdHJpbmcsXG4gICAgICAgICAgICBmb3JtYXQ6ICd5eXl5LW1tLWRkJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgOiBudWxsO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY2RrOyBlbHNlIHdpdGhvdXRDZGtPdmVybGF5XCI+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJ3cmFwcGVyXCJcbiAgICBbY2xhc3MuZm9yTGlua109XCJyZW5kZXJpbmdTdHlsZSA9PT0gJ0xJTksnXCJcbiAgICBbY2xhc3MuaGFzLWVycm9yXT1cImhhc0Vycm9yXCJcbiAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgI29yaWdpbj1cImNka092ZXJsYXlPcmlnaW5cIlxuICA+XG4gICAgPCEtLSBUT0RPOiBUaGUgZGF0ZUlucHV0IGFuZCBkYXRlUGlja2VyIGNvZGUgaXN0IGR1cGxpY2F0ZWQgZm9yIGNkayBhbmQgd2l0aG91dENkSyB1c2UgdG8gc29sdmUgYSBwbGFjaW5nIHByb2JsZW0gb2YgdGhlXG4gICAgICAgbmd4LWJvb3RzdHJhcCBkYXRlcGlja2VyIGNvbXBvbmVudC4gV3JpdGluZyBpdCBpbiBhIG5nLWNvbnRhaW5lciBsZWQgdG8gYW4gdW5leHBlY3RlZCBhbmNob3JpbmcgYmVoYXZpb3Igb2YgdGhlIGRhdGVQaWNrZXIgTk9UIGRpcmVjdGx5XG4gICAgICBiZWxvdyB0aGUgZGF0ZUlucHV0IGVsZW1lbnQgLS0+XG4gICAgQHN3aXRjaCAocmVuZGVyaW5nU3R5bGUpIHtcbiAgICAgIEBjYXNlICgnQlVUVE9OJykge1xuICAgICAgICA8YnV0dG9uIGx4LWJ1dHRvbiAoY2xpY2spPVwic2hvd1BvcHVwKClcIiBseEF1dG9jbG9zZSAoYXV0b2Nsb3NlKT1cImhpZGVQb3B1cCgpXCIgc2l6ZT1cImxhcmdlXCI+XG4gICAgICAgICAgQGlmIChkYXRlU3RyaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlU3RyaW5nVGVtcGxhdGVcIiAvPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAge3sgZGF0ZVN0cmluZyA/PyBwbGFjZWhvbGRlciB9fVxuICAgICAgICAgIH1cbiAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1hbmdsZS1kb3duIGx4LW1hcmdpbi1sZWZ0XCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBjYXNlICgnSU5QVVQnKSB7XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICNpbnB1dFxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGRhdGVDb250cm9sXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCJcbiAgICAgICAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgICAgICAgW2x4QXV0b2ZvY3VzXT1cImF1dG9Gb2N1c1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRlU3RyaW5nXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtseE1hcmtJbnZhbGlkXT1cIm1hcmtJbnZhbGlkXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkRhdGVTdHJpbmdDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgKGZvY3VzKT1cInNob3dQb3B1cCgpXCJcbiAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiaGlkZVBvcHVwKClcIlxuICAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJoaWRlUG9wdXAoKVwiXG4gICAgICAgICAgKGtleWRvd24udGFiKT1cImhpZGVQb3B1cCgpXCJcbiAgICAgICAgICAoa2V5ZG93bi5zaGlmdC50YWIpPVwiaGlkZVBvcHVwKClcIlxuICAgICAgICAgIFtjbGFzcy50ZXh0LWRhbmdlcl09XCJoYXNFcnJvclwiXG4gICAgICAgIC8+XG4gICAgICB9XG4gICAgICBAY2FzZSAoJ0xJTksnKSB7XG4gICAgICAgIDxhIGNsYXNzPVwiZGF0ZUNvbnRyb2xcIiAoY2xpY2spPVwidG9nZ2xlUG9wdXAoKVwiPnt7IGRhdGUgfCBseERhdGU6IGRhdGVGb3JtYXQgfX08L2E+XG4gICAgICB9XG4gICAgfVxuXG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAjY2RrRGF0ZXBpY2tlclxuICAgICAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cInNob3dEYXRlcGlja2VyXCJcbiAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cIm9yaWdpblwiXG4gICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wXT1cInRydWVcIlxuICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlCYWNrZHJvcENsYXNzXT1cIidiYWNrZHJvcCdcIlxuICAgICAgKGJhY2tkcm9wQ2xpY2spPVwiaGlkZVBvcHVwKClcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyQ29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhclwiPlxuICAgICAgICAgIDxkYXRlcGlja2VyXG4gICAgICAgICAgICBjbGFzcz1cInBvcHVwXCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25Eb25lKT1cIm9uU2VsZWN0aW9uRG9uZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImRhdGVcIlxuICAgICAgICAgICAgW2RhdGVwaWNrZXJNb2RlXT1cImRhdGVwaWNrZXJNb2RlXCJcbiAgICAgICAgICAgIFtpbml0RGF0ZV09XCJpbml0RGF0ZVwiXG4gICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgICAgICAgW21pbk1vZGVdPVwibWluTW9kZVwiXG4gICAgICAgICAgICBbbWF4TW9kZV09XCJtYXhNb2RlXCJcbiAgICAgICAgICAgIFtzaG93V2Vla3NdPVwic2hvd1dlZWtzXCJcbiAgICAgICAgICAgIFtmb3JtYXREYXldPVwiZm9ybWF0RGF5XCJcbiAgICAgICAgICAgIFtmb3JtYXRNb250aF09XCJmb3JtYXRNb250aFwiXG4gICAgICAgICAgICBbZm9ybWF0WWVhcl09XCJmb3JtYXRZZWFyXCJcbiAgICAgICAgICAgIFtmb3JtYXREYXlIZWFkZXJdPVwiZm9ybWF0RGF5SGVhZGVyXCJcbiAgICAgICAgICAgIFtmb3JtYXREYXlUaXRsZV09XCJmb3JtYXREYXlUaXRsZVwiXG4gICAgICAgICAgICBbZm9ybWF0TW9udGhUaXRsZV09XCJmb3JtYXRNb250aFRpdGxlXCJcbiAgICAgICAgICAgIFtzdGFydGluZ0RheV09XCJzdGFydGluZ0RheVwiXG4gICAgICAgICAgICBbeWVhclJhbmdlXT1cInllYXJSYW5nZVwiXG4gICAgICAgICAgICBbb25seUN1cnJlbnRNb250aF09XCJvbmx5Q3VycmVudE1vbnRoXCJcbiAgICAgICAgICAgIFtzaG9ydGN1dFByb3BhZ2F0aW9uXT1cInNob3J0Y3V0UHJvcGFnYXRpb25cIlxuICAgICAgICAgICAgW2N1c3RvbUNsYXNzXT1cImN1c3RvbUNsYXNzXCJcbiAgICAgICAgICAgIFtkYXRlRGlzYWJsZWRdPVwiZGF0ZURpc2FibGVkXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvc3Bhbj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3dpdGhvdXRDZGtPdmVybGF5PlxuICA8ZGl2IGNsYXNzPVwibGVnYWN5XCIgW2NsYXNzLmZvckxpbmtdPVwicmVuZGVyaW5nU3R5bGUgPT09ICdMSU5LJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJiYWNrZHJvcFwiICpuZ0lmPVwic2hvd0RhdGVwaWNrZXJcIiAoY2xpY2spPVwiaGlkZVBvcHVwKClcIj48L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cIndyYXBwZXJcIiBbY2xhc3MuZm9yTGlua109XCJyZW5kZXJpbmdTdHlsZSA9PT0gJ0xJTksnXCIgW2NsYXNzLmhhcy1lcnJvcl09XCJoYXNFcnJvclwiPlxuICAgICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBkYXRlQ29udHJvbFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIlxuICAgICAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgICAgIFtseEF1dG9mb2N1c109XCJhdXRvRm9jdXNcIlxuICAgICAgICBbbHhNYXJrSW52YWxpZF09XCJtYXJrSW52YWxpZFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiZGF0ZVN0cmluZ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRGF0ZVN0cmluZ0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzKT1cInNob3dQb3B1cCgpXCJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJoaWRlUG9wdXAoKVwiXG4gICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJoaWRlUG9wdXAoKVwiXG4gICAgICAgIChrZXlkb3duLnRhYik9XCJoaWRlUG9wdXAoKVwiXG4gICAgICAgIChrZXlkb3duLnNoaWZ0LnRhYik9XCJoaWRlUG9wdXAoKVwiXG4gICAgICAgIFtjbGFzcy50ZXh0LWRhbmdlcl09XCJoYXNFcnJvclwiXG4gICAgICAgICpuZ0lmPVwicmVuZGVyaW5nU3R5bGUgPT09ICdJTlBVVCdcIlxuICAgICAgLz5cbiAgICAgIDxhIGNsYXNzPVwiZGF0ZUNvbnRyb2xcIiAoY2xpY2spPVwidG9nZ2xlUG9wdXAoKVwiICpuZ0lmPVwicmVuZGVyaW5nU3R5bGUgPT09ICdMSU5LJ1wiPnt7IGRhdGUgfCBseERhdGU6IGRhdGVGb3JtYXQgfX08L2E+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlckNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXJcIj5cbiAgICAgICAgICA8ZGF0ZXBpY2tlclxuICAgICAgICAgICAgY2xhc3M9XCJwb3B1cFwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dEYXRlcGlja2VyXCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25Eb25lKT1cIm9uU2VsZWN0aW9uRG9uZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImRhdGVcIlxuICAgICAgICAgICAgW2RhdGVwaWNrZXJNb2RlXT1cImRhdGVwaWNrZXJNb2RlXCJcbiAgICAgICAgICAgIFtpbml0RGF0ZV09XCJpbml0RGF0ZVwiXG4gICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgICAgICAgW21pbk1vZGVdPVwibWluTW9kZVwiXG4gICAgICAgICAgICBbbWF4TW9kZV09XCJtYXhNb2RlXCJcbiAgICAgICAgICAgIFtzaG93V2Vla3NdPVwic2hvd1dlZWtzXCJcbiAgICAgICAgICAgIFtmb3JtYXREYXldPVwiZm9ybWF0RGF5XCJcbiAgICAgICAgICAgIFtmb3JtYXRNb250aF09XCJmb3JtYXRNb250aFwiXG4gICAgICAgICAgICBbZm9ybWF0WWVhcl09XCJmb3JtYXRZZWFyXCJcbiAgICAgICAgICAgIFtmb3JtYXREYXlIZWFkZXJdPVwiZm9ybWF0RGF5SGVhZGVyXCJcbiAgICAgICAgICAgIFtmb3JtYXREYXlUaXRsZV09XCJmb3JtYXREYXlUaXRsZVwiXG4gICAgICAgICAgICBbZm9ybWF0TW9udGhUaXRsZV09XCJmb3JtYXRNb250aFRpdGxlXCJcbiAgICAgICAgICAgIFtzdGFydGluZ0RheV09XCJzdGFydGluZ0RheVwiXG4gICAgICAgICAgICBbeWVhclJhbmdlXT1cInllYXJSYW5nZVwiXG4gICAgICAgICAgICBbb25seUN1cnJlbnRNb250aF09XCJvbmx5Q3VycmVudE1vbnRoXCJcbiAgICAgICAgICAgIFtzaG9ydGN1dFByb3BhZ2F0aW9uXT1cInNob3J0Y3V0UHJvcGFnYXRpb25cIlxuICAgICAgICAgICAgW2N1c3RvbUNsYXNzXT1cImN1c3RvbUNsYXNzXCJcbiAgICAgICAgICAgIFtkYXRlRGlzYWJsZWRdPVwiZGF0ZURpc2FibGVkXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19