@ethlete/core 3.8.0 → 3.8.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.
@@ -11,9 +11,11 @@ export class AnimatableDirective {
11
11
  this._elementRef = inject(ElementRef);
12
12
  this._animationStart$ = new Subject();
13
13
  this._animationEnd$ = new Subject();
14
+ this._animationCancelled$ = new Subject();
14
15
  this._animatedElement$ = new BehaviorSubject(this._elementRef.nativeElement);
15
16
  this.animationStart$ = this._animationStart$.asObservable().pipe(debounceTime(0));
16
17
  this.animationEnd$ = this._animationEnd$.asObservable().pipe(debounceTime(0));
18
+ this.animationCancelled$ = this._animationCancelled$.asObservable().pipe(debounceTime(0));
17
19
  this._hostActiveAnimationCount$ = new BehaviorSubject(0);
18
20
  this._totalActiveAnimationCount$ = new BehaviorSubject(0);
19
21
  this.isAnimating$ = this._totalActiveAnimationCount$.pipe(map((count) => count > 0), debounceTime(0));
@@ -63,6 +65,12 @@ export class AnimatableDirective {
63
65
  this._totalActiveAnimationCount$.next(count);
64
66
  }), takeUntil(this._destroy$), takeUntil(this._animatedElement$.pipe(skip(1))))
65
67
  .subscribe();
68
+ merge(fromEvent(el, 'animationcancel'), fromEvent(el, 'transitioncancel'))
69
+ .pipe(filter((e) => e.target === el), // skip events from children
70
+ tap(() => {
71
+ this._animationCancelled$.next();
72
+ }), takeUntil(this._destroy$), takeUntil(this._animatedElement$.pipe(skip(1))))
73
+ .subscribe();
66
74
  }), takeUntil(this._destroy$))
67
75
  .subscribe();
68
76
  this._totalActiveAnimationCount$
@@ -110,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
110
118
  type: Input,
111
119
  args: ['etAnimatable']
