@hestia-earth/ui-components 0.30.0 → 0.30.2
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/chart/hierarchy-chart/hierarchy-chart.component.d.ts +1 -1
- package/engine/engine-models-version-link/engine-models-version-link.component.d.ts +1 -1
- package/esm2022/chart/hierarchy-chart/hierarchy-chart.component.mjs +15 -10
- package/esm2022/node/node-logs-file/node-logs-file.component.mjs +2 -2
- package/esm2022/select/select-option/select-option.component.mjs +3 -3
- package/esm2022/select/select.component.mjs +3 -3
- package/fesm2022/hestia-earth-ui-components.mjs +19 -14
- package/fesm2022/hestia-earth-ui-components.mjs.map +1 -1
- package/node/node-logs-models/node-logs-models.component.d.ts +1 -1
- package/package.json +1 -1
- package/svg-icons/glossary.svg +5 -5
- package/svg-icons/schema.svg +7 -7
|
@@ -48,7 +48,7 @@ export class SelectOptionComponent {
|
|
|
48
48
|
provide: SELECT_OPTION_TOKEN,
|
|
49
49
|
useExisting: forwardRef(() => SelectOptionComponent)
|
|
50
50
|
}
|
|
51
|
-
], ngImport: i0, template: "<input (keyup.enter)=\"checkboxClicked($event)\" *ngIf=\"isMultiple()\" [checked]=\"isChecked\" type=\"checkbox\" />\n\n<div class=\"option-content\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;gap:.6em;align-items:center;padding:.5em 1em;box-sizing:border-box;border-radius:3px;border:transparent 1px solid;cursor:pointer}:host:hover{background-color:#e5f2f8}:host.selected{background:#fefaf0}:host.disabled{opacity:.5;pointer-events:none}:host.active{border:var(--color-text-light, #bbcdd5) 1px dashed;background:#fefaf0}.option-content{width:100%;word-break:break-word;
|
|
51
|
+
], ngImport: i0, template: "<input (keyup.enter)=\"checkboxClicked($event)\" *ngIf=\"isMultiple()\" [checked]=\"isChecked\" type=\"checkbox\" />\n\n<div class=\"has-text-secondary is-size-7 | option-content\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;gap:.6em;align-items:center;padding:.5em 1em;box-sizing:border-box;border-radius:3px;border:transparent 1px solid;cursor:pointer}:host:hover{background-color:#e5f2f8}:host.selected{background:#fefaf0}:host.disabled{opacity:.5;pointer-events:none}:host.active{border:var(--color-text-light, #bbcdd5) 1px dashed;background:#fefaf0}.option-content{width:100%;word-break:break-word;font-feature-settings:\"calt\" off;line-height:128.571%}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
52
52
|
}
|
|
53
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: SelectOptionComponent, decorators: [{
|
|
54
54
|
type: Component,
|
|
@@ -57,7 +57,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
57
57
|
provide: SELECT_OPTION_TOKEN,
|
|
58
58
|
useExisting: forwardRef(() => SelectOptionComponent)
|
|
59
59
|
}
|
|
60
|
-
], standalone: true, imports: [NgIf], template: "<input (keyup.enter)=\"checkboxClicked($event)\" *ngIf=\"isMultiple()\" [checked]=\"isChecked\" type=\"checkbox\" />\n\n<div class=\"option-content\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;gap:.6em;align-items:center;padding:.5em 1em;box-sizing:border-box;border-radius:3px;border:transparent 1px solid;cursor:pointer}:host:hover{background-color:#e5f2f8}:host.selected{background:#fefaf0}:host.disabled{opacity:.5;pointer-events:none}:host.active{border:var(--color-text-light, #bbcdd5) 1px dashed;background:#fefaf0}.option-content{width:100%;word-break:break-word;
|
|
60
|
+
], standalone: true, imports: [NgIf], template: "<input (keyup.enter)=\"checkboxClicked($event)\" *ngIf=\"isMultiple()\" [checked]=\"isChecked\" type=\"checkbox\" />\n\n<div class=\"has-text-secondary is-size-7 | option-content\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;gap:.6em;align-items:center;padding:.5em 1em;box-sizing:border-box;border-radius:3px;border:transparent 1px solid;cursor:pointer}:host:hover{background-color:#e5f2f8}:host.selected{background:#fefaf0}:host.disabled{opacity:.5;pointer-events:none}:host.active{border:var(--color-text-light, #bbcdd5) 1px dashed;background:#fefaf0}.option-content{width:100%;word-break:break-word;font-feature-settings:\"calt\" off;line-height:128.571%}\n"] }]
|
|
61
61
|
}], propDecorators: { value: [{
|
|
62
62
|
type: Input
|
|
63
63
|
}], staticChecked: [{
|
|
@@ -79,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
79
79
|
type: HostListener,
|
|
80
80
|
args: ['click']
|
|
81
81
|
}] } });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VsZWN0L3NlbGVjdC1vcHRpb24vc2VsZWN0LW9wdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvc2VsZWN0L3NlbGVjdC1vcHRpb24vc2VsZWN0LW9wdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQXFCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQWdCdkMsTUFBTSxPQUFPLHFCQUFxQjtJQWRsQztRQWlCVyxVQUFLLEdBQWEsSUFBSSxDQUFDO1FBTWhDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFUCxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFFL0IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQixPQUFFLEdBQUcsVUFBVSxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBQ2hFLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxZQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBbUN4QzthQWxEUSxXQUFNLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFpQmxCLElBQWMsU0FBUztRQUNyQixJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVzQixNQUFNO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUFXO1FBQ3pCLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVTLFVBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDOytHQWxEVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixnVkFUckI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDO2FBQ3JEO1NBQ0YsMEJDNUJILDhOQUtBLGlnQkR5QlksSUFBSTs7NEZBRUgscUJBQXFCO2tCQWRqQyxTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDO3lCQUNyRDtxQkFDRixjQUNXLElBQUksV0FDUCxDQUFDLElBQUksQ0FBQzs4QkFLTixLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFJTixRQUFRO3NCQUZQLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUduQixRQUFRO3NCQUFqQixNQUFNO2dCQUV3QixVQUFVO3NCQUF4QyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFDTCxFQUFFO3NCQUF6QixXQUFXO3VCQUFDLFNBQVM7Z0JBWUMsTUFBTTtzQkFBNUIsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuaW1wb3J0IHsgU0VMRUNUX1RPS0VOIH0gZnJvbSAnLi4vc2VsZWN0LnRva2VuJztcbmltcG9ydCB7IFNFTEVDVF9PUFRJT05fVE9LRU4sIFNlbGVjdE9wdGlvblRva2VuIH0gZnJvbSAnLi9zZWxlY3Qtb3B0aW9uLnRva2VuJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZS1zZWxlY3Qtb3B0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1vcHRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBTRUxFQ1RfT1BUSU9OX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0T3B0aW9uQ29tcG9uZW50KVxuICAgIH1cbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWZdXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIFNlbGVjdE9wdGlvblRva2VuPFQ+IHtcbiAgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgQElucHV0KCkgdmFsdWU6IFQgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKSBzdGF0aWNDaGVja2VkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZGlzYWJsZWQnKVxuICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0T3B0aW9uVG9rZW48VD4+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zZWxlY3RlZCcpIGlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgaWQgPSBgb3B0aW9uLSR7U2VsZWN0T3B0aW9uQ29tcG9uZW50Lm5leHRJZCsrfWA7XG4gIHByaXZhdGUgX2NkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBfcGFyZW50ID0gaW5qZWN0KFNFTEVDVF9UT0tFTik7XG5cbiAgcHJvdGVjdGVkIGdldCBpc0NoZWNrZWQoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGljQ2hlY2tlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdGF0aWNDaGVja2VkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmlzU2VsZWN0ZWQ7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpIHNlbGVjdCgpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaGlnaGxpZ2h0QXNTZWxlY3RlZCgpO1xuICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIGhpZ2hsaWdodEFzU2VsZWN0ZWQoKSB7XG4gICAgdGhpcy5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGRlc2VsZWN0KCkge1xuICAgIHRoaXMuaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgY2hlY2tib3hDbGlja2VkKCRldmVudDogYW55KSB7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc2VsZWN0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNNdWx0aXBsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50ICYmIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLl9wYXJlbnQuaXNNdWx0aXBsZSgpKTtcbiAgfVxufVxuIiwiPGlucHV0IChrZXl1cC5lbnRlcik9XCJjaGVja2JveENsaWNrZWQoJGV2ZW50KVwiICpuZ0lmPVwiaXNNdWx0aXBsZSgpXCIgW2NoZWNrZWRdPVwiaXNDaGVja2VkXCIgdHlwZT1cImNoZWNrYm94XCIgLz5cblxuPGRpdiBjbGFzcz1cImhhcy10ZXh0LXNlY29uZGFyeSBpcy1zaXplLTcgfCBvcHRpb24tY29udGVudFwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -249,7 +249,7 @@ export class SelectComponent extends ControlValueAccessor {
|
|
|
249
249
|
provide: SELECT_TOKEN,
|
|
250
250
|
useExisting: forwardRef(() => SelectComponent)
|
|
251
251
|
}
|
|
252
|
-
], queries: [{ propertyName: "nodes", predicate: NODE_ELEMENT_TOKEN, descendants: true }, { propertyName: "options", predicate: SELECT_OPTION_TOKEN, descendants: true }], viewQueries: [{ propertyName: "searchInputEl", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #origin=\"cdkOverlayOrigin\" cdkOverlayOrigin>\n <ng-container\n *ngTemplateOutlet=\"\n selectTemplate ?? defaultSelectTemplate;\n context: {\n $implicit: this,\n value,\n displayValue,\n labelState,\n icon,\n placeholder,\n searchPlaceholder,\n width,\n valueTemplate\n }\n \"></ng-container>\n</div>\n\n<ng-template\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n [cdkConnectedOverlayOffsetX]=\"overlayOptions?.offsetX ?? -2\"\n [cdkConnectedOverlayOffsetY]=\"overlayOptions?.offsetY ?? 4\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayBackdropClass]=\"['cdk-overlay-transparent-backdrop', 'pointer-none']\"\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop>\n <div [style.width]=\"width\" class=\"select-panel\" (clickOutside)=\"close()\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n\n<ng-template #defaultSelectTemplate>\n <div class=\"is-flex is-justify-content-flex-start is-flex-direction-column | select-host\">\n <div class=\"control is-flex is-justify-content-space-between is-align-items-center\">\n <ng-container [ngSwitch]=\"labelState\">\n <input\n #input\n (input)=\"onHandleInput($event)\"\n *ngSwitchCase=\"'search'\"\n [placeholder]=\"searchPlaceholder\"\n class=\"select-search | is-transparent\" />\n\n <ng-container *ngSwitchCase=\"'value'\">\n <ng-container\n *ngTemplateOutlet=\"valueTemplate ?? defaultValueTemplate; context: { $implicit: value }\"></ng-container>\n </ng-container>\n </ng-container>\n\n <span class=\"drop-down-icon ml-2\">\n <fa-icon [icon]=\"icon\" />\n </span>\n </div>\n </div>\n</ng-template>\n\n<ng-template #defaultValueTemplate>\n <span [ngClass]=\"{ empty: !value }\" class=\"selected-value\"
|
|
252
|
+
], queries: [{ propertyName: "nodes", predicate: NODE_ELEMENT_TOKEN, descendants: true }, { propertyName: "options", predicate: SELECT_OPTION_TOKEN, descendants: true }], viewQueries: [{ propertyName: "searchInputEl", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #origin=\"cdkOverlayOrigin\" cdkOverlayOrigin>\n <ng-container\n *ngTemplateOutlet=\"\n selectTemplate ?? defaultSelectTemplate;\n context: {\n $implicit: this,\n value,\n displayValue,\n labelState,\n icon,\n placeholder,\n searchPlaceholder,\n width,\n valueTemplate\n }\n \"></ng-container>\n</div>\n\n<ng-template\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n [cdkConnectedOverlayOffsetX]=\"overlayOptions?.offsetX ?? -2\"\n [cdkConnectedOverlayOffsetY]=\"overlayOptions?.offsetY ?? 4\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayBackdropClass]=\"['cdk-overlay-transparent-backdrop', 'pointer-none']\"\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop>\n <div [style.width]=\"width\" class=\"select-panel\" (clickOutside)=\"close()\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n\n<ng-template #defaultSelectTemplate>\n <div class=\"is-flex is-justify-content-flex-start is-flex-direction-column | select-host\">\n <div class=\"control is-flex is-justify-content-space-between is-align-items-center\">\n <ng-container [ngSwitch]=\"labelState\">\n <input\n #input\n (input)=\"onHandleInput($event)\"\n *ngSwitchCase=\"'search'\"\n [placeholder]=\"searchPlaceholder\"\n class=\"select-search | is-transparent\" />\n\n <ng-container *ngSwitchCase=\"'value'\">\n <ng-container\n *ngTemplateOutlet=\"valueTemplate ?? defaultValueTemplate; context: { $implicit: value }\"></ng-container>\n </ng-container>\n </ng-container>\n\n <span class=\"drop-down-icon ml-2\">\n <fa-icon [icon]=\"icon\" />\n </span>\n </div>\n </div>\n</ng-template>\n\n<ng-template #defaultValueTemplate>\n <span [ngClass]=\"{ empty: !value }\" class=\"has-text-secondary | selected-value\">\n {{ displayValue || placeholder }}\n </span>\n</ng-template>\n", styles: ["body.is-os-windows::-webkit-scrollbar,body.is-os-windows *::-webkit-scrollbar{border-radius:10px;height:10px;width:10px;border:none;background:transparent}body.is-os-windows::-webkit-scrollbar-button,body.is-os-windows *::-webkit-scrollbar-button{background:#dde1e6;color:#dde1e6}body.is-os-windows::-webkit-scrollbar-thumb,body.is-os-windows *::-webkit-scrollbar-thumb{border-radius:10px;background:#dde1e6}body.is-os-windows::-webkit-scrollbar-thumb:hover,body.is-os-windows *::-webkit-scrollbar-thumb:hover{background:#dde1e6}body.is-os-windows::-webkit-scrollbar-track,body.is-os-windows *::-webkit-scrollbar-track{border:none;background-color:transparent;background-repeat:no-repeat;background-image:url(https://cdn.hestia.earth/prod/assets/images/scrollbar-thumb.png);background-position:center}body.is-os-windows::-webkit-scrollbar-track:vertical,body.is-os-windows *::-webkit-scrollbar-track:vertical{background-repeat:repeat-y}body.is-os-windows::-webkit-scrollbar-track:horizontal,body.is-os-windows *::-webkit-scrollbar-track:horizontal{background-repeat:repeat-x}body.is-os-windows .is-dark::-webkit-scrollbar-button{background:#4c7194;color:#4c7194}body.is-os-windows .is-dark::-webkit-scrollbar-thumb{background:#4c7194}body.is-os-windows .is-dark::-webkit-scrollbar-thumb:hover{background:#4c7194}::ng-deep:root{--select-border-radius: 6px;--select-min-width: 250px;--select-shadow: rgba(0, 0, 0, .1) 0px 4px 6px -1px, rgba(0, 0, 0, .06) 0px 2px 4px -1px}.select-host{padding:5px 10px;box-sizing:border-box;min-width:var(--select-min-width);border-radius:var(--select-border-radius);border:1px solid #f5f5f5;background:#fff;box-shadow:var(--select-shadow)}.select-host:hover{cursor:pointer;background-color:var(--color-background, #eceff1)}.select-host.select-panel-open{position:relative;z-index:1001;border-radius:var(--select-border-radius) var(--select-border-radius) 0 0;box-shadow:none}::ng-deep .is-disabled .select-host{pointer-events:none;-webkit-user-select:none;user-select:none;background:#f5f5f580;border-color:#dbdbdb;box-shadow:none;color:#dbdbdb}.select-search{border:none;outline:none;background:transparent}.select-panel{box-sizing:border-box;border-radius:0 0 var(--select-border-radius, 6px) var(--select-border-radius, 6px);border:1px solid #f5f5f5;background-color:#fff;transform-origin:top;max-height:350px;overflow:auto;box-shadow:var(--select-shadow)}\n"], dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideListenAfter"], outputs: ["clickOutside"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
253
253
|
}
|
|
254
254
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: SelectComponent, decorators: [{
|
|
255
255
|
type: Component,
|
|
@@ -272,7 +272,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
272
272
|
NgSwitchCase,
|
|
273
273
|
FaIconComponent,
|
|
274
274
|
NgClass
|
|
275
|
-
], template: "<div #origin=\"cdkOverlayOrigin\" cdkOverlayOrigin>\n <ng-container\n *ngTemplateOutlet=\"\n selectTemplate ?? defaultSelectTemplate;\n context: {\n $implicit: this,\n value,\n displayValue,\n labelState,\n icon,\n placeholder,\n searchPlaceholder,\n width,\n valueTemplate\n }\n \"></ng-container>\n</div>\n\n<ng-template\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n [cdkConnectedOverlayOffsetX]=\"overlayOptions?.offsetX ?? -2\"\n [cdkConnectedOverlayOffsetY]=\"overlayOptions?.offsetY ?? 4\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayBackdropClass]=\"['cdk-overlay-transparent-backdrop', 'pointer-none']\"\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop>\n <div [style.width]=\"width\" class=\"select-panel\" (clickOutside)=\"close()\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n\n<ng-template #defaultSelectTemplate>\n <div class=\"is-flex is-justify-content-flex-start is-flex-direction-column | select-host\">\n <div class=\"control is-flex is-justify-content-space-between is-align-items-center\">\n <ng-container [ngSwitch]=\"labelState\">\n <input\n #input\n (input)=\"onHandleInput($event)\"\n *ngSwitchCase=\"'search'\"\n [placeholder]=\"searchPlaceholder\"\n class=\"select-search | is-transparent\" />\n\n <ng-container *ngSwitchCase=\"'value'\">\n <ng-container\n *ngTemplateOutlet=\"valueTemplate ?? defaultValueTemplate; context: { $implicit: value }\"></ng-container>\n </ng-container>\n </ng-container>\n\n <span class=\"drop-down-icon ml-2\">\n <fa-icon [icon]=\"icon\" />\n </span>\n </div>\n </div>\n</ng-template>\n\n<ng-template #defaultValueTemplate>\n <span [ngClass]=\"{ empty: !value }\" class=\"selected-value\"
|
|
275
|
+
], template: "<div #origin=\"cdkOverlayOrigin\" cdkOverlayOrigin>\n <ng-container\n *ngTemplateOutlet=\"\n selectTemplate ?? defaultSelectTemplate;\n context: {\n $implicit: this,\n value,\n displayValue,\n labelState,\n icon,\n placeholder,\n searchPlaceholder,\n width,\n valueTemplate\n }\n \"></ng-container>\n</div>\n\n<ng-template\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n [cdkConnectedOverlayOffsetX]=\"overlayOptions?.offsetX ?? -2\"\n [cdkConnectedOverlayOffsetY]=\"overlayOptions?.offsetY ?? 4\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayBackdropClass]=\"['cdk-overlay-transparent-backdrop', 'pointer-none']\"\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop>\n <div [style.width]=\"width\" class=\"select-panel\" (clickOutside)=\"close()\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n\n<ng-template #defaultSelectTemplate>\n <div class=\"is-flex is-justify-content-flex-start is-flex-direction-column | select-host\">\n <div class=\"control is-flex is-justify-content-space-between is-align-items-center\">\n <ng-container [ngSwitch]=\"labelState\">\n <input\n #input\n (input)=\"onHandleInput($event)\"\n *ngSwitchCase=\"'search'\"\n [placeholder]=\"searchPlaceholder\"\n class=\"select-search | is-transparent\" />\n\n <ng-container *ngSwitchCase=\"'value'\">\n <ng-container\n *ngTemplateOutlet=\"valueTemplate ?? defaultValueTemplate; context: { $implicit: value }\"></ng-container>\n </ng-container>\n </ng-container>\n\n <span class=\"drop-down-icon ml-2\">\n <fa-icon [icon]=\"icon\" />\n </span>\n </div>\n </div>\n</ng-template>\n\n<ng-template #defaultValueTemplate>\n <span [ngClass]=\"{ empty: !value }\" class=\"has-text-secondary | selected-value\">\n {{ displayValue || placeholder }}\n </span>\n</ng-template>\n", styles: ["body.is-os-windows::-webkit-scrollbar,body.is-os-windows *::-webkit-scrollbar{border-radius:10px;height:10px;width:10px;border:none;background:transparent}body.is-os-windows::-webkit-scrollbar-button,body.is-os-windows *::-webkit-scrollbar-button{background:#dde1e6;color:#dde1e6}body.is-os-windows::-webkit-scrollbar-thumb,body.is-os-windows *::-webkit-scrollbar-thumb{border-radius:10px;background:#dde1e6}body.is-os-windows::-webkit-scrollbar-thumb:hover,body.is-os-windows *::-webkit-scrollbar-thumb:hover{background:#dde1e6}body.is-os-windows::-webkit-scrollbar-track,body.is-os-windows *::-webkit-scrollbar-track{border:none;background-color:transparent;background-repeat:no-repeat;background-image:url(https://cdn.hestia.earth/prod/assets/images/scrollbar-thumb.png);background-position:center}body.is-os-windows::-webkit-scrollbar-track:vertical,body.is-os-windows *::-webkit-scrollbar-track:vertical{background-repeat:repeat-y}body.is-os-windows::-webkit-scrollbar-track:horizontal,body.is-os-windows *::-webkit-scrollbar-track:horizontal{background-repeat:repeat-x}body.is-os-windows .is-dark::-webkit-scrollbar-button{background:#4c7194;color:#4c7194}body.is-os-windows .is-dark::-webkit-scrollbar-thumb{background:#4c7194}body.is-os-windows .is-dark::-webkit-scrollbar-thumb:hover{background:#4c7194}::ng-deep:root{--select-border-radius: 6px;--select-min-width: 250px;--select-shadow: rgba(0, 0, 0, .1) 0px 4px 6px -1px, rgba(0, 0, 0, .06) 0px 2px 4px -1px}.select-host{padding:5px 10px;box-sizing:border-box;min-width:var(--select-min-width);border-radius:var(--select-border-radius);border:1px solid #f5f5f5;background:#fff;box-shadow:var(--select-shadow)}.select-host:hover{cursor:pointer;background-color:var(--color-background, #eceff1)}.select-host.select-panel-open{position:relative;z-index:1001;border-radius:var(--select-border-radius) var(--select-border-radius) 0 0;box-shadow:none}::ng-deep .is-disabled .select-host{pointer-events:none;-webkit-user-select:none;user-select:none;background:#f5f5f580;border-color:#dbdbdb;box-shadow:none;color:#dbdbdb}.select-search{border:none;outline:none;background:transparent}.select-panel{box-sizing:border-box;border-radius:0 0 var(--select-border-radius, 6px) var(--select-border-radius, 6px);border:1px solid #f5f5f5;background-color:#fff;transform-origin:top;max-height:350px;overflow:auto;box-shadow:var(--select-shadow)}\n"] }]
|
|
276
276
|
}], propDecorators: { placeholder: [{
|
|
277
277
|
type: Input
|
|
278
278
|
}], searchPlaceholder: [{
|
|
@@ -335,4 +335,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
335
335
|
type: HostListener,
|
|
336
336
|
args: ['keydown', ['$event']]
|
|
337
337
|
}] } });
|
|
338
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUlOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBcUIsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFN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dGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgZmFBbmdsZURvd24sIGZhQW5nbGVVcCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIENka092ZXJsYXlPcmlnaW4sIENka0Nvbm5lY3RlZE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBGYUljb25Db21wb25lbnQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0LCBOZ1N3aXRjaCwgTmdTd2l0Y2hDYXNlLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuLi9jb21tb24vY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICcuLi9jb21tb24vY29udHJvbC52YWx1ZS5hY2Nlc3Nvcic7XG5pbXBvcnQgeyBTRUxFQ1RfT1BUSU9OX1RPS0VOLCBTZWxlY3RPcHRpb25Ub2tlbiB9IGZyb20gJy4vc2VsZWN0LW9wdGlvbi9zZWxlY3Qtb3B0aW9uLnRva2VuJztcbmltcG9ydCB7IFNlbGVjdFZhbHVlIH0gZnJvbSAnLi9zZWxlY3QubW9kZWwnO1xuaW1wb3J0IHsgU0VMRUNUX1RPS0VOLCBTZWxlY3RUb2tlbiB9IGZyb20gJy4vc2VsZWN0LnRva2VuJztcbmltcG9ydCB7IE5PREVfRUxFTUVOVF9UT0tFTiwgTm9kZUVsZW1lbnRUb2tlbiB9IGZyb20gJy4vbm9kZS1lbGVtZW50LnRva2VuJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogU0VMRUNUX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KVxuICAgIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDZGtPdmVybGF5T3JpZ2luLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgQ2RrQ29ubmVjdGVkT3ZlcmxheSxcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXG4gICAgTmdTd2l0Y2gsXG4gICAgTmdTd2l0Y2hDYXNlLFxuICAgIEZhSWNvbkNvbXBvbmVudCxcbiAgICBOZ0NsYXNzXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50PFQ+XG4gIGV4dGVuZHMgQ29udHJvbFZhbHVlQWNjZXNzb3I8U2VsZWN0VmFsdWU8VD4+XG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBTZWxlY3RUb2tlbjxUPlxue1xuICBwcml2YXRlIF9jZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgX2hvc3RFbCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlciA9ICdOb3RoaW5nIGlzIHNlbGVjdGVkLi4uJztcblxuICBASW5wdXQoKVxuICBzZWFyY2hQbGFjZWhvbGRlciA9ICdTdGFydCB0eXBpbmcuLi4nO1xuXG4gIEBJbnB1dCgpXG4gIHNlYXJjaGFibGUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLWRpc2FibGVkJylcbiAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKSB0YWJpbmRleCA9ICcwJztcblxuICBASW5wdXQoKVxuICBkaXNwbGF5V2l0aDogKCh2YWx1ZTogVCkgPT4gc3RyaW5nIHwgbnVtYmVyKSB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHZhbHVlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgcG9zaXRpb25zOiBDb25uZWN0ZWRQb3NpdGlvbltdO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBvcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHNlbGVjdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdFZhbHVlPFQ+PigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHNlYXJjaENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAQ29udGVudENoaWxkcmVuKE5PREVfRUxFTUVOVF9UT0tFTiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBub2RlcyE6IFF1ZXJ5TGlzdDxOb2RlRWxlbWVudFRva2VuPjtcblxuICBAQ29udGVudENoaWxkcmVuKFNFTEVDVF9PUFRJT05fVE9LRU4sIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgb3B0aW9ucyE6IFF1ZXJ5TGlzdDxTZWxlY3RPcHRpb25Ub2tlbjxUPj47XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXQnKVxuICBzZWFyY2hJbnB1dEVsITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdC1wYW5lbC1vcGVuJylcbiAgaXNPcGVuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfc2VsZWN0aW9uTW9kZWw6IFNlbGVjdGlvbk1vZGVsPFQ+ID0gbmV3IFNlbGVjdGlvbk1vZGVsPFQ+KGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLm11bHRpcGxlKSk7XG5cbiAgcHJpdmF0ZSBfb3B0aW9uTWFwID0gbmV3IE1hcDxUIHwgbnVsbCwgU2VsZWN0T3B0aW9uVG9rZW48VD4+KCk7XG5cbiAgcHJpdmF0ZSBfbGlzdEtleU1hbmFnZXIhOiBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjxOb2RlRWxlbWVudFRva2VuPjtcblxuICBwcml2YXRlIF9rZXlib2FyZERpY3Rpb25hcnkgPSB7XG4gICAgQXJyb3dEb3duOiB0aGlzLl9vbkFycm93RG93bi5iaW5kKHRoaXMpLFxuICAgIEFycm93VXA6IHRoaXMuX29uQXJyb3dVcC5iaW5kKHRoaXMpLFxuICAgIEFycm93TGVmdDogdGhpcy5fb25BcnJvd0xlZnQuYmluZCh0aGlzKSxcbiAgICBBcnJvd1JpZ2h0OiB0aGlzLl9vbkFycm93UmlnaHQuYmluZCh0aGlzKSxcbiAgICBFbnRlcjogdGhpcy5fb25FbnRlci5iaW5kKHRoaXMpLFxuICAgIEVzYzogdGhpcy5fb25Fc2MuYmluZCh0aGlzKVxuICB9O1xuXG4gIHByaXZhdGUgX211bHRpcGxlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtdWx0aXBsZSh2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbikge1xuICAgIHRoaXMuX211bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxUPihjb2VyY2VCb29sZWFuUHJvcGVydHkodGhpcy5pc011bHRpcGxlKCkpKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNlbGVjdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpIG92ZXJsYXlPcHRpb25zOiB7XG4gICAgb2Zmc2V0WD86IG51bWJlcjtcbiAgICBvZmZzZXRZPzogbnVtYmVyO1xuICB9O1xuXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNFbXB0eSgpXG4gICAgICA/IG51bGxcbiAgICAgIDogdGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNNdWx0aXBsZVNlbGVjdGlvbigpXG4gICAgICAgID8gdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWRcbiAgICAgICAgOiB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZFswXTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2YWx1ZTogU2VsZWN0VmFsdWU8VD4pIHtcbiAgICB0aGlzLl9zZXR1cFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuX2hpZ2hsaWdodFNlbGVjdGVkT3B0aW9ucygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBkaXNwbGF5VmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuZGlzcGxheVdpdGggJiYgdGhpcy52YWx1ZSkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUubWFwKHRoaXMuZGlzcGxheVdpdGgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheVdpdGgodGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBpY29uKCkge1xuICAgIHJldHVybiB0aGlzLmlzT3BlbiA/IGZhQW5nbGVVcCA6IGZhQW5nbGVEb3duO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBsYWJlbFN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLmlzT3BlbiAmJiB0aGlzLnNlYXJjaGFibGUgPyAnc2VhcmNoJyA6ICd2YWx1ZSc7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHdpZHRoKCkge1xuICAgIHJldHVybiB0aGlzLm1lbnVXaWR0aCA/PyBNYXRoLm1heCh0aGlzLl9ob3N0RWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCwgMTAwKSArICdweCc7XG4gIH1cblxuICBASW5wdXQoKSBjb21wYXJlV2l0aDogKHYxOiBUIHwgbnVsbCwgdjI6IFQgfCBudWxsKSA9PiBib29sZWFuID0gKHYxLCB2MikgPT4gdjEgPT09IHYyO1xuXG4gIEBJbnB1dCgpIG1lbnVXaWR0aDogc3RyaW5nO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKSBtYXJrQXNUb3VjaGVkKCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpIG9wZW4oKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgIGlmICh0aGlzLnNlYXJjaGFibGUpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaElucHV0RWw/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgdGhpcy5faG9zdEVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB0aGlzLnNlYXJjaENoYW5nZWQuZW1pdCgnJyk7XG4gICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogU2VsZWN0VmFsdWU8VD4pOiB2b2lkIHtcbiAgICB0aGlzLl9zZXR1cFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLl9oaWdobGlnaHRTZWxlY3RlZE9wdGlvbnMoKTtcbiAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGV4cGFuZEFsbCgpIHtcbiAgICB0aGlzLm5vZGVzLmZvckVhY2gobm9kZSA9PiBub2RlLnNob3dDaGlsZHJlbigpKTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGlzTXVsdGlwbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmNvbXBhcmVXaXRoKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jb21wYXJlV2l0aCA9IGNoYW5nZXMuY29tcGFyZVdpdGguY3VycmVudFZhbHVlO1xuICAgICAgdGhpcy5faGlnaGxpZ2h0U2VsZWN0ZWRPcHRpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2xpc3RLZXlNYW5hZ2VyID0gbmV3IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyKHRoaXMubm9kZXMpLndpdGhXcmFwKCk7XG5cbiAgICB0aGlzLl9saXN0S2V5TWFuYWdlci5jaGFuZ2UucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpLnN1YnNjcmliZShpdGVtSW5kZXggPT4ge1xuICAgICAgdGhpcy5ub2Rlcy5nZXQoaXRlbUluZGV4KT8uc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICAgIGJsb2NrOiAnY2VudGVyJ1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jaGFuZ2VkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUodmFsdWVzID0+IHtcbiAgICAgIHZhbHVlcy5yZW1vdmVkLmZvckVhY2gocnYgPT4gdGhpcy5fb3B0aW9uTWFwLmdldChydik/LmRlc2VsZWN0KCkpO1xuICAgICAgdmFsdWVzLmFkZGVkLmZvckVhY2goYXYgPT4gdGhpcy5fb3B0aW9uTWFwLmdldChhdik/LmhpZ2hsaWdodEFzU2VsZWN0ZWQoKSk7XG4gICAgfSk7XG4gICAgdGhpcy5vcHRpb25zLmNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGg8UXVlcnlMaXN0PFNlbGVjdE9wdGlvblRva2VuPFQ+Pj4odGhpcy5vcHRpb25zKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX3JlZnJlc2hPcHRpb25zTWFwKCkpLFxuICAgICAgICB0YXAoKCkgPT4gcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy5faGlnaGxpZ2h0U2VsZWN0ZWRPcHRpb25zKCkpKSxcbiAgICAgICAgc3dpdGNoTWFwKG9wdGlvbnMgPT4gbWVyZ2UoLi4ub3B0aW9ucy5tYXAobyA9PiBvLnNlbGVjdGVkKSkpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoc2VsZWN0ZWRPcHRpb24gPT4gdGhpcy5oYW5kbGVTZWxlY3Rpb24oc2VsZWN0ZWRPcHRpb24gYXMgYW55KSk7XG4gIH1cblxuICBjbGVhclNlbGVjdGlvbihlPzogRXZlbnQpIHtcbiAgICBlPy5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBoYW5kbGVTZWxlY3Rpb24ob3B0aW9uOiBTZWxlY3RPcHRpb25Ub2tlbjxUPikge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChvcHRpb24udmFsdWUpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnRvZ2dsZShvcHRpb24udmFsdWUpO1xuICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzTXVsdGlwbGVTZWxlY3Rpb24oKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldExpc3RLZXlNYW5hZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLl9saXN0S2V5TWFuYWdlcjtcbiAgfVxuXG4gIGVtaXRDaGFuZ2VFdmVudCgpIHtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHRoaXMudmFsdWUpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChlLmtleSA9PT0gJ0Fycm93RG93bicgJiYgIXRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIHRoaXMuc2VhcmNoQ2hhbmdlZC5lbWl0KCcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fa2V5Ym9hcmREaWN0aW9uYXJ5W2Uua2V5XT8uKGUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvbkhhbmRsZUlucHV0KGU6IEV2ZW50KSB7XG4gICAgdGhpcy5zZWFyY2hDaGFuZ2VkLmVtaXQoKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKTtcbiAgICBjb25zdCByZW5kZXJUaW1lID0gNTA7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fbGlzdEtleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4ICE9PSAtMSkge1xuICAgICAgICB0aGlzLl9saXN0S2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgIH1cbiAgICB9LCByZW5kZXJUaW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uRXNjKF9lOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5zZWFyY2hJbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB0aGlzLnNlYXJjaENoYW5nZWQuZW1pdCgnJyk7XG4gIH1cblxuICBwcml2YXRlIF9vbkVudGVyKF9lOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5fbGlzdEtleU1hbmFnZXIuYWN0aXZlSXRlbT8uZW50ZXJDbGljaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25BcnJvd0xlZnQoX2U6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLl9saXN0S2V5TWFuYWdlci5hY3RpdmVJdGVtPy5oaWRlQ2hpbGRyZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uQXJyb3dSaWdodChfZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMuX2xpc3RLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LnNob3dDaGlsZHJlbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25BcnJvd0Rvd24oZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMuX2hvcml6b250YWxOYXZpZ2F0aW9uSGFuZGxlcihlKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uQXJyb3dVcChlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5faG9yaXpvbnRhbE5hdmlnYXRpb25IYW5kbGVyKGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaG9yaXpvbnRhbE5hdmlnYXRpb25IYW5kbGVyKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBsZXQgbWF4X2JhY2t1cCA9IDEwMDAwO1xuICAgIGxldCB2aXNpYmxlTm9kZSA9IGZhbHNlO1xuXG4gICAgd2hpbGUgKCF2aXNpYmxlTm9kZSAmJiBtYXhfYmFja3VwID4gMCkge1xuICAgICAgdGhpcy5fbGlzdEtleU1hbmFnZXIub25LZXlkb3duKGUpO1xuICAgICAgbWF4X2JhY2t1cC0tO1xuICAgICAgdmlzaWJsZU5vZGUgPSB0aGlzLl9saXN0S2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pc1Zpc2libGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBWYWx1ZSh2YWx1ZTogU2VsZWN0VmFsdWU8VD4pIHtcbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QoLi4udmFsdWVzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZWZyZXNoT3B0aW9uc01hcCgpIHtcbiAgICB0aGlzLl9vcHRpb25NYXAuY2xlYXIoKTtcbiAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaChvID0+IHRoaXMuX29wdGlvbk1hcC5zZXQoby52YWx1ZSwgbykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0U2VsZWN0ZWRPcHRpb25zKCkge1xuICAgIGNvbnN0IHZhbHVlc1dpdGhVcGRhdGVkUmVmZXJlbmNlcyA9IHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLm1hcChcbiAgICAgIHZhbHVlID0+IHRoaXMuX2ZpbmRPcHRpb25zQnlWYWx1ZSh2YWx1ZSk/LnZhbHVlIHx8IHZhbHVlXG4gICAgKTtcbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdCguLi52YWx1ZXNXaXRoVXBkYXRlZFJlZmVyZW5jZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmluZE9wdGlvbnNCeVZhbHVlKHZhbHVlOiBUIHwgbnVsbCkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25NYXAuZ2V0KHZhbHVlKSB8fCB0aGlzLm9wdGlvbnM/LmZpbmQobyA9PiB0aGlzLmNvbXBhcmVXaXRoKG8udmFsdWUsIHZhbHVlKSk7XG4gIH1cbn1cbiIsIjxkaXYgI29yaWdpbj1cImNka092ZXJsYXlPcmlnaW5cIiBjZGtPdmVybGF5T3JpZ2luPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgIHNlbGVjdFRlbXBsYXRlID8/IGRlZmF1bHRTZWxlY3RUZW1wbGF0ZTtcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgJGltcGxpY2l0OiB0aGlzLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgZGlzcGxheVZhbHVlLFxuICAgICAgICBsYWJlbFN0YXRlLFxuICAgICAgICBpY29uLFxuICAgICAgICBwbGFjZWhvbGRlcixcbiAgICAgICAgc2VhcmNoUGxhY2Vob2xkZXIsXG4gICAgICAgIHdpZHRoLFxuICAgICAgICB2YWx1ZVRlbXBsYXRlXG4gICAgICB9XG4gICAgXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlXG4gIChiYWNrZHJvcENsaWNrKT1cImNsb3NlKClcIlxuICAoZGV0YWNoKT1cImNsb3NlKClcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9mZnNldFhdPVwib3ZlcmxheU9wdGlvbnM/Lm9mZnNldFggPz8gLTJcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9mZnNldFldPVwib3ZlcmxheU9wdGlvbnM/Lm9mZnNldFkgPz8gNFwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJpc09wZW5cIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJvcmlnaW5cIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJwb3NpdGlvbnNcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3NdPVwiWydjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsICdwb2ludGVyLW5vbmUnXVwiXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wPlxuICA8ZGl2IFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiIGNsYXNzPVwic2VsZWN0LXBhbmVsXCIgKGNsaWNrT3V0c2lkZSk9XCJjbG9zZSgpXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFNlbGVjdFRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiaXMtZmxleCBpcy1qdXN0aWZ5LWNvbnRlbnQtZmxleC1zdGFydCBpcy1mbGV4LWRpcmVjdGlvbi1jb2x1bW4gfCBzZWxlY3QtaG9zdFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250cm9sIGlzLWZsZXggaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4gaXMtYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJsYWJlbFN0YXRlXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICNpbnB1dFxuICAgICAgICAgIChpbnB1dCk9XCJvbkhhbmRsZUlucHV0KCRldmVudClcIlxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInc2VhcmNoJ1wiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdC1zZWFyY2ggfCBpcy10cmFuc3BhcmVudFwiIC8+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3ZhbHVlJ1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidmFsdWVUZW1wbGF0ZSA/PyBkZWZhdWx0VmFsdWVUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHZhbHVlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWRvd24taWNvbiBtbC0yXCI+XG4gICAgICAgIDxmYS1pY29uIFtpY29uXT1cImljb25cIiAvPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFZhbHVlVGVtcGxhdGU+XG4gIDxzcGFuIFtuZ0NsYXNzXT1cInsgZW1wdHk6ICF2YWx1ZSB9XCIgY2xhc3M9XCJzZWxlY3RlZC12YWx1ZVwiPnt7IGRpc3BsYXlWYWx1ZSB8fCBwbGFjZWhvbGRlciB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
338
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUlOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBcUIsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFN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dGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgZmFBbmdsZURvd24sIGZhQW5nbGVVcCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIENka092ZXJsYXlPcmlnaW4sIENka0Nvbm5lY3RlZE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBGYUljb25Db21wb25lbnQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0LCBOZ1N3aXRjaCwgTmdTd2l0Y2hDYXNlLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuLi9jb21tb24vY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICcuLi9jb21tb24vY29udHJvbC52YWx1ZS5hY2Nlc3Nvcic7XG5pbXBvcnQgeyBTRUxFQ1RfT1BUSU9OX1RPS0VOLCBTZWxlY3RPcHRpb25Ub2tlbiB9IGZyb20gJy4vc2VsZWN0LW9wdGlvbi9zZWxlY3Qtb3B0aW9uLnRva2VuJztcbmltcG9ydCB7IFNlbGVjdFZhbHVlIH0gZnJvbSAnLi9zZWxlY3QubW9kZWwnO1xuaW1wb3J0IHsgU0VMRUNUX1RPS0VOLCBTZWxlY3RUb2tlbiB9IGZyb20gJy4vc2VsZWN0LnRva2VuJztcbmltcG9ydCB7IE5PREVfRUxFTUVOVF9UT0tFTiwgTm9kZUVsZW1lbnRUb2tlbiB9IGZyb20gJy4vbm9kZS1lbGVtZW50LnRva2VuJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogU0VMRUNUX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KVxuICAgIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDZGtPdmVybGF5T3JpZ2luLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgQ2RrQ29ubmVjdGVkT3ZlcmxheSxcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXG4gICAgTmdTd2l0Y2gsXG4gICAgTmdTd2l0Y2hDYXNlLFxuICAgIEZhSWNvbkNvbXBvbmVudCxcbiAgICBOZ0NsYXNzXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50PFQ+XG4gIGV4dGVuZHMgQ29udHJvbFZhbHVlQWNjZXNzb3I8U2VsZWN0VmFsdWU8VD4+XG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBTZWxlY3RUb2tlbjxUPlxue1xuICBwcml2YXRlIF9jZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgX2hvc3RFbCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlciA9ICdOb3RoaW5nIGlzIHNlbGVjdGVkLi4uJztcblxuICBASW5wdXQoKVxuICBzZWFyY2hQbGFjZWhvbGRlciA9ICdTdGFydCB0eXBpbmcuLi4nO1xuXG4gIEBJbnB1dCgpXG4gIHNlYXJjaGFibGUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLWRpc2FibGVkJylcbiAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKSB0YWJpbmRleCA9ICcwJztcblxuICBASW5wdXQoKVxuICBkaXNwbGF5V2l0aDogKCh2YWx1ZTogVCkgPT4gc3RyaW5nIHwgbnVtYmVyKSB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHZhbHVlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgcG9zaXRpb25zOiBDb25uZWN0ZWRQb3NpdGlvbltdO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBvcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHNlbGVjdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdFZhbHVlPFQ+PigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHNlYXJjaENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAQ29udGVudENoaWxkcmVuKE5PREVfRUxFTUVOVF9UT0tFTiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBub2RlcyE6IFF1ZXJ5TGlzdDxOb2RlRWxlbWVudFRva2VuPjtcblxuICBAQ29udGVudENoaWxkcmVuKFNFTEVDVF9PUFRJT05fVE9LRU4sIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgb3B0aW9ucyE6IFF1ZXJ5TGlzdDxTZWxlY3RPcHRpb25Ub2tlbjxUPj47XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXQnKVxuICBzZWFyY2hJbnB1dEVsITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdC1wYW5lbC1vcGVuJylcbiAgaXNPcGVuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfc2VsZWN0aW9uTW9kZWw6IFNlbGVjdGlvbk1vZGVsPFQ+ID0gbmV3IFNlbGVjdGlvbk1vZGVsPFQ+KGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLm11bHRpcGxlKSk7XG5cbiAgcHJpdmF0ZSBfb3B0aW9uTWFwID0gbmV3IE1hcDxUIHwgbnVsbCwgU2VsZWN0T3B0aW9uVG9rZW48VD4+KCk7XG5cbiAgcHJpdmF0ZSBfbGlzdEtleU1hbmFnZXIhOiBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjxOb2RlRWxlbWVudFRva2VuPjtcblxuICBwcml2YXRlIF9rZXlib2FyZERpY3Rpb25hcnkgPSB7XG4gICAgQXJyb3dEb3duOiB0aGlzLl9vbkFycm93RG93bi5iaW5kKHRoaXMpLFxuICAgIEFycm93VXA6IHRoaXMuX29uQXJyb3dVcC5iaW5kKHRoaXMpLFxuICAgIEFycm93TGVmdDogdGhpcy5fb25BcnJvd0xlZnQuYmluZCh0aGlzKSxcbiAgICBBcnJvd1JpZ2h0OiB0aGlzLl9vbkFycm93UmlnaHQuYmluZCh0aGlzKSxcbiAgICBFbnRlcjogdGhpcy5fb25FbnRlci5iaW5kKHRoaXMpLFxuICAgIEVzYzogdGhpcy5fb25Fc2MuYmluZCh0aGlzKVxuICB9O1xuXG4gIHByaXZhdGUgX211bHRpcGxlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtdWx0aXBsZSh2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbikge1xuICAgIHRoaXMuX211bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxUPihjb2VyY2VCb29sZWFuUHJvcGVydHkodGhpcy5pc011bHRpcGxlKCkpKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNlbGVjdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpIG92ZXJsYXlPcHRpb25zOiB7XG4gICAgb2Zmc2V0WD86IG51bWJlcjtcbiAgICBvZmZzZXRZPzogbnVtYmVyO1xuICB9O1xuXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNFbXB0eSgpXG4gICAgICA/IG51bGxcbiAgICAgIDogdGhpcy5fc2VsZWN0aW9uTW9kZWwuaXNNdWx0aXBsZVNlbGVjdGlvbigpXG4gICAgICAgID8gdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWRcbiAgICAgICAgOiB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZFswXTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2YWx1ZTogU2VsZWN0VmFsdWU8VD4pIHtcbiAgICB0aGlzLl9zZXR1cFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuX2hpZ2hsaWdodFNlbGVjdGVkT3B0aW9ucygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBkaXNwbGF5VmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuZGlzcGxheVdpdGggJiYgdGhpcy52YWx1ZSkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUubWFwKHRoaXMuZGlzcGxheVdpdGgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheVdpdGgodGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBpY29uKCkge1xuICAgIHJldHVybiB0aGlzLmlzT3BlbiA/IGZhQW5nbGVVcCA6IGZhQW5nbGVEb3duO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBsYWJlbFN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLmlzT3BlbiAmJiB0aGlzLnNlYXJjaGFibGUgPyAnc2VhcmNoJyA6ICd2YWx1ZSc7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHdpZHRoKCkge1xuICAgIHJldHVybiB0aGlzLm1lbnVXaWR0aCA/PyBNYXRoLm1heCh0aGlzLl9ob3N0RWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCwgMTAwKSArICdweCc7XG4gIH1cblxuICBASW5wdXQoKSBjb21wYXJlV2l0aDogKHYxOiBUIHwgbnVsbCwgdjI6IFQgfCBudWxsKSA9PiBib29sZWFuID0gKHYxLCB2MikgPT4gdjEgPT09IHYyO1xuXG4gIEBJbnB1dCgpIG1lbnVXaWR0aDogc3RyaW5nO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKSBtYXJrQXNUb3VjaGVkKCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpIG9wZW4oKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgIGlmICh0aGlzLnNlYXJjaGFibGUpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaElucHV0RWw/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgdGhpcy5faG9zdEVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB0aGlzLnNlYXJjaENoYW5nZWQuZW1pdCgnJyk7XG4gICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogU2VsZWN0VmFsdWU8VD4pOiB2b2lkIHtcbiAgICB0aGlzLl9zZXR1cFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLl9oaWdobGlnaHRTZWxlY3RlZE9wdGlvbnMoKTtcbiAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGV4cGFuZEFsbCgpIHtcbiAgICB0aGlzLm5vZGVzLmZvckVhY2gobm9kZSA9PiBub2RlLnNob3dDaGlsZHJlbigpKTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGlzTXVsdGlwbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmNvbXBhcmVXaXRoKSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jb21wYXJlV2l0aCA9IGNoYW5nZXMuY29tcGFyZVdpdGguY3VycmVudFZhbHVlO1xuICAgICAgdGhpcy5faGlnaGxpZ2h0U2VsZWN0ZWRPcHRpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2xpc3RLZXlNYW5hZ2VyID0gbmV3IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyKHRoaXMubm9kZXMpLndpdGhXcmFwKCk7XG5cbiAgICB0aGlzLl9saXN0S2V5TWFuYWdlci5jaGFuZ2UucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpLnN1YnNjcmliZShpdGVtSW5kZXggPT4ge1xuICAgICAgdGhpcy5ub2Rlcy5nZXQoaXRlbUluZGV4KT8uc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICAgIGJsb2NrOiAnY2VudGVyJ1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jaGFuZ2VkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUodmFsdWVzID0+IHtcbiAgICAgIHZhbHVlcy5yZW1vdmVkLmZvckVhY2gocnYgPT4gdGhpcy5fb3B0aW9uTWFwLmdldChydik/LmRlc2VsZWN0KCkpO1xuICAgICAgdmFsdWVzLmFkZGVkLmZvckVhY2goYXYgPT4gdGhpcy5fb3B0aW9uTWFwLmdldChhdik/LmhpZ2hsaWdodEFzU2VsZWN0ZWQoKSk7XG4gICAgfSk7XG4gICAgdGhpcy5vcHRpb25zLmNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGg8UXVlcnlMaXN0PFNlbGVjdE9wdGlvblRva2VuPFQ+Pj4odGhpcy5vcHRpb25zKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX3JlZnJlc2hPcHRpb25zTWFwKCkpLFxuICAgICAgICB0YXAoKCkgPT4gcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy5faGlnaGxpZ2h0U2VsZWN0ZWRPcHRpb25zKCkpKSxcbiAgICAgICAgc3dpdGNoTWFwKG9wdGlvbnMgPT4gbWVyZ2UoLi4ub3B0aW9ucy5tYXAobyA9PiBvLnNlbGVjdGVkKSkpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoc2VsZWN0ZWRPcHRpb24gPT4gdGhpcy5oYW5kbGVTZWxlY3Rpb24oc2VsZWN0ZWRPcHRpb24gYXMgYW55KSk7XG4gIH1cblxuICBjbGVhclNlbGVjdGlvbihlPzogRXZlbnQpIHtcbiAgICBlPy5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBoYW5kbGVTZWxlY3Rpb24ob3B0aW9uOiBTZWxlY3RPcHRpb25Ub2tlbjxUPikge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChvcHRpb24udmFsdWUpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnRvZ2dsZShvcHRpb24udmFsdWUpO1xuICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzTXVsdGlwbGVTZWxlY3Rpb24oKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldExpc3RLZXlNYW5hZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLl9saXN0S2V5TWFuYWdlcjtcbiAgfVxuXG4gIGVtaXRDaGFuZ2VFdmVudCgpIHtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHRoaXMudmFsdWUpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChlLmtleSA9PT0gJ0Fycm93RG93bicgJiYgIXRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIHRoaXMuc2VhcmNoQ2hhbmdlZC5lbWl0KCcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fa2V5Ym9hcmREaWN0aW9uYXJ5W2Uua2V5XT8uKGUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvbkhhbmRsZUlucHV0KGU6IEV2ZW50KSB7XG4gICAgdGhpcy5zZWFyY2hDaGFuZ2VkLmVtaXQoKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKTtcbiAgICBjb25zdCByZW5kZXJUaW1lID0gNTA7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fbGlzdEtleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4ICE9PSAtMSkge1xuICAgICAgICB0aGlzLl9saXN0S2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgIH1cbiAgICB9LCByZW5kZXJUaW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uRXNjKF9lOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5zZWFyY2hJbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB0aGlzLnNlYXJjaENoYW5nZWQuZW1pdCgnJyk7XG4gIH1cblxuICBwcml2YXRlIF9vbkVudGVyKF9lOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5fbGlzdEtleU1hbmFnZXIuYWN0aXZlSXRlbT8uZW50ZXJDbGljaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25BcnJvd0xlZnQoX2U6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLl9saXN0S2V5TWFuYWdlci5hY3RpdmVJdGVtPy5oaWRlQ2hpbGRyZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uQXJyb3dSaWdodChfZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMuX2xpc3RLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LnNob3dDaGlsZHJlbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25BcnJvd0Rvd24oZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMuX2hvcml6b250YWxOYXZpZ2F0aW9uSGFuZGxlcihlKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uQXJyb3dVcChlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5faG9yaXpvbnRhbE5hdmlnYXRpb25IYW5kbGVyKGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaG9yaXpvbnRhbE5hdmlnYXRpb25IYW5kbGVyKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBsZXQgbWF4X2JhY2t1cCA9IDEwMDAwO1xuICAgIGxldCB2aXNpYmxlTm9kZSA9IGZhbHNlO1xuXG4gICAgd2hpbGUgKCF2aXNpYmxlTm9kZSAmJiBtYXhfYmFja3VwID4gMCkge1xuICAgICAgdGhpcy5fbGlzdEtleU1hbmFnZXIub25LZXlkb3duKGUpO1xuICAgICAgbWF4X2JhY2t1cC0tO1xuICAgICAgdmlzaWJsZU5vZGUgPSB0aGlzLl9saXN0S2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pc1Zpc2libGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBWYWx1ZSh2YWx1ZTogU2VsZWN0VmFsdWU8VD4pIHtcbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5zZWxlY3QoLi4udmFsdWVzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZWZyZXNoT3B0aW9uc01hcCgpIHtcbiAgICB0aGlzLl9vcHRpb25NYXAuY2xlYXIoKTtcbiAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaChvID0+IHRoaXMuX29wdGlvbk1hcC5zZXQoby52YWx1ZSwgbykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0U2VsZWN0ZWRPcHRpb25zKCkge1xuICAgIGNvbnN0IHZhbHVlc1dpdGhVcGRhdGVkUmVmZXJlbmNlcyA9IHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLm1hcChcbiAgICAgIHZhbHVlID0+IHRoaXMuX2ZpbmRPcHRpb25zQnlWYWx1ZSh2YWx1ZSk/LnZhbHVlIHx8IHZhbHVlXG4gICAgKTtcbiAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdCguLi52YWx1ZXNXaXRoVXBkYXRlZFJlZmVyZW5jZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmluZE9wdGlvbnNCeVZhbHVlKHZhbHVlOiBUIHwgbnVsbCkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25NYXAuZ2V0KHZhbHVlKSB8fCB0aGlzLm9wdGlvbnM/LmZpbmQobyA9PiB0aGlzLmNvbXBhcmVXaXRoKG8udmFsdWUsIHZhbHVlKSk7XG4gIH1cbn1cbiIsIjxkaXYgI29yaWdpbj1cImNka092ZXJsYXlPcmlnaW5cIiBjZGtPdmVybGF5T3JpZ2luPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgIHNlbGVjdFRlbXBsYXRlID8/IGRlZmF1bHRTZWxlY3RUZW1wbGF0ZTtcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgJGltcGxpY2l0OiB0aGlzLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgZGlzcGxheVZhbHVlLFxuICAgICAgICBsYWJlbFN0YXRlLFxuICAgICAgICBpY29uLFxuICAgICAgICBwbGFjZWhvbGRlcixcbiAgICAgICAgc2VhcmNoUGxhY2Vob2xkZXIsXG4gICAgICAgIHdpZHRoLFxuICAgICAgICB2YWx1ZVRlbXBsYXRlXG4gICAgICB9XG4gICAgXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlXG4gIChiYWNrZHJvcENsaWNrKT1cImNsb3NlKClcIlxuICAoZGV0YWNoKT1cImNsb3NlKClcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9mZnNldFhdPVwib3ZlcmxheU9wdGlvbnM/Lm9mZnNldFggPz8gLTJcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9mZnNldFldPVwib3ZlcmxheU9wdGlvbnM/Lm9mZnNldFkgPz8gNFwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJpc09wZW5cIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJvcmlnaW5cIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJwb3NpdGlvbnNcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3NdPVwiWydjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsICdwb2ludGVyLW5vbmUnXVwiXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wPlxuICA8ZGl2IFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiIGNsYXNzPVwic2VsZWN0LXBhbmVsXCIgKGNsaWNrT3V0c2lkZSk9XCJjbG9zZSgpXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFNlbGVjdFRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiaXMtZmxleCBpcy1qdXN0aWZ5LWNvbnRlbnQtZmxleC1zdGFydCBpcy1mbGV4LWRpcmVjdGlvbi1jb2x1bW4gfCBzZWxlY3QtaG9zdFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250cm9sIGlzLWZsZXggaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4gaXMtYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJsYWJlbFN0YXRlXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICNpbnB1dFxuICAgICAgICAgIChpbnB1dCk9XCJvbkhhbmRsZUlucHV0KCRldmVudClcIlxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInc2VhcmNoJ1wiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdC1zZWFyY2ggfCBpcy10cmFuc3BhcmVudFwiIC8+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3ZhbHVlJ1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidmFsdWVUZW1wbGF0ZSA/PyBkZWZhdWx0VmFsdWVUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHZhbHVlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWRvd24taWNvbiBtbC0yXCI+XG4gICAgICAgIDxmYS1pY29uIFtpY29uXT1cImljb25cIiAvPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFZhbHVlVGVtcGxhdGU+XG4gIDxzcGFuIFtuZ0NsYXNzXT1cInsgZW1wdHk6ICF2YWx1ZSB9XCIgY2xhc3M9XCJoYXMtdGV4dC1zZWNvbmRhcnkgfCBzZWxlY3RlZC12YWx1ZVwiPlxuICAgIHt7IGRpc3BsYXlWYWx1ZSB8fCBwbGFjZWhvbGRlciB9fVxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -7515,7 +7515,7 @@ class NodeLogsFileComponent {
|
|
|
7515
7515
|
?.filter(({ code }) => (!this.modelFilter() || code.toLocaleLowerCase().includes(`model=${this.modelFilter().toLowerCase()}`)) &&
|
|
7516
7516
|
(!this.termFilter() || code.toLocaleLowerCase().includes(`term=${this.termFilter().toLowerCase()}`))));
|
|
7517
7517
|
this.csvContent = computed(() => this.domSanitizer.bypassSecurityTrustResourceUrl(`data:text/html;charset=utf-8,${encodeURIComponent(logToCsv$1(this.allLogs()))}`));
|
|
7518
|
-
this.csvFilename = computed(() => fileToExt(this.node()?.['@id'], 'csv'));
|
|
7518
|
+
this.csvFilename = computed(() => fileToExt(this.node()?.['@id'] ?? '', 'csv'));
|
|
7519
7519
|
}
|
|
7520
7520
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NodeLogsFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7521
7521
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: NodeLogsFileComponent, isStandalone: true, selector: "he-node-logs-file", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, dataState: { classPropertyName: "dataState", publicName: "dataState", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"is-relative\">\n <div class=\"copy-clipboard\">\n <div class=\"field has-addons\">\n @if (showFilters()) {\n <div class=\"control\">\n <input\n class=\"input is-secondary is-small\"\n [ngModel]=\"modelFilter()\"\n id=\"modelFilter\"\n (input)=\"modelFilter.set($event.target.value)\"\n placeholder=\"Filter by Method / Model\" />\n </div>\n <div class=\"control\">\n <input\n class=\"input is-secondary is-small\"\n [ngModel]=\"termFilter()\"\n id=\"termFilter\"\n (input)=\"termFilter.set($event.target.value)\"\n placeholder=\"Filter by Term\" />\n </div>\n <div class=\"control\">\n <div class=\"select is-secondary is-small\">\n <select [ngModel]=\"selectedLevel()\" (change)=\"selectedLevel.set($event.target.value)\" id=\"selectedLevel\">\n @for (level of Level | keyvalue; track level) {\n <option [value]=\"level.value\">{{ level.value }}</option>\n }\n </select>\n </div>\n </div>\n }\n <div class=\"control\">\n <button\n class=\"button is-small\"\n (click)=\"showFilters.set(!showFilters())\"\n [ngbTooltip]=\"showFilters() ? 'Hide filters' : 'Show filters'\"\n placement=\"bottom\"\n container=\"body\">\n <fa-icon [icon]=\"faFilter\" />\n </button>\n </div>\n <div class=\"control\">\n <he-clipboard\n clipboardClass=\"button is-secondary is-small\"\n [value]=\"nodeLog()\"\n [hideText]=\"true\"\n [icon]=\"farClone\"\n size=\"lg\"\n rotate=\"180\"></he-clipboard>\n </div>\n <div class=\"control\">\n <a class=\"button is-info is-small\" target=\"_blank\" [href]=\"csvContent()\" [download]=\"csvFilename()\">\n <fa-icon [icon]=\"faDownload\" />\n </a>\n </div>\n </div>\n </div>\n\n <pre class=\"pl-3 pt-3 ml-3\">\n @for (line of nodeLogLines(); track line) {\n <code class=\"is-block {{line.class}}\">{{line.data.timestamp}} {{('[' + line.data.level + ']:').padEnd(9, ' ')}} {{line.data.message}}</code>\n }\n </pre>\n</div>\n", styles: [":host{display:block}pre{background-color:inherit;color:inherit;min-height:38px;max-height:500px;font-size:0}pre>code{font-size:.875rem;line-height:20px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.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: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "component", type: ClipboardComponent, selector: "he-clipboard", inputs: ["icon", "value", "disabled", "hideText", "size", "rotate", "clipboardClass"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -10183,6 +10183,9 @@ const mergedNodes = (selection, { tooltipOperator, zone }) => {
|
|
|
10183
10183
|
.call(setGroupButtonXY);
|
|
10184
10184
|
return selection;
|
|
10185
10185
|
};
|
|
10186
|
+
// more than 70%
|
|
10187
|
+
const fractionCutoff = 0.7;
|
|
10188
|
+
const fractionWidth = (data) => Math.abs(data.fraction) * nodeContentWidth;
|
|
10186
10189
|
const enterNodes = (selection) => {
|
|
10187
10190
|
const nodes = selection.filter(d => d.data.type !== ChartNodeType.root && !d.data.group);
|
|
10188
10191
|
nodes.append('rect').classed('node-box', true);
|
|
@@ -10213,7 +10216,7 @@ const enterNodes = (selection) => {
|
|
|
10213
10216
|
.append('rect')
|
|
10214
10217
|
.classed('bar-foreground', true)
|
|
10215
10218
|
.call(formatBar)
|
|
10216
|
-
.attr('width', d => d.data
|
|
10219
|
+
.attr('width', d => fractionWidth(d.data))
|
|
10217
10220
|
.attr('fill', d => nodeColours[d.data.type]);
|
|
10218
10221
|
withBar
|
|
10219
10222
|
.append('text')
|
|
@@ -10221,10 +10224,10 @@ const enterNodes = (selection) => {
|
|
|
10221
10224
|
.text(({ data }) => data.fraction === 0
|
|
10222
10225
|
? 'no contribution'
|
|
10223
10226
|
: `${Math.round(100 * data.fraction)}% ${Math.round(100 * data.fraction) === 0 ? ' (rounded)' : ''}`)
|
|
10224
|
-
.attr('text-anchor', d => (d.data.fraction === 0 ? 'middle' : d.data.fraction >
|
|
10227
|
+
.attr('text-anchor', d => (d.data.fraction === 0 ? 'middle' : d.data.fraction > fractionCutoff ? 'end' : 'start'))
|
|
10225
10228
|
.attr('x', d => d.data.fraction === 0
|
|
10226
10229
|
? nodeWidth / 2
|
|
10227
|
-
: d.data
|
|
10230
|
+
: fractionWidth(d.data) + nodePadding + (d.data.fraction > fractionCutoff ? -4 : 4))
|
|
10228
10231
|
.attr('y', nodeHeight - nodePadding - barHeight / 2);
|
|
10229
10232
|
return selection;
|
|
10230
10233
|
};
|
|
@@ -10281,6 +10284,11 @@ const groupPercentage = (node, percentage = 0.02) => {
|
|
|
10281
10284
|
node._children = notGrouped;
|
|
10282
10285
|
}
|
|
10283
10286
|
};
|
|
10287
|
+
const sumIndicators = (data) => data.reduce((acc, log) => {
|
|
10288
|
+
// ignore negative values in the total
|
|
10289
|
+
acc[log.indicator] = (acc[log.indicator] || 0) + (log.weightedValue > 0 ? log.weightedValue : 0);
|
|
10290
|
+
return acc;
|
|
10291
|
+
}, {});
|
|
10284
10292
|
const groupIndicators = (data, terms = {}, totals = {}) => data.reduce((acc, log) => {
|
|
10285
10293
|
const contributorType = typeMapping[terms[log.contributor]?.termType] || ChartNodeType.input;
|
|
10286
10294
|
const indicatorType = typeMapping[terms[log.indicator]?.termType];
|
|
@@ -10317,11 +10325,11 @@ const groupIndicators = (data, terms = {}, totals = {}) => data.reduce((acc, log
|
|
|
10317
10325
|
});
|
|
10318
10326
|
return acc;
|
|
10319
10327
|
}, {});
|
|
10320
|
-
const showBar = node => [
|
|
10328
|
+
const showBar = (node) => [
|
|
10321
10329
|
node.parent?.data.type !== ChartNodeType.root,
|
|
10322
10330
|
node.parent?.data.id !== nonLCAIndicatorsId,
|
|
10323
10331
|
!node.data.group,
|
|
10324
|
-
node.data.fraction
|
|
10332
|
+
!isNaN(node.data.fraction)
|
|
10325
10333
|
].every(Boolean);
|
|
10326
10334
|
class HierarchyChartComponent {
|
|
10327
10335
|
constructor() {
|
|
@@ -10335,10 +10343,7 @@ class HierarchyChartComponent {
|
|
|
10335
10343
|
this.nodeColours = nodeColours;
|
|
10336
10344
|
this.includedTypes = signal([]);
|
|
10337
10345
|
this.legend = computed(() => legend.filter(({ type }) => this.includedTypes().includes(type)));
|
|
10338
|
-
this.totalsPerIndicator = computed(() => this.data()
|
|
10339
|
-
acc[log.indicator] = (acc[log.indicator] || 0) + log.weightedValue;
|
|
10340
|
-
return acc;
|
|
10341
|
-
}, {}));
|
|
10346
|
+
this.totalsPerIndicator = computed(() => sumIndicators(this.data()));
|
|
10342
10347
|
this.indicators = computed(() => groupIndicators(this.data(), this.terms(), this.totalsPerIndicator()));
|
|
10343
10348
|
this.indicatorArray = computed(() => Object.values(this.indicators()));
|
|
10344
10349
|
this.linkedIndicators = computed(() => this.indicatorArray()
|
|
@@ -11412,7 +11417,7 @@ class SelectComponent extends ControlValueAccessor {
|
|
|
11412
11417
|
provide: SELECT_TOKEN,
|
|
11413
11418
|
useExisting: forwardRef(() => SelectComponent)
|
|
11414
11419
|
}
|
|
11415
|
-
], queries: [{ propertyName: "nodes", predicate: NODE_ELEMENT_TOKEN, descendants: true }, { propertyName: "options", predicate: SELECT_OPTION_TOKEN, descendants: true }], viewQueries: [{ propertyName: "searchInputEl", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #origin=\"cdkOverlayOrigin\" cdkOverlayOrigin>\n <ng-container\n *ngTemplateOutlet=\"\n selectTemplate ?? defaultSelectTemplate;\n context: {\n $implicit: this,\n value,\n displayValue,\n labelState,\n icon,\n placeholder,\n searchPlaceholder,\n width,\n valueTemplate\n }\n \"></ng-container>\n</div>\n\n<ng-template\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n [cdkConnectedOverlayOffsetX]=\"overlayOptions?.offsetX ?? -2\"\n [cdkConnectedOverlayOffsetY]=\"overlayOptions?.offsetY ?? 4\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayBackdropClass]=\"['cdk-overlay-transparent-backdrop', 'pointer-none']\"\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop>\n <div [style.width]=\"width\" class=\"select-panel\" (clickOutside)=\"close()\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n\n<ng-template #defaultSelectTemplate>\n <div class=\"is-flex is-justify-content-flex-start is-flex-direction-column | select-host\">\n <div class=\"control is-flex is-justify-content-space-between is-align-items-center\">\n <ng-container [ngSwitch]=\"labelState\">\n <input\n #input\n (input)=\"onHandleInput($event)\"\n *ngSwitchCase=\"'search'\"\n [placeholder]=\"searchPlaceholder\"\n class=\"select-search | is-transparent\" />\n\n <ng-container *ngSwitchCase=\"'value'\">\n <ng-container\n *ngTemplateOutlet=\"valueTemplate ?? defaultValueTemplate; context: { $implicit: value }\"></ng-container>\n </ng-container>\n </ng-container>\n\n <span class=\"drop-down-icon ml-2\">\n <fa-icon [icon]=\"icon\" />\n </span>\n </div>\n </div>\n</ng-template>\n\n<ng-template #defaultValueTemplate>\n <span [ngClass]=\"{ empty: !value }\" class=\"selected-value\"
|
|
11420
|
+
], queries: [{ propertyName: "nodes", predicate: NODE_ELEMENT_TOKEN, descendants: true }, { propertyName: "options", predicate: SELECT_OPTION_TOKEN, descendants: true }], viewQueries: [{ propertyName: "searchInputEl", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #origin=\"cdkOverlayOrigin\" cdkOverlayOrigin>\n <ng-container\n *ngTemplateOutlet=\"\n selectTemplate ?? defaultSelectTemplate;\n context: {\n $implicit: this,\n value,\n displayValue,\n labelState,\n icon,\n placeholder,\n searchPlaceholder,\n width,\n valueTemplate\n }\n \"></ng-container>\n</div>\n\n<ng-template\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n [cdkConnectedOverlayOffsetX]=\"overlayOptions?.offsetX ?? -2\"\n [cdkConnectedOverlayOffsetY]=\"overlayOptions?.offsetY ?? 4\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayBackdropClass]=\"['cdk-overlay-transparent-backdrop', 'pointer-none']\"\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop>\n <div [style.width]=\"width\" class=\"select-panel\" (clickOutside)=\"close()\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n\n<ng-template #defaultSelectTemplate>\n <div class=\"is-flex is-justify-content-flex-start is-flex-direction-column | select-host\">\n <div class=\"control is-flex is-justify-content-space-between is-align-items-center\">\n <ng-container [ngSwitch]=\"labelState\">\n <input\n #input\n (input)=\"onHandleInput($event)\"\n *ngSwitchCase=\"'search'\"\n [placeholder]=\"searchPlaceholder\"\n class=\"select-search | is-transparent\" />\n\n <ng-container *ngSwitchCase=\"'value'\">\n <ng-container\n *ngTemplateOutlet=\"valueTemplate ?? defaultValueTemplate; context: { $implicit: value }\"></ng-container>\n </ng-container>\n </ng-container>\n\n <span class=\"drop-down-icon ml-2\">\n <fa-icon [icon]=\"icon\" />\n </span>\n </div>\n </div>\n</ng-template>\n\n<ng-template #defaultValueTemplate>\n <span [ngClass]=\"{ empty: !value }\" class=\"has-text-secondary | selected-value\">\n {{ displayValue || placeholder }}\n </span>\n</ng-template>\n", styles: ["body.is-os-windows::-webkit-scrollbar,body.is-os-windows *::-webkit-scrollbar{border-radius:10px;height:10px;width:10px;border:none;background:transparent}body.is-os-windows::-webkit-scrollbar-button,body.is-os-windows *::-webkit-scrollbar-button{background:#dde1e6;color:#dde1e6}body.is-os-windows::-webkit-scrollbar-thumb,body.is-os-windows *::-webkit-scrollbar-thumb{border-radius:10px;background:#dde1e6}body.is-os-windows::-webkit-scrollbar-thumb:hover,body.is-os-windows *::-webkit-scrollbar-thumb:hover{background:#dde1e6}body.is-os-windows::-webkit-scrollbar-track,body.is-os-windows *::-webkit-scrollbar-track{border:none;background-color:transparent;background-repeat:no-repeat;background-image:url(https://cdn.hestia.earth/prod/assets/images/scrollbar-thumb.png);background-position:center}body.is-os-windows::-webkit-scrollbar-track:vertical,body.is-os-windows *::-webkit-scrollbar-track:vertical{background-repeat:repeat-y}body.is-os-windows::-webkit-scrollbar-track:horizontal,body.is-os-windows *::-webkit-scrollbar-track:horizontal{background-repeat:repeat-x}body.is-os-windows .is-dark::-webkit-scrollbar-button{background:#4c7194;color:#4c7194}body.is-os-windows .is-dark::-webkit-scrollbar-thumb{background:#4c7194}body.is-os-windows .is-dark::-webkit-scrollbar-thumb:hover{background:#4c7194}::ng-deep:root{--select-border-radius: 6px;--select-min-width: 250px;--select-shadow: rgba(0, 0, 0, .1) 0px 4px 6px -1px, rgba(0, 0, 0, .06) 0px 2px 4px -1px}.select-host{padding:5px 10px;box-sizing:border-box;min-width:var(--select-min-width);border-radius:var(--select-border-radius);border:1px solid #f5f5f5;background:#fff;box-shadow:var(--select-shadow)}.select-host:hover{cursor:pointer;background-color:var(--color-background, #eceff1)}.select-host.select-panel-open{position:relative;z-index:1001;border-radius:var(--select-border-radius) var(--select-border-radius) 0 0;box-shadow:none}::ng-deep .is-disabled .select-host{pointer-events:none;-webkit-user-select:none;user-select:none;background:#f5f5f580;border-color:#dbdbdb;box-shadow:none;color:#dbdbdb}.select-search{border:none;outline:none;background:transparent}.select-panel{box-sizing:border-box;border-radius:0 0 var(--select-border-radius, 6px) var(--select-border-radius, 6px);border:1px solid #f5f5f5;background-color:#fff;transform-origin:top;max-height:350px;overflow:auto;box-shadow:var(--select-shadow)}\n"], dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideListenAfter"], outputs: ["clickOutside"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11416
11421
|
}
|
|
11417
11422
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: SelectComponent, decorators: [{
|
|
11418
11423
|
type: Component$1,
|
|
@@ -11435,7 +11440,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
11435
11440
|
NgSwitchCase,
|
|
11436
11441
|
FaIconComponent,
|
|
11437
11442
|
NgClass
|
|
11438
|
-
], template: "<div #origin=\"cdkOverlayOrigin\" cdkOverlayOrigin>\n <ng-container\n *ngTemplateOutlet=\"\n selectTemplate ?? defaultSelectTemplate;\n context: {\n $implicit: this,\n value,\n displayValue,\n labelState,\n icon,\n placeholder,\n searchPlaceholder,\n width,\n valueTemplate\n }\n \"></ng-container>\n</div>\n\n<ng-template\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n [cdkConnectedOverlayOffsetX]=\"overlayOptions?.offsetX ?? -2\"\n [cdkConnectedOverlayOffsetY]=\"overlayOptions?.offsetY ?? 4\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayBackdropClass]=\"['cdk-overlay-transparent-backdrop', 'pointer-none']\"\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop>\n <div [style.width]=\"width\" class=\"select-panel\" (clickOutside)=\"close()\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n\n<ng-template #defaultSelectTemplate>\n <div class=\"is-flex is-justify-content-flex-start is-flex-direction-column | select-host\">\n <div class=\"control is-flex is-justify-content-space-between is-align-items-center\">\n <ng-container [ngSwitch]=\"labelState\">\n <input\n #input\n (input)=\"onHandleInput($event)\"\n *ngSwitchCase=\"'search'\"\n [placeholder]=\"searchPlaceholder\"\n class=\"select-search | is-transparent\" />\n\n <ng-container *ngSwitchCase=\"'value'\">\n <ng-container\n *ngTemplateOutlet=\"valueTemplate ?? defaultValueTemplate; context: { $implicit: value }\"></ng-container>\n </ng-container>\n </ng-container>\n\n <span class=\"drop-down-icon ml-2\">\n <fa-icon [icon]=\"icon\" />\n </span>\n </div>\n </div>\n</ng-template>\n\n<ng-template #defaultValueTemplate>\n <span [ngClass]=\"{ empty: !value }\" class=\"selected-value\"
|
|
11443
|
+
], template: "<div #origin=\"cdkOverlayOrigin\" cdkOverlayOrigin>\n <ng-container\n *ngTemplateOutlet=\"\n selectTemplate ?? defaultSelectTemplate;\n context: {\n $implicit: this,\n value,\n displayValue,\n labelState,\n icon,\n placeholder,\n searchPlaceholder,\n width,\n valueTemplate\n }\n \"></ng-container>\n</div>\n\n<ng-template\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n [cdkConnectedOverlayOffsetX]=\"overlayOptions?.offsetX ?? -2\"\n [cdkConnectedOverlayOffsetY]=\"overlayOptions?.offsetY ?? 4\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayBackdropClass]=\"['cdk-overlay-transparent-backdrop', 'pointer-none']\"\n cdkConnectedOverlay\n cdkConnectedOverlayHasBackdrop>\n <div [style.width]=\"width\" class=\"select-panel\" (clickOutside)=\"close()\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n\n<ng-template #defaultSelectTemplate>\n <div class=\"is-flex is-justify-content-flex-start is-flex-direction-column | select-host\">\n <div class=\"control is-flex is-justify-content-space-between is-align-items-center\">\n <ng-container [ngSwitch]=\"labelState\">\n <input\n #input\n (input)=\"onHandleInput($event)\"\n *ngSwitchCase=\"'search'\"\n [placeholder]=\"searchPlaceholder\"\n class=\"select-search | is-transparent\" />\n\n <ng-container *ngSwitchCase=\"'value'\">\n <ng-container\n *ngTemplateOutlet=\"valueTemplate ?? defaultValueTemplate; context: { $implicit: value }\"></ng-container>\n </ng-container>\n </ng-container>\n\n <span class=\"drop-down-icon ml-2\">\n <fa-icon [icon]=\"icon\" />\n </span>\n </div>\n </div>\n</ng-template>\n\n<ng-template #defaultValueTemplate>\n <span [ngClass]=\"{ empty: !value }\" class=\"has-text-secondary | selected-value\">\n {{ displayValue || placeholder }}\n </span>\n</ng-template>\n", styles: ["body.is-os-windows::-webkit-scrollbar,body.is-os-windows *::-webkit-scrollbar{border-radius:10px;height:10px;width:10px;border:none;background:transparent}body.is-os-windows::-webkit-scrollbar-button,body.is-os-windows *::-webkit-scrollbar-button{background:#dde1e6;color:#dde1e6}body.is-os-windows::-webkit-scrollbar-thumb,body.is-os-windows *::-webkit-scrollbar-thumb{border-radius:10px;background:#dde1e6}body.is-os-windows::-webkit-scrollbar-thumb:hover,body.is-os-windows *::-webkit-scrollbar-thumb:hover{background:#dde1e6}body.is-os-windows::-webkit-scrollbar-track,body.is-os-windows *::-webkit-scrollbar-track{border:none;background-color:transparent;background-repeat:no-repeat;background-image:url(https://cdn.hestia.earth/prod/assets/images/scrollbar-thumb.png);background-position:center}body.is-os-windows::-webkit-scrollbar-track:vertical,body.is-os-windows *::-webkit-scrollbar-track:vertical{background-repeat:repeat-y}body.is-os-windows::-webkit-scrollbar-track:horizontal,body.is-os-windows *::-webkit-scrollbar-track:horizontal{background-repeat:repeat-x}body.is-os-windows .is-dark::-webkit-scrollbar-button{background:#4c7194;color:#4c7194}body.is-os-windows .is-dark::-webkit-scrollbar-thumb{background:#4c7194}body.is-os-windows .is-dark::-webkit-scrollbar-thumb:hover{background:#4c7194}::ng-deep:root{--select-border-radius: 6px;--select-min-width: 250px;--select-shadow: rgba(0, 0, 0, .1) 0px 4px 6px -1px, rgba(0, 0, 0, .06) 0px 2px 4px -1px}.select-host{padding:5px 10px;box-sizing:border-box;min-width:var(--select-min-width);border-radius:var(--select-border-radius);border:1px solid #f5f5f5;background:#fff;box-shadow:var(--select-shadow)}.select-host:hover{cursor:pointer;background-color:var(--color-background, #eceff1)}.select-host.select-panel-open{position:relative;z-index:1001;border-radius:var(--select-border-radius) var(--select-border-radius) 0 0;box-shadow:none}::ng-deep .is-disabled .select-host{pointer-events:none;-webkit-user-select:none;user-select:none;background:#f5f5f580;border-color:#dbdbdb;box-shadow:none;color:#dbdbdb}.select-search{border:none;outline:none;background:transparent}.select-panel{box-sizing:border-box;border-radius:0 0 var(--select-border-radius, 6px) var(--select-border-radius, 6px);border:1px solid #f5f5f5;background-color:#fff;transform-origin:top;max-height:350px;overflow:auto;box-shadow:var(--select-shadow)}\n"] }]
|
|
11439
11444
|
}], propDecorators: { placeholder: [{
|
|
11440
11445
|
type: Input
|
|
11441
11446
|
}], searchPlaceholder: [{
|
|
@@ -11777,7 +11782,7 @@ class SelectOptionComponent {
|
|
|
11777
11782
|
provide: SELECT_OPTION_TOKEN,
|
|
11778
11783
|
useExisting: forwardRef(() => SelectOptionComponent)
|
|
11779
11784
|
}
|
|
11780
|
-
], ngImport: i0, template: "<input (keyup.enter)=\"checkboxClicked($event)\" *ngIf=\"isMultiple()\" [checked]=\"isChecked\" type=\"checkbox\" />\n\n<div class=\"option-content\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;gap:.6em;align-items:center;padding:.5em 1em;box-sizing:border-box;border-radius:3px;border:transparent 1px solid;cursor:pointer}:host:hover{background-color:#e5f2f8}:host.selected{background:#fefaf0}:host.disabled{opacity:.5;pointer-events:none}:host.active{border:var(--color-text-light, #bbcdd5) 1px dashed;background:#fefaf0}.option-content{width:100%;word-break:break-word;
|
|
11785
|
+
], ngImport: i0, template: "<input (keyup.enter)=\"checkboxClicked($event)\" *ngIf=\"isMultiple()\" [checked]=\"isChecked\" type=\"checkbox\" />\n\n<div class=\"has-text-secondary is-size-7 | option-content\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;gap:.6em;align-items:center;padding:.5em 1em;box-sizing:border-box;border-radius:3px;border:transparent 1px solid;cursor:pointer}:host:hover{background-color:#e5f2f8}:host.selected{background:#fefaf0}:host.disabled{opacity:.5;pointer-events:none}:host.active{border:var(--color-text-light, #bbcdd5) 1px dashed;background:#fefaf0}.option-content{width:100%;word-break:break-word;font-feature-settings:\"calt\" off;line-height:128.571%}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11781
11786
|
}
|
|
11782
11787
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: SelectOptionComponent, decorators: [{
|
|
11783
11788
|
type: Component$1,
|
|
@@ -11786,7 +11791,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
11786
11791
|
provide: SELECT_OPTION_TOKEN,
|
|
11787
11792
|
useExisting: forwardRef(() => SelectOptionComponent)
|
|
11788
11793
|
}
|
|
11789
|
-
], standalone: true, imports: [NgIf], template: "<input (keyup.enter)=\"checkboxClicked($event)\" *ngIf=\"isMultiple()\" [checked]=\"isChecked\" type=\"checkbox\" />\n\n<div class=\"option-content\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;gap:.6em;align-items:center;padding:.5em 1em;box-sizing:border-box;border-radius:3px;border:transparent 1px solid;cursor:pointer}:host:hover{background-color:#e5f2f8}:host.selected{background:#fefaf0}:host.disabled{opacity:.5;pointer-events:none}:host.active{border:var(--color-text-light, #bbcdd5) 1px dashed;background:#fefaf0}.option-content{width:100%;word-break:break-word;
|
|
11794
|
+
], standalone: true, imports: [NgIf], template: "<input (keyup.enter)=\"checkboxClicked($event)\" *ngIf=\"isMultiple()\" [checked]=\"isChecked\" type=\"checkbox\" />\n\n<div class=\"has-text-secondary is-size-7 | option-content\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:flex;gap:.6em;align-items:center;padding:.5em 1em;box-sizing:border-box;border-radius:3px;border:transparent 1px solid;cursor:pointer}:host:hover{background-color:#e5f2f8}:host.selected{background:#fefaf0}:host.disabled{opacity:.5;pointer-events:none}:host.active{border:var(--color-text-light, #bbcdd5) 1px dashed;background:#fefaf0}.option-content{width:100%;word-break:break-word;font-feature-settings:\"calt\" off;line-height:128.571%}\n"] }]
|
|
11790
11795
|
}], propDecorators: { value: [{
|
|
11791
11796
|
type: Input
|
|
11792
11797
|
}], staticChecked: [{
|