@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.
Files changed (143) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/fesm2022/ethlete-core.mjs +131 -139
  3. package/fesm2022/ethlete-core.mjs.map +1 -1
  4. package/lib/types/angular.types.d.ts +0 -1
  5. package/lib/utils/signal.utils.d.ts +5 -0
  6. package/package.json +7 -9
  7. package/esm2022/ethlete-core.mjs +0 -5
  8. package/esm2022/index.mjs +0 -38
  9. package/esm2022/lib/components/structured-data/index.mjs +0 -2
  10. package/esm2022/lib/components/structured-data/structured-data.component.mjs +0 -37
  11. package/esm2022/lib/constants/index.mjs +0 -2
  12. package/esm2022/lib/constants/viewport.constants.mjs +0 -17
  13. package/esm2022/lib/decorators/memo/index.mjs +0 -2
  14. package/esm2022/lib/decorators/memo/memo.decorator.mjs +0 -25
  15. package/esm2022/lib/directives/animatable/animatable.directive.mjs +0 -121
  16. package/esm2022/lib/directives/animatable/index.mjs +0 -2
  17. package/esm2022/lib/directives/animated-if/animated-if.directive.mjs +0 -54
  18. package/esm2022/lib/directives/animated-if/index.mjs +0 -2
  19. package/esm2022/lib/directives/animated-lifecycle/animated-lifecycle.directive.mjs +0 -136
  20. package/esm2022/lib/directives/animated-lifecycle/index.mjs +0 -2
  21. package/esm2022/lib/directives/animated-overlay/animated-overlay.directive.mjs +0 -344
  22. package/esm2022/lib/directives/animated-overlay/index.mjs +0 -2
  23. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +0 -37
  24. package/esm2022/lib/directives/click-outside/index.mjs +0 -2
  25. package/esm2022/lib/directives/cursor-drag-scroll/cursor-drag-scroll.constants.mjs +0 -3
  26. package/esm2022/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.mjs +0 -170
  27. package/esm2022/lib/directives/cursor-drag-scroll/index.mjs +0 -3
  28. package/esm2022/lib/directives/debug/debug.directive.mjs +0 -44
  29. package/esm2022/lib/directives/debug/index.mjs +0 -2
  30. package/esm2022/lib/directives/delayable/delayable.directive.mjs +0 -55
  31. package/esm2022/lib/directives/delayable/index.mjs +0 -2
  32. package/esm2022/lib/directives/is-active-element/index.mjs +0 -2
  33. package/esm2022/lib/directives/is-active-element/is-active-element.directive.mjs +0 -33
  34. package/esm2022/lib/directives/is-element/index.mjs +0 -2
  35. package/esm2022/lib/directives/is-element/is-element.directive.mjs +0 -33
  36. package/esm2022/lib/directives/let/index.mjs +0 -3
  37. package/esm2022/lib/directives/let/let.directive.mjs +0 -40
  38. package/esm2022/lib/directives/let/let.types.mjs +0 -9
  39. package/esm2022/lib/directives/observe-content/index.mjs +0 -2
  40. package/esm2022/lib/directives/observe-content/observe-content.directive.mjs +0 -72
  41. package/esm2022/lib/directives/observe-resize/index.mjs +0 -2
  42. package/esm2022/lib/directives/observe-resize/observe-resize.directive.mjs +0 -72
  43. package/esm2022/lib/directives/observe-scroll-state/index.mjs +0 -4
  44. package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.constants.mjs +0 -3
  45. package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.directive.mjs +0 -180
  46. package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.types.mjs +0 -2
  47. package/esm2022/lib/directives/observe-visibility/index.mjs +0 -2
  48. package/esm2022/lib/directives/observe-visibility/observe-visibility.directive.mjs +0 -80
  49. package/esm2022/lib/directives/repeat/index.mjs +0 -2
  50. package/esm2022/lib/directives/repeat/repeat.directive.mjs +0 -35
  51. package/esm2022/lib/directives/root-boundary/index.mjs +0 -2
  52. package/esm2022/lib/directives/root-boundary/root-boundary.directive.mjs +0 -36
  53. package/esm2022/lib/directives/scroll-observer-first-element/index.mjs +0 -2
  54. package/esm2022/lib/directives/scroll-observer-first-element/scroll-observer-first-element.directive.mjs +0 -24
  55. package/esm2022/lib/directives/scroll-observer-ignore-target/index.mjs +0 -2
  56. package/esm2022/lib/directives/scroll-observer-ignore-target/scroll-observer-ignore-target.directive.mjs +0 -18
  57. package/esm2022/lib/directives/scroll-observer-last-element/index.mjs +0 -2
  58. package/esm2022/lib/directives/scroll-observer-last-element/scroll-observer-last-element.directive.mjs +0 -27
  59. package/esm2022/lib/directives/seo/index.mjs +0 -5
  60. package/esm2022/lib/directives/seo/seo.directive.constants.mjs +0 -3
  61. package/esm2022/lib/directives/seo/seo.directive.mjs +0 -166
  62. package/esm2022/lib/directives/seo/seo.directive.types.mjs +0 -2
  63. package/esm2022/lib/directives/seo/seo.directive.utils.mjs +0 -7
  64. package/esm2022/lib/pipes/infer-mime-type/index.mjs +0 -3
  65. package/esm2022/lib/pipes/infer-mime-type/infer-mime-type.pipe.mjs +0 -18
  66. package/esm2022/lib/pipes/infer-mime-type/infer-mime-type.util.mjs +0 -196
  67. package/esm2022/lib/pipes/normalize-game-result-type/index.mjs +0 -4
  68. package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.pipe.mjs +0 -15
  69. package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.types.mjs +0 -2
  70. package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.util.mjs +0 -34
  71. package/esm2022/lib/pipes/normalize-match-participants/index.mjs +0 -4
  72. package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.pipe.mjs +0 -15
  73. package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.types.mjs +0 -2
  74. package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.util.mjs +0 -47
  75. package/esm2022/lib/pipes/normalize-match-score/index.mjs +0 -4
  76. package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.pipe.mjs +0 -15
  77. package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.types.mjs +0 -2
  78. package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.util.mjs +0 -126
  79. package/esm2022/lib/pipes/normalize-match-state/index.mjs +0 -4
  80. package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.constants.mjs +0 -2
  81. package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.pipe.mjs +0 -15
  82. package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.util.mjs +0 -19
  83. package/esm2022/lib/pipes/normalize-match-type/index.mjs +0 -3
  84. package/esm2022/lib/pipes/normalize-match-type/normalize-match-type.pipe.mjs +0 -15
  85. package/esm2022/lib/pipes/normalize-match-type/normalize-match-type.util.mjs +0 -38
  86. package/esm2022/lib/pipes/to-array/index.mjs +0 -3
  87. package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +0 -15
  88. package/esm2022/lib/pipes/to-array/to-array.util.mjs +0 -5
  89. package/esm2022/lib/props/create-prop-handlers.mjs +0 -17
  90. package/esm2022/lib/props/create-props.mjs +0 -53
  91. package/esm2022/lib/props/create-setup.mjs +0 -19
  92. package/esm2022/lib/props/dependency-stash.mjs +0 -20
  93. package/esm2022/lib/props/element-dictionary.mjs +0 -44
  94. package/esm2022/lib/props/index.mjs +0 -9
  95. package/esm2022/lib/props/props-binding.mjs +0 -53
  96. package/esm2022/lib/props/props.directive.mjs +0 -35
  97. package/esm2022/lib/props/template-input.mjs +0 -41
  98. package/esm2022/lib/services/click-observer.service.mjs +0 -73
  99. package/esm2022/lib/services/content-observer.service.mjs +0 -79
  100. package/esm2022/lib/services/focus-visible.service.mjs +0 -34
  101. package/esm2022/lib/services/index.mjs +0 -9
  102. package/esm2022/lib/services/intersection-observer.service.mjs +0 -75
  103. package/esm2022/lib/services/resize-observer.service.mjs +0 -75
  104. package/esm2022/lib/services/router-state.service.mjs +0 -205
  105. package/esm2022/lib/services/viewport.service.mjs +0 -244
  106. package/esm2022/lib/services/viewport.types.mjs +0 -2
  107. package/esm2022/lib/types/angular.types.mjs +0 -15
  108. package/esm2022/lib/types/i18n.types.mjs +0 -2
  109. package/esm2022/lib/types/index.mjs +0 -5
  110. package/esm2022/lib/types/value.types.mjs +0 -2
  111. package/esm2022/lib/types/viewport.types.mjs +0 -2
  112. package/esm2022/lib/utils/active-selection-model.utils.mjs +0 -91
  113. package/esm2022/lib/utils/angular.utils.mjs +0 -7
  114. package/esm2022/lib/utils/animation.utils.mjs +0 -113
  115. package/esm2022/lib/utils/clamp.util.mjs +0 -4
  116. package/esm2022/lib/utils/clone.util.mjs +0 -78
  117. package/esm2022/lib/utils/component-id.utils.mjs +0 -7
  118. package/esm2022/lib/utils/cookie.util.mjs +0 -53
  119. package/esm2022/lib/utils/destroy.utils.mjs +0 -13
  120. package/esm2022/lib/utils/equal.util.mjs +0 -118
  121. package/esm2022/lib/utils/form.utils.mjs +0 -63
  122. package/esm2022/lib/utils/index.mjs +0 -27
  123. package/esm2022/lib/utils/inject.utils.mjs +0 -4
  124. package/esm2022/lib/utils/intersection-observer.utils.mjs +0 -65
  125. package/esm2022/lib/utils/key-press-manager.utils.mjs +0 -30
  126. package/esm2022/lib/utils/media-query-observable.util.mjs +0 -18
  127. package/esm2022/lib/utils/mutation-observable.util.mjs +0 -42
  128. package/esm2022/lib/utils/object.utils.mjs +0 -30
  129. package/esm2022/lib/utils/reactive-binding.util.mjs +0 -124
  130. package/esm2022/lib/utils/resize-observable.util.mjs +0 -12
  131. package/esm2022/lib/utils/round.utils.mjs +0 -5
  132. package/esm2022/lib/utils/runtime-error.utils.mjs +0 -31
  133. package/esm2022/lib/utils/scrollable.utils.mjs +0 -157
  134. package/esm2022/lib/utils/selection-model.utils.mjs +0 -376
  135. package/esm2022/lib/utils/signal.utils.mjs +0 -1004
  136. package/esm2022/lib/utils/smart-block-scroll-strategy.utils.mjs +0 -96
  137. package/esm2022/lib/utils/value.utils.mjs +0 -22
  138. package/esm2022/lib/utils/viewport.util.mjs +0 -5
  139. package/esm2022/lib/validators/at-least-one-required.validator.mjs +0 -20
  140. package/esm2022/lib/validators/index.mjs +0 -15
  141. package/esm2022/lib/validators/is-array-not-empty.validator.mjs +0 -9
  142. package/esm2022/lib/validators/is-email.validator.mjs +0 -10
  143. package/esm2022/lib/validators/must-match.validator.mjs +0 -19
