@ng-atomic/common 4.16.3 → 4.17.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.
@@ -20,7 +20,7 @@ export class LoadingService {
20
20
  removeKey(key) {
21
21
  this.loadingEntries$.next([key, false]);
22
22
  }
23
- start(callback, key) {
23
+ start(callback, key = randomStr(16)) {
24
24
  this.setKey(key);
25
25
  callback(() => this.removeKey(key));
26
26
  }
@@ -33,4 +33,7 @@ LoadingService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LoadingSe
33
33
  providedIn: 'root',
34
34
  }]
35
35
  }], function () { return []; }, null); })();
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3NlcnZpY2VzL2xvYWRpbmcvbG9hZGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFPeEUsTUFBTSxPQUFPLGNBQWM7SUFpQnpCO1FBaEJRLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQXFCLENBQUM7UUFFM0QsZUFBVSxHQUFlLEVBQUUsQ0FBQztRQUM1QixnQkFBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUNyQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBZ0IsQ0FBQyxFQUN6RSxHQUFHLENBQUMsQ0FBQyxDQUFhLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3JDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3hDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFnQixDQUFDLENBQUMsRUFDL0Qsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDaEYsQ0FBQztRQUVGLGVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDaEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDbkMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNULENBQUM7UUFHQSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFXO1FBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUE2QixFQUFFLEdBQVc7UUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQixRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7OzRFQWxDVSxjQUFjO29FQUFkLGNBQWMsV0FBZCxjQUFjLG1CQUZiLE1BQU07dUZBRVAsY0FBYztjQUgxQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzY2FuLCBtYXAsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxudHlwZSBMb2FkaW5nTWFwID0gUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMb2FkaW5nU2VydmljZSB7XG4gIHByaXZhdGUgbG9hZGluZ0VudHJpZXMkID0gbmV3IFN1YmplY3Q8W3N0cmluZywgYm9vbGVhbl0+KCk7XG5cbiAgbG9hZGluZ01hcDogTG9hZGluZ01hcCA9IHt9O1xuICBsb2FkaW5nTWFwJCA9IHRoaXMubG9hZGluZ0VudHJpZXMkLnBpcGUoXG4gICAgc2NhbigocHJlLCBba2V5LCB2YWx1ZV0pID0+ICh7IC4uLnByZSwgW2tleV06IHZhbHVlIH0pLCB7fSBhcyBMb2FkaW5nTWFwKSxcbiAgICBtYXAoKG06IExvYWRpbmdNYXApID0+IE9iamVjdC5lbnRyaWVzKG0pXG4gICAgICAuZmlsdGVyKChbaywgdl06IFtzdHJpbmcsIGJvb2xlYW5dKSA9PiB2KVxuICAgICAgLnJlZHVjZSgocCwgW2ssIHZdKSA9PiAoeyAuLi5wLCBba106IHYgfSksIHt9IGFzIExvYWRpbmdNYXApKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJlLCBjdXIpID0+IEpTT04uc3RyaW5naWZ5KHByZSkgPT09IEpTT04uc3RyaW5naWZ5KGN1cikpLFxuICApO1xuXG4gIGlzTG9hZGluZyQgPSB0aGlzLmxvYWRpbmdNYXAkLnBpcGUoXG4gICAgbWFwKChtKSA9PiAhIU9iamVjdC5rZXlzKG0pLmxlbmd0aCksXG4gICAgZGVsYXkoMCksXG4gICk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5sb2FkaW5nTWFwJC5zdWJzY3JpYmUoKG0pID0+IHtcbiAgICAgIHRoaXMubG9hZGluZ01hcCA9IG07XG4gICAgfSk7XG4gIH1cblxuICBzZXRLZXkoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmdFbnRyaWVzJC5uZXh0KFtrZXksIHRydWVdKTtcbiAgfVxuXG4gIHJlbW92ZUtleShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZ0VudHJpZXMkLm5leHQoW2tleSwgZmFsc2VdKTtcbiAgfVxuXG4gIHN0YXJ0KGNhbGxiYWNrOiAoZG9uZTogYW55KSA9PiB2b2lkLCBrZXk6IHN0cmluZykge1xuICAgIHRoaXMuc2V0S2V5KGtleSk7XG4gICAgY2FsbGJhY2soKCkgPT4gdGhpcy5yZW1vdmVLZXkoa2V5KSk7XG4gIH1cbn1cbiJdfQ==
36
+ export function randomStr(n = 16) {
37
+ return Math.random().toString(36).substr(2, n);
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3NlcnZpY2VzL2xvYWRpbmcvbG9hZGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFPeEUsTUFBTSxPQUFPLGNBQWM7SUFpQnpCO1FBaEJRLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQXFCLENBQUM7UUFFM0QsZUFBVSxHQUFlLEVBQUUsQ0FBQztRQUM1QixnQkFBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUNyQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBZ0IsQ0FBQyxFQUN6RSxHQUFHLENBQUMsQ0FBQyxDQUFhLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3JDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3hDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFnQixDQUFDLENBQUMsRUFDL0Qsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDaEYsQ0FBQztRQUVGLGVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDaEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDbkMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNULENBQUM7UUFHQSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFXO1FBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUE2QixFQUFFLE1BQWMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUM5RCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7NEVBbENVLGNBQWM7b0VBQWQsY0FBYyxXQUFkLGNBQWMsbUJBRmIsTUFBTTt1RkFFUCxjQUFjO2NBSDFCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7QUFzQ0QsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFZLEVBQUU7SUFDdEMsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNjYW4sIG1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGRlbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG50eXBlIExvYWRpbmdNYXAgPSBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExvYWRpbmdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBsb2FkaW5nRW50cmllcyQgPSBuZXcgU3ViamVjdDxbc3RyaW5nLCBib29sZWFuXT4oKTtcblxuICBsb2FkaW5nTWFwOiBMb2FkaW5nTWFwID0ge307XG4gIGxvYWRpbmdNYXAkID0gdGhpcy5sb2FkaW5nRW50cmllcyQucGlwZShcbiAgICBzY2FuKChwcmUsIFtrZXksIHZhbHVlXSkgPT4gKHsgLi4ucHJlLCBba2V5XTogdmFsdWUgfSksIHt9IGFzIExvYWRpbmdNYXApLFxuICAgIG1hcCgobTogTG9hZGluZ01hcCkgPT4gT2JqZWN0LmVudHJpZXMobSlcbiAgICAgIC5maWx0ZXIoKFtrLCB2XTogW3N0cmluZywgYm9vbGVhbl0pID0+IHYpXG4gICAgICAucmVkdWNlKChwLCBbaywgdl0pID0+ICh7IC4uLnAsIFtrXTogdiB9KSwge30gYXMgTG9hZGluZ01hcCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmUsIGN1cikgPT4gSlNPTi5zdHJpbmdpZnkocHJlKSA9PT0gSlNPTi5zdHJpbmdpZnkoY3VyKSksXG4gICk7XG5cbiAgaXNMb2FkaW5nJCA9IHRoaXMubG9hZGluZ01hcCQucGlwZShcbiAgICBtYXAoKG0pID0+ICEhT2JqZWN0LmtleXMobSkubGVuZ3RoKSxcbiAgICBkZWxheSgwKSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmxvYWRpbmdNYXAkLnN1YnNjcmliZSgobSkgPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nTWFwID0gbTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldEtleShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZ0VudHJpZXMkLm5leHQoW2tleSwgdHJ1ZV0pO1xuICB9XG5cbiAgcmVtb3ZlS2V5KGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nRW50cmllcyQubmV4dChba2V5LCBmYWxzZV0pO1xuICB9XG5cbiAgc3RhcnQoY2FsbGJhY2s6IChkb25lOiBhbnkpID0+IHZvaWQsIGtleTogc3RyaW5nID0gcmFuZG9tU3RyKDE2KSkge1xuICAgIHRoaXMuc2V0S2V5KGtleSk7XG4gICAgY2FsbGJhY2soKCkgPT4gdGhpcy5yZW1vdmVLZXkoa2V5KSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJhbmRvbVN0cihuOiBudW1iZXIgPSAxNik6IHN0cmluZyB7XG4gIHJldHVybiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgbik7XG59Il19
@@ -21,7 +21,7 @@ class LoadingService {
21
21
  removeKey(key) {
22
22
  this.loadingEntries$.next([key, false]);
23
23
  }
24
- start(callback, key) {
24
+ start(callback, key = randomStr(16)) {
25
25
  this.setKey(key);
26
26
  callback(() => this.removeKey(key));
27
27
  }
@@ -36,10 +36,13 @@ LoadingService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LoadingSe
36
36
  }]
37
37
  }], function () { return []; }, null);
