cps-ui-kit 17.21.0 → 17.22.0

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.
@@ -1,4 +1,4 @@
1
- import { Injectable, Inject, createComponent, createEnvironmentInjector } from '@angular/core';
1
+ import { Injectable, Inject, createComponent, createEnvironmentInjector, Optional, SkipSelf } from '@angular/core';
2
2
  import { DOCUMENT } from '@angular/common';
3
3
  import { CpsDialogRef } from './utils/cps-dialog-ref';
4
4
  import { CpsDialogConfig } from './utils/cps-dialog-config';
@@ -10,13 +10,20 @@ import * as i0 from "@angular/core";
10
10
  * @group Services
11
11
  */
12
12
  export class CpsDialogService {
13
+ get openDialogs() {
14
+ return this._parentDialogService
15
+ ? this._parentDialogService.openDialogs
16
+ : this._openDialogsAtThisLevel;
17
+ }
13
18
  // eslint-disable-next-line no-useless-constructor
14
- constructor(_appRef, _environmentInjector, _injector, document) {
19
+ constructor(_appRef, _environmentInjector, _injector, document, _parentDialogService) {
15
20
  this._appRef = _appRef;
16
21
  this._environmentInjector = _environmentInjector;
17
22
  this._injector = _injector;
18
23
  this.document = document;
24
+ this._parentDialogService = _parentDialogService;
19
25
  this.dialogComponentRefMap = new Map();
26
+ this._openDialogsAtThisLevel = [];
20
27
  }
21
28
  /**
22
29
  * Opens a dialog with a dynamically loaded component.
@@ -61,12 +68,12 @@ export class CpsDialogService {
61
68
  * @group Method
62
69
  */
63
70
  closeAll(force = false) {
64
- this.dialogComponentRefMap.forEach((_, key) => {
71
+ this._reverseForEach(this.openDialogs, (dialogRef) => {
65
72
  if (force) {
66
- key.destroy();
73
+ dialogRef.destroy();
67
74
  }
68
75
  else {
69
- key.close();
76
+ dialogRef.close();
70
77
  }
71
78
  });
72
79
  }
@@ -94,6 +101,7 @@ export class CpsDialogService {
94
101
  .rootNodes[0];
95
102
  this.document.body.appendChild(domElem);
96
103
  this.dialogComponentRefMap.set(dialogRef, componentRef);
104
+ this.openDialogs.push(dialogRef);
97
105
  dialogRef._setContainerInstance(componentRef.instance);
98
106
  return dialogRef;
99
107
  }
@@ -107,8 +115,21 @@ export class CpsDialogService {
107
115
  dialogComponentRef.destroy();
108
116
  this.dialogComponentRefMap.delete(dialogRef);
109
117
  }
118
+ const index = this.openDialogs.indexOf(dialogRef);
119
+ if (index > -1) {
120
+ this.openDialogs.splice(index, 1);
121
+ }
122
+ }
123
+ ngOnDestroy() {
124
+ this._reverseForEach(this._openDialogsAtThisLevel, (dialogRef) => dialogRef.destroy());
125
+ }
126
+ _reverseForEach(items, callback) {
127
+ let i = items.length;
128
+ while (i--) {
129
+ callback(items[i]);
130
+ }
110
131
  }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsDialogService, deps: [{ token: i0.ApplicationRef }, { token: i0.EnvironmentInjector }, { token: i0.Injector }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
132
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsDialogService, deps: [{ token: i0.ApplicationRef }, { token: i0.EnvironmentInjector }, { token: i0.Injector }, { token: DOCUMENT }, { token: CpsDialogService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
112
133
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsDialogService, providedIn: 'root' }); }
113
134
  }
114
135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsDialogService, decorators: [{
@@ -117,5 +138,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
117
138
  }], ctorParameters: () => [{ type: i0.ApplicationRef }, { type: i0.EnvironmentInjector }, { type: i0.Injector }, { type: Document, decorators: [{
118
139
  type: Inject,
119
140
  args: [DOCUMENT]
141
+ }] }, { type: CpsDialogService, decorators: [{
142
+ type: Optional
143
+ }, {
144
+ type: SkipSelf
120
145
  }] }] });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLWRpYWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL3NlcnZpY2VzL2Nwcy1kaWFsb2cvY3BzLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBSVYsTUFBTSxFQUVOLGVBQWUsRUFFZix5QkFBeUIsRUFFMUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDM0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUVBQW1FLENBQUM7O0FBRTdHOzs7R0FHRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFJM0Isa0RBQWtEO0lBQ2xELFlBQ1UsT0FBdUIsRUFDdkIsb0JBQXlDLEVBQ3pDLFNBQW1CLEVBQ0QsUUFBa0I7UUFIcEMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6QyxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ0QsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVI5QywwQkFBcUIsR0FDbkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQVFULENBQUM7SUFFSjs7Ozs7O09BTUc7SUFDSSxJQUFJLENBQUMsYUFBd0IsRUFBRSxNQUF1QjtRQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxTQUFT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QzVELFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3hELFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdkQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVPLDZCQUE2QixDQUFDLFNBQXVCO1FBQzNELElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDN0QsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckUsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JELGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7OEdBakhVLGdCQUFnQiwyR0FTakIsUUFBUTtrSEFUUCxnQkFBZ0IsY0FESCxNQUFNOzsyRkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBVTdCLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIFR5cGUsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgQ29tcG9uZW50UmVmLFxuICBJbmplY3QsXG4gIEFwcGxpY2F0aW9uUmVmLFxuICBjcmVhdGVDb21wb25lbnQsXG4gIEVudmlyb25tZW50SW5qZWN0b3IsXG4gIGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3IsXG4gIEluamVjdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ3BzRGlhbG9nUmVmIH0gZnJvbSAnLi91dGlscy9jcHMtZGlhbG9nLXJlZic7XG5pbXBvcnQgeyBDcHNEaWFsb2dDb25maWcgfSBmcm9tICcuL3V0aWxzL2Nwcy1kaWFsb2ctY29uZmlnJztcbmltcG9ydCB7IENwc0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vaW50ZXJuYWwvY29tcG9uZW50cy9jcHMtZGlhbG9nL2Nwcy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENwc0NvbmZpcm1hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vaW50ZXJuYWwvY29tcG9uZW50cy9jcHMtY29uZmlybWF0aW9uL2Nwcy1jb25maXJtYXRpb24uY29tcG9uZW50JztcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciBzaG93aW5nIENwc0RpYWxvZy5cbiAqIEBncm91cCBTZXJ2aWNlc1xuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIENwc0RpYWxvZ1NlcnZpY2Uge1xuICBkaWFsb2dDb21wb25lbnRSZWZNYXA6IE1hcDxDcHNEaWFsb2dSZWYsIENvbXBvbmVudFJlZjxDcHNEaWFsb2dDb21wb25lbnQ+PiA9XG4gICAgbmV3IE1hcCgpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWNvbnN0cnVjdG9yXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2FwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSBfZW52aXJvbm1lbnRJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnRcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBPcGVucyBhIGRpYWxvZyB3aXRoIGEgZHluYW1pY2FsbHkgbG9hZGVkIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHsqfSBjb21wb25lbnRUeXBlIC0gRHluYW1pYyBjb21wb25lbnQgZm9yIGNvbnRlbnQgdGVtcGxhdGUuXG4gICAqIEBwYXJhbSB7Q3BzRGlhbG9nQ29uZmlnfSBjb25maWcgLSBDcHNEaWFsb2dDb25maWcgb2JqZWN0LlxuICAgKiBAcmV0dXJucyB7Q3BzRGlhbG9nUmVmfSBDcHNEaWFsb2dSZWYgaW5zdGFuY2UuXG4gICAqIEBncm91cCBNZXRob2RcbiAgICovXG4gIHB1YmxpYyBvcGVuKGNvbXBvbmVudFR5cGU6IFR5cGU8YW55PiwgY29uZmlnOiBDcHNEaWFsb2dDb25maWcpOiBDcHNEaWFsb2dSZWYge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuYXBwZW5kRGlhbG9nQ29tcG9uZW50VG9Cb2R5KGNvbmZpZyk7XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuZGlhbG9nQ29tcG9uZW50UmVmTWFwLmdldChkaWFsb2dSZWYpPy5pbnN0YW5jZTtcbiAgICBpZiAoaW5zdGFuY2UpIGluc3RhbmNlLmNoaWxkQ29tcG9uZW50VHlwZSA9IGNvbXBvbmVudFR5cGU7XG5cbiAgICByZXR1cm4gZGlhbG9nUmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgY29uZmlybWF0aW9uIGRpYWxvZy5cbiAgICogQHBhcmFtIHtDcHNEaWFsb2dDb25maWd9IGNvbmZpZyAtIENwc0RpYWxvZ0NvbmZpZyBvYmplY3QuXG4gICAqIEByZXR1cm5zIHtDcHNEaWFsb2dSZWZ9IENwc0RpYWxvZ1JlZiBpbnN0YW5jZS5cbiAgICogQGdyb3VwIE1ldGhvZFxuICAgKi9cbiAgcHVibGljIG9wZW5Db25maXJtYXRpb25EaWFsb2coY29uZmlnOiBDcHNEaWFsb2dDb25maWcpOiBDcHNEaWFsb2dSZWYge1xuICAgIGlmICghY29uZmlnLmhlYWRlclRpdGxlKSBjb25maWcuaGVhZGVyVGl0bGUgPSAnQ29uZmlybSB0aGUgYWN0aW9uJztcbiAgICBpZiAoIWNvbmZpZy5oZWFkZXJJY29uKSBjb25maWcuaGVhZGVySWNvbiA9ICd3YXJuaW5nJztcbiAgICBpZiAoIWNvbmZpZy5oZWFkZXJJY29uQ29sb3IpIGNvbmZpZy5oZWFkZXJJY29uQ29sb3IgPSAnY2FsbSc7XG4gICAgaWYgKCFjb25maWcubWluV2lkdGgpIGNvbmZpZy5taW5XaWR0aCA9ICc0MDBweCc7XG4gICAgaWYgKCFjb25maWcubWF4V2lkdGgpIGNvbmZpZy5tYXhXaWR0aCA9ICc2MDBweCc7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5hcHBlbmREaWFsb2dDb21wb25lbnRUb0JvZHkoY29uZmlnKTtcblxuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5kaWFsb2dDb21wb25lbnRSZWZNYXAuZ2V0KGRpYWxvZ1JlZik/Lmluc3RhbmNlO1xuICAgIGlmIChpbnN0YW5jZSkgaW5zdGFuY2UuY2hpbGRDb21wb25lbnRUeXBlID0gQ3BzQ29uZmlybWF0aW9uQ29tcG9uZW50O1xuXG4gICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYWxsIGRpYWxvZ3MuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2ZvcmNlPWZhbHNlXSAtIElmIHRydWUgY2xvc2VzIGFsbCBkaWFsb2dzIGV2ZW4gaWYgdGhleSBoYXZlIGRpc2FibGVDbG9zZSBzZXQgdG8gdHJ1ZS5cbiAgICogQGdyb3VwIE1ldGhvZFxuICAgKi9cbiAgcHVibGljIGNsb3NlQWxsKGZvcmNlID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLmRpYWxvZ0NvbXBvbmVudFJlZk1hcC5mb3JFYWNoKChfLCBrZXkpID0+IHtcbiAgICAgIGlmIChmb3JjZSkge1xuICAgICAgICBrZXkuZGVzdHJveSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAga2V5LmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGVuZERpYWxvZ0NvbXBvbmVudFRvQm9keShjb25maWc6IENwc0RpYWxvZ0NvbmZpZykge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IG5ldyBDcHNEaWFsb2dSZWYoKTtcblxuICAgIGNvbnN0IHN1YiA9IGRpYWxvZ1JlZi5vbkNsb3NlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmRpYWxvZ0NvbXBvbmVudFJlZk1hcC5nZXQoZGlhbG9nUmVmKT8uaW5zdGFuY2UuY2xvc2UoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlc3Ryb3lTdWIgPSBkaWFsb2dSZWYub25EZXN0cm95LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlbW92ZURpYWxvZ0NvbXBvbmVudEZyb21Cb2R5KGRpYWxvZ1JlZik7XG4gICAgICBkZXN0cm95U3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNyZWF0ZUNvbXBvbmVudChDcHNEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3IoXG4gICAgICAgIFtcbiAgICAgICAgICB7IHByb3ZpZGU6IENwc0RpYWxvZ0NvbmZpZywgdXNlVmFsdWU6IGNvbmZpZyB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogQ3BzRGlhbG9nUmVmLCB1c2VWYWx1ZTogZGlhbG9nUmVmIH1cbiAgICAgICAgXSxcbiAgICAgICAgdGhpcy5fZW52aXJvbm1lbnRJbmplY3RvclxuICAgICAgKSxcbiAgICAgIGVsZW1lbnRJbmplY3RvcjpcbiAgICAgICAgdGhpcy5faW5qZWN0b3IgIT09IHRoaXMuX2Vudmlyb25tZW50SW5qZWN0b3JcbiAgICAgICAgICA/IHRoaXMuX2luamVjdG9yXG4gICAgICAgICAgOiB1bmRlZmluZWRcbiAgICB9KTtcblxuICAgIHRoaXMuX2FwcFJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG5cbiAgICBjb25zdCBkb21FbGVtID0gKGNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55PilcbiAgICAgIC5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuXG4gICAgdGhpcy5kaWFsb2dDb21wb25lbnRSZWZNYXAuc2V0KGRpYWxvZ1JlZiwgY29tcG9uZW50UmVmKTtcbiAgICBkaWFsb2dSZWYuX3NldENvbnRhaW5lckluc3RhbmNlKGNvbXBvbmVudFJlZi5pbnN0YW5jZSk7XG5cbiAgICByZXR1cm4gZGlhbG9nUmVmO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVEaWFsb2dDb21wb25lbnRGcm9tQm9keShkaWFsb2dSZWY6IENwc0RpYWxvZ1JlZikge1xuICAgIGlmICghZGlhbG9nUmVmIHx8ICF0aGlzLmRpYWxvZ0NvbXBvbmVudFJlZk1hcC5oYXMoZGlhbG9nUmVmKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRpYWxvZ0NvbXBvbmVudFJlZiA9IHRoaXMuZGlhbG9nQ29tcG9uZW50UmVmTWFwLmdldChkaWFsb2dSZWYpO1xuICAgIGlmIChkaWFsb2dDb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMuX2FwcFJlZi5kZXRhY2hWaWV3KGRpYWxvZ0NvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICBkaWFsb2dDb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy5kaWFsb2dDb21wb25lbnRSZWZNYXAuZGVsZXRlKGRpYWxvZ1JlZik7XG4gICAgfVxuICB9XG59XG4iXX0=
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLWRpYWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL3NlcnZpY2VzL2Nwcy1kaWFsb2cvY3BzLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBSVYsTUFBTSxFQUVOLGVBQWUsRUFFZix5QkFBeUIsRUFFekIsUUFBUSxFQUNSLFFBQVEsRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQzs7QUFFN0c7OztHQUdHO0FBRUgsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxvQkFBb0I7WUFDOUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXO1lBQ3ZDLENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUM7SUFDbkMsQ0FBQztJQU9ELGtEQUFrRDtJQUNsRCxZQUNVLE9BQXVCLEVBQ3ZCLG9CQUF5QyxFQUN6QyxTQUFtQixFQUNELFFBQWtCLEVBQ1osb0JBQXNDO1FBSjlELFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDWix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQWtCO1FBWHhFLDBCQUFxQixH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QUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWxELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUMvRCxTQUFTLENBQUMsT0FBTyxFQUFFLENBQ3BCLENBQUM7SUFDSixDQUFDO0lBRU8sZUFBZSxDQUNyQixLQUF5QixFQUN6QixRQUE4QjtRQUU5QixJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBRXJCLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNYLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQzs4R0FsSlUsZ0JBQWdCLDJHQWlCakIsUUFBUTtrSEFqQlAsZ0JBQWdCLGNBREgsTUFBTTs7MkZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQWtCN0IsTUFBTTsyQkFBQyxRQUFROzswQkFDZixRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZSxcbiAgVHlwZSxcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBDb21wb25lbnRSZWYsXG4gIEluamVjdCxcbiAgQXBwbGljYXRpb25SZWYsXG4gIGNyZWF0ZUNvbXBvbmVudCxcbiAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgY3JlYXRlRW52aXJvbm1lbnRJbmplY3RvcixcbiAgSW5qZWN0b3IsXG4gIE9wdGlvbmFsLFxuICBTa2lwU2VsZixcbiAgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ3BzRGlhbG9nUmVmIH0gZnJvbSAnLi91dGlscy9jcHMtZGlhbG9nLXJlZic7XG5pbXBvcnQgeyBDcHNEaWFsb2dDb25maWcgfSBmcm9tICcuL3V0aWxzL2Nwcy1kaWFsb2ctY29uZmlnJztcbmltcG9ydCB7IENwc0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vaW50ZXJuYWwvY29tcG9uZW50cy9jcHMtZGlhbG9nL2Nwcy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENwc0NvbmZpcm1hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vaW50ZXJuYWwvY29tcG9uZW50cy9jcHMtY29uZmlybWF0aW9uL2Nwcy1jb25maXJtYXRpb24uY29tcG9uZW50JztcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciBzaG93aW5nIENwc0RpYWxvZy5cbiAqIEBncm91cCBTZXJ2aWNlc1xuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIENwc0RpYWxvZ1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBnZXQgb3BlbkRpYWxvZ3MoKTogQ3BzRGlhbG9nUmVmPGFueT5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudERpYWxvZ1NlcnZpY2VcbiAgICAgID8gdGhpcy5fcGFyZW50RGlhbG9nU2VydmljZS5vcGVuRGlhbG9nc1xuICAgICAgOiB0aGlzLl9vcGVuRGlhbG9nc0F0VGhpc0xldmVsO1xuICB9XG5cbiAgZGlhbG9nQ29tcG9uZW50UmVmTWFwOiBNYXA8Q3BzRGlhbG9nUmVmLCBDb21wb25lbnRSZWY8Q3BzRGlhbG9nQ29tcG9uZW50Pj4gPVxuICAgIG5ldyBNYXAoKTtcblxuICBwcml2YXRlIF9vcGVuRGlhbG9nc0F0VGhpc0xldmVsOiBDcHNEaWFsb2dSZWY8YW55PltdID0gW107XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIF9lbnZpcm9ubWVudEluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwcml2YXRlIF9wYXJlbnREaWFsb2dTZXJ2aWNlOiBDcHNEaWFsb2dTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogT3BlbnMgYSBkaWFsb2cgd2l0aCBhIGR5bmFtaWNhbGx5IGxvYWRlZCBjb21wb25lbnQuXG4gICAqIEBwYXJhbSB7Kn0gY29tcG9uZW50VHlwZSAtIER5bmFtaWMgY29tcG9uZW50IGZvciBjb250ZW50IHRlbXBsYXRlLlxuICAgKiBAcGFyYW0ge0Nwc0RpYWxvZ0NvbmZpZ30gY29uZmlnIC0gQ3BzRGlhbG9nQ29uZmlnIG9iamVjdC5cbiAgICogQHJldHVybnMge0Nwc0RpYWxvZ1JlZn0gQ3BzRGlhbG9nUmVmIGluc3RhbmNlLlxuICAgKiBAZ3JvdXAgTWV0aG9kXG4gICAqL1xuICBwdWJsaWMgb3Blbihjb21wb25lbnRUeXBlOiBUeXBlPGFueT4sIGNvbmZpZzogQ3BzRGlhbG9nQ29uZmlnKTogQ3BzRGlhbG9nUmVmIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmFwcGVuZERpYWxvZ0NvbXBvbmVudFRvQm9keShjb25maWcpO1xuXG4gICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmRpYWxvZ0NvbXBvbmVudFJlZk1hcC5nZXQoZGlhbG9nUmVmKT8uaW5zdGFuY2U7XG4gICAgaWYgKGluc3RhbmNlKSBpbnN0YW5jZS5jaGlsZENvbXBvbmVudFR5cGUgPSBjb21wb25lbnRUeXBlO1xuXG4gICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyBhIGNvbmZpcm1hdGlvbiBkaWFsb2cuXG4gICAqIEBwYXJhbSB7Q3BzRGlhbG9nQ29uZmlnfSBjb25maWcgLSBDcHNEaWFsb2dDb25maWcgb2JqZWN0LlxuICAgKiBAcmV0dXJucyB7Q3BzRGlhbG9nUmVmfSBDcHNEaWFsb2dSZWYgaW5zdGFuY2UuXG4gICAqIEBncm91cCBNZXRob2RcbiAgICovXG4gIHB1YmxpYyBvcGVuQ29uZmlybWF0aW9uRGlhbG9nKGNvbmZpZzogQ3BzRGlhbG9nQ29uZmlnKTogQ3BzRGlhbG9nUmVmIHtcbiAgICBpZiAoIWNvbmZpZy5oZWFkZXJUaXRsZSkgY29uZmlnLmhlYWRlclRpdGxlID0gJ0NvbmZpcm0gdGhlIGFjdGlvbic7XG4gICAgaWYgKCFjb25maWcuaGVhZGVySWNvbikgY29uZmlnLmhlYWRlckljb24gPSAnd2FybmluZyc7XG4gICAgaWYgKCFjb25maWcuaGVhZGVySWNvbkNvbG9yKSBjb25maWcuaGVhZGVySWNvbkNvbG9yID0gJ2NhbG0nO1xuICAgIGlmICghY29uZmlnLm1pbldpZHRoKSBjb25maWcubWluV2lkdGggPSAnNDAwcHgnO1xuICAgIGlmICghY29uZmlnLm1heFdpZHRoKSBjb25maWcubWF4V2lkdGggPSAnNjAwcHgnO1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuYXBwZW5kRGlhbG9nQ29tcG9uZW50VG9Cb2R5KGNvbmZpZyk7XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuZGlhbG9nQ29tcG9uZW50UmVmTWFwLmdldChkaWFsb2dSZWYpPy5pbnN0YW5jZTtcbiAgICBpZiAoaW5zdGFuY2UpIGluc3RhbmNlLmNoaWxkQ29tcG9uZW50VHlwZSA9IENwc0NvbmZpcm1hdGlvbkNvbXBvbmVudDtcblxuICAgIHJldHVybiBkaWFsb2dSZWY7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIGFsbCBkaWFsb2dzLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmb3JjZT1mYWxzZV0gLSBJZiB0cnVlIGNsb3NlcyBhbGwgZGlhbG9ncyBldmVuIGlmIHRoZXkgaGF2ZSBkaXNhYmxlQ2xvc2Ugc2V0IHRvIHRydWUuXG4gICAqIEBncm91cCBNZXRob2RcbiAgICovXG4gIHB1YmxpYyBjbG9zZUFsbChmb3JjZSA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5fcmV2ZXJzZUZvckVhY2godGhpcy5vcGVuRGlhbG9ncywgKGRpYWxvZ1JlZikgPT4ge1xuICAgICAgaWYgKGZvcmNlKSB7XG4gICAgICAgIGRpYWxvZ1JlZi5kZXN0cm95KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkaWFsb2dSZWYuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kRGlhbG9nQ29tcG9uZW50VG9Cb2R5KGNvbmZpZzogQ3BzRGlhbG9nQ29uZmlnKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gbmV3IENwc0RpYWxvZ1JlZigpO1xuXG4gICAgY29uc3Qgc3ViID0gZGlhbG9nUmVmLm9uQ2xvc2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZGlhbG9nQ29tcG9uZW50UmVmTWFwLmdldChkaWFsb2dSZWYpPy5pbnN0YW5jZS5jbG9zZSgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgZGVzdHJveVN1YiA9IGRpYWxvZ1JlZi5vbkRlc3Ryb3kuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVtb3ZlRGlhbG9nQ29tcG9uZW50RnJvbUJvZHkoZGlhbG9nUmVmKTtcbiAgICAgIGRlc3Ryb3lTdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gY3JlYXRlQ29tcG9uZW50KENwc0RpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjogY3JlYXRlRW52aXJvbm1lbnRJbmplY3RvcihcbiAgICAgICAgW1xuICAgICAgICAgIHsgcHJvdmlkZTogQ3BzRGlhbG9nQ29uZmlnLCB1c2VWYWx1ZTogY29uZmlnIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBDcHNEaWFsb2dSZWYsIHVzZVZhbHVlOiBkaWFsb2dSZWYgfVxuICAgICAgICBdLFxuICAgICAgICB0aGlzLl9lbnZpcm9ubWVudEluamVjdG9yXG4gICAgICApLFxuICAgICAgZWxlbWVudEluamVjdG9yOlxuICAgICAgICB0aGlzLl9pbmplY3RvciAhPT0gdGhpcy5fZW52aXJvbm1lbnRJbmplY3RvclxuICAgICAgICAgID8gdGhpcy5faW5qZWN0b3JcbiAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgIH0pO1xuXG4gICAgdGhpcy5fYXBwUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcblxuICAgIGNvbnN0IGRvbUVsZW0gPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KVxuICAgICAgLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XG5cbiAgICB0aGlzLmRpYWxvZ0NvbXBvbmVudFJlZk1hcC5zZXQoZGlhbG9nUmVmLCBjb21wb25lbnRSZWYpO1xuICAgIHRoaXMub3BlbkRpYWxvZ3MucHVzaChkaWFsb2dSZWYpO1xuICAgIGRpYWxvZ1JlZi5fc2V0Q29udGFpbmVySW5zdGFuY2UoY29tcG9uZW50UmVmLmluc3RhbmNlKTtcblxuICAgIHJldHVybiBkaWFsb2dSZWY7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZURpYWxvZ0NvbXBvbmVudEZyb21Cb2R5KGRpYWxvZ1JlZjogQ3BzRGlhbG9nUmVmKSB7XG4gICAgaWYgKCFkaWFsb2dSZWYgfHwgIXRoaXMuZGlhbG9nQ29tcG9uZW50UmVmTWFwLmhhcyhkaWFsb2dSZWYpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGlhbG9nQ29tcG9uZW50UmVmID0gdGhpcy5kaWFsb2dDb21wb25lbnRSZWZNYXAuZ2V0KGRpYWxvZ1JlZik7XG4gICAgaWYgKGRpYWxvZ0NvbXBvbmVudFJlZikge1xuICAgICAgdGhpcy5fYXBwUmVmLmRldGFjaFZpZXcoZGlhbG9nQ29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgIGRpYWxvZ0NvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLmRpYWxvZ0NvbXBvbmVudFJlZk1hcC5kZWxldGUoZGlhbG9nUmVmKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbmRleCA9IHRoaXMub3BlbkRpYWxvZ3MuaW5kZXhPZihkaWFsb2dSZWYpO1xuXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMub3BlbkRpYWxvZ3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXZlcnNlRm9yRWFjaCh0aGlzLl9vcGVuRGlhbG9nc0F0VGhpc0xldmVsLCAoZGlhbG9nUmVmKSA9PlxuICAgICAgZGlhbG9nUmVmLmRlc3Ryb3koKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9yZXZlcnNlRm9yRWFjaDxUPihcbiAgICBpdGVtczogVFtdIHwgcmVhZG9ubHkgVFtdLFxuICAgIGNhbGxiYWNrOiAoY3VycmVudDogVCkgPT4gdm9pZFxuICApIHtcbiAgICBsZXQgaSA9IGl0ZW1zLmxlbmd0aDtcblxuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIGNhbGxiYWNrKGl0ZW1zW2ldKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import * as i2 from '@angular/common';
2
2
  import { CommonModule, isPlatformBrowser, DOCUMENT } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Component, Input, Directive, HostListener, EventEmitter, Self, Optional, Output, ViewChild, Pipe, PLATFORM_ID, ChangeDetectionStrategy, ViewEncapsulation, Inject, HostBinding, InjectionToken, Host, ContentChild, ViewChildren, RendererStyleFlags2, TemplateRef, ContentChildren, createComponent, createEnvironmentInjector, Injectable } from '@angular/core';
