UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

387 lines 41.4 kB
import { Component, Injector, Input, TemplateRef, ViewChild } from '@angular/core'; import { CoreBaseComponent } from '../common/base.component'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; import * as i2 from "../icon/icon-text/icon-text.component"; import * as i3 from "../icon/layered-icon/status/status-icon.component"; import * as i4 from "../loading-wheel/loading-wheel.component"; import * as i5 from "@angular/router"; const _c0 = ["readonlyTemplate"]; const _c1 = ["actionLinkTemplate"]; const _c2 = ["internalLinkTemplate"]; const _c3 = ["externalLinkTemplate"]; function SummaryComponent_ng_container_2_span_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "span"); } if (rf & 2) { const ctx_r12 = i0.ɵɵnextContext(2); i0.ɵɵclassMapInterpolate1("sme-margin-right-xs sme-icon ", ctx_r12.iconClass, ""); } } function SummaryComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainerStart(0); i0.ɵɵelement(1, "sme-icon-text", 10); i0.ɵɵtemplate(2, SummaryComponent_ng_container_2_span_2_Template, 1, 3, "span", 11); i0.ɵɵelementContainerEnd(); } if (rf & 2) { const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵadvance(1); i0.ɵɵproperty("urlIcon", ctx_r0.iconUrl)("showTitle", false); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", !!ctx_r0.iconClass); } } function SummaryComponent_ng_container_5_ng_container_9_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainer(0); } } const _c4 = function (a0, a1) { return { $implicit: a0, index: a1 }; }; function SummaryComponent_ng_container_5_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainerStart(0); i0.ɵɵelementStart(1, "div", 12)(2, "label")(3, "p")(4, "span"); i0.ɵɵtext(5); i0.ɵɵelementEnd()()(); i0.ɵɵelementStart(6, "span", 13); i0.ɵɵtext(7, ":"); i0.ɵɵelementEnd(); i0.ɵɵelementStart(8, "div", 14); i0.ɵɵtemplate(9, SummaryComponent_ng_container_5_ng_container_9_Template, 1, 0, "ng-container", 15); i0.ɵɵelementEnd()(); i0.ɵɵelementContainerEnd(); } if (rf & 2) { const item_r13 = ctx.$implicit; const i_r14 = ctx.index; const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵadvance(1); i0.ɵɵclassProp("sme-margin-left-md", ctx_r1.iconUrl || ctx_r1.iconClass); i0.ɵɵadvance(4); i0.ɵɵtextInterpolate(item_r13.label); i0.ɵɵadvance(4); i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.getTemplate(item_r13))("ngTemplateOutletContext", i0.ɵɵpureFunction2(5, _c4, item_r13, i_r14)); } } function SummaryComponent_ng_template_6_sme_loading_wheel_0_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "sme-loading-wheel", 17); } if (rf & 2) { i0.ɵɵproperty("inline", true)("isBackgroundTransparent", true); } } function SummaryComponent_ng_template_6_ng_container_1_ng_container_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainer(0); } } function SummaryComponent_ng_template_6_ng_container_1_span_3_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "span"); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r16 = i0.ɵɵnextContext(2).$implicit; const ctx_r21 = i0.ɵɵnextContext(); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(ctx_r21.stringifyValue(item_r16.value)); } } function SummaryComponent_ng_template_6_ng_container_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainerStart(0); i0.ɵɵelementStart(1, "p", 18); i0.ɵɵtemplate(2, SummaryComponent_ng_template_6_ng_container_1_ng_container_2_Template, 1, 0, "ng-container", 15); i0.ɵɵtemplate(3, SummaryComponent_ng_template_6_ng_container_1_span_3_Template, 2, 1, "span", 2); i0.ɵɵelementEnd(); i0.ɵɵelementContainerEnd(); } if (rf & 2) { const ctx_r23 = i0.ɵɵnextContext(); const i_r17 = ctx_r23.index; const item_r16 = ctx_r23.$implicit; const ctx_r19 = i0.ɵɵnextContext(); const _r10 = i0.ɵɵreference(15); i0.ɵɵadvance(1); i0.ɵɵattribute("aria-labelledby", ctx_r19.idBag.labelSpan + i_r17)("aria-describedby", ctx_r19.idBag.detailsSpan + i_r17); i0.ɵɵadvance(1); i0.ɵɵproperty("ngTemplateOutlet", _r10)("ngTemplateOutletContext", i0.ɵɵpureFunction2(5, _c4, item_r16, i_r17)); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", !item_r16.link && !item_r16.action); } } function SummaryComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) { i0.ɵɵtemplate(0, SummaryComponent_ng_template_6_sme_loading_wheel_0_Template, 1, 2, "sme-loading-wheel", 16); i0.ɵɵtemplate(1, SummaryComponent_ng_template_6_ng_container_1_Template, 4, 8, "ng-container", 2); } if (rf & 2) { const item_r16 = ctx.$implicit; i0.ɵɵproperty("ngIf", item_r16.loading && item_r16.isAsync); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", !item_r16.loading || !item_r16.isAsync); } } function SummaryComponent_ng_template_8_ng_container_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainer(0); } } function SummaryComponent_ng_template_8_span_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "span", 21); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r24 = i0.ɵɵnextContext().$implicit; i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(item_r24.prefixString); } } function SummaryComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) { const _r30 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "div", 1); i0.ɵɵtemplate(1, SummaryComponent_ng_template_8_ng_container_1_Template, 1, 0, "ng-container", 15); i0.ɵɵtemplate(2, SummaryComponent_ng_template_8_span_2_Template, 2, 1, "span", 19); i0.ɵɵelementStart(3, "a", 20); i0.ɵɵlistener("click", function SummaryComponent_ng_template_8_Template_a_click_3_listener() { const restoredCtx = i0.ɵɵrestoreView(_r30); const item_r24 = restoredCtx.$implicit; return i0.ɵɵresetView(item_r24.action(item_r24)); }); i0.ɵɵtext(4); i0.ɵɵelementEnd()(); } if (rf & 2) { const item_r24 = ctx.$implicit; const i_r25 = ctx.index; const ctx_r5 = i0.ɵɵnextContext(); const _r10 = i0.ɵɵreference(15); i0.ɵɵadvance(1); i0.ɵɵproperty("ngTemplateOutlet", _r10)("ngTemplateOutletContext", i0.ɵɵpureFunction2(6, _c4, item_r24, i_r25)); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", item_r24.prefixString); i0.ɵɵadvance(1); i0.ɵɵattribute("aria-labelledby", ctx_r5.idBag.labelSpan + i_r25 + " " + (ctx_r5.idBag.valueSpan + i_r25))("aria-describedby", ctx_r5.idBag.detailsSpan + i_r25); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(item_r24.value); } } function SummaryComponent_ng_template_10_ng_container_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainer(0); } } function SummaryComponent_ng_template_10_span_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "span", 21); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r31 = i0.ɵɵnextContext().$implicit; i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(item_r31.prefixString); } } function SummaryComponent_ng_template_10_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 1); i0.ɵɵtemplate(1, SummaryComponent_ng_template_10_ng_container_1_Template, 1, 0, "ng-container", 15); i0.ɵɵtemplate(2, SummaryComponent_ng_template_10_span_2_Template, 2, 1, "span", 19); i0.ɵɵelementStart(3, "a", 22); i0.ɵɵtext(4); i0.ɵɵelementEnd(); i0.ɵɵelementStart(5, "span", 23); i0.ɵɵtext(6); i0.ɵɵelementEnd()(); } if (rf & 2) { const item_r31 = ctx.$implicit; const i_r32 = ctx.index; const ctx_r7 = i0.ɵɵnextContext(); const _r10 = i0.ɵɵreference(15); i0.ɵɵadvance(1); i0.ɵɵproperty("ngTemplateOutlet", _r10)("ngTemplateOutletContext", i0.ɵɵpureFunction2(10, _c4, item_r31, i_r32)); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", item_r31.prefixString); i0.ɵɵadvance(1); i0.ɵɵproperty("routerLink", item_r31.link)("fragment", item_r31.fragment)("queryParams", item_r31.queryParams); i0.ɵɵattribute("aria-describedby", ctx_r7.idBag.detailsSpan + i_r32); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(item_r31.value); i0.ɵɵadvance(1); i0.ɵɵproperty("id", ctx_r7.idBag.detailsSpan + i_r32); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(ctx_r7.getInternalLinkDescription(item_r31)); } } function SummaryComponent_ng_template_12_ng_container_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainer(0); } } function SummaryComponent_ng_template_12_span_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "span", 21); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r36 = i0.ɵɵnextContext().$implicit; i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(item_r36.prefixString); } } function SummaryComponent_ng_template_12_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 1); i0.ɵɵtemplate(1, SummaryComponent_ng_template_12_ng_container_1_Template, 1, 0, "ng-container", 15); i0.ɵɵtemplate(2, SummaryComponent_ng_template_12_span_2_Template, 2, 1, "span", 19); i0.ɵɵelementStart(3, "a", 24); i0.ɵɵtext(4); i0.ɵɵelementEnd(); i0.ɵɵelementStart(5, "span", 23); i0.ɵɵtext(6); i0.ɵɵelementEnd()(); } if (rf & 2) { const item_r36 = ctx.$implicit; const i_r37 = ctx.index; const ctx_r9 = i0.ɵɵnextContext(); const _r10 = i0.ɵɵreference(15); i0.ɵɵadvance(1); i0.ɵɵproperty("ngTemplateOutlet", _r10)("ngTemplateOutletContext", i0.ɵɵpureFunction2(8, _c4, item_r36, i_r37)); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", item_r36.prefixString); i0.ɵɵadvance(1); i0.ɵɵproperty("href", item_r36.link, i0.ɵɵsanitizeUrl); i0.ɵɵattribute("aria-describedby", ctx_r9.idBag.detailsSpan + i_r37); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(item_r36.value); i0.ɵɵadvance(1); i0.ɵɵproperty("id", ctx_r9.idBag.detailsSpan + i_r37); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(ctx_r9.getExternalLinkDescription(item_r36)); } } function SummaryComponent_ng_template_14_span_0_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "span"); } if (rf & 2) { const item_r41 = i0.ɵɵnextContext().$implicit; i0.ɵɵclassMapInterpolate1("sme-margin-right-xs sme-icon ", item_r41.iconClass, ""); } } function SummaryComponent_ng_template_14_sme_status_icon_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "sme-status-icon", 26); } if (rf & 2) { const item_r41 = i0.ɵɵnextContext().$implicit; i0.ɵɵproperty("status", item_r41.status); } } function SummaryComponent_ng_template_14_Template(rf, ctx) { if (rf & 1) { i0.ɵɵtemplate(0, SummaryComponent_ng_template_14_span_0_Template, 1, 3, "span", 11); i0.ɵɵtemplate(1, SummaryComponent_ng_template_14_sme_status_icon_1_Template, 1, 1, "sme-status-icon", 25); } if (rf & 2) { const item_r41 = ctx.$implicit; i0.ɵɵproperty("ngIf", !!item_r41.iconClass); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", item_r41.status !== undefined && item_r41.status !== null && !item_r41.iconClass); } } /** * * @smeDoc {@label Summary @id sme-summary} * * @overview * @file {@filepath ./examples/summary-overview.md} * * @example {@label Basic Usage @id basic-usage} * @file {@filename component.ts @filepath ./examples/summary-example.component.ts} * @file {@filename component.html @filepath ./examples/summary-example.component.html} * */ export class SummaryComponent extends CoreBaseComponent { constructor(injector) { super(injector); } /** * Stringify the value for the item. * @param value The value to stringify. */ stringifyValue(value) { if (MsftSme.isNullOrWhiteSpace(value)) { return '-'; } if (Array.isArray(value)) { return value.map(v => this.stringifyValue(v)).join(',\n'); } if (MsftSme.isObject(value)) { try { return JSON.stringify(value, null, 2); } catch (error) { return value; } } return `${value}`; } /** * Get the template for the item. * @param item The summary item. * @returns The template for the item. */ getTemplate(item) { if (item.action) { return this.actionLinkTemplate; } if (item.link) { if (item.isExternalLink) { return this.externalLinkTemplate; } else { return this.internalLinkTemplate; } } return this.readonlyTemplate; } /** * Get the description for the internal link. * @param item The summary item. * @returns The description for the internal link. */ getInternalLinkDescription(item) { return this.strings.MsftSmeShell.Angular.Summary.InternalLink.label.format(item.link); } /** * Get the description for the external link. * @param item The summary item. * @returns The description for the external link. */ getExternalLinkDescription(item) { return this.strings.MsftSmeShell.Angular.Summary.ExternalLink.label.format(item.link); } /** * Creates the idBag used by this component to store unique element ids. * id values will be assigned be the @see BaseComponent super class. */ createIdBag() { return { detailsSpan: '', labelSpan: '', valueSpan: '' }; } get logSourceName() { return 'SummaryComponent'; } } /** @nocollapse */ SummaryComponent.ɵfac = function SummaryComponent_Factory(t) { return new (t || SummaryComponent)(i0.ɵɵdirectiveInject(i0.Injector)); }; /** @nocollapse */ SummaryComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: SummaryComponent, selectors: [["sme-summary"]], viewQuery: function SummaryComponent_Query(rf, ctx) { if (rf & 1) { i0.ɵɵviewQuery(_c0, 7); i0.ɵɵviewQuery(_c1, 7); i0.ɵɵviewQuery(_c2, 7); i0.ɵɵviewQuery(_c3, 7); } if (rf & 2) { let _t; i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.readonlyTemplate = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.actionLinkTemplate = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.internalLinkTemplate = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.externalLinkTemplate = _t.first); } }, inputs: { header: "header", iconUrl: "iconUrl", iconClass: "iconClass", items: "items" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 16, vars: 3, consts: [[1, "sme-arrange-stack-v", "sme-margin-bottom-md"], [1, "sme-arrange-stack-h"], [4, "ngIf"], [1, "sme-font-h4-no-spacing"], [4, "ngFor", "ngForOf"], ["readonlyTemplate", ""], ["actionLinkTemplate", ""], ["internalLinkTemplate", ""], ["externalLinkTemplate", ""], ["iconTemplate", ""], [3, "urlIcon", "showTitle"], [3, "class", 4, "ngIf"], [1, "sme-arrange-stack-h", "sme-margin-vertical-xxs", "sme-summary-item"], [1, "sme-margin-horizontal-xxs"], [2, "flex", "1 1 50%"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["size", "extra-small", 3, "inline", "isBackgroundTransparent", 4, "ngIf"], ["size", "extra-small", 3, "inline", "isBackgroundTransparent"], [1, "sme-read-only-template"], ["class", "sme-padding-right-xs", 4, "ngIf"], ["tabindex", "0", "role", "link", 1, "sme-link", "sme-focus-zone", "sme-action-link-template", 3, "click"], [1, "sme-padding-right-xs"], ["role", "link", 1, "sme-link", "sme-focus-zone", 3, "routerLink", "fragment", "queryParams"], [1, "sme-screen-reader", 3, "id"], ["role", "link", "target", "_blank", 1, "sme-link", "sme-focus-zone", "sme-icon", "sme-icon-after", "sme-icon-openInNewWindow", 3, "href"], ["class", "sme-layout-inline-block sme-margin-right-xs ", "size", "16px", 3, "status", 4, "ngIf"], ["size", "16px", 1, "sme-layout-inline-block", "sme-margin-right-xs", 3, "status"]], template: function SummaryComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 0)(1, "div", 1); i0.ɵɵtemplate(2, SummaryComponent_ng_container_2_Template, 3, 3, "ng-container", 2); i0.ɵɵelementStart(3, "h4", 3); i0.ɵɵtext(4); i0.ɵɵelementEnd()(); i0.ɵɵtemplate(5, SummaryComponent_ng_container_5_Template, 10, 8, "ng-container", 4); i0.ɵɵtemplate(6, SummaryComponent_ng_template_6_Template, 2, 2, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor); i0.ɵɵtemplate(8, SummaryComponent_ng_template_8_Template, 5, 9, "ng-template", null, 6, i0.ɵɵtemplateRefExtractor); i0.ɵɵtemplate(10, SummaryComponent_ng_template_10_Template, 7, 13, "ng-template", null, 7, i0.ɵɵtemplateRefExtractor); i0.ɵɵtemplate(12, SummaryComponent_ng_template_12_Template, 7, 11, "ng-template", null, 8, i0.ɵɵtemplateRefExtractor); i0.ɵɵtemplate(14, SummaryComponent_ng_template_14_Template, 2, 2, "ng-template", null, 9, i0.ɵɵtemplateRefExtractor); i0.ɵɵelementEnd(); } if (rf & 2) { i0.ɵɵadvance(2); i0.ɵɵproperty("ngIf", ctx.iconUrl || ctx.iconClass); i0.ɵɵadvance(2); i0.ɵɵtextInterpolate(ctx.header); i0.ɵɵadvance(1); i0.ɵɵproperty("ngForOf", ctx.items); } }, dependencies: [i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i2.IconTextComponent, i3.StatusIconComponent, i4.LoadingWheelComponent, i5.RouterLink], encapsulation: 2 }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SummaryComponent, [{ type: Component, args: [{ selector: 'sme-summary', template: "<div class=\"sme-arrange-stack-v sme-margin-bottom-md\">\r\n\r\n <!-- Header -->\r\n <div class=\"sme-arrange-stack-h\">\r\n <ng-container *ngIf=\"iconUrl || iconClass\">\r\n <sme-icon-text [urlIcon]=\"iconUrl\" [showTitle]=\"false\"></sme-icon-text>\r\n <span *ngIf=\"!!iconClass\" class=\"sme-margin-right-xs sme-icon {{iconClass}}\"></span>\r\n </ng-container>\r\n <h4 class=\"sme-font-h4-no-spacing\">{{ header }}</h4>\r\n </div>\r\n\r\n <!-- Start of for loop -->\r\n <ng-container *ngFor=\"let item of items; index as i\">\r\n <div class=\"sme-arrange-stack-h sme-margin-vertical-xxs sme-summary-item\" [class.sme-margin-left-md]=\"iconUrl || iconClass\">\r\n <label>\r\n <p>\r\n <span>{{ item.label }}</span>\r\n </p>\r\n </label>\r\n <span class=\"sme-margin-horizontal-xxs\">:</span>\r\n <div style=\"flex: 1 1 50%\">\r\n <ng-container *ngTemplateOutlet=\"getTemplate(item);context:{$implicit:item, index: i}\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- End of for loop -->\r\n\r\n <!-- Read only -->\r\n <ng-template #readonlyTemplate let-item let-i=\"index\">\r\n <sme-loading-wheel *ngIf=\"item.loading && item.isAsync\" size=\"extra-small\" [inline]=\"true\" [isBackgroundTransparent]=\"true\"></sme-loading-wheel>\r\n <ng-container *ngIf=\"!item.loading || !item.isAsync\">\r\n <p class=\"sme-read-only-template\" [attr.aria-labelledby]=\"idBag.labelSpan + i\" [attr.aria-describedby]=\"idBag.detailsSpan + i\">\r\n <ng-container *ngTemplateOutlet=\"iconTemplate;context:{$implicit:item, index: i}\"></ng-container>\r\n <span *ngIf=\"!item.link && !item.action\">{{ stringifyValue(item.value) }}</span>\r\n </p>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Action link (role button) -->\r\n <ng-template #actionLinkTemplate let-item let-i=\"index\">\r\n <div class=\"sme-arrange-stack-h\">\r\n <ng-container *ngTemplateOutlet=\"iconTemplate;context:{$implicit:item, index: i}\"></ng-container>\r\n <span *ngIf=\"item.prefixString\" class=\"sme-padding-right-xs\">{{ item.prefixString }}</span>\r\n <a tabindex=\"0\" class=\"sme-link sme-focus-zone sme-action-link-template\" role=\"link\" (click)=\"item.action(item)\"\r\n [attr.aria-labelledby]=\"(idBag.labelSpan + i) + ' ' + (idBag.valueSpan + i)\"\r\n [attr.aria-describedby]=\"idBag.detailsSpan + i\">{{ item.value }}</a>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Internal link -->\r\n <ng-template #internalLinkTemplate let-item let-i=\"index\">\r\n <div class=\"sme-arrange-stack-h\">\r\n <ng-container *ngTemplateOutlet=\"iconTemplate;context:{$implicit:item, index: i}\"></ng-container>\r\n <span *ngIf=\"item.prefixString\" class=\"sme-padding-right-xs\">{{ item.prefixString }}</span>\r\n <a class=\"sme-link sme-focus-zone\" role=\"link\" [routerLink]=\"item.link\" [fragment]=\"item.fragment\" [queryParams]=\"item.queryParams\"\r\n [attr.aria-describedby]=\"idBag.detailsSpan + i\">{{ item.value }}</a>\r\n <span class=\"sme-screen-reader\" [id]=\"idBag.detailsSpan + i\">{{ getInternalLinkDescription(item) }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- External link -->\r\n <ng-template #externalLinkTemplate let-item let-i=\"index\">\r\n <div class=\"sme-arrange-stack-h\">\r\n <ng-container *ngTemplateOutlet=\"iconTemplate;context:{$implicit:item, index: i}\"></ng-container>\r\n <span *ngIf=\"item.prefixString\" class=\"sme-padding-right-xs\">{{ item.prefixString }}</span>\r\n <a class=\"sme-link sme-focus-zone sme-icon sme-icon-after sme-icon-openInNewWindow\" role=\"link\" [href]=\"item.link\" target=\"_blank\"\r\n [attr.aria-describedby]=\"idBag.detailsSpan + i\">{{ item.value }}</a>\r\n <span class=\"sme-screen-reader\" [id]=\"idBag.detailsSpan + i\">{{ getExternalLinkDescription(item) }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Icon Template -->\r\n <ng-template #iconTemplate let-item let-i=\"index\">\r\n <span *ngIf=\"!!item.iconClass\" class=\"sme-margin-right-xs sme-icon {{item.iconClass}}\"></span>\r\n <sme-status-icon *ngIf=\"item.status !== undefined && item.status !== null && !item.iconClass\" class=\"sme-layout-inline-block sme-margin-right-xs \"\r\n [status]=\"item.status\" size=\"16px\"></sme-status-icon>\r\n </ng-template>\r\n</div>\r\n" }] }], function () { return [{ type: i0.Injector }]; }, { header: [{ type: Input }], iconUrl: [{ type: Input }], iconClass: [{ type: Input }], items: [{ type: Input }], readonlyTemplate: [{ type: ViewChild, args: ['readonlyTemplate', { static: true }] }], actionLinkTemplate: [{ type: ViewChild, args: ['actionLinkTemplate', { static: true }] }], internalLinkTemplate: [{ type: ViewChild, args: ['internalLinkTemplate', { static: true }] }], externalLinkTemplate: [{ type: ViewChild, args: ['externalLinkTemplate', { static: true }] }] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtbWFyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9zdW1tYXJ5L3N1bW1hcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvc3VtbWFyeS9zdW1tYXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsUUFBUSxFQUFFLEtBQUssRUFBVSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7SUNLdkQsdUJBQW9GOzs7SUFBMUQsaUZBQWtEOzs7SUFGOUUsNkJBQTJDO0lBQ3pDLG9DQUF1RTtJQUN2RSxtRkFBb0Y7SUFDdEYsMEJBQWU7OztJQUZFLGVBQW1CO0lBQW5CLHdDQUFtQixvQkFBQTtJQUMzQixlQUFpQjtJQUFqQix5Q0FBaUI7OztJQWV0Qix3QkFBc0c7Ozs7SUFUNUcsNkJBQXFEO0lBQ25ELCtCQUE0SCxZQUFBLFFBQUEsV0FBQTtJQUdoSCxZQUFnQjtJQUFBLGlCQUFPLEVBQUEsRUFBQTtJQUdqQyxnQ0FBd0M7SUFBQSxpQkFBQztJQUFBLGlCQUFPO0lBQ2hELCtCQUEyQjtJQUN6QixtR0FBc0c7SUFDeEcsaUJBQU0sRUFBQTtJQUVWLDBCQUFlOzs7OztJQVg2RCxlQUFpRDtJQUFqRCx3RUFBaUQ7SUFHL0csZUFBZ0I7SUFBaEIsb0NBQWdCO0lBS1QsZUFBb0M7SUFBcEMsK0RBQW9DLHdFQUFBOzs7SUFRdkQsd0NBQWdKOztJQUFyRSw2QkFBZSxpQ0FBQTs7O0lBR3RGLHdCQUFpRzs7O0lBQ2pHLDRCQUF5QztJQUFBLFlBQWdDO0lBQUEsaUJBQU87Ozs7SUFBdkMsZUFBZ0M7SUFBaEMsNERBQWdD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QUFFLEVBQUU7WUFDZixTQUFTLEVBQUUsRUFBRTtZQUNiLFNBQVMsRUFBRSxFQUFFO1NBQ2hCLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBYyxhQUFhO1FBQ3ZCLE9BQU8sa0JBQWtCLENBQUM7SUFDOUIsQ0FBQzs7bUdBaElRLGdCQUFnQjtrR0FBaEIsZ0JBQWdCOzs7Ozs7Ozs7Ozs7UUNwQjdCLDhCQUFzRCxhQUFBO1FBSWxELG1GQUdlO1FBQ2YsNkJBQW1DO1FBQUEsWUFBWTtRQUFBLGlCQUFLLEVBQUE7UUFJdEQsb0ZBWWU7UUFJZixrSEFRYztRQUdkLGtIQVFjO1FBR2QscUhBUWM7UUFHZCxxSEFRYztRQUdkLG9IQUljO1FBQ2hCLGlCQUFNOztRQXpFYSxlQUEwQjtRQUExQixtREFBMEI7UUFJTixlQUFZO1FBQVosZ0NBQVk7UUFJbEIsZUFBVTtRQUFWLG1DQUFVOzt1RkRROUIsZ0JBQWdCO2NBSjVCLFNBQVM7MkJBQ0ksYUFBYTsyREFRaEIsTUFBTTtrQkFEWixLQUFLO1lBT0MsT0FBTztrQkFEYixLQUFLO1lBT0MsU0FBUztrQkFEZixLQUFLO1lBT0MsS0FBSztrQkFEWCxLQUFLO1lBT0MsZ0JBQWdCO2tCQUR0QixTQUFTO21CQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQU94QyxrQkFBa0I7a0JBRHhCLFNBQVM7bUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBTzFDLG9CQUFvQjtrQkFEMUIsU0FBUzttQkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFPNUMsb0JBQW9CO2tCQUQxQixTQUFTO21CQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29yZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9jb21tb24vYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdW1tYXJ5SXRlbSB9IGZyb20gJy4vc3VtbWFyeS1pdGVtJztcclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAc21lRG9jIHtAbGFiZWwgU3VtbWFyeSBAaWQgc21lLXN1bW1hcnl9XHJcbiAqXHJcbiAqIEBvdmVydmlld1xyXG4gKiBAZmlsZSB7QGZpbGVwYXRoIC4vZXhhbXBsZXMvc3VtbWFyeS1vdmVydmlldy5tZH1cclxuICpcclxuICogQGV4YW1wbGUge0BsYWJlbCBCYXNpYyBVc2FnZSBAaWQgYmFzaWMtdXNhZ2V9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50LnRzIEBmaWxlcGF0aCAuL2V4YW1wbGVzL3N1bW1hcnktZXhhbXBsZS5jb21wb25lbnQudHN9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvc3VtbWFyeS1leGFtcGxlLmNvbXBvbmVudC5odG1sfVxyXG4gKlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1zdW1tYXJ5JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zdW1tYXJ5LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3VtbWFyeUNvbXBvbmVudCBleHRlbmRzIENvcmVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIC8qKlxyXG4gICAgICogSGVhZGVyIGZvciB0aGUgc3VtbWFyeSBjb250cm9sLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGhlYWRlcjogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSWNvbiB1cmwgZm9yIHRoZSBzdW1tYXJ5IGNvbnRyb2wgaWNvbi5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpY29uVXJsOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJY29uIGNsYXNzIGZvciB0aGUgc3VtbWFyeSBjb250cm9sIGljb24uXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaWNvbkNsYXNzOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBLZXktdmFsdWUgaXRlbXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBzdW1tYXJ5IGNvbnRyb2wuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaXRlbXM6IFN1bW1hcnlJdGVtW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdGVtcGxhdGUgcmVmZXJlbmNlIGZvciBkaXNwbGF5aW5nIHJlYWQtb25seSB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgncmVhZG9ubHlUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgcmVhZG9ubHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8RWxlbWVudFJlZj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdGVtcGxhdGUgcmVmZXJlbmNlIGZvciBkaXNwbGF5aW5nIGFjdGlvbiBsaW5rLlxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdhY3Rpb25MaW5rVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgcHVibGljIGFjdGlvbkxpbmtUZW1wbGF0ZTogVGVtcGxhdGVSZWY8RWxlbWVudFJlZj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdGVtcGxhdGUgcmVmZXJlbmNlIGZvciBkaXNwbGF5aW5nIGludGVybmFsIGxpbmsuXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ2ludGVybmFsTGlua1RlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgIHB1YmxpYyBpbnRlcm5hbExpbmtUZW1wbGF0ZTogVGVtcGxhdGVSZWY8RWxlbWVudFJlZj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdGVtcGxhdGUgcmVmZXJlbmNlIGZvciBkaXNwbGF5aW5nIGV4dGVybmFsIGxpbmsuXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ2V4dGVybmFsTGlua1RlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgIHB1YmxpYyBleHRlcm5hbExpbmtUZW1wbGF0ZTogVGVtcGxhdGVSZWY8RWxlbWVudFJlZj47XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3RyaW5naWZ5IHRoZSB2YWx1ZSBmb3IgdGhlIGl0ZW0uXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHN0cmluZ2lmeS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0cmluZ2lmeVZhbHVlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmIChNc2Z0U21lLmlzTnVsbE9yV2hpdGVTcGFjZSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuICctJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKHYgPT4gdGhpcy5zdHJpbmdpZnlWYWx1ZSh2KSkuam9pbignLFxcbicpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKE1zZnRTbWUuaXNPYmplY3QodmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUsIG51bGwsIDIpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gYCR7dmFsdWV9YDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgdGVtcGxhdGUgZm9yIHRoZSBpdGVtLlxyXG4gICAgICogQHBhcmFtIGl0ZW0gVGhlIHN1bW1hcnkgaXRlbS5cclxuICAgICAqIEByZXR1cm5zIFRoZSB0ZW1wbGF0ZSBmb3IgdGhlIGl0ZW0uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRUZW1wbGF0ZShpdGVtOiBTdW1tYXJ5SXRlbSk6IFRlbXBsYXRlUmVmPEVsZW1lbnRSZWY+IHtcclxuICAgICAgICBpZiAoaXRlbS5hY3Rpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9uTGlua1RlbXBsYXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXRlbS5saW5rKSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLmlzRXh0ZXJuYWxMaW5rKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5leHRlcm5hbExpbmtUZW1wbGF0ZTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmludGVybmFsTGlua1RlbXBsYXRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRvbmx5VGVtcGxhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIGRlc2NyaXB0aW9uIGZvciB0aGUgaW50ZXJuYWwgbGluay5cclxuICAgICAqIEBwYXJhbSBpdGVtIFRoZSBzdW1tYXJ5IGl0ZW0uXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgZGVzY3JpcHRpb24gZm9yIHRoZSBpbnRlcm5hbCBsaW5rLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0SW50ZXJuYWxMaW5rRGVzY3JpcHRpb24oaXRlbTogU3VtbWFyeUl0ZW0pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLlN1bW1hcnkuSW50ZXJuYWxMaW5rLmxhYmVsLmZvcm1hdChpdGVtLmxpbmspO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSBkZXNjcmlwdGlvbiBmb3IgdGhlIGV4dGVybmFsIGxpbmsuXHJcbiAgICAgKiBAcGFyYW0gaXRlbSBUaGUgc3VtbWFyeSBpdGVtLlxyXG4gICAgICogQHJldHVybnMgVGhlIGRlc2NyaXB0aW9uIGZvciB0aGUgZXh0ZXJuYWwgbGluay5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEV4dGVybmFsTGlua0Rlc2NyaXB0aW9uKGl0ZW06IFN1bW1hcnlJdGVtKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5TdW1tYXJ5LkV4dGVybmFsTGluay5sYWJlbC5mb3JtYXQoaXRlbS5saW5rKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgdGhlIGlkQmFnIHVzZWQgYnkgdGhpcyBjb21wb25lbnQgdG8gc3RvcmUgdW5pcXVlIGVsZW1lbnQgaWRzLlxyXG4gICAgICogaWQgdmFsdWVzIHdpbGwgYmUgYXNzaWduZWQgYmUgdGhlIEBzZWUgQmFzZUNvbXBvbmVudCBzdXBlciBjbGFzcy5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUlkQmFnKCk6IE1zZnRTbWUuU3RyaW5nTWFwPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGRldGFpbHNTcGFuOiAnJyxcclxuICAgICAgICAgICAgbGFiZWxTcGFuOiAnJyxcclxuICAgICAgICAgICAgdmFsdWVTcGFuOiAnJ1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldCBsb2dTb3VyY2VOYW1lKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICdTdW1tYXJ5Q29tcG9uZW50JztcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2stdiBzbWUtbWFyZ2luLWJvdHRvbS1tZFwiPlxyXG5cclxuICA8IS0tIEhlYWRlciAtLT5cclxuICA8ZGl2IGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2staFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImljb25VcmwgfHwgaWNvbkNsYXNzXCI+XHJcbiAgICAgIDxzbWUtaWNvbi10ZXh0IFt1cmxJY29uXT1cImljb25VcmxcIiBbc2hvd1RpdGxlXT1cImZhbHNlXCI+PC9zbWUtaWNvbi10ZXh0PlxyXG4gICAgICA8c3BhbiAqbmdJZj1cIiEhaWNvbkNsYXNzXCIgY2xhc3M9XCJzbWUtbWFyZ2luLXJpZ2h0LXhzIHNtZS1pY29uIHt7aWNvbkNsYXNzfX1cIj48L3NwYW4+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxoNCBjbGFzcz1cInNtZS1mb250LWg0LW5vLXNwYWNpbmdcIj57eyBoZWFkZXIgfX08L2g0PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFN0YXJ0IG9mIGZvciBsb29wIC0tPlxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGluZGV4IGFzIGlcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzbWUtYXJyYW5nZS1zdGFjay1oIHNtZS1tYXJnaW4tdmVydGljYWwteHhzIHNtZS1zdW1tYXJ5LWl0ZW1cIiBbY2xhc3Muc21lLW1hcmdpbi1sZWZ0LW1kXT1cImljb25VcmwgfHwgaWNvbkNsYXNzXCI+XHJcbiAgICAgIDxsYWJlbD5cclxuICAgICAgICA8cD5cclxuICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInNtZS1tYXJnaW4taG9yaXpvbnRhbC14eHNcIj46PC9zcGFuPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZmxleDogMSAxIDUwJVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnZXRUZW1wbGF0ZShpdGVtKTtjb250ZXh0OnskaW1wbGljaXQ6aXRlbSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPCEtLSBFbmQgb2YgZm9yIGxvb3AgLS0+XHJcblxyXG4gIDwhLS0gUmVhZCBvbmx5IC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSAjcmVhZG9ubHlUZW1wbGF0ZSBsZXQtaXRlbSBsZXQtaT1cImluZGV4XCI+XHJcbiAgICA8c21lLWxvYWRpbmctd2hlZWwgKm5nSWY9XCJpdGVtLmxvYWRpbmcgJiYgaXRlbS5pc0FzeW5jXCIgc2l6ZT1cImV4dHJhLXNtYWxsXCIgW2lubGluZV09XCJ0cnVlXCIgW2lzQmFja2dyb3VuZFRyYW5zcGFyZW50XT1cInRydWVcIj48L3NtZS1sb2FkaW5nLXdoZWVsPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmxvYWRpbmcgfHwgIWl0ZW0uaXNBc3luY1wiPlxyXG4gICAgICA8cCBjbGFzcz1cInNtZS1yZWFkLW9ubHktdGVtcGxhdGVcIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaWRCYWcubGFiZWxTcGFuICsgaVwiIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaWRCYWcuZGV0YWlsc1NwYW4gKyBpXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImljb25UZW1wbGF0ZTtjb250ZXh0OnskaW1wbGljaXQ6aXRlbSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXRlbS5saW5rICYmICFpdGVtLmFjdGlvblwiPnt7IHN0cmluZ2lmeVZhbHVlKGl0ZW0udmFsdWUpIH19PC9zcGFuPlxyXG4gICAgICA8L3A+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8IS0tIEFjdGlvbiBsaW5rIChyb2xlIGJ1dHRvbikgLS0+XHJcbiAgPG5nLXRlbXBsYXRlICNhY3Rpb25MaW5rVGVtcGxhdGUgbGV0LWl0ZW0gbGV0LWk9XCJpbmRleFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNtZS1hcnJhbmdlLXN0YWNrLWhcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImljb25UZW1wbGF0ZTtjb250ZXh0OnskaW1wbGljaXQ6aXRlbSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5wcmVmaXhTdHJpbmdcIiBjbGFzcz1cInNtZS1wYWRkaW5nLXJpZ2h0LXhzXCI+e3sgaXRlbS5wcmVmaXhTdHJpbmcgfX08L3NwYW4+XHJcbiAgICAgIDxhIHRhYmluZGV4PVwiMFwiIGNsYXNzPVwic21lLWxpbmsgc21lLWZvY3VzLXpvbmUgc21lLWFjdGlvbi1saW5rLXRlbXBsYXRlXCIgcm9sZT1cImxpbmtcIiAoY2xpY2spPVwiaXRlbS5hY3Rpb24oaXRlbSlcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIoaWRCYWcubGFiZWxTcGFuICsgaSkgKyAnICcgKyAoaWRCYWcudmFsdWVTcGFuICsgaSlcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaWRCYWcuZGV0YWlsc1NwYW4gKyBpXCI+e3sgaXRlbS52YWx1ZSB9fTwvYT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDwhLS0gSW50ZXJuYWwgbGluayAtLT5cclxuICA8bmctdGVtcGxhdGUgI2ludGVybmFsTGlua1RlbXBsYXRlIGxldC1pdGVtIGxldC1pPVwiaW5kZXhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzbWUtYXJyYW5nZS1zdGFjay1oXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uVGVtcGxhdGU7Y29udGV4dDp7JGltcGxpY2l0Oml0ZW0sIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cIml0ZW0ucHJlZml4U3RyaW5nXCIgY2xhc3M9XCJzbWUtcGFkZGluZy1yaWdodC14c1wiPnt7IGl0ZW0ucHJlZml4U3RyaW5nIH19PC9zcGFuPlxyXG4gICAgICA8YSBjbGFzcz1cInNtZS1saW5rIHNtZS1mb2N1cy16b25lXCIgcm9sZT1cImxpbmtcIiBbcm91dGVyTGlua109XCJpdGVtLmxpbmtcIiBbZnJhZ21lbnRdPVwiaXRlbS5mcmFnbWVudFwiIFtxdWVyeVBhcmFtc109XCJpdGVtLnF1ZXJ5UGFyYW1zXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImlkQmFnLmRldGFpbHNTcGFuICsgaVwiPnt7IGl0ZW0udmFsdWUgfX08L2E+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic21lLXNjcmVlbi1yZWFkZXJcIiBbaWRdPVwiaWRCYWcuZGV0YWlsc1NwYW4gKyBpXCI+e3sgZ2V0SW50ZXJuYWxMaW5rRGVzY3JpcHRpb24oaXRlbSkgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8IS0tIEV4dGVybmFsIGxpbmsgLS0+XHJcbiAgPG5nLXRlbXBsYXRlICNleHRlcm5hbExpbmtUZW1wbGF0ZSBsZXQtaXRlbSBsZXQtaT1cImluZGV4XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2staFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvblRlbXBsYXRlO2NvbnRleHQ6eyRpbXBsaWNpdDppdGVtLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnByZWZpeFN0cmluZ1wiIGNsYXNzPVwic21lLXBhZGRpbmctcmlnaHQteHNcIj57eyBpdGVtLnByZWZpeFN0cmluZyB9fTwvc3Bhbj5cclxuICAgICAgPGEgY2xhc3M9XCJzbWUtbGluayBzbWUtZm9jdXMtem9uZSBzbWUtaWNvbiBzbWUtaWNvbi1hZnRlciBzbWUtaWNvbi1vcGVuSW5OZXdXaW5kb3dcIiByb2xlPVwibGlua1wiIFtocmVmXT1cIml0ZW0ubGlua1wiIHRhcmdldD1cIl9ibGFua1wiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpZEJhZy5kZXRhaWxzU3BhbiArIGlcIj57eyBpdGVtLnZhbHVlIH19PC9hPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInNtZS1zY3JlZW4tcmVhZGVyXCIgW2lkXT1cImlkQmFnLmRldGFpbHNTcGFuICsgaVwiPnt7IGdldEV4dGVybmFsTGlua0Rlc2NyaXB0aW9uKGl0ZW0pIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPCEtLSBJY29uIFRlbXBsYXRlIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSAjaWNvblRlbXBsYXRlIGxldC1pdGVtIGxldC1pPVwiaW5kZXhcIj5cclxuICAgIDxzcGFuICpuZ0lmPVwiISFpdGVtLmljb25DbGFzc1wiIGNsYXNzPVwic21lLW1hcmdpbi1yaWdodC14cyBzbWUtaWNvbiB7e2l0ZW0uaWNvbkNsYXNzfX1cIj48L3NwYW4+XHJcbiAgICA8c21lLXN0YXR1cy1pY29uICpuZ0lmPVwiaXRlbS5zdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBpdGVtLnN0YXR1cyAhPT0gbnVsbCAmJiAhaXRlbS5pY29uQ2xhc3NcIiBjbGFzcz1cInNtZS1sYXlvdXQtaW5saW5lLWJsb2NrIHNtZS1tYXJnaW4tcmlnaHQteHMgXCJcclxuICAgICAgW3N0YXR1c109XCJpdGVtLnN0YXR1c1wiIHNpemU9XCIxNnB4XCI+PC9zbWUtc3RhdHVzLWljb24+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==