@ethlete/core 4.23.8 → 4.24.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/CHANGELOG.md +6 -0
- package/fesm2022/ethlete-core.mjs +130 -138
- package/fesm2022/ethlete-core.mjs.map +1 -1
- package/lib/types/angular.types.d.ts +0 -1
- 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,96 +0,0 @@
|
|
|
1
|
-
import { coerceCssPixelValue } from '@angular/cdk/coercion';
|
|
2
|
-
import { supportsScrollBehavior } from '@angular/cdk/platform';
|
|
3
|
-
import { ViewportRuler } from '@angular/cdk/scrolling';
|
|
4
|
-
import { DOCUMENT } from '@angular/common';
|
|
5
|
-
import { inject } from '@angular/core';
|
|
6
|
-
import { skip, startWith, take, tap } from 'rxjs';
|
|
7
|
-
import { RouterStateService } from '../services';
|
|
8
|
-
import { createResizeObservable } from './resize-observable.util';
|
|
9
|
-
import { elementCanScroll } from './scrollable.utils';
|
|
10
|
-
const scrollBehaviorSupported = supportsScrollBehavior();
|
|
11
|
-
const BLOCK_CLASS = 'cdk-global-scrollblock';
|
|
12
|
-
const OVERSCROLL_CLASS = 'et-global-no-overscroll';
|
|
13
|
-
/**
|
|
14
|
-
* @deprecated Will be removed in v5. Scroll blocking for overlays is build in by default.
|
|
15
|
-
*/
|
|
16
|
-
export class SmartBlockScrollStrategy {
|
|
17
|
-
constructor() {
|
|
18
|
-
this._previousHTMLStyles = { top: '', left: '' };
|
|
19
|
-
this._previousScrollPosition = { top: 0, left: 0 };
|
|
20
|
-
this._isEnabled = false;
|
|
21
|
-
this._urlSubscription = null;
|
|
22
|
-
this._resizeSubscription = null;
|
|
23
|
-
this._didNavigate = false;
|
|
24
|
-
this.#viewportRuler = inject(ViewportRuler);
|
|
25
|
-
this.#routerState = inject(RouterStateService);
|
|
26
|
-
this.#document = inject(DOCUMENT);
|
|
27
|
-
}
|
|
28
|
-
#viewportRuler;
|
|
29
|
-
#routerState;
|
|
30
|
-
#document;
|
|
31
|
-
attach() {
|
|
32
|
-
// noop
|
|
33
|
-
}
|
|
34
|
-
enable() {
|
|
35
|
-
if (!this._canBeEnabled())
|
|
36
|
-
return;
|
|
37
|
-
const root = this.#document.documentElement;
|
|
38
|
-
root.classList.add(OVERSCROLL_CLASS);
|
|
39
|
-
this._resizeSubscription = createResizeObservable({ elements: root })
|
|
40
|
-
.pipe(startWith(null), tap(() => {
|
|
41
|
-
if (this._isEnabled || !elementCanScroll(root) || !this._canBeEnabled())
|
|
42
|
-
return;
|
|
43
|
-
this._isEnabled = true;
|
|
44
|
-
this._previousScrollPosition = this.#viewportRuler.getViewportScrollPosition();
|
|
45
|
-
this._didNavigate = false;
|
|
46
|
-
this._previousHTMLStyles.left = root.style.left || '';
|
|
47
|
-
this._previousHTMLStyles.top = root.style.top || '';
|
|
48
|
-
root.style.left = coerceCssPixelValue(-this._previousScrollPosition.left);
|
|
49
|
-
root.style.top = coerceCssPixelValue(-this._previousScrollPosition.top);
|
|
50
|
-
root.classList.add(BLOCK_CLASS);
|
|
51
|
-
this._urlSubscription = this.#routerState.route$
|
|
52
|
-
.pipe(skip(1), take(1), tap(() => {
|
|
53
|
-
this._didNavigate = true;
|
|
54
|
-
}))
|
|
55
|
-
.subscribe();
|
|
56
|
-
}))
|
|
57
|
-
.subscribe();
|
|
58
|
-
}
|
|
59
|
-
disable() {
|
|
60
|
-
this._urlSubscription?.unsubscribe();
|
|
61
|
-
this._resizeSubscription?.unsubscribe();
|
|
62
|
-
const html = this.#document.documentElement;
|
|
63
|
-
if (this._canBeEnabled()) {
|
|
64
|
-
html.classList.remove(OVERSCROLL_CLASS);
|
|
65
|
-
}
|
|
66
|
-
if (this._isEnabled) {
|
|
67
|
-
const body = this.#document.body;
|
|
68
|
-
const htmlStyle = html.style;
|
|
69
|
-
const bodyStyle = body.style;
|
|
70
|
-
const previousHtmlScrollBehavior = htmlStyle.scrollBehavior || '';
|
|
71
|
-
const previousBodyScrollBehavior = bodyStyle.scrollBehavior || '';
|
|
72
|
-
this._isEnabled = false;
|
|
73
|
-
htmlStyle.left = this._previousHTMLStyles.left;
|
|
74
|
-
htmlStyle.top = this._previousHTMLStyles.top;
|
|
75
|
-
html.classList.remove(BLOCK_CLASS);
|
|
76
|
-
if (scrollBehaviorSupported) {
|
|
77
|
-
htmlStyle.scrollBehavior = bodyStyle.scrollBehavior = 'auto';
|
|
78
|
-
}
|
|
79
|
-
if (!this._didNavigate) {
|
|
80
|
-
window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top);
|
|
81
|
-
}
|
|
82
|
-
if (scrollBehaviorSupported) {
|
|
83
|
-
htmlStyle.scrollBehavior = previousHtmlScrollBehavior;
|
|
84
|
-
bodyStyle.scrollBehavior = previousBodyScrollBehavior;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
_canBeEnabled() {
|
|
89
|
-
const html = this.#document.documentElement;
|
|
90
|
-
if (html.classList.contains(BLOCK_CLASS) || this._isEnabled) {
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYmxvY2stc2Nyb2xsLXN0cmF0ZWd5LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvc21hcnQtYmxvY2stc2Nyb2xsLXN0cmF0ZWd5LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBZ0IsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsTUFBTSx1QkFBdUIsR0FBRyxzQkFBc0IsRUFBRSxDQUFDO0FBRXpELE1BQU0sV0FBVyxHQUFHLHdCQUF3QixDQUFDO0FBQzdDLE1BQU0sZ0JBQWdCLEdBQUcseUJBQXlCLENBQUM7QUFFbkQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sd0JBQXdCO0lBQXJDO1FBQ1Usd0JBQW1CLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUM1Qyw0QkFBdUIsR0FBa0MsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUM3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QUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1RCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUNzc1BpeGVsVmFsdWUgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBzdXBwb3J0c1Njcm9sbEJlaGF2aW9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7IFZpZXdwb3J0UnVsZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2tpcCwgc3RhcnRXaXRoLCBTdWJzY3JpcHRpb24sIHRha2UsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUm91dGVyU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgY3JlYXRlUmVzaXplT2JzZXJ2YWJsZSB9IGZyb20gJy4vcmVzaXplLW9ic2VydmFibGUudXRpbCc7XG5pbXBvcnQgeyBlbGVtZW50Q2FuU2Nyb2xsIH0gZnJvbSAnLi9zY3JvbGxhYmxlLnV0aWxzJztcblxuY29uc3Qgc2Nyb2xsQmVoYXZpb3JTdXBwb3J0ZWQgPSBzdXBwb3J0c1Njcm9sbEJlaGF2aW9yKCk7XG5cbmNvbnN0IEJMT0NLX0NMQVNTID0gJ2Nkay1nbG9iYWwtc2Nyb2xsYmxvY2snO1xuY29uc3QgT1ZFUlNDUk9MTF9DTEFTUyA9ICdldC1nbG9iYWwtbm8tb3ZlcnNjcm9sbCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkIGluIHY1LiBTY3JvbGwgYmxvY2tpbmcgZm9yIG92ZXJsYXlzIGlzIGJ1aWxkIGluIGJ5IGRlZmF1bHQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTbWFydEJsb2NrU2Nyb2xsU3RyYXRlZ3kgaW1wbGVtZW50cyBTY3JvbGxTdHJhdGVneSB7XG4gIHByaXZhdGUgX3ByZXZpb3VzSFRNTFN0eWxlcyA9IHsgdG9wOiAnJywgbGVmdDogJycgfTtcbiAgcHJpdmF0ZSBfcHJldmlvdXNTY3JvbGxQb3NpdGlvbjogeyB0b3A6IG51bWJlcjsgbGVmdDogbnVtYmVyIH0gPSB7IHRvcDogMCwgbGVmdDogMCB9O1xuICBwcml2YXRlIF9pc0VuYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdXJsU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfcmVzaXplU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfZGlkTmF2aWdhdGUgPSBmYWxzZTtcblxuICAjdmlld3BvcnRSdWxlciA9IGluamVjdChWaWV3cG9ydFJ1bGVyKTtcbiAgI3JvdXRlclN0YXRlID0gaW5qZWN0KFJvdXRlclN0YXRlU2VydmljZSk7XG4gICNkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG5cbiAgYXR0YWNoKCkge1xuICAgIC8vIG5vb3BcbiAgfVxuXG4gIGVuYWJsZSgpIHtcbiAgICBpZiAoIXRoaXMuX2NhbkJlRW5hYmxlZCgpKSByZXR1cm47XG5cbiAgICBjb25zdCByb290ID0gdGhpcy4jZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgIHJvb3QuY2xhc3NMaXN0LmFkZChPVkVSU0NST0xMX0NMQVNTKTtcblxuICAgIHRoaXMuX3Jlc2l6ZVN1YnNjcmlwdGlvbiA9IGNyZWF0ZVJlc2l6ZU9ic2VydmFibGUoeyBlbGVtZW50czogcm9vdCB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5faXNFbmFibGVkIHx8ICFlbGVtZW50Q2FuU2Nyb2xsKHJvb3QpIHx8ICF0aGlzLl9jYW5CZUVuYWJsZWQoKSkgcmV0dXJuO1xuXG4gICAgICAgICAgdGhpcy5faXNFbmFibGVkID0gdHJ1ZTtcblxuICAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2Nyb2xsUG9zaXRpb24gPSB0aGlzLiN2aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKTtcbiAgICAgICAgICB0aGlzLl9kaWROYXZpZ2F0ZSA9IGZhbHNlO1xuXG4gICAgICAgICAgdGhpcy5fcHJldmlvdXNIVE1MU3R5bGVzLmxlZnQgPSByb290LnN0eWxlLmxlZnQgfHwgJyc7XG4gICAgICAgICAgdGhpcy5fcHJldmlvdXNIVE1MU3R5bGVzLnRvcCA9IHJvb3Quc3R5bGUudG9wIHx8ICcnO1xuXG4gICAgICAgICAgcm9vdC5zdHlsZS5sZWZ0ID0gY29lcmNlQ3NzUGl4ZWxWYWx1ZSgtdGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbi5sZWZ0KTtcbiAgICAgICAgICByb290LnN0eWxlLnRvcCA9IGNvZXJjZUNzc1BpeGVsVmFsdWUoLXRoaXMuX3ByZXZpb3VzU2Nyb2xsUG9zaXRpb24udG9wKTtcbiAgICAgICAgICByb290LmNsYXNzTGlzdC5hZGQoQkxPQ0tfQ0xBU1MpO1xuXG4gICAgICAgICAgdGhpcy5fdXJsU3Vic2NyaXB0aW9uID0gdGhpcy4jcm91dGVyU3RhdGUucm91dGUkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kaWROYXZpZ2F0ZSA9IHRydWU7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGRpc2FibGUoKSB7XG4gICAgdGhpcy5fdXJsU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX3Jlc2l6ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICBjb25zdCBodG1sID0gdGhpcy4jZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMuX2NhbkJlRW5hYmxlZCgpKSB7XG4gICAgICBodG1sLmNsYXNzTGlzdC5yZW1vdmUoT1ZFUlNDUk9MTF9DTEFTUyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2lzRW5hYmxlZCkge1xuICAgICAgY29uc3QgYm9keSA9IHRoaXMuI2RvY3VtZW50LmJvZHk7XG4gICAgICBjb25zdCBodG1sU3R5bGUgPSBodG1sLnN0eWxlO1xuICAgICAgY29uc3QgYm9keVN0eWxlID0gYm9keS5zdHlsZTtcbiAgICAgIGNvbnN0IHByZXZpb3VzSHRtbFNjcm9sbEJlaGF2aW9yID0gaHRtbFN0eWxlLnNjcm9sbEJlaGF2aW9yIHx8ICcnO1xuICAgICAgY29uc3QgcHJldmlvdXNCb2R5U2Nyb2xsQmVoYXZpb3IgPSBib2R5U3R5bGUuc2Nyb2xsQmVoYXZpb3IgfHwgJyc7XG5cbiAgICAgIHRoaXMuX2lzRW5hYmxlZCA9IGZhbHNlO1xuXG4gICAgICBodG1sU3R5bGUubGVmdCA9IHRoaXMuX3ByZXZpb3VzSFRNTFN0eWxlcy5sZWZ0O1xuICAgICAgaHRtbFN0eWxlLnRvcCA9IHRoaXMuX3ByZXZpb3VzSFRNTFN0eWxlcy50b3A7XG4gICAgICBodG1sLmNsYXNzTGlzdC5yZW1vdmUoQkxPQ0tfQ0xBU1MpO1xuXG4gICAgICBpZiAoc2Nyb2xsQmVoYXZpb3JTdXBwb3J0ZWQpIHtcbiAgICAgICAgaHRtbFN0eWxlLnNjcm9sbEJlaGF2aW9yID0gYm9keVN0eWxlLnNjcm9sbEJlaGF2aW9yID0gJ2F1dG8nO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuX2RpZE5hdmlnYXRlKSB7XG4gICAgICAgIHdpbmRvdy5zY3JvbGwodGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbi5sZWZ0LCB0aGlzLl9wcmV2aW91c1Njcm9sbFBvc2l0aW9uLnRvcCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzY3JvbGxCZWhhdmlvclN1cHBvcnRlZCkge1xuICAgICAgICBodG1sU3R5bGUuc2Nyb2xsQmVoYXZpb3IgPSBwcmV2aW91c0h0bWxTY3JvbGxCZWhhdmlvcjtcbiAgICAgICAgYm9keVN0eWxlLnNjcm9sbEJlaGF2aW9yID0gcHJldmlvdXNCb2R5U2Nyb2xsQmVoYXZpb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2FuQmVFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGh0bWwgPSB0aGlzLiNkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgICBpZiAoaHRtbC5jbGFzc0xpc3QuY29udGFpbnMoQkxPQ0tfQ0xBU1MpIHx8IHRoaXMuX2lzRW5hYmxlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export const isPrimitiveArray = (value) => {
|
|
2
|
-
if (!Array.isArray(value))
|
|
3
|
-
return false;
|
|
4
|
-
const first = value[0];
|
|
5
|
-
const last = value[value.length - 1];
|
|
6
|
-
if (!first || !last)
|
|
7
|
-
return false;
|
|
8
|
-
return typeof first !== 'object' && typeof last !== 'object';
|
|
9
|
-
};
|
|
10
|
-
export const isObjectArray = (value) => {
|
|
11
|
-
if (!Array.isArray(value))
|
|
12
|
-
return false;
|
|
13
|
-
const first = value[0];
|
|
14
|
-
const last = value[value.length - 1];
|
|
15
|
-
if (!first || !last)
|
|
16
|
-
return false;
|
|
17
|
-
return typeof first === 'object' && typeof last === 'object' && !Array.isArray(first) && !Array.isArray(last);
|
|
18
|
-
};
|
|
19
|
-
export const isEmptyArray = (value) => {
|
|
20
|
-
return Array.isArray(value) && value.length === 0;
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy92YWx1ZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQWMsRUFBNkIsRUFBRTtJQUM1RSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUV4QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFckMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUVsQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLENBQUM7QUFDL0QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBYyxFQUEyQyxFQUFFO0lBQ3ZGLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRXhDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUVyQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRWxDLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQWMsRUFBZSxFQUFFO0lBQzFELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUNwRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBpc1ByaW1pdGl2ZUFycmF5ID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgQXJyYXk8UHJpbWl0aXZlPiA9PiB7XG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiBmYWxzZTtcblxuICBjb25zdCBmaXJzdCA9IHZhbHVlWzBdO1xuICBjb25zdCBsYXN0ID0gdmFsdWVbdmFsdWUubGVuZ3RoIC0gMV07XG5cbiAgaWYgKCFmaXJzdCB8fCAhbGFzdCkgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiB0eXBlb2YgZmlyc3QgIT09ICdvYmplY3QnICYmIHR5cGVvZiBsYXN0ICE9PSAnb2JqZWN0Jztcbn07XG5cbmV4cG9ydCBjb25zdCBpc09iamVjdEFycmF5ID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgQXJyYXk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0+IHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkgcmV0dXJuIGZhbHNlO1xuXG4gIGNvbnN0IGZpcnN0ID0gdmFsdWVbMF07XG4gIGNvbnN0IGxhc3QgPSB2YWx1ZVt2YWx1ZS5sZW5ndGggLSAxXTtcblxuICBpZiAoIWZpcnN0IHx8ICFsYXN0KSByZXR1cm4gZmFsc2U7XG5cbiAgcmV0dXJuIHR5cGVvZiBmaXJzdCA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIGxhc3QgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGZpcnN0KSAmJiAhQXJyYXkuaXNBcnJheShsYXN0KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0VtcHR5QXJyYXkgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBbXSA9PiB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDA7XG59O1xuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { VIEWPORT_CONFIG } from '../constants';
|
|
2
|
-
export const provideViewportConfig = (viewportConfig) => {
|
|
3
|
-
return { provide: VIEWPORT_CONFIG, useValue: viewportConfig };
|
|
4
|
-
};
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3ZpZXdwb3J0LnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUNuQyxjQUE4QixFQUN3QyxFQUFFO0lBQ3hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQztBQUNoRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWSUVXUE9SVF9DT05GSUcgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVmlld3BvcnRDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBwcm92aWRlVmlld3BvcnRDb25maWcgPSAoXG4gIHZpZXdwb3J0Q29uZmlnOiBWaWV3cG9ydENvbmZpZyxcbik6IHsgcHJvdmlkZTogdHlwZW9mIFZJRVdQT1JUX0NPTkZJRzsgdXNlVmFsdWU6IHR5cGVvZiB2aWV3cG9ydENvbmZpZyB9ID0+IHtcbiAgcmV0dXJuIHsgcHJvdmlkZTogVklFV1BPUlRfQ09ORklHLCB1c2VWYWx1ZTogdmlld3BvcnRDb25maWcgfTtcbn07XG4iXX0=
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export const AT_LEAST_ONE_REQUIRED = 'atLeastOneRequired';
|
|
2
|
-
export const ValidateAtLeastOneRequired = (config) => {
|
|
3
|
-
return (formGroup) => {
|
|
4
|
-
const { keys, checkFalse } = config;
|
|
5
|
-
if (!formGroup) {
|
|
6
|
-
return { [AT_LEAST_ONE_REQUIRED]: true };
|
|
7
|
-
}
|
|
8
|
-
const controlValues = keys.map((key) => formGroup.get(key)?.value);
|
|
9
|
-
const areAllFalsy = controlValues.every((value) => value === null ||
|
|
10
|
-
value === undefined ||
|
|
11
|
-
value === '' ||
|
|
12
|
-
(Array.isArray(value) && value.length === 0) ||
|
|
13
|
-
(checkFalse && value === false));
|
|
14
|
-
if (areAllFalsy) {
|
|
15
|
-
return { [AT_LEAST_ONE_REQUIRED]: true };
|
|
16
|
-
}
|
|
17
|
-
return null;
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXQtbGVhc3Qtb25lLXJlcXVpcmVkLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvYXQtbGVhc3Qtb25lLXJlcXVpcmVkLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxvQkFBb0IsQ0FBQztBQWUxRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLE1BQXdDLEVBQWUsRUFBRTtJQUNsRyxPQUFPLENBQUMsU0FBMEIsRUFBMkIsRUFBRTtRQUM3RCxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUVwQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzNDLENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRW5FLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQ3JDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDUixLQUFLLEtBQUssSUFBSTtZQUNkLEtBQUssS0FBSyxTQUFTO1lBQ25CLEtBQUssS0FBSyxFQUFFO1lBQ1osQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1lBQzVDLENBQUMsVUFBVSxJQUFJLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FDbEMsQ0FBQztRQUVGLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMzQyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY29uc3QgQVRfTEVBU1RfT05FX1JFUVVJUkVEID0gJ2F0TGVhc3RPbmVSZXF1aXJlZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGVBdExlYXN0T25lUmVxdWlyZWRDb25maWcge1xuICAvKipcbiAgICogS2V5cyBvZiBmb3JtIGNvbnRyb2xzIHRvIHZhbGlkYXRlIGluIHRoZSBzdXBwbGllZCBmb3JtIGdyb3VwXG4gICAqL1xuICBrZXlzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlIHZhbHVlIGBmYWxzZWAgd2lsbCByZXN1bHQgaW4gYSB2YWxpZGF0aW9uIGVycm9yXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBjaGVja0ZhbHNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IFZhbGlkYXRlQXRMZWFzdE9uZVJlcXVpcmVkID0gKGNvbmZpZzogVmFsaWRhdGVBdExlYXN0T25lUmVxdWlyZWRDb25maWcpOiBWYWxpZGF0b3JGbiA9PiB7XG4gIHJldHVybiAoZm9ybUdyb3VwOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgY29uc3QgeyBrZXlzLCBjaGVja0ZhbHNlIH0gPSBjb25maWc7XG5cbiAgICBpZiAoIWZvcm1Hcm91cCkge1xuICAgICAgcmV0dXJuIHsgW0FUX0xFQVNUX09ORV9SRVFVSVJFRF06IHRydWUgfTtcbiAgICB9XG5cbiAgICBjb25zdCBjb250cm9sVmFsdWVzID0ga2V5cy5tYXAoKGtleSkgPT4gZm9ybUdyb3VwLmdldChrZXkpPy52YWx1ZSk7XG5cbiAgICBjb25zdCBhcmVBbGxGYWxzeSA9IGNvbnRyb2xWYWx1ZXMuZXZlcnkoXG4gICAgICAodmFsdWUpID0+XG4gICAgICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgICAgIHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgdmFsdWUgPT09ICcnIHx8XG4gICAgICAgIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHx8XG4gICAgICAgIChjaGVja0ZhbHNlICYmIHZhbHVlID09PSBmYWxzZSksXG4gICAgKTtcblxuICAgIGlmIChhcmVBbGxGYWxzeSkge1xuICAgICAgcmV0dXJuIHsgW0FUX0xFQVNUX09ORV9SRVFVSVJFRF06IHRydWUgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcbn07XG4iXX0=
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ValidateAtLeastOneRequired } from './at-least-one-required.validator';
|
|
2
|
-
import { IsArrayNotEmpty } from './is-array-not-empty.validator';
|
|
3
|
-
import { IsEmail } from './is-email.validator';
|
|
4
|
-
import { MustMatch } from './must-match.validator';
|
|
5
|
-
export * from './at-least-one-required.validator';
|
|
6
|
-
export * from './is-array-not-empty.validator';
|
|
7
|
-
export * from './is-email.validator';
|
|
8
|
-
export * from './must-match.validator';
|
|
9
|
-
export const Validators = {
|
|
10
|
-
MustMatch,
|
|
11
|
-
IsEmail,
|
|
12
|
-
IsArrayNotEmpty,
|
|
13
|
-
ValidateAtLeastOneRequired,
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi92YWxpZGF0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRW5ELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLFNBQVM7SUFDVCxPQUFPO0lBQ1AsZUFBZTtJQUNmLDBCQUEwQjtDQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdGVBdExlYXN0T25lUmVxdWlyZWQgfSBmcm9tICcuL2F0LWxlYXN0LW9uZS1yZXF1aXJlZC52YWxpZGF0b3InO1xuaW1wb3J0IHsgSXNBcnJheU5vdEVtcHR5IH0gZnJvbSAnLi9pcy1hcnJheS1ub3QtZW1wdHkudmFsaWRhdG9yJztcbmltcG9ydCB7IElzRW1haWwgfSBmcm9tICcuL2lzLWVtYWlsLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBNdXN0TWF0Y2ggfSBmcm9tICcuL211c3QtbWF0Y2gudmFsaWRhdG9yJztcblxuZXhwb3J0ICogZnJvbSAnLi9hdC1sZWFzdC1vbmUtcmVxdWlyZWQudmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vaXMtYXJyYXktbm90LWVtcHR5LnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2lzLWVtYWlsLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL211c3QtbWF0Y2gudmFsaWRhdG9yJztcblxuZXhwb3J0IGNvbnN0IFZhbGlkYXRvcnMgPSB7XG4gIE11c3RNYXRjaCxcbiAgSXNFbWFpbCxcbiAgSXNBcnJheU5vdEVtcHR5LFxuICBWYWxpZGF0ZUF0TGVhc3RPbmVSZXF1aXJlZCxcbn0gYXMgY29uc3Q7XG4iXX0=
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export const IS_ARRAY_NOT_EMPTY = 'isArrayNotEmpty';
|
|
2
|
-
export const IsArrayNotEmpty = (control) => {
|
|
3
|
-
const value = control.value;
|
|
4
|
-
if (!value) {
|
|
5
|
-
return null;
|
|
6
|
-
}
|
|
7
|
-
return value.length > 0 ? null : { [IS_ARRAY_NOT_EMPTY]: true };
|
|
8
|
-
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtYXJyYXktbm90LWVtcHR5LnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvaXMtYXJyYXktbm90LWVtcHR5LnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxPQUF3QixFQUEyQixFQUFFO0lBQ25GLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDNUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNsRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBJU19BUlJBWV9OT1RfRU1QVFkgPSAnaXNBcnJheU5vdEVtcHR5JztcblxuZXhwb3J0IGNvbnN0IElzQXJyYXlOb3RFbXB0eSA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+IDAgPyBudWxsIDogeyBbSVNfQVJSQVlfTk9UX0VNUFRZXTogdHJ1ZSB9O1xufTtcbiJdfQ==
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export const IS_EMAIL = 'isEmail';
|
|
2
|
-
export const IsEmail = (control) => {
|
|
3
|
-
const value = control.value;
|
|
4
|
-
if (!value) {
|
|
5
|
-
return null;
|
|
6
|
-
}
|
|
7
|
-
const regex = /^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$/;
|
|
8
|
-
return regex.test(value) ? null : { [IS_EMAIL]: true };
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZW1haWwudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdmFsaWRhdG9ycy9pcy1lbWFpbC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQztBQUVsQyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxPQUF3QixFQUEyQixFQUFFO0lBQzNFLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDNUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcseUNBQXlDLENBQUM7SUFDeEQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUN6RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBJU19FTUFJTCA9ICdpc0VtYWlsJztcblxuZXhwb3J0IGNvbnN0IElzRW1haWwgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHJlZ2V4ID0gL15bYS16MC05Ll8lKy1dK0BbYS16MC05Li1dK1xcLlthLXpdezIsfSQvO1xuICByZXR1cm4gcmVnZXgudGVzdCh2YWx1ZSkgPyBudWxsIDogeyBbSVNfRU1BSUxdOiB0cnVlIH07XG59O1xuIl19
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export const MUST_MATCH = 'mustMatch';
|
|
2
|
-
export const MustMatch = (controlName, matchingControlName) => {
|
|
3
|
-
return (formGroup) => {
|
|
4
|
-
const control = formGroup.get(controlName);
|
|
5
|
-
const matchingControl = formGroup.get(matchingControlName);
|
|
6
|
-
if (matchingControl?.errors && !matchingControl.errors[MUST_MATCH]) {
|
|
7
|
-
return null;
|
|
8
|
-
}
|
|
9
|
-
if (control?.value !== matchingControl?.value) {
|
|
10
|
-
matchingControl?.setErrors({ [MUST_MATCH]: true });
|
|
11
|
-
return { [MUST_MATCH]: true };
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
matchingControl?.setErrors(null);
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVzdC1tYXRjaC52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi92YWxpZGF0b3JzL211c3QtbWF0Y2gudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUM7QUFFdEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsV0FBbUIsRUFBRSxtQkFBMkIsRUFBRSxFQUFFO0lBQzVFLE9BQU8sQ0FBQyxTQUEwQixFQUFFLEVBQUU7UUFDcEMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFM0QsSUFBSSxlQUFlLEVBQUUsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ25FLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELElBQUksT0FBTyxFQUFFLEtBQUssS0FBSyxlQUFlLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDOUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNuRCxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNoQyxDQUFDO2FBQU0sQ0FBQztZQUNOLGVBQWUsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY29uc3QgTVVTVF9NQVRDSCA9ICdtdXN0TWF0Y2gnO1xuXG5leHBvcnQgY29uc3QgTXVzdE1hdGNoID0gKGNvbnRyb2xOYW1lOiBzdHJpbmcsIG1hdGNoaW5nQ29udHJvbE5hbWU6IHN0cmluZykgPT4ge1xuICByZXR1cm4gKGZvcm1Hcm91cDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWUpO1xuICAgIGNvbnN0IG1hdGNoaW5nQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQobWF0Y2hpbmdDb250cm9sTmFtZSk7XG5cbiAgICBpZiAobWF0Y2hpbmdDb250cm9sPy5lcnJvcnMgJiYgIW1hdGNoaW5nQ29udHJvbC5lcnJvcnNbTVVTVF9NQVRDSF0pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChjb250cm9sPy52YWx1ZSAhPT0gbWF0Y2hpbmdDb250cm9sPy52YWx1ZSkge1xuICAgICAgbWF0Y2hpbmdDb250cm9sPy5zZXRFcnJvcnMoeyBbTVVTVF9NQVRDSF06IHRydWUgfSk7XG4gICAgICByZXR1cm4geyBbTVVTVF9NQVRDSF06IHRydWUgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWF0Y2hpbmdDb250cm9sPy5zZXRFcnJvcnMobnVsbCk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH07XG59O1xuIl19
|