@quadrel-enterprise-ui/framework 18.28.0 → 18.29.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.
@@ -5,8 +5,8 @@ import { DialogModule } from '@angular/cdk/dialog';
5
5
  import * as i1 from '@angular/common';
6
6
  import { CommonModule, NgFor, NgIf, NgClass, NgTemplateOutlet, AsyncPipe } from '@angular/common';
7
7
  import * as i3 from 'rxjs';
8
- import { BehaviorSubject, pairwise, ReplaySubject, Subject, throwError, of, merge, fromEvent, isObservable, NEVER, Observable, EMPTY, shareReplay, Subscription, distinctUntilChanged as distinctUntilChanged$1, debounce, timer, map as map$1, switchMap, startWith as startWith$1, debounceTime as debounceTime$1, takeUntil as takeUntil$1, asyncScheduler, firstValueFrom, combineLatest, concat, take as take$1, from, delay, first, scan, tap as tap$1, iif, delayWhen, combineLatestWith, withLatestFrom, async, filter as filter$1 } from 'rxjs';
9
- import { map, filter, catchError, debounceTime, takeUntil, startWith, distinctUntilChanged, concatMap, take, tap, observeOn, skip, delay as delay$1, mergeMap, pairwise as pairwise$1, switchMap as switchMap$1 } from 'rxjs/operators';
8
+ import { BehaviorSubject, pairwise, from, switchMap, map as map$1, Subject, ReplaySubject, throwError, of, merge, fromEvent, isObservable, NEVER, Observable, EMPTY, shareReplay, Subscription, distinctUntilChanged as distinctUntilChanged$1, debounce, timer, startWith as startWith$1, debounceTime as debounceTime$1, takeUntil as takeUntil$1, asyncScheduler, firstValueFrom, combineLatest, concat, take as take$1, delay, first, scan, tap as tap$1, iif, delayWhen, combineLatestWith, withLatestFrom, async, filter as filter$1 } from 'rxjs';
9
+ import { map, takeUntil, filter, catchError, debounceTime, startWith, distinctUntilChanged, concatMap, take, tap, observeOn, skip, delay as delay$1, mergeMap, pairwise as pairwise$1, switchMap as switchMap$1 } from 'rxjs/operators';
10
10
  import { v4 } from 'uuid';
11
11
  import * as i1$2 from '@ngx-translate/core';
12
12
  import { TranslateService, TranslateModule } from '@ngx-translate/core';
@@ -1136,11 +1136,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
1136
1136
 
1137
1137
  class QdDialogActionComponent {
1138
1138
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdDialogActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1139
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: QdDialogActionComponent, selector: "qd-dialog-action", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;justify-content:flex-end;padding:.5rem 1.5rem;border-top:2px solid rgb(213,213,213);background:#efefef;column-gap:.625rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1139
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: QdDialogActionComponent, selector: "qd-dialog-action", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;column-gap:.625rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1140
1140
  }
