bit-ng-library 13.1.0 → 13.1.3
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/README.md +16 -5
- package/esm2020/lib/sharedlibrary/components/footer/bit-footer.component.mjs +18 -8
- package/esm2020/lib/sharedlibrary/components/form/dropdown/bit-dropdown-general.component.mjs +19 -14
- package/esm2020/lib/sharedlibrary/components/form/dropdown/bit-dropdown-multiple.component.mjs +33 -14
- package/esm2020/lib/sharedlibrary/services/custom-validators.service.mjs +39 -31
- package/fesm2015/bit-ng-library.mjs +98 -55
- package/fesm2015/bit-ng-library.mjs.map +1 -1
- package/fesm2020/bit-ng-library.mjs +97 -54
- package/fesm2020/bit-ng-library.mjs.map +1 -1
- package/lib/sharedlibrary/components/footer/bit-footer.component.d.ts +1 -0
- package/lib/sharedlibrary/components/footer/bit-footer.component.d.ts.map +1 -1
- package/lib/sharedlibrary/components/form/dropdown/bit-dropdown-general.component.d.ts +1 -0
- package/lib/sharedlibrary/components/form/dropdown/bit-dropdown-general.component.d.ts.map +1 -1
- package/lib/sharedlibrary/components/form/dropdown/bit-dropdown-multiple.component.d.ts +4 -5
- package/lib/sharedlibrary/components/form/dropdown/bit-dropdown-multiple.component.d.ts.map +1 -1
- package/lib/sharedlibrary/services/custom-validators.service.d.ts +1 -1
- package/lib/sharedlibrary/services/custom-validators.service.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -26,17 +26,28 @@ To get more help on the Angular CLI use `ng help` or go check out the [Angular C
|
|
|
26
26
|
|
|
27
27
|
## changelog
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
## [13.0.2] - 2022-02-03
|
|
29
|
+
## [13.1.3] - 2022-05-18
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
Corregido bug en el bit-dropdown-multiple, por el cual no se resolvía el label por defecto y aparecía el código de etiqueta.
|
|
32
|
+
|
|
33
|
+
## [13.1.2] - 2022-05-09
|
|
34
|
+
|
|
35
|
+
Corregido bug en bit-footer al volver de un formulario a la lista, momento en que desaparecía el footer. (la solución completa del bug requiere de cambios en base-list-filter.component.ts de los proyectos)
|
|
36
|
+
|
|
37
|
+
## [13.1.1] - 2022-02-22
|
|
38
|
+
|
|
39
|
+
Corregido bug de CustomValidators cuando se usaba en forms con diversos campos de longitud limitada. Se mostraba siempre el mismo mensaje para todos, aunque se especificase un validador con longitud diferente en cada campo.
|
|
35
40
|
|
|
36
41
|
## [13.1.0] - 2022-02-03
|
|
37
42
|
|
|
38
43
|
Incluir el nuevo tipo de bit-footer para las páginas con infinity-scroll en la rama angular 13
|
|
39
44
|
|
|
45
|
+
## [13.0.2] - 2022-02-03
|
|
46
|
+
|
|
47
|
+
Se añade allowSyntheticDefaultImports a true en las opciones de compilacion de tsconfig para que se importe correctamente la librería
|
|
48
|
+
moment. También se modifica la forma de importar en el código pasando a import momento from 'moment' en vez de import \* as moment from
|
|
49
|
+
'moment'
|
|
50
|
+
|
|
40
51
|
## [13.0.1] - 2022-02-03
|
|
41
52
|
|
|
42
53
|
Se elimina moment-mini-ts al presentar problemas de carga con angular 13
|
|
@@ -80,7 +80,9 @@ export class BitFooterComponent {
|
|
|
80
80
|
if (propName === "totalItems") {
|
|
81
81
|
this.totalItems = changedProp.currentValue;
|
|
82
82
|
console.log(`new totalItems ${this.totalItems}`);
|
|
83
|
-
changedProp.previousValue !== changedProp.currentValue
|
|
83
|
+
if (changedProp.previousValue !== changedProp.currentValue) {
|
|
84
|
+
this.calculatePageLinkSize(); //recalculamos
|
|
85
|
+
}
|
|
84
86
|
this.maxCurrentItems = this.filter ? this.filter.pagina * this.filter.resultados : -1;
|
|
85
87
|
}
|
|
86
88
|
else if (propName === "filter") {
|
|
@@ -89,7 +91,12 @@ export class BitFooterComponent {
|
|
|
89
91
|
this.maxCurrentItems = this.filter?.pagina * this.filter?.resultados;
|
|
90
92
|
}
|
|
91
93
|
console.log(`new filter ${this.filter?.pagina} - ${this.maxCurrentItems}`);
|
|
92
|
-
changedProp.previousValue !== changedProp.currentValue
|
|
94
|
+
if (changedProp.previousValue !== changedProp.currentValue) {
|
|
95
|
+
this.calculatePageLinkSize(); //recalculamos
|
|
96
|
+
if (!this.filter?.pagina || this.filter.pagina <= 1) {
|
|
97
|
+
this.goToFirstPage();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
93
100
|
}
|
|
94
101
|
}
|
|
95
102
|
if (this.pc && this.changeRef) {
|
|
@@ -117,11 +124,7 @@ export class BitFooterComponent {
|
|
|
117
124
|
//notificamos que los elementos por página han cambiado
|
|
118
125
|
this.onNewPageSize.emit(event.rows);
|
|
119
126
|
this.itemsPerPage = event.rows;
|
|
120
|
-
|
|
121
|
-
//volvemos a la primera página
|
|
122
|
-
this.pc._first = 1;
|
|
123
|
-
this.pc.updatePageLinks();
|
|
124
|
-
}
|
|
127
|
+
this.goToFirstPage();
|
|
125
128
|
this.calculatePageLinkSize(); // recalculamos el número de enlaces de página
|
|
126
129
|
}
|
|
127
130
|
else {
|
|
@@ -129,6 +132,13 @@ export class BitFooterComponent {
|
|
|
129
132
|
this.onPageChange.emit(event.page + 1);
|
|
130
133
|
}
|
|
131
134
|
}
|
|
135
|
+
goToFirstPage() {
|
|
136
|
+
if (this.pc) {
|
|
137
|
+
//volvemos a la primera página
|
|
138
|
+
this.pc._first = 1;
|
|
139
|
+
this.pc.updatePageLinks();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
132
142
|
getStyle() {
|
|
133
143
|
if (this.fixed && this.typeFooter === BitFooterComponent.TYPE_LIST || this.typeFooter === BitFooterComponent.TYPE_SCROLL) {
|
|
134
144
|
if (this.totalItems > 0) {
|
|
@@ -251,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
251
261
|
}], onNewPageSize: [{
|
|
252
262
|
type: Output
|
|
253
263
|
}] } });
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0LWZvb3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iaXQtbmctbGlicmFyeS9zcmMvbGliL3NoYXJlZGxpYnJhcnkvY29tcG9uZW50cy9mb290ZXIvYml0LWZvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iaXQtbmctbGlicmFyeS9zcmMvbGliL3NoYXJlZGxpYnJhcnkvY29tcG9uZW50cy9mb290ZXIvYml0LWZvb3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztBQUlwRDs7SUFFSTtBQU1KLE1BQU0sT0FBTyxrQkFBa0I7SUF5QzdCLFlBQW9CLGdCQUFrQyxFQUNsQyxTQUE0QjtRQUQ1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBekJoRCxrQkFBYSxHQUFZLElBQUksQ0FBQztRQUU5QixVQUFLLEdBQVksSUFBSSxDQUFDLENBQUMsbUVBQW1FO1FBUTFGLDBCQUFxQixHQUFZLElBQUksQ0FBQztRQUV0QywrQkFBMEIsR0FBWSxJQUFJLENBQUM7UUFFM0MsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDLENBQUMsK0NBQStDO1FBRTFGLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQyxDQUFDLDhEQUE4RDtRQUUxRyxxQkFBZ0IsR0FBVyxVQUFVLENBQUMsZUFBZSxDQUFD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QURwQixLQUFLO2dCQUdOLDBCQUEwQjtzQkFEekIsS0FBSztnQkFHTixZQUFZO3NCQURYLE1BQU07Z0JBR1AsYUFBYTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZSxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1BhZ2luYXRvcn0gZnJvbSBcInByaW1lbmcvcGFnaW5hdG9yXCI7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQkFTRV9SRVNVTFRBRE9TX1BBR0UsIEJhc2VGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi9iYXNlL3NoYXJlZC9iYXNlLmZpbHRlcic7XHJcbmltcG9ydCB7IFBhZ2VTdGF0dXMgfSBmcm9tICcuLi8uLi9nbG9iYWwuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuXHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBxdWUgbXVlc3RyYSB1biBwYWdpbmFkb3IgZW4gbGEgc2VjY2nDs24gZm9vdGVyLlxyXG4gKiovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImJpdC1mb290ZXJcIixcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICB0ZW1wbGF0ZVVybDogXCJiaXQtZm9vdGVyLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEJpdEZvb3RlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBwdWJsaWMgc3RhdGljIFRZUEVfTElTVDogc3RyaW5nID0gXCJsaXN0XCI7XHJcbiAgcHVibGljIHN0YXRpYyBUWVBFX1NDUk9MTDogc3RyaW5nID0gXCJzY3JvbGxcIjtcclxuICBwdWJsaWMgc3RhdGljIFRZUEVfRk9STTogc3RyaW5nID0gXCJmb3JtXCI7XHJcbiAgcHVibGljIHN0YXRpYyBUWVBFX0JMQU5LOiBzdHJpbmcgPSBcImJsYW5rXCI7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgTU9SRV9SRVNVTFRTID0gLTE7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJwY1wiKVxyXG4gIHBjOiBQYWdpbmF0b3I7XHJcbiAgQElucHV0KClcclxuICB0b3RhbEl0ZW1zOiBudW1iZXI7ICAgICAvLyBOw7ptZXJvIHRvdGFsIGRlIGVsZW1lbnRvcyByZWN1cGVyYWRvcyBkZSBsYSBjb25zdWx0YVxyXG4gIEBJbnB1dCgpXHJcbiAgZmlsdGVyOiBCYXNlRmlsdGVyO1xyXG4gIEBJbnB1dCgpXHJcbiAgcGFnaW5hdG9yOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgbW9zdHJhckF2aXNvczogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBmaXhlZDogYm9vbGVhbiA9IHRydWU7IC8vIEluZGljYXLDoSBzaSBsbyBxdWVyZW1vcyBmaWpvIGFiYWpvIGVuIGxhIHDDoWdpbmEuIFBvciBkZWZlY3RvIHPDrS5cclxuICBASW5wdXQoKVxyXG4gIG1lc3NhZ2VzOiBNYXA8UGFnZVN0YXR1cywgc3RyaW5nPjtcclxuICBASW5wdXQoKVxyXG4gIHN0YXR1czogUGFnZVN0YXR1czsgLy8gRGV0ZXJtaW5hIGVuIHF1w6kgZXN0YWRvIGVzdMOhIGxhIHDDoWdpbmE6IFBhZ2VTdGF0dXMuSW5pdCwgUGFnZVN0YXR1cy5TRUFSQ0hJTkcsIFBhZ2VTdGF0dXMuRklOSVNIX1NFQVJDSFxyXG4gIEBJbnB1dChcInR5cGVcIilcclxuICB0eXBlRm9vdGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBtb3N0cmFyRW5sYWNlc1BhZ2luYXM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgbW9zdHJhclByaW1lcmFVbHRpbWFQYWdpbmE6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uUGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpOyAvL3BhcmEgbm90aWZpY2FyIGNhbWJpb3MgZW4gbGEgcMOhZ2luYSBhIG1vc3RyYXJcclxuICBAT3V0cHV0KClcclxuICBvbk5ld1BhZ2VTaXplID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7IC8vcGFyYSBub3RpZmljYXIgY2FtYmlvcyBlbiBsb3MgZWxlbWVudG9zIGEgbW9zdHJhciBwb3IgcMOhZ2luYVxyXG5cclxuICBiYXNlSXRlbXNQZXJQYWdlOiBudW1iZXIgPSBCYXNlRmlsdGVyLlJFU1VMVEFET1NfUEFHRTsgLy8gZ3VhcmRhbW9zIGVsIG7Dum1lcm8gZGUgcmVzdWx0YWRvcyBwcmUtY29uZmlndXJhZG9zIHBvciBww6FnaW5hIHBhcmEgbW9zdHJhciBsYSBsaXN0YSBkZSB4LCB4KzEwIHkgeCsyMFxyXG4gIHBhZ2VMaW5rU2l6ZTogbnVtYmVyOyAvLyBuw7ptZXJvIGRlIGVubGFjZXMgZW4gZWwgcGFnaW5hZG9yIHBhcmEgcG9kZXIgbmF2ZWdhciBoYWNpYSBkZWxhbnRlIG8gZGV0csOhc1xyXG4gIGl0ZW1zUGVyUGFnZTogbnVtYmVyID0gQmFzZUZpbHRlci5SRVNVTFRBRE9TX1BBR0U7IC8vIG7Dum1lcm8gZGUgZWxlbWVudG9zIHBvciBww6FnaW5hIHF1ZSBtb3N0cmFtb3NcclxuXHJcbiAgbWF4Q3VycmVudEl0ZW1zOiBudW1iZXIgPSAtMTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgY2hhbmdlUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50eXBlRm9vdGVyID09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnR5cGVGb290ZXIgPSBcImxpc3RcIjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnBhZ2luYXRvciA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5wYWdpbmF0b3IgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vbWVuc2FqZXMgcG9yIGRlZmVjdG8gc2kgbm8gdmllbmVuIGRlZmluaWRvc1xyXG4gICAgaWYgKHRoaXMubWVzc2FnZXMgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuc2V0TWVzc2FnZXMoKTtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5zZXQoUGFnZVN0YXR1cy5FcnJvciwgXCJiaXRuZ2xpYnJhcnkuZm9vdGVyLmVycm9yXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRNZXNzYWdlcygpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiZGVmaW5pbW9zIGxvcyBtZW5zYWplcyBkZWwgZm9vdGVyIGRlIG1hbmVyYSBlc3TDoW5kYXJcIik7XHJcbiAgICB0aGlzLm1lc3NhZ2VzID0gbmV3IE1hcDxQYWdlU3RhdHVzLCBzdHJpbmc+KCk7XHJcbiAgICBpZiAodGhpcy5pc0Zvb3Rlckxpc3QoKSB8fCB0aGlzLmlzRm9vdGVyU2Nyb2xsKCkpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5zZXQoUGFnZVN0YXR1cy5Jbml0LCBcImJpdG5nbGlicmFyeS5mb290ZXIubGlzdC5pbml0XCIpO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLnNldChQYWdlU3RhdHVzLlNlYXJjaGluZywgXCJiaXRuZ2xpYnJhcnkuZm9vdGVyLmxpc3Quc2VhcmNoaW5nXCIpO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLnNldChQYWdlU3RhdHVzLkVtcHR5UmVzdWx0LCBcImJpdG5nbGlicmFyeS5mb290ZXIubGlzdC5lbXB0eXJlc3VsdFwiKTtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5zZXQoUGFnZVN0YXR1cy5GaW5pc2hTZWFyY2gsIFwiYml0bmdsaWJyYXJ5LmZvb3Rlci5saXN0LmZpbmlzaHNlYXJjaFwiKTtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5zZXQoQml0Rm9vdGVyQ29tcG9uZW50Lk1PUkVfUkVTVUxUUywgXCJiaXRuZ2xpYnJhcnkuZm9vdGVyLmxpc3QubW9yZXJlc3VsdHNcIilcclxuICAgIH0gZWxzZSBpZiAodGhpcy5pc0Zvb3RlckZvcm0oKSkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLnNldChQYWdlU3RhdHVzLkluaXQsIFwiYml0bmdsaWJyYXJ5LmZvb3Rlci5mb3JtLmluaXRcIik7XHJcbiAgICAgIHRoaXMubWVzc2FnZXMuc2V0KFBhZ2VTdGF0dXMuU2VhcmNoaW5nLCBcImJpdG5nbGlicmFyeS5mb290ZXIuZm9ybS5zZWFyY2hpbmdcIik7XHJcbiAgICAgIHRoaXMubWVzc2FnZXMuc2V0KFBhZ2VTdGF0dXMuRmluaXNoU2VhcmNoLCBcImJpdG5nbGlicmFyeS5mb290ZXIuZm9ybS5maW5pc2hzZWFyY2hcIik7XHJcbiAgICAgIHRoaXMubWVzc2FnZXMuc2V0KFBhZ2VTdGF0dXMuUmVhZE9ubHksIFwiYml0bmdsaWJyYXJ5LmZvb3Rlci5saXN0LnJlYWRvbmx5XCIpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGVGb290ZXIgPT09IEJpdEZvb3RlckNvbXBvbmVudC5UWVBFX0JMQU5LKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwidGhlIGZvb3RlciBpcyBCTEFOSyFcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDdWFuZG8gdGVuZ2Ftb3MgbGEgcmVmZXJlbmNpYSBhbCBjb21wb25lbnRlIHBhZ2luYXRvciBhY3R1YWxpemFtb3MgaW50ZXJuYW1lbnRlIGVsIG7Dum1lcm8gZGUgcMOhZ2luYSB5IGVsIG7Dum1lcm8gZGUgcMOhZ2luYXNcclxuICAgKiBkZWwgZGVzcGxlZ2FibGUgY29uIGxhIGluZm9ybWFjacOzbiBkZWwgZmlsdHJvIHByb3BvcmNpb25hZG9cclxuICAgKi9cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5wYykge1xyXG4gICAgICB0aGlzLml0ZW1zUGVyUGFnZSA9IHRoaXMuZmlsdGVyLnJlc3VsdGFkb3M7XHJcbiAgICAgIGNvbnNvbGUubG9nKGB0aGlzLmZpbHRlci5yZXN1bHRhZG9zICR7dGhpcy5maWx0ZXIucmVzdWx0YWRvc31gKTtcclxuICAgICAgY29uc29sZS5sb2coYHRoaXMuZmlsdGVyLnBhZ2luYSAke3RoaXMuZmlsdGVyLnBhZ2luYX1gKTtcclxuICAgICAgdGhpcy5wYy5yb3dzID0gdGhpcy5maWx0ZXIucmVzdWx0YWRvcztcclxuICAgICAgdGhpcy5wYy5fZmlyc3QgPSAodGhpcy5maWx0ZXIucGFnaW5hIC0gMSkgKiB0aGlzLnBjLnJvd3M7XHJcbiAgICAgIHRoaXMucGMudXBkYXRlUGFnZUxpbmtzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFc2N1Y2hhcmVtb3MgYSBjYW1iaW9zIGVuIGxhcyBwcm9waWVkYWRlcyB0b3RhbEl0ZW1zIHBhcmEgYWN0dWFsaXphciBlbCBwYWdpbmFkb3IgY29uIHJlc3BlY3RvIGEgbGFzIHDDoWdpbmFzIHF1ZSBtb3N0cmFtb3NcclxuICAgKi9cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiB7IFtwcm9wS2V5OiBzdHJpbmddOiBTaW1wbGVDaGFuZ2UgfSkge1xyXG4gICAgZm9yIChsZXQgcHJvcE5hbWUgaW4gY2hhbmdlcykge1xyXG4gICAgICBsZXQgY2hhbmdlZFByb3AgPSBjaGFuZ2VzW3Byb3BOYW1lXTtcclxuICAgICAgaWYgKHByb3BOYW1lID09PSBcInRvdGFsSXRlbXNcIikge1xyXG4gICAgICAgIHRoaXMudG90YWxJdGVtcyA9IGNoYW5nZWRQcm9wLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICBjb25zb2xlLmxvZyhgbmV3IHRvdGFsSXRlbXMgJHt0aGlzLnRvdGFsSXRlbXN9YCk7XHJcbiAgICAgICAgY2hhbmdlZFByb3AucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlZFByb3AuY3VycmVudFZhbHVlID8gdGhpcy5jYWxjdWxhdGVQYWdlTGlua1NpemUoKSA6IHVuZGVmaW5lZDsgLy9yZWNhbGN1bGFtb3NcclxuICAgICAgICB0aGlzLm1heEN1cnJlbnRJdGVtcyA9IHRoaXMuZmlsdGVyID8gdGhpcy5maWx0ZXIucGFnaW5hICogdGhpcy5maWx0ZXIucmVzdWx0YWRvcyA6IC0xO1xyXG4gICAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcImZpbHRlclwiKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXIgPSBjaGFuZ2VkUHJvcC5jdXJyZW50VmFsdWU7XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyPy5wYWdpbmEgKiB0aGlzLmZpbHRlcj8ucmVzdWx0YWRvcyA+IHRoaXMubWF4Q3VycmVudEl0ZW1zKSB7XHJcbiAgICAgICAgICB0aGlzLm1heEN1cnJlbnRJdGVtcyA9IHRoaXMuZmlsdGVyPy5wYWdpbmEgKiB0aGlzLmZpbHRlcj8ucmVzdWx0YWRvcztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc29sZS5sb2coYG5ldyBmaWx0ZXIgJHt0aGlzLmZpbHRlcj8ucGFnaW5hfSAtICR7dGhpcy5tYXhDdXJyZW50SXRlbXN9YCk7XHJcbiAgICAgICAgY2hhbmdlZFByb3AucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlZFByb3AuY3VycmVudFZhbHVlID8gdGhpcy5jYWxjdWxhdGVQYWdlTGlua1NpemUoKSA6IHVuZGVmaW5lZDsgLy9yZWNhbGN1bGFtb3NcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucGMgJiYgdGhpcy5jaGFuZ2VSZWYpIHtcclxuICAgICAgY29uc29sZS5sb2coJ3VwZGF0ZVBhZ2VMaW5rcycpO1xyXG4gICAgICB0aGlzLnBjLnVwZGF0ZVBhZ2VMaW5rcygpO1xyXG4gICAgICB0aGlzLmNoYW5nZVJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogQ2FsY3VsYSBlbCBuw7ptZXJvIGRlIGVubGFjZXMgdmlzaWJsZXMgZW4gZWwgcGFnaW5hZG9yIChlbiBlbCByYW5nbyBlbnRyZSAxIHkgQkFTRV9SRVNVTFRBRE9TX1BBR0UpLiAqL1xyXG4gIGNhbGN1bGF0ZVBhZ2VMaW5rU2l6ZSgpIHtcclxuICAgIGNvbnNvbGUubG9nKGBjYWxjdWxhdGVQYWdlTGlua1NpemUgdG90YWxJdGVtczogJHt0aGlzLnRvdGFsSXRlbXN9IGl0ZW1zUGVyUGFnZToke3RoaXMuaXRlbXNQZXJQYWdlfWApO1xyXG4gICAgdGhpcy5wYWdlTGlua1NpemUgPSBNYXRoLmNlaWwodGhpcy50b3RhbEl0ZW1zIC8gdGhpcy5pdGVtc1BlclBhZ2UpO1xyXG4gICAgaWYgKHRoaXMucGFnZUxpbmtTaXplIDwgMSkge1xyXG4gICAgICB0aGlzLnBhZ2VMaW5rU2l6ZSA9IDE7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wYWdlTGlua1NpemUgPiBCQVNFX1JFU1VMVEFET1NfUEFHRSkge1xyXG4gICAgICB0aGlzLnBhZ2VMaW5rU2l6ZSA9IEJBU0VfUkVTVUxUQURPU19QQUdFO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEVzdGFibGVjZSBlbCBuw7ptZXJvIGRlIHDDoWdpbmEgZW4gbGEgdmlzdWFsaXphY2nDs24gZGUgcmVzdWx0YWRvcy4gU2UgaW52b2NhIGN1YW5kbyBlbCB1c3VhcmlvIGNhbWJpYSBlbCBuw7ptZXJvIGRlIHJlc3VsdGFkb3MgYSBtb3N0cmFyIG8gY2FtYmlhIGRlIHDDoWdpbmEgKi9cclxuICBwYWdpbmF0ZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyhcIlBhZ2UgY2hhbmdlZCB0b1wiLCBldmVudC5wYWdlKTtcclxuICAgIGlmIChldmVudC5yb3dzICE9PSB0aGlzLml0ZW1zUGVyUGFnZSkge1xyXG4gICAgICAvLyBoYW4gY2FtYmlhZG8gZWwgbsO6bWVybyBkZSBlbGVtZW50b3MgcG9yIHDDoWdpbmFcclxuICAgICAgLy9ub3RpZmljYW1vcyBxdWUgbG9zIGVsZW1lbnRvcyBwb3IgcMOhZ2luYSBoYW4gY2FtYmlhZG9cclxuICAgICAgdGhpcy5vbk5ld1BhZ2VTaXplLmVtaXQoZXZlbnQucm93cyk7XHJcbiAgICAgIHRoaXMuaXRlbXNQZXJQYWdlID0gZXZlbnQucm93cztcclxuICAgICAgaWYgKHRoaXMucGMpIHtcclxuICAgICAgICAvL3ZvbHZlbW9zIGEgbGEgcHJpbWVyYSBww6FnaW5hXHJcbiAgICAgICAgdGhpcy5wYy5fZmlyc3QgPSAxO1xyXG4gICAgICAgIHRoaXMucGMudXBkYXRlUGFnZUxpbmtzKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jYWxjdWxhdGVQYWdlTGlua1NpemUoKTsgLy8gcmVjYWxjdWxhbW9zIGVsIG7Dum1lcm8gZGUgZW5sYWNlcyBkZSBww6FnaW5hXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBub3RpZmljYW1vcyBhIG51ZXN0cm8gcGFww6EgcXVlIGxhIHDDoWdpbmEgaGEgY2FtYmlhZG9cclxuICAgICAgdGhpcy5vblBhZ2VDaGFuZ2UuZW1pdChldmVudC5wYWdlICsgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTdHlsZSgpIHtcclxuICAgIGlmICh0aGlzLmZpeGVkICYmIHRoaXMudHlwZUZvb3RlciA9PT0gQml0Rm9vdGVyQ29tcG9uZW50LlRZUEVfTElTVCB8fCB0aGlzLnR5cGVGb290ZXIgPT09IEJpdEZvb3RlckNvbXBvbmVudC5UWVBFX1NDUk9MTCkge1xyXG4gICAgICBpZiAodGhpcy50b3RhbEl0ZW1zID4gMCkge1xyXG4gICAgICAgIHJldHVybiBcImZvb3RlciBuYXZiYXItZml4ZWQtYm90dG9tXCI7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFwiZm9vdGVyIG5hdmJhci1maXhlZC1ib3R0b20tNjBcIjtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpeGVkICYmIHRoaXMudHlwZUZvb3RlciA9PT0gQml0Rm9vdGVyQ29tcG9uZW50LlRZUEVfRk9STSkge1xyXG4gICAgICByZXR1cm4gXCJmb290ZXIgbmF2YmFyLWZpeGVkLWJvdHRvbS1mb3JtXCI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gXCJmb290ZXJcIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzRm9vdGVyTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLnR5cGVGb290ZXIgPT09IEJpdEZvb3RlckNvbXBvbmVudC5UWVBFX0xJU1Q7XHJcbiAgfVxyXG5cclxuICBpc0Zvb3RlclNjcm9sbCgpIHtcclxuICAgIHJldHVybiB0aGlzLnR5cGVGb290ZXIgPT09IEJpdEZvb3RlckNvbXBvbmVudC5UWVBFX1NDUk9MTDtcclxuICB9XHJcblxyXG4gIGlzRm9vdGVyRm9ybSgpIHtcclxuICAgIHJldHVybiB0aGlzLnR5cGVGb290ZXIgPT09IEJpdEZvb3RlckNvbXBvbmVudC5UWVBFX0ZPUk07XHJcbiAgfVxyXG5cclxuICAvKiogRmxhZzogbGEgcMOhZ2luYSBlc3TDoSByZWFsaXphbmRvIGxhIGLDunNxdWVkYS4gKi9cclxuICBnZXQgc2VhcmNoSW5pdGlhdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBQYWdlU3RhdHVzLkluaXQgfHwgdGhpcy5zdGF0dXMgPT0gUGFnZVN0YXR1cy5SZXNldCB8fCAhdGhpcy5zdGF0dXM7XHJcbiAgfVxyXG5cclxuICAvKiogRmxhZzogbGEgcMOhZ2luYSBlc3TDoSByZWFsaXphbmRvIGxhIGLDunNxdWVkYS4gKi9cclxuICBnZXQgc2VhcmNoaW5nKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBQYWdlU3RhdHVzLlNlYXJjaGluZztcclxuICB9XHJcblxyXG4gIC8qKiBGbGFnOiBsYSBww6FnaW5hIGhhIGZpbmFsaXphZG8gbGEgw7psdGltYSBiw7pzcXVlZGEuICovXHJcbiAgZ2V0IHNlYXJjaEZpbmlzaGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBQYWdlU3RhdHVzLkZpbmlzaFNlYXJjaDtcclxuICB9XHJcblxyXG4gIC8qKiBGbGFnOiBsYSBww6FnaW5hIGVzdMOhIGVuIG1vZG8gc29sbyBsZWN0dXJhICovXHJcbiAgZ2V0IHJlYWRPbmx5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09IFBhZ2VTdGF0dXMuUmVhZE9ubHk7XHJcbiAgfVxyXG5cclxuICAvKiogRmxhZzogbGEgcMOhZ2luYSBoYSBmaW5hbGl6YWRvIGNvbiBlcnJvciAqL1xyXG4gIGdldCBlcnJvcigpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PSBQYWdlU3RhdHVzLkVycm9yO1xyXG4gIH1cclxuXHJcbiAgLyoqIEZsYWc6IGVuY29udHJhZG8gcmVzdWx0YWRvLiAqL1xyXG4gIGdldCBmb3VuZFJlc3VsdCgpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuc3RhdHVzID09PSBQYWdlU3RhdHVzLkZpbmlzaFNlYXJjaCAmJlxyXG4gICAgICAoKHRoaXMudHlwZUZvb3RlciA9PT0gQml0Rm9vdGVyQ29tcG9uZW50LlRZUEVfTElTVCAmJiB0aGlzLnRvdGFsSXRlbXMgPiAwKVxyXG4gICAgICAgIHx8IHRoaXMudHlwZUZvb3RlciA9PT0gQml0Rm9vdGVyQ29tcG9uZW50LlRZUEVfRk9STVxyXG4gICAgICAgIHx8ICh0aGlzLnR5cGVGb290ZXIgPT09IEJpdEZvb3RlckNvbXBvbmVudC5UWVBFX1NDUk9MTCAmJiB0aGlzLnRvdGFsSXRlbXMgPD0gdGhpcy5tYXhDdXJyZW50SXRlbXMpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKiBGbGFnOiBoYXkgbcOhcyByZXN1bHRhZG9zIChzY3JvbGwpLiAqL1xyXG4gIGdldCBtb3JlUmVzdWx0cygpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuc3RhdHVzID09PSBQYWdlU3RhdHVzLkZpbmlzaFNlYXJjaCAmJlxyXG4gICAgICAodGhpcy50eXBlRm9vdGVyID09PSBCaXRGb290ZXJDb21wb25lbnQuVFlQRV9TQ1JPTEwgJiYgdGhpcy50b3RhbEl0ZW1zID4gdGhpcy5tYXhDdXJyZW50SXRlbXMpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqIEZsYWc6IG5vIGhheSByZXN1bHRhZG9zLiAqL1xyXG4gIGdldCBlbXB0eVJlc3VsdCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gUGFnZVN0YXR1cy5GaW5pc2hTZWFyY2ggJiYgdGhpcy50b3RhbEl0ZW1zID09PSAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGluaXRNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNlbGVjdFRyYW5zbGF0ZSh0aGlzLm1lc3NhZ2VzLmdldChQYWdlU3RhdHVzLkluaXQpKTtcclxuICB9XHJcblxyXG4gIGdldCBzZWFyY2hpbmdNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNlbGVjdFRyYW5zbGF0ZSh0aGlzLm1lc3NhZ2VzLmdldChQYWdlU3RhdHVzLlNlYXJjaGluZykpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpbmlzaE1lc3NhZ2UoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc2VsZWN0VHJhbnNsYXRlKHRoaXMubWVzc2FnZXMuZ2V0KFBhZ2VTdGF0dXMuRmluaXNoU2VhcmNoKSk7XHJcbiAgfVxyXG5cclxuICBnZXQgbW9yZVJlc3VsdHNNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNlbGVjdFRyYW5zbGF0ZSh0aGlzLm1lc3NhZ2VzLmdldChCaXRGb290ZXJDb21wb25lbnQuTU9SRV9SRVNVTFRTKSk7XHJcbiAgfVxyXG5cclxuICBnZXQgZW1wdHlNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNlbGVjdFRyYW5zbGF0ZSh0aGlzLm1lc3NhZ2VzLmdldChQYWdlU3RhdHVzLkVtcHR5UmVzdWx0KSk7XHJcbiAgfVxyXG5cclxuICBnZXQgcmVhZE9ubHlNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNlbGVjdFRyYW5zbGF0ZSh0aGlzLm1lc3NhZ2VzLmdldChQYWdlU3RhdHVzLlJlYWRPbmx5KSk7XHJcbiAgfVxyXG5cclxuICBnZXQgZXJyb3JNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNlbGVjdFRyYW5zbGF0ZSh0aGlzLm1lc3NhZ2VzLmdldChQYWdlU3RhdHVzLkVycm9yKSk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb290ZXIgW2NsYXNzXT1cImdldFN0eWxlKClcIj5cclxuICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtMiBsZzpjb2wtMlwiICpuZ0lmPVwidHlwZUZvb3RlciA9PT0gJ2xpc3QnXCIgW2hpZGRlbl09XCIhdGhpcy5zdGF0dXMgfHwgZW1wdHlSZXN1bHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm51bWVyby1yZXN1bHRhZG9zXCI+XHJcbiAgICAgICAgPGxhYmVsPnt7XCJiaXRuZ2xpYnJhcnkuZm9vdGVyLnJlc3VsdHNcIiB8IHRyYW5zbG9jb319PC9sYWJlbD5cclxuICAgICAgICA8c3Bhbj57e3RvdGFsSXRlbXN9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWQ6Y29sLTIgbGc6Y29sLTJcIiAqbmdJZj1cInR5cGVGb290ZXIgPT09ICdzY3JvbGwnXCIgW2hpZGRlbl09XCIhdGhpcy5zdGF0dXMgfHwgZW1wdHlSZXN1bHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm51bWVyby1yZXN1bHRhZG9zLXNjcm9sbFwiPlxyXG4gICAgICAgIDxsYWJlbD57e1wiYml0bmdsaWJyYXJ5LmZvb3Rlci5yZXN1bHRzXCIgfCB0cmFuc2xvY299fTwvbGFiZWw+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJtYXhDdXJyZW50SXRlbXMgPj0gdG90YWxJdGVtc1wiPnt7dG90YWxJdGVtc319PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwibWF4Q3VycmVudEl0ZW1zIDwgdG90YWxJdGVtc1wiPnt7bWF4Q3VycmVudEl0ZW1zfX0gLyB7e3RvdGFsSXRlbXN9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC03IGxnOmNvbC03IHAtdGV4dC1jZW50ZXJcIiAqbmdJZj1cInR5cGVGb290ZXIgPT09ICdsaXN0J1wiXHJcbiAgICAgICAgIFtoaWRkZW5dPVwiIXRoaXMuc3RhdHVzIHx8IGVtcHR5UmVzdWx0XCI+XHJcbiAgICAgIDxwLXBhZ2luYXRvciAqbmdJZj1cInBhZ2luYXRvclwiICNwY1xyXG4gICAgICAgICAgICAgICAgICAgW3Jvd3NdPVwiaXRlbXNQZXJQYWdlXCJcclxuICAgICAgICAgICAgICAgICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxJdGVtc1wiXHJcbiAgICAgICAgICAgICAgICAgICBbcGFnZUxpbmtTaXplXT1cIm1vc3RyYXJFbmxhY2VzUGFnaW5hcyA/IHBhZ2VMaW5rU2l6ZSA6IDFcIlxyXG4gICAgICAgICAgICAgICAgICAgW3Jvd3NQZXJQYWdlT3B0aW9uc109XCJbYmFzZUl0ZW1zUGVyUGFnZSxiYXNlSXRlbXNQZXJQYWdlKjUsYmFzZUl0ZW1zUGVyUGFnZSoyNSxiYXNlSXRlbXNQZXJQYWdlKjUwXVwiXHJcbiAgICAgICAgICAgICAgICAgICBbc2hvd1BhZ2VMaW5rc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgIFtzaG93SnVtcFRvUGFnZURyb3Bkb3duXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgIFtzaG93Rmlyc3RMYXN0SWNvbl09XCJtb3N0cmFyUHJpbWVyYVVsdGltYVBhZ2luYSA/IHRydWUgOiBtYXhDdXJyZW50SXRlbXMgPj0gdG90YWxJdGVtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAob25QYWdlQ2hhbmdlKT1cInBhZ2luYXRlKCRldmVudClcIj48L3AtcGFnaW5hdG9yPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC0zIGxnOmNvbC0zXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hJbml0aWF0ZWRcIlxyXG4gICAgICAgICAgIFtjbGFzc05hbWVdPVwidHlwZUZvb3RlciA9PT0gJ3Njcm9sbCcgPyAnbWVuc2FqZS1zY3JvbGwgbWVuc2FqZS1pbmZvJyA6ICdtZW5zYWplIG1lbnNhamUtaW5mbydcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWluZm9cIj48L2k+XHJcbiAgICAgICAgPHNwYW4+e3tpbml0TWVzc2FnZSB8IGFzeW5jfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cInNlYXJjaGluZ1wiXHJcbiAgICAgICAgICAgW2NsYXNzTmFtZV09XCJ0eXBlRm9vdGVyID09PSAnc2Nyb2xsJyA/ICdtZW5zYWplLXNjcm9sbCBtZW5zYWplLWluZm8nIDogJ21lbnNhamUgbWVuc2FqZS1pbmZvJ1wiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtaW5mb1wiPjwvaT5cclxuICAgICAgICA8c3Bhbj57e3NlYXJjaGluZ01lc3NhZ2UgfCBhc3luY319PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgKm5nSWY9XCJyZWFkT25seVwiXHJcbiAgICAgICAgICAgW2NsYXNzTmFtZV09XCJ0eXBlRm9vdGVyID09PSAnc2Nyb2xsJyA/ICdtZW5zYWplLXNjcm9sbCBtZW5zYWplLWluZm8nIDogJ21lbnNhamUgbWVuc2FqZS1pbmZvJ1wiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtaW5mb1wiPjwvaT5cclxuICAgICAgICA8c3Bhbj57e3JlYWRPbmx5TWVzc2FnZSB8IGFzeW5jfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cImZvdW5kUmVzdWx0XCJcclxuICAgICAgICAgICBbY2xhc3NOYW1lXT1cInR5cGVGb290ZXIgPT09ICdzY3JvbGwnID8gJ21lbnNhamUtc2Nyb2xsIG1lbnNhamUtaW5mbycgOiAnbWVuc2FqZSBtZW5zYWplLWluZm8nXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1pbmZvXCI+PC9pPlxyXG4gICAgICAgIDxzcGFuPnt7ZmluaXNoTWVzc2FnZSB8IGFzeW5jfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cIm1vcmVSZXN1bHRzXCJcclxuICAgICAgICAgICBbY2xhc3NOYW1lXT1cInR5cGVGb290ZXIgPT09ICdzY3JvbGwnID8gJ21lbnNhamUtc2Nyb2xsIG1lbnNhamUtaW5mbycgOiAnbWVuc2FqZSBtZW5zYWplLWluZm8nXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1pbmZvXCI+PC9pPlxyXG4gICAgICAgIDxzcGFuPnt7bW9yZVJlc3VsdHNNZXNzYWdlIHwgYXN5bmN9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiZW1wdHlSZXN1bHRcIlxyXG4gICAgICAgICAgIFtjbGFzc05hbWVdPVwidHlwZUZvb3RlciA9PT0gJ3Njcm9sbCcgPyAnbWVuc2FqZS1zY3JvbGwgbWVuc2FqZS1pbmZvJyA6ICdtZW5zYWplIG1lbnNhamUtaW5mbydcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWV4Y2xhbWF0aW9uXCI+PC9pPlxyXG4gICAgICAgIDxzcGFuPnt7ZW1wdHlNZXNzYWdlIHwgYXN5bmN9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JcIlxyXG4gICAgICAgICAgIFtjbGFzc05hbWVdPVwidHlwZUZvb3RlciA9PT0gJ3Njcm9sbCcgPyAnbWVuc2FqZS1zY3JvbGwgbWVuc2FqZS1pbmZvJyA6ICdtZW5zYWplIG1lbnNhamUtaW5mbydcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXCI+PC9pPlxyXG4gICAgICAgIDxzcGFuPnt7ZXJyb3JNZXNzYWdlIHwgYXN5bmN9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8Yml0LWhlbHA+PC9iaXQtaGVscD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Zvb3Rlcj5cclxuIl19
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0LWZvb3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iaXQtbmctbGlicmFyeS9zcmMvbGliL3NoYXJlZGxpYnJhcnkvY29tcG9uZW50cy9mb290ZXIvYml0LWZvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iaXQtbmctbGlicmFyeS9zcmMvbGliL3NoYXJlZGxpYnJhcnkvY29tcG9uZW50cy9mb290ZXIvYml0LWZvb3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztBQUlwRDs7SUFFSTtBQU1KLE1BQU0sT0FBTyxrQkFBa0I7SUF5QzdCLFlBQW9CLGdCQUFrQyxFQUNsQyxTQUE0QjtRQUQ1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBekJoRCxrQkFBYSxHQUFZLElBQUksQ0FBQztRQUU5QixVQUFLLEdBQVksSUFBSSxDQUFDLENBQUMsbUVBQW1FO1FBUTFGLDBCQUFxQixHQUFZLElBQUksQ0FBQztRQUV0QywrQkFBMEIsR0FBWSxJQUFJLENBQUM7UUFFM0MsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDLENBQUMsK0NBQStDO1FBRTFGLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQyxDQUFDLDhEQUE4RDtRQUUxRyxxQkFBZ0IsR0FBVyxVQUFVLENBQUMsZUFBZSxDQUFD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QVM7c0JBRFIsS0FBSztnQkFHTixhQUFhO3NCQURaLEtBQUs7Z0JBR04sS0FBSztzQkFESixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixNQUFNO3NCQURMLEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxLQUFLO3VCQUFDLE1BQU07Z0JBR2IscUJBQXFCO3NCQURwQixLQUFLO2dCQUdOLDBCQUEwQjtzQkFEekIsS0FBSztnQkFHTixZQUFZO3NCQURYLE1BQU07Z0JBR1AsYUFBYTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZSxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1BhZ2luYXRvcn0gZnJvbSBcInByaW1lbmcvcGFnaW5hdG9yXCI7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQkFTRV9SRVNVTFRBRE9TX1BBR0UsIEJhc2VGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi9iYXNlL3NoYXJlZC9iYXNlLmZpbHRlcic7XHJcbmltcG9ydCB7IFBhZ2VTdGF0dXMgfSBmcm9tICcuLi8uLi9nbG9iYWwuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuXHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBxdWUgbXVlc3RyYSB1biBwYWdpbmFkb3IgZW4gbGEgc2VjY2nDs24gZm9vdGVyLlxyXG4gKiovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImJpdC1mb290ZXJcIixcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICB0ZW1wbGF0ZVVybDogXCJiaXQtZm9vdGVyLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEJpdEZvb3RlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBwdWJsaWMgc3RhdGljIFRZUEVfTElTVDogc3RyaW5nID0gXCJsaXN0XCI7XHJcbiAgcHVibGljIHN0YXRpYyBUWVBFX1NDUk9MTDogc3RyaW5nID0gXCJzY3JvbGxcIjtcclxuICBwdWJsaWMgc3RhdGljIFRZUEVfRk9STTogc3RyaW5nID0gXCJmb3JtXCI7XHJcbiAgcHVibGljIHN0YXRpYyBUWVBFX0JMQU5LOiBzdHJpbmcgPSBcImJsYW5rXCI7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgTU9SRV9SRVNVTFRTID0gLTE7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJwY1wiKVxyXG4gIHBjOiBQYWdpbmF0b3I7XHJcbiAgQElucHV0KClcclxuICB0b3RhbEl0ZW1zOiBudW1iZXI7ICAgICAvLyBOw7ptZXJvIHRvdGFsIGRlIGVsZW1lbnRvcyByZWN1cGVyYWRvcyBkZSBsYSBjb25zdWx0YVxyXG4gIEBJbnB1dCgpXHJcbiAgZmlsdGVyOiBCYXNlRmlsdGVyO1xyXG4gIEBJbnB1dCgpXHJcbiAgcGFnaW5hdG9yOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgbW9zdHJhckF2aXNvczogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBmaXhlZDogYm9vbGVhbiA9IHRydWU7IC8vIEluZGljYXLDoSBzaSBsbyBxdWVyZW1vcyBmaWpvIGFiYWpvIGVuIGxhIHDDoWdpbmEuIFBvciBkZWZlY3RvIHPDrS5cclxuICBASW5wdXQoKVxyXG4gIG1lc3NhZ2VzOiBNYXA8UGFnZVN0YXR1cywgc3RyaW5nPjtcclxuICBASW5wdXQoKVxyXG4gIHN0YXR1czogUGFnZVN0YXR1czsgLy8gRGV0ZXJtaW5hIGVuIHF1w6kgZXN0YWRvIGVzdMOhIGxhIHDDoWdpbmE6IFBhZ2VTdGF0dXMuSW5pdCwgUGFnZVN0YXR1cy5TRUFSQ0hJTkcsIFBhZ2VTdGF0dXMuRklOSVNIX1NFQVJDSFxyXG4gIEBJbnB1dChcInR5cGVcIilcclxuICB0eXBlRm9vdGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBtb3N0cmFyRW5sYWNlc1BhZ2luYXM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgbW9zdHJhclByaW1lcmFVbHRpbWFQYWdpbmE6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uUGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpOyAvL3BhcmEgbm90aWZpY2FyIGNhbWJpb3MgZW4gbGEgcMOhZ2luYSBhIG1vc3RyYXJcclxuICBAT3V0cHV0KClcclxuICBvbk5ld1BhZ2VTaXplID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7IC8vcGFyYSBub3RpZmljYXIgY2FtYmlvcyBlbiBsb3MgZWxlbWVudG9zIGEgbW9zdHJhciBwb3IgcMOhZ2luYVxyXG5cclxuICBiYXNlSXRlbXNQZXJQYWdlOiBudW1iZXIgPSBCYXNlRmlsdGVyLlJFU1VMVEFET1NfUEFHRTsgLy8gZ3VhcmRhbW9zIGVsIG7Dum1lcm8gZGUgcmVzdWx0YWRvcyBwcmUtY29uZmlndXJhZG9zIHBvciBww6FnaW5hIHBhcmEgbW9zdHJhciBsYSBsaXN0YSBkZSB4LCB4KzEwIHkgeCsyMFxyXG4gIHBhZ2VMaW5rU2l6ZTogbnVtYmVyOyAvLyBuw7ptZXJvIGRlIGVubGFjZXMgZW4gZWwgcGFnaW5hZG9yIHBhcmEgcG9kZXIgbmF2ZWdhciBoYWNpYSBkZWxhbnRlIG8gZGV0csOhc1xyXG4gIGl0ZW1zUGVyUGFnZTogbnVtYmVyID0gQmFzZUZpbHRlci5SRVNVTFRBRE9TX1BBR0U7IC8vIG7Dum1lcm8gZGUgZWxlbWVudG9zIHBvciBww6FnaW5hIHF1ZSBtb3N0cmFtb3NcclxuXHJcbiAgbWF4Q3VycmVudEl0ZW1zOiBudW1iZXIgPSAtMTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgY2hhbmdlUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50eXBlRm9vdGVyID09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnR5cGVGb290ZXIgPSBcImxpc3RcIjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnBhZ2luYXRvciA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5wYWdpbmF0b3IgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vbWVuc2FqZXMgcG9yIGRlZmVjdG8gc2kgbm8gdmllbmVuIGRlZmluaWRvc1xyXG4gICAgaWYgKHRoaXMubWVzc2FnZXMgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuc2V0TWVzc2FnZXMoKTtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5zZXQoUGFnZVN0YXR1cy5FcnJvciwgXCJiaXRuZ2xpYnJhcnkuZm9vdGVyLmVycm9yXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRNZXNzYWdlcygpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiZGVmaW5pbW9zIGxvcyBtZW5zYWplcyBkZWwgZm9vdGVyIGRlIG1hbmVyYSBlc3TDoW5kYXJcIik7XHJcbiAgICB0aGlzLm1lc3NhZ2VzID0gbmV3IE1hcDxQYWdlU3RhdHVzLCBzdHJpbmc+KCk7XHJcbiAgICBpZiAodGhpcy5pc0Zvb3Rlckxpc3QoKSB8fCB0aGlzLmlzRm9vdGVyU2Nyb2xsKCkpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5zZXQoUGFnZVN0YXR1cy5Jbml0LCBcImJpdG5nbGlicmFyeS5mb290ZXIubGlzdC5pbml0XCIpO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLnNldChQYWdlU3RhdHVzLlNlYXJjaGluZywgXCJiaXRuZ2xpYnJhcnkuZm9vdGVyLmxpc3Quc2VhcmNoaW5nXCIpO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLnNldChQYWdlU3RhdHVzLkVtcHR5UmVzdWx0LCBcImJpdG5nbGlicmFyeS5mb290ZXIubGlzdC5lbXB0eXJlc3VsdFwiKTtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5zZXQoUGFnZVN0YXR1cy5GaW5pc2hTZWFyY2gsIFwiYml0bmdsaWJyYXJ5LmZvb3Rlci5saXN0LmZpbmlzaHNlYXJjaFwiKTtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5zZXQoQml0Rm9vdGVyQ29tcG9uZW50Lk1PUkVfUkVTVUxUUywgXCJiaXRuZ2xpYnJhcnkuZm9vdGVyLmxpc3QubW9yZXJlc3VsdHNcIilcclxuICAgIH0gZWxzZSBpZiAodGhpcy5pc0Zvb3RlckZvcm0oKSkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLnNldChQYWdlU3RhdHVzLkluaXQsIFwiYml0bmdsaWJyYXJ5LmZvb3Rlci5mb3JtLmluaXRcIik7XHJcbiAgICAgIHRoaXMubWVzc2FnZXMuc2V0KFBhZ2VTdGF0dXMuU2VhcmNoaW5nLCBcImJpdG5nbGlicmFyeS5mb290ZXIuZm9ybS5zZWFyY2hpbmdcIik7XHJcbiAgICAgIHRoaXMubWVzc2FnZXMuc2V0KFBhZ2VTdGF0dXMuRmluaXNoU2VhcmNoLCBcImJpdG5nbGlicmFyeS5mb290ZXIuZm9ybS5maW5pc2hzZWFyY2hcIik7XHJcbiAgICAgIHRoaXMubWVzc2FnZXMuc2V0KFBhZ2VTdGF0dXMuUmVhZE9ubHksIFwiYml0bmdsaWJyYXJ5LmZvb3Rlci5saXN0LnJlYWRvbmx5XCIpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGVGb290ZXIgPT09IEJpdEZvb3RlckNvbXBvbmVudC5UWVBFX0JMQU5LKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwidGhlIGZvb3RlciBpcyBCTEFOSyFcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDdWFuZG8gdGVuZ2Ftb3MgbGEgcmVmZXJlbmNpYSBhbCBjb21wb25lbnRlIHBhZ2luYXRvciBhY3R1YWxpemFtb3MgaW50ZXJuYW1lbnRlIGVsIG7Dum1lcm8gZGUgcMOhZ2luYSB5IGVsIG7Dum1lcm8gZGUgcMOhZ2luYXNcclxuICAgKiBkZWwgZGVzcGxlZ2FibGUgY29uIGxhIGluZm9ybWFjacOzbiBkZWwgZmlsdHJvIHByb3BvcmNpb25hZG9cclxuICAgKi9cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5wYykge1xyXG4gICAgICB0aGlzLml0ZW1zUGVyUGFnZSA9IHRoaXMuZmlsdGVyLnJlc3VsdGFkb3M7XHJcbiAgICAgIGNvbnNvbGUubG9nKGB0aGlzLmZpbHRlci5yZXN1bHRhZG9zICR7dGhpcy5maWx0ZXIucmVzdWx0YWRvc31gKTtcclxuICAgICAgY29uc29sZS5sb2coYHRoaXMuZmlsdGVyLnBhZ2luYSAke3RoaXMuZmlsdGVyLnBhZ2luYX1gKTtcclxuICAgICAgdGhpcy5wYy5yb3dzID0gdGhpcy5maWx0ZXIucmVzdWx0YWRvcztcclxuICAgICAgdGhpcy5wYy5fZmlyc3QgPSAodGhpcy5maWx0ZXIucGFnaW5hIC0gMSkgKiB0aGlzLnBjLnJvd3M7XHJcbiAgICAgIHRoaXMucGMudXBkYXRlUGFnZUxpbmtzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFc2N1Y2hhcmVtb3MgYSBjYW1iaW9zIGVuIGxhcyBwcm9waWVkYWRlcyB0b3RhbEl0ZW1zIHBhcmEgYWN0dWFsaXphciBlbCBwYWdpbmFkb3IgY29uIHJlc3BlY3RvIGEgbGFzIHDDoWdpbmFzIHF1ZSBtb3N0cmFtb3NcclxuICAgKi9cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiB7IFtwcm9wS2V5OiBzdHJpbmddOiBTaW1wbGVDaGFuZ2UgfSkge1xyXG4gICAgZm9yIChsZXQgcHJvcE5hbWUgaW4gY2hhbmdlcykge1xyXG4gICAgICBsZXQgY2hhbmdlZFByb3AgPSBjaGFuZ2VzW3Byb3BOYW1lXTtcclxuICAgICAgaWYgKHByb3BOYW1lID09PSBcInRvdGFsSXRlbXNcIikge1xyXG4gICAgICAgIHRoaXMudG90YWxJdGVtcyA9IGNoYW5nZWRQcm9wLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICBjb25zb2xlLmxvZyhgbmV3IHRvdGFsSXRlbXMgJHt0aGlzLnRvdGFsSXRlbXN9YCk7XHJcbiAgICAgICAgaWYgKGNoYW5nZWRQcm9wLnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZWRQcm9wLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgICAgdGhpcy5jYWxjdWxhdGVQYWdlTGlua1NpemUoKTsgICAgIC8vcmVjYWxjdWxhbW9zXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubWF4Q3VycmVudEl0ZW1zID0gdGhpcy5maWx0ZXIgPyB0aGlzLmZpbHRlci5wYWdpbmEgKiB0aGlzLmZpbHRlci5yZXN1bHRhZG9zIDogLTE7XHJcbiAgICAgIH0gZWxzZSBpZiAocHJvcE5hbWUgPT09IFwiZmlsdGVyXCIpIHtcclxuICAgICAgICB0aGlzLmZpbHRlciA9IGNoYW5nZWRQcm9wLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICBpZiAodGhpcy5maWx0ZXI/LnBhZ2luYSAqIHRoaXMuZmlsdGVyPy5yZXN1bHRhZG9zID4gdGhpcy5tYXhDdXJyZW50SXRlbXMpIHtcclxuICAgICAgICAgIHRoaXMubWF4Q3VycmVudEl0ZW1zID0gdGhpcy5maWx0ZXI/LnBhZ2luYSAqIHRoaXMuZmlsdGVyPy5yZXN1bHRhZG9zO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zb2xlLmxvZyhgbmV3IGZpbHRlciAke3RoaXMuZmlsdGVyPy5wYWdpbmF9IC0gJHt0aGlzLm1heEN1cnJlbnRJdGVtc31gKTtcclxuICAgICAgICBpZiAoY2hhbmdlZFByb3AucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlZFByb3AuY3VycmVudFZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVBhZ2VMaW5rU2l6ZSgpOyAgICAgLy9yZWNhbGN1bGFtb3NcclxuICAgICAgICAgIGlmICghdGhpcy5maWx0ZXI/LnBhZ2luYSB8fCB0aGlzLmZpbHRlci5wYWdpbmEgPD0gMSkge1xyXG4gICAgICAgICAgICB0aGlzLmdvVG9GaXJzdFBhZ2UoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnBjICYmIHRoaXMuY2hhbmdlUmVmKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCd1cGRhdGVQYWdlTGlua3MnKTtcclxuICAgICAgdGhpcy5wYy51cGRhdGVQYWdlTGlua3MoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIENhbGN1bGEgZWwgbsO6bWVybyBkZSBlbmxhY2VzIHZpc2libGVzIGVuIGVsIHBhZ2luYWRvciAoZW4gZWwgcmFuZ28gZW50cmUgMSB5IEJBU0VfUkVTVUxUQURPU19QQUdFKS4gKi9cclxuICBjYWxjdWxhdGVQYWdlTGlua1NpemUoKSB7XHJcbiAgICBjb25zb2xlLmxvZyhgY2FsY3VsYXRlUGFnZUxpbmtTaXplIHRvdGFsSXRlbXM6ICR7dGhpcy50b3RhbEl0ZW1zfSBpdGVtc1BlclBhZ2U6JHt0aGlzLml0ZW1zUGVyUGFnZX1gKTtcclxuICAgIHRoaXMucGFnZUxpbmtTaXplID0gTWF0aC5jZWlsKHRoaXMudG90YWxJdGVtcyAvIHRoaXMuaXRlbXNQZXJQYWdlKTtcclxuICAgIGlmICh0aGlzLnBhZ2VMaW5rU2l6ZSA8IDEpIHtcclxuICAgICAgdGhpcy5wYWdlTGlua1NpemUgPSAxO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucGFnZUxpbmtTaXplID4gQkFTRV9SRVNVTFRBRE9TX1BBR0UpIHtcclxuICAgICAgdGhpcy5wYWdlTGlua1NpemUgPSBCQVNFX1JFU1VMVEFET1NfUEFHRTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBFc3RhYmxlY2UgZWwgbsO6bWVybyBkZSBww6FnaW5hIGVuIGxhIHZpc3VhbGl6YWNpw7NuIGRlIHJlc3VsdGFkb3MuIFNlIGludm9jYSBjdWFuZG8gZWwgdXN1YXJpbyBjYW1iaWEgZWwgbsO6bWVybyBkZSByZXN1bHRhZG9zIGEgbW9zdHJhciBvIGNhbWJpYSBkZSBww6FnaW5hICovXHJcbiAgcGFnaW5hdGUoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJQYWdlIGNoYW5nZWQgdG9cIiwgZXZlbnQucGFnZSk7XHJcbiAgICBpZiAoZXZlbnQucm93cyAhPT0gdGhpcy5pdGVtc1BlclBhZ2UpIHtcclxuICAgICAgLy8gaGFuIGNhbWJpYWRvIGVsIG7Dum1lcm8gZGUgZWxlbWVudG9zIHBvciBww6FnaW5hXHJcbiAgICAgIC8vbm90aWZpY2Ftb3MgcXVlIGxvcyBlbGVtZW50b3MgcG9yIHDDoWdpbmEgaGFuIGNhbWJpYWRvXHJcbiAgICAgIHRoaXMub25OZXdQYWdlU2l6ZS5lbWl0KGV2ZW50LnJvd3MpO1xyXG4gICAgICB0aGlzLml0ZW1zUGVyUGFnZSA9IGV2ZW50LnJvd3M7XHJcbiAgICAgIHRoaXMuZ29Ub0ZpcnN0UGFnZSgpO1xyXG4gICAgICB0aGlzLmNhbGN1bGF0ZVBhZ2VMaW5rU2l6ZSgpOyAvLyByZWNhbGN1bGFtb3MgZWwgbsO6bWVybyBkZSBlbmxhY2VzIGRlIHDDoWdpbmFcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIG5vdGlmaWNhbW9zIGEgbnVlc3RybyBwYXDDoSBxdWUgbGEgcMOhZ2luYSBoYSBjYW1iaWFkb1xyXG4gICAgICB0aGlzLm9uUGFnZUNoYW5nZS5lbWl0KGV2ZW50LnBhZ2UgKyAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ29Ub0ZpcnN0UGFnZSgpIHtcclxuICAgIGlmICh0aGlzLnBjKSB7XHJcbiAgICAgIC8vdm9sdmVtb3MgYSBsYSBwcmltZXJhIHDDoWdpbmFcclxuICAgICAgdGhpcy5wYy5fZmlyc3QgPSAxO1xyXG4gICAgICB0aGlzLnBjLnVwZGF0ZVBhZ2VMaW5rcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U3R5bGUoKSB7XHJcbiAgICBpZiAodGhpcy5maXhlZCAmJiB0aGlzLnR5cGVGb290ZXIgPT09IEJpdEZvb3RlckNvbXBvbmVudC5UWVBFX0xJU1QgfHwgdGhpcy50eXBlRm9vdGVyID09PSBCaXRGb290ZXJDb21wb25lbnQuVFlQRV9TQ1JPTEwpIHtcclxuICAgICAgaWYgKHRoaXMudG90YWxJdGVtcyA+IDApIHtcclxuICAgICAgICByZXR1cm4gXCJmb290ZXIgbmF2YmFyLWZpeGVkLWJvdHRvbVwiO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBcImZvb3RlciBuYXZiYXItZml4ZWQtYm90dG9tLTYwXCI7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5maXhlZCAmJiB0aGlzLnR5cGVGb290ZXIgPT09IEJpdEZvb3RlckNvbXBvbmVudC5UWVBFX0ZPUk0pIHtcclxuICAgICAgcmV0dXJuIFwiZm9vdGVyIG5hdmJhci1maXhlZC1ib3R0b20tZm9ybVwiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFwiZm9vdGVyXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0Zvb3Rlckxpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50eXBlRm9vdGVyID09PSBCaXRGb290ZXJDb21wb25lbnQuVFlQRV9MSVNUO1xyXG4gIH1cclxuXHJcbiAgaXNGb290ZXJTY3JvbGwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50eXBlRm9vdGVyID09PSBCaXRGb290ZXJDb21wb25lbnQuVFlQRV9TQ1JPTEw7XHJcbiAgfVxyXG5cclxuICBpc0Zvb3RlckZvcm0oKSB7XHJcbiAgICByZXR1cm4gdGhpcy50eXBlRm9vdGVyID09PSBCaXRGb290ZXJDb21wb25lbnQuVFlQRV9GT1JNO1xyXG4gIH1cclxuXHJcbiAgLyoqIEZsYWc6IGxhIHDDoWdpbmEgZXN0w6EgcmVhbGl6YW5kbyBsYSBiw7pzcXVlZGEuICovXHJcbiAgZ2V0IHNlYXJjaEluaXRpYXRlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gUGFnZVN0YXR1cy5Jbml0IHx8IHRoaXMuc3RhdHVzID09IFBhZ2VTdGF0dXMuUmVzZXQgfHwgIXRoaXMuc3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgLyoqIEZsYWc6IGxhIHDDoWdpbmEgZXN0w6EgcmVhbGl6YW5kbyBsYSBiw7pzcXVlZGEuICovXHJcbiAgZ2V0IHNlYXJjaGluZygpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gUGFnZVN0YXR1cy5TZWFyY2hpbmc7XHJcbiAgfVxyXG5cclxuICAvKiogRmxhZzogbGEgcMOhZ2luYSBoYSBmaW5hbGl6YWRvIGxhIMO6bHRpbWEgYsO6c3F1ZWRhLiAqL1xyXG4gIGdldCBzZWFyY2hGaW5pc2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gUGFnZVN0YXR1cy5GaW5pc2hTZWFyY2g7XHJcbiAgfVxyXG5cclxuICAvKiogRmxhZzogbGEgcMOhZ2luYSBlc3TDoSBlbiBtb2RvIHNvbG8gbGVjdHVyYSAqL1xyXG4gIGdldCByZWFkT25seSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PSBQYWdlU3RhdHVzLlJlYWRPbmx5O1xyXG4gIH1cclxuXHJcbiAgLyoqIEZsYWc6IGxhIHDDoWdpbmEgaGEgZmluYWxpemFkbyBjb24gZXJyb3IgKi9cclxuICBnZXQgZXJyb3IoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT0gUGFnZVN0YXR1cy5FcnJvcjtcclxuICB9XHJcblxyXG4gIC8qKiBGbGFnOiBlbmNvbnRyYWRvIHJlc3VsdGFkby4gKi9cclxuICBnZXQgZm91bmRSZXN1bHQoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnN0YXR1cyA9PT0gUGFnZVN0YXR1cy5GaW5pc2hTZWFyY2ggJiZcclxuICAgICAgKCh0aGlzLnR5cGVGb290ZXIgPT09IEJpdEZvb3RlckNvbXBvbmVudC5UWVBFX0xJU1QgJiYgdGhpcy50b3RhbEl0ZW1zID4gMClcclxuICAgICAgICB8fCB0aGlzLnR5cGVGb290ZXIgPT09IEJpdEZvb3RlckNvbXBvbmVudC5UWVBFX0ZPUk1cclxuICAgICAgICB8fCAodGhpcy50eXBlRm9vdGVyID09PSBCaXRGb290ZXJDb21wb25lbnQuVFlQRV9TQ1JPTEwgJiYgdGhpcy50b3RhbEl0ZW1zIDw9IHRoaXMubWF4Q3VycmVudEl0ZW1zKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKiogRmxhZzogaGF5IG3DoXMgcmVzdWx0YWRvcyAoc2Nyb2xsKS4gKi9cclxuICBnZXQgbW9yZVJlc3VsdHMoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnN0YXR1cyA9PT0gUGFnZVN0YXR1cy5GaW5pc2hTZWFyY2ggJiZcclxuICAgICAgKHRoaXMudHlwZUZvb3RlciA9PT0gQml0Rm9vdGVyQ29tcG9uZW50LlRZUEVfU0NST0xMICYmIHRoaXMudG90YWxJdGVtcyA+IHRoaXMubWF4Q3VycmVudEl0ZW1zKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKiBGbGFnOiBubyBoYXkgcmVzdWx0YWRvcy4gKi9cclxuICBnZXQgZW1wdHlSZXN1bHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFBhZ2VTdGF0dXMuRmluaXNoU2VhcmNoICYmIHRoaXMudG90YWxJdGVtcyA9PT0gMDtcclxuICB9XHJcblxyXG4gIGdldCBpbml0TWVzc2FnZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZWxlY3RUcmFuc2xhdGUodGhpcy5tZXNzYWdlcy5nZXQoUGFnZVN0YXR1cy5Jbml0KSk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2VhcmNoaW5nTWVzc2FnZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZWxlY3RUcmFuc2xhdGUodGhpcy5tZXNzYWdlcy5nZXQoUGFnZVN0YXR1cy5TZWFyY2hpbmcpKTtcclxuICB9XHJcblxyXG4gIGdldCBmaW5pc2hNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNlbGVjdFRyYW5zbGF0ZSh0aGlzLm1lc3NhZ2VzLmdldChQYWdlU3RhdHVzLkZpbmlzaFNlYXJjaCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1vcmVSZXN1bHRzTWVzc2FnZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZWxlY3RUcmFuc2xhdGUodGhpcy5tZXNzYWdlcy5nZXQoQml0Rm9vdGVyQ29tcG9uZW50Lk1PUkVfUkVTVUxUUykpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcHR5TWVzc2FnZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZWxlY3RUcmFuc2xhdGUodGhpcy5tZXNzYWdlcy5nZXQoUGFnZVN0YXR1cy5FbXB0eVJlc3VsdCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlYWRPbmx5TWVzc2FnZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZWxlY3RUcmFuc2xhdGUodGhpcy5tZXNzYWdlcy5nZXQoUGFnZVN0YXR1cy5SZWFkT25seSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVycm9yTWVzc2FnZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZWxlY3RUcmFuc2xhdGUodGhpcy5tZXNzYWdlcy5nZXQoUGFnZVN0YXR1cy5FcnJvcikpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9vdGVyIFtjbGFzc109XCJnZXRTdHlsZSgpXCI+XHJcbiAgPGRpdiBjbGFzcz1cImdyaWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWQ6Y29sLTIgbGc6Y29sLTJcIiAqbmdJZj1cInR5cGVGb290ZXIgPT09ICdsaXN0J1wiIFtoaWRkZW5dPVwiIXRoaXMuc3RhdHVzIHx8IGVtcHR5UmVzdWx0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJudW1lcm8tcmVzdWx0YWRvc1wiPlxyXG4gICAgICAgIDxsYWJlbD57e1wiYml0bmdsaWJyYXJ5LmZvb3Rlci5yZXN1bHRzXCIgfCB0cmFuc2xvY299fTwvbGFiZWw+XHJcbiAgICAgICAgPHNwYW4+e3t0b3RhbEl0ZW1zfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC0yIGxnOmNvbC0yXCIgKm5nSWY9XCJ0eXBlRm9vdGVyID09PSAnc2Nyb2xsJ1wiIFtoaWRkZW5dPVwiIXRoaXMuc3RhdHVzIHx8IGVtcHR5UmVzdWx0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJudW1lcm8tcmVzdWx0YWRvcy1zY3JvbGxcIj5cclxuICAgICAgICA8bGFiZWw+e3tcImJpdG5nbGlicmFyeS5mb290ZXIucmVzdWx0c1wiIHwgdHJhbnNsb2NvfX08L2xhYmVsPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwibWF4Q3VycmVudEl0ZW1zID49IHRvdGFsSXRlbXNcIj57e3RvdGFsSXRlbXN9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIm1heEN1cnJlbnRJdGVtcyA8IHRvdGFsSXRlbXNcIj57e21heEN1cnJlbnRJdGVtc319IC8ge3t0b3RhbEl0ZW1zfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtNyBsZzpjb2wtNyBwLXRleHQtY2VudGVyXCIgKm5nSWY9XCJ0eXBlRm9vdGVyID09PSAnbGlzdCdcIlxyXG4gICAgICAgICBbaGlkZGVuXT1cIiF0aGlzLnN0YXR1cyB8fCBlbXB0eVJlc3VsdFwiPlxyXG4gICAgICA8cC1wYWdpbmF0b3IgKm5nSWY9XCJwYWdpbmF0b3JcIiAjcGNcclxuICAgICAgICAgICAgICAgICAgIFtyb3dzXT1cIml0ZW1zUGVyUGFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbdG90YWxSZWNvcmRzXT1cInRvdGFsSXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgW3BhZ2VMaW5rU2l6ZV09XCJtb3N0cmFyRW5sYWNlc1BhZ2luYXMgPyBwYWdlTGlua1NpemUgOiAxXCJcclxuICAgICAgICAgICAgICAgICAgIFtyb3dzUGVyUGFnZU9wdGlvbnNdPVwiW2Jhc2VJdGVtc1BlclBhZ2UsYmFzZUl0ZW1zUGVyUGFnZSo1LGJhc2VJdGVtc1BlclBhZ2UqMjUsYmFzZUl0ZW1zUGVyUGFnZSo1MF1cIlxyXG4gICAgICAgICAgICAgICAgICAgW3Nob3dQYWdlTGlua3NdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbc2hvd0p1bXBUb1BhZ2VEcm9wZG93bl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbc2hvd0ZpcnN0TGFzdEljb25dPVwibW9zdHJhclByaW1lcmFVbHRpbWFQYWdpbmEgPyB0cnVlIDogbWF4Q3VycmVudEl0ZW1zID49IHRvdGFsSXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgKG9uUGFnZUNoYW5nZSk9XCJwYWdpbmF0ZSgkZXZlbnQpXCI+PC9wLXBhZ2luYXRvcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtMyBsZzpjb2wtM1wiPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoSW5pdGlhdGVkXCJcclxuICAgICAgICAgICBbY2xhc3NOYW1lXT1cInR5cGVGb290ZXIgPT09ICdzY3JvbGwnID8gJ21lbnNhamUtc2Nyb2xsIG1lbnNhamUtaW5mbycgOiAnbWVuc2FqZSBtZW5zYWplLWluZm8nXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1pbmZvXCI+PC9pPlxyXG4gICAgICAgIDxzcGFuPnt7aW5pdE1lc3NhZ2UgfCBhc3luY319PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hpbmdcIlxyXG4gICAgICAgICAgIFtjbGFzc05hbWVdPVwidHlwZUZvb3RlciA9PT0gJ3Njcm9sbCcgPyAnbWVuc2FqZS1zY3JvbGwgbWVuc2FqZS1pbmZvJyA6ICdtZW5zYWplIG1lbnNhamUtaW5mbydcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWluZm9cIj48L2k+XHJcbiAgICAgICAgPHNwYW4+e3tzZWFyY2hpbmdNZXNzYWdlIHwgYXN5bmN9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwicmVhZE9ubHlcIlxyXG4gICAgICAgICAgIFtjbGFzc05hbWVdPVwidHlwZUZvb3RlciA9PT0gJ3Njcm9sbCcgPyAnbWVuc2FqZS1zY3JvbGwgbWVuc2FqZS1pbmZvJyA6ICdtZW5zYWplIG1lbnNhamUtaW5mbydcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWluZm9cIj48L2k+XHJcbiAgICAgICAgPHNwYW4+e3tyZWFkT25seU1lc3NhZ2UgfCBhc3luY319PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgKm5nSWY9XCJmb3VuZFJlc3VsdFwiXHJcbiAgICAgICAgICAgW2NsYXNzTmFtZV09XCJ0eXBlRm9vdGVyID09PSAnc2Nyb2xsJyA/ICdtZW5zYWplLXNjcm9sbCBtZW5zYWplLWluZm8nIDogJ21lbnNhamUgbWVuc2FqZS1pbmZvJ1wiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtaW5mb1wiPjwvaT5cclxuICAgICAgICA8c3Bhbj57e2ZpbmlzaE1lc3NhZ2UgfCBhc3luY319PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgKm5nSWY9XCJtb3JlUmVzdWx0c1wiXHJcbiAgICAgICAgICAgW2NsYXNzTmFtZV09XCJ0eXBlRm9vdGVyID09PSAnc2Nyb2xsJyA/ICdtZW5zYWplLXNjcm9sbCBtZW5zYWplLWluZm8nIDogJ21lbnNhamUgbWVuc2FqZS1pbmZvJ1wiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtaW5mb1wiPjwvaT5cclxuICAgICAgICA8c3Bhbj57e21vcmVSZXN1bHRzTWVzc2FnZSB8IGFzeW5jfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cImVtcHR5UmVzdWx0XCJcclxuICAgICAgICAgICBbY2xhc3NOYW1lXT1cInR5cGVGb290ZXIgPT09ICdzY3JvbGwnID8gJ21lbnNhamUtc2Nyb2xsIG1lbnNhamUtaW5mbycgOiAnbWVuc2FqZSBtZW5zYWplLWluZm8nXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1leGNsYW1hdGlvblwiPjwvaT5cclxuICAgICAgICA8c3Bhbj57e2VtcHR5TWVzc2FnZSB8IGFzeW5jfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cImVycm9yXCJcclxuICAgICAgICAgICBbY2xhc3NOYW1lXT1cInR5cGVGb290ZXIgPT09ICdzY3JvbGwnID8gJ21lbnNhamUtc2Nyb2xsIG1lbnNhamUtaW5mbycgOiAnbWVuc2FqZSBtZW5zYWplLWluZm8nXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1leGNsYW1hdGlvbi10cmlhbmdsZVwiPjwvaT5cclxuICAgICAgICA8c3Bhbj57e2Vycm9yTWVzc2FnZSB8IGFzeW5jfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGJpdC1oZWxwPjwvYml0LWhlbHA+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9mb290ZXI+XHJcbiJdfQ==
|
package/esm2020/lib/sharedlibrary/components/form/dropdown/bit-dropdown-general.component.mjs
CHANGED
|
@@ -27,6 +27,7 @@ export class BitDropDownGeneralComponent extends BitCustomComponent {
|
|
|
27
27
|
this.includeEmpty = true;
|
|
28
28
|
this.listaOpciones = [];
|
|
29
29
|
this.listaOpcionesVisible = [];
|
|
30
|
+
this.emptyTextResolved = "";
|
|
30
31
|
}
|
|
31
32
|
/** Si se dan las condiciones, transforma los valores de number a string (o viceversa). */
|
|
32
33
|
transformValue() {
|
|
@@ -50,26 +51,30 @@ export class BitDropDownGeneralComponent extends BitCustomComponent {
|
|
|
50
51
|
}
|
|
51
52
|
// custom processing after retrieving data array from service
|
|
52
53
|
postRetrieveData() {
|
|
53
|
-
console.log("llamando a postRetrieveData para " + this.nombre);
|
|
54
|
+
console.log("llamando a postRetrieveData para " + this.nombre + "{opciones:" + this.listaOpciones + "}");
|
|
54
55
|
if (this.listaOpciones) {
|
|
55
56
|
this.listaOpcionesVisible = Object.assign([], this.listaOpciones);
|
|
56
|
-
// determinamos si debemos incluir la opción "sin selección" y con qué texto
|
|
57
|
-
if (this.includeEmpty) {
|
|
58
|
-
console.log("hay valor empty que hay que traducir para " + this.nombre);
|
|
59
|
-
this.translateService
|
|
60
|
-
.selectTranslateWithContext(this.emptyText)
|
|
61
|
-
.pipe(take(1))
|
|
62
|
-
.subscribe((translation) => {
|
|
63
|
-
console.log("se resuelve la traducción del emptyText para " + this.nombre + " con valor:" + translation);
|
|
64
|
-
this.listaOpcionesVisible.splice(0, 0, { value: null, label: translation });
|
|
65
|
-
//console.log("la lista de opciones vale", this.listaOpcionesVisible);
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
57
|
// repasamos si hay opciones a excluir que debamos eliminar
|
|
69
58
|
if (this.excludedValues) {
|
|
70
59
|
this.listaOpcionesVisible = this.listaOpcionesVisible.filter((op) => this.excludedValues.indexOf(op.value) < 0);
|
|
71
60
|
}
|
|
72
61
|
}
|
|
62
|
+
else {
|
|
63
|
+
this.listaOpcionesVisible = [];
|
|
64
|
+
}
|
|
65
|
+
// determinamos si debemos incluir la opción "sin selección" y con qué texto
|
|
66
|
+
if (this.includeEmpty) {
|
|
67
|
+
console.log("hay valor empty que hay que traducir para " + this.nombre);
|
|
68
|
+
this.translateService
|
|
69
|
+
.selectTranslateWithContext(this.emptyText)
|
|
70
|
+
.pipe(take(1))
|
|
71
|
+
.subscribe((translation) => {
|
|
72
|
+
console.log("se resuelve la traducción del emptyText para " + this.nombre + " con valor:" + translation);
|
|
73
|
+
this.listaOpcionesVisible.splice(0, 0, { value: null, label: translation });
|
|
74
|
+
this.emptyTextResolved = translation;
|
|
75
|
+
//console.log("la lista de opciones vale", this.listaOpcionesVisible);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
73
78
|
}
|
|
74
79
|
onBlur() {
|
|
75
80
|
this.onTouchedCallback();
|
|
@@ -97,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
97
102
|
}], includeEmpty: [{
|
|
98
103
|
type: Input
|
|
99
104
|
}] } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0LWRyb3Bkb3duLWdlbmVyYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYml0LW5nLWxpYnJhcnkvc3JjL2xpYi9zaGFyZWRsaWJyYXJ5L2NvbXBvbmVudHMvZm9ybS9kcm9wZG93bi9iaXQtZHJvcGRvd24tZ2VuZXJhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUc3RDs7Ozs7Ozs7O0lBU0k7QUFFSixNQUFNLE9BQWdCLDJCQUE0QixTQUFRLGtCQUFrQjtJQWExRSxZQUNZLE1BQXNCLEVBQ3RCLGFBQW1DLEVBQ25DLFlBQTBCLEVBQzFCLGlCQUFvQyxFQUNwQyxnQkFBa0M7UUFFNUMsS0FBSyxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBTjdCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUNuQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFqQnJDLGNBQVMsR0FBWSxLQUFLLENBQUMsQ0FBQyxzREFBc0Q7UUFLbEYsY0FBUyxHQUFXLDhCQUE4QixDQUFDLENBQUMsc0RBQXNEO1FBQzFHLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBRXRDLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzFCLHlCQUFvQixHQUFVLEVBQUUsQ0FBQztJQVdqQyxDQUFDO0lBRUQsMEZBQTBGO0lBQ2hGLGNBQWM7UUFDdEIsSUFBSSxJQUFJ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M0IsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDOzt3SEExRW1CLDJCQUEyQjs0R0FBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBRGhELFNBQVM7a09BRUMsU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uSW5pdCwgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgdGFrZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuaW1wb3J0IHsgQml0Q3VzdG9tQ29tcG9uZW50IH0gZnJvbSBcIi4uL2JpdC1jdXN0b20uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEF5dWRhU2VydmljZSwgVHJhbnNsYXRlU2VydmljZSwgU2Vzc2lvblNoYXJlZFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXNcIjtcclxuXHJcbi8qKlxyXG4gKiBDbGFzZSBxdWUgdXRpbGl6YSB1biBjdXN0b20gY29tcG9uZW50ZSBwYXJhIHNlbGVjdCBkZSBlbGVtZW50b3NcclxuICogVXRpbGl6YSBsYSBpbnRlcmZheiBDb250cm9sVmFsdWVBY2Nlc3NvclxyXG4gKiAgICA8Yml0LXNlbGVjdCBbZG9tYWluXT1cIidET01BSU5fVElQT19MT0cnXCIgaWQ9XCJ0aXBvbG9nXCIgW2NvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIj4mbmJzcDsmbmJzcDtUaXB1cyBkJ29wZXJhY2nDszwvYml0LXNlbGVjdD5cclxuICpcclxuICogQGlucHV0IGRhdGE6IGFycmF5IGRlIG9iamV0b3MgYSBtb3N0cmFyIGVuIGVsIHNlbGVjdC4gUHVlZGUgc2VyIG51bGwsIGVuIGN1eW8gY2FzbyBkb21haW4gbm8gcHVlZGUgc2VyIG51bGxcclxuICogQGlucHV0IGRvbWFpbjogbm9tYnJlIGRlbCBkb21pbmlvIHF1ZSBjb250aWVuZSBsb3MgZGF0b3MgeSBxdWUgbm9zIHJlc29sdmVyw6EgbGEgcMOhZ2luYSBjdWFuZG8gY2FyZ3VlIGVsIGNvbXBvbmVudGUuIFB1ZWRlIHNlciBudWxsLCBlbiBjdXlvIGNhc28gZGF0YSBubyBwdWVkZSBzZXIgbnVsbFxyXG4gKiBAaW5wdXQgaWQ6IGlkZW50aWZpY2Fkb3IgZGVsIGNvbXBvbmVudGUgc2VsZWN0XHJcbiAqIEBpbnB1dCBmaWx0ZXI6IHRydWUgaW5kaWNhcsOhIHF1ZSBwb2RlbW9zIGJ1c2NhciBkZW50cm8gZGVsIHNlbGVjdCwgZmFsc2UgcXVlIG5vLlxyXG4gKiovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQml0RHJvcERvd25HZW5lcmFsQ29tcG9uZW50IGV4dGVuZHMgQml0Q3VzdG9tQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBoaWRlTGFiZWw6IGJvb2xlYW4gPSBmYWxzZTsgLy8gZm9yemFyIG5vIHJlc2VydmFyIGVzcGFjaW8gcGFyYSBlbCBub21icmUgZGVsIGNhbXBvXHJcbiAgQElucHV0KCkgZGF0YTogYW55W107IC8vIGxpc3RhIGRlIHZhbG9yZXMgZXN0w6F0aWNvcyBjb24gbG8gcXVlIGluaWNpYWxpemFtb3MgZWwgc2VsZWN0XHJcbiAgQElucHV0KCkgdmFsdWVBczogc3RyaW5nOyAvLyBpbmRpY2Egc2kgaGF5IHF1ZSB0cmFuc2Zvcm1hciBlbCB2YWxvciBkZSBlbnRyYWRhIGEgdW4gdGlwbyBkZSBkYXRvOiBcInN0cmluZ1wiLCBcIm51bWJlclwiXHJcbiAgQElucHV0KCkgaWQ6IGFueTtcclxuICBASW5wdXQoKSBleGNsdWRlZFZhbHVlczogYW55W107XHJcbiAgQElucHV0KCkgZW1wdHlUZXh0OiBzdHJpbmcgPSBcImJpdG5nbGlicmFyeS5iaXRkcm9wZG93bi5hbnlcIjsgLy92YWxvciBwb3IgZGVmZWN0byBzZWxlY2Npb25hYmxlIGNvbW8gcHJpbWVyIGVsZW1lbnRvXHJcbiAgQElucHV0KCkgaW5jbHVkZUVtcHR5OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgbGlzdGFPcGNpb25lczogYW55W10gPSBbXTtcclxuICBsaXN0YU9wY2lvbmVzVmlzaWJsZTogYW55W10gPSBbXTtcclxuICB2YWxvckFjdHVhbDogYW55OyAvLyBzb2xvIHNlIHVzYSBwYXJhIGhhY2VyIGxhIHRyYW5zZm9ybWFjacOzbiBjdWFuZG8gZXMgZXN0cmljdGFtZW50ZSBuZWNlc2FyaW9cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgcm91dGVyOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByb3RlY3RlZCBzZXNzaW9uU2hhcmVkOiBTZXNzaW9uU2hhcmVkU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBheXVkYVNlcnZpY2U6IEF5dWRhU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoYXl1ZGFTZXJ2aWNlLCBjaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgfVxyXG5cclxuICAvKiogU2kgc2UgZGFuIGxhcyBjb25kaWNpb25lcywgdHJhbnNmb3JtYSBsb3MgdmFsb3JlcyBkZSBudW1iZXIgYSBzdHJpbmcgKG8gdmljZXZlcnNhKS4gKi9cclxuICBwcm90ZWN0ZWQgdHJhbnNmb3JtVmFsdWUoKSB7XHJcbiAgICBpZiAodGhpcy5jb250cm9sLnZhbHVlICE9PSB0aGlzLnZhbG9yQWN0dWFsKSB7XHJcbiAgICAgIGlmICghdGhpcy5jb250cm9sLnZhbHVlIHx8IHRoaXMuY29udHJvbC52YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLnZhbG9yQWN0dWFsID0gdGhpcy5jb250cm9sLnZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIHNpIGVzIG5lY2VzYXJpbywgcmVhbGl6YW1vcyBsYSB0cmFuc2Zvcm1hY2nDs24geSBhcGxpY2Ftb3MgZWwgbnVldm8gdmFsb3JcclxuICAgICAgZWxzZSBpZiAodGhpcy52YWx1ZUFzID09PSBcInN0cmluZ1wiICYmIHR5cGVvZiB0aGlzLmNvbnRyb2wudmFsdWVbMF0gIT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICB0aGlzLnZhbG9yQWN0dWFsID0gdGhpcy5jb250cm9sLnZhbHVlLm1hcChTdHJpbmcpO1xyXG4gICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLnZhbG9yQWN0dWFsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy52YWx1ZUFzID09PSBcIm51bWJlclwiICYmIHR5cGVvZiB0aGlzLmNvbnRyb2wudmFsdWVbMF0gIT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICB0aGlzLnZhbG9yQWN0dWFsID0gdGhpcy5jb250cm9sLnZhbHVlLm1hcChOdW1iZXIpO1xyXG4gICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLnZhbG9yQWN0dWFsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICB9XHJcblxyXG4gIC8vIGN1c3RvbSBwcm9jZXNzaW5nIGFmdGVyIHJldHJpZXZpbmcgZGF0YSBhcnJheSBmcm9tIHNlcnZpY2VcclxuICBwb3N0UmV0cmlldmVEYXRhKCkge1xyXG4gICAgY29uc29sZS5sb2coXCJsbGFtYW5kbyBhIHBvc3RSZXRyaWV2ZURhdGEgcGFyYSBcIiArIHRoaXMubm9tYnJlKTtcclxuICAgIGlmICh0aGlzLmxpc3RhT3BjaW9uZXMpIHtcclxuICAgICAgdGhpcy5saXN0YU9wY2lvbmVzVmlzaWJsZSA9IE9iamVjdC5hc3NpZ24oW10sIHRoaXMubGlzdGFPcGNpb25lcyk7XHJcbiAgICAgIC8vIGRldGVybWluYW1vcyBzaSBkZWJlbW9zIGluY2x1aXIgbGEgb3BjacOzbiBcInNpbiBzZWxlY2Npw7NuXCIgeSBjb24gcXXDqSB0ZXh0b1xyXG4gICAgICBpZiAodGhpcy5pbmNsdWRlRW1wdHkpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcImhheSB2YWxvciBlbXB0eSBxdWUgaGF5IHF1ZSB0cmFkdWNpciBwYXJhIFwiICsgdGhpcy5ub21icmUpO1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZVxyXG4gICAgICAgICAgLnNlbGVjdFRyYW5zbGF0ZVdpdGhDb250ZXh0KHRoaXMuZW1wdHlUZXh0KVxyXG4gICAgICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHRyYW5zbGF0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwic2UgcmVzdWVsdmUgbGEgdHJhZHVjY2nDs24gZGVsIGVtcHR5VGV4dCBwYXJhIFwiICsgdGhpcy5ub21icmUgKyBcIiBjb24gdmFsb3I6XCIgKyB0cmFuc2xhdGlvbik7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdGFPcGNpb25lc1Zpc2libGUuc3BsaWNlKDAsIDAsIHsgdmFsdWU6IG51bGwsIGxhYmVsOiB0cmFuc2xhdGlvbiB9KTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcImxhIGxpc3RhIGRlIG9wY2lvbmVzIHZhbGVcIiwgdGhpcy5saXN0YU9wY2lvbmVzVmlzaWJsZSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICAvLyByZXBhc2Ftb3Mgc2kgaGF5IG9wY2lvbmVzIGEgZXhjbHVpciBxdWUgZGViYW1vcyBlbGltaW5hclxyXG4gICAgICBpZiAodGhpcy5leGNsdWRlZFZhbHVlcykge1xyXG4gICAgICAgIHRoaXMubGlzdGFPcGNpb25lc1Zpc2libGUgPSB0aGlzLmxpc3RhT3BjaW9uZXNWaXNpYmxlLmZpbHRlcigob3ApID0+IHRoaXMuZXhjbHVkZWRWYWx1ZXMuaW5kZXhPZihvcC52YWx1ZSkgPCAwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25CbHVyKCkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cygpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKTtcclxuICB9XHJcbn1cclxuIl19
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0LWRyb3Bkb3duLWdlbmVyYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYml0LW5nLWxpYnJhcnkvc3JjL2xpYi9zaGFyZWRsaWJyYXJ5L2NvbXBvbmVudHMvZm9ybS9kcm9wZG93bi9iaXQtZHJvcGRvd24tZ2VuZXJhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUc3RDs7Ozs7Ozs7O0lBU0k7QUFFSixNQUFNLE9BQWdCLDJCQUE0QixTQUFRLGtCQUFrQjtJQWMxRSxZQUNZLE1BQXNCLEVBQ3RCLGFBQW1DLEVBQ25DLFlBQTBCLEVBQzFCLGlCQUFvQyxFQUNwQyxnQkFBa0M7UUFFNUMsS0FBSyxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBTjdCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUNuQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFsQnJDLGNBQVMsR0FBWSxLQUFLLENBQUMsQ0FBQyxzREFBc0Q7UUFLbEYsY0FBUyxHQUFXLDhCQUE4QixDQUFDLENBQUMsc0RBQXNEO1FBQzFHLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBRXRDLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzFCLHlCQUFvQixHQUFVLEVBQUUsQ0FBQztRQUVqQyxzQkFBaUIsR0FBVyxFQUFFLENBQUM7SUFVL0IsQ0FBQztJQUVELDBGQUEw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QVcsRUFBQyxDQUFDLENBQUM7Z0JBQzFFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxXQUFXLENBQUM7Z0JBQ3JDLHNFQUFzRTtZQUN4RSxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7O3dIQTlFbUIsMkJBQTJCOzRHQUEzQiwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFEaEQsU0FBUztrT0FFQyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25Jbml0LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG5pbXBvcnQgeyBCaXRDdXN0b21Db21wb25lbnQgfSBmcm9tIFwiLi4vYml0LWN1c3RvbS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQXl1ZGFTZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLCBTZXNzaW9uU2hhcmVkU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlc1wiO1xyXG5cclxuLyoqXHJcbiAqIENsYXNlIHF1ZSB1dGlsaXphIHVuIGN1c3RvbSBjb21wb25lbnRlIHBhcmEgc2VsZWN0IGRlIGVsZW1lbnRvc1xyXG4gKiBVdGlsaXphIGxhIGludGVyZmF6IENvbnRyb2xWYWx1ZUFjY2Vzc29yXHJcbiAqICAgIDxiaXQtc2VsZWN0IFtkb21haW5dPVwiJ0RPTUFJTl9USVBPX0xPRydcIiBpZD1cInRpcG9sb2dcIiBbY29udHJvbF09XCJmb3JtQ29udHJvbFwiPiZuYnNwOyZuYnNwO1RpcHVzIGQnb3BlcmFjacOzPC9iaXQtc2VsZWN0PlxyXG4gKlxyXG4gKiBAaW5wdXQgZGF0YTogYXJyYXkgZGUgb2JqZXRvcyBhIG1vc3RyYXIgZW4gZWwgc2VsZWN0LiBQdWVkZSBzZXIgbnVsbCwgZW4gY3V5byBjYXNvIGRvbWFpbiBubyBwdWVkZSBzZXIgbnVsbFxyXG4gKiBAaW5wdXQgZG9tYWluOiBub21icmUgZGVsIGRvbWluaW8gcXVlIGNvbnRpZW5lIGxvcyBkYXRvcyB5IHF1ZSBub3MgcmVzb2x2ZXLDoSBsYSBww6FnaW5hIGN1YW5kbyBjYXJndWUgZWwgY29tcG9uZW50ZS4gUHVlZGUgc2VyIG51bGwsIGVuIGN1eW8gY2FzbyBkYXRhIG5vIHB1ZWRlIHNlciBudWxsXHJcbiAqIEBpbnB1dCBpZDogaWRlbnRpZmljYWRvciBkZWwgY29tcG9uZW50ZSBzZWxlY3RcclxuICogQGlucHV0IGZpbHRlcjogdHJ1ZSBpbmRpY2Fyw6EgcXVlIHBvZGVtb3MgYnVzY2FyIGRlbnRybyBkZWwgc2VsZWN0LCBmYWxzZSBxdWUgbm8uXHJcbiAqKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCaXREcm9wRG93bkdlbmVyYWxDb21wb25lbnQgZXh0ZW5kcyBCaXRDdXN0b21Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGhpZGVMYWJlbDogYm9vbGVhbiA9IGZhbHNlOyAvLyBmb3J6YXIgbm8gcmVzZXJ2YXIgZXNwYWNpbyBwYXJhIGVsIG5vbWJyZSBkZWwgY2FtcG9cclxuICBASW5wdXQoKSBkYXRhOiBhbnlbXTsgLy8gbGlzdGEgZGUgdmFsb3JlcyBlc3TDoXRpY29zIGNvbiBsbyBxdWUgaW5pY2lhbGl6YW1vcyBlbCBzZWxlY3RcclxuICBASW5wdXQoKSB2YWx1ZUFzOiBzdHJpbmc7IC8vIGluZGljYSBzaSBoYXkgcXVlIHRyYW5zZm9ybWFyIGVsIHZhbG9yIGRlIGVudHJhZGEgYSB1biB0aXBvIGRlIGRhdG86IFwic3RyaW5nXCIsIFwibnVtYmVyXCJcclxuICBASW5wdXQoKSBpZDogYW55O1xyXG4gIEBJbnB1dCgpIGV4Y2x1ZGVkVmFsdWVzOiBhbnlbXTtcclxuICBASW5wdXQoKSBlbXB0eVRleHQ6IHN0cmluZyA9IFwiYml0bmdsaWJyYXJ5LmJpdGRyb3Bkb3duLmFueVwiOyAvL3ZhbG9yIHBvciBkZWZlY3RvIHNlbGVjY2lvbmFibGUgY29tbyBwcmltZXIgZWxlbWVudG9cclxuICBASW5wdXQoKSBpbmNsdWRlRW1wdHk6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBsaXN0YU9wY2lvbmVzOiBhbnlbXSA9IFtdO1xyXG4gIGxpc3RhT3BjaW9uZXNWaXNpYmxlOiBhbnlbXSA9IFtdO1xyXG4gIHZhbG9yQWN0dWFsOiBhbnk7IC8vIHNvbG8gc2UgdXNhIHBhcmEgaGFjZXIgbGEgdHJhbnNmb3JtYWNpw7NuIGN1YW5kbyBlcyBlc3RyaWN0YW1lbnRlIG5lY2VzYXJpb1xyXG4gIGVtcHR5VGV4dFJlc29sdmVkOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCByb3V0ZXI6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJvdGVjdGVkIHNlc3Npb25TaGFyZWQ6IFNlc3Npb25TaGFyZWRTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGF5dWRhU2VydmljZTogQXl1ZGFTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihheXVkYVNlcnZpY2UsIGNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIC8qKiBTaSBzZSBkYW4gbGFzIGNvbmRpY2lvbmVzLCB0cmFuc2Zvcm1hIGxvcyB2YWxvcmVzIGRlIG51bWJlciBhIHN0cmluZyAobyB2aWNldmVyc2EpLiAqL1xyXG4gIHByb3RlY3RlZCB0cmFuc2Zvcm1WYWx1ZSgpIHtcclxuICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWUgIT09IHRoaXMudmFsb3JBY3R1YWwpIHtcclxuICAgICAgaWYgKCF0aGlzLmNvbnRyb2wudmFsdWUgfHwgdGhpcy5jb250cm9sLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMudmFsb3JBY3R1YWwgPSB0aGlzLmNvbnRyb2wudmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgLy8gc2kgZXMgbmVjZXNhcmlvLCByZWFsaXphbW9zIGxhIHRyYW5zZm9ybWFjacOzbiB5IGFwbGljYW1vcyBlbCBudWV2byB2YWxvclxyXG4gICAgICBlbHNlIGlmICh0aGlzLnZhbHVlQXMgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIHRoaXMuY29udHJvbC52YWx1ZVswXSAhPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIHRoaXMudmFsb3JBY3R1YWwgPSB0aGlzLmNvbnRyb2wudmFsdWUubWFwKFN0cmluZyk7XHJcbiAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHRoaXMudmFsb3JBY3R1YWwsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy52YWx1ZUFzID09PSBcIm51bWJlclwiICYmIHR5cGVvZiB0aGlzLmNvbnRyb2wudmFsdWVbMF0gIT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICB0aGlzLnZhbG9yQWN0dWFsID0gdGhpcy5jb250cm9sLnZhbHVlLm1hcChOdW1iZXIpO1xyXG4gICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLnZhbG9yQWN0dWFsLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG5cclxuICAvLyBjdXN0b20gcHJvY2Vzc2luZyBhZnRlciByZXRyaWV2aW5nIGRhdGEgYXJyYXkgZnJvbSBzZXJ2aWNlXHJcbiAgcG9zdFJldHJpZXZlRGF0YSgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwibGxhbWFuZG8gYSBwb3N0UmV0cmlldmVEYXRhIHBhcmEgXCIgKyB0aGlzLm5vbWJyZSArIFwie29wY2lvbmVzOlwiICsgdGhpcy5saXN0YU9wY2lvbmVzICsgXCJ9XCIpO1xyXG4gICAgaWYgKHRoaXMubGlzdGFPcGNpb25lcykge1xyXG4gICAgICB0aGlzLmxpc3RhT3BjaW9uZXNWaXNpYmxlID0gT2JqZWN0LmFzc2lnbihbXSwgdGhpcy5saXN0YU9wY2lvbmVzKTtcclxuICAgICAgLy8gcmVwYXNhbW9zIHNpIGhheSBvcGNpb25lcyBhIGV4Y2x1aXIgcXVlIGRlYmFtb3MgZWxpbWluYXJcclxuICAgICAgaWYgKHRoaXMuZXhjbHVkZWRWYWx1ZXMpIHtcclxuICAgICAgICB0aGlzLmxpc3RhT3BjaW9uZXNWaXNpYmxlID0gdGhpcy5saXN0YU9wY2lvbmVzVmlzaWJsZS5maWx0ZXIoKG9wKSA9PiB0aGlzLmV4Y2x1ZGVkVmFsdWVzLmluZGV4T2Yob3AudmFsdWUpIDwgMCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubGlzdGFPcGNpb25lc1Zpc2libGUgPSBbXTtcclxuICAgIH1cclxuICAgIC8vIGRldGVybWluYW1vcyBzaSBkZWJlbW9zIGluY2x1aXIgbGEgb3BjacOzbiBcInNpbiBzZWxlY2Npw7NuXCIgeSBjb24gcXXDqSB0ZXh0b1xyXG4gICAgaWYgKHRoaXMuaW5jbHVkZUVtcHR5KSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiaGF5IHZhbG9yIGVtcHR5IHF1ZSBoYXkgcXVlIHRyYWR1Y2lyIHBhcmEgXCIgKyB0aGlzLm5vbWJyZSk7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZVxyXG4gICAgICAgIC5zZWxlY3RUcmFuc2xhdGVXaXRoQ29udGV4dCh0aGlzLmVtcHR5VGV4dClcclxuICAgICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHRyYW5zbGF0aW9uKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcInNlIHJlc3VlbHZlIGxhIHRyYWR1Y2Npw7NuIGRlbCBlbXB0eVRleHQgcGFyYSBcIiArIHRoaXMubm9tYnJlICsgXCIgY29uIHZhbG9yOlwiICsgdHJhbnNsYXRpb24pO1xyXG4gICAgICAgICAgdGhpcy5saXN0YU9wY2lvbmVzVmlzaWJsZS5zcGxpY2UoMCwgMCwge3ZhbHVlOiBudWxsLCBsYWJlbDogdHJhbnNsYXRpb259KTtcclxuICAgICAgICAgIHRoaXMuZW1wdHlUZXh0UmVzb2x2ZWQgPSB0cmFuc2xhdGlvbjtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCJsYSBsaXN0YSBkZSBvcGNpb25lcyB2YWxlXCIsIHRoaXMubGlzdGFPcGNpb25lc1Zpc2libGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25CbHVyKCkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cygpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKTtcclxuICB9XHJcbn1cclxuIl19
|
package/esm2020/lib/sharedlibrary/components/form/dropdown/bit-dropdown-multiple.component.mjs
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { Component, forwardRef, Input } from
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from
|
|
3
|
-
import { BitDropDownGeneralComponent } from
|
|
1
|
+
import { Component, forwardRef, Input } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { BitDropDownGeneralComponent } from './bit-dropdown-general.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/router";
|
|
6
6
|
import * as i2 from "../../../services";
|
|
7
|
-
import * as i3 from "
|
|
8
|
-
import * as i4 from "
|
|
9
|
-
import * as i5 from "
|
|
10
|
-
import * as i6 from "@angular/
|
|
11
|
-
import * as i7 from "@angular/forms";
|
|
7
|
+
import * as i3 from "primeng/multiselect";
|
|
8
|
+
import * as i4 from "../../contol-messages/bit-control-messages.component";
|
|
9
|
+
import * as i5 from "@angular/common";
|
|
10
|
+
import * as i6 from "@angular/forms";
|
|
12
11
|
export const CUSTOM_DROPDOWN_MULTIPLE_CONTROL_VALUE_ACCESSOR = {
|
|
13
12
|
provide: NG_VALUE_ACCESSOR,
|
|
14
13
|
useExisting: forwardRef(() => BitDropDownMultipleComponent),
|
|
@@ -40,11 +39,24 @@ export class BitDropDownMultipleComponent extends BitDropDownGeneralComponent {
|
|
|
40
39
|
super.ngOnInit();
|
|
41
40
|
}
|
|
42
41
|
ngOnChanges(changes) {
|
|
42
|
+
let hayCambios = false;
|
|
43
43
|
for (let propName in changes) {
|
|
44
44
|
let changedProp = changes[propName];
|
|
45
45
|
if (propName === "data") {
|
|
46
46
|
this.listaOpciones = changedProp.currentValue ? changedProp.currentValue.slice() : [];
|
|
47
|
+
hayCambios = true;
|
|
47
48
|
}
|
|
49
|
+
else if (propName === "excludedValues") {
|
|
50
|
+
this.excludedValues = changedProp.currentValue;
|
|
51
|
+
hayCambios = true;
|
|
52
|
+
}
|
|
53
|
+
else if (propName === "includeEmpty") {
|
|
54
|
+
this.includeEmpty = changedProp.currentValue;
|
|
55
|
+
hayCambios = true;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (hayCambios) {
|
|
59
|
+
this.postRetrieveData();
|
|
48
60
|
}
|
|
49
61
|
}
|
|
50
62
|
get value_lectura() {
|
|
@@ -53,7 +65,14 @@ export class BitDropDownMultipleComponent extends BitDropDownGeneralComponent {
|
|
|
53
65
|
return labels ? labels.join(", ") : null;
|
|
54
66
|
}
|
|
55
67
|
labelSelectedItem(id) {
|
|
56
|
-
|
|
68
|
+
let label = "";
|
|
69
|
+
if (this.listaOpciones) {
|
|
70
|
+
let selected = this.listaOpciones.find((c) => c.value == id);
|
|
71
|
+
if (selected) {
|
|
72
|
+
label = selected.label;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return label;
|
|
57
76
|
}
|
|
58
77
|
deleteSelectedItem(event, item) {
|
|
59
78
|
event.preventDefault();
|
|
@@ -63,12 +82,12 @@ export class BitDropDownMultipleComponent extends BitDropDownGeneralComponent {
|
|
|
63
82
|
this.value = this.value.slice(0);
|
|
64
83
|
}
|
|
65
84
|
}
|
|
66
|
-
BitDropDownMultipleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BitDropDownMultipleComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.SessionSharedService }, { token:
|
|
67
|
-
BitDropDownMultipleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: BitDropDownMultipleComponent, selector: "bit-dropdown-multiple", inputs: { maxSelectedLabels: "maxSelectedLabels", showSeparateSelectedLabels: "showSeparateSelectedLabels", title: "title", filter: "filter" }, providers: [CUSTOM_DROPDOWN_MULTIPLE_CONTROL_VALUE_ACCESSOR], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"row separador\" *ngIf=\"showSeparateSelectedLabels; else normalBitSelectMultiple\">\r\n <div> <!-- class=\"col-sm-4\"-->\r\n <ng-container *ngTemplateOutlet=\"normalBitSelectMultiple\"></ng-container>\r\n </div>\r\n <div><!-- elementos seleccionados -->\r\n <label> </label>\r\n <div class=\"multiselect-labels\">\r\n <div class=\"label label-primary multiselect-labels-lg\" *ngFor=\"let item of value\">\r\n <span>{{labelSelectedItem(item)}}</span>\r\n <a (click)=\"deleteSelectedItem($event, item)\" title=\"{{title}}}\"> <i class=\"fa fa-times\"></i></a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #normalBitSelectMultiple>\r\n <label *ngIf=\"!hideLabel\"><ng-content></ng-content> <span *ngIf=\"obligatorio\" class=\"fa fa-asterisk\"></span> \r\n <i *ngIf=\"ayuda\" (click)=\"showAyuda()\" class=\"btn-ayuda fa fa-question\"></i>\r\n </label>\r\n <p *ngIf=\"readOnly\" class=\"lectura\">{{value_lectura}}</p>\r\n <div *ngIf=\"!readOnly\">\r\n <p-multiSelect
|
|
85
|
+
BitDropDownMultipleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BitDropDownMultipleComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.SessionSharedService }, { token: i2.AyudaService }, { token: i0.ChangeDetectorRef }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
86
|
+
BitDropDownMultipleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: BitDropDownMultipleComponent, selector: "bit-dropdown-multiple", inputs: { maxSelectedLabels: "maxSelectedLabels", showSeparateSelectedLabels: "showSeparateSelectedLabels", title: "title", filter: "filter" }, providers: [CUSTOM_DROPDOWN_MULTIPLE_CONTROL_VALUE_ACCESSOR], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"row separador\" *ngIf=\"showSeparateSelectedLabels; else normalBitSelectMultiple\">\r\n <div> <!-- class=\"col-sm-4\"-->\r\n <ng-container *ngTemplateOutlet=\"normalBitSelectMultiple\"></ng-container>\r\n </div>\r\n <div><!-- elementos seleccionados -->\r\n <label> </label>\r\n <div class=\"multiselect-labels\">\r\n <div class=\"label label-primary multiselect-labels-lg\" *ngFor=\"let item of value\">\r\n <span>{{labelSelectedItem(item)}}</span>\r\n <a (click)=\"deleteSelectedItem($event, item)\" title=\"{{title}}}\"> <i class=\"fa fa-times\"></i></a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #normalBitSelectMultiple>\r\n <label *ngIf=\"!hideLabel\"><ng-content></ng-content> <span *ngIf=\"obligatorio\" class=\"fa fa-asterisk\"></span> \r\n <i *ngIf=\"ayuda\" (click)=\"showAyuda()\" class=\"btn-ayuda fa fa-question\"></i>\r\n </label>\r\n <p *ngIf=\"readOnly\" class=\"lectura\">{{value_lectura}}</p>\r\n <div *ngIf=\"!readOnly\">\r\n <p-multiSelect\r\n *ngIf=\"!readOnly\"\r\n id=\"{{id}}\"\r\n [filter]=\"filter\"\r\n [(ngModel)]=\"value\"\r\n [options]=\"listaOpciones\"\r\n [defaultLabel]=\"emptyTextResolved\"\r\n [maxSelectedLabels]=\"maxSelectedLabels\"\r\n selectedItemsLabel=\"{0} elements seleccionats\"\r\n (onFocus)=\"onFocus()\"\r\n (onBlur)=\"onBlur()\">\r\n </p-multiSelect>\r\n <control-messages *ngIf=\"control!=null\" [control]=\"control\" [field]=\"id\"></control-messages>\r\n </div>\r\n</ng-template>\r\n", components: [{ type: i3.MultiSelect, selector: "p-multiSelect", inputs: ["style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "autoZIndex", "baseZIndex", "filterBy", "virtualScroll", "itemSize", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "scrollHeight", "defaultLabel", "placeholder", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onPanelShow", "onPanelHide"] }, { type: i4.BitControlMessages, selector: "control-messages", inputs: ["control", "field"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
68
87
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BitDropDownMultipleComponent, decorators: [{
|
|
69
88
|
type: Component,
|
|
70
|
-
args: [{ selector: "bit-dropdown-multiple", providers: [CUSTOM_DROPDOWN_MULTIPLE_CONTROL_VALUE_ACCESSOR], template: "<div class=\"row separador\" *ngIf=\"showSeparateSelectedLabels; else normalBitSelectMultiple\">\r\n <div> <!-- class=\"col-sm-4\"-->\r\n <ng-container *ngTemplateOutlet=\"normalBitSelectMultiple\"></ng-container>\r\n </div>\r\n <div><!-- elementos seleccionados -->\r\n <label> </label>\r\n <div class=\"multiselect-labels\">\r\n <div class=\"label label-primary multiselect-labels-lg\" *ngFor=\"let item of value\">\r\n <span>{{labelSelectedItem(item)}}</span>\r\n <a (click)=\"deleteSelectedItem($event, item)\" title=\"{{title}}}\"> <i class=\"fa fa-times\"></i></a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #normalBitSelectMultiple>\r\n <label *ngIf=\"!hideLabel\"><ng-content></ng-content> <span *ngIf=\"obligatorio\" class=\"fa fa-asterisk\"></span> \r\n <i *ngIf=\"ayuda\" (click)=\"showAyuda()\" class=\"btn-ayuda fa fa-question\"></i>\r\n </label>\r\n <p *ngIf=\"readOnly\" class=\"lectura\">{{value_lectura}}</p>\r\n <div *ngIf=\"!readOnly\">\r\n <p-multiSelect
|
|
71
|
-
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.SessionSharedService }, { type:
|
|
89
|
+
args: [{ selector: "bit-dropdown-multiple", providers: [CUSTOM_DROPDOWN_MULTIPLE_CONTROL_VALUE_ACCESSOR], template: "<div class=\"row separador\" *ngIf=\"showSeparateSelectedLabels; else normalBitSelectMultiple\">\r\n <div> <!-- class=\"col-sm-4\"-->\r\n <ng-container *ngTemplateOutlet=\"normalBitSelectMultiple\"></ng-container>\r\n </div>\r\n <div><!-- elementos seleccionados -->\r\n <label> </label>\r\n <div class=\"multiselect-labels\">\r\n <div class=\"label label-primary multiselect-labels-lg\" *ngFor=\"let item of value\">\r\n <span>{{labelSelectedItem(item)}}</span>\r\n <a (click)=\"deleteSelectedItem($event, item)\" title=\"{{title}}}\"> <i class=\"fa fa-times\"></i></a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #normalBitSelectMultiple>\r\n <label *ngIf=\"!hideLabel\"><ng-content></ng-content> <span *ngIf=\"obligatorio\" class=\"fa fa-asterisk\"></span> \r\n <i *ngIf=\"ayuda\" (click)=\"showAyuda()\" class=\"btn-ayuda fa fa-question\"></i>\r\n </label>\r\n <p *ngIf=\"readOnly\" class=\"lectura\">{{value_lectura}}</p>\r\n <div *ngIf=\"!readOnly\">\r\n <p-multiSelect\r\n *ngIf=\"!readOnly\"\r\n id=\"{{id}}\"\r\n [filter]=\"filter\"\r\n [(ngModel)]=\"value\"\r\n [options]=\"listaOpciones\"\r\n [defaultLabel]=\"emptyTextResolved\"\r\n [maxSelectedLabels]=\"maxSelectedLabels\"\r\n selectedItemsLabel=\"{0} elements seleccionats\"\r\n (onFocus)=\"onFocus()\"\r\n (onBlur)=\"onBlur()\">\r\n </p-multiSelect>\r\n <control-messages *ngIf=\"control!=null\" [control]=\"control\" [field]=\"id\"></control-messages>\r\n </div>\r\n</ng-template>\r\n" }]
|
|
90
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.SessionSharedService }, { type: i2.AyudaService }, { type: i0.ChangeDetectorRef }, { type: i2.TranslateService }]; }, propDecorators: { maxSelectedLabels: [{
|
|
72
91
|
type: Input
|
|
73
92
|
}], showSeparateSelectedLabels: [{
|
|
74
93
|
type: Input
|
|
@@ -77,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
77
96
|
}], filter: [{
|
|
78
97
|
type: Input
|
|
79
98
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0LWRyb3Bkb3duLW11bHRpcGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JpdC1uZy1saWJyYXJ5L3NyYy9saWIvc2hhcmVkbGlicmFyeS9jb21wb25lbnRzL2Zvcm0vZHJvcGRvd24vYml0LWRyb3Bkb3duLW11bHRpcGxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JpdC1uZy1saWJyYXJ5L3NyYy9saWIvc2hhcmVkbGlicmFyeS9jb21wb25lbnRzL2Zvcm0vZHJvcGRvd24vYml0LWRyb3Bkb3duLW11bHRpcGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFhLEtBQUssRUFBbUMsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLbkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7OztBQUUvRSxNQUFNLENBQUMsTUFBTSwrQ0FBK0MsR0FBUTtJQUNsRSxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7SUFDM0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUY7Ozs7Ozs7O0lBUUk7QUFPSixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsMkJBQTJCO0lBSzNFLDRGQUE0RjtJQUM1Rix5RUFBeUU7SUFFekUsWUFDWSxNQUFzQixFQUN0QixhQUFtQyxFQUNuQyxZQUEwQixFQUMxQixpQkFBb0MsRUFDcEMsZ0JBQWtDO1FBRTVDLEtBQUssQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBTnRFLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUNuQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFackMsc0JBQWlCLEdBQVcsQ0FBQyxDQUFDO1FBQzlCLCtCQUEwQixHQUFZLEtBQUssQ0FBQyxDQUFDLDRFQUE0RTtJQWNsSSxDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQTRDO1FBQ3RELEtBQUssSUFBSSxRQUFRLElBQUksT0FBTyxFQUFFO1lBQzVCLElBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQyxJQUFJLFFBQVEsS0FBSyxNQUFNLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ3ZGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNyQixJQUFJLE1BQU0sR0FBVSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqSSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzNDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFFO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzdELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsSUFBSTtRQUM1QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVCLHdHQUF3RztRQUN4RyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7O3lIQS9DVSw0QkFBNEI7NkdBQTVCLDRCQUE0QixnTUFGNUIsQ0FBQywrQ0FBK0MsQ0FBQyxzRUMzQjlELDB0REFrQ2M7MkZETEQsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLHVCQUF1QixhQUV0QixDQUFDLCtDQUErQyxDQUFDO2tPQUduRCxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIE9uQ2hhbmdlcywgSW5wdXQsIFNpbXBsZUNoYW5nZSwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbmltcG9ydCB7IEF5dWRhU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9heXVkYS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UsIFNlc3Npb25TaGFyZWRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzXCI7XHJcbmltcG9ydCB7IEJpdERyb3BEb3duR2VuZXJhbENvbXBvbmVudCB9IGZyb20gXCIuL2JpdC1kcm9wZG93bi1nZW5lcmFsLmNvbXBvbmVudFwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IENVU1RPTV9EUk9QRE9XTl9NVUxUSVBMRV9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XHJcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQml0RHJvcERvd25NdWx0aXBsZUNvbXBvbmVudCksXHJcbiAgbXVsdGk6IHRydWVcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDbGFzZSBxdWUgdXRpbGl6YSB1biBjdXN0b20gY29tcG9uZW50ZSBwYXJhIHNlbGVjdCBtw7psdGlwbGUgZGUgZWxlbWVudG9zXHJcbiAqIFV0aWxpemEgbGEgaW50ZXJmYXogQ29udHJvbFZhbHVlQWNjZXNzb3JcclxuICogICAgPGJpdC1zZWxlY3QgW2RvbWFpbl09XCInRE9NQUlOX1RJUE9fTE9HJ1wiIGlkPVwidGlwb2xvZ1wiIFtjb250cm9sXT1cImZvcm1Db250cm9sXCJcIj4mbmJzcDsmbmJzcDtUaXB1cyBkJ29wZXJhY2nDszwvYml0LXNlbGVjdD5cclxuICpcclxuICogQGlucHV0IGRhdGE6IGFycmF5IGRlIG9iamV0b3MgYSBtb3N0cmFyIGVuIGVsIHNlbGVjdC4gUHVlZGUgc2VyIG51bGwsIGVuIGN1eW8gY2FzbyBkb21haW4gbm8gcHVlZGUgc2VyIG51bGxcclxuICogQGlucHV0IGRvbWFpbjogbm9tYnJlIGRlbCBkb21pbmlvIHF1ZSBjb250aWVuZSBsb3MgZGF0b3MgeSBxdWUgbm9zIHJlc29sdmVyw6EgbGEgcMOhZ2luYSBjdWFuZG8gY2FyZ3VlIGVsIGNvbXBvbmVudGUuIFB1ZWRlIHNlciBudWxsLCBlbiBjdXlvIGNhc28gZGF0YSBubyBwdWVkZSBzZXIgbnVsbFxyXG4gKiBAaW5wdXQgaWQ6IGlkZW50aWZpY2Fkb3IgZGVsIGNvbXBvbmVudGUgc2VsZWN0XHJcbiAqKi9cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImJpdC1kcm9wZG93bi1tdWx0aXBsZVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcImJpdC1kcm9wZG93bi1tdWx0aXBsZS5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHByb3ZpZGVyczogW0NVU1RPTV9EUk9QRE9XTl9NVUxUSVBMRV9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQml0RHJvcERvd25NdWx0aXBsZUNvbXBvbmVudCBleHRlbmRzIEJpdERyb3BEb3duR2VuZXJhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgbWF4U2VsZWN0ZWRMYWJlbHM6IG51bWJlciA9IDM7XHJcbiAgQElucHV0KCkgc2hvd1NlcGFyYXRlU2VsZWN0ZWRMYWJlbHM6IGJvb2xlYW4gPSBmYWxzZTsgLy8gaW5kaWNhIHNpIHNlIG11ZXN0cmFuIGxvcyBlbGVtZW50b3Mgc2VsZWNjaW9uYWRvcyBlbiB1bmEgY29sdW1uYSBzZXBhcmFkYVxyXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7IC8vdMOtdHVsbyBxdWUgYXBhcmVjZSBlbiBlbCBsaW5rIHBhcmEgZWxpbWluYXIgdW4gZWxlbWVudG8gdW5hIHZleiBzZWxlY2Npb25hZG9cclxuICBASW5wdXQoKSBmaWx0ZXI6IGJvb2xlYW47XHJcbiAgLy8gU2kgc2UgcHVlZGVuIHNlbGVjY2lvbmFyIG11Y2hvcyBlbGVtZW50b3MsIHF1ZSBlbCBsYWJlbCBkZSBsb3MgZWxlbWVudG9zIHNlbGVjY2lvbmFkb3Mgbm9cclxuICAvLyBhcGFyZXpjYSBkZW50cm8gZGVsIHNlbGVjdCwgeSBoYWNlcmxvIGNvbW8gdW5hIGxpc3RhIGZ1ZXJhIGRlbCBzZWxlY3QuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcm90ZWN0ZWQgc2Vzc2lvblNoYXJlZDogU2Vzc2lvblNoYXJlZFNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgYXl1ZGFTZXJ2aWNlOiBBeXVkYVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKHJvdXRlciwgc2Vzc2lvblNoYXJlZCwgYXl1ZGFTZXJ2aWNlLCBjaGFuZ2VEZXRlY3RvclJlZiwgdHJhbnNsYXRlU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiB7IFtwcm9wS2V5OiBzdHJpbmddOiBTaW1wbGVDaGFuZ2UgfSkge1xyXG4gICAgZm9yIChsZXQgcHJvcE5hbWUgaW4gY2hhbmdlcykge1xyXG4gICAgICBsZXQgY2hhbmdlZFByb3AgPSBjaGFuZ2VzW3Byb3BOYW1lXTtcclxuICAgICAgaWYgKHByb3BOYW1lID09PSBcImRhdGFcIikge1xyXG4gICAgICAgIHRoaXMubGlzdGFPcGNpb25lcyA9IGNoYW5nZWRQcm9wLmN1cnJlbnRWYWx1ZSA/IGNoYW5nZWRQcm9wLmN1cnJlbnRWYWx1ZS5zbGljZSgpIDogW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCB2YWx1ZV9sZWN0dXJhKCk6IGFueSB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy52YWx1ZTtcclxuICAgIGxldCBsYWJlbHM6IGFueVtdID0gdGhpcy5saXN0YU9wY2lvbmVzICYmIHRoaXMubGlzdGFPcGNpb25lcy5maWx0ZXIoKGQpID0+IHZhbCAmJiB2YWwuaW5kZXhPZihkLnZhbHVlKSA+IC0xKS5tYXAoKGQpID0+IGQubGFiZWwpO1xyXG4gICAgcmV0dXJuIGxhYmVscyA/IGxhYmVscy5qb2luKFwiLCBcIikgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgbGFiZWxTZWxlY3RlZEl0ZW0oaWQpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubGlzdGFPcGNpb25lcy5maW5kKChjKSA9PiBjLnZhbHVlID09IGlkKS5sYWJlbDtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVNlbGVjdGVkSXRlbShldmVudCwgaXRlbSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGxldCBpbmRleCA9IHRoaXMudmFsdWUuaW5kZXhPZihpdGVtKTtcclxuICAgIHRoaXMudmFsdWUuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIC8vIHNlIGNsb25hIGVsIGFycmF5LiBTaSBubywgZWwgdGV4dG8gXCJ7MH0gZWxlbWVudG9zIHNlbGVjY2lvbmFkb3NcIiBkZWwgc2VsZWN0IGRlIFByaW1lIG5vIHNlIGFjdHVhbGl6YS5cclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLnNsaWNlKDApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicm93IHNlcGFyYWRvclwiICpuZ0lmPVwic2hvd1NlcGFyYXRlU2VsZWN0ZWRMYWJlbHM7IGVsc2Ugbm9ybWFsQml0U2VsZWN0TXVsdGlwbGVcIj5cclxuICAgIDxkaXY+IDwhLS0gY2xhc3M9XCJjb2wtc20tNFwiLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5vcm1hbEJpdFNlbGVjdE11bHRpcGxlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXY+PCEtLSBlbGVtZW50b3Mgc2VsZWNjaW9uYWRvcyAtLT5cclxuICAgICAgICA8bGFiZWw+Jm5ic3A7PC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXVsdGlzZWxlY3QtbGFiZWxzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbCBsYWJlbC1wcmltYXJ5IG11bHRpc2VsZWN0LWxhYmVscy1sZ1wiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHZhbHVlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7bGFiZWxTZWxlY3RlZEl0ZW0oaXRlbSl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGEgKGNsaWNrKT1cImRlbGV0ZVNlbGVjdGVkSXRlbSgkZXZlbnQsIGl0ZW0pXCIgdGl0bGU9XCJ7e3RpdGxlfX19XCI+IDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIj48L2k+PC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlICNub3JtYWxCaXRTZWxlY3RNdWx0aXBsZT5cclxuICAgIDxsYWJlbCAqbmdJZj1cIiFoaWRlTGFiZWxcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+Jm5ic3A7PHNwYW4gKm5nSWY9XCJvYmxpZ2F0b3Jpb1wiIGNsYXNzPVwiZmEgZmEtYXN0ZXJpc2tcIj48L3NwYW4+Jm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgPGkgKm5nSWY9XCJheXVkYVwiIChjbGljayk9XCJzaG93QXl1ZGEoKVwiIGNsYXNzPVwiYnRuLWF5dWRhIGZhIGZhLXF1ZXN0aW9uXCI+PC9pPlxyXG4gICAgPC9sYWJlbD5cclxuICAgIDxwICpuZ0lmPVwicmVhZE9ubHlcIiBjbGFzcz1cImxlY3R1cmFcIj57e3ZhbHVlX2xlY3R1cmF9fTwvcD5cclxuICAgIDxkaXYgKm5nSWY9XCIhcmVhZE9ubHlcIj5cclxuICAgICAgICA8cC1tdWx0aVNlbGVjdCBcclxuICAgICAgICAgICAgKm5nSWY9XCIhcmVhZE9ubHlcIiBcclxuICAgICAgICAgICAgaWQ9XCJ7e2lkfX1cIlxyXG4gICAgICAgICAgICBbZmlsdGVyXT1cImZpbHRlclwiIFxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCIgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cImxpc3RhT3BjaW9uZXNcIiBcclxuICAgICAgICAgICAgW2RlZmF1bHRMYWJlbF09XCJlbXB0eVRleHRcIiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgW21heFNlbGVjdGVkTGFiZWxzXT1cIm1heFNlbGVjdGVkTGFiZWxzXCJcclxuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtc0xhYmVsPVwiezB9IGVsZW1lbnRzIHNlbGVjY2lvbmF0c1wiXHJcbiAgICAgICAgICAgIChvbkZvY3VzKT1cIm9uRm9jdXMoKVwiIFxyXG4gICAgICAgICAgICAob25CbHVyKT1cIm9uQmx1cigpXCI+ICAgICAgICAgICAgIFxyXG4gICAgICAgIDwvcC1tdWx0aVNlbGVjdD5cclxuICAgIDxjb250cm9sLW1lc3NhZ2VzICpuZ0lmPVwiY29udHJvbCE9bnVsbFwiIFtjb250cm9sXT1cImNvbnRyb2xcIiBbZmllbGRdPVwiaWRcIj48L2NvbnRyb2wtbWVzc2FnZXM+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0LWRyb3Bkb3duLW11bHRpcGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JpdC1uZy1saWJyYXJ5L3NyYy9saWIvc2hhcmVkbGlicmFyeS9jb21wb25lbnRzL2Zvcm0vZHJvcGRvd24vYml0LWRyb3Bkb3duLW11bHRpcGxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JpdC1uZy1saWJyYXJ5L3NyYy9saWIvc2hhcmVkbGlicmFyeS9jb21wb25lbnRzL2Zvcm0vZHJvcGRvd24vYml0LWRyb3Bkb3duLW11bHRpcGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSW5ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7OztBQUUvRSxNQUFNLENBQUMsTUFBTSwrQ0FBK0MsR0FBUTtJQUNsRSxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7SUFDM0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUY7Ozs7Ozs7O0lBUUk7QUFPSixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsMkJBQTJCO0lBSzNFLDRGQUE0RjtJQUM1Rix5RUFBeUU7SUFFekUsWUFDWSxNQUFzQixFQUN0QixhQUFtQyxFQUNuQyxZQUEwQixFQUMxQixpQkFBb0MsRUFDcEMsZ0JBQWtDO1FBRTVDLEtBQUssQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBTnRFLFdB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S0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7O3lIQWpFVSw0QkFBNEI7NkdBQTVCLDRCQUE0QixnTUFGNUIsQ0FBQywrQ0FBK0MsQ0FBQyxzRUMxQjlELDByREFtQ0E7MkZEUGEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLHVCQUF1QixhQUV0QixDQUFDLCtDQUErQyxDQUFDO2tPQUduRCxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IEF5dWRhU2VydmljZSwgU2Vzc2lvblNoYXJlZFNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEJpdERyb3BEb3duR2VuZXJhbENvbXBvbmVudCB9IGZyb20gJy4vYml0LWRyb3Bkb3duLWdlbmVyYWwuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBjb25zdCBDVVNUT01fRFJPUERPV05fTVVMVElQTEVfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJpdERyb3BEb3duTXVsdGlwbGVDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG4vKipcclxuICogQ2xhc2UgcXVlIHV0aWxpemEgdW4gY3VzdG9tIGNvbXBvbmVudGUgcGFyYSBzZWxlY3QgbcO6bHRpcGxlIGRlIGVsZW1lbnRvc1xyXG4gKiBVdGlsaXphIGxhIGludGVyZmF6IENvbnRyb2xWYWx1ZUFjY2Vzc29yXHJcbiAqICAgIDxiaXQtc2VsZWN0IFtkb21haW5dPVwiJ0RPTUFJTl9USVBPX0xPRydcIiBpZD1cInRpcG9sb2dcIiBbY29udHJvbF09XCJmb3JtQ29udHJvbFwiXCI+Jm5ic3A7Jm5ic3A7VGlwdXMgZCdvcGVyYWNpw7M8L2JpdC1zZWxlY3Q+XHJcbiAqXHJcbiAqIEBpbnB1dCBkYXRhOiBhcnJheSBkZSBvYmpldG9zIGEgbW9zdHJhciBlbiBlbCBzZWxlY3QuIFB1ZWRlIHNlciBudWxsLCBlbiBjdXlvIGNhc28gZG9tYWluIG5vIHB1ZWRlIHNlciBudWxsXHJcbiAqIEBpbnB1dCBkb21haW46IG5vbWJyZSBkZWwgZG9taW5pbyBxdWUgY29udGllbmUgbG9zIGRhdG9zIHkgcXVlIG5vcyByZXNvbHZlcsOhIGxhIHDDoWdpbmEgY3VhbmRvIGNhcmd1ZSBlbCBjb21wb25lbnRlLiBQdWVkZSBzZXIgbnVsbCwgZW4gY3V5byBjYXNvIGRhdGEgbm8gcHVlZGUgc2VyIG51bGxcclxuICogQGlucHV0IGlkOiBpZGVudGlmaWNhZG9yIGRlbCBjb21wb25lbnRlIHNlbGVjdFxyXG4gKiovXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJiaXQtZHJvcGRvd24tbXVsdGlwbGVcIixcclxuICB0ZW1wbGF0ZVVybDogXCJiaXQtZHJvcGRvd24tbXVsdGlwbGUuY29tcG9uZW50Lmh0bWxcIixcclxuICBwcm92aWRlcnM6IFtDVVNUT01fRFJPUERPV05fTVVMVElQTEVfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJpdERyb3BEb3duTXVsdGlwbGVDb21wb25lbnQgZXh0ZW5kcyBCaXREcm9wRG93bkdlbmVyYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIG1heFNlbGVjdGVkTGFiZWxzOiBudW1iZXIgPSAzO1xyXG4gIEBJbnB1dCgpIHNob3dTZXBhcmF0ZVNlbGVjdGVkTGFiZWxzOiBib29sZWFuID0gZmFsc2U7IC8vIGluZGljYSBzaSBzZSBtdWVzdHJhbiBsb3MgZWxlbWVudG9zIHNlbGVjY2lvbmFkb3MgZW4gdW5hIGNvbHVtbmEgc2VwYXJhZGFcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nOyAvL3TDrXR1bG8gcXVlIGFwYXJlY2UgZW4gZWwgbGluayBwYXJhIGVsaW1pbmFyIHVuIGVsZW1lbnRvIHVuYSB2ZXogc2VsZWNjaW9uYWRvXHJcbiAgQElucHV0KCkgZmlsdGVyOiBib29sZWFuO1xyXG4gIC8vIFNpIHNlIHB1ZWRlbiBzZWxlY2Npb25hciBtdWNob3MgZWxlbWVudG9zLCBxdWUgZWwgbGFiZWwgZGUgbG9zIGVsZW1lbnRvcyBzZWxlY2Npb25hZG9zIG5vXHJcbiAgLy8gYXBhcmV6Y2EgZGVudHJvIGRlbCBzZWxlY3QsIHkgaGFjZXJsbyBjb21vIHVuYSBsaXN0YSBmdWVyYSBkZWwgc2VsZWN0LlxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCByb3V0ZXI6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJvdGVjdGVkIHNlc3Npb25TaGFyZWQ6IFNlc3Npb25TaGFyZWRTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGF5dWRhU2VydmljZTogQXl1ZGFTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihyb3V0ZXIsIHNlc3Npb25TaGFyZWQsIGF5dWRhU2VydmljZSwgY2hhbmdlRGV0ZWN0b3JSZWYsIHRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogeyBbcHJvcEtleTogc3RyaW5nXTogU2ltcGxlQ2hhbmdlIH0pIHtcclxuICAgIGxldCBoYXlDYW1iaW9zOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBwcm9wTmFtZSBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgIGxldCBjaGFuZ2VkUHJvcCA9IGNoYW5nZXNbcHJvcE5hbWVdO1xyXG4gICAgICBpZiAocHJvcE5hbWUgPT09IFwiZGF0YVwiKSB7XHJcbiAgICAgICAgdGhpcy5saXN0YU9wY2lvbmVzID0gY2hhbmdlZFByb3AuY3VycmVudFZhbHVlID8gY2hhbmdlZFByb3AuY3VycmVudFZhbHVlLnNsaWNlKCkgOiBbXTtcclxuICAgICAgICBoYXlDYW1iaW9zID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIGlmIChwcm9wTmFtZSA9PT0gXCJleGNsdWRlZFZhbHVlc1wiKSB7XHJcbiAgICAgICAgdGhpcy5leGNsdWRlZFZhbHVlcyA9IGNoYW5nZWRQcm9wLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICBoYXlDYW1iaW9zID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIGlmIChwcm9wTmFtZSA9PT0gXCJpbmNsdWRlRW1wdHlcIikge1xyXG4gICAgICAgIHRoaXMuaW5jbHVkZUVtcHR5ID0gY2hhbmdlZFByb3AuY3VycmVudFZhbHVlO1xyXG4gICAgICAgIGhheUNhbWJpb3MgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoaGF5Q2FtYmlvcykge1xyXG4gICAgICB0aGlzLnBvc3RSZXRyaWV2ZURhdGEoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCB2YWx1ZV9sZWN0dXJhKCk6IGFueSB7XHJcbiAgICBsZXQgdmFsID0gdGhpcy52YWx1ZTtcclxuICAgIGxldCBsYWJlbHM6IGFueVtdID0gdGhpcy5saXN0YU9wY2lvbmVzICYmIHRoaXMubGlzdGFPcGNpb25lcy5maWx0ZXIoKGQpID0+IHZhbCAmJiB2YWwuaW5kZXhPZihkLnZhbHVlKSA+IC0xKS5tYXAoKGQpID0+IGQubGFiZWwpO1xyXG4gICAgcmV0dXJuIGxhYmVscyA/IGxhYmVscy5qb2luKFwiLCBcIikgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgbGFiZWxTZWxlY3RlZEl0ZW0oaWQpOiBzdHJpbmcge1xyXG4gICAgbGV0IGxhYmVsOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgaWYgKHRoaXMubGlzdGFPcGNpb25lcykge1xyXG4gICAgICBsZXQgc2VsZWN0ZWQgPSB0aGlzLmxpc3RhT3BjaW9uZXMuZmluZCgoYykgPT4gYy52YWx1ZSA9PSBpZCk7XHJcbiAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgIGxhYmVsID0gc2VsZWN0ZWQubGFiZWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBsYWJlbDtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVNlbGVjdGVkSXRlbShldmVudCwgaXRlbSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGxldCBpbmRleCA9IHRoaXMudmFsdWUuaW5kZXhPZihpdGVtKTtcclxuICAgIHRoaXMudmFsdWUuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIC8vIHNlIGNsb25hIGVsIGFycmF5LiBTaSBubywgZWwgdGV4dG8gXCJ7MH0gZWxlbWVudG9zIHNlbGVjY2lvbmFkb3NcIiBkZWwgc2VsZWN0IGRlIFByaW1lIG5vIHNlIGFjdHVhbGl6YS5cclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLnNsaWNlKDApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicm93IHNlcGFyYWRvclwiICpuZ0lmPVwic2hvd1NlcGFyYXRlU2VsZWN0ZWRMYWJlbHM7IGVsc2Ugbm9ybWFsQml0U2VsZWN0TXVsdGlwbGVcIj5cclxuICAgIDxkaXY+IDwhLS0gY2xhc3M9XCJjb2wtc20tNFwiLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5vcm1hbEJpdFNlbGVjdE11bHRpcGxlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXY+PCEtLSBlbGVtZW50b3Mgc2VsZWNjaW9uYWRvcyAtLT5cclxuICAgICAgICA8bGFiZWw+Jm5ic3A7PC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXVsdGlzZWxlY3QtbGFiZWxzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbCBsYWJlbC1wcmltYXJ5IG11bHRpc2VsZWN0LWxhYmVscy1sZ1wiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHZhbHVlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7bGFiZWxTZWxlY3RlZEl0ZW0oaXRlbSl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGEgKGNsaWNrKT1cImRlbGV0ZVNlbGVjdGVkSXRlbSgkZXZlbnQsIGl0ZW0pXCIgdGl0bGU9XCJ7e3RpdGxlfX19XCI+IDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIj48L2k+PC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlICNub3JtYWxCaXRTZWxlY3RNdWx0aXBsZT5cclxuICAgIDxsYWJlbCAqbmdJZj1cIiFoaWRlTGFiZWxcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+Jm5ic3A7PHNwYW4gKm5nSWY9XCJvYmxpZ2F0b3Jpb1wiIGNsYXNzPVwiZmEgZmEtYXN0ZXJpc2tcIj48L3NwYW4+Jm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgPGkgKm5nSWY9XCJheXVkYVwiIChjbGljayk9XCJzaG93QXl1ZGEoKVwiIGNsYXNzPVwiYnRuLWF5dWRhIGZhIGZhLXF1ZXN0aW9uXCI+PC9pPlxyXG4gICAgPC9sYWJlbD5cclxuICAgIDxwICpuZ0lmPVwicmVhZE9ubHlcIiBjbGFzcz1cImxlY3R1cmFcIj57e3ZhbHVlX2xlY3R1cmF9fTwvcD5cclxuICAgIDxkaXYgKm5nSWY9XCIhcmVhZE9ubHlcIj5cclxuICAgICAgICA8cC1tdWx0aVNlbGVjdFxyXG4gICAgICAgICAgICAqbmdJZj1cIiFyZWFkT25seVwiXHJcbiAgICAgICAgICAgIGlkPVwie3tpZH19XCJcclxuICAgICAgICAgICAgW2ZpbHRlcl09XCJmaWx0ZXJcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgW29wdGlvbnNdPVwibGlzdGFPcGNpb25lc1wiXHJcbiAgICAgICAgICAgIFtkZWZhdWx0TGFiZWxdPVwiZW1wdHlUZXh0UmVzb2x2ZWRcIlxyXG4gICAgICAgICAgICBbbWF4U2VsZWN0ZWRMYWJlbHNdPVwibWF4U2VsZWN0ZWRMYWJlbHNcIlxyXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zTGFiZWw9XCJ7MH0gZWxlbWVudHMgc2VsZWNjaW9uYXRzXCJcclxuICAgICAgICAgICAgKG9uRm9jdXMpPVwib25Gb2N1cygpXCJcclxuICAgICAgICAgICAgKG9uQmx1cik9XCJvbkJsdXIoKVwiPlxyXG4gICAgICAgIDwvcC1tdWx0aVNlbGVjdD5cclxuICAgIDxjb250cm9sLW1lc3NhZ2VzICpuZ0lmPVwiY29udHJvbCE9bnVsbFwiIFtjb250cm9sXT1cImNvbnRyb2xcIiBbZmllbGRdPVwiaWRcIj48L2NvbnRyb2wtbWVzc2FnZXM+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|