@ethlete/core 2.9.0 → 3.0.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 (37) hide show
  1. package/esm2022/lib/components/structured-data/structured-data.component.mjs +3 -3
  2. package/esm2022/lib/directives/animatable/animatable.directive.mjs +3 -3
  3. package/esm2022/lib/directives/animated-lifecycle/animated-lifecycle.directive.mjs +3 -3
  4. package/esm2022/lib/directives/animated-overlay/animated-overlay.directive.mjs +83 -56
  5. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +3 -3
  6. package/esm2022/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.mjs +3 -3
  7. package/esm2022/lib/directives/delayable/delayable.directive.mjs +3 -3
  8. package/esm2022/lib/directives/is-active-element/is-active-element.directive.mjs +3 -3
  9. package/esm2022/lib/directives/is-element/is-element.directive.mjs +3 -3
  10. package/esm2022/lib/directives/let/let.directive.mjs +3 -3
  11. package/esm2022/lib/directives/observe-content/observe-content.directive.mjs +3 -3
  12. package/esm2022/lib/directives/observe-resize/observe-resize.directive.mjs +3 -3
  13. package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.directive.mjs +3 -3
  14. package/esm2022/lib/directives/repeat/repeat.directive.mjs +3 -3
  15. package/esm2022/lib/directives/scroll-observer-first-element/scroll-observer-first-element.directive.mjs +3 -3
  16. package/esm2022/lib/directives/scroll-observer-ignore-target/scroll-observer-ignore-target.directive.mjs +3 -3
  17. package/esm2022/lib/directives/scroll-observer-last-element/scroll-observer-last-element.directive.mjs +3 -3
  18. package/esm2022/lib/directives/seo/seo.directive.mjs +3 -3
  19. package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.pipe.mjs +3 -3
  20. package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.pipe.mjs +3 -3
  21. package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.pipe.mjs +3 -3
  22. package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.pipe.mjs +3 -3
  23. package/esm2022/lib/pipes/normalize-match-type/normalize-match-type.pipe.mjs +3 -3
  24. package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +3 -3
  25. package/esm2022/lib/services/click-observer.service.mjs +6 -6
  26. package/esm2022/lib/services/content-observer.service.mjs +6 -6
  27. package/esm2022/lib/services/focus-visible.service.mjs +3 -3
  28. package/esm2022/lib/services/resize-observer.service.mjs +6 -6
  29. package/esm2022/lib/services/router-state.service.mjs +3 -3
  30. package/esm2022/lib/services/viewport.service.mjs +3 -3
  31. package/esm2022/lib/validators/must-match.validator.mjs +10 -10
  32. package/fesm2022/ethlete-core.mjs +187 -160
  33. package/fesm2022/ethlete-core.mjs.map +1 -1
  34. package/lib/directives/animated-overlay/animated-overlay.directive.d.ts +29 -16
  35. package/lib/validators/must-match.validator.d.ts +4 -2
  36. package/lib/validators/public-api.d.ts +3 -1
  37. package/package.json +6 -6
@@ -7,7 +7,7 @@ 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';
10
- import { createPopper } from '@popperjs/core';
10
+ import { autoUpdate, computePosition, offset, flip, size, shift, limitShift, arrow, hide } from '@floating-ui/dom';
11
11
  import { DOCUMENT } from '@angular/common';
12
12
  import { Router, NavigationEnd } from '@angular/router';
13
13
  import { __decorate, __metadata } from 'tslib';
@@ -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.1.6", ngImport: i0, type: StructuredDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", 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.7", ngImport: i0, type: StructuredDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", 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.1.6", ngImport: i0, type: StructuredDataComponent, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: StructuredDataComponent, decorators: [{
33
33
  type: Component,
34
34
  args: [{
35
35
  selector: 'et-structured-data',
@@ -1293,15 +1293,15 @@ class AnimatableDirective {
1293
1293
  .subscribe();
1294
1294
  }
1295
1295
  }
1296
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AnimatableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1297
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: AnimatableDirective, isStandalone: true, selector: "[etAnimatable]", inputs: { animatedElement: ["etAnimatable", "animatedElement"] }, providers: [
1296
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AnimatableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1297
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: AnimatableDirective, isStandalone: true, selector: "[etAnimatable]", inputs: { animatedElement: ["etAnimatable", "animatedElement"] }, providers: [
1298
1298
  {
1299
1299
  provide: ANIMATABLE_TOKEN,
1300
1300
  useExisting: AnimatableDirective,
1301
1301
  },
1302
1302
  ], exportAs: ["etAnimatable"], ngImport: i0 }); }
1303
1303
  }
1304
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AnimatableDirective, decorators: [{
1304
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AnimatableDirective, decorators: [{
1305
1305
  type: Directive,
1306
1306
  args: [{
1307
1307
  selector: '[etAnimatable]',
@@ -1402,15 +1402,15 @@ class AnimatedLifecycleDirective {
1402
1402
  }), takeUntil(this._destroy$), take(1))
1403
1403
  .subscribe();
1404
1404
  }
1405
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AnimatedLifecycleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1406
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: AnimatedLifecycleDirective, isStandalone: true, selector: "[etAnimatedLifecycle]", providers: [
1405
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AnimatedLifecycleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1406
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: AnimatedLifecycleDirective, isStandalone: true, selector: "[etAnimatedLifecycle]", providers: [
1407
1407
  {
1408
1408
  provide: ANIMATED_LIFECYCLE_TOKEN,
1409
1409
  useExisting: AnimatedLifecycleDirective,
1410
1410
  },
1411
1411
  ], exportAs: ["etAnimatedLifecycle"], hostDirectives: [{ directive: AnimatableDirective }], ngImport: i0 }); }
1412
1412
  }
