valtech-components 2.0.95 → 2.0.97

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.
@@ -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, IonToolbar, IonTitle, IonFooter, IonHeader, IonList, IonListHeader, IonLabel, IonNote, IonItem, IonContent } 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, IonSelect, IonSelectOption, IonSearchbar, IonToolbar, IonTitle, IonFooter, IonHeader, IonList, IonListHeader, IonLabel, IonNote, IonItem, IonContent } 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';
@@ -1314,6 +1314,85 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
1314
1314
  type: Input
1315
1315
  }] } });
1316
1316
 
1317
+ function resolveColor(color) {
1318
+ // Si el color empieza con "--", se asume que es una variable CSS válida
1319
+ if (color.startsWith('--')) {
1320
+ return `var(${color})`;
1321
+ }
1322
+ // Lista de colores predefinidos de Ionic
1323
+ const ionicColors = [
1324
+ 'primary',
1325
+ 'secondary',
1326
+ 'tertiary',
1327
+ 'success',
1328
+ 'warning',
1329
+ 'danger',
1330
+ 'light',
1331
+ 'medium',
1332
+ 'dark',
1333
+ ];
1334
+ // Verificar si el color es un color de Ionic
1335
+ if (ionicColors.includes(color)) {
1336
+ return `var(--ion-color-${color})`;
1337
+ }
1338
+ // Si no es una variable CSS ni un color de Ionic, devolver el color tal cual
1339
+ return color;
1340
+ }
1341
+
1342
+ class ExpandableTextComponent {
1343
+ constructor() {
1344
+ this.expanded = false;
1345
+ this.defaultColor = 'primary';
1346
+ }
1347
+ get truncatedText() {
1348
+ const maxLength = this.props.limit || 100; // Longitud por defecto
1349
+ return this.props.content?.length > maxLength ? this.props.content.slice(0, maxLength) + '...' : this.props.content;
1350
+ }
1351
+ get isTruncated() {
1352
+ return this.props.content?.length > (this.props.limit || 100);
1353
+ }
1354
+ toggleExpand() {
1355
+ this.expanded = !this.expanded;
1356
+ }
1357
+ color() {
1358
+ return resolveColor(this.props.color || this.defaultColor);
1359
+ }
1360
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExpandableTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1361
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ExpandableTextComponent, isStandalone: true, selector: "val-expandable-text", inputs: { props: "props" }, ngImport: i0, template: `
1362
+ <div class="description-container" [class.expanded]="expanded" [class.has-gradient]="!expanded && isTruncated">
1363
+ <ion-text>
1364
+ <p class="description">
1365
+ <span class="content">{{ expanded ? props.content : truncatedText }}</span>
1366
+ @if (!expanded && isTruncated) {
1367
+ <span class="see-more" [style.color]="this.color()" (click)="toggleExpand()">
1368
+ {{ props.expandText || 'ver más' }}
1369
+ </span>
1370
+ }
1371
+ </p>
1372
+ </ion-text>
1373
+ </div>
1374
+ `, isInline: true, styles: [".description-container{position:relative;overflow:hidden;max-height:10rem;transition:max-height .3s ease-in-out}.description-container.expanded{max-height:none}.description{position:relative;overflow:hidden;text-overflow:ellipsis}.description-container:not(.expanded) .description:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:3.5rem;background:linear-gradient(to top,var(--ion-background-color),rgba(255,255,255,0));pointer-events:none}.description-container:not(.has-gradient) .description:after{background:transparent}.see-more{position:relative;font-weight:700;cursor:pointer;z-index:1;margin-left:.3rem}\n"], dependencies: [{ kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
1375
+ }
1376
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExpandableTextComponent, decorators: [{
1377
+ type: Component,
1378
+ args: [{ selector: 'val-expandable-text', standalone: true, imports: [IonText], template: `
1379
+ <div class="description-container" [class.expanded]="expanded" [class.has-gradient]="!expanded && isTruncated">
1380
+ <ion-text>
1381
+ <p class="description">
1382
+ <span class="content">{{ expanded ? props.content : truncatedText }}</span>
1383
+ @if (!expanded && isTruncated) {
1384
+ <span class="see-more" [style.color]="this.color()" (click)="toggleExpand()">
1385
+ {{ props.expandText || 'ver más' }}
1386
+ </span>
1387
+ }
1388
+ </p>
1389
+ </ion-text>
1390
+ </div>
1391
+ `, styles: [".description-container{position:relative;overflow:hidden;max-height:10rem;transition:max-height .3s ease-in-out}.description-container.expanded{max-height:none}.description{position:relative;overflow:hidden;text-overflow:ellipsis}.description-container:not(.expanded) .description:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:3.5rem;background:linear-gradient(to top,var(--ion-background-color),rgba(255,255,255,0));pointer-events:none}.description-container:not(.has-gradient) .description:after{background:transparent}.see-more{position:relative;font-weight:700;cursor:pointer;z-index:1;margin-left:.3rem}\n"] }]
1392
+ }], propDecorators: { props: [{
1393
+ type: Input
1394
+ }] } });
1395
+
1317
1396
  class FileInputComponent {
1318
1397
  constructor() {
1319
1398
  this.contrastButton = {
@@ -1977,6 +2056,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
1977
2056
  type: Input
1978
2057
  }] } });
1979
2058
 
