valtech-components 1.11.64 → 1.11.66

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.
Files changed (64) hide show
  1. package/esm2022/lib/components/atoms/title/title.component.mjs +2 -2
  2. package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +14 -0
  3. package/esm2022/lib/components/molecules/comment-input/comment-input.component.mjs +19 -0
  4. package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +20 -0
  5. package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +19 -0
  6. package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +37 -0
  7. package/esm2022/lib/components/molecules/hint/hint.component.mjs +29 -0
  8. package/esm2022/lib/components/molecules/hour-input/hour-input.component.mjs +19 -0
  9. package/esm2022/lib/components/molecules/no-content/no-content.component.mjs +3 -3
  10. package/esm2022/lib/components/molecules/number-input/number-input.component.mjs +19 -0
  11. package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +21 -0
  12. package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +39 -0
  13. package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +27 -0
  14. package/esm2022/lib/components/molecules/prompter/types.mjs +2 -0
  15. package/esm2022/lib/components/molecules/radio-input/radio-input.component.mjs +20 -0
  16. package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +20 -0
  17. package/esm2022/lib/components/organisms/footer/footer.component.mjs +25 -0
  18. package/esm2022/lib/components/organisms/footer/types.mjs +2 -0
  19. package/esm2022/lib/components/organisms/form/form-footer/form-footer.component.mjs +36 -0
  20. package/esm2022/lib/components/organisms/form/form.component.mjs +75 -0
  21. package/esm2022/lib/components/organisms/header/header.component.mjs +24 -0
  22. package/esm2022/lib/components/organisms/header/types.mjs +2 -0
  23. package/esm2022/lib/components/organisms/wizard/types.mjs +7 -0
  24. package/esm2022/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.mjs +57 -0
  25. package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +72 -0
  26. package/esm2022/lib/components/types.mjs +16 -1
  27. package/esm2022/lib/services/lang-provider/lang-provider.service.mjs +2 -2
  28. package/esm2022/lib/services/theme.service.mjs +2 -2
  29. package/esm2022/lib/shared/constants/storage.mjs +3 -0
  30. package/esm2022/lib/shared/utils/dom.mjs +17 -0
  31. package/esm2022/lib/valtech-components.module.mjs +102 -5
  32. package/esm2022/public-api.mjs +22 -2
  33. package/fesm2022/valtech-components.mjs +613 -10
  34. package/fesm2022/valtech-components.mjs.map +1 -1
  35. package/lib/components/molecules/check-input/check-input.component.d.ts +8 -0
  36. package/lib/components/molecules/comment-input/comment-input.component.d.ts +12 -0
  37. package/lib/components/molecules/date-input/date-input.component.d.ts +12 -0
  38. package/lib/components/molecules/email-input/email-input.component.d.ts +12 -0
  39. package/lib/components/molecules/file-input/file-input.component.d.ts +18 -0
  40. package/lib/components/molecules/hint/hint.component.d.ts +13 -0
  41. package/lib/components/molecules/hour-input/hour-input.component.d.ts +12 -0
  42. package/lib/components/molecules/number-input/number-input.component.d.ts +12 -0
  43. package/lib/components/molecules/password-input/password-input.component.d.ts +13 -0
  44. package/lib/components/molecules/pin-input/pin-input.component.d.ts +17 -0
  45. package/lib/components/molecules/prompter/prompter.component.d.ts +12 -0
  46. package/lib/components/molecules/prompter/types.d.ts +11 -0
  47. package/lib/components/molecules/radio-input/radio-input.component.d.ts +12 -0
  48. package/lib/components/molecules/text-input/text-input.component.d.ts +12 -0
  49. package/lib/components/organisms/footer/footer.component.d.ts +12 -0
  50. package/lib/components/organisms/footer/types.d.ts +6 -0
  51. package/lib/components/organisms/form/form-footer/form-footer.component.d.ts +16 -0
  52. package/lib/components/organisms/form/form.component.d.ts +24 -0
  53. package/lib/components/organisms/header/header.component.d.ts +12 -0
  54. package/lib/components/organisms/header/types.d.ts +6 -0
  55. package/lib/components/organisms/wizard/types.d.ts +21 -0
  56. package/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.d.ts +21 -0
  57. package/lib/components/organisms/wizard/wizard.component.d.ts +22 -0
  58. package/lib/components/types.d.ts +58 -0
  59. package/lib/shared/utils/dom.d.ts +3 -0
  60. package/lib/valtech-components.module.d.ts +25 -4
  61. package/package.json +3 -2
  62. package/public-api.d.ts +21 -1
  63. package/esm2022/lib/shared/contants/storage.mjs +0 -3
  64. /package/lib/shared/{contants → constants}/storage.d.ts +0 -0
@@ -1,9 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, EventEmitter, Component, Input, Output, InjectionToken, NgModule, Inject } from '@angular/core';
2
+ import { Injectable, EventEmitter, Component, Input, Output, ViewChild, InjectionToken, NgModule, Inject } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i1$1 from '@ionic/angular';
6
6
  import { IonicModule } from '@ionic/angular';
7
+ import * as i2 from '@angular/forms';
8
+ import { ReactiveFormsModule } from '@angular/forms';
9
+ import * as i1$2 from 'ng-otp-input';
10
+ import { NgOtpInputComponent, NgOtpInputModule } from 'ng-otp-input';
7
11
  import { BehaviorSubject } from 'rxjs';
8
12
  import { HttpClientModule } from '@angular/common/http';
9
13
 
@@ -20,6 +24,21 @@ var ActionType;
20
24
  ActionType[ActionType["APP_NAVIGATION"] = 3] = "APP_NAVIGATION";
21
25
  ActionType[ActionType["BROWSER_NAVIGATION"] = 4] = "BROWSER_NAVIGATION";
22
26
  })(ActionType || (ActionType = {}));
27
+ var InputType;
28
+ (function (InputType) {
29
+ InputType[InputType["TEXT"] = 0] = "TEXT";
30
+ InputType[InputType["EMAIL"] = 1] = "EMAIL";
31
+ InputType[InputType["PASSWORD"] = 2] = "PASSWORD";
32
+ InputType[InputType["COMMENT"] = 3] = "COMMENT";
33
+ InputType[InputType["NUMBER"] = 4] = "NUMBER";
34
+ InputType[InputType["PIN_CODE"] = 5] = "PIN_CODE";
35
+ InputType[InputType["DATE"] = 6] = "DATE";
36
+ InputType[InputType["HOUR"] = 7] = "HOUR";
37
+ InputType[InputType["CHECK"] = 8] = "CHECK";
38
+ InputType[InputType["RADIO"] = 9] = "RADIO";
39
+ InputType[InputType["SELECT"] = 10] = "SELECT";
40
+ InputType[InputType["FILE"] = 11] = "FILE";
41
+ })(InputType || (InputType = {}));
23
42
 
