@ethlete/core 4.23.8 → 4.24.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.
- package/CHANGELOG.md +12 -0
- package/fesm2022/ethlete-core.mjs +131 -139
- package/fesm2022/ethlete-core.mjs.map +1 -1
- package/lib/types/angular.types.d.ts +0 -1
- package/lib/utils/signal.utils.d.ts +5 -0
- package/package.json +7 -9
- package/esm2022/ethlete-core.mjs +0 -5
- package/esm2022/index.mjs +0 -38
- package/esm2022/lib/components/structured-data/index.mjs +0 -2
- package/esm2022/lib/components/structured-data/structured-data.component.mjs +0 -37
- package/esm2022/lib/constants/index.mjs +0 -2
- package/esm2022/lib/constants/viewport.constants.mjs +0 -17
- package/esm2022/lib/decorators/memo/index.mjs +0 -2
- package/esm2022/lib/decorators/memo/memo.decorator.mjs +0 -25
- package/esm2022/lib/directives/animatable/animatable.directive.mjs +0 -121
- package/esm2022/lib/directives/animatable/index.mjs +0 -2
- package/esm2022/lib/directives/animated-if/animated-if.directive.mjs +0 -54
- package/esm2022/lib/directives/animated-if/index.mjs +0 -2
- package/esm2022/lib/directives/animated-lifecycle/animated-lifecycle.directive.mjs +0 -136
- package/esm2022/lib/directives/animated-lifecycle/index.mjs +0 -2
- package/esm2022/lib/directives/animated-overlay/animated-overlay.directive.mjs +0 -344
- package/esm2022/lib/directives/animated-overlay/index.mjs +0 -2
- package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +0 -37
- package/esm2022/lib/directives/click-outside/index.mjs +0 -2
- package/esm2022/lib/directives/cursor-drag-scroll/cursor-drag-scroll.constants.mjs +0 -3
- package/esm2022/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.mjs +0 -170
- package/esm2022/lib/directives/cursor-drag-scroll/index.mjs +0 -3
- package/esm2022/lib/directives/debug/debug.directive.mjs +0 -44
- package/esm2022/lib/directives/debug/index.mjs +0 -2
- package/esm2022/lib/directives/delayable/delayable.directive.mjs +0 -55
- package/esm2022/lib/directives/delayable/index.mjs +0 -2
- package/esm2022/lib/directives/is-active-element/index.mjs +0 -2
- package/esm2022/lib/directives/is-active-element/is-active-element.directive.mjs +0 -33
- package/esm2022/lib/directives/is-element/index.mjs +0 -2
- package/esm2022/lib/directives/is-element/is-element.directive.mjs +0 -33
- package/esm2022/lib/directives/let/index.mjs +0 -3
- package/esm2022/lib/directives/let/let.directive.mjs +0 -40
- package/esm2022/lib/directives/let/let.types.mjs +0 -9
- package/esm2022/lib/directives/observe-content/index.mjs +0 -2
- package/esm2022/lib/directives/observe-content/observe-content.directive.mjs +0 -72
- package/esm2022/lib/directives/observe-resize/index.mjs +0 -2
- package/esm2022/lib/directives/observe-resize/observe-resize.directive.mjs +0 -72
- package/esm2022/lib/directives/observe-scroll-state/index.mjs +0 -4
- package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.constants.mjs +0 -3
- package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.directive.mjs +0 -180
- package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.types.mjs +0 -2
- package/esm2022/lib/directives/observe-visibility/index.mjs +0 -2
- package/esm2022/lib/directives/observe-visibility/observe-visibility.directive.mjs +0 -80
- package/esm2022/lib/directives/repeat/index.mjs +0 -2
- package/esm2022/lib/directives/repeat/repeat.directive.mjs +0 -35
- package/esm2022/lib/directives/root-boundary/index.mjs +0 -2
- package/esm2022/lib/directives/root-boundary/root-boundary.directive.mjs +0 -36
- package/esm2022/lib/directives/scroll-observer-first-element/index.mjs +0 -2
- package/esm2022/lib/directives/scroll-observer-first-element/scroll-observer-first-element.directive.mjs +0 -24
- package/esm2022/lib/directives/scroll-observer-ignore-target/index.mjs +0 -2
- package/esm2022/lib/directives/scroll-observer-ignore-target/scroll-observer-ignore-target.directive.mjs +0 -18
- package/esm2022/lib/directives/scroll-observer-last-element/index.mjs +0 -2
- package/esm2022/lib/directives/scroll-observer-last-element/scroll-observer-last-element.directive.mjs +0 -27
- package/esm2022/lib/directives/seo/index.mjs +0 -5
- package/esm2022/lib/directives/seo/seo.directive.constants.mjs +0 -3
- package/esm2022/lib/directives/seo/seo.directive.mjs +0 -166
- package/esm2022/lib/directives/seo/seo.directive.types.mjs +0 -2
- package/esm2022/lib/directives/seo/seo.directive.utils.mjs +0 -7
- package/esm2022/lib/pipes/infer-mime-type/index.mjs +0 -3
- package/esm2022/lib/pipes/infer-mime-type/infer-mime-type.pipe.mjs +0 -18
- package/esm2022/lib/pipes/infer-mime-type/infer-mime-type.util.mjs +0 -196
- package/esm2022/lib/pipes/normalize-game-result-type/index.mjs +0 -4
- package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.pipe.mjs +0 -15
- package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.types.mjs +0 -2
- package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.util.mjs +0 -34
- package/esm2022/lib/pipes/normalize-match-participants/index.mjs +0 -4
- package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.pipe.mjs +0 -15
- package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.types.mjs +0 -2
- package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.util.mjs +0 -47
- package/esm2022/lib/pipes/normalize-match-score/index.mjs +0 -4
- package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.pipe.mjs +0 -15
- package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.types.mjs +0 -2
- package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.util.mjs +0 -126
- package/esm2022/lib/pipes/normalize-match-state/index.mjs +0 -4
- package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.constants.mjs +0 -2
- package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.pipe.mjs +0 -15
- package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.util.mjs +0 -19
- package/esm2022/lib/pipes/normalize-match-type/index.mjs +0 -3
- package/esm2022/lib/pipes/normalize-match-type/normalize-match-type.pipe.mjs +0 -15
- package/esm2022/lib/pipes/normalize-match-type/normalize-match-type.util.mjs +0 -38
- package/esm2022/lib/pipes/to-array/index.mjs +0 -3
- package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +0 -15
- package/esm2022/lib/pipes/to-array/to-array.util.mjs +0 -5
- package/esm2022/lib/props/create-prop-handlers.mjs +0 -17
- package/esm2022/lib/props/create-props.mjs +0 -53
- package/esm2022/lib/props/create-setup.mjs +0 -19
- package/esm2022/lib/props/dependency-stash.mjs +0 -20
- package/esm2022/lib/props/element-dictionary.mjs +0 -44
- package/esm2022/lib/props/index.mjs +0 -9
- package/esm2022/lib/props/props-binding.mjs +0 -53
- package/esm2022/lib/props/props.directive.mjs +0 -35
- package/esm2022/lib/props/template-input.mjs +0 -41
- package/esm2022/lib/services/click-observer.service.mjs +0 -73
- package/esm2022/lib/services/content-observer.service.mjs +0 -79
- package/esm2022/lib/services/focus-visible.service.mjs +0 -34
- package/esm2022/lib/services/index.mjs +0 -9
- package/esm2022/lib/services/intersection-observer.service.mjs +0 -75
- package/esm2022/lib/services/resize-observer.service.mjs +0 -75
- package/esm2022/lib/services/router-state.service.mjs +0 -205
- package/esm2022/lib/services/viewport.service.mjs +0 -244
- package/esm2022/lib/services/viewport.types.mjs +0 -2
- package/esm2022/lib/types/angular.types.mjs +0 -15
- package/esm2022/lib/types/i18n.types.mjs +0 -2
- package/esm2022/lib/types/index.mjs +0 -5
- package/esm2022/lib/types/value.types.mjs +0 -2
- package/esm2022/lib/types/viewport.types.mjs +0 -2
- package/esm2022/lib/utils/active-selection-model.utils.mjs +0 -91
- package/esm2022/lib/utils/angular.utils.mjs +0 -7
- package/esm2022/lib/utils/animation.utils.mjs +0 -113
- package/esm2022/lib/utils/clamp.util.mjs +0 -4
- package/esm2022/lib/utils/clone.util.mjs +0 -78
- package/esm2022/lib/utils/component-id.utils.mjs +0 -7
- package/esm2022/lib/utils/cookie.util.mjs +0 -53
- package/esm2022/lib/utils/destroy.utils.mjs +0 -13
- package/esm2022/lib/utils/equal.util.mjs +0 -118
- package/esm2022/lib/utils/form.utils.mjs +0 -63
- package/esm2022/lib/utils/index.mjs +0 -27
- package/esm2022/lib/utils/inject.utils.mjs +0 -4
- package/esm2022/lib/utils/intersection-observer.utils.mjs +0 -65
- package/esm2022/lib/utils/key-press-manager.utils.mjs +0 -30
- package/esm2022/lib/utils/media-query-observable.util.mjs +0 -18
- package/esm2022/lib/utils/mutation-observable.util.mjs +0 -42
- package/esm2022/lib/utils/object.utils.mjs +0 -30
- package/esm2022/lib/utils/reactive-binding.util.mjs +0 -124
- package/esm2022/lib/utils/resize-observable.util.mjs +0 -12
- package/esm2022/lib/utils/round.utils.mjs +0 -5
- package/esm2022/lib/utils/runtime-error.utils.mjs +0 -31
- package/esm2022/lib/utils/scrollable.utils.mjs +0 -157
- package/esm2022/lib/utils/selection-model.utils.mjs +0 -376
- package/esm2022/lib/utils/signal.utils.mjs +0 -1004
- package/esm2022/lib/utils/smart-block-scroll-strategy.utils.mjs +0 -96
- package/esm2022/lib/utils/value.utils.mjs +0 -22
- package/esm2022/lib/utils/viewport.util.mjs +0 -5
- package/esm2022/lib/validators/at-least-one-required.validator.mjs +0 -20
- package/esm2022/lib/validators/index.mjs +0 -15
- package/esm2022/lib/validators/is-array-not-empty.validator.mjs +0 -9
- package/esm2022/lib/validators/is-email.validator.mjs +0 -10
- package/esm2022/lib/validators/must-match.validator.mjs +0 -19
|
@@ -1,344 +0,0 @@
|
|
|
1
|
-
import { Overlay } from '@angular/cdk/overlay';
|
|
2
|
-
import { ComponentPortal } from '@angular/cdk/portal';
|
|
3
|
-
import { Directive, ElementRef, Injector, Input, NgZone, ViewContainerRef, booleanAttribute, inject, isDevMode, } from '@angular/core';
|
|
4
|
-
import { arrow, autoUpdate, computePosition, flip, hide, limitShift, offset, shift, size, } from '@floating-ui/dom';
|
|
5
|
-
import { BehaviorSubject, Subject, filter, take, takeUntil, tap } from 'rxjs';
|
|
6
|
-
import { ResizeObserverService } from '../../services';
|
|
7
|
-
import { createDestroy, nextFrame } from '../../utils';
|
|
8
|
-
import { RootBoundaryDirective } from '../root-boundary';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export class AnimatedOverlayDirective {
|
|
11
|
-
constructor() {
|
|
12
|
-
this._destroy$ = createDestroy();
|
|
13
|
-
this._overlayService = inject(Overlay);
|
|
14
|
-
this._injector = inject(Injector);
|
|
15
|
-
this._viewContainerRef = inject(ViewContainerRef);
|
|
16
|
-
this._zone = inject(NgZone);
|
|
17
|
-
this._elementRef = inject(ElementRef);
|
|
18
|
-
this._resizeObserverService = inject(ResizeObserverService);
|
|
19
|
-
this._rootBoundary = inject(RootBoundaryDirective, { optional: true });
|
|
20
|
-
this._portal = null;
|
|
21
|
-
this._overlayRef = null;
|
|
22
|
-
this._componentRef = null;
|
|
23
|
-
this._floatingElCleanupFn = null;
|
|
24
|
-
this._beforeOpened = null;
|
|
25
|
-
this._afterOpened = null;
|
|
26
|
-
this._beforeClosed = null;
|
|
27
|
-
this._afterClosed = null;
|
|
28
|
-
this._isMounted$ = new BehaviorSubject(false);
|
|
29
|
-
this._isMounting$ = new BehaviorSubject(false);
|
|
30
|
-
this._isUnmounting$ = new BehaviorSubject(false);
|
|
31
|
-
this._isHidden$ = new BehaviorSubject(false);
|
|
32
|
-
/**
|
|
33
|
-
* The placement of the animated overlay.
|
|
34
|
-
* @default undefined
|
|
35
|
-
*/
|
|
36
|
-
this.placement = 'bottom';
|
|
37
|
-
/**
|
|
38
|
-
* The offset of the animated overlay.
|
|
39
|
-
* @see https://floating-ui.com/docs/offset
|
|
40
|
-
*/
|
|
41
|
-
this.offset = null;
|
|
42
|
-
/**
|
|
43
|
-
* The arrow padding.
|
|
44
|
-
* @see https://floating-ui.com/docs/arrow#padding
|
|
45
|
-
* @default 4
|
|
46
|
-
*/
|
|
47
|
-
this.arrowPadding = 4;
|
|
48
|
-
/**
|
|
49
|
-
* The viewport padding.
|
|
50
|
-
* @default 8
|
|
51
|
-
*/
|
|
52
|
-
this.viewportPadding = 8;
|
|
53
|
-
/**
|
|
54
|
-
* Whether the animated overlay should auto resize to fit the available space.
|
|
55
|
-
* Useful for things like selects where the list of options might be longer than the available space.
|
|
56
|
-
* @default false
|
|
57
|
-
*/
|
|
58
|
-
this.autoResize = false;
|
|
59
|
-
/**
|
|
60
|
-
* Whether the animated overlay should shift when it is near the viewport boundary.
|
|
61
|
-
*/
|
|
62
|
-
this.shift = true;
|
|
63
|
-
/**
|
|
64
|
-
* Whether the animated overlay should auto hide when the reference element is hidden.
|
|
65
|
-
* @default false
|
|
66
|
-
*/
|
|
67
|
-
this.autoHide = false;
|
|
68
|
-
/**
|
|
69
|
-
* Whether the animated overlay should auto close if the reference element is hidden.
|
|
70
|
-
* @default false
|
|
71
|
-
*/
|
|
72
|
-
this.autoCloseIfReferenceHidden = false;
|
|
73
|
-
/**
|
|
74
|
-
* The reference element for the animated overlay.
|
|
75
|
-
* @default this._elementRef.nativeElement
|
|
76
|
-
*/
|
|
77
|
-
this.referenceElement = this._elementRef.nativeElement;
|
|
78
|
-
}
|
|
79
|
-
get isMounted() {
|
|
80
|
-
return this._isMounted$.value;
|
|
81
|
-
}
|
|
82
|
-
get isMounted$() {
|
|
83
|
-
return this._isMounted$.asObservable();
|
|
84
|
-
}
|
|
85
|
-
get isMounting() {
|
|
86
|
-
return this._isMounting$.value;
|
|
87
|
-
}
|
|
88
|
-
get isMounting$() {
|
|
89
|
-
return this._isMounting$.asObservable();
|
|
90
|
-
}
|
|
91
|
-
get isUnmounting() {
|
|
92
|
-
return this._isUnmounting$.value;
|
|
93
|
-
}
|
|
94
|
-
get isHidden$() {
|
|
95
|
-
return this._isHidden$.asObservable();
|
|
96
|
-
}
|
|
97
|
-
get isHidden() {
|
|
98
|
-
return this._isHidden$.value;
|
|
99
|
-
}
|
|
100
|
-
get canMount() {
|
|
101
|
-
return !this.isMounted && !this.isMounting;
|
|
102
|
-
}
|
|
103
|
-
get canUnmount() {
|
|
104
|
-
return this.isMounted && !this.isUnmounting;
|
|
105
|
-
}
|
|
106
|
-
get portal() {
|
|
107
|
-
return this._portal;
|
|
108
|
-
}
|
|
109
|
-
get overlayRef() {
|
|
110
|
-
return this._overlayRef;
|
|
111
|
-
}
|
|
112
|
-
get componentRef() {
|
|
113
|
-
return this._componentRef;
|
|
114
|
-
}
|
|
115
|
-
mount(config) {
|
|
116
|
-
if (this.isMounted || this.isMounting) {
|
|
117
|
-
if (isDevMode()) {
|
|
118
|
-
if (this.isMounted) {
|
|
119
|
-
console.warn('AnimatedOverlayDirective: The component is currently mounted. Please unmount the component before mounting again.');
|
|
120
|
-
}
|
|
121
|
-
if (this.isMounting) {
|
|
122
|
-
console.warn('AnimatedOverlayDirective: The component is already mounting. Please unmount the component before mounting again.');
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
this._isMounting$.next(true);
|
|
128
|
-
const { component, providers, data, mirrorWidth, themeProvider } = config;
|
|
129
|
-
this._beforeOpened?.next();
|
|
130
|
-
const injector = Injector.create({
|
|
131
|
-
parent: this._injector,
|
|
132
|
-
providers: providers ?? [],
|
|
133
|
-
});
|
|
134
|
-
this._overlayRef = this._overlayService.create();
|
|
135
|
-
this._portal = new ComponentPortal(component, this._viewContainerRef, injector);
|
|
136
|
-
this._componentRef = this._overlayRef.attach(this._portal);
|
|
137
|
-
if (data) {
|
|
138
|
-
Object.assign(this._componentRef.instance, data);
|
|
139
|
-
}
|
|
140
|
-
this._componentRef.instance._markForCheck?.();
|
|
141
|
-
if (themeProvider) {
|
|
142
|
-
this._componentRef.instance._setThemeFromProvider?.(themeProvider);
|
|
143
|
-
}
|
|
144
|
-
if (mirrorWidth) {
|
|
145
|
-
this._overlayRef.updateSize({
|
|
146
|
-
width: this._elementRef.nativeElement.offsetWidth,
|
|
147
|
-
});
|
|
148
|
-
this._resizeObserverService
|
|
149
|
-
.observe(this.referenceElement)
|
|
150
|
-
.pipe(tap(() => {
|
|
151
|
-
this._overlayRef?.updateSize({
|
|
152
|
-
width: this._elementRef.nativeElement.offsetWidth,
|
|
153
|
-
});
|
|
154
|
-
}), takeUntil(this._destroy$), takeUntil(this.afterClosed()))
|
|
155
|
-
.subscribe();
|
|
156
|
-
}
|
|
157
|
-
this._zone.runOutsideAngular(() => {
|
|
158
|
-
if (!this._componentRef) {
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
const floatingEl = this._componentRef.location.nativeElement;
|
|
162
|
-
const floatingElArrow = this._componentRef.instance._elementRef?.nativeElement.querySelector('[et-floating-arrow]');
|
|
163
|
-
floatingEl.classList.add('et-floating-element');
|
|
164
|
-
const refEl = this.referenceElement;
|
|
165
|
-
const boundary = this._rootBoundary?.boundaryElement ?? undefined;
|
|
166
|
-
this._floatingElCleanupFn = autoUpdate(refEl, floatingEl, () => {
|
|
167
|
-
if (!this._componentRef)
|
|
168
|
-
return;
|
|
169
|
-
computePosition(refEl, floatingEl, {
|
|
170
|
-
placement: this.placement,
|
|
171
|
-
middleware: [
|
|
172
|
-
...(this.offset ? [offset(this.offset)] : []),
|
|
173
|
-
flip({
|
|
174
|
-
fallbackPlacements: this.fallbackPlacements ?? undefined,
|
|
175
|
-
fallbackAxisSideDirection: 'start',
|
|
176
|
-
boundary,
|
|
177
|
-
}),
|
|
178
|
-
...(this.autoResize
|
|
179
|
-
? [
|
|
180
|
-
size({
|
|
181
|
-
padding: this.viewportPadding ?? undefined,
|
|
182
|
-
apply({ availableHeight, availableWidth }) {
|
|
183
|
-
floatingEl.style.setProperty('--et-floating-max-width', `${availableWidth}px`);
|
|
184
|
-
floatingEl.style.setProperty('--et-floating-max-height', `${availableHeight}px`);
|
|
185
|
-
},
|
|
186
|
-
}),
|
|
187
|
-
]
|
|
188
|
-
: []),
|
|
189
|
-
...(this.shift
|
|
190
|
-
? [shift({ limiter: limitShift(), padding: this.viewportPadding ?? undefined, boundary })]
|
|
191
|
-
: []),
|
|
192
|
-
...(floatingElArrow ? [arrow({ element: floatingElArrow, padding: this.arrowPadding ?? undefined })] : []),
|
|
193
|
-
...(this.autoHide || this.autoCloseIfReferenceHidden
|
|
194
|
-
? [hide({ strategy: 'referenceHidden', boundary })]
|
|
195
|
-
: []),
|
|
196
|
-
],
|
|
197
|
-
}).then(({ x, y, placement, middlewareData }) => {
|
|
198
|
-
floatingEl.style.setProperty('--et-floating-translate', `translate3d(${x}px, ${y}px, 0)`);
|
|
199
|
-
floatingEl.setAttribute('et-floating-placement', placement);
|
|
200
|
-
if (middlewareData.arrow && floatingElArrow) {
|
|
201
|
-
const { x: arrowX, y: arrowY } = middlewareData.arrow;
|
|
202
|
-
floatingEl.style.setProperty('--et-floating-arrow-translate', `translate3d(${arrowX ?? 0}px, ${arrowY ?? 0}px, 0)`);
|
|
203
|
-
}
|
|
204
|
-
if (middlewareData.hide?.referenceHidden) {
|
|
205
|
-
if (this.autoCloseIfReferenceHidden) {
|
|
206
|
-
this.unmount();
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
floatingEl.classList.add('et-floating-element--hidden');
|
|
210
|
-
this._isHidden$.next(true);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
else {
|
|
214
|
-
if (this.autoHide) {
|
|
215
|
-
floatingEl.classList.remove('et-floating-element--hidden');
|
|
216
|
-
this._isHidden$.next(false);
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
});
|
|
221
|
-
// We need to wait for the content to be rendered
|
|
222
|
-
nextFrame(() => {
|
|
223
|
-
if (!this._componentRef) {
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
226
|
-
if (!this._componentRef.instance._animatedLifecycle) {
|
|
227
|
-
console.error('AnimatedOverlayDirective: The component does not have an AnimatedLifecycleDirective. Please add one to the component.');
|
|
228
|
-
}
|
|
229
|
-
this._componentRef.instance._animatedLifecycle?.enter();
|
|
230
|
-
this._componentRef.instance._animatedLifecycle?.state$
|
|
231
|
-
.pipe(tap((s) => {
|
|
232
|
-
if (s === 'entered') {
|
|
233
|
-
this._afterOpened?.next();
|
|
234
|
-
}
|
|
235
|
-
}), take(1), takeUntil(this._destroy$))
|
|
236
|
-
.subscribe();
|
|
237
|
-
this._isMounted$.next(true);
|
|
238
|
-
this._isMounting$.next(false);
|
|
239
|
-
});
|
|
240
|
-
});
|
|
241
|
-
return this._componentRef.instance;
|
|
242
|
-
}
|
|
243
|
-
unmount() {
|
|
244
|
-
if (!this.isMounted || this.isUnmounting) {
|
|
245
|
-
if (isDevMode()) {
|
|
246
|
-
if (!this.isMounted) {
|
|
247
|
-
console.warn(`AnimatedOverlayDirective: The component is currently not mounted. Please call "mount" before calling "unmount" again.`);
|
|
248
|
-
}
|
|
249
|
-
if (this.isUnmounting) {
|
|
250
|
-
console.warn(`AnimatedOverlayDirective: The component is already unmounting. Please call "mount" before calling "unmount" again.`);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
return;
|
|
254
|
-
}
|
|
255
|
-
if (!this._componentRef) {
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
if (this.isHidden) {
|
|
259
|
-
return;
|
|
260
|
-
}
|
|
261
|
-
this._isUnmounting$.next(true);
|
|
262
|
-
this._beforeClosed?.next();
|
|
263
|
-
this._componentRef.instance._animatedLifecycle?.leave();
|
|
264
|
-
this._componentRef.instance._animatedLifecycle?.state$
|
|
265
|
-
.pipe(filter((s) => s === 'left'), take(1))
|
|
266
|
-
.subscribe(() => this._destroy());
|
|
267
|
-
}
|
|
268
|
-
beforeOpened() {
|
|
269
|
-
if (!this._beforeOpened) {
|
|
270
|
-
this._beforeOpened = new Subject();
|
|
271
|
-
}
|
|
272
|
-
return this._beforeOpened;
|
|
273
|
-
}
|
|
274
|
-
afterOpened() {
|
|
275
|
-
if (!this._afterOpened) {
|
|
276
|
-
this._afterOpened = new Subject();
|
|
277
|
-
}
|
|
278
|
-
return this._afterOpened;
|
|
279
|
-
}
|
|
280
|
-
beforeClosed() {
|
|
281
|
-
if (!this._beforeClosed) {
|
|
282
|
-
this._beforeClosed = new Subject();
|
|
283
|
-
}
|
|
284
|
-
return this._beforeClosed;
|
|
285
|
-
}
|
|
286
|
-
afterClosed() {
|
|
287
|
-
if (!this._afterClosed) {
|
|
288
|
-
this._afterClosed = new Subject();
|
|
289
|
-
}
|
|
290
|
-
return this._afterClosed;
|
|
291
|
-
}
|
|
292
|
-
_destroy() {
|
|
293
|
-
this._zone.runOutsideAngular(() => {
|
|
294
|
-
this._floatingElCleanupFn?.();
|
|
295
|
-
});
|
|
296
|
-
if (this._overlayRef) {
|
|
297
|
-
this._overlayRef.dispose();
|
|
298
|
-
this._overlayRef = null;
|
|
299
|
-
}
|
|
300
|
-
if (this._componentRef) {
|
|
301
|
-
this._componentRef.destroy();
|
|
302
|
-
this._componentRef = null;
|
|
303
|
-
}
|
|
304
|
-
this._isMounted$.next(false);
|
|
305
|
-
this._isUnmounting$.next(false);
|
|
306
|
-
this._afterClosed?.next();
|
|
307
|
-
}
|
|
308
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: AnimatedOverlayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
309
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.12", type: AnimatedOverlayDirective, isStandalone: true, inputs: { placement: "placement", fallbackPlacements: "fallbackPlacements", offset: "offset", arrowPadding: "arrowPadding", viewportPadding: "viewportPadding", autoResize: ["autoResize", "autoResize", booleanAttribute], shift: ["shift", "shift", booleanAttribute], autoHide: ["autoHide", "autoHide", booleanAttribute], autoCloseIfReferenceHidden: ["autoCloseIfReferenceHidden", "autoCloseIfReferenceHidden", booleanAttribute], referenceElement: "referenceElement" }, host: { classAttribute: "et-animated-overlay" }, ngImport: i0 }); }
|
|
310
|
-
}
|
|
311
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: AnimatedOverlayDirective, decorators: [{
|
|
312
|
-
type: Directive,
|
|
313
|
-
args: [{
|
|
314
|
-
standalone: true,
|
|
315
|
-
host: {
|
|
316
|
-
class: 'et-animated-overlay',
|
|
317
|
-
},
|
|
318
|
-
}]
|
|
319
|
-
}], propDecorators: { placement: [{
|
|
320
|
-
type: Input
|
|
321
|
-
}], fallbackPlacements: [{
|
|
322
|
-
type: Input
|
|
323
|
-
}], offset: [{
|
|
324
|
-
type: Input
|
|
325
|
-
}], arrowPadding: [{
|
|
326
|
-
type: Input
|
|
327
|
-
}], viewportPadding: [{
|
|
328
|
-
type: Input
|
|
329
|
-
}], autoResize: [{
|
|
330
|
-
type: Input,
|
|
331
|
-
args: [{ transform: booleanAttribute }]
|
|
332
|
-
}], shift: [{
|
|
333
|
-
type: Input,
|
|
334
|
-
args: [{ transform: booleanAttribute }]
|
|
335
|
-
}], autoHide: [{
|
|
336
|
-
type: Input,
|
|
337
|
-
args: [{ transform: booleanAttribute }]
|
|
338
|
-
}], autoCloseIfReferenceHidden: [{
|
|
339
|
-
type: Input,
|
|
340
|
-
args: [{ transform: booleanAttribute }]
|
|
341
|
-
}], referenceElement: [{
|
|
342
|
-
type: Input
|
|
343
|
-
}] } });
|
|
344
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0ZWQtb3ZlcmxheS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2FuaW1hdGVkLW92ZXJsYXkvYW5pbWF0ZWQtb3ZlcmxheS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEVBRU4sZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFJTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLGVBQWUsRUFDZixJQUFJLEVBQ0osSUFBSSxFQUNKLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLElBQUksR0FDTCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFlekQsTUFBTSxPQUFPLHdCQUF3QjtJQU5yQztRQU9tQixjQUFTLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDNUIsb0JBQWUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxR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QUFrQjtzQkFEakIsS0FBSztnQkFRTixNQUFNO3NCQURMLEtBQUs7Z0JBU04sWUFBWTtzQkFEWCxLQUFLO2dCQVFOLGVBQWU7c0JBRGQsS0FBSztnQkFTTixVQUFVO3NCQURULEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBT3RDLEtBQUs7c0JBREosS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRdEMsUUFBUTtzQkFEUCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVF0QywwQkFBMEI7c0JBRHpCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBUXRDLGdCQUFnQjtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50UmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBTdGF0aWNQcm92aWRlcixcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxuICBpc0Rldk1vZGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvdmlkZVRoZW1lRGlyZWN0aXZlIH0gZnJvbSAnQGV0aGxldGUvdGhlbWluZyc7XG5pbXBvcnQge1xuICBPZmZzZXRPcHRpb25zLFxuICBQYWRkaW5nLFxuICBQbGFjZW1lbnQsXG4gIGFycm93LFxuICBhdXRvVXBkYXRlLFxuICBjb21wdXRlUG9zaXRpb24sXG4gIGZsaXAsXG4gIGhpZGUsXG4gIGxpbWl0U2hpZnQsXG4gIG9mZnNldCxcbiAgc2hpZnQsXG4gIHNpemUsXG59IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBmaWx0ZXIsIHRha2UsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXNpemVPYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVEZXN0cm95LCBuZXh0RnJhbWUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBBbmltYXRlZExpZmVjeWNsZURpcmVjdGl2ZSB9IGZyb20gJy4uL2FuaW1hdGVkLWxpZmVjeWNsZSc7XG5pbXBvcnQgeyBSb290Qm91bmRhcnlEaXJlY3RpdmUgfSBmcm9tICcuLi9yb290LWJvdW5kYXJ5JztcblxuZXhwb3J0IGludGVyZmFjZSBBbmltYXRlZE92ZXJsYXlDb21wb25lbnRCYXNlIHtcbiAgX2VsZW1lbnRSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgX2FuaW1hdGVkTGlmZWN5Y2xlPzogQW5pbWF0ZWRMaWZlY3ljbGVEaXJlY3RpdmU7XG4gIF9tYXJrRm9yQ2hlY2s/OiAoKSA9PiB2b2lkO1xuICBfc2V0VGhlbWVGcm9tUHJvdmlkZXI/OiAocHJvdmlkZXI6IFByb3ZpZGVUaGVtZURpcmVjdGl2ZSkgPT4gdm9pZDtcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LWFuaW1hdGVkLW92ZXJsYXknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBBbmltYXRlZE92ZXJsYXlEaXJlY3RpdmU8VCBleHRlbmRzIEFuaW1hdGVkT3ZlcmxheUNvbXBvbmVudEJhc2U+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX292ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3pvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc2l6ZU9ic2VydmVyU2VydmljZSA9IGluamVjdChSZXNpemVPYnNlcnZlclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9yb290Qm91bmRhcnkgPSBpbmplY3QoUm9vdEJvdW5kYXJ5RGlyZWN0aXZlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHByaXZhdGUgX3BvcnRhbDogQ29tcG9uZW50UG9ydGFsPFQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfZmxvYXRpbmdFbENsZWFudXBGbjogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfYmVmb3JlT3BlbmVkOiBTdWJqZWN0PHZvaWQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2FmdGVyT3BlbmVkOiBTdWJqZWN0PHZvaWQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2JlZm9yZUNsb3NlZDogU3ViamVjdDx2b2lkPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9hZnRlckNsb3NlZDogU3ViamVjdDx2b2lkPiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2lzTW91bnRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNNb3VudGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNVbm1vdW50aW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc0hpZGRlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvKipcbiAgICogVGhlIHBsYWNlbWVudCBvZiB0aGUgYW5pbWF0ZWQgb3ZlcmxheS5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwbGFjZW1lbnQ/OiBQbGFjZW1lbnQgPSAnYm90dG9tJztcblxuICAvKipcbiAgICogVGhlIGFsbG93ZWQgYXV0byBwbGFjZW1lbnRzIG9mIHRoZSBhbmltYXRlZCBvdmVybGF5LlxuICAgKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvZmxpcCNmYWxsYmFja3BsYWNlbWVudHNcbiAgICovXG4gIEBJbnB1dCgpXG4gIGZhbGxiYWNrUGxhY2VtZW50cz86IFBsYWNlbWVudFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgb2Zmc2V0IG9mIHRoZSBhbmltYXRlZCBvdmVybGF5LlxuICAgKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvb2Zmc2V0XG4gICAqL1xuICBASW5wdXQoKVxuICBvZmZzZXQ6IE9mZnNldE9wdGlvbnMgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGhlIGFycm93IHBhZGRpbmcuXG4gICAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9hcnJvdyNwYWRkaW5nXG4gICAqIEBkZWZhdWx0IDRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGFycm93UGFkZGluZzogUGFkZGluZyB8IG51bGwgPSA0O1xuXG4gIC8qKlxuICAgKiBUaGUgdmlld3BvcnQgcGFkZGluZy5cbiAgICogQGRlZmF1bHQgOFxuICAgKi9cbiAgQElucHV0KClcbiAgdmlld3BvcnRQYWRkaW5nOiBQYWRkaW5nIHwgbnVsbCA9IDg7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFuaW1hdGVkIG92ZXJsYXkgc2hvdWxkIGF1dG8gcmVzaXplIHRvIGZpdCB0aGUgYXZhaWxhYmxlIHNwYWNlLlxuICAgKiBVc2VmdWwgZm9yIHRoaW5ncyBsaWtlIHNlbGVjdHMgd2hlcmUgdGhlIGxpc3Qgb2Ygb3B0aW9ucyBtaWdodCBiZSBsb25nZXIgdGhhbiB0aGUgYXZhaWxhYmxlIHNwYWNlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIGF1dG9SZXNpemUgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYW5pbWF0ZWQgb3ZlcmxheSBzaG91bGQgc2hpZnQgd2hlbiBpdCBpcyBuZWFyIHRoZSB2aWV3cG9ydCBib3VuZGFyeS5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBzaGlmdCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFuaW1hdGVkIG92ZXJsYXkgc2hvdWxkIGF1dG8gaGlkZSB3aGVuIHRoZSByZWZlcmVuY2UgZWxlbWVudCBpcyBoaWRkZW4uXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgYXV0b0hpZGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYW5pbWF0ZWQgb3ZlcmxheSBzaG91bGQgYXV0byBjbG9zZSBpZiB0aGUgcmVmZXJlbmNlIGVsZW1lbnQgaXMgaGlkZGVuLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIGF1dG9DbG9zZUlmUmVmZXJlbmNlSGlkZGVuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSByZWZlcmVuY2UgZWxlbWVudCBmb3IgdGhlIGFuaW1hdGVkIG92ZXJsYXkuXG4gICAqIEBkZWZhdWx0IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgKi9cbiAgQElucHV0KClcbiAgcmVmZXJlbmNlRWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICBnZXQgaXNNb3VudGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9pc01vdW50ZWQkLnZhbHVlO1xuICB9XG5cbiAgZ2V0IGlzTW91bnRlZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzTW91bnRlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgaXNNb3VudGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5faXNNb3VudGluZyQudmFsdWU7XG4gIH1cblxuICBnZXQgaXNNb3VudGluZyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzTW91bnRpbmckLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGlzVW5tb3VudGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5faXNVbm1vdW50aW5nJC52YWx1ZTtcbiAgfVxuXG4gIGdldCBpc0hpZGRlbiQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzSGlkZGVuJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBpc0hpZGRlbigpIHtcbiAgICByZXR1cm4gdGhpcy5faXNIaWRkZW4kLnZhbHVlO1xuICB9XG5cbiAgZ2V0IGNhbk1vdW50KCkge1xuICAgIHJldHVybiAhdGhpcy5pc01vdW50ZWQgJiYgIXRoaXMuaXNNb3VudGluZztcbiAgfVxuXG4gIGdldCBjYW5Vbm1vdW50KCkge1xuICAgIHJldHVybiB0aGlzLmlzTW91bnRlZCAmJiAhdGhpcy5pc1VubW91bnRpbmc7XG4gIH1cblxuICBnZXQgcG9ydGFsKCkge1xuICAgIHJldHVybiB0aGlzLl9wb3J0YWw7XG4gIH1cblxuICBnZXQgb3ZlcmxheVJlZigpIHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVJlZjtcbiAgfVxuXG4gIGdldCBjb21wb25lbnRSZWYoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbXBvbmVudFJlZjtcbiAgfVxuXG4gIG1vdW50KGNvbmZpZzoge1xuICAgIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPjtcbiAgICBwcm92aWRlcnM/OiBTdGF0aWNQcm92aWRlcltdO1xuICAgIGRhdGE/OiBQYXJ0aWFsPFQ+O1xuICAgIG1pcnJvcldpZHRoPzogYm9vbGVhbjtcbiAgICB0aGVtZVByb3ZpZGVyPzogUHJvdmlkZVRoZW1lRGlyZWN0aXZlIHwgbnVsbDtcbiAgfSkge1xuICAgIGlmICh0aGlzLmlzTW91bnRlZCB8fCB0aGlzLmlzTW91bnRpbmcpIHtcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICBpZiAodGhpcy5pc01vdW50ZWQpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAnQW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlOiBUaGUgY29tcG9uZW50IGlzIGN1cnJlbnRseSBtb3VudGVkLiBQbGVhc2UgdW5tb3VudCB0aGUgY29tcG9uZW50IGJlZm9yZSBtb3VudGluZyBhZ2Fpbi4nLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc01vdW50aW5nKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgJ0FuaW1hdGVkT3ZlcmxheURpcmVjdGl2ZTogVGhlIGNvbXBvbmVudCBpcyBhbHJlYWR5IG1vdW50aW5nLiBQbGVhc2UgdW5tb3VudCB0aGUgY29tcG9uZW50IGJlZm9yZSBtb3VudGluZyBhZ2Fpbi4nLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2lzTW91bnRpbmckLm5leHQodHJ1ZSk7XG5cbiAgICBjb25zdCB7IGNvbXBvbmVudCwgcHJvdmlkZXJzLCBkYXRhLCBtaXJyb3JXaWR0aCwgdGhlbWVQcm92aWRlciB9ID0gY29uZmlnO1xuXG4gICAgdGhpcy5fYmVmb3JlT3BlbmVkPy5uZXh0KCk7XG5cbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IHRoaXMuX2luamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiBwcm92aWRlcnMgPz8gW10sXG4gICAgfSk7XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheVNlcnZpY2UuY3JlYXRlKCk7XG5cbiAgICB0aGlzLl9wb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKGNvbXBvbmVudCwgdGhpcy5fdmlld0NvbnRhaW5lclJlZiwgaW5qZWN0b3IpO1xuICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG5cbiAgICBpZiAoZGF0YSkge1xuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UsIGRhdGEpO1xuICAgIH1cblxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5fbWFya0ZvckNoZWNrPy4oKTtcblxuICAgIGlmICh0aGVtZVByb3ZpZGVyKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UuX3NldFRoZW1lRnJvbVByb3ZpZGVyPy4odGhlbWVQcm92aWRlcik7XG4gICAgfVxuXG4gICAgaWYgKG1pcnJvcldpZHRoKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVNpemUoe1xuICAgICAgICB3aWR0aDogdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyU2VydmljZVxuICAgICAgICAub2JzZXJ2ZSh0aGlzLnJlZmVyZW5jZUVsZW1lbnQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5UmVmPy51cGRhdGVTaXplKHtcbiAgICAgICAgICAgICAgd2lkdGg6IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuYWZ0ZXJDbG9zZWQoKSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9jb21wb25lbnRSZWYpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmbG9hdGluZ0VsID0gdGhpcy5fY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBmbG9hdGluZ0VsQXJyb3cgPSB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UuX2VsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJ1tldC1mbG9hdGluZy1hcnJvd10nLFxuICAgICAgKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICAgIGZsb2F0aW5nRWwuY2xhc3NMaXN0LmFkZCgnZXQtZmxvYXRpbmctZWxlbWVudCcpO1xuXG4gICAgICBjb25zdCByZWZFbCA9IHRoaXMucmVmZXJlbmNlRWxlbWVudDtcbiAgICAgIGNvbnN0IGJvdW5kYXJ5ID0gdGhpcy5fcm9vdEJvdW5kYXJ5Py5ib3VuZGFyeUVsZW1lbnQgPz8gdW5kZWZpbmVkO1xuXG4gICAgICB0aGlzLl9mbG9hdGluZ0VsQ2xlYW51cEZuID0gYXV0b1VwZGF0ZShyZWZFbCwgZmxvYXRpbmdFbCwgKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuX2NvbXBvbmVudFJlZikgcmV0dXJuO1xuXG4gICAgICAgIGNvbXB1dGVQb3NpdGlvbihyZWZFbCwgZmxvYXRpbmdFbCwge1xuICAgICAgICAgIHBsYWNlbWVudDogdGhpcy5wbGFjZW1lbnQsXG5cbiAgICAgICAgICBtaWRkbGV3YXJlOiBbXG4gICAgICAgICAgICAuLi4odGhpcy5vZmZzZXQgPyBbb2Zmc2V0KHRoaXMub2Zmc2V0KV0gOiBbXSksXG4gICAgICAgICAgICBmbGlwKHtcbiAgICAgICAgICAgICAgZmFsbGJhY2tQbGFjZW1lbnRzOiB0aGlzLmZhbGxiYWNrUGxhY2VtZW50cyA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIGZhbGxiYWNrQXhpc1NpZGVEaXJlY3Rpb246ICdzdGFydCcsXG4gICAgICAgICAgICAgIGJvdW5kYXJ5LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAuLi4odGhpcy5hdXRvUmVzaXplXG4gICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgICAgc2l6ZSh7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHRoaXMudmlld3BvcnRQYWRkaW5nID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgYXBwbHkoeyBhdmFpbGFibGVIZWlnaHQsIGF2YWlsYWJsZVdpZHRoIH0pIHtcbiAgICAgICAgICAgICAgICAgICAgICBmbG9hdGluZ0VsLnN0eWxlLnNldFByb3BlcnR5KCctLWV0LWZsb2F0aW5nLW1heC13aWR0aCcsIGAke2F2YWlsYWJsZVdpZHRofXB4YCk7XG4gICAgICAgICAgICAgICAgICAgICAgZmxvYXRpbmdFbC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1ldC1mbG9hdGluZy1tYXgtaGVpZ2h0JywgYCR7YXZhaWxhYmxlSGVpZ2h0fXB4YCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIDogW10pLFxuICAgICAgICAgICAgLi4uKHRoaXMuc2hpZnRcbiAgICAgICAgICAgICAgPyBbc2hpZnQoeyBsaW1pdGVyOiBsaW1pdFNoaWZ0KCksIHBhZGRpbmc6IHRoaXMudmlld3BvcnRQYWRkaW5nID8/IHVuZGVmaW5lZCwgYm91bmRhcnkgfSldXG4gICAgICAgICAgICAgIDogW10pLFxuICAgICAgICAgICAgLi4uKGZsb2F0aW5nRWxBcnJvdyA/IFthcnJvdyh7IGVsZW1lbnQ6IGZsb2F0aW5nRWxBcnJvdywgcGFkZGluZzogdGhpcy5hcnJvd1BhZGRpbmcgPz8gdW5kZWZpbmVkIH0pXSA6IFtdKSxcbiAgICAgICAgICAgIC4uLih0aGlzLmF1dG9IaWRlIHx8IHRoaXMuYXV0b0Nsb3NlSWZSZWZlcmVuY2VIaWRkZW5cbiAgICAgICAgICAgICAgPyBbaGlkZSh7IHN0cmF0ZWd5OiAncmVmZXJlbmNlSGlkZGVuJywgYm91bmRhcnkgfSldXG4gICAgICAgICAgICAgIDogW10pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLnRoZW4oKHsgeCwgeSwgcGxhY2VtZW50LCBtaWRkbGV3YXJlRGF0YSB9KSA9PiB7XG4gICAgICAgICAgZmxvYXRpbmdFbC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1ldC1mbG9hdGluZy10cmFuc2xhdGUnLCBgdHJhbnNsYXRlM2QoJHt4fXB4LCAke3l9cHgsIDApYCk7XG4gICAgICAgICAgZmxvYXRpbmdFbC5zZXRBdHRyaWJ1dGUoJ2V0LWZsb2F0aW5nLXBsYWNlbWVudCcsIHBsYWNlbWVudCk7XG5cbiAgICAgICAgICBpZiAobWlkZGxld2FyZURhdGEuYXJyb3cgJiYgZmxvYXRpbmdFbEFycm93KSB7XG4gICAgICAgICAgICBjb25zdCB7IHg6IGFycm93WCwgeTogYXJyb3dZIH0gPSBtaWRkbGV3YXJlRGF0YS5hcnJvdztcblxuICAgICAgICAgICAgZmxvYXRpbmdFbC5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAgICAgJy0tZXQtZmxvYXRpbmctYXJyb3ctdHJhbnNsYXRlJyxcbiAgICAgICAgICAgICAgYHRyYW5zbGF0ZTNkKCR7YXJyb3dYID8/IDB9cHgsICR7YXJyb3dZID8/IDB9cHgsIDApYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG1pZGRsZXdhcmVEYXRhLmhpZGU/LnJlZmVyZW5jZUhpZGRlbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuYXV0b0Nsb3NlSWZSZWZlcmVuY2VIaWRkZW4pIHtcbiAgICAgICAgICAgICAgdGhpcy51bm1vdW50KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBmbG9hdGluZ0VsLmNsYXNzTGlzdC5hZGQoJ2V0LWZsb2F0aW5nLWVsZW1lbnQtLWhpZGRlbicpO1xuICAgICAgICAgICAgICB0aGlzLl9pc0hpZGRlbiQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuYXV0b0hpZGUpIHtcbiAgICAgICAgICAgICAgZmxvYXRpbmdFbC5jbGFzc0xpc3QucmVtb3ZlKCdldC1mbG9hdGluZy1lbGVtZW50LS1oaWRkZW4nKTtcbiAgICAgICAgICAgICAgdGhpcy5faXNIaWRkZW4kLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgLy8gV2UgbmVlZCB0byB3YWl0IGZvciB0aGUgIGNvbnRlbnQgdG8gYmUgcmVuZGVyZWRcbiAgICAgIG5leHRGcmFtZSgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5fY29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UuX2FuaW1hdGVkTGlmZWN5Y2xlKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICdBbmltYXRlZE92ZXJsYXlEaXJlY3RpdmU6IFRoZSBjb21wb25lbnQgZG9lcyBub3QgaGF2ZSBhbiBBbmltYXRlZExpZmVjeWNsZURpcmVjdGl2ZS4gUGxlYXNlIGFkZCBvbmUgdG8gdGhlIGNvbXBvbmVudC4nLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UuX2FuaW1hdGVkTGlmZWN5Y2xlPy5lbnRlcigpO1xuXG4gICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5fYW5pbWF0ZWRMaWZlY3ljbGU/LnN0YXRlJFxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgdGFwKChzKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChzID09PSAnZW50ZXJlZCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZnRlck9wZW5lZD8ubmV4dCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgdGhpcy5faXNNb3VudGVkJC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLl9pc01vdW50aW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgfVxuXG4gIHVubW91bnQoKSB7XG4gICAgaWYgKCF0aGlzLmlzTW91bnRlZCB8fCB0aGlzLmlzVW5tb3VudGluZykge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGlmICghdGhpcy5pc01vdW50ZWQpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgQW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlOiBUaGUgY29tcG9uZW50IGlzIGN1cnJlbnRseSBub3QgbW91bnRlZC4gUGxlYXNlIGNhbGwgXCJtb3VudFwiIGJlZm9yZSBjYWxsaW5nIFwidW5tb3VudFwiIGFnYWluLmAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzVW5tb3VudGluZykge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBBbmltYXRlZE92ZXJsYXlEaXJlY3RpdmU6IFRoZSBjb21wb25lbnQgaXMgYWxyZWFkeSB1bm1vdW50aW5nLiBQbGVhc2UgY2FsbCBcIm1vdW50XCIgYmVmb3JlIGNhbGxpbmcgXCJ1bm1vdW50XCIgYWdhaW4uYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX2NvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzSGlkZGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5faXNVbm1vdW50aW5nJC5uZXh0KHRydWUpO1xuXG4gICAgdGhpcy5fYmVmb3JlQ2xvc2VkPy5uZXh0KCk7XG5cbiAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UuX2FuaW1hdGVkTGlmZWN5Y2xlPy5sZWF2ZSgpO1xuXG4gICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLl9hbmltYXRlZExpZmVjeWNsZT8uc3RhdGUkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChzKSA9PiBzID09PSAnbGVmdCcpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9kZXN0cm95KCkpO1xuICB9XG5cbiAgYmVmb3JlT3BlbmVkKCkge1xuICAgIGlmICghdGhpcy5fYmVmb3JlT3BlbmVkKSB7XG4gICAgICB0aGlzLl9iZWZvcmVPcGVuZWQgPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9iZWZvcmVPcGVuZWQ7XG4gIH1cblxuICBhZnRlck9wZW5lZCgpIHtcbiAgICBpZiAoIXRoaXMuX2FmdGVyT3BlbmVkKSB7XG4gICAgICB0aGlzLl9hZnRlck9wZW5lZCA9IG5ldyBTdWJqZWN0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2FmdGVyT3BlbmVkO1xuICB9XG5cbiAgYmVmb3JlQ2xvc2VkKCkge1xuICAgIGlmICghdGhpcy5fYmVmb3JlQ2xvc2VkKSB7XG4gICAgICB0aGlzLl9iZWZvcmVDbG9zZWQgPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9iZWZvcmVDbG9zZWQ7XG4gIH1cblxuICBhZnRlckNsb3NlZCgpIHtcbiAgICBpZiAoIXRoaXMuX2FmdGVyQ2xvc2VkKSB7XG4gICAgICB0aGlzLl9hZnRlckNsb3NlZCA9IG5ldyBTdWJqZWN0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2FmdGVyQ2xvc2VkO1xuICB9XG5cbiAgX2Rlc3Ryb3koKSB7XG4gICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLl9mbG9hdGluZ0VsQ2xlYW51cEZuPy4oKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuX2lzTW91bnRlZCQubmV4dChmYWxzZSk7XG4gICAgdGhpcy5faXNVbm1vdW50aW5nJC5uZXh0KGZhbHNlKTtcblxuICAgIHRoaXMuX2FmdGVyQ2xvc2VkPy5uZXh0KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './animated-overlay.directive';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2FuaW1hdGVkLW92ZXJsYXkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYW5pbWF0ZWQtb3ZlcmxheS5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, EventEmitter, inject, Output } from '@angular/core';
|
|
2
|
-
import { ClickObserverService } from '../../services';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export 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: "18.2.12", ngImport: i0, type: ClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
26
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: ClickOutsideDirective, isStandalone: true, selector: "[etClickOutside]", outputs: { etClickOutside: "etClickOutside" }, ngImport: i0 }); }
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ClickOutsideDirective, decorators: [{
|
|
29
|
-
type: Directive,
|
|
30
|
-
args: [{
|
|
31
|
-
selector: '[etClickOutside]',
|
|
32
|
-
standalone: true,
|
|
33
|
-
}]
|
|
34
|
-
}], propDecorators: { etClickOutside: [{
|
|
35
|
-
type: Output
|
|
36
|
-
}] } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUvY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU10RCxNQUFNLE9BQU8scUJBQXFCO0lBSmxDO1FBS1UsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMsMEJBQXFCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFckQsa0JBQWEsR0FBd0IsSUFBSSxDQUFDO1FBR2xELG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztLQWtCakQ7SUFoQkMsUUFBUTtRQUNOLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDMUcsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7Z0JBQ2xELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFFeEUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNsQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDOytHQXhCVSxxQkFBcUI7bUdBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBUUMsY0FBYztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDbGlja09ic2VydmVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2V0Q2xpY2tPdXRzaWRlXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENsaWNrT3V0c2lkZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSBfY2xpY2tPYnNlcnZlclNlcnZpY2UgPSBpbmplY3QoQ2xpY2tPYnNlcnZlclNlcnZpY2UpO1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgQE91dHB1dCgpXG4gIGV0Q2xpY2tPdXRzaWRlID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5fY2xpY2tPYnNlcnZlclNlcnZpY2Uub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgaXNJbnNpZGUgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoYWN0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgaWYgKCFpc0luc2lkZSkge1xuICAgICAgICAgIHRoaXMuZXRDbGlja091dHNpZGUuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './click-outside.directive';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export const CURSOR_DRAG_SCROLLING_CLASS = 'et-cursor-drag-scroll--scrolling';
|
|
2
|
-
export const CURSOR_DRAG_SCROLLING_PREPARED_CLASS = 'et-cursor-drag-scroll--prepared';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Vyc29yLWRyYWctc2Nyb2xsLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvY3Vyc29yLWRyYWctc2Nyb2xsL2N1cnNvci1kcmFnLXNjcm9sbC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsa0NBQWtDLENBQUM7QUFDOUUsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQ1VSU09SX0RSQUdfU0NST0xMSU5HX0NMQVNTID0gJ2V0LWN1cnNvci1kcmFnLXNjcm9sbC0tc2Nyb2xsaW5nJztcbmV4cG9ydCBjb25zdCBDVVJTT1JfRFJBR19TQ1JPTExJTkdfUFJFUEFSRURfQ0xBU1MgPSAnZXQtY3Vyc29yLWRyYWctc2Nyb2xsLS1wcmVwYXJlZCc7XG4iXX0=
|