@ethlete/core 2.6.1 → 2.7.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 (59) hide show
  1. package/esm2022/lib/components/structured-data/structured-data.component.mjs +5 -6
  2. package/esm2022/lib/directives/animatable/animatable.directive.mjs +5 -6
  3. package/esm2022/lib/directives/animated-lifecycle/animated-lifecycle.directive.mjs +6 -6
  4. package/esm2022/lib/directives/animated-overlay/animated-overlay.directive.mjs +5 -6
  5. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +5 -6
  6. package/esm2022/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.mjs +19 -9
  7. package/esm2022/lib/directives/delayable/delayable.directive.mjs +5 -6
  8. package/esm2022/lib/directives/is-active-element/is-active-element.directive.mjs +8 -16
  9. package/esm2022/lib/directives/is-element/is-element.directive.mjs +8 -16
  10. package/esm2022/lib/directives/let/let.directive.mjs +13 -15
  11. package/esm2022/lib/directives/observe-content/observe-content.directive.mjs +8 -10
  12. package/esm2022/lib/directives/observe-resize/observe-resize.directive.mjs +8 -10
  13. package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.directive.mjs +13 -20
  14. package/esm2022/lib/directives/repeat/repeat.directive.mjs +7 -9
  15. package/esm2022/lib/directives/scroll-observer-first-element/scroll-observer-first-element.directive.mjs +8 -16
  16. package/esm2022/lib/directives/scroll-observer-ignore-target/scroll-observer-ignore-target.directive.mjs +5 -6
  17. package/esm2022/lib/directives/scroll-observer-last-element/scroll-observer-last-element.directive.mjs +8 -16
  18. package/esm2022/lib/directives/seo/seo.directive.mjs +5 -6
  19. package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.pipe.mjs +5 -6
  20. package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.pipe.mjs +5 -6
  21. package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.pipe.mjs +5 -6
  22. package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.pipe.mjs +5 -6
  23. package/esm2022/lib/pipes/normalize-match-type/normalize-match-type.pipe.mjs +5 -6
  24. package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +5 -6
  25. package/esm2022/lib/services/click-observer.service.mjs +14 -16
  26. package/esm2022/lib/services/content-observer.service.mjs +14 -16
  27. package/esm2022/lib/services/focus-visible.service.mjs +5 -6
  28. package/esm2022/lib/services/resize-observer.service.mjs +14 -16
  29. package/esm2022/lib/services/router-state.service.mjs +5 -6
  30. package/esm2022/lib/services/viewport.service.mjs +10 -17
  31. package/esm2022/lib/utils/reactive-binding.util.mjs +4 -4
  32. package/esm2022/lib/utils/scrollable.utils.mjs +39 -8
  33. package/fesm2022/ethlete-core.mjs +196 -188
  34. package/fesm2022/ethlete-core.mjs.map +1 -1
  35. package/lib/components/structured-data/structured-data.component.d.ts +1 -1
  36. package/lib/directives/animatable/animatable.directive.d.ts +1 -1
  37. package/lib/directives/animated-lifecycle/animated-lifecycle.directive.d.ts +3 -3
  38. package/lib/directives/animated-overlay/animated-overlay.directive.d.ts +1 -1
  39. package/lib/directives/click-outside/click-outside.directive.d.ts +1 -1
  40. package/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.d.ts +6 -4
  41. package/lib/directives/delayable/delayable.directive.d.ts +1 -1
  42. package/lib/directives/is-active-element/is-active-element.directive.d.ts +3 -5
  43. package/lib/directives/is-element/is-element.directive.d.ts +3 -5
  44. package/lib/directives/let/let.directive.d.ts +1 -3
  45. package/lib/directives/observe-content/observe-content.directive.d.ts +3 -4
  46. package/lib/directives/observe-resize/observe-resize.directive.d.ts +3 -4
  47. package/lib/directives/observe-scroll-state/observe-scroll-state.directive.d.ts +4 -6
  48. package/lib/directives/repeat/repeat.directive.d.ts +2 -3
  49. package/lib/directives/scroll-observer-first-element/scroll-observer-first-element.directive.d.ts +3 -5
  50. package/lib/directives/scroll-observer-ignore-target/scroll-observer-ignore-target.directive.d.ts +1 -1
  51. package/lib/directives/scroll-observer-last-element/scroll-observer-last-element.directive.d.ts +3 -5
  52. package/lib/directives/seo/seo.directive.d.ts +1 -1
  53. package/lib/services/click-observer.service.d.ts +1 -2
  54. package/lib/services/content-observer.service.d.ts +1 -2
  55. package/lib/services/resize-observer.service.d.ts +1 -2
  56. package/lib/services/viewport.service.d.ts +5 -6
  57. package/lib/utils/reactive-binding.util.d.ts +1 -0
  58. package/lib/utils/scrollable.utils.d.ts +29 -0
  59. package/package.json +5 -5
@@ -1,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, HostBinding, InjectionToken, assertInInjectionContext, DestroyRef, ElementRef, isDevMode, Directive, Injectable, Inject, Optional, NgZone, EventEmitter, Output, Injector, ViewContainerRef, Pipe, QueryList } from '@angular/core';
2
+ import { inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, HostBinding, InjectionToken, assertInInjectionContext, DestroyRef, ElementRef, isDevMode, Directive, Injectable, NgZone, EventEmitter, booleanAttribute, numberAttribute, Output, Injector, ViewContainerRef, TemplateRef, Pipe, QueryList } from '@angular/core';
3
3
  import { DomSanitizer, Meta, Title } from '@angular/platform-browser';
4
4
  import { Subject, BehaviorSubject, takeUntil, switchMap, of, tap, Observable, combineLatest, startWith, map, distinctUntilChanged, shareReplay, skip, take, debounceTime, merge, fromEvent, filter, pairwise, finalize } from 'rxjs';
5
5
  import { END, HOME, PAGE_DOWN, PAGE_UP, UP_ARROW, DOWN_ARROW } from '@angular/cdk/keycodes';
