valtech-components 2.0.104 → 2.0.106

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.
@@ -2,9 +2,9 @@
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { Component, Input } from '@angular/core';
4
4
  import { ReactiveFormsModule } from '@angular/forms';
5
- import { IonButton, IonButtons, IonContent, IonFooter, IonHeader, IonItem, IonLabel, IonList, IonRadio, IonTitle, IonToolbar, } from '@ionic/angular/standalone';
6
- import { SearchbarComponent } from '../searchbar/searchbar.component';
5
+ import { IonButton, IonButtons, IonContent, IonFooter, IonHeader, IonInput, IonItem, IonLabel, IonList, IonModal, IonRadio, IonSelect, IonTitle, IonToolbar, } from '@ionic/angular/standalone';
7
6
  import { replaceSpecialChars } from '../../../shared/utils/text';
7
+ import { SearchbarComponent } from '../searchbar/searchbar.component';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@ionic/angular";
10
10
  import * as i2 from "@angular/common";
@@ -23,9 +23,15 @@ export class SelectorModalComponent {
23
23
  this.selection = -1;
24
24
  this.showAllAtStart = true;
25
25
  this.searching = false;
26
+ this.isModalOpen = false;
26
27
  this.listVolatile = [];
27
28
  this.noResult = SEARCH_SELECTOR_NO_RESULT;
28
29
  this.noNothing = SEARCH_SELECTOR_NO_OPTIONS;
30
+ this.customModalOptions = {
31
+ header: 'Seleccione',
32
+ breakpoints: [0, 0.6],
33
+ initialBreakpoint: 0.6,
34
+ };
29
35
  }
30
36
  ngOnInit() {
31
37
  this.listVolatile = [];
@@ -34,9 +40,7 @@ export class SelectorModalComponent {
34
40
  }
35
41
  }
36
42
  dismiss() {
37
- this.modalController.dismiss({
38
- confirmed: false,
39
- });
43
+ this.toggleModal(false);
40
44
  }