38
38
  })();
39
+ function randomStr(n = 16) {
40
+ return Math.random().toString(36).substr(2, n);
41
+ }
39
42
 
40
43
  /**
41
44
  * Generated bundle index. Do not edit.
42
45
  */
43
46
 
44
- export { LoadingService };
47
+ export { LoadingService, randomStr };
45
48
  //# sourceMappingURL=ng-atomic-common-services-loading.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-services-loading.mjs","sources":["../../../../libs/common/src/services/loading/loading.service.ts","../../../../libs/common/src/services/loading/ng-atomic-common-services-loading.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { scan, map, distinctUntilChanged, delay } from 'rxjs/operators';\n\ntype LoadingMap = Record<string, boolean>;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoadingService {\n private loadingEntries$ = new Subject<[string, boolean]>();\n\n loadingMap: LoadingMap = {};\n loadingMap$ = this.loadingEntries$.pipe(\n scan((pre, [key, value]) => ({ ...pre, [key]: value }), {} as LoadingMap),\n map((m: LoadingMap) => Object.entries(m)\n .filter(([k, v]: [string, boolean]) => v)\n .reduce((p, [k, v]) => ({ ...p, [k]: v }), {} as LoadingMap)),\n distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)),\n );\n\n isLoading$ = this.loadingMap$.pipe(\n map((m) => !!Object.keys(m).length),\n delay(0),\n );\n\n constructor() {\n this.loadingMap$.subscribe((m) => {\n this.loadingMap = m;\n });\n }\n\n setKey(key: string): void {\n this.loadingEntries$.next([key, true]);\n }\n\n removeKey(key: string): void {\n this.loadingEntries$.next([key, false]);\n }\n\n start(callback: (done: any) => void, key: string) {\n this.setKey(key);\n callback(() => this.removeKey(key));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MASa,cAAc,CAAA;AAiBzB,IAAA,WAAA,GAAA;AAhBQ,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAqB,CAAC;AAE3D,QAAA,IAAU,CAAA,UAAA,GAAe,EAAE,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CACrC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,MAAK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,GAAG,CAAE,EAAA,EAAA,CAAC,GAAG,GAAG,KAAK,EAAG,CAAA,CAAA,EAAE,EAAgB,CAAC,EACzE,GAAG,CAAC,CAAC,CAAa,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;aACrC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAoB,KAAK,CAAC,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,MAAW,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,CAAC,CAAE,EAAA,EAAA,CAAC,CAAC,GAAG,CAAC,EAAA,CAAA,CAAG,EAAE,EAAgB,CAAC,CAAC,EAC/D,oBAAoB,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAChF,CAAC;AAEF,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAChC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EACnC,KAAK,CAAC,CAAC,CAAC,CACT,CAAC;QAGA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,MAAM,CAAC,GAAW,EAAA;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;KACxC;AAED,IAAA,SAAS,CAAC,GAAW,EAAA;QACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;KACzC;IAED,KAAK,CAAC,QAA6B,EAAE,GAAW,EAAA;AAC9C,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjB,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;KACrC;;4EAlCU,cAAc,GAAA,CAAA,EAAA,CAAA;oEAAd,cAAc,EAAA,OAAA,EAAd,cAAc,CAAA,IAAA,EAAA,UAAA,EAFb,MAAM,EAAA,CAAA,CAAA;;4EAEP,cAAc,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;;ACRD;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-atomic-common-services-loading.mjs","sources":["../../../../libs/common/src/services/loading/loading.service.ts","../../../../libs/common/src/services/loading/ng-atomic-common-services-loading.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { scan, map, distinctUntilChanged, delay } from 'rxjs/operators';\n\ntype LoadingMap = Record<string, boolean>;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoadingService {\n private loadingEntries$ = new Subject<[string, boolean]>();\n\n loadingMap: LoadingMap = {};\n loadingMap$ = this.loadingEntries$.pipe(\n scan((pre, [key, value]) => ({ ...pre, [key]: value }), {} as LoadingMap),\n map((m: LoadingMap) => Object.entries(m)\n .filter(([k, v]: [string, boolean]) => v)\n .reduce((p, [k, v]) => ({ ...p, [k]: v }), {} as LoadingMap)),\n distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)),\n );\n\n isLoading$ = this.loadingMap$.pipe(\n map((m) => !!Object.keys(m).length),\n delay(0),\n );\n\n constructor() {\n this.loadingMap$.subscribe((m) => {\n this.loadingMap = m;\n });\n }\n\n setKey(key: string): void {\n this.loadingEntries$.next([key, true]);\n }\n\n removeKey(key: string): void {\n this.loadingEntries$.next([key, false]);\n }\n\n start(callback: (done: any) => void, key: string = randomStr(16)) {\n this.setKey(key);\n callback(() => this.removeKey(key));\n }\n}\n\nexport function randomStr(n: number = 16): string {\n return Math.random().toString(36).substr(2, n);\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MASa,cAAc,CAAA;AAiBzB,IAAA,WAAA,GAAA;AAhBQ,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAqB,CAAC;AAE3D,QAAA,IAAU,CAAA,UAAA,GAAe,EAAE,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CACrC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,MAAK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,GAAG,CAAE,EAAA,EAAA,CAAC,GAAG,GAAG,KAAK,EAAG,CAAA,CAAA,EAAE,EAAgB,CAAC,EACzE,GAAG,CAAC,CAAC,CAAa,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;aACrC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAoB,KAAK,CAAC,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,MAAW,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,CAAC,CAAE,EAAA,EAAA,CAAC,CAAC,GAAG,CAAC,EAAA,CAAA,CAAG,EAAE,EAAgB,CAAC,CAAC,EAC/D,oBAAoB,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAChF,CAAC;AAEF,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAChC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EACnC,KAAK,CAAC,CAAC,CAAC,CACT,CAAC;QAGA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,MAAM,CAAC,GAAW,EAAA;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;KACxC;AAED,IAAA,SAAS,CAAC,GAAW,EAAA;QACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;KACzC;IAED,KAAK,CAAC,QAA6B,EAAE,MAAc,SAAS,CAAC,EAAE,CAAC,EAAA;AAC9D,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjB,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;KACrC;;4EAlCU,cAAc,GAAA,CAAA,EAAA,CAAA;oEAAd,cAAc,EAAA,OAAA,EAAd,cAAc,CAAA,IAAA,EAAA,UAAA,EAFb,MAAM,EAAA,CAAA,CAAA;;4EAEP,cAAc,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;AAsCe,SAAA,SAAS,CAAC,CAAA,GAAY,EAAE,EAAA;AACtC,IAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD;;AChDA;;AAEG;;;;"}