24
43
  class DownloadService {
25
44
  getFileNameFromUrl(url) {
@@ -352,11 +371,11 @@ class TitleComponent {
352
371
  constructor() { }
353
372
  ngOnInit() { }
354
373
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
355
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TitleComponent, selector: "val-title", inputs: { size: "size", color: "color", content: "content" }, ngImport: i0, template: "<ion-text [color]=\"color\">\n <p [class]=\"size\">\n {{ content }}\n </p>\n</ion-text>\n", styles: [".small{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.small{font-size:1rem;line-height:1.5rem}}.medium{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium{font-size:1.125rem;line-height:1.5rem}}.large{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large{font-size:1.5rem;line-height:2rem}}\n"], dependencies: [{ kind: "component", type: i1$1.IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
374
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TitleComponent, selector: "val-title", inputs: { size: "size", color: "color", content: "content" }, ngImport: i0, template: "<ion-text [color]=\"color\">\n <p [class]=\"size\">\n {{ content }}\n </p>\n</ion-text>\n", styles: [".small{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.small{font-size:1rem;line-height:1.5rem}}.medium{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium{font-size:1.125rem;line-height:1.5rem}}.large{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large{font-size:1.5rem;line-height:2rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}\n"], dependencies: [{ kind: "component", type: i1$1.IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
356
375
  }
357
376
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TitleComponent, decorators: [{
358
377
  type: Component,
359
- args: [{ selector: 'val-title', template: "<ion-text [color]=\"color\">\n <p [class]=\"size\">\n {{ content }}\n </p>\n</ion-text>\n", styles: [".small{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.small{font-size:1rem;line-height:1.5rem}}.medium{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium{font-size:1.125rem;line-height:1.5rem}}.large{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large{font-size:1.5rem;line-height:2rem}}\n"] }]
378
+ args: [{ selector: 'val-title', template: "<ion-text [color]=\"color\">\n <p [class]=\"size\">\n {{ content }}\n </p>\n</ion-text>\n", styles: [".small{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.small{font-size:1rem;line-height:1.5rem}}.medium{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium{font-size:1.125rem;line-height:1.5rem}}.large{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large{font-size:1.5rem;line-height:2rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}\n"] }]
360
379
  }], ctorParameters: () => [], propDecorators: { size: [{
361
380
  type: Input
362
381
  }], color: [{
@@ -771,11 +790,11 @@ class NoContentComponent {
771
790
  this.onClick.emit(token);
772
791
  }
773
792
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NoContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
774
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: NoContentComponent, selector: "val-no-content", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<val-image class=\"image-container\" [props]=\"props.image\"></val-image>\n<div>\n <val-banner [props]=\"props.content\"></val-banner>\n</div>\n", styles: [".image-container{display:flex;justify-content:center;margin-bottom:1rem}val-image .image{margin:0 auto}\n"], dependencies: [{ kind: "component", type: BannerComponent, selector: "val-banner", inputs: ["props"], outputs: ["onClick", "onClose"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }] }); }
793
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: NoContentComponent, selector: "val-no-content", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<val-image class=\"image-container\" [props]=\"props.image\"></val-image>\n<div>\n <val-banner [props]=\"props.content\" (onClick)=\"onClickHandler($event)\"></val-banner>\n</div>\n", styles: [".image-container{display:flex;justify-content:center;margin-bottom:1rem}val-image .image{margin:0 auto}\n"], dependencies: [{ kind: "component", type: BannerComponent, selector: "val-banner", inputs: ["props"], outputs: ["onClick", "onClose"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }] }); }
775
794
  }
776
795
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NoContentComponent, decorators: [{
777
796
  type: Component,
778
- args: [{ selector: 'val-no-content', template: "<val-image class=\"image-container\" [props]=\"props.image\"></val-image>\n<div>\n <val-banner [props]=\"props.content\"></val-banner>\n</div>\n", styles: [".image-container{display:flex;justify-content:center;margin-bottom:1rem}val-image .image{margin:0 auto}\n"] }]
797
+ args: [{ selector: 'val-no-content', template: "<val-image class=\"image-container\" [props]=\"props.image\"></val-image>\n<div>\n <val-banner [props]=\"props.content\" (onClick)=\"onClickHandler($event)\"></val-banner>\n</div>\n", styles: [".image-container{display:flex;justify-content:center;margin-bottom:1rem}val-image .image{margin:0 auto}\n"] }]
779
798
  }], ctorParameters: () => [], propDecorators: { props: [{
780
799
  type: Input
781
800
  }], onClick: [{
@@ -830,6 +849,252 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
830
849
  type: Input
831
850
  }] } });
832
851
 
852
+ class CheckInputComponent {
853
+ constructor() { }
854
+ ngOnInit() { }
855
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CheckInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
856
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: CheckInputComponent, selector: "val-check-input", ngImport: i0, template: "<ion-checkbox>I agree to the terms and conditions</ion-checkbox>", styles: [""], dependencies: [{ kind: "component", type: i1$1.IonCheckbox, selector: "ion-checkbox", inputs: ["alignment", "checked", "color", "disabled", "indeterminate", "justify", "labelPlacement", "legacy", "mode", "name", "value"] }, { kind: "directive", type: i1$1.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }] }); }
857
+ }
858
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CheckInputComponent, decorators: [{
859
+ type: Component,
860
+ args: [{ selector: 'val-check-input', template: "<ion-checkbox>I agree to the terms and conditions</ion-checkbox>" }]
861
+ }], ctorParameters: () => [] });
862
+
863
+ class CommentInputComponent {
864
+ constructor() { }
865
+ ngOnInit() { }
866
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CommentInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
867
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: CommentInputComponent, selector: "val-comment-input", inputs: { control: "control", metadata: "metadata" }, ngImport: i0, template: "<ion-textarea [formControl]=\"control\" [counter]=\"true\" [maxlength]=\"metadata.range.max\"></ion-textarea>", styles: [""], dependencies: [{ kind: "component", type: i1$1.IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "legacy", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }, { kind: "directive", type: i1$1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar,ion-range" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
868
+ }
869
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CommentInputComponent, decorators: [{
870
+ type: Component,
871
+ args: [{ selector: 'val-comment-input', template: "<ion-textarea [formControl]=\"control\" [counter]=\"true\" [maxlength]=\"metadata.range.max\"></ion-textarea>" }]
872
+ }], ctorParameters: () => [], propDecorators: { control: [{
873
+ type: Input
874
+ }], metadata: [{
875
+ type: Input
876
+ }] } });
877
+
878
+ class DateInputComponent {
879
+ constructor() {
880
+ }
881
+ ngOnInit() { }
882
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DateInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
883
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: DateInputComponent, selector: "val-date-input", inputs: { control: "control", metadata: "metadata" }, ngImport: i0, template: "<div class=\"button-container\">\n <ion-datetime-button class=\"action\" datetime=\"datetime\"></ion-datetime-button>\n</div>\n<ion-modal [keepContentsMounted]=\"true\">\n <ng-template>\n <ion-datetime\n [formControl]=\"control\"\n id=\"datetime\"\n presentation=\"date\"\n locale=\"es-ES\"\n [firstDayOfWeek]=\"1\"\n [showDefaultButtons]=\"true\"\n doneText=\"Aceptar\"\n cancelText=\"Cancelar\"\n [formatOptions]=\"{\n date: { weekday: 'short', month: 'long', day: '2-digit', },\n time: {\n hour: '2-digit',\n minute: '2-digit',\n },\n }\"\n >\n <span slot=\"title\">{{ metadata.hint }}</span>\n </ion-datetime>\n </ng-template>\n</ion-modal>\n", styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.button-container{display:flex;flex-direction:column;align-items:flex-start}.action{margin-top:.25rem}\n"], dependencies: [{ kind: "component", type: i1$1.IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "formatOptions", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "component", type: i1$1.IonDatetimeButton, selector: "ion-datetime-button", inputs: ["color", "datetime", "disabled", "mode"] }, { kind: "component", type: i1$1.IonModal, selector: "ion-modal" }, { kind: "directive", type: i1$1.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
884
+ }
885
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DateInputComponent, decorators: [{
886
+ type: Component,
887
+ args: [{ selector: 'val-date-input', template: "<div class=\"button-container\">\n <ion-datetime-button class=\"action\" datetime=\"datetime\"></ion-datetime-button>\n</div>\n<ion-modal [keepContentsMounted]=\"true\">\n <ng-template>\n <ion-datetime\n [formControl]=\"control\"\n id=\"datetime\"\n presentation=\"date\"\n locale=\"es-ES\"\n [firstDayOfWeek]=\"1\"\n [showDefaultButtons]=\"true\"\n doneText=\"Aceptar\"\n cancelText=\"Cancelar\"\n [formatOptions]=\"{\n date: { weekday: 'short', month: 'long', day: '2-digit', },\n time: {\n hour: '2-digit',\n minute: '2-digit',\n },\n }\"\n >\n <span slot=\"title\">{{ metadata.hint }}</span>\n </ion-datetime>\n </ng-template>\n</ion-modal>\n", styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.button-container{display:flex;flex-direction:column;align-items:flex-start}.action{margin-top:.25rem}\n"] }]
888
+ }], ctorParameters: () => [], propDecorators: { control: [{
889
+ type: Input
890
+ }], metadata: [{
891
+ type: Input
892
+ }] } });
893
+
894
+ class EmailInputComponent {
895
+ constructor() { }
896
+ ngOnInit() { }
897
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: EmailInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
898
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: EmailInputComponent, selector: "val-email-input", inputs: { control: "control", metadata: "metadata" }, ngImport: i0, template: "<ion-input\n [formControl]=\"control\"\n type=\"email\"\n [placeholder]=\"metadata.placeholder\"\n></ion-input>\n\n", styles: [""], dependencies: [{ kind: "component", type: i1$1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "legacy", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "directive", type: i1$1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar,ion-range" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
899
+ }
900
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: EmailInputComponent, decorators: [{
901
+ type: Component,
902
+ args: [{ selector: 'val-email-input', template: "<ion-input\n [formControl]=\"control\"\n type=\"email\"\n [placeholder]=\"metadata.placeholder\"\n></ion-input>\n\n" }]
903
+ }], ctorParameters: () => [], propDecorators: { control: [{
904
+ type: Input
905
+ }], metadata: [{
906
+ type: Input
907
+ }] } });
908
+
909
+ class FileInputComponent {
910
+ constructor() {
911
+ this.contrastButton = {
912
+ ...PrimarySolidDefaultRoundButton('Subir archivo'),
913
+ color: 'light',
914
+ };
915
+ }
916
+ ngOnInit() { }
917
+ onFileSelected(event) {
918
+ this.selectedFile = event.target.files[0];
919
+ this.control.setValue(this.selectedFile);
920
+ }
921
+ reset() {
922
+ this.selectedFile = null;
923
+ this.fileInput.nativeElement.value = '';
924
+ }
925
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: FileInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
926
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: FileInputComponent, selector: "val-file-input", inputs: { control: "control", metadata: "metadata" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div class=\"file-container\">\n <input style=\"display: none\" type=\"file\" (change)=\"onFileSelected($event)\" #fileInput>\n <div class=\"name-container\">\n <ion-icon [name]=\"selectedFile ? 'checkmark-circle-outline' : 'alert-circle-outline'\"></ion-icon>\n <val-text style=\"margin-left: 4px;\" color=\"dark\" size=\"medium\" [content]=\"selectedFile ? selectedFile.name : 'No has seleccionado archivo'\"></val-text>\n </div>\n <val-button [props]=\"contrastButton\" (onClick)=\"fileInput.click()\"></val-button>\n</div>", styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.file-container{margin-top:.25rem}.name-container{display:flex;flex-direction:row;align-items:flex-start}\n"], dependencies: [{ kind: "component", type: i1$1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["size", "color", "content", "bold"] }] }); }
927
+ }
928
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: FileInputComponent, decorators: [{
929
+ type: Component,
930
+ args: [{ selector: 'val-file-input', template: "<div class=\"file-container\">\n <input style=\"display: none\" type=\"file\" (change)=\"onFileSelected($event)\" #fileInput>\n <div class=\"name-container\">\n <ion-icon [name]=\"selectedFile ? 'checkmark-circle-outline' : 'alert-circle-outline'\"></ion-icon>\n <val-text style=\"margin-left: 4px;\" color=\"dark\" size=\"medium\" [content]=\"selectedFile ? selectedFile.name : 'No has seleccionado archivo'\"></val-text>\n </div>\n <val-button [props]=\"contrastButton\" (onClick)=\"fileInput.click()\"></val-button>\n</div>", styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.file-container{margin-top:.25rem}.name-container{display:flex;flex-direction:row;align-items:flex-start}\n"] }]
931
+ }], ctorParameters: () => [], propDecorators: { fileInput: [{
932
+ type: ViewChild,
933
+ args: ['fileInput']
934
+ }], control: [{
935
+ type: Input
936
+ }], metadata: [{
937
+ type: Input
938
+ }] } });
939
+
940
+ class HintComponent {
941
+ constructor() { }
942
+ ngOnInit() { }
943
+ get Errors() {
944
+ const keys = Object.keys(this.metadata.errors);
945
+ const errors = [];
946
+ keys.map((e) => {
947
+ if (this.control.hasError(e)) {
948
+ errors.push(this.metadata.errors[e]);
949
+ }
950
+ });
951
+ return errors;
952
+ }
953
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: HintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
954
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: HintComponent, selector: "val-hint", inputs: { control: "control", metadata: "metadata" }, ngImport: i0, template: "<div class=\"hint-container\" *ngIf=\"control.invalid && (control.touched || control.dirty)\">\n <val-text *ngFor=\"let e of Errors\" color=\"danger\" [content]=\"e\" size=\"small\"></val-text>\n</div>", styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.hint-container{margin-top:.25rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["size", "color", "content", "bold"] }] }); }
955
+ }
956
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: HintComponent, decorators: [{
957
+ type: Component,
958
+ args: [{ selector: 'val-hint', template: "<div class=\"hint-container\" *ngIf=\"control.invalid && (control.touched || control.dirty)\">\n <val-text *ngFor=\"let e of Errors\" color=\"danger\" [content]=\"e\" size=\"small\"></val-text>\n</div>", styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.hint-container{margin-top:.25rem}\n"] }]
959
+ }], ctorParameters: () => [], propDecorators: { control: [{
960
+ type: Input
961
+ }], metadata: [{
962
+ type: Input
963
+ }] } });
964
+
965
+ class HourInputComponent {
966
+ constructor() { }
967
+ ngOnInit() { }
968
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: HourInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
969
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: HourInputComponent, selector: "val-hour-input", inputs: { control: "control", metadata: "metadata" }, ngImport: i0, template: "\n<ion-datetime [formControl]=\"control\" presentation=\"time\"></ion-datetime>", styles: [""], dependencies: [{ kind: "component", type: i1$1.IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "formatOptions", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "directive", type: i1$1.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
970
+ }
971
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: HourInputComponent, decorators: [{
972
+ type: Component,
973
+ args: [{ selector: 'val-hour-input', template: "\n<ion-datetime [formControl]=\"control\" presentation=\"time\"></ion-datetime>" }]
974
+ }], ctorParameters: () => [], propDecorators: { control: [{
975
+ type: Input
976
+ }], metadata: [{
977
+ type: Input
978
+ }] } });
979
+
980
+ class NumberInputComponent {
981
+ constructor() { }
982
+ ngOnInit() { }
983
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
984
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: NumberInputComponent, selector: "val-number-input", inputs: { control: "control", metadata: "metadata" }, ngImport: i0, template: "<ion-input\n [formControl]=\"control\"\n type=\"number\"\n [placeholder]=\"metadata.placeholder\"\n></ion-input>", styles: [""], dependencies: [{ kind: "component", type: i1$1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "legacy", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "directive", type: i1$1.NumericValueAccessor, selector: "ion-input[type=number]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
985
+ }
986
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: NumberInputComponent, decorators: [{
987
+ type: Component,
988
+ args: [{ selector: 'val-number-input', template: "<ion-input\n [formControl]=\"control\"\n type=\"number\"\n [placeholder]=\"metadata.placeholder\"\n></ion-input>" }]
989
+ }], ctorParameters: () => [], propDecorators: { control: [{
990
+ type: Input
991
+ }], metadata: [{
992
+ type: Input
993
+ }] } });
994
+
995
+ class PasswordInputComponent {
996
+ constructor() {
997
+ this.hidePassword = true;
998
+ }
999
+ ngOnInit() { }
1000
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: PasswordInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1001
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: PasswordInputComponent, selector: "val-password-input", inputs: { control: "control", metadata: "metadata" }, ngImport: i0, template: "<div class=\"input-container\">\n <ion-input\n class=\"sign-in__input-password\"\n [formControl]=\"control\"\n [type]=\"hidePassword ? 'password' : 'text'\"\n [placeholder]=\"metadata.placeholder\"\n ></ion-input>\n <ion-button color=\"dark\" fill=\"clear\" (click)=\"hidePassword = !hidePassword\" size=\"small\">\n <ion-icon slot=\"icon-only\" [name]=\"hidePassword ? 'eye-off-outline' : 'eye-outline'\"></ion-icon>\n </ion-button>\n</div>\n", styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.input-container{display:flex;align-items:center;flex-direction:row}\n"], dependencies: [{ kind: "component", type: i1$1.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: i1$1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1$1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "legacy", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "directive", type: i1$1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar,ion-range" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
1002
+ }
1003
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: PasswordInputComponent, decorators: [{
1004
+ type: Component,
1005
+ args: [{ selector: 'val-password-input', template: "<div class=\"input-container\">\n <ion-input\n class=\"sign-in__input-password\"\n [formControl]=\"control\"\n [type]=\"hidePassword ? 'password' : 'text'\"\n [placeholder]=\"metadata.placeholder\"\n ></ion-input>\n <ion-button color=\"dark\" fill=\"clear\" (click)=\"hidePassword = !hidePassword\" size=\"small\">\n <ion-icon slot=\"icon-only\" [name]=\"hidePassword ? 'eye-off-outline' : 'eye-outline'\"></ion-icon>\n </ion-button>\n</div>\n", styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.input-container{display:flex;align-items:center;flex-direction:row}\n"] }]
1006
+ }], ctorParameters: () => [], propDecorators: { control: [{
1007
+ type: Input
1008
+ }], metadata: [{
1009
+ type: Input
1010
+ }] } });
1011
+
1012
+ class PinInputComponent {
1013
+ constructor() {
1014
+ this.codeLength = 5;
1015
+ this.otpInputConfig = {
1016
+ inputStyles: {
1017
+ 'font-size': '36px',
1018
+ width: '55px',
1019
+ height: '55px',
1020
+ },
1021
+ inputClass: 'otp-input-box',
1022
+ length: this.codeLength,
1023
+ allowNumbersOnly: true,
1024
+ };
1025
+ }
1026
+ ngOnInit() { }
1027
+ reset() {
1028
+ if (this.pinCode) {
1029
+ this.pinCode.setValue('');
1030
+ }
1031
+ }
1032
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: PinInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1033
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: PinInputComponent, selector: "val-pin-input", inputs: { control: "control", metadata: "metadata" }, viewQueries: [{ propertyName: "pinCode", first: true, predicate: NgOtpInputComponent, descendants: true }], ngImport: i0, template: "<div class=\"otp\">\n <ng-otp-input [formCtrl]=\"control\" [config]=\"otpInputConfig\"></ng-otp-input>\n</div>\n", styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.otp{text-align:center;margin-top:.25rem;font-family:var(--ion-default-font),Arial,sans-serif}.otp-input-box:focus{border-color:#0ff}\n"], dependencies: [{ kind: "component", type: i1$2.NgOtpInputComponent, selector: "ng-otp-input", inputs: ["config", "formCtrl"], outputs: ["onInputChange"] }] }); }
1034
+ }
1035
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: PinInputComponent, decorators: [{
1036
+ type: Component,
1037
+ args: [{ selector: 'val-pin-input', template: "<div class=\"otp\">\n <ng-otp-input [formCtrl]=\"control\" [config]=\"otpInputConfig\"></ng-otp-input>\n</div>\n", styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.otp{text-align:center;margin-top:.25rem;font-family:var(--ion-default-font),Arial,sans-serif}.otp-input-box:focus{border-color:#0ff}\n"] }]
1038
+ }], ctorParameters: () => [], propDecorators: { pinCode: [{
1039
+ type: ViewChild,
1040
+ args: [NgOtpInputComponent, { static: false }]
1041
+ }], control: [{
1042
+ type: Input
1043
+ }], metadata: [{
1044
+ type: Input
1045
+ }] } });
1046
+
1047
+ class PrompterComponent {
1048
+ constructor() {
1049
+ this.onClick = new EventEmitter();
1050
+ }
1051
+ ngOnInit() { }
1052
+ clickHandler(token) {
1053
+ this.onClick.emit(token);
1054
+ }
1055
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: PrompterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1056
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: PrompterComponent, selector: "val-prompter", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<val-box [color]=\"props.color\" class=\"teleprompter-container\" [bordered]=\"props.bordered\">\n <div class=\"container\" [class.teleprompter-content]=\"props.teleprompter\" body>\n <div>\n <val-text [content]=\"props.content\" size=\"large\" [bold]=\"true\"></val-text>\n </div>\n <div *ngIf=\"props.buttons\">\n <val-button-group\n class=\"buttons-container\"\n [buttons]=\"props.buttons\"\n (onClick)=\"clickHandler($event)\"\n ></val-button-group>\n </div>\n <div *ngIf=\"props.hrefs\">\n <val-href class=\"link\" *ngFor=\"let l of props.hrefs\" [props]=\"l\" (onClick)=\"clickHandler($event)\"></val-href>\n </div>\n </div>\n</val-box>\n", styles: ["@charset \"UTF-8\";.container{display:flex;align-items:center;justify-content:center}.teleprompter-container{overflow:hidden;width:100%}.teleprompter-content{white-space:nowrap;animation:scroll-left 15s linear infinite}@keyframes scroll-left{0%{transform:translate(100%)}to{transform:translate(-100%)}}.link{margin:0 .25rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BoxComponent, selector: "val-box", inputs: ["color", "icon", "bordered", "leftBorder"], outputs: ["onClick"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["size", "color", "content", "bold"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["buttons", "position", "columned"], outputs: ["onClick"] }, { kind: "component", type: HrefComponent, selector: "val-href", inputs: ["props"], outputs: ["onClick"] }] }); }
1057
+ }
1058
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: PrompterComponent, decorators: [{
1059
+ type: Component,
1060
+ args: [{ selector: 'val-prompter', template: "<val-box [color]=\"props.color\" class=\"teleprompter-container\" [bordered]=\"props.bordered\">\n <div class=\"container\" [class.teleprompter-content]=\"props.teleprompter\" body>\n <div>\n <val-text [content]=\"props.content\" size=\"large\" [bold]=\"true\"></val-text>\n </div>\n <div *ngIf=\"props.buttons\">\n <val-button-group\n class=\"buttons-container\"\n [buttons]=\"props.buttons\"\n (onClick)=\"clickHandler($event)\"\n ></val-button-group>\n </div>\n <div *ngIf=\"props.hrefs\">\n <val-href class=\"link\" *ngFor=\"let l of props.hrefs\" [props]=\"l\" (onClick)=\"clickHandler($event)\"></val-href>\n </div>\n </div>\n</val-box>\n", styles: ["@charset \"UTF-8\";.container{display:flex;align-items:center;justify-content:center}.teleprompter-container{overflow:hidden;width:100%}.teleprompter-content{white-space:nowrap;animation:scroll-left 15s linear infinite}@keyframes scroll-left{0%{transform:translate(100%)}to{transform:translate(-100%)}}.link{margin:0 .25rem}\n"] }]
1061
+ }], ctorParameters: () => [], propDecorators: { props: [{
1062
+ type: Input
1063
+ }], onClick: [{
1064
+ type: Output
1065
+ }] } });
1066
+
1067
+ class RadioInputComponent {
1068
+ constructor() { }
1069
+ ngOnInit() { }
1070
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: RadioInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1071
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: RadioInputComponent, selector: "val-radio-input", inputs: { control: "control", metadata: "metadata" }, ngImport: i0, template: "<ion-radio-group [allowEmptySelection]=\"true\" [formControl]=\"control\">\n <ng-container *ngFor=\"let o of metadata.options\">\n <ion-radio [value]=\"o.id\">{{ o.name }}</ion-radio>\n <br />\n </ng-container>\n</ion-radio-group>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i1$1.IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "legacy", "mode", "name", "value"] }, { kind: "component", type: i1$1.IonRadioGroup, selector: "ion-radio-group", inputs: ["allowEmptySelection", "compareWith", "name", "value"] }, { kind: "directive", type: i1$1.RadioValueAccessor, selector: "ion-radio" }, { kind: "directive", type: i1$1.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
1072
+ }
1073
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: RadioInputComponent, decorators: [{
1074
+ type: Component,
1075
+ args: [{ selector: 'val-radio-input', template: "<ion-radio-group [allowEmptySelection]=\"true\" [formControl]=\"control\">\n <ng-container *ngFor=\"let o of metadata.options\">\n <ion-radio [value]=\"o.id\">{{ o.name }}</ion-radio>\n <br />\n </ng-container>\n</ion-radio-group>\n" }]
1076
+ }], ctorParameters: () => [], propDecorators: { control: [{
1077
+ type: Input
1078
+ }], metadata: [{
1079
+ type: Input
1080
+ }] } });
1081
+
1082
+ class TextInputComponent {
1083
+ constructor() {
1084
+ }
1085
+ ngOnInit() { }
1086
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1087
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TextInputComponent, selector: "val-text-input", inputs: { control: "control", metadata: "metadata" }, ngImport: i0, template: "<ion-input\n [formControl]=\"control\"\n type=\"text\"\n [placeholder]=\"metadata.placeholder\"\n></ion-input>", styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"], dependencies: [{ kind: "component", type: i1$1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "legacy", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "directive", type: i1$1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar,ion-range" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
1088
+ }
1089
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TextInputComponent, decorators: [{
1090
+ type: Component,
1091
+ args: [{ selector: 'val-text-input', template: "<ion-input\n [formControl]=\"control\"\n type=\"text\"\n [placeholder]=\"metadata.placeholder\"\n></ion-input>", styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"] }]
1092
+ }], ctorParameters: () => [], propDecorators: { control: [{
1093
+ type: Input
1094
+ }], metadata: [{
1095
+ type: Input
1096
+ }] } });
1097
+
833
1098
  var ToolbarActionType;
