turbogui-angular 20.14.1 → 20.15.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.
@@ -610,11 +610,11 @@ class DialogIFrameComponent extends DialogBaseComponent {
610
610
  this.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(data.data);
611
611
  }
612
612
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DialogIFrameComponent, deps: [{ token: i0.ElementRef }, { token: i1.MatDialogRef }, { token: i2$1.DomSanitizer }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
613
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: DialogIFrameComponent, isStandalone: true, selector: "tg-dialog-iframe", providers: [], usesInheritance: true, ngImport: i0, template: "<h2 *ngIf=\"title !== ''\">{{title}}</h2>\r\n\r\n<iframe [src]=\"safeUrl\" title=\"title\"></iframe>", styles: [":host{display:block;width:100%;height:100%}h2{margin-top:0;margin-bottom:25px;width:82%}iframe{width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
613
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: DialogIFrameComponent, isStandalone: true, selector: "tg-dialog-iframe", providers: [], usesInheritance: true, ngImport: i0, template: "<h2 *ngIf=\"title !== ''\">{{title}}</h2>\n\n<iframe [src]=\"safeUrl\" title=\"title\"></iframe>", styles: [":host{display:block;width:100%;height:100%}h2{margin-top:0;margin-bottom:25px;width:82%}iframe{width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
614
614
  }
615
615
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DialogIFrameComponent, decorators: [{
616
616
  type: Component,
617
- args: [{ selector: 'tg-dialog-iframe', imports: [CommonModule], providers: [], template: "<h2 *ngIf=\"title !== ''\">{{title}}</h2>\r\n\r\n<iframe [src]=\"safeUrl\" title=\"title\"></iframe>", styles: [":host{display:block;width:100%;height:100%}h2{margin-top:0;margin-bottom:25px;width:82%}iframe{width:100%;height:100%}\n"] }]
617
+ args: [{ selector: 'tg-dialog-iframe', imports: [CommonModule], providers: [], template: "<h2 *ngIf=\"title !== ''\">{{title}}</h2>\n\n<iframe [src]=\"safeUrl\" title=\"title\"></iframe>", styles: [":host{display:block;width:100%;height:100%}h2{margin-top:0;margin-bottom:25px;width:82%}iframe{width:100%;height:100%}\n"] }]
618
618
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.MatDialogRef }, { type: i2$1.DomSanitizer }, { type: undefined, decorators: [{
619
619
  type: Inject,
620
620
  args: [MAT_DIALOG_DATA]
@@ -649,11 +649,11 @@ class DialogImageComponent extends DialogBaseComponent {
649
649
  this.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(data.data);
650
650
  }
651
651
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DialogImageComponent, deps: [{ token: i0.ElementRef }, { token: i1.MatDialogRef }, { token: i2$1.DomSanitizer }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
652
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: DialogImageComponent, isStandalone: true, selector: "tg-dialog-image", providers: [], usesInheritance: true, ngImport: i0, template: "<h2 *ngIf=\"title !== ''\">{{title}}</h2>\r\n\r\n<img [src]=\"safeUrl\" title=\"title\" alt=\"{{title}}\" />", styles: [":host{display:block;width:100%;height:100%}h2{margin-top:0;margin-bottom:25px;width:82%}iframe{width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
652
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: DialogImageComponent, isStandalone: true, selector: "tg-dialog-image", providers: [], usesInheritance: true, ngImport: i0, template: "<h2 *ngIf=\"title !== ''\">{{title}}</h2>\n\n<img [src]=\"safeUrl\" title=\"title\" alt=\"{{title}}\" />", styles: [":host{display:block;width:100%;height:100%}h2{margin-top:0;margin-bottom:25px;width:82%}iframe{width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
653
653
  }
654
654
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DialogImageComponent, decorators: [{
655
655
  type: Component,
656
- args: [{ selector: 'tg-dialog-image', imports: [CommonModule], providers: [], template: "<h2 *ngIf=\"title !== ''\">{{title}}</h2>\r\n\r\n<img [src]=\"safeUrl\" title=\"title\" alt=\"{{title}}\" />", styles: [":host{display:block;width:100%;height:100%}h2{margin-top:0;margin-bottom:25px;width:82%}iframe{width:100%;height:100%}\n"] }]
656
+ args: [{ selector: 'tg-dialog-image', imports: [CommonModule], providers: [], template: "<h2 *ngIf=\"title !== ''\">{{title}}</h2>\n\n<img [src]=\"safeUrl\" title=\"title\" alt=\"{{title}}\" />", styles: [":host{display:block;width:100%;height:100%}h2{margin-top:0;margin-bottom:25px;width:82%}iframe{width:100%;height:100%}\n"] }]
657
657
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.MatDialogRef }, { type: i2$1.DomSanitizer }, { type: undefined, decorators: [{
658
658
  type: Inject,
659
659
  args: [MAT_DIALOG_DATA]
@@ -710,11 +710,11 @@ class DialogBlobComponent extends DialogBaseComponent {
710
710
  }
711
711
  }
712
712
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DialogBlobComponent, deps: [{ token: i0.ElementRef }, { token: i2$1.DomSanitizer }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
713
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: DialogBlobComponent, isStandalone: true, selector: "tg-dialog-blob", providers: [], usesInheritance: true, ngImport: i0, template: "<h2 *ngIf=\"title !== ''\">{{title}}</h2>\r\n\r\n<!-- For images -->\r\n<img *ngIf=\"mimeType.startsWith('image/')\" [src]=\"blobUrl\" [alt]=\"title\" />\r\n\r\n<!-- For PDFs and other types -->\r\n<iframe *ngIf=\"!mimeType.startsWith('image/')\" [src]=\"blobUrl\" [title]=\"title\"></iframe>", styles: [":host{display:block;width:100%;height:100%}h2{margin-top:0;margin-bottom:25px;width:82%}iframe,img{width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
713
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: DialogBlobComponent, isStandalone: true, selector: "tg-dialog-blob", providers: [], usesInheritance: true, ngImport: i0, template: "<h2 *ngIf=\"title !== ''\">{{title}}</h2>\n\n<!-- For images -->\n<img *ngIf=\"mimeType.startsWith('image/')\" [src]=\"blobUrl\" [alt]=\"title\" />\n\n<!-- For PDFs and other types -->\n<iframe *ngIf=\"!mimeType.startsWith('image/')\" [src]=\"blobUrl\" [title]=\"title\"></iframe>", styles: [":host{display:block;width:100%;height:100%}h2{margin-top:0;margin-bottom:25px;width:82%}iframe,img{width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
714
714
  }
715
715
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DialogBlobComponent, decorators: [{
716
716
  type: Component,
717
- args: [{ selector: 'tg-dialog-blob', imports: [CommonModule], providers: [], template: "<h2 *ngIf=\"title !== ''\">{{title}}</h2>\r\n\r\n<!-- For images -->\r\n<img *ngIf=\"mimeType.startsWith('image/')\" [src]=\"blobUrl\" [alt]=\"title\" />\r\n\r\n<!-- For PDFs and other types -->\r\n<iframe *ngIf=\"!mimeType.startsWith('image/')\" [src]=\"blobUrl\" [title]=\"title\"></iframe>", styles: [":host{display:block;width:100%;height:100%}h2{margin-top:0;margin-bottom:25px;width:82%}iframe,img{width:100%;height:100%}\n"] }]
717
+ args: [{ selector: 'tg-dialog-blob', imports: [CommonModule], providers: [], template: "<h2 *ngIf=\"title !== ''\">{{title}}</h2>\n\n<!-- For images -->\n<img *ngIf=\"mimeType.startsWith('image/')\" [src]=\"blobUrl\" [alt]=\"title\" />\n\n<!-- For PDFs and other types -->\n<iframe *ngIf=\"!mimeType.startsWith('image/')\" [src]=\"blobUrl\" [title]=\"title\"></iframe>", styles: [":host{display:block;width:100%;height:100%}h2{margin-top:0;margin-bottom:25px;width:82%}iframe,img{width:100%;height:100%}\n"] }]
718
718
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i2$1.DomSanitizer }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
719
719
  type: Inject,
720
720
  args: [MAT_DIALOG_DATA]
@@ -740,11 +740,11 @@ class DialogDateSelectionComponent extends DialogBaseComponent {
740
740
  this.data = data;
741
741
  }
742
742
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DialogDateSelectionComponent, deps: [{ token: i0.ElementRef }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
743
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: DialogDateSelectionComponent, isStandalone: true, selector: "tg-dialog-date-selection", providers: [], usesInheritance: true, ngImport: i0, template: "<h2>{{data.texts[0]}}</h2>\r\n\r\n<mat-calendar #calendar\r\n (selectedChange)=\"closeDialog(0, $event)\">\r\n</mat-calendar>", styles: [":host{position:relative;min-height:300px}h1{margin-top:0;margin-bottom:25px;width:82%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$2.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "ngmodule", type: MatNativeDateModule }] }); }
743
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: DialogDateSelectionComponent, isStandalone: true, selector: "tg-dialog-date-selection", providers: [], usesInheritance: true, ngImport: i0, template: "<h2>{{data.texts[0]}}</h2>\n\n<mat-calendar #calendar\n (selectedChange)=\"closeDialog(0, $event)\">\n</mat-calendar>", styles: [":host{position:relative;min-height:300px}h1{margin-top:0;margin-bottom:25px;width:82%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$2.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "ngmodule", type: MatNativeDateModule }] }); }
744
744
  }
745
745
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DialogDateSelectionComponent, decorators: [{
746
746
  type: Component,
747
- args: [{ selector: 'tg-dialog-date-selection', imports: [CommonModule, MatDatepickerModule, MatNativeDateModule], providers: [], template: "<h2>{{data.texts[0]}}</h2>\r\n\r\n<mat-calendar #calendar\r\n (selectedChange)=\"closeDialog(0, $event)\">\r\n</mat-calendar>", styles: [":host{position:relative;min-height:300px}h1{margin-top:0;margin-bottom:25px;width:82%}\n"] }]
747
+ args: [{ selector: 'tg-dialog-date-selection', imports: [CommonModule, MatDatepickerModule, MatNativeDateModule], providers: [], template: "<h2>{{data.texts[0]}}</h2>\n\n<mat-calendar #calendar\n (selectedChange)=\"closeDialog(0, $event)\">\n</mat-calendar>", styles: [":host{position:relative;min-height:300px}h1{margin-top:0;margin-bottom:25px;width:82%}\n"] }]
748
748
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
749
749
  type: Inject,
750
750
  args: [MAT_DIALOG_DATA]
@@ -892,7 +892,7 @@ class DialogService extends SingletoneStrictClass {
892
892
  * otherwise it will do nothing.
893
893
  */
894
894
  addCloseApplicationWarning() {
895
- this._windowBeforeUnloadUnListen ??= this._renderer.listen('window', 'beforeunload', (event) => event.returnValue = true);
895
+ this._windowBeforeUnloadUnListen ??= this._renderer.listen('window', 'beforeunload', event => (event.returnValue = true));
896
896
  }
897
897
  /**
898
898
  * Remove the close application warning message if previously assigned
@@ -998,15 +998,21 @@ class DialogService extends SingletoneStrictClass {
998
998
  throw new Error('Trying to show a snackbar while another one is still visible');
999
999
  }
1000
1000
  this._isShowingSnackBar = true;
1001
- return new Promise((resolve) => {
1001
+ return new Promise(resolve => {
1002
1002
  const snackBarRef = this.matSnackBar.open(message, action === '' ? undefined : action, config);
1003
1003
  // Handle action button click
1004
- snackBarRef.onAction().pipe(take(1)).subscribe(() => {
1004
+ snackBarRef
1005
+ .onAction()
1006
+ .pipe(take(1))
1007
+ .subscribe(() => {
1005
1008
  this._isShowingSnackBar = false;
1006
1009
  resolve(true);
1007
1010
  });
1008
1011
  // Handle dismiss
1009
- snackBarRef.afterDismissed().pipe(take(1)).subscribe(() => {
1012
+ snackBarRef
1013
+ .afterDismissed()
1014
+ .pipe(take(1))
1015
+ .subscribe(() => {
1010
1016
  this._isShowingSnackBar = false;
1011
1017
  resolve(false);
1012
1018
  });
@@ -1070,7 +1076,7 @@ class DialogService extends SingletoneStrictClass {
1070
1076
  if (!this._isEnabled) {
1071
1077
  return Promise.resolve({ index: -1 });
1072
1078
  }
1073
- return new Promise((resolve) => {
1079
+ return new Promise(resolve => {
1074
1080
  // Set the default values for non specified properties
1075
1081
  properties.modal = properties.modal ?? false;
1076
1082
  properties.closeOnNavigation = properties.closeOnNavigation ?? !properties.modal;
@@ -1090,14 +1096,18 @@ class DialogService extends SingletoneStrictClass {
1090
1096
  return resolve({ index: -1 });
1091
1097
  }
1092
1098
  let dialogRefConfig = {
1093
- width: properties.width ?? "50%",
1094
- maxWidth: properties.maxWidth ?? "96vw",
1095
- maxHeight: properties.maxHeight ?? "96vh",
1099
+ width: properties.width ?? '50%',
1100
+ maxWidth: properties.maxWidth ?? '96vw',
1101
+ maxHeight: properties.maxHeight ?? '96vh',
1096
1102
  disableClose: properties.modal,
1097
1103
  autoFocus: false,
1098
1104
  closeOnNavigation: properties.closeOnNavigation,
1099
1105
  viewContainerRef: properties.viewContainerRef,
1100
- data: { texts: properties.texts, options: properties.options, data: properties.data }
1106
+ data: {
1107
+ texts: properties.texts,
1108
+ options: properties.options,
1109
+ data: properties.data
1110
+ }
1101
1111
  };
1102
1112
  // Dialog height will only be set if it is specified on properties
1103
1113
  if (properties.height && properties.height !== undefined) {
@@ -1120,7 +1130,10 @@ class DialogService extends SingletoneStrictClass {
1120
1130
  if (properties.closeOnNavigation) {
1121
1131
  this._activeCloseableDialogs += 1;
1122
1132
  }
1123
- dialogRef.beforeClosed().pipe(take(1)).subscribe((selection) => {
1133
+ dialogRef
1134
+ .beforeClosed()
1135
+ .pipe(take(1))
1136
+ .subscribe((selection) => {
1124
1137
  if (properties.scrollLock) {
1125
1138
  this.removeScrollLock();
1126
1139
  }
@@ -1213,38 +1226,16 @@ class DialogService extends SingletoneStrictClass {
1213
1226
  this._renderer.setStyle(hiddenInput, 'display', 'none');
1214
1227
  this._renderer.appendChild(document.body, hiddenInput);
1215
1228
  try {
1216
- const filesBrowserPromise = new Promise((resolve) => {
1217
- let resolved = false;
1218
- const resolveOnce = (files) => {
1219
- if (!resolved) {
1220
- resolved = true;
1221
- window.removeEventListener('focus', onUserInteraction, true);
1222
- document.removeEventListener('keydown', onUserInteraction, true);
1223
- document.removeEventListener('mousedown', onUserInteraction, true);
1224
- document.removeEventListener('pointerdown', onUserInteraction, true);
1225
- document.removeEventListener('mousemove', onUserInteraction, true);
1226
- document.removeEventListener('scroll', onUserInteraction, true);
1227
- hiddenInput.removeEventListener('change', onChange);
1228
- resolve(files);
1229
- }
1230
- };
1231
- // Detect any user activity that may indicate the user has cancelled the file selection
1232
- // Use a short timeout to allow the 'change' event to fire first if files were selected
1233
- const onUserInteraction = () => {
1234
- setTimeout(() => resolveOnce(null), 800);
1235
- };
1236
- // Detect when files are selected by the user
1229
+ const filesBrowserPromise = new Promise(resolve => {
1237
1230
  const onChange = (event) => {
1238
1231
  const fileList = event.target.files;
1239
- resolveOnce(fileList ? Array.from(fileList) : null);
1232
+ resolve(fileList && fileList.length > 0 ? Array.from(fileList) : null);
1233
+ };
1234
+ const onCancel = () => {
1235
+ resolve(null);
1240
1236
  };
1241
- window.addEventListener('focus', onUserInteraction, true);
1242
- document.addEventListener('keydown', onUserInteraction, true);
1243
- document.addEventListener('mousedown', onUserInteraction, true);
1244
- document.addEventListener('pointerdown', onUserInteraction, true);
1245
- document.addEventListener('mousemove', onUserInteraction, true);
1246
- document.addEventListener('scroll', onUserInteraction, true);
1247
1237
  hiddenInput.addEventListener('change', onChange, { once: true });
1238
+ hiddenInput.addEventListener('cancel', onCancel, { once: true });
1248
1239
  hiddenInput.click();
1249
1240
  });
1250
1241
  const files = await filesBrowserPromise;
@@ -1337,10 +1328,10 @@ class DialogService extends SingletoneStrictClass {
1337
1328
  id: properties.id ?? undefined,
1338
1329
  data: properties.url,
1339
1330
  texts: properties.title ? [properties.title] : undefined,
1340
- width: properties.width ?? "85vw",
1341
- maxWidth: properties.maxWidth ?? "1200px",
1342
- height: properties.height ?? "98vh",
1343
- maxHeight: properties.maxHeight ?? "3000px",
1331
+ width: properties.width ?? '85vw',
1332
+ maxWidth: properties.maxWidth ?? '1200px',
1333
+ height: properties.height ?? '98vh',
1334
+ maxHeight: properties.maxHeight ?? '3000px',
1344
1335
  scrollLock: properties.scrollLock ?? false,
1345
1336
  modal: properties.modal ?? false
1346
1337
  });
@@ -1371,10 +1362,10 @@ class DialogService extends SingletoneStrictClass {
1371
1362
  id: properties.id ?? undefined,
1372
1363
  data: properties.url,
1373
1364
  texts: properties.title ? [properties.title] : undefined,
1374
- width: properties.width ?? "85vw",
1375
- maxWidth: properties.maxWidth ?? "1200px",
1376
- height: properties.height ?? "98vh",
1377
- maxHeight: properties.maxHeight ?? "3000px",
1365
+ width: properties.width ?? '85vw',
1366
+ maxWidth: properties.maxWidth ?? '1200px',
1367
+ height: properties.height ?? '98vh',
1368
+ maxHeight: properties.maxHeight ?? '3000px',
1378
1369
  scrollLock: properties.scrollLock ?? false,
1379
1370
  modal: properties.modal ?? false
1380
1371
  });
@@ -1406,10 +1397,10 @@ class DialogService extends SingletoneStrictClass {
1406
1397
  id: properties.id ?? undefined,
1407
1398
  data: { blob: properties.blob, mimeType: 'application/pdf' },
1408
1399
  texts: properties.title ? [properties.title] : undefined,
1409
- width: properties.width ?? "85vw",
1410
- maxWidth: properties.maxWidth ?? "1200px",
1411
- height: properties.height ?? "98vh",
1412
- maxHeight: properties.maxHeight ?? "3000px",
1400
+ width: properties.width ?? '85vw',
1401
+ maxWidth: properties.maxWidth ?? '1200px',
1402
+ height: properties.height ?? '98vh',
1403
+ maxHeight: properties.maxHeight ?? '3000px',
1413
1404
  scrollLock: properties.scrollLock ?? false,
1414
1405
  modal: properties.modal ?? false
1415
1406
  });
@@ -1438,10 +1429,10 @@ class DialogService extends SingletoneStrictClass {
1438
1429
  }
1439
1430
  const selection = await this.addDialog(DialogDateSelectionComponent, {
1440
1431
  id: properties.id ?? undefined,
1441
- width: properties.width ?? "50%",
1442
- maxWidth: properties.maxWidth ?? "96vw",
1443
- height: properties.height ?? "auto",
1444
- maxHeight: properties.maxHeight ?? "92vw",
1432
+ width: properties.width ?? '50%',
1433
+ maxWidth: properties.maxWidth ?? '96vw',
1434
+ height: properties.height ?? 'auto',
1435
+ maxHeight: properties.maxHeight ?? '92vw',
1445
1436
  scrollLock: properties.scrollLock ?? false,
1446
1437
  modal: properties.modal ?? false,
1447
1438
  texts: [properties.title ?? ''],
@@ -1478,10 +1469,10 @@ class DialogService extends SingletoneStrictClass {
1478
1469
  }
1479
1470
  await this.addDialog(properties.dialogClass ?? DialogErrorComponent, {
1480
1471
  id: properties.id ?? undefined,
1481
- width: properties.width ?? "70%",
1482
- maxWidth: properties.maxWidth ?? "500px",
1483
- height: properties.height ?? "auto",
1484
- maxHeight: properties.maxHeight ?? "92vw",
1472
+ width: properties.width ?? '70%',
1473
+ maxWidth: properties.maxWidth ?? '500px',
1474
+ height: properties.height ?? 'auto',
1475
+ maxHeight: properties.maxHeight ?? '92vw',
1485
1476
  scrollLock: properties.scrollLock ?? false,
1486
1477
  modal: properties.modal ?? false,
1487
1478
  texts: texts,
@@ -1553,9 +1544,9 @@ class DialogService extends SingletoneStrictClass {
1553
1544
  * Block all the user interactions with the application (keyboard, touch, mouse, ...)
1554
1545
  */
1555
1546
  _disableUserInteraction() {
1556
- this._documentKeydownUnlisten ??= this._renderer.listen('document', 'keydown', (event) => event.preventDefault());
1557
- this._documentMousedownUnlisten ??= this._renderer.listen('document', 'mousedown', (event) => event.preventDefault());
1558
- this._documentPointerdownUnlisten ??= this._renderer.listen('document', 'pointerdown', (event) => event.preventDefault());
1547
+ this._documentKeydownUnlisten ??= this._renderer.listen('document', 'keydown', event => event.preventDefault());
1548
+ this._documentMousedownUnlisten ??= this._renderer.listen('document', 'mousedown', event => event.preventDefault());
1549
+ this._documentPointerdownUnlisten ??= this._renderer.listen('document', 'pointerdown', event => event.preventDefault());
1559
1550
  }
1560
1551
  /**
1561
1552
  * Restore the user interactions that were previously disabled with _disableUserInteraction method
@@ -1580,7 +1571,7 @@ class DialogService extends SingletoneStrictClass {
1580
1571
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DialogService, decorators: [{
1581
1572
  type: Injectable,
1582
1573
  args: [{
1583
- providedIn: 'root',
1574
+ providedIn: 'root'
1584
1575
  }]
1585
1576
  }], ctorParameters: () => [{ type: i0.RendererFactory2 }, { type: i1$1.MatSnackBar }, { type: i1.MatDialog }, { type: i0.Injector }, { type: i0.ApplicationRef }, { type: i0.EnvironmentInjector }] });
1586
1577
 
@@ -3229,12 +3220,12 @@ class DialogSingleInputComponent extends DialogBaseComponent {
3229
3220
  super.closeDialog(0, this.inputText);
3230
3221
  }
3231
3222
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DialogSingleInputComponent, deps: [{ token: i0.ElementRef }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
3232
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: DialogSingleInputComponent, isStandalone: true, selector: "tg-dialog-single-input", providers: [], usesInheritance: true, ngImport: i0, template: "<h3>\r\n {{data.texts[0]}}\r\n</h3>\r\n\r\n<p *ngIf=\"data.texts.length > 1 && data.texts[1] !== ''\">\r\n {{data.texts[1]}}\r\n</p>\r\n\r\n<mat-form-field>\r\n\r\n <mat-label>{{data.texts[2]}}</mat-label>\r\n <input matInput autoFocusOnDisplay autoSelectTextOnFocus\r\n (keyup.enter)=\"closeDialog()\"\r\n [(ngModel)]=\"inputText\">\r\n \r\n</mat-form-field>\r\n\r\n<button mat-raised-button color=\"primary\"\r\n [disabled]=\"isButtonDisabled()\"\r\n (click)=\"closeDialog()\">\r\n \r\n {{data.options[0]}}\r\n \r\n</button>", styles: [":host{min-height:300px}h3{margin-top:1vh;margin-bottom:3vh}p{margin-top:0;margin-bottom:5vh}button{min-height:5vh}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TurboGuiAngularModule }, { kind: "directive", type: AutoFocusOnDisplayDirective, selector: "[autoFocusOnDisplay]" }, { kind: "directive", type: AutoSelectTextOnFocusDirective, selector: "[autoSelectTextOnFocus]" }] }); }
3223
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: DialogSingleInputComponent, isStandalone: true, selector: "tg-dialog-single-input", providers: [], usesInheritance: true, ngImport: i0, template: "<h3>\n {{data.texts[0]}}\n</h3>\n\n<p *ngIf=\"data.texts.length > 1 && data.texts[1] !== ''\">\n {{data.texts[1]}}\n</p>\n\n<mat-form-field>\n\n <mat-label>{{data.texts[2]}}</mat-label>\n <input matInput autoFocusOnDisplay autoSelectTextOnFocus\n (keyup.enter)=\"closeDialog()\"\n [(ngModel)]=\"inputText\">\n \n</mat-form-field>\n\n<button mat-raised-button color=\"primary\"\n [disabled]=\"isButtonDisabled()\"\n (click)=\"closeDialog()\">\n \n {{data.options[0]}}\n \n</button>", styles: [":host{min-height:300px}h3{margin-top:1vh;margin-bottom:3vh}p{margin-top:0;margin-bottom:5vh}button{min-height:5vh}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TurboGuiAngularModule }, { kind: "directive", type: AutoFocusOnDisplayDirective, selector: "[autoFocusOnDisplay]" }, { kind: "directive", type: AutoSelectTextOnFocusDirective, selector: "[autoSelectTextOnFocus]" }] }); }
3233
3224
  }
3234
3225
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DialogSingleInputComponent, decorators: [{
3235
3226
  type: Component,
3236
3227
  args: [{ selector: 'tg-dialog-single-input', imports: [CommonModule, MatButtonModule, MatInputModule, FormsModule,
3237
- TurboGuiAngularModule], providers: [], template: "<h3>\r\n {{data.texts[0]}}\r\n</h3>\r\n\r\n<p *ngIf=\"data.texts.length > 1 && data.texts[1] !== ''\">\r\n {{data.texts[1]}}\r\n</p>\r\n\r\n<mat-form-field>\r\n\r\n <mat-label>{{data.texts[2]}}</mat-label>\r\n <input matInput autoFocusOnDisplay autoSelectTextOnFocus\r\n (keyup.enter)=\"closeDialog()\"\r\n [(ngModel)]=\"inputText\">\r\n \r\n</mat-form-field>\r\n\r\n<button mat-raised-button color=\"primary\"\r\n [disabled]=\"isButtonDisabled()\"\r\n (click)=\"closeDialog()\">\r\n \r\n {{data.options[0]}}\r\n \r\n</button>", styles: [":host{min-height:300px}h3{margin-top:1vh;margin-bottom:3vh}p{margin-top:0;margin-bottom:5vh}button{min-height:5vh}\n"] }]
3228
+ TurboGuiAngularModule], providers: [], template: "<h3>\n {{data.texts[0]}}\n</h3>\n\n<p *ngIf=\"data.texts.length > 1 && data.texts[1] !== ''\">\n {{data.texts[1]}}\n</p>\n\n<mat-form-field>\n\n <mat-label>{{data.texts[2]}}</mat-label>\n <input matInput autoFocusOnDisplay autoSelectTextOnFocus\n (keyup.enter)=\"closeDialog()\"\n [(ngModel)]=\"inputText\">\n \n</mat-form-field>\n\n<button mat-raised-button color=\"primary\"\n [disabled]=\"isButtonDisabled()\"\n (click)=\"closeDialog()\">\n \n {{data.options[0]}}\n \n</button>", styles: [":host{min-height:300px}h3{margin-top:1vh;margin-bottom:3vh}p{margin-top:0;margin-bottom:5vh}button{min-height:5vh}\n"] }]
3238
3229
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
3239
3230
  type: Inject,
3240
3231
  args: [MAT_DIALOG_DATA]
@@ -3655,6 +3646,17 @@ class DebounceTimeManager {
3655
3646
  * until that Promise resolves or rejects.
3656
3647
  *
3657
3648
  * @param method The function to execute.
3649
+ *
3650
+ * @example
3651
+ * // Queue an async function
3652
+ * debouncer.queue(async () => {
3653
+ * await myApiService.getData();
3654
+ * });
3655
+ *
3656
+ * // Queue a sync function
3657
+ * debouncer.queue(() => {
3658
+ * console.log("Hello World");
3659
+ * });
3658
3660
  */
3659
3661
  queue(method) {
3660
3662
  this._isActive = true;