valtech-components 2.0.367 → 2.0.368

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.
@@ -13,9 +13,7 @@ export class NumberFromToComponent {
13
13
  this.toControl = new FormControl();
14
14
  // Initialize with existing value if present
15
15
  if (this.props?.control?.value) {
16
- const value = typeof this.props.control.value === 'string'
17
- ? JSON.parse(this.props.control.value)
18
- : this.props.control.value;
16
+ const value = typeof this.props.control.value === 'string' ? JSON.parse(this.props.control.value) : this.props.control.value;
19
17
  if (value && typeof value === 'object') {
20
18
  this.fromControl.setValue(value.from || null);
21
19
  this.toControl.setValue(value.to || null);
@@ -36,7 +34,7 @@ export class NumberFromToComponent {
36
34
  updateMainControl() {
37
35
  const value = {
38
36
  from: this.fromControl.value,
39
- to: this.toControl.value
37
+ to: this.toControl.value,
40
38
  };
41
39
  this.props.control.setValue(value);
42
40
  this.props.control.markAsTouched();
@@ -44,58 +42,54 @@ export class NumberFromToComponent {
44
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NumberFromToComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
43
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NumberFromToComponent, isStandalone: true, selector: "val-number-from-to", inputs: { props: "props" }, ngImport: i0, template: `
46
44
  <div class="number-from-to-container">
47
- <ion-item class="from-field">
48
- <ion-label position="stacked">{{ props.fromLabel || 'Desde' }}</ion-label>
49
- <ion-input
50
- [formControl]="fromControl"
51
- type="number"
52
- [placeholder]="props.fromPlaceholder || props.placeholder"
53
- [min]="props.range?.min"
54
- [max]="props.range?.max">
55
- </ion-input>
56
- </ion-item>
57
-
58
- <ion-item class="to-field">
59
- <ion-label position="stacked">{{ props.toLabel || 'Hasta' }}</ion-label>
60
- <ion-input
61
- [formControl]="toControl"
62
- type="number"
63
- [placeholder]="props.toPlaceholder || props.placeholder"
64
- [min]="props.range?.min"
65
- [max]="props.range?.max">
66
- </ion-input>
67
- </ion-item>
45
+ <ion-label position="stacked">{{ props.fromLabel || 'Desde' }}</ion-label>
46
+ <ion-input
47
+ [formControl]="fromControl"
48
+ type="number"
49
+ [placeholder]="props.fromPlaceholder || props.placeholder"
50
+ [min]="props.range?.min"
51
+ [max]="props.range?.max"
52
+ >
53
+ </ion-input>
54
+
55
+ <ion-label position="stacked">{{ props.toLabel || 'Hasta' }}</ion-label>
56
+ <ion-input
57
+ [formControl]="toControl"
58
+ type="number"
59
+ [placeholder]="props.toPlaceholder || props.placeholder"
60
+ [min]="props.range?.min"
61
+ [max]="props.range?.max"
62
+ >
63
+ </ion-input>
68
64
  </div>
69
- `, isInline: true, styles: [".number-from-to-container{display:flex;gap:1rem;align-items:flex-end}.number-from-to-container .from-field,.number-from-to-container .to-field{flex:1;--background: transparent;--border-color: var(--ion-color-medium);--border-style: solid;--border-width: 1px;--border-radius: 8px;--padding-start: 12px;--padding-end: 12px}@media (max-width: 768px){.number-from-to-container{flex-direction:column;gap:.5rem}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }] }); }
65
+ `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }] }); }
70
66
  }
71
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NumberFromToComponent, decorators: [{
72
68
  type: Component,
73
69
  args: [{ selector: 'val-number-from-to', standalone: true, imports: [ReactiveFormsModule, IonInput, IonItem, IonLabel], template: `
74
70
  <div class="number-from-to-container">
75
- <ion-item class="from-field">
76
- <ion-label position="stacked">{{ props.fromLabel || 'Desde' }}</ion-label>
77
- <ion-input
78
- [formControl]="fromControl"
79
- type="number"
80
- [placeholder]="props.fromPlaceholder || props.placeholder"
81
- [min]="props.range?.min"
82
- [max]="props.range?.max">
83
- </ion-input>
84
- </ion-item>
85
-
86
- <ion-item class="to-field">
87
- <ion-label position="stacked">{{ props.toLabel || 'Hasta' }}</ion-label>
88
- <ion-input
89
- [formControl]="toControl"
90
- type="number"
91
- [placeholder]="props.toPlaceholder || props.placeholder"
92
- [min]="props.range?.min"
93
- [max]="props.range?.max">
94
- </ion-input>
95
- </ion-item>
71
+ <ion-label position="stacked">{{ props.fromLabel || 'Desde' }}</ion-label>
72
+ <ion-input
73
+ [formControl]="fromControl"
74
+ type="number"
75
+ [placeholder]="props.fromPlaceholder || props.placeholder"
76
+ [min]="props.range?.min"
77
+ [max]="props.range?.max"
78
+ >
79
+ </ion-input>
80
+
81
+ <ion-label position="stacked">{{ props.toLabel || 'Hasta' }}</ion-label>
82
+ <ion-input
83
+ [formControl]="toControl"
84
+ type="number"
85
+ [placeholder]="props.toPlaceholder || props.placeholder"
86
+ [min]="props.range?.min"
87
+ [max]="props.range?.max"
88
+ >
89
+ </ion-input>
96
90
  </div>
97
- `, styles: [".number-from-to-container{display:flex;gap:1rem;align-items:flex-end}.number-from-to-container .from-field,.number-from-to-container .to-field{flex:1;--background: transparent;--border-color: var(--ion-color-medium);--border-style: solid;--border-width: 1px;--border-radius: 8px;--padding-start: 12px;--padding-end: 12px}@media (max-width: 768px){.number-from-to-container{flex-direction:column;gap:.5rem}}\n"] }]
91
+ ` }]
98
92
  }], ctorParameters: () => [], propDecorators: { props: [{
99
93
  type: Input
100
94
  }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZyb20tdG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGVjaC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbnVtYmVyLWZyb20tdG8vbnVtYmVyLWZyb20tdG8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBa0NqRixNQUFNLE9BQU8scUJBQXFCO0lBTWhDLGdCQUFlLENBQUM7SUFFaEIsUUFBUTtRQUNOLDhDQUE4QztRQUM5Qyw4REFBOEQ7UUFDOUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUVuQyw0Q0FBNEM7UUFDNUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUMvQixNQUFNLEtBQUssR0FBRyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRO2dCQUN4RCxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFFN0IsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUM7WUFDNUMsQ0FBQztRQUNILENBQUM7UUFFRCxxQ0FBcUM7UUFDckMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ2pELDBCQUEwQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixNQUFNLEtBQUssR0FBRztZQUNaLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUs7WUFDNUIsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztTQUN6QixDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7K0dBaERVLHFCQUFxQjttR0FBckIscUJBQXFCLDBHQTNCdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCVCxpZUF6QlMsbUJBQW1CLDBUQUFFLFFBQVEsOGVBQUUsT0FBTywwTkFBRSxRQUFROzs0RkE0Qi9DLHFCQUFxQjtrQkEvQmpDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLFlBQ2pEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3QlQ7d0RBSVEsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbklucHV0LCBJb25JdGVtLCBJb25MYWJlbCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYXBwbHlEZWZhdWx0VmFsdWVUb0NvbnRyb2wgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvZm9ybS1kZWZhdWx0cyc7XG5pbXBvcnQgeyBJbnB1dE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbnVtYmVyLWZyb20tdG8nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgSW9uSW5wdXQsIElvbkl0ZW0sIElvbkxhYmVsXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwibnVtYmVyLWZyb20tdG8tY29udGFpbmVyXCI+XG4gICAgICA8aW9uLWl0ZW0gY2xhc3M9XCJmcm9tLWZpZWxkXCI+XG4gICAgICAgIDxpb24tbGFiZWwgcG9zaXRpb249XCJzdGFja2VkXCI+e3sgcHJvcHMuZnJvbUxhYmVsIHx8ICdEZXNkZScgfX08L2lvbi1sYWJlbD5cbiAgICAgICAgPGlvbi1pbnB1dCBcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZnJvbUNvbnRyb2xcIiBcbiAgICAgICAgICB0eXBlPVwibnVtYmVyXCIgXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInByb3BzLmZyb21QbGFjZWhvbGRlciB8fCBwcm9wcy5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgW21pbl09XCJwcm9wcy5yYW5nZT8ubWluXCJcbiAgICAgICAgICBbbWF4XT1cInByb3BzLnJhbmdlPy5tYXhcIj5cbiAgICAgICAgPC9pb24taW5wdXQ+XG4gICAgICA8L2lvbi1pdGVtPlxuICAgICAgXG4gICAgICA8aW9uLWl0ZW0gY2xhc3M9XCJ0by1maWVsZFwiPlxuICAgICAgICA8aW9uLWxhYmVsIHBvc2l0aW9uPVwic3RhY2tlZFwiPnt7IHByb3BzLnRvTGFiZWwgfHwgJ0hhc3RhJyB9fTwvaW9uLWxhYmVsPlxuICAgICAgICA8aW9uLWlucHV0IFxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ0b0NvbnRyb2xcIiBcbiAgICAgICAgICB0eXBlPVwibnVtYmVyXCIgXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInByb3BzLnRvUGxhY2Vob2xkZXIgfHwgcHJvcHMucGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFttaW5dPVwicHJvcHMucmFuZ2U/Lm1pblwiXG4gICAgICAgICAgW21heF09XCJwcm9wcy5yYW5nZT8ubWF4XCI+XG4gICAgICAgIDwvaW9uLWlucHV0PlxuICAgICAgPC9pb24taXRlbT5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vbnVtYmVyLWZyb20tdG8uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVyRnJvbVRvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHJvcHM6IElucHV0TWV0YWRhdGE7XG4gIFxuICBmcm9tQ29udHJvbDogRm9ybUNvbnRyb2w7XG4gIHRvQ29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIENyZWF0ZSBzZXBhcmF0ZSBjb250cm9scyBmb3IgZnJvbS90byB2YWx1ZXNcbiAgICAvLyBUaGUgbWFpbiBjb250cm9sIHdpbGwgc3RvcmUgdGhlIGNvbWJpbmVkIHZhbHVlIGFzIGFuIG9iamVjdFxuICAgIHRoaXMuZnJvbUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICB0aGlzLnRvQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIFxuICAgIC8vIEluaXRpYWxpemUgd2l0aCBleGlzdGluZyB2YWx1ZSBpZiBwcmVzZW50XG4gICAgaWYgKHRoaXMucHJvcHM/LmNvbnRyb2w/LnZhbHVlKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHR5cGVvZiB0aGlzLnByb3BzLmNvbnRyb2wudmFsdWUgPT09ICdzdHJpbmcnIFxuICAgICAgICA/IEpTT04ucGFyc2UodGhpcy5wcm9wcy5jb250cm9sLnZhbHVlKSBcbiAgICAgICAgOiB0aGlzLnByb3BzLmNvbnRyb2wudmFsdWU7XG4gICAgICBcbiAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHRoaXMuZnJvbUNvbnRyb2wuc2V0VmFsdWUodmFsdWUuZnJvbSB8fCBudWxsKTtcbiAgICAgICAgdGhpcy50b0NvbnRyb2wuc2V0VmFsdWUodmFsdWUudG8gfHwgbnVsbCk7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vIEFwcGx5IGRlZmF1bHQgdmFsdWVzIGlmIGNvbmZpZ3VyZWRcbiAgICBpZiAodGhpcy5wcm9wcz8ud2l0aERlZmF1bHQgfHwgdGhpcy5wcm9wcz8udmFsdWUpIHtcbiAgICAgIGFwcGx5RGVmYXVsdFZhbHVlVG9Db250cm9sKHRoaXMucHJvcHMpO1xuICAgIH1cbiAgICBcbiAgICAvLyBTeW5jIGNoYW5nZXMgYmFjayB0byBtYWluIGNvbnRyb2xcbiAgICB0aGlzLmZyb21Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVNYWluQ29udHJvbCgpO1xuICAgIH0pO1xuICAgIFxuICAgIHRoaXMudG9Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVNYWluQ29udHJvbCgpO1xuICAgIH0pO1xuICB9XG4gIFxuICBwcml2YXRlIHVwZGF0ZU1haW5Db250cm9sKCkge1xuICAgIGNvbnN0IHZhbHVlID0ge1xuICAgICAgZnJvbTogdGhpcy5mcm9tQ29udHJvbC52YWx1ZSxcbiAgICAgIHRvOiB0aGlzLnRvQ29udHJvbC52YWx1ZVxuICAgIH07XG4gICAgdGhpcy5wcm9wcy5jb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLnByb3BzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICB9XG59Il19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZyb20tdG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGVjaC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbnVtYmVyLWZyb20tdG8vbnVtYmVyLWZyb20tdG8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBZ0NqRixNQUFNLE9BQU8scUJBQXFCO0lBTWhDLGdCQUFlLENBQUM7SUFFaEIsUUFBUTtRQUNOLDhDQUE4QztRQUM5Qyw4REFBOEQ7UUFDOUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUVuQyw0Q0FBNEM7UUFDNUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUMvQixNQUFNLEtBQUssR0FDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUVqSCxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUM1QyxDQUFDO1FBQ0gsQ0FBQztRQUVELHFDQUFxQztRQUNyQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDakQsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMzQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDekMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHO1lBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSztZQUM1QixFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLO1NBQ3pCLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDckMsQ0FBQzsrR0EvQ1UscUJBQXFCO21HQUFyQixxQkFBcUIsMEdBekJ0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCVCx5RUF2QlMsbUJBQW1CLDBUQUFFLFFBQVEsOGVBQVcsUUFBUTs7NEZBMEIvQyxxQkFBcUI7a0JBN0JqQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxZQUNqRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCVDt3REFJUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uSW5wdXQsIElvbkl0ZW0sIElvbkxhYmVsIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhcHBseURlZmF1bHRWYWx1ZVRvQ29udHJvbCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlscy9mb3JtLWRlZmF1bHRzJztcbmltcG9ydCB7IElucHV0TWV0YWRhdGEgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1udW1iZXItZnJvbS10bycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtSZWFjdGl2ZUZvcm1zTW9kdWxlLCBJb25JbnB1dCwgSW9uSXRlbSwgSW9uTGFiZWxdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJudW1iZXItZnJvbS10by1jb250YWluZXJcIj5cbiAgICAgIDxpb24tbGFiZWwgcG9zaXRpb249XCJzdGFja2VkXCI+e3sgcHJvcHMuZnJvbUxhYmVsIHx8ICdEZXNkZScgfX08L2lvbi1sYWJlbD5cbiAgICAgIDxpb24taW5wdXRcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImZyb21Db250cm9sXCJcbiAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwcm9wcy5mcm9tUGxhY2Vob2xkZXIgfHwgcHJvcHMucGxhY2Vob2xkZXJcIlxuICAgICAgICBbbWluXT1cInByb3BzLnJhbmdlPy5taW5cIlxuICAgICAgICBbbWF4XT1cInByb3BzLnJhbmdlPy5tYXhcIlxuICAgICAgPlxuICAgICAgPC9pb24taW5wdXQ+XG5cbiAgICAgIDxpb24tbGFiZWwgcG9zaXRpb249XCJzdGFja2VkXCI+e3sgcHJvcHMudG9MYWJlbCB8fCAnSGFzdGEnIH19PC9pb24tbGFiZWw+XG4gICAgICA8aW9uLWlucHV0XG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJ0b0NvbnRyb2xcIlxuICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInByb3BzLnRvUGxhY2Vob2xkZXIgfHwgcHJvcHMucGxhY2Vob2xkZXJcIlxuICAgICAgICBbbWluXT1cInByb3BzLnJhbmdlPy5taW5cIlxuICAgICAgICBbbWF4XT1cInByb3BzLnJhbmdlPy5tYXhcIlxuICAgICAgPlxuICAgICAgPC9pb24taW5wdXQ+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL251bWJlci1mcm9tLXRvLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlckZyb21Ub0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHByb3BzOiBJbnB1dE1ldGFkYXRhO1xuXG4gIGZyb21Db250cm9sOiBGb3JtQ29udHJvbDtcbiAgdG9Db250cm9sOiBGb3JtQ29udHJvbDtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gQ3JlYXRlIHNlcGFyYXRlIGNvbnRyb2xzIGZvciBmcm9tL3RvIHZhbHVlc1xuICAgIC8vIFRoZSBtYWluIGNvbnRyb2wgd2lsbCBzdG9yZSB0aGUgY29tYmluZWQgdmFsdWUgYXMgYW4gb2JqZWN0XG4gICAgdGhpcy5mcm9tQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIHRoaXMudG9Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG5cbiAgICAvLyBJbml0aWFsaXplIHdpdGggZXhpc3RpbmcgdmFsdWUgaWYgcHJlc2VudFxuICAgIGlmICh0aGlzLnByb3BzPy5jb250cm9sPy52YWx1ZSkge1xuICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICB0eXBlb2YgdGhpcy5wcm9wcy5jb250cm9sLnZhbHVlID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UodGhpcy5wcm9wcy5jb250cm9sLnZhbHVlKSA6IHRoaXMucHJvcHMuY29udHJvbC52YWx1ZTtcblxuICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhpcy5mcm9tQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZS5mcm9tIHx8IG51bGwpO1xuICAgICAgICB0aGlzLnRvQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZS50byB8fCBudWxsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBcHBseSBkZWZhdWx0IHZhbHVlcyBpZiBjb25maWd1cmVkXG4gICAgaWYgKHRoaXMucHJvcHM/LndpdGhEZWZhdWx0IHx8IHRoaXMucHJvcHM/LnZhbHVlKSB7XG4gICAgICBhcHBseURlZmF1bHRWYWx1ZVRvQ29udHJvbCh0aGlzLnByb3BzKTtcbiAgICB9XG5cbiAgICAvLyBTeW5jIGNoYW5nZXMgYmFjayB0byBtYWluIGNvbnRyb2xcbiAgICB0aGlzLmZyb21Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVNYWluQ29udHJvbCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy50b0NvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZU1haW5Db250cm9sKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU1haW5Db250cm9sKCkge1xuICAgIGNvbnN0IHZhbHVlID0ge1xuICAgICAgZnJvbTogdGhpcy5mcm9tQ29udHJvbC52YWx1ZSxcbiAgICAgIHRvOiB0aGlzLnRvQ29udHJvbC52YWx1ZSxcbiAgICB9O1xuICAgIHRoaXMucHJvcHMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5wcm9wcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgfVxufVxuIl19
@@ -5040,9 +5040,7 @@ class NumberFromToComponent {
5040
5040
  this.toControl = new FormControl();
5041
5041
  // Initialize with existing value if present
5042
5042
  if (this.props?.control?.value) {
5043
- const value = typeof this.props.control.value === 'string'
5044
- ? JSON.parse(this.props.control.value)
5045
- : this.props.control.value;
5043
+ const value = typeof this.props.control.value === 'string' ? JSON.parse(this.props.control.value) : this.props.control.value;
5046
5044
  if (value && typeof value === 'object') {
5047
5045
  this.fromControl.setValue(value.from || null);
5048
5046
  this.toControl.setValue(value.to || null);
@@ -5063,7 +5061,7 @@ class NumberFromToComponent {
5063
5061
  updateMainControl() {
5064
5062
  const value = {
5065
5063
  from: this.fromControl.value,
5066
- to: this.toControl.value
5064
+ to: this.toControl.value,
5067
5065
  };
5068
5066
  this.props.control.setValue(value);
5069
5067
  this.props.control.markAsTouched();
@@ -5071,57 +5069,53 @@ class NumberFromToComponent {
5071
5069
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NumberFromToComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5072
5070
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NumberFromToComponent, isStandalone: true, selector: "val-number-from-to", inputs: { props: "props" }, ngImport: i0, template: `
5073
5071
  <div class="number-from-to-container">
5074
- <ion-item class="from-field">
5075
- <ion-label position="stacked">{{ props.fromLabel || 'Desde' }}</ion-label>
5076
- <ion-input
5077
- [formControl]="fromControl"
5078
- type="number"
5079
- [placeholder]="props.fromPlaceholder || props.placeholder"
5080
- [min]="props.range?.min"
5081
- [max]="props.range?.max">
5082
- </ion-input>
5083
- </ion-item>
5084
-
5085
- <ion-item class="to-field">
5086
- <ion-label position="stacked">{{ props.toLabel || 'Hasta' }}</ion-label>
5087
- <ion-input
5088
- [formControl]="toControl"
5089
- type="number"
5090
- [placeholder]="props.toPlaceholder || props.placeholder"
5091
- [min]="props.range?.min"
5092
- [max]="props.range?.max">
5093
- </ion-input>
5094
- </ion-item>
5072
+ <ion-label position="stacked">{{ props.fromLabel || 'Desde' }}</ion-label>
5073
+ <ion-input
5074
+ [formControl]="fromControl"
5075
+ type="number"
5076
+ [placeholder]="props.fromPlaceholder || props.placeholder"
5077
+ [min]="props.range?.min"
5078
+ [max]="props.range?.max"
5079
+ >
5080
+ </ion-input>
5081
+
5082
+ <ion-label position="stacked">{{ props.toLabel || 'Hasta' }}</ion-label>
5083
+ <ion-input
5084
+ [formControl]="toControl"
5085
+ type="number"
5086
+ [placeholder]="props.toPlaceholder || props.placeholder"
5087
+ [min]="props.range?.min"
5088
+ [max]="props.range?.max"
5089
+ >
5090
+ </ion-input>
5095
5091
  </div>
5096
- `, isInline: true, styles: [".number-from-to-container{display:flex;gap:1rem;align-items:flex-end}.number-from-to-container .from-field,.number-from-to-container .to-field{flex:1;--background: transparent;--border-color: var(--ion-color-medium);--border-style: solid;--border-width: 1px;--border-radius: 8px;--padding-start: 12px;--padding-end: 12px}@media (max-width: 768px){.number-from-to-container{flex-direction:column;gap:.5rem}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }] }); }
5092
+ `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }] }); }
5097
5093
  }
5098
5094
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NumberFromToComponent, decorators: [{
5099
5095
  type: Component,
5100
5096
  args: [{ selector: 'val-number-from-to', standalone: true, imports: [ReactiveFormsModule, IonInput, IonItem, IonLabel], template: `
5101
5097
  <div class="number-from-to-container">
5102
- <ion-item class="from-field">
5103
- <ion-label position="stacked">{{ props.fromLabel || 'Desde' }}</ion-label>
5104
- <ion-input
5105
- [formControl]="fromControl"
5106
- type="number"
5107
- [placeholder]="props.fromPlaceholder || props.placeholder"
5108
- [min]="props.range?.min"
5109
- [max]="props.range?.max">
5110
- </ion-input>
5111
- </ion-item>
5112
-
5113
- <ion-item class="to-field">
5114
- <ion-label position="stacked">{{ props.toLabel || 'Hasta' }}</ion-label>
5115
- <ion-input
5116
- [formControl]="toControl"
5117
- type="number"
5118
- [placeholder]="props.toPlaceholder || props.placeholder"
5119
- [min]="props.range?.min"
5120
- [max]="props.range?.max">
5121
- </ion-input>
5122
- </ion-item>
5098
+ <ion-label position="stacked">{{ props.fromLabel || 'Desde' }}</ion-label>
5099
+ <ion-input
5100
+ [formControl]="fromControl"
5101
+ type="number"
5102
+ [placeholder]="props.fromPlaceholder || props.placeholder"
5103
+ [min]="props.range?.min"
5104
+ [max]="props.range?.max"
5105
+ >
5106
+ </ion-input>
5107
+
5108
+ <ion-label position="stacked">{{ props.toLabel || 'Hasta' }}</ion-label>
5109
+ <ion-input
5110
+ [formControl]="toControl"
5111
+ type="number"
5112
+ [placeholder]="props.toPlaceholder || props.placeholder"
5113
+ [min]="props.range?.min"
5114
+ [max]="props.range?.max"
5115
+ >
5116
+ </ion-input>
5123
5117
  </div>
5124
- `, styles: [".number-from-to-container{display:flex;gap:1rem;align-items:flex-end}.number-from-to-container .from-field,.number-from-to-container .to-field{flex:1;--background: transparent;--border-color: var(--ion-color-medium);--border-style: solid;--border-width: 1px;--border-radius: 8px;--padding-start: 12px;--padding-end: 12px}@media (max-width: 768px){.number-from-to-container{flex-direction:column;gap:.5rem}}\n"] }]
5118
+ ` }]
5125
5119
  }], ctorParameters: () => [], propDecorators: { props: [{
5126
5120
  type: Input
5127
5121
  }] } });