1141
1141
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdDialogActionComponent, decorators: [{
1142
1142
  type: Component,
1143
- args: [{ selector: 'qd-dialog-action', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;justify-content:flex-end;padding:.5rem 1.5rem;border-top:2px solid rgb(213,213,213);background:#efefef;column-gap:.625rem}\n"] }]
1143
+ args: [{ selector: 'qd-dialog-action', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;column-gap:.625rem}\n"] }]
1144
1144
  }] });
1145
1145
 
1146
1146
  /**
@@ -1153,6 +1153,54 @@ var QdDialogSize;
1153
1153
  QdDialogSize["FullWidth"] = "100%";
1154
1154
  })(QdDialogSize || (QdDialogSize = {}));
1155
1155
 
1156
+ class QdDialogChangeGuardService {
1157
+ _hasChanges = false;
1158
+ get hasPendingChanges() {
1159
+ return this._hasChanges;
1160
+ }
1161
+ setPendingChangesStatus(status) {
1162
+ this._hasChanges = status;
1163
+ }
1164
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdDialogChangeGuardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1165
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdDialogChangeGuardService, providedIn: 'root' });
1166
+ }
1167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdDialogChangeGuardService, decorators: [{
1168
+ type: Injectable,
1169
+ args: [{
1170
+ providedIn: 'root'
1171
+ }]
1172
+ }] });
1173
+
1174
+ class QdConfirmationDialogOpenerService {
1175
+ dialog;
1176
+ constructor(dialog) {
1177
+ this.dialog = dialog;
1178
+ }
1179
+ showCancelConfirmation(config) {
1180
+ return from(Promise.resolve().then(function () { return cancelDialog_component; }).then(m => m.QdCancelDialogComponent)).pipe(switchMap(component => {
1181
+ const dialogRef = this.open(component, {
1182
+ title: { i18n: 'i18n.qd.page.cancel.confirmation.dialog.title' },
1183
+ dialogSize: QdDialogSize.Small,
1184
+ data: config
1185
+ });
1186
+ return dialogRef.closed.pipe(map$1(result => !!result));
1187
+ }));
1188
+ }
1189
+ open(component, config) {
1190
+ config.panelClass = 'qd-custom-panel';
1191
+ config.width = config.dialogSize || QdDialogSize.Default;
1192
+ return this.dialog.open(component, config);
1193
+ }
1194
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdConfirmationDialogOpenerService, deps: [{ token: i1$1.Dialog }], target: i0.ɵɵFactoryTarget.Injectable });
1195
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdConfirmationDialogOpenerService, providedIn: 'root' });
1196
+ }
1197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdConfirmationDialogOpenerService, decorators: [{
1198
+ type: Injectable,
1199
+ args: [{
1200
+ providedIn: 'root'
1201
+ }]
1202
+ }], ctorParameters: () => [{ type: i1$1.Dialog }] });
1203
+
1156
1204
  /**
1157
1205
  * The **QdIconButton** can only display icons, in contrast to the **QdButton**. <br />
1158
1206
  * It is possible to bind it to either a `button` tag or to an `a` tag.
@@ -1206,7 +1254,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
1206
1254
  /**
1207
1255
  * **QdDialog** creating resonsive dialogs. Three different sizes are available.
1208
1256
  *
1209
- * Detailed migration guideline from QdModal to QdDialog: https://confluence.bit.admin.ch/display/DAZUIC/Migration+Dialoge
1210
1257
  *
1211
1258
  * * @see child component: **QdDialogAction**.
1212
1259
  *
@@ -1240,10 +1287,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
1240
1287
  * <button qdButton (click)="close('Yes')">Submit</button>
1241
1288
  * </qd-dialog-action>
1242
1289
  * </qd-dialog>
1243
- */
1290
+ *
1291
+ * **Example of MyModalComponent (Including Form Change Guard):**
1292
+ *
1293
+ * @example
1294
+ * <qd-dialog>
1295
+ * <form [formGroup]="myForm" qdPendingChangesGuard>
1296
+ * <input type="text" formControlName="name">
1297
+ * You have unsaved changes!
1298
+ * </form>
1299
+ * </qd-dialog>
1300
+ * */
1244
1301
  class QdDialogComponent {
1245
1302
  dialogRef;
1303
+ dialog;
1246
1304
  changeDetectorRef;
1305
+ dialogChangeGuard;
1247
1306
  body;
1248
1307
  infoBanners;
1249
1308
  get hasSectionsClass() {
@@ -1252,9 +1311,12 @@ class QdDialogComponent {
1252
1311
  config;
1253
1312
  hasSections;
1254
1313
  hasInfoBanner;
1255
- constructor(dialogRef, changeDetectorRef) {
1314
+ _destroyed$ = new Subject();
1315
+ constructor(dialogRef, dialog, changeDetectorRef, dialogChangeGuard) {
1256
1316
  this.dialogRef = dialogRef;
1317
+ this.dialog = dialog;
1257
1318
  this.changeDetectorRef = changeDetectorRef;
1319
+ this.dialogChangeGuard = dialogChangeGuard;
1258
1320
  }
1259
1321
  ngOnInit() {
1260
1322
  this.config = this.dialogRef.config;
@@ -1271,18 +1333,41 @@ class QdDialogComponent {
1271
1333
  this.changeDetectorRef.detectChanges();
1272
1334
  }
1273
1335
  close() {
1336
+ const hasPendingChanges = this.dialogChangeGuard.hasPendingChanges;
1337
+ if (hasPendingChanges) {
1338
+ this.dialog
1339
+ .showCancelConfirmation(this.config)
1340
+ .pipe(takeUntil(this._destroyed$))
1341
+ .subscribe(confirmed => {
1342
+ if (confirmed)
1343
+ this.dialogRef.close();
1344
+ });
1345
+ }
1346
+ else {
1347
+ if (this.config.cancel?.handler)
1348
+ this.config.cancel?.handler();
1349
+ this.dialogRef.close();
1350
+ }
1351
+ }
1352
+ primaryActionClicked() {
1353
+ if (this.config.primary?.handler)
1354
+ this.config.primary?.handler();
1274
1355
  this.dialogRef.close();
1275
1356
  }
1357
+ ngOnDestroy() {
1358
+ this._destroyed$.next();
1359
+ this._destroyed$.complete();
1360
+ }
1276
1361
  get isFullWidth() {
1277
1362
  return this.config.dialogSize === QdDialogSize.FullWidth;
1278
1363
  }
1279
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdDialogComponent, deps: [{ token: i1$1.DialogRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1280
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: QdDialogComponent, selector: "qd-dialog", host: { properties: { "class.full-width": "isFullWidth", "class.has-sections": "this.hasSectionsClass" } }, providers: [QdDialogComponent], viewQueries: [{ propertyName: "body", first: true, predicate: ["body"], descendants: true }, { propertyName: "infoBanners", first: true, predicate: ["banners"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"!isFullWidth\" class=\"dialog-header\">\n <div class=\"title-container\">\n {{ config?.title?.i18n | translate }}\n </div>\n <button\n *ngIf=\"!config?.hideCloseHeaderButton\"\n qdIconButton\n class=\"close\"\n color=\"secondary\"\n tabindex=\"-1\"\n (click)=\"close()\"\n >\n <qd-icon icon=\"timesLargeLight\"></qd-icon>\n </button>\n</div>\n\n<button\n *ngIf=\"!config?.hideCloseHeaderButton && isFullWidth\"\n qdIconButton\n class=\"close\"\n color=\"secondary\"\n tabindex=\"-1\"\n (click)=\"close()\"\n>\n <qd-icon icon=\"timesLargeLight\"></qd-icon>\n</button>\n\n<div class=\"wrapper-body\">\n <div [class.has-dialog-info-banners]=\"hasInfoBanner\" #banners>\n <ng-content select=\"qd-page-info-banner\"></ng-content>\n </div>\n <div class=\"body\" [class.full-width]=\"isFullWidth\" #body>\n <ng-content></ng-content>\n </div>\n</div>\n<ng-content select=\"qd-dialog-action\"></ng-content>\n", styles: ["qd-dialog{display:flex;width:100%;height:100%;flex-direction:column;background:#efefef}qd-dialog.full-width{position:relative;width:calc(100% - 3rem)!important;height:calc(100% - 3rem)!important;margin:1.5rem}qd-dialog.full-width .close{position:absolute;z-index:9999;top:1.25rem;right:1rem;color:#454545;cursor:pointer}.dialog-header{display:flex;height:3.125rem;flex-direction:row;align-items:center;justify-content:space-between;padding:.5rem 1.5rem;border-bottom:2px solid rgb(213,213,213);background:#fff}.dialog-header .title-container{display:block;color:#171717;font-weight:500}.dialog-header .close{cursor:pointer}.wrapper-body{overflow:auto;flex:1;background:#efefef}.wrapper-body .has-dialog-info-banners{padding:1rem 1.25rem .5rem;border-bottom:rgb(213,213,213) solid .0625rem;background-color:#fff}.wrapper-body .has-dialog-info-banners qd-page-info-banner:last-child{margin-bottom:0}.wrapper-body .body.full-width{height:100%}.wrapper-body .body:not(.full-width){max-height:80vh;padding:1rem 1.5rem}.wrapper-body .body:not(.full-width) qd-section{padding-right:1.5rem;padding-left:1.5rem}.wrapper-body .body:not(.full-width) qd-text-section{margin-right:0;margin-left:0}qd-dialog.has-sections .wrapper-body .body:not(.full-width){padding:0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: QdIconButtonComponent, selector: "button[qdIconButton], a[qdIconButton], button[qd-icon-button]", inputs: ["color", "data-test-id"] }, { kind: "component", type: QdIconComponent, selector: "qd-icon", inputs: ["icon"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
1364
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdDialogComponent, deps: [{ token: i1$1.DialogRef }, { token: QdConfirmationDialogOpenerService }, { token: i0.ChangeDetectorRef }, { token: QdDialogChangeGuardService }], target: i0.ɵɵFactoryTarget.Component });
1365
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: QdDialogComponent, selector: "qd-dialog", host: { properties: { "class.full-width": "isFullWidth", "class.has-sections": "this.hasSectionsClass" } }, providers: [QdDialogComponent], viewQueries: [{ propertyName: "body", first: true, predicate: ["body"], descendants: true }, { propertyName: "infoBanners", first: true, predicate: ["banners"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"!isFullWidth\" class=\"dialog-header\">\n <div class=\"title-container\">\n {{ config?.title?.i18n | translate }}\n </div>\n <button\n *ngIf=\"!config?.hideCloseHeaderButton\"\n qdIconButton\n class=\"close\"\n color=\"secondary\"\n tabindex=\"-1\"\n (click)=\"close()\"\n >\n <qd-icon icon=\"timesLargeLight\"></qd-icon>\n </button>\n</div>\n\n<button\n *ngIf=\"!config?.hideCloseHeaderButton && isFullWidth\"\n qdIconButton\n class=\"close\"\n color=\"secondary\"\n tabindex=\"-1\"\n (click)=\"close()\"\n>\n <qd-icon icon=\"timesLargeLight\"></qd-icon>\n</button>\n\n<div class=\"wrapper-body\">\n <div [class.has-dialog-info-banners]=\"hasInfoBanner\" #banners>\n <ng-content select=\"qd-page-info-banner\"></ng-content>\n </div>\n <div class=\"body\" [class.full-width]=\"isFullWidth\" #body>\n <ng-content></ng-content>\n </div>\n</div>\n\n<div class=\"qd-dialog-actions\">\n <button *ngIf=\"config.cancel\" qdButton qdButtonGhost color=\"secondary\" (click)=\"close()\">Cancel</button>\n <button *ngIf=\"config.primary\" qdButton (click)=\"primaryActionClicked()\">Submit as</button>\n <ng-content select=\"qd-dialog-action\"></ng-content>\n</div>\n", styles: ["qd-dialog{display:flex;width:100%;height:100%;flex-direction:column;background:#efefef}qd-dialog.full-width{position:relative;width:calc(100% - 3rem)!important;height:calc(100% - 3rem)!important;margin:1.5rem}qd-dialog.full-width .close{position:absolute;z-index:9999;top:1.25rem;right:1rem;color:#454545;cursor:pointer}.dialog-header{display:flex;height:3.125rem;flex-direction:row;align-items:center;justify-content:space-between;padding:.5rem 1.5rem;border-bottom:2px solid rgb(213,213,213);background:#fff}.dialog-header .title-container{display:block;color:#171717;font-weight:500}.dialog-header .close{cursor:pointer}.wrapper-body{overflow:auto;flex:1;background:#efefef}.wrapper-body .has-dialog-info-banners{padding:1rem 1.25rem .5rem;border-bottom:rgb(213,213,213) solid .0625rem;background-color:#fff}.wrapper-body .has-dialog-info-banners qd-page-info-banner:last-child{margin-bottom:0}.wrapper-body .body.full-width{height:100%}.wrapper-body .body:not(.full-width){max-height:80vh;padding:1rem 1.5rem}.wrapper-body .body:not(.full-width) qd-section{padding-right:1.5rem;padding-left:1.5rem}.wrapper-body .body:not(.full-width) qd-text-section{margin-right:0;margin-left:0}qd-dialog.has-sections .wrapper-body .body:not(.full-width){padding:0}.qd-dialog-actions{display:flex;justify-content:flex-end;padding:.5rem 1.5rem;border-top:2px solid rgb(213,213,213);background:#efefef;column-gap:.625rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: QdButtonComponent, selector: "button[qdButton], a[qdButton], button[qd-button]", inputs: ["disabled", "color", "icon", "data-test-id", "additionalInfo"] }, { kind: "directive", type: QdButtonGhostDirective, selector: "button[qdButtonGhost], a[qdButtonGhost]" }, { kind: "component", type: QdIconButtonComponent, selector: "button[qdIconButton], a[qdIconButton], button[qd-icon-button]", inputs: ["color", "data-test-id"] }, { kind: "component", type: QdIconComponent, selector: "qd-icon", inputs: ["icon"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
1281
1366
  }
1282
1367
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdDialogComponent, decorators: [{
1283
1368
  type: Component,
1284
- args: [{ selector: 'qd-dialog', host: { '[class.full-width]': 'isFullWidth' }, encapsulation: ViewEncapsulation.None, providers: [QdDialogComponent], template: "<div *ngIf=\"!isFullWidth\" class=\"dialog-header\">\n <div class=\"title-container\">\n {{ config?.title?.i18n | translate }}\n </div>\n <button\n *ngIf=\"!config?.hideCloseHeaderButton\"\n qdIconButton\n class=\"close\"\n color=\"secondary\"\n tabindex=\"-1\"\n (click)=\"close()\"\n >\n <qd-icon icon=\"timesLargeLight\"></qd-icon>\n </button>\n</div>\n\n<button\n *ngIf=\"!config?.hideCloseHeaderButton && isFullWidth\"\n qdIconButton\n class=\"close\"\n color=\"secondary\"\n tabindex=\"-1\"\n (click)=\"close()\"\n>\n <qd-icon icon=\"timesLargeLight\"></qd-icon>\n</button>\n\n<div class=\"wrapper-body\">\n <div [class.has-dialog-info-banners]=\"hasInfoBanner\" #banners>\n <ng-content select=\"qd-page-info-banner\"></ng-content>\n </div>\n <div class=\"body\" [class.full-width]=\"isFullWidth\" #body>\n <ng-content></ng-content>\n </div>\n</div>\n<ng-content select=\"qd-dialog-action\"></ng-content>\n", styles: ["qd-dialog{display:flex;width:100%;height:100%;flex-direction:column;background:#efefef}qd-dialog.full-width{position:relative;width:calc(100% - 3rem)!important;height:calc(100% - 3rem)!important;margin:1.5rem}qd-dialog.full-width .close{position:absolute;z-index:9999;top:1.25rem;right:1rem;color:#454545;cursor:pointer}.dialog-header{display:flex;height:3.125rem;flex-direction:row;align-items:center;justify-content:space-between;padding:.5rem 1.5rem;border-bottom:2px solid rgb(213,213,213);background:#fff}.dialog-header .title-container{display:block;color:#171717;font-weight:500}.dialog-header .close{cursor:pointer}.wrapper-body{overflow:auto;flex:1;background:#efefef}.wrapper-body .has-dialog-info-banners{padding:1rem 1.25rem .5rem;border-bottom:rgb(213,213,213) solid .0625rem;background-color:#fff}.wrapper-body .has-dialog-info-banners qd-page-info-banner:last-child{margin-bottom:0}.wrapper-body .body.full-width{height:100%}.wrapper-body .body:not(.full-width){max-height:80vh;padding:1rem 1.5rem}.wrapper-body .body:not(.full-width) qd-section{padding-right:1.5rem;padding-left:1.5rem}.wrapper-body .body:not(.full-width) qd-text-section{margin-right:0;margin-left:0}qd-dialog.has-sections .wrapper-body .body:not(.full-width){padding:0}\n"] }]
1285
- }], ctorParameters: () => [{ type: i1$1.DialogRef }, { type: i0.ChangeDetectorRef }], propDecorators: { body: [{
1369
+ args: [{ selector: 'qd-dialog', host: { '[class.full-width]': 'isFullWidth' }, encapsulation: ViewEncapsulation.None, providers: [QdDialogComponent], template: "<div *ngIf=\"!isFullWidth\" class=\"dialog-header\">\n <div class=\"title-container\">\n {{ config?.title?.i18n | translate }}\n </div>\n <button\n *ngIf=\"!config?.hideCloseHeaderButton\"\n qdIconButton\n class=\"close\"\n color=\"secondary\"\n tabindex=\"-1\"\n (click)=\"close()\"\n >\n <qd-icon icon=\"timesLargeLight\"></qd-icon>\n </button>\n</div>\n\n<button\n *ngIf=\"!config?.hideCloseHeaderButton && isFullWidth\"\n qdIconButton\n class=\"close\"\n color=\"secondary\"\n tabindex=\"-1\"\n (click)=\"close()\"\n>\n <qd-icon icon=\"timesLargeLight\"></qd-icon>\n</button>\n\n<div class=\"wrapper-body\">\n <div [class.has-dialog-info-banners]=\"hasInfoBanner\" #banners>\n <ng-content select=\"qd-page-info-banner\"></ng-content>\n </div>\n <div class=\"body\" [class.full-width]=\"isFullWidth\" #body>\n <ng-content></ng-content>\n </div>\n</div>\n\n<div class=\"qd-dialog-actions\">\n <button *ngIf=\"config.cancel\" qdButton qdButtonGhost color=\"secondary\" (click)=\"close()\">Cancel</button>\n <button *ngIf=\"config.primary\" qdButton (click)=\"primaryActionClicked()\">Submit as</button>\n <ng-content select=\"qd-dialog-action\"></ng-content>\n</div>\n", styles: ["qd-dialog{display:flex;width:100%;height:100%;flex-direction:column;background:#efefef}qd-dialog.full-width{position:relative;width:calc(100% - 3rem)!important;height:calc(100% - 3rem)!important;margin:1.5rem}qd-dialog.full-width .close{position:absolute;z-index:9999;top:1.25rem;right:1rem;color:#454545;cursor:pointer}.dialog-header{display:flex;height:3.125rem;flex-direction:row;align-items:center;justify-content:space-between;padding:.5rem 1.5rem;border-bottom:2px solid rgb(213,213,213);background:#fff}.dialog-header .title-container{display:block;color:#171717;font-weight:500}.dialog-header .close{cursor:pointer}.wrapper-body{overflow:auto;flex:1;background:#efefef}.wrapper-body .has-dialog-info-banners{padding:1rem 1.25rem .5rem;border-bottom:rgb(213,213,213) solid .0625rem;background-color:#fff}.wrapper-body .has-dialog-info-banners qd-page-info-banner:last-child{margin-bottom:0}.wrapper-body .body.full-width{height:100%}.wrapper-body .body:not(.full-width){max-height:80vh;padding:1rem 1.5rem}.wrapper-body .body:not(.full-width) qd-section{padding-right:1.5rem;padding-left:1.5rem}.wrapper-body .body:not(.full-width) qd-text-section{margin-right:0;margin-left:0}qd-dialog.has-sections .wrapper-body .body:not(.full-width){padding:0}.qd-dialog-actions{display:flex;justify-content:flex-end;padding:.5rem 1.5rem;border-top:2px solid rgb(213,213,213);background:#efefef;column-gap:.625rem}\n"] }]
1370
+ }], ctorParameters: () => [{ type: i1$1.DialogRef }, { type: QdConfirmationDialogOpenerService }, { type: i0.ChangeDetectorRef }, { type: QdDialogChangeGuardService }], propDecorators: { body: [{
1286
1371
  type: ViewChild,
1287
1372
  args: ['body']
1288
1373
  }], infoBanners: [{
@@ -20678,9 +20763,7 @@ class QdTableResolverService {
20678
20763
  // TODO: Add Error handling
20679
20764
  this.tableStoreService
20680
20765
  .selectDataResolutionCriteria$()
20681
- .pipe(takeUntil(this._destroyed$), distinctUntilChanged(isEqual$1), filter((resolutionCriteria) => {
20682
- return !!resolutionCriteria && this.shouldDataBeResolved(resolutionCriteria);
20683
- }), map(({ tableParams, connectorParams }) => {
20766
+ .pipe(takeUntil(this._destroyed$), distinctUntilChanged(isEqual$1), filter((resolutionCriteria) => !!resolutionCriteria && this.shouldDataBeResolved(resolutionCriteria)), map(({ tableParams, connectorParams }) => {
20684
20767
  return {
20685
20768
  ...(this._hasPagination ? tableParams : {}),
20686
20769
  ...connectorParams
@@ -20698,7 +20781,7 @@ class QdTableResolverService {
20698
20781
  this._refreshSubscription.unsubscribe();
20699
20782
  this._refreshSubscription = this.tableStoreService
20700
20783
  .selectDataResolutionCriteria$()
20701
- .pipe(first(), tap(() => this.tableStoreService.setRequestState(QdTableRequestState.PENDING)), switchMap(resolutionCriteria => this.tableDataResolver.resolve({
20784
+ .pipe(filter((criteria) => !!criteria), first(), tap(() => this.tableStoreService.setRequestState(QdTableRequestState.PENDING)), switchMap(resolutionCriteria => this.tableDataResolver.resolve({
20702
20785
  ...resolutionCriteria.tableParams,
20703
20786
  ...resolutionCriteria.connectorParams,
20704
20787
  ...(this._hasPagination && pageIndex !== undefined ? { page: pageIndex } : {})
@@ -21989,11 +22072,11 @@ class QdTableComponent {
21989
22072
  }
21990
22073
  ngOnInit() {
21991
22074
  this.tableStoreService.tableId = this.config.uid || v4();
21992
- this.resolverService.init(this.config.refreshOnLanguageChange, this.hasPagination);
21993
22075
  this.tableStoreService.init();
21994
22076
  this.tableStoreService.initTableState(this._data, this.hasResolver, this._connectors, this.hasPagination);
21995
22077
  this.tableStoreService.updateTableStateRecentSecondaryAction(undefined);
21996
22078
  this.tableStoreService.setupSort(this.config.columns);
22079
+ this.resolverService.init(this.config.refreshOnLanguageChange, this.hasPagination);
21997
22080
  this.data$ = this.tableStoreService.tableDataEntries$();
21998
22081
  this.mapColumnFillsWidth();
21999
22082
  this.validateConfig();
@@ -23709,6 +23792,111 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
23709
23792
  args: ['data-test-id']
23710
23793
  }] } });
23711
23794
 
23795
+ /**
23796
+ * @name PendingChangesGuardDirective
23797
+ * @description
23798
+ * Automatically monitors the status of form changes in QdDialogComponent (Reactive or Template-Driven Forms)
23799
+ * by comparing the current form value with its initial value.
23800
+ * * The directive automatically marks the form as `pristine` when all values
23801
+ * match the initial state, even if the form has been modified in between.
23802
+ * * @example
23803
+ * // Usage in the Dialog Content Component (Reactive Form):
23804
+ * // import { QdPendingChangesGuardDirective } from '...';
23805
+ * // template:
23806
+ * // <qd-dialog>
23807
+ * // <form [formGroup]="myForm" qdPendingChangesGuard>
23808
+ * // <input type="text" formControlName="name">
23809
+ * // </form>
23810
+ * // </qd-dialog>
23811
+ */
23812
+ class PendingChangesGuardDirective {
23813
+ ngForm;
23814
+ formGroupDirective;
23815
+ changeGuard;
23816
+ statusSubscription;
23817
+ initialValue;
23818
+ formGroup;
23819
+ constructor(ngForm, formGroupDirective, changeGuard) {
23820
+ this.ngForm = ngForm;
23821
+ this.formGroupDirective = formGroupDirective;
23822
+ this.changeGuard = changeGuard;
23823
+ if (!this.ngForm && !this.formGroupDirective) {
23824
+ console.error('QD-UI | QdPendingChangesGuardDirective - requires NgForm or FormGroupDirective to be present on the host element.');
23825
+ }
23826
+ }
23827
+ ngOnInit() {
23828
+ this.formGroup = this.ngForm?.form || this.formGroupDirective?.form;
23829
+ if (this.formGroup) {
23830
+ this.initialValue = { ...this.formGroup.value };
23831
+ this.updateStatus();
23832
+ this.statusSubscription = this.formGroup.valueChanges.subscribe(() => {
23833
+ this.updateStatus();
23834
+ });
23835
+ }
23836
+ }
23837
+ updateStatus() {
23838
+ if (!this.formGroup)
23839
+ return;
23840
+ const isPristine = isEqual(this.formGroup.value, this.initialValue);
23841
+ const hasChanges = !isPristine;
23842
+ this.changeGuard.setPendingChangesStatus(hasChanges);
23843
+ if (isPristine && this.formGroup.dirty) {
23844
+ this.formGroup.markAsPristine();
23845
+ }
23846
+ }
23847
+ ngOnDestroy() {
23848
+ this.statusSubscription?.unsubscribe();
23849
+ this.changeGuard.setPendingChangesStatus(false);
23850
+ }
23851
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PendingChangesGuardDirective, deps: [{ token: i1$4.NgForm, optional: true }, { token: i1$4.FormGroupDirective, optional: true }, { token: QdDialogChangeGuardService }], target: i0.ɵɵFactoryTarget.Directive });
23852
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.9", type: PendingChangesGuardDirective, selector: "[qdPendingChangesGuard]", ngImport: i0 });
23853
+ }
23854
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PendingChangesGuardDirective, decorators: [{
23855
+ type: Directive,
23856
+ args: [{
23857
+ selector: '[qdPendingChangesGuard]',
23858
+ standalone: false
23859
+ }]
23860
+ }], ctorParameters: () => [{ type: i1$4.NgForm, decorators: [{
23861
+ type: Optional
23862
+ }] }, { type: i1$4.FormGroupDirective, decorators: [{
23863
+ type: Optional
23864
+ }] }, { type: QdDialogChangeGuardService }] });
23865
+
23866
+ class QdCancelDialogComponent {
23867
+ dialogRef;
23868
+ i18n;
23869
+ handler;
23870
+ constructor(dialogRef) {
23871
+ this.dialogRef = dialogRef;
23872
+ }
23873
+ ngOnInit() {
23874
+ this.i18n =
23875
+ this.dialogRef.config.data?.cancel?.confirmationMessage?.i18n ??
23876
+ 'i18n.qd.page.cancel.confirmation.dialog.message';
23877
+ this.handler = this.dialogRef.config.data?.cancel?.handler;
23878
+ }
23879
+ close() {
23880
+ this.dialogRef.close(false);
23881
+ }
23882
+ confirm() {
23883
+ if (this.handler)
23884
+ this.handler();
23885
+ this.dialogRef.close(true);
23886
+ }
23887
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdCancelDialogComponent, deps: [{ token: i1$1.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
23888
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: QdCancelDialogComponent, selector: "qd-cancel-dialog", ngImport: i0, template: "<qd-dialog>\n <qd-text-section>\n <qd-text-section-paragraph>\n {{ i18n | translate }}\n </qd-text-section-paragraph>\n </qd-text-section>\n\n <qd-dialog-action>\n <button\n qdButton\n qdButtonGhost\n color=\"secondary\"\n (click)=\"close()\"\n data-test-id=\"dialog-cancel-confirmation-dialog-close\"\n >\n {{ \"i18n.qd.page.cancel.confirmation.dialog.close\" | translate }}\n </button>\n\n <button qdButton color=\"error\" (click)=\"confirm()\" data-test-id=\"dialog-cancel-confirmation-dialog-proceed\">\n {{ \"i18n.qd.page.cancel.confirmation.dialog.proceed\" | translate }}\n </button>\n </qd-dialog-action>\n</qd-dialog>\n", dependencies: [{ kind: "component", type: QdButtonComponent, selector: "button[qdButton], a[qdButton], button[qd-button]", inputs: ["disabled", "color", "icon", "data-test-id", "additionalInfo"] }, { kind: "directive", type: QdButtonGhostDirective, selector: "button[qdButtonGhost], a[qdButtonGhost]" }, { kind: "component", type: QdTextSectionComponent, selector: "qd-text-section" }, { kind: "component", type: QdTextSectionParagraphComponent, selector: "qd-text-section-paragraph" }, { kind: "component", type: QdDialogActionComponent, selector: "qd-dialog-action" }, { kind: "component", type: QdDialogComponent, selector: "qd-dialog" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }] });
23889
+ }
23890
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdCancelDialogComponent, decorators: [{
23891
+ type: Component,
23892
+ args: [{ selector: 'qd-cancel-dialog', standalone: false, template: "<qd-dialog>\n <qd-text-section>\n <qd-text-section-paragraph>\n {{ i18n | translate }}\n </qd-text-section-paragraph>\n </qd-text-section>\n\n <qd-dialog-action>\n <button\n qdButton\n qdButtonGhost\n color=\"secondary\"\n (click)=\"close()\"\n data-test-id=\"dialog-cancel-confirmation-dialog-close\"\n >\n {{ \"i18n.qd.page.cancel.confirmation.dialog.close\" | translate }}\n </button>\n\n <button qdButton color=\"error\" (click)=\"confirm()\" data-test-id=\"dialog-cancel-confirmation-dialog-proceed\">\n {{ \"i18n.qd.page.cancel.confirmation.dialog.proceed\" | translate }}\n </button>\n </qd-dialog-action>\n</qd-dialog>\n" }]
23893
+ }], ctorParameters: () => [{ type: i1$1.DialogRef }] });
23894
+
23895
+ var cancelDialog_component = /*#__PURE__*/Object.freeze({
23896
+ __proto__: null,
23897
+ QdCancelDialogComponent: QdCancelDialogComponent
23898
+ });
23899
+
23712
23900
  class QdDialogModule {
23713
23901
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
23714
23902
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: QdDialogModule, declarations: [QdDialogActionComponent,
@@ -23719,7 +23907,9 @@ class QdDialogModule {
23719
23907
  QdDialogConfirmationInfoDirective,
23720
23908
  QdDialogConfirmationSuccessDirective,
23721
23909
  QdDialogRecordStepperComponent,
23722
- QdPageDialogWithBreadcrumbsComponent], imports: [CommonModule,
23910
+ QdPageDialogWithBreadcrumbsComponent,
23911
+ PendingChangesGuardDirective,
23912
+ QdCancelDialogComponent], imports: [CommonModule,
23723
23913
  TranslateModule,
23724
23914
  RouterModule,
23725
23915
  DialogModule,
@@ -23736,7 +23926,8 @@ class QdDialogModule {
23736
23926
  QdDialogConfirmationComponent,
23737
23927
  QdDialogConfirmationErrorDirective,
23738
23928
  QdDialogConfirmationSuccessDirective,
23739
- QdDialogRecordStepperComponent] });
23929
+ QdDialogRecordStepperComponent,
23930
+ PendingChangesGuardDirective] });
23740
23931
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdDialogModule, imports: [CommonModule,
23741
23932
  TranslateModule,
23742
23933
  RouterModule,
@@ -23776,7 +23967,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
23776
23967
  QdDialogConfirmationInfoDirective,
23777
23968
  QdDialogConfirmationSuccessDirective,
23778
23969
  QdDialogRecordStepperComponent,
23779
- QdPageDialogWithBreadcrumbsComponent
23970
+ QdPageDialogWithBreadcrumbsComponent,
23971
+ PendingChangesGuardDirective,
23972
+ QdCancelDialogComponent
23780
23973
  ],
23781
23974
  exports: [
23782
23975
  QdDialogActionComponent,
@@ -23785,7 +23978,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
23785
23978
  QdDialogConfirmationComponent,
23786
23979
  QdDialogConfirmationErrorDirective,
23787
23980
  QdDialogConfirmationSuccessDirective,
23788
- QdDialogRecordStepperComponent
23981
+ QdDialogRecordStepperComponent,
23982
+ PendingChangesGuardDirective
23789
23983
  ]
23790
23984
  }]
23791
23985
  }] });
@@ -36597,11 +36791,11 @@ class AddCommentDialogComponent {
36597
36791
  };
36598
36792
  }
36599
36793
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AddCommentDialogComponent, deps: [{ token: i1$1.DialogRef }, { token: 'QdAuthenticationService', optional: true }], target: i0.ɵɵFactoryTarget.Component });
36600
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AddCommentDialogComponent, selector: "qd-comment-dialog", ngImport: i0, template: "<qd-dialog>\n <form [formGroup]=\"form\">\n <qd-input [config]=\"authorInputConfig\"></qd-input>\n <qd-dropdown *ngIf=\"customInputConfig\" [config]=\"customInputConfig\" [formControlName]=\"'custom'\"\n [attr.data-test-id]=\"'comment-custom'\"></qd-dropdown>\n\n <qd-richtext [config]=\"richtextConfig\" #commentText [formControlName]=\"'comment'\"> </qd-richtext>\n <div *ngIf=\"form.get('comment')?.touched && form.get('comment')?.errors as errors\">\n <div *ngFor=\"let errorKey of objectKeys(errors)\" [attr.data-test-id]=\"'comment-validation-' + errorKey\"\n class=\"validation-message\">\n {{ errors[errorKey] | translate }}\n </div>\n </div>\n\n <qd-dialog-action>\n <button qdButton qdButtonGhost color=\"secondary\" (click)=\"close()\" [data-test-id]=\"'button-cancel'\">\n {{ \"i18n.qd.comments.add.dialog.cancel\" | translate }}\n </button>\n <button [disabled]=\"!commentText.value || commentText.hasError\"\n qdButton (click)=\"close('Yes')\" [data-test-id]=\"'button-submit'\">\n {{ \"i18n.qd.comments.add.dialog.submit\" | translate }}\n </button>\n </qd-dialog-action>\n </form>\n</qd-dialog>\n", styles: [".validation-message{margin-top:4px;color:red;font-size:.875em}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: QdButtonComponent, selector: "button[qdButton], a[qdButton], button[qd-button]", inputs: ["disabled", "color", "icon", "data-test-id", "additionalInfo"] }, { kind: "directive", type: QdButtonGhostDirective, selector: "button[qdButtonGhost], a[qdButtonGhost]" }, { kind: "component", type: QdDropdownComponent, selector: "qd-dropdown", inputs: ["value", "id", "formControlName", "config", "data-test-id", "qdPopoverMaxHeight", "dense"], outputs: ["valueChange", "enterClick", "clickHint", "clickReadonly", "clickViewonly"] }, { kind: "component", type: QdInputComponent, selector: "qd-input", inputs: ["formControlName", "value", "config", "isError", "data-test-id"], outputs: ["valueChange", "enterClick", "clickClear", "clickHint", "clickReadonly", "clickViewonly"] }, { kind: "component", type: QdRichtextComponent, selector: "qd-richtext", inputs: ["formControlName", "value", "config", "data-test-id"], outputs: ["valueChange", "clickHint", "clickReadonly", "clickViewonly"] }, { kind: "component", type: QdDialogActionComponent, selector: "qd-dialog-action" }, { kind: "component", type: QdDialogComponent, selector: "qd-dialog" }, { kind: "directive", type: i1$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
36794
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AddCommentDialogComponent, selector: "qd-comment-dialog", ngImport: i0, template: "<qd-dialog>\n <form [formGroup]=\"form\">\n <qd-input [config]=\"authorInputConfig\"></qd-input>\n <qd-dropdown\n *ngIf=\"customInputConfig\"\n [config]=\"customInputConfig\"\n [formControlName]=\"'custom'\"\n [attr.data-test-id]=\"'comment-custom'\"\n ></qd-dropdown>\n\n <qd-richtext [config]=\"richtextConfig\" #commentText [formControlName]=\"'comment'\"> </qd-richtext>\n <div *ngIf=\"form.get('comment')?.touched && form.get('comment')?.errors as errors\">\n <div\n *ngFor=\"let errorKey of objectKeys(errors)\"\n [attr.data-test-id]=\"'comment-validation-' + errorKey\"\n class=\"validation-message\"\n >\n {{ errors[errorKey] | translate }}\n </div>\n </div>\n </form>\n <qd-dialog-action>\n <button qdButton qdButtonGhost color=\"secondary\" (click)=\"close()\" [data-test-id]=\"'button-cancel'\">\n {{ \"i18n.qd.comments.add.dialog.cancel\" | translate }}\n </button>\n <button\n [disabled]=\"!commentText.value || commentText.hasError\"\n qdButton\n (click)=\"close('Yes')\"\n [data-test-id]=\"'button-submit'\"\n >\n {{ \"i18n.qd.comments.add.dialog.submit\" | translate }}\n </button>\n </qd-dialog-action>\n</qd-dialog>\n", styles: [".validation-message{margin-top:4px;color:red;font-size:.875em}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: QdButtonComponent, selector: "button[qdButton], a[qdButton], button[qd-button]", inputs: ["disabled", "color", "icon", "data-test-id", "additionalInfo"] }, { kind: "directive", type: QdButtonGhostDirective, selector: "button[qdButtonGhost], a[qdButtonGhost]" }, { kind: "component", type: QdDropdownComponent, selector: "qd-dropdown", inputs: ["value", "id", "formControlName", "config", "data-test-id", "qdPopoverMaxHeight", "dense"], outputs: ["valueChange", "enterClick", "clickHint", "clickReadonly", "clickViewonly"] }, { kind: "component", type: QdInputComponent, selector: "qd-input", inputs: ["formControlName", "value", "config", "isError", "data-test-id"], outputs: ["valueChange", "enterClick", "clickClear", "clickHint", "clickReadonly", "clickViewonly"] }, { kind: "component", type: QdRichtextComponent, selector: "qd-richtext", inputs: ["formControlName", "value", "config", "data-test-id"], outputs: ["valueChange", "clickHint", "clickReadonly", "clickViewonly"] }, { kind: "component", type: QdDialogActionComponent, selector: "qd-dialog-action" }, { kind: "component", type: QdDialogComponent, selector: "qd-dialog" }, { kind: "directive", type: i1$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
36601
36795
  }
36602
36796
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AddCommentDialogComponent, decorators: [{
36603
36797
  type: Component,
36604
- args: [{ selector: 'qd-comment-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<qd-dialog>\n <form [formGroup]=\"form\">\n <qd-input [config]=\"authorInputConfig\"></qd-input>\n <qd-dropdown *ngIf=\"customInputConfig\" [config]=\"customInputConfig\" [formControlName]=\"'custom'\"\n [attr.data-test-id]=\"'comment-custom'\"></qd-dropdown>\n\n <qd-richtext [config]=\"richtextConfig\" #commentText [formControlName]=\"'comment'\"> </qd-richtext>\n <div *ngIf=\"form.get('comment')?.touched && form.get('comment')?.errors as errors\">\n <div *ngFor=\"let errorKey of objectKeys(errors)\" [attr.data-test-id]=\"'comment-validation-' + errorKey\"\n class=\"validation-message\">\n {{ errors[errorKey] | translate }}\n </div>\n </div>\n\n <qd-dialog-action>\n <button qdButton qdButtonGhost color=\"secondary\" (click)=\"close()\" [data-test-id]=\"'button-cancel'\">\n {{ \"i18n.qd.comments.add.dialog.cancel\" | translate }}\n </button>\n <button [disabled]=\"!commentText.value || commentText.hasError\"\n qdButton (click)=\"close('Yes')\" [data-test-id]=\"'button-submit'\">\n {{ \"i18n.qd.comments.add.dialog.submit\" | translate }}\n </button>\n </qd-dialog-action>\n </form>\n</qd-dialog>\n", styles: [".validation-message{margin-top:4px;color:red;font-size:.875em}\n"] }]
36798
+ args: [{ selector: 'qd-comment-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<qd-dialog>\n <form [formGroup]=\"form\">\n <qd-input [config]=\"authorInputConfig\"></qd-input>\n <qd-dropdown\n *ngIf=\"customInputConfig\"\n [config]=\"customInputConfig\"\n [formControlName]=\"'custom'\"\n [attr.data-test-id]=\"'comment-custom'\"\n ></qd-dropdown>\n\n <qd-richtext [config]=\"richtextConfig\" #commentText [formControlName]=\"'comment'\"> </qd-richtext>\n <div *ngIf=\"form.get('comment')?.touched && form.get('comment')?.errors as errors\">\n <div\n *ngFor=\"let errorKey of objectKeys(errors)\"\n [attr.data-test-id]=\"'comment-validation-' + errorKey\"\n class=\"validation-message\"\n >\n {{ errors[errorKey] | translate }}\n </div>\n </div>\n </form>\n <qd-dialog-action>\n <button qdButton qdButtonGhost color=\"secondary\" (click)=\"close()\" [data-test-id]=\"'button-cancel'\">\n {{ \"i18n.qd.comments.add.dialog.cancel\" | translate }}\n </button>\n <button\n [disabled]=\"!commentText.value || commentText.hasError\"\n qdButton\n (click)=\"close('Yes')\"\n [data-test-id]=\"'button-submit'\"\n >\n {{ \"i18n.qd.comments.add.dialog.submit\" | translate }}\n </button>\n </qd-dialog-action>\n</qd-dialog>\n", styles: [".validation-message{margin-top:4px;color:red;font-size:.875em}\n"] }]
36605
36799
  }], ctorParameters: () => [{ type: i1$1.DialogRef }, { type: undefined, decorators: [{
36606
36800
  type: Optional
36607
36801
  }, {
@@ -38210,5 +38404,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
38210
38404
  * Generated bundle index. Do not edit.
38211
38405
  */
38212
38406
 
38213
- export { APP_ENVIRONMENT, AVAILABLE_ICONS, BACKEND_ERROR_CODES, MockLocaleDatePipe, MockTabLinkComponent, MockTabNavBarComponent, NavigationTileComponent, NavigationTilesComponent, PageLevel, 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, QdActionBarLeftDirective, QdActionBarRightDirective, QdActiveContentTabDirective, QdButtonComponent, QdButtonEnabledDirective, 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, QdContainerComponent, QdContainerModule, QdContainerPairsCaptionComponent, QdContainerPairsContainerComponent, QdContainerPairsHeaderComponent, QdContainerPairsItemComponent, QdContainerPairsValueComponent, QdContainerSectionComponent, QdContainerSectionHeaderComponent, QdContainerSectionInfoComponent, QdContainerToolbarActionComponent, QdContainerToolbarComponent, QdContainerToolbarFilterComponent, QdContainerToolbarTitleComponent, QdContentGridColumnComponent, QdContentGridComponent, QdContentGridModule, QdContentGridRowComponent, 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, QdForceLineBreakDirective, QdFormArray, QdFormBuilder, QdFormControl, QdFormGroup, QdFormModule, QdFormsComponent, QdGridComponent, QdGridModule, QdHeaderSearchDirective, QdHeaderWidgetComponent, QdHorizontalPairsCaptionComponent, QdHorizontalPairsComponent, QdHorizontalPairsItemComponent, QdHorizontalPairsValueComponent, QdIconButtonComponent, QdIconComponent, QdIconModule, QdImageComponent, QdImageModule, QdIndeterminateProgressBarComponent, QdInputComponent, QdLayoutActionBarComponent, QdLayoutContainerComponent, QdLayoutModule, QdLayoutPageProcessHeaderComponent, QdLayoutPageProcessHeaderDataSectionDirective, QdLayoutPageProcessHeaderEditButtonDirective, QdLayoutPageProcessHeaderStateDirective, QdLayoutPageProcessHeaderSubmitButtonDirective, QdLayoutPageProcessHeaderTitleComponent, QdLayoutPageTitleComponent, QdLayoutPanelComponent, QdLayoutPanelTitleComponent, QdLayoutRendererComponent, QdListModule, QdMasterLayoutBannerComponent, QdMasterLayoutComponent, QdMasterLayoutFooterComponent, QdMasterLayoutHeaderComponent, QdMasterLayoutModule, QdMasterLayoutService, QdMenuButtonComponent, QdMockActionBarLeftDirective, QdMockActionBarRightDirective, QdMockActiveContentTabDirective, QdMockBreakpointService, QdMockButtonComponent, QdMockButtonEnabledDirective, QdMockButtonGhostDirective, QdMockButtonGridComponent, QdMockButtonLinkDirective, QdMockButtonModule, QdMockButtonStackButtonComponent, QdMockButtonStackComponent, QdMockCalendarComponent, QdMockCheckboxChipsComponent, QdMockCheckboxComponent, QdMockCheckboxesComponent, QdMockChipComponent, QdMockChipModule, QdMockColumnDirective, QdMockColumnsDirective, QdMockContactCardComponent, QdMockContactCardModule, QdMockContainerActionFooterComponent, QdMockContainerComponent, QdMockContainerCreateContentComponent, QdMockContainerCreateDefaultComponent, QdMockContainerModule, QdMockContainerPairsCaptionComponent, QdMockContainerPairsContainerComponent, QdMockContainerPairsHeaderComponent, QdMockContainerPairsItemComponent, QdMockContainerPairsValueComponent, QdMockContainerSectionComponent, QdMockContainerToolbarActionComponent, QdMockContainerToolbarActionSearchDirective, QdMockContainerToolbarComponent, QdMockContainerToolbarFilterComponent, QdMockContainerToolbarTitleComponent, QdMockContentGridColumnComponent, QdMockContentGridComponent, QdMockContentGridModule, QdMockContentGridRowComponent, QdMockCoreModule, QdMockCounterBadgeComponent, QdMockCreateDeleteAlertComponent, QdMockDatepickerComponent, QdMockDisabledDirective, QdMockDropdownComponent, QdMockFileCollectorComponent, QdMockFileCollectorModule, QdMockFilterCategoryBooleanComponent, QdMockFilterCategoryComponent, QdMockFilterCategoryDateComponent, QdMockFilterCategoryDateRangeComponent, QdMockFilterCategoryFreeTextComponent, QdMockFilterCategorySelectComponent, QdMockFilterComponent, QdMockFilterFormItemsComponent, QdMockFilterItemBooleanComponent, QdMockFilterItemDateComponent, QdMockFilterItemDateRangeComponent, QdMockFilterItemFreeTextComponent, QdMockFilterItemMultiSelectComponent, QdMockFilterItemSingleSelectComponent, QdMockFilterModule, QdMockFilterService, QdMockFormErrorComponent, QdMockFormGroupComponent, QdMockFormGroupErrorComponent, QdMockFormGroupHeaderActionComponent, QdMockFormGroupHeaderComponent, QdMockFormHintComponent, QdMockFormLabelComponent, QdMockFormReadonlyComponent, QdMockFormViewonlyComponent, QdMockFormsModule, QdMockGridModule, QdMockHeaderWidgetComponent, QdMockIconButtonComponent, QdMockIconComponent, QdMockIconModule, QdMockImageComponent, QdMockImageModule, QdMockIndeterminateProgressBarComponent, QdMockInputComponent, QdMockLayoutActionBarComponent, QdMockLayoutContainerComponent, QdMockLayoutModule, QdMockLayoutPageProcessHeaderComponent, QdMockLayoutPageProcessHeaderEditButtonDirective, QdMockLayoutPageProcessHeaderStateDirective, QdMockLayoutPageProcessHeaderSubmitButtonDirective, QdMockLayoutPageProcessHeaderTitleComponent, QdMockLayoutPageTitleComponent, QdMockLayoutPanelComponent, QdMockLayoutPanelTitleComponent, QdMockLayoutRendererComponent, QdMockListModule, QdMockMasterLayoutBannerComponent, QdMockMasterLayoutComponent, QdMockMasterLayoutFooterComponent, QdMockMasterLayoutHeaderComponent, QdMockMasterLayoutModule, QdMockNavigationTileComponent, QdMockNavigationTilesComponent, QdMockNavigationTilesModule, QdMockNotificationComponent, QdMockNotificationContentComponent, QdMockNotificationsComponent, QdMockNotificationsModule, QdMockNotificationsService, QdMockPageComponent, QdMockPageLeaveHandlerComponent, 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, QdMockStepActionComponent, QdMockStepComponent, QdMockStepItemComponent, QdMockStepperComponent, QdMockStepperModule, QdMockSwitchComponent, QdMockSwitchesComponent, QdMockTabActionComponent, QdMockTabBarModule, QdMockTabComponent, QdMockTabItemComponent, QdMockTabPendingTasksComponent, QdMockTableComponent, QdMockTableModule, QdMockTabsComponent, QdMockTabsModule, QdMockTextSectionComponent, QdMockTextSectionHeadlineComponent, QdMockTextSectionModule, QdMockTextSectionParagraphComponent, QdMockTextareaComponent, QdMockTileButtonListComponent, QdMockTileComponent, QdMockTileTextListComponent, QdMockTileTextListItemComponent, QdMockTileTitleComponent, QdMockTilesContainerComponent, QdMockTilesContainerTitleComponent, QdMockTilesModule, QdMockTranslatePipe, QdMockTruncatedTextComponent, QdMockTruncatedTextDirective, QdMockVerticalPairsCaptionComponent, QdMockVerticalPairsComponent, QdMockVerticalPairsItemComponent, QdMockVerticalPairsValueComponent, QdMockVisuallyHiddenDirective, QdModalFullscreenContainerComponent, QdMultiInputComponent, QdNavigationTilesModule, QdNotificationComponent, QdNotificationContentComponent, QdNotificationsComponent, QdNotificationsHttpInterceptorService, QdNotificationsModule, QdNotificationsService, QdNotificationsSnackbarListenerDirective, QdPageComponent, QdPageControlPanelComponent, QdPageFooterComponent, QdPageFooterCustomContentDirective, QdPageInfoBannerComponent, QdPageModule, QdPageStepComponent, QdPageStepperAdapterDirective, QdPageStepperComponent, QdPageStepperModule, QdPageStoreService, QdPageTabComponent, QdPageTabsAdapterDirective, QdPageTabsComponent, QdPageTabsModule, QdPanelDisabledTitleDirective, QdPanelSectionActionsComponent, QdPanelSectionComponent, QdPanelSectionModule, QdPanelSectionStatusComponent, QdPanelSectionTextParagraphComponent, QdPercentageProgressBarComponent, QdPinCodeComponent, QdPlaceHolderComponent, QdPlaceHolderModule, QdPlaceholderPipe, QdProgressBarModule, QdProjectionGuardComponent, QdPushEventsService, QdQuickEditComponent, QdQuickEditModule, QdRadioButtonsComponent, QdRichtextComponent, QdRwdDisabledDirective, QdSearchComponent, QdSearchModule, QdSectionAdapterDirective, QdSectionComponent, QdSectionModule, QdSectionToolbarComponent, QdServiceNavigationComponent, QdShellComponent, QdShellModule, QdSortDirection, QdSpinnerComponent, QdSpinnerModule, QdStatusIndicatorComponent, QdStatusIndicatorModule, QdStatusPairsCaptionComponent, QdStatusPairsComponent, QdStatusPairsErrorComponent, QdStatusPairsItemComponent, QdStatusPairsValueComponent, QdStepActionComponent, QdStepComponent, QdStepItemComponent, QdStepperComponent, QdStepperModule, QdSubgridComponent, QdSwitchComponent, QdSwitchesComponent, QdTabBarModule, QdTabComponent, QdTabItemComponent, QdTableComponent, QdTableModule, QdTableSpringTools, QdTabsComponent, QdTabsModule, QdTextSectionComponent, QdTextSectionHeadlineComponent, QdTextSectionModule, QdTextSectionParagraphComponent, QdTextareaComponent, QdTileButtonListComponent, QdTileComponent, QdTileTextListComponent, QdTileTextListItemComponent, QdTileTitleComponent, QdTilesComponent, QdTilesModule, QdTilesTitleComponent, QdTooltipAtIntersectionDirective, QdTreeComponent, QdTreeModule, QdTreeRowExpanderService, QdUiMockModule, QdUiModule, QdUploadErrorType, QdValidators, QdVerticalPairsCaptionComponent, QdVerticalPairsComponent, QdVerticalPairsItemComponent, QdVerticalPairsValueComponent, QdViewportAdaptiveDirective, QdVisuallyHiddenDirective, TabLinkComponent, TabNavBarComponent, chipColorDefault, updateHtmlLang };
38407
+ export { APP_ENVIRONMENT, AVAILABLE_ICONS, BACKEND_ERROR_CODES, MockLocaleDatePipe, MockTabLinkComponent, MockTabNavBarComponent, NavigationTileComponent, NavigationTilesComponent, PageLevel, PendingChangesGuardDirective, 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, QdActionBarLeftDirective, QdActionBarRightDirective, QdActiveContentTabDirective, QdButtonComponent, QdButtonEnabledDirective, 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, QdContainerComponent, QdContainerModule, QdContainerPairsCaptionComponent, QdContainerPairsContainerComponent, QdContainerPairsHeaderComponent, QdContainerPairsItemComponent, QdContainerPairsValueComponent, QdContainerSectionComponent, QdContainerSectionHeaderComponent, QdContainerSectionInfoComponent, QdContainerToolbarActionComponent, QdContainerToolbarComponent, QdContainerToolbarFilterComponent, QdContainerToolbarTitleComponent, QdContentGridColumnComponent, QdContentGridComponent, QdContentGridModule, QdContentGridRowComponent, 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, QdForceLineBreakDirective, QdFormArray, QdFormBuilder, QdFormControl, QdFormGroup, QdFormModule, QdFormsComponent, QdGridComponent, QdGridModule, QdHeaderSearchDirective, QdHeaderWidgetComponent, QdHorizontalPairsCaptionComponent, QdHorizontalPairsComponent, QdHorizontalPairsItemComponent, QdHorizontalPairsValueComponent, QdIconButtonComponent, QdIconComponent, QdIconModule, QdImageComponent, QdImageModule, QdIndeterminateProgressBarComponent, QdInputComponent, QdLayoutActionBarComponent, QdLayoutContainerComponent, QdLayoutModule, QdLayoutPageProcessHeaderComponent, QdLayoutPageProcessHeaderDataSectionDirective, QdLayoutPageProcessHeaderEditButtonDirective, QdLayoutPageProcessHeaderStateDirective, QdLayoutPageProcessHeaderSubmitButtonDirective, QdLayoutPageProcessHeaderTitleComponent, QdLayoutPageTitleComponent, QdLayoutPanelComponent, QdLayoutPanelTitleComponent, QdLayoutRendererComponent, QdListModule, QdMasterLayoutBannerComponent, QdMasterLayoutComponent, QdMasterLayoutFooterComponent, QdMasterLayoutHeaderComponent, QdMasterLayoutModule, QdMasterLayoutService, QdMenuButtonComponent, QdMockActionBarLeftDirective, QdMockActionBarRightDirective, QdMockActiveContentTabDirective, QdMockBreakpointService, QdMockButtonComponent, QdMockButtonEnabledDirective, QdMockButtonGhostDirective, QdMockButtonGridComponent, QdMockButtonLinkDirective, QdMockButtonModule, QdMockButtonStackButtonComponent, QdMockButtonStackComponent, QdMockCalendarComponent, QdMockCheckboxChipsComponent, QdMockCheckboxComponent, QdMockCheckboxesComponent, QdMockChipComponent, QdMockChipModule, QdMockColumnDirective, QdMockColumnsDirective, QdMockContactCardComponent, QdMockContactCardModule, QdMockContainerActionFooterComponent, QdMockContainerComponent, QdMockContainerCreateContentComponent, QdMockContainerCreateDefaultComponent, QdMockContainerModule, QdMockContainerPairsCaptionComponent, QdMockContainerPairsContainerComponent, QdMockContainerPairsHeaderComponent, QdMockContainerPairsItemComponent, QdMockContainerPairsValueComponent, QdMockContainerSectionComponent, QdMockContainerToolbarActionComponent, QdMockContainerToolbarActionSearchDirective, QdMockContainerToolbarComponent, QdMockContainerToolbarFilterComponent, QdMockContainerToolbarTitleComponent, QdMockContentGridColumnComponent, QdMockContentGridComponent, QdMockContentGridModule, QdMockContentGridRowComponent, QdMockCoreModule, QdMockCounterBadgeComponent, QdMockCreateDeleteAlertComponent, QdMockDatepickerComponent, QdMockDisabledDirective, QdMockDropdownComponent, QdMockFileCollectorComponent, QdMockFileCollectorModule, QdMockFilterCategoryBooleanComponent, QdMockFilterCategoryComponent, QdMockFilterCategoryDateComponent, QdMockFilterCategoryDateRangeComponent, QdMockFilterCategoryFreeTextComponent, QdMockFilterCategorySelectComponent, QdMockFilterComponent, QdMockFilterFormItemsComponent, QdMockFilterItemBooleanComponent, QdMockFilterItemDateComponent, QdMockFilterItemDateRangeComponent, QdMockFilterItemFreeTextComponent, QdMockFilterItemMultiSelectComponent, QdMockFilterItemSingleSelectComponent, QdMockFilterModule, QdMockFilterService, QdMockFormErrorComponent, QdMockFormGroupComponent, QdMockFormGroupErrorComponent, QdMockFormGroupHeaderActionComponent, QdMockFormGroupHeaderComponent, QdMockFormHintComponent, QdMockFormLabelComponent, QdMockFormReadonlyComponent, QdMockFormViewonlyComponent, QdMockFormsModule, QdMockGridModule, QdMockHeaderWidgetComponent, QdMockIconButtonComponent, QdMockIconComponent, QdMockIconModule, QdMockImageComponent, QdMockImageModule, QdMockIndeterminateProgressBarComponent, QdMockInputComponent, QdMockLayoutActionBarComponent, QdMockLayoutContainerComponent, QdMockLayoutModule, QdMockLayoutPageProcessHeaderComponent, QdMockLayoutPageProcessHeaderEditButtonDirective, QdMockLayoutPageProcessHeaderStateDirective, QdMockLayoutPageProcessHeaderSubmitButtonDirective, QdMockLayoutPageProcessHeaderTitleComponent, QdMockLayoutPageTitleComponent, QdMockLayoutPanelComponent, QdMockLayoutPanelTitleComponent, QdMockLayoutRendererComponent, QdMockListModule, QdMockMasterLayoutBannerComponent, QdMockMasterLayoutComponent, QdMockMasterLayoutFooterComponent, QdMockMasterLayoutHeaderComponent, QdMockMasterLayoutModule, QdMockNavigationTileComponent, QdMockNavigationTilesComponent, QdMockNavigationTilesModule, QdMockNotificationComponent, QdMockNotificationContentComponent, QdMockNotificationsComponent, QdMockNotificationsModule, QdMockNotificationsService, QdMockPageComponent, QdMockPageLeaveHandlerComponent, 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, QdMockStepActionComponent, QdMockStepComponent, QdMockStepItemComponent, QdMockStepperComponent, QdMockStepperModule, QdMockSwitchComponent, QdMockSwitchesComponent, QdMockTabActionComponent, QdMockTabBarModule, QdMockTabComponent, QdMockTabItemComponent, QdMockTabPendingTasksComponent, QdMockTableComponent, QdMockTableModule, QdMockTabsComponent, QdMockTabsModule, QdMockTextSectionComponent, QdMockTextSectionHeadlineComponent, QdMockTextSectionModule, QdMockTextSectionParagraphComponent, QdMockTextareaComponent, QdMockTileButtonListComponent, QdMockTileComponent, QdMockTileTextListComponent, QdMockTileTextListItemComponent, QdMockTileTitleComponent, QdMockTilesContainerComponent, QdMockTilesContainerTitleComponent, QdMockTilesModule, QdMockTranslatePipe, QdMockTruncatedTextComponent, QdMockTruncatedTextDirective, QdMockVerticalPairsCaptionComponent, QdMockVerticalPairsComponent, QdMockVerticalPairsItemComponent, QdMockVerticalPairsValueComponent, QdMockVisuallyHiddenDirective, QdModalFullscreenContainerComponent, QdMultiInputComponent, QdNavigationTilesModule, QdNotificationComponent, QdNotificationContentComponent, QdNotificationsComponent, QdNotificationsHttpInterceptorService, QdNotificationsModule, QdNotificationsService, QdNotificationsSnackbarListenerDirective, QdPageComponent, QdPageControlPanelComponent, QdPageFooterComponent, QdPageFooterCustomContentDirective, QdPageInfoBannerComponent, QdPageModule, QdPageStepComponent, QdPageStepperAdapterDirective, QdPageStepperComponent, QdPageStepperModule, QdPageStoreService, QdPageTabComponent, QdPageTabsAdapterDirective, QdPageTabsComponent, QdPageTabsModule, QdPanelDisabledTitleDirective, QdPanelSectionActionsComponent, QdPanelSectionComponent, QdPanelSectionModule, QdPanelSectionStatusComponent, QdPanelSectionTextParagraphComponent, QdPercentageProgressBarComponent, QdPinCodeComponent, QdPlaceHolderComponent, QdPlaceHolderModule, QdPlaceholderPipe, QdProgressBarModule, QdProjectionGuardComponent, QdPushEventsService, QdQuickEditComponent, QdQuickEditModule, QdRadioButtonsComponent, QdRichtextComponent, QdRwdDisabledDirective, QdSearchComponent, QdSearchModule, QdSectionAdapterDirective, QdSectionComponent, QdSectionModule, QdSectionToolbarComponent, QdServiceNavigationComponent, QdShellComponent, QdShellModule, QdSortDirection, QdSpinnerComponent, QdSpinnerModule, QdStatusIndicatorComponent, QdStatusIndicatorModule, QdStatusPairsCaptionComponent, QdStatusPairsComponent, QdStatusPairsErrorComponent, QdStatusPairsItemComponent, QdStatusPairsValueComponent, QdStepActionComponent, QdStepComponent, QdStepItemComponent, QdStepperComponent, QdStepperModule, QdSubgridComponent, QdSwitchComponent, QdSwitchesComponent, QdTabBarModule, QdTabComponent, QdTabItemComponent, QdTableComponent, QdTableModule, QdTableSpringTools, QdTabsComponent, QdTabsModule, QdTextSectionComponent, QdTextSectionHeadlineComponent, QdTextSectionModule, QdTextSectionParagraphComponent, QdTextareaComponent, QdTileButtonListComponent, QdTileComponent, QdTileTextListComponent, QdTileTextListItemComponent, QdTileTitleComponent, QdTilesComponent, QdTilesModule, QdTilesTitleComponent, QdTooltipAtIntersectionDirective, QdTreeComponent, QdTreeModule, QdTreeRowExpanderService, QdUiMockModule, QdUiModule, QdUploadErrorType, QdValidators, QdVerticalPairsCaptionComponent, QdVerticalPairsComponent, QdVerticalPairsItemComponent, QdVerticalPairsValueComponent, QdViewportAdaptiveDirective, QdVisuallyHiddenDirective, TabLinkComponent, TabNavBarComponent, chipColorDefault, updateHtmlLang };
38214
38408
  //# sourceMappingURL=quadrel-enterprise-ui-framework.mjs.map