834
1099
  (function (ToolbarActionType) {
835
1100
  ToolbarActionType["AVATAR"] = "AVATAR";
@@ -875,6 +1140,268 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
875
1140
  type: Output
876
1141
  }] } });
877
1142
 
1143
+ class FooterComponent {
1144
+ constructor() {
1145
+ this.onClick = new EventEmitter();
1146
+ }
1147
+ ngOnInit() { }
1148
+ clickHandler(token) {
1149
+ this.onClick.emit(token);
1150
+ }
1151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1152
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: FooterComponent, selector: "val-footer", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<ion-footer\n [class.ion-no-border]=\"!props.bordered\"\n [translucent]=\"props.translucent\"\n [class.background]=\"props.toolbar.color === 'background'\"\n>\n <val-toolbar\n *ngIf=\"props.toolbar.title || props.toolbar.withActions || props.toolbar.withBack\"\n [props]=\"props.toolbar\"\n (onClick)=\"clickHandler($event)\"\n ></val-toolbar>\n <ng-content select=\"[extra]\"></ng-content>\n</ion-footer>\n", styles: [".background{background:var(--ion-background-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1$1.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: ToolbarComponent, selector: "val-toolbar", inputs: ["props"], outputs: ["onClick"] }] }); }
1153
+ }
1154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: FooterComponent, decorators: [{
1155
+ type: Component,
1156
+ args: [{ selector: 'val-footer', template: "<ion-footer\n [class.ion-no-border]=\"!props.bordered\"\n [translucent]=\"props.translucent\"\n [class.background]=\"props.toolbar.color === 'background'\"\n>\n <val-toolbar\n *ngIf=\"props.toolbar.title || props.toolbar.withActions || props.toolbar.withBack\"\n [props]=\"props.toolbar\"\n (onClick)=\"clickHandler($event)\"\n ></val-toolbar>\n <ng-content select=\"[extra]\"></ng-content>\n</ion-footer>\n", styles: [".background{background:var(--ion-background-color)}\n"] }]
1157
+ }], ctorParameters: () => [], propDecorators: { props: [{
1158
+ type: Input
1159
+ }], onClick: [{
1160
+ type: Output
1161
+ }] } });
1162
+
1163
+ class HeaderComponent {
1164
+ constructor() {
1165
+ this.onClick = new EventEmitter();
1166
+ }
1167
+ ngOnInit() { }
1168
+ clickHandler(token) {
1169
+ this.onClick.emit(token);
1170
+ }
1171
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1172
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: HeaderComponent, selector: "val-header", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<ion-header [class.ion-no-border]=\"!props.bordered\" [translucent]=\"props.translucent\">\n <val-toolbar [props]=\"props.toolbar\" (onClick)=\"clickHandler($event)\"></val-toolbar>\n</ion-header>\n", styles: [""], dependencies: [{ kind: "component", type: i1$1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: ToolbarComponent, selector: "val-toolbar", inputs: ["props"], outputs: ["onClick"] }] }); }
1173
+ }
1174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: HeaderComponent, decorators: [{
1175
+ type: Component,
1176
+ args: [{ selector: 'val-header', template: "<ion-header [class.ion-no-border]=\"!props.bordered\" [translucent]=\"props.translucent\">\n <val-toolbar [props]=\"props.toolbar\" (onClick)=\"clickHandler($event)\"></val-toolbar>\n</ion-header>\n" }]
1177
+ }], ctorParameters: () => [], propDecorators: { props: [{
1178
+ type: Input
1179
+ }], onClick: [{
1180
+ type: Output
1181
+ }] } });
1182
+
1183
+ const goToTop = (id) => {
1184
+ const element = document.getElementById(id);
1185
+ if (element) {
1186
+ element.scrollIntoView({
1187
+ block: 'start',
1188
+ inline: 'nearest',
1189
+ behavior: 'smooth',
1190
+ });
1191
+ }
1192
+ };
1193
+ const isAtEnd = (elementRef) => {
1194
+ const formElement = elementRef.nativeElement;
1195
+ const rect = formElement.getBoundingClientRect();
1196
+ const windowHeight = window.innerHeight;
1197
+ return rect.bottom <= windowHeight;
1198
+ };
1199
+
1200
+ class FormComponent {
1201
+ constructor(fb, elementRef) {
1202
+ this.fb = fb;
1203
+ this.elementRef = elementRef;
1204
+ this.onSubmit = new EventEmitter();
1205
+ this.onInvalid = new EventEmitter();
1206
+ this.types = InputType;
1207
+ this.formId = 'form-wrapper';
1208
+ }
1209
+ ngOnInit() {
1210
+ const formControls = {};
1211
+ this.props.sections.forEach((section) => {
1212
+ section.fields.forEach((field) => {
1213
+ formControls[field.name] = [undefined, field.validators || []];
1214
+ });
1215
+ });
1216
+ this.form = this.fb.group(formControls);
1217
+ }
1218
+ async submitHandler(token) {
1219
+ this.onSubmit.emit({ fields: this.form.value, token });
1220
+ }
1221
+ getControl(field) {
1222
+ return this.Form.get(field);
1223
+ }
1224
+ get isAtEndOfForm() {
1225
+ return isAtEnd(this.elementRef);
1226
+ }
1227
+ get Form() {
1228
+ return this.form;
1229
+ }
1230
+ get actions() {
1231
+ if (!this.form) {
1232
+ return [];
1233
+ }
1234
+ if (this.form.valid) {
1235
+ this.props.actions.state = ComponentStates.ENABLED;
1236
+ }
1237
+ return [this.props.actions];
1238
+ }
1239
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: FormComponent, deps: [{ token: i2.FormBuilder }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
1240
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: FormComponent, selector: "val-form", inputs: { props: "props" }, outputs: { onSubmit: "onSubmit", onInvalid: "onInvalid" }, ngImport: i0, template: "<div class=\"container\">\n <form [formGroup]=\"form\">\n <val-display [content]=\"props.name\" color=\"dark\" size=\"large\"></val-display>\n <div class=\"section\" *ngFor=\"let s of props.sections\">\n <val-title [content]=\"s.name\" size=\"large\"></val-title>\n <div class=\"input\" *ngFor=\"let f of s.fields\">\n <val-title color=\"dark\" [content]=\"f.label\" size=\"small\"></val-title>\n <ng-container *ngIf=\"f.type === types.TEXT\">\n <val-text-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-text-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.CHECK\">\n <val-check-input></val-check-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.COMMENT\">\n <val-comment-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-comment-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.DATE\">\n <val-date-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-date-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.EMAIL\">\n <val-email-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-email-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.FILE\">\n <val-file-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-file-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.HOUR\">\n <val-hour-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-hour-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.NUMBER\">\n <val-number-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-number-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.PASSWORD\">\n <val-password-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-password-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.PIN_CODE\">\n <val-pin-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-pin-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.RADIO\">\n <val-radio-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-radio-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.SELECT\">\n <!-- <val-select-input></val-select-input> -->\n </ng-container>\n <val-hint [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-hint>\n </div>\n <val-divider color=\"medium\" size=\"medium\" fill=\"solid\"></val-divider>\n </div>\n <val-button-group position=\"center\" [buttons]=\"actions\" (onClick)=\"submitHandler($event)\"></val-button-group>\n </form>\n</div>\n", styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["size", "color", "content"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["size", "color", "content"] }, { kind: "component", type: DividerComponent, selector: "val-divider", inputs: ["size", "color", "fill"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["buttons", "position", "columned"], outputs: ["onClick"] }, { kind: "component", type: CheckInputComponent, selector: "val-check-input" }, { kind: "component", type: CommentInputComponent, selector: "val-comment-input", inputs: ["control", "metadata"] }, { kind: "component", type: DateInputComponent, selector: "val-date-input", inputs: ["control", "metadata"] }, { kind: "component", type: EmailInputComponent, selector: "val-email-input", inputs: ["control", "metadata"] }, { kind: "component", type: FileInputComponent, selector: "val-file-input", inputs: ["control", "metadata"] }, { kind: "component", type: HintComponent, selector: "val-hint", inputs: ["control", "metadata"] }, { kind: "component", type: HourInputComponent, selector: "val-hour-input", inputs: ["control", "metadata"] }, { kind: "component", type: NumberInputComponent, selector: "val-number-input", inputs: ["control", "metadata"] }, { kind: "component", type: PasswordInputComponent, selector: "val-password-input", inputs: ["control", "metadata"] }, { kind: "component", type: PinInputComponent, selector: "val-pin-input", inputs: ["control", "metadata"] }, { kind: "component", type: RadioInputComponent, selector: "val-radio-input", inputs: ["control", "metadata"] }, { kind: "component", type: TextInputComponent, selector: "val-text-input", inputs: ["control", "metadata"] }] }); }
1241
+ }
1242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: FormComponent, decorators: [{
1243
+ type: Component,
1244
+ args: [{ selector: 'val-form', template: "<div class=\"container\">\n <form [formGroup]=\"form\">\n <val-display [content]=\"props.name\" color=\"dark\" size=\"large\"></val-display>\n <div class=\"section\" *ngFor=\"let s of props.sections\">\n <val-title [content]=\"s.name\" size=\"large\"></val-title>\n <div class=\"input\" *ngFor=\"let f of s.fields\">\n <val-title color=\"dark\" [content]=\"f.label\" size=\"small\"></val-title>\n <ng-container *ngIf=\"f.type === types.TEXT\">\n <val-text-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-text-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.CHECK\">\n <val-check-input></val-check-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.COMMENT\">\n <val-comment-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-comment-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.DATE\">\n <val-date-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-date-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.EMAIL\">\n <val-email-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-email-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.FILE\">\n <val-file-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-file-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.HOUR\">\n <val-hour-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-hour-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.NUMBER\">\n <val-number-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-number-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.PASSWORD\">\n <val-password-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-password-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.PIN_CODE\">\n <val-pin-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-pin-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.RADIO\">\n <val-radio-input [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-radio-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.SELECT\">\n <!-- <val-select-input></val-select-input> -->\n </ng-container>\n <val-hint [control]=\"getControl(f.name)\" [metadata]=\"f\"></val-hint>\n </div>\n <val-divider color=\"medium\" size=\"medium\" fill=\"solid\"></val-divider>\n </div>\n <val-button-group position=\"center\" [buttons]=\"actions\" (onClick)=\"submitHandler($event)\"></val-button-group>\n </form>\n</div>\n", styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"] }]
1245
+ }], ctorParameters: () => [{ type: i2.FormBuilder }, { type: i0.ElementRef }], propDecorators: { props: [{
1246
+ type: Input
1247
+ }], onSubmit: [{
1248
+ type: Output
1249
+ }], onInvalid: [{
1250
+ type: Output
1251
+ }] } });
1252
+
1253
+ class FormFooterComponent {
1254
+ constructor() {
1255
+ this.onSubmit = new EventEmitter();
1256
+ }
1257
+ ngOnInit() { }
1258
+ async submitHandler(token) {
1259
+ this.onSubmit.emit({ fields: this.form.value, token });
1260
+ }
1261
+ get actions() {
1262
+ if (!this.form) {
1263
+ return [];
1264
+ }
1265
+ if (this.form.valid) {
1266
+ this.action.state = ComponentStates.ENABLED;
1267
+ }
1268
+ return [this.action];
1269
+ }
1270
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: FormFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1271
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: FormFooterComponent, selector: "val-form-footer", inputs: { form: "form", action: "action" }, outputs: { onSubmit: "onSubmit" }, ngImport: i0, template: "<val-footer\n [props]=\"{\n bordered: false,\n translucent: false,\n toolbar: {\n title: '',\n actions: [],\n color: 'background',\n withBack: false,\n withActions: false,\n },\n }\"\n>\n <val-button-group extra position=\"center\" [buttons]=\"actions\" (onClick)=\"submitHandler($event)\"></val-button-group>\n</val-footer>\n", styles: [""], dependencies: [{ kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["buttons", "position", "columned"], outputs: ["onClick"] }, { kind: "component", type: FooterComponent, selector: "val-footer", inputs: ["props"], outputs: ["onClick"] }] }); }
1272
+ }
1273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: FormFooterComponent, decorators: [{
1274
+ type: Component,
1275
+ args: [{ selector: 'val-form-footer', template: "<val-footer\n [props]=\"{\n bordered: false,\n translucent: false,\n toolbar: {\n title: '',\n actions: [],\n color: 'background',\n withBack: false,\n withActions: false,\n },\n }\"\n>\n <val-button-group extra position=\"center\" [buttons]=\"actions\" (onClick)=\"submitHandler($event)\"></val-button-group>\n</val-footer>\n" }]
1276
+ }], ctorParameters: () => [], propDecorators: { form: [{
1277
+ type: Input
1278
+ }], action: [{
1279
+ type: Input
1280
+ }], onSubmit: [{
1281
+ type: Output
1282
+ }] } });
1283
+
1284
+ var MOTION;
1285
+ (function (MOTION) {
1286
+ MOTION[MOTION["BACKWARD"] = 0] = "BACKWARD";
1287
+ MOTION[MOTION["FORWARD"] = 1] = "FORWARD";
1288
+ MOTION[MOTION["RETRY"] = 2] = "RETRY";
1289
+ })(MOTION || (MOTION = {}));
1290
+
1291
+ class WizardComponent {
1292
+ constructor() {
1293
+ this.onClick = new EventEmitter();
1294
+ this.wrapperId = 'wizard-wrapper';
1295
+ }
1296
+ ngOnInit() { }
1297
+ working() {
1298
+ this.props.state = ComponentStates.WORKING;
1299
+ this.Current.buttons.map((x) => {
1300
+ x.state = ComponentStates.DISABLED;
1301
+ });
1302
+ }
1303
+ done() {
1304
+ if (this.props.state === ComponentStates.ENABLED) {
1305
+ return;
1306
+ }
1307
+ this.props.state = ComponentStates.ENABLED;
1308
+ this.Current.buttons.map((x) => {
1309
+ x.state = ComponentStates.ENABLED;
1310
+ });
1311
+ }
1312
+ get Current() {
1313
+ return this.props.steps[this.props.current];
1314
+ }
1315
+ setCurrent(newStep) {
1316
+ if (newStep === this.props.current) {
1317
+ return;
1318
+ }
1319
+ this.props.current = newStep;
1320
+ goToTop(this.wrapperId);
1321
+ }
1322
+ setError(error) {
1323
+ if (this.props.state === ComponentStates.ERROR) {
1324
+ return;
1325
+ }
1326
+ this.props.error.titles.content.content.bellowTitle.text = error;
1327
+ this.props.state = ComponentStates.ERROR;
1328
+ goToTop(this.wrapperId);
1329
+ }
1330
+ reset() {
1331
+ this.props.error.titles.content.content.bellowTitle.text = '';
1332
+ this.done();
1333
+ }
1334
+ clickHandler(token) {
1335
+ if (!token) {
1336
+ return;
1337
+ }
1338
+ if (token.includes('retry')) {
1339
+ this.reset();
1340
+ }
1341
+ this.onClick.emit({ current: this.props.current, motion: MOTION.RETRY });
1342
+ }
1343
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: WizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1344
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: WizardComponent, selector: "val-wizard", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<div [id]=\"wrapperId\" class=\"wrapper\">\n <ng-container *ngIf=\"props.state !== 'ERROR'\">\n <val-no-content [props]=\"Current.titles\"></val-no-content>\n <div class=\"step\">\n <div *ngIf=\"props.state === 'WORKING'\">\n <val-content-loader color=\"dark\" size=\"large\" text=\"Por favor espere...\"></val-content-loader>\n </div>\n <ng-content select=\"[step]\"></ng-content>\n </div>\n </ng-container>\n <ng-container *ngIf=\"props.state === 'ERROR'\">\n <val-no-content [props]=\"props.error.titles\" (onClick)=\"clickHandler($event)\"></val-no-content>\n </ng-container>\n</div>\n", 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: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ContentLoaderComponent, selector: "val-content-loader", inputs: ["color", "size", "name", "text"] }, { kind: "component", type: NoContentComponent, selector: "val-no-content", inputs: ["props"], outputs: ["onClick"] }] }); }
1345
+ }
1346
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: WizardComponent, decorators: [{
1347
+ type: Component,
1348
+ args: [{ selector: 'val-wizard', template: "<div [id]=\"wrapperId\" class=\"wrapper\">\n <ng-container *ngIf=\"props.state !== 'ERROR'\">\n <val-no-content [props]=\"Current.titles\"></val-no-content>\n <div class=\"step\">\n <div *ngIf=\"props.state === 'WORKING'\">\n <val-content-loader color=\"dark\" size=\"large\" text=\"Por favor espere...\"></val-content-loader>\n </div>\n <ng-content select=\"[step]\"></ng-content>\n </div>\n </ng-container>\n <ng-container *ngIf=\"props.state === 'ERROR'\">\n <val-no-content [props]=\"props.error.titles\" (onClick)=\"clickHandler($event)\"></val-no-content>\n </ng-container>\n</div>\n", 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"] }]
1349
+ }], ctorParameters: () => [], propDecorators: { props: [{
1350
+ type: Input
1351
+ }], onClick: [{
1352
+ type: Output
1353
+ }] } });
1354
+
1355
+ class WizardFooterComponent {
1356
+ constructor() {
1357
+ this.onClick = new EventEmitter();
1358
+ this.wrapperId = 'wizard-wrapper';
1359
+ }
1360
+ ngOnInit() { }
1361
+ clickHandler(token) {
1362
+ if (!token) {
1363
+ return;
1364
+ }
1365
+ if (token.includes('right')) {
1366
+ this.tryToStep(MOTION.FORWARD);
1367
+ }
1368
+ if (token.includes('left')) {
1369
+ this.tryToStep(MOTION.BACKWARD);
1370
+ }
1371
+ }
1372
+ get Current() {
1373
+ return this.props.steps[this.props.current];
1374
+ }
1375
+ get Progress() {
1376
+ if (this.props.steps && this.props.current) {
1377
+ return this.props.current / Object.keys(this.props.steps).length;
1378
+ }
1379
+ return 0;
1380
+ }
1381
+ get actions() {
1382
+ if (this.props.state === ComponentStates.ERROR && this.Current.buttons.length > 1) {
1383
+ this.Current.buttons[1].state = ComponentStates.DISABLED;
1384
+ }
1385
+ if (this.props.current === 1 && this.Current.buttons.length > 1) {
1386
+ return [this.Current.buttons[1]];
1387
+ }
1388
+ return this.Current.buttons;
1389
+ }
1390
+ tryToStep(motion) {
1391
+ this.onClick.emit({ current: this.props.current, motion });
1392
+ }
1393
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: WizardFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1394
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: WizardFooterComponent, selector: "val-wizard-footer", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<val-footer\n [props]=\"{\nbordered: false,\ntranslucent: false,\ntoolbar: {\n title: '',\n actions: [],\n color: 'background',\n withBack: false,\n withActions: false,\n },\n}\"\n>\n <val-progress-bar extra [progress]=\"Progress\" size=\"medium\"></val-progress-bar>\n <val-button-group extra [buttons]=\"actions\" position=\"spaced\" (onClick)=\"clickHandler($event)\"></val-button-group>\n</val-footer>\n", styles: [""], dependencies: [{ kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["buttons", "position", "columned"], outputs: ["onClick"] }, { kind: "component", type: ProgressBarComponent, selector: "val-progress-bar", inputs: ["progress", "size", "color", "buffer", "type", "rounded"] }, { kind: "component", type: FooterComponent, selector: "val-footer", inputs: ["props"], outputs: ["onClick"] }] }); }
1395
+ }
1396
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: WizardFooterComponent, decorators: [{
1397
+ type: Component,
1398
+ args: [{ selector: 'val-wizard-footer', template: "<val-footer\n [props]=\"{\nbordered: false,\ntranslucent: false,\ntoolbar: {\n title: '',\n actions: [],\n color: 'background',\n withBack: false,\n withActions: false,\n },\n}\"\n>\n <val-progress-bar extra [progress]=\"Progress\" size=\"medium\"></val-progress-bar>\n <val-button-group extra [buttons]=\"actions\" position=\"spaced\" (onClick)=\"clickHandler($event)\"></val-button-group>\n</val-footer>\n" }]
1399
+ }], ctorParameters: () => [], propDecorators: { props: [{
1400
+ type: Input
1401
+ }], onClick: [{
1402
+ type: Output
1403
+ }] } });
1404
+
878
1405
  class TextContent {
879
1406
  constructor(text) {
880
1407
  this.text = text;
@@ -933,7 +1460,26 @@ class ValtechComponentsModule {
933
1460
  HrefComponent,
934
1461
  ProgressBarComponent,
935
1462
  LinksCakeComponent,
936
- ProgressStatusComponent], imports: [CommonModule, HttpClientModule, IonicModule], exports: [ButtonComponent,
1463
+ ProgressStatusComponent,
1464
+ CheckInputComponent,
1465
+ CommentInputComponent,
1466
+ DateInputComponent,
1467
+ EmailInputComponent,
1468
+ FileInputComponent,
1469
+ HintComponent,
1470
+ HourInputComponent,
1471
+ NumberInputComponent,
1472
+ PasswordInputComponent,
1473
+ PinInputComponent,
1474
+ PrompterComponent,
1475
+ RadioInputComponent,
1476
+ TextInputComponent,
1477
+ FooterComponent,
1478
+ FormComponent,
1479
+ FormFooterComponent,
1480
+ HeaderComponent,
1481
+ WizardComponent,
1482
+ WizardFooterComponent], imports: [CommonModule, HttpClientModule, IonicModule, ReactiveFormsModule, NgOtpInputModule], exports: [ButtonComponent,
937
1483
  BoxComponent,
938
1484
  DisplayComponent,
939
1485
  TextComponent,
@@ -955,12 +1501,32 @@ class ValtechComponentsModule {
955
1501
  HrefComponent,
956
1502
  ProgressBarComponent,
957
1503
  LinksCakeComponent,
958
- ProgressStatusComponent] }); }
959
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ValtechComponentsModule, providers: [DownloadService], imports: [CommonModule, HttpClientModule, IonicModule] }); }
1504
+ ProgressStatusComponent,
1505
+ CheckInputComponent,
1506
+ CommentInputComponent,
1507
+ DateInputComponent,
1508
+ EmailInputComponent,
1509
+ FileInputComponent,
1510
+ HintComponent,
1511
+ HourInputComponent,
1512
+ NumberInputComponent,
1513
+ PasswordInputComponent,
1514
+ PinInputComponent,
1515
+ PrompterComponent,
1516
+ RadioInputComponent,
1517
+ TextInputComponent,
1518
+ FooterComponent,
1519
+ FormComponent,
1520
+ FormFooterComponent,
1521
+ HeaderComponent,
1522
+ WizardComponent,
1523
+ WizardFooterComponent] }); }
1524
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ValtechComponentsModule, providers: [DownloadService], imports: [CommonModule, HttpClientModule, IonicModule, ReactiveFormsModule, NgOtpInputModule] }); }
960
1525
  }