6
- import { coerceCssPixelValue, coerceElement, coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
6
+ import { coerceCssPixelValue, coerceElement } from '@angular/cdk/coercion';
7
7
  import { supportsScrollBehavior } from '@angular/cdk/platform';
8
8
  import { Overlay } from '@angular/cdk/overlay';
9
9
  import { ComponentPortal } from '@angular/cdk/portal';
@@ -11,7 +11,7 @@ import { createPopper } from '@popperjs/core';
11
11
  import { DOCUMENT } from '@angular/common';
12
12
  import { Router, NavigationEnd } from '@angular/router';
13
13
  import { __decorate, __metadata } from 'tslib';
14
- import * as i1 from '@angular/cdk/layout';
14
+ import { BreakpointObserver } from '@angular/cdk/layout';
15
15
  import { debounceTime as debounceTime$1 } from 'rxjs/operators';
16
16
 
17
17
  class StructuredDataComponent {
@@ -26,10 +26,10 @@ class StructuredDataComponent {
26
26
  const html = `<script type="application/ld+json">${json}</script>`;
27
27
  return this._sanitizer.bypassSecurityTrustHtml(html);
28
28
  }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: StructuredDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.5", type: StructuredDataComponent, isStandalone: true, selector: "et-structured-data", inputs: { data: "data" }, host: { properties: { "innerHTML": "this.jsonLD" }, styleAttribute: "display: none" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: StructuredDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: StructuredDataComponent, isStandalone: true, selector: "et-structured-data", inputs: { data: "data" }, host: { properties: { "innerHTML": "this.jsonLD" }, styleAttribute: "display: none" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: StructuredDataComponent, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: StructuredDataComponent, decorators: [{
33
33
  type: Component,
34
34
  args: [{
35
35
  selector: 'et-structured-data',
@@ -566,7 +566,7 @@ const createReactiveBindings = (...values) => {
566
566
  const pushedAttributes = [];
567
567
  const defaults = {};
568
568
  const push = (value) => {
569
- const { attribute, observable, elementRef } = value;
569
+ const { attribute, observable, elementRef, eager } = value;
570
570
  const elRef = elementRef || rootElementRef;
571
571
  const attributes = Array.isArray(attribute) ? attribute : [attribute];
572
572
  pushedAttributes.push(attributes);
@@ -584,7 +584,7 @@ const createReactiveBindings = (...values) => {
584
584
  return a.render === b.render && a.value === b.value;
585
585
  }
586
586
  return false;
587
- }), switchMap((v) => fromNextFrame().pipe(map(() => v))))
587
+ }), switchMap((v) => (eager ? of(v) : fromNextFrame().pipe(map(() => v)))))
588
588
  .subscribe((value) => {
589
589
  const currentAttributes = pushedAttributes.find((s) => s.some((current) => attributes.includes(current))) || [];
590
590
  for (const attribute of currentAttributes) {
@@ -731,10 +731,10 @@ const isElementVisible = (options) => {
731
731
  container ||= document.documentElement;
732
732
  const canScroll = elementCanScroll(container);
733
733
  if (!canScroll) {
734
- return { inline: true, block: true };
734
+ return { inline: true, block: true, blockIntersection: 100, inlineIntersection: 100, element };
735
735
  }
736
736
  const elementRect = element.getBoundingClientRect();
737
- const containerRect = container.getBoundingClientRect();
737
+ const containerRect = options.containerRect || container.getBoundingClientRect();
738
738
  const elementInlineStart = elementRect.left;
739
739
  const elementBlockStart = elementRect.top;
740
740
  const containerInlineStart = containerRect.left;
@@ -745,7 +745,17 @@ const isElementVisible = (options) => {
745
745
  const containerBlockEnd = containerBlockStart + containerRect.height;
746
746
  const isElementInlineVisible = elementInlineStart >= containerInlineStart && elementInlineEnd <= containerInlineEnd;
747
747
  const isElementBlockVisible = elementBlockStart >= containerBlockStart && elementBlockEnd <= containerBlockEnd;
748
- return { inline: isElementInlineVisible, block: isElementBlockVisible };
748
+ const inlineIntersection = Math.min(elementInlineEnd, containerInlineEnd) - Math.max(elementInlineStart, containerInlineStart);
749
+ const blockIntersection = Math.min(elementBlockEnd, containerBlockEnd) - Math.max(elementBlockStart, containerBlockStart);
750
+ const inlineIntersectionPercentage = clamp((inlineIntersection / elementRect.width) * 100);
751
+ const blockIntersectionPercentage = clamp((blockIntersection / elementRect.height) * 100);
752
+ return {
753
+ inline: isElementInlineVisible,
754
+ block: isElementBlockVisible,
755
+ inlineIntersection: inlineIntersectionPercentage,
756
+ blockIntersection: blockIntersectionPercentage,
757
+ element,
758
+ };
749
759
  };
750
760
  const scrollToElement = (options) => {
751
761
  let { container } = options;
@@ -780,8 +790,14 @@ const scrollToElement = (options) => {
780
790
  const elementBlockOrigin = origin === 'center' ? elementBlockCenter : origin === 'end' ? elementBlockEnd : elementBlockStart;
781
791
  const containerInlineOrigin = origin === 'center' ? containerInlineCenter : origin === 'end' ? containerInlineEnd : containerInlineStart;
782
792
  const containerBlockOrigin = origin === 'center' ? containerBlockCenter : origin === 'end' ? containerBlockEnd : containerBlockStart;
783
- const inlineOffset = elementInlineOrigin - containerInlineOrigin - scrollInlineMargin;
784
- const blockOffset = elementBlockOrigin - containerBlockOrigin - scrollBlockMargin;
793
+ const inlineOffsetTemp = elementInlineOrigin - containerInlineOrigin;
794
+ const blockOffsetTemp = elementBlockOrigin - containerBlockOrigin;
795
+ const scrollDirInline = inlineOffsetTemp > 0 ? 'forward' : 'back';
796
+ const scrollDirBlock = blockOffsetTemp > 0 ? 'forward' : 'back';
797
+ const inlineOffset = elementInlineOrigin -
798
+ containerInlineOrigin +
799
+ (scrollDirInline === 'forward' ? scrollInlineMargin : -scrollInlineMargin);
800
+ const blockOffset = elementBlockOrigin - containerBlockOrigin + (scrollDirBlock === 'forward' ? scrollBlockMargin : -scrollBlockMargin);
785
801
  let inlineScroll = direction === 'block' ? undefined : inlineOffset;
786
802
  let blockScroll = direction === 'inline' ? undefined : blockOffset;
787
803
  if (origin === 'nearest') {
@@ -797,11 +813,25 @@ const scrollToElement = (options) => {
797
813
  }
798
814
  }
799
815
  container.scrollTo({
800
- left: inlineScroll,
801
- top: blockScroll,
816
+ left: container.scrollLeft + (inlineScroll || 0),
817
+ top: container.scrollTop + (blockScroll || 0),
802
818
  behavior,
803
819
  });
804
820
  };
821
+ const getElementVisibleStates = (options) => {
822
+ let { container } = options;
823
+ const { elements } = options;
824
+ container ||= document.documentElement;
825
+ const rect = container.getBoundingClientRect();
826
+ const elementVisibleStates = elements
827
+ .map((e) => {
828
+ if (!e || !container)
829
+ return null;
830
+ return isElementVisible({ container, element: e, containerRect: rect });
831
+ })
832
+ .filter(Boolean);
833
+ return elementVisibleStates;
834
+ };
805
835
 
806
836
  const isObject = (value) => {
807
837
  return typeof value === 'object' && value !== null;
@@ -1248,15 +1278,15 @@ class AnimatableDirective {
1248
1278
  .subscribe();
1249
1279
  }
1250
1280
  }
1251
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: AnimatableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1252
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: AnimatableDirective, isStandalone: true, selector: "[etAnimatable]", inputs: { animatedElement: ["etAnimatable", "animatedElement"] }, providers: [
1281
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: AnimatableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1282
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: AnimatableDirective, isStandalone: true, selector: "[etAnimatable]", inputs: { animatedElement: ["etAnimatable", "animatedElement"] }, providers: [
1253
1283
  {
1254
1284
  provide: ANIMATABLE_TOKEN,
1255
1285
  useExisting: AnimatableDirective,
1256
1286
  },
1257
1287
  ], exportAs: ["etAnimatable"], ngImport: i0 }); }
1258
1288
  }
1259
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: AnimatableDirective, decorators: [{
1289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: AnimatableDirective, decorators: [{
1260
1290
  type: Directive,
1261
1291
  args: [{
1262
1292
  selector: '[etAnimatable]',
@@ -1294,6 +1324,7 @@ class AnimatedLifecycleDirective {
1294
1324
  this._bindings = createReactiveBindings({
1295
1325
  attribute: 'class.et-force-invisible',
1296
1326
  observable: this._state$.pipe(map((state) => state === 'init')),
1327
+ eager: true,
1297
1328
  });
1298
1329
  }
1299
1330
  get state() {
@@ -1356,15 +1387,15 @@ class AnimatedLifecycleDirective {
1356
1387
  }), takeUntil(this._destroy$), take(1))
1357
1388
  .subscribe();
1358
1389
  }
1359
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: AnimatedLifecycleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1360
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: AnimatedLifecycleDirective, isStandalone: true, selector: "[etAnimatedLifecycle]", providers: [
1390
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: AnimatedLifecycleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1391
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: AnimatedLifecycleDirective, isStandalone: true, selector: "[etAnimatedLifecycle]", providers: [
1361
1392
  {
1362
1393
  provide: ANIMATED_LIFECYCLE_TOKEN,
1363
1394
  useExisting: AnimatedLifecycleDirective,
1364
1395
  },
1365
1396
  ], exportAs: ["etAnimatedLifecycle"], hostDirectives: [{ directive: AnimatableDirective }], ngImport: i0 }); }
1366
1397
  }
1367
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: AnimatedLifecycleDirective, decorators: [{
1398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: AnimatedLifecycleDirective, decorators: [{
1368
1399
  type: Directive,
1369
1400
  args: [{
1370
1401
  selector: '[etAnimatedLifecycle]',
@@ -1385,16 +1416,16 @@ class ClickObserverFactory {
1385
1416
  create() {
1386
1417
  return fromEvent(document, 'click');
1387
1418
  }
1388
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ClickObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1389
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ClickObserverFactory, providedIn: 'root' }); }
1419
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ClickObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1420
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ClickObserverFactory, providedIn: 'root' }); }
1390
1421
  }
1391
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ClickObserverFactory, decorators: [{
1422
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ClickObserverFactory, decorators: [{
1392
1423
  type: Injectable,
1393
1424
  args: [{ providedIn: 'root' }]
1394
1425
  }] });
1395
1426
  class ClickObserverService {
1396
- constructor(_clickObserverFactory) {
1397
- this._clickObserverFactory = _clickObserverFactory;
1427
+ constructor() {
1428
+ this._clickObserverFactory = inject(ClickObserverFactory);
1398
1429
  this._observedElements = new Map();
1399
1430
  }
1400
1431
  ngOnDestroy() {
@@ -1441,29 +1472,29 @@ class ClickObserverService {
1441
1472
  this._observedElements.delete(element);
1442
1473
  }
1443
1474
  }
1444
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ClickObserverService, deps: [{ token: ClickObserverFactory }], target: i0.ɵɵFactoryTarget.Injectable }); }
1445
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ClickObserverService, providedIn: 'root' }); }
1475
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ClickObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1476
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ClickObserverService, providedIn: 'root' }); }
1446
1477
  }