@@ -21,7 +21,7 @@ class LoadingService {
21
21
  removeKey(key) {
22
22
  this.loadingEntries$.next([key, false]);
23
23
  }
24
- start(callback, key) {
24
+ start(callback, key = randomStr(16)) {
25
25
  this.setKey(key);
26
26
  callback(() => this.removeKey(key));
27
27
  }
@@ -34,10 +34,13 @@ LoadingService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LoadingSe
34
34
  providedIn: 'root',
35
35
  }]
36
36
  }], function () { return []; }, null); })();
37
+ function randomStr(n = 16) {
38
+ return Math.random().toString(36).substr(2, n);
39
+ }
37
40
 
38
41
  /**
39
42
  * Generated bundle index. Do not edit.
40
43
  */
41
44
 
42
- export { LoadingService };
45
+ export { LoadingService, randomStr };
43
46
  //# sourceMappingURL=ng-atomic-common-services-loading.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-services-loading.mjs","sources":["../../../../libs/common/src/services/loading/loading.service.ts","../../../../libs/common/src/services/loading/ng-atomic-common-services-loading.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { scan, map, distinctUntilChanged, delay } from 'rxjs/operators';\n\ntype LoadingMap = Record<string, boolean>;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoadingService {\n private loadingEntries$ = new Subject<[string, boolean]>();\n\n loadingMap: LoadingMap = {};\n loadingMap$ = this.loadingEntries$.pipe(\n scan((pre, [key, value]) => ({ ...pre, [key]: value }), {} as LoadingMap),\n map((m: LoadingMap) => Object.entries(m)\n .filter(([k, v]: [string, boolean]) => v)\n .reduce((p, [k, v]) => ({ ...p, [k]: v }), {} as LoadingMap)),\n distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)),\n );\n\n isLoading$ = this.loadingMap$.pipe(\n map((m) => !!Object.keys(m).length),\n delay(0),\n );\n\n constructor() {\n this.loadingMap$.subscribe((m) => {\n this.loadingMap = m;\n });\n }\n\n setKey(key: string): void {\n this.loadingEntries$.next([key, true]);\n }\n\n removeKey(key: string): void {\n this.loadingEntries$.next([key, false]);\n }\n\n start(callback: (done: any) => void, key: string) {\n this.setKey(key);\n callback(() => this.removeKey(key));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MASa,cAAc,CAAA;AAiBzB,IAAA,WAAA,GAAA;AAhBQ,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAqB,CAAC;QAE3D,IAAU,CAAA,UAAA,GAAe,EAAE,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CACrC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,EAAE,EAAgB,CAAC,EACzE,GAAG,CAAC,CAAC,CAAa,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;aACrC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAoB,KAAK,CAAC,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAgB,CAAC,CAAC,EAC/D,oBAAoB,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAChF,CAAC;AAEF,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAChC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EACnC,KAAK,CAAC,CAAC,CAAC,CACT,CAAC;QAGA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,MAAM,CAAC,GAAW,EAAA;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;KACxC;AAED,IAAA,SAAS,CAAC,GAAW,EAAA;QACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;KACzC;IAED,KAAK,CAAC,QAA6B,EAAE,GAAW,EAAA;AAC9C,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjB,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;KACrC;;4EAlCU,cAAc,GAAA,CAAA,EAAA,CAAA;oEAAd,cAAc,EAAA,OAAA,EAAd,cAAc,CAAA,IAAA,EAAA,UAAA,EAFb,MAAM,EAAA,CAAA,CAAA;uFAEP,cAAc,EAAA,CAAA;cAH1B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;ACRD;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-atomic-common-services-loading.mjs","sources":["../../../../libs/common/src/services/loading/loading.service.ts","../../../../libs/common/src/services/loading/ng-atomic-common-services-loading.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { scan, map, distinctUntilChanged, delay } from 'rxjs/operators';\n\ntype LoadingMap = Record<string, boolean>;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoadingService {\n private loadingEntries$ = new Subject<[string, boolean]>();\n\n loadingMap: LoadingMap = {};\n loadingMap$ = this.loadingEntries$.pipe(\n scan((pre, [key, value]) => ({ ...pre, [key]: value }), {} as LoadingMap),\n map((m: LoadingMap) => Object.entries(m)\n .filter(([k, v]: [string, boolean]) => v)\n .reduce((p, [k, v]) => ({ ...p, [k]: v }), {} as LoadingMap)),\n distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)),\n );\n\n isLoading$ = this.loadingMap$.pipe(\n map((m) => !!Object.keys(m).length),\n delay(0),\n );\n\n constructor() {\n this.loadingMap$.subscribe((m) => {\n this.loadingMap = m;\n });\n }\n\n setKey(key: string): void {\n this.loadingEntries$.next([key, true]);\n }\n\n removeKey(key: string): void {\n this.loadingEntries$.next([key, false]);\n }\n\n start(callback: (done: any) => void, key: string = randomStr(16)) {\n this.setKey(key);\n callback(() => this.removeKey(key));\n }\n}\n\nexport function randomStr(n: number = 16): string {\n return Math.random().toString(36).substr(2, n);\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MASa,cAAc,CAAA;AAiBzB,IAAA,WAAA,GAAA;AAhBQ,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAqB,CAAC;QAE3D,IAAU,CAAA,UAAA,GAAe,EAAE,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CACrC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,EAAE,EAAgB,CAAC,EACzE,GAAG,CAAC,CAAC,CAAa,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;aACrC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAoB,KAAK,CAAC,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAgB,CAAC,CAAC,EAC/D,oBAAoB,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAChF,CAAC;AAEF,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAChC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EACnC,KAAK,CAAC,CAAC,CAAC,CACT,CAAC;QAGA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,MAAM,CAAC,GAAW,EAAA;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;KACxC;AAED,IAAA,SAAS,CAAC,GAAW,EAAA;QACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;KACzC;AAED,IAAA,KAAK,CAAC,QAA6B,EAAE,MAAc,SAAS,CAAC,EAAE,CAAC,EAAA;AAC9D,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjB,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;KACrC;;4EAlCU,cAAc,GAAA,CAAA,EAAA,CAAA;oEAAd,cAAc,EAAA,OAAA,EAAd,cAAc,CAAA,IAAA,EAAA,UAAA,EAFb,MAAM,EAAA,CAAA,CAAA;uFAEP,cAAc,EAAA,CAAA;cAH1B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;AAsCe,SAAA,SAAS,CAAC,CAAA,GAAY,EAAE,EAAA;AACtC,IAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD;;AChDA;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-atomic/common",