1413
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AnimatedLifecycleDirective, decorators: [{
1413
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AnimatedLifecycleDirective, decorators: [{
1414
1414
  type: Directive,
1415
1415
  args: [{
1416
1416
  selector: '[etAnimatedLifecycle]',
@@ -1431,10 +1431,10 @@ class ClickObserverFactory {
1431
1431
  create() {
1432
1432
  return fromEvent(document, 'click');
1433
1433
  }
1434
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ClickObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1435
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ClickObserverFactory, providedIn: 'root' }); }
1434
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ClickObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1435
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ClickObserverFactory, providedIn: 'root' }); }
1436
1436
  }
1437
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ClickObserverFactory, decorators: [{
1437
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ClickObserverFactory, decorators: [{
1438
1438
  type: Injectable,
1439
1439
  args: [{ providedIn: 'root' }]
1440
1440
  }] });
@@ -1487,10 +1487,10 @@ class ClickObserverService {
1487
1487
  this._observedElements.delete(element);
1488
1488
  }
1489
1489
  }
1490
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ClickObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1491
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ClickObserverService, providedIn: 'root' }); }
1490
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ClickObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1491
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ClickObserverService, providedIn: 'root' }); }
1492
1492
  }
1493
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ClickObserverService, decorators: [{
1493
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ClickObserverService, decorators: [{
1494
1494
  type: Injectable,
1495
1495
  args: [{ providedIn: 'root' }]
1496
1496
  }] });
@@ -1500,10 +1500,10 @@ class MutationObserverFactory {
1500
1500
  create(callback) {
1501
1501
  return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);
1502
1502
  }
1503
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MutationObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1504
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MutationObserverFactory, providedIn: 'root' }); }
1503
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MutationObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1504
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MutationObserverFactory, providedIn: 'root' }); }
1505
1505
  }
1506
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: MutationObserverFactory, decorators: [{
1506
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MutationObserverFactory, decorators: [{
1507
1507
  type: Injectable,
1508
1508
  args: [{ providedIn: 'root' }]
1509
1509
  }] });
@@ -1562,10 +1562,10 @@ class ContentObserverService {
1562
1562
  this._observedElements.delete(element);
1563
1563
  }
1564
1564
  }
1565
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ContentObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1566
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ContentObserverService, providedIn: 'root' }); }
1565
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ContentObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1566
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ContentObserverService, providedIn: 'root' }); }
1567
1567
  }
1568
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ContentObserverService, decorators: [{
1568
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ContentObserverService, decorators: [{
1569
1569
  type: Injectable,
1570
1570
  args: [{ providedIn: 'root' }]
1571
1571
  }] });
@@ -1591,10 +1591,10 @@ class FocusVisibleService {
1591
1591
  onPointerDown() {
1592
1592
  this._hadKeyboardEvent = false;
1593
1593
  }
1594
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: FocusVisibleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1595
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: FocusVisibleService, providedIn: 'root' }); }
1594
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FocusVisibleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1595
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FocusVisibleService, providedIn: 'root' }); }
1596
1596
  }
1597
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: FocusVisibleService, decorators: [{
1597
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FocusVisibleService, decorators: [{
1598
1598
  type: Injectable,
1599
1599
  args: [{
1600
1600
  providedIn: 'root',
@@ -1606,10 +1606,10 @@ class ResizeObserverFactory {
1606
1606
  create(callback) {
1607
1607
  return typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(callback);
1608
1608
  }
1609
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ResizeObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1610
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ResizeObserverFactory, providedIn: 'root' }); }
1609
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ResizeObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1610
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ResizeObserverFactory, providedIn: 'root' }); }
1611
1611
  }
1612
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ResizeObserverFactory, decorators: [{
1612
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ResizeObserverFactory, decorators: [{
1613
1613
  type: Injectable,
1614
1614
  args: [{ providedIn: 'root' }]
1615
1615
  }] });
@@ -1664,10 +1664,10 @@ class ResizeObserverService {
1664
1664
  this._observedElements.delete(element);
1665
1665
  }
1666
1666
  }
1667
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ResizeObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1668
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ResizeObserverService, providedIn: 'root' }); }
1667
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ResizeObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1668
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ResizeObserverService, providedIn: 'root' }); }
1669
1669
  }
1670
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ResizeObserverService, decorators: [{
1670
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ResizeObserverService, decorators: [{
1671
1671
  type: Injectable,
1672
1672
  args: [{ providedIn: 'root' }]
1673
1673
  }] });
@@ -1835,10 +1835,10 @@ class RouterStateService {
1835
1835
  }
1836
1836
  return changes;
1837
1837
  }
1838
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: RouterStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1839
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: RouterStateService, providedIn: 'root' }); }
1838
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RouterStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1839
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RouterStateService, providedIn: 'root' }); }
1840
1840
  }
