bit-ng-library 13.1.10 → 13.1.13

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 CHANGED
@@ -26,15 +26,27 @@ 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
- ## [13.1.9] - 2022-07-13
29
+ ## [13.1.13] - 2022-07-15
30
30
 
31
- Correcciones BitDropDownComponent tras pruebas: Emitir evento onChange cuando cambie el value del FormControl. Tampoco no extiende BitCustomComponent (V2).
31
+ Fix BitDropdown. No se muestran las opciones si se sobreescribe el atributo atributoLabel.
32
+
33
+ ## [13.1.12] - 2022-07-14
34
+
35
+ Fix BitDropdown. Es posible que los atributos label/value de la lista de opciones se sobreescriban y se ha de tener en cuenta al generar la primera opción.
36
+
37
+ ## [13.1.11] - 2022-07-14
38
+
39
+ Fixes BitDropdown y BitDropDownMultiple. Valor lectura y bug eliminación de opciones seleccionadas en dropdown múltiple.
32
40
 
33
41
  ## [13.1.10] - 2022-07-14
34
42
 
35
43
  Cambios BitDropDownMultipleComponent para que no implemente ControlValueAccessor.
36
44
  Corrección template BitDropDownComponent para usar [formControl]="control" y no [formControl]="myForm.controls[nombre]".
37
45
 
46
+ ## [13.1.9] - 2022-07-13
47
+
48
+ Correcciones BitDropDownComponent tras pruebas: Emitir evento onChange cuando cambie el value del FormControl. Tampoco no extiende BitCustomComponent (V2).
49
+
38
50
  ## [13.1.8] - 2022-07-13
39
51
 
40
52
  Cambios BitDropDownComponent para que no implemente ControlValueAccessor.
@@ -61,16 +61,31 @@ export class BitDropDownMultipleComponent extends BitDropDownGeneralV2Component
61
61
  deleteSelectedItem(event, item) {
62
62
  event.preventDefault();
63
63
  let index = this.control.value.indexOf(item);
64
- let newValue = this.control.value.splice(index, 1);
64
+ var currentValue = this.control.value;
65
+ currentValue.splice(index, 1);
65
66
  // se clona el array. Si no, el texto "{0} elementos seleccionados" del select de Prime no se actualiza.
66
- this.control.setValue(newValue.slice(0));
67
+ this.control.setValue(currentValue.slice(0));
68
+ }
69
+ get value_lectura() {
70
+ let vals = this.control.value;
71
+ if (!!vals) {
72
+ let value = [];
73
+ for (var val of vals) {
74
+ let opcion = this.listaOpciones.find((d) => d.value == val);
75
+ if (opcion) {
76
+ value.push(opcion.label);
77
+ }
78
+ }
79
+ return value.join(", ");
80
+ }
81
+ return "";
67
82
  }
68
83
  }
