valtech-components 4.0.76 → 4.0.79

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.
@@ -56,7 +56,7 @@ import { BrowserMultiFormatReader } from '@zxing/browser';
56
56
  * Current version of valtech-components.
57
57
  * This is automatically updated during the publish process.
58
58
  */
59
- const VERSION = '4.0.76';
59
+ const VERSION = '4.0.79';
60
60
 
61
61
  // Control de estado de refresco (singleton a nivel de módulo)
62
62
  let isRefreshing = false;
@@ -7079,7 +7079,9 @@ const VALTECH_DEFAULT_CONTENT = {
7079
7079
  titlePlaceholder: 'Describe brevemente...',
7080
7080
  titleValidation: 'El título debe tener entre 5 y 200 caracteres',
7081
7081
  descriptionPlaceholder: 'Proporciona más detalles...',
7082
- descriptionValidation: 'La descripción debe tener entre 10 y 5000 caracteres',
7082
+ descriptionValidation: 'La descripción es demasiado larga',
7083
+ formTitle: 'Enviar feedback',
7084
+ formSubtitle: 'Cuéntanos qué piensas. Errores, sugerencias y mejoras.',
7083
7085
  // Componentes - Búsqueda/Grid
7084
7086
  searchNumber: 'Buscar número...',
7085
7087
  selected: 'seleccionado/s',
@@ -7231,7 +7233,9 @@ const VALTECH_DEFAULT_CONTENT = {
7231
7233
  titlePlaceholder: 'Describe briefly...',
7232
7234
  titleValidation: 'Title must be between 5 and 200 characters',
7233
7235
  descriptionPlaceholder: 'Provide more details...',
7234
- descriptionValidation: 'Description must be between 10 and 5000 characters',
7236
+ descriptionValidation: 'Description is too long',
7237
+ formTitle: 'Send feedback',
7238
+ formSubtitle: 'Tell us what you think. Bugs, suggestions and improvements.',
7235
7239
  // Components - Search/Grid
7236
7240
  searchNumber: 'Search number...',
7237
7241
  selected: 'selected',
@@ -64250,8 +64254,8 @@ class FeedbackFormComponent {
64250
64254
  placeholder: this.props.descriptionPlaceholder ?? this.i18n.t('descriptionPlaceholder'),
64251
64255
  type: InputType.TEXTAREA,
64252
64256
  order: 3,
64253
- range: { min: 10, max: 5000 },
64254
- validators: [Validators.required, Validators.minLength(10), Validators.maxLength(5000)],
64257
+ range: { min: 10, max: 2000 },
64258
+ validators: [Validators.required, Validators.minLength(10), Validators.maxLength(2000)],
64255
64259
  errors: {
64256
64260
  required: this.i18n.t('descriptionValidation'),
64257
64261
  minlength: this.i18n.t('descriptionValidation'),
@@ -64264,7 +64268,8 @@ class FeedbackFormComponent {
64264
64268
  sections: [{ name: '', order: 0, fields }],
64265
64269
  actions: {
64266
64270
  type: 'submit',
64267
- color: 'primary',
64271
+ color: 'dark',
64272
+ shape: 'round',
64268
64273
  text: this.props.submitButtonText ?? this.i18n.t('submit'),
64269
64274
  state: ComponentStates.ENABLED,
64270
64275
  expand: 'block',
@@ -64309,6 +64314,12 @@ class FeedbackFormComponent {
64309
64314
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeedbackFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
64310
64315
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FeedbackFormComponent, isStandalone: true, selector: "val-feedback-form", inputs: { props: "props" }, outputs: { onSubmit: "onSubmit", onCancel: "onCancel" }, ngImport: i0, template: `
64311
64316
  <div class="feedback-form-wrapper" [class.compact]="props.compact" [ngClass]="props.cssClass">
64317
+ @if (props.showTitle) {
64318
+ <div class="form-header">
64319
+ <h2 class="form-title">{{ props.pageTitle || i18n.t('formTitle') }}</h2>
64320
+ <p class="form-subtitle">{{ props.pageSubtitle || i18n.t('formSubtitle') }}</p>
64321
+ </div>
64322
+ }
64312
64323
  <val-form [props]="formProps" (onSubmit)="handleFormSubmit($event)">
64313
64324
  @if (props.showAttachments !== false) {
64314
64325
  <val-attachment-uploader
@@ -64338,12 +64349,18 @@ class FeedbackFormComponent {
64338
64349
  </ion-button>
64339
64350
  }
64340
64351
  </div>
64341
- `, isInline: true, styles: [".feedback-form-wrapper{display:flex;flex-direction:column;gap:8px;&.compact{gap:4px}}.feedback-alert{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:8px;margin-top:8px;&.error{background-color:var(--ion-color-danger-tint);color:var(--ion-color-danger-shade)}&.success{background-color:var(--ion-color-success-tint);color:var(--ion-color-success-shade)}ion-icon{font-size:20px}}.cancel-button{margin-top:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onInvalid", "onSelectChange"] }, { kind: "component", type: AttachmentUploaderComponent, selector: "val-attachment-uploader", inputs: ["props"], outputs: ["attachmentsChange"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
64352
+ `, isInline: true, styles: [".feedback-form-wrapper{display:flex;flex-direction:column;gap:8px;&.compact{gap:4px}}.form-header{margin-bottom:8px}.form-title{font-size:1.5rem;font-weight:700;margin:0 0 4px;color:var(--ion-text-color)}.form-subtitle{font-size:1rem;font-weight:700;margin:0;color:var(--ion-text-color)}.feedback-alert{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:8px;margin-top:8px;&.error{background-color:var(--ion-color-danger-tint);color:var(--ion-color-danger-shade)}&.success{background-color:var(--ion-color-success-tint);color:var(--ion-color-success-shade)}ion-icon{font-size:20px}}.cancel-button{margin-top:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onInvalid", "onSelectChange"] }, { kind: "component", type: AttachmentUploaderComponent, selector: "val-attachment-uploader", inputs: ["props"], outputs: ["attachmentsChange"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
64342
64353
  }
64343
64354
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeedbackFormComponent, decorators: [{
64344
64355
  type: Component,
64345
64356
  args: [{ selector: 'val-feedback-form', standalone: true, imports: [CommonModule, FormComponent, AttachmentUploaderComponent, IonButton, IonIcon], template: `
64346
64357
  <div class="feedback-form-wrapper" [class.compact]="props.compact" [ngClass]="props.cssClass">
64358
+ @if (props.showTitle) {
64359
+ <div class="form-header">
64360
+ <h2 class="form-title">{{ props.pageTitle || i18n.t('formTitle') }}</h2>
64361
+ <p class="form-subtitle">{{ props.pageSubtitle || i18n.t('formSubtitle') }}</p>
64362
+ </div>
64363
+ }
64347
64364
  <val-form [props]="formProps" (onSubmit)="handleFormSubmit($event)">
64348
64365
  @if (props.showAttachments !== false) {
64349
64366
  <val-attachment-uploader
@@ -64373,7 +64390,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
64373
64390
  </ion-button>
64374
64391
  }
64375
64392
  </div>
64376
- `, styles: [".feedback-form-wrapper{display:flex;flex-direction:column;gap:8px;&.compact{gap:4px}}.feedback-alert{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:8px;margin-top:8px;&.error{background-color:var(--ion-color-danger-tint);color:var(--ion-color-danger-shade)}&.success{background-color:var(--ion-color-success-tint);color:var(--ion-color-success-shade)}ion-icon{font-size:20px}}.cancel-button{margin-top:8px}\n"] }]
64393
+ `, styles: [".feedback-form-wrapper{display:flex;flex-direction:column;gap:8px;&.compact{gap:4px}}.form-header{margin-bottom:8px}.form-title{font-size:1.5rem;font-weight:700;margin:0 0 4px;color:var(--ion-text-color)}.form-subtitle{font-size:1rem;font-weight:700;margin:0;color:var(--ion-text-color)}.feedback-alert{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:8px;margin-top:8px;&.error{background-color:var(--ion-color-danger-tint);color:var(--ion-color-danger-shade)}&.success{background-color:var(--ion-color-success-tint);color:var(--ion-color-success-shade)}ion-icon{font-size:20px}}.cancel-button{margin-top:8px}\n"] }]
64377
64394
  }], ctorParameters: () => [], propDecorators: { props: [{
64378
64395
  type: Input
64379
64396
  }], onSubmit: [{