112
120
  }] } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0YWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2FuaW1hdGFibGUvYW5pbWF0YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLE1BQU0sRUFDTixTQUFTLEVBQ1QsR0FBRyxFQUNILEtBQUssRUFFTCxJQUFJLEVBQ0osT0FBTyxFQUNQLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUU1QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsNEJBQTRCLENBQUMsQ0FBQztBQWF0RyxNQUFNLE9BQU8sbUJBQW1CO0lBWGhDO1FBWVUsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFYixZQUFPLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2RSxjQUFTLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDNUIsZ0JBQVcsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRTFELHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDdkMsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBMkI5QyxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBYyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXBGLG9CQUFlLEdBQUcsSUFBSSxD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QUFHLElBQUksQ0FBQzthQUMzQjtpQkFBTSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2FBQzVCO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7YUFDQSxTQUFTLEVBQUUsQ0FBQztRQUVmLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLDBCQUEwQjtpQkFDcEMsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQ3pCLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNaLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RixDQUFDLENBQUMsQ0FDSDtpQkFDQSxTQUFTLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUM7OEdBckhVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLCtIQVBuQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7Z0JBQ3pCLFdBQVcsRUFBRSxtQkFBbUI7YUFDakM7U0FDRjs7MkZBRVUsbUJBQW1CO2tCQVgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7NEJBQ3pCLFdBQVcscUJBQXFCO3lCQUNqQztxQkFDRjtpQkFDRjs4QkFZSyxlQUFlO3NCQURsQixLQUFLO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBpc0Rldk1vZGUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBkZWJvdW5jZVRpbWUsXG4gIGZpbHRlcixcbiAgZnJvbUV2ZW50LFxuICBtYXAsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBza2lwLFxuICBTdWJqZWN0LFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjcmVhdGVEZXN0cm95IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgQU5JTUFUQUJMRV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBbmltYXRhYmxlRGlyZWN0aXZlPignQU5JTUFUQUJMRV9ESVJFQ1RJVkVfVE9LRU4nKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2V0QW5pbWF0YWJsZV0nLFxuICBleHBvcnRBczogJ2V0QW5pbWF0YWJsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFOSU1BVEFCTEVfVE9LRU4sXG4gICAgICB1c2VFeGlzdGluZzogQW5pbWF0YWJsZURpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBbmltYXRhYmxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfZGlkRW1pdFN0YXJ0ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGFyZW50ID0gaW5qZWN0KEFOSU1BVEFCTEVfVE9LRU4sIHsgb3B0aW9uYWw6IHRydWUsIHNraXBTZWxmOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYW5pbWF0aW9uU3RhcnQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYW5pbWF0aW9uRW5kJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQElucHV0KCdldEFuaW1hdGFibGUnKVxuICBzZXQgYW5pbWF0ZWRFbGVtZW50KHZhbHVlOiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICBsZXQgbmV3RWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgIG5ld0VsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodmFsdWUpIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICBpZiAoZWwpIHtcbiAgICAgICAgbmV3RWxlbWVudCA9IGVsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGBFbGVtZW50IHdpdGggc2VsZWN0b3IgJHt2YWx1ZX0gbm90IGZvdW5kLiBBbmltYXRhYmxlIGRpcmVjdGl2ZSB3aWxsIHVzZSBob3N0IGVsZW1lbnQuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBuZXdFbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXdFbGVtZW50ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2FuaW1hdGVkRWxlbWVudCQudmFsdWUgIT09IG5ld0VsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2FuaW1hdGVkRWxlbWVudCQubmV4dChuZXdFbGVtZW50KTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfYW5pbWF0ZWRFbGVtZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SFRNTEVsZW1lbnQ+KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgcmVhZG9ubHkgYW5pbWF0aW9uU3RhcnQkID0gdGhpcy5fYW5pbWF0aW9uU3RhcnQkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDApKTtcbiAgcmVhZG9ubHkgYW5pbWF0aW9uRW5kJCA9IHRoaXMuX2FuaW1hdGlvbkVuZCQuYXNPYnNlcnZhYmxlKCkucGlwZShkZWJvdW5jZVRpbWUoMCkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2hvc3RBY3RpdmVBbmltYXRpb25Db3VudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RvdGFsQWN0aXZlQW5pbWF0aW9uQ291bnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuXG4gIHJlYWRvbmx5IGlzQW5pbWF0aW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX3RvdGFsQWN0aXZlQW5pbWF0aW9uQ291bnQkLnBpcGUoXG4gICAgbWFwKChjb3VudCkgPT4gY291bnQgPiAwKSxcbiAgICBkZWJvdW5jZVRpbWUoMCksXG4gICk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fYW5pbWF0ZWRFbGVtZW50JFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoZWwpID0+IHtcbiAgICAgICAgICB0aGlzLl90b3RhbEFjdGl2ZUFuaW1hdGlvbkNvdW50JC5uZXh0KFxuICAgICAgICAgICAgdGhpcy5fdG90YWxBY3RpdmVBbmltYXRpb25Db3VudCQudmFsdWUgLSB0aGlzLl9ob3N0QWN0aXZlQW5pbWF0aW9uQ291bnQkLnZhbHVlLFxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5faG9zdEFjdGl2ZUFuaW1hdGlvbkNvdW50JC5uZXh0KDApO1xuXG4gICAgICAgICAgbWVyZ2UoZnJvbUV2ZW50PEFuaW1hdGlvbkV2ZW50PihlbCwgJ2FuaW1hdGlvbnN0YXJ0JyksIGZyb21FdmVudDxUcmFuc2l0aW9uRXZlbnQ+KGVsLCAndHJhbnNpdGlvbnN0YXJ0JykpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgZmlsdGVyKChlKSA9PiBlLnRhcmdldCA9PT0gZWwpLCAvLyBza2lwIGV2ZW50cyBmcm9tIGNoaWxkcmVuXG4gICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY291bnQgPSB0aGlzLl9ob3N0QWN0aXZlQW5pbWF0aW9uQ291bnQkLnZhbHVlICsgMTtcbiAgICAgICAgICAgICAgICB0aGlzLl9ob3N0QWN0aXZlQW5pbWF0aW9uQ291bnQkLm5leHQoY291bnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3RvdGFsQWN0aXZlQW5pbWF0aW9uQ291bnQkLm5leHQoY291bnQpO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2FuaW1hdGVkRWxlbWVudCQucGlwZShza2lwKDEpKSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIGZyb21FdmVudDxBbmltYXRpb25FdmVudD4oZWwsICdhbmltYXRpb25lbmQnKSxcbiAgICAgICAgICAgIGZyb21FdmVudDxBbmltYXRpb25FdmVudD4oZWwsICdhbmltYXRpb25jYW5jZWwnKSxcbiAgICAgICAgICAgIGZyb21FdmVudDxUcmFuc2l0aW9uRXZlbnQ+KGVsLCAndHJhbnNpdGlvbmVuZCcpLFxuICAgICAgICAgICAgZnJvbUV2ZW50PFRyYW5zaXRpb25FdmVudD4oZWwsICd0cmFuc2l0aW9uY2FuY2VsJyksXG4gICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIGZpbHRlcigoZSkgPT4gZS50YXJnZXQgPT09IGVsKSwgLy8gc2tpcCBldmVudHMgZnJvbSBjaGlsZHJlblxuICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gdGhpcy5faG9zdEFjdGl2ZUFuaW1hdGlvbkNvdW50JC52YWx1ZSAtIDE7XG4gICAgICAgICAgICAgICAgdGhpcy5faG9zdEFjdGl2ZUFuaW1hdGlvbkNvdW50JC5uZXh0KGNvdW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLl90b3RhbEFjdGl2ZUFuaW1hdGlvbkNvdW50JC5uZXh0KGNvdW50KTtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9hbmltYXRlZEVsZW1lbnQkLnBpcGUoc2tpcCgxKSkpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX3RvdGFsQWN0aXZlQW5pbWF0aW9uQ291bnQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChjb3VudCkgPT4ge1xuICAgICAgICAgIGlmIChjb3VudCA+IDAgJiYgIXRoaXMuX2RpZEVtaXRTdGFydCkge1xuICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uU3RhcnQkLm5leHQoKTtcbiAgICAgICAgICAgIHRoaXMuX2RpZEVtaXRTdGFydCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIGlmIChjb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uRW5kJC5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLl9kaWRFbWl0U3RhcnQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgaWYgKHRoaXMuX3BhcmVudCkge1xuICAgICAgdGhpcy5fcGFyZW50Ll9ob3N0QWN0aXZlQW5pbWF0aW9uQ291bnQkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgICAgdGFwKChjb3VudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdG90YWxBY3RpdmVBbmltYXRpb25Db3VudCQubmV4dChjb3VudCArIHRoaXMuX2hvc3RBY3RpdmVBbmltYXRpb25Db3VudCQudmFsdWUpO1xuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0YWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2FuaW1hdGFibGUvYW5pbWF0YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLE1BQU0sRUFDTixTQUFTLEVBQ1QsR0FBRyxFQUNILEtBQUssRUFFTCxJQUFJLEVBQ0osT0FBTyxFQUNQLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUU1QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsNEJBQTRCLENBQUMsQ0FBQztBQWF0RyxNQUFNLE9BQU8sbUJBQW1CO0lBWGhDO1FBWVUsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFYixZQUFPLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2RSxjQUFTLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDNUIsZ0JBQVcsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRTFELHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDdkMsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3JDLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUEyQnBELHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFjLElBQUksQ0FBQyxXQUFXLENBQUMs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O2dCQUNaLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RixDQUFDLENBQUMsQ0FDSDtpQkFDQSxTQUFTLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUM7OEdBbElVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLCtIQVBuQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7Z0JBQ3pCLFdBQVcsRUFBRSxtQkFBbUI7YUFDakM7U0FDRjs7MkZBRVUsbUJBQW1CO2tCQVgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7NEJBQ3pCLFdBQVcscUJBQXFCO3lCQUNqQztxQkFDRjtpQkFDRjs4QkFhSyxlQUFlO3NCQURsQixLQUFLO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBpc0Rldk1vZGUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBkZWJvdW5jZVRpbWUsXG4gIGZpbHRlcixcbiAgZnJvbUV2ZW50LFxuICBtYXAsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBza2lwLFxuICBTdWJqZWN0LFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjcmVhdGVEZXN0cm95IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgQU5JTUFUQUJMRV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBbmltYXRhYmxlRGlyZWN0aXZlPignQU5JTUFUQUJMRV9ESVJFQ1RJVkVfVE9LRU4nKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2V0QW5pbWF0YWJsZV0nLFxuICBleHBvcnRBczogJ2V0QW5pbWF0YWJsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFOSU1BVEFCTEVfVE9LRU4sXG4gICAgICB1c2VFeGlzdGluZzogQW5pbWF0YWJsZURpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBbmltYXRhYmxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfZGlkRW1pdFN0YXJ0ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGFyZW50ID0gaW5qZWN0KEFOSU1BVEFCTEVfVE9LRU4sIHsgb3B0aW9uYWw6IHRydWUsIHNraXBTZWxmOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYW5pbWF0aW9uU3RhcnQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYW5pbWF0aW9uRW5kJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FuaW1hdGlvbkNhbmNlbGxlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBJbnB1dCgnZXRBbmltYXRhYmxlJylcbiAgc2V0IGFuaW1hdGVkRWxlbWVudCh2YWx1ZTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgbGV0IG5ld0VsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgICBuZXdFbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHZhbHVlKSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgaWYgKGVsKSB7XG4gICAgICAgIG5ld0VsZW1lbnQgPSBlbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgRWxlbWVudCB3aXRoIHNlbGVjdG9yICR7dmFsdWV9IG5vdCBmb3VuZC4gQW5pbWF0YWJsZSBkaXJlY3RpdmUgd2lsbCB1c2UgaG9zdCBlbGVtZW50LmApO1xuICAgICAgICB9XG5cbiAgICAgICAgbmV3RWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbmV3RWxlbWVudCA9IHZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9hbmltYXRlZEVsZW1lbnQkLnZhbHVlICE9PSBuZXdFbGVtZW50KSB7XG4gICAgICB0aGlzLl9hbmltYXRlZEVsZW1lbnQkLm5leHQobmV3RWxlbWVudCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX2FuaW1hdGVkRWxlbWVudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEhUTUxFbGVtZW50Pih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuXG4gIHJlYWRvbmx5IGFuaW1hdGlvblN0YXJ0JCA9IHRoaXMuX2FuaW1hdGlvblN0YXJ0JC5hc09ic2VydmFibGUoKS5waXBlKGRlYm91bmNlVGltZSgwKSk7XG4gIHJlYWRvbmx5IGFuaW1hdGlvbkVuZCQgPSB0aGlzLl9hbmltYXRpb25FbmQkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDApKTtcbiAgcmVhZG9ubHkgYW5pbWF0aW9uQ2FuY2VsbGVkJCA9IHRoaXMuX2FuaW1hdGlvbkNhbmNlbGxlZCQuYXNPYnNlcnZhYmxlKCkucGlwZShkZWJvdW5jZVRpbWUoMCkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2hvc3RBY3RpdmVBbmltYXRpb25Db3VudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RvdGFsQWN0aXZlQW5pbWF0aW9uQ291bnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuXG4gIHJlYWRvbmx5IGlzQW5pbWF0aW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX3RvdGFsQWN0aXZlQW5pbWF0aW9uQ291bnQkLnBpcGUoXG4gICAgbWFwKChjb3VudCkgPT4gY291bnQgPiAwKSxcbiAgICBkZWJvdW5jZVRpbWUoMCksXG4gICk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fYW5pbWF0ZWRFbGVtZW50JFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoZWwpID0+IHtcbiAgICAgICAgICB0aGlzLl90b3RhbEFjdGl2ZUFuaW1hdGlvbkNvdW50JC5uZXh0KFxuICAgICAgICAgICAgdGhpcy5fdG90YWxBY3RpdmVBbmltYXRpb25Db3VudCQudmFsdWUgLSB0aGlzLl9ob3N0QWN0aXZlQW5pbWF0aW9uQ291bnQkLnZhbHVlLFxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5faG9zdEFjdGl2ZUFuaW1hdGlvbkNvdW50JC5uZXh0KDApO1xuXG4gICAgICAgICAgbWVyZ2UoZnJvbUV2ZW50PEFuaW1hdGlvbkV2ZW50PihlbCwgJ2FuaW1hdGlvbnN0YXJ0JyksIGZyb21FdmVudDxUcmFuc2l0aW9uRXZlbnQ+KGVsLCAndHJhbnNpdGlvbnN0YXJ0JykpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgZmlsdGVyKChlKSA9PiBlLnRhcmdldCA9PT0gZWwpLCAvLyBza2lwIGV2ZW50cyBmcm9tIGNoaWxkcmVuXG4gICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY291bnQgPSB0aGlzLl9ob3N0QWN0aXZlQW5pbWF0aW9uQ291bnQkLnZhbHVlICsgMTtcbiAgICAgICAgICAgICAgICB0aGlzLl9ob3N0QWN0aXZlQW5pbWF0aW9uQ291bnQkLm5leHQoY291bnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3RvdGFsQWN0aXZlQW5pbWF0aW9uQ291bnQkLm5leHQoY291bnQpO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2FuaW1hdGVkRWxlbWVudCQucGlwZShza2lwKDEpKSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIGZyb21FdmVudDxBbmltYXRpb25FdmVudD4oZWwsICdhbmltYXRpb25lbmQnKSxcbiAgICAgICAgICAgIGZyb21FdmVudDxBbmltYXRpb25FdmVudD4oZWwsICdhbmltYXRpb25jYW5jZWwnKSxcbiAgICAgICAgICAgIGZyb21FdmVudDxUcmFuc2l0aW9uRXZlbnQ+KGVsLCAndHJhbnNpdGlvbmVuZCcpLFxuICAgICAgICAgICAgZnJvbUV2ZW50PFRyYW5zaXRpb25FdmVudD4oZWwsICd0cmFuc2l0aW9uY2FuY2VsJyksXG4gICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIGZpbHRlcigoZSkgPT4gZS50YXJnZXQgPT09IGVsKSwgLy8gc2tpcCBldmVudHMgZnJvbSBjaGlsZHJlblxuICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gdGhpcy5faG9zdEFjdGl2ZUFuaW1hdGlvbkNvdW50JC52YWx1ZSAtIDE7XG4gICAgICAgICAgICAgICAgdGhpcy5faG9zdEFjdGl2ZUFuaW1hdGlvbkNvdW50JC5uZXh0KGNvdW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLl90b3RhbEFjdGl2ZUFuaW1hdGlvbkNvdW50JC5uZXh0KGNvdW50KTtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9hbmltYXRlZEVsZW1lbnQkLnBpcGUoc2tpcCgxKSkpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgICAgICAgbWVyZ2UoZnJvbUV2ZW50PEFuaW1hdGlvbkV2ZW50PihlbCwgJ2FuaW1hdGlvbmNhbmNlbCcpLCBmcm9tRXZlbnQ8VHJhbnNpdGlvbkV2ZW50PihlbCwgJ3RyYW5zaXRpb25jYW5jZWwnKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICBmaWx0ZXIoKGUpID0+IGUudGFyZ2V0ID09PSBlbCksIC8vIHNraXAgZXZlbnRzIGZyb20gY2hpbGRyZW5cbiAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hbmltYXRpb25DYW5jZWxsZWQkLm5leHQoKTtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9hbmltYXRlZEVsZW1lbnQkLnBpcGUoc2tpcCgxKSkpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX3RvdGFsQWN0aXZlQW5pbWF0aW9uQ291bnQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChjb3VudCkgPT4ge1xuICAgICAgICAgIGlmIChjb3VudCA+IDAgJiYgIXRoaXMuX2RpZEVtaXRTdGFydCkge1xuICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uU3RhcnQkLm5leHQoKTtcbiAgICAgICAgICAgIHRoaXMuX2RpZEVtaXRTdGFydCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIGlmIChjb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uRW5kJC5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLl9kaWRFbWl0U3RhcnQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgaWYgKHRoaXMuX3BhcmVudCkge1xuICAgICAgdGhpcy5fcGFyZW50Ll9ob3N0QWN0aXZlQW5pbWF0aW9uQ291bnQkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgICAgdGFwKChjb3VudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdG90YWxBY3RpdmVBbmltYXRpb25Db3VudCQubmV4dChjb3VudCArIHRoaXMuX2hvc3RBY3RpdmVBbmltYXRpb25Db3VudCQudmFsdWUpO1xuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Directive, ElementRef, inject, InjectionToken, isDevMode } from '@angular/core';