1447
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ClickObserverService, decorators: [{
1478
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ClickObserverService, decorators: [{
1448
1479
  type: Injectable,
1449
1480
  args: [{ providedIn: 'root' }]
1450
- }], ctorParameters: function () { return [{ type: ClickObserverFactory }]; } });
1481
+ }] });
1451
1482
 
1452
1483
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
1453
1484
  class MutationObserverFactory {
1454
1485
  create(callback) {
1455
1486
  return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);
1456
1487
  }
1457
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: MutationObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1458
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: MutationObserverFactory, providedIn: 'root' }); }
1488
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: MutationObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1489
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: MutationObserverFactory, providedIn: 'root' }); }
1459
1490
  }
1460
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: MutationObserverFactory, decorators: [{
1491
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: MutationObserverFactory, decorators: [{
1461
1492
  type: Injectable,
1462
1493
  args: [{ providedIn: 'root' }]
1463
1494
  }] });
1464
1495
  class ContentObserverService {
1465
- constructor(_mutationObserverFactory) {
1466
- this._mutationObserverFactory = _mutationObserverFactory;
1496
+ constructor() {
1497
+ this._mutationObserverFactory = inject(MutationObserverFactory);
1467
1498
  this._observedElements = new Map();
1468
1499
  }
1469
1500
  ngOnDestroy() {
@@ -1516,13 +1547,13 @@ class ContentObserverService {
1516
1547
  this._observedElements.delete(element);
1517
1548
  }
1518
1549
  }
1519
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ContentObserverService, deps: [{ token: MutationObserverFactory }], target: i0.ɵɵFactoryTarget.Injectable }); }
1520
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ContentObserverService, providedIn: 'root' }); }
1550
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ContentObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1551
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ContentObserverService, providedIn: 'root' }); }
1521
1552
  }
1522
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ContentObserverService, decorators: [{
1553
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ContentObserverService, decorators: [{
1523
1554
  type: Injectable,
1524
1555
  args: [{ providedIn: 'root' }]
1525
- }], ctorParameters: function () { return [{ type: MutationObserverFactory }]; } });
1556
+ }] });
1526
1557
 
1527
1558
  class FocusVisibleService {
1528
1559
  get isFocusVisible() {
@@ -1545,10 +1576,10 @@ class FocusVisibleService {
1545
1576
  onPointerDown() {
1546
1577
  this._hadKeyboardEvent = false;
1547
1578
  }
1548
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: FocusVisibleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1549
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: FocusVisibleService, providedIn: 'root' }); }
1579
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FocusVisibleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1580
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FocusVisibleService, providedIn: 'root' }); }
1550
1581
  }
1551
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: FocusVisibleService, decorators: [{
1582
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FocusVisibleService, decorators: [{
1552
1583
  type: Injectable,
1553
1584
  args: [{
1554
1585
  providedIn: 'root',
@@ -1560,16 +1591,16 @@ class ResizeObserverFactory {
1560
1591
  create(callback) {
1561
1592
  return typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(callback);
1562
1593
  }
1563
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ResizeObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1564
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ResizeObserverFactory, providedIn: 'root' }); }
1594
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ResizeObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1595
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ResizeObserverFactory, providedIn: 'root' }); }
1565
1596
  }
1566
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ResizeObserverFactory, decorators: [{
1597
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ResizeObserverFactory, decorators: [{
1567
1598
  type: Injectable,
1568
1599
  args: [{ providedIn: 'root' }]
1569
1600
  }] });
1570
1601
  class ResizeObserverService {
1571
- constructor(_mutationObserverFactory) {
1572
- this._mutationObserverFactory = _mutationObserverFactory;
1602
+ constructor() {
1603
+ this._mutationObserverFactory = inject(ResizeObserverFactory);
1573
1604
  this._observedElements = new Map();
1574
1605
  }
1575
1606
  ngOnDestroy() {
@@ -1618,13 +1649,13 @@ class ResizeObserverService {
1618
1649
  this._observedElements.delete(element);
1619
1650
  }
1620
1651
  }
1621
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ResizeObserverService, deps: [{ token: ResizeObserverFactory }], target: i0.ɵɵFactoryTarget.Injectable }); }
1622
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ResizeObserverService, providedIn: 'root' }); }
1652
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ResizeObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1653
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ResizeObserverService, providedIn: 'root' }); }
1623
1654
  }
1624
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ResizeObserverService, decorators: [{
1655
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ResizeObserverService, decorators: [{
1625
1656
  type: Injectable,
1626
1657
  args: [{ providedIn: 'root' }]
1627
- }], ctorParameters: function () { return [{ type: ResizeObserverFactory }]; } });
1658
+ }] });
1628
1659
 
1629
1660
  const ET_DISABLE_SCROLL_TOP = Symbol('ET_DISABLE_SCROLL_TOP');
1630
1661
  const ET_DISABLE_SCROLL_TOP_AS_RETURN_ROUTE = Symbol('ET_DISABLE_SCROLL_TOP_AS_RETURN_ROUTE');
@@ -1789,10 +1820,10 @@ class RouterStateService {
1789
1820
  }
1790
1821
  return changes;
1791
1822
  }
1792
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: RouterStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1793
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: RouterStateService, providedIn: 'root' }); }
1823
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: RouterStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1824
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: RouterStateService, providedIn: 'root' }); }
1794
1825
  }