4
+ import { Component, Input, Directive, HostListener, EventEmitter, Self, Optional, Output, ViewChild, Pipe, PLATFORM_ID, ChangeDetectionStrategy, ViewEncapsulation, Inject, HostBinding, InjectionToken, Host, ContentChild, ViewChildren, RendererStyleFlags2, TemplateRef, ContentChildren, createComponent, createEnvironmentInjector, Injectable, SkipSelf } from '@angular/core';
5
5
  import * as i1 from '@angular/forms';
6
6
  import { FormsModule, Validators, ReactiveFormsModule } from '@angular/forms';
7
7
  import { isEqual, cloneDeep } from 'lodash-es';
@@ -13086,13 +13086,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
13086
13086
  * @group Services
13087
13087
  */
13088
13088
  class CpsDialogService {
13089
+ get openDialogs() {
13090
+ return this._parentDialogService
13091
+ ? this._parentDialogService.openDialogs
13092
+ : this._openDialogsAtThisLevel;
13093
+ }
13089
13094
  // eslint-disable-next-line no-useless-constructor
13090
- constructor(_appRef, _environmentInjector, _injector, document) {
13095
+ constructor(_appRef, _environmentInjector, _injector, document, _parentDialogService) {
13091
13096
  this._appRef = _appRef;
13092
13097
  this._environmentInjector = _environmentInjector;
13093
13098
  this._injector = _injector;
13094
13099
  this.document = document;
13100
+ this._parentDialogService = _parentDialogService;
13095
13101
  this.dialogComponentRefMap = new Map();
13102
+ this._openDialogsAtThisLevel = [];
13096
13103
  }
13097
13104
  /**
13098
13105
  * Opens a dialog with a dynamically loaded component.
@@ -13137,12 +13144,12 @@ class CpsDialogService {
13137
13144
  * @group Method
13138
13145
  */
13139
13146
  closeAll(force = false) {
13140
- this.dialogComponentRefMap.forEach((_, key) => {
13147
+ this._reverseForEach(this.openDialogs, (dialogRef) => {
13141
13148
  if (force) {
13142
- key.destroy();
13149
+ dialogRef.destroy();
13143
13150
  }
13144
13151
  else {
13145
- key.close();
13152
+ dialogRef.close();
13146
13153
  }
13147
13154
  });
13148
13155
  }
@@ -13170,6 +13177,7 @@ class CpsDialogService {
13170
13177
  .rootNodes[0];
13171
13178
  this.document.body.appendChild(domElem);
13172
13179
  this.dialogComponentRefMap.set(dialogRef, componentRef);
13180
+ this.openDialogs.push(dialogRef);
13173
13181
  dialogRef._setContainerInstance(componentRef.instance);
13174
13182
  return dialogRef;
13175
13183
  }
@@ -13183,8 +13191,21 @@ class CpsDialogService {
13183
13191
  dialogComponentRef.destroy();
13184
13192
  this.dialogComponentRefMap.delete(dialogRef);
13185
13193
  }
13194
+ const index = this.openDialogs.indexOf(dialogRef);
13195
+ if (index > -1) {
13196
+ this.openDialogs.splice(index, 1);
13197
+ }
13198
+ }
13199
+ ngOnDestroy() {
13200
+ this._reverseForEach(this._openDialogsAtThisLevel, (dialogRef) => dialogRef.destroy());
13201
+ }
13202
+ _reverseForEach(items, callback) {
13203
+ let i = items.length;
13204
+ while (i--) {
13205
+ callback(items[i]);
13206
+ }
13186
13207
  }
13187
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsDialogService, deps: [{ token: i0.ApplicationRef }, { token: i0.EnvironmentInjector }, { token: i0.Injector }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
13208
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsDialogService, deps: [{ token: i0.ApplicationRef }, { token: i0.EnvironmentInjector }, { token: i0.Injector }, { token: DOCUMENT }, { token: CpsDialogService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
13188
13209
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsDialogService, providedIn: 'root' }); }
13189
13210
  }
13190
13211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CpsDialogService, decorators: [{
@@ -13193,6 +13214,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
13193
13214
  }], ctorParameters: () => [{ type: i0.ApplicationRef }, { type: i0.EnvironmentInjector }, { type: i0.Injector }, { type: Document, decorators: [{
13194
13215
  type: Inject,
13195
13216
  args: [DOCUMENT]
13217
+ }] }, { type: CpsDialogService, decorators: [{
13218
+ type: Optional
13219
+ }, {
13220
+ type: SkipSelf
13196
13221
  }] }] });
13197
13222
 
13198
13223
  /* eslint-disable no-unused-vars */