1841
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: RouterStateService, decorators: [{
1841
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RouterStateService, decorators: [{
1842
1842
  type: Injectable,
1843
1843
  args: [{
1844
1844
  providedIn: 'root',
@@ -2048,8 +2048,8 @@ class ViewportService {
2048
2048
  }
2049
2049
  return 'xs';
2050
2050
  }
2051
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ViewportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2052
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ViewportService, providedIn: 'root' }); }
2051
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ViewportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2052
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ViewportService, providedIn: 'root' }); }
2053
2053
  }
2054
2054
  __decorate([
2055
2055
  Memo(),
@@ -2067,7 +2067,7 @@ __decorate([
2067
2067
  __metadata("design:paramtypes", [Object]),
2068
2068
  __metadata("design:returntype", void 0)
2069
2069
  ], ViewportService.prototype, "_buildMediaQuery", null);
2070
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ViewportService, decorators: [{
2070
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ViewportService, decorators: [{
2071
2071
  type: Injectable,
2072
2072
  args: [{
2073
2073
  providedIn: 'root',
@@ -2116,10 +2116,10 @@ class ObserveResizeDirective {
2116
2116
  _unsubscribe() {
2117
2117
  this._currentSubscription?.unsubscribe();
2118
2118
  }
2119
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ObserveResizeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2120
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: ObserveResizeDirective, isStandalone: true, selector: "[etObserveResize]", inputs: { disabled: ["etObserveResizeDisabled", "disabled"], debounce: ["etObserveResizeDebounce", "debounce"] }, outputs: { valueChange: "etObserveResize" }, exportAs: ["etObserveResize"], ngImport: i0 }); }
2119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ObserveResizeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2120
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: ObserveResizeDirective, isStandalone: true, selector: "[etObserveResize]", inputs: { disabled: ["etObserveResizeDisabled", "disabled"], debounce: ["etObserveResizeDebounce", "debounce"] }, outputs: { valueChange: "etObserveResize" }, exportAs: ["etObserveResize"], ngImport: i0 }); }
2121
2121
  }
2122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ObserveResizeDirective, decorators: [{
2122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ObserveResizeDirective, decorators: [{
2123
2123
  type: Directive,
2124
2124
  args: [{
2125
2125
  selector: '[etObserveResize]',
@@ -2149,7 +2149,7 @@ class AnimatedOverlayDirective {
2149
2149
  this._portal = null;
2150
2150
  this._overlayRef = null;
2151
2151
  this._componentRef = null;
2152
- this._popper = null;
2152
+ this._floatingElCleanupFn = null;
2153
2153
  this._beforeOpened = null;
2154
2154
  this._afterOpened = null;
2155
2155
  this._beforeClosed = null;
@@ -2159,20 +2159,36 @@ class AnimatedOverlayDirective {
2159
2159
  this._isUnmounting$ = new BehaviorSubject(false);
2160
2160
  /**
2161
2161
  * The placement of the animated overlay.
2162
- * @default 'auto'
2162
+ * @default undefined
2163
2163
  */
2164
- this.placement = 'auto';
2164
+ this.placement = 'bottom';
2165
2165
  /**
2166
2166
  * The offset of the animated overlay.
2167
- * @see https://popper.js.org/docs/v2/modifiers/offset/#offset-1
2167
+ * @see https://floating-ui.com/docs/offset
2168
2168
  */
2169
2169
  this.offset = null;
2170
2170
  /**
2171
2171
  * The arrow padding.
2172
- * @see https://popper.js.org/docs/v2/modifiers/arrow/#padding
2172
+ * @see https://floating-ui.com/docs/arrow#padding
2173
2173
  * @default 4
2174
2174
  */
2175
- this.arrowPadding = null;
2175
+ this.arrowPadding = 4;
2176
+ /**
2177
+ * The viewport padding.
2178
+ * @default 8
2179
+ */
2180
+ this.viewportPadding = 8;
2181
+ /**
2182
+ * Whether the animated overlay should auto resize to fit the available space.
2183
+ * Useful for things like selects where the list of options might be longer than the available space.
2184
+ * @default false
2185
+ */
2186
+ this.autoResize = false;
2187
+ /**
2188
+ * Whether the animated overlay should auto hide when the reference element is hidden.
2189
+ * @default false
2190
+ */
2191
+ this.autoHide = false;
2176
2192
  }
2177
2193
  get isMounted() {
2178
2194
  return this._isMounted$.value;
@@ -2198,9 +2214,6 @@ class AnimatedOverlayDirective {
2198
2214
  get componentRef() {
2199
2215
  return this._componentRef;
2200
2216
  }
2201
- get popper() {
2202
- return this._popper;
2203
- }
2204
2217
  mount(config) {
2205
2218
  if (this.isMounted || this.isMounting) {
2206
2219
  if (isDevMode()) {
@@ -2231,7 +2244,6 @@ class AnimatedOverlayDirective {
2231
2244
  this._overlayRef?.updateSize({
2232
2245
  width: this._elementRef.nativeElement.offsetWidth,
2233
2246
  });
2234
- this._popper?.update();
2235
2247
  }), takeUntil(this._destroy$), takeUntil(this.afterClosed()))
2236
2248
  .subscribe();
2237
2249
  }
@@ -2239,47 +2251,57 @@ class AnimatedOverlayDirective {
2239
2251
  if (!this._componentRef) {
2240
2252
  return;
2241
2253
  }
2242
- this._popper = createPopper(this._elementRef.nativeElement, this._componentRef.location.nativeElement, {
2243
- placement: this.placement,
2244
- modifiers: [
2245
- ...(this.offset
2246
- ? [
2247
- {
2248
- name: 'offset',
2249
- options: {
2250
- offset: this.offset,
2251
- },
2252
- },
2253
- ]
2254
- : []),
2255
- ...(this.arrowPadding
2256
- ? [
2257
- {
2258
- name: 'arrow',
2259
- options: {
2260
- padding: this.arrowPadding,
2261
- },
2262
- },
2263
- ]
2264
- : []),
2265
- ...(this.allowedAutoPlacements
2266
- ? [
2267
- {
2268
- name: 'flip',
2269
- options: {
2270
- allowedAutoPlacements: this.allowedAutoPlacements,
2271
- },
2272
- },
2273
- ]
2274
- : []),
2275
- ],
2254
+ const floatingEl = this._componentRef.location.nativeElement;
2255
+ const floatingElArrow = this._componentRef.instance._elementRef?.nativeElement.querySelector('[et-floating-arrow]');
2256
+ floatingEl.classList.add('et-floating-element');
2257
+ const refEl = this._elementRef.nativeElement;
2258
+ this._floatingElCleanupFn = autoUpdate(refEl, floatingEl, () => {
2259
+ if (!this._componentRef)
2260
+ return;
2261
+ computePosition(refEl, floatingEl, {
2262
+ placement: this.placement,
2263
+ middleware: [
2264
+ ...(this.offset ? [offset(this.offset)] : []),
2265
+ flip({
2266
+ fallbackPlacements: this.fallbackPlacements ?? undefined,
2267
+ fallbackAxisSideDirection: 'start',
2268
+ crossAxis: false,
2269
+ }),
2270
+ ...(this.autoResize
2271
+ ? [
2272
+ size({
2273
+ padding: this.viewportPadding ?? undefined,
2274
+ apply({ availableHeight, availableWidth }) {
2275
+ floatingEl.style.setProperty('--et-floating-max-width', `${availableWidth}px`);
2276
+ floatingEl.style.setProperty('--et-floating-max-height', `${availableHeight}px`);
2277
+ },
2278
+ }),
2279
+ ]
2280
+ : []),
2281
+ shift({ limiter: limitShift(), padding: this.viewportPadding ?? undefined }),
2282
+ ...(floatingElArrow ? [arrow({ element: floatingElArrow, padding: this.arrowPadding ?? undefined })] : []),
2283
+ ...(this.autoHide ? [hide({ strategy: 'referenceHidden' })] : []),
2284
+ ],
2285
+ }).then(({ x, y, placement, middlewareData }) => {
2286
+ floatingEl.style.setProperty('--et-floating-translate', `translate3d(${x}px, ${y}px, 0)`);
2287
+ floatingEl.setAttribute('et-floating-placement', placement);
2288
+ if (middlewareData.arrow && floatingElArrow) {
2289
+ const { x: arrowX, y: arrowY } = middlewareData.arrow;
2290
+ floatingEl.style.setProperty('--et-floating-arrow-translate', `translate3d(${arrowX ?? 0}px, ${arrowY ?? 0}px, 0)`);
2291
+ }
2292
+ if (middlewareData.hide?.referenceHidden) {
2293
+ floatingEl.classList.add('et-floating-element--hidden');
2294
+ }
2295
+ else {
2296
+ floatingEl.classList.remove('et-floating-element--hidden');
2297
+ }
2298
+ });
2276
2299
  });
2277
2300
  // We need to wait for the content to be rendered
2278
2301
  nextFrame(() => {
2279
2302
  if (!this._componentRef) {
2280
2303
  return;
2281
2304
  }
2282
- this._popper?.update();
2283
2305
  this._componentRef.instance._animatedLifecycle?.enter();
2284
2306
  this._componentRef.instance._animatedLifecycle?.state$
2285
2307
  .pipe(tap((s) => {
@@ -2337,8 +2359,7 @@ class AnimatedOverlayDirective {
2337
2359
  }
2338
2360
  _destroy() {
2339
2361
  this._zone.runOutsideAngular(() => {
2340
- this._popper?.destroy();
2341
- this._popper = null;
2362
+ this._floatingElCleanupFn?.();
2342
2363
  });
2343
2364
  if (this._overlayRef) {
2344
2365
  this._overlayRef.dispose();
@@ -2352,26 +2373,32 @@ class AnimatedOverlayDirective {
2352
2373
  this._isUnmounting$.next(false);
2353
2374
  this._afterClosed?.next();
2354
2375
  }
2355
- _reposition() {
2356
- this._popper?.update();
2357
- }
2358
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AnimatedOverlayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2359
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: AnimatedOverlayDirective, isStandalone: true, inputs: { placement: "placement", allowedAutoPlacements: "allowedAutoPlacements", offset: "offset", arrowPadding: "arrowPadding" }, hostDirectives: [{ directive: ObserveResizeDirective }], ngImport: i0 }); }
2376
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AnimatedOverlayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2377
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: AnimatedOverlayDirective, isStandalone: true, inputs: { placement: "placement", fallbackPlacements: "fallbackPlacements", offset: "offset", arrowPadding: "arrowPadding", viewportPadding: "viewportPadding", autoResize: "autoResize", autoHide: "autoHide" }, host: { classAttribute: "et-animated-overlay" }, hostDirectives: [{ directive: ObserveResizeDirective }], ngImport: i0 }); }
2360
2378
  }
2361
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AnimatedOverlayDirective, decorators: [{
2379
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AnimatedOverlayDirective, decorators: [{
2362
2380
  type: Directive,
2363
2381
  args: [{
2364
2382
  standalone: true,
2365
2383
  hostDirectives: [ObserveResizeDirective],
2384
+ host: {
2385
+ class: 'et-animated-overlay',
2386
+ },
2366
2387
  }]
2367
2388
  }], propDecorators: { placement: [{
2368
2389
  type: Input
2369
- }], allowedAutoPlacements: [{
2390
+ }], fallbackPlacements: [{
2370
2391
  type: Input
2371
2392
  }], offset: [{
2372
2393
  type: Input
2373
2394
  }], arrowPadding: [{
2374
2395
  type: Input
2396
+ }], viewportPadding: [{
2397
+ type: Input
2398
+ }], autoResize: [{
2399
+ type: Input
2400
+ }], autoHide: [{
2401
+ type: Input
2375
2402
  }] } });
2376
2403
 
2377
2404
  class ClickOutsideDirective {
@@ -2395,10 +2422,10 @@ class ClickOutsideDirective {
2395
2422
  ngOnDestroy() {
2396
2423
  this._subscription?.unsubscribe();
2397
2424
  }
2398
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2399
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: ClickOutsideDirective, isStandalone: true, selector: "[etClickOutside]", outputs: { etClickOutside: "etClickOutside" }, ngImport: i0 }); }
2425
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2426
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: ClickOutsideDirective, isStandalone: true, selector: "[etClickOutside]", outputs: { etClickOutside: "etClickOutside" }, ngImport: i0 }); }
2400
2427
  }
2401
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ClickOutsideDirective, decorators: [{
2428
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ClickOutsideDirective, decorators: [{
2402
2429
  type: Directive,
2403
2430
  args: [{
2404
2431
  selector: '[etClickOutside]',
@@ -2552,10 +2579,10 @@ class CursorDragScrollDirective {
2552
2579
  this._elementRef.nativeElement.style.cursor = 'default';
2553
2580
  }
2554
2581
  }
2555
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: CursorDragScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2556
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: CursorDragScrollDirective, isStandalone: true, selector: "[etCursorDragScroll]", inputs: { enabled: ["etCursorDragScroll", "enabled"], allowedDirection: "allowedDirection" }, outputs: { cursorDragStart: "cursorDragStart", cursorDragMove: "cursorDragMove", cursorDragEnd: "cursorDragEnd" }, exportAs: ["etCursorDragScroll"], ngImport: i0 }); }
2582
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CursorDragScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2583
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: CursorDragScrollDirective, isStandalone: true, selector: "[etCursorDragScroll]", inputs: { enabled: ["etCursorDragScroll", "enabled"], allowedDirection: "allowedDirection" }, outputs: { cursorDragStart: "cursorDragStart", cursorDragMove: "cursorDragMove", cursorDragEnd: "cursorDragEnd" }, exportAs: ["etCursorDragScroll"], ngImport: i0 }); }
2557
2584
  }
2558
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: CursorDragScrollDirective, decorators: [{
2585
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CursorDragScrollDirective, decorators: [{
2559
2586
  type: Directive,
2560
2587
  args: [{
2561
2588
  selector: '[etCursorDragScroll]',
@@ -2604,15 +2631,15 @@ class DelayableDirective {
2604
2631
  }
2605
2632
  this._isDelayed$.next(val);
2606
2633
  }
2607
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DelayableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2608
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: DelayableDirective, isStandalone: true, selector: "[etDelayable]", providers: [
2634
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: DelayableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2635
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: DelayableDirective, isStandalone: true, selector: "[etDelayable]", providers: [
2609
2636
  {
2610
2637
  provide: DELAYABLE_TOKEN,
2611
2638
  useExisting: DelayableDirective,
2612
2639
  },
2613
2640
  ], exportAs: ["etDelayable"], ngImport: i0 }); }
2614
2641
  }
2615
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DelayableDirective, decorators: [{
2642
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: DelayableDirective, decorators: [{
2616
2643
  type: Directive,
2617
2644
  args: [{
2618
2645
  selector: '[etDelayable]',
@@ -2633,15 +2660,15 @@ class IsActiveElementDirective {
2633
2660
  this.elementRef = inject(ElementRef);
2634
2661
  this.isActiveElement = false;
2635
2662
  }
2636
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: IsActiveElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2637
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: IsActiveElementDirective, isStandalone: true, selector: "[etIsActiveElement]", inputs: { isActiveElement: ["etIsActiveElement", "isActiveElement", booleanAttribute] }, providers: [
2663
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: IsActiveElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2664
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: IsActiveElementDirective, isStandalone: true, selector: "[etIsActiveElement]", inputs: { isActiveElement: ["etIsActiveElement", "isActiveElement", booleanAttribute] }, providers: [
2638
2665
  {
2639
2666
  provide: IS_ACTIVE_ELEMENT,
2640
2667
  useExisting: IsActiveElementDirective,
2641
2668
  },
2642
2669
  ], ngImport: i0 }); }
2643
2670
  }
2644
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: IsActiveElementDirective, decorators: [{
2671
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: IsActiveElementDirective, decorators: [{
2645
2672
  type: Directive,
2646
2673
  args: [{
2647
2674
  selector: '[etIsActiveElement]',
@@ -2664,15 +2691,15 @@ class IsElementDirective {
2664
2691
  this.elementRef = inject(ElementRef);
2665
2692
  this.isElement = false;
2666
2693
  }
2667
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: IsElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2668
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: IsElementDirective, isStandalone: true, selector: "[etIsElement]", inputs: { isElement: ["etIsElement", "isElement", booleanAttribute] }, providers: [
2694
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: IsElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2695
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: IsElementDirective, isStandalone: true, selector: "[etIsElement]", inputs: { isElement: ["etIsElement", "isElement", booleanAttribute] }, providers: [
2669
2696
  {
2670
2697
  provide: IS_ELEMENT,
2671
2698
  useExisting: IsElementDirective,
2672
2699
  },
2673
2700
  ], ngImport: i0 }); }
2674
2701
  }
2675
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: IsElementDirective, decorators: [{
2702
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: IsElementDirective, decorators: [{
2676
2703
  type: Directive,
2677
2704
  args: [{
2678
2705
  selector: '[etIsElement]',
@@ -2721,10 +2748,10 @@ class LetDirective {
2721
2748
  }
2722
2749
  }
2723
2750
  }
2724
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: LetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2725
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: LetDirective, isStandalone: true, selector: "[etLet]", inputs: { etLet: "etLet" }, ngImport: i0 }); }
2751
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: LetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2752
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: LetDirective, isStandalone: true, selector: "[etLet]", inputs: { etLet: "etLet" }, ngImport: i0 }); }
2726
2753
  }
2727
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: LetDirective, decorators: [{
2754
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: LetDirective, decorators: [{
2728
2755
  type: Directive,
2729
2756
  args: [{
2730
2757
  selector: '[etLet]',
@@ -2776,10 +2803,10 @@ class ObserveContentDirective {
2776
2803
  _unsubscribe() {
2777
2804
  this._currentSubscription?.unsubscribe();
2778
2805
  }
2779
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ObserveContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2780
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: ObserveContentDirective, isStandalone: true, selector: "[etObserveContent]", inputs: { disabled: ["etObserveContentDisabled", "disabled"], debounce: ["etObserveContentDebounce", "debounce"] }, outputs: { valueChange: "etObserveContent" }, exportAs: ["etObserveContent"], ngImport: i0 }); }
2806
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ObserveContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2807
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: ObserveContentDirective, isStandalone: true, selector: "[etObserveContent]", inputs: { disabled: ["etObserveContentDisabled", "disabled"], debounce: ["etObserveContentDebounce", "debounce"] }, outputs: { valueChange: "etObserveContent" }, exportAs: ["etObserveContent"], ngImport: i0 }); }
2781
2808
  }
2782
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ObserveContentDirective, decorators: [{
2809
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ObserveContentDirective, decorators: [{
2783
2810
  type: Directive,
2784
2811
  args: [{
2785
2812
  selector: '[etObserveContent]',
@@ -2802,10 +2829,10 @@ class ScrollObserverFirstElementDirective {
2802
2829
  constructor() {
2803
2830
  this.isFirstElement = false;
2804
2831
  }
2805
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ScrollObserverFirstElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2806
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: ScrollObserverFirstElementDirective, isStandalone: true, selector: "[etScrollObserverFirstElement]", inputs: { isFirstElement: ["etScrollObserverFirstElement", "isFirstElement", booleanAttribute] }, host: { properties: { "class.et-scroll-observer-first-element": "this.isFirstElement" } }, ngImport: i0 }); }
2832
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ScrollObserverFirstElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2833
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: ScrollObserverFirstElementDirective, isStandalone: true, selector: "[etScrollObserverFirstElement]", inputs: { isFirstElement: ["etScrollObserverFirstElement", "isFirstElement", booleanAttribute] }, host: { properties: { "class.et-scroll-observer-first-element": "this.isFirstElement" } }, ngImport: i0 }); }
2807
2834
  }
2808
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ScrollObserverFirstElementDirective, decorators: [{
2835
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ScrollObserverFirstElementDirective, decorators: [{
2809
2836
  type: Directive,
2810
2837
  args: [{
2811
2838
  selector: '[etScrollObserverFirstElement]',
@@ -2821,10 +2848,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
2821
2848
 
2822
2849
  const SCROLL_OBSERVER_IGNORE_TARGET_CLASS = 'et-scroll-observer-ignore-target';
2823
2850
  class ScrollObserverIgnoreTargetDirective {
2824
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ScrollObserverIgnoreTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2825
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: ScrollObserverIgnoreTargetDirective, isStandalone: true, selector: "[etScrollObserverIgnoreTarget]", host: { classAttribute: "et-scroll-observer-ignore-target" }, ngImport: i0 }); }
2851
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ScrollObserverIgnoreTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2852
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: ScrollObserverIgnoreTargetDirective, isStandalone: true, selector: "[etScrollObserverIgnoreTarget]", host: { classAttribute: "et-scroll-observer-ignore-target" }, ngImport: i0 }); }
2826
2853
  }
2827
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ScrollObserverIgnoreTargetDirective, decorators: [{
2854
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ScrollObserverIgnoreTargetDirective, decorators: [{
2828
2855
  type: Directive,
2829
2856
  args: [{
2830
2857
  selector: '[etScrollObserverIgnoreTarget]',
@@ -2840,10 +2867,10 @@ class ScrollObserverLastElementDirective {
2840
2867
  constructor() {
2841
2868
  this.isLastElement = false;
2842
2869
  }
2843
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ScrollObserverLastElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2844
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", 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 }); }
2870
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ScrollObserverLastElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2871
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", 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 }); }
2845
2872
  }
2846
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ScrollObserverLastElementDirective, decorators: [{
2873
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ScrollObserverLastElementDirective, decorators: [{
2847
2874
  type: Directive,
2848
2875
  args: [{
2849
2876
  selector: '[etScrollObserverLastElement]',
@@ -3002,15 +3029,15 @@ class ObserveScrollStateDirective {
3002
3029
  }
3003
3030
  return element;
3004
3031
  }
3005
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ObserveScrollStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3006
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: ObserveScrollStateDirective, isStandalone: true, selector: "[etObserveScrollState]", inputs: { rootMargin: ["rootMargin", "rootMargin", numberAttribute], observerThreshold: "observerThreshold" }, outputs: { valueChange: "etObserveScrollState" }, providers: [
3032
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ObserveScrollStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3033
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: ObserveScrollStateDirective, isStandalone: true, selector: "[etObserveScrollState]", inputs: { rootMargin: ["rootMargin", "rootMargin", numberAttribute], observerThreshold: "observerThreshold" }, outputs: { valueChange: "etObserveScrollState" }, providers: [
3007
3034
  {
3008
3035
  provide: OBSERVE_SCROLL_STATE,
3009
3036
  useExisting: ObserveScrollStateDirective,
3010
3037
  },
3011
3038
  ], exportAs: ["etObserveScrollState"], ngImport: i0 }); }
3012
3039
  }
3013
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ObserveScrollStateDirective, decorators: [{
3040
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ObserveScrollStateDirective, decorators: [{
3014
3041
  type: Directive,
3015
3042
  args: [{
3016
3043
  selector: '[etObserveScrollState]',
@@ -3052,10 +3079,10 @@ class RepeatDirective {
3052
3079
  this._viewContainerRef.createEmbeddedView(this._mainTemplateRef);
3053
3080
  }
3054
3081
  }
3055
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: RepeatDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
3056
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: RepeatDirective, isStandalone: true, selector: "[etRepeat]", inputs: { repeatCount: ["etRepeat", "repeatCount"] }, ngImport: i0 }); }
3082
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RepeatDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
3083
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: RepeatDirective, isStandalone: true, selector: "[etRepeat]", inputs: { repeatCount: ["etRepeat", "repeatCount"] }, ngImport: i0 }); }
3057
3084
  }
3058
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: RepeatDirective, decorators: [{
3085
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RepeatDirective, decorators: [{
3059
3086
  type: Directive,
3060
3087
  args: [{
3061
3088
  selector: '[etRepeat]',
@@ -3224,10 +3251,10 @@ class SeoDirective {
3224
3251
  }
3225
3252
  }
3226
3253
  }
3227
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SeoDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3228
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: SeoDirective, isStandalone: true, providers: [{ provide: SEO_DIRECTIVE_TOKEN, useExisting: SeoDirective }], ngImport: i0 }); }
3254
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SeoDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3255
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: SeoDirective, isStandalone: true, providers: [{ provide: SEO_DIRECTIVE_TOKEN, useExisting: SeoDirective }], ngImport: i0 }); }
3229
3256
  }
3230
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SeoDirective, decorators: [{
3257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SeoDirective, decorators: [{
3231
3258
  type: Directive,
3232
3259
  args: [{
3233
3260
  standalone: true,
@@ -3273,10 +3300,10 @@ class NormalizeGameResultTypePipe {
3273
3300
  constructor() {
3274
3301
  this.transform = normalizeGameResultType;
3275
3302
  }
3276
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: NormalizeGameResultTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3277
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: NormalizeGameResultTypePipe, isStandalone: true, name: "etNormalizeGameResultType" }); }
3303
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NormalizeGameResultTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3304
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: NormalizeGameResultTypePipe, isStandalone: true, name: "etNormalizeGameResultType" }); }
3278
3305
  }
3279
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: NormalizeGameResultTypePipe, decorators: [{
3306
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NormalizeGameResultTypePipe, decorators: [{
3280
3307
  type: Pipe,
3281
3308
  args: [{ name: 'etNormalizeGameResultType', standalone: true }]
3282
3309
  }] });
@@ -3304,10 +3331,10 @@ class NormalizeMatchStatePipe {
3304
3331
  constructor() {
3305
3332
  this.transform = normalizeMatchState;
3306
3333
  }
3307
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: NormalizeMatchStatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3308
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: NormalizeMatchStatePipe, isStandalone: true, name: "etNormalizeMatchState" }); }
3334
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NormalizeMatchStatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3335
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: NormalizeMatchStatePipe, isStandalone: true, name: "etNormalizeMatchState" }); }
3309
3336
  }
3310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: NormalizeMatchStatePipe, decorators: [{
3337
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NormalizeMatchStatePipe, decorators: [{
3311
3338
  type: Pipe,
3312
3339
  args: [{ name: 'etNormalizeMatchState', standalone: true }]
3313
3340
  }] });
@@ -3362,10 +3389,10 @@ class NormalizeMatchParticipantsPipe {
3362
3389
  constructor() {
3363
3390
  this.transform = normalizeMatchParticipants;
3364
3391
  }
3365
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: NormalizeMatchParticipantsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3366
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: NormalizeMatchParticipantsPipe, isStandalone: true, name: "etNormalizeMatchParticipants" }); }
3392
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NormalizeMatchParticipantsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3393
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: NormalizeMatchParticipantsPipe, isStandalone: true, name: "etNormalizeMatchParticipants" }); }
3367
3394
  }
3368
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: NormalizeMatchParticipantsPipe, decorators: [{
3395
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NormalizeMatchParticipantsPipe, decorators: [{
3369
3396
  type: Pipe,
3370
3397
  args: [{ name: 'etNormalizeMatchParticipants', standalone: true }]
3371
3398
  }] });
@@ -3499,10 +3526,10 @@ class NormalizeMatchScorePipe {
3499
3526
  constructor() {
3500
3527
  this.transform = normalizeMatchScore;
3501
3528
  }
3502
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: NormalizeMatchScorePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3503
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: NormalizeMatchScorePipe, isStandalone: true, name: "etNormalizeMatchScore" }); }
3529
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NormalizeMatchScorePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3530
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: NormalizeMatchScorePipe, isStandalone: true, name: "etNormalizeMatchScore" }); }
3504
3531
  }