1795
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: RouterStateService, decorators: [{
1826
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: RouterStateService, decorators: [{
1796
1827
  type: Injectable,
1797
1828
  args: [{
1798
1829
  providedIn: 'root',
@@ -1851,9 +1882,10 @@ class ViewportService {
1851
1882
  get currentViewport() {
1852
1883
  return this.getCurrentViewport([this.isXs, this.isSm, this.isMd, this.isLg, this.isXl, this.is2Xl]);
1853
1884
  }
1854
- constructor(_viewportConfig, _breakpointObserver) {
1855
- this._breakpointObserver = _breakpointObserver;
1885
+ constructor() {
1856
1886
  this._resizeObserverService = inject(ResizeObserverService);
1887
+ this._viewportConfig = inject(VIEWPORT_CONFIG, { optional: true }) || DEFAULT_VIEWPORT_CONFIG;
1888
+ this._breakpointObserver = inject(BreakpointObserver);
1857
1889
  this._viewportMonitorStop$ = new Subject();
1858
1890
  this._isViewportMonitorEnabled = false;
1859
1891
  this._isXs$ = new BehaviorSubject(false);
@@ -1865,7 +1897,6 @@ class ViewportService {
1865
1897
  this._viewportSize$ = new BehaviorSubject(null);
1866
1898
  this._scrollbarSize$ = new BehaviorSubject(null);
1867
1899
  this.currentViewport$ = combineLatest([this.isXs$, this.isSm$, this.isMd$, this.isLg$, this.isXl$, this.is2Xl$]).pipe(map((val) => this.getCurrentViewport(val)), shareReplay(1));
1868
- this._viewportConfig = _viewportConfig || DEFAULT_VIEWPORT_CONFIG;
1869
1900
  this._observeDefaultBreakpoints();
1870
1901
  }
1871
1902
  observe(options) {
@@ -1996,8 +2027,8 @@ class ViewportService {
1996
2027
  }
1997
2028
  return 'xs';
1998
2029
  }
1999
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ViewportService, deps: [{ token: VIEWPORT_CONFIG, optional: true }, { token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable }); }
2000
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ViewportService, providedIn: 'root' }); }
2030
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ViewportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2031
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ViewportService, providedIn: 'root' }); }
2001
2032
  }
2002
2033
  __decorate([
2003
2034
  Memo(),
@@ -2015,17 +2046,12 @@ __decorate([
2015
2046
  __metadata("design:paramtypes", [Object]),
2016
2047
  __metadata("design:returntype", void 0)
2017
2048
  ], ViewportService.prototype, "_buildMediaQuery", null);
2018
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ViewportService, decorators: [{
2049
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ViewportService, decorators: [{
2019
2050
  type: Injectable,
2020
2051
  args: [{
2021
2052
  providedIn: 'root',
2022
2053
  }]
2023
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
2024
- type: Inject,
2025
- args: [VIEWPORT_CONFIG]
2026
- }, {
2027
- type: Optional
2028
- }] }, { type: i1.BreakpointObserver }]; }, propDecorators: { _getViewportSize: [], _buildMediaQuery: [] } });
2054
+ }], ctorParameters: function () { return []; }, propDecorators: { _getViewportSize: [], _buildMediaQuery: [] } });
2029
2055
 
2030
2056
  class ObserveResizeDirective {
2031
2057
  constructor() {
@@ -2041,14 +2067,14 @@ class ObserveResizeDirective {
2041
2067
  return this._disabled;
2042
2068
  }
2043
2069
  set disabled(value) {
2044
- this._disabled = coerceBooleanProperty(value);
2070
+ this._disabled = booleanAttribute(value);
2045
2071
  this._disabled ? this._unsubscribe() : this._subscribe();
2046
2072
  }
2047
2073
  get debounce() {
2048
2074
  return this._debounce;
2049
2075
  }
2050
2076
  set debounce(value) {
2051
- this._debounce = coerceNumberProperty(value);
2077
+ this._debounce = numberAttribute(value) ?? null;
2052
2078
  this._subscribe();
2053
2079
  }
2054
2080
  ngAfterContentInit() {
@@ -2069,10 +2095,10 @@ class ObserveResizeDirective {
2069
2095
  _unsubscribe() {
2070
2096
  this._currentSubscription?.unsubscribe();
2071
2097
  }
2072
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ObserveResizeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2073
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: ObserveResizeDirective, isStandalone: true, selector: "[etObserveResize]", inputs: { disabled: ["etObserveResizeDisabled", "disabled"], debounce: ["etObserveResizeDebounce", "debounce"] }, outputs: { valueChange: "etObserveResize" }, exportAs: ["etObserveResize"], ngImport: i0 }); }
2098
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ObserveResizeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2099
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: ObserveResizeDirective, isStandalone: true, selector: "[etObserveResize]", inputs: { disabled: ["etObserveResizeDisabled", "disabled"], debounce: ["etObserveResizeDebounce", "debounce"] }, outputs: { valueChange: "etObserveResize" }, exportAs: ["etObserveResize"], ngImport: i0 }); }
2074
2100
  }
2075
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ObserveResizeDirective, decorators: [{
2101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ObserveResizeDirective, decorators: [{
2076
2102
  type: Directive,
2077
2103
  args: [{
2078
2104
  selector: '[etObserveResize]',
@@ -2308,10 +2334,10 @@ class AnimatedOverlayDirective {
2308
2334
  _reposition() {
2309
2335
  this._popper?.update();
2310
2336
  }
2311
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: AnimatedOverlayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2312
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: AnimatedOverlayDirective, isStandalone: true, inputs: { placement: "placement", allowedAutoPlacements: "allowedAutoPlacements", offset: "offset", arrowPadding: "arrowPadding" }, hostDirectives: [{ directive: ObserveResizeDirective }], ngImport: i0 }); }
2337
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: AnimatedOverlayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2338
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: AnimatedOverlayDirective, isStandalone: true, inputs: { placement: "placement", allowedAutoPlacements: "allowedAutoPlacements", offset: "offset", arrowPadding: "arrowPadding" }, hostDirectives: [{ directive: ObserveResizeDirective }], ngImport: i0 }); }
2313
2339
  }
2314
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: AnimatedOverlayDirective, decorators: [{
2340
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: AnimatedOverlayDirective, decorators: [{
2315
2341
  type: Directive,
2316
2342
  args: [{
2317
2343
  standalone: true,
@@ -2348,10 +2374,10 @@ class ClickOutsideDirective {
2348
2374
  ngOnDestroy() {
2349
2375
  this._subscription?.unsubscribe();
2350
2376
  }
2351
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2352
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: ClickOutsideDirective, isStandalone: true, selector: "[etClickOutside]", outputs: { etClickOutside: "etClickOutside" }, ngImport: i0 }); }
2377
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2378
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: ClickOutsideDirective, isStandalone: true, selector: "[etClickOutside]", outputs: { etClickOutside: "etClickOutside" }, ngImport: i0 }); }
2353
2379
  }