69
84
  BitDropDownMultipleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: BitDropDownMultipleComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.SessionSharedService }, { token: i2.AyudaService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
70
- BitDropDownMultipleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: BitDropDownMultipleComponent, selector: "bit-dropdown-multiple", inputs: { maxSelectedLabels: "maxSelectedLabels", showSeparateSelectedLabels: "showSeparateSelectedLabels", title: "title", filter: "filter" }, 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>&nbsp;</label>\r\n <div class=\"multiselect-labels\">\r\n <div class=\"label label-primary multiselect-labels-lg\" *ngFor=\"let item of control.value\">\r\n <span>{{labelSelectedItem(item)}}</span>\r\n &nbsp;&nbsp;\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>&nbsp;<span *ngIf=\"obligatorio\" class=\"fa fa-asterisk\"></span>&nbsp;&nbsp;\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 [formGroup]=\"myForm\" *ngIf=\"!readOnly\">\r\n <p-multiSelect\r\n id=\"{{id}}\"\r\n [options]=\"listaOpciones\"\r\n [formControl]=\"control\"\r\n \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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
85
+ BitDropDownMultipleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: BitDropDownMultipleComponent, selector: "bit-dropdown-multiple", inputs: { maxSelectedLabels: "maxSelectedLabels", showSeparateSelectedLabels: "showSeparateSelectedLabels", title: "title", filter: "filter" }, 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>&nbsp;</label>\r\n <div class=\"multiselect-labels\">\r\n <div class=\"label label-primary multiselect-labels-lg\" *ngFor=\"let item of control.value\">\r\n <span>{{labelSelectedItem(item)}}</span>\r\n <ng-container *ngIf=\"!readOnly\">\r\n &nbsp;&nbsp;\r\n <a (click)=\"deleteSelectedItem($event, item)\" title=\"{{title}}\"><i class=\"fa fa-times\"></i></a>\r\n </ng-container>\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>&nbsp;<span *ngIf=\"obligatorio\" class=\"fa fa-asterisk\"></span>&nbsp;&nbsp;\r\n <i *ngIf=\"ayuda\" (click)=\"showAyuda()\" class=\"btn-ayuda fa fa-question\"></i>\r\n </label>\r\n <p *ngIf=\"readOnly && !showSeparateSelectedLabels\" class=\"lectura\">{{value_lectura}}</p>\r\n <div [formGroup]=\"myForm\" *ngIf=\"!readOnly\">\r\n <p-multiSelect\r\n id=\"{{id}}\"\r\n [options]=\"listaOpciones\"\r\n [formControl]=\"control\"\r\n \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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
71
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: BitDropDownMultipleComponent, decorators: [{
72
87
  type: Component,
73
- args: [{ selector: "bit-dropdown-multiple", 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>&nbsp;</label>\r\n <div class=\"multiselect-labels\">\r\n <div class=\"label label-primary multiselect-labels-lg\" *ngFor=\"let item of control.value\">\r\n <span>{{labelSelectedItem(item)}}</span>\r\n &nbsp;&nbsp;\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>&nbsp;<span *ngIf=\"obligatorio\" class=\"fa fa-asterisk\"></span>&nbsp;&nbsp;\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 [formGroup]=\"myForm\" *ngIf=\"!readOnly\">\r\n <p-multiSelect\r\n id=\"{{id}}\"\r\n [options]=\"listaOpciones\"\r\n [formControl]=\"control\"\r\n \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" }]
88
+ args: [{ selector: "bit-dropdown-multiple", 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>&nbsp;</label>\r\n <div class=\"multiselect-labels\">\r\n <div class=\"label label-primary multiselect-labels-lg\" *ngFor=\"let item of control.value\">\r\n <span>{{labelSelectedItem(item)}}</span>\r\n <ng-container *ngIf=\"!readOnly\">\r\n &nbsp;&nbsp;\r\n <a (click)=\"deleteSelectedItem($event, item)\" title=\"{{title}}\"><i class=\"fa fa-times\"></i></a>\r\n </ng-container>\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>&nbsp;<span *ngIf=\"obligatorio\" class=\"fa fa-asterisk\"></span>&nbsp;&nbsp;\r\n <i *ngIf=\"ayuda\" (click)=\"showAyuda()\" class=\"btn-ayuda fa fa-question\"></i>\r\n </label>\r\n <p *ngIf=\"readOnly && !showSeparateSelectedLabels\" class=\"lectura\">{{value_lectura}}</p>\r\n <div [formGroup]=\"myForm\" *ngIf=\"!readOnly\">\r\n <p-multiSelect\r\n id=\"{{id}}\"\r\n [options]=\"listaOpciones\"\r\n [formControl]=\"control\"\r\n \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" }]
74
89
  }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.SessionSharedService }, { type: i2.AyudaService }, { type: i2.TranslateService }]; }, propDecorators: { maxSelectedLabels: [{
75
90
  type: Input
76
91
  }], showSeparateSelectedLabels: [{
@@ -80,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
80
95
  }], filter: [{
81
96
  type: Input
82
97
  }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0LWRyb3Bkb3duLW11bHRpcGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JpdC1uZy1saWJyYXJ5L3NyYy9saWIvc2hhcmVkbGlicmFyeS9jb21wb25lbnRzL2Zvcm0vZHJvcGRvd24vYml0LWRyb3Bkb3duLW11bHRpcGxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JpdC1uZy1saWJyYXJ5L3NyYy9saWIvc2hhcmVkbGlicmFyeS9jb21wb25lbnRzL2Zvcm0vZHJvcGRvd24vYml0LWRyb3Bkb3duLW11bHRpcGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUEyQixNQUFNLGVBQWUsQ0FBQztBQUkxRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7QUFFcEY7Ozs7Ozs7SUFPSTtBQU1KLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSw2QkFBNkI7SUFLN0UsNEZBQTRGO0lBQzVGLHlFQUF5RTtJQUV6RSxZQUNZLE1BQXNCLEVBQ3RCLGFBQW1DLEVBQ25DLFlBQTBCLEVBQzFCLGdCQUFrQztRQUU1QyxLQUFLLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUxuRCxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVhyQyxzQkFBaUIsR0FBVyxDQUFDLENBQUM7UUFDOUIsK0JBQTBCLEdBQVksS0FBSyxDQUFDLENBQUMsNEVBQTRFO0lBYWxJLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBNEM7UUFDdEQsSUFBSSxVQUFVLEdBQVksS0FBSyxDQUFDO1FBQ2hDLEtBQUssSUFBSSxRQUFRLElBQUksT0FBTyxFQUFFO1lBQzVCLElBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQyxJQUFJLFFBQVEsS0FBSyxNQUFNLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN0RixVQUFVLEdBQUcsSUFBSSxDQUFDO2FBQ25CO2lCQUFNLElBQUksUUFBUSxLQUFLLGdCQUFnQixFQUFFO2dCQUN4QyxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUM7Z0JBQy9DLFVBQVUsR0FBRyxJQUFJLENBQUM7YUFDbkI7aUJBQU0sSUFBSSxRQUFRLEtBQUssY0FBYyxFQUFFO2dCQUN0QyxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUM7Z0JBQzdDLFVBQVUsR0FBRyxJQUFJLENBQUM7YUFDbkI7U0FDRjtRQUNELElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBRTtRQUNsQixJQUFJLEtBQUssR0FBVyxFQUFFLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzdELElBQUksUUFBUSxFQUFFO2dCQUNaLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO2FBQ3hCO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsSUFBSTtRQUM1QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkQsd0dBQXdHO1FBQ3hHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDOzt5SEF0RFUsNEJBQTRCOzZHQUE1Qiw0QkFBNEIseVBDbkJ6Qyxxc0RBbUNBOzJGRGhCYSw0QkFBNEI7a0JBSnhDLFNBQVM7K0JBQ0UsdUJBQXVCO2tNQUl4QixpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBBeXVkYVNlcnZpY2UsIFNlc3Npb25TaGFyZWRTZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBCaXREcm9wRG93bkdlbmVyYWxWMkNvbXBvbmVudCB9IGZyb20gXCIuL2JpdC1kcm9wZG93bi1nZW5lcmFsLXYyLmNvbXBvbmVudFwiO1xyXG5cclxuLyoqXHJcbiAqIENsYXNlIHF1ZSB1dGlsaXphIHVuIGN1c3RvbSBjb21wb25lbnRlIHBhcmEgc2VsZWN0IG3Dumx0aXBsZSBkZSBlbGVtZW50b3NcclxuICogICAgPGJpdC1kcm9wZG93bi1tdWx0aXBsZSBbZG9tYWluXT1cIidET01BSU5fVElQT19MT0cnXCIgaWQ9XCJ0aXBvbG9nXCIgW2NvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlwiPiZuYnNwOyZuYnNwO1RpcHVzIGQnb3BlcmFjacOzPC9iaXQtZHJvcGRvd24tbXVsdGlwbGU+XHJcbiAqXHJcbiAqIEBpbnB1dCBkYXRhOiBhcnJheSBkZSBvYmpldG9zIGEgbW9zdHJhciBlbiBlbCBzZWxlY3QuIFB1ZWRlIHNlciBudWxsLCBlbiBjdXlvIGNhc28gZG9tYWluIG5vIHB1ZWRlIHNlciBudWxsXHJcbiAqIEBpbnB1dCBkb21haW46IG5vbWJyZSBkZWwgZG9taW5pbyBxdWUgY29udGllbmUgbG9zIGRhdG9zIHkgcXVlIG5vcyByZXNvbHZlcsOhIGxhIHDDoWdpbmEgY3VhbmRvIGNhcmd1ZSBlbCBjb21wb25lbnRlLiBQdWVkZSBzZXIgbnVsbCwgZW4gY3V5byBjYXNvIGRhdGEgbm8gcHVlZGUgc2VyIG51bGxcclxuICogQGlucHV0IGlkOiBpZGVudGlmaWNhZG9yIGRlbCBjb21wb25lbnRlIHNlbGVjdFxyXG4gKiovXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJiaXQtZHJvcGRvd24tbXVsdGlwbGVcIixcclxuICB0ZW1wbGF0ZVVybDogXCJiaXQtZHJvcGRvd24tbXVsdGlwbGUuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQml0RHJvcERvd25NdWx0aXBsZUNvbXBvbmVudCBleHRlbmRzIEJpdERyb3BEb3duR2VuZXJhbFYyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBtYXhTZWxlY3RlZExhYmVsczogbnVtYmVyID0gMztcclxuICBASW5wdXQoKSBzaG93U2VwYXJhdGVTZWxlY3RlZExhYmVsczogYm9vbGVhbiA9IGZhbHNlOyAvLyBpbmRpY2Egc2kgc2UgbXVlc3RyYW4gbG9zIGVsZW1lbnRvcyBzZWxlY2Npb25hZG9zIGVuIHVuYSBjb2x1bW5hIHNlcGFyYWRhXHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZzsgLy90w610dWxvIHF1ZSBhcGFyZWNlIGVuIGVsIGxpbmsgcGFyYSBlbGltaW5hciB1biBlbGVtZW50byB1bmEgdmV6IHNlbGVjY2lvbmFkb1xyXG4gIEBJbnB1dCgpIGZpbHRlcjogYm9vbGVhbjtcclxuICAvLyBTaSBzZSBwdWVkZW4gc2VsZWNjaW9uYXIgbXVjaG9zIGVsZW1lbnRvcywgcXVlIGVsIGxhYmVsIGRlIGxvcyBlbGVtZW50b3Mgc2VsZWNjaW9uYWRvcyBub1xyXG4gIC8vIGFwYXJlemNhIGRlbnRybyBkZWwgc2VsZWN0LCB5IGhhY2VybG8gY29tbyB1bmEgbGlzdGEgZnVlcmEgZGVsIHNlbGVjdC5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgcm91dGVyOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByb3RlY3RlZCBzZXNzaW9uU2hhcmVkOiBTZXNzaW9uU2hhcmVkU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBheXVkYVNlcnZpY2U6IEF5dWRhU2VydmljZSxcclxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihyb3V0ZXIsIHNlc3Npb25TaGFyZWQsIGF5dWRhU2VydmljZSwgdHJhbnNsYXRlU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiB7IFtwcm9wS2V5OiBzdHJpbmddOiBTaW1wbGVDaGFuZ2UgfSkge1xyXG4gICAgbGV0IGhheUNhbWJpb3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGZvciAobGV0IHByb3BOYW1lIGluIGNoYW5nZXMpIHtcclxuICAgICAgbGV0IGNoYW5nZWRQcm9wID0gY2hhbmdlc1twcm9wTmFtZV07XHJcbiAgICAgIGlmIChwcm9wTmFtZSA9PT0gXCJkYXRhXCIpIHtcclxuICAgICAgICB0aGlzLmxpc3RhT3BjaW9uZXMgPSBjaGFuZ2VkUHJvcC5jdXJyZW50VmFsdWUgPyBjaGFuZ2VkUHJvcC5jdXJyZW50VmFsdWUuc2xpY2UoKSA6IFtdO1xyXG4gICAgICAgIGhheUNhbWJpb3MgPSB0cnVlO1xyXG4gICAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcImV4Y2x1ZGVkVmFsdWVzXCIpIHtcclxuICAgICAgICB0aGlzLmV4Y2x1ZGVkVmFsdWVzID0gY2hhbmdlZFByb3AuY3VycmVudFZhbHVlO1xyXG4gICAgICAgIGhheUNhbWJpb3MgPSB0cnVlO1xyXG4gICAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcImluY2x1ZGVFbXB0eVwiKSB7XHJcbiAgICAgICAgdGhpcy5pbmNsdWRlRW1wdHkgPSBjaGFuZ2VkUHJvcC5jdXJyZW50VmFsdWU7XHJcbiAgICAgICAgaGF5Q2FtYmlvcyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChoYXlDYW1iaW9zKSB7XHJcbiAgICAgIHRoaXMucG9zdFJldHJpZXZlRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGFiZWxTZWxlY3RlZEl0ZW0oaWQpOiBzdHJpbmcge1xyXG4gICAgbGV0IGxhYmVsOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgaWYgKHRoaXMubGlzdGFPcGNpb25lcykge1xyXG4gICAgICBsZXQgc2VsZWN0ZWQgPSB0aGlzLmxpc3RhT3BjaW9uZXMuZmluZCgoYykgPT4gYy52YWx1ZSA9PSBpZCk7XHJcbiAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgIGxhYmVsID0gc2VsZWN0ZWQubGFiZWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBsYWJlbDtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVNlbGVjdGVkSXRlbShldmVudCwgaXRlbSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGxldCBpbmRleCA9IHRoaXMuY29udHJvbC52YWx1ZS5pbmRleE9mKGl0ZW0pO1xyXG4gICAgbGV0IG5ld1ZhbHVlID0gdGhpcy5jb250cm9sLnZhbHVlLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAvLyBzZSBjbG9uYSBlbCBhcnJheS4gU2kgbm8sIGVsIHRleHRvIFwiezB9IGVsZW1lbnRvcyBzZWxlY2Npb25hZG9zXCIgZGVsIHNlbGVjdCBkZSBQcmltZSBubyBzZSBhY3R1YWxpemEuXHJcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUobmV3VmFsdWUuc2xpY2UoMCkpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicm93IHNlcGFyYWRvclwiICpuZ0lmPVwic2hvd1NlcGFyYXRlU2VsZWN0ZWRMYWJlbHM7IGVsc2Ugbm9ybWFsQml0U2VsZWN0TXVsdGlwbGVcIj5cclxuICAgIDxkaXY+IDwhLS0gY2xhc3M9XCJjb2wtc20tNFwiLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5vcm1hbEJpdFNlbGVjdE11bHRpcGxlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXY+PCEtLSBlbGVtZW50b3Mgc2VsZWNjaW9uYWRvcyAtLT5cclxuICAgICAgICA8bGFiZWw+Jm5ic3A7PC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXVsdGlzZWxlY3QtbGFiZWxzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbCBsYWJlbC1wcmltYXJ5IG11bHRpc2VsZWN0LWxhYmVscy1sZ1wiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRyb2wudmFsdWVcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3tsYWJlbFNlbGVjdGVkSXRlbShpdGVtKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAmbmJzcDsmbmJzcDtcclxuICAgICAgICAgICAgPGEgKGNsaWNrKT1cImRlbGV0ZVNlbGVjdGVkSXRlbSgkZXZlbnQsIGl0ZW0pXCIgdGl0bGU9XCJ7e3RpdGxlfX1cIj48aSBjbGFzcz1cImZhIGZhLXRpbWVzXCI+PC9pPjwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxuZy10ZW1wbGF0ZSAjbm9ybWFsQml0U2VsZWN0TXVsdGlwbGU+XHJcbiAgICA8bGFiZWwgKm5nSWY9XCIhaGlkZUxhYmVsXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiZuYnNwOzxzcGFuICpuZ0lmPVwib2JsaWdhdG9yaW9cIiBjbGFzcz1cImZhIGZhLWFzdGVyaXNrXCI+PC9zcGFuPiZuYnNwOyZuYnNwO1xyXG4gICAgICAgIDxpICpuZ0lmPVwiYXl1ZGFcIiAoY2xpY2spPVwic2hvd0F5dWRhKClcIiBjbGFzcz1cImJ0bi1heXVkYSBmYSBmYS1xdWVzdGlvblwiPjwvaT5cclxuICAgIDwvbGFiZWw+XHJcbiAgICA8cCAqbmdJZj1cInJlYWRPbmx5XCIgY2xhc3M9XCJsZWN0dXJhXCI+e3t2YWx1ZV9sZWN0dXJhfX08L3A+XHJcbiAgICA8ZGl2IFtmb3JtR3JvdXBdPVwibXlGb3JtXCIgKm5nSWY9XCIhcmVhZE9ubHlcIj5cclxuICAgICAgICA8cC1tdWx0aVNlbGVjdFxyXG4gICAgICAgICAgICBpZD1cInt7aWR9fVwiXHJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cImxpc3RhT3BjaW9uZXNcIlxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBbZGVmYXVsdExhYmVsXT1cImVtcHR5VGV4dFJlc29sdmVkXCJcclxuICAgICAgICAgICAgW21heFNlbGVjdGVkTGFiZWxzXT1cIm1heFNlbGVjdGVkTGFiZWxzXCJcclxuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtc0xhYmVsPVwiezB9IGVsZW1lbnRzIHNlbGVjY2lvbmF0c1wiXHJcbiAgICAgICAgICAgIChvbkZvY3VzKT1cIm9uRm9jdXMoKVwiXHJcbiAgICAgICAgICAgIChvbkJsdXIpPVwib25CbHVyKClcIj5cclxuICAgICAgICA8L3AtbXVsdGlTZWxlY3Q+XHJcbiAgICAgICAgPGNvbnRyb2wtbWVzc2FnZXMgKm5nSWY9XCJjb250cm9sIT1udWxsXCIgW2NvbnRyb2xdPVwiY29udHJvbFwiIFtmaWVsZF09XCJpZFwiPjwvY29udHJvbC1tZXNzYWdlcz5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0LWRyb3Bkb3duLW11bHRpcGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JpdC1uZy1saWJyYXJ5L3NyYy9saWIvc2hhcmVkbGlicmFyeS9jb21wb25lbnRzL2Zvcm0vZHJvcGRvd24vYml0LWRyb3Bkb3duLW11bHRpcGxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JpdC1uZy1saWJyYXJ5L3NyYy9saWIvc2hhcmVkbGlicmFyeS9jb21wb25lbnRzL2Zvcm0vZHJvcGRvd24vYml0LWRyb3Bkb3duLW11bHRpcGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUEyQixNQUFNLGVBQWUsQ0FBQztBQUkxRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7QUFFcEY7Ozs7Ozs7SUFPSTtBQU1KLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSw2QkFBNkI7SUFLN0UsNEZBQTRGO0lBQzVGLHlFQUF5RTtJQUV6RSxZQUNZLE1BQXNCLEVBQ3RCLGFBQW1DLEVBQ25DLFlBQTBCLEVBQzFCLGdCQUFrQztRQUU1QyxLQUFLLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUxuRCxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVhyQyxzQkFBaUIsR0FBVyxDQUFDLENBQUM7UUFDOUIsK0JBQTBCLEdBQVksS0FBSyxDQUFDLENBQUMsNEVBQTRFO0lBYWxJLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBNEM7UUFDdEQsSUFBSSxVQUFV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SztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBBeXVkYVNlcnZpY2UsIFNlc3Npb25TaGFyZWRTZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBCaXREcm9wRG93bkdlbmVyYWxWMkNvbXBvbmVudCB9IGZyb20gXCIuL2JpdC1kcm9wZG93bi1nZW5lcmFsLXYyLmNvbXBvbmVudFwiO1xyXG5cclxuLyoqXHJcbiAqIENsYXNlIHF1ZSB1dGlsaXphIHVuIGN1c3RvbSBjb21wb25lbnRlIHBhcmEgc2VsZWN0IG3Dumx0aXBsZSBkZSBlbGVtZW50b3NcclxuICogICAgPGJpdC1kcm9wZG93bi1tdWx0aXBsZSBbZG9tYWluXT1cIidET01BSU5fVElQT19MT0cnXCIgaWQ9XCJ0aXBvbG9nXCIgW2NvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlwiPiZuYnNwOyZuYnNwO1RpcHVzIGQnb3BlcmFjacOzPC9iaXQtZHJvcGRvd24tbXVsdGlwbGU+XHJcbiAqXHJcbiAqIEBpbnB1dCBkYXRhOiBhcnJheSBkZSBvYmpldG9zIGEgbW9zdHJhciBlbiBlbCBzZWxlY3QuIFB1ZWRlIHNlciBudWxsLCBlbiBjdXlvIGNhc28gZG9tYWluIG5vIHB1ZWRlIHNlciBudWxsXHJcbiAqIEBpbnB1dCBkb21haW46IG5vbWJyZSBkZWwgZG9taW5pbyBxdWUgY29udGllbmUgbG9zIGRhdG9zIHkgcXVlIG5vcyByZXNvbHZlcsOhIGxhIHDDoWdpbmEgY3VhbmRvIGNhcmd1ZSBlbCBjb21wb25lbnRlLiBQdWVkZSBzZXIgbnVsbCwgZW4gY3V5byBjYXNvIGRhdGEgbm8gcHVlZGUgc2VyIG51bGxcclxuICogQGlucHV0IGlkOiBpZGVudGlmaWNhZG9yIGRlbCBjb21wb25lbnRlIHNlbGVjdFxyXG4gKiovXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJiaXQtZHJvcGRvd24tbXVsdGlwbGVcIixcclxuICB0ZW1wbGF0ZVVybDogXCJiaXQtZHJvcGRvd24tbXVsdGlwbGUuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQml0RHJvcERvd25NdWx0aXBsZUNvbXBvbmVudCBleHRlbmRzIEJpdERyb3BEb3duR2VuZXJhbFYyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBtYXhTZWxlY3RlZExhYmVsczogbnVtYmVyID0gMztcclxuICBASW5wdXQoKSBzaG93U2VwYXJhdGVTZWxlY3RlZExhYmVsczogYm9vbGVhbiA9IGZhbHNlOyAvLyBpbmRpY2Egc2kgc2UgbXVlc3RyYW4gbG9zIGVsZW1lbnRvcyBzZWxlY2Npb25hZG9zIGVuIHVuYSBjb2x1bW5hIHNlcGFyYWRhXHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZzsgLy90w610dWxvIHF1ZSBhcGFyZWNlIGVuIGVsIGxpbmsgcGFyYSBlbGltaW5hciB1biBlbGVtZW50byB1bmEgdmV6IHNlbGVjY2lvbmFkb1xyXG4gIEBJbnB1dCgpIGZpbHRlcjogYm9vbGVhbjtcclxuICAvLyBTaSBzZSBwdWVkZW4gc2VsZWNjaW9uYXIgbXVjaG9zIGVsZW1lbnRvcywgcXVlIGVsIGxhYmVsIGRlIGxvcyBlbGVtZW50b3Mgc2VsZWNjaW9uYWRvcyBub1xyXG4gIC8vIGFwYXJlemNhIGRlbnRybyBkZWwgc2VsZWN0LCB5IGhhY2VybG8gY29tbyB1bmEgbGlzdGEgZnVlcmEgZGVsIHNlbGVjdC5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgcm91dGVyOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByb3RlY3RlZCBzZXNzaW9uU2hhcmVkOiBTZXNzaW9uU2hhcmVkU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBheXVkYVNlcnZpY2U6IEF5dWRhU2VydmljZSxcclxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihyb3V0ZXIsIHNlc3Npb25TaGFyZWQsIGF5dWRhU2VydmljZSwgdHJhbnNsYXRlU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiB7IFtwcm9wS2V5OiBzdHJpbmddOiBTaW1wbGVDaGFuZ2UgfSkge1xyXG4gICAgbGV0IGhheUNhbWJpb3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGZvciAobGV0IHByb3BOYW1lIGluIGNoYW5nZXMpIHtcclxuICAgICAgbGV0IGNoYW5nZWRQcm9wID0gY2hhbmdlc1twcm9wTmFtZV07XHJcbiAgICAgIGlmIChwcm9wTmFtZSA9PT0gXCJkYXRhXCIpIHtcclxuICAgICAgICB0aGlzLmxpc3RhT3BjaW9uZXMgPSBjaGFuZ2VkUHJvcC5jdXJyZW50VmFsdWUgPyBjaGFuZ2VkUHJvcC5jdXJyZW50VmFsdWUuc2xpY2UoKSA6IFtdO1xyXG4gICAgICAgIGhheUNhbWJpb3MgPSB0cnVlO1xyXG4gICAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcImV4Y2x1ZGVkVmFsdWVzXCIpIHtcclxuICAgICAgICB0aGlzLmV4Y2x1ZGVkVmFsdWVzID0gY2hhbmdlZFByb3AuY3VycmVudFZhbHVlO1xyXG4gICAgICAgIGhheUNhbWJpb3MgPSB0cnVlO1xyXG4gICAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcImluY2x1ZGVFbXB0eVwiKSB7XHJcbiAgICAgICAgdGhpcy5pbmNsdWRlRW1wdHkgPSBjaGFuZ2VkUHJvcC5jdXJyZW50VmFsdWU7XHJcbiAgICAgICAgaGF5Q2FtYmlvcyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChoYXlDYW1iaW9zKSB7XHJcbiAgICAgIHRoaXMucG9zdFJldHJpZXZlRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGFiZWxTZWxlY3RlZEl0ZW0oaWQpOiBzdHJpbmcge1xyXG4gICAgbGV0IGxhYmVsOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgaWYgKHRoaXMubGlzdGFPcGNpb25lcykge1xyXG4gICAgICBsZXQgc2VsZWN0ZWQgPSB0aGlzLmxpc3RhT3BjaW9uZXMuZmluZCgoYykgPT4gYy52YWx1ZSA9PSBpZCk7XHJcbiAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgIGxhYmVsID0gc2VsZWN0ZWQubGFiZWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBsYWJlbDtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVNlbGVjdGVkSXRlbShldmVudCwgaXRlbSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGxldCBpbmRleCA9IHRoaXMuY29udHJvbC52YWx1ZS5pbmRleE9mKGl0ZW0pO1xyXG4gICAgdmFyIGN1cnJlbnRWYWx1ZSA9IHRoaXMuY29udHJvbC52YWx1ZTtcclxuICAgIGN1cnJlbnRWYWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgLy8gc2UgY2xvbmEgZWwgYXJyYXkuIFNpIG5vLCBlbCB0ZXh0byBcInswfSBlbGVtZW50b3Mgc2VsZWNjaW9uYWRvc1wiIGRlbCBzZWxlY3QgZGUgUHJpbWUgbm8gc2UgYWN0dWFsaXphLlxyXG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGN1cnJlbnRWYWx1ZS5zbGljZSgwKSk7XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsdWVfbGVjdHVyYSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IHZhbHMgPSB0aGlzLmNvbnRyb2wudmFsdWU7XHJcbiAgICBpZiAoISF2YWxzKSB7XHJcbiAgICAgIGxldCB2YWx1ZTogYW55W10gPSBbXTtcclxuICAgICAgZm9yICh2YXIgdmFsIG9mIHZhbHMpIHtcclxuICAgICAgICBsZXQgb3BjaW9uID0gdGhpcy5saXN0YU9wY2lvbmVzLmZpbmQoKGQpID0+IGQudmFsdWUgPT0gdmFsKTtcclxuICAgICAgICBpZiAob3BjaW9uKSB7XHJcbiAgICAgICAgICB2YWx1ZS5wdXNoKG9wY2lvbi5sYWJlbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB2YWx1ZS5qb2luKFwiLCBcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvdyBzZXBhcmFkb3JcIiAqbmdJZj1cInNob3dTZXBhcmF0ZVNlbGVjdGVkTGFiZWxzOyBlbHNlIG5vcm1hbEJpdFNlbGVjdE11bHRpcGxlXCI+XHJcbiAgICA8ZGl2PiA8IS0tIGNsYXNzPVwiY29sLXNtLTRcIi0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJub3JtYWxCaXRTZWxlY3RNdWx0aXBsZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2PjwhLS0gZWxlbWVudG9zIHNlbGVjY2lvbmFkb3MgLS0+XHJcbiAgICAgICAgPGxhYmVsPiZuYnNwOzwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm11bHRpc2VsZWN0LWxhYmVsc1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWwgbGFiZWwtcHJpbWFyeSBtdWx0aXNlbGVjdC1sYWJlbHMtbGdcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb250cm9sLnZhbHVlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7bGFiZWxTZWxlY3RlZEl0ZW0oaXRlbSl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFyZWFkT25seVwiPlxyXG4gICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwiZGVsZXRlU2VsZWN0ZWRJdGVtKCRldmVudCwgaXRlbSlcIiB0aXRsZT1cInt7dGl0bGV9fVwiPjxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIj48L2k+PC9hPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxuZy10ZW1wbGF0ZSAjbm9ybWFsQml0U2VsZWN0TXVsdGlwbGU+XHJcbiAgICA8bGFiZWwgKm5nSWY9XCIhaGlkZUxhYmVsXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiZuYnNwOzxzcGFuICpuZ0lmPVwib2JsaWdhdG9yaW9cIiBjbGFzcz1cImZhIGZhLWFzdGVyaXNrXCI+PC9zcGFuPiZuYnNwOyZuYnNwO1xyXG4gICAgICAgIDxpICpuZ0lmPVwiYXl1ZGFcIiAoY2xpY2spPVwic2hvd0F5dWRhKClcIiBjbGFzcz1cImJ0bi1heXVkYSBmYSBmYS1xdWVzdGlvblwiPjwvaT5cclxuICAgIDwvbGFiZWw+XHJcbiAgICA8cCAqbmdJZj1cInJlYWRPbmx5ICYmICFzaG93U2VwYXJhdGVTZWxlY3RlZExhYmVsc1wiIGNsYXNzPVwibGVjdHVyYVwiPnt7dmFsdWVfbGVjdHVyYX19PC9wPlxyXG4gICAgPGRpdiBbZm9ybUdyb3VwXT1cIm15Rm9ybVwiICpuZ0lmPVwiIXJlYWRPbmx5XCI+XHJcbiAgICAgICAgPHAtbXVsdGlTZWxlY3RcclxuICAgICAgICAgICAgaWQ9XCJ7e2lkfX1cIlxyXG4gICAgICAgICAgICBbb3B0aW9uc109XCJsaXN0YU9wY2lvbmVzXCJcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgW2RlZmF1bHRMYWJlbF09XCJlbXB0eVRleHRSZXNvbHZlZFwiXHJcbiAgICAgICAgICAgIFttYXhTZWxlY3RlZExhYmVsc109XCJtYXhTZWxlY3RlZExhYmVsc1wiXHJcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXNMYWJlbD1cInswfSBlbGVtZW50cyBzZWxlY2Npb25hdHNcIlxyXG4gICAgICAgICAgICAob25Gb2N1cyk9XCJvbkZvY3VzKClcIlxyXG4gICAgICAgICAgICAob25CbHVyKT1cIm9uQmx1cigpXCI+XHJcbiAgICAgICAgPC9wLW11bHRpU2VsZWN0PlxyXG4gICAgICAgIDxjb250cm9sLW1lc3NhZ2VzICpuZ0lmPVwiY29udHJvbCE9bnVsbFwiIFtjb250cm9sXT1cImNvbnRyb2xcIiBbZmllbGRdPVwiaWRcIj48L2NvbnRyb2wtbWVzc2FnZXM+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -1,4 +1,5 @@
1
1
  import { Component, Input } from "@angular/core";
2
+ import { take } from "rxjs/operators";
2
3
  import { BitDropDownGeneralV2Component } from "./bit-dropdown-general-v2.component";
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "@angular/router";
@@ -50,12 +51,46 @@ export class BitDropDownComponent extends BitDropDownGeneralV2Component {
50
51
  this.postRetrieveData();
51
52
  }
52
53
  }
54
+ // custom processing after retrieving data array from service
55
+ postRetrieveData() {
56
+ console.log("llamando a postRetrieveData para " + this.nombre + "{opciones:" + this.listaOpciones + "}");
57
+ if (this.listaOpciones) {
58
+ this.listaOpcionesVisible = Object.assign([], this.listaOpciones);
59
+ // repasamos si hay opciones a excluir que debamos eliminar
60
+ if (this.excludedValues) {
61
+ this.listaOpcionesVisible = this.listaOpcionesVisible.filter((op) => this.excludedValues.indexOf(op.value) < 0);
62
+ }
63
+ }
64
+ else {
65
+ this.listaOpcionesVisible = [];
66
+ }
67
+ // determinamos si debemos incluir la opción "sin selección" y con qué texto
68
+ if (this.includeEmpty) {
69
+ console.log("hay valor empty que hay que traducir para " + this.nombre);
70
+ this.translateService
71
+ .selectTranslateWithContext(this.emptyText)
72
+ .pipe(take(1))
73
+ .subscribe((translation) => {
74
+ let newOption = { value: null, label: translation };
75
+ newOption[this.atributoValue] = null;
76
+ newOption[this.atributoLabel] = translation;
77
+ this.listaOpcionesVisible.splice(0, 0, newOption);
78
+ this.emptyTextResolved = translation;
79
+ //console.log("la lista de opciones vale", this.listaOpcionesVisible);
80
+ });
81
+ }
82
+ }
83
+ get value_lectura() {
84
+ let val = this.control.value;
85
+ let dom = this.listaOpciones && this.listaOpciones.find((d) => d.value == val);
86
+ return dom ? dom.label : null;
87
+ }
53
88
  }