41
45
  applyChanges() {
42
46
  console.log(this.props.control);
@@ -73,35 +77,66 @@ export class SelectorModalComponent {
73
77
  onFocus() {
74
78
  this.searching = true;
75
79
  }
80
+ showSelected() {
81
+ const option = this.props.options.find(x => x.id === this.props.control.value);
82
+ if (option) {
83
+ return option.name;
84
+ }
85
+ return '';
86
+ }
87
+ toggleModal(isOpen) {
88
+ this.isModalOpen = isOpen;
89
+ }
90
+ preventDefaultBehavior(event) {
91
+ event.preventDefault(); // Evita el comportamiento predeterminado del selector
92
+ event.stopPropagation(); // Detiene la propagación del evento
93
+ this.toggleModal(!this.isModalOpen); // Abre el modal personalizado
94
+ }
76
95
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectorModalComponent, deps: [{ token: i1.ModalController }], target: i0.ɵɵFactoryTarget.Component }); }
77
96
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SelectorModalComponent, isStandalone: true, selector: "val-search-selector-input", inputs: { props: "props", selection: "selection", showAllAtStart: "showAllAtStart" }, ngImport: i0, template: `
78
- <ion-header>
79
- <ion-toolbar>
80
- <ion-title>Seleccione</ion-title>
81
- <ion-buttons slot="end">
82
- <ion-button (click)="dismiss()">Cancelar</ion-button>
83
- </ion-buttons>
84
- </ion-toolbar>
85
- </ion-header>
97
+ <ion-select
98
+ id="select-search-option-action"
99
+ [formControl]="props.control"
100
+ [label]="props.label"
101
+ [interfaceOptions]="customModalOptions"
102
+ interface="popover"
103
+ [placeholder]="[props.placeholder]"
104
+ cancelText="Cancelar"
105
+ okText="Ok"
106
+ (mousedown)="preventDefaultBehavior($event)"
107
+ >
108
+ </ion-select>
109
+ <ion-modal #modal>
110
+ <ng-template>
111
+ <ion-header>
112
+ <ion-toolbar>
113
+ <ion-title>Seleccione</ion-title>
114
+ <ion-buttons slot="end">
115
+ <ion-button (click)="dismiss()">Cancelar</ion-button>
116
+ </ion-buttons>
117
+ </ion-toolbar>
118
+ </ion-header>
86
119
 
87
- <ion-content>
88
- <val-searchbar (filterEvent)="onFilter($event)" (focusEvent)="onFocus()" (blurEvent)="onBlur()" />
120
+ <ion-content>
121
+ <val-searchbar (filterEvent)="onFilter($event)" (focusEvent)="onFocus()" (blurEvent)="onBlur()" />
89
122
 
90
- <div class="unit-list-container" *ngIf="listVolatile.length > 0">
91
- <ion-list class="unit-list">
92
- <ion-radio-group allow-empty-selection [formControl]="props.control">
93
- <ion-item *ngFor="let option of listVolatile">
94
- <ion-radio justify="space-between" color="primary" [value]="option.id">{{ option.name }}</ion-radio>
95
- </ion-item>
96
- </ion-radio-group>
97
- </ion-list>
98
- </div>
99
- </ion-content>
100
- <ion-footer style="display: flex;justify-content: space-around;padding: 8px 0px;">
101
- <ion-button color="dark" shape="round" fill="outline" (click)="dismiss()"> Cancelar </ion-button>
102
- <ion-button color="primary" shape="round" (click)="applyChanges()"> Confirmar </ion-button>
103
- </ion-footer>
104
- `, isInline: true, styles: [".form-element{margin-top:1rem;text-align:start}x .form-element:last-child{margin-bottom:2rem}.small-form{min-width:7.5rem;max-width:7.5rem}.sibling{margin-left:.5rem}ion-modal{--width: 290px;--height: 382px;--border-radius: 8px}ion-modal ion-datetime{height:382px}.filter-container{display:flex;margin-left:1rem}.filter-form{padding:0 .25rem 6.25rem}.options-container{margin-bottom:1rem}.unit-list-container{overflow-y:auto}.unit-list{padding-bottom:1rem;margin-bottom:.5rem}.detail-title{font-size:1.125rem;line-height:1.5rem;font-weight:700;margin:0;margin-bottom:.5rem;margin-left:.625rem;font-weight:800}@media (min-width: 768px){.detail-title{font-size:1.5rem;line-height:2rem}}.button-section{width:98%;height:3.75rem;border-radius:.5rem;margin:0 auto;padding:0 .25rem;max-width:36.25rem;margin-top:2.5rem}.event-selector{width:90%;margin-left:1rem}.selectable-container{margin-bottom:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: SearchbarComponent, selector: "val-searchbar", inputs: ["disabled"], outputs: ["focusEvent", "blurEvent", "filterEvent"] }] }); }
123
+ <div class="unit-list-container" *ngIf="listVolatile.length > 0">
124
+ <ion-list class="unit-list">
125
+ <ion-radio-group allow-empty-selection [formControl]="props.control">
126
+ <ion-item *ngFor="let option of listVolatile">
127
+ <ion-radio justify="space-between" color="primary" [value]="option.id">{{ option.name }}</ion-radio>
128
+ </ion-item>
129
+ </ion-radio-group>
130
+ </ion-list>
131
+ </div>
132
+ </ion-content>
133
+ <ion-footer style="display: flex;justify-content: space-around;padding: 8px 0px;">
134
+ <ion-button color="dark" shape="round" fill="outline" (click)="dismiss()"> Cancelar </ion-button>
135
+ <ion-button color="primary" shape="round" (click)="applyChanges()"> Confirmar </ion-button>
136
+ </ion-footer>
137
+ </ng-template>
138
+ </ion-modal>
139
+ `, isInline: true, styles: [".form-element{margin-top:1rem;text-align:start}x .form-element:last-child{margin-bottom:2rem}.small-form{min-width:7.5rem;max-width:7.5rem}.sibling{margin-left:.5rem}ion-modal{--width: 290px;--height: 382px;--border-radius: 8px}ion-modal ion-datetime{height:382px}.filter-container{display:flex;margin-left:1rem}.filter-form{padding:0 .25rem 6.25rem}.options-container{margin-bottom:1rem}.unit-list-container{overflow-y:auto}.unit-list{padding-bottom:1rem;margin-bottom:.5rem}.detail-title{font-size:1.125rem;line-height:1.5rem;font-weight:700;margin:0;margin-bottom:.5rem;margin-left:.625rem;font-weight:800}@media (min-width: 768px){.detail-title{font-size:1.5rem;line-height:2rem}}.button-section{width:98%;height:3.75rem;border-radius:.5rem;margin:0 auto;padding:0 .25rem;max-width:36.25rem;margin-top:2.5rem}.event-selector{width:90%;margin-left:1rem}.selectable-container{margin-bottom:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: SearchbarComponent, selector: "val-searchbar", inputs: ["disabled"], outputs: ["focusEvent", "blurEvent", "filterEvent"] }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "expandedIcon", "fill", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }] }); }
105
140
  }
106
141
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectorModalComponent, decorators: [{
107
142
  type: Component,
@@ -120,33 +155,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
120
155
  IonLabel,
121
156
  IonRadio,
122
157
  SearchbarComponent,
158
+ IonModal,
159
+ IonInput,
160
+ IonSelect,
123
161
  ], template: `
124
- <ion-header>
125
- <ion-toolbar>
126
- <ion-title>Seleccione</ion-title>
127
- <ion-buttons slot="end">
128
- <ion-button (click)="dismiss()">Cancelar</ion-button>
129
- </ion-buttons>
130
- </ion-toolbar>
131
- </ion-header>
162
+ <ion-select
163
+ id="select-search-option-action"
164
+ [formControl]="props.control"
165
+ [label]="props.label"
166
+ [interfaceOptions]="customModalOptions"
167
+ interface="popover"
168
+ [placeholder]="[props.placeholder]"
169
+ cancelText="Cancelar"
170
+ okText="Ok"
171
+ (mousedown)="preventDefaultBehavior($event)"
172
+ >
173
+ </ion-select>
174
+ <ion-modal #modal>
175
+ <ng-template>
176
+ <ion-header>
177
+ <ion-toolbar>
178
+ <ion-title>Seleccione</ion-title>
179
+ <ion-buttons slot="end">
180
+ <ion-button (click)="dismiss()">Cancelar</ion-button>
181
+ </ion-buttons>
182
+ </ion-toolbar>
183
+ </ion-header>
132
184
 
133
- <ion-content>
134
- <val-searchbar (filterEvent)="onFilter($event)" (focusEvent)="onFocus()" (blurEvent)="onBlur()" />
185
+ <ion-content>
186
+ <val-searchbar (filterEvent)="onFilter($event)" (focusEvent)="onFocus()" (blurEvent)="onBlur()" />
135
187
 
136
- <div class="unit-list-container" *ngIf="listVolatile.length > 0">
137
- <ion-list class="unit-list">
138
- <ion-radio-group allow-empty-selection [formControl]="props.control">
139
- <ion-item *ngFor="let option of listVolatile">
140
- <ion-radio justify="space-between" color="primary" [value]="option.id">{{ option.name }}</ion-radio>
141
- </ion-item>
142
- </ion-radio-group>
143
- </ion-list>
144
- </div>
145
- </ion-content>
146
- <ion-footer style="display: flex;justify-content: space-around;padding: 8px 0px;">
147
- <ion-button color="dark" shape="round" fill="outline" (click)="dismiss()"> Cancelar </ion-button>
148
- <ion-button color="primary" shape="round" (click)="applyChanges()"> Confirmar </ion-button>
149
- </ion-footer>
188
+ <div class="unit-list-container" *ngIf="listVolatile.length > 0">
189
+ <ion-list class="unit-list">
190
+ <ion-radio-group allow-empty-selection [formControl]="props.control">
191
+ <ion-item *ngFor="let option of listVolatile">
192
+ <ion-radio justify="space-between" color="primary" [value]="option.id">{{ option.name }}</ion-radio>
193
+ </ion-item>
194
+ </ion-radio-group>
195
+ </ion-list>
196
+ </div>
197
+ </ion-content>
198
+ <ion-footer style="display: flex;justify-content: space-around;padding: 8px 0px;">
199
+ <ion-button color="dark" shape="round" fill="outline" (click)="dismiss()"> Cancelar </ion-button>
200
+ <ion-button color="primary" shape="round" (click)="applyChanges()"> Confirmar </ion-button>
201
+ </ion-footer>
202
+ </ng-template>
203
+ </ion-modal>
150
204
  `, styles: [".form-element{margin-top:1rem;text-align:start}x .form-element:last-child{margin-bottom:2rem}.small-form{min-width:7.5rem;max-width:7.5rem}.sibling{margin-left:.5rem}ion-modal{--width: 290px;--height: 382px;--border-radius: 8px}ion-modal ion-datetime{height:382px}.filter-container{display:flex;margin-left:1rem}.filter-form{padding:0 .25rem 6.25rem}.options-container{margin-bottom:1rem}.unit-list-container{overflow-y:auto}.unit-list{padding-bottom:1rem;margin-bottom:.5rem}.detail-title{font-size:1.125rem;line-height:1.5rem;font-weight:700;margin:0;margin-bottom:.5rem;margin-left:.625rem;font-weight:800}@media (min-width: 768px){.detail-title{font-size:1.5rem;line-height:2rem}}.button-section{width:98%;height:3.75rem;border-radius:.5rem;margin:0 auto;padding:0 .25rem;max-width:36.25rem;margin-top:2.5rem}.event-selector{width:90%;margin-left:1rem}.selectable-container{margin-bottom:1rem}\n"] }]
151
205
  }], ctorParameters: () => [{ type: i1.ModalController }], propDecorators: { props: [{
152
206
  type: Input
@@ -155,4 +209,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
155
209
  }], showAllAtStart: [{
156
210
  type: Input
157
211
  }] } });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNlbGVjdG9yLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlYXJjaC1zZWxlY3Rvci1pbnB1dC9zZWFyY2gtc2VsZWN0b3ItaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUEwQixtQkFBbUIsRUFBYyxNQUFNLGdCQUFnQixDQUFDO0FBRXpGLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QsU0FBUyxFQUNULE9BQU8sRUFDUCxRQUFRLEVBQ1IsT0FBTyxFQUNQLFFBQVEsRUFDUixRQUFRLEVBQ1IsVUFBVSxHQUNYLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBRWpFLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHO0lBQ3ZDLEtBQUssRUFBRSw4QkFBOEI7SUFDckMsUUFBUSxFQUFFLDZCQUE2QjtDQUN4QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUc7SUFDeEMsS0FBSyxFQUFFLGlCQUFpQjtJQUN4QixRQUFRLEVBQUUsd0VBQXdFO0NBQ25GLENBQUM7QUFtREYsTUFBTSxPQUFPLHNCQUFzQjtJQWNqQyxZQUFtQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFYMUMsY0FBUyxHQUFHLENB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c0I7a0JBakRsQyxTQUFTOytCQUNFLDJCQUEyQixjQUN6QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixRQUFRO3dCQUNSLFVBQVU7d0JBQ1YsU0FBUzt3QkFDVCxTQUFTO3dCQUNULE9BQU87d0JBQ1AsVUFBVTt3QkFDVixPQUFPO3dCQUNQLFFBQVE7d0JBQ1IsUUFBUTt3QkFDUixrQkFBa0I7cUJBQ25CLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVDtvRkFJUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUsIE1vZGFsQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7XG4gIElvbkJ1dHRvbixcbiAgSW9uQnV0dG9ucyxcbiAgSW9uQ29udGVudCxcbiAgSW9uRm9vdGVyLFxuICBJb25IZWFkZXIsXG4gIElvbkl0ZW0sXG4gIElvbkxhYmVsLFxuICBJb25MaXN0LFxuICBJb25SYWRpbyxcbiAgSW9uVGl0bGUsXG4gIElvblRvb2xiYXIsXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgU2VhcmNoYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vc2VhcmNoYmFyL3NlYXJjaGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRNZXRhZGF0YSwgSW5wdXRPcHRpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyByZXBsYWNlU3BlY2lhbENoYXJzIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3RleHQnO1xuXG5leHBvcnQgY29uc3QgU0VBUkNIX1NFTEVDVE9SX05PX1JFU1VMVCA9IHtcbiAgdGl0bGU6ICdObyBzZSBlbmNvbnRyYXJvbiByZXN1bHRhZG9zJyxcbiAgc3VidGl0bGU6ICdJbnRlbnRhIGNvbiBvdHJhcyBwYWxhYnJhcy4nLFxufTtcblxuZXhwb3J0IGNvbnN0IFNFQVJDSF9TRUxFQ1RPUl9OT19PUFRJT05TID0ge1xuICB0aXRsZTogJ05vIGhheSBvcGNpb25lcycsXG4gIHN1YnRpdGxlOiAnRWwgY2FtcG8gc2VsZWNjaW9uYWRvIG5vIHRpZW5lIG9wY2lvbmVzLiBJbnRlbnRhIG51ZXZhbWVudGUgbcOhcyB0YXJkZS4nLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXNlYXJjaC1zZWxlY3Rvci1pbnB1dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBJb25IZWFkZXIsXG4gICAgSW9uVG9vbGJhcixcbiAgICBJb25UaXRsZSxcbiAgICBJb25CdXR0b25zLFxuICAgIElvbkJ1dHRvbixcbiAgICBJb25Gb290ZXIsXG4gICAgSW9uTGlzdCxcbiAgICBJb25Db250ZW50LFxuICAgIElvbkl0ZW0sXG4gICAgSW9uTGFiZWwsXG4gICAgSW9uUmFkaW8sXG4gICAgU2VhcmNoYmFyQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24taGVhZGVyPlxuICAgICAgPGlvbi10b29sYmFyPlxuICAgICAgICA8aW9uLXRpdGxlPlNlbGVjY2lvbmU8L2lvbi10aXRsZT5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiZGlzbWlzcygpXCI+Q2FuY2VsYXI8L2lvbi1idXR0b24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICA8L2lvbi10b29sYmFyPlxuICAgIDwvaW9uLWhlYWRlcj5cblxuICAgIDxpb24tY29udGVudD5cbiAgICAgIDx2YWwtc2VhcmNoYmFyIChmaWx0ZXJFdmVudCk9XCJvbkZpbHRlcigkZXZlbnQpXCIgKGZvY3VzRXZlbnQpPVwib25Gb2N1cygpXCIgKGJsdXJFdmVudCk9XCJvbkJsdXIoKVwiIC8+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ1bml0LWxpc3QtY29udGFpbmVyXCIgKm5nSWY9XCJsaXN0Vm9sYXRpbGUubGVuZ3RoID4gMFwiPlxuICAgICAgICA8aW9uLWxpc3QgY2xhc3M9XCJ1bml0LWxpc3RcIj5cbiAgICAgICAgICA8aW9uLXJhZGlvLWdyb3VwIGFsbG93LWVtcHR5LXNlbGVjdGlvbiBbZm9ybUNvbnRyb2xdPVwicHJvcHMuY29udHJvbFwiPlxuICAgICAgICAgICAgPGlvbi1pdGVtICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgbGlzdFZvbGF0aWxlXCI+XG4gICAgICAgICAgICAgIDxpb24tcmFkaW8ganVzdGlmeT1cInNwYWNlLWJldHdlZW5cIiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwib3B0aW9uLmlkXCI+e3sgb3B0aW9uLm5hbWUgfX08L2lvbi1yYWRpbz5cbiAgICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgICAgPC9pb24tcmFkaW8tZ3JvdXA+XG4gICAgICAgIDwvaW9uLWxpc3Q+XG4gICAgICA8L2Rpdj5cbiAgICA8L2lvbi1jb250ZW50PlxuICAgIDxpb24tZm9vdGVyIHN0eWxlPVwiZGlzcGxheTogZmxleDtqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtwYWRkaW5nOiA4cHggMHB4O1wiPlxuICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJkYXJrXCIgc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiPiBDYW5jZWxhciA8L2lvbi1idXR0b24+XG4gICAgICA8aW9uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImFwcGx5Q2hhbmdlcygpXCI+IENvbmZpcm1hciA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tZm9vdGVyPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtc2VsZWN0b3ItaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0b3JNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHByb3BzOiBJbnB1dE1ldGFkYXRhO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGlvbiA9IC0xO1xuXG4gIEBJbnB1dCgpIHNob3dBbGxBdFN0YXJ0ID0gdHJ1ZTtcblxuICBzZWFyY2hpbmcgPSBmYWxzZTtcblxuICBsaXN0Vm9sYXRpbGU6IElucHV0T3B0aW9uW10gPSBbXTtcblxuICBub1Jlc3VsdCA9IFNFQVJDSF9TRUxFQ1RPUl9OT19SRVNVTFQ7XG4gIG5vTm90aGluZyA9IFNFQVJDSF9TRUxFQ1RPUl9OT19PUFRJT05TO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtb2RhbENvbnRyb2xsZXI6IE1vZGFsQ29udHJvbGxlcikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxpc3RWb2xhdGlsZSA9IFtdO1xuXG4gICAgaWYgKHRoaXMuc2hvd0FsbEF0U3RhcnQpIHtcbiAgICAgIHRoaXMubGlzdFZvbGF0aWxlID0gdGhpcy5wcm9wcy5vcHRpb25zO1xuICAgIH1cbiAgfVxuXG4gIGRpc21pc3MoKSB7XG4gICAgdGhpcy5tb2RhbENvbnRyb2xsZXIuZGlzbWlzcyh7XG4gICAgICBjb25maXJtZWQ6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgYXBwbHlDaGFuZ2VzKCkge1xuICAgIGNvbnNvbGUubG9nKHRoaXMucHJvcHMuY29udHJvbCk7XG4gICAgaWYgKHRoaXMucHJvcHMuY29udHJvbC5pbnZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5tb2RhbENvbnRyb2xsZXIuZGlzbWlzcyh7XG4gICAgICBjb25maXJtZWQ6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBvbkZpbHRlcihldmVudDogc3RyaW5nKSB7XG4gICAgY29uc29sZS5sb2coJ/CfkqEgb25TZWFyY2g6OjogJywgZXZlbnQpO1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHRoaXMubGlzdFZvbGF0aWxlID0gdGhpcy5wcm9wcy5vcHRpb25zO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5saXN0Vm9sYXRpbGUubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRleHQgPSByZXBsYWNlU3BlY2lhbENoYXJzKGV2ZW50LnRvTG93ZXJDYXNlKCkpO1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMubGlzdFZvbGF0aWxlLmZpbHRlcihlbGVtZW50ID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IE9iamVjdC52YWx1ZXMoZWxlbWVudCkubWFwKChhOiBzdHJpbmcpID0+IHJlcGxhY2VTcGVjaWFsQ2hhcnMoYCR7YX1gKS50b0xvY2FsZUxvd2VyQ2FzZSgpKTtcbiAgICAgIGlmICh2YWx1ZXMuc29tZSgodmFsdWU6IHN0cmluZykgPT4gdmFsdWUuaW5kZXhPZih0ZXh0KSA+IC0xKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICBjb25zb2xlLmxvZygnZmlsdGVyOiAnLCBmaWx0ZXIpO1xuICAgIHRoaXMubGlzdFZvbGF0aWxlID0gZmlsdGVyO1xuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XG4gIH1cblxuICBvbkZvY3VzKCkge1xuICAgIHRoaXMuc2VhcmNoaW5nID0gdHJ1ZTtcbiAgfVxufVxuIl19
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNlbGVjdG9yLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlYXJjaC1zZWxlY3Rvci1pbnB1dC9zZWFyY2gtc2VsZWN0b3ItaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFNBQVMsRUFDVCxTQUFTLEVBQ1QsUUFBUSxFQUNSLE9BQU8sRUFDUCxRQUFRLEVBQ1IsT0FBTyxFQUNQLFFBQVEsRUFDUixRQUFRLEVBQ1IsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLEdBQ1gsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7QUFFdEUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUc7SUFDdkMsS0FBSyxFQUFFLDhCQUE4QjtJQUNyQyxRQUFRLEVBQUUsNkJBQTZCO0NBQ3hDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRztJQUN4QyxLQUFLLEVBQUUsaUJBQWlCO0lBQ3hCLFFBQVEsRUFBRSx3RUFBd0U7Q0FDbkYsQ0FBQztBQXNFRixNQUFNLE9BQU8sc0JBQXNCO0lBcUJqQyxZQUFtQixlQUFnQztRQUFoQyxvQkFBZSxHQUFm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QUFRO3dCQUNSLFFBQVE7d0JBQ1IsU0FBUztxQkFDVixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkNUO29GQUlRLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge1xuICBJb25CdXR0b24sXG4gIElvbkJ1dHRvbnMsXG4gIElvbkNvbnRlbnQsXG4gIElvbkZvb3RlcixcbiAgSW9uSGVhZGVyLFxuICBJb25JbnB1dCxcbiAgSW9uSXRlbSxcbiAgSW9uTGFiZWwsXG4gIElvbkxpc3QsXG4gIElvbk1vZGFsLFxuICBJb25SYWRpbyxcbiAgSW9uU2VsZWN0LFxuICBJb25UaXRsZSxcbiAgSW9uVG9vbGJhcixcbn0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyByZXBsYWNlU3BlY2lhbENoYXJzIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3RleHQnO1xuaW1wb3J0IHsgSW5wdXRNZXRhZGF0YSwgSW5wdXRPcHRpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hiYXJDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBTRUFSQ0hfU0VMRUNUT1JfTk9fUkVTVUxUID0ge1xuICB0aXRsZTogJ05vIHNlIGVuY29udHJhcm9uIHJlc3VsdGFkb3MnLFxuICBzdWJ0aXRsZTogJ0ludGVudGEgY29uIG90cmFzIHBhbGFicmFzLicsXG59O1xuXG5leHBvcnQgY29uc3QgU0VBUkNIX1NFTEVDVE9SX05PX09QVElPTlMgPSB7XG4gIHRpdGxlOiAnTm8gaGF5IG9wY2lvbmVzJyxcbiAgc3VidGl0bGU6ICdFbCBjYW1wbyBzZWxlY2Npb25hZG8gbm8gdGllbmUgb3BjaW9uZXMuIEludGVudGEgbnVldmFtZW50ZSBtw6FzIHRhcmRlLicsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtc2VhcmNoLXNlbGVjdG9yLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIElvbkhlYWRlcixcbiAgICBJb25Ub29sYmFyLFxuICAgIElvblRpdGxlLFxuICAgIElvbkJ1dHRvbnMsXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkZvb3RlcixcbiAgICBJb25MaXN0LFxuICAgIElvbkNvbnRlbnQsXG4gICAgSW9uSXRlbSxcbiAgICBJb25MYWJlbCxcbiAgICBJb25SYWRpbyxcbiAgICBTZWFyY2hiYXJDb21wb25lbnQsXG4gICAgSW9uTW9kYWwsXG4gICAgSW9uSW5wdXQsXG4gICAgSW9uU2VsZWN0LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tc2VsZWN0XG4gICAgICBpZD1cInNlbGVjdC1zZWFyY2gtb3B0aW9uLWFjdGlvblwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwicHJvcHMuY29udHJvbFwiXG4gICAgICBbbGFiZWxdPVwicHJvcHMubGFiZWxcIlxuICAgICAgW2ludGVyZmFjZU9wdGlvbnNdPVwiY3VzdG9tTW9kYWxPcHRpb25zXCJcbiAgICAgIGludGVyZmFjZT1cInBvcG92ZXJcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIltwcm9wcy5wbGFjZWhvbGRlcl1cIlxuICAgICAgY2FuY2VsVGV4dD1cIkNhbmNlbGFyXCJcbiAgICAgIG9rVGV4dD1cIk9rXCJcbiAgICAgIChtb3VzZWRvd24pPVwicHJldmVudERlZmF1bHRCZWhhdmlvcigkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9pb24tc2VsZWN0PlxuICAgIDxpb24tbW9kYWwgI21vZGFsPlxuICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICA8aW9uLWhlYWRlcj5cbiAgICAgICAgICA8aW9uLXRvb2xiYXI+XG4gICAgICAgICAgICA8aW9uLXRpdGxlPlNlbGVjY2lvbmU8L2lvbi10aXRsZT5cbiAgICAgICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJkaXNtaXNzKClcIj5DYW5jZWxhcjwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICAgICAgPC9pb24taGVhZGVyPlxuXG4gICAgICAgIDxpb24tY29udGVudD5cbiAgICAgICAgICA8dmFsLXNlYXJjaGJhciAoZmlsdGVyRXZlbnQpPVwib25GaWx0ZXIoJGV2ZW50KVwiIChmb2N1c0V2ZW50KT1cIm9uRm9jdXMoKVwiIChibHVyRXZlbnQpPVwib25CbHVyKClcIiAvPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInVuaXQtbGlzdC1jb250YWluZXJcIiAqbmdJZj1cImxpc3RWb2xhdGlsZS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8aW9uLWxpc3QgY2xhc3M9XCJ1bml0LWxpc3RcIj5cbiAgICAgICAgICAgICAgPGlvbi1yYWRpby1ncm91cCBhbGxvdy1lbXB0eS1zZWxlY3Rpb24gW2Zvcm1Db250cm9sXT1cInByb3BzLmNvbnRyb2xcIj5cbiAgICAgICAgICAgICAgICA8aW9uLWl0ZW0gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBsaXN0Vm9sYXRpbGVcIj5cbiAgICAgICAgICAgICAgICAgIDxpb24tcmFkaW8ganVzdGlmeT1cInNwYWNlLWJldHdlZW5cIiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwib3B0aW9uLmlkXCI+e3sgb3B0aW9uLm5hbWUgfX08L2lvbi1yYWRpbz5cbiAgICAgICAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICAgICAgICA8L2lvbi1yYWRpby1ncm91cD5cbiAgICAgICAgICAgIDwvaW9uLWxpc3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvaW9uLWNvbnRlbnQ+XG4gICAgICAgIDxpb24tZm9vdGVyIHN0eWxlPVwiZGlzcGxheTogZmxleDtqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtwYWRkaW5nOiA4cHggMHB4O1wiPlxuICAgICAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJkaXNtaXNzKClcIj4gQ2FuY2VsYXIgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiYXBwbHlDaGFuZ2VzKClcIj4gQ29uZmlybWFyIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tZm9vdGVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2lvbi1tb2RhbD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLXNlbGVjdG9yLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdG9yTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwcm9wczogSW5wdXRNZXRhZGF0YTtcblxuICBASW5wdXQoKSBzZWxlY3Rpb24gPSAtMTtcblxuICBASW5wdXQoKSBzaG93QWxsQXRTdGFydCA9IHRydWU7XG5cbiAgc2VhcmNoaW5nID0gZmFsc2U7XG4gIGlzTW9kYWxPcGVuID0gZmFsc2U7XG5cbiAgbGlzdFZvbGF0aWxlOiBJbnB1dE9wdGlvbltdID0gW107XG5cbiAgbm9SZXN1bHQgPSBTRUFSQ0hfU0VMRUNUT1JfTk9fUkVTVUxUO1xuICBub05vdGhpbmcgPSBTRUFSQ0hfU0VMRUNUT1JfTk9fT1BUSU9OUztcblxuICBjdXN0b21Nb2RhbE9wdGlvbnMgPSB7XG4gICAgaGVhZGVyOiAnU2VsZWNjaW9uZScsXG4gICAgYnJlYWtwb2ludHM6IFswLCAwLjZdLFxuICAgIGluaXRpYWxCcmVha3BvaW50OiAwLjYsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHVibGljIG1vZGFsQ29udHJvbGxlcjogTW9kYWxDb250cm9sbGVyKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubGlzdFZvbGF0aWxlID0gW107XG5cbiAgICBpZiAodGhpcy5zaG93QWxsQXRTdGFydCkge1xuICAgICAgdGhpcy5saXN0Vm9sYXRpbGUgPSB0aGlzLnByb3BzLm9wdGlvbnM7XG4gICAgfVxuICB9XG5cbiAgZGlzbWlzcygpIHtcbiAgICB0aGlzLnRvZ2dsZU1vZGFsKGZhbHNlKTtcbiAgfVxuXG4gIGFwcGx5Q2hhbmdlcygpIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLnByb3BzLmNvbnRyb2wpO1xuICAgIGlmICh0aGlzLnByb3BzLmNvbnRyb2wuaW52YWxpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubW9kYWxDb250cm9sbGVyLmRpc21pc3Moe1xuICAgICAgY29uZmlybWVkOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgb25GaWx0ZXIoZXZlbnQ6IHN0cmluZykge1xuICAgIGNvbnNvbGUubG9nKCfwn5KhIG9uU2VhcmNoOjo6ICcsIGV2ZW50KTtcbiAgICBpZiAoIWV2ZW50KSB7XG4gICAgICB0aGlzLmxpc3RWb2xhdGlsZSA9IHRoaXMucHJvcHMub3B0aW9ucztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMubGlzdFZvbGF0aWxlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0ZXh0ID0gcmVwbGFjZVNwZWNpYWxDaGFycyhldmVudC50b0xvd2VyQ2FzZSgpKTtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmxpc3RWb2xhdGlsZS5maWx0ZXIoZWxlbWVudCA9PiB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBPYmplY3QudmFsdWVzKGVsZW1lbnQpLm1hcCgoYTogc3RyaW5nKSA9PiByZXBsYWNlU3BlY2lhbENoYXJzKGAke2F9YCkudG9Mb2NhbGVMb3dlckNhc2UoKSk7XG4gICAgICBpZiAodmFsdWVzLnNvbWUoKHZhbHVlOiBzdHJpbmcpID0+IHZhbHVlLmluZGV4T2YodGV4dCkgPiAtMSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gICAgY29uc29sZS5sb2coJ2ZpbHRlcjogJywgZmlsdGVyKTtcbiAgICB0aGlzLmxpc3RWb2xhdGlsZSA9IGZpbHRlcjtcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xuICB9XG5cbiAgb25Gb2N1cygpIHtcbiAgICB0aGlzLnNlYXJjaGluZyA9IHRydWU7XG4gIH1cblxuICBzaG93U2VsZWN0ZWQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcHRpb24gPSB0aGlzLnByb3BzLm9wdGlvbnMuZmluZCh4ID0+IHguaWQgPT09IHRoaXMucHJvcHMuY29udHJvbC52YWx1ZSk7XG4gICAgaWYgKG9wdGlvbikge1xuICAgICAgcmV0dXJuIG9wdGlvbi5uYW1lO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB0b2dnbGVNb2RhbChpc09wZW4pIHtcbiAgICB0aGlzLmlzTW9kYWxPcGVuID0gaXNPcGVuO1xuICB9XG5cbiAgcHJldmVudERlZmF1bHRCZWhhdmlvcihldmVudDogTW91c2VFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIEV2aXRhIGVsIGNvbXBvcnRhbWllbnRvIHByZWRldGVybWluYWRvIGRlbCBzZWxlY3RvclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyBEZXRpZW5lIGxhIHByb3BhZ2FjacOzbiBkZWwgZXZlbnRvXG4gICAgdGhpcy50b2dnbGVNb2RhbCghdGhpcy5pc01vZGFsT3Blbik7IC8vIEFicmUgZWwgbW9kYWwgcGVyc29uYWxpemFkb1xuICB9XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Component, Input, Output, Injectable, ViewChild, inject, InjectionToken, Inject } from '@angular/core';
3
- import { IonAvatar, IonCard, IonIcon, IonButton, IonSpinner, IonText, IonProgressBar, IonCardContent, IonCardHeader, IonCardTitle, IonCardSubtitle, IonCheckbox, IonButtons, IonTextarea, IonDatetime, IonDatetimeButton, IonModal, IonInput, IonRadioGroup, IonRadio, IonSearchbar, IonHeader, IonToolbar, IonTitle, IonFooter, IonList, IonContent, IonItem, IonLabel, IonSelect, IonSelectOption, IonListHeader, IonNote } from '@ionic/angular/standalone';
3
+ import { IonAvatar, IonCard, IonIcon, IonButton, IonSpinner, IonText, IonProgressBar, IonCardContent, IonCardHeader, IonCardTitle, IonCardSubtitle, IonCheckbox, IonButtons, IonTextarea, IonDatetime, IonDatetimeButton, IonModal, IonInput, IonRadioGroup, IonRadio, IonSearchbar, IonHeader, IonToolbar, IonTitle, IonFooter, IonList, IonContent, IonItem, IonSelect, IonLabel, IonSelectOption, IonListHeader, IonNote } from '@ionic/angular/standalone';
4
4
  import * as i1 from '@angular/common';
5
5
  import { CommonModule, NgStyle, NgIf, NgFor, NgClass } from '@angular/common';
6
6
  import { addIcons } from 'ionicons';
@@ -2057,6 +2057,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
2057
2057
  type: Input
2058
2058
  }] } });
2059
2059
 
2060
+ const replaceSpecialChars = (text) => text.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
2061
+
2060
2062
  class SearchbarComponent {
2061
2063
  constructor() {
2062
2064
  this.focusEvent = new EventEmitter();
@@ -2115,8 +2117,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
2115
2117
  type: Output
2116
2118
  }] } });
2117
2119
 
2118
- const replaceSpecialChars = (text) => text.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
2119
-
2120
2120
  /* eslint-disable @typescript-eslint/naming-convention */
2121
2121
  const SEARCH_SELECTOR_NO_RESULT = {
2122
2122
  title: 'No se encontraron resultados',
@@ -2132,9 +2132,15 @@ class SelectorModalComponent {
2132
2132
  this.selection = -1;
2133
2133
  this.showAllAtStart = true;
2134
2134
  this.searching = false;
2135
+ this.isModalOpen = false;
2135
2136
  this.listVolatile = [];
2136
2137
  this.noResult = SEARCH_SELECTOR_NO_RESULT;
2137
2138
  this.noNothing = SEARCH_SELECTOR_NO_OPTIONS;
2139
+ this.customModalOptions = {
2140
+ header: 'Seleccione',
2141
+ breakpoints: [0, 0.6],
2142
+ initialBreakpoint: 0.6,
2143
+ };
2138
2144
  }
2139
2145
  ngOnInit() {
2140
2146
  this.listVolatile = [];
@@ -2143,9 +2149,7 @@ class SelectorModalComponent {
2143
2149
  }
2144
2150
  }
2145
2151
  dismiss() {
2146
- this.modalController.dismiss({
2147
- confirmed: false,
2148
- });
2152
+ this.toggleModal(false);
2149
2153
  }
2150
2154
  applyChanges() {
2151
2155
  console.log(this.props.control);
@@ -2182,35 +2186,66 @@ class SelectorModalComponent {
2182
2186
  onFocus() {
2183
2187
  this.searching = true;
2184
2188
  }
2189
+ showSelected() {
2190
+ const option = this.props.options.find(x => x.id === this.props.control.value);
2191
+ if (option) {
2192
+ return option.name;
2193
+ }
2194
+ return '';
2195
+ }
2196
+ toggleModal(isOpen) {
2197
+ this.isModalOpen = isOpen;
2198
+ }
2199
+ preventDefaultBehavior(event) {
2200
+ event.preventDefault(); // Evita el comportamiento predeterminado del selector
2201
+ event.stopPropagation(); // Detiene la propagación del evento
2202
+ this.toggleModal(!this.isModalOpen); // Abre el modal personalizado
2203
+ }
2185
2204
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectorModalComponent, deps: [{ token: i1$3.ModalController }], target: i0.ɵɵFactoryTarget.Component }); }
2186
2205
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SelectorModalComponent, isStandalone: true, selector: "val-search-selector-input", inputs: { props: "props", selection: "selection", showAllAtStart: "showAllAtStart" }, ngImport: i0, template: `
2187
- <ion-header>
2188
- <ion-toolbar>
2189
- <ion-title>Seleccione</ion-title>
2190
- <ion-buttons slot="end">
2191
- <ion-button (click)="dismiss()">Cancelar</ion-button>
2192
- </ion-buttons>
2193
- </ion-toolbar>
2194
- </ion-header>
2195
-
2196
- <ion-content>
2197
- <val-searchbar (filterEvent)="onFilter($event)" (focusEvent)="onFocus()" (blurEvent)="onBlur()" />
2198
-
2199
- <div class="unit-list-container" *ngIf="listVolatile.length > 0">
2200
- <ion-list class="unit-list">
2201
- <ion-radio-group allow-empty-selection [formControl]="props.control">
2202
- <ion-item *ngFor="let option of listVolatile">
2203
- <ion-radio justify="space-between" color="primary" [value]="option.id">{{ option.name }}</ion-radio>
2204
- </ion-item>
2205
- </ion-radio-group>
2206
- </ion-list>
2207
- </div>
2208
- </ion-content>
2209
- <ion-footer style="display: flex;justify-content: space-around;padding: 8px 0px;">
2210
- <ion-button color="dark" shape="round" fill="outline" (click)="dismiss()"> Cancelar </ion-button>
2211
- <ion-button color="primary" shape="round" (click)="applyChanges()"> Confirmar </ion-button>
2212
- </ion-footer>
2213
- `, isInline: true, styles: [".form-element{margin-top:1rem;text-align:start}x .form-element:last-child{margin-bottom:2rem}.small-form{min-width:7.5rem;max-width:7.5rem}.sibling{margin-left:.5rem}ion-modal{--width: 290px;--height: 382px;--border-radius: 8px}ion-modal ion-datetime{height:382px}.filter-container{display:flex;margin-left:1rem}.filter-form{padding:0 .25rem 6.25rem}.options-container{margin-bottom:1rem}.unit-list-container{overflow-y:auto}.unit-list{padding-bottom:1rem;margin-bottom:.5rem}.detail-title{font-size:1.125rem;line-height:1.5rem;font-weight:700;margin:0;margin-bottom:.5rem;margin-left:.625rem;font-weight:800}@media (min-width: 768px){.detail-title{font-size:1.5rem;line-height:2rem}}.button-section{width:98%;height:3.75rem;border-radius:.5rem;margin:0 auto;padding:0 .25rem;max-width:36.25rem;margin-top:2.5rem}.event-selector{width:90%;margin-left:1rem}.selectable-container{margin-bottom:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: SearchbarComponent, selector: "val-searchbar", inputs: ["disabled"], outputs: ["focusEvent", "blurEvent", "filterEvent"] }] }); }
2206
+ <ion-select
2207
+ id="select-search-option-action"
2208
+ [formControl]="props.control"
2209
+ [label]="props.label"
2210
+ [interfaceOptions]="customModalOptions"
2211
+ interface="popover"
2212
+ [placeholder]="[props.placeholder]"
2213
+ cancelText="Cancelar"
2214
+ okText="Ok"
2215
+ (mousedown)="preventDefaultBehavior($event)"
2216
+ >
2217
+ </ion-select>
2218
+ <ion-modal #modal>
2219
+ <ng-template>
2220
+ <ion-header>
2221
+ <ion-toolbar>
2222
+ <ion-title>Seleccione</ion-title>
2223
+ <ion-buttons slot="end">
2224
+ <ion-button (click)="dismiss()">Cancelar</ion-button>
2225
+ </ion-buttons>
2226
+ </ion-toolbar>
2227
+ </ion-header>
2228
+
2229
+ <ion-content>
2230
+ <val-searchbar (filterEvent)="onFilter($event)" (focusEvent)="onFocus()" (blurEvent)="onBlur()" />
2231
+
2232
+ <div class="unit-list-container" *ngIf="listVolatile.length > 0">
2233
+ <ion-list class="unit-list">
2234
+ <ion-radio-group allow-empty-selection [formControl]="props.control">
2235
+ <ion-item *ngFor="let option of listVolatile">
2236
+ <ion-radio justify="space-between" color="primary" [value]="option.id">{{ option.name }}</ion-radio>
2237
+ </ion-item>
2238
+ </ion-radio-group>
2239
+ </ion-list>
2240
+ </div>
2241
+ </ion-content>
2242
+ <ion-footer style="display: flex;justify-content: space-around;padding: 8px 0px;">
2243
+ <ion-button color="dark" shape="round" fill="outline" (click)="dismiss()"> Cancelar </ion-button>
2244
+ <ion-button color="primary" shape="round" (click)="applyChanges()"> Confirmar </ion-button>
2245
+ </ion-footer>
2246
+ </ng-template>
2247
+ </ion-modal>
2248
+ `, isInline: true, styles: [".form-element{margin-top:1rem;text-align:start}x .form-element:last-child{margin-bottom:2rem}.small-form{min-width:7.5rem;max-width:7.5rem}.sibling{margin-left:.5rem}ion-modal{--width: 290px;--height: 382px;--border-radius: 8px}ion-modal ion-datetime{height:382px}.filter-container{display:flex;margin-left:1rem}.filter-form{padding:0 .25rem 6.25rem}.options-container{margin-bottom:1rem}.unit-list-container{overflow-y:auto}.unit-list{padding-bottom:1rem;margin-bottom:.5rem}.detail-title{font-size:1.125rem;line-height:1.5rem;font-weight:700;margin:0;margin-bottom:.5rem;margin-left:.625rem;font-weight:800}@media (min-width: 768px){.detail-title{font-size:1.5rem;line-height:2rem}}.button-section{width:98%;height:3.75rem;border-radius:.5rem;margin:0 auto;padding:0 .25rem;max-width:36.25rem;margin-top:2.5rem}.event-selector{width:90%;margin-left:1rem}.selectable-container{margin-bottom:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: SearchbarComponent, selector: "val-searchbar", inputs: ["disabled"], outputs: ["focusEvent", "blurEvent", "filterEvent"] }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "expandedIcon", "fill", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }] }); }
2214
2249
  }
2215
2250
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectorModalComponent, decorators: [{
2216
2251
  type: Component,
@@ -2229,33 +2264,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
2229
2264
  IonLabel,
2230
2265
  IonRadio,
2231
2266
  SearchbarComponent,
2267
+ IonModal,
2268
+ IonInput,
2269
+ IonSelect,
2232
2270
  ], template: `
2233
- <ion-header>
2234
- <ion-toolbar>
2235
- <ion-title>Seleccione</ion-title>
2236
- <ion-buttons slot="end">
2237
- <ion-button (click)="dismiss()">Cancelar</ion-button>
2238
- </ion-buttons>
2239
- </ion-toolbar>
2240
- </ion-header>
2241
-
2242
- <ion-content>
2243
- <val-searchbar (filterEvent)="onFilter($event)" (focusEvent)="onFocus()" (blurEvent)="onBlur()" />
2244
-
2245
- <div class="unit-list-container" *ngIf="listVolatile.length > 0">
2246
- <ion-list class="unit-list">
2247
- <ion-radio-group allow-empty-selection [formControl]="props.control">
2248
- <ion-item *ngFor="let option of listVolatile">
2249
- <ion-radio justify="space-between" color="primary" [value]="option.id">{{ option.name }}</ion-radio>
2250
- </ion-item>
2251
- </ion-radio-group>
2252
- </ion-list>
2253
- </div>
2254
- </ion-content>
2255
- <ion-footer style="display: flex;justify-content: space-around;padding: 8px 0px;">
2256
- <ion-button color="dark" shape="round" fill="outline" (click)="dismiss()"> Cancelar </ion-button>
2257
- <ion-button color="primary" shape="round" (click)="applyChanges()"> Confirmar </ion-button>
2258
- </ion-footer>
2271
+ <ion-select
2272
+ id="select-search-option-action"
2273
+ [formControl]="props.control"
2274
+ [label]="props.label"
2275
+ [interfaceOptions]="customModalOptions"
2276
+ interface="popover"
2277
+ [placeholder]="[props.placeholder]"
2278
+ cancelText="Cancelar"
2279
+ okText="Ok"
2280
+ (mousedown)="preventDefaultBehavior($event)"
2281
+ >
2282
+ </ion-select>
2283
+ <ion-modal #modal>
2284
+ <ng-template>
2285
+ <ion-header>
2286
+ <ion-toolbar>
2287
+ <ion-title>Seleccione</ion-title>
2288
+ <ion-buttons slot="end">
2289
+ <ion-button (click)="dismiss()">Cancelar</ion-button>
2290
+ </ion-buttons>
2291
+ </ion-toolbar>
2292
+ </ion-header>
2293
+
2294
+ <ion-content>
2295
+ <val-searchbar (filterEvent)="onFilter($event)" (focusEvent)="onFocus()" (blurEvent)="onBlur()" />
2296
+
2297
+ <div class="unit-list-container" *ngIf="listVolatile.length > 0">
2298
+ <ion-list class="unit-list">
2299
+ <ion-radio-group allow-empty-selection [formControl]="props.control">
2300
+ <ion-item *ngFor="let option of listVolatile">
2301
+ <ion-radio justify="space-between" color="primary" [value]="option.id">{{ option.name }}</ion-radio>
2302
+ </ion-item>
2303
+ </ion-radio-group>
2304
+ </ion-list>
2305
+ </div>
2306
+ </ion-content>
2307
+ <ion-footer style="display: flex;justify-content: space-around;padding: 8px 0px;">
2308
+ <ion-button color="dark" shape="round" fill="outline" (click)="dismiss()"> Cancelar </ion-button>
2309
+ <ion-button color="primary" shape="round" (click)="applyChanges()"> Confirmar </ion-button>
2310
+ </ion-footer>
2311
+ </ng-template>
2312
+ </ion-modal>
2259
2313
  `, styles: [".form-element{margin-top:1rem;text-align:start}x .form-element:last-child{margin-bottom:2rem}.small-form{min-width:7.5rem;max-width:7.5rem}.sibling{margin-left:.5rem}ion-modal{--width: 290px;--height: 382px;--border-radius: 8px}ion-modal ion-datetime{height:382px}.filter-container{display:flex;margin-left:1rem}.filter-form{padding:0 .25rem 6.25rem}.options-container{margin-bottom:1rem}.unit-list-container{overflow-y:auto}.unit-list{padding-bottom:1rem;margin-bottom:.5rem}.detail-title{font-size:1.125rem;line-height:1.5rem;font-weight:700;margin:0;margin-bottom:.5rem;margin-left:.625rem;font-weight:800}@media (min-width: 768px){.detail-title{font-size:1.5rem;line-height:2rem}}.button-section{width:98%;height:3.75rem;border-radius:.5rem;margin:0 auto;padding:0 .25rem;max-width:36.25rem;margin-top:2.5rem}.event-selector{width:90%;margin-left:1rem}.selectable-container{margin-bottom:1rem}\n"] }]
2260
2314
  }], ctorParameters: () => [{ type: i1$3.ModalController }], propDecorators: { props: [{
2261
2315
  type: Input