2354
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ClickOutsideDirective, decorators: [{
2380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ClickOutsideDirective, decorators: [{
2355
2381
  type: Directive,
2356
2382
  args: [{
2357
2383
  selector: '[etClickOutside]',
@@ -2383,12 +2409,15 @@ class CursorDragScrollDirective {
2383
2409
  };
2384
2410
  this._enabled = false;
2385
2411
  this.allowedDirection = 'both';
2412
+ this.cursorDragStart = new EventEmitter();
2413
+ this.cursorDragMove = new EventEmitter();
2414
+ this.cursorDragEnd = new EventEmitter();
2386
2415
  }
2387
2416
  get enabled() {
2388
2417
  return this._enabled;
2389
2418
  }
2390
2419
  set enabled(value) {
2391
- this._enabled = coerceBooleanProperty(value);
2420
+ this._enabled = booleanAttribute(value);
2392
2421
  if (this._enabled) {
2393
2422
  this._enableCursorDragScroll();
2394
2423
  }
@@ -2458,6 +2487,7 @@ class CursorDragScrollDirective {
2458
2487
  const element = this._elementRef.nativeElement;
2459
2488
  if (!this._isScrolling) {
2460
2489
  this._isScrolling = true;
2490
+ this.cursorDragStart.emit();
2461
2491
  document.documentElement.style.cursor = 'grabbing';
2462
2492
  element.style.cursor = 'grabbing';
2463
2493
  element.classList.add(CURSOR_DRAG_SCROLLING_CLASS);
@@ -2474,6 +2504,7 @@ class CursorDragScrollDirective {
2474
2504
  if (shouldScrollX) {
2475
2505
  element.scrollLeft = this._currentScrollState.left - dx;
2476
2506
  }
2507
+ this.cursorDragMove.emit();
2477
2508
  }
2478
2509
  }
2479
2510
  }
@@ -2489,6 +2520,7 @@ class CursorDragScrollDirective {
2489
2520
  this._elementRef.nativeElement.style.cursor = 'grab';
2490
2521
  this._elementRef.nativeElement.classList.remove(CURSOR_DRAG_SCROLLING_CLASS);
2491
2522
  this._elementRef.nativeElement.classList.remove(CURSOR_DRAG_SCROLLING_PREPARED_CLASS);
2523
+ this.cursorDragEnd.emit();
2492
2524
  }
2493
2525
  _updateCanScrollState() {
2494
2526
  this._canScroll = elementCanScroll(this._elementRef.nativeElement);
@@ -2499,10 +2531,10 @@ class CursorDragScrollDirective {
2499
2531
  this._elementRef.nativeElement.style.cursor = 'default';
2500
2532
  }
2501
2533
  }
2502
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: CursorDragScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2503
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: CursorDragScrollDirective, isStandalone: true, selector: "[etCursorDragScroll]", inputs: { enabled: ["etCursorDragScroll", "enabled"], allowedDirection: "allowedDirection" }, exportAs: ["etCursorDragScroll"], ngImport: i0 }); }
2534
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: CursorDragScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2535
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: CursorDragScrollDirective, isStandalone: true, selector: "[etCursorDragScroll]", inputs: { enabled: ["etCursorDragScroll", "enabled"], allowedDirection: "allowedDirection" }, outputs: { cursorDragStart: "cursorDragStart", cursorDragMove: "cursorDragMove", cursorDragEnd: "cursorDragEnd" }, exportAs: ["etCursorDragScroll"], ngImport: i0 }); }
2504
2536
  }
2505
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: CursorDragScrollDirective, decorators: [{
2537
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: CursorDragScrollDirective, decorators: [{
2506
2538
  type: Directive,
2507
2539
  args: [{
2508
2540
  selector: '[etCursorDragScroll]',
@@ -2514,6 +2546,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
2514
2546
  args: ['etCursorDragScroll']
2515
2547
  }], allowedDirection: [{
2516
2548
  type: Input
2549
+ }], cursorDragStart: [{
2550
+ type: Output
2551
+ }], cursorDragMove: [{
2552
+ type: Output
2553
+ }], cursorDragEnd: [{
2554
+ type: Output
2517
2555
  }] } });
2518
2556
 
2519
2557
  const DELAYABLE_TOKEN = new InjectionToken('DELAYABLE_DIRECTIVE_TOKEN');
@@ -2545,15 +2583,15 @@ class DelayableDirective {
2545
2583
  }
2546
2584
  this._isDelayed$.next(val);
2547
2585
  }
2548
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: DelayableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2549
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: DelayableDirective, isStandalone: true, selector: "[etDelayable]", providers: [
2586
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DelayableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2587
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: DelayableDirective, isStandalone: true, selector: "[etDelayable]", providers: [
2550
2588
  {
2551
2589
  provide: DELAYABLE_TOKEN,
2552
2590
  useExisting: DelayableDirective,
2553
2591
  },
2554
2592
  ], exportAs: ["etDelayable"], ngImport: i0 }); }
2555
2593
  }
2556
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: DelayableDirective, decorators: [{
2594
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DelayableDirective, decorators: [{
2557
2595
  type: Directive,
2558
2596
  args: [{
2559
2597
  selector: '[etDelayable]',
@@ -2572,23 +2610,17 @@ const IS_ACTIVE_ELEMENT = new InjectionToken('ET_IS_ACTIVE_ELEMENT');
2572
2610
  class IsActiveElementDirective {
2573
2611
  constructor() {
2574
2612
  this.elementRef = inject(ElementRef);
2575
- this._isActiveElement = false;
2576
- }
2577
- get isActiveElement() {
2578
- return this._isActiveElement;
2613
+ this.isActiveElement = false;
2579
2614
  }
2580
- set isActiveElement(value) {
2581
- this._isActiveElement = coerceBooleanProperty(value);
2582
- }
2583
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: IsActiveElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2584
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: IsActiveElementDirective, isStandalone: true, selector: "[etIsActiveElement]", inputs: { isActiveElement: ["etIsActiveElement", "isActiveElement"] }, providers: [
2615
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: IsActiveElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2616
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: IsActiveElementDirective, isStandalone: true, selector: "[etIsActiveElement]", inputs: { isActiveElement: ["etIsActiveElement", "isActiveElement", booleanAttribute] }, providers: [
2585
2617
  {
2586
2618
  provide: IS_ACTIVE_ELEMENT,
2587
2619
  useExisting: IsActiveElementDirective,
2588
2620
  },
2589
2621
  ], ngImport: i0 }); }
2590
2622
  }
2591
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: IsActiveElementDirective, decorators: [{
2623
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: IsActiveElementDirective, decorators: [{
2592
2624
  type: Directive,
2593
2625
  args: [{
2594
2626
  selector: '[etIsActiveElement]',
@@ -2602,30 +2634,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
2602
2634
  }]
2603
2635
  }], propDecorators: { isActiveElement: [{
2604
2636
  type: Input,
2605
- args: ['etIsActiveElement']
2637
+ args: [{ alias: 'etIsActiveElement', transform: booleanAttribute }]
2606
2638
  }] } });
2607
2639
 
2608
2640
  const IS_ELEMENT = new InjectionToken('ET_IS_ELEMENT');
2609
2641
  class IsElementDirective {
2610
2642
  constructor() {
2611
2643
  this.elementRef = inject(ElementRef);
2612
- this._isElement = false;
2613
- }
2614
- get isElement() {
2615
- return this._isElement;
2616
- }
2617
- set isElement(value) {
2618
- this._isElement = coerceBooleanProperty(value);
2644
+ this.isElement = false;
2619
2645
  }
2620
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: IsElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2621
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: IsElementDirective, isStandalone: true, selector: "[etIsElement]", inputs: { isElement: ["etIsElement", "isElement"] }, providers: [
2646
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: IsElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2647
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: IsElementDirective, isStandalone: true, selector: "[etIsElement]", inputs: { isElement: ["etIsElement", "isElement", booleanAttribute] }, providers: [
2622
2648
  {
2623
2649
  provide: IS_ELEMENT,
2624
2650
  useExisting: IsElementDirective,
2625
2651
  },
2626
2652
  ], ngImport: i0 }); }
2627
2653
  }
2628
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: IsElementDirective, decorators: [{
2654
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: IsElementDirective, decorators: [{
2629
2655
  type: Directive,
2630
2656
  args: [{
2631
2657
  selector: '[etIsElement]',
@@ -2639,7 +2665,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
2639
2665
  }]
2640
2666
  }], propDecorators: { isElement: [{
2641
2667
  type: Input,
2642
- args: ['etIsElement']
2668
+ args: [{ alias: 'etIsElement', transform: booleanAttribute }]
2643
2669
  }] } });
2644
2670
 
2645
2671
  class LetContext {
@@ -2652,17 +2678,16 @@ class LetContext {
2652
2678
  }
2653
2679
 
2654
2680
  class LetDirective {
2681
+ constructor() {
2682
+ this._viewContainer = inject(ViewContainerRef);
2683
+ this._context = new LetContext();
2684
+ this._templateRef = inject(TemplateRef);
2685
+ this._viewRef = null;
2686
+ }
2655
2687
  set etLet(value) {
2656
2688
  this._context.$implicit = this._context.etLet = value;
2657
2689
  this._updateView();
2658
2690
  }
2659
- constructor(_viewContainer, templateRef) {
2660
- this._viewContainer = _viewContainer;
2661
- this._context = new LetContext();
2662
- this._templateRef = null;
2663
- this._viewRef = null;
2664
- this._templateRef = templateRef;
2665
- }
2666
2691
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2667
2692
  static ngTemplateContextGuard(dir, ctx) {
2668
2693
  return true;
@@ -2675,16 +2700,16 @@ class LetDirective {
2675
2700
  }
2676
2701
  }
2677
2702
  }
2678
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: LetDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
2679
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: LetDirective, isStandalone: true, selector: "[etLet]", inputs: { etLet: "etLet" }, ngImport: i0 }); }
2703
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: LetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2704
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: LetDirective, isStandalone: true, selector: "[etLet]", inputs: { etLet: "etLet" }, ngImport: i0 }); }
2680
2705
  }