54
89
  BitDropDownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: BitDropDownComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.SessionSharedService }, { token: i2.AyudaService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
55
- BitDropDownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: BitDropDownComponent, selector: "bit-dropdown", inputs: { filter: "filter", atributoLabel: "atributoLabel", atributoValue: "atributoValue", atributoDisabled: "atributoDisabled" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"!hideLabel\">\r\n <ng-content></ng-content>&nbsp;\r\n <span *ngIf=\"obligatorio\" class=\"obligatorio fa fa-asterisk\"></span>&nbsp;&nbsp;\r\n <i *ngIf=\"ayuda\" (click)=\"showAyuda()\" class=\"btn-ayuda fa fa-question\"></i>\r\n</label>\r\n<p *ngIf=\"readOnly\" class=\"lectura\" [id]=\"nombre\">{{value_lectura}}</p>\r\n<ng-container *ngIf=\"!readOnly && !!myForm\">\r\n<div [formGroup]=\"myForm\">\r\n <p-dropdown\r\n id=\"{{nombre}}\"\r\n [options]=\"listaOpcionesVisible\"\r\n [formControl]=\"control\"\r\n [filter]=\"filter\"\r\n \r\n [optionLabel]=\"atributoLabel\"\r\n [optionValue]=\"atributoValue\"\r\n [optionDisabled]=\"atributoDisabled\"\r\n \r\n (onFocus)=\"onFocus()\"\r\n (onBlur)=\"onBlur()\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <span [ngClass]=\"{'opcion-desactivada': item.inactivo}\">{{item.label}}</span>\r\n <!-- span [ngClass]=\"{'opcion-desactivada': item[this.atributoDisabled]}\">{{item[this.atributoLabel]}}</span -->\r\n </ng-template>\r\n </p-dropdown>\r\n <control-messages *ngIf=\"control!=null\" [control]=\"control\" [field]=\"id\"></control-messages>\r\n</div>\r\n</ng-container>\r\n", components: [{ type: i3.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }, { type: i4.BitControlMessages, selector: "control-messages", inputs: ["control", "field"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
90
+ BitDropDownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: BitDropDownComponent, selector: "bit-dropdown", inputs: { filter: "filter", atributoLabel: "atributoLabel", atributoValue: "atributoValue", atributoDisabled: "atributoDisabled" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"!hideLabel\">\r\n <ng-content></ng-content>&nbsp;\r\n <span *ngIf=\"obligatorio\" class=\"obligatorio fa fa-asterisk\"></span>&nbsp;&nbsp;\r\n <i *ngIf=\"ayuda\" (click)=\"showAyuda()\" class=\"btn-ayuda fa fa-question\"></i>\r\n</label>\r\n<p *ngIf=\"readOnly\" class=\"lectura\" [id]=\"nombre\">{{value_lectura}}</p>\r\n<ng-container *ngIf=\"!readOnly && !!myForm\">\r\n<div [formGroup]=\"myForm\">\r\n <p-dropdown\r\n id=\"{{nombre}}\"\r\n [options]=\"listaOpcionesVisible\"\r\n [formControl]=\"control\"\r\n [filter]=\"filter\"\r\n \r\n [optionLabel]=\"atributoLabel\"\r\n [optionValue]=\"atributoValue\"\r\n [optionDisabled]=\"atributoDisabled\"\r\n \r\n (onFocus)=\"onFocus()\"\r\n (onBlur)=\"onBlur()\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <span [ngClass]=\"{'opcion-desactivada': item[atributoDisabled]}\">{{item[atributoLabel]}}</span>\r\n </ng-template>\r\n </p-dropdown>\r\n <control-messages *ngIf=\"control!=null\" [control]=\"control\" [field]=\"id\"></control-messages>\r\n</div>\r\n</ng-container>\r\n", components: [{ type: i3.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }, { type: i4.BitControlMessages, selector: "control-messages", inputs: ["control", "field"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
56
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: BitDropDownComponent, decorators: [{
57
92
  type: Component,
58
- args: [{ selector: "bit-dropdown", template: "<label *ngIf=\"!hideLabel\">\r\n <ng-content></ng-content>&nbsp;\r\n <span *ngIf=\"obligatorio\" class=\"obligatorio fa fa-asterisk\"></span>&nbsp;&nbsp;\r\n <i *ngIf=\"ayuda\" (click)=\"showAyuda()\" class=\"btn-ayuda fa fa-question\"></i>\r\n</label>\r\n<p *ngIf=\"readOnly\" class=\"lectura\" [id]=\"nombre\">{{value_lectura}}</p>\r\n<ng-container *ngIf=\"!readOnly && !!myForm\">\r\n<div [formGroup]=\"myForm\">\r\n <p-dropdown\r\n id=\"{{nombre}}\"\r\n [options]=\"listaOpcionesVisible\"\r\n [formControl]=\"control\"\r\n [filter]=\"filter\"\r\n \r\n [optionLabel]=\"atributoLabel\"\r\n [optionValue]=\"atributoValue\"\r\n [optionDisabled]=\"atributoDisabled\"\r\n \r\n (onFocus)=\"onFocus()\"\r\n (onBlur)=\"onBlur()\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <span [ngClass]=\"{'opcion-desactivada': item.inactivo}\">{{item.label}}</span>\r\n <!-- span [ngClass]=\"{'opcion-desactivada': item[this.atributoDisabled]}\">{{item[this.atributoLabel]}}</span -->\r\n </ng-template>\r\n </p-dropdown>\r\n <control-messages *ngIf=\"control!=null\" [control]=\"control\" [field]=\"id\"></control-messages>\r\n</div>\r\n</ng-container>\r\n" }]
93
+ args: [{ selector: "bit-dropdown", template: "<label *ngIf=\"!hideLabel\">\r\n <ng-content></ng-content>&nbsp;\r\n <span *ngIf=\"obligatorio\" class=\"obligatorio fa fa-asterisk\"></span>&nbsp;&nbsp;\r\n <i *ngIf=\"ayuda\" (click)=\"showAyuda()\" class=\"btn-ayuda fa fa-question\"></i>\r\n</label>\r\n<p *ngIf=\"readOnly\" class=\"lectura\" [id]=\"nombre\">{{value_lectura}}</p>\r\n<ng-container *ngIf=\"!readOnly && !!myForm\">\r\n<div [formGroup]=\"myForm\">\r\n <p-dropdown\r\n id=\"{{nombre}}\"\r\n [options]=\"listaOpcionesVisible\"\r\n [formControl]=\"control\"\r\n [filter]=\"filter\"\r\n \r\n [optionLabel]=\"atributoLabel\"\r\n [optionValue]=\"atributoValue\"\r\n [optionDisabled]=\"atributoDisabled\"\r\n \r\n (onFocus)=\"onFocus()\"\r\n (onBlur)=\"onBlur()\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <span [ngClass]=\"{'opcion-desactivada': item[atributoDisabled]}\">{{item[atributoLabel]}}</span>\r\n </ng-template>\r\n </p-dropdown>\r\n <control-messages *ngIf=\"control!=null\" [control]=\"control\" [field]=\"id\"></control-messages>\r\n</div>\r\n</ng-container>\r\n" }]
59
94
  }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.SessionSharedService }, { type: i2.AyudaService }, { type: i2.TranslateService }]; }, propDecorators: { filter: [{
60
95
  type: Input
61
96
  }], atributoLabel: [{
@@ -65,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
65
100
  }], atributoDisabled: [{
66
101
  type: Input
67
102
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JpdC1uZy1saWJyYXJ5L3NyYy9saWIvc2hhcmVkbGlicmFyeS9jb21wb25lbnRzL2Zvcm0vZHJvcGRvd24vYml0LWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JpdC1uZy1saWJyYXJ5L3NyYy9saWIvc2hhcmVkbGlicmFyeS9jb21wb25lbnRzL2Zvcm0vZHJvcGRvd24vYml0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUEyQixNQUFNLGVBQWUsQ0FBQztBQUkxRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7O0FBRXBGOzs7Ozs7OztJQVFJO0FBS0osTUFBTSxPQUFPLG9CQUFxQixTQUFRLDZCQUE2QjtJQVNyRSxZQUNZLE1BQXNCLEVBQ3RCLGFBQW1DLEVBQ25DLFlBQTBCLEVBQzFCLGdCQUFrQztRQUU1QyxLQUFLLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUxuRCxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVpyQyxXQUFNLEdBQVksS0FBSyxDQUFDO1FBRWpDLGtCQUFhLEdBQUcsT0FBTyxDQUFDLENBQU8sa0VBQWtFO1FBRWpHLGtCQUFhLEdBQUcsT0FBTyxDQUFDLENBQU8sa0VBQWtFO1FBRWpHLHFCQUFnQixHQUFHLFVBQVUsQ0FBQyxDQUFDLG1GQUFtRjtJQVNsSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQTRDO1FBQ3RELElBQUksVUFBVSxHQUFZLEtBQUssQ0FBQztRQUNoQyxLQUFLLElBQUksUUFBUSxJQUFJLE9BQU8sRUFBRTtZQUM1QixJQUFJLFdBQVcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsSUFBSSxRQUFRLEtBQUssTUFBTSxFQUFFO2dCQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdEYsVUFBVSxHQUFHLElBQUksQ0FBQzthQUNuQjtpQkFBTSxJQUFJLFFBQVEsS0FBSyxnQkFBZ0IsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDO2dCQUMvQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2FBQ25CO2lCQUFNLElBQUksUUFBUSxLQUFLLGNBQWMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDO2dCQUM3QyxVQUFVLEdBQUcsSUFBSSxDQUFDO2FBQ25CO1NBQ0Y7UUFDRCxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7aUhBcENVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLG9PQ25CakMsZ3dDQTRCQTsyRkRUYSxvQkFBb0I7a0JBSmhDLFNBQVM7K0JBQ0UsY0FBYztrTUFJZixNQUFNO3NCQUFkLEtBQUs7Z0JBRU4sYUFBYTtzQkFEWixLQUFLO2dCQUdOLGFBQWE7c0JBRFosS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcblxyXG5pbXBvcnQgeyBBeXVkYVNlcnZpY2UsIFNlc3Npb25TaGFyZWRTZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBCaXREcm9wRG93bkdlbmVyYWxWMkNvbXBvbmVudCB9IGZyb20gXCIuL2JpdC1kcm9wZG93bi1nZW5lcmFsLXYyLmNvbXBvbmVudFwiO1xyXG5cclxuLyoqXHJcbiAqIENsYXNlIHF1ZSB1dGlsaXphIHVuIGN1c3RvbSBjb21wb25lbnRlIHBhcmEgc2VsZWN0IGRlIGVsZW1lbnRvc1xyXG4gKiAgICA8Yml0LWRyb3Bkb3duIFtkb21haW5dPVwiJ0RPTUFJTl9USVBPX0xPRydcIiBpZD1cInRpcG9sb2dcIiBbY29udHJvbF09XCJmb3JtQ29udHJvbFwiPiZuYnNwOyZuYnNwO1RpcHVzIGQnb3BlcmFjacOzPC9iaXQtZHJvcGRvd24+XHJcbiAqXHJcbiAqIEBpbnB1dCBkYXRhOiBhcnJheSBkZSBvYmpldG9zIGEgbW9zdHJhciBlbiBlbCBzZWxlY3QuIFB1ZWRlIHNlciBudWxsLCBlbiBjdXlvIGNhc28gZG9tYWluIG5vIHB1ZWRlIHNlciBudWxsXHJcbiAqIEBpbnB1dCBkb21haW46IG5vbWJyZSBkZWwgZG9taW5pbyBxdWUgY29udGllbmUgbG9zIGRhdG9zIHkgcXVlIG5vcyByZXNvbHZlcsOhIGxhIHDDoWdpbmEgY3VhbmRvIGNhcmd1ZSBlbCBjb21wb25lbnRlLiBQdWVkZSBzZXIgbnVsbCwgZW4gY3V5byBjYXNvIGRhdGEgbm8gcHVlZGUgc2VyIG51bGxcclxuICogQGlucHV0IGlkOiBpZGVudGlmaWNhZG9yIGRlbCBjb21wb25lbnRlIHNlbGVjdFxyXG4gKiBAaW5wdXQgZmlsdGVyOiB0cnVlIGluZGljYXLDoSBxdWUgcG9kZW1vcyBidXNjYXIgZGVudHJvIGRlbCBzZWxlY3QsIGZhbHNlIHF1ZSBuby5cclxuICoqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJiaXQtZHJvcGRvd25cIixcclxuICB0ZW1wbGF0ZVVybDogXCJiaXQtZHJvcGRvd24uY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQml0RHJvcERvd25Db21wb25lbnQgZXh0ZW5kcyBCaXREcm9wRG93bkdlbmVyYWxWMkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgZmlsdGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBhdHJpYnV0b0xhYmVsID0gXCJsYWJlbFwiOyAgICAgICAvLyBFbCBhdHJpYnV0byBkZSBsb3Mgb2JqZXRvcyBkZSBsYSBsaXN0YSBxdWUgY29ycmVzcG9uZGUgYWwgbGFiZWxcclxuICBASW5wdXQoKVxyXG4gIGF0cmlidXRvVmFsdWUgPSBcInZhbHVlXCI7ICAgICAgIC8vIEVsIGF0cmlidXRvIGRlIGxvcyBvYmpldG9zIGRlIGxhIGxpc3RhIHF1ZSBjb3JyZXNwb25kZSBhbCB2YWxvclxyXG4gIEBJbnB1dCgpXHJcbiAgYXRyaWJ1dG9EaXNhYmxlZCA9IFwiaW5hY3Rpdm9cIjsgLy8gRWwgYXRyaWJ1dG8gZGUgbG9zIG9iamV0b3MgZGUgbGEgbGlzdGEgcXVlIGluZGljYSBzaSB1biB2YWxvciBlc3TDoSBkZXNoYWJpbGl0YWRvXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcm90ZWN0ZWQgc2Vzc2lvblNoYXJlZDogU2Vzc2lvblNoYXJlZFNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgYXl1ZGFTZXJ2aWNlOiBBeXVkYVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIocm91dGVyLCBzZXNzaW9uU2hhcmVkLCBheXVkYVNlcnZpY2UsIHRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogeyBbcHJvcEtleTogc3RyaW5nXTogU2ltcGxlQ2hhbmdlIH0pIHtcclxuICAgIGxldCBoYXlDYW1iaW9zOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBwcm9wTmFtZSBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgIGxldCBjaGFuZ2VkUHJvcCA9IGNoYW5nZXNbcHJvcE5hbWVdO1xyXG4gICAgICBpZiAocHJvcE5hbWUgPT09IFwiZGF0YVwiKSB7XHJcbiAgICAgICAgdGhpcy5saXN0YU9wY2lvbmVzID0gY2hhbmdlZFByb3AuY3VycmVudFZhbHVlID8gY2hhbmdlZFByb3AuY3VycmVudFZhbHVlLnNsaWNlKCkgOiBbXTtcclxuICAgICAgICBoYXlDYW1iaW9zID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIGlmIChwcm9wTmFtZSA9PT0gXCJleGNsdWRlZFZhbHVlc1wiKSB7XHJcbiAgICAgICAgdGhpcy5leGNsdWRlZFZhbHVlcyA9IGNoYW5nZWRQcm9wLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICBoYXlDYW1iaW9zID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIGlmIChwcm9wTmFtZSA9PT0gXCJpbmNsdWRlRW1wdHlcIikge1xyXG4gICAgICAgIHRoaXMuaW5jbHVkZUVtcHR5ID0gY2hhbmdlZFByb3AuY3VycmVudFZhbHVlO1xyXG4gICAgICAgIGhheUNhbWJpb3MgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoaGF5Q2FtYmlvcykge1xyXG4gICAgICB0aGlzLnBvc3RSZXRyaWV2ZURhdGEoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGxhYmVsICpuZ0lmPVwiIWhpZGVMYWJlbFwiPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiZuYnNwO1xyXG4gICAgPHNwYW4gKm5nSWY9XCJvYmxpZ2F0b3Jpb1wiIGNsYXNzPVwib2JsaWdhdG9yaW8gZmEgZmEtYXN0ZXJpc2tcIj48L3NwYW4+Jm5ic3A7Jm5ic3A7XHJcbiAgICA8aSAqbmdJZj1cImF5dWRhXCIgKGNsaWNrKT1cInNob3dBeXVkYSgpXCIgY2xhc3M9XCJidG4tYXl1ZGEgZmEgZmEtcXVlc3Rpb25cIj48L2k+XHJcbjwvbGFiZWw+XHJcbjxwICpuZ0lmPVwicmVhZE9ubHlcIiBjbGFzcz1cImxlY3R1cmFcIiBbaWRdPVwibm9tYnJlXCI+e3t2YWx1ZV9sZWN0dXJhfX08L3A+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCIhcmVhZE9ubHkgJiYgISFteUZvcm1cIj5cclxuPGRpdiBbZm9ybUdyb3VwXT1cIm15Rm9ybVwiPlxyXG4gICAgPHAtZHJvcGRvd25cclxuICAgICAgICBpZD1cInt7bm9tYnJlfX1cIlxyXG4gICAgICAgIFtvcHRpb25zXT1cImxpc3RhT3BjaW9uZXNWaXNpYmxlXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgICAgW2ZpbHRlcl09XCJmaWx0ZXJcIlxyXG4gICAgICAgIFxyXG4gICAgICAgIFtvcHRpb25MYWJlbF09XCJhdHJpYnV0b0xhYmVsXCJcclxuICAgICAgICBbb3B0aW9uVmFsdWVdPVwiYXRyaWJ1dG9WYWx1ZVwiXHJcbiAgICAgICAgW29wdGlvbkRpc2FibGVkXT1cImF0cmlidXRvRGlzYWJsZWRcIlxyXG4gICAgICAgIFxyXG4gICAgICAgIChvbkZvY3VzKT1cIm9uRm9jdXMoKVwiXHJcbiAgICAgICAgKG9uQmx1cik9XCJvbkJsdXIoKVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cInsnb3BjaW9uLWRlc2FjdGl2YWRhJzogaXRlbS5pbmFjdGl2b31cIj57e2l0ZW0ubGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPCEtLSBzcGFuIFtuZ0NsYXNzXT1cInsnb3BjaW9uLWRlc2FjdGl2YWRhJzogaXRlbVt0aGlzLmF0cmlidXRvRGlzYWJsZWRdfVwiPnt7aXRlbVt0aGlzLmF0cmlidXRvTGFiZWxdfX08L3NwYW4gLS0+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvcC1kcm9wZG93bj5cclxuICAgIDxjb250cm9sLW1lc3NhZ2VzICpuZ0lmPVwiY29udHJvbCE9bnVsbFwiIFtjb250cm9sXT1cImNvbnRyb2xcIiBbZmllbGRdPVwiaWRcIj48L2NvbnRyb2wtbWVzc2FnZXM+XHJcbjwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JpdC1uZy1saWJyYXJ5L3NyYy9saWIvc2hhcmVkbGlicmFyeS9jb21wb25lbnRzL2Zvcm0vZHJvcGRvd24vYml0LWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JpdC1uZy1saWJyYXJ5L3NyYy9saWIvc2hhcmVkbGlicmFyeS9jb21wb25lbnRzL2Zvcm0vZHJvcGRvd24vYml0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUEyQixNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7OztBQUVwRjs7Ozs7Ozs7SUFRSTtBQUtKLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSw2QkFBNkI7SUFTckUsWUFDWSxNQUFzQixFQUN0QixhQUFtQyxFQUNuQyxZQUEwQixFQUMxQixnQkFBa0M7UUFFNUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFMbkQsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ25DLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFackMsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUVqQyxrQkFBYSxHQUFHLE9BQU8sQ0FBQyxDQUFPLGtFQUFrRTtRQUVqRyxrQkFBYSxHQUFHLE9BQU8sQ0FBQyxDQUFPLGtFQUFrRTtRQUVqRyxxQkFBZ0IsR0FBRyxV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R0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLENBQUM7UUFDL0UsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNoQyxDQUFDOztpSEF2RVUsb0JBQW9CO3FHQUFwQixvQkFBb0Isb09DcEJqQyxncENBMkJBOzJGRFBhLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDRSxjQUFjO2tNQUlmLE1BQU07c0JBQWQsS0FBSztnQkFFTixhQUFhO3NCQURaLEtBQUs7Z0JBR04sYUFBYTtzQkFEWixLQUFLO2dCQUdOLGdCQUFnQjtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2UgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgdGFrZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuaW1wb3J0IHsgQXl1ZGFTZXJ2aWNlLCBTZXNzaW9uU2hhcmVkU2VydmljZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQml0RHJvcERvd25HZW5lcmFsVjJDb21wb25lbnQgfSBmcm9tIFwiLi9iaXQtZHJvcGRvd24tZ2VuZXJhbC12Mi5jb21wb25lbnRcIjtcclxuXHJcbi8qKlxyXG4gKiBDbGFzZSBxdWUgdXRpbGl6YSB1biBjdXN0b20gY29tcG9uZW50ZSBwYXJhIHNlbGVjdCBkZSBlbGVtZW50b3NcclxuICogICAgPGJpdC1kcm9wZG93biBbZG9tYWluXT1cIidET01BSU5fVElQT19MT0cnXCIgaWQ9XCJ0aXBvbG9nXCIgW2NvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIj4mbmJzcDsmbmJzcDtUaXB1cyBkJ29wZXJhY2nDszwvYml0LWRyb3Bkb3duPlxyXG4gKlxyXG4gKiBAaW5wdXQgZGF0YTogYXJyYXkgZGUgb2JqZXRvcyBhIG1vc3RyYXIgZW4gZWwgc2VsZWN0LiBQdWVkZSBzZXIgbnVsbCwgZW4gY3V5byBjYXNvIGRvbWFpbiBubyBwdWVkZSBzZXIgbnVsbFxyXG4gKiBAaW5wdXQgZG9tYWluOiBub21icmUgZGVsIGRvbWluaW8gcXVlIGNvbnRpZW5lIGxvcyBkYXRvcyB5IHF1ZSBub3MgcmVzb2x2ZXLDoSBsYSBww6FnaW5hIGN1YW5kbyBjYXJndWUgZWwgY29tcG9uZW50ZS4gUHVlZGUgc2VyIG51bGwsIGVuIGN1eW8gY2FzbyBkYXRhIG5vIHB1ZWRlIHNlciBudWxsXHJcbiAqIEBpbnB1dCBpZDogaWRlbnRpZmljYWRvciBkZWwgY29tcG9uZW50ZSBzZWxlY3RcclxuICogQGlucHV0IGZpbHRlcjogdHJ1ZSBpbmRpY2Fyw6EgcXVlIHBvZGVtb3MgYnVzY2FyIGRlbnRybyBkZWwgc2VsZWN0LCBmYWxzZSBxdWUgbm8uXHJcbiAqKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYml0LWRyb3Bkb3duXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiYml0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEJpdERyb3BEb3duQ29tcG9uZW50IGV4dGVuZHMgQml0RHJvcERvd25HZW5lcmFsVjJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIGZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgYXRyaWJ1dG9MYWJlbCA9IFwibGFiZWxcIjsgICAgICAgLy8gRWwgYXRyaWJ1dG8gZGUgbG9zIG9iamV0b3MgZGUgbGEgbGlzdGEgcXVlIGNvcnJlc3BvbmRlIGFsIGxhYmVsXHJcbiAgQElucHV0KClcclxuICBhdHJpYnV0b1ZhbHVlID0gXCJ2YWx1ZVwiOyAgICAgICAvLyBFbCBhdHJpYnV0byBkZSBsb3Mgb2JqZXRvcyBkZSBsYSBsaXN0YSBxdWUgY29ycmVzcG9uZGUgYWwgdmFsb3JcclxuICBASW5wdXQoKVxyXG4gIGF0cmlidXRvRGlzYWJsZWQgPSBcImluYWN0aXZvXCI7IC8vIEVsIGF0cmlidXRvIGRlIGxvcyBvYmpldG9zIGRlIGxhIGxpc3RhIHF1ZSBpbmRpY2Egc2kgdW4gdmFsb3IgZXN0w6EgZGVzaGFiaWxpdGFkb1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCByb3V0ZXI6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJvdGVjdGVkIHNlc3Npb25TaGFyZWQ6IFNlc3Npb25TaGFyZWRTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGF5dWRhU2VydmljZTogQXl1ZGFTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKHJvdXRlciwgc2Vzc2lvblNoYXJlZCwgYXl1ZGFTZXJ2aWNlLCB0cmFuc2xhdGVTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IHsgW3Byb3BLZXk6IHN0cmluZ106IFNpbXBsZUNoYW5nZSB9KSB7XHJcbiAgICBsZXQgaGF5Q2FtYmlvczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgZm9yIChsZXQgcHJvcE5hbWUgaW4gY2hhbmdlcykge1xyXG4gICAgICBsZXQgY2hhbmdlZFByb3AgPSBjaGFuZ2VzW3Byb3BOYW1lXTtcclxuICAgICAgaWYgKHByb3BOYW1lID09PSBcImRhdGFcIikge1xyXG4gICAgICAgIHRoaXMubGlzdGFPcGNpb25lcyA9IGNoYW5nZWRQcm9wLmN1cnJlbnRWYWx1ZSA/IGNoYW5nZWRQcm9wLmN1cnJlbnRWYWx1ZS5zbGljZSgpIDogW107XHJcbiAgICAgICAgaGF5Q2FtYmlvcyA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAocHJvcE5hbWUgPT09IFwiZXhjbHVkZWRWYWx1ZXNcIikge1xyXG4gICAgICAgIHRoaXMuZXhjbHVkZWRWYWx1ZXMgPSBjaGFuZ2VkUHJvcC5jdXJyZW50VmFsdWU7XHJcbiAgICAgICAgaGF5Q2FtYmlvcyA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAocHJvcE5hbWUgPT09IFwiaW5jbHVkZUVtcHR5XCIpIHtcclxuICAgICAgICB0aGlzLmluY2x1ZGVFbXB0eSA9IGNoYW5nZWRQcm9wLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICBoYXlDYW1iaW9zID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGhheUNhbWJpb3MpIHtcclxuICAgICAgdGhpcy5wb3N0UmV0cmlldmVEYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBjdXN0b20gcHJvY2Vzc2luZyBhZnRlciByZXRyaWV2aW5nIGRhdGEgYXJyYXkgZnJvbSBzZXJ2aWNlXHJcbiAgcG9zdFJldHJpZXZlRGF0YSgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwibGxhbWFuZG8gYSBwb3N0UmV0cmlldmVEYXRhIHBhcmEgXCIgKyB0aGlzLm5vbWJyZSArIFwie29wY2lvbmVzOlwiICsgdGhpcy5saXN0YU9wY2lvbmVzICsgXCJ9XCIpO1xyXG4gICAgaWYgKHRoaXMubGlzdGFPcGNpb25lcykge1xyXG4gICAgICB0aGlzLmxpc3RhT3BjaW9uZXNWaXNpYmxlID0gT2JqZWN0LmFzc2lnbihbXSwgdGhpcy5saXN0YU9wY2lvbmVzKTtcclxuICAgICAgLy8gcmVwYXNhbW9zIHNpIGhheSBvcGNpb25lcyBhIGV4Y2x1aXIgcXVlIGRlYmFtb3MgZWxpbWluYXJcclxuICAgICAgaWYgKHRoaXMuZXhjbHVkZWRWYWx1ZXMpIHtcclxuICAgICAgICB0aGlzLmxpc3RhT3BjaW9uZXNWaXNpYmxlID0gdGhpcy5saXN0YU9wY2lvbmVzVmlzaWJsZS5maWx0ZXIoKG9wKSA9PiB0aGlzLmV4Y2x1ZGVkVmFsdWVzLmluZGV4T2Yob3AudmFsdWUpIDwgMCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubGlzdGFPcGNpb25lc1Zpc2libGUgPSBbXTtcclxuICAgIH1cclxuICAgIC8vIGRldGVybWluYW1vcyBzaSBkZWJlbW9zIGluY2x1aXIgbGEgb3BjacOzbiBcInNpbiBzZWxlY2Npw7NuXCIgeSBjb24gcXXDqSB0ZXh0b1xyXG4gICAgaWYgKHRoaXMuaW5jbHVkZUVtcHR5KSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiaGF5IHZhbG9yIGVtcHR5IHF1ZSBoYXkgcXVlIHRyYWR1Y2lyIHBhcmEgXCIgKyB0aGlzLm5vbWJyZSk7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZVxyXG4gICAgICAgIC5zZWxlY3RUcmFuc2xhdGVXaXRoQ29udGV4dCh0aGlzLmVtcHR5VGV4dClcclxuICAgICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHRyYW5zbGF0aW9uKSA9PiB7XHJcbiAgICAgICAgICBsZXQgbmV3T3B0aW9uID0ge3ZhbHVlOiBudWxsLCBsYWJlbDogdHJhbnNsYXRpb24gfTtcclxuICAgICAgICAgIG5ld09wdGlvblt0aGlzLmF0cmlidXRvVmFsdWVdID0gbnVsbDtcclxuICAgICAgICAgIG5ld09wdGlvblt0aGlzLmF0cmlidXRvTGFiZWxdID0gdHJhbnNsYXRpb247XHJcbiAgICAgICAgICB0aGlzLmxpc3RhT3BjaW9uZXNWaXNpYmxlLnNwbGljZSgwLCAwLCBuZXdPcHRpb24pO1xyXG4gICAgICAgICAgdGhpcy5lbXB0eVRleHRSZXNvbHZlZCA9IHRyYW5zbGF0aW9uO1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcImxhIGxpc3RhIGRlIG9wY2lvbmVzIHZhbGVcIiwgdGhpcy5saXN0YU9wY2lvbmVzVmlzaWJsZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsdWVfbGVjdHVyYSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IHZhbCA9IHRoaXMuY29udHJvbC52YWx1ZTtcclxuICAgIGxldCBkb20gPSB0aGlzLmxpc3RhT3BjaW9uZXMgJiYgdGhpcy5saXN0YU9wY2lvbmVzLmZpbmQoKGQpID0+IGQudmFsdWUgPT0gdmFsKTtcclxuICAgIHJldHVybiBkb20gPyBkb20ubGFiZWwgOiBudWxsO1xyXG4gIH1cclxufVxyXG4iLCI8bGFiZWwgKm5nSWY9XCIhaGlkZUxhYmVsXCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+Jm5ic3A7XHJcbiAgICA8c3BhbiAqbmdJZj1cIm9ibGlnYXRvcmlvXCIgY2xhc3M9XCJvYmxpZ2F0b3JpbyBmYSBmYS1hc3Rlcmlza1wiPjwvc3Bhbj4mbmJzcDsmbmJzcDtcclxuICAgIDxpICpuZ0lmPVwiYXl1ZGFcIiAoY2xpY2spPVwic2hvd0F5dWRhKClcIiBjbGFzcz1cImJ0bi1heXVkYSBmYSBmYS1xdWVzdGlvblwiPjwvaT5cclxuPC9sYWJlbD5cclxuPHAgKm5nSWY9XCJyZWFkT25seVwiIGNsYXNzPVwibGVjdHVyYVwiIFtpZF09XCJub21icmVcIj57e3ZhbHVlX2xlY3R1cmF9fTwvcD5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFyZWFkT25seSAmJiAhIW15Rm9ybVwiPlxyXG48ZGl2IFtmb3JtR3JvdXBdPVwibXlGb3JtXCI+XHJcbiAgICA8cC1kcm9wZG93blxyXG4gICAgICAgIGlkPVwie3tub21icmV9fVwiXHJcbiAgICAgICAgW29wdGlvbnNdPVwibGlzdGFPcGNpb25lc1Zpc2libGVcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgICBbZmlsdGVyXT1cImZpbHRlclwiXHJcbiAgICAgICAgXHJcbiAgICAgICAgW29wdGlvbkxhYmVsXT1cImF0cmlidXRvTGFiZWxcIlxyXG4gICAgICAgIFtvcHRpb25WYWx1ZV09XCJhdHJpYnV0b1ZhbHVlXCJcclxuICAgICAgICBbb3B0aW9uRGlzYWJsZWRdPVwiYXRyaWJ1dG9EaXNhYmxlZFwiXHJcbiAgICAgICAgXHJcbiAgICAgICAgKG9uRm9jdXMpPVwib25Gb2N1cygpXCJcclxuICAgICAgICAob25CbHVyKT1cIm9uQmx1cigpXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwieydvcGNpb24tZGVzYWN0aXZhZGEnOiBpdGVtW2F0cmlidXRvRGlzYWJsZWRdfVwiPnt7aXRlbVthdHJpYnV0b0xhYmVsXX19PC9zcGFuPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3AtZHJvcGRvd24+XHJcbiAgICA8Y29udHJvbC1tZXNzYWdlcyAqbmdJZj1cImNvbnRyb2whPW51bGxcIiBbY29udHJvbF09XCJjb250cm9sXCIgW2ZpZWxkXT1cImlkXCI+PC9jb250cm9sLW1lc3NhZ2VzPlxyXG48L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -4174,12 +4174,46 @@ class BitDropDownComponent extends BitDropDownGeneralV2Component {
4174
4174
  this.postRetrieveData();
4175
4175
  }
4176
4176
  }
4177
+ // custom processing after retrieving data array from service
4178
+ postRetrieveData() {
4179
+ console.log("llamando a postRetrieveData para " + this.nombre + "{opciones:" + this.listaOpciones + "}");
4180
+ if (this.listaOpciones) {
4181
+ this.listaOpcionesVisible = Object.assign([], this.listaOpciones);
4182
+ // repasamos si hay opciones a excluir que debamos eliminar
4183
+ if (this.excludedValues) {
4184
+ this.listaOpcionesVisible = this.listaOpcionesVisible.filter((op) => this.excludedValues.indexOf(op.value) < 0);
4185
+ }
4186
+ }
4187
+ else {
4188
+ this.listaOpcionesVisible = [];
4189
+ }
4190
+ // determinamos si debemos incluir la opción "sin selección" y con qué texto
4191
+ if (this.includeEmpty) {
4192
+ console.log("hay valor empty que hay que traducir para " + this.nombre);
4193
+ this.translateService
4194
+ .selectTranslateWithContext(this.emptyText)
4195
+ .pipe(take(1))
4196
+ .subscribe((translation) => {
4197
+ let newOption = { value: null, label: translation };
4198
+ newOption[this.atributoValue] = null;
4199
+ newOption[this.atributoLabel] = translation;
4200
+ this.listaOpcionesVisible.splice(0, 0, newOption);
4201
+ this.emptyTextResolved = translation;
4202
+ //console.log("la lista de opciones vale", this.listaOpcionesVisible);
4203
+ });
4204
+ }
4205
+ }
4206
+ get value_lectura() {
4207
+ let val = this.control.value;
4208
+ let dom = this.listaOpciones && this.listaOpciones.find((d) => d.value == val);
4209
+ return dom ? dom.label : null;
4210
+ }
4177
4211
  }
4178
4212
  BitDropDownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: BitDropDownComponent, deps: [{ token: i1.ActivatedRoute }, { token: SessionSharedService }, { token: AyudaService }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component });
4179
- BitDropDownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: BitDropDownComponent, selector: "bit-dropdown", inputs: { filter: "filter", atributoLabel: "atributoLabel", atributoValue: "atributoValue", atributoDisabled: "atributoDisabled" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"!hideLabel\">\r\n <ng-content></ng-content>&nbsp;\r\n <span *ngIf=\"obligatorio\" class=\"obligatorio fa fa-asterisk\"></span>&nbsp;&nbsp;\r\n <i *ngIf=\"ayuda\" (click)=\"showAyuda()\" class=\"btn-ayuda fa fa-question\"></i>\r\n</label>\r\n<p *ngIf=\"readOnly\" class=\"lectura\" [id]=\"nombre\">{{value_lectura}}</p>\r\n<ng-container *ngIf=\"!readOnly && !!myForm\">\r\n<div [formGroup]=\"myForm\">\r\n <p-dropdown\r\n id=\"{{nombre}}\"\r\n [options]=\"listaOpcionesVisible\"\r\n [formControl]=\"control\"\r\n [filter]=\"filter\"\r\n \r\n [optionLabel]=\"atributoLabel\"\r\n [optionValue]=\"atributoValue\"\r\n [optionDisabled]=\"atributoDisabled\"\r\n \r\n (onFocus)=\"onFocus()\"\r\n (onBlur)=\"onBlur()\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <span [ngClass]=\"{'opcion-desactivada': item.inactivo}\">{{item.label}}</span>\r\n <!-- span [ngClass]=\"{'opcion-desactivada': item[this.atributoDisabled]}\">{{item[this.atributoLabel]}}</span -->\r\n </ng-template>\r\n </p-dropdown>\r\n <control-messages *ngIf=\"control!=null\" [control]=\"control\" [field]=\"id\"></control-messages>\r\n</div>\r\n</ng-container>\r\n", components: [{ type: i3$3.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }, { type: BitControlMessages, selector: "control-messages", inputs: ["control", "field"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
4213
+ BitDropDownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: BitDropDownComponent, selector: "bit-dropdown", inputs: { filter: "filter", atributoLabel: "atributoLabel", atributoValue: "atributoValue", atributoDisabled: "atributoDisabled" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"!hideLabel\">\r\n <ng-content></ng-content>&nbsp;\r\n <span *ngIf=\"obligatorio\" class=\"obligatorio fa fa-asterisk\"></span>&nbsp;&nbsp;\r\n <i *ngIf=\"ayuda\" (click)=\"showAyuda()\" class=\"btn-ayuda fa fa-question\"></i>\r\n</label>\r\n<p *ngIf=\"readOnly\" class=\"lectura\" [id]=\"nombre\">{{value_lectura}}</p>\r\n<ng-container *ngIf=\"!readOnly && !!myForm\">\r\n<div [formGroup]=\"myForm\">\r\n <p-dropdown\r\n id=\"{{nombre}}\"\r\n [options]=\"listaOpcionesVisible\"\r\n [formControl]=\"control\"\r\n [filter]=\"filter\"\r\n \r\n [optionLabel]=\"atributoLabel\"\r\n [optionValue]=\"atributoValue\"\r\n [optionDisabled]=\"atributoDisabled\"\r\n \r\n (onFocus)=\"onFocus()\"\r\n (onBlur)=\"onBlur()\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <span [ngClass]=\"{'opcion-desactivada': item[atributoDisabled]}\">{{item[atributoLabel]}}</span>\r\n </ng-template>\r\n </p-dropdown>\r\n <control-messages *ngIf=\"control!=null\" [control]=\"control\" [field]=\"id\"></control-messages>\r\n</div>\r\n</ng-container>\r\n", components: [{ type: i3$3.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }, { type: BitControlMessages, selector: "control-messages", inputs: ["control", "field"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
4180
4214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: BitDropDownComponent, decorators: [{
4181
4215
  type: Component,
4182
- args: [{ selector: "bit-dropdown", template: "<label *ngIf=\"!hideLabel\">\r\n <ng-content></ng-content>&nbsp;\r\n <span *ngIf=\"obligatorio\" class=\"obligatorio fa fa-asterisk\"></span>&nbsp;&nbsp;\r\n <i *ngIf=\"ayuda\" (click)=\"showAyuda()\" class=\"btn-ayuda fa fa-question\"></i>\r\n</label>\r\n<p *ngIf=\"readOnly\" class=\"lectura\" [id]=\"nombre\">{{value_lectura}}</p>\r\n<ng-container *ngIf=\"!readOnly && !!myForm\">\r\n<div [formGroup]=\"myForm\">\r\n <p-dropdown\r\n id=\"{{nombre}}\"\r\n [options]=\"listaOpcionesVisible\"\r\n [formControl]=\"control\"\r\n [filter]=\"filter\"\r\n \r\n [optionLabel]=\"atributoLabel\"\r\n [optionValue]=\"atributoValue\"\r\n [optionDisabled]=\"atributoDisabled\"\r\n \r\n (onFocus)=\"onFocus()\"\r\n (onBlur)=\"onBlur()\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <span [ngClass]=\"{'opcion-desactivada': item.inactivo}\">{{item.label}}</span>\r\n <!-- span [ngClass]=\"{'opcion-desactivada': item[this.atributoDisabled]}\">{{item[this.atributoLabel]}}</span -->\r\n </ng-template>\r\n </p-dropdown>\r\n <control-messages *ngIf=\"control!=null\" [control]=\"control\" [field]=\"id\"></control-messages>\r\n</div>\r\n</ng-container>\r\n" }]
4216
+ args: [{ selector: "bit-dropdown", template: "<label *ngIf=\"!hideLabel\">\r\n <ng-content></ng-content>&nbsp;\r\n <span *ngIf=\"obligatorio\" class=\"obligatorio fa fa-asterisk\"></span>&nbsp;&nbsp;\r\n <i *ngIf=\"ayuda\" (click)=\"showAyuda()\" class=\"btn-ayuda fa fa-question\"></i>\r\n</label>\r\n<p *ngIf=\"readOnly\" class=\"lectura\" [id]=\"nombre\">{{value_lectura}}</p>\r\n<ng-container *ngIf=\"!readOnly && !!myForm\">\r\n<div [formGroup]=\"myForm\">\r\n <p-dropdown\r\n id=\"{{nombre}}\"\r\n [options]=\"listaOpcionesVisible\"\r\n [formControl]=\"control\"\r\n [filter]=\"filter\"\r\n \r\n [optionLabel]=\"atributoLabel\"\r\n [optionValue]=\"atributoValue\"\r\n [optionDisabled]=\"atributoDisabled\"\r\n \r\n (onFocus)=\"onFocus()\"\r\n (onBlur)=\"onBlur()\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <span [ngClass]=\"{'opcion-desactivada': item[atributoDisabled]}\">{{item[atributoLabel]}}</span>\r\n </ng-template>\r\n </p-dropdown>\r\n <control-messages *ngIf=\"control!=null\" [control]=\"control\" [field]=\"id\"></control-messages>\r\n</div>\r\n</ng-container>\r\n" }]
4183
4217
  }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: SessionSharedService }, { type: AyudaService }, { type: TranslateService }]; }, propDecorators: { filter: [{
4184
4218
  type: Input
4185
4219
  }], atributoLabel: [{
@@ -4244,16 +4278,31 @@ class BitDropDownMultipleComponent extends BitDropDownGeneralV2Component {
4244
4278
  deleteSelectedItem(event, item) {
4245
4279
  event.preventDefault();
4246
4280
  let index = this.control.value.indexOf(item);
4247
- let newValue = this.control.value.splice(index, 1);
4281
+ var currentValue = this.control.value;
4282
+ currentValue.splice(index, 1);
4248
4283
  // se clona el array. Si no, el texto "{0} elementos seleccionados" del select de Prime no se actualiza.
4249
- this.control.setValue(newValue.slice(0));
4284
+ this.control.setValue(currentValue.slice(0));
4285
+ }
4286
+ get value_lectura() {
4287
+ let vals = this.control.value;
4288
+ if (!!vals) {
4289
+ let value = [];
4290
+ for (var val of vals) {
4291
+ let opcion = this.listaOpciones.find((d) => d.value == val);
4292
+ if (opcion) {
4293
+ value.push(opcion.label);
4294
+ }
4295
+ }
4296
+ return value.join(", ");
4297
+ }
4298
+ return "";
4250
4299
  }
4251
4300
  }
4252
4301
  BitDropDownMultipleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: BitDropDownMultipleComponent, deps: [{ token: i1.ActivatedRoute }, { token: SessionSharedService }, { token: AyudaService }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component });
4253
- BitDropDownMultipleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: BitDropDownMultipleComponent, selector: "bit-dropdown-multiple", inputs: { maxSelectedLabels: "maxSelectedLabels", showSeparateSelectedLabels: "showSeparateSelectedLabels", title: "title", filter: "filter" }, 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>&nbsp;</label>\r\n <div class=\"multiselect-labels\">\r\n <div class=\"label label-primary multiselect-labels-lg\" *ngFor=\"let item of control.value\">\r\n <span>{{labelSelectedItem(item)}}</span>\r\n &nbsp;&nbsp;\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>&nbsp;<span *ngIf=\"obligatorio\" class=\"fa fa-asterisk\"></span>&nbsp;&nbsp;\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 [formGroup]=\"myForm\" *ngIf=\"!readOnly\">\r\n <p-multiSelect\r\n id=\"{{id}}\"\r\n [options]=\"listaOpciones\"\r\n [formControl]=\"control\"\r\n \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$4.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: BitControlMessages, selector: "control-messages", inputs: ["control", "field"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
4302
+ BitDropDownMultipleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: BitDropDownMultipleComponent, selector: "bit-dropdown-multiple", inputs: { maxSelectedLabels: "maxSelectedLabels", showSeparateSelectedLabels: "showSeparateSelectedLabels", title: "title", filter: "filter" }, 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>&nbsp;</label>\r\n <div class=\"multiselect-labels\">\r\n <div class=\"label label-primary multiselect-labels-lg\" *ngFor=\"let item of control.value\">\r\n <span>{{labelSelectedItem(item)}}</span>\r\n <ng-container *ngIf=\"!readOnly\">\r\n &nbsp;&nbsp;\r\n <a (click)=\"deleteSelectedItem($event, item)\" title=\"{{title}}\"><i class=\"fa fa-times\"></i></a>\r\n </ng-container>\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>&nbsp;<span *ngIf=\"obligatorio\" class=\"fa fa-asterisk\"></span>&nbsp;&nbsp;\r\n <i *ngIf=\"ayuda\" (click)=\"showAyuda()\" class=\"btn-ayuda fa fa-question\"></i>\r\n </label>\r\n <p *ngIf=\"readOnly && !showSeparateSelectedLabels\" class=\"lectura\">{{value_lectura}}</p>\r\n <div [formGroup]=\"myForm\" *ngIf=\"!readOnly\">\r\n <p-multiSelect\r\n id=\"{{id}}\"\r\n [options]=\"listaOpciones\"\r\n [formControl]=\"control\"\r\n \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$4.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: BitControlMessages, selector: "control-messages", inputs: ["control", "field"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
4254
4303
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: BitDropDownMultipleComponent, decorators: [{
4255
4304
  type: Component,
4256
- args: [{ selector: "bit-dropdown-multiple", 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>&nbsp;</label>\r\n <div class=\"multiselect-labels\">\r\n <div class=\"label label-primary multiselect-labels-lg\" *ngFor=\"let item of control.value\">\r\n <span>{{labelSelectedItem(item)}}</span>\r\n &nbsp;&nbsp;\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>&nbsp;<span *ngIf=\"obligatorio\" class=\"fa fa-asterisk\"></span>&nbsp;&nbsp;\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 [formGroup]=\"myForm\" *ngIf=\"!readOnly\">\r\n <p-multiSelect\r\n id=\"{{id}}\"\r\n [options]=\"listaOpciones\"\r\n [formControl]=\"control\"\r\n \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" }]
4305
+ args: [{ selector: "bit-dropdown-multiple", 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>&nbsp;</label>\r\n <div class=\"multiselect-labels\">\r\n <div class=\"label label-primary multiselect-labels-lg\" *ngFor=\"let item of control.value\">\r\n <span>{{labelSelectedItem(item)}}</span>\r\n <ng-container *ngIf=\"!readOnly\">\r\n &nbsp;&nbsp;\r\n <a (click)=\"deleteSelectedItem($event, item)\" title=\"{{title}}\"><i class=\"fa fa-times\"></i></a>\r\n </ng-container>\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>&nbsp;<span *ngIf=\"obligatorio\" class=\"fa fa-asterisk\"></span>&nbsp;&nbsp;\r\n <i *ngIf=\"ayuda\" (click)=\"showAyuda()\" class=\"btn-ayuda fa fa-question\"></i>\r\n </label>\r\n <p *ngIf=\"readOnly && !showSeparateSelectedLabels\" class=\"lectura\">{{value_lectura}}</p>\r\n <div [formGroup]=\"myForm\" *ngIf=\"!readOnly\">\r\n <p-multiSelect\r\n id=\"{{id}}\"\r\n [options]=\"listaOpciones\"\r\n [formControl]=\"control\"\r\n \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" }]
4257
4306
  }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: SessionSharedService }, { type: AyudaService }, { type: TranslateService }]; }, propDecorators: { maxSelectedLabels: [{
4258
4307
  type: Input
4259
4308
  }], showSeparateSelectedLabels: [{