@nova-ui/bits
Version:
SolarWinds Nova Framework
65 lines • 21 kB
JavaScript
// © 2022 SolarWinds Worldwide, LLC. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, } from "@angular/core";
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "../../icon/icon.component";
import * as i3 from "../../tooltip/tooltip.directive";
/**
* @ignore
*/
export class ChipComponent {
constructor(host, cdRef) {
this.host = host;
this.cdRef = cdRef;
/**
* Event that is fired when single item is cleared (by clicking on remove icon).
*/
this.remove = new EventEmitter();
}
ngAfterViewInit() {
this.isContentProjected = Boolean(this.contentTemplate.createEmbeddedView(undefined).rootNodes.length);
this.cdRef.detectChanges();
}
onRemove() {
this.remove.emit();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChipComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChipComponent, selector: "nui-chip", inputs: { item: "item", closeButtonTooltip: "closeButtonTooltip", customClass: "customClass" }, outputs: { remove: "remove" }, host: { attributes: { "role": "listitem" }, classAttribute: "nui-chip" }, viewQueries: [{ propertyName: "contentTemplate", first: true, predicate: ["projection"], descendants: true }], ngImport: i0, template: "<div class=\"nui-chip__value\" [ngClass]=\"customClass\">\n <span\n class=\"nui-chip__value-name\"\n [title]=\"!isContentProjected ? item?.label : ''\"\n [ngClass]=\"{ projected: isContentProjected }\"\n >\n <ng-container *ngIf=\"isContentProjected; else itemLabel\">\n <ng-container *ngTemplateOutlet=\"projection\"></ng-container>\n </ng-container>\n </span>\n <nui-icon\n (click)=\"onRemove()\"\n [nuiTooltip]=\"closeButtonTooltip\"\n icon=\"remove\"\n iconSize=\"small\"\n cssClass=\"nui-chip__value-remove\"\n ></nui-icon>\n</div>\n\n<ng-template #projection><ng-content></ng-content></ng-template>\n<ng-template #itemLabel>{{ item?.label }}</ng-template>\n", styles: [".nui .nui-chip .nui-tag{padding:0 10px;display:inline-flex;align-items:center;outline:none;margin-right:1px;box-sizing:border-box;height:18px;border-radius:9px;font-size:11px;border:1px solid gray;border-color:var(--gray,#d5d5d5)}.nui .nui-chip .nui-tag-default{background:var(--nui-color-bg-accordion_header,rgba(17, 17, 17, .06))}.nui .nui-chip .nui-tag-info{background-color:var(--nui-color-semantic-info,#1c8eb1)}.nui .nui-chip .nui-tag-ok{background-color:var(--nui-color-semantic-ok,#00a753)}.nui .nui-chip .nui-tag-warning{background-color:var(--nui-color-semantic-warning,#fec405)}.nui .nui-chip .nui-tag-critical{background-color:var(--nui-color-semantic-critical,#dd2c00)}.nui .nui-chip .nui-tag-text-light{color:var(--nui-color-text-light,#fff)}.nui .nui-chip .nui-tag-with-border-info{background:var(--nui-color-semantic-info-bg,#e8f4f7);border-color:var(--nui-color-line-info,#1c8eb1)}.nui .nui-chip .nui-tag-with-border-ok{background:var(--nui-color-semantic-ok-bg,#e6f6ee);border-color:var(--nui-color-line-ok,#00a753)}.nui .nui-chip .nui-tag-with-border-warning{background:var(--nui-color-semantic-warning-bg,#fff9e6);border-color:var(--nui-color-line-warning,#fec405)}.nui .nui-chip .nui-tag-with-border-critical{background:var(--nui-color-semantic-critical-bg,#fceae6);border-color:var(--nui-color-line-critical,#dd2c00)}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag:hover{background-color:var(--nui-color-bg-accordion_header,rgba(17, 17, 17, .06))}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-default:hover{background-color:var(--nui-color-bg-accordion_header-hover,rgba(17, 17, 17, .11))}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-info:hover{background-color:var(--nui-color-semantic-info-hover,#19809f)}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-ok:hover{background-color:var(--nui-color-semantic-ok-hover,#00964b)}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-warning:hover{background-color:var(--nui-color-semantic-warning-hover,#e5b005)}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-critical:hover{background-color:var(--nui-color-semantic-critical-hover,#c72800)}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-with-border-info:hover{background-color:var(--nui-color-semantic-info-bg-hover,#d2e8ef);border-color:var(--nui-color-semantic-info-hover,#19809f)}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-with-border-ok:hover{background-color:var(--nui-color-semantic-ok-bg-hover,#cceddd);border-color:var(--nui-color-semantic-ok-hover,#00964b)}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-with-border-warning:hover{background-color:var(--nui-color-semantic-warning-bg-hover,#fff3cd);border-color:var(--nui-color-semantic-warning-hover,#e5b005)}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-with-border-critical:hover{background-color:var(--nui-color-semantic-critical-bg-hover,#f8d5cc);border-color:var(--nui-color-semantic-critical-hover,#c72800)}.nui .nui-chip .nui-tag-with-icon nui-icon{padding-right:6px}.nui .nui-chip__value{padding:0 10px;display:inline-flex;align-items:center;outline:none;margin-right:1px;box-sizing:border-box;height:18px;border-radius:9px;font-size:11px;border:1px solid gray;border-color:var(--gray,#d5d5d5);border:none;background-color:var(--nui-color-bg-accordion_header,rgba(17, 17, 17, .06))}.nui .nui-chip__value:hover:not([class*=nui-tag-]){background-color:var(--nui-color-bg-accordion_header-hover,rgba(17, 17, 17, .11))}.nui .nui-chip__value-name{font-size:11px;max-width:200px;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}.nui .nui-chip__value-name.projected{display:flex;align-items:center}.nui .nui-chip__value.unlimited-width .nui-chip__value-name{max-width:unset}.nui .nui-chip__value-remove{cursor:pointer;margin:0 0 0 5px}.nui .nui-chip__value-remove svg *{fill:var(--nui-color-icon-highlight,#111)}.nui .nui-chip__value.nui-tag-text-light .nui-chip__value-remove svg *{fill:var(--nui-color-text-light,#fff)}.nui .nui-chip__value-drag{display:none}.nui .nui-chips__vertical .nui-chip__value{display:flex;margin-top:1px;margin-right:0}.nui .nui-chips__vertical .nui-chip__value-name{flex:auto}.nui .nui-chips__vertical .nui-chip__value-remove{float:right}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "nui-icon", inputs: ["iconColor", "brushType", "iconHoverColor", "iconSize", "cssClass", "fillContainer", "status", "childStatus", "icon", "counter"] }, { kind: "directive", type: i3.TooltipDirective, selector: "[nuiTooltip]", inputs: ["tooltipPlacement", "nuiTooltipDisabled", "nuiTooltipEllipsis", "nuiTooltip"], exportAs: ["nuiTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChipComponent, decorators: [{
type: Component,
args: [{ selector: "nui-chip", encapsulation: ViewEncapsulation.None, host: {
class: "nui-chip",
role: "listitem",
}, template: "<div class=\"nui-chip__value\" [ngClass]=\"customClass\">\n <span\n class=\"nui-chip__value-name\"\n [title]=\"!isContentProjected ? item?.label : ''\"\n [ngClass]=\"{ projected: isContentProjected }\"\n >\n <ng-container *ngIf=\"isContentProjected; else itemLabel\">\n <ng-container *ngTemplateOutlet=\"projection\"></ng-container>\n </ng-container>\n </span>\n <nui-icon\n (click)=\"onRemove()\"\n [nuiTooltip]=\"closeButtonTooltip\"\n icon=\"remove\"\n iconSize=\"small\"\n cssClass=\"nui-chip__value-remove\"\n ></nui-icon>\n</div>\n\n<ng-template #projection><ng-content></ng-content></ng-template>\n<ng-template #itemLabel>{{ item?.label }}</ng-template>\n", styles: [".nui .nui-chip .nui-tag{padding:0 10px;display:inline-flex;align-items:center;outline:none;margin-right:1px;box-sizing:border-box;height:18px;border-radius:9px;font-size:11px;border:1px solid gray;border-color:var(--gray,#d5d5d5)}.nui .nui-chip .nui-tag-default{background:var(--nui-color-bg-accordion_header,rgba(17, 17, 17, .06))}.nui .nui-chip .nui-tag-info{background-color:var(--nui-color-semantic-info,#1c8eb1)}.nui .nui-chip .nui-tag-ok{background-color:var(--nui-color-semantic-ok,#00a753)}.nui .nui-chip .nui-tag-warning{background-color:var(--nui-color-semantic-warning,#fec405)}.nui .nui-chip .nui-tag-critical{background-color:var(--nui-color-semantic-critical,#dd2c00)}.nui .nui-chip .nui-tag-text-light{color:var(--nui-color-text-light,#fff)}.nui .nui-chip .nui-tag-with-border-info{background:var(--nui-color-semantic-info-bg,#e8f4f7);border-color:var(--nui-color-line-info,#1c8eb1)}.nui .nui-chip .nui-tag-with-border-ok{background:var(--nui-color-semantic-ok-bg,#e6f6ee);border-color:var(--nui-color-line-ok,#00a753)}.nui .nui-chip .nui-tag-with-border-warning{background:var(--nui-color-semantic-warning-bg,#fff9e6);border-color:var(--nui-color-line-warning,#fec405)}.nui .nui-chip .nui-tag-with-border-critical{background:var(--nui-color-semantic-critical-bg,#fceae6);border-color:var(--nui-color-line-critical,#dd2c00)}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag:hover{background-color:var(--nui-color-bg-accordion_header,rgba(17, 17, 17, .06))}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-default:hover{background-color:var(--nui-color-bg-accordion_header-hover,rgba(17, 17, 17, .11))}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-info:hover{background-color:var(--nui-color-semantic-info-hover,#19809f)}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-ok:hover{background-color:var(--nui-color-semantic-ok-hover,#00964b)}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-warning:hover{background-color:var(--nui-color-semantic-warning-hover,#e5b005)}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-critical:hover{background-color:var(--nui-color-semantic-critical-hover,#c72800)}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-with-border-info:hover{background-color:var(--nui-color-semantic-info-bg-hover,#d2e8ef);border-color:var(--nui-color-semantic-info-hover,#19809f)}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-with-border-ok:hover{background-color:var(--nui-color-semantic-ok-bg-hover,#cceddd);border-color:var(--nui-color-semantic-ok-hover,#00964b)}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-with-border-warning:hover{background-color:var(--nui-color-semantic-warning-bg-hover,#fff3cd);border-color:var(--nui-color-semantic-warning-hover,#e5b005)}.nui .nui-chip .nui-tag-with-hover-styles.nui-tag-with-border-critical:hover{background-color:var(--nui-color-semantic-critical-bg-hover,#f8d5cc);border-color:var(--nui-color-semantic-critical-hover,#c72800)}.nui .nui-chip .nui-tag-with-icon nui-icon{padding-right:6px}.nui .nui-chip__value{padding:0 10px;display:inline-flex;align-items:center;outline:none;margin-right:1px;box-sizing:border-box;height:18px;border-radius:9px;font-size:11px;border:1px solid gray;border-color:var(--gray,#d5d5d5);border:none;background-color:var(--nui-color-bg-accordion_header,rgba(17, 17, 17, .06))}.nui .nui-chip__value:hover:not([class*=nui-tag-]){background-color:var(--nui-color-bg-accordion_header-hover,rgba(17, 17, 17, .11))}.nui .nui-chip__value-name{font-size:11px;max-width:200px;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}.nui .nui-chip__value-name.projected{display:flex;align-items:center}.nui .nui-chip__value.unlimited-width .nui-chip__value-name{max-width:unset}.nui .nui-chip__value-remove{cursor:pointer;margin:0 0 0 5px}.nui .nui-chip__value-remove svg *{fill:var(--nui-color-icon-highlight,#111)}.nui .nui-chip__value.nui-tag-text-light .nui-chip__value-remove svg *{fill:var(--nui-color-text-light,#fff)}.nui .nui-chip__value-drag{display:none}.nui .nui-chips__vertical .nui-chip__value{display:flex;margin-top:1px;margin-right:0}.nui .nui-chips__vertical .nui-chip__value-name{flex:auto}.nui .nui-chips__vertical .nui-chip__value-remove{float:right}\n"] }]
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { item: [{
type: Input
}], closeButtonTooltip: [{
type: Input
}], customClass: [{
type: Input
}], remove: [{
type: Output
}], contentTemplate: [{
type: ViewChild,
args: ["projection"]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NoaXBzL2NoaXAvY2hpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NoaXBzL2NoaXAvY2hpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7QUFDekQsRUFBRTtBQUNGLCtFQUErRTtBQUMvRSw0RUFBNEU7QUFDNUUsOEVBQThFO0FBQzlFLCtFQUErRTtBQUMvRSw4RUFBOEU7QUFDOUUsNERBQTREO0FBQzVELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsdURBQXVEO0FBQ3ZELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsNEVBQTRFO0FBQzVFLCtFQUErRTtBQUMvRSwwRUFBMEU7QUFDMUUsaUZBQWlGO0FBQ2pGLDZFQUE2RTtBQUM3RSxpQkFBaUI7QUFFakIsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDOzs7OztBQUl2Qjs7R0FFRztBQVdILE1BQU0sT0FBTyxhQUFhO0lBMEJ0QixZQUFtQixJQUFnQixFQUFVLEtBQXdCO1FBQWxELFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQVRyRTs7V0FFRztRQUNjLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBTXNCLENBQUM7SUFFbEUsZUFBZTtRQUNsQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQ3RFLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOytHQXJDUSxhQUFhO21HQUFiLGFBQWEsd1dDaEQxQix3dkJBcUJBOzs0RkQyQmEsYUFBYTtrQkFWekIsU0FBUzsrQkFDSSxVQUFVLGlCQUdMLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0YsS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLElBQUksRUFBRSxVQUFVO3FCQUNuQjsrR0FNZSxJQUFJO3NCQUFuQixLQUFLO2dCQUlVLGtCQUFrQjtzQkFBakMsS0FBSztnQkFHVSxXQUFXO3NCQUExQixLQUFLO2dCQVNXLE1BQU07c0JBQXRCLE1BQU07Z0JBSTBCLGVBQWU7c0JBQS9DLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8vIMKpIDIwMjIgU29sYXJXaW5kcyBXb3JsZHdpZGUsIExMQy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG9cbi8vICBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZVxuLy8gIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vclxuLy8gIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyAgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vICBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vICBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vICBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyAgVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IElDaGlwc0l0ZW0gfSBmcm9tIFwiLi4vcHVibGljLWFwaVwiO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibnVpLWNoaXBcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2NoaXAuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vY2hpcC5jb21wb25lbnQubGVzc1wiXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6IFwibnVpLWNoaXBcIixcbiAgICAgICAgcm9sZTogXCJsaXN0aXRlbVwiLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIENoaXBDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBWYWx1ZSBwYXNzZWQgdG8gZGlzcGxheSBhcyBhIGNoaXAuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGl0ZW06IElDaGlwc0l0ZW07XG4gICAgLyoqXG4gICAgICogVmFsdWUgcGFzc2VkIHRvIGRpc3BsYXkgYSB0b29sdGlwIGZvciB0aGUgJ2Nsb3NlJyBidXR0b25cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgY2xvc2VCdXR0b25Ub29sdGlwOiBzdHJpbmc7XG5cbiAgICAvKiogQ3VzdG9tIGNzcyBjbGFzcyB0byBiZSBhZGRlZCB0byB0aGUgY2hpcCBlbGVtZW50ICovXG4gICAgQElucHV0KCkgcHVibGljIGN1c3RvbUNsYXNzOlxuICAgICAgICB8IHN0cmluZ1xuICAgICAgICB8IHN0cmluZ1tdXG4gICAgICAgIHwgU2V0PHN0cmluZz5cbiAgICAgICAgfCB7IFtrbGFzczogc3RyaW5nXTogYW55IH07XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB0aGF0IGlzIGZpcmVkIHdoZW4gc2luZ2xlIGl0ZW0gaXMgY2xlYXJlZCAoYnkgY2xpY2tpbmcgb24gcmVtb3ZlIGljb24pLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBwdWJsaWMgaXNDb250ZW50UHJvamVjdGVkOiBib29sZWFuO1xuXG4gICAgQFZpZXdDaGlsZChcInByb2plY3Rpb25cIikgcHJpdmF0ZSBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaG9zdDogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzQ29udGVudFByb2plY3RlZCA9IEJvb2xlYW4oXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRUZW1wbGF0ZS5jcmVhdGVFbWJlZGRlZFZpZXcodW5kZWZpbmVkKS5yb290Tm9kZXMubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblJlbW92ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmUuZW1pdCgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJudWktY2hpcF9fdmFsdWVcIiBbbmdDbGFzc109XCJjdXN0b21DbGFzc1wiPlxuICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibnVpLWNoaXBfX3ZhbHVlLW5hbWVcIlxuICAgICAgICBbdGl0bGVdPVwiIWlzQ29udGVudFByb2plY3RlZCA/IGl0ZW0/LmxhYmVsIDogJydcIlxuICAgICAgICBbbmdDbGFzc109XCJ7IHByb2plY3RlZDogaXNDb250ZW50UHJvamVjdGVkIH1cIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQ29udGVudFByb2plY3RlZDsgZWxzZSBpdGVtTGFiZWxcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcm9qZWN0aW9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvc3Bhbj5cbiAgICA8bnVpLWljb25cbiAgICAgICAgKGNsaWNrKT1cIm9uUmVtb3ZlKClcIlxuICAgICAgICBbbnVpVG9vbHRpcF09XCJjbG9zZUJ1dHRvblRvb2x0aXBcIlxuICAgICAgICBpY29uPVwicmVtb3ZlXCJcbiAgICAgICAgaWNvblNpemU9XCJzbWFsbFwiXG4gICAgICAgIGNzc0NsYXNzPVwibnVpLWNoaXBfX3ZhbHVlLXJlbW92ZVwiXG4gICAgPjwvbnVpLWljb24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNwcm9qZWN0aW9uPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNpdGVtTGFiZWw+e3sgaXRlbT8ubGFiZWwgfX08L25nLXRlbXBsYXRlPlxuIl19