2059
+ class SearchSelectorComponent {
2060
+ constructor() {
2061
+ this.customModalOptions = {
2062
+ header: 'Seleccione',
2063
+ breakpoints: [0, 0.6],
2064
+ initialBreakpoint: 0.6,
2065
+ };
2066
+ }
2067
+ ngOnInit() {
2068
+ this.customModalOptions.header = this.props.label;
2069
+ }
2070
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2071
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SearchSelectorComponent, isStandalone: true, selector: "val-search-selector-input", inputs: { props: "props" }, ngImport: i0, template: `
2072
+ <ion-radio-group [allowEmptySelection]="true" [formControl]="props.control">
2073
+ <ng-container *ngFor="let o of props.options">
2074
+ <ion-radio [value]="o.id">{{ o.name }}</ion-radio>
2075
+ <br />
2076
+ </ng-container>
2077
+ </ion-radio-group>
2078
+ <ion-select
2079
+ [label]="props.label"
2080
+ [interfaceOptions]="customModalOptions"
2081
+ interface="modal"
2082
+ [placeholder]="[props.placeholder]"
2083
+ >
2084
+ <ion-select-option *ngFor="let o of props.options" [value]="o.id">{{ o.name }}</ion-select-option>
2085
+ </ion-select>
2086
+ `, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: IonRadioGroup, selector: "ion-radio-group", inputs: ["allowEmptySelection", "name", "value"] }, { kind: "component", type: IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "mode", "name", "value"] }, { 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"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }] }); }
2087
+ }
2088
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchSelectorComponent, decorators: [{
2089
+ type: Component,
2090
+ args: [{ selector: 'val-search-selector-input', standalone: true, imports: [NgFor, ReactiveFormsModule, IonRadioGroup, IonRadio, IonSelect, IonSelectOption], template: `
2091
+ <ion-radio-group [allowEmptySelection]="true" [formControl]="props.control">
2092
+ <ng-container *ngFor="let o of props.options">
2093
+ <ion-radio [value]="o.id">{{ o.name }}</ion-radio>
2094
+ <br />
2095
+ </ng-container>
2096
+ </ion-radio-group>
2097
+ <ion-select
2098
+ [label]="props.label"
2099
+ [interfaceOptions]="customModalOptions"
2100
+ interface="modal"
2101
+ [placeholder]="[props.placeholder]"
2102
+ >
2103
+ <ion-select-option *ngFor="let o of props.options" [value]="o.id">{{ o.name }}</ion-select-option>
2104
+ </ion-select>
2105
+ ` }]
2106
+ }], ctorParameters: () => [], propDecorators: { props: [{
2107
+ type: Input
2108
+ }] } });
2109
+
1980
2110
  class SearchbarComponent {
1981
2111
  constructor() {
1982
2112
  this.focusEvent = new EventEmitter();
@@ -2048,85 +2178,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
2048
2178
  type: Input
2049
2179
  }] } });
2050
2180
 