3505
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: NormalizeMatchScorePipe, decorators: [{
3532
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NormalizeMatchScorePipe, decorators: [{
3506
3533
  type: Pipe,
3507
3534
  args: [{ name: 'etNormalizeMatchScore', standalone: true }]
3508
3535
  }] });
@@ -3549,10 +3576,10 @@ class NormalizeMatchTypePipe {
3549
3576
  constructor() {
3550
3577
  this.transform = normalizeMatchType;
3551
3578
  }
3552
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: NormalizeMatchTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3553
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: NormalizeMatchTypePipe, isStandalone: true, name: "etNormalizeMatchType" }); }
3579
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NormalizeMatchTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3580
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: NormalizeMatchTypePipe, isStandalone: true, name: "etNormalizeMatchType" }); }
3554
3581
  }
3555
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: NormalizeMatchTypePipe, decorators: [{
3582
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NormalizeMatchTypePipe, decorators: [{
3556
3583
  type: Pipe,
3557
3584
  args: [{ name: 'etNormalizeMatchType', standalone: true }]
3558
3585
  }] });
@@ -3566,10 +3593,10 @@ class ToArrayPipe {
3566
3593
  constructor() {
3567
3594
  this.transform = toArray;
3568
3595
  }
3569
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ToArrayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3570
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: ToArrayPipe, isStandalone: true, name: "toArray" }); }
3596
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ToArrayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3597
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: ToArrayPipe, isStandalone: true, name: "toArray" }); }
3571
3598
  }