2681
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: LetDirective, decorators: [{
2706
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: LetDirective, decorators: [{
2682
2707
  type: Directive,
2683
2708
  args: [{
2684
2709
  selector: '[etLet]',
2685
2710
  standalone: true,
2686
2711
  }]
2687
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }]; }, propDecorators: { etLet: [{
2712
+ }], propDecorators: { etLet: [{
2688
2713
  type: Input
2689
2714
  }] } });
2690
2715
 
@@ -2702,14 +2727,14 @@ class ObserveContentDirective {
2702
2727
  return this._disabled;
2703
2728
  }
2704
2729
  set disabled(value) {
2705
- this._disabled = coerceBooleanProperty(value);
2730
+ this._disabled = booleanAttribute(value);
2706
2731
  this._disabled ? this._unsubscribe() : this._subscribe();
2707
2732
  }
2708
2733
  get debounce() {
2709
2734
  return this._debounce;
2710
2735
  }
2711
2736
  set debounce(value) {
2712
- this._debounce = coerceNumberProperty(value);
2737
+ this._debounce = numberAttribute(value) ?? null;
2713
2738
  this._subscribe();
2714
2739
  }
2715
2740
  ngAfterContentInit() {
@@ -2730,10 +2755,10 @@ class ObserveContentDirective {
2730
2755
  _unsubscribe() {
2731
2756
  this._currentSubscription?.unsubscribe();
2732
2757
  }
2733
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ObserveContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2734
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: ObserveContentDirective, isStandalone: true, selector: "[etObserveContent]", inputs: { disabled: ["etObserveContentDisabled", "disabled"], debounce: ["etObserveContentDebounce", "debounce"] }, outputs: { valueChange: "etObserveContent" }, exportAs: ["etObserveContent"], ngImport: i0 }); }
2758
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ObserveContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2759
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: ObserveContentDirective, isStandalone: true, selector: "[etObserveContent]", inputs: { disabled: ["etObserveContentDisabled", "disabled"], debounce: ["etObserveContentDebounce", "debounce"] }, outputs: { valueChange: "etObserveContent" }, exportAs: ["etObserveContent"], ngImport: i0 }); }
2735
2760
  }
2736
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ObserveContentDirective, decorators: [{
2761
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ObserveContentDirective, decorators: [{
2737
2762
  type: Directive,
2738
2763
  args: [{
2739
2764
  selector: '[etObserveContent]',
@@ -2754,18 +2779,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
2754
2779
  const SCROLL_OBSERVER_FIRST_ELEMENT_CLASS = 'et-scroll-observer-first-element';
2755
2780
  class ScrollObserverFirstElementDirective {
2756
2781
  constructor() {
2757
- this._isFirstElement = false;
2758
- }
2759
- get isFirstElement() {
2760
- return this._isFirstElement;
2761
- }
2762
- set isFirstElement(value) {
2763
- this._isFirstElement = coerceBooleanProperty(value);
2782
+ this.isFirstElement = false;
2764
2783
  }
2765
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ScrollObserverFirstElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2766
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: ScrollObserverFirstElementDirective, isStandalone: true, selector: "[etScrollObserverFirstElement]", inputs: { isFirstElement: ["etScrollObserverFirstElement", "isFirstElement"] }, host: { properties: { "class.et-scroll-observer-first-element": "this.isFirstElement" } }, ngImport: i0 }); }
2784
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ScrollObserverFirstElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2785
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: ScrollObserverFirstElementDirective, isStandalone: true, selector: "[etScrollObserverFirstElement]", inputs: { isFirstElement: ["etScrollObserverFirstElement", "isFirstElement", booleanAttribute] }, host: { properties: { "class.et-scroll-observer-first-element": "this.isFirstElement" } }, ngImport: i0 }); }
2767
2786
  }
2768
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ScrollObserverFirstElementDirective, decorators: [{
2787
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ScrollObserverFirstElementDirective, decorators: [{
2769
2788
  type: Directive,
2770
2789
  args: [{
2771
2790
  selector: '[etScrollObserverFirstElement]',
@@ -2773,7 +2792,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
2773
2792
  }]
2774
2793
  }], propDecorators: { isFirstElement: [{
2775
2794
  type: Input,
2776
- args: ['etScrollObserverFirstElement']
2795
+ args: [{ alias: 'etScrollObserverFirstElement', transform: booleanAttribute }]
2777
2796
  }, {
2778
2797
  type: HostBinding,
2779
2798
  args: [`class.${SCROLL_OBSERVER_FIRST_ELEMENT_CLASS}`]
@@ -2781,10 +2800,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
2781
2800
 
2782
2801
  const SCROLL_OBSERVER_IGNORE_TARGET_CLASS = 'et-scroll-observer-ignore-target';
2783
2802
  class ScrollObserverIgnoreTargetDirective {
2784
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ScrollObserverIgnoreTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2785
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: ScrollObserverIgnoreTargetDirective, isStandalone: true, selector: "[etScrollObserverIgnoreTarget]", host: { classAttribute: "et-scroll-observer-ignore-target" }, ngImport: i0 }); }
2803
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ScrollObserverIgnoreTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2804
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: ScrollObserverIgnoreTargetDirective, isStandalone: true, selector: "[etScrollObserverIgnoreTarget]", host: { classAttribute: "et-scroll-observer-ignore-target" }, ngImport: i0 }); }
2786
2805
  }
