@quadrel-enterprise-ui/framework 19.2.0 → 19.3.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/fesm2022/quadrel-enterprise-ui-framework.mjs +217 -23
- package/fesm2022/quadrel-enterprise-ui-framework.mjs.map +1 -1
- package/lib/dialog/cancel-confirmation-dialog/cancel-dialog.component.d.ts +14 -0
- package/lib/dialog/dialog.component.d.ts +21 -5
- package/lib/dialog/dialog.module.d.ts +17 -14
- package/lib/dialog/directives/pending-changes-guard.directive.d.ts +35 -0
- package/lib/dialog/models/dialog-config.model.d.ts +53 -0
- package/lib/dialog/services/confirmation-dialog.service.d.ts +13 -0
- package/lib/dialog/services/dialog-change-guard.service.d.ts +8 -0
- package/lib/table/store/table-store.service.d.ts +1 -1
- package/package.json +1 -1
|
@@ -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,
|
|
9
|
-
import { map, filter, catchError, debounceTime,
|
|
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, firstValueFrom, combineLatest, concat, take as take$1, delay, tap as tap$1, first, scan, combineLatestWith, iif, delayWhen, withLatestFrom, async, filter as filter$1 } from 'rxjs';
|
|
9
|
+
import { map, takeUntil, filter, catchError, debounceTime, startWith, distinctUntilChanged, concatMap, take, tap, skip, pairwise as pairwise$1, switchMap as switchMap$1, mergeMap, delay as delay$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';
|
|
@@ -1140,11 +1140,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
1140
1140
|
|
|
1141
1141
|
class QdDialogActionComponent {
|
|
1142
1142
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdDialogActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1143
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: QdDialogActionComponent, isStandalone: false, selector: "qd-dialog-action", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;
|
|
1143
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: QdDialogActionComponent, isStandalone: false, selector: "qd-dialog-action", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;column-gap:.625rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1144
1144
|
}
|
|
1145
1145
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdDialogActionComponent, decorators: [{
|
|
1146
1146
|
type: Component,
|
|
1147
|
-
args: [{ selector: 'qd-dialog-action', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;
|
|
1147
|
+
args: [{ selector: 'qd-dialog-action', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;column-gap:.625rem}\n"] }]
|
|
1148
1148
|
}] });
|
|
1149
1149
|
|
|
1150
1150
|
/**
|
|
@@ -1157,6 +1157,54 @@ var QdDialogSize;
|
|
|
1157
1157
|
QdDialogSize["FullWidth"] = "100%";
|
|
1158
1158
|
})(QdDialogSize || (QdDialogSize = {}));
|
|
1159
1159
|
|
|
1160
|
+
class QdDialogChangeGuardService {
|
|
1161
|
+
_hasChanges = false;
|
|
1162
|
+
get hasPendingChanges() {
|
|
1163
|
+
return this._hasChanges;
|
|
1164
|
+
}
|
|
1165
|
+
setPendingChangesStatus(status) {
|
|
1166
|
+
this._hasChanges = status;
|
|
1167
|
+
}
|
|
1168
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdDialogChangeGuardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1169
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdDialogChangeGuardService, providedIn: 'root' });
|
|
1170
|
+
}
|
|
1171
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdDialogChangeGuardService, decorators: [{
|
|
1172
|
+
type: Injectable,
|
|
1173
|
+
args: [{
|
|
1174
|
+
providedIn: 'root'
|
|
1175
|
+
}]
|
|
1176
|
+
}] });
|
|
1177
|
+
|
|
1178
|
+
class QdConfirmationDialogOpenerService {
|
|
1179
|
+
dialog;
|
|
1180
|
+
constructor(dialog) {
|
|
1181
|
+
this.dialog = dialog;
|
|
1182
|
+
}
|
|
1183
|
+
showCancelConfirmation(config) {
|
|
1184
|
+
return from(Promise.resolve().then(function () { return cancelDialog_component; }).then(m => m.QdCancelDialogComponent)).pipe(switchMap(component => {
|
|
1185
|
+
const dialogRef = this.open(component, {
|
|
1186
|
+
title: { i18n: 'i18n.qd.page.cancel.confirmation.dialog.title' },
|
|
1187
|
+
dialogSize: QdDialogSize.Small,
|
|
1188
|
+
data: config
|
|
1189
|
+
});
|
|
1190
|
+
return dialogRef.closed.pipe(map$1(result => !!result));
|
|
1191
|
+
}));
|
|
1192
|
+
}
|
|
1193
|
+
open(component, config) {
|
|
1194
|
+
config.panelClass = 'qd-custom-panel';
|
|
1195
|
+
config.width = config.dialogSize || QdDialogSize.Default;
|
|
1196
|
+
return this.dialog.open(component, config);
|
|
1197
|
+
}
|
|
1198
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdConfirmationDialogOpenerService, deps: [{ token: i1$1.Dialog }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1199
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdConfirmationDialogOpenerService, providedIn: 'root' });
|
|
1200
|
+
}
|
|
1201
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdConfirmationDialogOpenerService, decorators: [{
|
|
1202
|
+
type: Injectable,
|
|
1203
|
+
args: [{
|
|
1204
|
+
providedIn: 'root'
|
|
1205
|
+
}]
|
|
1206
|
+
}], ctorParameters: () => [{ type: i1$1.Dialog }] });
|
|
1207
|
+
|
|
1160
1208
|
/**
|
|
1161
1209
|
* The **QdIconButton** can only display icons, in contrast to the **QdButton**. <br />
|
|
1162
1210
|
* It is possible to bind it to either a `button` tag or to an `a` tag.
|
|
@@ -1210,7 +1258,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
1210
1258
|
/**
|
|
1211
1259
|
* **QdDialog** creating resonsive dialogs. Three different sizes are available.
|
|
1212
1260
|
*
|
|
1213
|
-
* Detailed migration guideline from QdModal to QdDialog: https://confluence.bit.admin.ch/display/DAZUIC/Migration+Dialoge
|
|
1214
1261
|
*
|
|
1215
1262
|
* * @see child component: **QdDialogAction**.
|
|
1216
1263
|
*
|
|
@@ -1244,10 +1291,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
1244
1291
|
* <button qdButton (click)="close('Yes')">Submit</button>
|
|
1245
1292
|
* </qd-dialog-action>
|
|
1246
1293
|
* </qd-dialog>
|
|
1247
|
-
|
|
1294
|
+
*
|
|
1295
|
+
* **Example of MyModalComponent (Including Form Change Guard):**
|
|
1296
|
+
*
|
|
1297
|
+
* @example
|
|
1298
|
+
* <qd-dialog>
|
|
1299
|
+
* <form [formGroup]="myForm" qdPendingChangesGuard>
|
|
1300
|
+
* <input type="text" formControlName="name">
|
|
1301
|
+
* You have unsaved changes!
|
|
1302
|
+
* </form>
|
|
1303
|
+
* </qd-dialog>
|
|
1304
|
+
* */
|
|
1248
1305
|
class QdDialogComponent {
|
|
1249
1306
|
dialogRef;
|
|
1307
|
+
dialog;
|
|
1250
1308
|
changeDetectorRef;
|
|
1309
|
+
dialogChangeGuard;
|
|
1251
1310
|
body;
|
|
1252
1311
|
infoBanners;
|
|
1253
1312
|
get hasSectionsClass() {
|
|
@@ -1256,9 +1315,12 @@ class QdDialogComponent {
|
|
|
1256
1315
|
config;
|
|
1257
1316
|
hasSections;
|
|
1258
1317
|
hasInfoBanner;
|
|
1259
|
-
|
|
1318
|
+
_destroyed$ = new Subject();
|
|
1319
|
+
constructor(dialogRef, dialog, changeDetectorRef, dialogChangeGuard) {
|
|
1260
1320
|
this.dialogRef = dialogRef;
|
|
1321
|
+
this.dialog = dialog;
|
|
1261
1322
|
this.changeDetectorRef = changeDetectorRef;
|
|
1323
|
+
this.dialogChangeGuard = dialogChangeGuard;
|
|
1262
1324
|
}
|
|
1263
1325
|
ngOnInit() {
|
|
1264
1326
|
this.config = this.dialogRef.config;
|
|
@@ -1275,18 +1337,41 @@ class QdDialogComponent {
|
|
|
1275
1337
|
this.changeDetectorRef.detectChanges();
|
|
1276
1338
|
}
|
|
1277
1339
|
close() {
|
|
1340
|
+
const hasPendingChanges = this.dialogChangeGuard.hasPendingChanges;
|
|
1341
|
+
if (hasPendingChanges) {
|
|
1342
|
+
this.dialog
|
|
1343
|
+
.showCancelConfirmation(this.config)
|
|
1344
|
+
.pipe(takeUntil(this._destroyed$))
|
|
1345
|
+
.subscribe(confirmed => {
|
|
1346
|
+
if (confirmed)
|
|
1347
|
+
this.dialogRef.close();
|
|
1348
|
+
});
|
|
1349
|
+
}
|
|
1350
|
+
else {
|
|
1351
|
+
if (this.config.cancel?.handler)
|
|
1352
|
+
this.config.cancel?.handler();
|
|
1353
|
+
this.dialogRef.close();
|
|
1354
|
+
}
|
|
1355
|
+
}
|
|
1356
|
+
primaryActionClicked() {
|
|
1357
|
+
if (this.config.primary?.handler)
|
|
1358
|
+
this.config.primary?.handler();
|
|
1278
1359
|
this.dialogRef.close();
|
|
1279
1360
|
}
|
|
1361
|
+
ngOnDestroy() {
|
|
1362
|
+
this._destroyed$.next();
|
|
1363
|
+
this._destroyed$.complete();
|
|
1364
|
+
}
|
|
1280
1365
|
get isFullWidth() {
|
|
1281
1366
|
return this.config.dialogSize === QdDialogSize.FullWidth;
|
|
1282
1367
|
}
|
|
1283
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdDialogComponent, deps: [{ token: i1$1.DialogRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1284
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: QdDialogComponent, isStandalone: false, 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 });
|
|
1368
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdDialogComponent, deps: [{ token: i1$1.DialogRef }, { token: QdConfirmationDialogOpenerService }, { token: i0.ChangeDetectorRef }, { token: QdDialogChangeGuardService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1369
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: QdDialogComponent, isStandalone: false, 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 });
|
|
1285
1370
|
}
|
|
1286
1371
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdDialogComponent, decorators: [{
|
|
1287
1372
|
type: Component,
|
|
1288
|
-
args: [{ selector: 'qd-dialog', host: { '[class.full-width]': 'isFullWidth' }, encapsulation: ViewEncapsulation.None, providers: [QdDialogComponent], standalone: false, 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"] }]
|
|
1289
|
-
}], ctorParameters: () => [{ type: i1$1.DialogRef }, { type: i0.ChangeDetectorRef }], propDecorators: { body: [{
|
|
1373
|
+
args: [{ selector: 'qd-dialog', host: { '[class.full-width]': 'isFullWidth' }, encapsulation: ViewEncapsulation.None, providers: [QdDialogComponent], standalone: false, 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"] }]
|
|
1374
|
+
}], ctorParameters: () => [{ type: i1$1.DialogRef }, { type: QdConfirmationDialogOpenerService }, { type: i0.ChangeDetectorRef }, { type: QdDialogChangeGuardService }], propDecorators: { body: [{
|
|
1290
1375
|
type: ViewChild,
|
|
1291
1376
|
args: ['body']
|
|
1292
1377
|
}], infoBanners: [{
|
|
@@ -18356,6 +18441,111 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
18356
18441
|
args: ['data-test-id']
|
|
18357
18442
|
}] } });
|
|
18358
18443
|
|
|
18444
|
+
/**
|
|
18445
|
+
* @name PendingChangesGuardDirective
|
|
18446
|
+
* @description
|
|
18447
|
+
* Automatically monitors the status of form changes in QdDialogComponent (Reactive or Template-Driven Forms)
|
|
18448
|
+
* by comparing the current form value with its initial value.
|
|
18449
|
+
* * The directive automatically marks the form as `pristine` when all values
|
|
18450
|
+
* match the initial state, even if the form has been modified in between.
|
|
18451
|
+
* * @example
|
|
18452
|
+
* // Usage in the Dialog Content Component (Reactive Form):
|
|
18453
|
+
* // import { QdPendingChangesGuardDirective } from '...';
|
|
18454
|
+
* // template:
|
|
18455
|
+
* // <qd-dialog>
|
|
18456
|
+
* // <form [formGroup]="myForm" qdPendingChangesGuard>
|
|
18457
|
+
* // <input type="text" formControlName="name">
|
|
18458
|
+
* // </form>
|
|
18459
|
+
* // </qd-dialog>
|
|
18460
|
+
*/
|
|
18461
|
+
class PendingChangesGuardDirective {
|
|
18462
|
+
ngForm;
|
|
18463
|
+
formGroupDirective;
|
|
18464
|
+
changeGuard;
|
|
18465
|
+
statusSubscription;
|
|
18466
|
+
initialValue;
|
|
18467
|
+
formGroup;
|
|
18468
|
+
constructor(ngForm, formGroupDirective, changeGuard) {
|
|
18469
|
+
this.ngForm = ngForm;
|
|
18470
|
+
this.formGroupDirective = formGroupDirective;
|
|
18471
|
+
this.changeGuard = changeGuard;
|
|
18472
|
+
if (!this.ngForm && !this.formGroupDirective) {
|
|
18473
|
+
console.error('QD-UI | QdPendingChangesGuardDirective - requires NgForm or FormGroupDirective to be present on the host element.');
|
|
18474
|
+
}
|
|
18475
|
+
}
|
|
18476
|
+
ngOnInit() {
|
|
18477
|
+
this.formGroup = this.ngForm?.form || this.formGroupDirective?.form;
|
|
18478
|
+
if (this.formGroup) {
|
|
18479
|
+
this.initialValue = { ...this.formGroup.value };
|
|
18480
|
+
this.updateStatus();
|
|
18481
|
+
this.statusSubscription = this.formGroup.valueChanges.subscribe(() => {
|
|
18482
|
+
this.updateStatus();
|
|
18483
|
+
});
|
|
18484
|
+
}
|
|
18485
|
+
}
|
|
18486
|
+
updateStatus() {
|
|
18487
|
+
if (!this.formGroup)
|
|
18488
|
+
return;
|
|
18489
|
+
const isPristine = isEqual(this.formGroup.value, this.initialValue);
|
|
18490
|
+
const hasChanges = !isPristine;
|
|
18491
|
+
this.changeGuard.setPendingChangesStatus(hasChanges);
|
|
18492
|
+
if (isPristine && this.formGroup.dirty) {
|
|
18493
|
+
this.formGroup.markAsPristine();
|
|
18494
|
+
}
|
|
18495
|
+
}
|
|
18496
|
+
ngOnDestroy() {
|
|
18497
|
+
this.statusSubscription?.unsubscribe();
|
|
18498
|
+
this.changeGuard.setPendingChangesStatus(false);
|
|
18499
|
+
}
|
|
18500
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PendingChangesGuardDirective, deps: [{ token: i1$4.NgForm, optional: true }, { token: i1$4.FormGroupDirective, optional: true }, { token: QdDialogChangeGuardService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
18501
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: PendingChangesGuardDirective, isStandalone: false, selector: "[qdPendingChangesGuard]", ngImport: i0 });
|
|
18502
|
+
}
|
|
18503
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PendingChangesGuardDirective, decorators: [{
|
|
18504
|
+
type: Directive,
|
|
18505
|
+
args: [{
|
|
18506
|
+
selector: '[qdPendingChangesGuard]',
|
|
18507
|
+
standalone: false
|
|
18508
|
+
}]
|
|
18509
|
+
}], ctorParameters: () => [{ type: i1$4.NgForm, decorators: [{
|
|
18510
|
+
type: Optional
|
|
18511
|
+
}] }, { type: i1$4.FormGroupDirective, decorators: [{
|
|
18512
|
+
type: Optional
|
|
18513
|
+
}] }, { type: QdDialogChangeGuardService }] });
|
|
18514
|
+
|
|
18515
|
+
class QdCancelDialogComponent {
|
|
18516
|
+
dialogRef;
|
|
18517
|
+
i18n;
|
|
18518
|
+
handler;
|
|
18519
|
+
constructor(dialogRef) {
|
|
18520
|
+
this.dialogRef = dialogRef;
|
|
18521
|
+
}
|
|
18522
|
+
ngOnInit() {
|
|
18523
|
+
this.i18n =
|
|
18524
|
+
this.dialogRef.config.data?.cancel?.confirmationMessage?.i18n ??
|
|
18525
|
+
'i18n.qd.page.cancel.confirmation.dialog.message';
|
|
18526
|
+
this.handler = this.dialogRef.config.data?.cancel?.handler;
|
|
18527
|
+
}
|
|
18528
|
+
close() {
|
|
18529
|
+
this.dialogRef.close(false);
|
|
18530
|
+
}
|
|
18531
|
+
confirm() {
|
|
18532
|
+
if (this.handler)
|
|
18533
|
+
this.handler();
|
|
18534
|
+
this.dialogRef.close(true);
|
|
18535
|
+
}
|
|
18536
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdCancelDialogComponent, deps: [{ token: i1$1.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
18537
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: QdCancelDialogComponent, isStandalone: false, 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" }] });
|
|
18538
|
+
}
|
|
18539
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdCancelDialogComponent, decorators: [{
|
|
18540
|
+
type: Component,
|
|
18541
|
+
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" }]
|
|
18542
|
+
}], ctorParameters: () => [{ type: i1$1.DialogRef }] });
|
|
18543
|
+
|
|
18544
|
+
var cancelDialog_component = /*#__PURE__*/Object.freeze({
|
|
18545
|
+
__proto__: null,
|
|
18546
|
+
QdCancelDialogComponent: QdCancelDialogComponent
|
|
18547
|
+
});
|
|
18548
|
+
|
|
18359
18549
|
class QdDialogModule {
|
|
18360
18550
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18361
18551
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: QdDialogModule, declarations: [QdDialogActionComponent,
|
|
@@ -18366,7 +18556,9 @@ class QdDialogModule {
|
|
|
18366
18556
|
QdDialogConfirmationInfoDirective,
|
|
18367
18557
|
QdDialogConfirmationSuccessDirective,
|
|
18368
18558
|
QdDialogRecordStepperComponent,
|
|
18369
|
-
QdPageDialogWithBreadcrumbsComponent
|
|
18559
|
+
QdPageDialogWithBreadcrumbsComponent,
|
|
18560
|
+
PendingChangesGuardDirective,
|
|
18561
|
+
QdCancelDialogComponent], imports: [CommonModule,
|
|
18370
18562
|
TranslateModule,
|
|
18371
18563
|
RouterModule,
|
|
18372
18564
|
DialogModule,
|
|
@@ -18383,7 +18575,8 @@ class QdDialogModule {
|
|
|
18383
18575
|
QdDialogConfirmationComponent,
|
|
18384
18576
|
QdDialogConfirmationErrorDirective,
|
|
18385
18577
|
QdDialogConfirmationSuccessDirective,
|
|
18386
|
-
QdDialogRecordStepperComponent
|
|
18578
|
+
QdDialogRecordStepperComponent,
|
|
18579
|
+
PendingChangesGuardDirective] });
|
|
18387
18580
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: QdDialogModule, imports: [CommonModule,
|
|
18388
18581
|
TranslateModule,
|
|
18389
18582
|
RouterModule,
|
|
@@ -18423,7 +18616,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
18423
18616
|
QdDialogConfirmationInfoDirective,
|
|
18424
18617
|
QdDialogConfirmationSuccessDirective,
|
|
18425
18618
|
QdDialogRecordStepperComponent,
|
|
18426
|
-
QdPageDialogWithBreadcrumbsComponent
|
|
18619
|
+
QdPageDialogWithBreadcrumbsComponent,
|
|
18620
|
+
PendingChangesGuardDirective,
|
|
18621
|
+
QdCancelDialogComponent
|
|
18427
18622
|
],
|
|
18428
18623
|
exports: [
|
|
18429
18624
|
QdDialogActionComponent,
|
|
@@ -18432,7 +18627,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
18432
18627
|
QdDialogConfirmationComponent,
|
|
18433
18628
|
QdDialogConfirmationErrorDirective,
|
|
18434
18629
|
QdDialogConfirmationSuccessDirective,
|
|
18435
|
-
QdDialogRecordStepperComponent
|
|
18630
|
+
QdDialogRecordStepperComponent,
|
|
18631
|
+
PendingChangesGuardDirective
|
|
18436
18632
|
]
|
|
18437
18633
|
}]
|
|
18438
18634
|
}] });
|
|
@@ -23204,9 +23400,7 @@ class QdTableResolverService {
|
|
|
23204
23400
|
// TODO: Add Error handling
|
|
23205
23401
|
this.tableStoreService
|
|
23206
23402
|
.selectDataResolutionCriteria$()
|
|
23207
|
-
.pipe(takeUntil(this._destroyed$), distinctUntilChanged(isEqual$1), filter((resolutionCriteria) => {
|
|
23208
|
-
return !!resolutionCriteria && this.shouldDataBeResolved(resolutionCriteria);
|
|
23209
|
-
}), map(({ tableParams, connectorParams }) => {
|
|
23403
|
+
.pipe(takeUntil(this._destroyed$), distinctUntilChanged(isEqual$1), filter((resolutionCriteria) => !!resolutionCriteria && this.shouldDataBeResolved(resolutionCriteria)), map(({ tableParams, connectorParams }) => {
|
|
23210
23404
|
return {
|
|
23211
23405
|
...(this._hasPagination ? tableParams : {}),
|
|
23212
23406
|
...connectorParams
|
|
@@ -23224,7 +23418,7 @@ class QdTableResolverService {
|
|
|
23224
23418
|
this._refreshSubscription.unsubscribe();
|
|
23225
23419
|
this._refreshSubscription = this.tableStoreService
|
|
23226
23420
|
.selectDataResolutionCriteria$()
|
|
23227
|
-
.pipe(first(), tap(() => this.tableStoreService.setRequestState(QdTableRequestState.PENDING)), switchMap(resolutionCriteria => this.tableDataResolver.resolve({
|
|
23421
|
+
.pipe(filter((criteria) => !!criteria), first(), tap(() => this.tableStoreService.setRequestState(QdTableRequestState.PENDING)), switchMap(resolutionCriteria => this.tableDataResolver.resolve({
|
|
23228
23422
|
...resolutionCriteria.tableParams,
|
|
23229
23423
|
...resolutionCriteria.connectorParams,
|
|
23230
23424
|
...(this._hasPagination && pageIndex !== undefined ? { page: pageIndex } : {})
|
|
@@ -24508,11 +24702,11 @@ class QdTableComponent {
|
|
|
24508
24702
|
}
|
|
24509
24703
|
ngOnInit() {
|
|
24510
24704
|
this.tableStoreService.tableId = this.config.uid || v4();
|
|
24511
|
-
this.resolverService.init(this.config.refreshOnLanguageChange, this.hasPagination);
|
|
24512
24705
|
this.tableStoreService.init();
|
|
24513
24706
|
this.tableStoreService.initTableState(this._data, this.hasResolver, this._connectors, this.hasPagination);
|
|
24514
24707
|
this.tableStoreService.updateTableStateRecentSecondaryAction(undefined);
|
|
24515
24708
|
this.tableStoreService.setupSort(this.config.columns);
|
|
24709
|
+
this.resolverService.init(this.config.refreshOnLanguageChange, this.hasPagination);
|
|
24516
24710
|
this.data$ = this.tableStoreService.tableDataEntries$();
|
|
24517
24711
|
this.mapColumnFillsWidth();
|
|
24518
24712
|
this.validateConfig();
|
|
@@ -31403,11 +31597,11 @@ class AddCommentDialogComponent {
|
|
|
31403
31597
|
};
|
|
31404
31598
|
}
|
|
31405
31599
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AddCommentDialogComponent, deps: [{ token: i1$1.DialogRef }, { token: 'QdAuthenticationService', optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
31406
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: AddCommentDialogComponent, isStandalone: false, selector: "qd-comment-dialog", ngImport: i0, template: "<qd-dialog>\n <form [formGroup]=\"form\">\n <qd-input [config]=\"authorInputConfig\"></qd-input>\n <qd-dropdown
|
|
31600
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: AddCommentDialogComponent, isStandalone: false, 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 });
|
|
31407
31601
|
}
|
|
31408
31602
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AddCommentDialogComponent, decorators: [{
|
|
31409
31603
|
type: Component,
|
|
31410
|
-
args: [{ selector: 'qd-comment-dialog', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<qd-dialog>\n <form [formGroup]=\"form\">\n <qd-input [config]=\"authorInputConfig\"></qd-input>\n <qd-dropdown
|
|
31604
|
+
args: [{ selector: 'qd-comment-dialog', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, 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"] }]
|
|
31411
31605
|
}], ctorParameters: () => [{ type: i1$1.DialogRef }, { type: undefined, decorators: [{
|
|
31412
31606
|
type: Optional
|
|
31413
31607
|
}, {
|
|
@@ -32963,5 +33157,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
32963
33157
|
* Generated bundle index. Do not edit.
|
|
32964
33158
|
*/
|
|
32965
33159
|
|
|
32966
|
-
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, 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 };
|
|
33160
|
+
export { APP_ENVIRONMENT, AVAILABLE_ICONS, BACKEND_ERROR_CODES, MockLocaleDatePipe, NavigationTileComponent, NavigationTilesComponent, 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, 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, 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 };
|
|
32967
33161
|
//# sourceMappingURL=quadrel-enterprise-ui-framework.mjs.map
|