961
1526
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ValtechComponentsModule, decorators: [{
962
1527
  type: NgModule,
963
1528
  args: [{
1529
+ imports: [CommonModule, HttpClientModule, IonicModule, ReactiveFormsModule, NgOtpInputModule],
964
1530
  declarations: [
965
1531
  ButtonComponent,
966
1532
  BoxComponent,
@@ -985,8 +1551,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
985
1551
  ProgressBarComponent,
986
1552
  LinksCakeComponent,
987
1553
  ProgressStatusComponent,
1554
+ CheckInputComponent,
1555
+ CommentInputComponent,
1556
+ DateInputComponent,
1557
+ EmailInputComponent,
1558
+ FileInputComponent,
1559
+ HintComponent,
1560
+ HourInputComponent,
1561
+ NumberInputComponent,
1562
+ PasswordInputComponent,
1563
+ PinInputComponent,
1564
+ PrompterComponent,
1565
+ RadioInputComponent,
1566
+ TextInputComponent,
1567
+ FooterComponent,
1568
+ FormComponent,
1569
+ FormFooterComponent,
1570
+ HeaderComponent,
1571
+ WizardComponent,
1572
+ WizardFooterComponent,
988
1573
  ],
989
- imports: [CommonModule, HttpClientModule, IonicModule],
990
1574
  exports: [
991
1575
  ButtonComponent,
992
1576
  BoxComponent,
@@ -1011,6 +1595,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
1011
1595
  ProgressBarComponent,
1012
1596
  LinksCakeComponent,
1013
1597
  ProgressStatusComponent,
1598
+ CheckInputComponent,
1599
+ CommentInputComponent,
1600
+ DateInputComponent,
1601
+ EmailInputComponent,
1602
+ FileInputComponent,
1603
+ HintComponent,
1604
+ HourInputComponent,
1605
+ NumberInputComponent,
1606
+ PasswordInputComponent,
1607
+ PinInputComponent,
1608
+ PrompterComponent,
1609
+ RadioInputComponent,
1610
+ TextInputComponent,
1611
+ FooterComponent,
1612
+ FormComponent,
1613
+ FormFooterComponent,
1614
+ HeaderComponent,
1615
+ WizardComponent,
1616
+ WizardFooterComponent,
1014
1617
  ],
1015
1618
  providers: [DownloadService],
1016
1619
  }]
@@ -1148,5 +1751,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
1148
1751
  * Generated bundle index. Do not edit.
1149
1752
  */
1150
1753
 
1151
- export { ActionType, AlertBoxComponent, AvatarComponent, BannerComponent, BaseDefault, BoxComponent, ButtonComponent, ButtonGroupComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, ComponentStates, ContentLoaderComponent, DisplayComponent, DividerComponent, DownloadService, HrefComponent, Icon, IconComponent, ImageComponent, LangOption, LangService, LinkComponent, LinksCakeComponent, LocalStorageService, NoContentComponent, NotesBoxComponent, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProgressBarComponent, ProgressStatusComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, TextComponent, TextContent, ThemeOption, ThemeService, TitleBlockComponent, TitleComponent, ToolbarActionType, ToolbarComponent, ValtechComponentsModule, ValtechConfigService };
1754
+ export { ActionType, AlertBoxComponent, AvatarComponent, BannerComponent, BaseDefault, BoxComponent, ButtonComponent, ButtonGroupComponent, CheckInputComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CommentInputComponent, ComponentStates, ContentLoaderComponent, DateInputComponent, DisplayComponent, DividerComponent, DownloadService, EmailInputComponent, FileInputComponent, FooterComponent, FormComponent, FormFooterComponent, HeaderComponent, HintComponent, HourInputComponent, HrefComponent, Icon, IconComponent, ImageComponent, InputType, LangOption, LangService, LinkComponent, LinksCakeComponent, LocalStorageService, 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, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, TextComponent, TextContent, TextInputComponent, ThemeOption, ThemeService, TitleBlockComponent, TitleComponent, ToolbarActionType, ToolbarComponent, ValtechComponentsModule, ValtechConfigService, WizardComponent, WizardFooterComponent, goToTop, isAtEnd };
1152
1755
  //# sourceMappingURL=valtech-components.mjs.map