2787
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ScrollObserverIgnoreTargetDirective, decorators: [{
2806
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ScrollObserverIgnoreTargetDirective, decorators: [{
2788
2807
  type: Directive,
2789
2808
  args: [{
2790
2809
  selector: '[etScrollObserverIgnoreTarget]',
@@ -2798,18 +2817,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
2798
2817
  const SCROLL_OBSERVER_LAST_ELEMENT_CLASS = 'et-scroll-observer-last-element';
2799
2818
  class ScrollObserverLastElementDirective {
2800
2819
  constructor() {
2801
- this._isLastElement = false;
2802
- }
2803
- get isLastElement() {
2804
- return this._isLastElement;
2805
- }
2806
- set isLastElement(value) {
2807
- this._isLastElement = coerceBooleanProperty(value);
2820
+ this.isLastElement = false;
2808
2821
  }
2809
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ScrollObserverLastElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2810
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: ScrollObserverLastElementDirective, isStandalone: true, selector: "[etScrollObserverLastElement]", inputs: { isLastElement: ["etScrollObserverLastElement", "isLastElement"] }, host: { properties: { "class.et-scroll-observer-last-element": "this.isLastElement" }, classAttribute: "et-scroll-observer-last-element" }, ngImport: i0 }); }
2822
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ScrollObserverLastElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2823
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", 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 }); }
2811
2824
  }
2812
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ScrollObserverLastElementDirective, decorators: [{
2825
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ScrollObserverLastElementDirective, decorators: [{
2813
2826
  type: Directive,
2814
2827
  args: [{
2815
2828
  selector: '[etScrollObserverLastElement]',
@@ -2820,7 +2833,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
2820
2833
  }]
2821
2834
  }], propDecorators: { isLastElement: [{
2822
2835
  type: Input,
2823
- args: ['etScrollObserverLastElement']
2836
+ args: [{ alias: 'etScrollObserverLastElement', transform: booleanAttribute }]
2824
2837
  }, {
2825
2838
  type: HostBinding,
2826
2839
  args: [`class.${SCROLL_OBSERVER_LAST_ELEMENT_CLASS}`]
@@ -2840,7 +2853,7 @@ class ObserveScrollStateDirective {
2840
2853
  first: this._firstCurrentChild,
2841
2854
  last: this._lastCurrentChild,
2842
2855
  };
2843
- this._rootMargin = 0;
2856
+ this.rootMargin = 0;
2844
2857
  this._threshold = [0.99999, 0.9999, 0.999, 0.99, 1];
2845
2858
  this._intersectionObserver = null;
2846
2859
  this.valueChange = new EventEmitter();
@@ -2861,21 +2874,15 @@ class ObserveScrollStateDirective {
2861
2874
  const element = this._elementRef.nativeElement.children[this._elementRef.nativeElement.children.length - 1];
2862
2875
  return this._getNonIgnoredChild(element, 'previous');
2863
2876
  }
2864
- get observerRootMargin() {
2865
- return this._rootMargin;
2866
- }
2867
- set observerRootMargin(value) {
2868
- this._rootMargin = coerceNumberProperty(value);
2869
- }
2870
2877
  get observerThreshold() {
2871
2878
  return this._threshold;
2872
2879
  }
2873
2880
  set observerThreshold(value) {
2874
2881
  if (Array.isArray(value)) {
2875
- this._threshold = value;
2882
+ this._threshold = value.map((threshold) => numberAttribute(threshold));
2876
2883
  return;
2877
2884
  }
2878
- this._threshold = coerceNumberProperty(value);
2885
+ this._threshold = numberAttribute(value);
2879
2886
  }
2880
2887
  ngOnInit() {
2881
2888
  this._contentObserverService
@@ -2928,7 +2935,7 @@ class ObserveScrollStateDirective {
2928
2935
  });
2929
2936
  }, {
2930
2937
  root: this._elementRef.nativeElement,
2931
- rootMargin: this._rootMargin ? `${this._rootMargin}px` : undefined,
2938
+ rootMargin: this.rootMargin ? `${this.rootMargin}px` : undefined,
2932
2939
  threshold: this._threshold,
2933
2940
  });
2934
2941
  return observer;
@@ -2969,15 +2976,15 @@ class ObserveScrollStateDirective {
2969
2976
  }
2970
2977
  return element;
2971
2978
  }
2972
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ObserveScrollStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2973
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: ObserveScrollStateDirective, isStandalone: true, selector: "[etObserveScrollState]", inputs: { observerRootMargin: "observerRootMargin", observerThreshold: "observerThreshold" }, outputs: { valueChange: "etObserveScrollState" }, providers: [
2979
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ObserveScrollStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2980
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: ObserveScrollStateDirective, isStandalone: true, selector: "[etObserveScrollState]", inputs: { rootMargin: ["rootMargin", "rootMargin", numberAttribute], observerThreshold: "observerThreshold" }, outputs: { valueChange: "etObserveScrollState" }, providers: [
2974
2981
  {
2975
2982
  provide: OBSERVE_SCROLL_STATE,
2976
2983
  useExisting: ObserveScrollStateDirective,
2977
2984
  },
2978
2985
  ], exportAs: ["etObserveScrollState"], ngImport: i0 }); }
2979
2986
  }
2980
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ObserveScrollStateDirective, decorators: [{
2987
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ObserveScrollStateDirective, decorators: [{
2981
2988
  type: Directive,
2982
2989
  args: [{
2983
2990
  selector: '[etObserveScrollState]',
@@ -2990,8 +2997,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
2990
2997
  },
2991
2998
  ],
2992
2999
  }]
2993
- }], propDecorators: { observerRootMargin: [{
2994
- type: Input
3000
+ }], propDecorators: { rootMargin: [{
3001
+ type: Input,
3002
+ args: [{ transform: numberAttribute }]
2995
3003
  }], observerThreshold: [{
2996
3004
  type: Input
2997
3005
  }], valueChange: [{
@@ -3004,7 +3012,7 @@ class RepeatDirective {
3004
3012
  return this._repeatCount;
3005
3013
  }
3006
3014
  set repeatCount(value) {
3007
- this._repeatCount = coerceNumberProperty(value);
3015
+ this._repeatCount = numberAttribute(value);
3008
3016
  this._render();
3009
3017
  }
3010
3018
  constructor(_mainTemplateRef, _viewContainerRef) {
@@ -3018,10 +3026,10 @@ class RepeatDirective {
3018
3026
  this._viewContainerRef.createEmbeddedView(this._mainTemplateRef);
3019
3027
  }
3020
3028
  }
3021
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: RepeatDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
3022
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: RepeatDirective, isStandalone: true, selector: "[etRepeat]", inputs: { repeatCount: ["etRepeat", "repeatCount"] }, ngImport: i0 }); }
3029
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: RepeatDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
3030
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: RepeatDirective, isStandalone: true, selector: "[etRepeat]", inputs: { repeatCount: ["etRepeat", "repeatCount"] }, ngImport: i0 }); }
3023
3031
  }
3024
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: RepeatDirective, decorators: [{
3032
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: RepeatDirective, decorators: [{
3025
3033
  type: Directive,
3026
3034
  args: [{
3027
3035
  selector: '[etRepeat]',
@@ -3190,10 +3198,10 @@ class SeoDirective {
3190
3198
  }
3191
3199
  }
3192
3200
  }
3193
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: SeoDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3194
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: SeoDirective, isStandalone: true, providers: [{ provide: SEO_DIRECTIVE_TOKEN, useExisting: SeoDirective }], ngImport: i0 }); }
3201
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SeoDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3202
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: SeoDirective, isStandalone: true, providers: [{ provide: SEO_DIRECTIVE_TOKEN, useExisting: SeoDirective }], ngImport: i0 }); }
3195
3203
  }
3196
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: SeoDirective, decorators: [{
3204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SeoDirective, decorators: [{
3197
3205
  type: Directive,
3198
3206
  args: [{
3199
3207
  standalone: true,
@@ -3239,10 +3247,10 @@ class NormalizeGameResultTypePipe {
3239
3247
  constructor() {
3240
3248
  this.transform = normalizeGameResultType;
3241
3249
  }
3242
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NormalizeGameResultTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3243
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.5", ngImport: i0, type: NormalizeGameResultTypePipe, isStandalone: true, name: "etNormalizeGameResultType" }); }
3250
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NormalizeGameResultTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3251
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: NormalizeGameResultTypePipe, isStandalone: true, name: "etNormalizeGameResultType" }); }
3244
3252
  }
3245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NormalizeGameResultTypePipe, decorators: [{
3253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NormalizeGameResultTypePipe, decorators: [{
3246
3254
  type: Pipe,
3247
3255
  args: [{ name: 'etNormalizeGameResultType', standalone: true }]
3248
3256
  }] });
@@ -3270,10 +3278,10 @@ class NormalizeMatchStatePipe {
3270
3278
  constructor() {
3271
3279
  this.transform = normalizeMatchState;
3272
3280
  }
3273
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NormalizeMatchStatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3274
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.5", ngImport: i0, type: NormalizeMatchStatePipe, isStandalone: true, name: "etNormalizeMatchState" }); }
3281
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NormalizeMatchStatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3282
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: NormalizeMatchStatePipe, isStandalone: true, name: "etNormalizeMatchState" }); }
3275
3283
  }
3276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NormalizeMatchStatePipe, decorators: [{
3284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NormalizeMatchStatePipe, decorators: [{
3277
3285
  type: Pipe,
3278
3286
  args: [{ name: 'etNormalizeMatchState', standalone: true }]
3279
3287
  }] });