2051
- function resolveColor(color) {
2052
- // Si el color empieza con "--", se asume que es una variable CSS válida
2053
- if (color.startsWith('--')) {
2054
- return `var(${color})`;
2055
- }
2056
- // Lista de colores predefinidos de Ionic
2057
- const ionicColors = [
2058
- 'primary',
2059
- 'secondary',
2060
- 'tertiary',
2061
- 'success',
2062
- 'warning',
2063
- 'danger',
2064
- 'light',
2065
- 'medium',
2066
- 'dark',
2067
- ];
2068
- // Verificar si el color es un color de Ionic
2069
- if (ionicColors.includes(color)) {
2070
- return `var(--ion-color-${color})`;
2071
- }
2072
- // Si no es una variable CSS ni un color de Ionic, devolver el color tal cual
2073
- return color;
2074
- }
2075
-
2076
- class ExpandableTextComponent {
2077
- constructor() {
2078
- this.expanded = false;
2079
- this.defaultColor = 'primary';
2080
- }
2081
- get truncatedText() {
2082
- const maxLength = this.props.limit || 100; // Longitud por defecto
2083
- return this.props.content?.length > maxLength ? this.props.content.slice(0, maxLength) + '...' : this.props.content;
2084
- }
2085
- get isTruncated() {
2086
- return this.props.content?.length > (this.props.limit || 100);
2087
- }
2088
- toggleExpand() {
2089
- this.expanded = !this.expanded;
2090
- }
2091
- color() {
2092
- return resolveColor(this.props.color || this.defaultColor);
2093
- }
2094
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExpandableTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2095
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ExpandableTextComponent, isStandalone: true, selector: "val-expandable-text", inputs: { props: "props" }, ngImport: i0, template: `
2096
- <div class="description-container" [class.expanded]="expanded" [class.has-gradient]="!expanded && isTruncated">
2097
- <ion-text>
2098
- <p class="description">
2099
- <span class="content">{{ expanded ? props.content : truncatedText }}</span>
2100
- @if (!expanded && isTruncated) {
2101
- <span class="see-more" [style.color]="this.color()" (click)="toggleExpand()">
2102
- {{ props.expandText || 'ver más' }}
2103
- </span>
2104
- }
2105
- </p>
2106
- </ion-text>
2107
- </div>
2108
- `, isInline: true, styles: [".description-container{position:relative;overflow:hidden;max-height:10rem;transition:max-height .3s ease-in-out}.description-container.expanded{max-height:none}.description{position:relative;overflow:hidden;text-overflow:ellipsis}.description-container:not(.expanded) .description:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:3.5rem;background:linear-gradient(to top,var(--ion-background-color),rgba(255,255,255,0));pointer-events:none}.description-container:not(.has-gradient) .description:after{background:transparent}.see-more{position:relative;font-weight:700;cursor:pointer;z-index:1;margin-left:.3rem}\n"], dependencies: [{ kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
2109
- }
2110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExpandableTextComponent, decorators: [{
2111
- type: Component,
2112
- args: [{ selector: 'val-expandable-text', standalone: true, imports: [IonText], template: `
2113
- <div class="description-container" [class.expanded]="expanded" [class.has-gradient]="!expanded && isTruncated">
2114
- <ion-text>
2115
- <p class="description">
2116
- <span class="content">{{ expanded ? props.content : truncatedText }}</span>
2117
- @if (!expanded && isTruncated) {
2118
- <span class="see-more" [style.color]="this.color()" (click)="toggleExpand()">
2119
- {{ props.expandText || 'ver más' }}
2120
- </span>
2121
- }
2122
- </p>
2123
- </ion-text>
2124
- </div>
2125
- `, styles: [".description-container{position:relative;overflow:hidden;max-height:10rem;transition:max-height .3s ease-in-out}.description-container.expanded{max-height:none}.description{position:relative;overflow:hidden;text-overflow:ellipsis}.description-container:not(.expanded) .description:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:3.5rem;background:linear-gradient(to top,var(--ion-background-color),rgba(255,255,255,0));pointer-events:none}.description-container:not(.has-gradient) .description:after{background:transparent}.see-more{position:relative;font-weight:700;cursor:pointer;z-index:1;margin-left:.3rem}\n"] }]
2126
- }], propDecorators: { props: [{
2127
- type: Input
2128
- }] } });
2129
-
2130
2181
  class BannerComponent {
2131
2182
  constructor() {
2132
2183
  this.onClick = new EventEmitter();
@@ -2381,11 +2432,11 @@ class FooterComponent {
2381
2432
  ></val-toolbar>
2382
2433
  <ng-content select="[extra]"></ng-content>
2383
2434
  </ion-footer>
2384
- `, isInline: true, styles: [".background{background:var(--ion-background-color)}\n"], dependencies: [{ kind: "component", type: IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: ToolbarComponent, selector: "val-toolbar", inputs: ["props"], outputs: ["onClick"] }] }); }
2435
+ `, isInline: true, styles: [".background{background:var(--ion-background-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: ToolbarComponent, selector: "val-toolbar", inputs: ["props"], outputs: ["onClick"] }] }); }
2385
2436
  }
2386
2437
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FooterComponent, decorators: [{
2387
2438
  type: Component,
2388
- args: [{ selector: 'val-footer', standalone: true, imports: [IonFooter, ToolbarComponent], template: `
2439
+ args: [{ selector: 'val-footer', standalone: true, imports: [CommonModule, IonFooter, ToolbarComponent], template: `
2389
2440
  <ion-footer
2390
2441
  [class.ion-no-border]="!props.bordered"
2391
2442
  [translucent]="props.translucent"
@@ -2603,7 +2654,7 @@ class FormComponent {
2603
2654
  <val-radio-input [props]="getFieldProp(f)"></val-radio-input>
2604
2655
  </ng-container>
2605
2656
  <ng-container *ngIf="f.type === types.SELECT">
2606
- <!-- <val-select-input></val-select-input> -->
2657
+ <val-search-selector-input [props]="getFieldProp(f)"></val-search-selector-input>
2607
2658
  </ng-container>
2608
2659
  <val-hint [props]="getFieldProp(f)"></val-hint>
2609
2660
  </div>
@@ -2615,7 +2666,7 @@ class FormComponent {
2615
2666
  ></val-button-group>
2616
2667
  </form>
2617
2668
  </div>
2618
- `, isInline: true, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\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.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextInputComponent, selector: "val-text-input", inputs: ["props"] }, { kind: "component", type: CheckInputComponent, selector: "val-check-input" }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: DividerComponent, selector: "val-divider", inputs: ["props"] }, { kind: "component", type: HintComponent, selector: "val-hint", inputs: ["props"] }, { kind: "component", type: CommentInputComponent, selector: "val-comment-input", inputs: ["props"] }, { kind: "component", type: DateInputComponent, selector: "val-date-input", inputs: ["props"] }, { kind: "component", type: FileInputComponent, selector: "val-file-input", inputs: ["props"] }, { kind: "component", type: HourInputComponent, selector: "val-hour-input", inputs: ["props"] }, { kind: "component", type: EmailInputComponent, selector: "val-email-input", inputs: ["props"] }, { kind: "component", type: NumberInputComponent, selector: "val-number-input", inputs: ["props"] }, { kind: "component", type: RadioInputComponent, selector: "val-radio-input", inputs: ["props"] }, { kind: "component", type: PasswordInputComponent, selector: "val-password-input", inputs: ["props"] }, { kind: "component", type: PinInputComponent, selector: "val-pin-input", inputs: ["props"] }] }); }
2669
+ `, isInline: true, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\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.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextInputComponent, selector: "val-text-input", inputs: ["props"] }, { kind: "component", type: CheckInputComponent, selector: "val-check-input" }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: DividerComponent, selector: "val-divider", inputs: ["props"] }, { kind: "component", type: HintComponent, selector: "val-hint", inputs: ["props"] }, { kind: "component", type: CommentInputComponent, selector: "val-comment-input", inputs: ["props"] }, { kind: "component", type: DateInputComponent, selector: "val-date-input", inputs: ["props"] }, { kind: "component", type: FileInputComponent, selector: "val-file-input", inputs: ["props"] }, { kind: "component", type: HourInputComponent, selector: "val-hour-input", inputs: ["props"] }, { kind: "component", type: EmailInputComponent, selector: "val-email-input", inputs: ["props"] }, { kind: "component", type: NumberInputComponent, selector: "val-number-input", inputs: ["props"] }, { kind: "component", type: RadioInputComponent, selector: "val-radio-input", inputs: ["props"] }, { kind: "component", type: PasswordInputComponent, selector: "val-password-input", inputs: ["props"] }, { kind: "component", type: PinInputComponent, selector: "val-pin-input", inputs: ["props"] }, { kind: "component", type: SearchSelectorComponent, selector: "val-search-selector-input", inputs: ["props"] }] }); }
2619
2670
  }
2620
2671
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormComponent, decorators: [{
2621
2672
  type: Component,
@@ -2638,6 +2689,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
2638
2689
  RadioInputComponent,
2639
2690
  PasswordInputComponent,
2640
2691
  PinInputComponent,
2692
+ SearchSelectorComponent,
2641
2693
  ], template: `
2642
2694
  <div class="container">
2643
2695
  <form [formGroup]="form">
@@ -2687,7 +2739,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
2687
2739
  <val-radio-input [props]="getFieldProp(f)"></val-radio-input>
2688
2740
  </ng-container>
2689
2741
  <ng-container *ngIf="f.type === types.SELECT">
2690
- <!-- <val-select-input></val-select-input> -->
2742
+ <val-search-selector-input [props]="getFieldProp(f)"></val-search-selector-input>
2691
2743
  </ng-container>
2692
2744
  <val-hint [props]="getFieldProp(f)"></val-hint>
2693
2745
  </div>
@@ -2736,304 +2788,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
2736
2788
  type: Output
2737
2789
  }] } });
2738
2790
 
2739
- class NoContentComponent {
2740
- constructor() {
2791
+ class ItemListComponent {
2792
+ constructor(icon) {
2793
+ this.states = ComponentStates;
2794
+ this.defaultColor = 'primary';
2741
2795
  this.onClick = new EventEmitter();
2796
+ this.onActionClick = new EventEmitter();
2742
2797
  }
2743
2798
  ngOnInit() { }
2744
- onClickHandler(token) {
2799
+ clickHandler(token) {
2745
2800
  this.onClick.emit(token);
2746
2801
  }
2747
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2748
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: NoContentComponent, isStandalone: true, selector: "val-no-content", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
2749
- @if (props.topContent) {
2750
- <div>
2751
- <val-banner [props]="props.topContent" (onClick)="onClickHandler($event)"></val-banner>
2752
- </div>
2802
+ onActionClickHandler(token) {
2803
+ this.onActionClick.emit(token);
2753
2804
  }
2754
- <val-image class="image-container" [props]="props.image"></val-image>
2755
- <div>
2756
- <val-banner [props]="props.bottomContent" (onClick)="onClickHandler($event)"></val-banner>
2757
- </div>
2758
- `, isInline: true, styles: [".image-container{display:flex;justify-content:center;margin-bottom:1rem}val-image .image{margin:0 auto}\n"], dependencies: [{ kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: BannerComponent, selector: "val-banner", inputs: ["props"], outputs: ["onClick", "onClose"] }] }); }
2759
- }
2760
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoContentComponent, decorators: [{
2761
- type: Component,
2762
- args: [{ selector: 'val-no-content', standalone: true, imports: [ImageComponent, BannerComponent], template: `
2763
- @if (props.topContent) {
2764
- <div>
2765
- <val-banner [props]="props.topContent" (onClick)="onClickHandler($event)"></val-banner>
2766
- </div>
2805
+ color() {
2806
+ return resolveColor(this.props.color || this.defaultColor);
2767
2807
  }
2768
- <val-image class="image-container" [props]="props.image"></val-image>
2769
- <div>
2770
- <val-banner [props]="props.bottomContent" (onClick)="onClickHandler($event)"></val-banner>
2771
- </div>
2772
- `, styles: [".image-container{display:flex;justify-content:center;margin-bottom:1rem}val-image .image{margin:0 auto}\n"] }]
2773
- }], ctorParameters: () => [], propDecorators: { props: [{
2774
- type: Input
2775
- }], onClick: [{
2776
- type: Output
2777
- }] } });
2778
-
2779
- var MOTION;
2780
- (function (MOTION) {
2781
- MOTION[MOTION["BACKWARD"] = 0] = "BACKWARD";
2782
- MOTION[MOTION["FORWARD"] = 1] = "FORWARD";
2783
- MOTION[MOTION["RETRY"] = 2] = "RETRY";
2784
- })(MOTION || (MOTION = {}));
2785
-
2786
- class WizardFooterComponent {
2787
- constructor() {
2788
- this.onClick = new EventEmitter();
2789
- this.wrapperId = 'wizard-wrapper';
2790
- }
2791
- ngOnInit() { }
2792
- clickHandler(token) {
2793
- if (!token) {
2794
- return;
2795
- }
2796
- if (token.includes('right')) {
2797
- this.tryToStep(MOTION.FORWARD);
2798
- }
2799
- if (token.includes('left')) {
2800
- this.tryToStep(MOTION.BACKWARD);
2801
- }
2802
- }
2803
- get Current() {
2804
- return this.props.steps[this.props.current];
2805
- }
2806
- get Progress() {
2807
- if (this.props.steps && this.props.current) {
2808
- return this.props.current / Object.keys(this.props.steps).length;
2809
- }
2810
- return 0;
2811
- }
2812
- get actions() {
2813
- if (this.props.state === ComponentStates.ERROR && this.Current.buttons.length > 1) {
2814
- this.Current.buttons[1].state = ComponentStates.DISABLED;
2815
- }
2816
- if (this.props.current === 1 && this.Current.buttons.length > 1) {
2817
- return [this.Current.buttons[1]];
2818
- }
2819
- return this.Current.buttons;
2820
- }
2821
- tryToStep(motion) {
2822
- this.onClick.emit({ current: this.props.current, motion });
2823
- }
2824
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2825
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WizardFooterComponent, isStandalone: true, selector: "val-wizard-footer", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
2826
- <val-footer
2827
- [props]="{
2828
- bordered: false,
2829
- translucent: false,
2830
- toolbar: {
2831
- title: '',
2832
- actions: [],
2833
- color: 'background',
2834
- withBack: false,
2835
- withActions: false,
2836
- },
2837
- }"
2838
- >
2839
- <val-progress-bar
2840
- extra
2841
- [props]="{ progress: Progress, color: '', type: 'determinate', buffer: 1, size: 'small', rounded: false }"
2842
- ></val-progress-bar>
2843
- <val-button-group
2844
- extra
2845
- [props]="{ buttons: actions, position: 'left', columned: false }"
2846
- position="spaced"
2847
- (onClick)="clickHandler($event)"
2848
- ></val-button-group>
2849
- </val-footer>
2850
- `, isInline: true, styles: [""], dependencies: [{ kind: "component", type: FooterComponent, selector: "val-footer", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ProgressBarComponent, selector: "val-progress-bar", inputs: ["props"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }] }); }
2851
- }
2852
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardFooterComponent, decorators: [{
2853
- type: Component,
2854
- args: [{ selector: 'val-wizard-footer', standalone: true, imports: [FooterComponent, ProgressBarComponent, ButtonGroupComponent], template: `
2855
- <val-footer
2856
- [props]="{
2857
- bordered: false,
2858
- translucent: false,
2859
- toolbar: {
2860
- title: '',
2861
- actions: [],
2862
- color: 'background',
2863
- withBack: false,
2864
- withActions: false,
2865
- },
2866
- }"
2867
- >
2868
- <val-progress-bar
2869
- extra
2870
- [props]="{ progress: Progress, color: '', type: 'determinate', buffer: 1, size: 'small', rounded: false }"
2871
- ></val-progress-bar>
2872
- <val-button-group
2873
- extra
2874
- [props]="{ buttons: actions, position: 'left', columned: false }"
2875
- position="spaced"
2876
- (onClick)="clickHandler($event)"
2877
- ></val-button-group>
2878
- </val-footer>
2879
- ` }]
2880
- }], ctorParameters: () => [], propDecorators: { props: [{
2881
- type: Input
2882
- }], onClick: [{
2883
- type: Output
2884
- }] } });
2885
-
2886
- class WizardComponent {
2887
- constructor() {
2888
- this.onClick = new EventEmitter();
2889
- this.wrapperId = 'wizard-wrapper';
2890
- }
2891
- ngOnInit() { }
2892
- working() {
2893
- this.props.state = ComponentStates.WORKING;
2894
- this.Current.buttons.map(x => {
2895
- x.state = ComponentStates.DISABLED;
2896
- });
2897
- }
2898
- done() {
2899
- if (this.props.state === ComponentStates.ENABLED) {
2900
- return;
2901
- }
2902
- this.props.state = ComponentStates.ENABLED;
2903
- this.Current.buttons.map(x => {
2904
- x.state = ComponentStates.ENABLED;
2905
- });
2906
- }
2907
- get Current() {
2908
- return this.props.steps[this.props.current];
2909
- }
2910
- setCurrent(newStep) {
2911
- if (newStep === this.props.current) {
2912
- return;
2913
- }
2914
- this.props.current = newStep;
2915
- goToTop(this.wrapperId);
2916
- }
2917
- setError(error) {
2918
- if (this.props.state === ComponentStates.ERROR) {
2919
- return;
2920
- }
2921
- this.props.error.titles.bottomContent.content.bellowTitle.text = error;
2922
- this.props.state = ComponentStates.ERROR;
2923
- goToTop(this.wrapperId);
2924
- }
2925
- reset() {
2926
- this.props.error.titles.bottomContent.content.bellowTitle.text = '';
2927
- this.done();
2928
- }
2929
- clickHandler(token) {
2930
- if (!token) {
2931
- return;
2932
- }
2933
- if (token.includes('retry')) {
2934
- this.reset();
2935
- }
2936
- this.onClick.emit({ current: this.props.current, motion: MOTION.RETRY });
2937
- }
2938
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2939
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WizardComponent, isStandalone: true, selector: "val-wizard", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
2940
- <div [id]="wrapperId" class="wrapper">
2941
- <ng-container *ngIf="props.state !== 'ERROR'">
2942
- <val-no-content [props]="Current.titles"></val-no-content>
2943
- <div class="step">
2944
- <div *ngIf="props.state === 'WORKING'">
2945
- <val-content-loader
2946
- [props]="{
2947
- name: 'circular',
2948
- color: 'primary',
2949
- size: 'large',
2950
- text: 'Por favor espere...',
2951
- }"
2952
- ></val-content-loader>
2953
- </div>
2954
- <ng-content select="[step]"></ng-content>
2955
- </div>
2956
- </ng-container>
2957
- <ng-container *ngIf="props.state === 'ERROR'">
2958
- <val-no-content [props]="props.error.titles" (onClick)="clickHandler($event)"></val-no-content>
2959
- </ng-container>
2960
- </div>
2961
- `, isInline: true, styles: [".wrapper{height:auto;display:flex;flex-direction:column;justify-content:space-between;position:relative}.step{min-height:9.375rem;margin:16px 0;text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NoContentComponent, selector: "val-no-content", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ContentLoaderComponent, selector: "val-content-loader", inputs: ["props"] }] }); }
2962
- }
2963
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardComponent, decorators: [{
2964
- type: Component,
2965
- args: [{ selector: 'val-wizard', standalone: true, imports: [CommonModule, NoContentComponent, ContentLoaderComponent], template: `
2966
- <div [id]="wrapperId" class="wrapper">
2967
- <ng-container *ngIf="props.state !== 'ERROR'">
2968
- <val-no-content [props]="Current.titles"></val-no-content>
2969
- <div class="step">
2970
- <div *ngIf="props.state === 'WORKING'">
2971
- <val-content-loader
2972
- [props]="{
2973
- name: 'circular',
2974
- color: 'primary',
2975
- size: 'large',
2976
- text: 'Por favor espere...',
2977
- }"
2978
- ></val-content-loader>
2979
- </div>
2980
- <ng-content select="[step]"></ng-content>
2981
- </div>
2982
- </ng-container>
2983
- <ng-container *ngIf="props.state === 'ERROR'">
2984
- <val-no-content [props]="props.error.titles" (onClick)="clickHandler($event)"></val-no-content>
2985
- </ng-container>
2986
- </div>
2987
- `, styles: [".wrapper{height:auto;display:flex;flex-direction:column;justify-content:space-between;position:relative}.step{min-height:9.375rem;margin:16px 0;text-align:center}\n"] }]
2988
- }], ctorParameters: () => [], propDecorators: { props: [{
2989
- type: Input
2990
- }], onClick: [{
2991
- type: Output
2992
- }] } });
2993
-
2994
- class ItemListComponent {
2995
- constructor(icon) {
2996
- this.states = ComponentStates;
2997
- this.defaultColor = 'primary';
2998
- this.onClick = new EventEmitter();
2999
- this.onActionClick = new EventEmitter();
3000
- }
3001
- ngOnInit() { }
3002
- clickHandler(token) {
3003
- this.onClick.emit(token);
3004
- }
3005
- onActionClickHandler(token) {
3006
- this.onActionClick.emit(token);
3007
- }
3008
- color() {
3009
- return resolveColor(this.props.color || this.defaultColor);
3010
- }
3011
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ItemListComponent, deps: [{ token: IconService }], target: i0.ɵɵFactoryTarget.Component }); }
3012
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ItemListComponent, isStandalone: true, selector: "val-item-list", inputs: { props: "props" }, outputs: { onClick: "onClick", onActionClick: "onActionClick" }, ngImport: i0, template: `
3013
- <ion-list
3014
- [inset]="props.rounded"
3015
- [class.shadowed]="props.shadowed"
3016
- [class.bordered]="props.bordered"
3017
- [style.borderColor]="this.color()"
3018
- >
3019
- @if (props.title) {
3020
- <ion-list-header>
3021
- <ion-label>{{ props.title }}</ion-label>
3022
- </ion-list-header>
3023
- }
3024
- @for (item of props.items; track item.text) {
3025
- @if (item.mode == 'justext') {
3026
- <ion-item
3027
- [lines]="item.lines"
3028
- [button]="item.clickable"
3029
- [disabled]="item.disabled"
3030
- (click)="clickHandler(item.token)"
3031
- >
3032
- @if (item.unreadIndicator) {
3033
- <div class="unread-indicator-wrapper" slot="start">
3034
- <div class="unread-indicator"></div>
3035
- </div>
3036
- }
2808
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ItemListComponent, deps: [{ token: IconService }], target: i0.ɵɵFactoryTarget.Component }); }
2809
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ItemListComponent, isStandalone: true, selector: "val-item-list", inputs: { props: "props" }, outputs: { onClick: "onClick", onActionClick: "onActionClick" }, ngImport: i0, template: `
2810
+ <ion-list
2811
+ [inset]="props.rounded"
2812
+ [class.shadowed]="props.shadowed"
2813
+ [class.bordered]="props.bordered"
2814
+ [style.borderColor]="this.color()"
2815
+ >
2816
+ @if (props.title) {
2817
+ <ion-list-header>
2818
+ <ion-label>{{ props.title }}</ion-label>
2819
+ </ion-list-header>
2820
+ }
2821
+ @for (item of props.items; track item.text) {
2822
+ @if (item.mode == 'justext') {
2823
+ <ion-item
2824
+ [lines]="item.lines"
2825
+ [button]="item.clickable"
2826
+ [disabled]="item.disabled"
2827
+ (click)="clickHandler(item.token)"
2828
+ >
2829
+ @if (item.unreadIndicator) {
2830
+ <div class="unread-indicator-wrapper" slot="start">
2831
+ <div class="unread-indicator"></div>
2832
+ </div>
2833
+ }
3037
2834
 
3038
2835
  <ion-label [ngClass]="{ 'ion-text-nowrap': item.ellipsis }">
3039
2836
  <h2>{{ item.text }}</h2>
@@ -3341,6 +3138,261 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
3341
3138
  type: Output
3342
3139
  }] } });
