@sedeh/into-pipes
Version:
Have you ever wanted to transform data in different parts of your application into interactive objects without writing a single line of code?
124 lines • 15.7 kB
JavaScript
import { Component, ViewChild, Output, EventEmitter } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
export class CheckboxComponent {
constructor() {
this.displayable = true;
this.disabled = false;
this.active = true;
this.validate = (item, newValue) => true;
this.onIntoComponentChange = new EventEmitter();
}
keyup(event) {
const code = event.which;
if (code === 13 && !this.disabled) {
event.target.click();
}
}
click(event, checked) {
event.stopPropagation();
event.preventDefault();
const newState = (checked ? this.state1 : this.state2);
if (!this.disabled && this.validate(this.data, newState)) {
this.displayable = false;
this.source = newState;
this.onIntoComponentChange.emit({
id: this.id,
name: this.name,
value: this.source,
type: "check",
item: this.data
});
if (this.useFont) {
setTimeout(() => {
if (this.check) {
this.check.nativeElement.focus();
}
if (this.uncheck) {
this.uncheck.nativeElement.focus();
}
}, 66);
}
else {
setTimeout(() => this.displayable = true, 66);
}
}
}
static settingsPatterns() {
return ['checkbox:true:false:false:false', 'checkbox:true:false:true:false', 'checkbox:true:false:true:true']; //state1 state2, useFont, onoff
}
transform(source, data, args) {
this.state1 = args && args.length ? String(args[0]) : "";
this.state2 = (args && args.length > 1) ? String(args[1]) : '';
this.useFont = (args && args.length > 2 && args[2].length) ? args[2] === 'true' : false;
this.onOff = (args && args.length > 3 && args[3].length) ? args[3] === 'true' : false;
this.source = String(source);
this.data = data;
}
}
CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CheckboxComponent, selector: "checkbox-component", outputs: { onIntoComponentChange: "onIntoComponentChange" }, viewQueries: [{ propertyName: "check", first: true, predicate: ["check"], descendants: true }, { propertyName: "uncheck", first: true, predicate: ["uncheck"], descendants: true }], ngImport: i0, template: `
<span *ngIf="useFont" class="check-font {{disabled ? 'disabled' : ''}}">
<span *ngIf="source === state1"
#check tabindex="{{active ? 0 : -1}}"
class="fa"
[class.fa-toggle-on]="onOff"
[class.fa-check]="!onOff"
(keyup)="keyup($event)"
(click)="click($event, false)"></span>
<span *ngIf="source === state2"
#uncheck tabindex="{{active ? 0 : -1}}"
class="fa"
checked
[class.fa-toggle-off]="onOff"
[class.fa-close]="!onOff"
(keyup)="keyup($event)"
(click)="click($event, true)"></span>
</span>
<input *ngIf="!useFont && displayable"
type="checkbox"
tabindex="{{active ? 0 : -1}}"
[disabled]="disabled"
[checked]="source===state1"
(keyup)="keyup($event)"
(click)="click($event, source!==state1)" />
`, isInline: true, styles: [":host .check-font .fa{margin:var(--sedeh-margin, 0 5px)}:host{display:table;float:left;min-height:var(--sedeh-min-height, 25px)}.check-font:hover{opacity:var(--sedeh-hover-opacity, .5)}.check-font .fa:focus{outline:none;zoom:1.1;right:var(--sedeh-shift-right, 0);position:relative;color:var(--sedeh-focus-color, darkblue)}.check-font{cursor:pointer}.check-font.disabled:hover{color:var(--sedeh-disabled-color, #888)}.check-font.disabled{color:var(--sedeh-disabled-color, #888);pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CheckboxComponent, decorators: [{
type: Component,
args: [{ selector: 'checkbox-component', template: `
<span *ngIf="useFont" class="check-font {{disabled ? 'disabled' : ''}}">
<span *ngIf="source === state1"
#check tabindex="{{active ? 0 : -1}}"
class="fa"
[class.fa-toggle-on]="onOff"
[class.fa-check]="!onOff"
(keyup)="keyup($event)"
(click)="click($event, false)"></span>
<span *ngIf="source === state2"
#uncheck tabindex="{{active ? 0 : -1}}"
class="fa"
checked
[class.fa-toggle-off]="onOff"
[class.fa-close]="!onOff"
(keyup)="keyup($event)"
(click)="click($event, true)"></span>
</span>
<input *ngIf="!useFont && displayable"
type="checkbox"
tabindex="{{active ? 0 : -1}}"
[disabled]="disabled"
[checked]="source===state1"
(keyup)="keyup($event)"
(click)="click($event, source!==state1)" />
`, styles: [":host .check-font .fa{margin:var(--sedeh-margin, 0 5px)}:host{display:table;float:left;min-height:var(--sedeh-min-height, 25px)}.check-font:hover{opacity:var(--sedeh-hover-opacity, .5)}.check-font .fa:focus{outline:none;zoom:1.1;right:var(--sedeh-shift-right, 0);position:relative;color:var(--sedeh-focus-color, darkblue)}.check-font{cursor:pointer}.check-font.disabled:hover{color:var(--sedeh-disabled-color, #888)}.check-font.disabled{color:var(--sedeh-disabled-color, #888);pointer-events:none}\n"] }]
}], propDecorators: { check: [{
type: ViewChild,
args: ["check"]
}], uncheck: [{
type: ViewChild,
args: ["uncheck"]
}], onIntoComponentChange: [{
type: Output,
args: ["onIntoComponentChange"]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW50by1waXBlcy9zcmMvbGliL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUEyQzNFLE1BQU0sT0FBTyxpQkFBaUI7SUF4QzlCO1FBa0RFLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLGFBQVEsR0FBRyxDQUFDLElBQVMsRUFBRSxRQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQztRQVM5QywwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBa0Q1QztJQWhEQyxLQUFLLENBQUMsS0FBVTtRQUNkLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxJQUFJLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3hCO0lBQ0QsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFVLEVBQUUsT0FBZ0I7UUFDaEMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV2QixNQUFNLFFBQVEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsRUFBRTtZQUN4RCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztZQUN2QixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDO2dCQUM5QixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbEIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2FBQ2hCLENBQUMsQ0FBQztZQUNILElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7d0JBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7cUJBQ2xDO29CQUNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTt3QkFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7cUJBQ3BDO2dCQUNILENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQzthQUNQO2lCQUFNO2dCQUNMLFVBQVUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQTthQUM3QztTQUNGO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0I7UUFDckIsT0FBTyxDQUFDLGlDQUFpQyxFQUFFLGdDQUFnQyxFQUFFLCtCQUErQixDQUFDLENBQUMsQ0FBQywrQkFBK0I7SUFDaEosQ0FBQztJQUNELFNBQVMsQ0FBQyxNQUFXLEVBQUUsSUFBUyxFQUFFLElBQVc7UUFDM0MsSUFBSSxDQUFDLE1BQU0sR0FBRSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLE1BQU0sR0FBRSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsT0FBTyxHQUFFLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxLQUFLLEdBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckYsSUFBSSxDQUFDLE1BQU0sR0FBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQzs7K0dBdkVVLGlCQUFpQjttR0FBakIsaUJBQWlCLDRTQXRDaEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0F5QlQ7NEZBYVEsaUJBQWlCO2tCQXhDN0IsU0FBUzsrQkFDSSxvQkFBb0IsWUFDcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0F5QlQ7OEJBNkJILEtBQUs7c0JBREosU0FBUzt1QkFBQyxPQUFPO2dCQUlsQixPQUFPO3NCQUROLFNBQVM7dUJBQUMsU0FBUztnQkFJcEIscUJBQXFCO3NCQURwQixNQUFNO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQaXBlQ29tcG9uZW50SW50ZXJmYWNlIH0gZnJvbSAnLi4vY29tbW9uL3BpcGUuY29tcG9uZW50LmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY2hlY2tib3gtY29tcG9uZW50JyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICA8c3BhbiAqbmdJZj1cInVzZUZvbnRcIiBjbGFzcz1cImNoZWNrLWZvbnQge3tkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiAnJ319XCI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwic291cmNlID09PSBzdGF0ZTFcIiBcclxuICAgICAgICAgICNjaGVjayB0YWJpbmRleD1cInt7YWN0aXZlID8gMCA6IC0xfX1cIiBcclxuICAgICAgICAgIGNsYXNzPVwiZmFcIiBcclxuICAgICAgICAgIFtjbGFzcy5mYS10b2dnbGUtb25dPVwib25PZmZcIiBcclxuICAgICAgICAgIFtjbGFzcy5mYS1jaGVja109XCIhb25PZmZcIiBcclxuICAgICAgICAgIChrZXl1cCk9XCJrZXl1cCgkZXZlbnQpXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwiY2xpY2soJGV2ZW50LCBmYWxzZSlcIj48L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwic291cmNlID09PSBzdGF0ZTJcIlxyXG4gICAgICAgICAgI3VuY2hlY2sgdGFiaW5kZXg9XCJ7e2FjdGl2ZSA/IDAgOiAtMX19XCIgXHJcbiAgICAgICAgICBjbGFzcz1cImZhXCIgXHJcbiAgICAgICAgICBjaGVja2VkXHJcbiAgICAgICAgICBbY2xhc3MuZmEtdG9nZ2xlLW9mZl09XCJvbk9mZlwiIFxyXG4gICAgICAgICAgW2NsYXNzLmZhLWNsb3NlXT1cIiFvbk9mZlwiIFxyXG4gICAgICAgICAgKGtleXVwKT1cImtleXVwKCRldmVudClcIiBcclxuICAgICAgICAgIChjbGljayk9XCJjbGljaygkZXZlbnQsIHRydWUpXCI+PC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPGlucHV0ICpuZ0lmPVwiIXVzZUZvbnQgJiYgZGlzcGxheWFibGVcIiBcclxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgXHJcbiAgICAgICAgICAgIHRhYmluZGV4PVwie3thY3RpdmUgPyAwIDogLTF9fVwiIFxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJzb3VyY2U9PT1zdGF0ZTFcIiBcclxuICAgICAgICAgICAgKGtleXVwKT1cImtleXVwKCRldmVudClcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2soJGV2ZW50LCBzb3VyY2UhPT1zdGF0ZTEpXCIgLz5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtcclxuICAgICAgYFxyXG4gICAgICA6aG9zdCAuY2hlY2stZm9udCAuZmF7bWFyZ2luOiB2YXIoLS1zZWRlaC1tYXJnaW4sIDAgNXB4KTt9XHJcbiAgICAgIDpob3N0IHtkaXNwbGF5OnRhYmxlO2Zsb2F0OmxlZnQ7bWluLWhlaWdodDogdmFyKC0tc2VkZWgtbWluLWhlaWdodCwgMjVweCk7fVxyXG4gICAgICAuY2hlY2stZm9udDpob3ZlcntvcGFjaXR5OiB2YXIoLS1zZWRlaC1ob3Zlci1vcGFjaXR5LCAwLjUpO31cclxuICAgICAgLmNoZWNrLWZvbnQgLmZhOmZvY3Vze291dGxpbmU6IG5vbmU7em9vbTogMS4xO3JpZ2h0OiB2YXIoLS1zZWRlaC1zaGlmdC1yaWdodCwgMCk7cG9zaXRpb246IHJlbGF0aXZlO2NvbG9yOiB2YXIoLS1zZWRlaC1mb2N1cy1jb2xvciwgZGFya2JsdWUpO31cclxuICAgICAgLmNoZWNrLWZvbnQge2N1cnNvcjogcG9pbnRlcjt9XHJcbiAgICAgIC5jaGVjay1mb250LmRpc2FibGVkOmhvdmVye2NvbG9yOiB2YXIoLS1zZWRlaC1kaXNhYmxlZC1jb2xvciwgIzg4OCk7fVxyXG4gICAgICAuY2hlY2stZm9udC5kaXNhYmxlZCB7Y29sb3I6IHZhcigtLXNlZGVoLWRpc2FibGVkLWNvbG9yLCAjODg4KTsgcG9pbnRlci1ldmVudHM6IG5vbmV9XHJcbiAgICAgIGBcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgUGlwZUNvbXBvbmVudEludGVyZmFjZSB7XHJcblxyXG4gIGRhdGE6IGFueTtcclxuICBzb3VyY2UhOiBzdHJpbmc7XHJcbiAgc3RhdGUxITogc3RyaW5nO1xyXG4gIHN0YXRlMiE6IHN0cmluZztcclxuICBpZCE6IHN0cmluZztcclxuICBuYW1lITogc3RyaW5nO1xyXG4gIG9uT2ZmITogYm9vbGVhbjtcclxuICB1c2VGb250ITogYm9vbGVhbjtcclxuICBkaXNwbGF5YWJsZSA9IHRydWU7XHJcbiAgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBhY3RpdmUgPSB0cnVlO1xyXG4gIHZhbGlkYXRlID0gKGl0ZW06IGFueSwgbmV3VmFsdWU6IGFueSkgPT4gdHJ1ZTtcclxuXHJcbiAgQFZpZXdDaGlsZChcImNoZWNrXCIpXHJcbiAgY2hlY2s6IGFueTtcclxuXHJcbiAgQFZpZXdDaGlsZChcInVuY2hlY2tcIilcclxuICB1bmNoZWNrOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoXCJvbkludG9Db21wb25lbnRDaGFuZ2VcIilcclxuICBvbkludG9Db21wb25lbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGtleXVwKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGNvZGUgPSBldmVudC53aGljaDtcclxuICAgIGlmIChjb2RlID09PSAxMyAmJiAhdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICBldmVudC50YXJnZXQuY2xpY2soKTtcclxuXHRcdH1cclxuICB9XHJcblxyXG4gIGNsaWNrKGV2ZW50OiBhbnksIGNoZWNrZWQ6IGJvb2xlYW4pIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICBjb25zdCBuZXdTdGF0ZSA9IChjaGVja2VkID8gdGhpcy5zdGF0ZTEgOiB0aGlzLnN0YXRlMik7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy52YWxpZGF0ZSh0aGlzLmRhdGEsIG5ld1N0YXRlKSkge1xyXG4gICAgICB0aGlzLmRpc3BsYXlhYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc291cmNlID0gbmV3U3RhdGU7XHJcbiAgICAgIHRoaXMub25JbnRvQ29tcG9uZW50Q2hhbmdlLmVtaXQoe1xyXG4gICAgICAgIGlkOiB0aGlzLmlkLFxyXG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSxcclxuICAgICAgICB2YWx1ZTogdGhpcy5zb3VyY2UsXHJcbiAgICAgICAgdHlwZTogXCJjaGVja1wiLFxyXG4gICAgICAgIGl0ZW06IHRoaXMuZGF0YVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHRoaXMudXNlRm9udCkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuY2hlY2spIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVjay5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy51bmNoZWNrKSB7XHJcbiAgICAgICAgICAgIHRoaXMudW5jaGVjay5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSw2Nik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKT0+IHRoaXMuZGlzcGxheWFibGUgPSB0cnVlLCA2NilcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIHNldHRpbmdzUGF0dGVybnMoKSB7XHJcbiAgICByZXR1cm4gWydjaGVja2JveDp0cnVlOmZhbHNlOmZhbHNlOmZhbHNlJywgJ2NoZWNrYm94OnRydWU6ZmFsc2U6dHJ1ZTpmYWxzZScsICdjaGVja2JveDp0cnVlOmZhbHNlOnRydWU6dHJ1ZSddOyAvL3N0YXRlMSBzdGF0ZTIsIHVzZUZvbnQsIG9ub2ZmXHJcbiAgfVxyXG4gIHRyYW5zZm9ybShzb3VyY2U6IGFueSwgZGF0YTogYW55LCBhcmdzOiBhbnlbXSkge1xyXG4gICAgdGhpcy5zdGF0ZTE9IGFyZ3MgJiYgYXJncy5sZW5ndGggPyBTdHJpbmcoYXJnc1swXSkgOiBcIlwiO1xyXG4gICAgdGhpcy5zdGF0ZTI9IChhcmdzICYmIGFyZ3MubGVuZ3RoID4gMSkgPyBTdHJpbmcoYXJnc1sxXSkgIDogJyc7XHJcbiAgICB0aGlzLnVzZUZvbnQ9IChhcmdzICYmIGFyZ3MubGVuZ3RoID4gMiAmJiBhcmdzWzJdLmxlbmd0aCkgPyBhcmdzWzJdID09PSAndHJ1ZScgOiBmYWxzZTtcclxuICAgIHRoaXMub25PZmY9IChhcmdzICYmIGFyZ3MubGVuZ3RoID4gMyAmJiBhcmdzWzNdLmxlbmd0aCkgPyBhcmdzWzNdID09PSAndHJ1ZScgOiBmYWxzZTtcclxuICAgIHRoaXMuc291cmNlPSBTdHJpbmcoc291cmNlKTtcclxuICAgIHRoaXMuZGF0YSA9IGRhdGE7XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=