3
- "version": "4.16.3",
3
+ "version": "4.17.0",
4
4
  "license": "MIT",
5
5
  "module": "fesm2015/ng-atomic-common.mjs",
6
6
  "es2020": "fesm2020/ng-atomic-common.mjs",
@@ -8,9 +8,10 @@ export declare class LoadingService {
8
8
  constructor();
9
9
  setKey(key: string): void;
10
10
  removeKey(key: string): void;
11
- start(callback: (done: any) => void, key: string): void;
11
+ start(callback: (done: any) => void, key?: string): void;
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<LoadingService, never>;
13
13
  static ɵprov: i0.ɵɵInjectableDeclaration<LoadingService>;
14
14
  }
15
+ export declare function randomStr(n?: number): string;
15
16
  export {};
16
17
  //# sourceMappingURL=loading.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loading.service.d.ts","sourceRoot":"","sources":["../../../../../libs/common/src/services/loading/loading.service.ts"],"names":[],"mappings":";AAIA,aAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,qBAGa,cAAc;IACzB,OAAO,CAAC,eAAe,CAAoC;IAE3D,UAAU,EAAE,UAAU,CAAM;IAC5B,WAAW,wCAMT;IAEF,UAAU,qCAGR;;IAQF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI5B,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,EAAE,MAAM;yCA/BrC,cAAc;6CAAd,cAAc;CAmC1B"}
1
+ {"version":3,"file":"loading.service.d.ts","sourceRoot":"","sources":["../../../../../libs/common/src/services/loading/loading.service.ts"],"names":[],"mappings":";AAIA,aAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,qBAGa,cAAc;IACzB,OAAO,CAAC,eAAe,CAAoC;IAE3D,UAAU,EAAE,UAAU,CAAM;IAC5B,WAAW,wCAMT;IAEF,UAAU,qCAGR;;IAQF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI5B,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,GAAE,MAAsB;yCA/BrD,cAAc;6CAAd,cAAc;CAmC1B;AAED,wBAAgB,SAAS,CAAC,CAAC,GAAE,MAAW,GAAG,MAAM,CAEhD"}