3343
3140
 
3141
+ class NoContentComponent {
3142
+ constructor() {
3143
+ this.onClick = new EventEmitter();
3144
+ }
3145
+ ngOnInit() { }
3146
+ onClickHandler(token) {
3147
+ this.onClick.emit(token);
3148
+ }
3149
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3150
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: NoContentComponent, isStandalone: true, selector: "val-no-content", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
3151
+ @if (props.topContent) {
3152
+ <div>
3153
+ <val-banner [props]="props.topContent" (onClick)="onClickHandler($event)"></val-banner>
3154
+ </div>
3155
+ }
3156
+ <val-image class="image-container" [props]="props.image"></val-image>
3157
+ <div>
3158
+ <val-banner [props]="props.bottomContent" (onClick)="onClickHandler($event)"></val-banner>
3159
+ </div>
3160
+ `, isInline: true, styles: [".image-container{display:flex;justify-content:center;margin-bottom:1rem}val-image .image{margin:0 auto}\n"], dependencies: [{ kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: BannerComponent, selector: "val-banner", inputs: ["props"], outputs: ["onClick", "onClose"] }] }); }
3161
+ }
3162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoContentComponent, decorators: [{
3163
+ type: Component,
3164
+ args: [{ selector: 'val-no-content', standalone: true, imports: [ImageComponent, BannerComponent], template: `
3165
+ @if (props.topContent) {
3166
+ <div>
3167
+ <val-banner [props]="props.topContent" (onClick)="onClickHandler($event)"></val-banner>
3168
+ </div>
3169
+ }
3170
+ <val-image class="image-container" [props]="props.image"></val-image>
3171
+ <div>
3172
+ <val-banner [props]="props.bottomContent" (onClick)="onClickHandler($event)"></val-banner>
3173
+ </div>
3174
+ `, styles: [".image-container{display:flex;justify-content:center;margin-bottom:1rem}val-image .image{margin:0 auto}\n"] }]
3175
+ }], ctorParameters: () => [], propDecorators: { props: [{
3176
+ type: Input
3177
+ }], onClick: [{
3178
+ type: Output
3179
+ }] } });
3180
+
3181
+ var MOTION;
3182
+ (function (MOTION) {
3183
+ MOTION[MOTION["BACKWARD"] = 0] = "BACKWARD";
3184
+ MOTION[MOTION["FORWARD"] = 1] = "FORWARD";
3185
+ MOTION[MOTION["RETRY"] = 2] = "RETRY";
3186
+ })(MOTION || (MOTION = {}));
3187
+
3188
+ class WizardFooterComponent {
3189
+ constructor() {
3190
+ this.onClick = new EventEmitter();
3191
+ this.wrapperId = 'wizard-wrapper';
3192
+ }
3193
+ ngOnInit() { }
3194
+ clickHandler(token) {
3195
+ if (!token) {
3196
+ return;
3197
+ }
3198
+ if (token.includes('right')) {
3199
+ this.tryToStep(MOTION.FORWARD);
3200
+ }
3201
+ if (token.includes('left')) {
3202
+ this.tryToStep(MOTION.BACKWARD);
3203
+ }
3204
+ }
3205
+ get Current() {
3206
+ return this.props.steps[this.props.current];
3207
+ }
3208
+ get Progress() {
3209
+ if (this.props.steps && this.props.current) {
3210
+ return this.props.current / Object.keys(this.props.steps).length;
3211
+ }
3212
+ return 0;
3213
+ }
3214
+ get actions() {
3215
+ if (this.props.state === ComponentStates.ERROR && this.Current.buttons.length > 1) {
3216
+ this.Current.buttons[1].state = ComponentStates.DISABLED;
3217
+ }
3218
+ if (this.props.current === 1 && this.Current.buttons.length > 1) {
3219
+ return [this.Current.buttons[1]];
3220
+ }
3221
+ return this.Current.buttons;
3222
+ }
3223
+ tryToStep(motion) {
3224
+ this.onClick.emit({ current: this.props.current, motion });
3225
+ }
3226
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3227
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WizardFooterComponent, isStandalone: true, selector: "val-wizard-footer", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
3228
+ <val-footer
3229
+ [props]="{
3230
+ bordered: false,
3231
+ translucent: false,
3232
+ toolbar: {
3233
+ title: '',
3234
+ actions: [],
3235
+ color: 'background',
3236
+ withBack: false,
3237
+ withActions: false,
3238
+ },
3239
+ }"
3240
+ >
3241
+ <val-progress-bar
3242
+ extra
3243
+ [props]="{ progress: Progress, color: '', type: 'determinate', buffer: 1, size: 'small', rounded: false }"
3244
+ ></val-progress-bar>
3245
+ <val-button-group
3246
+ extra
3247
+ [props]="{ buttons: actions, position: 'left', columned: false }"
3248
+ position="spaced"
3249
+ (onClick)="clickHandler($event)"
3250
+ ></val-button-group>
3251
+ </val-footer>
3252
+ `, isInline: true, styles: [""], dependencies: [{ kind: "component", type: FooterComponent, selector: "val-footer", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ProgressBarComponent, selector: "val-progress-bar", inputs: ["props"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }] }); }
3253
+ }
3254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardFooterComponent, decorators: [{
3255
+ type: Component,
3256
+ args: [{ selector: 'val-wizard-footer', standalone: true, imports: [FooterComponent, ProgressBarComponent, ButtonGroupComponent], template: `
3257
+ <val-footer
3258
+ [props]="{
3259
+ bordered: false,
3260
+ translucent: false,
3261
+ toolbar: {
3262
+ title: '',
3263
+ actions: [],
3264
+ color: 'background',
3265
+ withBack: false,
3266
+ withActions: false,
3267
+ },
3268
+ }"
3269
+ >
3270
+ <val-progress-bar
3271
+ extra
3272
+ [props]="{ progress: Progress, color: '', type: 'determinate', buffer: 1, size: 'small', rounded: false }"
3273
+ ></val-progress-bar>
3274
+ <val-button-group
3275
+ extra
3276
+ [props]="{ buttons: actions, position: 'left', columned: false }"
3277
+ position="spaced"
3278
+ (onClick)="clickHandler($event)"
3279
+ ></val-button-group>
3280
+ </val-footer>
3281
+ ` }]
3282
+ }], ctorParameters: () => [], propDecorators: { props: [{
3283
+ type: Input
3284
+ }], onClick: [{
3285
+ type: Output
3286
+ }] } });
3287
+
3288
+ class WizardComponent {
3289
+ constructor() {
3290
+ this.onClick = new EventEmitter();
3291
+ this.wrapperId = 'wizard-wrapper';
3292
+ }
3293
+ ngOnInit() { }
3294
+ working() {
3295
+ this.props.state = ComponentStates.WORKING;
3296
+ this.Current.buttons.map(x => {
3297
+ x.state = ComponentStates.DISABLED;
3298
+ });
3299
+ }
3300
+ done() {
3301
+ if (this.props.state === ComponentStates.ENABLED) {
3302
+ return;
3303
+ }
3304
+ this.props.state = ComponentStates.ENABLED;
3305
+ this.Current.buttons.map(x => {
3306
+ x.state = ComponentStates.ENABLED;
3307
+ });
3308
+ }
3309
+ get Current() {
3310
+ return this.props.steps[this.props.current];
3311
+ }
3312
+ setCurrent(newStep) {
3313
+ if (newStep === this.props.current) {
3314
+ return;
3315
+ }
3316
+ this.props.current = newStep;
3317
+ goToTop(this.wrapperId);
3318
+ }
3319
+ setError(error) {
3320
+ if (this.props.state === ComponentStates.ERROR) {
3321
+ return;
3322
+ }
3323
+ this.props.error.titles.bottomContent.content.bellowTitle.text = error;
3324
+ this.props.state = ComponentStates.ERROR;
3325
+ goToTop(this.wrapperId);
3326
+ }
3327
+ reset() {
3328
+ this.props.error.titles.bottomContent.content.bellowTitle.text = '';
3329
+ this.done();
3330
+ }
3331
+ clickHandler(token) {
3332
+ if (!token) {
3333
+ return;
3334
+ }
3335
+ if (token.includes('retry')) {
3336
+ this.reset();
3337
+ }
3338
+ this.onClick.emit({ current: this.props.current, motion: MOTION.RETRY });
3339
+ }
3340
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3341
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WizardComponent, isStandalone: true, selector: "val-wizard", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
3342
+ <div [id]="wrapperId" class="wrapper">
3343
+ <ng-container *ngIf="props.state !== 'ERROR'">
3344
+ <val-no-content [props]="Current.titles"></val-no-content>
3345
+ <div class="step">
3346
+ <div *ngIf="props.state === 'WORKING'">
3347
+ <val-content-loader
3348
+ [props]="{
3349
+ name: 'circular',
3350
+ color: 'primary',
3351
+ size: 'large',
3352
+ text: 'Por favor espere...',
3353
+ }"
3354
+ ></val-content-loader>
3355
+ </div>
3356
+ <ng-content select="[step]"></ng-content>
3357
+ </div>
3358
+ </ng-container>
3359
+ <ng-container *ngIf="props.state === 'ERROR'">
3360
+ <val-no-content [props]="props.error.titles" (onClick)="clickHandler($event)"></val-no-content>
3361
+ </ng-container>
3362
+ </div>
3363
+ `, isInline: true, styles: [".wrapper{height:auto;display:flex;flex-direction:column;justify-content:space-between;position:relative}.step{min-height:9.375rem;margin:16px 0;text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NoContentComponent, selector: "val-no-content", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ContentLoaderComponent, selector: "val-content-loader", inputs: ["props"] }] }); }
3364
+ }
3365
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardComponent, decorators: [{
3366
+ type: Component,
3367
+ args: [{ selector: 'val-wizard', standalone: true, imports: [CommonModule, NoContentComponent, ContentLoaderComponent], template: `
3368
+ <div [id]="wrapperId" class="wrapper">
3369
+ <ng-container *ngIf="props.state !== 'ERROR'">
3370
+ <val-no-content [props]="Current.titles"></val-no-content>
3371
+ <div class="step">
3372
+ <div *ngIf="props.state === 'WORKING'">
3373
+ <val-content-loader
3374
+ [props]="{
3375
+ name: 'circular',
3376
+ color: 'primary',
3377
+ size: 'large',
3378
+ text: 'Por favor espere...',
3379
+ }"
3380
+ ></val-content-loader>
3381
+ </div>
3382
+ <ng-content select="[step]"></ng-content>
3383
+ </div>
3384
+ </ng-container>
3385
+ <ng-container *ngIf="props.state === 'ERROR'">
3386
+ <val-no-content [props]="props.error.titles" (onClick)="clickHandler($event)"></val-no-content>
3387
+ </ng-container>
3388
+ </div>
3389
+ `, styles: [".wrapper{height:auto;display:flex;flex-direction:column;justify-content:space-between;position:relative}.step{min-height:9.375rem;margin:16px 0;text-align:center}\n"] }]
3390
+ }], ctorParameters: () => [], propDecorators: { props: [{
3391
+ type: Input
3392
+ }], onClick: [{
3393
+ type: Output
3394
+ }] } });
3395
+
3344
3396
  class LayoutComponent {
3345
3397
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3346
3398
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LayoutComponent, isStandalone: true, selector: "val-layout", ngImport: i0, template: `
@@ -3676,5 +3728,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
3676
3728
  * Generated bundle index. Do not edit.