@@ -1,72 +0,0 @@
1
- import { booleanAttribute, Directive, ElementRef, EventEmitter, inject, Input, NgZone, numberAttribute, Output, } from '@angular/core';
2
- import { debounceTime } from 'rxjs';
3
- import { ResizeObserverService } from '../../services';
4
- import * as i0 from "@angular/core";
5
- export class ObserveResizeDirective {
6
- constructor() {
7
- this._resizeObserver = inject(ResizeObserverService);
8
- this._elementRef = inject(ElementRef);
9
- this._ngZone = inject(NgZone);
10
- this.valueChange = new EventEmitter();
11
- this._disabled = false;
12
- this._debounce = null;
13
- this._currentSubscription = null;
14
- }
15
- get disabled() {
16
- return this._disabled;
17
- }
18
- set disabled(value) {
19
- this._disabled = booleanAttribute(value);
20
- if (this._disabled) {
21
- this._unsubscribe();
22
- }
23
- else {
24
- this._subscribe();
25
- }
26
- }
27
- get debounce() {
28
- return this._debounce;
29
- }
30
- set debounce(value) {
31
- this._debounce = numberAttribute(value) ?? null;
32
- this._subscribe();
33
- }
34
- ngAfterContentInit() {
35
- if (!this._currentSubscription && !this.disabled) {
36
- this._subscribe();
37
- }
38
- }
39
- ngOnDestroy() {
40
- this._unsubscribe();
41
- }
42
- _subscribe() {
43
- this._unsubscribe();
44
- const stream = this._resizeObserver.observe(this._elementRef);
45
- this._ngZone.runOutsideAngular(() => {
46
- this._currentSubscription = (this.debounce ? stream.pipe(debounceTime(this.debounce)) : stream).subscribe(this.valueChange);
47
- });
48
- }
49
- _unsubscribe() {
50
- this._currentSubscription?.unsubscribe();
51
- }
52
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ObserveResizeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
53
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: ObserveResizeDirective, isStandalone: true, selector: "[etObserveResize]", inputs: { disabled: ["etObserveResizeDisabled", "disabled"], debounce: ["etObserveResizeDebounce", "debounce"] }, outputs: { valueChange: "etObserveResize" }, exportAs: ["etObserveResize"], ngImport: i0 }); }
54
- }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ObserveResizeDirective, decorators: [{
56
- type: Directive,
57
- args: [{
58
- selector: '[etObserveResize]',
59
- exportAs: 'etObserveResize',
60
- standalone: true,
61
- }]
62
- }], propDecorators: { valueChange: [{
63
- type: Output,
64
- args: ['etObserveResize']
65
- }], disabled: [{
66
- type: Input,
67
- args: ['etObserveResizeDisabled']
68
- }], debounce: [{
69
- type: Input,
70
- args: ['etObserveResizeDebounce']
71
- }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS1yZXNpemUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9vYnNlcnZlLXJlc2l6ZS9vYnNlcnZlLXJlc2l6ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixlQUFlLEVBRWYsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU92RCxNQUFNLE9BQU8sc0JBQXNCO0lBTG5DO1FBTVUsb0JBQWUsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoRCxnQkFBVyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDMUQsWUFBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUd4QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBZXpELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFVbEIsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFFaEMseUJBQW9CLEdBQXdCLElBQUksQ0FBQztLQTBCMUQ7SUFuREMsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBR0QsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQztRQUNoRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUtELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNsQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUN2RyxJQUFJLENBQUMsV0FBVyxDQUNqQixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDM0MsQ0FBQzsrR0ExRFUsc0JBQXNCO21HQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBTGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQU9VLFdBQVc7c0JBRG5CLE1BQU07dUJBQUMsaUJBQWlCO2dCQUlyQixRQUFRO3NCQURYLEtBQUs7dUJBQUMseUJBQXlCO2dCQWdCNUIsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlc2l6ZU9ic2VydmVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2V0T2JzZXJ2ZVJlc2l6ZV0nLFxuICBleHBvcnRBczogJ2V0T2JzZXJ2ZVJlc2l6ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE9ic2VydmVSZXNpemVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9yZXNpemVPYnNlcnZlciA9IGluamVjdChSZXNpemVPYnNlcnZlclNlcnZpY2UpO1xuICBwcml2YXRlIF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSBfbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgQE91dHB1dCgnZXRPYnNlcnZlUmVzaXplJylcbiAgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFJlc2l6ZU9ic2VydmVyRW50cnlbXT4oKTtcblxuICBASW5wdXQoJ2V0T2JzZXJ2ZVJlc2l6ZURpc2FibGVkJylcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGJvb2xlYW5BdHRyaWJ1dGUodmFsdWUpO1xuXG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICB0aGlzLl91bnN1YnNjcmliZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoJ2V0T2JzZXJ2ZVJlc2l6ZURlYm91bmNlJylcbiAgZ2V0IGRlYm91bmNlKCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9kZWJvdW5jZTtcbiAgfVxuICBzZXQgZGVib3VuY2UodmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9kZWJvdW5jZSA9IG51bWJlckF0dHJpYnV0ZSh2YWx1ZSkgPz8gbnVsbDtcbiAgICB0aGlzLl9zdWJzY3JpYmUoKTtcbiAgfVxuICBwcml2YXRlIF9kZWJvdW5jZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfY3VycmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIGlmICghdGhpcy5fY3VycmVudFN1YnNjcmlwdGlvbiAmJiAhdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fdW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N1YnNjcmliZSgpIHtcbiAgICB0aGlzLl91bnN1YnNjcmliZSgpO1xuICAgIGNvbnN0IHN0cmVhbSA9IHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5fZWxlbWVudFJlZik7XG5cbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5fY3VycmVudFN1YnNjcmlwdGlvbiA9ICh0aGlzLmRlYm91bmNlID8gc3RyZWFtLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2UpKSA6IHN0cmVhbSkuc3Vic2NyaWJlKFxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3Vuc3Vic2NyaWJlKCkge1xuICAgIHRoaXMuX2N1cnJlbnRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +0,0 @@
1
- export * from './observe-scroll-state.constants';
2
- export * from './observe-scroll-state.directive';
3
- export * from './observe-scroll-state.types';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL29ic2VydmUtc2Nyb2xsLXN0YXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9vYnNlcnZlLXNjcm9sbC1zdGF0ZS5jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9vYnNlcnZlLXNjcm9sbC1zdGF0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9vYnNlcnZlLXNjcm9sbC1zdGF0ZS50eXBlcyc7XG4iXX0=
@@ -1,3 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const OBSERVE_SCROLL_STATE = new InjectionToken('OBSERVE_SCROLL_STATE');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS1zY3JvbGwtc3RhdGUuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9vYnNlcnZlLXNjcm9sbC1zdGF0ZS9vYnNlcnZlLXNjcm9sbC1zdGF0ZS5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBOEIsc0JBQXNCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZlU2Nyb2xsU3RhdGVEaXJlY3RpdmUgfSBmcm9tICcuL29ic2VydmUtc2Nyb2xsLXN0YXRlLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBPQlNFUlZFX1NDUk9MTF9TVEFURSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPYnNlcnZlU2Nyb2xsU3RhdGVEaXJlY3RpdmU+KCdPQlNFUlZFX1NDUk9MTF9TVEFURScpO1xuIl19
@@ -1,180 +0,0 @@
1
- import { Directive, ElementRef, EventEmitter, inject, Input, numberAttribute, Output, } from '@angular/core';
2
- import { debounceTime, takeUntil, tap } from 'rxjs';
3
- import { ContentObserverService, ResizeObserverService } from '../../services';
4
- import { createDestroy, elementCanScroll } from '../../utils';
5
- import { SCROLL_OBSERVER_FIRST_ELEMENT_CLASS } from '../scroll-observer-first-element';
6
- import { SCROLL_OBSERVER_IGNORE_TARGET_CLASS } from '../scroll-observer-ignore-target';
7
- import { SCROLL_OBSERVER_LAST_ELEMENT_CLASS } from '../scroll-observer-last-element';
8
- import { OBSERVE_SCROLL_STATE } from './observe-scroll-state.constants';
9
- import * as i0 from "@angular/core";
10
- export const SCROLL_OBSERVER_OBSERVING_FIRST_ELEMENT_CLASS = 'et-scroll-observer-observing-first-element';
11
- export const SCROLL_OBSERVER_OBSERVING_LAST_ELEMENT_CLASS = 'et-scroll-observer-observing-last-element';
12
- export class ObserveScrollStateDirective {
13
- constructor() {
14
- this._destroy$ = createDestroy();
15
- this._elementRef = inject(ElementRef);
16
- this._contentObserverService = inject(ContentObserverService);
17
- this._resizeObserverService = inject(ResizeObserverService);
18
- this.rootMargin = 0;
19
- this._threshold = [0.99, 0.99999, 0.9999, 0.999, 1];
20
- this._intersectionObserver = null;
21
- this.valueChange = new EventEmitter();
22
- }
23
- get _firstCurrentChild() {
24
- const explicitFirstElement = this._elementRef.nativeElement.querySelector(`.${SCROLL_OBSERVER_FIRST_ELEMENT_CLASS}`);
25
- if (explicitFirstElement) {
26
- return explicitFirstElement;
27
- }
28
- const element = this._elementRef.nativeElement.children[0];
29
- return this._getNonIgnoredChild(element, 'next');
30
- }
31
- get _lastCurrentChild() {
32
- const explicitLastElement = this._elementRef.nativeElement.querySelector(`.${SCROLL_OBSERVER_LAST_ELEMENT_CLASS}`);
33
- if (explicitLastElement) {
34
- return explicitLastElement;
35
- }
36
- const element = this._elementRef.nativeElement.children[this._elementRef.nativeElement.children.length - 1];
37
- return this._getNonIgnoredChild(element, 'previous');
38
- }
39
- get observerThreshold() {
40
- return this._threshold;
41
- }
42
- set observerThreshold(value) {
43
- if (Array.isArray(value)) {
44
- this._threshold = value.map((threshold) => numberAttribute(threshold));
45
- return;
46
- }
47
- this._threshold = numberAttribute(value);
48
- }
49
- get _observerElements() {
50
- const firstEl = this._elementRef.nativeElement.querySelector(`.${SCROLL_OBSERVER_FIRST_ELEMENT_CLASS}`);
51
- const lastEl = this._elementRef.nativeElement.querySelector(`.${SCROLL_OBSERVER_LAST_ELEMENT_CLASS}`);
52
- if (!firstEl || !lastEl)
53
- return null;
54
- return {
55
- first: firstEl,
56
- last: lastEl,
57
- };
58
- }
59
- ngOnInit() {
60
- this._contentObserverService
61
- .observe(this._elementRef.nativeElement)
62
- .pipe(debounceTime(25), tap(() => this._checkChildren()), takeUntil(this._destroy$))
63
- .subscribe();
64
- this._resizeObserverService
65
- .observe(this._elementRef.nativeElement)
66
- .pipe(debounceTime(25), tap(() => {
67
- const canScroll = elementCanScroll(this._elementRef.nativeElement);
68
- if ((!this._intersectionObserver && canScroll) || (this._intersectionObserver && !canScroll)) {
69
- this._checkChildren();
70
- }
71
- }), takeUntil(this._destroy$))
72
- .subscribe();
73
- this._checkChildren();
74
- }
75
- ngOnDestroy() {
76
- this._clearIntersectionObserver();
77
- }
78
- _checkChildren() {
79
- this._clearIntersectionObserver();
80
- if (this._firstCurrentChild === this._lastCurrentChild ||
81
- !this._firstCurrentChild ||
82
- !this._lastCurrentChild ||
83
- !elementCanScroll(this._elementRef.nativeElement)) {
84
- this._unobserve();
85
- this.valueChange.emit({
86
- isAtStart: true,
87
- isAtEnd: true,
88
- canScroll: false,
89
- });
90
- }
91
- else {
92
- this._intersectionObserver = this._initiateIntersectionObserver();
93
- this._observe();
94
- }
95
- }
96
- _initiateIntersectionObserver() {
97
- const observer = new IntersectionObserver((entries) => {
98
- const elements = this._observerElements;
99
- if (!elements)
100
- return;
101
- const isAtStart = entries.find((entry) => entry.target === elements.first)?.isIntersecting ?? false;
102
- const isAtEnd = entries.find((entry) => entry.target === elements.last)?.isIntersecting ?? false;
103
- this.valueChange.emit({
104
- isAtStart,
105
- isAtEnd,
106
- canScroll: !isAtStart || !isAtEnd,
107
- });
108
- }, {
109
- root: this._elementRef.nativeElement,
110
- rootMargin: this.rootMargin ? `${this.rootMargin}px` : undefined,
111
- threshold: this._threshold,
112
- });
113
- return observer;
114
- }
115
- _observe() {
116
- const elements = this._observerElements;
117
- if (!elements)
118
- return;
119
- this._intersectionObserver?.observe(elements.first);
120
- this._intersectionObserver?.observe(elements.last);
121
- elements.first.classList.add(SCROLL_OBSERVER_OBSERVING_FIRST_ELEMENT_CLASS);
122
- elements.last.classList.add(SCROLL_OBSERVER_OBSERVING_LAST_ELEMENT_CLASS);
123
- }
124
- _unobserve() {
125
- const elements = this._observerElements;
126
- if (!elements)
127
- return;
128
- this._intersectionObserver?.unobserve(elements.first);
129
- this._intersectionObserver?.unobserve(elements.last);
130
- elements.first.classList.remove(SCROLL_OBSERVER_OBSERVING_FIRST_ELEMENT_CLASS);
131
- elements.last.classList.remove(SCROLL_OBSERVER_OBSERVING_LAST_ELEMENT_CLASS);
132
- }
133
- _clearIntersectionObserver() {
134
- this._intersectionObserver?.disconnect();
135
- this._intersectionObserver = null;
136
- }
137
- _getNonIgnoredChild(element, direction) {
138
- if (!element) {
139
- return null;
140
- }
141
- if (element?.classList.contains(SCROLL_OBSERVER_IGNORE_TARGET_CLASS)) {
142
- const nextElement = element[`${direction}ElementSibling`];
143
- if (!nextElement) {
144
- return null;
145
- }
146
- return this._getNonIgnoredChild(nextElement, direction);
147
- }
148
- return element;
149
- }
150
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ObserveScrollStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
151
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.12", type: ObserveScrollStateDirective, isStandalone: true, selector: "[etObserveScrollState]", inputs: { rootMargin: ["rootMargin", "rootMargin", numberAttribute], observerThreshold: "observerThreshold" }, outputs: { valueChange: "etObserveScrollState" }, providers: [
152
- {
153
- provide: OBSERVE_SCROLL_STATE,
154
- useExisting: ObserveScrollStateDirective,
155
- },
156
- ], exportAs: ["etObserveScrollState"], ngImport: i0 }); }
157
- }
158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ObserveScrollStateDirective, decorators: [{
159
- type: Directive,
160
- args: [{
161
- selector: '[etObserveScrollState]',
162
- exportAs: 'etObserveScrollState',
163
- standalone: true,
164
- providers: [
165
- {
166
- provide: OBSERVE_SCROLL_STATE,
167
- useExisting: ObserveScrollStateDirective,
168
- },
169
- ],
170
- }]
171
- }], propDecorators: { rootMargin: [{
172
- type: Input,
173
- args: [{ transform: numberAttribute }]
174
- }], observerThreshold: [{
175
- type: Input
176
- }], valueChange: [{
177
- type: Output,
178
- args: ['etObserveScrollState']
179
- }] } });
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS1zY3JvbGwtc3RhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9vYnNlcnZlLXNjcm9sbC1zdGF0ZS9vYnNlcnZlLXNjcm9sbC1zdGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUdmLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFHeEUsTUFBTSxDQUFDLE1BQU0sNkNBQTZDLEdBQUcsNENBQTRDLENBQUM7QUFDMUcsTUFBTSxDQUFDLE1BQU0sNENBQTRDLEdBQUcsMkNBQTJDLENBQUM7QUFheEcsTUFBTSxPQUFPLDJCQUEyQjtJQVh4QztRQVltQixjQUFTLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFFNUIsZ0JBQVcsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBQzFELDRCQUF1QixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxD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QUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsU0FBUyxnQkFBZ0IsQ0FBdUIsQ0FBQztZQUVoRixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzsrR0FwTVUsMkJBQTJCO21HQUEzQiwyQkFBMkIsNkdBcUNsQixlQUFlLDBHQTVDeEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsb0JBQW9CO2dCQUM3QixXQUFXLEVBQUUsMkJBQTJCO2FBQ3pDO1NBQ0Y7OzRGQUVVLDJCQUEyQjtrQkFYdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxvQkFBb0I7NEJBQzdCLFdBQVcsNkJBQTZCO3lCQUN6QztxQkFDRjtpQkFDRjs4QkF1Q0MsVUFBVTtzQkFEVCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFJakMsaUJBQWlCO3NCQURwQixLQUFLO2dCQTZCTixXQUFXO3NCQURWLE1BQU07dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250ZW50T2JzZXJ2ZXJTZXJ2aWNlLCBSZXNpemVPYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVEZXN0cm95LCBlbGVtZW50Q2FuU2Nyb2xsIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgU0NST0xMX09CU0VSVkVSX0ZJUlNUX0VMRU1FTlRfQ0xBU1MgfSBmcm9tICcuLi9zY3JvbGwtb2JzZXJ2ZXItZmlyc3QtZWxlbWVudCc7XG5pbXBvcnQgeyBTQ1JPTExfT0JTRVJWRVJfSUdOT1JFX1RBUkdFVF9DTEFTUyB9IGZyb20gJy4uL3Njcm9sbC1vYnNlcnZlci1pZ25vcmUtdGFyZ2V0JztcbmltcG9ydCB7IFNDUk9MTF9PQlNFUlZFUl9MQVNUX0VMRU1FTlRfQ0xBU1MgfSBmcm9tICcuLi9zY3JvbGwtb2JzZXJ2ZXItbGFzdC1lbGVtZW50JztcbmltcG9ydCB7IE9CU0VSVkVfU0NST0xMX1NUQVRFIH0gZnJvbSAnLi9vYnNlcnZlLXNjcm9sbC1zdGF0ZS5jb25zdGFudHMnO1xuaW1wb3J0IHsgU2Nyb2xsT2JzZXJ2ZXJTY3JvbGxTdGF0ZSB9IGZyb20gJy4vb2JzZXJ2ZS1zY3JvbGwtc3RhdGUudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgU0NST0xMX09CU0VSVkVSX09CU0VSVklOR19GSVJTVF9FTEVNRU5UX0NMQVNTID0gJ2V0LXNjcm9sbC1vYnNlcnZlci1vYnNlcnZpbmctZmlyc3QtZWxlbWVudCc7XG5leHBvcnQgY29uc3QgU0NST0xMX09CU0VSVkVSX09CU0VSVklOR19MQVNUX0VMRU1FTlRfQ0xBU1MgPSAnZXQtc2Nyb2xsLW9ic2VydmVyLW9ic2VydmluZy1sYXN0LWVsZW1lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZXRPYnNlcnZlU2Nyb2xsU3RhdGVdJyxcbiAgZXhwb3J0QXM6ICdldE9ic2VydmVTY3JvbGxTdGF0ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE9CU0VSVkVfU0NST0xMX1NUQVRFLFxuICAgICAgdXNlRXhpc3Rpbmc6IE9ic2VydmVTY3JvbGxTdGF0ZURpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBPYnNlcnZlU2Nyb2xsU3RhdGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb250ZW50T2JzZXJ2ZXJTZXJ2aWNlID0gaW5qZWN0KENvbnRlbnRPYnNlcnZlclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNpemVPYnNlcnZlclNlcnZpY2UgPSBpbmplY3QoUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlKTtcblxuICBwcml2YXRlIGdldCBfZmlyc3RDdXJyZW50Q2hpbGQoKSB7XG4gICAgY29uc3QgZXhwbGljaXRGaXJzdEVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgIGAuJHtTQ1JPTExfT0JTRVJWRVJfRklSU1RfRUxFTUVOVF9DTEFTU31gLFxuICAgICkgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgaWYgKGV4cGxpY2l0Rmlyc3RFbGVtZW50KSB7XG4gICAgICByZXR1cm4gZXhwbGljaXRGaXJzdEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICByZXR1cm4gdGhpcy5fZ2V0Tm9uSWdub3JlZENoaWxkKGVsZW1lbnQsICduZXh0Jyk7XG4gIH1cblxuICBwcml2YXRlIGdldCBfbGFzdEN1cnJlbnRDaGlsZCgpIHtcbiAgICBjb25zdCBleHBsaWNpdExhc3RFbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICBgLiR7U0NST0xMX09CU0VSVkVSX0xBU1RfRUxFTUVOVF9DTEFTU31gLFxuICAgICkgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgaWYgKGV4cGxpY2l0TGFzdEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBleHBsaWNpdExhc3RFbGVtZW50O1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoIC0gMVxuICAgIF0gYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgcmV0dXJuIHRoaXMuX2dldE5vbklnbm9yZWRDaGlsZChlbGVtZW50LCAncHJldmlvdXMnKTtcbiAgfVxuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHJvb3RNYXJnaW4gPSAwO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBvYnNlcnZlclRocmVzaG9sZCgpOiBudW1iZXIgfCBudW1iZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3RocmVzaG9sZDtcbiAgfVxuICBzZXQgb2JzZXJ2ZXJUaHJlc2hvbGQodmFsdWU6IHVua25vd24pIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuX3RocmVzaG9sZCA9IHZhbHVlLm1hcCgodGhyZXNob2xkKSA9PiBudW1iZXJBdHRyaWJ1dGUodGhyZXNob2xkKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdGhyZXNob2xkID0gbnVtYmVyQXR0cmlidXRlKHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF90aHJlc2hvbGQ6IG51bWJlciB8IG51bWJlcltdID0gWzAuOTksIDAuOTk5OTksIDAuOTk5OSwgMC45OTksIDFdO1xuXG4gIHByaXZhdGUgX2ludGVyc2VjdGlvbk9ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlciB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgZ2V0IF9vYnNlcnZlckVsZW1lbnRzKCkge1xuICAgIGNvbnN0IGZpcnN0RWwgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgLiR7U0NST0xMX09CU0VSVkVSX0ZJUlNUX0VMRU1FTlRfQ0xBU1N9YCk7XG4gICAgY29uc3QgbGFzdEVsID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke1NDUk9MTF9PQlNFUlZFUl9MQVNUX0VMRU1FTlRfQ0xBU1N9YCk7XG5cbiAgICBpZiAoIWZpcnN0RWwgfHwgIWxhc3RFbCkgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZmlyc3Q6IGZpcnN0RWwsXG4gICAgICBsYXN0OiBsYXN0RWwsXG4gICAgfTtcbiAgfVxuXG4gIEBPdXRwdXQoJ2V0T2JzZXJ2ZVNjcm9sbFN0YXRlJylcbiAgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNjcm9sbE9ic2VydmVyU2Nyb2xsU3RhdGU+KCk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fY29udGVudE9ic2VydmVyU2VydmljZVxuICAgICAgLm9ic2VydmUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgyNSksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLl9jaGVja0NoaWxkcmVuKCkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXJTZXJ2aWNlXG4gICAgICAub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDI1KSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBjYW5TY3JvbGwgPSBlbGVtZW50Q2FuU2Nyb2xsKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgaWYgKCghdGhpcy5faW50ZXJzZWN0aW9uT2JzZXJ2ZXIgJiYgY2FuU2Nyb2xsKSB8fCAodGhpcy5faW50ZXJzZWN0aW9uT2JzZXJ2ZXIgJiYgIWNhblNjcm9sbCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NoZWNrQ2hpbGRyZW4oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fY2hlY2tDaGlsZHJlbigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fY2xlYXJJbnRlcnNlY3Rpb25PYnNlcnZlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tDaGlsZHJlbigpIHtcbiAgICB0aGlzLl9jbGVhckludGVyc2VjdGlvbk9ic2VydmVyKCk7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLl9maXJzdEN1cnJlbnRDaGlsZCA9PT0gdGhpcy5fbGFzdEN1cnJlbnRDaGlsZCB8fFxuICAgICAgIXRoaXMuX2ZpcnN0Q3VycmVudENoaWxkIHx8XG4gICAgICAhdGhpcy5fbGFzdEN1cnJlbnRDaGlsZCB8fFxuICAgICAgIWVsZW1lbnRDYW5TY3JvbGwodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KVxuICAgICkge1xuICAgICAgdGhpcy5fdW5vYnNlcnZlKCk7XG5cbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh7XG4gICAgICAgIGlzQXRTdGFydDogdHJ1ZSxcbiAgICAgICAgaXNBdEVuZDogdHJ1ZSxcbiAgICAgICAgY2FuU2Nyb2xsOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9pbnRlcnNlY3Rpb25PYnNlcnZlciA9IHRoaXMuX2luaXRpYXRlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKTtcblxuICAgICAgdGhpcy5fb2JzZXJ2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYXRlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSB7XG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAoZW50cmllcykgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuX29ic2VydmVyRWxlbWVudHM7XG5cbiAgICAgICAgaWYgKCFlbGVtZW50cykgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGlzQXRTdGFydCA9IGVudHJpZXMuZmluZCgoZW50cnkpID0+IGVudHJ5LnRhcmdldCA9PT0gZWxlbWVudHMuZmlyc3QpPy5pc0ludGVyc2VjdGluZyA/PyBmYWxzZTtcbiAgICAgICAgY29uc3QgaXNBdEVuZCA9IGVudHJpZXMuZmluZCgoZW50cnkpID0+IGVudHJ5LnRhcmdldCA9PT0gZWxlbWVudHMubGFzdCk/LmlzSW50ZXJzZWN0aW5nID8/IGZhbHNlO1xuXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgaXNBdFN0YXJ0LFxuICAgICAgICAgIGlzQXRFbmQsXG4gICAgICAgICAgY2FuU2Nyb2xsOiAhaXNBdFN0YXJ0IHx8ICFpc0F0RW5kLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJvb3Q6IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgcm9vdE1hcmdpbjogdGhpcy5yb290TWFyZ2luID8gYCR7dGhpcy5yb290TWFyZ2lufXB4YCA6IHVuZGVmaW5lZCxcbiAgICAgICAgdGhyZXNob2xkOiB0aGlzLl90aHJlc2hvbGQsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICByZXR1cm4gb2JzZXJ2ZXI7XG4gIH1cblxuICBwcml2YXRlIF9vYnNlcnZlKCkge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5fb2JzZXJ2ZXJFbGVtZW50cztcblxuICAgIGlmICghZWxlbWVudHMpIHJldHVybjtcblxuICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyPy5vYnNlcnZlKGVsZW1lbnRzLmZpcnN0KTtcbiAgICB0aGlzLl9pbnRlcnNlY3Rpb25PYnNlcnZlcj8ub2JzZXJ2ZShlbGVtZW50cy5sYXN0KTtcblxuICAgIGVsZW1lbnRzLmZpcnN0LmNsYXNzTGlzdC5hZGQoU0NST0xMX09CU0VSVkVSX09CU0VSVklOR19GSVJTVF9FTEVNRU5UX0NMQVNTKTtcbiAgICBlbGVtZW50cy5sYXN0LmNsYXNzTGlzdC5hZGQoU0NST0xMX09CU0VSVkVSX09CU0VSVklOR19MQVNUX0VMRU1FTlRfQ0xBU1MpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdW5vYnNlcnZlKCkge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5fb2JzZXJ2ZXJFbGVtZW50cztcblxuICAgIGlmICghZWxlbWVudHMpIHJldHVybjtcblxuICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyPy51bm9ic2VydmUoZWxlbWVudHMuZmlyc3QpO1xuICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyPy51bm9ic2VydmUoZWxlbWVudHMubGFzdCk7XG5cbiAgICBlbGVtZW50cy5maXJzdC5jbGFzc0xpc3QucmVtb3ZlKFNDUk9MTF9PQlNFUlZFUl9PQlNFUlZJTkdfRklSU1RfRUxFTUVOVF9DTEFTUyk7XG4gICAgZWxlbWVudHMubGFzdC5jbGFzc0xpc3QucmVtb3ZlKFNDUk9MTF9PQlNFUlZFUl9PQlNFUlZJTkdfTEFTVF9FTEVNRU5UX0NMQVNTKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NsZWFySW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSB7XG4gICAgdGhpcy5faW50ZXJzZWN0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9pbnRlcnNlY3Rpb25PYnNlcnZlciA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9nZXROb25JZ25vcmVkQ2hpbGQoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsLCBkaXJlY3Rpb246ICdwcmV2aW91cycgfCAnbmV4dCcpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGlmICghZWxlbWVudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGVsZW1lbnQ/LmNsYXNzTGlzdC5jb250YWlucyhTQ1JPTExfT0JTRVJWRVJfSUdOT1JFX1RBUkdFVF9DTEFTUykpIHtcbiAgICAgIGNvbnN0IG5leHRFbGVtZW50ID0gZWxlbWVudFtgJHtkaXJlY3Rpb259RWxlbWVudFNpYmxpbmdgXSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICAgIGlmICghbmV4dEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLl9nZXROb25JZ25vcmVkQ2hpbGQobmV4dEVsZW1lbnQsIGRpcmVjdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS1zY3JvbGwtc3RhdGUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL29ic2VydmUtc2Nyb2xsLXN0YXRlL29ic2VydmUtc2Nyb2xsLXN0YXRlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNjcm9sbE9ic2VydmVyU2Nyb2xsU3RhdGUge1xuICBpc0F0U3RhcnQ6IGJvb2xlYW47XG4gIGlzQXRFbmQ6IGJvb2xlYW47XG4gIGNhblNjcm9sbDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgT2JzZXJ2ZWRTY3JvbGxhYmxlQ2hpbGQgPSAnZmlyc3QnIHwgJ2xhc3QnO1xuIl19
@@ -1,2 +0,0 @@
1
- export * from './observe-visibility.directive';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL29ic2VydmUtdmlzaWJpbGl0eS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9vYnNlcnZlLXZpc2liaWxpdHkuZGlyZWN0aXZlJztcbiJdfQ==
@@ -1,80 +0,0 @@
1
- import { Directive, ElementRef, EventEmitter, InjectionToken, Output, computed, inject, signal, } from '@angular/core';
2
- import { toObservable } from '@angular/core/rxjs-interop';
3
- import { takeUntil, tap } from 'rxjs';
4
- import { IntersectionObserverService } from '../../services';
5
- import { createDestroy, signalHostClasses } from '../../utils';
6
- import * as i0 from "@angular/core";
7
- export const OBSERVE_VISIBILITY_TOKEN = new InjectionToken('OBSERVE_VISIBILITY_TOKEN');
8
- export const signalVisibilityChangeClasses = (cfg) => ({
9
- [`${cfg.name}--is-left`]: computed(() => cfg.signal()?.isLeft),
10
- [`${cfg.name}--is-right`]: computed(() => cfg.signal()?.isRight),
11
- [`${cfg.name}--is-above`]: computed(() => cfg.signal()?.isAbove),
12
- [`${cfg.name}--is-below`]: computed(() => cfg.signal()?.isBelow),
13
- [`${cfg.name}--is-visible`]: computed(() => cfg.signal()?.visible),
14
- });
15
- export class ObserveVisibilityDirective {
16
- constructor() {
17
- this._destroy$ = createDestroy();
18
- this._elementRef = inject(ElementRef);
19
- this._intersectionObserverService = inject(IntersectionObserverService);
20
- this.visibilityChange = signal(null);
21
- this.currentVisibility = this.visibilityChange.asReadonly();
22
- this.currentVisibility$ = toObservable(this.currentVisibility);
23
- this.etObserveVisibility = new EventEmitter();
24
- signalHostClasses(signalVisibilityChangeClasses({
25
- name: 'et-observe-visibility',
26
- signal: this.visibilityChange,
27
- }));
28
- }
29
- ngAfterViewInit() {
30
- this._intersectionObserverService
31
- .observe(this._elementRef)
32
- .pipe(takeUntil(this._destroy$), tap((entries) => {
33
- const entry = entries[0];
34
- if (!entry) {
35
- return;
36
- }
37
- const isAbove = entry.boundingClientRect.top < 0 && entry.boundingClientRect.bottom < 0;
38
- const isBelow = entry.boundingClientRect.top > window.innerHeight && entry.boundingClientRect.bottom > window.innerHeight;
39
- const isLeft = entry.boundingClientRect.left < 0 && entry.boundingClientRect.right < 0;
40
- const isRight = entry.boundingClientRect.left > window.innerWidth && entry.boundingClientRect.right > window.innerWidth;
41
- const data = {
42
- visible: entry.isIntersecting,
43
- isAbove,
44
- isBelow,
45
- isLeft,
46
- isRight,
47
- entry,
48
- };
49
- this.etObserveVisibility.emit(data);
50
- this.visibilityChange.set(data);
51
- }))
52
- .subscribe();
53
- }
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ObserveVisibilityDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
55
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: ObserveVisibilityDirective, isStandalone: true, selector: "[etObserveVisibility]", outputs: { etObserveVisibility: "etObserveVisibility" }, host: { classAttribute: "et-observe-visibility" }, providers: [
56
- {
57
- provide: OBSERVE_VISIBILITY_TOKEN,
58
- useExisting: ObserveVisibilityDirective,
59
- },
60
- ], ngImport: i0 }); }
61
- }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ObserveVisibilityDirective, decorators: [{
63
- type: Directive,
64
- args: [{
65
- selector: '[etObserveVisibility]',
66
- standalone: true,
67
- providers: [
68
- {
69
- provide: OBSERVE_VISIBILITY_TOKEN,
70
- useExisting: ObserveVisibilityDirective,
71
- },
72
- ],
73
- host: {
74
- class: 'et-observe-visibility',
75
- },
76
- }]
77
- }], ctorParameters: () => [], propDecorators: { etObserveVisibility: [{
78
- type: Output
79
- }] } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS12aXNpYmlsaXR5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvb2JzZXJ2ZS12aXNpYmlsaXR5L29ic2VydmUtdmlzaWJpbGl0eS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLGNBQWMsRUFDZCxNQUFNLEVBRU4sUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBRS9ELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUE2QiwwQkFBMEIsQ0FBQyxDQUFDO0FBV25ILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLENBQUMsR0FHN0MsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNMLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxXQUFXLENBQUMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQztJQUM5RCxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksWUFBWSxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLENBQUM7SUFDaEUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLFlBQVksQ0FBQyxFQUFFLFFB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LEVBQUUsMEJBQTBCO2FBQ3hDO1NBQ0Y7OzRGQUtVLDBCQUEwQjtrQkFidEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSx3QkFBd0I7NEJBQ2pDLFdBQVcsNEJBQTRCO3lCQUN4QztxQkFDRjtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLHVCQUF1QjtxQkFDL0I7aUJBQ0Y7d0RBWVUsbUJBQW1CO3NCQUQzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdGlvblRva2VuLFxuICBPdXRwdXQsXG4gIFNpZ25hbCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbnRlcnNlY3Rpb25PYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVEZXN0cm95LCBzaWduYWxIb3N0Q2xhc3NlcyB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IE9CU0VSVkVfVklTSUJJTElUWV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPYnNlcnZlVmlzaWJpbGl0eURpcmVjdGl2ZT4oJ09CU0VSVkVfVklTSUJJTElUWV9UT0tFTicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmVWaXNpYmlsaXR5Q2hhbmdlIHtcbiAgdmlzaWJsZTogYm9vbGVhbjtcbiAgaXNBYm92ZTogYm9vbGVhbjtcbiAgaXNCZWxvdzogYm9vbGVhbjtcbiAgaXNMZWZ0OiBib29sZWFuO1xuICBpc1JpZ2h0OiBib29sZWFuO1xuICBlbnRyeTogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeTtcbn1cblxuZXhwb3J0IGNvbnN0IHNpZ25hbFZpc2liaWxpdHlDaGFuZ2VDbGFzc2VzID0gKGNmZzoge1xuICBuYW1lOiBzdHJpbmc7XG4gIHNpZ25hbDogU2lnbmFsPE9ic2VydmVWaXNpYmlsaXR5Q2hhbmdlIHwgbnVsbCB8IHVuZGVmaW5lZD47XG59KSA9PiAoe1xuICBbYCR7Y2ZnLm5hbWV9LS1pcy1sZWZ0YF06IGNvbXB1dGVkKCgpID0+IGNmZy5zaWduYWwoKT8uaXNMZWZ0KSxcbiAgW2Ake2NmZy5uYW1lfS0taXMtcmlnaHRgXTogY29tcHV0ZWQoKCkgPT4gY2ZnLnNpZ25hbCgpPy5pc1JpZ2h0KSxcbiAgW2Ake2NmZy5uYW1lfS0taXMtYWJvdmVgXTogY29tcHV0ZWQoKCkgPT4gY2ZnLnNpZ25hbCgpPy5pc0Fib3ZlKSxcbiAgW2Ake2NmZy5uYW1lfS0taXMtYmVsb3dgXTogY29tcHV0ZWQoKCkgPT4gY2ZnLnNpZ25hbCgpPy5pc0JlbG93KSxcbiAgW2Ake2NmZy5uYW1lfS0taXMtdmlzaWJsZWBdOiBjb21wdXRlZCgoKSA9PiBjZmcuc2lnbmFsKCk/LnZpc2libGUpLFxufSk7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tldE9ic2VydmVWaXNpYmlsaXR5XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE9CU0VSVkVfVklTSUJJTElUWV9UT0tFTixcbiAgICAgIHVzZUV4aXN0aW5nOiBPYnNlcnZlVmlzaWJpbGl0eURpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC1vYnNlcnZlLXZpc2liaWxpdHknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBPYnNlcnZlVmlzaWJpbGl0eURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ludGVyc2VjdGlvbk9ic2VydmVyU2VydmljZSA9IGluamVjdChJbnRlcnNlY3Rpb25PYnNlcnZlclNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB2aXNpYmlsaXR5Q2hhbmdlID0gc2lnbmFsPE9ic2VydmVWaXNpYmlsaXR5Q2hhbmdlIHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgY3VycmVudFZpc2liaWxpdHkgPSB0aGlzLnZpc2liaWxpdHlDaGFuZ2UuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBjdXJyZW50VmlzaWJpbGl0eSQgPSB0b09ic2VydmFibGUodGhpcy5jdXJyZW50VmlzaWJpbGl0eSk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGV0T2JzZXJ2ZVZpc2liaWxpdHkgPSBuZXcgRXZlbnRFbWl0dGVyPE9ic2VydmVWaXNpYmlsaXR5Q2hhbmdlPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHNpZ25hbEhvc3RDbGFzc2VzKFxuICAgICAgc2lnbmFsVmlzaWJpbGl0eUNoYW5nZUNsYXNzZXMoe1xuICAgICAgICBuYW1lOiAnZXQtb2JzZXJ2ZS12aXNpYmlsaXR5JyxcbiAgICAgICAgc2lnbmFsOiB0aGlzLnZpc2liaWxpdHlDaGFuZ2UsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyU2VydmljZVxuICAgICAgLm9ic2VydmUodGhpcy5fZWxlbWVudFJlZilcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YXAoKGVudHJpZXMpID0+IHtcbiAgICAgICAgICBjb25zdCBlbnRyeSA9IGVudHJpZXNbMF07XG5cbiAgICAgICAgICBpZiAoIWVudHJ5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgaXNBYm92ZSA9IGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC50b3AgPCAwICYmIGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC5ib3R0b20gPCAwO1xuICAgICAgICAgIGNvbnN0IGlzQmVsb3cgPVxuICAgICAgICAgICAgZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LnRvcCA+IHdpbmRvdy5pbm5lckhlaWdodCAmJiBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QuYm90dG9tID4gd2luZG93LmlubmVySGVpZ2h0O1xuICAgICAgICAgIGNvbnN0IGlzTGVmdCA9IGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC5sZWZ0IDwgMCAmJiBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QucmlnaHQgPCAwO1xuICAgICAgICAgIGNvbnN0IGlzUmlnaHQgPVxuICAgICAgICAgICAgZW50cnkuYm91bmRpbmdDbGllbnRSZWN0LmxlZnQgPiB3aW5kb3cuaW5uZXJXaWR0aCAmJiBlbnRyeS5ib3VuZGluZ0NsaWVudFJlY3QucmlnaHQgPiB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICAgIGNvbnN0IGRhdGE6IE9ic2VydmVWaXNpYmlsaXR5Q2hhbmdlID0ge1xuICAgICAgICAgICAgdmlzaWJsZTogZW50cnkuaXNJbnRlcnNlY3RpbmcsXG4gICAgICAgICAgICBpc0Fib3ZlLFxuICAgICAgICAgICAgaXNCZWxvdyxcbiAgICAgICAgICAgIGlzTGVmdCxcbiAgICAgICAgICAgIGlzUmlnaHQsXG4gICAgICAgICAgICBlbnRyeSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgdGhpcy5ldE9ic2VydmVWaXNpYmlsaXR5LmVtaXQoZGF0YSk7XG4gICAgICAgICAgdGhpcy52aXNpYmlsaXR5Q2hhbmdlLnNldChkYXRhKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './repeat.directive';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3JlcGVhdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXBlYXQuZGlyZWN0aXZlJztcbiJdfQ==
@@ -1,35 +0,0 @@
1
- import { Directive, Input, numberAttribute, TemplateRef, ViewContainerRef } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class RepeatDirective {
4
- get repeatCount() {
5
- return this._repeatCount;
6
- }
7
- set repeatCount(value) {
8
- this._repeatCount = numberAttribute(value);
9
- this._render();
10
- }
11
- constructor(_mainTemplateRef, _viewContainerRef) {
12
- this._mainTemplateRef = _mainTemplateRef;
13
- this._viewContainerRef = _viewContainerRef;
14
- this._repeatCount = 2;
15
- }
16
- _render() {
17
- this._viewContainerRef.clear();
18
- for (let i = 0; i < this.repeatCount; i++) {
19
- this._viewContainerRef.createEmbeddedView(this._mainTemplateRef);
20
- }
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: RepeatDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
23
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: RepeatDirective, isStandalone: true, selector: "[etRepeat]", inputs: { repeatCount: ["etRepeat", "repeatCount"] }, ngImport: i0 }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: RepeatDirective, decorators: [{
26
- type: Directive,
27
- args: [{
28
- selector: '[etRepeat]',
29
- standalone: true,
30
- }]
31
- }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }], propDecorators: { repeatCount: [{
32
- type: Input,
33
- args: ['etRepeat']
34
- }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvcmVwZWF0L3JlcGVhdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNakcsTUFBTSxPQUFPLGVBQWU7SUFDMUIsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFjO1FBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBR0QsWUFDVSxnQkFBc0MsRUFDdEMsaUJBQW1DO1FBRG5DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBc0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUpyQyxpQkFBWSxHQUFHLENBQUMsQ0FBQztJQUt0QixDQUFDO0lBRUksT0FBTztRQUNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUUvQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQzsrR0F0QlUsZUFBZTttR0FBZixlQUFlOzs0RkFBZixlQUFlO2tCQUozQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7K0dBR0ssV0FBVztzQkFEZCxLQUFLO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBudW1iZXJBdHRyaWJ1dGUsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tldFJlcGVhdF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBSZXBlYXREaXJlY3RpdmUge1xuICBASW5wdXQoJ2V0UmVwZWF0JylcbiAgZ2V0IHJlcGVhdENvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcGVhdENvdW50O1xuICB9XG4gIHNldCByZXBlYXRDb3VudCh2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX3JlcGVhdENvdW50ID0gbnVtYmVyQXR0cmlidXRlKHZhbHVlKTtcbiAgICB0aGlzLl9yZW5kZXIoKTtcbiAgfVxuICBwcml2YXRlIF9yZXBlYXRDb3VudCA9IDI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfbWFpblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPixcbiAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICApIHt9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyKCkge1xuICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yZXBlYXRDb3VudDsgaSsrKSB7XG4gICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl9tYWluVGVtcGxhdGVSZWYpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export * from './root-boundary.directive';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3Jvb3QtYm91bmRhcnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcm9vdC1ib3VuZGFyeS5kaXJlY3RpdmUnO1xuIl19
@@ -1,36 +0,0 @@
1
- import { Directive, ElementRef, InjectionToken, inject } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export const ROOT_BOUNDARY_TOKEN = new InjectionToken('ROOT_BOUNDARY_TOKEN');
4
- export class RootBoundaryDirective {
5
- constructor() {
6
- this._elementRef = inject(ElementRef);
7
- this._boundaryElement = null;
8
- }
9
- get boundaryElement() {
10
- return this._boundaryElement ?? this._elementRef.nativeElement;
11
- }
12
- set boundaryElement(v) {
13
- this._boundaryElement = v;
14
- }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: RootBoundaryDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
16
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: RootBoundaryDirective, isStandalone: true, selector: "[etRootBoundary]", providers: [
17
- {
18
- provide: ROOT_BOUNDARY_TOKEN,
19
- useExisting: RootBoundaryDirective,
20
- },
21
- ], ngImport: i0 }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: RootBoundaryDirective, decorators: [{
24
- type: Directive,
25
- args: [{
26
- selector: '[etRootBoundary]',
27
- standalone: true,
28
- providers: [
29
- {
30
- provide: ROOT_BOUNDARY_TOKEN,
31
- useExisting: RootBoundaryDirective,
32
- },
33
- ],
34
- }]
35
- }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1ib3VuZGFyeS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3Jvb3QtYm91bmRhcnkvcm9vdC1ib3VuZGFyeS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFOUUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQXdCLHFCQUFxQixDQUFDLENBQUM7QUFZcEcsTUFBTSxPQUFPLHFCQUFxQjtJQVZsQztRQVdtQixnQkFBVyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFRbkUscUJBQWdCLEdBQXVCLElBQUksQ0FBQztLQUNyRDtJQVBDLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUNqRSxDQUFDO0lBQ0QsSUFBSSxlQUFlLENBQUMsQ0FBcUI7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDOytHQVJVLHFCQUFxQjttR0FBckIscUJBQXFCLCtEQVByQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxtQkFBbUI7Z0JBQzVCLFdBQVcsRUFBRSxxQkFBcUI7YUFDbkM7U0FDRjs7NEZBRVUscUJBQXFCO2tCQVZqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyx1QkFBdUI7eUJBQ25DO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBST09UX0JPVU5EQVJZX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPFJvb3RCb3VuZGFyeURpcmVjdGl2ZT4oJ1JPT1RfQk9VTkRBUllfVE9LRU4nKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2V0Um9vdEJvdW5kYXJ5XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJPT1RfQk9VTkRBUllfVE9LRU4sXG4gICAgICB1c2VFeGlzdGluZzogUm9vdEJvdW5kYXJ5RGlyZWN0aXZlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJvb3RCb3VuZGFyeURpcmVjdGl2ZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG4gIGdldCBib3VuZGFyeUVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2JvdW5kYXJ5RWxlbWVudCA/PyB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbiAgc2V0IGJvdW5kYXJ5RWxlbWVudCh2OiBIVE1MRWxlbWVudCB8IG51bGwpIHtcbiAgICB0aGlzLl9ib3VuZGFyeUVsZW1lbnQgPSB2O1xuICB9XG4gIHByaXZhdGUgX2JvdW5kYXJ5RWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './scroll-observer-first-element.directive';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3Njcm9sbC1vYnNlcnZlci1maXJzdC1lbGVtZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Njcm9sbC1vYnNlcnZlci1maXJzdC1lbGVtZW50LmRpcmVjdGl2ZSc7XG4iXX0=
@@ -1,24 +0,0 @@
1
- import { Directive, HostBinding, Input, booleanAttribute } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export const SCROLL_OBSERVER_FIRST_ELEMENT_CLASS = 'et-scroll-observer-first-element';
4
- export class ScrollObserverFirstElementDirective {
5
- constructor() {
6
- this.isFirstElement = false;
7
- }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScrollObserverFirstElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.12", type: ScrollObserverFirstElementDirective, isStandalone: true, selector: "[etScrollObserverFirstElement]", inputs: { isFirstElement: ["etScrollObserverFirstElement", "isFirstElement", booleanAttribute] }, host: { properties: { "class.et-scroll-observer-first-element": "this.isFirstElement" } }, ngImport: i0 }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScrollObserverFirstElementDirective, decorators: [{
12
- type: Directive,
13
- args: [{
14
- selector: '[etScrollObserverFirstElement]',
15
- standalone: true,
16
- }]
17
- }], propDecorators: { isFirstElement: [{
18
- type: Input,
19
- args: [{ alias: 'etScrollObserverFirstElement', transform: booleanAttribute }]
20
- }, {
21
- type: HostBinding,
22
- args: [`class.${SCROLL_OBSERVER_FIRST_ELEMENT_CLASS}`]
23
- }] } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLW9ic2VydmVyLWZpcnN0LWVsZW1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9zY3JvbGwtb2JzZXJ2ZXItZmlyc3QtZWxlbWVudC9zY3JvbGwtb2JzZXJ2ZXItZmlyc3QtZWxlbWVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVoRixNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxrQ0FBa0MsQ0FBQztBQU10RixNQUFNLE9BQU8sbUNBQW1DO0lBSmhEO1FBT0UsbUJBQWMsR0FBRyxLQUFLLENBQUM7S0FDeEI7K0dBSlksbUNBQW1DO21HQUFuQyxtQ0FBbUMsK0lBQ2EsZ0JBQWdCOzs0RkFEaEUsbUNBQW1DO2tCQUovQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQ0FBZ0M7b0JBQzFDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFJQyxjQUFjO3NCQUZiLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsOEJBQThCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFOztzQkFDNUUsV0FBVzt1QkFBQyxTQUFTLG1DQUFtQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSW5wdXQsIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IFNDUk9MTF9PQlNFUlZFUl9GSVJTVF9FTEVNRU5UX0NMQVNTID0gJ2V0LXNjcm9sbC1vYnNlcnZlci1maXJzdC1lbGVtZW50JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2V0U2Nyb2xsT2JzZXJ2ZXJGaXJzdEVsZW1lbnRdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsT2JzZXJ2ZXJGaXJzdEVsZW1lbnREaXJlY3RpdmUge1xuICBASW5wdXQoeyBhbGlhczogJ2V0U2Nyb2xsT2JzZXJ2ZXJGaXJzdEVsZW1lbnQnLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgQEhvc3RCaW5kaW5nKGBjbGFzcy4ke1NDUk9MTF9PQlNFUlZFUl9GSVJTVF9FTEVNRU5UX0NMQVNTfWApXG4gIGlzRmlyc3RFbGVtZW50ID0gZmFsc2U7XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './scroll-observer-ignore-target.directive';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3Njcm9sbC1vYnNlcnZlci1pZ25vcmUtdGFyZ2V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Njcm9sbC1vYnNlcnZlci1pZ25vcmUtdGFyZ2V0LmRpcmVjdGl2ZSc7XG4iXX0=
@@ -1,18 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export const SCROLL_OBSERVER_IGNORE_TARGET_CLASS = 'et-scroll-observer-ignore-target';
4
- export class ScrollObserverIgnoreTargetDirective {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScrollObserverIgnoreTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: ScrollObserverIgnoreTargetDirective, isStandalone: true, selector: "[etScrollObserverIgnoreTarget]", host: { classAttribute: "et-scroll-observer-ignore-target" }, ngImport: i0 }); }
7
- }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScrollObserverIgnoreTargetDirective, decorators: [{
9
- type: Directive,
10
- args: [{
11
- selector: '[etScrollObserverIgnoreTarget]',
12
- standalone: true,
13
- host: {
14
- class: SCROLL_OBSERVER_IGNORE_TARGET_CLASS,
15
- },
16
- }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLW9ic2VydmVyLWlnbm9yZS10YXJnZXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9zY3JvbGwtb2JzZXJ2ZXItaWdub3JlLXRhcmdldC9zY3JvbGwtb2JzZXJ2ZXItaWdub3JlLXRhcmdldC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFMUMsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsa0NBQWtDLENBQUM7QUFTdEYsTUFBTSxPQUFPLG1DQUFtQzsrR0FBbkMsbUNBQW1DO21HQUFuQyxtQ0FBbUM7OzRGQUFuQyxtQ0FBbUM7a0JBUC9DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsbUNBQW1DO3FCQUMzQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgU0NST0xMX09CU0VSVkVSX0lHTk9SRV9UQVJHRVRfQ0xBU1MgPSAnZXQtc2Nyb2xsLW9ic2VydmVyLWlnbm9yZS10YXJnZXQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZXRTY3JvbGxPYnNlcnZlcklnbm9yZVRhcmdldF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7XG4gICAgY2xhc3M6IFNDUk9MTF9PQlNFUlZFUl9JR05PUkVfVEFSR0VUX0NMQVNTLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTY3JvbGxPYnNlcnZlcklnbm9yZVRhcmdldERpcmVjdGl2ZSB7fVxuIl19
@@ -1,2 +0,0 @@
1
- export * from './scroll-observer-last-element.directive';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3Njcm9sbC1vYnNlcnZlci1sYXN0LWVsZW1lbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsLW9ic2VydmVyLWxhc3QtZWxlbWVudC5kaXJlY3RpdmUnO1xuIl19
@@ -1,27 +0,0 @@
1
- import { Directive, HostBinding, Input, booleanAttribute } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export const SCROLL_OBSERVER_LAST_ELEMENT_CLASS = 'et-scroll-observer-last-element';
4
- export class ScrollObserverLastElementDirective {
5
- constructor() {
6
- this.isLastElement = false;
7
- }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScrollObserverLastElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.12", type: ScrollObserverLastElementDirective, isStandalone: true, selector: "[etScrollObserverLastElement]", inputs: { isLastElement: ["etScrollObserverLastElement", "isLastElement", booleanAttribute] }, host: { properties: { "class.et-scroll-observer-last-element": "this.isLastElement" }, classAttribute: "et-scroll-observer-last-element" }, ngImport: i0 }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScrollObserverLastElementDirective, decorators: [{
12
- type: Directive,
13
- args: [{
14
- selector: '[etScrollObserverLastElement]',
15
- standalone: true,
16
- host: {
17
- class: SCROLL_OBSERVER_LAST_ELEMENT_CLASS,
18
- },
19
- }]
20
- }], propDecorators: { isLastElement: [{
21
- type: Input,
22
- args: [{ alias: 'etScrollObserverLastElement', transform: booleanAttribute }]
23
- }, {
24
- type: HostBinding,
25
- args: [`class.${SCROLL_OBSERVER_LAST_ELEMENT_CLASS}`]
26
- }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLW9ic2VydmVyLWxhc3QtZWxlbWVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3Njcm9sbC1vYnNlcnZlci1sYXN0LWVsZW1lbnQvc2Nyb2xsLW9ic2VydmVyLWxhc3QtZWxlbWVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVoRixNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyxpQ0FBaUMsQ0FBQztBQVNwRixNQUFNLE9BQU8sa0NBQWtDO0lBUC9DO1FBVUUsa0JBQWEsR0FBRyxLQUFLLENBQUM7S0FDdkI7K0dBSlksa0NBQWtDO21HQUFsQyxrQ0FBa0MsMklBQ2EsZ0JBQWdCOzs0RkFEL0Qsa0NBQWtDO2tCQVA5QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwrQkFBK0I7b0JBQ3pDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLGtDQUFrQztxQkFDMUM7aUJBQ0Y7OEJBSUMsYUFBYTtzQkFGWixLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLDZCQUE2QixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTs7c0JBQzNFLFdBQVc7dUJBQUMsU0FBUyxrQ0FBa0MsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIElucHV0LCBib29sZWFuQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBTQ1JPTExfT0JTRVJWRVJfTEFTVF9FTEVNRU5UX0NMQVNTID0gJ2V0LXNjcm9sbC1vYnNlcnZlci1sYXN0LWVsZW1lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZXRTY3JvbGxPYnNlcnZlckxhc3RFbGVtZW50XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogU0NST0xMX09CU0VSVkVSX0xBU1RfRUxFTUVOVF9DTEFTUyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsT2JzZXJ2ZXJMYXN0RWxlbWVudERpcmVjdGl2ZSB7XG4gIEBJbnB1dCh7IGFsaWFzOiAnZXRTY3JvbGxPYnNlcnZlckxhc3RFbGVtZW50JywgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIEBIb3N0QmluZGluZyhgY2xhc3MuJHtTQ1JPTExfT0JTRVJWRVJfTEFTVF9FTEVNRU5UX0NMQVNTfWApXG4gIGlzTGFzdEVsZW1lbnQgPSBmYWxzZTtcbn1cbiJdfQ==
@@ -1,5 +0,0 @@
1
- export * from './seo.directive';
2
- export * from './seo.directive.constants';
3
- export * from './seo.directive.types';
4
- export * from './seo.directive.utils';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3Nlby9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zZW8uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VvLmRpcmVjdGl2ZS5jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZW8uZGlyZWN0aXZlLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VvLmRpcmVjdGl2ZS51dGlscyc7XG4iXX0=
@@ -1,3 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const SEO_DIRECTIVE_TOKEN = new InjectionToken('SEO_DIRECTIVE_TOKEN');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLmRpcmVjdGl2ZS5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3Nlby9zZW8uZGlyZWN0aXZlLmNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFlLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VvRGlyZWN0aXZlIH0gZnJvbSAnLi9zZW8uZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IFNFT19ESVJFQ1RJVkVfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48U2VvRGlyZWN0aXZlPignU0VPX0RJUkVDVElWRV9UT0tFTicpO1xuIl19