@biit-solutions/wizardry-theme 1.22.6 → 1.22.8
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.
- package/esm2020/inputs/biit-slider-option-vertical/biit-slider-option-vertical.component.mjs +2 -2
- package/esm2020/inputs/biit-toggle/biit-toggle.component.mjs +8 -5
- package/esm2020/login/biit-login/biit-login.component.mjs +1 -1
- package/esm2020/table/biit-table/biit-table.component.mjs +5 -2
- package/fesm2015/biit-solutions-wizardry-theme-inputs.mjs +7 -5
- package/fesm2015/biit-solutions-wizardry-theme-inputs.mjs.map +1 -1
- package/fesm2015/biit-solutions-wizardry-theme-login.mjs +1 -1
- package/fesm2015/biit-solutions-wizardry-theme-login.mjs.map +1 -1
- package/fesm2015/biit-solutions-wizardry-theme-table.mjs +3 -0
- package/fesm2015/biit-solutions-wizardry-theme-table.mjs.map +1 -1
- package/fesm2020/biit-solutions-wizardry-theme-inputs.mjs +7 -5
- package/fesm2020/biit-solutions-wizardry-theme-inputs.mjs.map +1 -1
- package/fesm2020/biit-solutions-wizardry-theme-login.mjs +1 -1
- package/fesm2020/biit-solutions-wizardry-theme-login.mjs.map +1 -1
- package/fesm2020/biit-solutions-wizardry-theme-table.mjs +3 -0
- package/fesm2020/biit-solutions-wizardry-theme-table.mjs.map +1 -1
- package/inputs/biit-toggle/biit-toggle.component.d.ts +2 -1
- package/package.json +1 -1
- package/table/biit-table/biit-table.component.d.ts +2 -1
package/esm2020/inputs/biit-slider-option-vertical/biit-slider-option-vertical.component.mjs
CHANGED
|
@@ -69,7 +69,7 @@ BiitSliderOptionVerticalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion
|
|
|
69
69
|
useExisting: forwardRef(() => BiitSliderOptionVerticalComponent),
|
|
70
70
|
multi: true
|
|
71
71
|
}
|
|
72
|
-
], viewQueries: [{ propertyName: "slider", first: true, predicate: ["rangerVer"], descendants: true }, { propertyName: "tooltip", first: true, predicate: ["tooltip"], descendants: true }], ngImport: i0, template: "<div class=\"slider-vertical\">\n <input #rangerVer type=\"range\"\n orient=\"vertical\"\n class=\"vertical\"\n [class.inverted]=\"inverted\"\n [ngModel]=\"index\"\n (ngModelChange)=\"onChange(this.data[rangerVer.value].value);\"\n [min]=\"0\"\n [max]=\"data.length - 1\"\n [step]=\"1\"\n (input)=\"progressScript()\"\n (pointerdown)=\"tooltipBoxVisible = true\"\n (pointerup)=\"tooltipBoxVisible = false\"\n >\n\n <div class=\"ticks vertical\">\n <div #tooltip class=\"tooltip-slider\" [style.opacity]=\"tooltipBoxVisible && showTooltip ? '100%' : '0%'\"></div>\n <div *ngFor=\"let tick of $any(data); index as i; count as c\"\n class=\"tick\"\n [class.hide-tick]=\"!(!inverted ? data[i] : data[c-i-1]).label\"\n >\n <span></span>\n <div class=\"label\" [class.show-desc]=\"showDescription\"\n (click)=\"value = (!inverted ? data[i] : data[c-i-1]).value; onChange((!inverted ? data[i] : data[c-i-1]).value)\">\n <span>\n {{(!inverted ? data[i] : data[c-i-1]).label}}\n </span>\n <span class=\"description\" *ngIf=\"showDescription\">\n {{(!inverted ? data[i] : data[c-i-1]).description}}\n </span>\n <biit-tooltip-icon *ngIf=\"(!inverted ? data[i] : data[c-i-1]).description && !showDescription\"\n [text]=\"(!inverted ? data[i] : data[c-i-1]).description\"\n ></biit-tooltip-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [".slider-vertical{position:relative;flex:1;width:inherit;height:inherit;display:flex}.slider-vertical input[type=range]{font-size:1em;appearance:none;cursor:pointer;border:none;outline:none;background:var(--light-background);height:inherit;width:.3em;writing-mode:vertical-lr;direction:rtl}.slider-vertical input[type=range].inverted{direction:ltr}.slider-vertical input[type=range]::-webkit-slider-thumb{appearance:none;box-sizing:border-box;height:.9em;width:.9em;background-color:var(--light-background);border:.3em solid var(--component-color);-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.slider-vertical input[type=range]::-webkit-slider-thumb:hover{background-color:var(--main-color)}.slider-vertical input[type=range]:active::-webkit-slider-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]:focus::-webkit-slider-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]::-moz-range-thumb{appearance:none;box-sizing:border-box;height:.9em;width:.9em;background-color:var(--light-background);border:.3em solid var(--component-color);border-radius:0;-moz-transition:.2s ease-in-out;transition:.2s ease-in-out}.slider-vertical input[type=range]::-moz-range-thumb:hover{background-color:var(--main-color)}.slider-vertical input[type=range]:active::-moz-range-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]:focus::-moz-range-thumb{background-color:var(--main-color)}.slider-vertical .ticks{display:flex;justify-content:space-between;padding:0 0 0 3px;margin-top:5px;position:relative}.slider-vertical .ticks .tick{display:flex;flex:3.5;align-items:center;padding-left:5px;gap:3px}.slider-vertical .ticks .tick:nth-child(2){align-items:end;flex:2}.slider-vertical .ticks .tick:last-child{align-items:start;flex:2}.slider-vertical .ticks .tick.hide-tick{display:none}.slider-vertical .ticks .tick .label{display:flex;font-weight:500;flex:1;cursor:pointer;gap:.5em}.slider-vertical .ticks .tick .label.show-desc{flex-direction:column}.slider-vertical .ticks .tick .label span{line-height:120%}.slider-vertical .ticks .tick .label .description{font-size:.75em;color:
|
|
72
|
+
], viewQueries: [{ propertyName: "slider", first: true, predicate: ["rangerVer"], descendants: true }, { propertyName: "tooltip", first: true, predicate: ["tooltip"], descendants: true }], ngImport: i0, template: "<div class=\"slider-vertical\">\n <input #rangerVer type=\"range\"\n orient=\"vertical\"\n class=\"vertical\"\n [class.inverted]=\"inverted\"\n [ngModel]=\"index\"\n (ngModelChange)=\"onChange(this.data[rangerVer.value].value);\"\n [min]=\"0\"\n [max]=\"data.length - 1\"\n [step]=\"1\"\n (input)=\"progressScript()\"\n (pointerdown)=\"tooltipBoxVisible = true\"\n (pointerup)=\"tooltipBoxVisible = false\"\n >\n\n <div class=\"ticks vertical\">\n <div #tooltip class=\"tooltip-slider\" [style.opacity]=\"tooltipBoxVisible && showTooltip ? '100%' : '0%'\"></div>\n <div *ngFor=\"let tick of $any(data); index as i; count as c\"\n class=\"tick\"\n [class.hide-tick]=\"!(!inverted ? data[i] : data[c-i-1]).label\"\n >\n <span></span>\n <div class=\"label\" [class.show-desc]=\"showDescription\"\n (click)=\"value = (!inverted ? data[i] : data[c-i-1]).value; onChange((!inverted ? data[i] : data[c-i-1]).value)\">\n <span>\n {{(!inverted ? data[i] : data[c-i-1]).label}}\n </span>\n <span class=\"description\" *ngIf=\"showDescription\">\n {{(!inverted ? data[i] : data[c-i-1]).description}}\n </span>\n <biit-tooltip-icon *ngIf=\"(!inverted ? data[i] : data[c-i-1]).description && !showDescription\"\n [text]=\"(!inverted ? data[i] : data[c-i-1]).description\"\n ></biit-tooltip-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [".slider-vertical{position:relative;flex:1;width:inherit;height:inherit;display:flex}.slider-vertical input[type=range]{font-size:1em;appearance:none;cursor:pointer;border:none;outline:none;background:var(--light-background);height:inherit;width:.3em;writing-mode:vertical-lr;direction:rtl}.slider-vertical input[type=range].inverted{direction:ltr}.slider-vertical input[type=range]::-webkit-slider-thumb{appearance:none;box-sizing:border-box;height:.9em;width:.9em;background-color:var(--light-background);border:.3em solid var(--component-color);-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.slider-vertical input[type=range]::-webkit-slider-thumb:hover{background-color:var(--main-color)}.slider-vertical input[type=range]:active::-webkit-slider-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]:focus::-webkit-slider-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]::-moz-range-thumb{appearance:none;box-sizing:border-box;height:.9em;width:.9em;background-color:var(--light-background);border:.3em solid var(--component-color);border-radius:0;-moz-transition:.2s ease-in-out;transition:.2s ease-in-out}.slider-vertical input[type=range]::-moz-range-thumb:hover{background-color:var(--main-color)}.slider-vertical input[type=range]:active::-moz-range-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]:focus::-moz-range-thumb{background-color:var(--main-color)}.slider-vertical .ticks{display:flex;justify-content:space-between;padding:0 0 0 3px;margin-top:5px;position:relative}.slider-vertical .ticks .tick{display:flex;flex:3.5;align-items:center;padding-left:5px;gap:3px}.slider-vertical .ticks .tick:nth-child(2){align-items:end;flex:2}.slider-vertical .ticks .tick:last-child{align-items:start;flex:2}.slider-vertical .ticks .tick.hide-tick{display:none}.slider-vertical .ticks .tick .label{display:flex;font-weight:500;flex:1;cursor:pointer;gap:.5em}.slider-vertical .ticks .tick .label.show-desc{flex-direction:column}.slider-vertical .ticks .tick .label span{line-height:120%}.slider-vertical .ticks .tick .label .description{font-size:.75em;color:var(--secondary-color);line-height:120%;font-style:italic;font-weight:400}.slider-vertical .ticks .tick>span{display:flex;justify-content:center;width:14px;height:16px;padding:7px 2px;background-color:var(--component-color);font-weight:500;box-sizing:border-box;background-clip:content-box;font-size:1em}.slider-vertical .ticks .tick>span>span{position:absolute;top:1rem;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-align:center;display:flex;justify-content:center;gap:5px}.slider-vertical .ticks .tick>span>span>span{-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-align:center}.slider-vertical .ticks .tick>span>span biit-tooltip-icon{margin:3px}.slider-vertical .ticks .tick>span:nth-child(2)>span{left:0;text-align:left;justify-content:start}.slider-vertical .ticks .tick>span:last-child>span{right:0;text-align:right;justify-content:end}.slider-vertical .ticks.vertical{flex-direction:column-reverse;flex:1;height:inherit;margin:2px;padding:0}.slider-vertical .ticks.vertical>span{width:20px;height:14px;padding:6px}.slider-vertical .tooltip-slider{position:absolute;bottom:4.7em;transition:opacity .2s ease-in-out;pointer-events:none}.slider-vertical .tooltip-slider ::ng-deep span{font-size:1em;background:white;padding:.1em .2em;border:1px solid var(--component-color);display:block;position:relative;min-width:max-content}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { 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: "component", type: i3.BiitTooltipIconComponent, selector: "biit-tooltip-icon", inputs: ["text", "inline"] }] });
|
|
73
73
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitSliderOptionVerticalComponent, decorators: [{
|
|
74
74
|
type: Component,
|
|
75
75
|
args: [{ selector: 'biit-slider-option-vertical', providers: [
|
|
@@ -78,7 +78,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
78
78
|
useExisting: forwardRef(() => BiitSliderOptionVerticalComponent),
|
|
79
79
|
multi: true
|
|
80
80
|
}
|
|
81
|
-
], template: "<div class=\"slider-vertical\">\n <input #rangerVer type=\"range\"\n orient=\"vertical\"\n class=\"vertical\"\n [class.inverted]=\"inverted\"\n [ngModel]=\"index\"\n (ngModelChange)=\"onChange(this.data[rangerVer.value].value);\"\n [min]=\"0\"\n [max]=\"data.length - 1\"\n [step]=\"1\"\n (input)=\"progressScript()\"\n (pointerdown)=\"tooltipBoxVisible = true\"\n (pointerup)=\"tooltipBoxVisible = false\"\n >\n\n <div class=\"ticks vertical\">\n <div #tooltip class=\"tooltip-slider\" [style.opacity]=\"tooltipBoxVisible && showTooltip ? '100%' : '0%'\"></div>\n <div *ngFor=\"let tick of $any(data); index as i; count as c\"\n class=\"tick\"\n [class.hide-tick]=\"!(!inverted ? data[i] : data[c-i-1]).label\"\n >\n <span></span>\n <div class=\"label\" [class.show-desc]=\"showDescription\"\n (click)=\"value = (!inverted ? data[i] : data[c-i-1]).value; onChange((!inverted ? data[i] : data[c-i-1]).value)\">\n <span>\n {{(!inverted ? data[i] : data[c-i-1]).label}}\n </span>\n <span class=\"description\" *ngIf=\"showDescription\">\n {{(!inverted ? data[i] : data[c-i-1]).description}}\n </span>\n <biit-tooltip-icon *ngIf=\"(!inverted ? data[i] : data[c-i-1]).description && !showDescription\"\n [text]=\"(!inverted ? data[i] : data[c-i-1]).description\"\n ></biit-tooltip-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [".slider-vertical{position:relative;flex:1;width:inherit;height:inherit;display:flex}.slider-vertical input[type=range]{font-size:1em;appearance:none;cursor:pointer;border:none;outline:none;background:var(--light-background);height:inherit;width:.3em;writing-mode:vertical-lr;direction:rtl}.slider-vertical input[type=range].inverted{direction:ltr}.slider-vertical input[type=range]::-webkit-slider-thumb{appearance:none;box-sizing:border-box;height:.9em;width:.9em;background-color:var(--light-background);border:.3em solid var(--component-color);-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.slider-vertical input[type=range]::-webkit-slider-thumb:hover{background-color:var(--main-color)}.slider-vertical input[type=range]:active::-webkit-slider-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]:focus::-webkit-slider-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]::-moz-range-thumb{appearance:none;box-sizing:border-box;height:.9em;width:.9em;background-color:var(--light-background);border:.3em solid var(--component-color);border-radius:0;-moz-transition:.2s ease-in-out;transition:.2s ease-in-out}.slider-vertical input[type=range]::-moz-range-thumb:hover{background-color:var(--main-color)}.slider-vertical input[type=range]:active::-moz-range-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]:focus::-moz-range-thumb{background-color:var(--main-color)}.slider-vertical .ticks{display:flex;justify-content:space-between;padding:0 0 0 3px;margin-top:5px;position:relative}.slider-vertical .ticks .tick{display:flex;flex:3.5;align-items:center;padding-left:5px;gap:3px}.slider-vertical .ticks .tick:nth-child(2){align-items:end;flex:2}.slider-vertical .ticks .tick:last-child{align-items:start;flex:2}.slider-vertical .ticks .tick.hide-tick{display:none}.slider-vertical .ticks .tick .label{display:flex;font-weight:500;flex:1;cursor:pointer;gap:.5em}.slider-vertical .ticks .tick .label.show-desc{flex-direction:column}.slider-vertical .ticks .tick .label span{line-height:120%}.slider-vertical .ticks .tick .label .description{font-size:.75em;color:
|
|
81
|
+
], template: "<div class=\"slider-vertical\">\n <input #rangerVer type=\"range\"\n orient=\"vertical\"\n class=\"vertical\"\n [class.inverted]=\"inverted\"\n [ngModel]=\"index\"\n (ngModelChange)=\"onChange(this.data[rangerVer.value].value);\"\n [min]=\"0\"\n [max]=\"data.length - 1\"\n [step]=\"1\"\n (input)=\"progressScript()\"\n (pointerdown)=\"tooltipBoxVisible = true\"\n (pointerup)=\"tooltipBoxVisible = false\"\n >\n\n <div class=\"ticks vertical\">\n <div #tooltip class=\"tooltip-slider\" [style.opacity]=\"tooltipBoxVisible && showTooltip ? '100%' : '0%'\"></div>\n <div *ngFor=\"let tick of $any(data); index as i; count as c\"\n class=\"tick\"\n [class.hide-tick]=\"!(!inverted ? data[i] : data[c-i-1]).label\"\n >\n <span></span>\n <div class=\"label\" [class.show-desc]=\"showDescription\"\n (click)=\"value = (!inverted ? data[i] : data[c-i-1]).value; onChange((!inverted ? data[i] : data[c-i-1]).value)\">\n <span>\n {{(!inverted ? data[i] : data[c-i-1]).label}}\n </span>\n <span class=\"description\" *ngIf=\"showDescription\">\n {{(!inverted ? data[i] : data[c-i-1]).description}}\n </span>\n <biit-tooltip-icon *ngIf=\"(!inverted ? data[i] : data[c-i-1]).description && !showDescription\"\n [text]=\"(!inverted ? data[i] : data[c-i-1]).description\"\n ></biit-tooltip-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [".slider-vertical{position:relative;flex:1;width:inherit;height:inherit;display:flex}.slider-vertical input[type=range]{font-size:1em;appearance:none;cursor:pointer;border:none;outline:none;background:var(--light-background);height:inherit;width:.3em;writing-mode:vertical-lr;direction:rtl}.slider-vertical input[type=range].inverted{direction:ltr}.slider-vertical input[type=range]::-webkit-slider-thumb{appearance:none;box-sizing:border-box;height:.9em;width:.9em;background-color:var(--light-background);border:.3em solid var(--component-color);-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.slider-vertical input[type=range]::-webkit-slider-thumb:hover{background-color:var(--main-color)}.slider-vertical input[type=range]:active::-webkit-slider-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]:focus::-webkit-slider-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]::-moz-range-thumb{appearance:none;box-sizing:border-box;height:.9em;width:.9em;background-color:var(--light-background);border:.3em solid var(--component-color);border-radius:0;-moz-transition:.2s ease-in-out;transition:.2s ease-in-out}.slider-vertical input[type=range]::-moz-range-thumb:hover{background-color:var(--main-color)}.slider-vertical input[type=range]:active::-moz-range-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]:focus::-moz-range-thumb{background-color:var(--main-color)}.slider-vertical .ticks{display:flex;justify-content:space-between;padding:0 0 0 3px;margin-top:5px;position:relative}.slider-vertical .ticks .tick{display:flex;flex:3.5;align-items:center;padding-left:5px;gap:3px}.slider-vertical .ticks .tick:nth-child(2){align-items:end;flex:2}.slider-vertical .ticks .tick:last-child{align-items:start;flex:2}.slider-vertical .ticks .tick.hide-tick{display:none}.slider-vertical .ticks .tick .label{display:flex;font-weight:500;flex:1;cursor:pointer;gap:.5em}.slider-vertical .ticks .tick .label.show-desc{flex-direction:column}.slider-vertical .ticks .tick .label span{line-height:120%}.slider-vertical .ticks .tick .label .description{font-size:.75em;color:var(--secondary-color);line-height:120%;font-style:italic;font-weight:400}.slider-vertical .ticks .tick>span{display:flex;justify-content:center;width:14px;height:16px;padding:7px 2px;background-color:var(--component-color);font-weight:500;box-sizing:border-box;background-clip:content-box;font-size:1em}.slider-vertical .ticks .tick>span>span{position:absolute;top:1rem;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-align:center;display:flex;justify-content:center;gap:5px}.slider-vertical .ticks .tick>span>span>span{-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-align:center}.slider-vertical .ticks .tick>span>span biit-tooltip-icon{margin:3px}.slider-vertical .ticks .tick>span:nth-child(2)>span{left:0;text-align:left;justify-content:start}.slider-vertical .ticks .tick>span:last-child>span{right:0;text-align:right;justify-content:end}.slider-vertical .ticks.vertical{flex-direction:column-reverse;flex:1;height:inherit;margin:2px;padding:0}.slider-vertical .ticks.vertical>span{width:20px;height:14px;padding:6px}.slider-vertical .tooltip-slider{position:absolute;bottom:4.7em;transition:opacity .2s ease-in-out;pointer-events:none}.slider-vertical .tooltip-slider ::ng-deep span{font-size:1em;background:white;padding:.1em .2em;border:1px solid var(--component-color);display:block;position:relative;min-width:max-content}\n"] }]
|
|
82
82
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
|
|
83
83
|
type: Input
|
|
84
84
|
}], inverted: [{
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Component, Input, forwardRef } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
5
6
|
export class BiitToggleComponent {
|
|
6
7
|
constructor() {
|
|
7
8
|
this.disabled = false;
|
|
@@ -23,13 +24,13 @@ export class BiitToggleComponent {
|
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
26
|
BiitToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
-
BiitToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BiitToggleComponent, selector: "biit-toggle", inputs: { disabled: "disabled" }, providers: [
|
|
27
|
+
BiitToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BiitToggleComponent, selector: "biit-toggle", inputs: { disabled: "disabled", description: "description" }, providers: [
|
|
27
28
|
{
|
|
28
29
|
provide: NG_VALUE_ACCESSOR,
|
|
29
30
|
useExisting: forwardRef(() => BiitToggleComponent),
|
|
30
31
|
multi: true
|
|
31
32
|
}
|
|
32
|
-
], ngImport: i0, template: "<label class=\"toggle-base\">\n <input type=\"checkbox\" id=\"checkbox\"\n [ngModel]=\"checked\"\n (ngModelChange)=\"onToggle($event)\"\n [disabled]=\"disabled\"/>\n <div class=\"toggle-switch\" id=\"switch\">\n <div class=\"toggle-trail\"></div>\n <div class=\"toggle-box\"></div>\n </div>\n <a class=\"toggle-label\">\n <ng-content></ng-content>\n </a>\n</label>\n", styles: ["input[type=checkbox]{appearance:none;background-color:#fff;margin:0;display:flex;align-items:center;width:-moz-fit-content;width:fit-content;cursor:pointer;font-size:inherit}.toggle-base{display:flex;align-items:flex-start;width:-moz-fit-content;width:fit-content;min-height:1.2em;cursor:pointer;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-base:hover .toggle-box{transform:rotate(15deg) translate(.1em);border:.25em solid var(--main-color)}.toggle-base:has(input:checked) .toggle-trail{background:var(--selected-color)}.toggle-base:has(input:checked) .toggle-box{transform:translate(.7em) rotate(45deg);border:.25em solid var(--main-color);background:var(--main-color)}.toggle-base:has(input:disabled){pointer-events:none;cursor:default}.toggle-base:has(input:disabled) .toggle-trail{background:var(--trail-color)}.toggle-base:has(input:disabled) .toggle-box{border:.25em solid var(--main-background);background:none}.toggle-base:has(input:disabled) .toggle-label{color:var(--main-background)}.toggle-base:has(input:disabled):has(input:checked) .toggle-box{background:var(--main-background)}.toggle-switch{display:flex;align-items:center;position:relative;height:1.2em}.toggle-trail{display:inline-flex;width:1.4em;height:.25em;background:var(--trail-color);z-index:0;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-box{position:absolute;display:inline-flex;height:.7em;width:.7em;border:.25em solid var(--component-color);box-sizing:border-box;z-index:1;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-label{margin-left:.7em;cursor:inherit;line-height:1.2em;-webkit-user-select:none;user-select:none;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-label:empty{display:none}@-moz-document url-prefix(){input:checked~.toggle-switch .toggle-trail{background:var(--selected-color)}input:checked~.toggle-switch .toggle-box{transform:translate(.7em) rotate(45deg)!important;border:.25em solid var(--main-color);background:var(--main-color)}input:disabled~.toggle-switch{pointer-events:none;cursor:default}input:disabled~.toggle-switch .toggle-trail{background:var(--trail-color)}input:disabled~.toggle-switch .toggle-box{border:.25em solid var(--main-background);background:none}input:disabled~.toggle-switch .toggle-label{color:var(--main-background)}input:checked:disabled~.toggle-switch .toggle-box{background:var(--main-background)}}\n"], dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type:
|
|
33
|
+
], ngImport: i0, template: "<label class=\"toggle-base\">\n <input type=\"checkbox\" id=\"checkbox\"\n [ngModel]=\"checked\"\n (ngModelChange)=\"onToggle($event)\"\n [disabled]=\"disabled\"/>\n <div class=\"toggle-switch\" id=\"switch\">\n <div class=\"toggle-trail\"></div>\n <div class=\"toggle-box\"></div>\n </div>\n <a class=\"toggle-label\">\n <ng-content></ng-content>\n </a>\n <span *ngIf=\"description\" id=\"description\" class=\"toggle-description\">\n {{ description }}\n </span>\n</label>\n", styles: ["input[type=checkbox]{appearance:none;background-color:#fff;margin:0;display:flex;align-items:center;width:-moz-fit-content;width:fit-content;cursor:pointer;font-size:inherit}.toggle-base{display:flex;align-items:flex-start;width:-moz-fit-content;width:fit-content;min-height:1.2em;cursor:pointer;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-base:hover .toggle-box{transform:rotate(15deg) translate(.1em);border:.25em solid var(--main-color)}.toggle-base:has(input:checked) .toggle-trail{background:var(--selected-color)}.toggle-base:has(input:checked) .toggle-box{transform:translate(.7em) rotate(45deg);border:.25em solid var(--main-color);background:var(--main-color)}.toggle-base:has(input:disabled){pointer-events:none;cursor:default}.toggle-base:has(input:disabled) .toggle-trail{background:var(--trail-color)}.toggle-base:has(input:disabled) .toggle-box{border:.25em solid var(--main-background);background:none}.toggle-base:has(input:disabled) .toggle-label{color:var(--main-background)}.toggle-base:has(input:disabled):has(input:checked) .toggle-box{background:var(--main-background)}.toggle-switch{display:flex;align-items:center;position:relative;height:1.2em}.toggle-trail{display:inline-flex;width:1.4em;height:.25em;background:var(--trail-color);z-index:0;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-box{position:absolute;display:inline-flex;height:.7em;width:.7em;border:.25em solid var(--component-color);box-sizing:border-box;z-index:1;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-label{margin-left:.7em;cursor:inherit;line-height:1.2em;-webkit-user-select:none;user-select:none;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-label:empty{display:none}.toggle-description{position:absolute;display:flex;align-items:center;font-size:.75em;color:gray;padding-top:1.4em;min-height:1.05em;line-height:120%;font-style:italic}.toggle-description a{display:block;line-height:1.1em}@-moz-document url-prefix(){input:checked~.toggle-switch .toggle-trail{background:var(--selected-color)}input:checked~.toggle-switch .toggle-box{transform:translate(.7em) rotate(45deg)!important;border:.25em solid var(--main-color);background:var(--main-color)}input:disabled~.toggle-switch{pointer-events:none;cursor:default}input:disabled~.toggle-switch .toggle-trail{background:var(--trail-color)}input:disabled~.toggle-switch .toggle-box{border:.25em solid var(--main-background);background:none}input:disabled~.toggle-switch .toggle-label{color:var(--main-background)}input:checked:disabled~.toggle-switch .toggle-box{background:var(--main-background)}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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"] }] });
|
|
33
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitToggleComponent, decorators: [{
|
|
34
35
|
type: Component,
|
|
35
36
|
args: [{ selector: 'biit-toggle', providers: [
|
|
@@ -38,8 +39,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
38
39
|
useExisting: forwardRef(() => BiitToggleComponent),
|
|
39
40
|
multi: true
|
|
40
41
|
}
|
|
41
|
-
], template: "<label class=\"toggle-base\">\n <input type=\"checkbox\" id=\"checkbox\"\n [ngModel]=\"checked\"\n (ngModelChange)=\"onToggle($event)\"\n [disabled]=\"disabled\"/>\n <div class=\"toggle-switch\" id=\"switch\">\n <div class=\"toggle-trail\"></div>\n <div class=\"toggle-box\"></div>\n </div>\n <a class=\"toggle-label\">\n <ng-content></ng-content>\n </a>\n</label>\n", styles: ["input[type=checkbox]{appearance:none;background-color:#fff;margin:0;display:flex;align-items:center;width:-moz-fit-content;width:fit-content;cursor:pointer;font-size:inherit}.toggle-base{display:flex;align-items:flex-start;width:-moz-fit-content;width:fit-content;min-height:1.2em;cursor:pointer;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-base:hover .toggle-box{transform:rotate(15deg) translate(.1em);border:.25em solid var(--main-color)}.toggle-base:has(input:checked) .toggle-trail{background:var(--selected-color)}.toggle-base:has(input:checked) .toggle-box{transform:translate(.7em) rotate(45deg);border:.25em solid var(--main-color);background:var(--main-color)}.toggle-base:has(input:disabled){pointer-events:none;cursor:default}.toggle-base:has(input:disabled) .toggle-trail{background:var(--trail-color)}.toggle-base:has(input:disabled) .toggle-box{border:.25em solid var(--main-background);background:none}.toggle-base:has(input:disabled) .toggle-label{color:var(--main-background)}.toggle-base:has(input:disabled):has(input:checked) .toggle-box{background:var(--main-background)}.toggle-switch{display:flex;align-items:center;position:relative;height:1.2em}.toggle-trail{display:inline-flex;width:1.4em;height:.25em;background:var(--trail-color);z-index:0;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-box{position:absolute;display:inline-flex;height:.7em;width:.7em;border:.25em solid var(--component-color);box-sizing:border-box;z-index:1;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-label{margin-left:.7em;cursor:inherit;line-height:1.2em;-webkit-user-select:none;user-select:none;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-label:empty{display:none}@-moz-document url-prefix(){input:checked~.toggle-switch .toggle-trail{background:var(--selected-color)}input:checked~.toggle-switch .toggle-box{transform:translate(.7em) rotate(45deg)!important;border:.25em solid var(--main-color);background:var(--main-color)}input:disabled~.toggle-switch{pointer-events:none;cursor:default}input:disabled~.toggle-switch .toggle-trail{background:var(--trail-color)}input:disabled~.toggle-switch .toggle-box{border:.25em solid var(--main-background);background:none}input:disabled~.toggle-switch .toggle-label{color:var(--main-background)}input:checked:disabled~.toggle-switch .toggle-box{background:var(--main-background)}}\n"] }]
|
|
42
|
+
], template: "<label class=\"toggle-base\">\n <input type=\"checkbox\" id=\"checkbox\"\n [ngModel]=\"checked\"\n (ngModelChange)=\"onToggle($event)\"\n [disabled]=\"disabled\"/>\n <div class=\"toggle-switch\" id=\"switch\">\n <div class=\"toggle-trail\"></div>\n <div class=\"toggle-box\"></div>\n </div>\n <a class=\"toggle-label\">\n <ng-content></ng-content>\n </a>\n <span *ngIf=\"description\" id=\"description\" class=\"toggle-description\">\n {{ description }}\n </span>\n</label>\n", styles: ["input[type=checkbox]{appearance:none;background-color:#fff;margin:0;display:flex;align-items:center;width:-moz-fit-content;width:fit-content;cursor:pointer;font-size:inherit}.toggle-base{display:flex;align-items:flex-start;width:-moz-fit-content;width:fit-content;min-height:1.2em;cursor:pointer;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-base:hover .toggle-box{transform:rotate(15deg) translate(.1em);border:.25em solid var(--main-color)}.toggle-base:has(input:checked) .toggle-trail{background:var(--selected-color)}.toggle-base:has(input:checked) .toggle-box{transform:translate(.7em) rotate(45deg);border:.25em solid var(--main-color);background:var(--main-color)}.toggle-base:has(input:disabled){pointer-events:none;cursor:default}.toggle-base:has(input:disabled) .toggle-trail{background:var(--trail-color)}.toggle-base:has(input:disabled) .toggle-box{border:.25em solid var(--main-background);background:none}.toggle-base:has(input:disabled) .toggle-label{color:var(--main-background)}.toggle-base:has(input:disabled):has(input:checked) .toggle-box{background:var(--main-background)}.toggle-switch{display:flex;align-items:center;position:relative;height:1.2em}.toggle-trail{display:inline-flex;width:1.4em;height:.25em;background:var(--trail-color);z-index:0;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-box{position:absolute;display:inline-flex;height:.7em;width:.7em;border:.25em solid var(--component-color);box-sizing:border-box;z-index:1;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-label{margin-left:.7em;cursor:inherit;line-height:1.2em;-webkit-user-select:none;user-select:none;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-label:empty{display:none}.toggle-description{position:absolute;display:flex;align-items:center;font-size:.75em;color:gray;padding-top:1.4em;min-height:1.05em;line-height:120%;font-style:italic}.toggle-description a{display:block;line-height:1.1em}@-moz-document url-prefix(){input:checked~.toggle-switch .toggle-trail{background:var(--selected-color)}input:checked~.toggle-switch .toggle-box{transform:translate(.7em) rotate(45deg)!important;border:.25em solid var(--main-color);background:var(--main-color)}input:disabled~.toggle-switch{pointer-events:none;cursor:default}input:disabled~.toggle-switch .toggle-trail{background:var(--trail-color)}input:disabled~.toggle-switch .toggle-box{border:.25em solid var(--main-background);background:none}input:disabled~.toggle-switch .toggle-label{color:var(--main-background)}input:checked:disabled~.toggle-switch .toggle-box{background:var(--main-background)}}\n"] }]
|
|
42
43
|
}], propDecorators: { disabled: [{
|
|
43
44
|
type: Input
|
|
45
|
+
}], description: [{
|
|
46
|
+
type: Input
|
|
44
47
|
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlpdC10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2l6YXJkcnktdGhlbWUvaW5wdXRzL3NyYy9iaWl0LXRvZ2dsZS9iaWl0LXRvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aXphcmRyeS10aGVtZS9pbnB1dHMvc3JjL2JpaXQtdG9nZ2xlL2JpaXQtdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQXVCLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFjdkUsTUFBTSxPQUFPLG1CQUFtQjtJQVpoQztRQWFXLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJMUIsYUFBUSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDOUIsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztLQWtCdEI7SUFoQkMsUUFBUSxDQUFDLElBQWE7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFZO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ3JCLENBQUM7O2lIQXZCVSxtQkFBbUI7cUdBQW5CLG1CQUFtQixvR0FSbkI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztZQUNsRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsMEJDYkgsNGdCQWdCQTs0RkREYSxtQkFBbUI7a0JBWi9CLFNBQVM7K0JBQ0UsYUFBYSxhQUdaO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDOzRCQUNsRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFHUSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIGZvcndhcmRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmlpdC10b2dnbGUnLFxuICB0ZW1wbGF0ZVVybDogJ2JpaXQtdG9nZ2xlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2JpaXQtdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQmlpdFRvZ2dsZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCaWl0VG9nZ2xlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBjaGVja2VkOiBib29sZWFuO1xuXG4gIG9uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHt9O1xuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICBvblRvZ2dsZShpdGVtOiBib29sZWFuKSB7XG4gICAgdGhpcy5jaGVja2VkID0gaXRlbTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuY2hlY2tlZCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHdyaXRlVmFsdWUob2JqOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2VkID0gb2JqO1xuICB9XG59XG4iLCI8bGFiZWwgY2xhc3M9XCJ0b2dnbGUtYmFzZVwiPlxuICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJjaGVja2JveFwiXG4gICAgICAgICBbbmdNb2RlbF09XCJjaGVja2VkXCJcbiAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVG9nZ2xlKCRldmVudClcIlxuICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIvPlxuICA8ZGl2IGNsYXNzPVwidG9nZ2xlLXN3aXRjaFwiIGlkPVwic3dpdGNoXCI+XG4gICAgPGRpdiBjbGFzcz1cInRvZ2dsZS10cmFpbFwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0b2dnbGUtYm94XCI+PC9kaXY+XG4gIDwvZGl2PlxuICA8YSBjbGFzcz1cInRvZ2dsZS1sYWJlbFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9hPlxuICA8c3BhbiAqbmdJZj1cImRlc2NyaXB0aW9uXCIgaWQ9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwidG9nZ2xlLWRlc2NyaXB0aW9uXCI+XG4gICAgICB7eyBkZXNjcmlwdGlvbiB9fVxuICAgIDwvc3Bhbj5cbjwvbGFiZWw+XG4iXX0=
|
|
@@ -197,7 +197,7 @@ BiitLoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
197
197
|
provide: TRANSLOCO_SCOPE,
|
|
198
198
|
useValue: { scope: 'wizardry-theme/login-welcome', alias: "login-welcome" },
|
|
199
199
|
multi: true
|
|
200
|
-
}], ngImport: i0, template: "<biit-popup no-header *transloco=\"let t\">\n <div id=\"login-tabs\"\n *ngIf=\"allowSignUp && !resetView\"\n class=\"tab-buttons\"\n >\n <div id=\"tab-login\"\n [class.selected]=\"!signUpView\"\n (click)=\"signUpView = false\"\n >\n {{ t('login.log_in') }}\n </div>\n <div id=\"tab-signup\"\n [class.selected]=\"signUpView\"\n (click)=\"signUpView = true\"\n >\n {{ t('login.sign_up') }}\n </div>\n </div>\n <div class=\"login-container\" [class.allow-signup]=\"allowSignUp\">\n <div class=\"login-column\">\n <div class=\"login-icon-square\">\n <div class=\"login-keyring\"></div>\n <biit-icon [name]=\"$any('key_' + keyId)\" class=\"login-key-icon\"></biit-icon>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"resetView ? resetForm : signUpView ? signUpForm : loginForm\"></ng-container>\n </div>\n</biit-popup>\n\n<ng-template #loginForm>\n <div id=\"login-column\" class=\"login-column\" *transloco=\"let t\">\n <biit-input-text id=\"login-username\" [(ngModel)]=\"login.username\" fieldName=\"username\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.USERNAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.username')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"login-password\" [(ngModel)]=\"login.password\" fieldName=\"password\"\n [error]=\"this.loginErrors.get(LoginError.PASSWORD)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.password')}}\" [type]=\"Type.PASSWORD\" class=\"login-input\"></biit-input-text>\n <biit-toggle\n class=\"margin-vertical-14\"\n [(ngModel)]=\"login.remember\">\n {{ t('login.remember') }}\n </biit-toggle>\n <div class=\"margin-top-18 centered\">\n <button id=\"login-button\" biit-button primary\n (click)=\"performLogin()\"\n >\n {{ t('login.take_me_in') }}\n </button>\n </div>\n <div class=\"margin-top-18 centered\">\n <button biit-button tertiary *ngIf=\"allowResetPassword\"\n (click)=\"resetView = true\"\n class=\"smaller-text\"\n >\n {{ t('login.forgot') }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #resetForm>\n <div class=\"login-column-expanded\" *transloco=\"let t\">\n <span class=\"title\">\n {{ t('login.reset_password_title') }}\n </span>\n <span class=\"subtitle\"\n style=\"margin-top: 1em;\">\n {{ t('login.reset_password_subtitle') }}\n </span>\n <span class=\"body\"\n style=\"margin-top: 0.5em\">\n {{ t('login.reset_password_body') }}\n </span>\n <biit-input-text [(ngModel)]=\"resetEmail\" fieldName=\"email\" [type]=\"Type.EMAIL\"\n [error]=\"this.loginErrors.get(LoginError.EMAIL)\"\n (keyup.enter)=\"performResetPassword()\" style=\"margin-top: 2em; margin-bottom: 2.5em\"\n placeholder=\"{{t('login.email')}}\" class=\"login-input\"></biit-input-text>\n <div class=\"buttons\">\n <button biit-button (click)=\"performResetPassword()\">\n {{ t('login.reset') }}\n </button>\n <button biit-button tertiary (click)=\"restartView()\" class=\"smaller-text\">\n {{ t('login.i_remember') }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #signUpForm>\n <div id=\"signup-column\" class=\"login-column\" *transloco=\"let t\">\n <biit-input-text id=\"signup-username\" [(ngModel)]=\"signUpData.username\" fieldName=\"username\"\n *ngIf=\"!signUpGeneratedUsername\"\n [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.USERNAME)\"\n (keyup.enter)=\"performLogin()\"\n (ngModelChange)=\"usernameSearch.next($event)\"\n placeholder=\"{{t('login.username')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-name\" [(ngModel)]=\"signUpData.name\" fieldName=\"name\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.NAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.name')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-lastname\" [(ngModel)]=\"signUpData.lastname\" fieldName=\"lastname\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.LASTNAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.lastname')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-email\" [(ngModel)]=\"signUpData.email\" fieldName=\"email\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.EMAIL)\" [required]=\"true\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.email')}}\" class=\"login-input\"></biit-input-text>\n <biit-dropdown\n *ngIf=\"teams && teams.length\"\n [(ngModel)]=\"dumbTeam\"\n [required]=\"true\"\n [data]=\"teams\"\n value=\"key\"\n label=\"label\"\n title=\"{{t('login.team')}}\" class=\"login-input\"/>\n <biit-input-text id=\"signup-password\" [(ngModel)]=\"signUpData.password\" fieldName=\"password\"\n [error]=\"this.loginErrors.get(LoginError.PASSWORD)\"\n (keyup.enter)=\"performLogin()\" *ngIf=\"!signUpGeneratedPassword\"\n placeholder=\"{{t('login.password')}}\" [type]=\"Type.PASSWORD\" class=\"login-input\"></biit-input-text>\n <div class=\"margin-top-18 centered\">\n <button id=\"signup-button\" biit-button primary\n (click)=\"performSignUp()\"\n >\n {{ t('login.sign_me_up') }}\n </button>\n </div>\n </div>\n <div *transloco=\"let t\">\n <biit-popup *ngIf=\"notification && showNotification\" id=\"warning-popup\"\n [title]=\"t('login-welcome.warning_window.tittle')\"\n closable\n (onClosed)=\"showNotification = false\">\n <div [innerHTML]=\"t('login-welcome.warning_window.content')\"></div>\n </biit-popup>\n </div>\n</ng-template>\n", styles: [".login-container{display:flex;font-size:inherit;column-gap:4.2rem}.login-container.allow-signup{padding:.5rem}.login-column{width:12.8em;display:inline-flex;flex-direction:column}.login-column-expanded{width:20em;display:inline-flex;flex-direction:column}.login-key-icon{position:absolute;margin-top:1em;rotate:90deg;height:12.8em;width:12.8em}.login-keyring{width:1.1em;background:var(--main-color);height:2.85em}.login-icon-square{display:inline-flex;border:solid .175em var(--component-color);width:12.8em;height:12.8em;box-sizing:border-box;flex-direction:column;align-items:center}.login-input{margin-top:1.05em;margin-bottom:1.05em}.margin-vertical-14{margin:.7em 0}.margin-top-18{margin-top:.9em}.centered{display:inline-flex;justify-content:center}.smaller-text{font-size:.9em}.title{font-size:1.5em;font-weight:700}.subtitle{font-size:1em;font-weight:700}.body{font-size:.85em}.buttons{display:flex;align-items:center;gap:2.5em}.tab-buttons{position:absolute;right:0;top:0;width:50%;height:calc(2rem + 3px);display:flex}.tab-buttons div{display:flex;flex-grow:1;flex-shrink:0;align-items:center;justify-content:center;cursor:pointer;background:transparent;color:var(--disabled-primary-color)}.tab-buttons div:hover{border-bottom:3px solid var(--disabled-primary-color)}.tab-buttons div.selected{background:transparent;color:#262626;border-bottom:3px solid var(--active-color)}@media (max-width: 600px){::ng-deep .popup-canvas{min-width:auto!important}::ng-deep .popup-canvas .login-container{flex-direction:column-reverse;gap:1.5rem}::ng-deep .popup-canvas .login-column-expanded{min-width:12.8em}.buttons{gap:1.5em;flex-wrap:wrap}.tab-buttons{width:100%}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.BiitPopupComponent, selector: "biit-popup", inputs: ["title", "mouseEvent"], outputs: ["onClosed"] }, { kind: "directive", type: i3.BiitPopupNoHeaderDirective, selector: "[no-header]" }, { kind: "directive", type: i3.BiitPopupClosableDirective, selector: "[closable]" }, { kind: "component", type: i4.BiitIconComponent, selector: "biit-icon", inputs: ["name", "svgStyle", "pathStyle"] }, { kind: "component", type: i5.BiitInputTextComponent, selector: "biit-input-text", inputs: ["placeholder", "error", "description", "info", "type", "icon", "fieldName", "disabled", "required", "readonly", "min", "max", "minLength", "maxLength", "regEx"], outputs: ["onActionPerformed"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.BiitToggleComponent, selector: "biit-toggle", inputs: ["disabled"] }, { kind: "component", type: i7.BiitButtonComponent, selector: "button[biit-button]" }, { kind: "directive", type: i7.BiitButtonPrimaryDirective, selector: "[primary]" }, { kind: "directive", type: i7.BiitButtonTertiaryDirective, selector: "[tertiary]" }, { kind: "directive", type: i1.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i5.BiitDropdownComponent, selector: "biit-dropdown", inputs: ["title", "label", "value", "descriptionLabel", "description", "data", "primitive", "compact", "disabled", "required", "sort-asc", "sort-desc", "icon"] }] });
|
|
200
|
+
}], ngImport: i0, template: "<biit-popup no-header *transloco=\"let t\">\n <div id=\"login-tabs\"\n *ngIf=\"allowSignUp && !resetView\"\n class=\"tab-buttons\"\n >\n <div id=\"tab-login\"\n [class.selected]=\"!signUpView\"\n (click)=\"signUpView = false\"\n >\n {{ t('login.log_in') }}\n </div>\n <div id=\"tab-signup\"\n [class.selected]=\"signUpView\"\n (click)=\"signUpView = true\"\n >\n {{ t('login.sign_up') }}\n </div>\n </div>\n <div class=\"login-container\" [class.allow-signup]=\"allowSignUp\">\n <div class=\"login-column\">\n <div class=\"login-icon-square\">\n <div class=\"login-keyring\"></div>\n <biit-icon [name]=\"$any('key_' + keyId)\" class=\"login-key-icon\"></biit-icon>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"resetView ? resetForm : signUpView ? signUpForm : loginForm\"></ng-container>\n </div>\n</biit-popup>\n\n<ng-template #loginForm>\n <div id=\"login-column\" class=\"login-column\" *transloco=\"let t\">\n <biit-input-text id=\"login-username\" [(ngModel)]=\"login.username\" fieldName=\"username\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.USERNAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.username')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"login-password\" [(ngModel)]=\"login.password\" fieldName=\"password\"\n [error]=\"this.loginErrors.get(LoginError.PASSWORD)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.password')}}\" [type]=\"Type.PASSWORD\" class=\"login-input\"></biit-input-text>\n <biit-toggle\n class=\"margin-vertical-14\"\n [(ngModel)]=\"login.remember\">\n {{ t('login.remember') }}\n </biit-toggle>\n <div class=\"margin-top-18 centered\">\n <button id=\"login-button\" biit-button primary\n (click)=\"performLogin()\"\n >\n {{ t('login.take_me_in') }}\n </button>\n </div>\n <div class=\"margin-top-18 centered\">\n <button biit-button tertiary *ngIf=\"allowResetPassword\"\n (click)=\"resetView = true\"\n class=\"smaller-text\"\n >\n {{ t('login.forgot') }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #resetForm>\n <div class=\"login-column-expanded\" *transloco=\"let t\">\n <span class=\"title\">\n {{ t('login.reset_password_title') }}\n </span>\n <span class=\"subtitle\"\n style=\"margin-top: 1em;\">\n {{ t('login.reset_password_subtitle') }}\n </span>\n <span class=\"body\"\n style=\"margin-top: 0.5em\">\n {{ t('login.reset_password_body') }}\n </span>\n <biit-input-text [(ngModel)]=\"resetEmail\" fieldName=\"email\" [type]=\"Type.EMAIL\"\n [error]=\"this.loginErrors.get(LoginError.EMAIL)\"\n (keyup.enter)=\"performResetPassword()\" style=\"margin-top: 2em; margin-bottom: 2.5em\"\n placeholder=\"{{t('login.email')}}\" class=\"login-input\"></biit-input-text>\n <div class=\"buttons\">\n <button biit-button (click)=\"performResetPassword()\">\n {{ t('login.reset') }}\n </button>\n <button biit-button tertiary (click)=\"restartView()\" class=\"smaller-text\">\n {{ t('login.i_remember') }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #signUpForm>\n <div id=\"signup-column\" class=\"login-column\" *transloco=\"let t\">\n <biit-input-text id=\"signup-username\" [(ngModel)]=\"signUpData.username\" fieldName=\"username\"\n *ngIf=\"!signUpGeneratedUsername\"\n [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.USERNAME)\"\n (keyup.enter)=\"performLogin()\"\n (ngModelChange)=\"usernameSearch.next($event)\"\n placeholder=\"{{t('login.username')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-name\" [(ngModel)]=\"signUpData.name\" fieldName=\"name\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.NAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.name')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-lastname\" [(ngModel)]=\"signUpData.lastname\" fieldName=\"lastname\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.LASTNAME)\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.lastname')}}\" class=\"login-input\"></biit-input-text>\n <biit-input-text id=\"signup-email\" [(ngModel)]=\"signUpData.email\" fieldName=\"email\" [type]=\"Type.TEXT\"\n [error]=\"this.loginErrors.get(LoginError.EMAIL)\" [required]=\"true\"\n (keyup.enter)=\"performLogin()\"\n placeholder=\"{{t('login.email')}}\" class=\"login-input\"></biit-input-text>\n <biit-dropdown\n *ngIf=\"teams && teams.length\"\n [(ngModel)]=\"dumbTeam\"\n [required]=\"true\"\n [data]=\"teams\"\n value=\"key\"\n label=\"label\"\n title=\"{{t('login.team')}}\" class=\"login-input\"/>\n <biit-input-text id=\"signup-password\" [(ngModel)]=\"signUpData.password\" fieldName=\"password\"\n [error]=\"this.loginErrors.get(LoginError.PASSWORD)\"\n (keyup.enter)=\"performLogin()\" *ngIf=\"!signUpGeneratedPassword\"\n placeholder=\"{{t('login.password')}}\" [type]=\"Type.PASSWORD\" class=\"login-input\"></biit-input-text>\n <div class=\"margin-top-18 centered\">\n <button id=\"signup-button\" biit-button primary\n (click)=\"performSignUp()\"\n >\n {{ t('login.sign_me_up') }}\n </button>\n </div>\n </div>\n <div *transloco=\"let t\">\n <biit-popup *ngIf=\"notification && showNotification\" id=\"warning-popup\"\n [title]=\"t('login-welcome.warning_window.tittle')\"\n closable\n (onClosed)=\"showNotification = false\">\n <div [innerHTML]=\"t('login-welcome.warning_window.content')\"></div>\n </biit-popup>\n </div>\n</ng-template>\n", styles: [".login-container{display:flex;font-size:inherit;column-gap:4.2rem}.login-container.allow-signup{padding:.5rem}.login-column{width:12.8em;display:inline-flex;flex-direction:column}.login-column-expanded{width:20em;display:inline-flex;flex-direction:column}.login-key-icon{position:absolute;margin-top:1em;rotate:90deg;height:12.8em;width:12.8em}.login-keyring{width:1.1em;background:var(--main-color);height:2.85em}.login-icon-square{display:inline-flex;border:solid .175em var(--component-color);width:12.8em;height:12.8em;box-sizing:border-box;flex-direction:column;align-items:center}.login-input{margin-top:1.05em;margin-bottom:1.05em}.margin-vertical-14{margin:.7em 0}.margin-top-18{margin-top:.9em}.centered{display:inline-flex;justify-content:center}.smaller-text{font-size:.9em}.title{font-size:1.5em;font-weight:700}.subtitle{font-size:1em;font-weight:700}.body{font-size:.85em}.buttons{display:flex;align-items:center;gap:2.5em}.tab-buttons{position:absolute;right:0;top:0;width:50%;height:calc(2rem + 3px);display:flex}.tab-buttons div{display:flex;flex-grow:1;flex-shrink:0;align-items:center;justify-content:center;cursor:pointer;background:transparent;color:var(--disabled-primary-color)}.tab-buttons div:hover{border-bottom:3px solid var(--disabled-primary-color)}.tab-buttons div.selected{background:transparent;color:#262626;border-bottom:3px solid var(--active-color)}@media (max-width: 600px){::ng-deep .popup-canvas{min-width:auto!important}::ng-deep .popup-canvas .login-container{flex-direction:column-reverse;gap:1.5rem}::ng-deep .popup-canvas .login-column-expanded{min-width:12.8em}.buttons{gap:1.5em;flex-wrap:wrap}.tab-buttons{width:100%}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.BiitPopupComponent, selector: "biit-popup", inputs: ["title", "mouseEvent"], outputs: ["onClosed"] }, { kind: "directive", type: i3.BiitPopupNoHeaderDirective, selector: "[no-header]" }, { kind: "directive", type: i3.BiitPopupClosableDirective, selector: "[closable]" }, { kind: "component", type: i4.BiitIconComponent, selector: "biit-icon", inputs: ["name", "svgStyle", "pathStyle"] }, { kind: "component", type: i5.BiitInputTextComponent, selector: "biit-input-text", inputs: ["placeholder", "error", "description", "info", "type", "icon", "fieldName", "disabled", "required", "readonly", "min", "max", "minLength", "maxLength", "regEx"], outputs: ["onActionPerformed"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.BiitToggleComponent, selector: "biit-toggle", inputs: ["disabled", "description"] }, { kind: "component", type: i7.BiitButtonComponent, selector: "button[biit-button]" }, { kind: "directive", type: i7.BiitButtonPrimaryDirective, selector: "[primary]" }, { kind: "directive", type: i7.BiitButtonTertiaryDirective, selector: "[tertiary]" }, { kind: "directive", type: i1.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i5.BiitDropdownComponent, selector: "biit-dropdown", inputs: ["title", "label", "value", "descriptionLabel", "description", "data", "primitive", "compact", "disabled", "required", "sort-asc", "sort-desc", "icon"] }] });
|
|
201
201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitLoginComponent, decorators: [{
|
|
202
202
|
type: Component,
|
|
203
203
|
args: [{ selector: 'biit-login', providers: [{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { Component, ContentChild, Directive, EventEmitter, Input, Output } from '@angular/core';
|
|
2
2
|
import { BiitPaginatorOptions } from '../biit-paginator/models/biit-paginator-options';
|
|
3
3
|
import { BiitTableColumnFormat } from './models/biit-table-column';
|
|
4
4
|
import { ColumnResizeHandler } from './models/column-resize-handler';
|
|
@@ -254,6 +254,9 @@ export class BiitTableComponent {
|
|
|
254
254
|
getSelectedRows() {
|
|
255
255
|
return [...this.selectedRows];
|
|
256
256
|
}
|
|
257
|
+
setSelectedRows(_selectedRows) {
|
|
258
|
+
this.selectedRows = new Set(_selectedRows);
|
|
259
|
+
}
|
|
257
260
|
emitCellAction(item, column, event) {
|
|
258
261
|
event.stopPropagation();
|
|
259
262
|
this.onCellAction.emit(new BiitTableActionResponse(item, column));
|
|
@@ -298,4 +301,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
298
301
|
}], onRowClick: [{
|
|
299
302
|
type: Output
|
|
300
303
|
}] } });
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlpdC10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aXphcmRyeS10aGVtZS90YWJsZS9zcmMvYmlpdC10YWJsZS9iaWl0LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dpemFyZHJ5LXRoZW1lL3RhYmxlL3NyYy9iaWl0LXRhYmxlL2JpaXQtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxTQUFTLEVBR1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBa0IscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBSzVFLE1BQU0sT0FBTyw0QkFBNEI7SUFDdkMsWUFBb0IsTUFBMEI7UUFBMUIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDNUMsTUFBTSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDN0IsQ0FBQzs7MEhBSFUsNEJBQTRCOzhHQUE1Qiw0QkFBNEI7NEZBQTVCLDRCQUE0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QzdCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ25DLENBQUM7O2dIQWhOVSxrQkFBa0I7b0dBQWxCLGtCQUFrQiw2UkFMbEIsQ0FBQztZQUNWLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFFBQVEsRUFBRSxFQUFDLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFDO1NBQzFELENBQUMsNkhDM0VKLHc4TUF3SUEsMjFKRDlHYSw0QkFBNEIseURBa0I1QiwwQkFBMEI7NEZBaUMxQixrQkFBa0I7a0JBVDlCLFNBQVM7K0JBQ0UsWUFBWSxhQUdYLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFFBQVEsRUFBRSxFQUFDLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFDO3lCQUMxRCxDQUFDO3lIQUlxQixLQUFLO3NCQUEzQixLQUFLO3VCQUFDLFVBQVU7Z0JBU0ssUUFBUTtzQkFBN0IsS0FBSzt1QkFBQyxTQUFTO2dCQVFQLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRW1CLFVBQVU7c0JBQWxDLFlBQVk7dUJBQUMsU0FBUztnQkFRYixRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENvbXBvbmVudCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBUZW1wbGF0ZVJlZixcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCaWl0UGFnaW5hdG9yT3B0aW9uc30gZnJvbSAnLi4vYmlpdC1wYWdpbmF0b3IvbW9kZWxzL2JpaXQtcGFnaW5hdG9yLW9wdGlvbnMnO1xuaW1wb3J0IHtCaWl0VGFibGVDb2x1bW4sIEJpaXRUYWJsZUNvbHVtbkZvcm1hdH0gZnJvbSAnLi9tb2RlbHMvYmlpdC10YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHtDb2x1bW5SZXNpemVIYW5kbGVyfSBmcm9tICcuL21vZGVscy9jb2x1bW4tcmVzaXplLWhhbmRsZXInO1xuaW1wb3J0IHtCaWl0VGFibGVSZXNwb25zZX0gZnJvbSAnLi9tb2RlbHMvYmlpdC10YWJsZS1yZXNwb25zZSc7XG5pbXBvcnQge0JpaXRUYWJsZURhdGF9IGZyb20gJy4vbW9kZWxzL2JpaXQtdGFibGUtZGF0YSc7XG5pbXBvcnQge0JpaXRUYWJsZVNvcnRpbmcsIEJpaXRUYWJsZVNvcnRpbmdPcmRlcn0gZnJvbSAnLi9tb2RlbHMvYmlpdC10YWJsZS1zb3J0aW5nJztcbmltcG9ydCB7QmlpdE11bHRpc2VsZWN0VHlwZX0gZnJvbSAnQGJpaXQtc29sdXRpb25zL3dpemFyZHJ5LXRoZW1lL2lucHV0cyc7XG5pbXBvcnQge1RSQU5TTE9DT19TQ09QRX0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xuaW1wb3J0IHtCaWl0VGFibGVBY3Rpb25SZXNwb25zZX0gZnJvbSBcIi4vbW9kZWxzL2JpaXQtdGFibGUtYWN0aW9uLXJlc3BvbnNlXCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tzZWxlY3RhYmxlXSdcbn0pXG5leHBvcnQgY2xhc3MgQmlpdFRhYmxlU2VsZWN0YWJsZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFyZW50OiBCaWl0VGFibGVDb21wb25lbnQpIHtcbiAgICBwYXJlbnQuaXNTZWxlY3RhYmxlID0gdHJ1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2VsZWN0YWJsZVNpbmdsZV0nXG59KVxuZXhwb3J0IGNsYXNzIEJpaXRUYWJsZVNlbGVjdGFibGVTaW5nbGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmVudDogQmlpdFRhYmxlQ29tcG9uZW50KSB7XG4gICAgcGFyZW50LmlzU2VsZWN0YWJsZVNpbmdsZSA9IHRydWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NvcnRhYmxlXSdcbn0pXG5leHBvcnQgY2xhc3MgQmlpdFRhYmxlU29ydGFibGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmVudDogQmlpdFRhYmxlQ29tcG9uZW50KSB7XG4gICAgcGFyZW50LmlzU29ydGFibGUgPSB0cnVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1toaWRlSGVhZGVyXSdcbn0pXG5leHBvcnQgY2xhc3MgQmlpdFRhYmxlSGVhZGVybGVzc0RpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFyZW50OiBCaWl0VGFibGVDb21wb25lbnQpIHtcbiAgICBwYXJlbnQuaGlkZUhlYWRlciA9IHRydWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2hpZGVGb290ZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBCaWl0VGFibGVGb290ZXJsZXNzRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYXJlbnQ6IEJpaXRUYWJsZUNvbXBvbmVudCkge1xuICAgIHBhcmVudC5oaWRlRm9vdGVyID0gdHJ1ZTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiaWl0LXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JpaXQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iaWl0LXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBUUkFOU0xPQ09fU0NPUEUsXG4gICAgdXNlVmFsdWU6IHtzY29wZTogJ3dpemFyZHJ5LXRoZW1lL3RhYmxlJywgYWxpYXM6IFwidGFibGVcIn1cbiAgfV1cbn0pXG5leHBvcnQgY2xhc3MgQmlpdFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2VkIHtcblxuICBASW5wdXQoJ21ldGFkYXRhJykgc2V0IF9kYXRhKGRhdGE6IEJpaXRUYWJsZURhdGE8YW55Pikge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuY2xlYXIoKTtcbiAgICAgIGlmICh0aGlzLnBhZ2luYXRvcikge1xuICAgICAgICB0aGlzLnBhZ2luYXRvciA9IG5ldyBCaWl0UGFnaW5hdG9yT3B0aW9ucyh0aGlzLnBhZ2luYXRvci5jdXJyZW50UGFnZSwgdGhpcy5wYWdpbmF0b3IucGFnZVNpemUsIHRoaXMucGFnZVNpemVzLCBkYXRhLnRvdGFsSXRlbXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBASW5wdXQoJ2xvYWRpbmcnKSBzZXQgX2xvYWRpbmcobG9hZGluZzogYm9vbGVhbikge1xuICAgIGlmIChsb2FkaW5nKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBsb2FkaW5nO1xuICAgICAgdGhpcy5zZXRMb2FkaW5nQmFyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKSBjb2x1bW5zOiBCaWl0VGFibGVDb2x1bW5bXSA9IFtdO1xuICBASW5wdXQoKSBwYWdlU2l6ZXM6IG51bWJlcltdID0gW107XG4gIEBJbnB1dCgpIGRlZmF1bHRQYWdlU2l6ZTogbnVtYmVyO1xuXG4gIEBDb250ZW50Q2hpbGQoJ2FjdGlvbnMnKSBhY3Rpb25zVHBsITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBpc1NlbGVjdGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNTZWxlY3RhYmxlU2luZ2xlOiBib29sZWFuID0gZmFsc2U7XG4gIGlzU29ydGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGlkZUhlYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBoaWRlRm9vdGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIG9uVXBkYXRlOiBFdmVudEVtaXR0ZXI8QmlpdFRhYmxlUmVzcG9uc2U+ID0gbmV3IEV2ZW50RW1pdHRlcjxCaWl0VGFibGVSZXNwb25zZT4oKTtcbiAgQE91dHB1dCgpIG9uQ2VsbEFjdGlvbjogRXZlbnRFbWl0dGVyPEJpaXRUYWJsZUFjdGlvblJlc3BvbnNlPiA9IG5ldyBFdmVudEVtaXR0ZXI8QmlpdFRhYmxlQWN0aW9uUmVzcG9uc2U+KCk7XG4gIEBPdXRwdXQoKSBvblJvd0NsaWNrIDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwcm90ZWN0ZWQgZGF0YTogQmlpdFRhYmxlRGF0YTxhbnk+O1xuICBwcm90ZWN0ZWQgcGFnaW5hdG9yO1xuICBwcm90ZWN0ZWQgc29ydGluZzogQmlpdFRhYmxlU29ydGluZztcbiAgcHJvdGVjdGVkIHNlbGVjdGVkUm93czogU2V0PGFueT4gPSBuZXcgU2V0PGFueT4oKTtcbiAgcHJvdGVjdGVkIGNvbHVtblJlc2l6ZTogQ29sdW1uUmVzaXplSGFuZGxlciA9IG5ldyBDb2x1bW5SZXNpemVIYW5kbGVyKCk7XG4gIHByb3RlY3RlZCBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzZWFyY2g6IHN0cmluZyA9ICcnO1xuICBwcm90ZWN0ZWQgY3VycmVudFNlYXJjaDogc3RyaW5nID0gJyc7XG4gIHByb3RlY3RlZCByZWFkb25seSBCaWl0TXVsdGlzZWxlY3RUeXBlID0gQmlpdE11bHRpc2VsZWN0VHlwZTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEJpaXRUYWJsZUNvbHVtbkZvcm1hdCA9IEJpaXRUYWJsZUNvbHVtbkZvcm1hdDtcblxuICBwcml2YXRlIGZpbmRUaW1lb3V0OiBOb2RlSlMuVGltZW91dDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZWxlbTogRWxlbWVudFJlZikgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wYWdpbmF0b3IgPSBuZXcgQmlpdFBhZ2luYXRvck9wdGlvbnMoMSwgdGhpcy5kZWZhdWx0UGFnZVNpemUsIHRoaXMucGFnZVNpemVzLCB0aGlzLmRhdGEgPyB0aGlzLmRhdGEudG90YWxJdGVtcyA6IDEpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgIHRoaXMuc2V0Q29sdW1uU2l6ZSgpO1xuICB9XG5cbiAgLy8gRml4IGZvciByZXNpemFibGUgY29sdW1uc1xuICBwcml2YXRlIHNldENvbHVtblNpemUoKSB7XG4gICAgLy8gVGFrZXMgc2Nyb2xsYmFyIHBhZGRpbmcgaW4gbWluZCBiZWZvcmUgaGFyZGNvZGluZyB3aWR0aHNcbiAgICB0aGlzLmVsZW0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY29udGVudCcpLnN0eWxlLnBhZGRpbmdSaWdodCA9ICcwLjdyZW0nO1xuXG4gICAgQXJyYXkuZnJvbSh0aGlzLmVsZW0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd0aGVhZCcpLmZpcnN0Q2hpbGQuY2hpbGRyZW4pLmZvckVhY2gob2dDb2x1bW4gPT4ge1xuICAgICAgY29uc3QgY29sdW1uID0gb2dDb2x1bW4gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgIGlmIChjb2x1bW4uY2xhc3NMaXN0LmNvbnRhaW5zKCdzZWxlY3QnKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoY29sdW1uLnN0eWxlLndpZHRoID09ICcnICYmICFjb2x1bW4uY2xhc3NMaXN0LmNvbnRhaW5zKCdzZWxlY3QnKSkge1xuICAgICAgICBjb2x1bW4uc3R5bGUud2lkdGggPSBjb2x1bW4ub2Zmc2V0V2lkdGggLSAxMCArICdweCc7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbHVtbklubmVyV29yZEZpdENoZWNrKGNvbHVtbik7XG4gICAgfSk7XG4gICAgdGhpcy5lbGVtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNvbnRlbnQnKS5zdHlsZS5wYWRkaW5nUmlnaHQgPSBudWxsO1xuXG4gICAgdGhpcy5zZXRMb2FkaW5nQmFyKCk7XG4gIH1cblxuICBjb2x1bW5Jbm5lcldvcmRGaXRDaGVjayhjb2x1bW46IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3QgbWluQ29sdW1uU2l6ZSA9IChjb2x1bW4uZmlyc3RFbGVtZW50Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLm9mZnNldFdpZHRoXG4gICAgICArIDIuNCAqIHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmZvbnRTaXplKSAqIDI7XG5cbiAgICAvLyBJZiBpbm5lciB0ZXh0IHdpZHRoIHBsdXMgaGVhZGVyIHBhZGRpbmdzIGFyZSBsZXNzIHRoYW4gdGhlIGN1cnJlbnQgaGVhZGVyIHdpZHRoIChzZXQgYnkgdXNlciBjb2x1bW4gcHJvcGVydGllcylcbiAgICBpZihtaW5Db2x1bW5TaXplID4gY29sdW1uLm9mZnNldFdpZHRoKSB7XG4gICAgICAoY29sdW1uIGFzIEhUTUxFbGVtZW50KS5zdHlsZS53aWR0aCA9IG1pbkNvbHVtblNpemUgKyAncHgnO1xuICAgIH1cbiAgfVxuXG4gIHNldExvYWRpbmdCYXIoKTogdm9pZCB7XG4gICAgY29uc3QgcHJvZ3Jlc3NCYXIgPSB0aGlzLmVsZW0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdiaWl0LXByb2dyZXNzLWJhcicpO1xuICAgIGlmIChwcm9ncmVzc0Jhcikge1xuICAgICAgcHJvZ3Jlc3NCYXIuc3R5bGUudG9wID1cbiAgICAgICAgdGhpcy5lbGVtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndGhlYWQnKS5vZmZzZXRIZWlnaHQgKyAncHgnO1xuICAgIH1cbiAgfVxuXG4gIG9uVGFibGVVcGRhdGUoZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGlmICh0aGlzLmZpbmRUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5maW5kVGltZW91dCk7XG4gICAgfVxuICAgIHRoaXMuZmluZFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY3VycmVudFNlYXJjaCA9IHRoaXMuc2VhcmNoO1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuY2xlYXIoKTtcbiAgICAgIHRoaXMub25VcGRhdGUuZW1pdChuZXcgQmlpdFRhYmxlUmVzcG9uc2UoXG4gICAgICAgIHRoaXMucGFnaW5hdG9yLmN1cnJlbnRQYWdlLFxuICAgICAgICB0aGlzLnBhZ2luYXRvci5wYWdlU2l6ZSxcbiAgICAgICAgdGhpcy5zZWFyY2gsXG4gICAgICAgIHRoaXMuc29ydGluZ1xuICAgICAgKSk7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5maW5kVGltZW91dCk7XG4gICAgICB0aGlzLmZpbmRUaW1lb3V0ID0gbnVsbDtcbiAgICB9LCBmb3JjZSA/IDAgOiA1MDApO1xuICB9XG5cbiAgb25UYWJsZVNvcnQoY29sdW1uOiBCaWl0VGFibGVDb2x1bW4pIHtcbiAgICBpZiAodGhpcy5zb3J0aW5nICYmIHRoaXMuc29ydGluZy5uYW1lID09IGNvbHVtbi5uYW1lKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuc29ydGluZy5vcmRlcikge1xuICAgICAgICBjYXNlIEJpaXRUYWJsZVNvcnRpbmdPcmRlci5BU0M6XG4gICAgICAgICAgdGhpcy5zb3J0aW5nLm9yZGVyID0gQmlpdFRhYmxlU29ydGluZ09yZGVyLkRFU0M7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgQmlpdFRhYmxlU29ydGluZ09yZGVyLkRFU0M6XG4gICAgICAgICAgdGhpcy5zb3J0aW5nID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNvcnRpbmcgPSBuZXcgQmlpdFRhYmxlU29ydGluZyhjb2x1bW4ubmFtZSwgQmlpdFRhYmxlU29ydGluZ09yZGVyLkFTQyk7XG4gICAgfVxuXG4gICAgdGhpcy5vblRhYmxlVXBkYXRlKCk7XG4gIH1cblxuICBzbmFrZVRvQ2FtZWwoc3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHJpbmcudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV9dW2Etel0vZywgKGdyb3VwKSA9PiBncm91cC5zbGljZSgtMSkudG9VcHBlckNhc2UoKSk7XG4gIH1cblxuICByZXNpemVDb2x1bW4oZXZlbnQsIGNvbHVtbjogQmlpdFRhYmxlQ29sdW1uLCBpbmRleCkge1xuICAgIHRoaXMuY29sdW1uUmVzaXplLnN0YXJ0ID0gZXZlbnQudGFyZ2V0O1xuICAgIHRoaXMuY29sdW1uUmVzaXplLnByZXNzZWQgPSB0cnVlO1xuICAgIHRoaXMuY29sdW1uUmVzaXplLnN0YXJ0WCA9IGV2ZW50Lng7XG4gICAgdGhpcy5jb2x1bW5SZXNpemUuc3RhcnRXaWR0aCA9ICh0aGlzLmNvbHVtblJlc2l6ZS5zdGFydC5wYXJlbnROb2RlIGFzIEhUTUxFbGVtZW50KS5vZmZzZXRXaWR0aDtcblxuICAgIGxldCBjb2x1bW5FbGVtID0gdGhpcy5lbGVtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigndGhlYWQnKS5maXJzdENoaWxkLmNoaWxkcmVuW3RoaXMuaXNTZWxlY3RhYmxlID8gaW5kZXggKyAxIDogaW5kZXhdO1xuICAgIHRoaXMuY29sdW1uUmVzaXplLm1pbldpZHRoID0gKGNvbHVtbkVsZW0uZmlyc3RFbGVtZW50Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLm9mZnNldFdpZHRoXG4gICAgICArIDIuNCAqIHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmZvbnRTaXplKSAqIDI7XG5cbiAgICB0aGlzLmluaXRSZXNpemFibGVDb2x1bW5zKGNvbHVtbik7XG4gIH1cblxuICBwcml2YXRlIGluaXRSZXNpemFibGVDb2x1bW5zKGNvbHVtbjogQmlpdFRhYmxlQ29sdW1uKSB7XG4gICAgY29uc3QgbW92ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdtb3VzZW1vdmUnLCAoZXZlbnQpID0+IHtcbiAgICAgIGlmKHRoaXMuY29sdW1uUmVzaXplLnByZXNzZWQpIHtcbiAgICAgICAgbGV0IHdpZHRoID0gdGhpcy5jb2x1bW5SZXNpemUuc3RhcnRXaWR0aCArIChldmVudC54IC0gdGhpcy5jb2x1bW5SZXNpemUuc3RhcnRYKTtcbiAgICAgICAgaWYod2lkdGggPiB0aGlzLmNvbHVtblJlc2l6ZS5taW5XaWR0aCkge1xuICAgICAgICAgIGNvbHVtbi53aWR0aCA9IHdpZHRoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICBjb25zdCByZWxlYXNlTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ21vdXNldXAnLCAoZXZlbnQpID0+IHtcbiAgICAgIGlmKHRoaXMuY29sdW1uUmVzaXplLnByZXNzZWQpIHtcbiAgICAgICAgdGhpcy5jb2x1bW5SZXNpemUucHJlc3NlZCA9IGZhbHNlO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIG1vdmVMaXN0ZW5lcigpO1xuICAgICAgICByZWxlYXNlTGlzdGVuZXIoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldENvbHVtblZpc2liaWxpdHkocmVzcG9uc2U6IEJpaXRUYWJsZUNvbHVtbltdKSB7XG4gICAgdGhpcy5jb2x1bW5zLmZvckVhY2goYyA9PiByZXNwb25zZS5zb21lKGUgPT4gZS5uYW1lID09IGMubmFtZSkgPyBjLnZpc2libGUgPSB0cnVlIDogYy52aXNpYmxlID0gZmFsc2UpO1xuICB9XG5cbiAgc2VsZWN0Um93KGl0ZW0sIGhvbGRDdHJsKSB7XG4gICAgaWYgKCFob2xkQ3RybCB8fCB0aGlzLmlzU2VsZWN0YWJsZVNpbmdsZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuY2xlYXIoKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzLmFkZChpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkUm93cy5oYXMoaXRlbSkpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuYWRkKGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuZGVsZXRlKGl0ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldFNlbGVjdGVkUm93cygpOiBhbnlbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnNlbGVjdGVkUm93c107XG4gIH1cblxuICBlbWl0Q2VsbEFjdGlvbihpdGVtOiBhbnksIGNvbHVtbjogc3RyaW5nLCBldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLm9uQ2VsbEFjdGlvbi5lbWl0KG5ldyBCaWl0VGFibGVBY3Rpb25SZXNwb25zZShpdGVtLCBjb2x1bW4pKTtcbiAgfVxuXG4gIGVtaXRSb3dDbGljayhpdGVtOiBhbnkpIHtcbiAgICB0aGlzLm9uUm93Q2xpY2suZW1pdChpdGVtKTtcbiAgfVxuXG4gIHJlc2V0SW5wdXRWYWx1ZSgpIHtcbiAgICB0aGlzLnNlYXJjaCA9IHRoaXMuY3VycmVudFNlYXJjaDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNhbnZhc1wiICp0cmFuc2xvY289XCJsZXQgdFwiPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCIgKm5nSWY9XCIhaGlkZUhlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJidXR0b25zXCIgaWQ9XCJtZW51XCI+XG4gICAgICA8YmlpdC12ZXJ0aWNhbC1tZW51ICpuZ0lmPVwiYWN0aW9uc1RwbFwiIGNsYXNzPVwidmVydGljYWwtbWVudVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uc1RwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9iaWl0LXZlcnRpY2FsLW1lbnU+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYWN0aW9uc1RwbFwiIGNsYXNzPVwiaG9yaXpvbnRhbC1tZW51XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhY3Rpb25zVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhYWN0aW9uc1RwbFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybXNcIj5cbiAgICAgIDxiaWl0LWlucHV0LXRleHQgaWQ9XCJzZWFyY2gtZmllbGRcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgIChvbkFjdGlvblBlcmZvcm1lZCk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBwYWdpbmF0b3IuY3VycmVudFBhZ2UgPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgIG9uVGFibGVVcGRhdGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJyZXNldElucHV0VmFsdWUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGFibGVVcGRhdGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgIGljb249XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidCgndGFibGUuc2VhcmNoJylcIlxuICAgICAgPjwvYmlpdC1pbnB1dC10ZXh0PlxuICAgICAgPGJpaXQtbXVsdGlzZWxlY3QgaWQ9XCJjb2x1bW4tc2VsZWN0b3JcIiBbbmdNb2RlbF09XCJjb2x1bW5zIHwgdmlzaWJsZUNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0Q29sdW1uVmlzaWJpbGl0eSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInZpc2libGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInQoJ3RhYmxlLmNvbHVtbi1zZWxlY3RvcicpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIkJpaXRNdWx0aXNlbGVjdFR5cGUuSUNPTlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29tcGFjdF09XCJ0cnVlXCJcbiAgICAgID48L2JpaXQtbXVsdGlzZWxlY3Q+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiPlxuICAgICAgPGJpaXQtcHJvZ3Jlc3MtYmFyIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyB0b3A6IDIuMXJlbTsgbGVmdDogMC4ycmVtOyB3aWR0aDogY2FsYygxMDAlIC0gMC4xcmVtKTtcIj48L2JpaXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDwvZGl2PlxuICAgIDx0YWJsZT5cbiAgICAgIDx0aGVhZD5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0aCAqbmdJZj1cImlzU2VsZWN0YWJsZSB8fCBpc1NlbGVjdGFibGVTaW5nbGVcIiBjbGFzcz1cInNlbGVjdFwiPlxuICAgICAgICAgICAgPGJpaXQtY2hlY2tib3ggKm5nSWY9XCJpc1NlbGVjdGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiZGF0YT8uZGF0YS5sZW5ndGggJiYgc2VsZWN0ZWRSb3dzLnNpemUgPT0gZGF0YT8uZGF0YS5sZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiJGV2ZW50ID8gZGF0YT8uZGF0YS5mb3JFYWNoKHNlbGVjdGVkUm93cy5hZGQsIHNlbGVjdGVkUm93cykgOiBzZWxlY3RlZFJvd3MuY2xlYXIoKVwiXG4gICAgICAgICAgICA+PC9iaWl0LWNoZWNrYm94PlxuICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1ucywgaW5kZXggYXMgaVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5zb3J0YWJsZV09XCJpc1NvcnRhYmxlXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiIWNvbHVtbi52aXNpYmxlID8gJ25vbmUnIDogbnVsbFwiXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4ud2lkdGggPyBjb2x1bW4ud2lkdGggKyAncHgnIDogJydcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaXNTb3J0YWJsZSA/IG9uVGFibGVTb3J0KGNvbHVtbikgOiBmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+XG4gICAgICAgICAgICAgIHt7Y29sdW1uLmxhYmVsfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJpaXQtaWNvbiAqbmdJZj1cImlzU29ydGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJzb3J0aW5nPy5uYW1lID09IGNvbHVtbi5uYW1lID8gJ3JpZ2h0X2Fycm93JyA6ICd1cF9kb3duX2Fycm93J1wiXG4gICAgICAgICAgICAgICAgICAgICAgIFtwYXRoU3R5bGVdPVwie2ZpbGw6ICcjRkZGRkZGJ31cIlxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNvcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXNjXT1cInNvcnRpbmc/Lm5hbWUgPT0gY29sdW1uLm5hbWUgJiYgc29ydGluZz8ub3JkZXIgPT0gJ2FzYydcIlxuICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGVzY109XCJzb3J0aW5nPy5uYW1lID09IGNvbHVtbi5uYW1lICYmIHNvcnRpbmc/Lm9yZGVyID09ICdkZXNjJ1wiXG4gICAgICAgICAgICA+PC9iaWl0LWljb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLXJlc2l6ZXJcIlxuICAgICAgICAgICAgICAgICAobW91c2Vkb3duKT1cInJlc2l6ZUNvbHVtbigkZXZlbnQsIGNvbHVtbiwgaSlcIlxuICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1wiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHk+XG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhPy5kYXRhOyBpbmRleCBhcyBpXCJcbiAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RhYmxlXT1cImlzU2VsZWN0YWJsZVwiXG4gICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwic2VsZWN0ZWRSb3dzLmhhcyhpdGVtKVwiXG4gICAgICAgICAgICAocG9pbnRlcmRvd24pPVwiZW1pdFJvd0NsaWNrKGl0ZW0pXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiaXNTZWxlY3RhYmxlIHx8IGlzU2VsZWN0YWJsZVNpbmdsZVwiIGNsYXNzPVwic2VsZWN0XCI+XG4gICAgICAgICAgICAgIDxiaWl0LWNoZWNrYm94IGlkPVwic2VsZWN0e3tpfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZFJvd3MuaGFzKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0Um93KGl0ZW0sIHRydWUpXCJcbiAgICAgICAgICAgICAgPjwvYmlpdC1jaGVja2JveD5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAocG9pbnRlcmRvd24pPVwic2VsZWN0Um93KGl0ZW0sICRldmVudC5jdHJsS2V5KVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiIWNvbHVtbi52aXNpYmxlID8gJ25vbmUnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbHVtbi53aWR0aCA/IGNvbHVtbi53aWR0aCArICdweCcgOiBudWxsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5mb3JtYXQgPT0gQmlpdFRhYmxlQ29sdW1uRm9ybWF0LkRFRkFVTFRcIj5cbiAgICAgICAgICAgICAgICB7e2l0ZW0gfCBjb2x1bW5EYXRhOiBjb2x1bW4ubmFtZX19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sdW1uLmZvcm1hdCA9PSBCaWl0VGFibGVDb2x1bW5Gb3JtYXQuQk9PTEVBTlwiPlxuICAgICAgICAgICAgICAgIHt7KGl0ZW0gfCBjb2x1bW5EYXRhOiBjb2x1bW4ubmFtZSkgPyB0KCd0YWJsZS55ZXMnKSA6IHQoJ3RhYmxlLm5vJykgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2x1bW4uZm9ybWF0ID09IEJpaXRUYWJsZUNvbHVtbkZvcm1hdC5EQVRFXCI+XG4gICAgICAgICAgICAgICAge3soaXRlbSB8IGNvbHVtbkRhdGE6IGNvbHVtbi5uYW1lKSB8IGxvY2FsaXplZERhdGV9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5mb3JtYXQgPT0gQmlpdFRhYmxlQ29sdW1uRm9ybWF0LkJVVFRPTlwiXG4gICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogYXV0bzsgdGV4dC1hbGlnbjogLXdlYmtpdC1jZW50ZXI7IHRleHQtYWxpZ246IC1tb3otY2VudGVyO1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gYmlpdC1idXR0b24gdGVydGlhcnlcbiAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludGVyZG93bik9XCJlbWl0Q2VsbEFjdGlvbihpdGVtLCBjb2x1bW4ubmFtZSwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAge3tpdGVtIHwgY29sdW1uRGF0YTogY29sdW1uLm5hbWV9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5mb3JtYXQgPT0gQmlpdFRhYmxlQ29sdW1uRm9ybWF0LklDT05fQlVUVE9OXCJcbiAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiBhdXRvOyB0ZXh0LWFsaWduOiAtd2Via2l0LWNlbnRlcjsgdGV4dC1hbGlnbjogLW1vei1jZW50ZXI7XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBiaWl0LWljb24gW2ljb25dPVwiaXRlbSB8IGNvbHVtbkRhdGE6IGNvbHVtbi5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludGVyZG93bik9XCJlbWl0Q2VsbEFjdGlvbihpdGVtLCBjb2x1bW4ubmFtZSwgJGV2ZW50KTtcIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2x1bW4uZm9ybWF0ID09IEJpaXRUYWJsZUNvbHVtbkZvcm1hdC5JQ09OXCJcbiAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiBhdXRvOyBoZWlnaHQ6IDEuMDVyZW07XCI+XG4gICAgICAgICAgICAgICAgPGJpaXQtaWNvbiBbbmFtZV09XCJpdGVtIHwgY29sdW1uRGF0YTogY29sdW1uLm5hbWVcIj48L2JpaXQtaWNvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2x1bW4uZm9ybWF0ID09IEJpaXRUYWJsZUNvbHVtbkZvcm1hdC5DVVNUT01fSFRNTFwiXG4gICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogYXV0bzsgdGV4dC1hbGlnbjogLXdlYmtpdC1jZW50ZXI7IHRleHQtYWxpZ246IC1tb3otY2VudGVyO1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJpdGVtIHwgY29sdW1uRGF0YTogY29sdW1uLm5hbWVcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuXG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb290ZXJcIiAqbmdJZj1cIiFoaWRlRm9vdGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCI+XG4gICAgICA8YSBzdHlsZT1cIm1hcmdpbi1yaWdodDogMC43cmVtXCIgKm5nSWY9XCJzZWxlY3RlZFJvd3Muc2l6ZVwiPlNlbGVjdGVkOjwvYT5cbiAgICAgIDxhICpuZ0lmPVwic2VsZWN0ZWRSb3dzLnNpemVcIj57e3NlbGVjdGVkUm93cy5zaXplfX08L2E+XG4gICAgPC9kaXY+XG4gICAgPGJpaXQtcGFnaW5hdG9yICpuZ0lmPVwicGFnaW5hdG9yXCJcbiAgICAgIFtuZ01vZGVsXT1cInBhZ2luYXRvclwiIChuZ01vZGVsQ2hhbmdlKT1cInBhZ2luYXRvciA9ICRldmVudDsgb25UYWJsZVVwZGF0ZSgpXCI+PC9iaWl0LXBhZ2luYXRvcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
304
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlpdC10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aXphcmRyeS10aGVtZS90YWJsZS9zcmMvYmlpdC10YWJsZS9iaWl0LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dpemFyZHJ5LXRoZW1lL3RhYmxlL3NyYy9iaWl0LXRhYmxlL2JpaXQtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBa0IscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBSzVFLE1BQU0sT0FBTyw0QkFBNEI7SUFDdkMsWUFBb0IsTUFBMEI7UUFBMUIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDNUMsTUFBTSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDN0IsQ0FBQzs7MEhBSFUsNEJBQTRCOzhHQUE1Qiw0QkFBNEI7NEZBQTVCLDRCQUE0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QUM7SUFDcEUsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFTO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ25DLENBQUM7O2dIQXZOVSxrQkFBa0I7b0dBQWxCLGtCQUFrQiw2UkFMbEIsQ0FBQztZQUNWLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFFBQVEsRUFBRSxFQUFDLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFDO1NBQzFELENBQUMsNkhDM0VKLHc4TUF3SUEsMjFKRDlHYSw0QkFBNEIseURBa0I1QiwwQkFBMEI7NEZBaUMxQixrQkFBa0I7a0JBVDlCLFNBQVM7K0JBQ0UsWUFBWSxhQUdYLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFFBQVEsRUFBRSxFQUFDLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFDO3lCQUMxRCxDQUFDO3lIQUlxQixLQUFLO3NCQUEzQixLQUFLO3VCQUFDLFVBQVU7Z0JBVUssUUFBUTtzQkFBN0IsS0FBSzt1QkFBQyxTQUFTO2dCQVNQLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRW1CLFVBQVU7c0JBQWxDLFlBQVk7dUJBQUMsU0FBUztnQkFRYixRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCaWl0UGFnaW5hdG9yT3B0aW9uc30gZnJvbSAnLi4vYmlpdC1wYWdpbmF0b3IvbW9kZWxzL2JpaXQtcGFnaW5hdG9yLW9wdGlvbnMnO1xuaW1wb3J0IHtCaWl0VGFibGVDb2x1bW4sIEJpaXRUYWJsZUNvbHVtbkZvcm1hdH0gZnJvbSAnLi9tb2RlbHMvYmlpdC10YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHtDb2x1bW5SZXNpemVIYW5kbGVyfSBmcm9tICcuL21vZGVscy9jb2x1bW4tcmVzaXplLWhhbmRsZXInO1xuaW1wb3J0IHtCaWl0VGFibGVSZXNwb25zZX0gZnJvbSAnLi9tb2RlbHMvYmlpdC10YWJsZS1yZXNwb25zZSc7XG5pbXBvcnQge0JpaXRUYWJsZURhdGF9IGZyb20gJy4vbW9kZWxzL2JpaXQtdGFibGUtZGF0YSc7XG5pbXBvcnQge0JpaXRUYWJsZVNvcnRpbmcsIEJpaXRUYWJsZVNvcnRpbmdPcmRlcn0gZnJvbSAnLi9tb2RlbHMvYmlpdC10YWJsZS1zb3J0aW5nJztcbmltcG9ydCB7QmlpdE11bHRpc2VsZWN0VHlwZX0gZnJvbSAnQGJpaXQtc29sdXRpb25zL3dpemFyZHJ5LXRoZW1lL2lucHV0cyc7XG5pbXBvcnQge1RSQU5TTE9DT19TQ09QRX0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xuaW1wb3J0IHtCaWl0VGFibGVBY3Rpb25SZXNwb25zZX0gZnJvbSBcIi4vbW9kZWxzL2JpaXQtdGFibGUtYWN0aW9uLXJlc3BvbnNlXCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tzZWxlY3RhYmxlXSdcbn0pXG5leHBvcnQgY2xhc3MgQmlpdFRhYmxlU2VsZWN0YWJsZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFyZW50OiBCaWl0VGFibGVDb21wb25lbnQpIHtcbiAgICBwYXJlbnQuaXNTZWxlY3RhYmxlID0gdHJ1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2VsZWN0YWJsZVNpbmdsZV0nXG59KVxuZXhwb3J0IGNsYXNzIEJpaXRUYWJsZVNlbGVjdGFibGVTaW5nbGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmVudDogQmlpdFRhYmxlQ29tcG9uZW50KSB7XG4gICAgcGFyZW50LmlzU2VsZWN0YWJsZVNpbmdsZSA9IHRydWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NvcnRhYmxlXSdcbn0pXG5leHBvcnQgY2xhc3MgQmlpdFRhYmxlU29ydGFibGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmVudDogQmlpdFRhYmxlQ29tcG9uZW50KSB7XG4gICAgcGFyZW50LmlzU29ydGFibGUgPSB0cnVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1toaWRlSGVhZGVyXSdcbn0pXG5leHBvcnQgY2xhc3MgQmlpdFRhYmxlSGVhZGVybGVzc0RpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFyZW50OiBCaWl0VGFibGVDb21wb25lbnQpIHtcbiAgICBwYXJlbnQuaGlkZUhlYWRlciA9IHRydWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2hpZGVGb290ZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBCaWl0VGFibGVGb290ZXJsZXNzRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYXJlbnQ6IEJpaXRUYWJsZUNvbXBvbmVudCkge1xuICAgIHBhcmVudC5oaWRlRm9vdGVyID0gdHJ1ZTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiaWl0LXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JpaXQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iaWl0LXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBUUkFOU0xPQ09fU0NPUEUsXG4gICAgdXNlVmFsdWU6IHtzY29wZTogJ3dpemFyZHJ5LXRoZW1lL3RhYmxlJywgYWxpYXM6IFwidGFibGVcIn1cbiAgfV1cbn0pXG5leHBvcnQgY2xhc3MgQmlpdFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2VkIHtcblxuICBASW5wdXQoJ21ldGFkYXRhJykgc2V0IF9kYXRhKGRhdGE6IEJpaXRUYWJsZURhdGE8YW55Pikge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuY2xlYXIoKTtcbiAgICAgIGlmICh0aGlzLnBhZ2luYXRvcikge1xuICAgICAgICB0aGlzLnBhZ2luYXRvciA9IG5ldyBCaWl0UGFnaW5hdG9yT3B0aW9ucyh0aGlzLnBhZ2luYXRvci5jdXJyZW50UGFnZSwgdGhpcy5wYWdpbmF0b3IucGFnZVNpemUsIHRoaXMucGFnZVNpemVzLCBkYXRhLnRvdGFsSXRlbXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnbG9hZGluZycpIHNldCBfbG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XG4gICAgaWYgKGxvYWRpbmcpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGxvYWRpbmc7XG4gICAgICB0aGlzLnNldExvYWRpbmdCYXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgY29sdW1uczogQmlpdFRhYmxlQ29sdW1uW10gPSBbXTtcbiAgQElucHV0KCkgcGFnZVNpemVzOiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoKSBkZWZhdWx0UGFnZVNpemU6IG51bWJlcjtcblxuICBAQ29udGVudENoaWxkKCdhY3Rpb25zJykgYWN0aW9uc1RwbCE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgaXNTZWxlY3RhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIGlzU2VsZWN0YWJsZVNpbmdsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1NvcnRhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIGhpZGVIZWFkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGlkZUZvb3RlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBvblVwZGF0ZTogRXZlbnRFbWl0dGVyPEJpaXRUYWJsZVJlc3BvbnNlPiA9IG5ldyBFdmVudEVtaXR0ZXI8QmlpdFRhYmxlUmVzcG9uc2U+KCk7XG4gIEBPdXRwdXQoKSBvbkNlbGxBY3Rpb246IEV2ZW50RW1pdHRlcjxCaWl0VGFibGVBY3Rpb25SZXNwb25zZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEJpaXRUYWJsZUFjdGlvblJlc3BvbnNlPigpO1xuICBAT3V0cHV0KCkgb25Sb3dDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwcm90ZWN0ZWQgZGF0YTogQmlpdFRhYmxlRGF0YTxhbnk+O1xuICBwcm90ZWN0ZWQgcGFnaW5hdG9yO1xuICBwcm90ZWN0ZWQgc29ydGluZzogQmlpdFRhYmxlU29ydGluZztcbiAgcHJvdGVjdGVkIHNlbGVjdGVkUm93czogU2V0PGFueT4gPSBuZXcgU2V0PGFueT4oKTtcbiAgcHJvdGVjdGVkIGNvbHVtblJlc2l6ZTogQ29sdW1uUmVzaXplSGFuZGxlciA9IG5ldyBDb2x1bW5SZXNpemVIYW5kbGVyKCk7XG4gIHByb3RlY3RlZCBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzZWFyY2g6IHN0cmluZyA9ICcnO1xuICBwcm90ZWN0ZWQgY3VycmVudFNlYXJjaDogc3RyaW5nID0gJyc7XG4gIHByb3RlY3RlZCByZWFkb25seSBCaWl0TXVsdGlzZWxlY3RUeXBlID0gQmlpdE11bHRpc2VsZWN0VHlwZTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEJpaXRUYWJsZUNvbHVtbkZvcm1hdCA9IEJpaXRUYWJsZUNvbHVtbkZvcm1hdDtcblxuICBwcml2YXRlIGZpbmRUaW1lb3V0OiBOb2RlSlMuVGltZW91dDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZWxlbTogRWxlbWVudFJlZikge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wYWdpbmF0b3IgPSBuZXcgQmlpdFBhZ2luYXRvck9wdGlvbnMoMSwgdGhpcy5kZWZhdWx0UGFnZVNpemUsIHRoaXMucGFnZVNpemVzLCB0aGlzLmRhdGEgPyB0aGlzLmRhdGEudG90YWxJdGVtcyA6IDEpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgIHRoaXMuc2V0Q29sdW1uU2l6ZSgpO1xuICB9XG5cbiAgLy8gRml4IGZvciByZXNpemFibGUgY29sdW1uc1xuICBwcml2YXRlIHNldENvbHVtblNpemUoKSB7XG4gICAgLy8gVGFrZXMgc2Nyb2xsYmFyIHBhZGRpbmcgaW4gbWluZCBiZWZvcmUgaGFyZGNvZGluZyB3aWR0aHNcbiAgICB0aGlzLmVsZW0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY29udGVudCcpLnN0eWxlLnBhZGRpbmdSaWdodCA9ICcwLjdyZW0nO1xuXG4gICAgQXJyYXkuZnJvbSh0aGlzLmVsZW0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd0aGVhZCcpLmZpcnN0Q2hpbGQuY2hpbGRyZW4pLmZvckVhY2gob2dDb2x1bW4gPT4ge1xuICAgICAgY29uc3QgY29sdW1uID0gb2dDb2x1bW4gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgIGlmIChjb2x1bW4uY2xhc3NMaXN0LmNvbnRhaW5zKCdzZWxlY3QnKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoY29sdW1uLnN0eWxlLndpZHRoID09ICcnICYmICFjb2x1bW4uY2xhc3NMaXN0LmNvbnRhaW5zKCdzZWxlY3QnKSkge1xuICAgICAgICBjb2x1bW4uc3R5bGUud2lkdGggPSBjb2x1bW4ub2Zmc2V0V2lkdGggLSAxMCArICdweCc7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbHVtbklubmVyV29yZEZpdENoZWNrKGNvbHVtbik7XG4gICAgfSk7XG4gICAgdGhpcy5lbGVtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNvbnRlbnQnKS5zdHlsZS5wYWRkaW5nUmlnaHQgPSBudWxsO1xuXG4gICAgdGhpcy5zZXRMb2FkaW5nQmFyKCk7XG4gIH1cblxuICBjb2x1bW5Jbm5lcldvcmRGaXRDaGVjayhjb2x1bW46IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3QgbWluQ29sdW1uU2l6ZSA9IChjb2x1bW4uZmlyc3RFbGVtZW50Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLm9mZnNldFdpZHRoXG4gICAgICArIDIuNCAqIHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmZvbnRTaXplKSAqIDI7XG5cbiAgICAvLyBJZiBpbm5lciB0ZXh0IHdpZHRoIHBsdXMgaGVhZGVyIHBhZGRpbmdzIGFyZSBsZXNzIHRoYW4gdGhlIGN1cnJlbnQgaGVhZGVyIHdpZHRoIChzZXQgYnkgdXNlciBjb2x1bW4gcHJvcGVydGllcylcbiAgICBpZiAobWluQ29sdW1uU2l6ZSA+IGNvbHVtbi5vZmZzZXRXaWR0aCkge1xuICAgICAgKGNvbHVtbiBhcyBIVE1MRWxlbWVudCkuc3R5bGUud2lkdGggPSBtaW5Db2x1bW5TaXplICsgJ3B4JztcbiAgICB9XG4gIH1cblxuICBzZXRMb2FkaW5nQmFyKCk6IHZvaWQge1xuICAgIGNvbnN0IHByb2dyZXNzQmFyID0gdGhpcy5lbGVtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignYmlpdC1wcm9ncmVzcy1iYXInKTtcbiAgICBpZiAocHJvZ3Jlc3NCYXIpIHtcbiAgICAgIHByb2dyZXNzQmFyLnN0eWxlLnRvcCA9XG4gICAgICAgIHRoaXMuZWxlbS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RoZWFkJykub2Zmc2V0SGVpZ2h0ICsgJ3B4JztcbiAgICB9XG4gIH1cblxuICBvblRhYmxlVXBkYXRlKGZvcmNlOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5maW5kVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZmluZFRpbWVvdXQpO1xuICAgIH1cbiAgICB0aGlzLmZpbmRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmN1cnJlbnRTZWFyY2ggPSB0aGlzLnNlYXJjaDtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzLmNsZWFyKCk7XG4gICAgICB0aGlzLm9uVXBkYXRlLmVtaXQobmV3IEJpaXRUYWJsZVJlc3BvbnNlKFxuICAgICAgICB0aGlzLnBhZ2luYXRvci5jdXJyZW50UGFnZSxcbiAgICAgICAgdGhpcy5wYWdpbmF0b3IucGFnZVNpemUsXG4gICAgICAgIHRoaXMuc2VhcmNoLFxuICAgICAgICB0aGlzLnNvcnRpbmdcbiAgICAgICkpO1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZmluZFRpbWVvdXQpO1xuICAgICAgdGhpcy5maW5kVGltZW91dCA9IG51bGw7XG4gICAgfSwgZm9yY2UgPyAwIDogNTAwKTtcbiAgfVxuXG4gIG9uVGFibGVTb3J0KGNvbHVtbjogQmlpdFRhYmxlQ29sdW1uKSB7XG4gICAgaWYgKHRoaXMuc29ydGluZyAmJiB0aGlzLnNvcnRpbmcubmFtZSA9PSBjb2x1bW4ubmFtZSkge1xuICAgICAgc3dpdGNoICh0aGlzLnNvcnRpbmcub3JkZXIpIHtcbiAgICAgICAgY2FzZSBCaWl0VGFibGVTb3J0aW5nT3JkZXIuQVNDOlxuICAgICAgICAgIHRoaXMuc29ydGluZy5vcmRlciA9IEJpaXRUYWJsZVNvcnRpbmdPcmRlci5ERVNDO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEJpaXRUYWJsZVNvcnRpbmdPcmRlci5ERVNDOlxuICAgICAgICAgIHRoaXMuc29ydGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zb3J0aW5nID0gbmV3IEJpaXRUYWJsZVNvcnRpbmcoY29sdW1uLm5hbWUsIEJpaXRUYWJsZVNvcnRpbmdPcmRlci5BU0MpO1xuICAgIH1cblxuICAgIHRoaXMub25UYWJsZVVwZGF0ZSgpO1xuICB9XG5cbiAgc25ha2VUb0NhbWVsKHN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3RyaW5nLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXVthLXpdL2csIChncm91cCkgPT4gZ3JvdXAuc2xpY2UoLTEpLnRvVXBwZXJDYXNlKCkpO1xuICB9XG5cbiAgcmVzaXplQ29sdW1uKGV2ZW50LCBjb2x1bW46IEJpaXRUYWJsZUNvbHVtbiwgaW5kZXgpIHtcbiAgICB0aGlzLmNvbHVtblJlc2l6ZS5zdGFydCA9IGV2ZW50LnRhcmdldDtcbiAgICB0aGlzLmNvbHVtblJlc2l6ZS5wcmVzc2VkID0gdHJ1ZTtcbiAgICB0aGlzLmNvbHVtblJlc2l6ZS5zdGFydFggPSBldmVudC54O1xuICAgIHRoaXMuY29sdW1uUmVzaXplLnN0YXJ0V2lkdGggPSAodGhpcy5jb2x1bW5SZXNpemUuc3RhcnQucGFyZW50Tm9kZSBhcyBIVE1MRWxlbWVudCkub2Zmc2V0V2lkdGg7XG5cbiAgICBsZXQgY29sdW1uRWxlbSA9IHRoaXMuZWxlbS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RoZWFkJykuZmlyc3RDaGlsZC5jaGlsZHJlblt0aGlzLmlzU2VsZWN0YWJsZSA/IGluZGV4ICsgMSA6IGluZGV4XTtcbiAgICB0aGlzLmNvbHVtblJlc2l6ZS5taW5XaWR0aCA9IChjb2x1bW5FbGVtLmZpcnN0RWxlbWVudENoaWxkIGFzIEhUTUxFbGVtZW50KS5vZmZzZXRXaWR0aFxuICAgICAgKyAyLjQgKiBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5mb250U2l6ZSkgKiAyO1xuXG4gICAgdGhpcy5pbml0UmVzaXphYmxlQ29sdW1ucyhjb2x1bW4pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0UmVzaXphYmxlQ29sdW1ucyhjb2x1bW46IEJpaXRUYWJsZUNvbHVtbikge1xuICAgIGNvbnN0IG1vdmVMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnbW91c2Vtb3ZlJywgKGV2ZW50KSA9PiB7XG4gICAgICBpZiAodGhpcy5jb2x1bW5SZXNpemUucHJlc3NlZCkge1xuICAgICAgICBsZXQgd2lkdGggPSB0aGlzLmNvbHVtblJlc2l6ZS5zdGFydFdpZHRoICsgKGV2ZW50LnggLSB0aGlzLmNvbHVtblJlc2l6ZS5zdGFydFgpO1xuICAgICAgICBpZiAod2lkdGggPiB0aGlzLmNvbHVtblJlc2l6ZS5taW5XaWR0aCkge1xuICAgICAgICAgIGNvbHVtbi53aWR0aCA9IHdpZHRoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICBjb25zdCByZWxlYXNlTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ21vdXNldXAnLCAoZXZlbnQpID0+IHtcbiAgICAgIGlmICh0aGlzLmNvbHVtblJlc2l6ZS5wcmVzc2VkKSB7XG4gICAgICAgIHRoaXMuY29sdW1uUmVzaXplLnByZXNzZWQgPSBmYWxzZTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICBtb3ZlTGlzdGVuZXIoKTtcbiAgICAgICAgcmVsZWFzZUxpc3RlbmVyKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBzZXRDb2x1bW5WaXNpYmlsaXR5KHJlc3BvbnNlOiBCaWl0VGFibGVDb2x1bW5bXSkge1xuICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKGMgPT4gcmVzcG9uc2Uuc29tZShlID0+IGUubmFtZSA9PSBjLm5hbWUpID8gYy52aXNpYmxlID0gdHJ1ZSA6IGMudmlzaWJsZSA9IGZhbHNlKTtcbiAgfVxuXG4gIHNlbGVjdFJvdyhpdGVtLCBob2xkQ3RybCkge1xuICAgIGlmICghaG9sZEN0cmwgfHwgdGhpcy5pc1NlbGVjdGFibGVTaW5nbGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzLmNsZWFyKCk7XG4gICAgICB0aGlzLnNlbGVjdGVkUm93cy5hZGQoaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5zZWxlY3RlZFJvd3MuaGFzKGl0ZW0pKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzLmFkZChpdGVtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzLmRlbGV0ZShpdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRTZWxlY3RlZFJvd3MoKTogYW55W10ge1xuICAgIHJldHVybiBbLi4udGhpcy5zZWxlY3RlZFJvd3NdO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWRSb3dzKF9zZWxlY3RlZFJvd3M6IGFueVtdKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFJvd3MgPSBuZXcgU2V0PGFueT4oX3NlbGVjdGVkUm93cyk7XG4gIH1cblxuICBlbWl0Q2VsbEFjdGlvbihpdGVtOiBhbnksIGNvbHVtbjogc3RyaW5nLCBldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLm9uQ2VsbEFjdGlvbi5lbWl0KG5ldyBCaWl0VGFibGVBY3Rpb25SZXNwb25zZShpdGVtLCBjb2x1bW4pKTtcbiAgfVxuXG4gIGVtaXRSb3dDbGljayhpdGVtOiBhbnkpIHtcbiAgICB0aGlzLm9uUm93Q2xpY2suZW1pdChpdGVtKTtcbiAgfVxuXG4gIHJlc2V0SW5wdXRWYWx1ZSgpIHtcbiAgICB0aGlzLnNlYXJjaCA9IHRoaXMuY3VycmVudFNlYXJjaDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNhbnZhc1wiICp0cmFuc2xvY289XCJsZXQgdFwiPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCIgKm5nSWY9XCIhaGlkZUhlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJidXR0b25zXCIgaWQ9XCJtZW51XCI+XG4gICAgICA8YmlpdC12ZXJ0aWNhbC1tZW51ICpuZ0lmPVwiYWN0aW9uc1RwbFwiIGNsYXNzPVwidmVydGljYWwtbWVudVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uc1RwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9iaWl0LXZlcnRpY2FsLW1lbnU+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYWN0aW9uc1RwbFwiIGNsYXNzPVwiaG9yaXpvbnRhbC1tZW51XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhY3Rpb25zVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhYWN0aW9uc1RwbFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybXNcIj5cbiAgICAgIDxiaWl0LWlucHV0LXRleHQgaWQ9XCJzZWFyY2gtZmllbGRcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgIChvbkFjdGlvblBlcmZvcm1lZCk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBwYWdpbmF0b3IuY3VycmVudFBhZ2UgPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgIG9uVGFibGVVcGRhdGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJyZXNldElucHV0VmFsdWUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGFibGVVcGRhdGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgIGljb249XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidCgndGFibGUuc2VhcmNoJylcIlxuICAgICAgPjwvYmlpdC1pbnB1dC10ZXh0PlxuICAgICAgPGJpaXQtbXVsdGlzZWxlY3QgaWQ9XCJjb2x1bW4tc2VsZWN0b3JcIiBbbmdNb2RlbF09XCJjb2x1bW5zIHwgdmlzaWJsZUNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0Q29sdW1uVmlzaWJpbGl0eSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInZpc2libGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInQoJ3RhYmxlLmNvbHVtbi1zZWxlY3RvcicpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIkJpaXRNdWx0aXNlbGVjdFR5cGUuSUNPTlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29tcGFjdF09XCJ0cnVlXCJcbiAgICAgID48L2JpaXQtbXVsdGlzZWxlY3Q+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiPlxuICAgICAgPGJpaXQtcHJvZ3Jlc3MtYmFyIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyB0b3A6IDIuMXJlbTsgbGVmdDogMC4ycmVtOyB3aWR0aDogY2FsYygxMDAlIC0gMC4xcmVtKTtcIj48L2JpaXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDwvZGl2PlxuICAgIDx0YWJsZT5cbiAgICAgIDx0aGVhZD5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0aCAqbmdJZj1cImlzU2VsZWN0YWJsZSB8fCBpc1NlbGVjdGFibGVTaW5nbGVcIiBjbGFzcz1cInNlbGVjdFwiPlxuICAgICAgICAgICAgPGJpaXQtY2hlY2tib3ggKm5nSWY9XCJpc1NlbGVjdGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiZGF0YT8uZGF0YS5sZW5ndGggJiYgc2VsZWN0ZWRSb3dzLnNpemUgPT0gZGF0YT8uZGF0YS5sZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiJGV2ZW50ID8gZGF0YT8uZGF0YS5mb3JFYWNoKHNlbGVjdGVkUm93cy5hZGQsIHNlbGVjdGVkUm93cykgOiBzZWxlY3RlZFJvd3MuY2xlYXIoKVwiXG4gICAgICAgICAgICA+PC9iaWl0LWNoZWNrYm94PlxuICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1ucywgaW5kZXggYXMgaVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5zb3J0YWJsZV09XCJpc1NvcnRhYmxlXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiIWNvbHVtbi52aXNpYmxlID8gJ25vbmUnIDogbnVsbFwiXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4ud2lkdGggPyBjb2x1bW4ud2lkdGggKyAncHgnIDogJydcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaXNTb3J0YWJsZSA/IG9uVGFibGVTb3J0KGNvbHVtbikgOiBmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+XG4gICAgICAgICAgICAgIHt7Y29sdW1uLmxhYmVsfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJpaXQtaWNvbiAqbmdJZj1cImlzU29ydGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJzb3J0aW5nPy5uYW1lID09IGNvbHVtbi5uYW1lID8gJ3JpZ2h0X2Fycm93JyA6ICd1cF9kb3duX2Fycm93J1wiXG4gICAgICAgICAgICAgICAgICAgICAgIFtwYXRoU3R5bGVdPVwie2ZpbGw6ICcjRkZGRkZGJ31cIlxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNvcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXNjXT1cInNvcnRpbmc/Lm5hbWUgPT0gY29sdW1uLm5hbWUgJiYgc29ydGluZz8ub3JkZXIgPT0gJ2FzYydcIlxuICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGVzY109XCJzb3J0aW5nPy5uYW1lID09IGNvbHVtbi5uYW1lICYmIHNvcnRpbmc/Lm9yZGVyID09ICdkZXNjJ1wiXG4gICAgICAgICAgICA+PC9iaWl0LWljb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLXJlc2l6ZXJcIlxuICAgICAgICAgICAgICAgICAobW91c2Vkb3duKT1cInJlc2l6ZUNvbHVtbigkZXZlbnQsIGNvbHVtbiwgaSlcIlxuICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1wiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHk+XG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhPy5kYXRhOyBpbmRleCBhcyBpXCJcbiAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RhYmxlXT1cImlzU2VsZWN0YWJsZVwiXG4gICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwic2VsZWN0ZWRSb3dzLmhhcyhpdGVtKVwiXG4gICAgICAgICAgICAocG9pbnRlcmRvd24pPVwiZW1pdFJvd0NsaWNrKGl0ZW0pXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiaXNTZWxlY3RhYmxlIHx8IGlzU2VsZWN0YWJsZVNpbmdsZVwiIGNsYXNzPVwic2VsZWN0XCI+XG4gICAgICAgICAgICAgIDxiaWl0LWNoZWNrYm94IGlkPVwic2VsZWN0e3tpfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZFJvd3MuaGFzKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0Um93KGl0ZW0sIHRydWUpXCJcbiAgICAgICAgICAgICAgPjwvYmlpdC1jaGVja2JveD5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAocG9pbnRlcmRvd24pPVwic2VsZWN0Um93KGl0ZW0sICRldmVudC5jdHJsS2V5KVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiIWNvbHVtbi52aXNpYmxlID8gJ25vbmUnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbHVtbi53aWR0aCA/IGNvbHVtbi53aWR0aCArICdweCcgOiBudWxsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5mb3JtYXQgPT0gQmlpdFRhYmxlQ29sdW1uRm9ybWF0LkRFRkFVTFRcIj5cbiAgICAgICAgICAgICAgICB7e2l0ZW0gfCBjb2x1bW5EYXRhOiBjb2x1bW4ubmFtZX19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sdW1uLmZvcm1hdCA9PSBCaWl0VGFibGVDb2x1bW5Gb3JtYXQuQk9PTEVBTlwiPlxuICAgICAgICAgICAgICAgIHt7KGl0ZW0gfCBjb2x1bW5EYXRhOiBjb2x1bW4ubmFtZSkgPyB0KCd0YWJsZS55ZXMnKSA6IHQoJ3RhYmxlLm5vJykgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2x1bW4uZm9ybWF0ID09IEJpaXRUYWJsZUNvbHVtbkZvcm1hdC5EQVRFXCI+XG4gICAgICAgICAgICAgICAge3soaXRlbSB8IGNvbHVtbkRhdGE6IGNvbHVtbi5uYW1lKSB8IGxvY2FsaXplZERhdGV9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5mb3JtYXQgPT0gQmlpdFRhYmxlQ29sdW1uRm9ybWF0LkJVVFRPTlwiXG4gICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogYXV0bzsgdGV4dC1hbGlnbjogLXdlYmtpdC1jZW50ZXI7IHRleHQtYWxpZ246IC1tb3otY2VudGVyO1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gYmlpdC1idXR0b24gdGVydGlhcnlcbiAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludGVyZG93bik9XCJlbWl0Q2VsbEFjdGlvbihpdGVtLCBjb2x1bW4ubmFtZSwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAge3tpdGVtIHwgY29sdW1uRGF0YTogY29sdW1uLm5hbWV9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbi5mb3JtYXQgPT0gQmlpdFRhYmxlQ29sdW1uRm9ybWF0LklDT05fQlVUVE9OXCJcbiAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiBhdXRvOyB0ZXh0LWFsaWduOiAtd2Via2l0LWNlbnRlcjsgdGV4dC1hbGlnbjogLW1vei1jZW50ZXI7XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBiaWl0LWljb24gW2ljb25dPVwiaXRlbSB8IGNvbHVtbkRhdGE6IGNvbHVtbi5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludGVyZG93bik9XCJlbWl0Q2VsbEFjdGlvbihpdGVtLCBjb2x1bW4ubmFtZSwgJGV2ZW50KTtcIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2x1bW4uZm9ybWF0ID09IEJpaXRUYWJsZUNvbHVtbkZvcm1hdC5JQ09OXCJcbiAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiBhdXRvOyBoZWlnaHQ6IDEuMDVyZW07XCI+XG4gICAgICAgICAgICAgICAgPGJpaXQtaWNvbiBbbmFtZV09XCJpdGVtIHwgY29sdW1uRGF0YTogY29sdW1uLm5hbWVcIj48L2JpaXQtaWNvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2x1bW4uZm9ybWF0ID09IEJpaXRUYWJsZUNvbHVtbkZvcm1hdC5DVVNUT01fSFRNTFwiXG4gICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogYXV0bzsgdGV4dC1hbGlnbjogLXdlYmtpdC1jZW50ZXI7IHRleHQtYWxpZ246IC1tb3otY2VudGVyO1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJpdGVtIHwgY29sdW1uRGF0YTogY29sdW1uLm5hbWVcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuXG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb290ZXJcIiAqbmdJZj1cIiFoaWRlRm9vdGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCI+XG4gICAgICA8YSBzdHlsZT1cIm1hcmdpbi1yaWdodDogMC43cmVtXCIgKm5nSWY9XCJzZWxlY3RlZFJvd3Muc2l6ZVwiPlNlbGVjdGVkOjwvYT5cbiAgICAgIDxhICpuZ0lmPVwic2VsZWN0ZWRSb3dzLnNpemVcIj57e3NlbGVjdGVkUm93cy5zaXplfX08L2E+XG4gICAgPC9kaXY+XG4gICAgPGJpaXQtcGFnaW5hdG9yICpuZ0lmPVwicGFnaW5hdG9yXCJcbiAgICAgIFtuZ01vZGVsXT1cInBhZ2luYXRvclwiIChuZ01vZGVsQ2hhbmdlKT1cInBhZ2luYXRvciA9ICRldmVudDsgb25UYWJsZVVwZGF0ZSgpXCI+PC9iaWl0LXBhZ2luYXRvcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -915,13 +915,13 @@ class BiitToggleComponent {
|
|
|
915
915
|
}
|
|
916
916
|
}
|
|
917
917
|
BiitToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
918
|
-
BiitToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BiitToggleComponent, selector: "biit-toggle", inputs: { disabled: "disabled" }, providers: [
|
|
918
|
+
BiitToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BiitToggleComponent, selector: "biit-toggle", inputs: { disabled: "disabled", description: "description" }, providers: [
|
|
919
919
|
{
|
|
920
920
|
provide: NG_VALUE_ACCESSOR,
|
|
921
921
|
useExisting: forwardRef(() => BiitToggleComponent),
|
|
922
922
|
multi: true
|
|
923
923
|
}
|
|
924
|
-
], ngImport: i0, template: "<label class=\"toggle-base\">\n <input type=\"checkbox\" id=\"checkbox\"\n [ngModel]=\"checked\"\n (ngModelChange)=\"onToggle($event)\"\n [disabled]=\"disabled\"/>\n <div class=\"toggle-switch\" id=\"switch\">\n <div class=\"toggle-trail\"></div>\n <div class=\"toggle-box\"></div>\n </div>\n <a class=\"toggle-label\">\n <ng-content></ng-content>\n </a>\n</label>\n", styles: ["input[type=checkbox]{appearance:none;background-color:#fff;margin:0;display:flex;align-items:center;width:-moz-fit-content;width:fit-content;cursor:pointer;font-size:inherit}.toggle-base{display:flex;align-items:flex-start;width:-moz-fit-content;width:fit-content;min-height:1.2em;cursor:pointer;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-base:hover .toggle-box{transform:rotate(15deg) translate(.1em);border:.25em solid var(--main-color)}.toggle-base:has(input:checked) .toggle-trail{background:var(--selected-color)}.toggle-base:has(input:checked) .toggle-box{transform:translate(.7em) rotate(45deg);border:.25em solid var(--main-color);background:var(--main-color)}.toggle-base:has(input:disabled){pointer-events:none;cursor:default}.toggle-base:has(input:disabled) .toggle-trail{background:var(--trail-color)}.toggle-base:has(input:disabled) .toggle-box{border:.25em solid var(--main-background);background:none}.toggle-base:has(input:disabled) .toggle-label{color:var(--main-background)}.toggle-base:has(input:disabled):has(input:checked) .toggle-box{background:var(--main-background)}.toggle-switch{display:flex;align-items:center;position:relative;height:1.2em}.toggle-trail{display:inline-flex;width:1.4em;height:.25em;background:var(--trail-color);z-index:0;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-box{position:absolute;display:inline-flex;height:.7em;width:.7em;border:.25em solid var(--component-color);box-sizing:border-box;z-index:1;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-label{margin-left:.7em;cursor:inherit;line-height:1.2em;-webkit-user-select:none;user-select:none;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-label:empty{display:none}@-moz-document url-prefix(){input:checked~.toggle-switch .toggle-trail{background:var(--selected-color)}input:checked~.toggle-switch .toggle-box{transform:translate(.7em) rotate(45deg)!important;border:.25em solid var(--main-color);background:var(--main-color)}input:disabled~.toggle-switch{pointer-events:none;cursor:default}input:disabled~.toggle-switch .toggle-trail{background:var(--trail-color)}input:disabled~.toggle-switch .toggle-box{border:.25em solid var(--main-background);background:none}input:disabled~.toggle-switch .toggle-label{color:var(--main-background)}input:checked:disabled~.toggle-switch .toggle-box{background:var(--main-background)}}\n"], dependencies: [{ kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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"] }] });
|
|
924
|
+
], ngImport: i0, template: "<label class=\"toggle-base\">\n <input type=\"checkbox\" id=\"checkbox\"\n [ngModel]=\"checked\"\n (ngModelChange)=\"onToggle($event)\"\n [disabled]=\"disabled\"/>\n <div class=\"toggle-switch\" id=\"switch\">\n <div class=\"toggle-trail\"></div>\n <div class=\"toggle-box\"></div>\n </div>\n <a class=\"toggle-label\">\n <ng-content></ng-content>\n </a>\n <span *ngIf=\"description\" id=\"description\" class=\"toggle-description\">\n {{ description }}\n </span>\n</label>\n", styles: ["input[type=checkbox]{appearance:none;background-color:#fff;margin:0;display:flex;align-items:center;width:-moz-fit-content;width:fit-content;cursor:pointer;font-size:inherit}.toggle-base{display:flex;align-items:flex-start;width:-moz-fit-content;width:fit-content;min-height:1.2em;cursor:pointer;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-base:hover .toggle-box{transform:rotate(15deg) translate(.1em);border:.25em solid var(--main-color)}.toggle-base:has(input:checked) .toggle-trail{background:var(--selected-color)}.toggle-base:has(input:checked) .toggle-box{transform:translate(.7em) rotate(45deg);border:.25em solid var(--main-color);background:var(--main-color)}.toggle-base:has(input:disabled){pointer-events:none;cursor:default}.toggle-base:has(input:disabled) .toggle-trail{background:var(--trail-color)}.toggle-base:has(input:disabled) .toggle-box{border:.25em solid var(--main-background);background:none}.toggle-base:has(input:disabled) .toggle-label{color:var(--main-background)}.toggle-base:has(input:disabled):has(input:checked) .toggle-box{background:var(--main-background)}.toggle-switch{display:flex;align-items:center;position:relative;height:1.2em}.toggle-trail{display:inline-flex;width:1.4em;height:.25em;background:var(--trail-color);z-index:0;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-box{position:absolute;display:inline-flex;height:.7em;width:.7em;border:.25em solid var(--component-color);box-sizing:border-box;z-index:1;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-label{margin-left:.7em;cursor:inherit;line-height:1.2em;-webkit-user-select:none;user-select:none;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-label:empty{display:none}.toggle-description{position:absolute;display:flex;align-items:center;font-size:.75em;color:gray;padding-top:1.4em;min-height:1.05em;line-height:120%;font-style:italic}.toggle-description a{display:block;line-height:1.1em}@-moz-document url-prefix(){input:checked~.toggle-switch .toggle-trail{background:var(--selected-color)}input:checked~.toggle-switch .toggle-box{transform:translate(.7em) rotate(45deg)!important;border:.25em solid var(--main-color);background:var(--main-color)}input:disabled~.toggle-switch{pointer-events:none;cursor:default}input:disabled~.toggle-switch .toggle-trail{background:var(--trail-color)}input:disabled~.toggle-switch .toggle-box{border:.25em solid var(--main-background);background:none}input:disabled~.toggle-switch .toggle-label{color:var(--main-background)}input:checked:disabled~.toggle-switch .toggle-box{background:var(--main-background)}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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"] }] });
|
|
925
925
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitToggleComponent, decorators: [{
|
|
926
926
|
type: Component,
|
|
927
927
|
args: [{ selector: 'biit-toggle', providers: [
|
|
@@ -930,9 +930,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
930
930
|
useExisting: forwardRef(() => BiitToggleComponent),
|
|
931
931
|
multi: true
|
|
932
932
|
}
|
|
933
|
-
], template: "<label class=\"toggle-base\">\n <input type=\"checkbox\" id=\"checkbox\"\n [ngModel]=\"checked\"\n (ngModelChange)=\"onToggle($event)\"\n [disabled]=\"disabled\"/>\n <div class=\"toggle-switch\" id=\"switch\">\n <div class=\"toggle-trail\"></div>\n <div class=\"toggle-box\"></div>\n </div>\n <a class=\"toggle-label\">\n <ng-content></ng-content>\n </a>\n</label>\n", styles: ["input[type=checkbox]{appearance:none;background-color:#fff;margin:0;display:flex;align-items:center;width:-moz-fit-content;width:fit-content;cursor:pointer;font-size:inherit}.toggle-base{display:flex;align-items:flex-start;width:-moz-fit-content;width:fit-content;min-height:1.2em;cursor:pointer;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-base:hover .toggle-box{transform:rotate(15deg) translate(.1em);border:.25em solid var(--main-color)}.toggle-base:has(input:checked) .toggle-trail{background:var(--selected-color)}.toggle-base:has(input:checked) .toggle-box{transform:translate(.7em) rotate(45deg);border:.25em solid var(--main-color);background:var(--main-color)}.toggle-base:has(input:disabled){pointer-events:none;cursor:default}.toggle-base:has(input:disabled) .toggle-trail{background:var(--trail-color)}.toggle-base:has(input:disabled) .toggle-box{border:.25em solid var(--main-background);background:none}.toggle-base:has(input:disabled) .toggle-label{color:var(--main-background)}.toggle-base:has(input:disabled):has(input:checked) .toggle-box{background:var(--main-background)}.toggle-switch{display:flex;align-items:center;position:relative;height:1.2em}.toggle-trail{display:inline-flex;width:1.4em;height:.25em;background:var(--trail-color);z-index:0;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-box{position:absolute;display:inline-flex;height:.7em;width:.7em;border:.25em solid var(--component-color);box-sizing:border-box;z-index:1;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-label{margin-left:.7em;cursor:inherit;line-height:1.2em;-webkit-user-select:none;user-select:none;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-label:empty{display:none}@-moz-document url-prefix(){input:checked~.toggle-switch .toggle-trail{background:var(--selected-color)}input:checked~.toggle-switch .toggle-box{transform:translate(.7em) rotate(45deg)!important;border:.25em solid var(--main-color);background:var(--main-color)}input:disabled~.toggle-switch{pointer-events:none;cursor:default}input:disabled~.toggle-switch .toggle-trail{background:var(--trail-color)}input:disabled~.toggle-switch .toggle-box{border:.25em solid var(--main-background);background:none}input:disabled~.toggle-switch .toggle-label{color:var(--main-background)}input:checked:disabled~.toggle-switch .toggle-box{background:var(--main-background)}}\n"] }]
|
|
933
|
+
], template: "<label class=\"toggle-base\">\n <input type=\"checkbox\" id=\"checkbox\"\n [ngModel]=\"checked\"\n (ngModelChange)=\"onToggle($event)\"\n [disabled]=\"disabled\"/>\n <div class=\"toggle-switch\" id=\"switch\">\n <div class=\"toggle-trail\"></div>\n <div class=\"toggle-box\"></div>\n </div>\n <a class=\"toggle-label\">\n <ng-content></ng-content>\n </a>\n <span *ngIf=\"description\" id=\"description\" class=\"toggle-description\">\n {{ description }}\n </span>\n</label>\n", styles: ["input[type=checkbox]{appearance:none;background-color:#fff;margin:0;display:flex;align-items:center;width:-moz-fit-content;width:fit-content;cursor:pointer;font-size:inherit}.toggle-base{display:flex;align-items:flex-start;width:-moz-fit-content;width:fit-content;min-height:1.2em;cursor:pointer;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-base:hover .toggle-box{transform:rotate(15deg) translate(.1em);border:.25em solid var(--main-color)}.toggle-base:has(input:checked) .toggle-trail{background:var(--selected-color)}.toggle-base:has(input:checked) .toggle-box{transform:translate(.7em) rotate(45deg);border:.25em solid var(--main-color);background:var(--main-color)}.toggle-base:has(input:disabled){pointer-events:none;cursor:default}.toggle-base:has(input:disabled) .toggle-trail{background:var(--trail-color)}.toggle-base:has(input:disabled) .toggle-box{border:.25em solid var(--main-background);background:none}.toggle-base:has(input:disabled) .toggle-label{color:var(--main-background)}.toggle-base:has(input:disabled):has(input:checked) .toggle-box{background:var(--main-background)}.toggle-switch{display:flex;align-items:center;position:relative;height:1.2em}.toggle-trail{display:inline-flex;width:1.4em;height:.25em;background:var(--trail-color);z-index:0;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-box{position:absolute;display:inline-flex;height:.7em;width:.7em;border:.25em solid var(--component-color);box-sizing:border-box;z-index:1;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-label{margin-left:.7em;cursor:inherit;line-height:1.2em;-webkit-user-select:none;user-select:none;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.toggle-label:empty{display:none}.toggle-description{position:absolute;display:flex;align-items:center;font-size:.75em;color:gray;padding-top:1.4em;min-height:1.05em;line-height:120%;font-style:italic}.toggle-description a{display:block;line-height:1.1em}@-moz-document url-prefix(){input:checked~.toggle-switch .toggle-trail{background:var(--selected-color)}input:checked~.toggle-switch .toggle-box{transform:translate(.7em) rotate(45deg)!important;border:.25em solid var(--main-color);background:var(--main-color)}input:disabled~.toggle-switch{pointer-events:none;cursor:default}input:disabled~.toggle-switch .toggle-trail{background:var(--trail-color)}input:disabled~.toggle-switch .toggle-box{border:.25em solid var(--main-background);background:none}input:disabled~.toggle-switch .toggle-label{color:var(--main-background)}input:checked:disabled~.toggle-switch .toggle-box{background:var(--main-background)}}\n"] }]
|
|
934
934
|
}], propDecorators: { disabled: [{
|
|
935
935
|
type: Input
|
|
936
|
+
}], description: [{
|
|
937
|
+
type: Input
|
|
936
938
|
}] } });
|
|
937
939
|
|
|
938
940
|
class BiitToggleModule {
|
|
@@ -2191,7 +2193,7 @@ BiitSliderOptionVerticalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion
|
|
|
2191
2193
|
useExisting: forwardRef(() => BiitSliderOptionVerticalComponent),
|
|
2192
2194
|
multi: true
|
|
2193
2195
|
}
|
|
2194
|
-
], viewQueries: [{ propertyName: "slider", first: true, predicate: ["rangerVer"], descendants: true }, { propertyName: "tooltip", first: true, predicate: ["tooltip"], descendants: true }], ngImport: i0, template: "<div class=\"slider-vertical\">\n <input #rangerVer type=\"range\"\n orient=\"vertical\"\n class=\"vertical\"\n [class.inverted]=\"inverted\"\n [ngModel]=\"index\"\n (ngModelChange)=\"onChange(this.data[rangerVer.value].value);\"\n [min]=\"0\"\n [max]=\"data.length - 1\"\n [step]=\"1\"\n (input)=\"progressScript()\"\n (pointerdown)=\"tooltipBoxVisible = true\"\n (pointerup)=\"tooltipBoxVisible = false\"\n >\n\n <div class=\"ticks vertical\">\n <div #tooltip class=\"tooltip-slider\" [style.opacity]=\"tooltipBoxVisible && showTooltip ? '100%' : '0%'\"></div>\n <div *ngFor=\"let tick of $any(data); index as i; count as c\"\n class=\"tick\"\n [class.hide-tick]=\"!(!inverted ? data[i] : data[c-i-1]).label\"\n >\n <span></span>\n <div class=\"label\" [class.show-desc]=\"showDescription\"\n (click)=\"value = (!inverted ? data[i] : data[c-i-1]).value; onChange((!inverted ? data[i] : data[c-i-1]).value)\">\n <span>\n {{(!inverted ? data[i] : data[c-i-1]).label}}\n </span>\n <span class=\"description\" *ngIf=\"showDescription\">\n {{(!inverted ? data[i] : data[c-i-1]).description}}\n </span>\n <biit-tooltip-icon *ngIf=\"(!inverted ? data[i] : data[c-i-1]).description && !showDescription\"\n [text]=\"(!inverted ? data[i] : data[c-i-1]).description\"\n ></biit-tooltip-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [".slider-vertical{position:relative;flex:1;width:inherit;height:inherit;display:flex}.slider-vertical input[type=range]{font-size:1em;appearance:none;cursor:pointer;border:none;outline:none;background:var(--light-background);height:inherit;width:.3em;writing-mode:vertical-lr;direction:rtl}.slider-vertical input[type=range].inverted{direction:ltr}.slider-vertical input[type=range]::-webkit-slider-thumb{appearance:none;box-sizing:border-box;height:.9em;width:.9em;background-color:var(--light-background);border:.3em solid var(--component-color);-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.slider-vertical input[type=range]::-webkit-slider-thumb:hover{background-color:var(--main-color)}.slider-vertical input[type=range]:active::-webkit-slider-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]:focus::-webkit-slider-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]::-moz-range-thumb{appearance:none;box-sizing:border-box;height:.9em;width:.9em;background-color:var(--light-background);border:.3em solid var(--component-color);border-radius:0;-moz-transition:.2s ease-in-out;transition:.2s ease-in-out}.slider-vertical input[type=range]::-moz-range-thumb:hover{background-color:var(--main-color)}.slider-vertical input[type=range]:active::-moz-range-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]:focus::-moz-range-thumb{background-color:var(--main-color)}.slider-vertical .ticks{display:flex;justify-content:space-between;padding:0 0 0 3px;margin-top:5px;position:relative}.slider-vertical .ticks .tick{display:flex;flex:3.5;align-items:center;padding-left:5px;gap:3px}.slider-vertical .ticks .tick:nth-child(2){align-items:end;flex:2}.slider-vertical .ticks .tick:last-child{align-items:start;flex:2}.slider-vertical .ticks .tick.hide-tick{display:none}.slider-vertical .ticks .tick .label{display:flex;font-weight:500;flex:1;cursor:pointer;gap:.5em}.slider-vertical .ticks .tick .label.show-desc{flex-direction:column}.slider-vertical .ticks .tick .label span{line-height:120%}.slider-vertical .ticks .tick .label .description{font-size:.75em;color:
|
|
2196
|
+
], viewQueries: [{ propertyName: "slider", first: true, predicate: ["rangerVer"], descendants: true }, { propertyName: "tooltip", first: true, predicate: ["tooltip"], descendants: true }], ngImport: i0, template: "<div class=\"slider-vertical\">\n <input #rangerVer type=\"range\"\n orient=\"vertical\"\n class=\"vertical\"\n [class.inverted]=\"inverted\"\n [ngModel]=\"index\"\n (ngModelChange)=\"onChange(this.data[rangerVer.value].value);\"\n [min]=\"0\"\n [max]=\"data.length - 1\"\n [step]=\"1\"\n (input)=\"progressScript()\"\n (pointerdown)=\"tooltipBoxVisible = true\"\n (pointerup)=\"tooltipBoxVisible = false\"\n >\n\n <div class=\"ticks vertical\">\n <div #tooltip class=\"tooltip-slider\" [style.opacity]=\"tooltipBoxVisible && showTooltip ? '100%' : '0%'\"></div>\n <div *ngFor=\"let tick of $any(data); index as i; count as c\"\n class=\"tick\"\n [class.hide-tick]=\"!(!inverted ? data[i] : data[c-i-1]).label\"\n >\n <span></span>\n <div class=\"label\" [class.show-desc]=\"showDescription\"\n (click)=\"value = (!inverted ? data[i] : data[c-i-1]).value; onChange((!inverted ? data[i] : data[c-i-1]).value)\">\n <span>\n {{(!inverted ? data[i] : data[c-i-1]).label}}\n </span>\n <span class=\"description\" *ngIf=\"showDescription\">\n {{(!inverted ? data[i] : data[c-i-1]).description}}\n </span>\n <biit-tooltip-icon *ngIf=\"(!inverted ? data[i] : data[c-i-1]).description && !showDescription\"\n [text]=\"(!inverted ? data[i] : data[c-i-1]).description\"\n ></biit-tooltip-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [".slider-vertical{position:relative;flex:1;width:inherit;height:inherit;display:flex}.slider-vertical input[type=range]{font-size:1em;appearance:none;cursor:pointer;border:none;outline:none;background:var(--light-background);height:inherit;width:.3em;writing-mode:vertical-lr;direction:rtl}.slider-vertical input[type=range].inverted{direction:ltr}.slider-vertical input[type=range]::-webkit-slider-thumb{appearance:none;box-sizing:border-box;height:.9em;width:.9em;background-color:var(--light-background);border:.3em solid var(--component-color);-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.slider-vertical input[type=range]::-webkit-slider-thumb:hover{background-color:var(--main-color)}.slider-vertical input[type=range]:active::-webkit-slider-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]:focus::-webkit-slider-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]::-moz-range-thumb{appearance:none;box-sizing:border-box;height:.9em;width:.9em;background-color:var(--light-background);border:.3em solid var(--component-color);border-radius:0;-moz-transition:.2s ease-in-out;transition:.2s ease-in-out}.slider-vertical input[type=range]::-moz-range-thumb:hover{background-color:var(--main-color)}.slider-vertical input[type=range]:active::-moz-range-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]:focus::-moz-range-thumb{background-color:var(--main-color)}.slider-vertical .ticks{display:flex;justify-content:space-between;padding:0 0 0 3px;margin-top:5px;position:relative}.slider-vertical .ticks .tick{display:flex;flex:3.5;align-items:center;padding-left:5px;gap:3px}.slider-vertical .ticks .tick:nth-child(2){align-items:end;flex:2}.slider-vertical .ticks .tick:last-child{align-items:start;flex:2}.slider-vertical .ticks .tick.hide-tick{display:none}.slider-vertical .ticks .tick .label{display:flex;font-weight:500;flex:1;cursor:pointer;gap:.5em}.slider-vertical .ticks .tick .label.show-desc{flex-direction:column}.slider-vertical .ticks .tick .label span{line-height:120%}.slider-vertical .ticks .tick .label .description{font-size:.75em;color:var(--secondary-color);line-height:120%;font-style:italic;font-weight:400}.slider-vertical .ticks .tick>span{display:flex;justify-content:center;width:14px;height:16px;padding:7px 2px;background-color:var(--component-color);font-weight:500;box-sizing:border-box;background-clip:content-box;font-size:1em}.slider-vertical .ticks .tick>span>span{position:absolute;top:1rem;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-align:center;display:flex;justify-content:center;gap:5px}.slider-vertical .ticks .tick>span>span>span{-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-align:center}.slider-vertical .ticks .tick>span>span biit-tooltip-icon{margin:3px}.slider-vertical .ticks .tick>span:nth-child(2)>span{left:0;text-align:left;justify-content:start}.slider-vertical .ticks .tick>span:last-child>span{right:0;text-align:right;justify-content:end}.slider-vertical .ticks.vertical{flex-direction:column-reverse;flex:1;height:inherit;margin:2px;padding:0}.slider-vertical .ticks.vertical>span{width:20px;height:14px;padding:6px}.slider-vertical .tooltip-slider{position:absolute;bottom:4.7em;transition:opacity .2s ease-in-out;pointer-events:none}.slider-vertical .tooltip-slider ::ng-deep span{font-size:1em;background:white;padding:.1em .2em;border:1px solid var(--component-color);display:block;position:relative;min-width:max-content}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { 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: "component", type: i3$1.BiitTooltipIconComponent, selector: "biit-tooltip-icon", inputs: ["text", "inline"] }] });
|
|
2195
2197
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiitSliderOptionVerticalComponent, decorators: [{
|
|
2196
2198
|
type: Component,
|
|
2197
2199
|
args: [{ selector: 'biit-slider-option-vertical', providers: [
|
|
@@ -2200,7 +2202,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
2200
2202
|
useExisting: forwardRef(() => BiitSliderOptionVerticalComponent),
|
|
2201
2203
|
multi: true
|
|
2202
2204
|
}
|
|
2203
|
-
], template: "<div class=\"slider-vertical\">\n <input #rangerVer type=\"range\"\n orient=\"vertical\"\n class=\"vertical\"\n [class.inverted]=\"inverted\"\n [ngModel]=\"index\"\n (ngModelChange)=\"onChange(this.data[rangerVer.value].value);\"\n [min]=\"0\"\n [max]=\"data.length - 1\"\n [step]=\"1\"\n (input)=\"progressScript()\"\n (pointerdown)=\"tooltipBoxVisible = true\"\n (pointerup)=\"tooltipBoxVisible = false\"\n >\n\n <div class=\"ticks vertical\">\n <div #tooltip class=\"tooltip-slider\" [style.opacity]=\"tooltipBoxVisible && showTooltip ? '100%' : '0%'\"></div>\n <div *ngFor=\"let tick of $any(data); index as i; count as c\"\n class=\"tick\"\n [class.hide-tick]=\"!(!inverted ? data[i] : data[c-i-1]).label\"\n >\n <span></span>\n <div class=\"label\" [class.show-desc]=\"showDescription\"\n (click)=\"value = (!inverted ? data[i] : data[c-i-1]).value; onChange((!inverted ? data[i] : data[c-i-1]).value)\">\n <span>\n {{(!inverted ? data[i] : data[c-i-1]).label}}\n </span>\n <span class=\"description\" *ngIf=\"showDescription\">\n {{(!inverted ? data[i] : data[c-i-1]).description}}\n </span>\n <biit-tooltip-icon *ngIf=\"(!inverted ? data[i] : data[c-i-1]).description && !showDescription\"\n [text]=\"(!inverted ? data[i] : data[c-i-1]).description\"\n ></biit-tooltip-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [".slider-vertical{position:relative;flex:1;width:inherit;height:inherit;display:flex}.slider-vertical input[type=range]{font-size:1em;appearance:none;cursor:pointer;border:none;outline:none;background:var(--light-background);height:inherit;width:.3em;writing-mode:vertical-lr;direction:rtl}.slider-vertical input[type=range].inverted{direction:ltr}.slider-vertical input[type=range]::-webkit-slider-thumb{appearance:none;box-sizing:border-box;height:.9em;width:.9em;background-color:var(--light-background);border:.3em solid var(--component-color);-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.slider-vertical input[type=range]::-webkit-slider-thumb:hover{background-color:var(--main-color)}.slider-vertical input[type=range]:active::-webkit-slider-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]:focus::-webkit-slider-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]::-moz-range-thumb{appearance:none;box-sizing:border-box;height:.9em;width:.9em;background-color:var(--light-background);border:.3em solid var(--component-color);border-radius:0;-moz-transition:.2s ease-in-out;transition:.2s ease-in-out}.slider-vertical input[type=range]::-moz-range-thumb:hover{background-color:var(--main-color)}.slider-vertical input[type=range]:active::-moz-range-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]:focus::-moz-range-thumb{background-color:var(--main-color)}.slider-vertical .ticks{display:flex;justify-content:space-between;padding:0 0 0 3px;margin-top:5px;position:relative}.slider-vertical .ticks .tick{display:flex;flex:3.5;align-items:center;padding-left:5px;gap:3px}.slider-vertical .ticks .tick:nth-child(2){align-items:end;flex:2}.slider-vertical .ticks .tick:last-child{align-items:start;flex:2}.slider-vertical .ticks .tick.hide-tick{display:none}.slider-vertical .ticks .tick .label{display:flex;font-weight:500;flex:1;cursor:pointer;gap:.5em}.slider-vertical .ticks .tick .label.show-desc{flex-direction:column}.slider-vertical .ticks .tick .label span{line-height:120%}.slider-vertical .ticks .tick .label .description{font-size:.75em;color:
|
|
2205
|
+
], template: "<div class=\"slider-vertical\">\n <input #rangerVer type=\"range\"\n orient=\"vertical\"\n class=\"vertical\"\n [class.inverted]=\"inverted\"\n [ngModel]=\"index\"\n (ngModelChange)=\"onChange(this.data[rangerVer.value].value);\"\n [min]=\"0\"\n [max]=\"data.length - 1\"\n [step]=\"1\"\n (input)=\"progressScript()\"\n (pointerdown)=\"tooltipBoxVisible = true\"\n (pointerup)=\"tooltipBoxVisible = false\"\n >\n\n <div class=\"ticks vertical\">\n <div #tooltip class=\"tooltip-slider\" [style.opacity]=\"tooltipBoxVisible && showTooltip ? '100%' : '0%'\"></div>\n <div *ngFor=\"let tick of $any(data); index as i; count as c\"\n class=\"tick\"\n [class.hide-tick]=\"!(!inverted ? data[i] : data[c-i-1]).label\"\n >\n <span></span>\n <div class=\"label\" [class.show-desc]=\"showDescription\"\n (click)=\"value = (!inverted ? data[i] : data[c-i-1]).value; onChange((!inverted ? data[i] : data[c-i-1]).value)\">\n <span>\n {{(!inverted ? data[i] : data[c-i-1]).label}}\n </span>\n <span class=\"description\" *ngIf=\"showDescription\">\n {{(!inverted ? data[i] : data[c-i-1]).description}}\n </span>\n <biit-tooltip-icon *ngIf=\"(!inverted ? data[i] : data[c-i-1]).description && !showDescription\"\n [text]=\"(!inverted ? data[i] : data[c-i-1]).description\"\n ></biit-tooltip-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [".slider-vertical{position:relative;flex:1;width:inherit;height:inherit;display:flex}.slider-vertical input[type=range]{font-size:1em;appearance:none;cursor:pointer;border:none;outline:none;background:var(--light-background);height:inherit;width:.3em;writing-mode:vertical-lr;direction:rtl}.slider-vertical input[type=range].inverted{direction:ltr}.slider-vertical input[type=range]::-webkit-slider-thumb{appearance:none;box-sizing:border-box;height:.9em;width:.9em;background-color:var(--light-background);border:.3em solid var(--component-color);-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.slider-vertical input[type=range]::-webkit-slider-thumb:hover{background-color:var(--main-color)}.slider-vertical input[type=range]:active::-webkit-slider-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]:focus::-webkit-slider-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]::-moz-range-thumb{appearance:none;box-sizing:border-box;height:.9em;width:.9em;background-color:var(--light-background);border:.3em solid var(--component-color);border-radius:0;-moz-transition:.2s ease-in-out;transition:.2s ease-in-out}.slider-vertical input[type=range]::-moz-range-thumb:hover{background-color:var(--main-color)}.slider-vertical input[type=range]:active::-moz-range-thumb{background-color:var(--main-color)}.slider-vertical input[type=range]:focus::-moz-range-thumb{background-color:var(--main-color)}.slider-vertical .ticks{display:flex;justify-content:space-between;padding:0 0 0 3px;margin-top:5px;position:relative}.slider-vertical .ticks .tick{display:flex;flex:3.5;align-items:center;padding-left:5px;gap:3px}.slider-vertical .ticks .tick:nth-child(2){align-items:end;flex:2}.slider-vertical .ticks .tick:last-child{align-items:start;flex:2}.slider-vertical .ticks .tick.hide-tick{display:none}.slider-vertical .ticks .tick .label{display:flex;font-weight:500;flex:1;cursor:pointer;gap:.5em}.slider-vertical .ticks .tick .label.show-desc{flex-direction:column}.slider-vertical .ticks .tick .label span{line-height:120%}.slider-vertical .ticks .tick .label .description{font-size:.75em;color:var(--secondary-color);line-height:120%;font-style:italic;font-weight:400}.slider-vertical .ticks .tick>span{display:flex;justify-content:center;width:14px;height:16px;padding:7px 2px;background-color:var(--component-color);font-weight:500;box-sizing:border-box;background-clip:content-box;font-size:1em}.slider-vertical .ticks .tick>span>span{position:absolute;top:1rem;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-align:center;display:flex;justify-content:center;gap:5px}.slider-vertical .ticks .tick>span>span>span{-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-align:center}.slider-vertical .ticks .tick>span>span biit-tooltip-icon{margin:3px}.slider-vertical .ticks .tick>span:nth-child(2)>span{left:0;text-align:left;justify-content:start}.slider-vertical .ticks .tick>span:last-child>span{right:0;text-align:right;justify-content:end}.slider-vertical .ticks.vertical{flex-direction:column-reverse;flex:1;height:inherit;margin:2px;padding:0}.slider-vertical .ticks.vertical>span{width:20px;height:14px;padding:6px}.slider-vertical .tooltip-slider{position:absolute;bottom:4.7em;transition:opacity .2s ease-in-out;pointer-events:none}.slider-vertical .tooltip-slider ::ng-deep span{font-size:1em;background:white;padding:.1em .2em;border:1px solid var(--component-color);display:block;position:relative;min-width:max-content}\n"] }]
|
|
2204
2206
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
|
|
2205
2207
|
type: Input
|
|
2206
2208
|
}], inverted: [{
|