@@ -3328,10 +3336,10 @@ class NormalizeMatchParticipantsPipe {
3328
3336
  constructor() {
3329
3337
  this.transform = normalizeMatchParticipants;
3330
3338
  }
3331
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NormalizeMatchParticipantsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3332
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.5", ngImport: i0, type: NormalizeMatchParticipantsPipe, isStandalone: true, name: "etNormalizeMatchParticipants" }); }
3339
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NormalizeMatchParticipantsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3340
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: NormalizeMatchParticipantsPipe, isStandalone: true, name: "etNormalizeMatchParticipants" }); }
3333
3341
  }
3334
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NormalizeMatchParticipantsPipe, decorators: [{
3342
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NormalizeMatchParticipantsPipe, decorators: [{
3335
3343
  type: Pipe,
3336
3344
  args: [{ name: 'etNormalizeMatchParticipants', standalone: true }]
3337
3345
  }] });
@@ -3465,10 +3473,10 @@ class NormalizeMatchScorePipe {
3465
3473
  constructor() {
3466
3474
  this.transform = normalizeMatchScore;
3467
3475
  }
3468
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NormalizeMatchScorePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3469
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.5", ngImport: i0, type: NormalizeMatchScorePipe, isStandalone: true, name: "etNormalizeMatchScore" }); }
3476
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NormalizeMatchScorePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3477
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: NormalizeMatchScorePipe, isStandalone: true, name: "etNormalizeMatchScore" }); }
3470
3478
  }
3471
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NormalizeMatchScorePipe, decorators: [{
3479
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NormalizeMatchScorePipe, decorators: [{
3472
3480
  type: Pipe,
3473
3481
  args: [{ name: 'etNormalizeMatchScore', standalone: true }]
3474
3482
  }] });
@@ -3515,10 +3523,10 @@ class NormalizeMatchTypePipe {
3515
3523
  constructor() {
3516
3524
  this.transform = normalizeMatchType;
3517
3525
  }
3518
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NormalizeMatchTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3519
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.5", ngImport: i0, type: NormalizeMatchTypePipe, isStandalone: true, name: "etNormalizeMatchType" }); }
3526
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NormalizeMatchTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3527
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: NormalizeMatchTypePipe, isStandalone: true, name: "etNormalizeMatchType" }); }
3520
3528
  }
3521
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NormalizeMatchTypePipe, decorators: [{
3529
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NormalizeMatchTypePipe, decorators: [{
3522
3530
  type: Pipe,
3523
3531
  args: [{ name: 'etNormalizeMatchType', standalone: true }]
3524
3532
  }] });
@@ -3532,10 +3540,10 @@ class ToArrayPipe {
3532
3540
  constructor() {
3533
3541
  this.transform = toArray;
3534
3542
  }
3535
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ToArrayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3536
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.5", ngImport: i0, type: ToArrayPipe, isStandalone: true, name: "toArray" }); }
3543
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ToArrayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3544
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: ToArrayPipe, isStandalone: true, name: "toArray" }); }
3537
3545
  }
3538
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ToArrayPipe, decorators: [{
3546
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ToArrayPipe, decorators: [{
3539
3547
  type: Pipe,
3540
3548
  args: [{ name: 'toArray', standalone: true }]
3541
3549
  }] });
@@ -3602,5 +3610,5 @@ const Validators = {
3602
3610
  * Generated bundle index. Do not edit.
3603
3611
  */
3604
3612
 
3605
- export { ANIMATABLE_TOKEN, ANIMATED_LIFECYCLE_TOKEN, ActiveSelectionModel, AnimatableDirective, AnimatedLifecycleDirective, AnimatedOverlayDirective, BehaviorSubjectWithSubscriberCount, ClickObserverFactory, ClickObserverService, ClickOutsideDirective, ContentObserverService, CursorDragScrollDirective, DEFAULT_VIEWPORT_CONFIG, DELAYABLE_TOKEN, DelayableDirective, ET_PROPERTY_REMOVED, FocusVisibleService, IS_ACTIVE_ELEMENT, IS_ARRAY_NOT_EMPTY, IS_ELEMENT, IS_EMAIL, IsActiveElementDirective, IsArrayNotEmpty, IsElementDirective, IsEmail, LetContext, LetDirective, MUST_MATCH, Memo, MustMatch, MutationObserverFactory, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, OBSERVE_SCROLL_STATE, ObserveContentDirective, ObserveResizeDirective, ObserveScrollStateDirective, RepeatDirective, ResizeObserverFactory, ResizeObserverService, RouterStateService, RuntimeError, SCROLL_OBSERVER_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_IGNORE_TARGET_CLASS, SCROLL_OBSERVER_LAST_ELEMENT_CLASS, SCROLL_OBSERVER_OBSERVING_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_OBSERVING_LAST_ELEMENT_CLASS, SEO_DIRECTIVE_TOKEN, ScrollObserverFirstElementDirective, ScrollObserverIgnoreTargetDirective, ScrollObserverLastElementDirective, SelectionModel, SeoDirective, SmartBlockScrollStrategy, StructuredDataComponent, ToArrayPipe, TypedQueryList, VIEWPORT_CONFIG, Validators, ViewportService, clamp, clone, createDestroy, createFlipAnimation, createFlipAnimationGroup, createMediaQueryObservable, createReactiveBindings, deleteCookie, elementCanScroll, equal, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getGroupMatchPoints, getGroupMatchScore, getKnockoutMatchScore, getMatchScoreSubLine, hasCookie, isElementVisible, isGroupMatch, isKnockoutMatch, mergeSeoConfig, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, provideViewportConfig, routerDisableScrollTop, scrollToElement, setCookie, toArray, toArrayTrackByFn };
3613
+ export { ANIMATABLE_TOKEN, ANIMATED_LIFECYCLE_TOKEN, ActiveSelectionModel, AnimatableDirective, AnimatedLifecycleDirective, AnimatedOverlayDirective, BehaviorSubjectWithSubscriberCount, ClickObserverFactory, ClickObserverService, ClickOutsideDirective, ContentObserverService, CursorDragScrollDirective, DEFAULT_VIEWPORT_CONFIG, DELAYABLE_TOKEN, DelayableDirective, ET_PROPERTY_REMOVED, FocusVisibleService, IS_ACTIVE_ELEMENT, IS_ARRAY_NOT_EMPTY, IS_ELEMENT, IS_EMAIL, IsActiveElementDirective, IsArrayNotEmpty, IsElementDirective, IsEmail, LetContext, LetDirective, MUST_MATCH, Memo, MustMatch, MutationObserverFactory, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, OBSERVE_SCROLL_STATE, ObserveContentDirective, ObserveResizeDirective, ObserveScrollStateDirective, RepeatDirective, ResizeObserverFactory, ResizeObserverService, RouterStateService, RuntimeError, SCROLL_OBSERVER_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_IGNORE_TARGET_CLASS, SCROLL_OBSERVER_LAST_ELEMENT_CLASS, SCROLL_OBSERVER_OBSERVING_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_OBSERVING_LAST_ELEMENT_CLASS, SEO_DIRECTIVE_TOKEN, ScrollObserverFirstElementDirective, ScrollObserverIgnoreTargetDirective, ScrollObserverLastElementDirective, SelectionModel, SeoDirective, SmartBlockScrollStrategy, StructuredDataComponent, ToArrayPipe, TypedQueryList, VIEWPORT_CONFIG, Validators, ViewportService, clamp, clone, createDestroy, createFlipAnimation, createFlipAnimationGroup, createMediaQueryObservable, createReactiveBindings, deleteCookie, elementCanScroll, equal, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementVisibleStates, getGroupMatchPoints, getGroupMatchScore, getKnockoutMatchScore, getMatchScoreSubLine, hasCookie, isElementVisible, isGroupMatch, isKnockoutMatch, mergeSeoConfig, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, provideViewportConfig, routerDisableScrollTop, scrollToElement, setCookie, toArray, toArrayTrackByFn };
3606
3614
  //# sourceMappingURL=ethlete-core.mjs.map