3677
3729
  */
3678
3730
 
3679
- export { ActionType, AlertBoxComponent, AvatarComponent, BannerComponent, BaseDefault, BoxComponent, ButtonComponent, ButtonGroupComponent, CardComponent, CardSection, CardType, CheckInputComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CommentInputComponent, ComponentStates, ContentLoaderComponent, DateInputComponent, DisplayComponent, DividerComponent, DownloadService, EmailInputComponent, ExpandableTextComponent, FileInputComponent, FooterComponent, FormComponent, FormFooterComponent, HeaderComponent, HintComponent, HourInputComponent, HrefComponent, Icon, IconComponent, IconService, ImageComponent, InAppBrowserService, InputType, ItemListComponent, LangOption, LangService, LayoutComponent, LinkComponent, LinksCakeComponent, LocalStorageService, MOTION, NavigationService, NoContentComponent, NotesBoxComponent, NumberInputComponent, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PasswordInputComponent, PinInputComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProgressBarComponent, ProgressStatusComponent, PrompterComponent, RadioInputComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SimpleComponent, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, TextComponent, TextContent, TextInputComponent, ThemeOption, ThemeService, TitleBlockComponent, TitleComponent, ToastService, ToolbarActionType, ToolbarComponent, ValtechConfigService, WizardComponent, WizardFooterComponent, goToTop, isAtEnd, maxLength };
3731
+ export { ActionType, AlertBoxComponent, AvatarComponent, BannerComponent, BaseDefault, BoxComponent, ButtonComponent, ButtonGroupComponent, CardComponent, CardSection, CardType, CheckInputComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CommentInputComponent, ComponentStates, ContentLoaderComponent, DateInputComponent, DisplayComponent, DividerComponent, DownloadService, EmailInputComponent, ExpandableTextComponent, FileInputComponent, FooterComponent, FormComponent, FormFooterComponent, HeaderComponent, HintComponent, HourInputComponent, HrefComponent, Icon, IconComponent, IconService, ImageComponent, InAppBrowserService, InputType, ItemListComponent, LangOption, LangService, LayoutComponent, LinkComponent, LinksCakeComponent, LocalStorageService, MOTION, NavigationService, NoContentComponent, NotesBoxComponent, NumberInputComponent, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PasswordInputComponent, PinInputComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProgressBarComponent, ProgressStatusComponent, PrompterComponent, RadioInputComponent, SearchSelectorComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SimpleComponent, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, TextComponent, TextContent, TextInputComponent, ThemeOption, ThemeService, TitleBlockComponent, TitleComponent, ToastService, ToolbarActionType, ToolbarComponent, ValtechConfigService, WizardComponent, WizardFooterComponent, goToTop, isAtEnd, maxLength };
3680
3732
  //# sourceMappingURL=valtech-components.mjs.map