@quadrel-enterprise-ui/framework 18.31.4-beta.76.1 → 18.31.5

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,8 +1,8 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { FormArray, FormControl, FormGroup } from '@angular/forms';
3
3
  import isEqual from 'lodash/isEqual';
4
- import { BehaviorSubject, combineLatest, of, queueScheduler } from 'rxjs';
5
- import { map, observeOn, startWith, switchMap } from 'rxjs/operators';
4
+ import { combineLatest, of } from 'rxjs';
5
+ import { map, startWith } from 'rxjs/operators';
6
6
  import * as i0 from "@angular/core";
7
7
  /**
8
8
  * The QdFormGroupManagerService provides centralized registration, snapshotting, and value tracking
@@ -69,10 +69,8 @@ import * as i0 from "@angular/core";
69
69
  export class QdFormGroupManagerService {
70
70
  _formGroups = new Map();
71
71
  _formGroupsSnapshot = new Map();
72
- _formGroupsChanged$ = new BehaviorSubject(undefined);
73
72
  setFormGroup(key, formGroup) {
74
73
  this._formGroups.set(key, formGroup);
75
- this._formGroupsChanged$.next();
76
74
  }
77
75
  getFormGroup(key) {
78
76
  return this._formGroups.get(key);
@@ -82,7 +80,6 @@ export class QdFormGroupManagerService {
82
80
  }
83
81
  tryRemoveFormGroup(key) {
84
82
  this._formGroups.delete(key);
85
- this._formGroupsChanged$.next();
86
83
  }
87
84
  hasFormGroups() {
88
85
  return this._formGroups.size > 0;
@@ -96,23 +93,19 @@ export class QdFormGroupManagerService {
96
93
  return !this._formGroups.has(key);
97
94
  }
98
95
  $areFormGroupsValid() {
99
- return this._formGroupsChanged$.pipe(observeOn(queueScheduler), switchMap(() => {
100
- if (!this.hasFormGroups())
101
- return of(false);
102
- const obs = Array.from(this._formGroups.values()).map(fg => fg.statusChanges.pipe(startWith(fg.status), map(() => this.areFormGroupsValid(fg))));
103
- return combineLatest(obs).pipe(map(valids => valids.every(Boolean)));
104
- }));
96
+ if (!this.hasFormGroups())
97
+ return of(false);
98
+ const obs = Array.from(this._formGroups.values()).map(fg => fg.statusChanges.pipe(startWith(fg.status), map(() => this.areFormGroupsValid(fg))));
99
+ return combineLatest(obs).pipe(map(valids => valids.every(Boolean)));
105
100
  }
106
101
  $hasValuesChanged() {
107
- return this._formGroupsChanged$.pipe(observeOn(queueScheduler), switchMap(() => {
108
- if (!this.hasFormGroups())
109
- return of(false);
110
- const obs = Array.from(this._formGroups.entries()).map(([key, fg]) => fg.valueChanges.pipe(startWith(fg.getRawValue()), map(currentValues => {
111
- const snapshot = this._formGroupsSnapshot.get(key);
112
- return snapshot ? !isEqual(currentValues, snapshot) : true;
113
- })));
114
- return combineLatest(obs).pipe(map(changes => changes.some(Boolean)));
115
- }));
102
+ if (!this.hasFormGroups())
103
+ return of(false);
104
+ const obs = Array.from(this._formGroups.entries()).map(([key, fg]) => fg.valueChanges.pipe(startWith(fg.getRawValue()), map(currentValues => {
105
+ const snapshot = this._formGroupsSnapshot.get(key);
106
+ return snapshot ? !isEqual(currentValues, snapshot) : true;
107
+ })));
108
+ return combineLatest(obs).pipe(map(changes => changes.some(Boolean)));
116
109
  }
117
110
  takeFormGroupsSnapshot() {
118
111
  this._formGroups.forEach((fg, key) => this._formGroupsSnapshot.set(key, fg.getRawValue()));
@@ -184,4 +177,4 @@ export class QdFormGroupManagerService {
184
177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdFormGroupManagerService, decorators: [{
185
178
  type: Injectable
186
179
  }] });
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvcGFnZS9zaGFyZWQvc2VydmljZXMvZm9ybS1ncm91cC1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1CLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXRFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkRHO0FBRUgsTUFBTSxPQUFPLHlCQUF5QjtJQUM1QixXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQXFCLENBQUM7SUFDM0MsbUJBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7SUFDakUsbUJBQW1CLEdBQUcsSUFBSSxlQUFlLENBQU8sU0FBUyxDQUFDLENBQUM7SUFFbkUsWUFBWSxDQUFDLEdBQVcsRUFBRSxTQUFvQjtRQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBVztRQUN0QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGtCQUFrQixDQUFDLEdBQVc7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLFNBQVMsR0FBNEIsRUFBRSxDQUFDO1FBRTlDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFakYsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELG9CQUFvQixDQUFDLEdBQVc7UUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUNsQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQ3pCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU1QyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FDekQsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ25CLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQ3BCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDdkMsQ0FDRixDQUFDO1lBRUYsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUNsQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQ3pCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU1QyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ25FLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUNsQixTQUFTLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQzNCLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDbEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbkQsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzdELENBQUMsQ0FBQyxDQUNILENBQ0YsQ0FBQztZQUVGLE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVELDZCQUE2QjtRQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNuQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU87WUFFdEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtnQkFDdEQsTUFBTSxRQUFRLEdBQUksUUFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxJQUFJLFlBQVksU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDekQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDOUMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3ZCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQWdCLEVBQUUsU0FBb0I7UUFDbkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTztRQUV0QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzVCLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFFaEMsSUFBSSxNQUFNLEtBQUssQ0FBQyxJQUFJLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTztRQUN6QyxJQUFJLE1BQU0sS0FBSyxDQUFDLElBQUksTUFBTSxHQUFHLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFdEYsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU07WUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RSxPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTTtZQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUUvRCxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxLQUFnQixFQUFFLE1BQWlCO1FBQ2pFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3QixJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsbUdBQW1HLENBQUMsQ0FBQztZQUNsSCxPQUFPO1FBQ1QsQ0FBQztRQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDdkMsTUFBTSxRQUFRLEdBQW9DLEVBQUUsQ0FBQztZQUNyRCxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzVFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBd0I7UUFDL0MsSUFBSSxPQUFPLFlBQVksV0FBVztZQUFFLE9BQU8sSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWpILElBQUksT0FBTyxZQUFZLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sYUFBYSxHQUFvQyxFQUFFLENBQUM7WUFFMUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFOUcsT0FBTyxJQUFJLFNBQVMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakYsQ0FBQztRQUVELElBQUksT0FBTyxZQUFZLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFeEUsT0FBTyxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU8sa0JBQWtCLENBQUMsRUFBYTtRQUN0QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25ILENBQUM7dUdBeEpVLHlCQUF5QjsyR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gvaXNFcXVhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBxdWV1ZVNjaGVkdWxlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBvYnNlcnZlT24sIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIFRoZSBRZEZvcm1Hcm91cE1hbmFnZXJTZXJ2aWNlIHByb3ZpZGVzIGNlbnRyYWxpemVkIHJlZ2lzdHJhdGlvbiwgc25hcHNob3R0aW5nLCBhbmQgdmFsdWUgdHJhY2tpbmdcbiAqIGZvciBtdWx0aXBsZSBBbmd1bGFyIGBGb3JtR3JvdXBgIGluc3RhbmNlcy4gSXQgc3VwcG9ydHMgZWZmaWNpZW50IHN0YXRlIHJlc3RvcmF0aW9uLCBpbmNsdWRpbmcgZHluYW1pY1xuICogcmVzaXppbmcgb2YgZW1iZWRkZWQgYEZvcm1BcnJheWAgY29udHJvbHMsIHdoaWxlIGF2b2lkaW5nIGFueSBzdHJ1Y3R1cmFsIGNsb25pbmcgaW4gc25hcHNob3RzLlxuICpcbiAqICMjIyMgUHVycG9zZTpcbiAqIFRoaXMgc2VydmljZSBpcyB1c2VmdWwgd2hlbiBtYW5hZ2luZyBtdWx0aXBsZSByZWFjdGl2ZSBmb3JtcyB0aGF0IG11c3QgYmU6XG4gKiAtIE9ic2VydmVkIGZvciBjaGFuZ2VzXG4gKiAtIENoZWNrZWQgZm9yIHZhbGlkaXR5XG4gKiAtIENvbXBhcmVkIGFnYWluc3QgYSBwcmV2aW91cyBzdGF0ZSAoc25hcHNob3QpXG4gKiAtIFJlc2V0IHRvIGEgcHJldmlvdXMgc3RhdGUsIGluY2x1ZGluZyBkeW5hbWljIGZvcm0gYXJyYXlzXG4gKlxuICogIyMjIyBWYWx1ZSBTbmFwc2hvdFxuICogU25hcHNob3RzIHN0b3JlIG9ubHkgKipyYXcgdmFsdWVzKiogKHZpYSBgZ2V0UmF3VmFsdWUoKWApLCBub3QgYW55IGNvbnRyb2wgaW5zdGFuY2VzLlxuICogVGhpcyBhbGxvd3MgZm9yIG1pbmltYWwgbWVtb3J5IHVzYWdlIGFuZCBlYXN5IGNvbXBhcmlzb24gdXNpbmcgZGVlcCBlcXVhbGl0eSBjaGVja3MuXG4gKlxuICogIyMjIyBTbWFydCBGb3JtQXJyYXkgUmVzZXRcbiAqIFdoZW4gcmVzdG9yaW5nIGEgYEZvcm1BcnJheWAsIHRoZSBzZXJ2aWNlIGVuc3VyZXMgdGhhdCB0aGUgbnVtYmVyIGFuZCBzdHJ1Y3R1cmUgb2YgY29udHJvbHNcbiAqIG1hdGNoZXMgdGhlIHNuYXBzaG90IHZhbHVlcy4gQ29udHJvbHMgYXJlIGNsb25lZCBkeW5hbWljYWxseSBmcm9tIGFuIGV4aXN0aW5nIHByb3RvdHlwZS5cbiAqIElmIGEgYEZvcm1BcnJheWAgd2FzIGVtcHRpZWQgKGUuZy4gdmlhIGByZW1vdmVBdCgpYCksIGEgbWluaW1hbCBjb250cm9sIHN0cnVjdHVyZSBpcyBpbmZlcnJlZFxuICogZnJvbSB0aGUgc25hcHNob3QgZGF0YS5cbiAqXG4gKiAjIyMjIEV4YW1wbGUgVXNhZ2U6XG4gKlxuICogKipSZWdpc3RlciBhIEZvcm1Hcm91cCoqXG4gKiBgYGB0c1xuICogc2VydmljZS5zZXRGb3JtR3JvdXAoJ3VzZXJGb3JtJywgZm9ybUdyb3VwKTtcbiAqIGBgYFxuICpcbiAqICoqVGFrZSBhIFNuYXBzaG90KipcbiAqIGBgYHRzXG4gKiBzZXJ2aWNlLnRha2VGb3JtR3JvdXBzU25hcHNob3QoKTtcbiAqIGBgYFxuICpcbiAqICoqRGV0ZWN0IENoYW5nZXMqKlxuICogYGBgdHNcbiAqIHNlcnZpY2UuJGhhc1ZhbHVlc0NoYW5nZWQoKS5zdWJzY3JpYmUoY2hhbmdlZCA9PiB7XG4gKiAgIGlmIChjaGFuZ2VkKSB7XG4gKiAgICAgY29uc29sZS5sb2coJ0Zvcm0gZGF0YSBoYXMgY2hhbmdlZCcpO1xuICogICB9XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqICoqUmVzdG9yZSBmcm9tIFNuYXBzaG90KipcbiAqIGBgYHRzXG4gKiBzZXJ2aWNlLnJlc3RvcmVGb3JtR3JvdXBzRnJvbVNuYXBzaG90KCk7XG4gKiBgYGBcbiAqXG4gKiAqKkNoZWNrIGlmIEFsbCBGb3JtcyBBcmUgVmFsaWQqKlxuICogYGBgdHNcbiAqIHNlcnZpY2UuJGFyZUZvcm1Hcm91cHNWYWxpZCgpLnN1YnNjcmliZSh2YWxpZCA9PiB7XG4gKiAgIGlmICh2YWxpZCkge1xuICogICAgIGNvbnNvbGUubG9nKCdBbGwgZm9ybXMgdmFsaWQhJyk7XG4gKiAgIH1cbiAqIH0pO1xuICogYGBgXG4gKlxuICogIyMjIyBOb3RlczpcbiAqIC0gRm9ybUFycmF5cyBhcmUgbm90IHJlcGxhY2VkIGR1cmluZyByZXN0b3JlLiBUaGVpciBsZW5ndGggaXMgYWRqdXN0ZWQgYW5kIHRoZWlyIGNvbnRlbnQgcmVzZXQuXG4gKiAtIENvbnRyb2wgY2xvbmluZyBpcyByZWN1cnNpdmUgYW5kIHN0cnVjdHVyZS1wcmVzZXJ2aW5nLlxuICogLSBObyBzdHJ1Y3R1cmFsIGluZm9ybWF0aW9uIGlzIHN0b3JlZCBpbiB0aGUgc25hcHNob3Q7IG9ubHkgZGF0YS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFFkRm9ybUdyb3VwTWFuYWdlclNlcnZpY2Uge1xuICBwcml2YXRlIF9mb3JtR3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIEZvcm1Hcm91cD4oKTtcbiAgcHJpdmF0ZSBfZm9ybUdyb3Vwc1NuYXBzaG90ID0gbmV3IE1hcDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+PigpO1xuICBwcml2YXRlIF9mb3JtR3JvdXBzQ2hhbmdlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KHVuZGVmaW5lZCk7XG5cbiAgc2V0Rm9ybUdyb3VwKGtleTogc3RyaW5nLCBmb3JtR3JvdXA6IEZvcm1Hcm91cCk6IHZvaWQge1xuICAgIHRoaXMuX2Zvcm1Hcm91cHMuc2V0KGtleSwgZm9ybUdyb3VwKTtcbiAgICB0aGlzLl9mb3JtR3JvdXBzQ2hhbmdlZCQubmV4dCgpO1xuICB9XG5cbiAgZ2V0Rm9ybUdyb3VwKGtleTogc3RyaW5nKTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3Vwcy5nZXQoa2V5KTtcbiAgfVxuXG4gIGdldEFsbEZvcm1Hcm91cHMoKTogTWFwPHN0cmluZywgRm9ybUdyb3VwPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cHM7XG4gIH1cblxuICB0cnlSZW1vdmVGb3JtR3JvdXAoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9mb3JtR3JvdXBzLmRlbGV0ZShrZXkpO1xuICAgIHRoaXMuX2Zvcm1Hcm91cHNDaGFuZ2VkJC5uZXh0KCk7XG4gIH1cblxuICBoYXNGb3JtR3JvdXBzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXBzLnNpemUgPiAwO1xuICB9XG5cbiAgZ2V0QWxsVmFsdWVzKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICBjb25zdCBhbGxWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgICB0aGlzLl9mb3JtR3JvdXBzLmZvckVhY2goKGZvcm1Hcm91cCwga2V5KSA9PiAoYWxsVmFsdWVzW2tleV0gPSBmb3JtR3JvdXAudmFsdWUpKTtcblxuICAgIHJldHVybiBhbGxWYWx1ZXM7XG4gIH1cblxuICBpc0Zvcm1Hcm91cEtleVVuaXF1ZShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5fZm9ybUdyb3Vwcy5oYXMoa2V5KTtcbiAgfVxuXG4gICRhcmVGb3JtR3JvdXBzVmFsaWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cHNDaGFuZ2VkJC5waXBlKFxuICAgICAgb2JzZXJ2ZU9uKHF1ZXVlU2NoZWR1bGVyKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5oYXNGb3JtR3JvdXBzKCkpIHJldHVybiBvZihmYWxzZSk7XG5cbiAgICAgICAgY29uc3Qgb2JzID0gQXJyYXkuZnJvbSh0aGlzLl9mb3JtR3JvdXBzLnZhbHVlcygpKS5tYXAoZmcgPT5cbiAgICAgICAgICBmZy5zdGF0dXNDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgoZmcuc3RhdHVzKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLmFyZUZvcm1Hcm91cHNWYWxpZChmZykpXG4gICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KG9icykucGlwZShtYXAodmFsaWRzID0+IHZhbGlkcy5ldmVyeShCb29sZWFuKSkpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgJGhhc1ZhbHVlc0NoYW5nZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cHNDaGFuZ2VkJC5waXBlKFxuICAgICAgb2JzZXJ2ZU9uKHF1ZXVlU2NoZWR1bGVyKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5oYXNGb3JtR3JvdXBzKCkpIHJldHVybiBvZihmYWxzZSk7XG5cbiAgICAgICAgY29uc3Qgb2JzID0gQXJyYXkuZnJvbSh0aGlzLl9mb3JtR3JvdXBzLmVudHJpZXMoKSkubWFwKChba2V5LCBmZ10pID0+XG4gICAgICAgICAgZmcudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgoZmcuZ2V0UmF3VmFsdWUoKSksXG4gICAgICAgICAgICBtYXAoY3VycmVudFZhbHVlcyA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy5fZm9ybUdyb3Vwc1NuYXBzaG90LmdldChrZXkpO1xuICAgICAgICAgICAgICByZXR1cm4gc25hcHNob3QgPyAhaXNFcXVhbChjdXJyZW50VmFsdWVzLCBzbmFwc2hvdCkgOiB0cnVlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qob2JzKS5waXBlKG1hcChjaGFuZ2VzID0+IGNoYW5nZXMuc29tZShCb29sZWFuKSkpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdGFrZUZvcm1Hcm91cHNTbmFwc2hvdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb3JtR3JvdXBzLmZvckVhY2goKGZnLCBrZXkpID0+IHRoaXMuX2Zvcm1Hcm91cHNTbmFwc2hvdC5zZXQoa2V5LCBmZy5nZXRSYXdWYWx1ZSgpKSk7XG4gIH1cblxuICByZXN0b3JlRm9ybUdyb3Vwc0Zyb21TbmFwc2hvdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb3JtR3JvdXBzLmZvckVhY2goKGZnLCBrZXkpID0+IHtcbiAgICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy5fZm9ybUdyb3Vwc1NuYXBzaG90LmdldChrZXkpO1xuICAgICAgaWYgKCFzbmFwc2hvdCkgcmV0dXJuO1xuXG4gICAgICBPYmplY3QuZW50cmllcyhmZy5jb250cm9scykuZm9yRWFjaCgoW2N0cmxLZXksIGN0cmxdKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gKHNuYXBzaG90IGFzIGFueSlbY3RybEtleV07XG4gICAgICAgIGlmIChjdHJsIGluc3RhbmNlb2YgRm9ybUFycmF5ICYmIEFycmF5LmlzQXJyYXkobmV3VmFsdWUpKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm1BcnJheVRvVmFsdWVzKGN0cmwsIG5ld1ZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjdHJsLnJlc2V0KG5ld1ZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Rm9ybUFycmF5VG9WYWx1ZXMoYXJyYXk6IEZvcm1BcnJheSwgbmV3VmFsdWVzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobmV3VmFsdWVzKSkgcmV0dXJuO1xuXG4gICAgY29uc3Qgb2xkTGVuID0gYXJyYXkubGVuZ3RoO1xuICAgIGNvbnN0IG5ld0xlbiA9IG5ld1ZhbHVlcy5sZW5ndGg7XG5cbiAgICBpZiAob2xkTGVuID09PSAwICYmIG5ld0xlbiA9PT0gMCkgcmV0dXJuO1xuICAgIGlmIChvbGRMZW4gPT09IDAgJiYgbmV3TGVuID4gMCkgcmV0dXJuIHRoaXMuaW5pdEZvcm1BcnJheUZyb21WYWx1ZXMoYXJyYXksIG5ld1ZhbHVlcyk7XG5cbiAgICB3aGlsZSAoYXJyYXkubGVuZ3RoIDwgbmV3TGVuKSBhcnJheS5wdXNoKHRoaXMuZGVlcENsb25lQ29udHJvbChhcnJheS5hdCgwKSkpO1xuICAgIHdoaWxlIChhcnJheS5sZW5ndGggPiBuZXdMZW4pIGFycmF5LnJlbW92ZUF0KGFycmF5Lmxlbmd0aCAtIDEpO1xuXG4gICAgYXJyYXkucmVzZXQobmV3VmFsdWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEZvcm1BcnJheUZyb21WYWx1ZXMoYXJyYXk6IEZvcm1BcnJheSwgdmFsdWVzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICBjb25zdCBwcm90b1ZhbHVlID0gdmFsdWVzWzBdO1xuXG4gICAgaWYgKCFwcm90b1ZhbHVlIHx8IHR5cGVvZiBwcm90b1ZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgICAgY29uc29sZS53YXJuKCdRRC1VSSB8IFFkRm9ybUdyb3VwTWFuYWdlciAtIENhbm5vdCByZXN0b3JlIEZvcm1BcnJheTogbm8gcHJvdG90eXBlIGFuZCB2YWx1ZSBpcyBub3Qgb2JqZWN0LWxpa2UuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvbnRyb2xzOiBSZWNvcmQ8c3RyaW5nLCBBYnN0cmFjdENvbnRyb2w+ID0ge307XG4gICAgICBPYmplY3Qua2V5cyhwcm90b1ZhbHVlKS5mb3JFYWNoKGtleSA9PiAoY29udHJvbHNba2V5XSA9IG5ldyBGb3JtQ29udHJvbCgpKSk7XG4gICAgICBhcnJheS5wdXNoKG5ldyBGb3JtR3JvdXAoeyAuLi5jb250cm9scyB9KSk7XG4gICAgfVxuXG4gICAgYXJyYXkucmVzZXQodmFsdWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVlcENsb25lQ29udHJvbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHJldHVybiBuZXcgRm9ybUNvbnRyb2wodW5kZWZpbmVkLCBjb250cm9sLnZhbGlkYXRvciwgY29udHJvbC5hc3luY1ZhbGlkYXRvcik7XG5cbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgY29uc3QgZ3JvdXBDb250cm9sczogUmVjb3JkPHN0cmluZywgQWJzdHJhY3RDb250cm9sPiA9IHt9O1xuXG4gICAgICBPYmplY3QuZW50cmllcyhjb250cm9sLmNvbnRyb2xzKS5mb3JFYWNoKChba2V5LCBjdHJsXSkgPT4gKGdyb3VwQ29udHJvbHNba2V5XSA9IHRoaXMuZGVlcENsb25lQ29udHJvbChjdHJsKSkpO1xuXG4gICAgICByZXR1cm4gbmV3IEZvcm1Hcm91cChncm91cENvbnRyb2xzLCBjb250cm9sLnZhbGlkYXRvciwgY29udHJvbC5hc3luY1ZhbGlkYXRvcik7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgIGNvbnN0IGFyckNvbnRyb2xzID0gY29udHJvbC5jb250cm9scy5tYXAoYyA9PiB0aGlzLmRlZXBDbG9uZUNvbnRyb2woYykpO1xuXG4gICAgICByZXR1cm4gbmV3IEZvcm1BcnJheShhcnJDb250cm9scywgY29udHJvbC52YWxpZGF0b3IsIGNvbnRyb2wuYXN5bmNWYWxpZGF0b3IpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignUUQtVUkgfCBRZEZvcm1Hcm91cE1hbmFnZXIgLSBVbnN1cHBvcnRlZCBjb250cm9sIHR5cGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXJlRm9ybUdyb3Vwc1ZhbGlkKGZnOiBGb3JtR3JvdXApOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhmZy5jb250cm9scykuZXZlcnkoYyA9PiAoYy5kaXNhYmxlZCAmJiAhYy52YWxpZGF0b3IgJiYgIWMuYXN5bmNWYWxpZGF0b3IgPyB0cnVlIDogYy52YWxpZCkpO1xuICB9XG59XG4iXX0=
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvcGFnZS9zaGFyZWQvc2VydmljZXMvZm9ybS1ncm91cC1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1CLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFaEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2REc7QUFFSCxNQUFNLE9BQU8seUJBQXlCO0lBQzVCLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztJQUMzQyxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztJQUV6RSxZQUFZLENBQUMsR0FBVyxFQUFFLFNBQW9CO1FBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQVc7UUFDdEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxHQUFXO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMs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eUI7OzJGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBUaGUgUWRGb3JtR3JvdXBNYW5hZ2VyU2VydmljZSBwcm92aWRlcyBjZW50cmFsaXplZCByZWdpc3RyYXRpb24sIHNuYXBzaG90dGluZywgYW5kIHZhbHVlIHRyYWNraW5nXG4gKiBmb3IgbXVsdGlwbGUgQW5ndWxhciBgRm9ybUdyb3VwYCBpbnN0YW5jZXMuIEl0IHN1cHBvcnRzIGVmZmljaWVudCBzdGF0ZSByZXN0b3JhdGlvbiwgaW5jbHVkaW5nIGR5bmFtaWNcbiAqIHJlc2l6aW5nIG9mIGVtYmVkZGVkIGBGb3JtQXJyYXlgIGNvbnRyb2xzLCB3aGlsZSBhdm9pZGluZyBhbnkgc3RydWN0dXJhbCBjbG9uaW5nIGluIHNuYXBzaG90cy5cbiAqXG4gKiAjIyMjIFB1cnBvc2U6XG4gKiBUaGlzIHNlcnZpY2UgaXMgdXNlZnVsIHdoZW4gbWFuYWdpbmcgbXVsdGlwbGUgcmVhY3RpdmUgZm9ybXMgdGhhdCBtdXN0IGJlOlxuICogLSBPYnNlcnZlZCBmb3IgY2hhbmdlc1xuICogLSBDaGVja2VkIGZvciB2YWxpZGl0eVxuICogLSBDb21wYXJlZCBhZ2FpbnN0IGEgcHJldmlvdXMgc3RhdGUgKHNuYXBzaG90KVxuICogLSBSZXNldCB0byBhIHByZXZpb3VzIHN0YXRlLCBpbmNsdWRpbmcgZHluYW1pYyBmb3JtIGFycmF5c1xuICpcbiAqICMjIyMgVmFsdWUgU25hcHNob3RcbiAqIFNuYXBzaG90cyBzdG9yZSBvbmx5ICoqcmF3IHZhbHVlcyoqICh2aWEgYGdldFJhd1ZhbHVlKClgKSwgbm90IGFueSBjb250cm9sIGluc3RhbmNlcy5cbiAqIFRoaXMgYWxsb3dzIGZvciBtaW5pbWFsIG1lbW9yeSB1c2FnZSBhbmQgZWFzeSBjb21wYXJpc29uIHVzaW5nIGRlZXAgZXF1YWxpdHkgY2hlY2tzLlxuICpcbiAqICMjIyMgU21hcnQgRm9ybUFycmF5IFJlc2V0XG4gKiBXaGVuIHJlc3RvcmluZyBhIGBGb3JtQXJyYXlgLCB0aGUgc2VydmljZSBlbnN1cmVzIHRoYXQgdGhlIG51bWJlciBhbmQgc3RydWN0dXJlIG9mIGNvbnRyb2xzXG4gKiBtYXRjaGVzIHRoZSBzbmFwc2hvdCB2YWx1ZXMuIENvbnRyb2xzIGFyZSBjbG9uZWQgZHluYW1pY2FsbHkgZnJvbSBhbiBleGlzdGluZyBwcm90b3R5cGUuXG4gKiBJZiBhIGBGb3JtQXJyYXlgIHdhcyBlbXB0aWVkIChlLmcuIHZpYSBgcmVtb3ZlQXQoKWApLCBhIG1pbmltYWwgY29udHJvbCBzdHJ1Y3R1cmUgaXMgaW5mZXJyZWRcbiAqIGZyb20gdGhlIHNuYXBzaG90IGRhdGEuXG4gKlxuICogIyMjIyBFeGFtcGxlIFVzYWdlOlxuICpcbiAqICoqUmVnaXN0ZXIgYSBGb3JtR3JvdXAqKlxuICogYGBgdHNcbiAqIHNlcnZpY2Uuc2V0Rm9ybUdyb3VwKCd1c2VyRm9ybScsIGZvcm1Hcm91cCk7XG4gKiBgYGBcbiAqXG4gKiAqKlRha2UgYSBTbmFwc2hvdCoqXG4gKiBgYGB0c1xuICogc2VydmljZS50YWtlRm9ybUdyb3Vwc1NuYXBzaG90KCk7XG4gKiBgYGBcbiAqXG4gKiAqKkRldGVjdCBDaGFuZ2VzKipcbiAqIGBgYHRzXG4gKiBzZXJ2aWNlLiRoYXNWYWx1ZXNDaGFuZ2VkKCkuc3Vic2NyaWJlKGNoYW5nZWQgPT4ge1xuICogICBpZiAoY2hhbmdlZCkge1xuICogICAgIGNvbnNvbGUubG9nKCdGb3JtIGRhdGEgaGFzIGNoYW5nZWQnKTtcbiAqICAgfVxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiAqKlJlc3RvcmUgZnJvbSBTbmFwc2hvdCoqXG4gKiBgYGB0c1xuICogc2VydmljZS5yZXN0b3JlRm9ybUdyb3Vwc0Zyb21TbmFwc2hvdCgpO1xuICogYGBgXG4gKlxuICogKipDaGVjayBpZiBBbGwgRm9ybXMgQXJlIFZhbGlkKipcbiAqIGBgYHRzXG4gKiBzZXJ2aWNlLiRhcmVGb3JtR3JvdXBzVmFsaWQoKS5zdWJzY3JpYmUodmFsaWQgPT4ge1xuICogICBpZiAodmFsaWQpIHtcbiAqICAgICBjb25zb2xlLmxvZygnQWxsIGZvcm1zIHZhbGlkIScpO1xuICogICB9XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqICMjIyMgTm90ZXM6XG4gKiAtIEZvcm1BcnJheXMgYXJlIG5vdCByZXBsYWNlZCBkdXJpbmcgcmVzdG9yZS4gVGhlaXIgbGVuZ3RoIGlzIGFkanVzdGVkIGFuZCB0aGVpciBjb250ZW50IHJlc2V0LlxuICogLSBDb250cm9sIGNsb25pbmcgaXMgcmVjdXJzaXZlIGFuZCBzdHJ1Y3R1cmUtcHJlc2VydmluZy5cbiAqIC0gTm8gc3RydWN0dXJhbCBpbmZvcm1hdGlvbiBpcyBzdG9yZWQgaW4gdGhlIHNuYXBzaG90OyBvbmx5IGRhdGEuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBRZEZvcm1Hcm91cE1hbmFnZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfZm9ybUdyb3VwcyA9IG5ldyBNYXA8c3RyaW5nLCBGb3JtR3JvdXA+KCk7XG4gIHByaXZhdGUgX2Zvcm1Hcm91cHNTbmFwc2hvdCA9IG5ldyBNYXA8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oKTtcblxuICBzZXRGb3JtR3JvdXAoa2V5OiBzdHJpbmcsIGZvcm1Hcm91cDogRm9ybUdyb3VwKTogdm9pZCB7XG4gICAgdGhpcy5fZm9ybUdyb3Vwcy5zZXQoa2V5LCBmb3JtR3JvdXApO1xuICB9XG5cbiAgZ2V0Rm9ybUdyb3VwKGtleTogc3RyaW5nKTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3Vwcy5nZXQoa2V5KTtcbiAgfVxuXG4gIGdldEFsbEZvcm1Hcm91cHMoKTogTWFwPHN0cmluZywgRm9ybUdyb3VwPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cHM7XG4gIH1cblxuICB0cnlSZW1vdmVGb3JtR3JvdXAoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9mb3JtR3JvdXBzLmRlbGV0ZShrZXkpO1xuICB9XG5cbiAgaGFzRm9ybUdyb3VwcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3Vwcy5zaXplID4gMDtcbiAgfVxuXG4gIGdldEFsbFZhbHVlcygpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgY29uc3QgYWxsVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXG4gICAgdGhpcy5fZm9ybUdyb3Vwcy5mb3JFYWNoKChmb3JtR3JvdXAsIGtleSkgPT4gKGFsbFZhbHVlc1trZXldID0gZm9ybUdyb3VwLnZhbHVlKSk7XG5cbiAgICByZXR1cm4gYWxsVmFsdWVzO1xuICB9XG5cbiAgaXNGb3JtR3JvdXBLZXlVbmlxdWUoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuX2Zvcm1Hcm91cHMuaGFzKGtleSk7XG4gIH1cblxuICAkYXJlRm9ybUdyb3Vwc1ZhbGlkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGlmICghdGhpcy5oYXNGb3JtR3JvdXBzKCkpIHJldHVybiBvZihmYWxzZSk7XG5cbiAgICBjb25zdCBvYnMgPSBBcnJheS5mcm9tKHRoaXMuX2Zvcm1Hcm91cHMudmFsdWVzKCkpLm1hcChmZyA9PlxuICAgICAgZmcuc3RhdHVzQ2hhbmdlcy5waXBlKFxuICAgICAgICBzdGFydFdpdGgoZmcuc3RhdHVzKSxcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuYXJlRm9ybUdyb3Vwc1ZhbGlkKGZnKSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qob2JzKS5waXBlKG1hcCh2YWxpZHMgPT4gdmFsaWRzLmV2ZXJ5KEJvb2xlYW4pKSk7XG4gIH1cblxuICAkaGFzVmFsdWVzQ2hhbmdlZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAoIXRoaXMuaGFzRm9ybUdyb3VwcygpKSByZXR1cm4gb2YoZmFsc2UpO1xuXG4gICAgY29uc3Qgb2JzID0gQXJyYXkuZnJvbSh0aGlzLl9mb3JtR3JvdXBzLmVudHJpZXMoKSkubWFwKChba2V5LCBmZ10pID0+XG4gICAgICBmZy52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKGZnLmdldFJhd1ZhbHVlKCkpLFxuICAgICAgICBtYXAoY3VycmVudFZhbHVlcyA9PiB7XG4gICAgICAgICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLl9mb3JtR3JvdXBzU25hcHNob3QuZ2V0KGtleSk7XG4gICAgICAgICAgcmV0dXJuIHNuYXBzaG90ID8gIWlzRXF1YWwoY3VycmVudFZhbHVlcywgc25hcHNob3QpIDogdHJ1ZTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qob2JzKS5waXBlKG1hcChjaGFuZ2VzID0+IGNoYW5nZXMuc29tZShCb29sZWFuKSkpO1xuICB9XG5cbiAgdGFrZUZvcm1Hcm91cHNTbmFwc2hvdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb3JtR3JvdXBzLmZvckVhY2goKGZnLCBrZXkpID0+IHRoaXMuX2Zvcm1Hcm91cHNTbmFwc2hvdC5zZXQoa2V5LCBmZy5nZXRSYXdWYWx1ZSgpKSk7XG4gIH1cblxuICByZXN0b3JlRm9ybUdyb3Vwc0Zyb21TbmFwc2hvdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb3JtR3JvdXBzLmZvckVhY2goKGZnLCBrZXkpID0+IHtcbiAgICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy5fZm9ybUdyb3Vwc1NuYXBzaG90LmdldChrZXkpO1xuICAgICAgaWYgKCFzbmFwc2hvdCkgcmV0dXJuO1xuXG4gICAgICBPYmplY3QuZW50cmllcyhmZy5jb250cm9scykuZm9yRWFjaCgoW2N0cmxLZXksIGN0cmxdKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gKHNuYXBzaG90IGFzIGFueSlbY3RybEtleV07XG4gICAgICAgIGlmIChjdHJsIGluc3RhbmNlb2YgRm9ybUFycmF5ICYmIEFycmF5LmlzQXJyYXkobmV3VmFsdWUpKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm1BcnJheVRvVmFsdWVzKGN0cmwsIG5ld1ZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjdHJsLnJlc2V0KG5ld1ZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Rm9ybUFycmF5VG9WYWx1ZXMoYXJyYXk6IEZvcm1BcnJheSwgbmV3VmFsdWVzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobmV3VmFsdWVzKSkgcmV0dXJuO1xuXG4gICAgY29uc3Qgb2xkTGVuID0gYXJyYXkubGVuZ3RoO1xuICAgIGNvbnN0IG5ld0xlbiA9IG5ld1ZhbHVlcy5sZW5ndGg7XG5cbiAgICBpZiAob2xkTGVuID09PSAwICYmIG5ld0xlbiA9PT0gMCkgcmV0dXJuO1xuICAgIGlmIChvbGRMZW4gPT09IDAgJiYgbmV3TGVuID4gMCkgcmV0dXJuIHRoaXMuaW5pdEZvcm1BcnJheUZyb21WYWx1ZXMoYXJyYXksIG5ld1ZhbHVlcyk7XG5cbiAgICB3aGlsZSAoYXJyYXkubGVuZ3RoIDwgbmV3TGVuKSBhcnJheS5wdXNoKHRoaXMuZGVlcENsb25lQ29udHJvbChhcnJheS5hdCgwKSkpO1xuICAgIHdoaWxlIChhcnJheS5sZW5ndGggPiBuZXdMZW4pIGFycmF5LnJlbW92ZUF0KGFycmF5Lmxlbmd0aCAtIDEpO1xuXG4gICAgYXJyYXkucmVzZXQobmV3VmFsdWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEZvcm1BcnJheUZyb21WYWx1ZXMoYXJyYXk6IEZvcm1BcnJheSwgdmFsdWVzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICBjb25zdCBwcm90b1ZhbHVlID0gdmFsdWVzWzBdO1xuXG4gICAgaWYgKCFwcm90b1ZhbHVlIHx8IHR5cGVvZiBwcm90b1ZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgICAgY29uc29sZS53YXJuKCdRRC1VSSB8IFFkRm9ybUdyb3VwTWFuYWdlciAtIENhbm5vdCByZXN0b3JlIEZvcm1BcnJheTogbm8gcHJvdG90eXBlIGFuZCB2YWx1ZSBpcyBub3Qgb2JqZWN0LWxpa2UuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvbnRyb2xzOiBSZWNvcmQ8c3RyaW5nLCBBYnN0cmFjdENvbnRyb2w+ID0ge307XG4gICAgICBPYmplY3Qua2V5cyhwcm90b1ZhbHVlKS5mb3JFYWNoKGtleSA9PiAoY29udHJvbHNba2V5XSA9IG5ldyBGb3JtQ29udHJvbCgpKSk7XG4gICAgICBhcnJheS5wdXNoKG5ldyBGb3JtR3JvdXAoeyAuLi5jb250cm9scyB9KSk7XG4gICAgfVxuXG4gICAgYXJyYXkucmVzZXQodmFsdWVzKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVlcENsb25lQ29udHJvbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHJldHVybiBuZXcgRm9ybUNvbnRyb2wodW5kZWZpbmVkLCBjb250cm9sLnZhbGlkYXRvciwgY29udHJvbC5hc3luY1ZhbGlkYXRvcik7XG5cbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgY29uc3QgZ3JvdXBDb250cm9sczogUmVjb3JkPHN0cmluZywgQWJzdHJhY3RDb250cm9sPiA9IHt9O1xuXG4gICAgICBPYmplY3QuZW50cmllcyhjb250cm9sLmNvbnRyb2xzKS5mb3JFYWNoKChba2V5LCBjdHJsXSkgPT4gKGdyb3VwQ29udHJvbHNba2V5XSA9IHRoaXMuZGVlcENsb25lQ29udHJvbChjdHJsKSkpO1xuXG4gICAgICByZXR1cm4gbmV3IEZvcm1Hcm91cChncm91cENvbnRyb2xzLCBjb250cm9sLnZhbGlkYXRvciwgY29udHJvbC5hc3luY1ZhbGlkYXRvcik7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgIGNvbnN0IGFyckNvbnRyb2xzID0gY29udHJvbC5jb250cm9scy5tYXAoYyA9PiB0aGlzLmRlZXBDbG9uZUNvbnRyb2woYykpO1xuXG4gICAgICByZXR1cm4gbmV3IEZvcm1BcnJheShhcnJDb250cm9scywgY29udHJvbC52YWxpZGF0b3IsIGNvbnRyb2wuYXN5bmNWYWxpZGF0b3IpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignUUQtVUkgfCBRZEZvcm1Hcm91cE1hbmFnZXIgLSBVbnN1cHBvcnRlZCBjb250cm9sIHR5cGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXJlRm9ybUdyb3Vwc1ZhbGlkKGZnOiBGb3JtR3JvdXApOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhmZy5jb250cm9scykuZXZlcnkoYyA9PiAoYy5kaXNhYmxlZCAmJiAhYy52YWxpZGF0b3IgJiYgIWMuYXN5bmNWYWxpZGF0b3IgPyB0cnVlIDogYy52YWxpZCkpO1xuICB9XG59XG4iXX0=
@@ -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, from, switchMap, map as map$1, Subject, throwError, of, ReplaySubject, merge, fromEvent, isObservable, NEVER, Observable, EMPTY, shareReplay, Subscription, distinctUntilChanged as distinctUntilChanged$1, debounce, timer, startWith as startWith$1, debounceTime as debounceTime$1, takeUntil as takeUntil$1, asyncScheduler, firstValueFrom, combineLatest, concat, take as take$1, delay, first, scan, tap as tap$1, iif, delayWhen, queueScheduler, combineLatestWith, withLatestFrom, async, filter as filter$1 } from 'rxjs';
9
- import { map, takeUntil, take, filter, catchError, debounceTime, startWith, distinctUntilChanged, concatMap, tap, observeOn, skip, delay as delay$1, mergeMap, switchMap as switchMap$1, pairwise as pairwise$1 } from 'rxjs/operators';
8
+ import { BehaviorSubject, pairwise, from, switchMap, map as map$1, Subject, throwError, of, ReplaySubject, merge, fromEvent, isObservable, NEVER, Observable, EMPTY, shareReplay, Subscription, distinctUntilChanged as distinctUntilChanged$1, debounce, timer, startWith as startWith$1, debounceTime as debounceTime$1, takeUntil as takeUntil$1, asyncScheduler, firstValueFrom, combineLatest, concat, take as take$1, delay, first, scan, tap as tap$1, iif, delayWhen, combineLatestWith, withLatestFrom, async, filter as filter$1 } from 'rxjs';
9
+ import { map, takeUntil, take, filter, catchError, debounceTime, startWith, distinctUntilChanged, concatMap, tap, observeOn, skip, delay as delay$1, mergeMap, pairwise as pairwise$1, switchMap as switchMap$1 } from 'rxjs/operators';
10
10
  import { v4 } from 'uuid';
11
11
  import * as i1$3 from '@ngx-translate/core';
12
12
  import { TranslateService, TranslateModule } from '@ngx-translate/core';
@@ -33312,10 +33312,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
33312
33312
  class QdFormGroupManagerService {
33313
33313
  _formGroups = new Map();
33314
33314
  _formGroupsSnapshot = new Map();
33315
- _formGroupsChanged$ = new BehaviorSubject(undefined);
33316
33315
  setFormGroup(key, formGroup) {
33317
33316
  this._formGroups.set(key, formGroup);
33318
- this._formGroupsChanged$.next();
33319
33317
  }
33320
33318
  getFormGroup(key) {
33321
33319
  return this._formGroups.get(key);
@@ -33325,7 +33323,6 @@ class QdFormGroupManagerService {
33325
33323
  }
33326
33324
  tryRemoveFormGroup(key) {
33327
33325
  this._formGroups.delete(key);
33328
- this._formGroupsChanged$.next();
33329
33326
  }
33330
33327
  hasFormGroups() {
33331
33328
  return this._formGroups.size > 0;
@@ -33339,23 +33336,19 @@ class QdFormGroupManagerService {
33339
33336
  return !this._formGroups.has(key);
33340
33337
  }
33341
33338
  $areFormGroupsValid() {
33342
- return this._formGroupsChanged$.pipe(observeOn(queueScheduler), switchMap$1(() => {
33343
- if (!this.hasFormGroups())
33344
- return of(false);
33345
- const obs = Array.from(this._formGroups.values()).map(fg => fg.statusChanges.pipe(startWith(fg.status), map(() => this.areFormGroupsValid(fg))));
33346
- return combineLatest(obs).pipe(map(valids => valids.every(Boolean)));
33347
- }));
33339
+ if (!this.hasFormGroups())
33340
+ return of(false);
33341
+ const obs = Array.from(this._formGroups.values()).map(fg => fg.statusChanges.pipe(startWith(fg.status), map(() => this.areFormGroupsValid(fg))));
33342
+ return combineLatest(obs).pipe(map(valids => valids.every(Boolean)));
33348
33343
  }
33349
33344
  $hasValuesChanged() {
33350
- return this._formGroupsChanged$.pipe(observeOn(queueScheduler), switchMap$1(() => {
33351
- if (!this.hasFormGroups())
33352
- return of(false);
33353
- const obs = Array.from(this._formGroups.entries()).map(([key, fg]) => fg.valueChanges.pipe(startWith(fg.getRawValue()), map(currentValues => {
33354
- const snapshot = this._formGroupsSnapshot.get(key);
33355
- return snapshot ? !isEqual$1(currentValues, snapshot) : true;
33356
- })));
33357
- return combineLatest(obs).pipe(map(changes => changes.some(Boolean)));
33358
- }));
33345
+ if (!this.hasFormGroups())
33346
+ return of(false);
33347
+ const obs = Array.from(this._formGroups.entries()).map(([key, fg]) => fg.valueChanges.pipe(startWith(fg.getRawValue()), map(currentValues => {
33348
+ const snapshot = this._formGroupsSnapshot.get(key);
33349
+ return snapshot ? !isEqual$1(currentValues, snapshot) : true;
33350
+ })));
33351
+ return combineLatest(obs).pipe(map(changes => changes.some(Boolean)));
33359
33352
  }
33360
33353
  takeFormGroupsSnapshot() {
33361
33354
  this._formGroups.forEach((fg, key) => this._formGroupsSnapshot.set(key, fg.getRawValue()));