valtech-components 4.0.1018 → 4.0.1020
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/molecules/number-picker/number-picker.component.mjs +3 -3
- package/esm2022/lib/components/organisms/form/form.component.mjs +33 -14
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +35 -16
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +1 -1
- package/lib/components/atoms/text/text.component.d.ts +1 -1
- package/lib/components/atoms/user-avatar/user-avatar.component.d.ts +1 -1
- package/lib/components/molecules/features-list/features-list.component.d.ts +2 -2
- package/lib/components/molecules/load-more/load-more.component.d.ts +1 -1
- package/lib/components/molecules/operation-reference/operation-reference.component.d.ts +1 -1
- package/lib/components/molecules/phone-display/phone-display.component.d.ts +1 -1
- package/lib/components/organisms/article/article.component.d.ts +6 -6
- package/lib/components/organisms/form/form.component.d.ts +3 -0
- package/lib/components/organisms/survey-builder/survey-builder.component.d.ts +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -70,7 +70,7 @@ import fixWebmDuration from 'fix-webm-duration';
|
|
|
70
70
|
* Current version of valtech-components.
|
|
71
71
|
* This is automatically updated during the publish process.
|
|
72
72
|
*/
|
|
73
|
-
const VERSION = '4.0.
|
|
73
|
+
const VERSION = '4.0.1020';
|
|
74
74
|
|
|
75
75
|
function evaluateValtechAccess(rule, context, features = {}, visitedFeatures = new Set()) {
|
|
76
76
|
if (rule == null)
|
|
@@ -29413,7 +29413,7 @@ class NumberPickerComponent {
|
|
|
29413
29413
|
<p class="number-picker__hint">{{ props.hint }}</p>
|
|
29414
29414
|
}
|
|
29415
29415
|
</div>
|
|
29416
|
-
`, isInline: true, styles: [":host{display:block}.number-picker{--number-picker-color: var(--ion-color-primary);--number-picker-radius: 28px;--number-picker-surface: rgba(255, 255, 255, .9);--number-picker-border: rgba(var(--ion-color-primary-rgb), .12);--number-picker-shadow: 0 16px 38px rgba(35, 35, 35, .08);border:1px solid var(--number-picker-border);border-radius:var(--number-picker-radius);background:var(--number-picker-surface);color:var(--ion-color-dark, #232323);box-shadow:var(--number-picker-shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.number-picker--disabled{opacity:.55;pointer-events:none}.number-picker__label{display:block;margin:0 0 10px;color:var(--ion-color-dark, #232323);font-size:1.0625rem;font-weight:800}.number-picker--wheel,.number-picker--field{padding:
|
|
29416
|
+
`, isInline: true, styles: [":host{display:block}.number-picker{--number-picker-color: var(--ion-color-primary);--number-picker-radius: 28px;--number-picker-surface: rgba(255, 255, 255, .9);--number-picker-border: rgba(var(--ion-color-primary-rgb), .12);--number-picker-shadow: 0 16px 38px rgba(35, 35, 35, .08);border:1px solid var(--number-picker-border);border-radius:var(--number-picker-radius);background:var(--number-picker-surface);color:var(--ion-color-dark, #232323);box-shadow:var(--number-picker-shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.number-picker--disabled{opacity:.55;pointer-events:none}.number-picker__label{display:block;margin:0 0 10px;color:var(--ion-color-dark, #232323);font-size:1.0625rem;font-weight:800}.number-picker--wheel,.number-picker--field{padding:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.number-picker__wheel{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:12px}.number-picker__button{width:48px;height:48px;border:1px solid rgba(var(--ion-color-primary-rgb),.16);border-radius:999px;background:#ffffffd6;color:var(--ion-color-dark, #232323);font:inherit;font-size:1.7rem;font-weight:800;line-height:1;box-shadow:0 8px 18px #2323230f}.number-picker__button:disabled{opacity:.38}.number-picker__wheel-values{display:grid;grid-template-columns:1fr 96px 1fr;align-items:center;justify-items:center;gap:8px}.number-picker__wheel-values span{color:var(--ion-color-dark-shade, #1e2023);font-size:1.5rem;font-weight:800;opacity:.32}.number-picker__wheel-values strong{width:96px;height:82px;display:grid;place-items:center;border-radius:22px;background:var(--number-picker-color);color:var(--ion-color-primary-contrast, #fff);font-size:3rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;box-shadow:0 14px 26px rgba(var(--ion-color-primary-rgb),.18)}.number-picker__field{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;min-height:76px;border:1.5px solid rgba(35,35,35,.12);border-radius:999px;background:#ffffffc2;overflow:hidden}.number-picker__field:focus-within{border-color:var(--number-picker-color)}.number-picker__field input{width:100%;min-width:0;border:0;outline:0;padding:0 8px 0 24px;background:transparent;color:var(--ion-color-dark, #232323);font:inherit;font-size:2.35rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;-moz-appearance:textfield}.number-picker__field input::-webkit-outer-spin-button,.number-picker__field input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.number-picker__unit{padding-right:10px;color:var(--ion-color-dark-shade, #1e2023);font-size:1rem;font-weight:800;opacity:.62}.number-picker__actions{display:flex;align-items:center;gap:6px;padding-right:10px}.number-picker__actions .number-picker__button{width:42px;height:42px;font-size:1.45rem}.number-picker__hint{margin:10px 4px 0;color:var(--ion-color-dark-shade, #1e2023);font-size:.8125rem;font-weight:650;line-height:1.35;opacity:.68}.number-picker--compact{padding:10px 12px;--number-picker-radius: 20px}.number-picker--compact .number-picker__label{font-size:.875rem}.number-picker--compact .number-picker__field{min-height:52px;border-width:1px}.number-picker--compact .number-picker__field input{padding-left:14px;font-size:1.25rem}.number-picker--compact .number-picker__actions .number-picker__button{width:34px;height:34px;font-size:1.25rem}@media (max-width: 420px){.number-picker__wheel{grid-template-columns:44px minmax(0,1fr) 44px}.number-picker__button{width:44px;height:44px}.number-picker__wheel-values{grid-template-columns:1fr 84px 1fr}.number-picker__wheel-values strong{width:84px;height:76px;font-size:2.65rem}.number-picker__wheel-values span{font-size:1.25rem}.number-picker__field{min-height:70px}.number-picker__field input{padding-left:18px;font-size:2rem}.number-picker__actions .number-picker__button{width:38px;height:38px}}:host-context(.ion-palette-dark) .number-picker,:host-context(html.ion-palette-dark) .number-picker,:host-context(body.dark) .number-picker,:host-context([data-theme=dark]) .number-picker{--number-picker-surface: rgba(28, 30, 28, .78);--number-picker-border: rgba(255, 255, 255, .13);--number-picker-shadow: 0 18px 44px rgba(0, 0, 0, .26);color:#fffffff0}:host-context(.ion-palette-dark) .number-picker__label,:host-context(html.ion-palette-dark) .number-picker__label,:host-context(body.dark) .number-picker__label,:host-context([data-theme=dark]) .number-picker__label,:host-context(.ion-palette-dark) .number-picker__button,:host-context(html.ion-palette-dark) .number-picker__button,:host-context(body.dark) .number-picker__button,:host-context([data-theme=dark]) .number-picker__button,:host-context(.ion-palette-dark) .number-picker__field input,:host-context(html.ion-palette-dark) .number-picker__field input,:host-context(body.dark) .number-picker__field input,:host-context([data-theme=dark]) .number-picker__field input{color:#fffffff0}:host-context(.ion-palette-dark) .number-picker__button,:host-context(html.ion-palette-dark) .number-picker__button,:host-context(body.dark) .number-picker__button,:host-context([data-theme=dark]) .number-picker__button,:host-context(.ion-palette-dark) .number-picker__field,:host-context(html.ion-palette-dark) .number-picker__field,:host-context(body.dark) .number-picker__field,:host-context([data-theme=dark]) .number-picker__field{background:#ffffff14;border-color:#ffffff24}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
29417
29417
|
}
|
|
29418
29418
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberPickerComponent, decorators: [{
|
|
29419
29419
|
type: Component,
|
|
@@ -29504,7 +29504,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
29504
29504
|
<p class="number-picker__hint">{{ props.hint }}</p>
|
|
29505
29505
|
}
|
|
29506
29506
|
</div>
|
|
29507
|
-
`, styles: [":host{display:block}.number-picker{--number-picker-color: var(--ion-color-primary);--number-picker-radius: 28px;--number-picker-surface: rgba(255, 255, 255, .9);--number-picker-border: rgba(var(--ion-color-primary-rgb), .12);--number-picker-shadow: 0 16px 38px rgba(35, 35, 35, .08);border:1px solid var(--number-picker-border);border-radius:var(--number-picker-radius);background:var(--number-picker-surface);color:var(--ion-color-dark, #232323);box-shadow:var(--number-picker-shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.number-picker--disabled{opacity:.55;pointer-events:none}.number-picker__label{display:block;margin:0 0 10px;color:var(--ion-color-dark, #232323);font-size:1.0625rem;font-weight:800}.number-picker--wheel,.number-picker--field{padding:
|
|
29507
|
+
`, styles: [":host{display:block}.number-picker{--number-picker-color: var(--ion-color-primary);--number-picker-radius: 28px;--number-picker-surface: rgba(255, 255, 255, .9);--number-picker-border: rgba(var(--ion-color-primary-rgb), .12);--number-picker-shadow: 0 16px 38px rgba(35, 35, 35, .08);border:1px solid var(--number-picker-border);border-radius:var(--number-picker-radius);background:var(--number-picker-surface);color:var(--ion-color-dark, #232323);box-shadow:var(--number-picker-shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.number-picker--disabled{opacity:.55;pointer-events:none}.number-picker__label{display:block;margin:0 0 10px;color:var(--ion-color-dark, #232323);font-size:1.0625rem;font-weight:800}.number-picker--wheel,.number-picker--field{padding:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.number-picker__wheel{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:12px}.number-picker__button{width:48px;height:48px;border:1px solid rgba(var(--ion-color-primary-rgb),.16);border-radius:999px;background:#ffffffd6;color:var(--ion-color-dark, #232323);font:inherit;font-size:1.7rem;font-weight:800;line-height:1;box-shadow:0 8px 18px #2323230f}.number-picker__button:disabled{opacity:.38}.number-picker__wheel-values{display:grid;grid-template-columns:1fr 96px 1fr;align-items:center;justify-items:center;gap:8px}.number-picker__wheel-values span{color:var(--ion-color-dark-shade, #1e2023);font-size:1.5rem;font-weight:800;opacity:.32}.number-picker__wheel-values strong{width:96px;height:82px;display:grid;place-items:center;border-radius:22px;background:var(--number-picker-color);color:var(--ion-color-primary-contrast, #fff);font-size:3rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;box-shadow:0 14px 26px rgba(var(--ion-color-primary-rgb),.18)}.number-picker__field{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;min-height:76px;border:1.5px solid rgba(35,35,35,.12);border-radius:999px;background:#ffffffc2;overflow:hidden}.number-picker__field:focus-within{border-color:var(--number-picker-color)}.number-picker__field input{width:100%;min-width:0;border:0;outline:0;padding:0 8px 0 24px;background:transparent;color:var(--ion-color-dark, #232323);font:inherit;font-size:2.35rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;-moz-appearance:textfield}.number-picker__field input::-webkit-outer-spin-button,.number-picker__field input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.number-picker__unit{padding-right:10px;color:var(--ion-color-dark-shade, #1e2023);font-size:1rem;font-weight:800;opacity:.62}.number-picker__actions{display:flex;align-items:center;gap:6px;padding-right:10px}.number-picker__actions .number-picker__button{width:42px;height:42px;font-size:1.45rem}.number-picker__hint{margin:10px 4px 0;color:var(--ion-color-dark-shade, #1e2023);font-size:.8125rem;font-weight:650;line-height:1.35;opacity:.68}.number-picker--compact{padding:10px 12px;--number-picker-radius: 20px}.number-picker--compact .number-picker__label{font-size:.875rem}.number-picker--compact .number-picker__field{min-height:52px;border-width:1px}.number-picker--compact .number-picker__field input{padding-left:14px;font-size:1.25rem}.number-picker--compact .number-picker__actions .number-picker__button{width:34px;height:34px;font-size:1.25rem}@media (max-width: 420px){.number-picker__wheel{grid-template-columns:44px minmax(0,1fr) 44px}.number-picker__button{width:44px;height:44px}.number-picker__wheel-values{grid-template-columns:1fr 84px 1fr}.number-picker__wheel-values strong{width:84px;height:76px;font-size:2.65rem}.number-picker__wheel-values span{font-size:1.25rem}.number-picker__field{min-height:70px}.number-picker__field input{padding-left:18px;font-size:2rem}.number-picker__actions .number-picker__button{width:38px;height:38px}}:host-context(.ion-palette-dark) .number-picker,:host-context(html.ion-palette-dark) .number-picker,:host-context(body.dark) .number-picker,:host-context([data-theme=dark]) .number-picker{--number-picker-surface: rgba(28, 30, 28, .78);--number-picker-border: rgba(255, 255, 255, .13);--number-picker-shadow: 0 18px 44px rgba(0, 0, 0, .26);color:#fffffff0}:host-context(.ion-palette-dark) .number-picker__label,:host-context(html.ion-palette-dark) .number-picker__label,:host-context(body.dark) .number-picker__label,:host-context([data-theme=dark]) .number-picker__label,:host-context(.ion-palette-dark) .number-picker__button,:host-context(html.ion-palette-dark) .number-picker__button,:host-context(body.dark) .number-picker__button,:host-context([data-theme=dark]) .number-picker__button,:host-context(.ion-palette-dark) .number-picker__field input,:host-context(html.ion-palette-dark) .number-picker__field input,:host-context(body.dark) .number-picker__field input,:host-context([data-theme=dark]) .number-picker__field input{color:#fffffff0}:host-context(.ion-palette-dark) .number-picker__button,:host-context(html.ion-palette-dark) .number-picker__button,:host-context(body.dark) .number-picker__button,:host-context([data-theme=dark]) .number-picker__button,:host-context(.ion-palette-dark) .number-picker__field,:host-context(html.ion-palette-dark) .number-picker__field,:host-context(body.dark) .number-picker__field,:host-context([data-theme=dark]) .number-picker__field{background:#ffffff14;border-color:#ffffff24}\n"] }]
|
|
29508
29508
|
}], propDecorators: { props: [{
|
|
29509
29509
|
type: Input,
|
|
29510
29510
|
args: [{ required: true }]
|
|
@@ -37643,28 +37643,26 @@ class FormComponent {
|
|
|
37643
37643
|
const formControls = {};
|
|
37644
37644
|
this.props.sections.forEach(section => {
|
|
37645
37645
|
section.fields.forEach(field => {
|
|
37646
|
-
// Honra `field.value` al construir el FormGroup para que controles tipo
|
|
37647
|
-
// HANDLE (que consumen el control directo via [formControl]) reciban el
|
|
37648
|
-
// valor inicial sin que el caller tenga que patchValue post-mount.
|
|
37649
|
-
// El helper applyDefaultValueToControl (val-text-input etc.) sigue
|
|
37650
|
-
// funcionando — escribe sobre un control ya inicializado, idempotente.
|
|
37651
|
-
const initialValue = field.value ??
|
|
37652
|
-
(field.type === this.types.MULTI_SELECT_SIMPLE ? [] : field.type === this.types.TOGGLE ? false : null);
|
|
37653
37646
|
if (field.type === this.types.NUMBER_FROM_TO) {
|
|
37654
37647
|
// Crear dos controles para campos NUMBER_FROM_TO
|
|
37655
|
-
formControls[`${field.name}_from`] = [
|
|
37656
|
-
formControls[`${field.name}_to`] = [
|
|
37648
|
+
formControls[`${field.name}_from`] = [this.initialValueForField(field), field.validators || []];
|
|
37649
|
+
formControls[`${field.name}_to`] = [this.initialValueForField(field), field.validators || []];
|
|
37657
37650
|
}
|
|
37658
37651
|
else if (field.type === this.types.ATTACHMENT) {
|
|
37659
37652
|
formControls[field.name] = [[], field.validators || []];
|
|
37660
37653
|
}
|
|
37661
37654
|
else {
|
|
37662
|
-
formControls[field.name] = [
|
|
37655
|
+
formControls[field.name] = [this.initialValueForField(field), field.validators || []];
|
|
37663
37656
|
}
|
|
37664
37657
|
});
|
|
37665
37658
|
});
|
|
37666
37659
|
return formControls;
|
|
37667
37660
|
}
|
|
37661
|
+
initialValueForField(field) {
|
|
37662
|
+
// Honra `field.value` para que controles que consumen FormControl directo
|
|
37663
|
+
// reciban valor inicial aunque el caller no haga patchValue post-mount.
|
|
37664
|
+
return field.value ?? (field.type === this.types.MULTI_SELECT_SIMPLE ? [] : field.type === this.types.TOGGLE ? false : null);
|
|
37665
|
+
}
|
|
37668
37666
|
/**
|
|
37669
37667
|
* Reconstruye el `FormGroup` desde cero, con los valores iniciales de `props`
|
|
37670
37668
|
* actuales (no los que el usuario haya tecleado desde entonces).
|
|
@@ -37786,6 +37784,8 @@ class FormComponent {
|
|
|
37786
37784
|
}
|
|
37787
37785
|
});
|
|
37788
37786
|
});
|
|
37787
|
+
this.value.set(this.form.getRawValue());
|
|
37788
|
+
this.valid.set(this.form.valid);
|
|
37789
37789
|
}
|
|
37790
37790
|
/**
|
|
37791
37791
|
* Actualiza el cache de actions basado en el estado actual del form.
|
|
@@ -37844,7 +37844,28 @@ class FormComponent {
|
|
|
37844
37844
|
}
|
|
37845
37845
|
}
|
|
37846
37846
|
getControl(field) {
|
|
37847
|
-
return this.
|
|
37847
|
+
return this.ensureControl(field);
|
|
37848
|
+
}
|
|
37849
|
+
ensureControl(fieldName) {
|
|
37850
|
+
let control = this.Form.get(fieldName);
|
|
37851
|
+
if (!control) {
|
|
37852
|
+
const field = this.findFieldForControl(fieldName);
|
|
37853
|
+
control = this.fb.control(field ? this.initialValueForField(field) : null, field?.validators || []);
|
|
37854
|
+
this.Form.addControl(fieldName, control);
|
|
37855
|
+
}
|
|
37856
|
+
return control;
|
|
37857
|
+
}
|
|
37858
|
+
findFieldForControl(fieldName) {
|
|
37859
|
+
for (const section of this.props.sections) {
|
|
37860
|
+
for (const field of section.fields) {
|
|
37861
|
+
if (field.name === fieldName)
|
|
37862
|
+
return field;
|
|
37863
|
+
if (field.type === this.types.NUMBER_FROM_TO && (`${field.name}_from` === fieldName || `${field.name}_to` === fieldName)) {
|
|
37864
|
+
return field;
|
|
37865
|
+
}
|
|
37866
|
+
}
|
|
37867
|
+
}
|
|
37868
|
+
return undefined;
|
|
37848
37869
|
}
|
|
37849
37870
|
/**
|
|
37850
37871
|
* Ids estables (label + error) para un field. Memoizados por referencia para
|
|
@@ -37968,7 +37989,6 @@ class FormComponent {
|
|
|
37968
37989
|
const result = {
|
|
37969
37990
|
control,
|
|
37970
37991
|
label: '',
|
|
37971
|
-
hint: field.hint,
|
|
37972
37992
|
};
|
|
37973
37993
|
this.emojiRatingPropMemo.set(field, result);
|
|
37974
37994
|
return result;
|
|
@@ -37982,7 +38002,6 @@ class FormComponent {
|
|
|
37982
38002
|
control,
|
|
37983
38003
|
token: field.token,
|
|
37984
38004
|
label: '',
|
|
37985
|
-
hint: field.hint,
|
|
37986
38005
|
min: field.range?.min,
|
|
37987
38006
|
max: field.range?.max,
|
|
37988
38007
|
step: field.step,
|