ngx-sp-infra 1.5.3 → 1.5.4
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/esm2022/lib/directives/required.directive.mjs +3 -3
- package/esm2022/lib/widgets/search-combobox/search-combobox.component.mjs +9 -4
- package/fesm2022/ngx-sp-infra.mjs +10 -5
- package/fesm2022/ngx-sp-infra.mjs.map +1 -1
- package/lib/directives/required.directive.d.ts +1 -1
- package/lib/widgets/search-combobox/search-combobox.component.d.ts +3 -1
- package/package.json +1 -1
|
@@ -87,12 +87,12 @@ export class RequiredDirective {
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: RequiredDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
90
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: RequiredDirective, selector: "label[libRequired]", inputs: { showMarker: ["libRequired", "showMarker"], spanID: ["sisID", "spanID"] }, usesOnChanges: true, ngImport: i0 }); }
|
|
90
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: RequiredDirective, selector: "label[libRequired], span[libRequired], p[libRequired]", inputs: { showMarker: ["libRequired", "showMarker"], spanID: ["sisID", "spanID"] }, usesOnChanges: true, ngImport: i0 }); }
|
|
91
91
|
}
|
|
92
92
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: RequiredDirective, decorators: [{
|
|
93
93
|
type: Directive,
|
|
94
94
|
args: [{
|
|
95
|
-
selector: "label[libRequired]"
|
|
95
|
+
selector: "label[libRequired], span[libRequired], p[libRequired]"
|
|
96
96
|
}]
|
|
97
97
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { showMarker: [{
|
|
98
98
|
type: Input,
|
|
@@ -101,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
101
101
|
type: Input,
|
|
102
102
|
args: ["sisID"]
|
|
103
103
|
}] } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWluZnJhL3NyYy9saWIvZGlyZWN0aXZlcy9yZXF1aXJlZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQStDLE1BQU0sZUFBZSxDQUFDOztBQUUxRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFHNUI7OztPQUdHO0lBQ0gsWUFDVSxXQUF1QixFQUN2QixTQUFvQjtRQURwQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBUnRCLGdCQUFXLEdBQVksSUFBSSxDQUFDLENBQUMsZUFBZTtRQW1CcEQseURBQXlEO1FBQ3pDLFdBQU0sR0FBVyxFQUFFLENBQUM7SUFYaEMsQ0FBQztJQUVMOzs7T0FHRztJQUNILElBQ0ksVUFBVSxDQUFDLEtBQXVCLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLEtBQUssS0FBSyxJQUFJLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO0lBQ2xLLElBQUksVUFBVSxLQUFjLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFNdEQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxZQUFZLEtBQUssT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLGFBQWEsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsYUFBYSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUFDLENBQUM7aUJBQ3JDLENBQUM7Z0JBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUdELDREQUE0RDtJQUNwRCxTQUFTO1FBQ2YsSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQUMsT0FBTztRQUFDLENBQUM7UUFFckQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxXQUFXLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQztRQUN0QyxXQUFXLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUM3QixXQUFXLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELDBEQUEwRDtJQUNsRCxZQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBRW5DLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pELElBQUksV0FBVyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFBQyxDQUFDO0lBQ3hHLENBQUM7K0dBdkRVLGlCQUFpQjttR0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUg3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1REFBdUQ7aUJBQ2xFO3VHQWtCSyxVQUFVO3NCQURiLEtBQUs7dUJBQUMsYUFBYTtnQkFLSixNQUFNO3NCQUFyQixLQUFLO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKlxyXG4gKiBEaXJldGl2YSBxdWUgYWRpY2lvbmEgdW0gYXN0ZXJpc2NvIHZlcm1lbGhvICgqKSBhbyBsYWRvIGRlIHVtIGVsZW1lbnRvIDxsYWJlbD5cclxuICogcGFyYSBpbmRpY2FyIHF1ZSBvIGNhbXBvIMOpIG9icmlnYXTDs3Jpby5cclxuICogXHJcbiAqICMjIFVzb1xyXG4gKiBcclxuICogTm8gc2V1IHRlbXBsYXRlIEhUTUwsIHZvY8OqIHBvZGUgdXNhciBhIGRpcmV0aXZhIGRlIGR1YXMgbWFuZWlyYXM6XHJcbiAqIFxyXG4gKiAxLiBTZW0gZXNwZWNpZmljYXIgbyB2YWxvciwgb25kZSBvIG1hcmNhZG9yIHNlcsOhIGV4aWJpZG8gcG9yIHBhZHLDo286XHJcbiAqIFxyXG4gKiBgYGBodG1sXHJcbiAqIDxsYWJlbCBsaWJSZXF1aXJlZCBmb3I9XCJpbnB1dFRlc3RlXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+UGVzc29hPC9sYWJlbD5cclxuICogYGBgXHJcbiAqIFxyXG4gKiAyLiBFc3BlY2lmaWNhbmRvIGV4cGxpY2l0YW1lbnRlIG8gdmFsb3IgKHRydWUgb3UgZmFsc2UpOlxyXG4gKiBcclxuICogYGBgaHRtbFxyXG4gKiA8bGFiZWwgW2xpYlJlcXVpcmVkXT1cInRydWVcIiBmb3I9XCJpbnB1dFRlc3RlXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Tm9tZTwvbGFiZWw+XHJcbiAqIDxsYWJlbCBbbGliUmVxdWlyZWRdPVwiZmFsc2VcIiBmb3I9XCJpbnB1dFRlc3RlXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+RW1wcmVzYTwvbGFiZWw+XHJcbiAqIGBgYFxyXG4gKiBcclxuICogIyMjIElucHV0c1xyXG4gKiBcclxuICogLSBgbGliUmVxdWlyZWRgOiBib29sZWFuIHwgc3RyaW5nXHJcbiAqICAgLSBEZXRlcm1pbmEgc2UgbyBhc3RlcmlzY28gZGUgb2JyaWdhdG9yaWVkYWRlIGRldmUgc2VyIGV4aWJpZG8uIFxyXG4gKiAgIC0gQWNlaXRhIHZhbG9yZXMgYm9vbGVhbm9zIChgdHJ1ZWAgb3UgYGZhbHNlYCkgb3Ugc3RyaW5ncyAoYFwidHJ1ZVwiYCBvdSBgXCJmYWxzZVwiYCkuXHJcbiAqICAgLSBQYWRyw6NvOiBgdHJ1ZWBcclxuICogXHJcbiAqIC0gYHNpc0lEYDogc3RyaW5nXHJcbiAqICAgLSBJZGVudGlmaWNhZG9yIMO6bmljbyBwYXJhIG8gZWxlbWVudG8gYDxzcGFuPmAgY3JpYWRvLlxyXG4gKiAgIC0gw5p0aWwgcGFyYSBtYW5pcHVsYcOnw6NvIGRpcmV0YSBkbyBET00gb3UgdGVzdGVzLlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6IFwibGFiZWxbbGliUmVxdWlyZWRdLCBzcGFuW2xpYlJlcXVpcmVkXSwgcFtsaWJSZXF1aXJlZF1cIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVxdWlyZWREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgcHJpdmF0ZSBfc2hvd01hcmtlcjogYm9vbGVhbiA9IHRydWU7IC8vIFZhbG9yIHBhZHLDo29cclxuXHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIF9lbGVtZW50UmVmIC0gUmVmZXLDqm5jaWEgYW8gZWxlbWVudG8gRE9NIGFvIHF1YWwgYSBkaXJldGl2YSBlc3TDoSBhc3NvY2lhZGEuXHJcbiAgICogQHBhcmFtIF9yZW5kZXJlciAtIFNlcnZpw6dvIEFuZ3VsYXIgcGFyYSBtYW5pcHVsYcOnw6NvIHNlZ3VyYSBkbyBET00uXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgc2UgbyBhc3RlcmlzY28gZGUgb2JyaWdhdG9yaWVkYWRlIGRldmUgc2VyIGV4aWJpZG8uXHJcbiAgICogU2UgbmVuaHVtIHZhbG9yIGZvciBlc3BlY2lmaWNhZG8sIG8gcGFkcsOjbyDDqSB0cnVlLlxyXG4gICAqL1xyXG4gIEBJbnB1dChcImxpYlJlcXVpcmVkXCIpXHJcbiAgc2V0IHNob3dNYXJrZXIodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcpIHsgdGhpcy5fc2hvd01hcmtlciA9IHZhbHVlICE9PSBmYWxzZSAmJiB2YWx1ZSAhPT0gJ2ZhbHNlJzsgLyogUXVhbHF1ZXIgdmFsb3IgZGlmZXJlbnRlIGRlIGZhbHNlIHNlcsOhIHRyYXRhZG8gY29tbyB0cnVlKi8gfVxyXG4gIGdldCBzaG93TWFya2VyKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fc2hvd01hcmtlcjsgfVxyXG5cclxuICAvKiogSWRlbnRpZmljYWRvciDDum5pY28gcGFyYSBvIGVsZW1lbnRvIDxzcGFuPiBjcmlhZG8uICovXHJcbiAgQElucHV0KFwic2lzSURcIikgc3BhbklEOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zaG93TWFya2VyKSB7XHJcbiAgICAgIHRoaXMuYWRkTWFya2VyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1tcInNob3dNYXJrZXJcIl0/LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlc1tcInNob3dNYXJrZXJcIl0/LnByZXZpb3VzVmFsdWUgJiYgY2hhbmdlc1tcInNob3dNYXJrZXJcIl0/LnByZXZpb3VzVmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAodGhpcy5zaG93TWFya2VyKSB7IHRoaXMuYWRkTWFya2VyKCk7IH1cclxuICAgICAgZWxzZSB7IHRoaXMucmVtb3ZlTWFya2VyKCk7IH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKiogQWRpY2lvbmEgbyBtYXJjYWRvciBkZSBhc3RlcmlzY28gYW8gZWxlbWVudG8gPGxhYmVsPi4gKi9cclxuICBwcml2YXRlIGFkZE1hcmtlcigpOiB2b2lkIHtcclxuICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLnNwYW5JRCkpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgY29uc3Qgc3BhbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3BhblwiKTtcclxuICAgIHNwYW5FbGVtZW50LmNsYXNzTmFtZSA9IFwidGV4dC1kYW5nZXJcIjtcclxuICAgIHNwYW5FbGVtZW50LmlubmVySFRNTCA9IFwiICpcIjtcclxuICAgIHNwYW5FbGVtZW50LmlkID0gdGhpcy5zcGFuSUQ7XHJcbiAgICB0aGlzLl9yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHNwYW5FbGVtZW50KTtcclxuICB9XHJcblxyXG4gIC8qKiBSZW1vdmUgbyBtYXJjYWRvciBkZSBhc3RlcmlzY28gZG8gZWxlbWVudG8gPGxhYmVsPi4gKi9cclxuICBwcml2YXRlIHJlbW92ZU1hcmtlcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNwYW5JRCA9PT0gXCJcIikgeyByZXR1cm47IH1cclxuXHJcbiAgICBjb25zdCBzcGFuRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuc3BhbklEKTtcclxuICAgIGlmIChzcGFuRWxlbWVudCAhPT0gbnVsbCkgeyB0aGlzLl9yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHNwYW5FbGVtZW50KTsgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -61,6 +61,7 @@ import * as i4 from "../../directives/required.directive";
|
|
|
61
61
|
export class SearchComboboxComponent {
|
|
62
62
|
constructor(_formBuilder) {
|
|
63
63
|
this._formBuilder = _formBuilder;
|
|
64
|
+
this._ariaExpanded = false;
|
|
64
65
|
/** Tema de cores para o componente (baseado nas cores do Bootstrap). */
|
|
65
66
|
this.colorTheme = "primary";
|
|
66
67
|
/** Placeholder para o input principal. */
|
|
@@ -77,7 +78,6 @@ export class SearchComboboxComponent {
|
|
|
77
78
|
this.onReloadList = new EventEmitter();
|
|
78
79
|
/** Evento emitido quando um item é selecionado. */
|
|
79
80
|
this.onSelectItem = new EventEmitter();
|
|
80
|
-
this.ariaExpanded = false;
|
|
81
81
|
}
|
|
82
82
|
ngOnInit() {
|
|
83
83
|
this.createFilterForm();
|
|
@@ -96,6 +96,11 @@ export class SearchComboboxComponent {
|
|
|
96
96
|
this.initializeSelectedValue();
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
+
get ariaExpanded() { return this._ariaExpanded; }
|
|
100
|
+
set ariaExpanded(value) {
|
|
101
|
+
this._ariaExpanded = value;
|
|
102
|
+
console.log("Valor mudou para: " + value);
|
|
103
|
+
}
|
|
99
104
|
get selectedItem() { return this._selectedItem; }
|
|
100
105
|
set selectedItem(value) {
|
|
101
106
|
this._selectedItem = value;
|
|
@@ -155,11 +160,11 @@ export class SearchComboboxComponent {
|
|
|
155
160
|
this.onReloadList.emit(search);
|
|
156
161
|
}
|
|
157
162
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SearchComboboxComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
158
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SearchComboboxComponent, selector: "lib-search-combobox", inputs: { comboboxList: "comboboxList", labelText: "labelText", initializedValueID: "initializedValueID", colorTheme: "colorTheme", mainInputPlaceholder: "mainInputPlaceholder", searchInputPlaceholder: "searchInputPlaceholder", disabled: "disabled", libRequired: "libRequired" }, outputs: { onReloadList: "onReloadList", onSelectItem: "onSelectItem" }, viewQueries: [{ propertyName: "_mainInput", first: true, predicate: ["mainInput"], descendants: true }, { propertyName: "_dropdownMenu", first: true, predicate: ["dropdownMenu"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label [libRequired]=\"libRequired\" class=\"form-label fw-bold\" [innerHTML]=\"labelText\"></label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\n\r\n <!-- Este elemento ng-content com o atributo [btnLeft] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado esquerdo do combobox de pesquisa.\r\n Ao usar o atributo [btnLeft], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnLeft]\"></ng-content>\r\n\r\n <input #mainInput *ngIf=\"!disabled; else disabledInput\" class=\"form-select text-start rounded-end\" type=\"text\" data-bs-toggle=\"dropdown\" [
|
|
163
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SearchComboboxComponent, selector: "lib-search-combobox", inputs: { comboboxList: "comboboxList", labelText: "labelText", initializedValueID: "initializedValueID", colorTheme: "colorTheme", mainInputPlaceholder: "mainInputPlaceholder", searchInputPlaceholder: "searchInputPlaceholder", disabled: "disabled", libRequired: "libRequired" }, outputs: { onReloadList: "onReloadList", onSelectItem: "onSelectItem" }, viewQueries: [{ propertyName: "_mainInput", first: true, predicate: ["mainInput"], descendants: true }, { propertyName: "_dropdownMenu", first: true, predicate: ["dropdownMenu"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label [libRequired]=\"libRequired\" class=\"form-label fw-bold\" [innerHTML]=\"labelText\"></label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\n\r\n <!-- Este elemento ng-content com o atributo [btnLeft] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado esquerdo do combobox de pesquisa.\r\n Ao usar o atributo [btnLeft], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnLeft]\"></ng-content>\r\n\r\n <input #mainInput *ngIf=\"!disabled; else disabledInput\" class=\"form-select text-start rounded-end\" type=\"text\" data-bs-toggle=\"dropdown\" [placeholder]=\"mainInputPlaceholder\"\r\n [(ngModel)]=\"selectedText\" data-bs-auto-close=\"outside\" aria-expanded=\"false\" readonly (click)=\"ariaExpanded = !ariaExpanded; searchInput.focus()\" (focus)=\"searchInput.focus()\">\r\n <ul #dropdownMenu class=\"dropdown-menu p-2 glb-max-height-350px overflow-y-scroll\" [class.show]=\"ariaExpanded\">\r\n <div class=\"input-group mb-2\">\r\n <input #searchInput type=\"text\" id=\"searchInput\" class=\"form-control glb-input-no-glow\" [placeholder]=\"searchInputPlaceholder\" (keyup.enter)=\"reloadList(searchInput.value)\">\r\n <button class=\"btn btn-{{colorTheme}}\" (click)=\"reloadList(searchInput.value)\"> <app-svg-storage svgName=\"lupa\" svgSize=\"medium-small\" /> </button>\r\n </div>\r\n\r\n <ng-container *ngIf=\"comboboxList; else loadingList\">\r\n <ng-container *ngIf=\"comboboxList.length > 0; else emptyItemList\">\r\n <li *ngIf=\"selectedItem && selectedItem.ID != ''\" class=\"dropdown-item\" (click)=\"setFilterValue()\"> <span class=\"fw-bold\">Limpar op\u00E7\u00E3o selecionada</span> </li>\r\n <li class=\"dropdown-item\" *ngFor=\"let item of comboboxList\" (click)=\"setFilterValue(item)\">\r\n <span *ngIf=\"item.AdditionalStringProperty1 || item.AdditionalStringProperty1 != ''\" class=\"glb-fs-12 fw-bold d-inline-block w-125\">{{ item.AdditionalStringProperty1 }}</span> {{ item.LABEL }}\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loadingList> <li class=\"dropdown-item text-center\"> <div class=\"spinner-border\" role=\"status\"><span class=\"visually-hidden\">Carregando dados...</span></div> </li> </ng-template>\r\n <ng-template #emptyItemList> <li class=\"dropdown-item fst-italic\">Nenhum registro encontrado com esta pesquisa...</li> </ng-template>\r\n </ul>\r\n\r\n <ng-template #disabledInput>\r\n <input #mainInput class=\"form-select text-start rounded-end\" type=\"text\" [placeholder]=\"mainInputPlaceholder\" [(ngModel)]=\"selectedText\" readonly disabled>\r\n </ng-template>\r\n\r\n <!-- Este elemento ng-content com o atributo [btnRight] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado direito do combobox de pesquisa.\r\n Ao usar o atributo [btnRight], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnRight]\"></ng-content>\r\n\r\n</div>\r\n", styles: [".glb-max-height-350px{max-height:350px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.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: "component", type: i3.SvgStorageComponent, selector: "app-svg-storage", inputs: ["svgName", "svgColor", "svgFill", "svgSize", "svgStrokeWidth"] }, { kind: "directive", type: i4.RequiredDirective, selector: "label[libRequired], span[libRequired], p[libRequired]", inputs: ["libRequired", "sisID"] }] }); }
|
|
159
164
|
}
|
|
160
165
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SearchComboboxComponent, decorators: [{
|
|
161
166
|
type: Component,
|
|
162
|
-
args: [{ selector: 'lib-search-combobox', template: "<label [libRequired]=\"libRequired\" class=\"form-label fw-bold\" [innerHTML]=\"labelText\"></label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\n\r\n <!-- Este elemento ng-content com o atributo [btnLeft] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado esquerdo do combobox de pesquisa.\r\n Ao usar o atributo [btnLeft], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnLeft]\"></ng-content>\r\n\r\n <input #mainInput *ngIf=\"!disabled; else disabledInput\" class=\"form-select text-start rounded-end\" type=\"text\" data-bs-toggle=\"dropdown\" [
|
|
167
|
+
args: [{ selector: 'lib-search-combobox', template: "<label [libRequired]=\"libRequired\" class=\"form-label fw-bold\" [innerHTML]=\"labelText\"></label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\n\r\n <!-- Este elemento ng-content com o atributo [btnLeft] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado esquerdo do combobox de pesquisa.\r\n Ao usar o atributo [btnLeft], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnLeft]\"></ng-content>\r\n\r\n <input #mainInput *ngIf=\"!disabled; else disabledInput\" class=\"form-select text-start rounded-end\" type=\"text\" data-bs-toggle=\"dropdown\" [placeholder]=\"mainInputPlaceholder\"\r\n [(ngModel)]=\"selectedText\" data-bs-auto-close=\"outside\" aria-expanded=\"false\" readonly (click)=\"ariaExpanded = !ariaExpanded; searchInput.focus()\" (focus)=\"searchInput.focus()\">\r\n <ul #dropdownMenu class=\"dropdown-menu p-2 glb-max-height-350px overflow-y-scroll\" [class.show]=\"ariaExpanded\">\r\n <div class=\"input-group mb-2\">\r\n <input #searchInput type=\"text\" id=\"searchInput\" class=\"form-control glb-input-no-glow\" [placeholder]=\"searchInputPlaceholder\" (keyup.enter)=\"reloadList(searchInput.value)\">\r\n <button class=\"btn btn-{{colorTheme}}\" (click)=\"reloadList(searchInput.value)\"> <app-svg-storage svgName=\"lupa\" svgSize=\"medium-small\" /> </button>\r\n </div>\r\n\r\n <ng-container *ngIf=\"comboboxList; else loadingList\">\r\n <ng-container *ngIf=\"comboboxList.length > 0; else emptyItemList\">\r\n <li *ngIf=\"selectedItem && selectedItem.ID != ''\" class=\"dropdown-item\" (click)=\"setFilterValue()\"> <span class=\"fw-bold\">Limpar op\u00E7\u00E3o selecionada</span> </li>\r\n <li class=\"dropdown-item\" *ngFor=\"let item of comboboxList\" (click)=\"setFilterValue(item)\">\r\n <span *ngIf=\"item.AdditionalStringProperty1 || item.AdditionalStringProperty1 != ''\" class=\"glb-fs-12 fw-bold d-inline-block w-125\">{{ item.AdditionalStringProperty1 }}</span> {{ item.LABEL }}\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loadingList> <li class=\"dropdown-item text-center\"> <div class=\"spinner-border\" role=\"status\"><span class=\"visually-hidden\">Carregando dados...</span></div> </li> </ng-template>\r\n <ng-template #emptyItemList> <li class=\"dropdown-item fst-italic\">Nenhum registro encontrado com esta pesquisa...</li> </ng-template>\r\n </ul>\r\n\r\n <ng-template #disabledInput>\r\n <input #mainInput class=\"form-select text-start rounded-end\" type=\"text\" [placeholder]=\"mainInputPlaceholder\" [(ngModel)]=\"selectedText\" readonly disabled>\r\n </ng-template>\r\n\r\n <!-- Este elemento ng-content com o atributo [btnRight] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado direito do combobox de pesquisa.\r\n Ao usar o atributo [btnRight], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnRight]\"></ng-content>\r\n\r\n</div>\r\n", styles: [".glb-max-height-350px{max-height:350px!important}\n"] }]
|
|
163
168
|
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { comboboxList: [{
|
|
164
169
|
type: Input,
|
|
165
170
|
args: [{ required: true }]
|
|
@@ -189,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
189
194
|
type: ViewChild,
|
|
190
195
|
args: ['dropdownMenu']
|
|
191
196
|
}] } });
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3dpZGdldHMvc2VhcmNoLWNvbWJvYm94L3NlYXJjaC1jb21ib2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL3NlYXJjaC1jb21ib2JveC9zZWFyY2gtY29tYm9ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0ksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFLbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvREc7QUFNSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQ1UsWUFBeUI7UUFBekIsaUJBQVksR0FBWixZQUFZLENBQWE7UUFzQ25DLHdFQUF3RTtRQUN4RCxlQUFVLEdBQTJGLFNBQVMsQ0FBQztRQUUvSCwwQ0FBMEM7UUFDMUIseUJBQW9CLEdBQVcsd0JBQXdCLENBQUM7UUFFeEUsNENBQTRDO1FBQzVCLDJCQUFzQixHQUFXLGFBQWEsQ0FBQztRQUUvRCx5REFBeUQ7UUFDekMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUc3Qzs7O1dBR0c7UUFDYyxpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRWpGLG1EQUFtRDtRQUNsQyxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBT3BFLGlCQUFZLEdBQVksS0FBSyxDQUFDO0lBbEVsQyxDQUFD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Z0JBR1UsVUFBVTtzQkFBekIsS0FBSztnQkFHVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBR1Usc0JBQXNCO3NCQUFyQyxLQUFLO2dCQUdVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBRVUsV0FBVztzQkFBMUIsS0FBSztnQkFPVyxZQUFZO3NCQUE1QixNQUFNO2dCQUdVLFlBQVk7c0JBQTVCLE1BQU07Z0JBR3lCLFVBQVU7c0JBQXpDLFNBQVM7dUJBQUMsV0FBVztnQkFDYSxhQUFhO3NCQUEvQyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmltcG9ydCB7IEZvcm1VdGlscyB9IGZyb20gXCIuLi8uLi91dGlscy9mb3JtLXV0aWxzXCI7XHJcblxyXG5pbXBvcnQgeyBSZWNvcmRDb21ib2JveCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tYm9ib3gvcmVjb3JkLWNvbWJvYm94XCI7XHJcblxyXG5cclxuLyoqXHJcbiAqIEBmaWxlIHNlYXJjaC1jb21ib2JveC5jb21wb25lbnQudHNcclxuICogQGRlc2NyaXB0aW9uIEVzdGUgYXJxdWl2byBjb250w6ltIGEgaW1wbGVtZW50YcOnw6NvIGRvIGNvbXBvbmVudGUgU2VhcmNoQ29tYm9ib3hDb21wb25lbnQsIHF1ZSDDqSB1bSBjb21wb25lbnRlIGRlIGludGVyZmFjZSBkbyB1c3XDoXJpb1xyXG4gKiBwYXJhIHJlYWxpemFyIHBlc3F1aXNhcyBlIHNlbGXDp8O1ZXMgZW0gdW1hIGxpc3RhIGRlIG9ww6fDtWVzIGFwcmVzZW50YWRhIGVtIHVtIGNvbWJvYm94LlxyXG4gKiBcclxuICogQGNvbXBvbmVudCBTZWFyY2hDb21ib2JveENvbXBvbmVudFxyXG4gKiBAc2VsZWN0b3IgbGliLXNlYXJjaC1jb21ib2JveFxyXG4gKiBAdGVtcGxhdGVVcmwgLi9zZWFyY2gtY29tYm9ib3guY29tcG9uZW50Lmh0bWxcclxuICogQHN0eWxlVXJsIC4vc2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC5zY3NzXHJcbiAqIFxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogTyBjb21wb25lbnRlIFNlYXJjaENvbWJvYm94Q29tcG9uZW50IMOpIHByb2pldGFkbyBwYXJhIGZvcm5lY2VyIGFvcyB1c3XDoXJpb3MgdW1hIGludGVyZmFjZSBwYXJhIHBlc3F1aXNhciBlIHNlbGVjaW9uYXIgaXRlbnMgZGUgdW1hIGxpc3RhLlxyXG4gKiBFbGUgc3Vwb3J0YSBhIGZpbHRyYWdlbSBkZSBpdGVucyBjb20gYmFzZSBuYSBlbnRyYWRhIGRvIHVzdcOhcmlvLCBwZXJtaXRpbmRvIHVtYSBzZWxlw6fDo28gbWFpcyBmw6FjaWwgZW0gbGlzdGFzIGV4dGVuc2FzLlxyXG4gKiBcclxuICogIyMgRnVuY2lvbmFsaWRhZGVzOlxyXG4gKiAtIFBlc3F1aXNhIGUgZmlsdHJhZ2VtIGRlIGl0ZW5zIG5hIGxpc3RhIGRvIGNvbWJvYm94LlxyXG4gKiAtIFNlbGXDp8OjbyBkZSBpdGVucyBjb20gZmVlZGJhY2sgdmlzdWFsLlxyXG4gKiAtIEVtaXNzw6NvIGRlIGV2ZW50b3MgcGVyc29uYWxpemFkb3MgcGFyYSBpbnRlcmHDp8O1ZXMgZG8gdXN1w6FyaW8sIGNvbW8gcmVjYXJyZWdhciBhIGxpc3RhIG91IHNlbGVjaW9uYXIgdW0gaXRlbS5cclxuICogLSBBanVzdGUgZGluw6JtaWNvIGRhIGxhcmd1cmEgZG8gZHJvcGRvd24gcGFyYSBjb3JyZXNwb25kZXIgYW8gaW5wdXQgcHJpbmNpcGFsLlxyXG4gKiAtIEluaWNpYWxpemHDp8OjbyBkZSB1bSB2YWxvciBzZWxlY2lvbmFkbywgc2UgZm9ybmVjaWRvLlxyXG4gKiBcclxuICogIyMgSW5wdXRzOlxyXG4gKiAtIGBjb21ib2JveExpc3RgIChSZWNvcmRDb21ib2JveFtdKTogQXJyYXkgZGUgb2JqZXRvcyByZXByZXNlbnRhbmRvIG9zIGl0ZW5zIGRpc3BvbsOtdmVpcyBwYXJhIHNlbGXDp8Ojby5cclxuICogLSBgbGFiZWxUZXh0YCAoc3RyaW5nKTogVGV4dG8gZGUgZXRpcXVldGEgYXNzb2NpYWRvIGFvIGNvbWJvYm94LlxyXG4gKiAtIGBpbml0aWFsaXplZFZhbHVlSURgIChzdHJpbmcgfCBudW1iZXIpOiBJRCBkZSB1bSBpdGVtIGluaWNpYWxtZW50ZSBzZWxlY2lvbmFkbyBubyBjb21ib2JveC5cclxuICogLSBgY29sb3JUaGVtZWAgKFwicHJpbWFyeVwiIHwgXCJzZWNvbmRhcnlcIiB8IFwic3VjY2Vzc1wiIHwgXCJkYW5nZXJcIiB8IFwid2FybmluZ1wiIHwgXCJpbmZvXCIgfCBcImxpZ2h0XCIgfCBcImRhcmtcIik6IFRlbWEgZGUgY29yZXMgcGFyYSBvIGNvbXBvbmVudGUuXHJcbiAqIC0gYG1haW5JbnB1dFBsYWNlaG9sZGVyYCAoc3RyaW5nKTogVGV4dG8gZGUgZXNwYcOnbyByZXNlcnZhZG8gcGFyYSBvIGlucHV0IHByaW5jaXBhbC5cclxuICogLSBgc2VhcmNoSW5wdXRQbGFjZWhvbGRlcmAgKHN0cmluZyk6IFRleHRvIGRlIGVzcGHDp28gcmVzZXJ2YWRvIHBhcmEgbyBpbnB1dCBkZSBwZXNxdWlzYS5cclxuICogXHJcbiAqICMjIE91dHB1dHM6XHJcbiAqIC0gYG9uUmVsb2FkTGlzdGAgKEV2ZW50RW1pdHRlcjxzdHJpbmc+KTogRXZlbnRvIGVtaXRpZG8gcXVhbmRvIGEgbGlzdGEgcHJlY2lzYSBzZXIgcmVjYXJyZWdhZGEuXHJcbiAqIC0gYG9uU2VsZWN0SXRlbWAgKEV2ZW50RW1pdHRlcjxhbnk+KTogRXZlbnRvIGVtaXRpZG8gcXVhbmRvIHVtIGl0ZW0gw6kgc2VsZWNpb25hZG8uXHJcbiAqIFxyXG4gKiAjIyBQcm9wcmllZGFkZXM6XHJcbiAqIC0gYHNlbGVjdGVkSXRlbWAgKFJlY29yZENvbWJvYm94KTogR2V0dGVyIGUgU2V0dGVyIHBhcmEgbyBpdGVtIHNlbGVjaW9uYWRvIGF0dWFsbWVudGUuXHJcbiAqIC0gYEZvcm1VdGlsc2AgKHR5cGVvZiBGb3JtVXRpbHMpOiBHZXR0ZXIgcGFyYSB1dGlsaXTDoXJpb3MgZGUgZm9ybXVsw6FyaW8uXHJcbiAqIC0gYF9zZWFyY2hJbnB1dGAgKHN0cmluZyk6IEdldHRlciBwYXJhIG8gdmFsb3IgZG8gaW5wdXQgZGUgcGVzcXVpc2EuXHJcbiAqIC0gYGZpbHRlckZvcm1gIChGb3JtR3JvdXApOiBHcnVwbyBkZSBmb3JtdWzDoXJpbyBwYXJhIG8gZmlsdHJvIGRlIHBlc3F1aXNhLlxyXG4gKiBcclxuICogIyMgTcOpdG9kb3MgUMO6YmxpY29zOlxyXG4gKiAtIGByZWxvYWRMaXN0KHNlYXJjaDogc3RyaW5nKWA6IE3DqXRvZG8gcGFyYSByZWNhcnJlZ2FyIGEgbGlzdGEgZGUgaXRlbnMgY29tIGJhc2UgbmEgcGVzcXVpc2EgZm9ybmVjaWRhLlxyXG4gKiAtIGBzZXRGaWx0ZXJWYWx1ZShpdGVtPzogUmVjb3JkQ29tYm9ib3gpYDogTcOpdG9kbyBwYXJhIGRlZmluaXIgbyB2YWxvciBkbyBmaWx0cm8gY29tIGJhc2Ugbm8gaXRlbSBzZWxlY2lvbmFkby5cclxuICogXHJcbiAqICMjIEV2ZW50b3M6XHJcbiAqIC0gYG5nT25Jbml0KClgOiBJbmljaWFsaXphIG8gY29tcG9uZW50ZS5cclxuICogLSBgbmdBZnRlclZpZXdJbml0KClgOiBBanVzdGEgYSBsYXJndXJhIGRvIGRyb3Bkb3duIGFww7NzIGEgdmlzdWFsaXphw6fDo28gZG8gY29tcG9uZW50ZS5cclxuICogLSBgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcylgOiBSZXNwb25kZSBhIG11ZGFuw6dhcyBuYXMgcHJvcHJpZWRhZGVzIGRlIGVudHJhZGEuXHJcbiAqIFxyXG4gKiAjIyBVdGlsaXTDoXJpb3M6XHJcbiAqIC0gYGNyZWF0ZUZpbHRlckZvcm0oKWA6IENyaWEgbyBmb3JtdWzDoXJpbyBkZSBmaWx0cm8gcGFyYSBhIHBlc3F1aXNhLlxyXG4gKiAtIGBpbml0aWFsaXplU2VsZWN0ZWRWYWx1ZSgpYDogSW5pY2lhbGl6YSBvIHZhbG9yIHNlbGVjaW9uYWRvIG5vIGNvbWJvYm94LCBzZSBmb3JuZWNpZG8uXHJcbiAqIC0gYGFkanVzdERyb3Bkb3duV2lkdGgoKWA6IEFqdXN0YSBhIGxhcmd1cmEgZG8gZHJvcGRvd24gcGFyYSBjb3JyZXNwb25kZXIgw6AgbGFyZ3VyYSBkbyBpbnB1dCBwcmluY2lwYWwuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zZWFyY2gtY29tYm9ib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtY29tYm9ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zZWFyY2gtY29tYm9ib3guY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWFyY2hDb21ib2JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlclxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZUZpbHRlckZvcm0oKTtcclxuICAgIGlmICh0aGlzLmluaXRpYWxpemVkVmFsdWVJRCkgeyB0aGlzLmluaXRpYWxpemVTZWxlY3RlZFZhbHVlKCkgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hZGp1c3REcm9wZG93bldpZHRoKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1tcImluaXRpYWxpemVkVmFsdWVJRFwiXSAhPSB1bmRlZmluZWQgJiYgY2hhbmdlc1tcImluaXRpYWxpemVkVmFsdWVJRFwiXS5jdXJyZW50VmFsdWUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVNlbGVjdGVkVmFsdWUoKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzW1wiY29tYm9ib3hMaXN0XCJdICE9IHVuZGVmaW5lZCAmJiBjaGFuZ2VzW1wiY29tYm9ib3hMaXN0XCJdLmN1cnJlbnRWYWx1ZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplU2VsZWN0ZWRWYWx1ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBQUk9QRVJUSUVTIDw9PT09PT09PT09XHJcblxyXG4gIC8vICNyZWdpb24gUFJJVkFURVxyXG4gIHByaXZhdGUgX3NlbGVjdGVkSXRlbTogUmVjb3JkQ29tYm9ib3g7XHJcbiAgLy8gI2VuZHJlZ2lvbiBQUklWQVRFXHJcblxyXG4gIC8vICNyZWdpb24gUFVCTElDXHJcblxyXG4gIC8qKiBMaXN0YSBkZSBpdGVucyBkaXNwb27DrXZlaXMgcGFyYSBzZWxlw6fDo28gbm8gY29tYm9ib3guICovXHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcHVibGljIGNvbWJvYm94TGlzdDogUmVjb3JkQ29tYm9ib3hbXTtcclxuICBcclxuICAvKiogVGV4dG8gZGUgbGFiZWwgYXNzb2NpYWRvIGFvIGNvbWJvYm94LiAqL1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHB1YmxpYyBsYWJlbFRleHQ6IHN0cmluZztcclxuICBcclxuICAvKiogSUQgZGUgdW0gaXRlbSBpbmljaWFsbWVudGUgc2VsZWNpb25hZG8gbm8gY29tYm9ib3guICovXHJcbiAgQElucHV0KCkgcHVibGljIGluaXRpYWxpemVkVmFsdWVJRDogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIFxyXG4gIC8qKiBUZW1hIGRlIGNvcmVzIHBhcmEgbyBjb21wb25lbnRlIChiYXNlYWRvIG5hcyBjb3JlcyBkbyBCb290c3RyYXApLiAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjb2xvclRoZW1lOiBcInByaW1hcnlcIiB8IFwic2Vjb25kYXJ5XCIgfCBcInN1Y2Nlc3NcIiB8IFwiZGFuZ2VyXCIgfCBcIndhcm5pbmdcIiB8IFwiaW5mb1wiIHwgXCJsaWdodFwiIHwgXCJkYXJrXCIgPSBcInByaW1hcnlcIjtcclxuICBcclxuICAvKiogUGxhY2Vob2xkZXIgcGFyYSBvIGlucHV0IHByaW5jaXBhbC4gKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbWFpbklucHV0UGxhY2Vob2xkZXI6IHN0cmluZyA9IFwiU2VsZWNpb25lIHVtYSBvcMOnw6NvLi4uXCI7XHJcbiAgXHJcbiAgLyoqIFBsYWNlaG9sZGVyIHBhcmEgbyBpbnB1dCBkZSBwZXNxdWlzYS4gKi9cclxuICBASW5wdXQoKSBwdWJsaWMgc2VhcmNoSW5wdXRQbGFjZWhvbGRlcjogc3RyaW5nID0gXCJQZXNxdWlzYS4uLlwiO1xyXG4gIFxyXG4gIC8qKiBJbmZvcm1hIHNlIG8gaW5wdXQgc2Vyw6EgZXhpYmlkbyBjb21vIGRlc2FiaWxpdGFkby4gKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICBASW5wdXQoKSBwdWJsaWMgbGliUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50byBlbWl0aWRvIHF1YW5kbyBhIGxpc3RhIHByZWNpc2Egc2VyIHJlY2FycmVnYWRhLlxyXG4gICAqIExldmEgdW1hIHN0cmluZyBxdWUgw6kgdXNhZGEgcGFyYSBwZXNxdWlzYS5cclxuICAgKi9cclxuICBAT3V0cHV0KCkgcHVibGljIG9uUmVsb2FkTGlzdDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIEV2ZW50byBlbWl0aWRvIHF1YW5kbyB1bSBpdGVtIMOpIHNlbGVjaW9uYWRvLiAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25TZWxlY3RJdGVtOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuXHJcbiAgQFZpZXdDaGlsZCgnbWFpbklucHV0JykgcHJpdmF0ZSBfbWFpbklucHV0ITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdkcm9wZG93bk1lbnUnKSBwcml2YXRlIF9kcm9wZG93bk1lbnUhOiBFbGVtZW50UmVmO1xyXG5cclxuXHJcbiAgcHVibGljIGFyaWFFeHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzZWxlY3RlZFRleHQ/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRJdGVtKCk6IFJlY29yZENvbWJvYm94IHsgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbTsgfVxyXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWRJdGVtKHZhbHVlOiBSZWNvcmRDb21ib2JveCkge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWRJdGVtID0gdmFsdWU7XHJcbiAgICB0aGlzLm9uU2VsZWN0SXRlbS5lbWl0KHZhbHVlKTtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBQVUJMSUNcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBQUk9QRVJUSUVTIDw9PT09PT09PT09XHJcblxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IEZPUk0gQlVJTERFUiA8PT09PT09PT09PVxyXG4gIHB1YmxpYyBmaWx0ZXJGb3JtOiBGb3JtR3JvdXA7XHJcbiAgcHVibGljIGdldCBGb3JtVXRpbHMoKTogdHlwZW9mIEZvcm1VdGlscyB7IHJldHVybiBGb3JtVXRpbHM7IH1cclxuXHJcbiAgLy8gI3JlZ2lvbiBGT1JNIERBVEFcclxuICBwdWJsaWMgZ2V0IF9zZWFyY2hJbnB1dCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5maWx0ZXJGb3JtLmdldChcIl9zZWFyY2hJbnB1dFwiKT8udmFsdWU7IH1cclxuICAvLyAjZW5kcmVnaW9uIEZPUk0gREFUQVxyXG5cclxuICAvLyAjcmVnaW9uIEZPUk0gVkFMSURBVE9SU1xyXG4gIHByaXZhdGUgY3JlYXRlRmlsdGVyRm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgX3NlYXJjaElucHV0OiBbIFwiXCIgXVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gRk9STSBWQUxJREFUT1JTXHJcblxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gRk9STSBCVUlMREVSIDw9PT09PT09PT09XHJcblxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFVUSUxJVElFUyA8PT09PT09PT09PVxyXG5cclxuICAvKipcclxuICAgKiBBdHVhbGl6YSBvIHZhbG9yIGRvIGZpbHRybyBjb20gYmFzZSBubyBpdGVtIHNlbGVjaW9uYWRvLlxyXG4gICAqIEBwYXJhbSBpdGVtIE9iamV0byBkZSBpdGVtIHNlbGVjaW9uYWRvLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRGaWx0ZXJWYWx1ZShpdGVtPzogUmVjb3JkQ29tYm9ib3gpOiB2b2lkIHtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyRm9ybS5jb250cm9sc1tcIl9zZWFyY2hJbnB1dFwiXS5zZXRWYWx1ZShgJHtpdGVtLklEIGFzIHN0cmluZ30gLSAke2l0ZW0uTEFCRUx9YCk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUZXh0ID0gaXRlbS5MQUJFTDtcclxuXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0geyBJRDogaXRlbS5JRCwgTEFCRUw6IGl0ZW0uTEFCRUwsIEFkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTE6IGl0ZW0uQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MSwgSVNfU0VMRUNURUQ6IGl0ZW0uSVNfU0VMRUNURUQgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyRm9ybS5jb250cm9sc1tcIl9zZWFyY2hJbnB1dFwiXS5zZXRWYWx1ZShcIlwiKTtcclxuICAgICAgZGVsZXRlIHRoaXMuc2VsZWN0ZWRUZXh0O1xyXG5cclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB7IElEOiBcIlwiLCBMQUJFTDogXCJcIiwgQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MTogXCJcIiwgSVNfU0VMRUNURUQ6IGZhbHNlIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcmlhRXhwYW5kZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKiBDaGFtYWRvIGNhc28gdW0gdmFsb3IgaW5pY2lhbCBzZWphIGZvcm5lY2lkbyBwYXJhIG8gY29tYm9ib3guICovXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplU2VsZWN0ZWRWYWx1ZSgpOiB2b2lkIHtcclxuICAgIGxldCBpbml0aWFsaXplZFZhbHVlO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbWJvYm94TGlzdCAmJiB0aGlzLmNvbWJvYm94TGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGluaXRpYWxpemVkVmFsdWUgPSB0aGlzLmNvbWJvYm94TGlzdC5maW5kKGl0ZW0gPT4gaXRlbS5JRCA9PSB0aGlzLmluaXRpYWxpemVkVmFsdWVJRCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY29tYm9ib3hMaXN0ICYmIGluaXRpYWxpemVkVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRleHQgPSBpbml0aWFsaXplZFZhbHVlLkxBQkVMO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHsgSUQ6IGluaXRpYWxpemVkVmFsdWUuSUQsIExBQkVMOiBpbml0aWFsaXplZFZhbHVlLkxBQkVMLCBBZGRpdGlvbmFsU3RyaW5nUHJvcGVydHkxOiBcIlwiLCBJU19TRUxFQ1RFRDogdHJ1ZSB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEFqdXN0YSBhIGxhcmd1cmEgZG8gZHJvcGRvd24gcGFyYSBjb3JyZXNwb25kZXIgw6AgbGFyZ3VyYSBkbyBpbnB1dCBwcmluY2lwYWwuICovXHJcbiAgcHJpdmF0ZSBhZGp1c3REcm9wZG93bldpZHRoKCkge1xyXG4gICAgY29uc3QgaW5wdXRXaWR0aCA9IHRoaXMuX21haW5JbnB1dC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgdGhpcy5fZHJvcGRvd25NZW51Lm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHtpbnB1dFdpZHRofXB4YDtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBFbWl0ZSB1bSBldmVudG8gcGFyYSByZWNhcnJlZ2FyIGEgbGlzdGEgZGUgaXRlbnMgY29tIGJhc2UgbmEgcGVzcXVpc2EgZm9ybmVjaWRhLlxyXG4gICAqIEBwYXJhbSBzZWFyY2ggVGV4dG8gZGUgcGVzcXVpc2EgcGFyYSByZWNhcnJlZ2FyIGEgbGlzdGEuXHJcbiAgICovXHJcbiAgcHVibGljIHJlbG9hZExpc3Qoc2VhcmNoOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMub25SZWxvYWRMaXN0LmVtaXQoc2VhcmNoKTtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBVVElMSVRJRVMgPD09PT09PT09PT1cclxuXHJcblxyXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gTU9EQUxTIDw9PT09PT09PT09XHJcbiAgLy8gWy4uLl1cclxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IE1PREFMUyA8PT09PT09PT09PVxyXG5cclxufVxyXG4iLCI8bGFiZWwgW2xpYlJlcXVpcmVkXT1cImxpYlJlcXVpcmVkXCIgY2xhc3M9XCJmb3JtLWxhYmVsIGZ3LWJvbGRcIiBbaW5uZXJIVE1MXT1cImxhYmVsVGV4dFwiPjwvbGFiZWw+XHJcbjxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBkcm9wZG93biBmbGV4LWZpbGwgZ2xiLW1heC1oZWlnaHQtMzUwcHhcIj5cclxuXHJcbiAgIDwhLS0gRXN0ZSBlbGVtZW50byBuZy1jb250ZW50IGNvbSBvIGF0cmlidXRvIFtidG5MZWZ0XSBwZXJtaXRlIHF1ZSBvIHVzdcOhcmlvIGZpbmFsIGZvcm5lw6dhIGNvbnRlw7pkbyBwZXJzb25hbGl6YWRvIHBhcmEgc2VyIGV4aWJpZG8gbm8gbGFkbyBlc3F1ZXJkbyBkbyBjb21ib2JveCBkZSBwZXNxdWlzYS5cclxuICAgQW8gdXNhciBvIGF0cmlidXRvIFtidG5MZWZ0XSwgbyB1c3XDoXJpbyBwb2RlIGZhY2lsbWVudGUgYWRpY2lvbmFyIGJvdMO1ZXMgb3Ugb3V0cm9zIGVsZW1lbnRvcyBwYXJhIG1lbGhvcmFyIGEgZnVuY2lvbmFsaWRhZGUgb3UgYXBhcsOqbmNpYSBkbyBjb21ib2JveCBkZSBwZXNxdWlzYS4gLS0+XHJcbiAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltidG5MZWZ0XVwiPjwvbmctY29udGVudD5cclxuXHJcbiAgIDxpbnB1dCAgI21haW5JbnB1dCAgICpuZ0lmPVwiIWRpc2FibGVkOyBlbHNlIGRpc2FibGVkSW5wdXRcIiBjbGFzcz1cImZvcm0tc2VsZWN0IHRleHQtc3RhcnQgcm91bmRlZC1lbmRcIiB0eXBlPVwidGV4dFwiIGRhdGEtYnMtdG9nZ2xlPVwiZHJvcGRvd25cIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImFyaWFFeHBhbmRlZFwiIFtwbGFjZWhvbGRlcl09XCJtYWluSW5wdXRQbGFjZWhvbGRlclwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRUZXh0XCIgZGF0YS1icy1hdXRvLWNsb3NlPVwib3V0c2lkZVwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiIHJlYWRvbmx5IChjbGljayk9XCJhcmlhRXhwYW5kZWQgPSAhYXJpYUV4cGFuZGVkOyBzZWFyY2hJbnB1dC5mb2N1cygpXCIgKGZvY3VzKT1cImFyaWFFeHBhbmRlZCA9IHRydWU7IHNlYXJjaElucHV0LmZvY3VzKClcIj5cclxuICAgPHVsICAjZHJvcGRvd25NZW51ICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgcC0yIGdsYi1tYXgtaGVpZ2h0LTM1MHB4IG92ZXJmbG93LXktc2Nyb2xsXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBtYi0yXCI+XHJcbiAgICAgICAgIDxpbnB1dCAjc2VhcmNoSW5wdXQgdHlwZT1cInRleHRcIiBpZD1cInNlYXJjaElucHV0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZ2xiLWlucHV0LW5vLWdsb3dcIiBbcGxhY2Vob2xkZXJdPVwic2VhcmNoSW5wdXRQbGFjZWhvbGRlclwiIChrZXl1cC5lbnRlcik9XCJyZWxvYWRMaXN0KHNlYXJjaElucHV0LnZhbHVlKVwiPlxyXG4gICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi17e2NvbG9yVGhlbWV9fVwiIChjbGljayk9XCJyZWxvYWRMaXN0KHNlYXJjaElucHV0LnZhbHVlKVwiPiA8YXBwLXN2Zy1zdG9yYWdlIHN2Z05hbWU9XCJsdXBhXCIgc3ZnU2l6ZT1cIm1lZGl1bS1zbWFsbFwiIC8+IDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21ib2JveExpc3Q7IGVsc2UgbG9hZGluZ0xpc3RcIj5cclxuICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbWJvYm94TGlzdC5sZW5ndGggPiAwOyBlbHNlIGVtcHR5SXRlbUxpc3RcIj5cclxuICAgICAgICAgICAgPGxpICpuZ0lmPVwic2VsZWN0ZWRJdGVtICYmIHNlbGVjdGVkSXRlbS5JRCAhPSAnJ1wiIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIChjbGljayk9XCJzZXRGaWx0ZXJWYWx1ZSgpXCI+IDxzcGFuIGNsYXNzPVwiZnctYm9sZFwiPkxpbXBhciBvcMOnw6NvIHNlbGVjaW9uYWRhPC9zcGFuPiA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29tYm9ib3hMaXN0XCIgKGNsaWNrKT1cInNldEZpbHRlclZhbHVlKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5BZGRpdGlvbmFsU3RyaW5nUHJvcGVydHkxIHx8IGl0ZW0uQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MSAhPSAnJ1wiIGNsYXNzPVwiZ2xiLWZzLTEyIGZ3LWJvbGQgZC1pbmxpbmUtYmxvY2sgdy0xMjVcIj57eyBpdGVtLkFkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTEgfX08L3NwYW4+IHt7IGl0ZW0uTEFCRUwgfX1cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNsb2FkaW5nTGlzdD4gPGxpIGNsYXNzPVwiZHJvcGRvd24taXRlbSB0ZXh0LWNlbnRlclwiPiA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXJcIiByb2xlPVwic3RhdHVzXCI+PHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5DYXJyZWdhbmRvIGRhZG9zLi4uPC9zcGFuPjwvZGl2PiA8L2xpPiA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2VtcHR5SXRlbUxpc3Q+IDxsaSBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gZnN0LWl0YWxpY1wiPk5lbmh1bSByZWdpc3RybyBlbmNvbnRyYWRvIGNvbSBlc3RhIHBlc3F1aXNhLi4uPC9saT4gPC9uZy10ZW1wbGF0ZT5cclxuICAgPC91bD5cclxuXHJcbiAgIDxuZy10ZW1wbGF0ZSAjZGlzYWJsZWRJbnB1dD5cclxuICAgICAgPGlucHV0ICAjbWFpbklucHV0ICBjbGFzcz1cImZvcm0tc2VsZWN0IHRleHQtc3RhcnQgcm91bmRlZC1lbmRcIiB0eXBlPVwidGV4dFwiIFtwbGFjZWhvbGRlcl09XCJtYWluSW5wdXRQbGFjZWhvbGRlclwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRUZXh0XCIgcmVhZG9ubHkgZGlzYWJsZWQ+XHJcbiAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICA8IS0tIEVzdGUgZWxlbWVudG8gbmctY29udGVudCBjb20gbyBhdHJpYnV0byBbYnRuUmlnaHRdIHBlcm1pdGUgcXVlIG8gdXN1w6FyaW8gZmluYWwgZm9ybmXDp2EgY29udGXDumRvIHBlcnNvbmFsaXphZG8gcGFyYSBzZXIgZXhpYmlkbyBubyBsYWRvIGRpcmVpdG8gZG8gY29tYm9ib3ggZGUgcGVzcXVpc2EuXHJcbiAgIEFvIHVzYXIgbyBhdHJpYnV0byBbYnRuUmlnaHRdLCBvIHVzdcOhcmlvIHBvZGUgZmFjaWxtZW50ZSBhZGljaW9uYXIgYm90w7VlcyBvdSBvdXRyb3MgZWxlbWVudG9zIHBhcmEgbWVsaG9yYXIgYSBmdW5jaW9uYWxpZGFkZSBvdSBhcGFyw6puY2lhIGRvIGNvbWJvYm94IGRlIHBlc3F1aXNhLiAtLT5cclxuICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2J0blJpZ2h0XVwiPjwvbmctY29udGVudD5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3dpZGdldHMvc2VhcmNoLWNvbWJvYm94L3NlYXJjaC1jb21ib2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL3NlYXJjaC1jb21ib2JveC9zZWFyY2gtY29tYm9ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0ksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFLbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvREc7QUFNSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQ1UsWUFBeUI7UUFBekIsaUJBQVksR0FBWixZQUFZLENBQWE7UUF5QjNCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBY3ZDLHdFQUF3RTtRQUN4RCxlQUFVLEdBQTJGLFNBQVMsQ0FBQztRQUUvSCwwQ0FBMEM7UUFDMUIseUJBQW9CLEdBQVcsd0JBQXdCLENBQUM7UUFFeEUsNENBQTRDO1FBQzVCLDJCQUFzQixHQUFXLGFBQWEsQ0FBQztRQUUvRCx5REFBeUQ7UUFDekMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUc3Qzs7O1dBR0c7UUFDYyxpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRWpGLG1EQUFtRDtRQUNsQyxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBNUR4RSxDQUFD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eEdBcUNBOzs0RkQ2QmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjtnRkFxQ0csWUFBWTtzQkFBN0MsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBR1MsU0FBUztzQkFBMUMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBR1Qsa0JBQWtCO3NCQUFqQyxLQUFLO2dCQUdVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBR1Usb0JBQW9CO3NCQUFuQyxLQUFLO2dCQUdVLHNCQUFzQjtzQkFBckMsS0FBSztnQkFHVSxRQUFRO3NCQUF2QixLQUFLO2dCQUVVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBT1csWUFBWTtzQkFBNUIsTUFBTTtnQkFHVSxZQUFZO3NCQUE1QixNQUFNO2dCQUd5QixVQUFVO3NCQUF6QyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ2EsYUFBYTtzQkFBL0MsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5pbXBvcnQgeyBGb3JtVXRpbHMgfSBmcm9tIFwiLi4vLi4vdXRpbHMvZm9ybS11dGlsc1wiO1xyXG5cclxuaW1wb3J0IHsgUmVjb3JkQ29tYm9ib3ggfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbWJvYm94L3JlY29yZC1jb21ib2JveFwiO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBAZmlsZSBzZWFyY2gtY29tYm9ib3guY29tcG9uZW50LnRzXHJcbiAqIEBkZXNjcmlwdGlvbiBFc3RlIGFycXVpdm8gY29udMOpbSBhIGltcGxlbWVudGHDp8OjbyBkbyBjb21wb25lbnRlIFNlYXJjaENvbWJvYm94Q29tcG9uZW50LCBxdWUgw6kgdW0gY29tcG9uZW50ZSBkZSBpbnRlcmZhY2UgZG8gdXN1w6FyaW9cclxuICogcGFyYSByZWFsaXphciBwZXNxdWlzYXMgZSBzZWxlw6fDtWVzIGVtIHVtYSBsaXN0YSBkZSBvcMOnw7VlcyBhcHJlc2VudGFkYSBlbSB1bSBjb21ib2JveC5cclxuICogXHJcbiAqIEBjb21wb25lbnQgU2VhcmNoQ29tYm9ib3hDb21wb25lbnRcclxuICogQHNlbGVjdG9yIGxpYi1zZWFyY2gtY29tYm9ib3hcclxuICogQHRlbXBsYXRlVXJsIC4vc2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC5odG1sXHJcbiAqIEBzdHlsZVVybCAuL3NlYXJjaC1jb21ib2JveC5jb21wb25lbnQuc2Nzc1xyXG4gKiBcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIE8gY29tcG9uZW50ZSBTZWFyY2hDb21ib2JveENvbXBvbmVudCDDqSBwcm9qZXRhZG8gcGFyYSBmb3JuZWNlciBhb3MgdXN1w6FyaW9zIHVtYSBpbnRlcmZhY2UgcGFyYSBwZXNxdWlzYXIgZSBzZWxlY2lvbmFyIGl0ZW5zIGRlIHVtYSBsaXN0YS5cclxuICogRWxlIHN1cG9ydGEgYSBmaWx0cmFnZW0gZGUgaXRlbnMgY29tIGJhc2UgbmEgZW50cmFkYSBkbyB1c3XDoXJpbywgcGVybWl0aW5kbyB1bWEgc2VsZcOnw6NvIG1haXMgZsOhY2lsIGVtIGxpc3RhcyBleHRlbnNhcy5cclxuICogXHJcbiAqICMjIEZ1bmNpb25hbGlkYWRlczpcclxuICogLSBQZXNxdWlzYSBlIGZpbHRyYWdlbSBkZSBpdGVucyBuYSBsaXN0YSBkbyBjb21ib2JveC5cclxuICogLSBTZWxlw6fDo28gZGUgaXRlbnMgY29tIGZlZWRiYWNrIHZpc3VhbC5cclxuICogLSBFbWlzc8OjbyBkZSBldmVudG9zIHBlcnNvbmFsaXphZG9zIHBhcmEgaW50ZXJhw6fDtWVzIGRvIHVzdcOhcmlvLCBjb21vIHJlY2FycmVnYXIgYSBsaXN0YSBvdSBzZWxlY2lvbmFyIHVtIGl0ZW0uXHJcbiAqIC0gQWp1c3RlIGRpbsOibWljbyBkYSBsYXJndXJhIGRvIGRyb3Bkb3duIHBhcmEgY29ycmVzcG9uZGVyIGFvIGlucHV0IHByaW5jaXBhbC5cclxuICogLSBJbmljaWFsaXphw6fDo28gZGUgdW0gdmFsb3Igc2VsZWNpb25hZG8sIHNlIGZvcm5lY2lkby5cclxuICogXHJcbiAqICMjIElucHV0czpcclxuICogLSBgY29tYm9ib3hMaXN0YCAoUmVjb3JkQ29tYm9ib3hbXSk6IEFycmF5IGRlIG9iamV0b3MgcmVwcmVzZW50YW5kbyBvcyBpdGVucyBkaXNwb27DrXZlaXMgcGFyYSBzZWxlw6fDo28uXHJcbiAqIC0gYGxhYmVsVGV4dGAgKHN0cmluZyk6IFRleHRvIGRlIGV0aXF1ZXRhIGFzc29jaWFkbyBhbyBjb21ib2JveC5cclxuICogLSBgaW5pdGlhbGl6ZWRWYWx1ZUlEYCAoc3RyaW5nIHwgbnVtYmVyKTogSUQgZGUgdW0gaXRlbSBpbmljaWFsbWVudGUgc2VsZWNpb25hZG8gbm8gY29tYm9ib3guXHJcbiAqIC0gYGNvbG9yVGhlbWVgIChcInByaW1hcnlcIiB8IFwic2Vjb25kYXJ5XCIgfCBcInN1Y2Nlc3NcIiB8IFwiZGFuZ2VyXCIgfCBcIndhcm5pbmdcIiB8IFwiaW5mb1wiIHwgXCJsaWdodFwiIHwgXCJkYXJrXCIpOiBUZW1hIGRlIGNvcmVzIHBhcmEgbyBjb21wb25lbnRlLlxyXG4gKiAtIGBtYWluSW5wdXRQbGFjZWhvbGRlcmAgKHN0cmluZyk6IFRleHRvIGRlIGVzcGHDp28gcmVzZXJ2YWRvIHBhcmEgbyBpbnB1dCBwcmluY2lwYWwuXHJcbiAqIC0gYHNlYXJjaElucHV0UGxhY2Vob2xkZXJgIChzdHJpbmcpOiBUZXh0byBkZSBlc3Bhw6dvIHJlc2VydmFkbyBwYXJhIG8gaW5wdXQgZGUgcGVzcXVpc2EuXHJcbiAqIFxyXG4gKiAjIyBPdXRwdXRzOlxyXG4gKiAtIGBvblJlbG9hZExpc3RgIChFdmVudEVtaXR0ZXI8c3RyaW5nPik6IEV2ZW50byBlbWl0aWRvIHF1YW5kbyBhIGxpc3RhIHByZWNpc2Egc2VyIHJlY2FycmVnYWRhLlxyXG4gKiAtIGBvblNlbGVjdEl0ZW1gIChFdmVudEVtaXR0ZXI8YW55Pik6IEV2ZW50byBlbWl0aWRvIHF1YW5kbyB1bSBpdGVtIMOpIHNlbGVjaW9uYWRvLlxyXG4gKiBcclxuICogIyMgUHJvcHJpZWRhZGVzOlxyXG4gKiAtIGBzZWxlY3RlZEl0ZW1gIChSZWNvcmRDb21ib2JveCk6IEdldHRlciBlIFNldHRlciBwYXJhIG8gaXRlbSBzZWxlY2lvbmFkbyBhdHVhbG1lbnRlLlxyXG4gKiAtIGBGb3JtVXRpbHNgICh0eXBlb2YgRm9ybVV0aWxzKTogR2V0dGVyIHBhcmEgdXRpbGl0w6FyaW9zIGRlIGZvcm11bMOhcmlvLlxyXG4gKiAtIGBfc2VhcmNoSW5wdXRgIChzdHJpbmcpOiBHZXR0ZXIgcGFyYSBvIHZhbG9yIGRvIGlucHV0IGRlIHBlc3F1aXNhLlxyXG4gKiAtIGBmaWx0ZXJGb3JtYCAoRm9ybUdyb3VwKTogR3J1cG8gZGUgZm9ybXVsw6FyaW8gcGFyYSBvIGZpbHRybyBkZSBwZXNxdWlzYS5cclxuICogXHJcbiAqICMjIE3DqXRvZG9zIFDDumJsaWNvczpcclxuICogLSBgcmVsb2FkTGlzdChzZWFyY2g6IHN0cmluZylgOiBNw6l0b2RvIHBhcmEgcmVjYXJyZWdhciBhIGxpc3RhIGRlIGl0ZW5zIGNvbSBiYXNlIG5hIHBlc3F1aXNhIGZvcm5lY2lkYS5cclxuICogLSBgc2V0RmlsdGVyVmFsdWUoaXRlbT86IFJlY29yZENvbWJvYm94KWA6IE3DqXRvZG8gcGFyYSBkZWZpbmlyIG8gdmFsb3IgZG8gZmlsdHJvIGNvbSBiYXNlIG5vIGl0ZW0gc2VsZWNpb25hZG8uXHJcbiAqIFxyXG4gKiAjIyBFdmVudG9zOlxyXG4gKiAtIGBuZ09uSW5pdCgpYDogSW5pY2lhbGl6YSBvIGNvbXBvbmVudGUuXHJcbiAqIC0gYG5nQWZ0ZXJWaWV3SW5pdCgpYDogQWp1c3RhIGEgbGFyZ3VyYSBkbyBkcm9wZG93biBhcMOzcyBhIHZpc3VhbGl6YcOnw6NvIGRvIGNvbXBvbmVudGUuXHJcbiAqIC0gYG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpYDogUmVzcG9uZGUgYSBtdWRhbsOnYXMgbmFzIHByb3ByaWVkYWRlcyBkZSBlbnRyYWRhLlxyXG4gKiBcclxuICogIyMgVXRpbGl0w6FyaW9zOlxyXG4gKiAtIGBjcmVhdGVGaWx0ZXJGb3JtKClgOiBDcmlhIG8gZm9ybXVsw6FyaW8gZGUgZmlsdHJvIHBhcmEgYSBwZXNxdWlzYS5cclxuICogLSBgaW5pdGlhbGl6ZVNlbGVjdGVkVmFsdWUoKWA6IEluaWNpYWxpemEgbyB2YWxvciBzZWxlY2lvbmFkbyBubyBjb21ib2JveCwgc2UgZm9ybmVjaWRvLlxyXG4gKiAtIGBhZGp1c3REcm9wZG93bldpZHRoKClgOiBBanVzdGEgYSBsYXJndXJhIGRvIGRyb3Bkb3duIHBhcmEgY29ycmVzcG9uZGVyIMOgIGxhcmd1cmEgZG8gaW5wdXQgcHJpbmNpcGFsLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc2VhcmNoLWNvbWJvYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29tYm9ib3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXJcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jcmVhdGVGaWx0ZXJGb3JtKCk7XHJcbiAgICBpZiAodGhpcy5pbml0aWFsaXplZFZhbHVlSUQpIHsgdGhpcy5pbml0aWFsaXplU2VsZWN0ZWRWYWx1ZSgpIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRqdXN0RHJvcGRvd25XaWR0aCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbXCJpbml0aWFsaXplZFZhbHVlSURcIl0gIT0gdW5kZWZpbmVkICYmIGNoYW5nZXNbXCJpbml0aWFsaXplZFZhbHVlSURcIl0uY3VycmVudFZhbHVlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVTZWxlY3RlZFZhbHVlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1tcImNvbWJvYm94TGlzdFwiXSAhPSB1bmRlZmluZWQgJiYgY2hhbmdlc1tcImNvbWJvYm94TGlzdFwiXS5jdXJyZW50VmFsdWUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVNlbGVjdGVkVmFsdWUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gUFJPUEVSVElFUyA8PT09PT09PT09PVxyXG5cclxuICAvLyAjcmVnaW9uIFBSSVZBVEVcclxuICBwcml2YXRlIF9zZWxlY3RlZEl0ZW06IFJlY29yZENvbWJvYm94O1xyXG4gIHByaXZhdGUgX2FyaWFFeHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8vICNlbmRyZWdpb24gUFJJVkFURVxyXG5cclxuICAvLyAjcmVnaW9uIFBVQkxJQ1xyXG5cclxuICAvKiogTGlzdGEgZGUgaXRlbnMgZGlzcG9uw612ZWlzIHBhcmEgc2VsZcOnw6NvIG5vIGNvbWJvYm94LiAqL1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHB1YmxpYyBjb21ib2JveExpc3Q6IFJlY29yZENvbWJvYm94W107XHJcbiAgXHJcbiAgLyoqIFRleHRvIGRlIGxhYmVsIGFzc29jaWFkbyBhbyBjb21ib2JveC4gKi9cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBwdWJsaWMgbGFiZWxUZXh0OiBzdHJpbmc7XHJcbiAgXHJcbiAgLyoqIElEIGRlIHVtIGl0ZW0gaW5pY2lhbG1lbnRlIHNlbGVjaW9uYWRvIG5vIGNvbWJvYm94LiAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbml0aWFsaXplZFZhbHVlSUQ6IHN0cmluZyB8IG51bWJlcjtcclxuICBcclxuICAvKiogVGVtYSBkZSBjb3JlcyBwYXJhIG8gY29tcG9uZW50ZSAoYmFzZWFkbyBuYXMgY29yZXMgZG8gQm9vdHN0cmFwKS4gKi9cclxuICBASW5wdXQoKSBwdWJsaWMgY29sb3JUaGVtZTogXCJwcmltYXJ5XCIgfCBcInNlY29uZGFyeVwiIHwgXCJzdWNjZXNzXCIgfCBcImRhbmdlclwiIHwgXCJ3YXJuaW5nXCIgfCBcImluZm9cIiB8IFwibGlnaHRcIiB8IFwiZGFya1wiID0gXCJwcmltYXJ5XCI7XHJcbiAgXHJcbiAgLyoqIFBsYWNlaG9sZGVyIHBhcmEgbyBpbnB1dCBwcmluY2lwYWwuICovXHJcbiAgQElucHV0KCkgcHVibGljIG1haW5JbnB1dFBsYWNlaG9sZGVyOiBzdHJpbmcgPSBcIlNlbGVjaW9uZSB1bWEgb3DDp8Ojby4uLlwiO1xyXG4gIFxyXG4gIC8qKiBQbGFjZWhvbGRlciBwYXJhIG8gaW5wdXQgZGUgcGVzcXVpc2EuICovXHJcbiAgQElucHV0KCkgcHVibGljIHNlYXJjaElucHV0UGxhY2Vob2xkZXI6IHN0cmluZyA9IFwiUGVzcXVpc2EuLi5cIjtcclxuICBcclxuICAvKiogSW5mb3JtYSBzZSBvIGlucHV0IHNlcsOhIGV4aWJpZG8gY29tbyBkZXNhYmlsaXRhZG8uICovXHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgQElucHV0KCkgcHVibGljIGxpYlJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICAvKipcclxuICAgKiBFdmVudG8gZW1pdGlkbyBxdWFuZG8gYSBsaXN0YSBwcmVjaXNhIHNlciByZWNhcnJlZ2FkYS5cclxuICAgKiBMZXZhIHVtYSBzdHJpbmcgcXVlIMOpIHVzYWRhIHBhcmEgcGVzcXVpc2EuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBvblJlbG9hZExpc3Q6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKiBFdmVudG8gZW1pdGlkbyBxdWFuZG8gdW0gaXRlbSDDqSBzZWxlY2lvbmFkby4gKi9cclxuICBAT3V0cHV0KCkgcHVibGljIG9uU2VsZWN0SXRlbTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblxyXG4gIEBWaWV3Q2hpbGQoJ21haW5JbnB1dCcpIHByaXZhdGUgX21haW5JbnB1dCE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25NZW51JykgcHJpdmF0ZSBfZHJvcGRvd25NZW51ITogRWxlbWVudFJlZjtcclxuXHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZFRleHQ/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBnZXQgYXJpYUV4cGFuZGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fYXJpYUV4cGFuZGVkOyB9XHJcbiAgcHVibGljIHNldCBhcmlhRXhwYW5kZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2FyaWFFeHBhbmRlZCA9IHZhbHVlO1xyXG4gICAgY29uc29sZS5sb2coXCJWYWxvciBtdWRvdSBwYXJhOiBcIiArIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRJdGVtKCk6IFJlY29yZENvbWJvYm94IHsgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbTsgfVxyXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWRJdGVtKHZhbHVlOiBSZWNvcmRDb21ib2JveCkge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWRJdGVtID0gdmFsdWU7XHJcbiAgICB0aGlzLm9uU2VsZWN0SXRlbS5lbWl0KHZhbHVlKTtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBQVUJMSUNcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBQUk9QRVJUSUVTIDw9PT09PT09PT09XHJcblxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IEZPUk0gQlVJTERFUiA8PT09PT09PT09PVxyXG4gIHB1YmxpYyBmaWx0ZXJGb3JtOiBGb3JtR3JvdXA7XHJcbiAgcHVibGljIGdldCBGb3JtVXRpbHMoKTogdHlwZW9mIEZvcm1VdGlscyB7IHJldHVybiBGb3JtVXRpbHM7IH1cclxuXHJcbiAgLy8gI3JlZ2lvbiBGT1JNIERBVEFcclxuICBwdWJsaWMgZ2V0IF9zZWFyY2hJbnB1dCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5maWx0ZXJGb3JtLmdldChcIl9zZWFyY2hJbnB1dFwiKT8udmFsdWU7IH1cclxuICAvLyAjZW5kcmVnaW9uIEZPUk0gREFUQVxyXG5cclxuICAvLyAjcmVnaW9uIEZPUk0gVkFMSURBVE9SU1xyXG4gIHByaXZhdGUgY3JlYXRlRmlsdGVyRm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgX3NlYXJjaElucHV0OiBbIFwiXCIgXVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gRk9STSBWQUxJREFUT1JTXHJcblxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gRk9STSBCVUlMREVSIDw9PT09PT09PT09XHJcblxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFVUSUxJVElFUyA8PT09PT09PT09PVxyXG5cclxuICAvKipcclxuICAgKiBBdHVhbGl6YSBvIHZhbG9yIGRvIGZpbHRybyBjb20gYmFzZSBubyBpdGVtIHNlbGVjaW9uYWRvLlxyXG4gICAqIEBwYXJhbSBpdGVtIE9iamV0byBkZSBpdGVtIHNlbGVjaW9uYWRvLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRGaWx0ZXJWYWx1ZShpdGVtPzogUmVjb3JkQ29tYm9ib3gpOiB2b2lkIHtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyRm9ybS5jb250cm9sc1tcIl9zZWFyY2hJbnB1dFwiXS5zZXRWYWx1ZShgJHtpdGVtLklEIGFzIHN0cmluZ30gLSAke2l0ZW0uTEFCRUx9YCk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUZXh0ID0gaXRlbS5MQUJFTDtcclxuXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0geyBJRDogaXRlbS5JRCwgTEFCRUw6IGl0ZW0uTEFCRUwsIEFkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTE6IGl0ZW0uQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MSwgSVNfU0VMRUNURUQ6IGl0ZW0uSVNfU0VMRUNURUQgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyRm9ybS5jb250cm9sc1tcIl9zZWFyY2hJbnB1dFwiXS5zZXRWYWx1ZShcIlwiKTtcclxuICAgICAgZGVsZXRlIHRoaXMuc2VsZWN0ZWRUZXh0O1xyXG5cclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB7IElEOiBcIlwiLCBMQUJFTDogXCJcIiwgQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MTogXCJcIiwgSVNfU0VMRUNURUQ6IGZhbHNlIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcmlhRXhwYW5kZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKiBDaGFtYWRvIGNhc28gdW0gdmFsb3IgaW5pY2lhbCBzZWphIGZvcm5lY2lkbyBwYXJhIG8gY29tYm9ib3guICovXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplU2VsZWN0ZWRWYWx1ZSgpOiB2b2lkIHtcclxuICAgIGxldCBpbml0aWFsaXplZFZhbHVlO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbWJvYm94TGlzdCAmJiB0aGlzLmNvbWJvYm94TGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGluaXRpYWxpemVkVmFsdWUgPSB0aGlzLmNvbWJvYm94TGlzdC5maW5kKGl0ZW0gPT4gaXRlbS5JRCA9PSB0aGlzLmluaXRpYWxpemVkVmFsdWVJRCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY29tYm9ib3hMaXN0ICYmIGluaXRpYWxpemVkVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRleHQgPSBpbml0aWFsaXplZFZhbHVlLkxBQkVMO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHsgSUQ6IGluaXRpYWxpemVkVmFsdWUuSUQsIExBQkVMOiBpbml0aWFsaXplZFZhbHVlLkxBQkVMLCBBZGRpdGlvbmFsU3RyaW5nUHJvcGVydHkxOiBcIlwiLCBJU19TRUxFQ1RFRDogdHJ1ZSB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEFqdXN0YSBhIGxhcmd1cmEgZG8gZHJvcGRvd24gcGFyYSBjb3JyZXNwb25kZXIgw6AgbGFyZ3VyYSBkbyBpbnB1dCBwcmluY2lwYWwuICovXHJcbiAgcHJpdmF0ZSBhZGp1c3REcm9wZG93bldpZHRoKCkge1xyXG4gICAgY29uc3QgaW5wdXRXaWR0aCA9IHRoaXMuX21haW5JbnB1dC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgdGhpcy5fZHJvcGRvd25NZW51Lm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHtpbnB1dFdpZHRofXB4YDtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBFbWl0ZSB1bSBldmVudG8gcGFyYSByZWNhcnJlZ2FyIGEgbGlzdGEgZGUgaXRlbnMgY29tIGJhc2UgbmEgcGVzcXVpc2EgZm9ybmVjaWRhLlxyXG4gICAqIEBwYXJhbSBzZWFyY2ggVGV4dG8gZGUgcGVzcXVpc2EgcGFyYSByZWNhcnJlZ2FyIGEgbGlzdGEuXHJcbiAgICovXHJcbiAgcHVibGljIHJlbG9hZExpc3Qoc2VhcmNoOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMub25SZWxvYWRMaXN0LmVtaXQoc2VhcmNoKTtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBVVElMSVRJRVMgPD09PT09PT09PT1cclxuXHJcblxyXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gTU9EQUxTIDw9PT09PT09PT09XHJcbiAgLy8gWy4uLl1cclxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IE1PREFMUyA8PT09PT09PT09PVxyXG5cclxufVxyXG4iLCI8bGFiZWwgW2xpYlJlcXVpcmVkXT1cImxpYlJlcXVpcmVkXCIgY2xhc3M9XCJmb3JtLWxhYmVsIGZ3LWJvbGRcIiBbaW5uZXJIVE1MXT1cImxhYmVsVGV4dFwiPjwvbGFiZWw+XHJcbjxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBkcm9wZG93biBmbGV4LWZpbGwgZ2xiLW1heC1oZWlnaHQtMzUwcHhcIj5cclxuXHJcbiAgIDwhLS0gRXN0ZSBlbGVtZW50byBuZy1jb250ZW50IGNvbSBvIGF0cmlidXRvIFtidG5MZWZ0XSBwZXJtaXRlIHF1ZSBvIHVzdcOhcmlvIGZpbmFsIGZvcm5lw6dhIGNvbnRlw7pkbyBwZXJzb25hbGl6YWRvIHBhcmEgc2VyIGV4aWJpZG8gbm8gbGFkbyBlc3F1ZXJkbyBkbyBjb21ib2JveCBkZSBwZXNxdWlzYS5cclxuICAgQW8gdXNhciBvIGF0cmlidXRvIFtidG5MZWZ0XSwgbyB1c3XDoXJpbyBwb2RlIGZhY2lsbWVudGUgYWRpY2lvbmFyIGJvdMO1ZXMgb3Ugb3V0cm9zIGVsZW1lbnRvcyBwYXJhIG1lbGhvcmFyIGEgZnVuY2lvbmFsaWRhZGUgb3UgYXBhcsOqbmNpYSBkbyBjb21ib2JveCBkZSBwZXNxdWlzYS4gLS0+XHJcbiAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltidG5MZWZ0XVwiPjwvbmctY29udGVudD5cclxuXHJcbiAgIDxpbnB1dCAgI21haW5JbnB1dCAgICpuZ0lmPVwiIWRpc2FibGVkOyBlbHNlIGRpc2FibGVkSW5wdXRcIiBjbGFzcz1cImZvcm0tc2VsZWN0IHRleHQtc3RhcnQgcm91bmRlZC1lbmRcIiB0eXBlPVwidGV4dFwiIGRhdGEtYnMtdG9nZ2xlPVwiZHJvcGRvd25cIiBbcGxhY2Vob2xkZXJdPVwibWFpbklucHV0UGxhY2Vob2xkZXJcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVGV4dFwiIGRhdGEtYnMtYXV0by1jbG9zZT1cIm91dHNpZGVcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIiByZWFkb25seSAoY2xpY2spPVwiYXJpYUV4cGFuZGVkID0gIWFyaWFFeHBhbmRlZDsgc2VhcmNoSW5wdXQuZm9jdXMoKVwiIChmb2N1cyk9XCJzZWFyY2hJbnB1dC5mb2N1cygpXCI+XHJcbiAgIDx1bCAgI2Ryb3Bkb3duTWVudSAgY2xhc3M9XCJkcm9wZG93bi1tZW51IHAtMiBnbGItbWF4LWhlaWdodC0zNTBweCBvdmVyZmxvdy15LXNjcm9sbFwiIFtjbGFzcy5zaG93XT1cImFyaWFFeHBhbmRlZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgbWItMlwiPlxyXG4gICAgICAgICA8aW5wdXQgI3NlYXJjaElucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9XCJzZWFyY2hJbnB1dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGdsYi1pbnB1dC1uby1nbG93XCIgW3BsYWNlaG9sZGVyXT1cInNlYXJjaElucHV0UGxhY2Vob2xkZXJcIiAoa2V5dXAuZW50ZXIpPVwicmVsb2FkTGlzdChzZWFyY2hJbnB1dC52YWx1ZSlcIj5cclxuICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4te3tjb2xvclRoZW1lfX1cIiAoY2xpY2spPVwicmVsb2FkTGlzdChzZWFyY2hJbnB1dC52YWx1ZSlcIj4gPGFwcC1zdmctc3RvcmFnZSBzdmdOYW1lPVwibHVwYVwiIHN2Z1NpemU9XCJtZWRpdW0tc21hbGxcIiAvPiA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3hMaXN0OyBlbHNlIGxvYWRpbmdMaXN0XCI+XHJcbiAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21ib2JveExpc3QubGVuZ3RoID4gMDsgZWxzZSBlbXB0eUl0ZW1MaXN0XCI+XHJcbiAgICAgICAgICAgIDxsaSAqbmdJZj1cInNlbGVjdGVkSXRlbSAmJiBzZWxlY3RlZEl0ZW0uSUQgIT0gJydcIiBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwic2V0RmlsdGVyVmFsdWUoKVwiPiA8c3BhbiBjbGFzcz1cImZ3LWJvbGRcIj5MaW1wYXIgb3DDp8OjbyBzZWxlY2lvbmFkYTwvc3Bhbj4gPC9saT5cclxuICAgICAgICAgICAgPGxpIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbWJvYm94TGlzdFwiIChjbGljayk9XCJzZXRGaWx0ZXJWYWx1ZShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0uQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MSB8fCBpdGVtLkFkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTEgIT0gJydcIiBjbGFzcz1cImdsYi1mcy0xMiBmdy1ib2xkIGQtaW5saW5lLWJsb2NrIHctMTI1XCI+e3sgaXRlbS5BZGRpdGlvbmFsU3RyaW5nUHJvcGVydHkxIH19PC9zcGFuPiB7eyBpdGVtLkxBQkVMIH19XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGluZ0xpc3Q+IDxsaSBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gdGV4dC1jZW50ZXJcIj4gPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyXCIgcm9sZT1cInN0YXR1c1wiPjxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+Q2FycmVnYW5kbyBkYWRvcy4uLjwvc3Bhbj48L2Rpdj4gPC9saT4gPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eUl0ZW1MaXN0PiA8bGkgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGZzdC1pdGFsaWNcIj5OZW5odW0gcmVnaXN0cm8gZW5jb250cmFkbyBjb20gZXN0YSBwZXNxdWlzYS4uLjwvbGk+IDwvbmctdGVtcGxhdGU+XHJcbiAgIDwvdWw+XHJcblxyXG4gICA8bmctdGVtcGxhdGUgI2Rpc2FibGVkSW5wdXQ+XHJcbiAgICAgIDxpbnB1dCAgI21haW5JbnB1dCAgY2xhc3M9XCJmb3JtLXNlbGVjdCB0ZXh0LXN0YXJ0IHJvdW5kZWQtZW5kXCIgdHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwibWFpbklucHV0UGxhY2Vob2xkZXJcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVGV4dFwiIHJlYWRvbmx5IGRpc2FibGVkPlxyXG4gICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgPCEtLSBFc3RlIGVsZW1lbnRvIG5nLWNvbnRlbnQgY29tIG8gYXRyaWJ1dG8gW2J0blJpZ2h0XSBwZXJtaXRlIHF1ZSBvIHVzdcOhcmlvIGZpbmFsIGZvcm5lw6dhIGNvbnRlw7pkbyBwZXJzb25hbGl6YWRvIHBhcmEgc2VyIGV4aWJpZG8gbm8gbGFkbyBkaXJlaXRvIGRvIGNvbWJvYm94IGRlIHBlc3F1aXNhLlxyXG4gICBBbyB1c2FyIG8gYXRyaWJ1dG8gW2J0blJpZ2h0XSwgbyB1c3XDoXJpbyBwb2RlIGZhY2lsbWVudGUgYWRpY2lvbmFyIGJvdMO1ZXMgb3Ugb3V0cm9zIGVsZW1lbnRvcyBwYXJhIG1lbGhvcmFyIGEgZnVuY2lvbmFsaWRhZGUgb3UgYXBhcsOqbmNpYSBkbyBjb21ib2JveCBkZSBwZXNxdWlzYS4gLS0+XHJcbiAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltidG5SaWdodF1cIj48L25nLWNvbnRlbnQ+XHJcblxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1625,12 +1625,12 @@ class RequiredDirective {
|
|
|
1625
1625
|
}
|
|
1626
1626
|
}
|
|
1627
1627
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: RequiredDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1628
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: RequiredDirective, selector: "label[libRequired]", inputs: { showMarker: ["libRequired", "showMarker"], spanID: ["sisID", "spanID"] }, usesOnChanges: true, ngImport: i0 }); }
|
|
1628
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: RequiredDirective, selector: "label[libRequired], span[libRequired], p[libRequired]", inputs: { showMarker: ["libRequired", "showMarker"], spanID: ["sisID", "spanID"] }, usesOnChanges: true, ngImport: i0 }); }
|
|
1629
1629
|
}
|
|
1630
1630
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: RequiredDirective, decorators: [{
|
|
1631
1631
|
type: Directive,
|
|
1632
1632
|
args: [{
|
|
1633
|
-
selector: "label[libRequired]"
|
|
1633
|
+
selector: "label[libRequired], span[libRequired], p[libRequired]"
|
|
1634
1634
|
}]
|
|
1635
1635
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { showMarker: [{
|
|
1636
1636
|
type: Input,
|
|
@@ -1696,6 +1696,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
1696
1696
|
class SearchComboboxComponent {
|
|
1697
1697
|
constructor(_formBuilder) {
|
|
1698
1698
|
this._formBuilder = _formBuilder;
|
|
1699
|
+
this._ariaExpanded = false;
|
|
1699
1700
|
/** Tema de cores para o componente (baseado nas cores do Bootstrap). */
|
|
1700
1701
|
this.colorTheme = "primary";
|
|
1701
1702
|
/** Placeholder para o input principal. */
|
|
@@ -1712,7 +1713,6 @@ class SearchComboboxComponent {
|
|
|
1712
1713
|
this.onReloadList = new EventEmitter();
|
|
1713
1714
|
/** Evento emitido quando um item é selecionado. */
|
|
1714
1715
|
this.onSelectItem = new EventEmitter();
|
|
1715
|
-
this.ariaExpanded = false;
|
|
1716
1716
|
}
|
|
1717
1717
|
ngOnInit() {
|
|
1718
1718
|
this.createFilterForm();
|
|
@@ -1731,6 +1731,11 @@ class SearchComboboxComponent {
|
|
|
1731
1731
|
this.initializeSelectedValue();
|
|
1732
1732
|
}
|
|
1733
1733
|
}
|
|
1734
|
+
get ariaExpanded() { return this._ariaExpanded; }
|
|
1735
|
+
set ariaExpanded(value) {
|
|
1736
|
+
this._ariaExpanded = value;
|
|
1737
|
+
console.log("Valor mudou para: " + value);
|
|
1738
|
+
}
|
|
1734
1739
|
get selectedItem() { return this._selectedItem; }
|
|
1735
1740
|
set selectedItem(value) {
|
|
1736
1741
|
this._selectedItem = value;
|
|
@@ -1790,11 +1795,11 @@ class SearchComboboxComponent {
|
|
|
1790
1795
|
this.onReloadList.emit(search);
|
|
1791
1796
|
}
|
|
1792
1797
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SearchComboboxComponent, deps: [{ token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1793
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SearchComboboxComponent, selector: "lib-search-combobox", inputs: { comboboxList: "comboboxList", labelText: "labelText", initializedValueID: "initializedValueID", colorTheme: "colorTheme", mainInputPlaceholder: "mainInputPlaceholder", searchInputPlaceholder: "searchInputPlaceholder", disabled: "disabled", libRequired: "libRequired" }, outputs: { onReloadList: "onReloadList", onSelectItem: "onSelectItem" }, viewQueries: [{ propertyName: "_mainInput", first: true, predicate: ["mainInput"], descendants: true }, { propertyName: "_dropdownMenu", first: true, predicate: ["dropdownMenu"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label [libRequired]=\"libRequired\" class=\"form-label fw-bold\" [innerHTML]=\"labelText\"></label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\n\r\n <!-- Este elemento ng-content com o atributo [btnLeft] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado esquerdo do combobox de pesquisa.\r\n Ao usar o atributo [btnLeft], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnLeft]\"></ng-content>\r\n\r\n <input #mainInput *ngIf=\"!disabled; else disabledInput\" class=\"form-select text-start rounded-end\" type=\"text\" data-bs-toggle=\"dropdown\" [
|
|
1798
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SearchComboboxComponent, selector: "lib-search-combobox", inputs: { comboboxList: "comboboxList", labelText: "labelText", initializedValueID: "initializedValueID", colorTheme: "colorTheme", mainInputPlaceholder: "mainInputPlaceholder", searchInputPlaceholder: "searchInputPlaceholder", disabled: "disabled", libRequired: "libRequired" }, outputs: { onReloadList: "onReloadList", onSelectItem: "onSelectItem" }, viewQueries: [{ propertyName: "_mainInput", first: true, predicate: ["mainInput"], descendants: true }, { propertyName: "_dropdownMenu", first: true, predicate: ["dropdownMenu"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label [libRequired]=\"libRequired\" class=\"form-label fw-bold\" [innerHTML]=\"labelText\"></label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\n\r\n <!-- Este elemento ng-content com o atributo [btnLeft] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado esquerdo do combobox de pesquisa.\r\n Ao usar o atributo [btnLeft], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnLeft]\"></ng-content>\r\n\r\n <input #mainInput *ngIf=\"!disabled; else disabledInput\" class=\"form-select text-start rounded-end\" type=\"text\" data-bs-toggle=\"dropdown\" [placeholder]=\"mainInputPlaceholder\"\r\n [(ngModel)]=\"selectedText\" data-bs-auto-close=\"outside\" aria-expanded=\"false\" readonly (click)=\"ariaExpanded = !ariaExpanded; searchInput.focus()\" (focus)=\"searchInput.focus()\">\r\n <ul #dropdownMenu class=\"dropdown-menu p-2 glb-max-height-350px overflow-y-scroll\" [class.show]=\"ariaExpanded\">\r\n <div class=\"input-group mb-2\">\r\n <input #searchInput type=\"text\" id=\"searchInput\" class=\"form-control glb-input-no-glow\" [placeholder]=\"searchInputPlaceholder\" (keyup.enter)=\"reloadList(searchInput.value)\">\r\n <button class=\"btn btn-{{colorTheme}}\" (click)=\"reloadList(searchInput.value)\"> <app-svg-storage svgName=\"lupa\" svgSize=\"medium-small\" /> </button>\r\n </div>\r\n\r\n <ng-container *ngIf=\"comboboxList; else loadingList\">\r\n <ng-container *ngIf=\"comboboxList.length > 0; else emptyItemList\">\r\n <li *ngIf=\"selectedItem && selectedItem.ID != ''\" class=\"dropdown-item\" (click)=\"setFilterValue()\"> <span class=\"fw-bold\">Limpar op\u00E7\u00E3o selecionada</span> </li>\r\n <li class=\"dropdown-item\" *ngFor=\"let item of comboboxList\" (click)=\"setFilterValue(item)\">\r\n <span *ngIf=\"item.AdditionalStringProperty1 || item.AdditionalStringProperty1 != ''\" class=\"glb-fs-12 fw-bold d-inline-block w-125\">{{ item.AdditionalStringProperty1 }}</span> {{ item.LABEL }}\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loadingList> <li class=\"dropdown-item text-center\"> <div class=\"spinner-border\" role=\"status\"><span class=\"visually-hidden\">Carregando dados...</span></div> </li> </ng-template>\r\n <ng-template #emptyItemList> <li class=\"dropdown-item fst-italic\">Nenhum registro encontrado com esta pesquisa...</li> </ng-template>\r\n </ul>\r\n\r\n <ng-template #disabledInput>\r\n <input #mainInput class=\"form-select text-start rounded-end\" type=\"text\" [placeholder]=\"mainInputPlaceholder\" [(ngModel)]=\"selectedText\" readonly disabled>\r\n </ng-template>\r\n\r\n <!-- Este elemento ng-content com o atributo [btnRight] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado direito do combobox de pesquisa.\r\n Ao usar o atributo [btnRight], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnRight]\"></ng-content>\r\n\r\n</div>\r\n", styles: [".glb-max-height-350px{max-height:350px!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SvgStorageComponent, selector: "app-svg-storage", inputs: ["svgName", "svgColor", "svgFill", "svgSize", "svgStrokeWidth"] }, { kind: "directive", type: RequiredDirective, selector: "label[libRequired], span[libRequired], p[libRequired]", inputs: ["libRequired", "sisID"] }] }); }
|
|
1794
1799
|
}
|
|
1795
1800
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SearchComboboxComponent, decorators: [{
|
|
1796
1801
|
type: Component,
|
|
1797
|
-
args: [{ selector: 'lib-search-combobox', template: "<label [libRequired]=\"libRequired\" class=\"form-label fw-bold\" [innerHTML]=\"labelText\"></label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\n\r\n <!-- Este elemento ng-content com o atributo [btnLeft] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado esquerdo do combobox de pesquisa.\r\n Ao usar o atributo [btnLeft], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnLeft]\"></ng-content>\r\n\r\n <input #mainInput *ngIf=\"!disabled; else disabledInput\" class=\"form-select text-start rounded-end\" type=\"text\" data-bs-toggle=\"dropdown\" [
|
|
1802
|
+
args: [{ selector: 'lib-search-combobox', template: "<label [libRequired]=\"libRequired\" class=\"form-label fw-bold\" [innerHTML]=\"labelText\"></label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\n\r\n <!-- Este elemento ng-content com o atributo [btnLeft] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado esquerdo do combobox de pesquisa.\r\n Ao usar o atributo [btnLeft], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnLeft]\"></ng-content>\r\n\r\n <input #mainInput *ngIf=\"!disabled; else disabledInput\" class=\"form-select text-start rounded-end\" type=\"text\" data-bs-toggle=\"dropdown\" [placeholder]=\"mainInputPlaceholder\"\r\n [(ngModel)]=\"selectedText\" data-bs-auto-close=\"outside\" aria-expanded=\"false\" readonly (click)=\"ariaExpanded = !ariaExpanded; searchInput.focus()\" (focus)=\"searchInput.focus()\">\r\n <ul #dropdownMenu class=\"dropdown-menu p-2 glb-max-height-350px overflow-y-scroll\" [class.show]=\"ariaExpanded\">\r\n <div class=\"input-group mb-2\">\r\n <input #searchInput type=\"text\" id=\"searchInput\" class=\"form-control glb-input-no-glow\" [placeholder]=\"searchInputPlaceholder\" (keyup.enter)=\"reloadList(searchInput.value)\">\r\n <button class=\"btn btn-{{colorTheme}}\" (click)=\"reloadList(searchInput.value)\"> <app-svg-storage svgName=\"lupa\" svgSize=\"medium-small\" /> </button>\r\n </div>\r\n\r\n <ng-container *ngIf=\"comboboxList; else loadingList\">\r\n <ng-container *ngIf=\"comboboxList.length > 0; else emptyItemList\">\r\n <li *ngIf=\"selectedItem && selectedItem.ID != ''\" class=\"dropdown-item\" (click)=\"setFilterValue()\"> <span class=\"fw-bold\">Limpar op\u00E7\u00E3o selecionada</span> </li>\r\n <li class=\"dropdown-item\" *ngFor=\"let item of comboboxList\" (click)=\"setFilterValue(item)\">\r\n <span *ngIf=\"item.AdditionalStringProperty1 || item.AdditionalStringProperty1 != ''\" class=\"glb-fs-12 fw-bold d-inline-block w-125\">{{ item.AdditionalStringProperty1 }}</span> {{ item.LABEL }}\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loadingList> <li class=\"dropdown-item text-center\"> <div class=\"spinner-border\" role=\"status\"><span class=\"visually-hidden\">Carregando dados...</span></div> </li> </ng-template>\r\n <ng-template #emptyItemList> <li class=\"dropdown-item fst-italic\">Nenhum registro encontrado com esta pesquisa...</li> </ng-template>\r\n </ul>\r\n\r\n <ng-template #disabledInput>\r\n <input #mainInput class=\"form-select text-start rounded-end\" type=\"text\" [placeholder]=\"mainInputPlaceholder\" [(ngModel)]=\"selectedText\" readonly disabled>\r\n </ng-template>\r\n\r\n <!-- Este elemento ng-content com o atributo [btnRight] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado direito do combobox de pesquisa.\r\n Ao usar o atributo [btnRight], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnRight]\"></ng-content>\r\n\r\n</div>\r\n", styles: [".glb-max-height-350px{max-height:350px!important}\n"] }]
|
|
1798
1803
|
}], ctorParameters: () => [{ type: i2.FormBuilder }], propDecorators: { comboboxList: [{
|
|
1799
1804
|
type: Input,
|
|
1800
1805
|
args: [{ required: true }]
|