1
+ import { Directive, ElementRef, inject, InjectionToken } from '@angular/core';
2
2
  import { BehaviorSubject, map, switchMap, take, takeUntil, tap } from 'rxjs';
3
3
  import { createDestroy, createReactiveBindings, forceReflow, fromNextFrame } from '../../utils';
4
4
  import { ANIMATABLE_TOKEN, AnimatableDirective } from '../animatable';
@@ -35,13 +35,17 @@ export class AnimatedLifecycleDirective {
35
35
  this._isConstructed = true;
36
36
  }
37
37
  enter(config) {
38
+ if (this.state === 'entering')
39
+ return;
38
40
  if (this.state === 'init' && !this._isConstructed) {
39
41
  // Force the state to entered so that the element is not animated when it is first rendered.
40
42
  this._forceState('entered');
41
43
  return;
42
44
  }
43
- if (this.state !== 'init' && this.state !== 'left' && isDevMode()) {
44
- console.warn('Tried to enter but the element is not in the initial state. This may result in unexpected behavior.', this);
45
+ if (this.state === 'leaving') {
46
+ this._classList.remove(ANIMATION_CLASSES.leaveFrom);
47
+ this._classList.remove(ANIMATION_CLASSES.leaveActive);
48
+ this._classList.remove(ANIMATION_CLASSES.leaveTo);
45
49
  }
46
50
  this._state$.next('entering');
47
51
  if (!config?.onlyTransition) {
@@ -51,11 +55,13 @@ export class AnimatedLifecycleDirective {
51
55
  this._classList.add(ANIMATION_CLASSES.enterActive);
52
56
  fromNextFrame()
53
57
  .pipe(tap(() => {
54
- if (!config?.onlyTransition) {
58
+ if (!config?.onlyTransition && this.state === 'entering') {
55
59
  this._classList.remove(ANIMATION_CLASSES.enterFrom);
56
60
  this._classList.add(ANIMATION_CLASSES.enterTo);
57
61
  }
58
62
  }), switchMap(() => this._animatable.animationEnd$), tap(() => {
63
+ if (this.state !== 'entering')
64
+ return;
59
65
  this._state$.next('entered');
60
66
  this._classList.remove(ANIMATION_CLASSES.enterActive);
61
67
  if (!config?.onlyTransition) {
@@ -65,16 +71,13 @@ export class AnimatedLifecycleDirective {
65
71
  .subscribe();
66
72
  }
67
73
  leave(config) {
74
+ if (this.state === 'leaving')
75
+ return;
68
76
  if (this.state === 'init') {
69
77
  this._state$.next('left');
70
78
  return;
71
79
  }
72
- if (this.state !== 'entered' && this.state !== 'entering' && isDevMode()) {
73
- console.warn('Tried to leave while already leaving or left. This may result in unexpected behavior.', this);
74
- }
75
- if (this._classList.contains(ANIMATION_CLASSES.enterFrom) ||
76
- this._classList.contains(ANIMATION_CLASSES.enterActive) ||
77
- this._classList.contains(ANIMATION_CLASSES.enterTo)) {
80
+ if (this.state === 'entering') {
78
81
  this._classList.remove(ANIMATION_CLASSES.enterFrom);
79
82
  this._classList.remove(ANIMATION_CLASSES.enterActive);
80
83
  this._classList.remove(ANIMATION_CLASSES.enterTo);
@@ -87,11 +90,13 @@ export class AnimatedLifecycleDirective {
87
90
  this._classList.add(ANIMATION_CLASSES.leaveActive);
88
91
  fromNextFrame()
89
92
  .pipe(tap(() => {
90
- if (!config?.onlyTransition) {
93
+ if (!config?.onlyTransition && this.state === 'leaving') {
91
94
  this._classList.remove(ANIMATION_CLASSES.leaveFrom);
92
95
  this._classList.add(ANIMATION_CLASSES.leaveTo);
93
96
  }
94
97
  }), switchMap(() => this._animatable.animationEnd$), tap(() => {
98
+ if (this.state !== 'leaving')
99
+ return;
95
100
  this._state$.next('left');
96
101
  this._classList.remove(ANIMATION_CLASSES.leaveActive);
97
102
  if (!config?.onlyTransition) {
@@ -126,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
126
131
  hostDirectives: [AnimatableDirective],
127
132
  }]
128
133
  }] });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0ZWQtbGlmZWN5Y2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvYW5pbWF0ZWQtbGlmZWN5Y2xlL2FuaW1hdGVkLWxpZmVjeWNsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFFdEUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQ3hELG9DQUFvQyxDQUNyQyxDQUFDO0FBRUYsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixTQUFTLEVBQUUseUJBQXlCO0lBQ3BDLFdBQVcsRUFBRSwyQkFBMkI7SUFDeEMsT0FBTyxFQUFFLHVCQUF1QjtJQUNoQyxTQUFTLEVBQUUseUJBQXlCO0lBQ3BDLFdBQVcsRUFBRSwyQkFBMkI7SUFDeEMsT0FBTyxFQUFFLHVCQUF1QjtDQUN4QixDQUFDO0FBZ0JYLE1BQU0sT0FBTywwQkFBMEI7SUFadkM7UUFhbUIsY0FBUyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUMxRCxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3ZDLGVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFFL0QsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFdkIsWUFBTyxHQUFHLElBQUksZUFBZSxDQUF5QixNQUFNLENBQUMsQ0FBQztRQUM3RCxXQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQU03QixjQUFTLEdBQUcsc0JBQXNCLENBQUM7WUFDbEQsU0FBUyxFQUFFLDBCQUEwQjtZQUNyQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUM7WUFDL0QsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDLENBQUM7S0EyR0o7SUFuSEMsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBUUQsZUFBZTtRQUNiLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBcUM7UUFDekMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDakQsNEZBQTRGO1lBQzVGLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUIsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLE1BQU0sSUFBSSxTQUFTLEVBQUUsRUFBRTtZQUNqRSxPQUFPLENBQUMsSUFBSSxDQUNWLHFHQUFxRyxFQUNyRyxJQUFJLENBQ0wsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDbEQ7UUFFRCxXQUFXLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5ELGFBQWEsRUFBRTthQUNaLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNoRDtRQUNILENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUMvQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFdEQsSUFBSSxDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ25EO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFDekIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFxQztRQUN6QyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssTUFBTSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFCLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxVQUFVLElBQUksU0FBUyxFQUFFLEVBQUU7WUFDeEUsT0FBTyxDQUFDLElBQUksQ0FBQyx1RkFBdUYsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUM3RztRQUVELElBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDO1lBQ3JELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQztZQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFDbkQ7WUFDQSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNuRDtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdCLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFO1lBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsV0FBVyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVuRCxhQUFhLEVBQUU7YUFDWixJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFO2dCQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDaEQ7UUFDSCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsRUFDL0MsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRXRELElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFO2dCQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNuRDtRQUNILENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQ3pCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDUjthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBNkI7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQzs4R0E3SFUsMEJBQTBCO2tHQUExQiwwQkFBMEIsb0VBUjFCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHdCQUF3QjtnQkFDakMsV0FBVyxFQUFFLDBCQUEwQjthQUN4QztTQUNGOzsyRkFHVSwwQkFBMEI7a0JBWnRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsd0JBQXdCOzRCQUNqQyxXQUFXLDRCQUE0Qjt5QkFDeEM7cUJBQ0Y7b0JBQ0QsY0FBYyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIEluamVjdGlvblRva2VuLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjcmVhdGVEZXN0cm95LCBjcmVhdGVSZWFjdGl2ZUJpbmRpbmdzLCBmb3JjZVJlZmxvdywgZnJvbU5leHRGcmFtZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEFOSU1BVEFCTEVfVE9LRU4sIEFuaW1hdGFibGVEaXJlY3RpdmUgfSBmcm9tICcuLi9hbmltYXRhYmxlJztcblxuZXhwb3J0IGNvbnN0IEFOSU1BVEVEX0xJRkVDWUNMRV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBbmltYXRlZExpZmVjeWNsZURpcmVjdGl2ZT4oXG4gICdBTklNQVRFRF9MSUZFQ1lDTEVfRElSRUNUSVZFX1RPS0VOJyxcbik7XG5cbmNvbnN0IEFOSU1BVElPTl9DTEFTU0VTID0ge1xuICBlbnRlckZyb206ICdldC1hbmltYXRpb24tZW50ZXItZnJvbScsXG4gIGVudGVyQWN0aXZlOiAnZXQtYW5pbWF0aW9uLWVudGVyLWFjdGl2ZScsXG4gIGVudGVyVG86ICdldC1hbmltYXRpb24tZW50ZXItdG8nLFxuICBsZWF2ZUZyb206ICdldC1hbmltYXRpb24tbGVhdmUtZnJvbScsXG4gIGxlYXZlQWN0aXZlOiAnZXQtYW5pbWF0aW9uLWxlYXZlLWFjdGl2ZScsXG4gIGxlYXZlVG86ICdldC1hbmltYXRpb24tbGVhdmUtdG8nLFxufSBhcyBjb25zdDtcblxudHlwZSBBbmltYXRlZExpZmVjeWNsZVN0YXRlID0gJ2VudGVyaW5nJyB8ICdlbnRlcmVkJyB8ICdsZWF2aW5nJyB8ICdsZWZ0JyB8ICdpbml0JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2V0QW5pbWF0ZWRMaWZlY3ljbGVdJyxcbiAgZXhwb3J0QXM6ICdldEFuaW1hdGVkTGlmZWN5Y2xlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQU5JTUFURURfTElGRUNZQ0xFX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IEFuaW1hdGVkTGlmZWN5Y2xlRGlyZWN0aXZlLFxuICAgIH0sXG4gIF0sXG4gIGhvc3REaXJlY3RpdmVzOiBbQW5pbWF0YWJsZURpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFuaW1hdGVkTGlmZWN5Y2xlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYW5pbWF0YWJsZSA9IGluamVjdChBTklNQVRBQkxFX1RPS0VOKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xhc3NMaXN0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdDtcblxuICBwcml2YXRlIF9pc0NvbnN0cnVjdGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBbmltYXRlZExpZmVjeWNsZVN0YXRlPignaW5pdCcpO1xuICByZWFkb25seSBzdGF0ZSQgPSB0aGlzLl9zdGF0ZSQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgZ2V0IHN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZSQudmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9iaW5kaW5ncyA9IGNyZWF0ZVJlYWN0aXZlQmluZGluZ3Moe1xuICAgIGF0dHJpYnV0ZTogJ2NsYXNzLmV0LWZvcmNlLWludmlzaWJsZScsXG4gICAgb2JzZXJ2YWJsZTogdGhpcy5fc3RhdGUkLnBpcGUobWFwKChzdGF0ZSkgPT4gc3RhdGUgPT09ICdpbml0JykpLFxuICAgIGVhZ2VyOiB0cnVlLFxuICB9KTtcblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5faXNDb25zdHJ1Y3RlZCA9IHRydWU7XG4gIH1cblxuICBlbnRlcihjb25maWc/OiB7IG9ubHlUcmFuc2l0aW9uPzogYm9vbGVhbiB9KSB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdpbml0JyAmJiAhdGhpcy5faXNDb25zdHJ1Y3RlZCkge1xuICAgICAgLy8gRm9yY2UgdGhlIHN0YXRlIHRvIGVudGVyZWQgc28gdGhhdCB0aGUgZWxlbWVudCBpcyBub3QgYW5pbWF0ZWQgd2hlbiBpdCBpcyBmaXJzdCByZW5kZXJlZC5cbiAgICAgIHRoaXMuX2ZvcmNlU3RhdGUoJ2VudGVyZWQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2luaXQnICYmIHRoaXMuc3RhdGUgIT09ICdsZWZ0JyAmJiBpc0Rldk1vZGUoKSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnVHJpZWQgdG8gZW50ZXIgYnV0IHRoZSBlbGVtZW50IGlzIG5vdCBpbiB0aGUgaW5pdGlhbCBzdGF0ZS4gVGhpcyBtYXkgcmVzdWx0IGluIHVuZXhwZWN0ZWQgYmVoYXZpb3IuJyxcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGUkLm5leHQoJ2VudGVyaW5nJyk7XG5cbiAgICBpZiAoIWNvbmZpZz8ub25seVRyYW5zaXRpb24pIHtcbiAgICAgIHRoaXMuX2NsYXNzTGlzdC5hZGQoQU5JTUFUSU9OX0NMQVNTRVMuZW50ZXJGcm9tKTtcbiAgICB9XG5cbiAgICBmb3JjZVJlZmxvdygpO1xuICAgIHRoaXMuX2NsYXNzTGlzdC5hZGQoQU5JTUFUSU9OX0NMQVNTRVMuZW50ZXJBY3RpdmUpO1xuXG4gICAgZnJvbU5leHRGcmFtZSgpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNvbmZpZz8ub25seVRyYW5zaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX2NsYXNzTGlzdC5yZW1vdmUoQU5JTUFUSU9OX0NMQVNTRVMuZW50ZXJGcm9tKTtcbiAgICAgICAgICAgIHRoaXMuX2NsYXNzTGlzdC5hZGQoQU5JTUFUSU9OX0NMQVNTRVMuZW50ZXJUbyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuX2FuaW1hdGFibGUuYW5pbWF0aW9uRW5kJCksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fc3RhdGUkLm5leHQoJ2VudGVyZWQnKTtcbiAgICAgICAgICB0aGlzLl9jbGFzc0xpc3QucmVtb3ZlKEFOSU1BVElPTl9DTEFTU0VTLmVudGVyQWN0aXZlKTtcblxuICAgICAgICAgIGlmICghY29uZmlnPy5vbmx5VHJhbnNpdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fY2xhc3NMaXN0LnJlbW92ZShBTklNQVRJT05fQ0xBU1NFUy5lbnRlclRvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbGVhdmUoY29uZmlnPzogeyBvbmx5VHJhbnNpdGlvbj86IGJvb2xlYW4gfSkge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnaW5pdCcpIHtcbiAgICAgIHRoaXMuX3N0YXRlJC5uZXh0KCdsZWZ0Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdlbnRlcmVkJyAmJiB0aGlzLnN0YXRlICE9PSAnZW50ZXJpbmcnICYmIGlzRGV2TW9kZSgpKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1RyaWVkIHRvIGxlYXZlIHdoaWxlIGFscmVhZHkgbGVhdmluZyBvciBsZWZ0LiBUaGlzIG1heSByZXN1bHQgaW4gdW5leHBlY3RlZCBiZWhhdmlvci4nLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLl9jbGFzc0xpc3QuY29udGFpbnMoQU5JTUFUSU9OX0NMQVNTRVMuZW50ZXJGcm9tKSB8fFxuICAgICAgdGhpcy5fY2xhc3NMaXN0LmNvbnRhaW5zKEFOSU1BVElPTl9DTEFTU0VTLmVudGVyQWN0aXZlKSB8fFxuICAgICAgdGhpcy5fY2xhc3NMaXN0LmNvbnRhaW5zKEFOSU1BVElPTl9DTEFTU0VTLmVudGVyVG8pXG4gICAgKSB7XG4gICAgICB0aGlzLl9jbGFzc0xpc3QucmVtb3ZlKEFOSU1BVElPTl9DTEFTU0VTLmVudGVyRnJvbSk7XG4gICAgICB0aGlzLl9jbGFzc0xpc3QucmVtb3ZlKEFOSU1BVElPTl9DTEFTU0VTLmVudGVyQWN0aXZlKTtcbiAgICAgIHRoaXMuX2NsYXNzTGlzdC5yZW1vdmUoQU5JTUFUSU9OX0NMQVNTRVMuZW50ZXJUbyk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGUkLm5leHQoJ2xlYXZpbmcnKTtcblxuICAgIGlmICghY29uZmlnPy5vbmx5VHJhbnNpdGlvbikge1xuICAgICAgdGhpcy5fY2xhc3NMaXN0LmFkZChBTklNQVRJT05fQ0xBU1NFUy5sZWF2ZUZyb20pO1xuICAgIH1cblxuICAgIGZvcmNlUmVmbG93KCk7XG4gICAgdGhpcy5fY2xhc3NMaXN0LmFkZChBTklNQVRJT05fQ0xBU1NFUy5sZWF2ZUFjdGl2ZSk7XG5cbiAgICBmcm9tTmV4dEZyYW1lKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIGlmICghY29uZmlnPy5vbmx5VHJhbnNpdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fY2xhc3NMaXN0LnJlbW92ZShBTklNQVRJT05fQ0xBU1NFUy5sZWF2ZUZyb20pO1xuICAgICAgICAgICAgdGhpcy5fY2xhc3NMaXN0LmFkZChBTklNQVRJT05fQ0xBU1NFUy5sZWF2ZVRvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fYW5pbWF0YWJsZS5hbmltYXRpb25FbmQkKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9zdGF0ZSQubmV4dCgnbGVmdCcpO1xuICAgICAgICAgIHRoaXMuX2NsYXNzTGlzdC5yZW1vdmUoQU5JTUFUSU9OX0NMQVNTRVMubGVhdmVBY3RpdmUpO1xuXG4gICAgICAgICAgaWYgKCFjb25maWc/Lm9ubHlUcmFuc2l0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9jbGFzc0xpc3QucmVtb3ZlKEFOSU1BVElPTl9DTEFTU0VTLmxlYXZlVG8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBfZm9yY2VTdGF0ZShzdGF0ZTogQW5pbWF0ZWRMaWZlY3ljbGVTdGF0ZSkge1xuICAgIHRoaXMuX3N0YXRlJC5uZXh0KHN0YXRlKTtcbiAgfVxufVxuIl19
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0ZWQtbGlmZWN5Y2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvYW5pbWF0ZWQtbGlmZWN5Y2xlL2FuaW1hdGVkLWxpZmVjeWNsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUV0RSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FDeEQsb0NBQW9DLENBQ3JDLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHO0lBQ3hCLFNBQVMsRUFBRSx5QkFBeUI7SUFDcEMsV0FBVyxFQUFFLDJCQUEyQjtJQUN4QyxPQUFPLEVBQUUsdUJBQXVCO0lBQ2hDLFNBQVMsRUFBRSx5QkFBeUI7SUFDcEMsV0FBVyxFQUFFLDJCQUEyQjtJQUN4QyxPQUFPLEVBQUUsdUJBQXVCO0NBQ3hCLENBQUM7QUFnQlgsTUFBTSxPQUFPLDBCQUEwQjtJQVp2QztRQWFtQixjQUFTLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDNUIsZ0JBQVcsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBQzFELGdCQUFXLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkMsZUFBVSxHQUFH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akMsV0FBVyw0QkFBNEI7eUJBQ3hDO3FCQUNGO29CQUNELGNBQWMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAsIHN3aXRjaE1hcCwgdGFrZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNyZWF0ZURlc3Ryb3ksIGNyZWF0ZVJlYWN0aXZlQmluZGluZ3MsIGZvcmNlUmVmbG93LCBmcm9tTmV4dEZyYW1lIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQU5JTUFUQUJMRV9UT0tFTiwgQW5pbWF0YWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uL2FuaW1hdGFibGUnO1xuXG5leHBvcnQgY29uc3QgQU5JTUFURURfTElGRUNZQ0xFX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEFuaW1hdGVkTGlmZWN5Y2xlRGlyZWN0aXZlPihcbiAgJ0FOSU1BVEVEX0xJRkVDWUNMRV9ESVJFQ1RJVkVfVE9LRU4nLFxuKTtcblxuY29uc3QgQU5JTUFUSU9OX0NMQVNTRVMgPSB7XG4gIGVudGVyRnJvbTogJ2V0LWFuaW1hdGlvbi1lbnRlci1mcm9tJyxcbiAgZW50ZXJBY3RpdmU6ICdldC1hbmltYXRpb24tZW50ZXItYWN0aXZlJyxcbiAgZW50ZXJUbzogJ2V0LWFuaW1hdGlvbi1lbnRlci10bycsXG4gIGxlYXZlRnJvbTogJ2V0LWFuaW1hdGlvbi1sZWF2ZS1mcm9tJyxcbiAgbGVhdmVBY3RpdmU6ICdldC1hbmltYXRpb24tbGVhdmUtYWN0aXZlJyxcbiAgbGVhdmVUbzogJ2V0LWFuaW1hdGlvbi1sZWF2ZS10bycsXG59IGFzIGNvbnN0O1xuXG50eXBlIEFuaW1hdGVkTGlmZWN5Y2xlU3RhdGUgPSAnZW50ZXJpbmcnIHwgJ2VudGVyZWQnIHwgJ2xlYXZpbmcnIHwgJ2xlZnQnIHwgJ2luaXQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZXRBbmltYXRlZExpZmVjeWNsZV0nLFxuICBleHBvcnRBczogJ2V0QW5pbWF0ZWRMaWZlY3ljbGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBTklNQVRFRF9MSUZFQ1lDTEVfVE9LRU4sXG4gICAgICB1c2VFeGlzdGluZzogQW5pbWF0ZWRMaWZlY3ljbGVEaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtBbmltYXRhYmxlRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgQW5pbWF0ZWRMaWZlY3ljbGVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hbmltYXRhYmxlID0gaW5qZWN0KEFOSU1BVEFCTEVfVE9LRU4pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbGFzc0xpc3QgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0O1xuXG4gIHByaXZhdGUgX2lzQ29uc3RydWN0ZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIF9zdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFuaW1hdGVkTGlmZWN5Y2xlU3RhdGU+KCdpbml0Jyk7XG4gIHJlYWRvbmx5IHN0YXRlJCA9IHRoaXMuX3N0YXRlJC5hc09ic2VydmFibGUoKTtcblxuICBnZXQgc3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlJC52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2JpbmRpbmdzID0gY3JlYXRlUmVhY3RpdmVCaW5kaW5ncyh7XG4gICAgYXR0cmlidXRlOiAnY2xhc3MuZXQtZm9yY2UtaW52aXNpYmxlJyxcbiAgICBvYnNlcnZhYmxlOiB0aGlzLl9zdGF0ZSQucGlwZShtYXAoKHN0YXRlKSA9PiBzdGF0ZSA9PT0gJ2luaXQnKSksXG4gICAgZWFnZXI6IHRydWUsXG4gIH0pO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9pc0NvbnN0cnVjdGVkID0gdHJ1ZTtcbiAgfVxuXG4gIGVudGVyKGNvbmZpZz86IHsgb25seVRyYW5zaXRpb24/OiBib29sZWFuIH0pIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ2VudGVyaW5nJykgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdpbml0JyAmJiAhdGhpcy5faXNDb25zdHJ1Y3RlZCkge1xuICAgICAgLy8gRm9yY2UgdGhlIHN0YXRlIHRvIGVudGVyZWQgc28gdGhhdCB0aGUgZWxlbWVudCBpcyBub3QgYW5pbWF0ZWQgd2hlbiBpdCBpcyBmaXJzdCByZW5kZXJlZC5cbiAgICAgIHRoaXMuX2ZvcmNlU3RhdGUoJ2VudGVyZWQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ2xlYXZpbmcnKSB7XG4gICAgICB0aGlzLl9jbGFzc0xpc3QucmVtb3ZlKEFOSU1BVElPTl9DTEFTU0VTLmxlYXZlRnJvbSk7XG4gICAgICB0aGlzLl9jbGFzc0xpc3QucmVtb3ZlKEFOSU1BVElPTl9DTEFTU0VTLmxlYXZlQWN0aXZlKTtcbiAgICAgIHRoaXMuX2NsYXNzTGlzdC5yZW1vdmUoQU5JTUFUSU9OX0NMQVNTRVMubGVhdmVUbyk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGUkLm5leHQoJ2VudGVyaW5nJyk7XG5cbiAgICBpZiAoIWNvbmZpZz8ub25seVRyYW5zaXRpb24pIHtcbiAgICAgIHRoaXMuX2NsYXNzTGlzdC5hZGQoQU5JTUFUSU9OX0NMQVNTRVMuZW50ZXJGcm9tKTtcbiAgICB9XG5cbiAgICBmb3JjZVJlZmxvdygpO1xuICAgIHRoaXMuX2NsYXNzTGlzdC5hZGQoQU5JTUFUSU9OX0NMQVNTRVMuZW50ZXJBY3RpdmUpO1xuXG4gICAgZnJvbU5leHRGcmFtZSgpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNvbmZpZz8ub25seVRyYW5zaXRpb24gJiYgdGhpcy5zdGF0ZSA9PT0gJ2VudGVyaW5nJykge1xuICAgICAgICAgICAgdGhpcy5fY2xhc3NMaXN0LnJlbW92ZShBTklNQVRJT05fQ0xBU1NFUy5lbnRlckZyb20pO1xuICAgICAgICAgICAgdGhpcy5fY2xhc3NMaXN0LmFkZChBTklNQVRJT05fQ0xBU1NFUy5lbnRlclRvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fYW5pbWF0YWJsZS5hbmltYXRpb25FbmQkKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2VudGVyaW5nJykgcmV0dXJuO1xuXG4gICAgICAgICAgdGhpcy5fc3RhdGUkLm5leHQoJ2VudGVyZWQnKTtcbiAgICAgICAgICB0aGlzLl9jbGFzc0xpc3QucmVtb3ZlKEFOSU1BVElPTl9DTEFTU0VTLmVudGVyQWN0aXZlKTtcblxuICAgICAgICAgIGlmICghY29uZmlnPy5vbmx5VHJhbnNpdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fY2xhc3NMaXN0LnJlbW92ZShBTklNQVRJT05fQ0xBU1NFUy5lbnRlclRvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbGVhdmUoY29uZmlnPzogeyBvbmx5VHJhbnNpdGlvbj86IGJvb2xlYW4gfSkge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnbGVhdmluZycpIHJldHVybjtcblxuICAgIGlmICh0aGlzLnN0YXRlID09PSAnaW5pdCcpIHtcbiAgICAgIHRoaXMuX3N0YXRlJC5uZXh0KCdsZWZ0Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdlbnRlcmluZycpIHtcbiAgICAgIHRoaXMuX2NsYXNzTGlzdC5yZW1vdmUoQU5JTUFUSU9OX0NMQVNTRVMuZW50ZXJGcm9tKTtcbiAgICAgIHRoaXMuX2NsYXNzTGlzdC5yZW1vdmUoQU5JTUFUSU9OX0NMQVNTRVMuZW50ZXJBY3RpdmUpO1xuICAgICAgdGhpcy5fY2xhc3NMaXN0LnJlbW92ZShBTklNQVRJT05fQ0xBU1NFUy5lbnRlclRvKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZSQubmV4dCgnbGVhdmluZycpO1xuXG4gICAgaWYgKCFjb25maWc/Lm9ubHlUcmFuc2l0aW9uKSB7XG4gICAgICB0aGlzLl9jbGFzc0xpc3QuYWRkKEFOSU1BVElPTl9DTEFTU0VTLmxlYXZlRnJvbSk7XG4gICAgfVxuXG4gICAgZm9yY2VSZWZsb3coKTtcbiAgICB0aGlzLl9jbGFzc0xpc3QuYWRkKEFOSU1BVElPTl9DTEFTU0VTLmxlYXZlQWN0aXZlKTtcblxuICAgIGZyb21OZXh0RnJhbWUoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjb25maWc/Lm9ubHlUcmFuc2l0aW9uICYmIHRoaXMuc3RhdGUgPT09ICdsZWF2aW5nJykge1xuICAgICAgICAgICAgdGhpcy5fY2xhc3NMaXN0LnJlbW92ZShBTklNQVRJT05fQ0xBU1NFUy5sZWF2ZUZyb20pO1xuICAgICAgICAgICAgdGhpcy5fY2xhc3NMaXN0LmFkZChBTklNQVRJT05fQ0xBU1NFUy5sZWF2ZVRvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fYW5pbWF0YWJsZS5hbmltYXRpb25FbmQkKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2xlYXZpbmcnKSByZXR1cm47XG5cbiAgICAgICAgICB0aGlzLl9zdGF0ZSQubmV4dCgnbGVmdCcpO1xuICAgICAgICAgIHRoaXMuX2NsYXNzTGlzdC5yZW1vdmUoQU5JTUFUSU9OX0NMQVNTRVMubGVhdmVBY3RpdmUpO1xuXG4gICAgICAgICAgaWYgKCFjb25maWc/Lm9ubHlUcmFuc2l0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9jbGFzc0xpc3QucmVtb3ZlKEFOSU1BVElPTl9DTEFTU0VTLmxlYXZlVG8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBfZm9yY2VTdGF0ZShzdGF0ZTogQW5pbWF0ZWRMaWZlY3ljbGVTdGF0ZSkge1xuICAgIHRoaXMuX3N0YXRlJC5uZXh0KHN0YXRlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,44 @@
1
+ import { Directive, InjectionToken, Input, booleanAttribute, signal } from '@angular/core';
2
+ import { toObservable } from '@angular/core/rxjs-interop';
3
+ import { filter, merge } from 'rxjs';
4
+ import { createDestroy } from '../../utils';
5
+ import * as i0 from "@angular/core";
6
+ export const DEBUG_TOKEN = new InjectionToken('DEBUG_DIRECTIVE_TOKEN');
7
+ export class DebugDirective {
8
+ constructor() {
9
+ this._destroy$ = createDestroy();
10
+ this._debug = signal(true);
11
+ this.debug = this._debug.asReadonly();
12
+ this.debug$ = toObservable(this.debug);
13
+ this.startDebug$ = this.debug$.pipe(filter((debug) => !!debug));
14
+ this.stopDebug$ = merge(this._destroy$, this.debug$.pipe(filter((debug) => !debug)));
15
+ }
16
+ set sDebug(value) {
17
+ this._debug.set(value);
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DebugDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
20
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.5", type: DebugDirective, isStandalone: true, selector: "[etDebug]", inputs: { sDebug: ["etDebug", "sDebug", booleanAttribute] }, providers: [
21
+ {
22
+ provide: DEBUG_TOKEN,
23
+ useExisting: DebugDirective,
24
+ },
25
+ ], exportAs: ["etDebug"], ngImport: i0 }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DebugDirective, decorators: [{
28
+ type: Directive,
29
+ args: [{
30
+ selector: '[etDebug]',
31
+ exportAs: 'etDebug',
32
+ standalone: true,
33
+ providers: [
34
+ {
35
+ provide: DEBUG_TOKEN,
36
+ useExisting: DebugDirective,
37
+ },
38
+ ],
39
+ }]
40
+ }], propDecorators: { sDebug: [{
41
+ type: Input,
42
+ args: [{ alias: 'etDebug', transform: booleanAttribute }]
43
+ }] } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9kZWJ1Zy9kZWJ1Zy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFNUMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFpQix1QkFBdUIsQ0FBQyxDQUFDO0FBYXZGLE1BQU0sT0FBTyxjQUFjO0lBWDNCO1FBWW1CLGNBQVMsR0FBRyxhQUFhLEVBQUUsQ0FBQztRQU9yQyxXQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JCLFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLFdBQU0sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxDLGdCQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMzRCxlQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMxRjtJQVhDLElBQ1ksTUFBTSxDQUFDLEtBQWM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQzs4R0FOVSxjQUFjO2tHQUFkLGNBQWMscUZBR2EsZ0JBQWdCLGdCQVYzQztZQUNUO2dCQUNFLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixXQUFXLEVBQUUsY0FBYzthQUM1QjtTQUNGOzsyRkFFVSxjQUFjO2tCQVgxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUUsU0FBUztvQkFDbkIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsV0FBVzs0QkFDcEIsV0FBVyxnQkFBZ0I7eUJBQzVCO3FCQUNGO2lCQUNGOzhCQUthLE1BQU07c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBib29sZWFuQXR0cmlidXRlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGZpbHRlciwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNyZWF0ZURlc3Ryb3kgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBERUJVR19UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEZWJ1Z0RpcmVjdGl2ZT4oJ0RFQlVHX0RJUkVDVElWRV9UT0tFTicpO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZXREZWJ1Z10nLFxuICBleHBvcnRBczogJ2V0RGVidWcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBERUJVR19UT0tFTixcbiAgICAgIHVzZUV4aXN0aW5nOiBEZWJ1Z0RpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEZWJ1Z0RpcmVjdGl2ZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuXG4gIEBJbnB1dCh7IGFsaWFzOiAnZXREZWJ1ZycsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwcml2YXRlIHNldCBzRGVidWcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kZWJ1Zy5zZXQodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVidWcgPSBzaWduYWwodHJ1ZSk7XG4gIHJlYWRvbmx5IGRlYnVnID0gdGhpcy5fZGVidWcuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBkZWJ1ZyQgPSB0b09ic2VydmFibGUodGhpcy5kZWJ1Zyk7XG5cbiAgcmVhZG9ubHkgc3RhcnREZWJ1ZyQgPSB0aGlzLmRlYnVnJC5waXBlKGZpbHRlcigoZGVidWcpID0+ICEhZGVidWcpKTtcbiAgcmVhZG9ubHkgc3RvcERlYnVnJCA9IG1lcmdlKHRoaXMuX2Rlc3Ryb3kkLCB0aGlzLmRlYnVnJC5waXBlKGZpbHRlcigoZGVidWcpID0+ICFkZWJ1ZykpKTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './debug.directive';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvZGVidWcvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kZWJ1Zy5kaXJlY3RpdmUnO1xuIl19
@@ -4,6 +4,7 @@ export * from './animated-lifecycle/public-api';
4
4
  export * from './animated-overlay/public-api';
5
5
  export * from './click-outside/public-api';
6
6
  export * from './cursor-drag-scroll/public-api';
7
+ export * from './debug/public-api';
7
8
  export * from './delayable/public-api';
8
9
  export * from './is-active-element/public-api';
9
10
  export * from './is-element/public-api';
@@ -17,4 +18,4 @@ export * from './scroll-observer-first-element/public-api';
17
18
  export * from './scroll-observer-ignore-target/public-api';
18
19
  export * from './scroll-observer-last-element/public-api';
19
20
  export * from './seo/public-api';
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hbmltYXRhYmxlL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9hbmltYXRlZC1pZi9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vYW5pbWF0ZWQtbGlmZWN5Y2xlL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9hbmltYXRlZC1vdmVybGF5L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9jbGljay1vdXRzaWRlL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9jdXJzb3ItZHJhZy1zY3JvbGwvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2RlbGF5YWJsZS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vaXMtYWN0aXZlLWVsZW1lbnQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2lzLWVsZW1lbnQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xldC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vb2JzZXJ2ZS1jb250ZW50L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9vYnNlcnZlLXJlc2l6ZS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vb2JzZXJ2ZS1zY3JvbGwtc3RhdGUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL29ic2VydmUtdmlzaWJpbGl0eS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vcmVwZWF0L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JvbGwtb2JzZXJ2ZXItZmlyc3QtZWxlbWVudC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsLW9ic2VydmVyLWlnbm9yZS10YXJnZXQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbC1vYnNlcnZlci1sYXN0LWVsZW1lbnQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3Nlby9wdWJsaWMtYXBpJztcbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FuaW1hdGFibGUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2FuaW1hdGVkLWlmL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9hbmltYXRlZC1saWZlY3ljbGUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2FuaW1hdGVkLW92ZXJsYXkvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2NsaWNrLW91dHNpZGUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2N1cnNvci1kcmFnLXNjcm9sbC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZGVidWcvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2RlbGF5YWJsZS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vaXMtYWN0aXZlLWVsZW1lbnQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2lzLWVsZW1lbnQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xldC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vb2JzZXJ2ZS1jb250ZW50L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9vYnNlcnZlLXJlc2l6ZS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vb2JzZXJ2ZS1zY3JvbGwtc3RhdGUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL29ic2VydmUtdmlzaWJpbGl0eS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vcmVwZWF0L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JvbGwtb2JzZXJ2ZXItZmlyc3QtZWxlbWVudC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsLW9ic2VydmVyLWlnbm9yZS10YXJnZXQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbC1vYnNlcnZlci1sYXN0LWVsZW1lbnQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3Nlby9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, HostBinding, InjectionToken, assertInInjectionContext, DestroyRef, ElementRef, effect, isDevMode, Directive, Injectable, NgZone, EventEmitter, booleanAttribute, numberAttribute, Output, Injector, ViewContainerRef, TemplateRef, computed, signal, Pipe, QueryList } from '@angular/core';
2
+ import { inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, HostBinding, InjectionToken, assertInInjectionContext, DestroyRef, ElementRef, effect, isDevMode, Directive, Injectable, NgZone, EventEmitter, booleanAttribute, numberAttribute, Output, Injector, ViewContainerRef, signal, TemplateRef, computed, Pipe, QueryList } from '@angular/core';
3
3
  import { DomSanitizer, Meta, Title } from '@angular/platform-browser';
4
4
  import { Subject, BehaviorSubject, takeUntil, switchMap, of, tap, Observable, combineLatest, timer, startWith, map, distinctUntilChanged, shareReplay, skip, take, debounceTime, merge, fromEvent, filter, takeWhile, pairwise, finalize } from 'rxjs';
5
5
  import { END, HOME, PAGE_DOWN, PAGE_UP, UP_ARROW, DOWN_ARROW } from '@angular/cdk/keycodes';
@@ -14,6 +14,7 @@ import { autoUpdate, computePosition, offset, flip, size, shift, limitShift, arr
14
14
  import { Router, NavigationEnd } from '@angular/router';
15
15
  import { __decorate, __metadata } from 'tslib';
16
16
  import { BreakpointObserver } from '@angular/cdk/layout';
17
+ import { toObservable } from '@angular/core/rxjs-interop';
17
18
  import { debounceTime as debounceTime$1 } from 'rxjs/operators';
18
19
 
19
20
  class StructuredDataComponent {
@@ -1431,9 +1432,11 @@ class AnimatableDirective {
1431
1432
  this._elementRef = inject(ElementRef);
1432
1433
  this._animationStart$ = new Subject();
1433
1434
  this._animationEnd$ = new Subject();
1435
+ this._animationCancelled$ = new Subject();
1434
1436
  this._animatedElement$ = new BehaviorSubject(this._elementRef.nativeElement);
1435
1437
  this.animationStart$ = this._animationStart$.asObservable().pipe(debounceTime(0));
1436
1438
  this.animationEnd$ = this._animationEnd$.asObservable().pipe(debounceTime(0));
1439
+ this.animationCancelled$ = this._animationCancelled$.asObservable().pipe(debounceTime(0));
1437
1440
  this._hostActiveAnimationCount$ = new BehaviorSubject(0);
1438
1441
  this._totalActiveAnimationCount$ = new BehaviorSubject(0);
1439
1442
  this.isAnimating$ = this._totalActiveAnimationCount$.pipe(map((count) => count > 0), debounceTime(0));
@@ -1483,6 +1486,12 @@ class AnimatableDirective {
1483
1486
  this._totalActiveAnimationCount$.next(count);
1484
1487
  }), takeUntil(this._destroy$), takeUntil(this._animatedElement$.pipe(skip(1))))
1485
1488
  .subscribe();
1489
+ merge(fromEvent(el, 'animationcancel'), fromEvent(el, 'transitioncancel'))
1490
+ .pipe(filter((e) => e.target === el), // skip events from children
1491
+ tap(() => {
1492
+ this._animationCancelled$.next();
1493
+ }), takeUntil(this._destroy$), takeUntil(this._animatedElement$.pipe(skip(1))))
1494
+ .subscribe();
1486
1495
  }), takeUntil(this._destroy$))
1487
1496
  .subscribe();
1488
1497
  this._totalActiveAnimationCount$
@@ -1562,13 +1571,17 @@ class AnimatedLifecycleDirective {
1562
1571
  this._isConstructed = true;
1563
1572
  }
1564
1573
  enter(config) {
1574
+ if (this.state === 'entering')
1575
+ return;
1565
1576
  if (this.state === 'init' && !this._isConstructed) {
1566
1577
  // Force the state to entered so that the element is not animated when it is first rendered.
1567
1578
  this._forceState('entered');
1568
1579
  return;
1569
1580
  }
1570
- if (this.state !== 'init' && this.state !== 'left' && isDevMode()) {
1571
- console.warn('Tried to enter but the element is not in the initial state. This may result in unexpected behavior.', this);
1581
+ if (this.state === 'leaving') {
1582
+ this._classList.remove(ANIMATION_CLASSES.leaveFrom);
1583
+ this._classList.remove(ANIMATION_CLASSES.leaveActive);
1584
+ this._classList.remove(ANIMATION_CLASSES.leaveTo);
1572
1585
  }
1573
1586
  this._state$.next('entering');
1574
1587
  if (!config?.onlyTransition) {
@@ -1578,11 +1591,13 @@ class AnimatedLifecycleDirective {
1578
1591
  this._classList.add(ANIMATION_CLASSES.enterActive);
1579
1592
  fromNextFrame()
1580
1593
  .pipe(tap(() => {
1581
- if (!config?.onlyTransition) {
1594
+ if (!config?.onlyTransition && this.state === 'entering') {
1582
1595
  this._classList.remove(ANIMATION_CLASSES.enterFrom);
1583
1596
  this._classList.add(ANIMATION_CLASSES.enterTo);
1584
1597
  }
1585
1598
  }), switchMap(() => this._animatable.animationEnd$), tap(() => {
1599
+ if (this.state !== 'entering')
1600
+ return;
1586
1601
  this._state$.next('entered');
1587
1602
  this._classList.remove(ANIMATION_CLASSES.enterActive);
1588
1603
  if (!config?.onlyTransition) {
@@ -1592,16 +1607,13 @@ class AnimatedLifecycleDirective {
1592
1607
  .subscribe();
1593
1608
  }
1594
1609
  leave(config) {
1610
+ if (this.state === 'leaving')
1611
+ return;
1595
1612
  if (this.state === 'init') {
1596
1613
  this._state$.next('left');
1597
1614
  return;
1598
1615
  }
1599
- if (this.state !== 'entered' && this.state !== 'entering' && isDevMode()) {
1600
- console.warn('Tried to leave while already leaving or left. This may result in unexpected behavior.', this);
1601
- }
1602
- if (this._classList.contains(ANIMATION_CLASSES.enterFrom) ||
1603
- this._classList.contains(ANIMATION_CLASSES.enterActive) ||
1604
- this._classList.contains(ANIMATION_CLASSES.enterTo)) {
1616
+ if (this.state === 'entering') {
1605
1617
  this._classList.remove(ANIMATION_CLASSES.enterFrom);
1606
1618
  this._classList.remove(ANIMATION_CLASSES.enterActive);
1607
1619
  this._classList.remove(ANIMATION_CLASSES.enterTo);
@@ -1614,11 +1626,13 @@ class AnimatedLifecycleDirective {
1614
1626
  this._classList.add(ANIMATION_CLASSES.leaveActive);
1615
1627
  fromNextFrame()
1616
1628
  .pipe(tap(() => {
1617
- if (!config?.onlyTransition) {
1629
+ if (!config?.onlyTransition && this.state === 'leaving') {
1618
1630
  this._classList.remove(ANIMATION_CLASSES.leaveFrom);
1619
1631
  this._classList.add(ANIMATION_CLASSES.leaveTo);
1620
1632
  }
1621
1633
  }), switchMap(() => this._animatable.animationEnd$), tap(() => {
1634
+ if (this.state !== 'leaving')
1635
+ return;
1622
1636
  this._state$.next('left');
1623
1637
  this._classList.remove(ANIMATION_CLASSES.leaveActive);
1624
1638
  if (!config?.onlyTransition) {
@@ -2954,6 +2968,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
2954
2968
  type: Output
2955
2969
  }] } });
2956
2970
 
2971
+ const DEBUG_TOKEN = new InjectionToken('DEBUG_DIRECTIVE_TOKEN');
2972
+ class DebugDirective {
2973
+ constructor() {
2974
+ this._destroy$ = createDestroy();
2975
+ this._debug = signal(true);
2976
+ this.debug = this._debug.asReadonly();
2977
+ this.debug$ = toObservable(this.debug);
2978
+ this.startDebug$ = this.debug$.pipe(filter((debug) => !!debug));
2979
+ this.stopDebug$ = merge(this._destroy$, this.debug$.pipe(filter((debug) => !debug)));
2980
+ }
2981
+ set sDebug(value) {
2982
+ this._debug.set(value);
2983
+ }
2984
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DebugDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2985
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.5", type: DebugDirective, isStandalone: true, selector: "[etDebug]", inputs: { sDebug: ["etDebug", "sDebug", booleanAttribute] }, providers: [
2986
+ {
2987
+ provide: DEBUG_TOKEN,
2988
+ useExisting: DebugDirective,
2989
+ },
2990
+ ], exportAs: ["etDebug"], ngImport: i0 }); }
2991
+ }
2992
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DebugDirective, decorators: [{
2993
+ type: Directive,
2994
+ args: [{
2995
+ selector: '[etDebug]',
2996
+ exportAs: 'etDebug',
2997
+ standalone: true,
2998
+ providers: [
2999
+ {
3000
+ provide: DEBUG_TOKEN,
3001
+ useExisting: DebugDirective,
3002
+ },
3003
+ ],
3004
+ }]
3005
+ }], propDecorators: { sDebug: [{
3006
+ type: Input,
3007
+ args: [{ alias: 'etDebug', transform: booleanAttribute }]
3008
+ }] } });
3009
+
2957
3010
  const DELAYABLE_TOKEN = new InjectionToken('DELAYABLE_DIRECTIVE_TOKEN');
2958
3011
  class DelayableDirective {
2959
3012
  constructor() {
@@ -4108,5 +4161,5 @@ const Validators = {
4108
4161
  * Generated bundle index. Do not edit.
4109
4162
  */
4110
4163
 
4111
- export { ANIMATABLE_TOKEN, ANIMATED_IF_TOKEN, ANIMATED_LIFECYCLE_TOKEN, AT_LEAST_ONE_REQUIRED, ActiveSelectionModel, AnimatableDirective, AnimatedIfDirective, AnimatedLifecycleDirective, AnimatedOverlayDirective, ClickObserverFactory, ClickObserverService, ClickOutsideDirective, ContentObserverService, CursorDragScrollDirective, DEFAULT_VIEWPORT_CONFIG, DELAYABLE_TOKEN, DelayableDirective, ET_PROPERTY_REMOVED, FocusVisibleService, IS_ACTIVE_ELEMENT, IS_ARRAY_NOT_EMPTY, IS_ELEMENT, IS_EMAIL, IntersectionObserverFactory, IntersectionObserverService, IsActiveElementDirective, IsArrayNotEmpty, IsElementDirective, IsEmail, KeyPressManager, LetContext, LetDirective, MUST_MATCH, Memo, MustMatch, MutationObserverFactory, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, OBSERVE_SCROLL_STATE, OBSERVE_VISIBILITY_TOKEN, ObserveContentDirective, ObserveResizeDirective, ObserveScrollStateDirective, ObserveVisibilityDirective, RUNTIME_ERROR_NO_DATA, RepeatDirective, ResizeObserverFactory, ResizeObserverService, RouterStateService, RuntimeError, SCROLL_OBSERVER_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_IGNORE_TARGET_CLASS, SCROLL_OBSERVER_LAST_ELEMENT_CLASS, SCROLL_OBSERVER_OBSERVING_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_OBSERVING_LAST_ELEMENT_CLASS, SEO_DIRECTIVE_TOKEN, ScrollObserverFirstElementDirective, ScrollObserverIgnoreTargetDirective, ScrollObserverLastElementDirective, SelectionModel, SeoDirective, SmartBlockScrollStrategy, StructuredDataComponent, ToArrayPipe, TypedQueryList, VIEWPORT_CONFIG, ValidateAtLeastOneRequired, Validators, ViewportService, clamp, clone, cloneFormGroup, createDestroy, createFlipAnimation, createFlipAnimationGroup, createMediaQueryObservable, createMutationObservable, createReactiveBindings, createResizeObservable, deleteCookie, elementCanScroll, equal, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementVisibleStates, getGroupMatchPoints, getGroupMatchScore, getKnockoutMatchScore, getMatchScoreSubLine, hasCookie, isElementVisible, isEmptyArray, isGroupMatch, isKnockoutMatch, isObjectArray, isPrimitiveArray, mergeSeoConfig, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, provideViewportConfig, round, routerDisableScrollTop, scrollToElement, setCookie, signalAttributes, signalClasses, signalHostAttributes, signalHostClasses, signalHostStyle, signalStyle, signalVisibilityChangeClasses, toArray, toArrayTrackByFn };
4164
+ export { ANIMATABLE_TOKEN, ANIMATED_IF_TOKEN, ANIMATED_LIFECYCLE_TOKEN, AT_LEAST_ONE_REQUIRED, ActiveSelectionModel, AnimatableDirective, AnimatedIfDirective, AnimatedLifecycleDirective, AnimatedOverlayDirective, ClickObserverFactory, ClickObserverService, ClickOutsideDirective, ContentObserverService, CursorDragScrollDirective, DEBUG_TOKEN, DEFAULT_VIEWPORT_CONFIG, DELAYABLE_TOKEN, DebugDirective, DelayableDirective, ET_PROPERTY_REMOVED, FocusVisibleService, IS_ACTIVE_ELEMENT, IS_ARRAY_NOT_EMPTY, IS_ELEMENT, IS_EMAIL, IntersectionObserverFactory, IntersectionObserverService, IsActiveElementDirective, IsArrayNotEmpty, IsElementDirective, IsEmail, KeyPressManager, LetContext, LetDirective, MUST_MATCH, Memo, MustMatch, MutationObserverFactory, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, OBSERVE_SCROLL_STATE, OBSERVE_VISIBILITY_TOKEN, ObserveContentDirective, ObserveResizeDirective, ObserveScrollStateDirective, ObserveVisibilityDirective, RUNTIME_ERROR_NO_DATA, RepeatDirective, ResizeObserverFactory, ResizeObserverService, RouterStateService, RuntimeError, SCROLL_OBSERVER_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_IGNORE_TARGET_CLASS, SCROLL_OBSERVER_LAST_ELEMENT_CLASS, SCROLL_OBSERVER_OBSERVING_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_OBSERVING_LAST_ELEMENT_CLASS, SEO_DIRECTIVE_TOKEN, ScrollObserverFirstElementDirective, ScrollObserverIgnoreTargetDirective, ScrollObserverLastElementDirective, SelectionModel, SeoDirective, SmartBlockScrollStrategy, StructuredDataComponent, ToArrayPipe, TypedQueryList, VIEWPORT_CONFIG, ValidateAtLeastOneRequired, Validators, ViewportService, clamp, clone, cloneFormGroup, createDestroy, createFlipAnimation, createFlipAnimationGroup, createMediaQueryObservable, createMutationObservable, createReactiveBindings, createResizeObservable, deleteCookie, elementCanScroll, equal, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementVisibleStates, getGroupMatchPoints, getGroupMatchScore, getKnockoutMatchScore, getMatchScoreSubLine, hasCookie, isElementVisible, isEmptyArray, isGroupMatch, isKnockoutMatch, isObjectArray, isPrimitiveArray, mergeSeoConfig, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, provideViewportConfig, round, routerDisableScrollTop, scrollToElement, setCookie, signalAttributes, signalClasses, signalHostAttributes, signalHostClasses, signalHostStyle, signalStyle, signalVisibilityChangeClasses, toArray, toArrayTrackByFn };
4112
4165
  //# sourceMappingURL=ethlete-core.mjs.map