@quadrel-enterprise-ui/framework 20.6.0 → 20.6.1

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/index.d.ts CHANGED
@@ -682,9 +682,14 @@ interface QdCollectedFile {
682
682
  */
683
683
  downloadUrl: string;
684
684
  /**
685
- * @description Upload Timestamp
685
+ * @description Timestamp of when the file was uploaded.
686
+ * When provided, the file collector displays the formatted date and time
687
+ * next to the file name using the current application locale.
686
688
  *
687
- * @example new Date('1996-04-22 20:04')
689
+ * The value should be supplied by the backend (e.g. `fileStoredAt` from the API response).
690
+ * If omitted, no timestamp is shown.
691
+ *
692
+ * @example new Date('2025-03-20T14:30:00Z')
688
693
  */
689
694
  uploadTimestamp?: Date;
690
695
  }
@@ -740,7 +745,7 @@ declare class QdMockFileCollectorItemComponent {
740
745
  progress: number;
741
746
  newlyUploaded: boolean;
742
747
  collectedFile: QdCollectedFile;
743
- error: QdUploadError;
748
+ error: QdUploadError | undefined;
744
749
  readonly: boolean;
745
750
  viewonly: boolean;
746
751
  downloadFilesWithHttpClient: boolean;
@@ -751,47 +756,53 @@ declare class QdMockFileCollectorItemComponent {
751
756
  }
752
757
 
753
758
  declare class QdMockFileCollectorItemNameComponent {
754
- name: QdCollectedFile['name'];
759
+ name: string;
760
+ testId: string;
755
761
  static ɵfac: i0.ɵɵFactoryDeclaration<QdMockFileCollectorItemNameComponent, never>;
756
- static ɵcmp: i0.ɵɵComponentDeclaration<QdMockFileCollectorItemNameComponent, "qd-file-collector-item-name", never, { "name": { "alias": "name"; "required": false; }; }, {}, never, never, false, never>;
762
+ static ɵcmp: i0.ɵɵComponentDeclaration<QdMockFileCollectorItemNameComponent, "qd-file-collector-item-name", never, { "name": { "alias": "name"; "required": false; }; "testId": { "alias": "data-test-id"; "required": false; }; }, {}, never, never, false, never>;
757
763
  }
758
764
 
759
765
  declare class QdMockFileCollectorItemSizeComponent {
760
- size: QdCollectedFile['size'];
766
+ size: number;
767
+ testId: string;
761
768
  static ɵfac: i0.ɵɵFactoryDeclaration<QdMockFileCollectorItemSizeComponent, never>;
762
- static ɵcmp: i0.ɵɵComponentDeclaration<QdMockFileCollectorItemSizeComponent, "qd-file-collector-item-size", never, { "size": { "alias": "size"; "required": false; }; }, {}, never, never, false, never>;
769
+ static ɵcmp: i0.ɵɵComponentDeclaration<QdMockFileCollectorItemSizeComponent, "qd-file-collector-item-size", never, { "size": { "alias": "size"; "required": false; }; "testId": { "alias": "data-test-id"; "required": false; }; }, {}, never, never, false, never>;
763
770
  }
764
771
 
765
772
  declare class QdMockFileCollectorItemToolsComponent {
766
773
  progress: number;
767
774
  collectedFile: QdCollectedFile;
768
- error: QdUploadError;
775
+ error: QdUploadError | undefined;
769
776
  readonly: boolean;
770
777
  viewonly: boolean;
771
778
  downloadFilesWithHttpClient: boolean;
779
+ testId: string;
772
780
  static ɵfac: i0.ɵɵFactoryDeclaration<QdMockFileCollectorItemToolsComponent, never>;
773
- static ɵcmp: i0.ɵɵComponentDeclaration<QdMockFileCollectorItemToolsComponent, "qd-file-collector-item-tools", never, { "progress": { "alias": "progress"; "required": false; }; "collectedFile": { "alias": "collectedFile"; "required": false; }; "error": { "alias": "error"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "viewonly": { "alias": "viewonly"; "required": false; }; "downloadFilesWithHttpClient": { "alias": "downloadFilesWithHttpClient"; "required": false; }; }, {}, never, never, false, never>;
781
+ static ɵcmp: i0.ɵɵComponentDeclaration<QdMockFileCollectorItemToolsComponent, "qd-file-collector-item-tools", never, { "progress": { "alias": "progress"; "required": false; }; "collectedFile": { "alias": "collectedFile"; "required": false; }; "error": { "alias": "error"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "viewonly": { "alias": "viewonly"; "required": false; }; "downloadFilesWithHttpClient": { "alias": "downloadFilesWithHttpClient"; "required": false; }; "testId": { "alias": "data-test-id"; "required": false; }; }, {}, never, never, false, never>;
774
782
  }
775
783
 
776
784
  declare class QdMockFileCollectorDialogItemComponent {
777
785
  progress: number;
778
786
  collectedFile: QdCollectedFile;
779
- error: QdUploadError;
787
+ error: QdUploadError | undefined;
788
+ testId: string;
780
789
  static ɵfac: i0.ɵɵFactoryDeclaration<QdMockFileCollectorDialogItemComponent, never>;
781
- static ɵcmp: i0.ɵɵComponentDeclaration<QdMockFileCollectorDialogItemComponent, "qd-file-collector-dialog-item", never, { "progress": { "alias": "progress"; "required": false; }; "collectedFile": { "alias": "collectedFile"; "required": false; }; "error": { "alias": "error"; "required": false; }; }, {}, never, never, false, never>;
790
+ static ɵcmp: i0.ɵɵComponentDeclaration<QdMockFileCollectorDialogItemComponent, "qd-file-collector-dialog-item", never, { "progress": { "alias": "progress"; "required": false; }; "collectedFile": { "alias": "collectedFile"; "required": false; }; "error": { "alias": "error"; "required": false; }; "testId": { "alias": "data-test-id"; "required": false; }; }, {}, never, never, false, never>;
782
791
  }
783
792
 
784
793
  declare class QdMockFileCollectorDialogItemErrorComponent {
785
794
  error: QdUploadError;
795
+ testId: string;
786
796
  static ɵfac: i0.ɵɵFactoryDeclaration<QdMockFileCollectorDialogItemErrorComponent, never>;
787
- static ɵcmp: i0.ɵɵComponentDeclaration<QdMockFileCollectorDialogItemErrorComponent, "qd-file-collector-dialog-item-error", never, { "error": { "alias": "error"; "required": false; }; }, {}, never, never, false, never>;
797
+ static ɵcmp: i0.ɵɵComponentDeclaration<QdMockFileCollectorDialogItemErrorComponent, "qd-file-collector-dialog-item-error", never, { "error": { "alias": "error"; "required": false; }; "testId": { "alias": "data-test-id"; "required": false; }; }, {}, never, never, false, never>;
788
798
  }
789
799
 
790
800
  declare class QdMockFileCollectorDialogItemProgressComponent {
791
- progress: any;
792
- error: any;
801
+ progress: number;
802
+ error: QdUploadError | undefined;
803
+ testId: string;
793
804
  static ɵfac: i0.ɵɵFactoryDeclaration<QdMockFileCollectorDialogItemProgressComponent, never>;
794
- static ɵcmp: i0.ɵɵComponentDeclaration<QdMockFileCollectorDialogItemProgressComponent, "qd-file-collector-dialog-item-progress", never, { "progress": { "alias": "progress"; "required": false; }; "error": { "alias": "error"; "required": false; }; }, {}, never, never, false, never>;
805
+ static ɵcmp: i0.ɵɵComponentDeclaration<QdMockFileCollectorDialogItemProgressComponent, "qd-file-collector-dialog-item-progress", never, { "progress": { "alias": "progress"; "required": false; }; "error": { "alias": "error"; "required": false; }; "testId": { "alias": "data-test-id"; "required": false; }; }, {}, never, never, false, never>;
795
806
  }
796
807
 
797
808
  declare class QdMockFileCollectorModule {
@@ -10194,86 +10205,151 @@ interface QdFileCollectorConfig {
10194
10205
  }
10195
10206
 
10196
10207
  /**
10197
- * **QdFileCollectorComponent** is a flexible component for managing files within an application.
10198
- * It supports uploading, downloading, and displaying files, offering various options for customization and configuration.
10208
+ * **QdFileCollectorComponent** lets users view, upload, download, and remove files.
10199
10209
  *
10200
10210
  * #### **Features**
10201
10211
  *
10202
- * - **Upload**: Allows users to add new files with restrictions on file type and size.
10203
- * - **Download**: Enables downloads directly via URL or, if needed, through Angular’s `HttpClient`, for example, to support authorization.
10204
- * - **Customizable Error Handling**: Validates file size, type, and name pattern, with customizable error messages for user guidance.
10205
- * - **Read-only Mode**: Disables interactions in read-only mode, allowing only viewing or downloading of files.
10206
- * - **Standalone Enabled**: Detects if used within or outside a QLS section structure and, if outside, enables file uploads in standalone mode.
10207
- *
10208
- * #### **Interactions**
10212
+ * - **Upload**: select files, validate them, and upload with progress tracking via a custom file manager
10213
+ * - **Download**: directly via URL or through `HttpClient` (e.g. for authorization)
10214
+ * - **Delete**: with confirmation dialog
10215
+ * - **Upload Timestamp**: shows the upload date next to the file name when `uploadTimestamp` is set
10216
+ * - **Validation**: restricts file type, size, and name pattern with customizable error messages
10217
+ * - **Readonly / Viewonly**: disables upload and delete, allows only viewing and downloading
10218
+ * - **Standalone / Section**: works independently with its own add button, or inside a `QdSection` via the toolbar action
10209
10219
  *
10210
- * File interactions are managed through several key functions:
10220
+ * #### **Quick start**
10211
10221
  *
10212
- * - **upload**: Adds a file to the files list if validation is successful.
10213
- * - **delete**: Opens a confirmation dialog that, if confirmed, removes the file from the list.
10214
- * - **readonly/viewonly**: In read-only or view-only mode, upload and delete functions are disabled, limiting user actions.
10222
+ * **1. Add the collector to the template**
10215
10223
  *
10216
- * #### **Standalone Mode**
10217
- *
10218
- * Following Quadrel’s design principles, QdFileCollector includes a standalone mode, allowing it to work independently.
10219
- * It automatically detects when used outside a QLS section structure and, in standalone mode, displays an "Add New" button to support file uploads.
10220
- *
10221
- * #### **File Restrictions**
10222
- *
10223
- * - **allowedFileTypes** and **allowedMimeTypes** should not be used together; using both will trigger an error log.
10224
- * - **maxFileSizeInBytes** sets a maximum file size allowed for uploads.
10225
- * - **allowedFileNamePattern** defines a regex pattern for file names; files that don’t match the pattern are rejected.
10224
+ * ```html
10225
+ * <qd-file-collector [config]="myFileCollectorConfig"></qd-file-collector>
10226
+ * ```
10226
10227
  *
10227
- * #### **Error Handling**
10228
+ * **2. Define the config in your component**
10228
10229
  *
10229
- * Upload errors can occur in the following cases:
10230
- * - **Invalid MIME Type**: When the file type is not in `allowedMimeTypes`.
10231
- * - **Invalid File Size**: When the file size exceeds `maxFileSizeInBytes`.
10232
- * - **Invalid File Name Pattern**: When the file name does not match `allowedFileNamePattern`.
10230
+ * ```typescript
10231
+ * @Component({
10232
+ * template: `<qd-file-collector [config]="myFileCollectorConfig"></qd-file-collector>`
10233
+ * })
10234
+ * export class MyComponent {
10235
+ * myFiles: QdCollectedFile[] = [
10236
+ * {
10237
+ * name: 'report.pdf',
10238
+ * size: 9432,
10239
+ * type: 'application/pdf',
10240
+ * downloadUrl: '/api/files/report.pdf',
10241
+ * uploadTimestamp: new Date()
10242
+ * }
10243
+ * ];
10233
10244
  *
10234
- * Error messages can be customized:
10235
- * - **invalidMimeTypeErrorMessageI18n**: Custom message for unsupported MIME types.
10236
- * - **invalidFileNameErrorMessageI18n**: Custom message for unsupported file names.
10245
+ * myFileCollectorConfig: QdFileCollectorConfig = {
10246
+ * files: this.myFiles
10247
+ * };
10248
+ * }
10249
+ * ```
10237
10250
  *
10238
- * #### **File Manager**
10251
+ * This is enough to show already existing files.
10239
10252
  *
10240
- * QdFileManager is an interface that provides methods for uploading and deleting files.
10241
- * To use it with QdFileCollectorComponent, implement this interface in a custom service and provide it via the `QD_FILE_MANAGER_TOKEN` token.
10242
- * This service enables you to create custom file-handling logic.
10253
+ * **3. Connect a file manager**
10243
10254
  *
10244
- * #### **Usage**
10255
+ * To enable upload and delete, provide a `QdFileManager` via `QD_FILE_MANAGER_TOKEN`.
10245
10256
  *
10246
10257
  * ```typescript
10247
10258
  * @Injectable()
10248
10259
  * export class MyFileManager implements QdFileManager {
10260
+ * private http = inject(HttpClient);
10261
+ *
10249
10262
  * upload(file: File): Observable<QdUploadProgress> {
10250
- * // custom implementation here
10263
+ * // Emit progress values from 0 to 100.
10264
+ * // When done, return the final QdCollectedFile from your backend response.
10265
+ * return this.http.post('/api/files', file).pipe(
10266
+ * map(response => {
10267
+ *
10268
+ * const myCollectedFile: QdCollectedFile = {
10269
+ * name: response.fileName,
10270
+ * size: response.fileSize,
10271
+ * type: response.mimeType,
10272
+ * downloadUrl: response.downloadUrl,
10273
+ * uploadTimestamp: new Date(response.storedAt)
10274
+ * };
10275
+ *
10276
+ * return { progress: 100, collectedFile: myCollectedFile };
10277
+ * })
10278
+ * );
10251
10279
  * }
10252
10280
  *
10253
10281
  * delete(collectedFile: QdCollectedFile): Observable<boolean> {
10254
- * // custom implementation here
10282
+ * return this.http.delete('/api/files/' + collectedFile.name).pipe(map(() => true));
10255
10283
  * }
10256
10284
  * }
10285
+ * ```
10286
+ *
10287
+ * Register the file manager in your component:
10257
10288
  *
10289
+ * ```typescript
10258
10290
  * @Component({
10259
- * selector: 'my-file-collector',
10260
- * providers: [
10261
- * {
10262
- * provide: QD_FILE_MANAGER_TOKEN,
10263
- * useClass: MyFileManager
10264
- * }
10265
- * ]
10291
+ * template: `<qd-file-collector [config]="myFileCollectorConfig"></qd-file-collector>`,
10292
+ * // Add the file manager here to connect the collector to your backend.
10293
+ * providers: [{ provide: QD_FILE_MANAGER_TOKEN, useClass: MyFileManager }]
10266
10294
  * })
10267
- * class MyFileCollectorComponent {
10268
- * fileCollectorConfig: QdFileCollectorConfig = {
10269
- * // configuration options here
10270
- * };
10295
+ * export class MyComponent {
10296
+ * // ...
10271
10297
  * }
10272
10298
  * ```
10273
10299
  *
10274
- * ```html
10275
- * <qd-file-collector [config]="fileCollectorConfig"></qd-file-collector>
10276
- * ```
10300
+ * #### **How the file manager works**
10301
+ *
10302
+ * The file manager connects the collector to your backend.
10303
+ *
10304
+ * It must support these two actions:
10305
+ *
10306
+ * - `upload(file)`: uploads a file and emits upload progress
10307
+ * - `delete(collectedFile)`: deletes a file and emits `true` if the deletion was successful
10308
+ *
10309
+ * For uploads:
10310
+ *
10311
+ * - emit `{ progress }` values from `0` to `100`
10312
+ * - when the upload is complete, return the final `collectedFile`
10313
+ *
10314
+ * > The example above uses a simple POST and returns one final result with `progress: 100`.
10315
+ * If you need a progress bar, use `HttpClient` with `reportProgress: true` to emit intermediate progress values.
10316
+ *
10317
+ * #### **Validation and file type rules**
10318
+ *
10319
+ * A file is rejected if:
10320
+ *
10321
+ * - its type is not allowed
10322
+ * - it is too large
10323
+ * - its name does not match the expected pattern
10324
+ *
10325
+ * You can provide custom error messages in the config.
10326
+ *
10327
+ * For file type validation, use one of these approaches:
10328
+ *
10329
+ * - `allowedFileTypes`
10330
+ * - `allowedMimeTypes` together with `allowedFileNamePattern`
10331
+ *
10332
+ * > Do not mix both approaches unless they describe the same rules.
10333
+ * > If the settings do not match, the component logs an error and does not use the config.
10334
+ *
10335
+ * #### **Upload behavior**
10336
+ *
10337
+ * Upload is triggered differently depending on where the component is used:
10338
+ *
10339
+ * - **outside a `QdSection`**: the component shows its own add button
10340
+ * - **inside a `QdSection`**: the component listens to the section action and opens the file picker when `addNew` is triggered
10341
+ *
10342
+ * In `readonly` or `viewonly` mode, upload and delete are disabled.
10343
+ *
10344
+ * If the component is connected to operation mode changes through the event broker,
10345
+ * `viewonly` can also change dynamically.
10346
+ *
10347
+ * #### **Download**
10348
+ *
10349
+ * Files can be downloaded directly from their `downloadUrl`.
10350
+ *
10351
+ * If your application needs authorization or custom download logic,
10352
+ * handle the download through your backend or file manager.
10277
10353
  */
10278
10354
  declare class QdFileCollectorComponent implements OnInit, OnChanges, OnDestroy {
10279
10355
  private readonly sectionActionService;
@@ -10299,7 +10375,7 @@ declare class QdFileCollectorComponent implements OnInit, OnChanges, OnDestroy {
10299
10375
  ngOnInit(): void;
10300
10376
  ngOnChanges(changes: SimpleChanges): void;
10301
10377
  ngOnDestroy(): void;
10302
- handleFiles(event: any): void;
10378
+ handleFiles(event: Event): void;
10303
10379
  clickFileInput(): void;
10304
10380
  private initializeConfig;
10305
10381
  private validateConfig;
@@ -10331,8 +10407,8 @@ declare const QD_FILE_MANAGER_TOKEN: InjectionToken<string>;
10331
10407
  declare class QdFileCollectorAllowedFilesDescriptionComponent {
10332
10408
  private readonly fileCollectorService;
10333
10409
  get allowedFileTypes(): QdFileType[];
10334
- get maxFileSizeInBytes(): number;
10335
- get allowedFilesDescriptionI18n(): string;
10410
+ get maxFileSizeInBytes(): number | undefined;
10411
+ get allowedFilesDescriptionI18n(): string | undefined;
10336
10412
  private get config();
10337
10413
  static ɵfac: i0.ɵɵFactoryDeclaration<QdFileCollectorAllowedFilesDescriptionComponent, never>;
10338
10414
  static ɵcmp: i0.ɵɵComponentDeclaration<QdFileCollectorAllowedFilesDescriptionComponent, "qd-file-collector-allowed-files-description", never, {}, {}, never, never, false, never>;
@@ -10342,7 +10418,7 @@ declare class QdFileCollectorItemComponent {
10342
10418
  progress: number;
10343
10419
  newlyUploaded: boolean;
10344
10420
  collectedFile: QdCollectedFile;
10345
- error: QdUploadError;
10421
+ error: QdUploadError | undefined;
10346
10422
  readonly: boolean;
10347
10423
  viewonly: boolean;
10348
10424
  downloadFilesWithHttpClient: boolean;
@@ -10375,14 +10451,13 @@ declare class QdFileCollectorItemToolsComponent {
10375
10451
  private httpClient;
10376
10452
  progress: number;
10377
10453
  collectedFile: QdCollectedFile;
10378
- error: QdUploadError;
10454
+ error: QdUploadError | undefined;
10379
10455
  readonly: boolean;
10380
10456
  viewonly: boolean;
10381
10457
  downloadFilesWithHttpClient: boolean;
10382
10458
  testId: string;
10383
10459
  get dataTestId(): string;
10384
- canDownload(): boolean;
10385
- downloadFile(event: any): void;
10460
+ downloadFile(event: Event): void;
10386
10461
  deleteFile(): void;
10387
10462
  static ɵfac: i0.ɵɵFactoryDeclaration<QdFileCollectorItemToolsComponent, never>;
10388
10463
  static ɵcmp: i0.ɵɵComponentDeclaration<QdFileCollectorItemToolsComponent, "qd-file-collector-item-tools", never, { "progress": { "alias": "progress"; "required": false; }; "collectedFile": { "alias": "collectedFile"; "required": false; }; "error": { "alias": "error"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "viewonly": { "alias": "viewonly"; "required": false; }; "downloadFilesWithHttpClient": { "alias": "downloadFilesWithHttpClient"; "required": false; }; "testId": { "alias": "data-test-id"; "required": true; }; }, {}, never, never, false, never>;
@@ -10397,7 +10472,7 @@ declare class QdFileCollectorDialogComponent {
10397
10472
  uploadFiles(files: File[]): void;
10398
10473
  close(): void;
10399
10474
  isCloseButtonDisabled(): boolean;
10400
- private _isFileUploadCompleted;
10475
+ private isFileUploadCompleted;
10401
10476
  static ɵfac: i0.ɵɵFactoryDeclaration<QdFileCollectorDialogComponent, never>;
10402
10477
  static ɵcmp: i0.ɵɵComponentDeclaration<QdFileCollectorDialogComponent, "qd-file-collector-dialog", never, {}, {}, never, never, false, never>;
10403
10478
  }
@@ -10405,17 +10480,20 @@ declare class QdFileCollectorDialogComponent {
10405
10480
  declare class QdFileCollectorDialogItemComponent {
10406
10481
  progress: number;
10407
10482
  collectedFile: QdCollectedFile;
10408
- error: QdUploadError;
10483
+ error: QdUploadError | undefined;
10484
+ testId: string;
10485
+ get hostTestId(): string;
10409
10486
  get isSuccessful(): boolean;
10410
10487
  get hasError(): boolean;
10411
- canUpload(): boolean;
10412
10488
  static ɵfac: i0.ɵɵFactoryDeclaration<QdFileCollectorDialogItemComponent, never>;
10413
- static ɵcmp: i0.ɵɵComponentDeclaration<QdFileCollectorDialogItemComponent, "qd-file-collector-dialog-item", never, { "progress": { "alias": "progress"; "required": false; }; "collectedFile": { "alias": "collectedFile"; "required": false; }; "error": { "alias": "error"; "required": false; }; }, {}, never, never, false, never>;
10489
+ static ɵcmp: i0.ɵɵComponentDeclaration<QdFileCollectorDialogItemComponent, "qd-file-collector-dialog-item", never, { "progress": { "alias": "progress"; "required": false; }; "collectedFile": { "alias": "collectedFile"; "required": false; }; "error": { "alias": "error"; "required": false; }; "testId": { "alias": "data-test-id"; "required": true; }; }, {}, never, never, false, never>;
10414
10490
  }
10415
10491
 
10416
10492
  declare class QdFileCollectorDialogItemProgressComponent implements OnInit, OnDestroy, OnChanges {
10417
10493
  progress: number;
10418
- error: QdUploadError;
10494
+ error: QdUploadError | undefined;
10495
+ testId: string;
10496
+ get hostTestId(): string;
10419
10497
  private _uploadStateSubject;
10420
10498
  private _destroyed$;
10421
10499
  uploadState$: rxjs.Observable<QdUploadProgressState>;
@@ -10428,19 +10506,21 @@ declare class QdFileCollectorDialogItemProgressComponent implements OnInit, OnDe
10428
10506
  private getUploadState;
10429
10507
  protected readonly QdUploadState: typeof QdUploadProgressState;
10430
10508
  static ɵfac: i0.ɵɵFactoryDeclaration<QdFileCollectorDialogItemProgressComponent, never>;
10431
- static ɵcmp: i0.ɵɵComponentDeclaration<QdFileCollectorDialogItemProgressComponent, "qd-file-collector-dialog-item-progress", never, { "progress": { "alias": "progress"; "required": false; }; "error": { "alias": "error"; "required": false; }; }, {}, never, never, false, never>;
10509
+ static ɵcmp: i0.ɵɵComponentDeclaration<QdFileCollectorDialogItemProgressComponent, "qd-file-collector-dialog-item-progress", never, { "progress": { "alias": "progress"; "required": false; }; "error": { "alias": "error"; "required": false; }; "testId": { "alias": "data-test-id"; "required": true; }; }, {}, never, never, false, never>;
10432
10510
  }
10433
10511
 
10434
10512
  declare class QdFileCollectorDialogItemErrorComponent {
10435
10513
  private readonly fileCollectorService;
10436
10514
  error: QdUploadError;
10515
+ testId: string;
10516
+ get hostTestId(): string;
10437
10517
  protected readonly QdUploadErrorType: typeof QdUploadErrorType;
10438
- get maxFileSizeInBytes(): number;
10439
- get invalidMimeTypeErrorMessageI18n(): string;
10440
- get invalidFileNameErrorMessageI18n(): string;
10518
+ get maxFileSizeInBytes(): number | undefined;
10519
+ get invalidMimeTypeErrorMessageI18n(): string | undefined;
10520
+ get invalidFileNameErrorMessageI18n(): string | undefined;
10441
10521
  private get config();
10442
10522
  static ɵfac: i0.ɵɵFactoryDeclaration<QdFileCollectorDialogItemErrorComponent, never>;
10443
- static ɵcmp: i0.ɵɵComponentDeclaration<QdFileCollectorDialogItemErrorComponent, "qd-file-collector-dialog-item-error", never, { "error": { "alias": "error"; "required": false; }; }, {}, never, never, false, never>;
10523
+ static ɵcmp: i0.ɵɵComponentDeclaration<QdFileCollectorDialogItemErrorComponent, "qd-file-collector-dialog-item-error", never, { "error": { "alias": "error"; "required": false; }; "testId": { "alias": "data-test-id"; "required": true; }; }, {}, never, never, false, never>;
10444
10524
  }
10445
10525
 
10446
10526
  declare class QdFileDeleteDialogComponent {
@@ -13062,6 +13142,7 @@ declare class QdPageComponent<T extends object> implements OnInit, OnChanges, Af
13062
13142
  projectionGuardMessage: string;
13063
13143
  private _isInitialized;
13064
13144
  private _destroyed$;
13145
+ private _cancelSubmitValidation$;
13065
13146
  get isControlPanelVisible(): boolean;
13066
13147
  get isControlPanelBroad(): boolean;
13067
13148
  get hasNavigation(): boolean;
@@ -13218,6 +13299,7 @@ declare class QdPageObjectHeaderComponent<T extends object> implements OnInit, O
13218
13299
  private _pageObjectDataSubject;
13219
13300
  private _isLoadingSubject;
13220
13301
  private _customActionsSubject;
13302
+ private _customActionsSub?;
13221
13303
  private _destroyed$;
13222
13304
  private _availableContexts;
13223
13305
  pageObjectData$: Observable<T>;
@@ -13264,6 +13346,7 @@ declare class QdPageObjectHeaderComponent<T extends object> implements OnInit, O
13264
13346
  private setupResolverTrigger;
13265
13347
  private initContexts;
13266
13348
  private updateCustomActions;
13349
+ private subscribeToViewOnlyMode;
13267
13350
  private getCustomActionsByMode;
13268
13351
  private openCancelDialog;
13269
13352
  static ɵfac: i0.ɵɵFactoryDeclaration<QdPageObjectHeaderComponent<any>, never>;
@@ -17251,4 +17334,4 @@ declare class QdUiModule {
17251
17334
  declare const APP_ENVIRONMENT: InjectionToken<QdAppEnvironment>;
17252
17335
 
17253
17336
  export { APP_ENVIRONMENT, AVAILABLE_ICONS, BACKEND_ERROR_CODES, MockLocaleDatePipe, NavigationTileComponent, NavigationTilesComponent, QD_DIALOG_CONFIRMATION_RESOLVER_TOKEN, QD_FILE_MANAGER_TOKEN, QD_FILE_UPLOAD_MANAGER_TOKEN, QD_FORM_OPTIONS_RESOLVER, QD_PAGE_OBJECT_RESOLVER_TOKEN, QD_PAGE_STEP_RESOLVER_TOKEN, QD_POPOVER_TOP_FIRST, QD_SAFE_BOTTOM_OFFSET, QD_TABLE_DATA_RESOLVER_TOKEN, QD_UPLOAD_HTTP_OPTIONS, QdButtonComponent, QdButtonGhostDirective, QdButtonGridComponent, QdButtonLinkDirective, QdButtonModule, QdButtonStackButtonComponent, QdButtonStackComponent, QdCheckboxChipsComponent, QdCheckboxComponent, QdCheckboxesComponent, QdChipComponent, QdChipModule, QdColumnAutoFillDirective, QdColumnBreakBeforeDirective, QdColumnDirective, QdColumnDisableResponsiveColspansDirective, QdColumnFullGridWidthDirective, QdColumnNextInSameRowDirective, QdColumnsDirective, QdColumnsDisableAutoFillDirective, QdColumnsDisableResponsiveColspansDirective, QdColumnsMaxDirective, QdCommentsComponent, QdCommentsModule, QdConnectFormStateToPageDirective, QdConnectorTableContextDirective, QdConnectorTableFilterDirective, QdConnectorTableSearchDirective, QdContactCardComponent, QdContactCardModule, QdContainerPairsCaptionComponent, QdContainerPairsContainerComponent, QdContainerPairsHeaderComponent, QdContainerPairsItemComponent, QdContainerPairsValueComponent, QdContextService, QdCoreModule, QdDatepickerComponent, QdDialogActionComponent, QdDialogAuthSessionEndComponent, QdDialogAuthSessionEndService, QdDialogComponent, QdDialogConfirmationComponent, QdDialogConfirmationErrorDirective, QdDialogConfirmationInfoDirective, QdDialogConfirmationSuccessDirective, QdDialogModule, QdDialogRecordStepperComponent, QdDialogService, QdDialogSize, QdDisabledDirective, QdDropdownComponent, QdFileCollectorComponent, QdFileCollectorModule, QdFileSizePipe$1 as QdFileSizePipe, QdFileUploadComponent, QdFileUploadService, QdFilterComponent, QdFilterFormItemsComponent, QdFilterModule, QdFilterRestParamBuilder, QdFilterService, QdFormArray, QdFormBuilder, QdFormControl, QdFormGroup, QdFormModule, QdGridComponent, QdGridModule, QdHorizontalPairsCaptionComponent, QdHorizontalPairsComponent, QdHorizontalPairsItemComponent, QdHorizontalPairsValueComponent, QdIconButtonComponent, QdIconComponent, QdIconModule, QdImageComponent, QdImageModule, QdIndeterminateProgressBarComponent, QdInputComponent, QdListModule, QdMenuButtonComponent, QdMockBreakpointService, QdMockButtonComponent, QdMockButtonGhostDirective, QdMockButtonGridComponent, QdMockButtonLinkDirective, QdMockButtonModule, QdMockButtonStackButtonComponent, QdMockButtonStackComponent, QdMockCalendarComponent, QdMockCheckboxChipsComponent, QdMockCheckboxComponent, QdMockCheckboxesComponent, QdMockChipComponent, QdMockChipModule, QdMockColumnDirective, QdMockColumnsDirective, QdMockContactCardComponent, QdMockContactCardModule, QdMockContainerPairsCaptionComponent, QdMockContainerPairsContainerComponent, QdMockContainerPairsHeaderComponent, QdMockContainerPairsItemComponent, QdMockContainerPairsValueComponent, QdMockCoreModule, QdMockCounterBadgeComponent, QdMockDatepickerComponent, QdMockDisabledDirective, QdMockDropdownComponent, QdMockFileCollectorComponent, QdMockFileCollectorModule, QdMockFilterCategoryBooleanComponent, QdMockFilterCategoryComponent, QdMockFilterCategoryDateComponent, QdMockFilterCategoryDateRangeComponent, QdMockFilterCategoryFreeTextComponent, QdMockFilterCategorySelectComponent, QdMockFilterComponent, QdMockFilterFormItemsComponent, QdMockFilterItemBooleanComponent, QdMockFilterItemDateComponent, QdMockFilterItemDateRangeComponent, QdMockFilterItemFreeTextComponent, QdMockFilterItemMultiSelectComponent, QdMockFilterItemSingleSelectComponent, QdMockFilterModule, QdMockFilterService, QdMockFormErrorComponent, QdMockFormGroupErrorComponent, QdMockFormHintComponent, QdMockFormLabelComponent, QdMockFormReadonlyComponent, QdMockFormViewonlyComponent, QdMockFormsModule, QdMockGridModule, QdMockIconButtonComponent, QdMockIconComponent, QdMockIconModule, QdMockImageComponent, QdMockImageModule, QdMockIndeterminateProgressBarComponent, QdMockInputComponent, QdMockListModule, QdMockNavigationTileComponent, QdMockNavigationTilesComponent, QdMockNavigationTilesModule, QdMockNotificationComponent, QdMockNotificationContentComponent, QdMockNotificationsComponent, QdMockNotificationsModule, QdMockNotificationsService, QdMockPageComponent, QdMockPageModule, QdMockPercentageProgressBarComponent, QdMockPinCodeComponent, QdMockPlaceHolderModule, QdMockPopoverOnClickDirective, QdMockProgressBarModule, QdMockQdPlaceHolderComponent, QdMockRadioButtonsComponent, QdMockRwdDisabledDirective, QdMockSearchComponent, QdMockSearchModule, QdMockSectionComponent, QdMockSectionModule, QdMockShellComponent, QdMockShellFooterComponent, QdMockShellHeaderBannerComponent, QdMockShellHeaderComponent, QdMockShellHeaderSearchComponent, QdMockShellHeaderWidgetComponent, QdMockShellModule, QdMockShellToolbarComponent, QdMockShellToolbarItemComponent, QdMockStatusIndicatorCaptionComponent, QdMockStatusIndicatorComponent, QdMockStatusIndicatorItemComponent, QdMockStatusIndicatorModule, QdMockStatusPairsCaptionComponent, QdMockStatusPairsComponent, QdMockStatusPairsErrorComponent, QdMockStatusPairsItemComponent, QdMockStatusPairsValueComponent, QdMockSwitchComponent, QdMockSwitchesComponent, QdMockTableComponent, QdMockTableModule, QdMockTextSectionComponent, QdMockTextSectionHeadlineComponent, QdMockTextSectionModule, QdMockTextSectionParagraphComponent, QdMockTextareaComponent, QdMockTileButtonListComponent, QdMockTileComponent, QdMockTileTextListComponent, QdMockTileTextListItemComponent, QdMockTileTitleComponent, QdMockTilesContainerComponent, QdMockTilesContainerTitleComponent, QdMockTilesModule, QdMockTranslatePipe, QdMockVisuallyHiddenDirective, QdMultiInputComponent, QdNavigationTilesModule, QdNotificationComponent, QdNotificationContentComponent, QdNotificationsComponent, QdNotificationsHttpInterceptorService, QdNotificationsModule, QdNotificationsService, QdNotificationsSnackbarListenerDirective, QdPageComponent, QdPageControlPanelComponent, QdPageFooterComponent, QdPageFooterCustomContentDirective, QdPageInfoBannerComponent, QdPageModule, QdPageStepComponent, QdPageStepperAdapterDirective, QdPageStepperComponent, QdPageStepperModule, QdPageStoreService, QdPageTabComponent, QdPageTabsAdapterDirective, QdPageTabsComponent, QdPageTabsModule, QdPanelSectionActionsComponent, QdPanelSectionComponent, QdPanelSectionModule, QdPanelSectionStatusComponent, QdPanelSectionTextParagraphComponent, QdPendingChangesGuardDirective, QdPercentageProgressBarComponent, QdPinCodeComponent, QdPlaceHolderComponent, QdPlaceHolderModule, QdPlaceholderPipe, QdProgressBarModule, QdProjectionGuardComponent, QdPushEventsService, QdQuickEditComponent, QdQuickEditModule, QdRadioButtonsComponent, QdRichtextComponent, QdRwdDisabledDirective, QdSearchComponent, QdSearchModule, QdSectionAdapterDirective, QdSectionComponent, QdSectionModule, QdSectionToolbarComponent, QdShellComponent, QdShellModule, QdSortDirection, QdSpinnerComponent, QdSpinnerModule, QdStatusIndicatorComponent, QdStatusIndicatorModule, QdStatusPairsCaptionComponent, QdStatusPairsComponent, QdStatusPairsErrorComponent, QdStatusPairsItemComponent, QdStatusPairsValueComponent, QdSubgridComponent, QdSwitchComponent, QdSwitchesComponent, QdTableComponent, QdTableModule, QdTableSpringTools, QdTextSectionComponent, QdTextSectionHeadlineComponent, QdTextSectionModule, QdTextSectionParagraphComponent, QdTextareaComponent, QdTileButtonListComponent, QdTileComponent, QdTileTextListComponent, QdTileTextListItemComponent, QdTileTitleComponent, QdTilesComponent, QdTilesModule, QdTilesTitleComponent, QdTooltipAtIntersectionDirective, QdTreeComponent, QdTreeModule, QdTreeRowExpanderService, QdUiMockModule, QdUiModule, QdUploadErrorType, QdValidators, QdViewportAdaptiveDirective, QdVisuallyHiddenDirective, chipColorDefault, updateHtmlLang };
17254
- export type { CustomField, QdAppEnvironment, QdButtonAdditionalInfo, QdButtonColor, QdChipColor, QdCollectedFile, QdComment, QdCommentAuthorFieldConfig, QdCommentCustomFieldConfig, QdCommentDeletedMeta, QdCommentRichtextConfig, QdCommentSecondaryActionConfig, QdCommentsAddButtonConfig, QdCommentsAddConfig, QdCommentsConfig, QdContactAddress, QdContactData, QdContactDataCustomField, QdContactDataCustomFieldEntry, QdContactDataCustomTranslatedEntry, QdContactFunction, QdContactPerson, QdContactTag, QdContextSelection, QdDependentFilterCategory, QdDialogAuthSessionEndResult, QdDialogConfig, QdDialogConfirmationConfig, QdDialogConfirmationResolver, QdDialogData, QdDialogTitle, QdFileCollectorConfig, QdFileManager, QdFileUploadManager, QdFilterCategory, QdFilterConfigData, QdFilterItem, QdFilterPostBodyCategory, QdFilterPostBodyData, QdFormCheckboxChipsConfiguration, QdFormCheckboxesConfiguration, QdFormConfiguration, QdFormDatepickerConfiguration, QdFormDropdownConfiguration, QdFormFileUploadConfiguration, QdFormHint, QdFormInput, QdFormInputConfiguration, QdFormLabel, QdFormMultiInputConfiguration, QdFormOption, QdFormOptionsResolver, QdFormPinCodeConfiguration, QdFormRadioButtonsConfiguration, QdFormSwitchesConfiguration, QdFormTextAreaConfiguration, QdGridConfig, QdInputValue, QdInputValueWithUnit, QdInspectOperationMode, QdMenuButtonConfig, QdMultiInputOption, QdNotification, QdNotificationType, QdPageConfig, QdPageConfigCreate, QdPageConfigCustom, QdPageConfigInspect, QdPageConfigOverview, QdPageControlPanelConfig, QdPageInfoBannerConfig, QdPageObjectResolver, QdPageObjectResolverConfig, QdPageSelectedContext, QdPageStepConfig, QdPageStepResolver, QdPageStepperConfig, QdPageTabConfig, QdPageTabCounters, QdPageTabsConfig, QdPageTypeCreateConfig, QdPageTypeCustomConfig, QdPageTypeInspectConfig, QdPageTypeOverviewConfig, QdPlaceholder, QdQuickEditConfig, QdQuickEditData, QdRichtextConfig, QdSearchOptions, QdSearchPostBodyData, QdSectionActionType, QdSectionConfig, QdShellConfig, QdStatusIndicator, QdSwitchOption, QdTabSelectionEvent, QdTableChipDataValue, QdTableConfig, QdTableConfigColumn, QdTableConfigSelection, QdTableContentDataChip, QdTableContentDataChipObject, QdTableData, QdTableDataResolver, QdTableDataResolverProps, QdTableDataRow, QdTableDataValue, QdTableEmptyStateView, QdTableOptionalRefreshingEventTypes, QdTablePagination, QdTablePrimaryAction, QdTableRecentSecondaryAction, QdTableResolvedData, QdTableRowIdentifier, QdTableRowIndex, QdTableRowUid, QdTableSecondaryAction, QdTableSelectedRow, QdTableSelectedRows, QdTableStatusDataValue, QdTileConfig, QdTilesConfig, QdTooltip, QdTranslatable, QdTranslation, QdTreeConfig, QdTreeData, QdTreeDataRow, QdTreeDataValue, QdUploadError, QdUploadProgress };
17337
+ export type { CustomField, QdAppEnvironment, QdButtonAdditionalInfo, QdButtonColor, QdChipColor, QdCollectedFile, QdComment, QdCommentAuthorFieldConfig, QdCommentCustomFieldConfig, QdCommentDeletedMeta, QdCommentRichtextConfig, QdCommentSecondaryActionConfig, QdCommentsAddButtonConfig, QdCommentsAddConfig, QdCommentsConfig, QdContactAddress, QdContactData, QdContactDataCustomField, QdContactDataCustomFieldEntry, QdContactDataCustomTranslatedEntry, QdContactFunction, QdContactPerson, QdContactTag, QdContextSelection, QdDependentFilterCategory, QdDialogAuthSessionEndResult, QdDialogConfig, QdDialogConfirmationConfig, QdDialogConfirmationResolver, QdDialogData, QdDialogTitle, QdFileCollectorConfig, QdFileManager, QdFileType, QdFileUploadManager, QdFilterCategory, QdFilterConfigData, QdFilterItem, QdFilterPostBodyCategory, QdFilterPostBodyData, QdFormCheckboxChipsConfiguration, QdFormCheckboxesConfiguration, QdFormConfiguration, QdFormDatepickerConfiguration, QdFormDropdownConfiguration, QdFormFileUploadConfiguration, QdFormHint, QdFormInput, QdFormInputConfiguration, QdFormLabel, QdFormMultiInputConfiguration, QdFormOption, QdFormOptionsResolver, QdFormPinCodeConfiguration, QdFormRadioButtonsConfiguration, QdFormSwitchesConfiguration, QdFormTextAreaConfiguration, QdGridConfig, QdInputValue, QdInputValueWithUnit, QdInspectOperationMode, QdMenuButtonConfig, QdMultiInputOption, QdNotification, QdNotificationType, QdPageConfig, QdPageConfigCreate, QdPageConfigCustom, QdPageConfigInspect, QdPageConfigOverview, QdPageControlPanelConfig, QdPageInfoBannerConfig, QdPageObjectResolver, QdPageObjectResolverConfig, QdPageSelectedContext, QdPageStepConfig, QdPageStepResolver, QdPageStepperConfig, QdPageTabConfig, QdPageTabCounters, QdPageTabsConfig, QdPageTypeCreateConfig, QdPageTypeCustomConfig, QdPageTypeInspectConfig, QdPageTypeOverviewConfig, QdPlaceholder, QdQuickEditConfig, QdQuickEditData, QdRichtextConfig, QdSearchOptions, QdSearchPostBodyData, QdSectionActionType, QdSectionConfig, QdShellConfig, QdStatusIndicator, QdSwitchOption, QdTabSelectionEvent, QdTableChipDataValue, QdTableConfig, QdTableConfigColumn, QdTableConfigSelection, QdTableContentDataChip, QdTableContentDataChipObject, QdTableData, QdTableDataResolver, QdTableDataResolverProps, QdTableDataRow, QdTableDataValue, QdTableEmptyStateView, QdTableOptionalRefreshingEventTypes, QdTablePagination, QdTablePrimaryAction, QdTableRecentSecondaryAction, QdTableResolvedData, QdTableRowIdentifier, QdTableRowIndex, QdTableRowUid, QdTableSecondaryAction, QdTableSelectedRow, QdTableSelectedRows, QdTableStatusDataValue, QdTileConfig, QdTilesConfig, QdTooltip, QdTranslatable, QdTranslation, QdTreeConfig, QdTreeData, QdTreeDataRow, QdTreeDataValue, QdUploadError, QdUploadProgress };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quadrel-enterprise-ui/framework",
3
- "version": "20.6.0",
3
+ "version": "20.6.1",
4
4
  "exports": {
5
5
  "./jest-preset": "./jest-preset.js",
6
6
  "./package.json": {
@@ -156,10 +156,10 @@
156
156
  "i18n.qd.page.header.cancel": "Abbrechen",
157
157
  "i18n.qd.page.header.save": "Speichern",
158
158
  "i18n.qd.page.submit.invalidForm": "Die Daten wurden noch nicht vollständig erfasst.",
159
- "i18n.qd.page.cancel.confirmation.dialog.title": "Abbrechen bestätigen",
160
- "i18n.qd.page.cancel.confirmation.dialog.message": "Das Abbrechen führt zum Verlust ungespeicherter Änderungen. Sind Sie sicher, dass Sie fortfahren möchten?",
161
- "i18n.qd.page.cancel.confirmation.dialog.close": "Schliessen",
162
- "i18n.qd.page.cancel.confirmation.dialog.proceed": "Fortfahren",
159
+ "i18n.qd.page.cancel.confirmation.dialog.title": "Eingaben verwerfen?",
160
+ "i18n.qd.page.cancel.confirmation.dialog.message": "Sie haben nicht gespeicherte Eingaben. Wenn Sie diese verwerfen, gehen diese unwiderruflich verloren.",
161
+ "i18n.qd.page.cancel.confirmation.dialog.close": "Abbrechen",
162
+ "i18n.qd.page.cancel.confirmation.dialog.proceed": "Verwerfen",
163
163
  "i18n.qd.page.context.button.change": "Ändern",
164
164
  "i18n.qd.page.context.button.select": "Auswählen",
165
165
  "i18n.qd.page.context.noSelectionPlaceholder": "Keine Auswahl",
@@ -155,10 +155,10 @@
155
155
  "i18n.qd.page.header.cancel": "Cancel",
156
156
  "i18n.qd.page.header.save": "Save",
157
157
  "i18n.qd.page.submit.invalidForm": "The data has not yet been fully recorded.",
158
- "i18n.qd.page.cancel.confirmation.dialog.title": "Confirm Cancel",
159
- "i18n.qd.page.cancel.confirmation.dialog.message": "Canceling will result in loss of unsaved changes. Are you sure you want to continue?",
160
- "i18n.qd.page.cancel.confirmation.dialog.close": "Close",
161
- "i18n.qd.page.cancel.confirmation.dialog.proceed": "Proceed",
158
+ "i18n.qd.page.cancel.confirmation.dialog.title": "Discard entries?",
159
+ "i18n.qd.page.cancel.confirmation.dialog.message": "You have unsaved entries. If you discard them, they will be permanently lost.",
160
+ "i18n.qd.page.cancel.confirmation.dialog.close": "Cancel",
161
+ "i18n.qd.page.cancel.confirmation.dialog.proceed": "Discard",
162
162
  "i18n.qd.page.context.button.change": "Change",
163
163
  "i18n.qd.page.context.button.select": "Select",
164
164
  "i18n.qd.page.context.noSelectionPlaceholder": "No selection",
@@ -155,10 +155,10 @@
155
155
  "i18n.qd.page.header.cancel": "Annuler",
156
156
  "i18n.qd.page.header.save": "Sauvegarder",
157
157
  "i18n.qd.page.submit.invalidForm": "Les données n'ont pas encore été entièrement enregistrées.",
158
- "i18n.qd.page.cancel.confirmation.dialog.title": "Confirmer l'annulation",
159
- "i18n.qd.page.cancel.confirmation.dialog.message": "L'annulation entraînera la perte des modifications non enregistrées. Êtes-vous sûr de vouloir continuer ?",
160
- "i18n.qd.page.cancel.confirmation.dialog.close": "Fermer",
161
- "i18n.qd.page.cancel.confirmation.dialog.proceed": "Continuer",
158
+ "i18n.qd.page.cancel.confirmation.dialog.title": "Rejeter les entrées ?",
159
+ "i18n.qd.page.cancel.confirmation.dialog.message": "Vous avez des entrées non enregistrées. Si vous les rejetez, elles seront irrémédiablement perdues.",
160
+ "i18n.qd.page.cancel.confirmation.dialog.close": "Annuler",
161
+ "i18n.qd.page.cancel.confirmation.dialog.proceed": "Rejeter",
162
162
  "i18n.qd.page.context.button.change": "Changer",
163
163
  "i18n.qd.page.context.button.select": "Choisir",
164
164
  "i18n.qd.page.context.noSelectionPlaceholder": "Aucune sélection",
@@ -155,10 +155,10 @@
155
155
  "i18n.qd.page.header.cancel": "Annulla",
156
156
  "i18n.qd.page.header.save": "Salva",
157
157
  "i18n.qd.page.submit.invalidForm": "I dati non sono stati ancora completamente registrati.",
158
- "i18n.qd.page.cancel.confirmation.dialog.title": "Conferma annullamento",
159
- "i18n.qd.page.cancel.confirmation.dialog.message": "L'annullamento comporterà la perdita delle modifiche non salvate. Sei sicuro di voler continuare?",
160
- "i18n.qd.page.cancel.confirmation.dialog.close": "Chiudere",
161
- "i18n.qd.page.cancel.confirmation.dialog.proceed": "Procedi",
158
+ "i18n.qd.page.cancel.confirmation.dialog.title": "Eliminare i dati inseriti?",
159
+ "i18n.qd.page.cancel.confirmation.dialog.message": "Hai inserito dei dati che non sono stati salvati. Se li elimini, andranno persi irrevocabilmente.",
160
+ "i18n.qd.page.cancel.confirmation.dialog.close": "Annulla",
161
+ "i18n.qd.page.cancel.confirmation.dialog.proceed": "Elimina",
162
162
  "i18n.qd.page.context.button.change": "Modifica",
163
163
  "i18n.qd.page.context.button.select": "Scegliere",
164
164
  "i18n.qd.page.context.noSelectionPlaceholder": "Nessuna scelta",