@ethlete/core 1.10.0 → 2.0.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.
- package/esm2022/lib/components/structured-data/structured-data.component.mjs +38 -0
- package/esm2022/lib/directives/animatable/animatable.directive.mjs +114 -0
- package/esm2022/lib/directives/animated-lifecycle/animated-lifecycle.directive.mjs +113 -0
- package/esm2022/lib/directives/animated-lifecycle/index.mjs +2 -0
- package/esm2022/lib/directives/animated-overlay/animated-overlay.directive.mjs +181 -0
- package/esm2022/lib/directives/animated-overlay/public-api.mjs +2 -0
- package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +38 -0
- package/esm2022/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.mjs +147 -0
- package/esm2022/lib/directives/delayable/delayable.directive.mjs +56 -0
- package/esm2022/lib/directives/let/let.directive.mjs +41 -0
- package/esm2022/lib/directives/observe-content/observe-content.directive.mjs +69 -0
- package/esm2022/lib/directives/observe-resize/observe-resize.directive.mjs +69 -0
- package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.directive.mjs +175 -0
- package/esm2022/lib/directives/public-api.mjs +16 -0
- package/esm2022/lib/directives/repeat/repeat.directive.mjs +37 -0
- package/esm2022/lib/directives/scroll-observer-first-element/scroll-observer-first-element.directive.mjs +32 -0
- package/esm2022/lib/directives/scroll-observer-ignore-target/scroll-observer-ignore-target.directive.mjs +19 -0
- package/esm2022/lib/directives/scroll-observer-last-element/scroll-observer-last-element.directive.mjs +35 -0
- package/esm2022/lib/directives/seo/seo.directive.mjs +167 -0
- package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.pipe.mjs +16 -0
- package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.pipe.mjs +16 -0
- package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.pipe.mjs +16 -0
- package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.pipe.mjs +16 -0
- package/esm2022/lib/pipes/normalize-match-type/normalize-match-type.pipe.mjs +16 -0
- package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +16 -0
- package/esm2022/lib/services/click-observer.service.mjs +75 -0
- package/esm2022/lib/services/content-observer.service.mjs +81 -0
- package/esm2022/lib/services/focus-visible.service.mjs +35 -0
- package/esm2022/lib/services/public-api.mjs +8 -0
- package/esm2022/lib/services/resize-observer.service.mjs +77 -0
- package/esm2022/lib/services/router-state.service.mjs +116 -0
- package/esm2022/lib/services/viewport.service.mjs +169 -0
- package/esm2022/lib/types/angular.types.mjs +15 -0
- package/esm2022/lib/utils/destroy.utils.mjs +13 -0
- package/esm2022/lib/utils/public-api.mjs +13 -0
- package/esm2022/lib/utils/reactive-binding.util.mjs +112 -0
- package/esm2022/lib/utils/scrollable.utils.mjs +85 -0
- package/{fesm2020 → fesm2022}/ethlete-core.mjs +745 -605
- package/fesm2022/ethlete-core.mjs.map +1 -0
- package/lib/components/structured-data/structured-data.component.d.ts +1 -1
- package/lib/directives/animatable/animatable.directive.d.ts +1 -1
- package/lib/directives/animated-lifecycle/index.d.ts +1 -0
- package/lib/directives/animated-overlay/animated-overlay.directive.d.ts +62 -0
- package/lib/directives/animated-overlay/public-api.d.ts +1 -0
- package/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.d.ts +1 -1
- package/lib/directives/let/let.directive.d.ts +1 -1
- package/lib/directives/observe-content/observe-content.directive.d.ts +1 -1
- package/lib/directives/observe-resize/observe-resize.directive.d.ts +1 -1
- package/lib/directives/observe-scroll-state/observe-scroll-state.directive.d.ts +1 -1
- package/lib/directives/public-api.d.ts +1 -0
- package/lib/directives/repeat/repeat.directive.d.ts +1 -1
- package/lib/directives/scroll-observer-first-element/scroll-observer-first-element.directive.d.ts +1 -1
- package/lib/directives/scroll-observer-last-element/scroll-observer-last-element.directive.d.ts +1 -1
- package/lib/services/public-api.d.ts +0 -1
- package/lib/types/angular.types.d.ts +0 -7
- package/lib/utils/destroy.utils.d.ts +1 -0
- package/lib/utils/public-api.d.ts +1 -0
- package/package.json +14 -19
- package/esm2020/lib/components/structured-data/structured-data.component.mjs +0 -37
- package/esm2020/lib/directives/animatable/animatable.directive.mjs +0 -115
- package/esm2020/lib/directives/animated-lifecycle/animated-lifecycle.directive.mjs +0 -115
- package/esm2020/lib/directives/click-outside/click-outside.directive.mjs +0 -37
- package/esm2020/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.mjs +0 -147
- package/esm2020/lib/directives/delayable/delayable.directive.mjs +0 -55
- package/esm2020/lib/directives/let/let.directive.mjs +0 -40
- package/esm2020/lib/directives/observe-content/observe-content.directive.mjs +0 -68
- package/esm2020/lib/directives/observe-resize/observe-resize.directive.mjs +0 -68
- package/esm2020/lib/directives/observe-scroll-state/observe-scroll-state.directive.mjs +0 -176
- package/esm2020/lib/directives/public-api.mjs +0 -15
- package/esm2020/lib/directives/repeat/repeat.directive.mjs +0 -36
- package/esm2020/lib/directives/scroll-observer-first-element/scroll-observer-first-element.directive.mjs +0 -31
- package/esm2020/lib/directives/scroll-observer-ignore-target/scroll-observer-ignore-target.directive.mjs +0 -18
- package/esm2020/lib/directives/scroll-observer-last-element/scroll-observer-last-element.directive.mjs +0 -34
- package/esm2020/lib/directives/seo/seo.directive.mjs +0 -166
- package/esm2020/lib/pipes/normalize-game-result-type/normalize-game-result-type.pipe.mjs +0 -15
- package/esm2020/lib/pipes/normalize-match-participants/normalize-match-participants.pipe.mjs +0 -15
- package/esm2020/lib/pipes/normalize-match-score/normalize-match-score.pipe.mjs +0 -15
- package/esm2020/lib/pipes/normalize-match-state/normalize-match-state.pipe.mjs +0 -15
- package/esm2020/lib/pipes/normalize-match-type/normalize-match-type.pipe.mjs +0 -15
- package/esm2020/lib/pipes/to-array/to-array.pipe.mjs +0 -15
- package/esm2020/lib/services/click-observer.service.mjs +0 -73
- package/esm2020/lib/services/content-observer.service.mjs +0 -79
- package/esm2020/lib/services/destroy.service.mjs +0 -23
- package/esm2020/lib/services/focus-visible.service.mjs +0 -34
- package/esm2020/lib/services/public-api.mjs +0 -9
- package/esm2020/lib/services/resize-observer.service.mjs +0 -75
- package/esm2020/lib/services/router-state.service.mjs +0 -115
- package/esm2020/lib/services/viewport.service.mjs +0 -168
- package/esm2020/lib/types/angular.types.mjs +0 -36
- package/esm2020/lib/utils/public-api.mjs +0 -12
- package/esm2020/lib/utils/reactive-binding.util.mjs +0 -111
- package/esm2020/lib/utils/scrollable.utils.mjs +0 -85
- package/fesm2015/ethlete-core.mjs +0 -2787
- package/fesm2015/ethlete-core.mjs.map +0 -1
- package/fesm2020/ethlete-core.mjs.map +0 -1
- package/lib/services/destroy.service.d.ts +0 -12
- /package/{esm2020 → esm2022}/ethlete-core.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/structured-data/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/constants/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/constants/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/constants/viewport.constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/decorators/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/decorators/memo/memo.decorator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/decorators/memo/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/decorators/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/animatable/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/animatable/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/animated-lifecycle/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/click-outside/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/cursor-drag-scroll/cursor-drag-scroll.constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/cursor-drag-scroll/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/delayable/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/let/let.types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/let/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/observe-content/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/observe-resize/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/observe-scroll-state/observe-scroll-state.constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/observe-scroll-state/observe-scroll-state.types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/observe-scroll-state/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/repeat/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/scroll-observer-first-element/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/scroll-observer-first-element/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/scroll-observer-ignore-target/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/scroll-observer-ignore-target/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/scroll-observer-last-element/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/scroll-observer-last-element/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/seo/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/seo/seo.directive.constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/seo/seo.directive.types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/seo/seo.directive.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/normalize-game-result-type/normalize-game-result-type.types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/normalize-game-result-type/normalize-game-result-type.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/normalize-game-result-type/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/normalize-match-participants/normalize-match-participants.types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/normalize-match-participants/normalize-match-participants.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/normalize-match-participants/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/normalize-match-score/normalize-match-score.types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/normalize-match-score/normalize-match-score.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/normalize-match-score/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/normalize-match-state/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/normalize-match-state/normalize-match-state.constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/normalize-match-state/normalize-match-state.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/normalize-match-state/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/normalize-match-type/normalize-match-type.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/normalize-match-type/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/to-array/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/to-array/to-array.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/viewport.types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/i18n.types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/viewport.types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/animation.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/clamp.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/clone.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/cookie.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/equal.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/media-query-observable.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/rxjs.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/smart-block-scroll-strategy.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/viewport.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/validators/is-array-not-empty.validator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/validators/is-email.validator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/validators/must-match.validator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/validators/public-api.mjs +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostBinding, inject, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
class StructuredDataComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this._sanitizer = inject(DomSanitizer);
|
|
7
|
+
}
|
|
8
|
+
set data(currentValue) {
|
|
9
|
+
this.jsonLD = this.getSafeHTML(currentValue);
|
|
10
|
+
}
|
|
11
|
+
getSafeHTML(value) {
|
|
12
|
+
const json = value ? JSON.stringify(value, null, 2).replace(/<\/script>/g, '<\\/script>') : '';
|
|
13
|
+
const html = `<script type="application/ld+json">${json}</script>`;
|
|
14
|
+
return this._sanitizer.bypassSecurityTrustHtml(html);
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: StructuredDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: StructuredDataComponent, isStandalone: true, selector: "et-structured-data", inputs: { data: "data" }, host: { properties: { "innerHTML": "this.jsonLD" }, styleAttribute: "display: none" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
18
|
+
}
|
|
19
|
+
export { StructuredDataComponent };
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: StructuredDataComponent, decorators: [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{
|
|
23
|
+
selector: 'et-structured-data',
|
|
24
|
+
standalone: true,
|
|
25
|
+
template: '',
|
|
26
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
27
|
+
encapsulation: ViewEncapsulation.None,
|
|
28
|
+
host: {
|
|
29
|
+
style: 'display: none',
|
|
30
|
+
},
|
|
31
|
+
}]
|
|
32
|
+
}], propDecorators: { data: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], jsonLD: [{
|
|
35
|
+
type: HostBinding,
|
|
36
|
+
args: ['innerHTML']
|
|
37
|
+
}] } });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlZC1kYXRhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc3RydWN0dXJlZC1kYXRhL3N0cnVjdHVyZWQtZGF0YS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7O0FBR25FLE1BVWEsdUJBQXVCO0lBVnBDO1FBV21CLGVBQVUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0FlcEQ7SUFiQyxJQUNJLElBQUksQ0FBQyxZQUFnRjtRQUN2RixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUtELFdBQVcsQ0FBQyxLQUF5RTtRQUNuRixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0YsTUFBTSxJQUFJLEdBQUcsc0NBQXNDLElBQUksV0FBVyxDQUFDO1FBQ25FLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDOzhHQWZVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLCtMQVB4QixFQUFFOztTQU9ELHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQVZuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsZUFBZTtxQkFDdkI7aUJBQ0Y7OEJBS0ssSUFBSTtzQkFEUCxLQUFLO2dCQU1OLE1BQU07c0JBREwsV0FBVzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIGluamVjdCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBKc29uTEQgfSBmcm9tICdAZXRobGV0ZS90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LXN0cnVjdHVyZWQtZGF0YScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiAnJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBzdHlsZTogJ2Rpc3BsYXk6IG5vbmUnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTdHJ1Y3R1cmVkRGF0YUNvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Nhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkYXRhKGN1cnJlbnRWYWx1ZTogSnNvbkxELldpdGhDb250ZXh0PEpzb25MRC5UaGluZz4gfCBKc29uTEQuR3JhcGggfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5qc29uTEQgPSB0aGlzLmdldFNhZmVIVE1MKGN1cnJlbnRWYWx1ZSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2lubmVySFRNTCcpXG4gIGpzb25MRD86IFNhZmVIdG1sO1xuXG4gIGdldFNhZmVIVE1MKHZhbHVlOiBKc29uTEQuV2l0aENvbnRleHQ8SnNvbkxELlRoaW5nPiB8IEpzb25MRC5HcmFwaCB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBqc29uID0gdmFsdWUgPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgbnVsbCwgMikucmVwbGFjZSgvPFxcL3NjcmlwdD4vZywgJzxcXFxcL3NjcmlwdD4nKSA6ICcnO1xuICAgIGNvbnN0IGh0bWwgPSBgPHNjcmlwdCB0eXBlPVwiYXBwbGljYXRpb24vbGQranNvblwiPiR7anNvbn08L3NjcmlwdD5gO1xuICAgIHJldHVybiB0aGlzLl9zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoaHRtbCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { Directive, ElementRef, inject, InjectionToken, Input, isDevMode } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, debounceTime, filter, fromEvent, map, merge, skip, Subject, takeUntil, tap, } from 'rxjs';
|
|
3
|
+
import { createDestroy } from '../../utils';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export const ANIMATABLE_TOKEN = new InjectionToken('ANIMATABLE_DIRECTIVE_TOKEN');
|
|
6
|
+
class AnimatableDirective {
|
|
7
|
+
constructor() {
|
|
8
|
+
this._didEmitStart = false;
|
|
9
|
+
this._parent = inject(ANIMATABLE_TOKEN, { optional: true, skipSelf: true });
|
|
10
|
+
this._destroy$ = createDestroy();
|
|
11
|
+
this._elementRef = inject(ElementRef);
|
|
12
|
+
this._animationStart$ = new Subject();
|
|
13
|
+
this._animationEnd$ = new Subject();
|
|
14
|
+
this._animatedElement$ = new BehaviorSubject(this._elementRef.nativeElement);
|
|
15
|
+
this.animationStart$ = this._animationStart$.asObservable().pipe(debounceTime(0));
|
|
16
|
+
this.animationEnd$ = this._animationEnd$.asObservable().pipe(debounceTime(0));
|
|
17
|
+
this._hostActiveAnimationCount$ = new BehaviorSubject(0);
|
|
18
|
+
this._totalActiveAnimationCount$ = new BehaviorSubject(0);
|
|
19
|
+
this.isAnimating$ = this._totalActiveAnimationCount$.pipe(map((count) => count > 0), debounceTime(0));
|
|
20
|
+
}
|
|
21
|
+
set animatedElement(value) {
|
|
22
|
+
let newElement = null;
|
|
23
|
+
if (value === null || value === undefined) {
|
|
24
|
+
newElement = this._elementRef.nativeElement;
|
|
25
|
+
}
|
|
26
|
+
else if (typeof value === 'string') {
|
|
27
|
+
const el = document.querySelector(value);
|
|
28
|
+
if (el) {
|
|
29
|
+
newElement = el;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
if (isDevMode()) {
|
|
33
|
+
console.warn(`Element with selector ${value} not found. Animatable directive will use host element.`);
|
|
34
|
+
}
|
|
35
|
+
newElement = this._elementRef.nativeElement;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
newElement = value;
|
|
40
|
+
}
|
|
41
|
+
if (this._animatedElement$.value !== newElement) {
|
|
42
|
+
this._animatedElement$.next(newElement);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
ngOnInit() {
|
|
46
|
+
this._animatedElement$
|
|
47
|
+
.pipe(tap((el) => {
|
|
48
|
+
this._totalActiveAnimationCount$.next(this._totalActiveAnimationCount$.value - this._hostActiveAnimationCount$.value);
|
|
49
|
+
this._hostActiveAnimationCount$.next(0);
|
|
50
|
+
merge(fromEvent(el, 'animationstart'), fromEvent(el, 'transitionstart'))
|
|
51
|
+
.pipe(filter((e) => e.target === el), // skip events from children
|
|
52
|
+
tap(() => {
|
|
53
|
+
const count = this._hostActiveAnimationCount$.value + 1;
|
|
54
|
+
this._hostActiveAnimationCount$.next(count);
|
|
55
|
+
this._totalActiveAnimationCount$.next(count);
|
|
56
|
+
}), takeUntil(this._destroy$), takeUntil(this._animatedElement$.pipe(skip(1))))
|
|
57
|
+
.subscribe();
|
|
58
|
+
merge(fromEvent(el, 'animationend'), fromEvent(el, 'animationcancel'), fromEvent(el, 'transitionend'), fromEvent(el, 'transitioncancel'))
|
|
59
|
+
.pipe(filter((e) => e.target === el), // skip events from children
|
|
60
|
+
tap(() => {
|
|
61
|
+
const count = this._hostActiveAnimationCount$.value - 1;
|
|
62
|
+
this._hostActiveAnimationCount$.next(count);
|
|
63
|
+
this._totalActiveAnimationCount$.next(count);
|
|
64
|
+
}), takeUntil(this._destroy$), takeUntil(this._animatedElement$.pipe(skip(1))))
|
|
65
|
+
.subscribe();
|
|
66
|
+
}), takeUntil(this._destroy$))
|
|
67
|
+
.subscribe();
|
|
68
|
+
this._totalActiveAnimationCount$
|
|
69
|
+
.pipe(tap((count) => {
|
|
70
|
+
if (count > 0 && !this._didEmitStart) {
|
|
71
|
+
this._animationStart$.next();
|
|
72
|
+
this._didEmitStart = true;
|
|
73
|
+
}
|
|
74
|
+
else if (count === 0) {
|
|
75
|
+
this._animationEnd$.next();
|
|
76
|
+
this._didEmitStart = false;
|
|
77
|
+
}
|
|
78
|
+
}), takeUntil(this._destroy$))
|
|
79
|
+
.subscribe();
|
|
80
|
+
if (this._parent) {
|
|
81
|
+
this._parent._hostActiveAnimationCount$
|
|
82
|
+
.pipe(takeUntil(this._destroy$), tap((count) => {
|
|
83
|
+
this._totalActiveAnimationCount$.next(count + this._hostActiveAnimationCount$.value);
|
|
84
|
+
}))
|
|
85
|
+
.subscribe();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AnimatableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
89
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: AnimatableDirective, isStandalone: true, selector: "[etAnimatable]", inputs: { animatedElement: ["etAnimatable", "animatedElement"] }, providers: [
|
|
90
|
+
{
|
|
91
|
+
provide: ANIMATABLE_TOKEN,
|
|
92
|
+
useExisting: AnimatableDirective,
|
|
93
|
+
},
|
|
94
|
+
], exportAs: ["etAnimatable"], ngImport: i0 }); }
|
|
95
|
+
}
|
|
96
|
+
export { AnimatableDirective };
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AnimatableDirective, decorators: [{
|
|
98
|
+
type: Directive,
|
|
99
|
+
args: [{
|
|
100
|
+
selector: '[etAnimatable]',
|
|
101
|
+
exportAs: 'etAnimatable',
|
|
102
|
+
standalone: true,
|
|
103
|
+
providers: [
|
|
104
|
+
{
|
|
105
|
+
provide: ANIMATABLE_TOKEN,
|
|
106
|
+
useExisting: AnimatableDirective,
|
|
107
|
+
},
|
|
108
|
+
],
|
|
109
|
+
}]
|
|
110
|
+
}], propDecorators: { animatedElement: [{
|
|
111
|
+
type: Input,
|
|
112
|
+
args: ['etAnimatable']
|
|
113
|
+
}] } });
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0YWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2FuaW1hdGFibGUvYW5pbWF0YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLE1BQU0sRUFDTixTQUFTLEVBQ1QsR0FBRyxFQUNILEtBQUssRUFFTCxJQUFJLEVBQ0osT0FBTyxFQUNQLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUU1QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsNEJBQTRCLENBQUMsQ0FBQztBQUV0RyxNQVdhLG1CQUFtQjtJQVhoQztRQVlVLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRWIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdkUsY0FBUyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUUxRCxxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3ZDLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQTJCOUMsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQWMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVwRixvQkFBZSxHQUFHLElBQUksQ0FBQyxn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LElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7YUFDNUI7UUFDSCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsRUFBRSxDQUFDO1FBRWYsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsMEJBQTBCO2lCQUNwQyxJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFDekIsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZGLENBQUMsQ0FBQyxDQUNIO2lCQUNBLFNBQVMsRUFBRSxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQzs4R0FySFUsbUJBQW1CO2tHQUFuQixtQkFBbUIsK0hBUG5CO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGdCQUFnQjtnQkFDekIsV0FBVyxFQUFFLG1CQUFtQjthQUNqQztTQUNGOztTQUVVLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQVgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7NEJBQ3pCLFdBQVcscUJBQXFCO3lCQUNqQztxQkFDRjtpQkFDRjs4QkFZSyxlQUFlO3NCQURsQixLQUFLO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBpc0Rldk1vZGUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBkZWJvdW5jZVRpbWUsXG4gIGZpbHRlcixcbiAgZnJvbUV2ZW50LFxuICBtYXAsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBza2lwLFxuICBTdWJqZWN0LFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjcmVhdGVEZXN0cm95IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgQU5JTUFUQUJMRV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBbmltYXRhYmxlRGlyZWN0aXZlPignQU5JTUFUQUJMRV9ESVJFQ1RJVkVfVE9LRU4nKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2V0QW5pbWF0YWJsZV0nLFxuICBleHBvcnRBczogJ2V0QW5pbWF0YWJsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFOSU1BVEFCTEVfVE9LRU4sXG4gICAgICB1c2VFeGlzdGluZzogQW5pbWF0YWJsZURpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBbmltYXRhYmxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfZGlkRW1pdFN0YXJ0ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGFyZW50ID0gaW5qZWN0KEFOSU1BVEFCTEVfVE9LRU4sIHsgb3B0aW9uYWw6IHRydWUsIHNraXBTZWxmOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYW5pbWF0aW9uU3RhcnQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYW5pbWF0aW9uRW5kJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQElucHV0KCdldEFuaW1hdGFibGUnKVxuICBzZXQgYW5pbWF0ZWRFbGVtZW50KHZhbHVlOiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICBsZXQgbmV3RWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbmV3RWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih2YWx1ZSkgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgIGlmIChlbCkge1xuICAgICAgICBuZXdFbGVtZW50ID0gZWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYEVsZW1lbnQgd2l0aCBzZWxlY3RvciAke3ZhbHVlfSBub3QgZm91bmQuIEFuaW1hdGFibGUgZGlyZWN0aXZlIHdpbGwgdXNlIGhvc3QgZWxlbWVudC5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5ld0VsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0VsZW1lbnQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fYW5pbWF0ZWRFbGVtZW50JC52YWx1ZSAhPT0gbmV3RWxlbWVudCkge1xuICAgICAgdGhpcy5fYW5pbWF0ZWRFbGVtZW50JC5uZXh0KG5ld0VsZW1lbnQpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9hbmltYXRlZEVsZW1lbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIVE1MRWxlbWVudD4odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcblxuICByZWFkb25seSBhbmltYXRpb25TdGFydCQgPSB0aGlzLl9hbmltYXRpb25TdGFydCQuYXNPYnNlcnZhYmxlKCkucGlwZShkZWJvdW5jZVRpbWUoMCkpO1xuICByZWFkb25seSBhbmltYXRpb25FbmQkID0gdGhpcy5fYW5pbWF0aW9uRW5kJC5hc09ic2VydmFibGUoKS5waXBlKGRlYm91bmNlVGltZSgwKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaG9zdEFjdGl2ZUFuaW1hdGlvbkNvdW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdG90YWxBY3RpdmVBbmltYXRpb25Db3VudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG5cbiAgcmVhZG9ubHkgaXNBbmltYXRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fdG90YWxBY3RpdmVBbmltYXRpb25Db3VudCQucGlwZShcbiAgICBtYXAoKGNvdW50KSA9PiBjb3VudCA+IDApLFxuICAgIGRlYm91bmNlVGltZSgwKSxcbiAgKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9hbmltYXRlZEVsZW1lbnQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChlbCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3RvdGFsQWN0aXZlQW5pbWF0aW9uQ291bnQkLm5leHQoXG4gICAgICAgICAgICB0aGlzLl90b3RhbEFjdGl2ZUFuaW1hdGlvbkNvdW50JC52YWx1ZSAtIHRoaXMuX2hvc3RBY3RpdmVBbmltYXRpb25Db3VudCQudmFsdWUsXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLl9ob3N0QWN0aXZlQW5pbWF0aW9uQ291bnQkLm5leHQoMCk7XG5cbiAgICAgICAgICBtZXJnZShmcm9tRXZlbnQ8QW5pbWF0aW9uRXZlbnQ+KGVsLCAnYW5pbWF0aW9uc3RhcnQnKSwgZnJvbUV2ZW50PFRyYW5zaXRpb25FdmVudD4oZWwsICd0cmFuc2l0aW9uc3RhcnQnKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICBmaWx0ZXIoKGUpID0+IGUudGFyZ2V0ID09PSBlbCksIC8vIHNraXAgZXZlbnRzIGZyb20gY2hpbGRyZW5cbiAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb3VudCA9IHRoaXMuX2hvc3RBY3RpdmVBbmltYXRpb25Db3VudCQudmFsdWUgKyAxO1xuICAgICAgICAgICAgICAgIHRoaXMuX2hvc3RBY3RpdmVBbmltYXRpb25Db3VudCQubmV4dChjb3VudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdG90YWxBY3RpdmVBbmltYXRpb25Db3VudCQubmV4dChjb3VudCk7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fYW5pbWF0ZWRFbGVtZW50JC5waXBlKHNraXAoMSkpKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgZnJvbUV2ZW50PEFuaW1hdGlvbkV2ZW50PihlbCwgJ2FuaW1hdGlvbmVuZCcpLFxuICAgICAgICAgICAgZnJvbUV2ZW50PEFuaW1hdGlvbkV2ZW50PihlbCwgJ2FuaW1hdGlvbmNhbmNlbCcpLFxuICAgICAgICAgICAgZnJvbUV2ZW50PFRyYW5zaXRpb25FdmVudD4oZWwsICd0cmFuc2l0aW9uZW5kJyksXG4gICAgICAgICAgICBmcm9tRXZlbnQ8VHJhbnNpdGlvbkV2ZW50PihlbCwgJ3RyYW5zaXRpb25jYW5jZWwnKSxcbiAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgZmlsdGVyKChlKSA9PiBlLnRhcmdldCA9PT0gZWwpLCAvLyBza2lwIGV2ZW50cyBmcm9tIGNoaWxkcmVuXG4gICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY291bnQgPSB0aGlzLl9ob3N0QWN0aXZlQW5pbWF0aW9uQ291bnQkLnZhbHVlIC0gMTtcbiAgICAgICAgICAgICAgICB0aGlzLl9ob3N0QWN0aXZlQW5pbWF0aW9uQ291bnQkLm5leHQoY291bnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3RvdGFsQWN0aXZlQW5pbWF0aW9uQ291bnQkLm5leHQoY291bnQpO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2FuaW1hdGVkRWxlbWVudCQucGlwZShza2lwKDEpKSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fdG90YWxBY3RpdmVBbmltYXRpb25Db3VudCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKGNvdW50KSA9PiB7XG4gICAgICAgICAgaWYgKGNvdW50ID4gMCAmJiAhdGhpcy5fZGlkRW1pdFN0YXJ0KSB7XG4gICAgICAgICAgICB0aGlzLl9hbmltYXRpb25TdGFydCQubmV4dCgpO1xuICAgICAgICAgICAgdGhpcy5fZGlkRW1pdFN0YXJ0ID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGNvdW50ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl9hbmltYXRpb25FbmQkLm5leHQoKTtcbiAgICAgICAgICAgIHRoaXMuX2RpZEVtaXRTdGFydCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICBpZiAodGhpcy5fcGFyZW50KSB7XG4gICAgICB0aGlzLl9wYXJlbnQuX2hvc3RBY3RpdmVBbmltYXRpb25Db3VudCRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgICB0YXAoKGNvdW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90b3RhbEFjdGl2ZUFuaW1hdGlvbkNvdW50JC5uZXh0KGNvdW50ICsgdGhpcy5faG9zdEFjdGl2ZUFuaW1hdGlvbkNvdW50JC52YWx1ZSk7XG4gICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { Directive, ElementRef, inject, InjectionToken, isDevMode } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, map, switchMap, take, takeUntil, tap } from 'rxjs';
|
|
3
|
+
import { createDestroy, createReactiveBindings, forceReflow, fromNextFrame } from '../../utils';
|
|
4
|
+
import { ANIMATABLE_TOKEN, AnimatableDirective } from '../animatable';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../animatable/animatable.directive";
|
|
7
|
+
export const ANIMATED_LIFECYCLE_TOKEN = new InjectionToken('ANIMATED_LIFECYCLE_DIRECTIVE_TOKEN');
|
|
8
|
+
const ANIMATION_CLASSES = {
|
|
9
|
+
enterFrom: 'et-animation-enter-from',
|
|
10
|
+
enterActive: 'et-animation-enter-active',
|
|
11
|
+
enterTo: 'et-animation-enter-to',
|
|
12
|
+
leaveFrom: 'et-animation-leave-from',
|
|
13
|
+
leaveActive: 'et-animation-leave-active',
|
|
14
|
+
leaveTo: 'et-animation-leave-to',
|
|
15
|
+
};
|
|
16
|
+
class AnimatedLifecycleDirective {
|
|
17
|
+
constructor() {
|
|
18
|
+
this._destroy$ = createDestroy();
|
|
19
|
+
this._elementRef = inject(ElementRef);
|
|
20
|
+
this._animatable = inject(ANIMATABLE_TOKEN);
|
|
21
|
+
this._classList = this._elementRef.nativeElement.classList;
|
|
22
|
+
this._state$ = new BehaviorSubject('init');
|
|
23
|
+
this.state$ = this._state$.asObservable();
|
|
24
|
+
this._bindings = createReactiveBindings({
|
|
25
|
+
attribute: 'class.et-force-invisible',
|
|
26
|
+
observable: this._state$.pipe(map((state) => state === 'init')),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
get state() {
|
|
30
|
+
return this._state$.value;
|
|
31
|
+
}
|
|
32
|
+
enter(config) {
|
|
33
|
+
if (this.state !== 'init' && this.state !== 'left' && isDevMode()) {
|
|
34
|
+
console.warn('Tried to enter but the element is not in the initial state. This may result in unexpected behavior.', this);
|
|
35
|
+
}
|
|
36
|
+
this._state$.next('entering');
|
|
37
|
+
if (!config?.onlyTransition) {
|
|
38
|
+
this._classList.add(ANIMATION_CLASSES.enterFrom);
|
|
39
|
+
}
|
|
40
|
+
forceReflow();
|
|
41
|
+
this._classList.add(ANIMATION_CLASSES.enterActive);
|
|
42
|
+
fromNextFrame()
|
|
43
|
+
.pipe(tap(() => {
|
|
44
|
+
if (!config?.onlyTransition) {
|
|
45
|
+
this._classList.remove(ANIMATION_CLASSES.enterFrom);
|
|
46
|
+
this._classList.add(ANIMATION_CLASSES.enterTo);
|
|
47
|
+
}
|
|
48
|
+
}), switchMap(() => this._animatable.animationEnd$), tap(() => {
|
|
49
|
+
this._state$.next('entered');
|
|
50
|
+
this._classList.remove(ANIMATION_CLASSES.enterActive);
|
|
51
|
+
if (!config?.onlyTransition) {
|
|
52
|
+
this._classList.remove(ANIMATION_CLASSES.enterTo);
|
|
53
|
+
}
|
|
54
|
+
}), takeUntil(this._destroy$), take(1))
|
|
55
|
+
.subscribe();
|
|
56
|
+
}
|
|
57
|
+
leave(config) {
|
|
58
|
+
if (this.state !== 'entered' && this.state !== 'entering' && isDevMode()) {
|
|
59
|
+
console.warn('Tried to leave while already leaving or left. This may result in unexpected behavior.', this);
|
|
60
|
+
}
|
|
61
|
+
if (this._classList.contains(ANIMATION_CLASSES.enterFrom) ||
|
|
62
|
+
this._classList.contains(ANIMATION_CLASSES.enterActive) ||
|
|
63
|
+
this._classList.contains(ANIMATION_CLASSES.enterTo)) {
|
|
64
|
+
this._classList.remove(ANIMATION_CLASSES.enterFrom);
|
|
65
|
+
this._classList.remove(ANIMATION_CLASSES.enterActive);
|
|
66
|
+
this._classList.remove(ANIMATION_CLASSES.enterTo);
|
|
67
|
+
}
|
|
68
|
+
this._state$.next('leaving');
|
|
69
|
+
if (!config?.onlyTransition) {
|
|
70
|
+
this._classList.add(ANIMATION_CLASSES.leaveFrom);
|
|
71
|
+
}
|
|
72
|
+
forceReflow();
|
|
73
|
+
this._classList.add(ANIMATION_CLASSES.leaveActive);
|
|
74
|
+
fromNextFrame()
|
|
75
|
+
.pipe(tap(() => {
|
|
76
|
+
if (!config?.onlyTransition) {
|
|
77
|
+
this._classList.remove(ANIMATION_CLASSES.leaveFrom);
|
|
78
|
+
this._classList.add(ANIMATION_CLASSES.leaveTo);
|
|
79
|
+
}
|
|
80
|
+
}), switchMap(() => this._animatable.animationEnd$), tap(() => {
|
|
81
|
+
this._state$.next('left');
|
|
82
|
+
this._classList.remove(ANIMATION_CLASSES.leaveActive);
|
|
83
|
+
if (!config?.onlyTransition) {
|
|
84
|
+
this._classList.remove(ANIMATION_CLASSES.leaveTo);
|
|
85
|
+
}
|
|
86
|
+
}), takeUntil(this._destroy$), take(1))
|
|
87
|
+
.subscribe();
|
|
88
|
+
}
|
|
89
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AnimatedLifecycleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
90
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: AnimatedLifecycleDirective, isStandalone: true, selector: "[etAnimatedLifecycle]", providers: [
|
|
91
|
+
{
|
|
92
|
+
provide: ANIMATED_LIFECYCLE_TOKEN,
|
|
93
|
+
useExisting: AnimatedLifecycleDirective,
|
|
94
|
+
},
|
|
95
|
+
], exportAs: ["etAnimatedLifecycle"], hostDirectives: [{ directive: i1.AnimatableDirective }], ngImport: i0 }); }
|
|
96
|
+
}
|
|
97
|
+
export { AnimatedLifecycleDirective };
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AnimatedLifecycleDirective, decorators: [{
|
|
99
|
+
type: Directive,
|
|
100
|
+
args: [{
|
|
101
|
+
selector: '[etAnimatedLifecycle]',
|
|
102
|
+
exportAs: 'etAnimatedLifecycle',
|
|
103
|
+
standalone: true,
|
|
104
|
+
providers: [
|
|
105
|
+
{
|
|
106
|
+
provide: ANIMATED_LIFECYCLE_TOKEN,
|
|
107
|
+
useExisting: AnimatedLifecycleDirective,
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
hostDirectives: [AnimatableDirective],
|
|
111
|
+
}]
|
|
112
|
+
}] });
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0ZWQtbGlmZWN5Y2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvYW5pbWF0ZWQtbGlmZWN5Y2xlL2FuaW1hdGVkLWxpZmVjeWNsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUV0RSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FDeEQsb0NBQW9DLENBQ3JDLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHO0lBQ3hCLFNBQVMsRUFBRSx5QkFBeUI7SUFDcEMsV0FBVyxFQUFFLDJCQUEyQjtJQUN4QyxPQUFPLEVBQUUsdUJBQXVCO0lBQ2hDLFNBQVMsRUFBRSx5QkFBeUI7SUFDcEMsV0FBVyxFQUFFLDJCQUEyQjtJQUN4QyxPQUFPLEVBQUUsdUJBQXVCO0NBQ3hCLENBQUM7QUFFWCxNQVlhLDBCQUEwQjtJQVp2QztRQWFtQixjQUFTLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDNUIsZ0JBQVcsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBQzFELGdCQUFXLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkMsZUFBVSxH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LElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ25EO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFDekIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzs4R0F2R1UsMEJBQTBCO2tHQUExQiwwQkFBMEIsb0VBUjFCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHdCQUF3QjtnQkFDakMsV0FBVyxFQUFFLDBCQUEwQjthQUN4QztTQUNGOztTQUdVLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQVp0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHdCQUF3Qjs0QkFDakMsV0FBVyw0QkFBNEI7eUJBQ3hDO3FCQUNGO29CQUNELGNBQWMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1hcCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY3JlYXRlRGVzdHJveSwgY3JlYXRlUmVhY3RpdmVCaW5kaW5ncywgZm9yY2VSZWZsb3csIGZyb21OZXh0RnJhbWUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBBTklNQVRBQkxFX1RPS0VOLCBBbmltYXRhYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vYW5pbWF0YWJsZSc7XG5cbmV4cG9ydCBjb25zdCBBTklNQVRFRF9MSUZFQ1lDTEVfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48QW5pbWF0ZWRMaWZlY3ljbGVEaXJlY3RpdmU+KFxuICAnQU5JTUFURURfTElGRUNZQ0xFX0RJUkVDVElWRV9UT0tFTicsXG4pO1xuXG5jb25zdCBBTklNQVRJT05fQ0xBU1NFUyA9IHtcbiAgZW50ZXJGcm9tOiAnZXQtYW5pbWF0aW9uLWVudGVyLWZyb20nLFxuICBlbnRlckFjdGl2ZTogJ2V0LWFuaW1hdGlvbi1lbnRlci1hY3RpdmUnLFxuICBlbnRlclRvOiAnZXQtYW5pbWF0aW9uLWVudGVyLXRvJyxcbiAgbGVhdmVGcm9tOiAnZXQtYW5pbWF0aW9uLWxlYXZlLWZyb20nLFxuICBsZWF2ZUFjdGl2ZTogJ2V0LWFuaW1hdGlvbi1sZWF2ZS1hY3RpdmUnLFxuICBsZWF2ZVRvOiAnZXQtYW5pbWF0aW9uLWxlYXZlLXRvJyxcbn0gYXMgY29uc3Q7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tldEFuaW1hdGVkTGlmZWN5Y2xlXScsXG4gIGV4cG9ydEFzOiAnZXRBbmltYXRlZExpZmVjeWNsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFOSU1BVEVEX0xJRkVDWUNMRV9UT0tFTixcbiAgICAgIHVzZUV4aXN0aW5nOiBBbmltYXRlZExpZmVjeWNsZURpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxuICBob3N0RGlyZWN0aXZlczogW0FuaW1hdGFibGVEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBBbmltYXRlZExpZmVjeWNsZURpcmVjdGl2ZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYW5pbWF0YWJsZSA9IGluamVjdChBTklNQVRBQkxFX1RPS0VOKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xhc3NMaXN0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdDtcblxuICBwcml2YXRlIF9zdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PCdlbnRlcmluZycgfCAnZW50ZXJlZCcgfCAnbGVhdmluZycgfCAnbGVmdCcgfCAnaW5pdCc+KCdpbml0Jyk7XG4gIHJlYWRvbmx5IHN0YXRlJCA9IHRoaXMuX3N0YXRlJC5hc09ic2VydmFibGUoKTtcblxuICBnZXQgc3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlJC52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2JpbmRpbmdzID0gY3JlYXRlUmVhY3RpdmVCaW5kaW5ncyh7XG4gICAgYXR0cmlidXRlOiAnY2xhc3MuZXQtZm9yY2UtaW52aXNpYmxlJyxcbiAgICBvYnNlcnZhYmxlOiB0aGlzLl9zdGF0ZSQucGlwZShtYXAoKHN0YXRlKSA9PiBzdGF0ZSA9PT0gJ2luaXQnKSksXG4gIH0pO1xuXG4gIGVudGVyKGNvbmZpZz86IHsgb25seVRyYW5zaXRpb24/OiBib29sZWFuIH0pIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2luaXQnICYmIHRoaXMuc3RhdGUgIT09ICdsZWZ0JyAmJiBpc0Rldk1vZGUoKSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnVHJpZWQgdG8gZW50ZXIgYnV0IHRoZSBlbGVtZW50IGlzIG5vdCBpbiB0aGUgaW5pdGlhbCBzdGF0ZS4gVGhpcyBtYXkgcmVzdWx0IGluIHVuZXhwZWN0ZWQgYmVoYXZpb3IuJyxcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGUkLm5leHQoJ2VudGVyaW5nJyk7XG5cbiAgICBpZiAoIWNvbmZpZz8ub25seVRyYW5zaXRpb24pIHtcbiAgICAgIHRoaXMuX2NsYXNzTGlzdC5hZGQoQU5JTUFUSU9OX0NMQVNTRVMuZW50ZXJGcm9tKTtcbiAgICB9XG5cbiAgICBmb3JjZVJlZmxvdygpO1xuICAgIHRoaXMuX2NsYXNzTGlzdC5hZGQoQU5JTUFUSU9OX0NMQVNTRVMuZW50ZXJBY3RpdmUpO1xuXG4gICAgZnJvbU5leHRGcmFtZSgpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNvbmZpZz8ub25seVRyYW5zaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX2NsYXNzTGlzdC5yZW1vdmUoQU5JTUFUSU9OX0NMQVNTRVMuZW50ZXJGcm9tKTtcbiAgICAgICAgICAgIHRoaXMuX2NsYXNzTGlzdC5hZGQoQU5JTUFUSU9OX0NMQVNTRVMuZW50ZXJUbyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuX2FuaW1hdGFibGUuYW5pbWF0aW9uRW5kJCksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fc3RhdGUkLm5leHQoJ2VudGVyZWQnKTtcbiAgICAgICAgICB0aGlzLl9jbGFzc0xpc3QucmVtb3ZlKEFOSU1BVElPTl9DTEFTU0VTLmVudGVyQWN0aXZlKTtcblxuICAgICAgICAgIGlmICghY29uZmlnPy5vbmx5VHJhbnNpdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fY2xhc3NMaXN0LnJlbW92ZShBTklNQVRJT05fQ0xBU1NFUy5lbnRlclRvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbGVhdmUoY29uZmlnPzogeyBvbmx5VHJhbnNpdGlvbj86IGJvb2xlYW4gfSkge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnZW50ZXJlZCcgJiYgdGhpcy5zdGF0ZSAhPT0gJ2VudGVyaW5nJyAmJiBpc0Rldk1vZGUoKSkge1xuICAgICAgY29uc29sZS53YXJuKCdUcmllZCB0byBsZWF2ZSB3aGlsZSBhbHJlYWR5IGxlYXZpbmcgb3IgbGVmdC4gVGhpcyBtYXkgcmVzdWx0IGluIHVuZXhwZWN0ZWQgYmVoYXZpb3IuJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5fY2xhc3NMaXN0LmNvbnRhaW5zKEFOSU1BVElPTl9DTEFTU0VTLmVudGVyRnJvbSkgfHxcbiAgICAgIHRoaXMuX2NsYXNzTGlzdC5jb250YWlucyhBTklNQVRJT05fQ0xBU1NFUy5lbnRlckFjdGl2ZSkgfHxcbiAgICAgIHRoaXMuX2NsYXNzTGlzdC5jb250YWlucyhBTklNQVRJT05fQ0xBU1NFUy5lbnRlclRvKVxuICAgICkge1xuICAgICAgdGhpcy5fY2xhc3NMaXN0LnJlbW92ZShBTklNQVRJT05fQ0xBU1NFUy5lbnRlckZyb20pO1xuICAgICAgdGhpcy5fY2xhc3NMaXN0LnJlbW92ZShBTklNQVRJT05fQ0xBU1NFUy5lbnRlckFjdGl2ZSk7XG4gICAgICB0aGlzLl9jbGFzc0xpc3QucmVtb3ZlKEFOSU1BVElPTl9DTEFTU0VTLmVudGVyVG8pO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXRlJC5uZXh0KCdsZWF2aW5nJyk7XG5cbiAgICBpZiAoIWNvbmZpZz8ub25seVRyYW5zaXRpb24pIHtcbiAgICAgIHRoaXMuX2NsYXNzTGlzdC5hZGQoQU5JTUFUSU9OX0NMQVNTRVMubGVhdmVGcm9tKTtcbiAgICB9XG5cbiAgICBmb3JjZVJlZmxvdygpO1xuICAgIHRoaXMuX2NsYXNzTGlzdC5hZGQoQU5JTUFUSU9OX0NMQVNTRVMubGVhdmVBY3RpdmUpO1xuXG4gICAgZnJvbU5leHRGcmFtZSgpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNvbmZpZz8ub25seVRyYW5zaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX2NsYXNzTGlzdC5yZW1vdmUoQU5JTUFUSU9OX0NMQVNTRVMubGVhdmVGcm9tKTtcbiAgICAgICAgICAgIHRoaXMuX2NsYXNzTGlzdC5hZGQoQU5JTUFUSU9OX0NMQVNTRVMubGVhdmVUbyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuX2FuaW1hdGFibGUuYW5pbWF0aW9uRW5kJCksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fc3RhdGUkLm5leHQoJ2xlZnQnKTtcbiAgICAgICAgICB0aGlzLl9jbGFzc0xpc3QucmVtb3ZlKEFOSU1BVElPTl9DTEFTU0VTLmxlYXZlQWN0aXZlKTtcblxuICAgICAgICAgIGlmICghY29uZmlnPy5vbmx5VHJhbnNpdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fY2xhc3NMaXN0LnJlbW92ZShBTklNQVRJT05fQ0xBU1NFUy5sZWF2ZVRvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2FuaW1hdGVkLWxpZmVjeWNsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { Overlay } from '@angular/cdk/overlay';
|
|
2
|
+
import { ComponentPortal } from '@angular/cdk/portal';
|
|
3
|
+
import { Directive, ElementRef, Injector, Input, NgZone, ViewContainerRef, inject, } from '@angular/core';
|
|
4
|
+
import { createPopper } from '@popperjs/core';
|
|
5
|
+
import { Subject, filter, take, takeUntil, tap } from 'rxjs';
|
|
6
|
+
import { createDestroy, nextFrame } from '../../utils';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
class AnimatedOverlayDirective {
|
|
9
|
+
constructor() {
|
|
10
|
+
this._destroy$ = createDestroy();
|
|
11
|
+
this._overlayService = inject(Overlay);
|
|
12
|
+
this._injector = inject(Injector);
|
|
13
|
+
this._viewContainerRef = inject(ViewContainerRef);
|
|
14
|
+
this._zone = inject(NgZone);
|
|
15
|
+
this._elementRef = inject(ElementRef);
|
|
16
|
+
this._portal = null;
|
|
17
|
+
this._overlayRef = null;
|
|
18
|
+
this._componentRef = null;
|
|
19
|
+
this._popper = null;
|
|
20
|
+
this._beforeOpened = null;
|
|
21
|
+
this._afterOpened = null;
|
|
22
|
+
this._beforeClosed = null;
|
|
23
|
+
this._afterClosed = null;
|
|
24
|
+
/**
|
|
25
|
+
* The placement of the tooltip.
|
|
26
|
+
* @default 'auto'
|
|
27
|
+
*/
|
|
28
|
+
this.placement = 'auto';
|
|
29
|
+
/**
|
|
30
|
+
* The offset of the tooltip.
|
|
31
|
+
* @see https://popper.js.org/docs/v2/modifiers/offset/#offset-1
|
|
32
|
+
*/
|
|
33
|
+
this.offset = null;
|
|
34
|
+
/**
|
|
35
|
+
* The arrow padding.
|
|
36
|
+
* @see https://popper.js.org/docs/v2/modifiers/arrow/#padding
|
|
37
|
+
* @default 4
|
|
38
|
+
*/
|
|
39
|
+
this.arrowPadding = null;
|
|
40
|
+
}
|
|
41
|
+
get isMounted() {
|
|
42
|
+
return !!this._componentRef;
|
|
43
|
+
}
|
|
44
|
+
get portal() {
|
|
45
|
+
return this._portal;
|
|
46
|
+
}
|
|
47
|
+
get overlayRef() {
|
|
48
|
+
return this._overlayRef;
|
|
49
|
+
}
|
|
50
|
+
get componentRef() {
|
|
51
|
+
return this._componentRef;
|
|
52
|
+
}
|
|
53
|
+
get popper() {
|
|
54
|
+
return this._popper;
|
|
55
|
+
}
|
|
56
|
+
mount(config) {
|
|
57
|
+
const { component, providers, data } = config;
|
|
58
|
+
this._beforeOpened?.next();
|
|
59
|
+
const injector = Injector.create({
|
|
60
|
+
parent: this._injector,
|
|
61
|
+
providers: providers ?? [],
|
|
62
|
+
});
|
|
63
|
+
this._overlayRef = this._overlayService.create();
|
|
64
|
+
this._portal = this._portal ?? new ComponentPortal(component, this._viewContainerRef, injector);
|
|
65
|
+
this._componentRef = this._overlayRef.attach(this._portal);
|
|
66
|
+
if (data) {
|
|
67
|
+
Object.assign(this._componentRef.instance, data);
|
|
68
|
+
}
|
|
69
|
+
this._componentRef.instance._markForCheck?.();
|
|
70
|
+
this._zone.runOutsideAngular(() => {
|
|
71
|
+
if (!this._componentRef) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
this._popper = createPopper(this._elementRef.nativeElement, this._componentRef.location.nativeElement, {
|
|
75
|
+
placement: this.placement,
|
|
76
|
+
modifiers: [
|
|
77
|
+
...(this.offset
|
|
78
|
+
? [
|
|
79
|
+
{
|
|
80
|
+
name: 'offset',
|
|
81
|
+
options: {
|
|
82
|
+
offset: this.offset,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
]
|
|
86
|
+
: []),
|
|
87
|
+
...(this.arrowPadding
|
|
88
|
+
? [
|
|
89
|
+
{
|
|
90
|
+
name: 'arrow',
|
|
91
|
+
options: {
|
|
92
|
+
padding: this.arrowPadding,
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
]
|
|
96
|
+
: []),
|
|
97
|
+
],
|
|
98
|
+
});
|
|
99
|
+
// We need to wait for the tooltip content to be rendered
|
|
100
|
+
nextFrame(() => {
|
|
101
|
+
if (!this._componentRef) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
this._popper?.update();
|
|
105
|
+
this._componentRef.instance._animatedLifecycle?.enter();
|
|
106
|
+
this._componentRef.instance._animatedLifecycle?.state$
|
|
107
|
+
.pipe(tap((s) => {
|
|
108
|
+
if (s === 'entered') {
|
|
109
|
+
this._afterOpened?.next();
|
|
110
|
+
}
|
|
111
|
+
}), take(1), takeUntil(this._destroy$))
|
|
112
|
+
.subscribe();
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
unmount() {
|
|
117
|
+
if (!this._componentRef) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
this._beforeClosed?.next();
|
|
121
|
+
this._componentRef.instance._animatedLifecycle?.leave();
|
|
122
|
+
this._componentRef.instance._animatedLifecycle?.state$
|
|
123
|
+
.pipe(filter((s) => s === 'left'), take(1))
|
|
124
|
+
.subscribe(() => this._destroy());
|
|
125
|
+
}
|
|
126
|
+
beforeOpened() {
|
|
127
|
+
if (!this._beforeOpened) {
|
|
128
|
+
this._beforeOpened = new Subject();
|
|
129
|
+
}
|
|
130
|
+
return this._beforeOpened;
|
|
131
|
+
}
|
|
132
|
+
afterOpened() {
|
|
133
|
+
if (!this._afterOpened) {
|
|
134
|
+
this._afterOpened = new Subject();
|
|
135
|
+
}
|
|
136
|
+
return this._afterOpened;
|
|
137
|
+
}
|
|
138
|
+
beforeClosed() {
|
|
139
|
+
if (!this._beforeClosed) {
|
|
140
|
+
this._beforeClosed = new Subject();
|
|
141
|
+
}
|
|
142
|
+
return this._beforeClosed;
|
|
143
|
+
}
|
|
144
|
+
afterClosed() {
|
|
145
|
+
if (!this._afterClosed) {
|
|
146
|
+
this._afterClosed = new Subject();
|
|
147
|
+
}
|
|
148
|
+
return this._afterClosed;
|
|
149
|
+
}
|
|
150
|
+
_destroy() {
|
|
151
|
+
this._zone.runOutsideAngular(() => {
|
|
152
|
+
this._popper?.destroy();
|
|
153
|
+
this._popper = null;
|
|
154
|
+
});
|
|
155
|
+
if (this._overlayRef) {
|
|
156
|
+
this._overlayRef.dispose();
|
|
157
|
+
this._overlayRef = null;
|
|
158
|
+
}
|
|
159
|
+
if (this._componentRef) {
|
|
160
|
+
this._componentRef.destroy();
|
|
161
|
+
this._componentRef = null;
|
|
162
|
+
}
|
|
163
|
+
this._afterClosed?.next();
|
|
164
|
+
}
|
|
165
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AnimatedOverlayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
166
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: AnimatedOverlayDirective, isStandalone: true, inputs: { placement: "placement", offset: "offset", arrowPadding: "arrowPadding" }, ngImport: i0 }); }
|
|
167
|
+
}
|
|
168
|
+
export { AnimatedOverlayDirective };
|
|
169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: AnimatedOverlayDirective, decorators: [{
|
|
170
|
+
type: Directive,
|
|
171
|
+
args: [{
|
|
172
|
+
standalone: true,
|
|
173
|
+
}]
|
|
174
|
+
}], propDecorators: { placement: [{
|
|
175
|
+
type: Input
|
|
176
|
+
}], offset: [{
|
|
177
|
+
type: Input
|
|
178
|
+
}], arrowPadding: [{
|
|
179
|
+
type: Input
|
|
180
|
+
}] } });
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0ZWQtb3ZlcmxheS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2FuaW1hdGVkLW92ZXJsYXkvYW5pbWF0ZWQtb3ZlcmxheS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEVBRU4sZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTRELFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUd2RCxNQUdhLHdCQUF3QjtJQUhyQztRQU1tQixjQUFTLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDNUIsb0JBQWUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixzQkFBaUIsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3QyxVQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUVuRSxZQUFPLEdBQThCLElBQUksQ0FBQztRQUMxQyxnQkFBVyxHQUFzQixJQUFJLENBQUM7UUFDdEMsa0JB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QUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQzNCO1FBRUQsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDOzhHQTNNVSx3QkFBd0I7a0dBQXhCLHdCQUF3Qjs7U0FBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBSHBDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQTBCQyxTQUFTO3NCQURSLEtBQUs7Z0JBUU4sTUFBTTtzQkFETCxLQUFLO2dCQVNOLFlBQVk7c0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIENvbXBvbmVudFJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgU3RhdGljUHJvdmlkZXIsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnN0YW5jZSBhcyBQb3BwZXJJbnN0YW5jZSwgUGxhY2VtZW50IGFzIFBvcHBlclBsYWNlbWVudCwgY3JlYXRlUG9wcGVyIH0gZnJvbSAnQHBvcHBlcmpzL2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyBhcyBBcnJvd09wdGlvbnMgfSBmcm9tICdAcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2Fycm93JztcbmltcG9ydCB7IE9wdGlvbnMgYXMgT2Zmc2V0T3B0aW9ucyB9IGZyb20gJ0Bwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvb2Zmc2V0JztcbmltcG9ydCB7IFN1YmplY3QsIGZpbHRlciwgdGFrZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNyZWF0ZURlc3Ryb3ksIG5leHRGcmFtZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEFuaW1hdGVkTGlmZWN5Y2xlRGlyZWN0aXZlIH0gZnJvbSAnLi4vYW5pbWF0ZWQtbGlmZWN5Y2xlJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFuaW1hdGVkT3ZlcmxheURpcmVjdGl2ZTxcbiAgVCBleHRlbmRzIHsgX2FuaW1hdGVkTGlmZWN5Y2xlPzogQW5pbWF0ZWRMaWZlY3ljbGVEaXJlY3RpdmU7IF9tYXJrRm9yQ2hlY2s/OiAoKSA9PiB2b2lkIH0sXG4+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX292ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3pvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgcHJpdmF0ZSBfcG9ydGFsOiBDb21wb25lbnRQb3J0YWw8VD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9jb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9wb3BwZXI6IFBvcHBlckluc3RhbmNlIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfYmVmb3JlT3BlbmVkOiBTdWJqZWN0PHZvaWQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2FmdGVyT3BlbmVkOiBTdWJqZWN0PHZvaWQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2JlZm9yZUNsb3NlZDogU3ViamVjdDx2b2lkPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9hZnRlckNsb3NlZDogU3ViamVjdDx2b2lkPiB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgcGxhY2VtZW50IG9mIHRoZSB0b29sdGlwLlxuICAgKiBAZGVmYXVsdCAnYXV0bydcbiAgICovXG4gIEBJbnB1dCgpXG4gIHBsYWNlbWVudDogUG9wcGVyUGxhY2VtZW50ID0gJ2F1dG8nO1xuXG4gIC8qKlxuICAgKiBUaGUgb2Zmc2V0IG9mIHRoZSB0b29sdGlwLlxuICAgKiBAc2VlIGh0dHBzOi8vcG9wcGVyLmpzLm9yZy9kb2NzL3YyL21vZGlmaWVycy9vZmZzZXQvI29mZnNldC0xXG4gICAqL1xuICBASW5wdXQoKVxuICBvZmZzZXQ6IE9mZnNldE9wdGlvbnNbJ29mZnNldCddIHwgUmVhZG9ubHk8T2Zmc2V0T3B0aW9uc1snb2Zmc2V0J10+IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBhcnJvdyBwYWRkaW5nLlxuICAgKiBAc2VlIGh0dHBzOi8vcG9wcGVyLmpzLm9yZy9kb2NzL3YyL21vZGlmaWVycy9hcnJvdy8jcGFkZGluZ1xuICAgKiBAZGVmYXVsdCA0XG4gICAqL1xuICBASW5wdXQoKVxuICBhcnJvd1BhZGRpbmc6IEFycm93T3B0aW9uc1sncGFkZGluZyddIHwgbnVsbCA9IG51bGw7XG5cbiAgZ2V0IGlzTW91bnRlZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9jb21wb25lbnRSZWY7XG4gIH1cblxuICBnZXQgcG9ydGFsKCkge1xuICAgIHJldHVybiB0aGlzLl9wb3J0YWw7XG4gIH1cblxuICBnZXQgb3ZlcmxheVJlZigpIHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVJlZjtcbiAgfVxuXG4gIGdldCBjb21wb25lbnRSZWYoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbXBvbmVudFJlZjtcbiAgfVxuXG4gIGdldCBwb3BwZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BvcHBlcjtcbiAgfVxuXG4gIG1vdW50KGNvbmZpZzogeyBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD47IHByb3ZpZGVycz86IFN0YXRpY1Byb3ZpZGVyW107IGRhdGE/OiBQYXJ0aWFsPFQ+IH0pIHtcbiAgICBjb25zdCB7IGNvbXBvbmVudCwgcHJvdmlkZXJzLCBkYXRhIH0gPSBjb25maWc7XG5cbiAgICB0aGlzLl9iZWZvcmVPcGVuZWQ/Lm5leHQoKTtcblxuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHBhcmVudDogdGhpcy5faW5qZWN0b3IsXG4gICAgICBwcm92aWRlcnM6IHByb3ZpZGVycyA/PyBbXSxcbiAgICB9KTtcblxuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5U2VydmljZS5jcmVhdGUoKTtcblxuICAgIHRoaXMuX3BvcnRhbCA9IHRoaXMuX3BvcnRhbCA/PyBuZXcgQ29tcG9uZW50UG9ydGFsKGNvbXBvbmVudCwgdGhpcy5fdmlld0NvbnRhaW5lclJlZiwgaW5qZWN0b3IpO1xuICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG5cbiAgICBpZiAoZGF0YSkge1xuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UsIGRhdGEpO1xuICAgIH1cblxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5fbWFya0ZvckNoZWNrPy4oKTtcblxuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9jb21wb25lbnRSZWYpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5fcG9wcGVyID0gY3JlYXRlUG9wcGVyKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5fY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcbiAgICAgICAgbW9kaWZpZXJzOiBbXG4gICAgICAgICAgLi4uKHRoaXMub2Zmc2V0XG4gICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnb2Zmc2V0JyxcbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgOiBbXSksXG4gICAgICAgICAgLi4uKHRoaXMuYXJyb3dQYWRkaW5nXG4gICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnYXJyb3cnLFxuICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiB0aGlzLmFycm93UGFkZGluZyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgOiBbXSksXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgLy8gV2UgbmVlZCB0byB3YWl0IGZvciB0aGUgdG9vbHRpcCBjb250ZW50IHRvIGJlIHJlbmRlcmVkXG4gICAgICBuZXh0RnJhbWUoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuX2NvbXBvbmVudFJlZikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3BvcHBlcj8udXBkYXRlKCk7XG4gICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5fYW5pbWF0ZWRMaWZlY3ljbGU/LmVudGVyKCk7XG5cbiAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLl9hbmltYXRlZExpZmVjeWNsZT8uc3RhdGUkXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHMpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHMgPT09ICdlbnRlcmVkJykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FmdGVyT3BlbmVkPy5uZXh0KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgdW5tb3VudCgpIHtcbiAgICBpZiAoIXRoaXMuX2NvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2JlZm9yZUNsb3NlZD8ubmV4dCgpO1xuXG4gICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLl9hbmltYXRlZExpZmVjeWNsZT8ubGVhdmUoKTtcblxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5fYW5pbWF0ZWRMaWZlY3ljbGU/LnN0YXRlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigocykgPT4gcyA9PT0gJ2xlZnQnKSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fZGVzdHJveSgpKTtcbiAgfVxuXG4gIGJlZm9yZU9wZW5lZCgpIHtcbiAgICBpZiAoIXRoaXMuX2JlZm9yZU9wZW5lZCkge1xuICAgICAgdGhpcy5fYmVmb3JlT3BlbmVkID0gbmV3IFN1YmplY3QoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fYmVmb3JlT3BlbmVkO1xuICB9XG5cbiAgYWZ0ZXJPcGVuZWQoKSB7XG4gICAgaWYgKCF0aGlzLl9hZnRlck9wZW5lZCkge1xuICAgICAgdGhpcy5fYWZ0ZXJPcGVuZWQgPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9hZnRlck9wZW5lZDtcbiAgfVxuXG4gIGJlZm9yZUNsb3NlZCgpIHtcbiAgICBpZiAoIXRoaXMuX2JlZm9yZUNsb3NlZCkge1xuICAgICAgdGhpcy5fYmVmb3JlQ2xvc2VkID0gbmV3IFN1YmplY3QoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fYmVmb3JlQ2xvc2VkO1xuICB9XG5cbiAgYWZ0ZXJDbG9zZWQoKSB7XG4gICAgaWYgKCF0aGlzLl9hZnRlckNsb3NlZCkge1xuICAgICAgdGhpcy5fYWZ0ZXJDbG9zZWQgPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9hZnRlckNsb3NlZDtcbiAgfVxuXG4gIF9kZXN0cm95KCkge1xuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5fcG9wcGVyPy5kZXN0cm95KCk7XG4gICAgICB0aGlzLl9wb3BwZXIgPSBudWxsO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudFJlZikge1xuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5fYWZ0ZXJDbG9zZWQ/Lm5leHQoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './animated-overlay.directive';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvYW5pbWF0ZWQtb3ZlcmxheS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FuaW1hdGVkLW92ZXJsYXkuZGlyZWN0aXZlJztcbiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Directive, ElementRef, EventEmitter, inject, Output } from '@angular/core';
|
|
2
|
+
import { ClickObserverService } from '../../services';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
class ClickOutsideDirective {
|
|
5
|
+
constructor() {
|
|
6
|
+
this._elementRef = inject(ElementRef);
|
|
7
|
+
this._clickObserverService = inject(ClickObserverService);
|
|
8
|
+
this._subscription = null;
|
|
9
|
+
this.etClickOutside = new EventEmitter();
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
setTimeout(() => {
|
|
13
|
+
this._subscription = this._clickObserverService.observe(this._elementRef.nativeElement).subscribe((event) => {
|
|
14
|
+
const activeElement = event.target;
|
|
15
|
+
const isInside = this._elementRef.nativeElement.contains(activeElement);
|
|
16
|
+
if (!isInside) {
|
|
17
|
+
this.etClickOutside.emit(event);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
ngOnDestroy() {
|
|
23
|
+
this._subscription?.unsubscribe();
|
|
24
|
+
}
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
26
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: ClickOutsideDirective, isStandalone: true, selector: "[etClickOutside]", outputs: { etClickOutside: "etClickOutside" }, ngImport: i0 }); }
|
|
27
|
+
}
|
|
28
|
+
export { ClickOutsideDirective };
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ClickOutsideDirective, decorators: [{
|
|
30
|
+
type: Directive,
|
|
31
|
+
args: [{
|
|
32
|
+
selector: '[etClickOutside]',
|
|
33
|
+
standalone: true,
|
|
34
|
+
}]
|
|
35
|
+
}], propDecorators: { etClickOutside: [{
|
|
36
|
+
type: Output
|
|
37
|
+
}] } });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUvY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUV0RCxNQUlhLHFCQUFxQjtJQUpsQztRQUtVLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRXJELGtCQUFhLEdBQXdCLElBQUksQ0FBQztRQUdsRCxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7S0FrQmpEO0lBaEJDLFFBQVE7UUFDTixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQzFHLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO2dCQUNsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBRXhFLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ2IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2pDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzhHQXhCVSxxQkFBcUI7a0dBQXJCLHFCQUFxQjs7U0FBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQVFDLGNBQWM7c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2xpY2tPYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tldENsaWNrT3V0c2lkZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDbGlja091dHNpZGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgX2NsaWNrT2JzZXJ2ZXJTZXJ2aWNlID0gaW5qZWN0KENsaWNrT2JzZXJ2ZXJTZXJ2aWNlKTtcblxuICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIEBPdXRwdXQoKVxuICBldENsaWNrT3V0c2lkZSA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuX2NsaWNrT2JzZXJ2ZXJTZXJ2aWNlLm9ic2VydmUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGlzSW5zaWRlID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGFjdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgIGlmICghaXNJbnNpZGUpIHtcbiAgICAgICAgICB0aGlzLmV0Q2xpY2tPdXRzaWRlLmVtaXQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|