@ethlete/core 0.2.0-next.3 → 0.2.0-next.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/directives/click-outside/click-outside.directive.mjs +37 -0
- package/esm2020/lib/directives/click-outside/public-api.mjs +2 -0
- package/esm2020/lib/directives/cursor-drag-scroll/cursor-drag-scroll.constants.mjs +3 -0
- package/esm2020/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.mjs +123 -0
- package/esm2020/lib/directives/cursor-drag-scroll/public-api.mjs +2 -0
- package/esm2020/lib/directives/let/let.directive.mjs +3 -3
- package/esm2020/lib/directives/observe-content/observe-content.directive.mjs +3 -3
- package/esm2020/lib/directives/observe-resize/observe-resize.directive.mjs +3 -3
- package/esm2020/lib/directives/observe-scroll-state/observe-scroll-state.constants.mjs +3 -0
- package/esm2020/lib/directives/observe-scroll-state/observe-scroll-state.directive.mjs +156 -0
- package/esm2020/lib/directives/observe-scroll-state/observe-scroll-state.types.mjs +2 -0
- package/esm2020/lib/directives/observe-scroll-state/public-api.mjs +3 -0
- package/esm2020/lib/directives/public-api.mjs +5 -1
- package/esm2020/lib/directives/repeat/repeat.directive.mjs +3 -3
- package/esm2020/lib/directives/scroll-observer-ignore-target/index.mjs +2 -0
- package/esm2020/lib/directives/scroll-observer-ignore-target/public-api.mjs +2 -0
- package/esm2020/lib/directives/scroll-observer-ignore-target/scroll-observer-ignore-target.directive.mjs +18 -0
- package/esm2020/lib/pipes/to-array/to-array.pipe.mjs +3 -3
- package/esm2020/lib/services/click-observer.service.mjs +73 -0
- package/esm2020/lib/services/content-observer.service.mjs +6 -6
- package/esm2020/lib/services/destroy.service.mjs +24 -0
- package/esm2020/lib/services/focus-visible.service.mjs +3 -3
- package/esm2020/lib/services/public-api.mjs +3 -1
- package/esm2020/lib/services/resize-observer.service.mjs +6 -6
- package/esm2020/lib/services/viewport.service.mjs +3 -3
- package/esm2020/lib/utils/index.mjs +2 -0
- package/esm2020/lib/utils/public-api.mjs +2 -1
- package/esm2020/lib/utils/scrollable.utils.mjs +5 -0
- package/fesm2015/ethlete-core.mjs +466 -43
- package/fesm2015/ethlete-core.mjs.map +1 -1
- package/fesm2020/ethlete-core.mjs +458 -43
- package/fesm2020/ethlete-core.mjs.map +1 -1
- package/lib/directives/click-outside/click-outside.directive.d.ts +12 -0
- package/lib/directives/click-outside/public-api.d.ts +1 -0
- package/lib/directives/cursor-drag-scroll/cursor-drag-scroll.constants.d.ts +2 -0
- package/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.d.ts +21 -0
- package/lib/directives/cursor-drag-scroll/public-api.d.ts +1 -0
- package/lib/directives/observe-scroll-state/observe-scroll-state.constants.d.ts +3 -0
- package/lib/directives/observe-scroll-state/observe-scroll-state.directive.d.ts +31 -0
- package/lib/directives/observe-scroll-state/observe-scroll-state.types.d.ts +6 -0
- package/lib/directives/observe-scroll-state/public-api.d.ts +3 -0
- package/lib/directives/public-api.d.ts +4 -0
- package/lib/directives/scroll-observer-ignore-target/index.d.ts +1 -0
- package/lib/directives/scroll-observer-ignore-target/public-api.d.ts +1 -0
- package/lib/directives/scroll-observer-ignore-target/scroll-observer-ignore-target.directive.d.ts +6 -0
- package/lib/services/click-observer.service.d.ts +21 -0
- package/lib/services/destroy.service.d.ts +9 -0
- package/lib/services/public-api.d.ts +2 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/public-api.d.ts +1 -0
- package/lib/utils/scrollable.utils.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, Directive, Input, Injectable, Inject, Optional, inject, ElementRef, NgZone, EventEmitter, Output, Pipe } from '@angular/core';
|
|
3
3
|
import { coerceNumberProperty, coerceElement, coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
-
import { BehaviorSubject, combineLatest, map, shareReplay, Observable, Subject, debounceTime } from 'rxjs';
|
|
4
|
+
import { BehaviorSubject, combineLatest, map, shareReplay, Observable, Subject, fromEvent, debounceTime, tap, takeUntil, take } from 'rxjs';
|
|
5
5
|
import { __decorate, __metadata } from 'tslib';
|
|
6
6
|
import * as i1 from '@angular/cdk/layout';
|
|
7
7
|
import { DOCUMENT } from '@angular/common';
|
|
@@ -82,9 +82,9 @@ class LetDirective {
|
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
LetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
86
|
-
LetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
85
|
+
LetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: LetDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
86
|
+
LetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: LetDirective, isStandalone: true, selector: "[etLet]", inputs: { etLet: "etLet" }, ngImport: i0 });
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: LetDirective, decorators: [{
|
|
88
88
|
type: Directive,
|
|
89
89
|
args: [{
|
|
90
90
|
selector: '[etLet]',
|
|
@@ -115,9 +115,9 @@ class RepeatDirective {
|
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
|
-
RepeatDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
119
|
-
RepeatDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
118
|
+
RepeatDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: RepeatDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
119
|
+
RepeatDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: RepeatDirective, isStandalone: true, selector: "[etRepeat]", inputs: { repeatCount: ["etRepeat", "repeatCount"] }, ngImport: i0 });
|
|
120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: RepeatDirective, decorators: [{
|
|
121
121
|
type: Directive,
|
|
122
122
|
args: [{
|
|
123
123
|
selector: '[etRepeat]',
|
|
@@ -258,8 +258,8 @@ class ViewportService {
|
|
|
258
258
|
return 'xs';
|
|
259
259
|
}
|
|
260
260
|
}
|
|
261
|
-
ViewportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
262
|
-
ViewportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
261
|
+
ViewportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ViewportService, deps: [{ token: VIEWPORT_CONFIG, optional: true }, { token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
262
|
+
ViewportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ViewportService, providedIn: 'root' });
|
|
263
263
|
__decorate([
|
|
264
264
|
Memo(),
|
|
265
265
|
__metadata("design:type", Function),
|
|
@@ -276,7 +276,7 @@ __decorate([
|
|
|
276
276
|
__metadata("design:paramtypes", [Object]),
|
|
277
277
|
__metadata("design:returntype", void 0)
|
|
278
278
|
], ViewportService.prototype, "_buildMediaQuery", null);
|
|
279
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ViewportService, decorators: [{
|
|
280
280
|
type: Injectable,
|
|
281
281
|
args: [{
|
|
282
282
|
providedIn: 'root',
|
|
@@ -310,9 +310,9 @@ class FocusVisibleService {
|
|
|
310
310
|
this._hadKeyboardEvent = false;
|
|
311
311
|
}
|
|
312
312
|
}
|
|
313
|
-
FocusVisibleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
314
|
-
FocusVisibleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
315
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
313
|
+
FocusVisibleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FocusVisibleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
314
|
+
FocusVisibleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FocusVisibleService, providedIn: 'root' });
|
|
315
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FocusVisibleService, decorators: [{
|
|
316
316
|
type: Injectable,
|
|
317
317
|
args: [{
|
|
318
318
|
providedIn: 'root',
|
|
@@ -325,9 +325,9 @@ class ResizeObserverFactory {
|
|
|
325
325
|
return typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(callback);
|
|
326
326
|
}
|
|
327
327
|
}
|
|
328
|
-
ResizeObserverFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
329
|
-
ResizeObserverFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
330
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
328
|
+
ResizeObserverFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ResizeObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
329
|
+
ResizeObserverFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ResizeObserverFactory, providedIn: 'root' });
|
|
330
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ResizeObserverFactory, decorators: [{
|
|
331
331
|
type: Injectable,
|
|
332
332
|
args: [{ providedIn: 'root' }]
|
|
333
333
|
}] });
|
|
@@ -383,9 +383,9 @@ class ResizeObserverService {
|
|
|
383
383
|
}
|
|
384
384
|
}
|
|
385
385
|
}
|
|
386
|
-
ResizeObserverService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
387
|
-
ResizeObserverService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
388
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
386
|
+
ResizeObserverService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ResizeObserverService, deps: [{ token: ResizeObserverFactory }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
387
|
+
ResizeObserverService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ResizeObserverService, providedIn: 'root' });
|
|
388
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ResizeObserverService, decorators: [{
|
|
389
389
|
type: Injectable,
|
|
390
390
|
args: [{ providedIn: 'root' }]
|
|
391
391
|
}], ctorParameters: function () { return [{ type: ResizeObserverFactory }]; } });
|
|
@@ -396,9 +396,9 @@ class MutationObserverFactory {
|
|
|
396
396
|
return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);
|
|
397
397
|
}
|
|
398
398
|
}
|
|
399
|
-
MutationObserverFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
400
|
-
MutationObserverFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
401
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
399
|
+
MutationObserverFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: MutationObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
400
|
+
MutationObserverFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: MutationObserverFactory, providedIn: 'root' });
|
|
401
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: MutationObserverFactory, decorators: [{
|
|
402
402
|
type: Injectable,
|
|
403
403
|
args: [{ providedIn: 'root' }]
|
|
404
404
|
}] });
|
|
@@ -458,13 +458,103 @@ class ContentObserverService {
|
|
|
458
458
|
}
|
|
459
459
|
}
|
|
460
460
|
}
|
|
461
|
-
ContentObserverService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
462
|
-
ContentObserverService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
463
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
461
|
+
ContentObserverService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ContentObserverService, deps: [{ token: MutationObserverFactory }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
462
|
+
ContentObserverService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ContentObserverService, providedIn: 'root' });
|
|
463
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ContentObserverService, decorators: [{
|
|
464
464
|
type: Injectable,
|
|
465
465
|
args: [{ providedIn: 'root' }]
|
|
466
466
|
}], ctorParameters: function () { return [{ type: MutationObserverFactory }]; } });
|
|
467
467
|
|
|
468
|
+
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
469
|
+
class ClickObserverFactory {
|
|
470
|
+
create() {
|
|
471
|
+
return fromEvent(document, 'click');
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
ClickObserverFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ClickObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
475
|
+
ClickObserverFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ClickObserverFactory, providedIn: 'root' });
|
|
476
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ClickObserverFactory, decorators: [{
|
|
477
|
+
type: Injectable,
|
|
478
|
+
args: [{ providedIn: 'root' }]
|
|
479
|
+
}] });
|
|
480
|
+
class ClickObserverService {
|
|
481
|
+
constructor(_clickObserverFactory) {
|
|
482
|
+
this._clickObserverFactory = _clickObserverFactory;
|
|
483
|
+
this._observedElements = new Map();
|
|
484
|
+
}
|
|
485
|
+
ngOnDestroy() {
|
|
486
|
+
this._observedElements.forEach((_, element) => this._cleanupObserver(element));
|
|
487
|
+
}
|
|
488
|
+
observe(elementOrRef) {
|
|
489
|
+
const element = coerceElement(elementOrRef);
|
|
490
|
+
return new Observable((observer) => {
|
|
491
|
+
const stream = this._observeElement(element);
|
|
492
|
+
const subscription = stream.subscribe(observer);
|
|
493
|
+
return () => {
|
|
494
|
+
subscription.unsubscribe();
|
|
495
|
+
this._unobserveElement(element);
|
|
496
|
+
};
|
|
497
|
+
});
|
|
498
|
+
}
|
|
499
|
+
_observeElement(element) {
|
|
500
|
+
if (!this._observedElements.has(element)) {
|
|
501
|
+
const stream = new Subject();
|
|
502
|
+
const observer = this._clickObserverFactory.create();
|
|
503
|
+
const sub = observer.subscribe((event) => stream.next(event));
|
|
504
|
+
this._observedElements.set(element, { observer: sub, stream, count: 1 });
|
|
505
|
+
}
|
|
506
|
+
else {
|
|
507
|
+
this._observedElements.get(element).count++;
|
|
508
|
+
}
|
|
509
|
+
return this._observedElements.get(element).stream;
|
|
510
|
+
}
|
|
511
|
+
_unobserveElement(element) {
|
|
512
|
+
if (this._observedElements.has(element)) {
|
|
513
|
+
this._observedElements.get(element).count--;
|
|
514
|
+
if (!this._observedElements.get(element).count) {
|
|
515
|
+
this._cleanupObserver(element);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
_cleanupObserver(element) {
|
|
520
|
+
if (this._observedElements.has(element)) {
|
|
521
|
+
const { observer, stream } = this._observedElements.get(element);
|
|
522
|
+
if (observer) {
|
|
523
|
+
observer.unsubscribe();
|
|
524
|
+
}
|
|
525
|
+
stream.complete();
|
|
526
|
+
this._observedElements.delete(element);
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
ClickObserverService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ClickObserverService, deps: [{ token: ClickObserverFactory }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
531
|
+
ClickObserverService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ClickObserverService, providedIn: 'root' });
|
|
532
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ClickObserverService, decorators: [{
|
|
533
|
+
type: Injectable,
|
|
534
|
+
args: [{ providedIn: 'root' }]
|
|
535
|
+
}], ctorParameters: function () { return [{ type: ClickObserverFactory }]; } });
|
|
536
|
+
|
|
537
|
+
class DestroyService {
|
|
538
|
+
constructor() {
|
|
539
|
+
this._destroy$ = new Subject();
|
|
540
|
+
}
|
|
541
|
+
get destroy$() {
|
|
542
|
+
return this._destroy$.asObservable();
|
|
543
|
+
}
|
|
544
|
+
ngOnDestroy() {
|
|
545
|
+
this._destroy$.next(true);
|
|
546
|
+
this._destroy$.unsubscribe();
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
DestroyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: DestroyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
550
|
+
DestroyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: DestroyService, providedIn: 'any' });
|
|
551
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: DestroyService, decorators: [{
|
|
552
|
+
type: Injectable,
|
|
553
|
+
args: [{
|
|
554
|
+
providedIn: 'any',
|
|
555
|
+
}]
|
|
556
|
+
}] });
|
|
557
|
+
|
|
468
558
|
class ObserveResizeDirective {
|
|
469
559
|
constructor() {
|
|
470
560
|
this._resizeObserver = inject(ResizeObserverService);
|
|
@@ -508,9 +598,9 @@ class ObserveResizeDirective {
|
|
|
508
598
|
this._currentSubscription?.unsubscribe();
|
|
509
599
|
}
|
|
510
600
|
}
|
|
511
|
-
ObserveResizeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
512
|
-
ObserveResizeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
513
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
601
|
+
ObserveResizeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ObserveResizeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
602
|
+
ObserveResizeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: ObserveResizeDirective, isStandalone: true, selector: "[etObserveResize]", inputs: { disabled: ["etObserveResizeDisabled", "disabled"], debounce: ["etObserveResizeDebounce", "debounce"] }, outputs: { event: "etObserveResize" }, exportAs: ["etObserveResize"], ngImport: i0 });
|
|
603
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ObserveResizeDirective, decorators: [{
|
|
514
604
|
type: Directive,
|
|
515
605
|
args: [{
|
|
516
606
|
selector: '[etObserveResize]',
|
|
@@ -571,9 +661,9 @@ class ObserveContentDirective {
|
|
|
571
661
|
this._currentSubscription?.unsubscribe();
|
|
572
662
|
}
|
|
573
663
|
}
|
|
574
|
-
ObserveContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
575
|
-
ObserveContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.
|
|
576
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
664
|
+
ObserveContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ObserveContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
665
|
+
ObserveContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: ObserveContentDirective, isStandalone: true, selector: "[etObserveContent]", inputs: { disabled: ["etObserveContentDisabled", "disabled"], debounce: ["etObserveContentDebounce", "debounce"] }, outputs: { event: "etObserveContent" }, exportAs: ["etObserveContent"], ngImport: i0 });
|
|
666
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ObserveContentDirective, decorators: [{
|
|
577
667
|
type: Directive,
|
|
578
668
|
args: [{
|
|
579
669
|
selector: '[etObserveContent]',
|
|
@@ -591,6 +681,339 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
591
681
|
args: ['etObserveContentDebounce']
|
|
592
682
|
}] } });
|
|
593
683
|
|
|
684
|
+
class ClickOutsideDirective {
|
|
685
|
+
constructor() {
|
|
686
|
+
this._elementRef = inject(ElementRef);
|
|
687
|
+
this._clickObserverService = inject(ClickObserverService);
|
|
688
|
+
this._subscription = null;
|
|
689
|
+
this.etClickOutside = new EventEmitter();
|
|
690
|
+
}
|
|
691
|
+
ngOnInit() {
|
|
692
|
+
setTimeout(() => {
|
|
693
|
+
this._subscription = this._clickObserverService.observe(this._elementRef.nativeElement).subscribe((event) => {
|
|
694
|
+
const activeElement = event.target;
|
|
695
|
+
const isInside = this._elementRef.nativeElement.contains(activeElement);
|
|
696
|
+
if (!isInside) {
|
|
697
|
+
this.etClickOutside.emit(event);
|
|
698
|
+
}
|
|
699
|
+
});
|
|
700
|
+
});
|
|
701
|
+
}
|
|
702
|
+
ngOnDestroy() {
|
|
703
|
+
this._subscription?.unsubscribe();
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
707
|
+
ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: ClickOutsideDirective, isStandalone: true, selector: "[etClickOutside]", outputs: { etClickOutside: "etClickOutside" }, ngImport: i0 });
|
|
708
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ClickOutsideDirective, decorators: [{
|
|
709
|
+
type: Directive,
|
|
710
|
+
args: [{
|
|
711
|
+
selector: '[etClickOutside]',
|
|
712
|
+
standalone: true,
|
|
713
|
+
}]
|
|
714
|
+
}], propDecorators: { etClickOutside: [{
|
|
715
|
+
type: Output
|
|
716
|
+
}] } });
|
|
717
|
+
|
|
718
|
+
const OBSERVE_SCROLL_STATE = new InjectionToken('OBSERVE_SCROLL_STATE');
|
|
719
|
+
|
|
720
|
+
const SCROLL_OBSERVER_IGNORE_TARGET_CLASS = 'et-scroll-observer-ignore-target';
|
|
721
|
+
class ScrollObserverIgnoreTargetDirective {
|
|
722
|
+
}
|
|
723
|
+
ScrollObserverIgnoreTargetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ScrollObserverIgnoreTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
724
|
+
ScrollObserverIgnoreTargetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: ScrollObserverIgnoreTargetDirective, isStandalone: true, selector: "[etScrollObserverIgnoreTarget]", host: { classAttribute: "et-scroll-observer-ignore-target" }, ngImport: i0 });
|
|
725
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ScrollObserverIgnoreTargetDirective, decorators: [{
|
|
726
|
+
type: Directive,
|
|
727
|
+
args: [{
|
|
728
|
+
selector: '[etScrollObserverIgnoreTarget]',
|
|
729
|
+
standalone: true,
|
|
730
|
+
host: {
|
|
731
|
+
class: SCROLL_OBSERVER_IGNORE_TARGET_CLASS,
|
|
732
|
+
},
|
|
733
|
+
}]
|
|
734
|
+
}] });
|
|
735
|
+
|
|
736
|
+
const provideViewportConfig = (viewportConfig) => {
|
|
737
|
+
return { provide: VIEWPORT_CONFIG, useValue: viewportConfig };
|
|
738
|
+
};
|
|
739
|
+
|
|
740
|
+
const clamp = (value, min = 0, max = 100) => {
|
|
741
|
+
return Math.max(min, Math.min(max, value));
|
|
742
|
+
};
|
|
743
|
+
|
|
744
|
+
const elementCanScroll = (element) => {
|
|
745
|
+
const { scrollHeight, clientHeight, scrollWidth, clientWidth } = element;
|
|
746
|
+
return scrollHeight > clientHeight || scrollWidth > clientWidth;
|
|
747
|
+
};
|
|
748
|
+
|
|
749
|
+
class ObserveScrollStateDirective {
|
|
750
|
+
constructor() {
|
|
751
|
+
this._destroy$ = inject(DestroyService).destroy$;
|
|
752
|
+
this._elementRef = inject(ElementRef);
|
|
753
|
+
this._contentObserverService = inject(ContentObserverService);
|
|
754
|
+
this._resizeObserverService = inject(ResizeObserverService);
|
|
755
|
+
this._observedChildren = {
|
|
756
|
+
first: this._firstCurrentChild,
|
|
757
|
+
last: this._lastCurrentChild,
|
|
758
|
+
};
|
|
759
|
+
this._rootMargin = 0;
|
|
760
|
+
this._threshold = 1;
|
|
761
|
+
this._intersectionObserver = null;
|
|
762
|
+
this.etObserveScrollState = new EventEmitter();
|
|
763
|
+
}
|
|
764
|
+
get _firstCurrentChild() {
|
|
765
|
+
const element = this._elementRef.nativeElement.querySelector(`:first-child`);
|
|
766
|
+
return this._getNonIgnoredChild(element, 'next');
|
|
767
|
+
}
|
|
768
|
+
get _lastCurrentChild() {
|
|
769
|
+
const element = this._elementRef.nativeElement.querySelector(`:last-child`);
|
|
770
|
+
return this._getNonIgnoredChild(element, 'previous');
|
|
771
|
+
}
|
|
772
|
+
get observerRootMargin() {
|
|
773
|
+
return this._rootMargin;
|
|
774
|
+
}
|
|
775
|
+
set observerRootMargin(value) {
|
|
776
|
+
this._rootMargin = coerceNumberProperty(value);
|
|
777
|
+
}
|
|
778
|
+
get observerThreshold() {
|
|
779
|
+
return this._threshold;
|
|
780
|
+
}
|
|
781
|
+
set observerThreshold(value) {
|
|
782
|
+
this._threshold = coerceNumberProperty(value);
|
|
783
|
+
}
|
|
784
|
+
ngOnInit() {
|
|
785
|
+
this._contentObserverService
|
|
786
|
+
.observe(this._elementRef.nativeElement)
|
|
787
|
+
.pipe(tap(() => this._checkChildren()), takeUntil(this._destroy$))
|
|
788
|
+
.subscribe();
|
|
789
|
+
this._resizeObserverService
|
|
790
|
+
.observe(this._elementRef.nativeElement)
|
|
791
|
+
.pipe(debounceTime(25), tap(() => {
|
|
792
|
+
if (!this._intersectionObserver && elementCanScroll(this._elementRef.nativeElement)) {
|
|
793
|
+
this._checkChildren();
|
|
794
|
+
}
|
|
795
|
+
}), takeUntil(this._destroy$))
|
|
796
|
+
.subscribe();
|
|
797
|
+
this._checkChildren();
|
|
798
|
+
}
|
|
799
|
+
ngOnDestroy() {
|
|
800
|
+
this._clearIntersectionObserver();
|
|
801
|
+
}
|
|
802
|
+
_checkChildren() {
|
|
803
|
+
this._clearIntersectionObserver();
|
|
804
|
+
if (this._firstCurrentChild === this._lastCurrentChild ||
|
|
805
|
+
!this._firstCurrentChild ||
|
|
806
|
+
!this._lastCurrentChild ||
|
|
807
|
+
!elementCanScroll(this._elementRef.nativeElement)) {
|
|
808
|
+
this._unobserveChild('first');
|
|
809
|
+
this._unobserveChild('last');
|
|
810
|
+
this.etObserveScrollState.emit({
|
|
811
|
+
isAtStart: true,
|
|
812
|
+
isAtEnd: true,
|
|
813
|
+
canScroll: false,
|
|
814
|
+
});
|
|
815
|
+
}
|
|
816
|
+
else {
|
|
817
|
+
this._intersectionObserver = this._initiateIntersectionObserver();
|
|
818
|
+
this._observeChild('first', this._firstCurrentChild);
|
|
819
|
+
this._observeChild('last', this._lastCurrentChild);
|
|
820
|
+
}
|
|
821
|
+
}
|
|
822
|
+
_initiateIntersectionObserver() {
|
|
823
|
+
const observer = new IntersectionObserver((entries) => {
|
|
824
|
+
const { first, last } = this._observedChildren;
|
|
825
|
+
const isAtStart = entries.find((entry) => entry.target === first)?.isIntersecting ?? false;
|
|
826
|
+
const isAtEnd = entries.find((entry) => entry.target === last)?.isIntersecting ?? false;
|
|
827
|
+
this.etObserveScrollState.emit({
|
|
828
|
+
isAtStart,
|
|
829
|
+
isAtEnd,
|
|
830
|
+
canScroll: !isAtStart || !isAtEnd,
|
|
831
|
+
});
|
|
832
|
+
}, {
|
|
833
|
+
root: this._elementRef.nativeElement,
|
|
834
|
+
rootMargin: `${this._rootMargin}px`,
|
|
835
|
+
threshold: this._threshold,
|
|
836
|
+
});
|
|
837
|
+
return observer;
|
|
838
|
+
}
|
|
839
|
+
_observeChild(child, element) {
|
|
840
|
+
this._intersectionObserver?.observe(element);
|
|
841
|
+
this._observedChildren[child] = element;
|
|
842
|
+
}
|
|
843
|
+
_unobserveChild(child) {
|
|
844
|
+
const observedChild = this._observedChildren[child];
|
|
845
|
+
if (!observedChild) {
|
|
846
|
+
return;
|
|
847
|
+
}
|
|
848
|
+
this._intersectionObserver?.unobserve(observedChild);
|
|
849
|
+
this._observedChildren[child] = null;
|
|
850
|
+
}
|
|
851
|
+
_clearIntersectionObserver() {
|
|
852
|
+
this._intersectionObserver?.disconnect();
|
|
853
|
+
this._intersectionObserver = null;
|
|
854
|
+
}
|
|
855
|
+
_getNonIgnoredChild(element, direction) {
|
|
856
|
+
if (!element) {
|
|
857
|
+
return null;
|
|
858
|
+
}
|
|
859
|
+
if (element?.classList.contains(SCROLL_OBSERVER_IGNORE_TARGET_CLASS)) {
|
|
860
|
+
const nextElement = element[`${direction}ElementSibling`];
|
|
861
|
+
if (!nextElement) {
|
|
862
|
+
return null;
|
|
863
|
+
}
|
|
864
|
+
return this._getNonIgnoredChild(nextElement, direction);
|
|
865
|
+
}
|
|
866
|
+
return element;
|
|
867
|
+
}
|
|
868
|
+
}
|
|
869
|
+
ObserveScrollStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ObserveScrollStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
870
|
+
ObserveScrollStateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: ObserveScrollStateDirective, isStandalone: true, selector: "[etObserveScrollState]", inputs: { observerRootMargin: "observerRootMargin", observerThreshold: "observerThreshold" }, outputs: { etObserveScrollState: "etObserveScrollState" }, providers: [
|
|
871
|
+
{
|
|
872
|
+
provide: OBSERVE_SCROLL_STATE,
|
|
873
|
+
useExisting: ObserveScrollStateDirective,
|
|
874
|
+
},
|
|
875
|
+
], exportAs: ["etObserveScrollState"], ngImport: i0 });
|
|
876
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ObserveScrollStateDirective, decorators: [{
|
|
877
|
+
type: Directive,
|
|
878
|
+
args: [{
|
|
879
|
+
selector: '[etObserveScrollState]',
|
|
880
|
+
exportAs: 'etObserveScrollState',
|
|
881
|
+
standalone: true,
|
|
882
|
+
providers: [
|
|
883
|
+
{
|
|
884
|
+
provide: OBSERVE_SCROLL_STATE,
|
|
885
|
+
useExisting: ObserveScrollStateDirective,
|
|
886
|
+
},
|
|
887
|
+
],
|
|
888
|
+
}]
|
|
889
|
+
}], propDecorators: { observerRootMargin: [{
|
|
890
|
+
type: Input
|
|
891
|
+
}], observerThreshold: [{
|
|
892
|
+
type: Input
|
|
893
|
+
}], etObserveScrollState: [{
|
|
894
|
+
type: Output
|
|
895
|
+
}] } });
|
|
896
|
+
|
|
897
|
+
const CURSOR_DRAG_SCROLLING_CLASS = 'et-cursor-drag-scroll--scrolling';
|
|
898
|
+
const CURSOR_DRAG_SCROLLING_PREPARED_CLASS = 'et-cursor-drag-scroll--prepared';
|
|
899
|
+
|
|
900
|
+
class CursorDragScrollDirective {
|
|
901
|
+
constructor() {
|
|
902
|
+
this._destroy$ = inject(DestroyService).destroy$;
|
|
903
|
+
this._elementRef = inject(ElementRef);
|
|
904
|
+
this._contentObserverService = inject(ContentObserverService);
|
|
905
|
+
this._resizeObserverService = inject(ResizeObserverService);
|
|
906
|
+
this._bufferUntilScroll = 5;
|
|
907
|
+
this._mouseUp$ = new Subject();
|
|
908
|
+
this._isScrolling = false;
|
|
909
|
+
this._canScroll = false;
|
|
910
|
+
this._currentScrollState = {
|
|
911
|
+
top: 0,
|
|
912
|
+
left: 0,
|
|
913
|
+
x: 0,
|
|
914
|
+
y: 0,
|
|
915
|
+
};
|
|
916
|
+
}
|
|
917
|
+
ngAfterViewInit() {
|
|
918
|
+
combineLatest([
|
|
919
|
+
this._contentObserverService.observe(this._elementRef.nativeElement),
|
|
920
|
+
this._resizeObserverService.observe(this._elementRef.nativeElement),
|
|
921
|
+
])
|
|
922
|
+
.pipe(tap(() => this._updateCanScrollState()), takeUntil(this._destroy$))
|
|
923
|
+
.subscribe();
|
|
924
|
+
fromEvent(this._elementRef.nativeElement, 'mousedown')
|
|
925
|
+
.pipe(tap((e) => this._onMouseDown(e)), takeUntil(this._destroy$))
|
|
926
|
+
.subscribe();
|
|
927
|
+
this._updateCanScrollState();
|
|
928
|
+
}
|
|
929
|
+
_onMouseDown(e) {
|
|
930
|
+
if (!this._elementRef?.nativeElement || !this._canScroll) {
|
|
931
|
+
return;
|
|
932
|
+
}
|
|
933
|
+
const element = this._elementRef.nativeElement;
|
|
934
|
+
element.classList.add(CURSOR_DRAG_SCROLLING_PREPARED_CLASS);
|
|
935
|
+
this._elementRef.nativeElement.style.scrollSnapType = 'none';
|
|
936
|
+
this._elementRef.nativeElement.style.scrollBehavior = 'unset';
|
|
937
|
+
this._currentScrollState = {
|
|
938
|
+
left: this._elementRef.nativeElement.scrollLeft,
|
|
939
|
+
top: this._elementRef.nativeElement.scrollTop,
|
|
940
|
+
x: e.clientX,
|
|
941
|
+
y: e.clientY,
|
|
942
|
+
};
|
|
943
|
+
fromEvent(document, 'mousemove')
|
|
944
|
+
.pipe(tap((e) => this._mouseMoveHandler(e)), takeUntil(this._mouseUp$), takeUntil(this._destroy$))
|
|
945
|
+
.subscribe();
|
|
946
|
+
fromEvent(document, 'mouseup')
|
|
947
|
+
.pipe(tap(() => this._mouseUpHandler()), take(1), takeUntil(this._destroy$))
|
|
948
|
+
.subscribe();
|
|
949
|
+
}
|
|
950
|
+
_mouseMoveHandler(e) {
|
|
951
|
+
e.preventDefault();
|
|
952
|
+
if (!this._elementRef?.nativeElement) {
|
|
953
|
+
return;
|
|
954
|
+
}
|
|
955
|
+
const dx = e.clientX - this._currentScrollState.x;
|
|
956
|
+
const dy = e.clientY - this._currentScrollState.y;
|
|
957
|
+
if (Math.abs(dx) > this._bufferUntilScroll || Math.abs(dy) > this._bufferUntilScroll) {
|
|
958
|
+
const element = this._elementRef.nativeElement;
|
|
959
|
+
if (!this._isScrolling) {
|
|
960
|
+
this._isScrolling = true;
|
|
961
|
+
element.style.cursor = 'grabbing';
|
|
962
|
+
element.classList.add(CURSOR_DRAG_SCROLLING_CLASS);
|
|
963
|
+
element.scroll({
|
|
964
|
+
top: this._currentScrollState.top - dy,
|
|
965
|
+
left: this._currentScrollState.left - dx,
|
|
966
|
+
behavior: 'smooth',
|
|
967
|
+
});
|
|
968
|
+
}
|
|
969
|
+
else {
|
|
970
|
+
element.scrollTop = this._currentScrollState.top - dy;
|
|
971
|
+
element.scrollLeft = this._currentScrollState.left - dx;
|
|
972
|
+
}
|
|
973
|
+
}
|
|
974
|
+
}
|
|
975
|
+
_mouseUpHandler() {
|
|
976
|
+
this._mouseUp$.next(true);
|
|
977
|
+
this._isScrolling = false;
|
|
978
|
+
if (!this._elementRef?.nativeElement) {
|
|
979
|
+
return;
|
|
980
|
+
}
|
|
981
|
+
this._elementRef.nativeElement.style.scrollSnapType = '';
|
|
982
|
+
this._elementRef.nativeElement.style.scrollBehavior = '';
|
|
983
|
+
this._elementRef.nativeElement.style.cursor = 'grab';
|
|
984
|
+
this._elementRef.nativeElement.classList.remove(CURSOR_DRAG_SCROLLING_CLASS);
|
|
985
|
+
this._elementRef.nativeElement.classList.remove(CURSOR_DRAG_SCROLLING_PREPARED_CLASS);
|
|
986
|
+
}
|
|
987
|
+
_updateCanScrollState() {
|
|
988
|
+
this._canScroll = elementCanScroll(this._elementRef.nativeElement);
|
|
989
|
+
if (this._canScroll) {
|
|
990
|
+
this._elementRef.nativeElement.style.cursor = 'grab';
|
|
991
|
+
}
|
|
992
|
+
else {
|
|
993
|
+
this._elementRef.nativeElement.style.cursor = 'default';
|
|
994
|
+
}
|
|
995
|
+
}
|
|
996
|
+
_checkCanScroll() {
|
|
997
|
+
if (this._elementRef.nativeElement.scrollWidth > this._elementRef.nativeElement.clientWidth) {
|
|
998
|
+
return true;
|
|
999
|
+
}
|
|
1000
|
+
if (this._elementRef.nativeElement.scrollHeight > this._elementRef.nativeElement.clientHeight) {
|
|
1001
|
+
return true;
|
|
1002
|
+
}
|
|
1003
|
+
return false;
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
CursorDragScrollDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: CursorDragScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1007
|
+
CursorDragScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: CursorDragScrollDirective, isStandalone: true, selector: "[etCursorDragScroll]", exportAs: ["etCursorDragScroll"], ngImport: i0 });
|
|
1008
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: CursorDragScrollDirective, decorators: [{
|
|
1009
|
+
type: Directive,
|
|
1010
|
+
args: [{
|
|
1011
|
+
selector: '[etCursorDragScroll]',
|
|
1012
|
+
exportAs: 'etCursorDragScroll',
|
|
1013
|
+
standalone: true,
|
|
1014
|
+
}]
|
|
1015
|
+
}] });
|
|
1016
|
+
|
|
594
1017
|
const toArray = (value) => {
|
|
595
1018
|
return Array.from({ length: value }, (_, i) => i);
|
|
596
1019
|
};
|
|
@@ -601,24 +1024,16 @@ class ToArrayPipe {
|
|
|
601
1024
|
this.transform = toArray;
|
|
602
1025
|
}
|
|
603
1026
|
}
|
|
604
|
-
ToArrayPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
605
|
-
ToArrayPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.
|
|
606
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
1027
|
+
ToArrayPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ToArrayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
1028
|
+
ToArrayPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.8", ngImport: i0, type: ToArrayPipe, isStandalone: true, name: "toArray" });
|
|
1029
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ToArrayPipe, decorators: [{
|
|
607
1030
|
type: Pipe,
|
|
608
1031
|
args: [{ name: 'toArray', standalone: true }]
|
|
609
1032
|
}] });
|
|
610
1033
|
|
|
611
|
-
const provideViewportConfig = (viewportConfig) => {
|
|
612
|
-
return { provide: VIEWPORT_CONFIG, useValue: viewportConfig };
|
|
613
|
-
};
|
|
614
|
-
|
|
615
|
-
const clamp = (value, min = 0, max = 100) => {
|
|
616
|
-
return Math.max(min, Math.min(max, value));
|
|
617
|
-
};
|
|
618
|
-
|
|
619
1034
|
/**
|
|
620
1035
|
* Generated bundle index. Do not edit.
|
|
621
1036
|
*/
|
|
622
1037
|
|
|
623
|
-
export { ContentObserverService, DEFAULT_VIEWPORT_CONFIG, FocusVisibleService, LetContext, LetDirective, Memo, MutationObserverFactory, ObserveContentDirective, ObserveResizeDirective, RepeatDirective, ResizeObserverFactory, ResizeObserverService, ToArrayPipe, VIEWPORT_CONFIG, ViewportService, clamp, provideViewportConfig, toArray, toArrayTrackByFn };
|
|
1038
|
+
export { ClickObserverFactory, ClickObserverService, ClickOutsideDirective, ContentObserverService, CursorDragScrollDirective, DEFAULT_VIEWPORT_CONFIG, DestroyService, FocusVisibleService, LetContext, LetDirective, Memo, MutationObserverFactory, OBSERVE_SCROLL_STATE, ObserveContentDirective, ObserveResizeDirective, ObserveScrollStateDirective, RepeatDirective, ResizeObserverFactory, ResizeObserverService, SCROLL_OBSERVER_IGNORE_TARGET_CLASS, ScrollObserverIgnoreTargetDirective, ToArrayPipe, VIEWPORT_CONFIG, ViewportService, clamp, elementCanScroll, provideViewportConfig, toArray, toArrayTrackByFn };
|
|
624
1039
|
//# sourceMappingURL=ethlete-core.mjs.map
|