3572
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ToArrayPipe, decorators: [{
3599
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ToArrayPipe, decorators: [{
3573
3600
  type: Pipe,
3574
3601
  args: [{ name: 'toArray', standalone: true }]
3575
3602
  }] });
@@ -3610,18 +3637,18 @@ const IsEmail = (control) => {
3610
3637
  const MUST_MATCH = 'mustMatch';
3611
3638
  const MustMatch = (controlName, matchingControlName) => {
3612
3639
  return (formGroup) => {
3613
- const control = formGroup.controls[controlName];
3614
- const matchingControl = formGroup.controls[matchingControlName];
3615
- // set error on matchingControl if validation fails
3616
- if (matchingControl.errors && !matchingControl.errors[MUST_MATCH]) {
3617
- return;
3640
+ const control = formGroup.get(controlName);
3641
+ const matchingControl = formGroup.get(matchingControlName);
3642
+ if (matchingControl?.errors && !matchingControl.errors[MUST_MATCH]) {
3643
+ return null;
3618
3644
  }
3619
- // set error on matchingControl if validation fails
3620
- if (control.value !== matchingControl.value) {
3621
- matchingControl.setErrors({ [MUST_MATCH]: true });
3645
+ if (control?.value !== matchingControl?.value) {
3646
+ matchingControl?.setErrors({ [MUST_MATCH]: true });
3647
+ return { [MUST_MATCH]: true };
3622
3648
  }
3623
3649
  else {
3624
- matchingControl.setErrors(null);
3650
+ matchingControl?.setErrors(null);
3651
+ return null;
3625
3652
  }
3626
3653
  };
3627
3654
  };