@acorex/cdk 22.1.0-next.30 → 22.1.0-next.32
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/fesm2022/acorex-cdk-accordion.mjs +19 -19
- package/fesm2022/acorex-cdk-carousel.mjs +25 -7
- package/fesm2022/acorex-cdk-carousel.mjs.map +1 -1
- package/fesm2022/acorex-cdk-clipboard.mjs +6 -6
- package/fesm2022/acorex-cdk-common.mjs +169 -93
- package/fesm2022/acorex-cdk-common.mjs.map +1 -1
- package/fesm2022/acorex-cdk-dom.mjs +3 -3
- package/fesm2022/acorex-cdk-drag-drop.mjs +210 -68
- package/fesm2022/acorex-cdk-drag-drop.mjs.map +1 -1
- package/fesm2022/acorex-cdk-drawer.mjs +10 -10
- package/fesm2022/acorex-cdk-focus-trap.mjs +3 -3
- package/fesm2022/acorex-cdk-full-screen.mjs +26 -147
- package/fesm2022/acorex-cdk-full-screen.mjs.map +1 -1
- package/fesm2022/acorex-cdk-gesture.mjs +202 -0
- package/fesm2022/acorex-cdk-gesture.mjs.map +1 -0
- package/fesm2022/acorex-cdk-highlight.mjs +108 -0
- package/fesm2022/acorex-cdk-highlight.mjs.map +1 -0
- package/fesm2022/acorex-cdk-horizontal-scroll.mjs +150 -125
- package/fesm2022/acorex-cdk-horizontal-scroll.mjs.map +1 -1
- package/fesm2022/acorex-cdk-input-mask.mjs +3 -3
- package/fesm2022/acorex-cdk-list-navigation.mjs +10 -10
- package/fesm2022/acorex-cdk-outline.mjs +277 -74
- package/fesm2022/acorex-cdk-outline.mjs.map +1 -1
- package/fesm2022/acorex-cdk-overlay.mjs +192 -18
- package/fesm2022/acorex-cdk-overlay.mjs.map +1 -1
- package/fesm2022/acorex-cdk-pan-view.mjs +3 -3
- package/fesm2022/acorex-cdk-resizable.mjs +3 -3
- package/fesm2022/acorex-cdk-selection.mjs +10 -10
- package/fesm2022/acorex-cdk-shimmer.mjs +220 -0
- package/fesm2022/acorex-cdk-shimmer.mjs.map +1 -0
- package/fesm2022/acorex-cdk-sliding-item.mjs +72 -62
- package/fesm2022/acorex-cdk-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-cdk-sticky.mjs +3 -3
- package/fesm2022/acorex-cdk-uploader.mjs +9 -9
- package/fesm2022/acorex-cdk-virtual-scroll.mjs +10 -10
- package/fesm2022/acorex-cdk-z-index.mjs +3 -3
- package/gesture/README.md +3 -0
- package/horizontal-scroll/README.md +1 -1
- package/package.json +16 -7
- package/shimmer/README.md +11 -0
- package/sliding-item/README.md +4 -2
- package/types/acorex-cdk-carousel.d.ts +2 -0
- package/types/acorex-cdk-clipboard.d.ts +1 -1
- package/types/acorex-cdk-common.d.ts +36 -19
- package/types/acorex-cdk-drag-drop.d.ts +31 -4
- package/types/acorex-cdk-full-screen.d.ts +18 -43
- package/types/acorex-cdk-gesture.d.ts +132 -0
- package/types/acorex-cdk-highlight.d.ts +54 -0
- package/types/acorex-cdk-horizontal-scroll.d.ts +39 -28
- package/types/acorex-cdk-outline.d.ts +20 -0
- package/types/acorex-cdk-overlay.d.ts +47 -4
- package/types/acorex-cdk-shimmer.d.ts +68 -0
- package/types/acorex-cdk-sliding-item.d.ts +22 -4
- package/types/acorex-cdk-uploader.d.ts +1 -1
- package/fesm2022/acorex-cdk-double-click.mjs +0 -178
- package/fesm2022/acorex-cdk-double-click.mjs.map +0 -1
- package/types/acorex-cdk-double-click.d.ts +0 -66
|
@@ -1,188 +1,224 @@
|
|
|
1
1
|
import { isPlatformBrowser } from '@angular/common';
|
|
2
|
+
import * as i1 from '@acorex/cdk/gesture';
|
|
3
|
+
import { AXGestureDirective } from '@acorex/cdk/gesture';
|
|
4
|
+
import { AXHtmlUtil } from '@acorex/core/utils';
|
|
2
5
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject, ElementRef, PLATFORM_ID, NgZone, input, afterNextRender, Directive } from '@angular/core';
|
|
6
|
+
import { inject, ElementRef, PLATFORM_ID, NgZone, DestroyRef, input, linkedSignal, effect, afterNextRender, Directive } from '@angular/core';
|
|
4
7
|
|
|
5
8
|
/**
|
|
6
|
-
* Converts vertical mouse-wheel scrolling and
|
|
7
|
-
*
|
|
9
|
+
* Converts vertical mouse-wheel scrolling and pan gestures into scrolling on the host element.
|
|
10
|
+
* Supports horizontal and vertical orientations. Pan is provided by the hosted AXGestureDirective.
|
|
8
11
|
*
|
|
9
12
|
* Usage:
|
|
10
13
|
* <div axHorizontalScroll [speed]="150" class="overflow-x-auto">
|
|
11
14
|
* ...
|
|
12
15
|
* </div>
|
|
16
|
+
*
|
|
17
|
+
* Do not put `axGesture` on the same element; this directive already hosts it.
|
|
13
18
|
*/
|
|
14
19
|
class AXHorizontalScrollDirective {
|
|
20
|
+
touchAction() {
|
|
21
|
+
if (this.disabled())
|
|
22
|
+
return null;
|
|
23
|
+
return this.isHorizontal() ? 'pan-y' : 'pan-x';
|
|
24
|
+
}
|
|
15
25
|
constructor() {
|
|
16
26
|
this.elementRef = inject((ElementRef));
|
|
17
27
|
this.platformId = inject(PLATFORM_ID);
|
|
18
28
|
this.zone = inject(NgZone);
|
|
29
|
+
this.gesture = inject(AXGestureDirective);
|
|
30
|
+
this.destroyRef = inject(DestroyRef);
|
|
19
31
|
/**
|
|
20
|
-
* Disables wheel-to-horizontal conversion and
|
|
32
|
+
* Disables wheel-to-horizontal conversion and pan scrolling when true.
|
|
21
33
|
*/
|
|
22
34
|
this.disabled = input(false, /* @ts-ignore */
|
|
23
35
|
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
24
36
|
/**
|
|
25
|
-
* Horizontal
|
|
37
|
+
* Scroll axis. Horizontal converts wheel + pan; vertical uses pan only.
|
|
38
|
+
* @defaultValue 'horizontal'
|
|
39
|
+
*/
|
|
40
|
+
this.orientation = input('horizontal', /* @ts-ignore */
|
|
41
|
+
...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
42
|
+
/** Internal orientation state; can be overridden programmatically by host components. */
|
|
43
|
+
this.scrollOrientation = linkedSignal(() => this.orientation(), /* @ts-ignore */
|
|
44
|
+
...(ngDevMode ? [{ debugName: "scrollOrientation" }] : /* istanbul ignore next */ []));
|
|
45
|
+
/**
|
|
46
|
+
* Scroll animation duration in milliseconds.
|
|
26
47
|
* Lower values scroll faster; `0` applies the scroll instantly.
|
|
27
48
|
*/
|
|
28
49
|
this.speed = input(200, /* @ts-ignore */
|
|
29
50
|
...(ngDevMode ? [{ debugName: "speed" }] : /* istanbul ignore next */ []));
|
|
30
51
|
this.animationFrameId = null;
|
|
31
|
-
this.
|
|
52
|
+
this.targetScrollPosition = null;
|
|
32
53
|
this.scrollPosition = 0;
|
|
33
54
|
this.lastFrameTime = 0;
|
|
34
|
-
this.
|
|
35
|
-
this.
|
|
36
|
-
this.
|
|
37
|
-
this.pointerStartScrollLeft = 0;
|
|
38
|
-
this.pointerAxis = 'undecided';
|
|
39
|
-
this.lastPointerX = 0;
|
|
40
|
-
this.lastPointerTime = 0;
|
|
41
|
-
this.pointerVelocityX = 0;
|
|
55
|
+
this.isPanning = false;
|
|
56
|
+
this.ignorePan = false;
|
|
57
|
+
this.panStartScrollPosition = 0;
|
|
42
58
|
this.suppressClickListener = null;
|
|
43
59
|
this.suppressClickTimer = null;
|
|
44
|
-
this.
|
|
60
|
+
this._isRtl = false;
|
|
45
61
|
this.interactiveSelector = 'input, textarea, select, option, [contenteditable]:not([contenteditable="false"])';
|
|
46
62
|
this.wheelListener = (event) => this.handleWheel(event);
|
|
47
|
-
this
|
|
48
|
-
|
|
49
|
-
|
|
63
|
+
this.#orientationEffect = effect(() => {
|
|
64
|
+
this.gesture.gestureDirection.set(this.scrollOrientation());
|
|
65
|
+
}, /* @ts-ignore */
|
|
66
|
+
...(ngDevMode ? [{ debugName: "#orientationEffect" }] : /* istanbul ignore next */ []));
|
|
50
67
|
this.#init = afterNextRender(() => {
|
|
51
68
|
if (!isPlatformBrowser(this.platformId))
|
|
52
69
|
return;
|
|
70
|
+
this._isRtl = AXHtmlUtil.isRtl(this.nativeElement);
|
|
53
71
|
this.zone.runOutsideAngular(() => {
|
|
54
72
|
this.nativeElement.addEventListener('wheel', this.wheelListener, { passive: false });
|
|
55
|
-
this.nativeElement.addEventListener('pointerdown', this.pointerDownListener);
|
|
56
|
-
this.nativeElement.addEventListener('pointermove', this.pointerMoveListener, { passive: false });
|
|
57
|
-
this.nativeElement.addEventListener('pointerup', this.pointerUpListener);
|
|
58
|
-
this.nativeElement.addEventListener('pointercancel', this.pointerUpListener);
|
|
59
|
-
this.nativeElement.addEventListener('lostpointercapture', this.pointerUpListener);
|
|
60
73
|
});
|
|
61
74
|
});
|
|
75
|
+
const subscriptions = [
|
|
76
|
+
this.gesture.panstart.subscribe((event) => this.handlePanStart(event)),
|
|
77
|
+
this.gesture.panmove.subscribe((event) => this.handlePanMove(event)),
|
|
78
|
+
this.gesture.panend.subscribe((event) => this.handlePanEnd(event)),
|
|
79
|
+
];
|
|
80
|
+
this.destroyRef.onDestroy(() => {
|
|
81
|
+
for (const subscription of subscriptions) {
|
|
82
|
+
subscription.unsubscribe();
|
|
83
|
+
}
|
|
84
|
+
});
|
|
62
85
|
}
|
|
86
|
+
#orientationEffect;
|
|
63
87
|
#init;
|
|
64
88
|
ngOnDestroy() {
|
|
65
89
|
if (!isPlatformBrowser(this.platformId))
|
|
66
90
|
return;
|
|
67
91
|
this.stopAnimation();
|
|
68
|
-
this.
|
|
92
|
+
this.clearPanStyles();
|
|
69
93
|
this.clearClickSuppression();
|
|
70
94
|
this.nativeElement.removeEventListener('wheel', this.wheelListener);
|
|
71
|
-
this.nativeElement.removeEventListener('pointerdown', this.pointerDownListener);
|
|
72
|
-
this.nativeElement.removeEventListener('pointermove', this.pointerMoveListener);
|
|
73
|
-
this.nativeElement.removeEventListener('pointerup', this.pointerUpListener);
|
|
74
|
-
this.nativeElement.removeEventListener('pointercancel', this.pointerUpListener);
|
|
75
|
-
this.nativeElement.removeEventListener('lostpointercapture', this.pointerUpListener);
|
|
76
95
|
}
|
|
77
96
|
get nativeElement() {
|
|
78
97
|
return this.elementRef.nativeElement;
|
|
79
98
|
}
|
|
99
|
+
isHorizontal() {
|
|
100
|
+
return this.scrollOrientation() === 'horizontal';
|
|
101
|
+
}
|
|
102
|
+
get rtlSign() {
|
|
103
|
+
return this.isHorizontal() && this._isRtl ? -1 : 1;
|
|
104
|
+
}
|
|
105
|
+
refreshRtlState() {
|
|
106
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
107
|
+
this._isRtl = AXHtmlUtil.isRtl(this.nativeElement);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
getCurrentScrollPosition() {
|
|
111
|
+
if (this.isHorizontal()) {
|
|
112
|
+
return this.nativeElement.scrollLeft * this.rtlSign;
|
|
113
|
+
}
|
|
114
|
+
return this.nativeElement.scrollTop;
|
|
115
|
+
}
|
|
116
|
+
getMaxScrollPosition() {
|
|
117
|
+
const element = this.nativeElement;
|
|
118
|
+
return this.isHorizontal()
|
|
119
|
+
? element.scrollWidth - element.clientWidth
|
|
120
|
+
: element.scrollHeight - element.clientHeight;
|
|
121
|
+
}
|
|
122
|
+
canScroll() {
|
|
123
|
+
const element = this.nativeElement;
|
|
124
|
+
return this.isHorizontal()
|
|
125
|
+
? element.scrollWidth > element.clientWidth
|
|
126
|
+
: element.scrollHeight > element.clientHeight;
|
|
127
|
+
}
|
|
128
|
+
applyScrollPosition(position) {
|
|
129
|
+
this.scrollPosition = position;
|
|
130
|
+
if (this.isHorizontal()) {
|
|
131
|
+
this.nativeElement.scrollLeft = position * this.rtlSign;
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
this.nativeElement.scrollTop = position;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
isDragInProgress() {
|
|
138
|
+
const host = this.nativeElement;
|
|
139
|
+
if (host.classList.contains('ax-drop-list-sorting-active')) {
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
return host.querySelector('.ax-dragging') !== null;
|
|
143
|
+
}
|
|
80
144
|
handleWheel(event) {
|
|
81
|
-
if (this.disabled() || this.
|
|
145
|
+
if (this.disabled() || this.isPanning || !this.isHorizontal() || !this.canScroll())
|
|
82
146
|
return;
|
|
83
147
|
if (event.shiftKey || Math.abs(event.deltaX) > Math.abs(event.deltaY))
|
|
84
148
|
return;
|
|
85
149
|
if (event.deltaY === 0)
|
|
86
150
|
return;
|
|
87
|
-
|
|
151
|
+
this.refreshRtlState();
|
|
152
|
+
const maxScroll = this.getMaxScrollPosition();
|
|
153
|
+
const step = event.deltaY * this.rtlSign;
|
|
88
154
|
this.syncScrollState();
|
|
89
|
-
const currentPosition = this.
|
|
90
|
-
const atStart = currentPosition <= 0 &&
|
|
91
|
-
const atEnd = currentPosition >=
|
|
155
|
+
const currentPosition = this.targetScrollPosition ?? this.scrollPosition;
|
|
156
|
+
const atStart = currentPosition <= 0 && step < 0;
|
|
157
|
+
const atEnd = currentPosition >= maxScroll && step > 0;
|
|
92
158
|
if (atStart || atEnd)
|
|
93
159
|
return;
|
|
94
160
|
event.preventDefault();
|
|
95
|
-
const nextTarget = Math.max(0, Math.min(
|
|
96
|
-
this.
|
|
161
|
+
const nextTarget = Math.max(0, Math.min(maxScroll, currentPosition + step));
|
|
162
|
+
this.targetScrollPosition = nextTarget;
|
|
97
163
|
if (this.speed() <= 0) {
|
|
98
164
|
this.applyScrollPosition(nextTarget);
|
|
99
|
-
this.
|
|
165
|
+
this.targetScrollPosition = null;
|
|
100
166
|
return;
|
|
101
167
|
}
|
|
102
168
|
this.startAnimation();
|
|
103
169
|
}
|
|
104
|
-
|
|
105
|
-
if (this.disabled() || !
|
|
170
|
+
handlePanStart(event) {
|
|
171
|
+
if (this.disabled() || !this.canScroll() || this.isDragInProgress()) {
|
|
172
|
+
this.ignorePan = true;
|
|
106
173
|
return;
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
174
|
+
}
|
|
175
|
+
if (event.target instanceof Element && event.target.closest(this.interactiveSelector)) {
|
|
176
|
+
this.ignorePan = true;
|
|
110
177
|
return;
|
|
178
|
+
}
|
|
179
|
+
this.refreshRtlState();
|
|
180
|
+
this.ignorePan = false;
|
|
181
|
+
this.isPanning = true;
|
|
111
182
|
this.stopAnimation();
|
|
112
|
-
this.
|
|
113
|
-
this.scrollPosition = this.
|
|
114
|
-
this.
|
|
115
|
-
this.
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
this.pointerAxis = 'undecided';
|
|
119
|
-
this.lastPointerX = event.clientX;
|
|
120
|
-
this.lastPointerTime = performance.now();
|
|
121
|
-
this.pointerVelocityX = 0;
|
|
122
|
-
}
|
|
123
|
-
handlePointerMove(event) {
|
|
124
|
-
if (this.pointerId !== event.pointerId || this.disabled())
|
|
125
|
-
return;
|
|
126
|
-
const deltaX = event.clientX - this.pointerStartX;
|
|
127
|
-
const deltaY = event.clientY - this.pointerStartY;
|
|
128
|
-
if (this.pointerAxis === 'undecided') {
|
|
129
|
-
if (Math.hypot(deltaX, deltaY) < this.axisLockThreshold)
|
|
130
|
-
return;
|
|
131
|
-
this.pointerAxis = Math.abs(deltaX) > Math.abs(deltaY) ? 'horizontal' : 'vertical';
|
|
132
|
-
if (this.pointerAxis === 'vertical') {
|
|
133
|
-
this.releasePointer();
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
this.nativeElement.setPointerCapture(event.pointerId);
|
|
137
|
-
this.nativeElement.style.userSelect = 'none';
|
|
138
|
-
if (event.pointerType === 'mouse') {
|
|
139
|
-
this.nativeElement.style.cursor = 'grabbing';
|
|
140
|
-
}
|
|
183
|
+
this.targetScrollPosition = null;
|
|
184
|
+
this.scrollPosition = this.getCurrentScrollPosition();
|
|
185
|
+
this.panStartScrollPosition = this.scrollPosition;
|
|
186
|
+
this.nativeElement.style.userSelect = 'none';
|
|
187
|
+
if (event.pointerType === 'mouse') {
|
|
188
|
+
this.nativeElement.style.cursor = 'grabbing';
|
|
141
189
|
}
|
|
142
|
-
|
|
190
|
+
}
|
|
191
|
+
handlePanMove(event) {
|
|
192
|
+
if (this.ignorePan || this.disabled() || !this.isPanning || this.isDragInProgress())
|
|
143
193
|
return;
|
|
144
194
|
event.preventDefault();
|
|
145
|
-
const
|
|
146
|
-
const
|
|
147
|
-
if (elapsed > 0) {
|
|
148
|
-
this.pointerVelocityX = (event.clientX - this.lastPointerX) / elapsed;
|
|
149
|
-
}
|
|
150
|
-
this.lastPointerX = event.clientX;
|
|
151
|
-
this.lastPointerTime = now;
|
|
152
|
-
const next = Math.max(0, Math.min(this.getMaxScrollLeft(), this.pointerStartScrollLeft - deltaX));
|
|
195
|
+
const delta = this.isHorizontal() ? event.deltaX : event.deltaY;
|
|
196
|
+
const next = Math.max(0, Math.min(this.getMaxScrollPosition(), this.panStartScrollPosition - delta * this.rtlSign));
|
|
153
197
|
this.applyScrollPosition(next);
|
|
154
198
|
}
|
|
155
|
-
|
|
156
|
-
if (this.
|
|
199
|
+
handlePanEnd(event) {
|
|
200
|
+
if (this.ignorePan) {
|
|
201
|
+
this.ignorePan = false;
|
|
202
|
+
this.isPanning = false;
|
|
157
203
|
return;
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
this.
|
|
162
|
-
if (!wasHorizontalDrag)
|
|
204
|
+
}
|
|
205
|
+
this.isPanning = false;
|
|
206
|
+
this.clearPanStyles();
|
|
207
|
+
if (this.disabled())
|
|
163
208
|
return;
|
|
164
209
|
this.suppressClick();
|
|
165
|
-
if (this.speed() <= 0
|
|
210
|
+
if (this.speed() <= 0)
|
|
166
211
|
return;
|
|
167
|
-
const
|
|
212
|
+
const velocity = this.isHorizontal() ? event.velocityX : event.velocityY;
|
|
213
|
+
const distance = -velocity * this.speed() * this.rtlSign;
|
|
168
214
|
if (Math.abs(distance) < 8)
|
|
169
215
|
return;
|
|
170
|
-
this.
|
|
216
|
+
this.targetScrollPosition = Math.max(0, Math.min(this.getMaxScrollPosition(), this.scrollPosition + distance));
|
|
171
217
|
this.startAnimation();
|
|
172
218
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
const pointerId = this.pointerId;
|
|
177
|
-
this.pointerId = null;
|
|
178
|
-
this.pointerAxis = 'undecided';
|
|
179
|
-
this.pointerVelocityX = 0;
|
|
180
|
-
const element = this.nativeElement;
|
|
181
|
-
if (element.hasPointerCapture(pointerId)) {
|
|
182
|
-
element.releasePointerCapture(pointerId);
|
|
183
|
-
}
|
|
184
|
-
element.style.userSelect = '';
|
|
185
|
-
element.style.cursor = '';
|
|
219
|
+
clearPanStyles() {
|
|
220
|
+
this.nativeElement.style.userSelect = '';
|
|
221
|
+
this.nativeElement.style.cursor = '';
|
|
186
222
|
}
|
|
187
223
|
suppressClick() {
|
|
188
224
|
this.clearClickSuppression();
|
|
@@ -206,17 +242,17 @@ class AXHorizontalScrollDirective {
|
|
|
206
242
|
this.suppressClickListener = null;
|
|
207
243
|
}
|
|
208
244
|
syncScrollState() {
|
|
209
|
-
if (this.
|
|
245
|
+
if (this.targetScrollPosition !== null)
|
|
210
246
|
return;
|
|
211
|
-
this.scrollPosition = this.
|
|
212
|
-
this.
|
|
247
|
+
this.scrollPosition = this.getCurrentScrollPosition();
|
|
248
|
+
this.targetScrollPosition = this.scrollPosition;
|
|
213
249
|
}
|
|
214
250
|
startAnimation() {
|
|
215
251
|
if (this.animationFrameId !== null)
|
|
216
252
|
return;
|
|
217
253
|
this.lastFrameTime = performance.now();
|
|
218
254
|
const step = (currentTime) => {
|
|
219
|
-
const target = this.
|
|
255
|
+
const target = this.targetScrollPosition;
|
|
220
256
|
if (target === null) {
|
|
221
257
|
this.stopAnimation();
|
|
222
258
|
return;
|
|
@@ -228,7 +264,7 @@ class AXHorizontalScrollDirective {
|
|
|
228
264
|
this.applyScrollPosition(this.scrollPosition);
|
|
229
265
|
if (Math.abs(target - this.scrollPosition) < 0.5) {
|
|
230
266
|
this.applyScrollPosition(target);
|
|
231
|
-
this.
|
|
267
|
+
this.targetScrollPosition = null;
|
|
232
268
|
this.stopAnimation();
|
|
233
269
|
return;
|
|
234
270
|
}
|
|
@@ -236,36 +272,25 @@ class AXHorizontalScrollDirective {
|
|
|
236
272
|
};
|
|
237
273
|
this.animationFrameId = requestAnimationFrame(step);
|
|
238
274
|
}
|
|
239
|
-
applyScrollPosition(position) {
|
|
240
|
-
this.scrollPosition = position;
|
|
241
|
-
this.nativeElement.scrollLeft = position;
|
|
242
|
-
}
|
|
243
275
|
stopAnimation() {
|
|
244
276
|
if (this.animationFrameId === null)
|
|
245
277
|
return;
|
|
246
278
|
cancelAnimationFrame(this.animationFrameId);
|
|
247
279
|
this.animationFrameId = null;
|
|
248
280
|
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
return element.scrollWidth > element.clientWidth;
|
|
252
|
-
}
|
|
253
|
-
getMaxScrollLeft() {
|
|
254
|
-
const element = this.nativeElement;
|
|
255
|
-
return element.scrollWidth - element.clientWidth;
|
|
256
|
-
}
|
|
257
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXHorizontalScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
258
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: AXHorizontalScrollDirective, isStandalone: true, selector: "[axHorizontalScroll]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, speed: { classPropertyName: "speed", publicName: "speed", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.touch-action": "disabled() ? null : \"pan-y\"" } }, ngImport: i0 }); }
|
|
281
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXHorizontalScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
282
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: AXHorizontalScrollDirective, isStandalone: true, selector: "[axHorizontalScroll]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, speed: { classPropertyName: "speed", publicName: "speed", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.touch-action": "touchAction()" } }, hostDirectives: [{ directive: i1.AXGestureDirective }], ngImport: i0 }); }
|
|
259
283
|
}
|
|
260
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
284
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXHorizontalScrollDirective, decorators: [{
|
|
261
285
|
type: Directive,
|
|
262
286
|
args: [{
|
|
263
287
|
selector: '[axHorizontalScroll]',
|
|
288
|
+
hostDirectives: [AXGestureDirective],
|
|
264
289
|
host: {
|
|
265
|
-
'[style.touch-action]': '
|
|
290
|
+
'[style.touch-action]': 'touchAction()',
|
|
266
291
|
},
|
|
267
292
|
}]
|
|
268
|
-
}], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], speed: [{ type: i0.Input, args: [{ isSignal: true, alias: "speed", required: false }] }] } });
|
|
293
|
+
}], ctorParameters: () => [], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], speed: [{ type: i0.Input, args: [{ isSignal: true, alias: "speed", required: false }] }] } });
|
|
269
294
|
|
|
270
295
|
/**
|
|
271
296
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-cdk-horizontal-scroll.mjs","sources":["../../../../packages/cdk/horizontal-scroll/src/lib/horizontal-scroll.directive.ts","../../../../packages/cdk/horizontal-scroll/src/acorex-cdk-horizontal-scroll.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { afterNextRender, Directive, ElementRef, inject, input, NgZone, OnDestroy, PLATFORM_ID } from '@angular/core';\n\n/**\n * Converts vertical mouse-wheel scrolling and pointer drag/swipe into horizontal scrolling on the host element.\n * Applies only when the host can scroll horizontally. Pointer events cover mouse, touch, and pen.\n *\n * Usage:\n * <div axHorizontalScroll [speed]=\"150\" class=\"overflow-x-auto\">\n * ...\n * </div>\n */\n@Directive({\n selector: '[axHorizontalScroll]',\n host: {\n '[style.touch-action]': 'disabled() ? null : \"pan-y\"',\n },\n})\nexport class AXHorizontalScrollDirective implements OnDestroy {\n private elementRef = inject(ElementRef<HTMLElement>);\n private platformId = inject(PLATFORM_ID);\n private zone = inject(NgZone);\n\n /**\n * Disables wheel-to-horizontal conversion and pointer drag when true.\n */\n disabled = input(false);\n\n /**\n * Horizontal scroll animation duration in milliseconds.\n * Lower values scroll faster; `0` applies the scroll instantly.\n */\n speed = input(200);\n\n private animationFrameId: number | null = null;\n private targetScrollLeft: number | null = null;\n private scrollPosition = 0;\n private lastFrameTime = 0;\n\n private pointerId: number | null = null;\n private pointerStartX = 0;\n private pointerStartY = 0;\n private pointerStartScrollLeft = 0;\n private pointerAxis: 'undecided' | 'horizontal' | 'vertical' = 'undecided';\n private lastPointerX = 0;\n private lastPointerTime = 0;\n private pointerVelocityX = 0;\n private suppressClickListener: ((event: Event) => void) | null = null;\n private suppressClickTimer: ReturnType<typeof setTimeout> | null = null;\n\n private readonly axisLockThreshold = 6;\n private readonly interactiveSelector =\n 'input, textarea, select, option, [contenteditable]:not([contenteditable=\"false\"])';\n\n private readonly wheelListener = (event: WheelEvent) => this.handleWheel(event);\n private readonly pointerDownListener = (event: PointerEvent) => this.handlePointerDown(event);\n private readonly pointerMoveListener = (event: PointerEvent) => this.handlePointerMove(event);\n private readonly pointerUpListener = (event: PointerEvent) => this.handlePointerUp(event);\n\n #init = afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId)) return;\n\n this.zone.runOutsideAngular(() => {\n this.nativeElement.addEventListener('wheel', this.wheelListener, { passive: false });\n this.nativeElement.addEventListener('pointerdown', this.pointerDownListener);\n this.nativeElement.addEventListener('pointermove', this.pointerMoveListener, { passive: false });\n this.nativeElement.addEventListener('pointerup', this.pointerUpListener);\n this.nativeElement.addEventListener('pointercancel', this.pointerUpListener);\n this.nativeElement.addEventListener('lostpointercapture', this.pointerUpListener);\n });\n });\n\n ngOnDestroy(): void {\n if (!isPlatformBrowser(this.platformId)) return;\n\n this.stopAnimation();\n this.releasePointer();\n this.clearClickSuppression();\n this.nativeElement.removeEventListener('wheel', this.wheelListener);\n this.nativeElement.removeEventListener('pointerdown', this.pointerDownListener);\n this.nativeElement.removeEventListener('pointermove', this.pointerMoveListener);\n this.nativeElement.removeEventListener('pointerup', this.pointerUpListener);\n this.nativeElement.removeEventListener('pointercancel', this.pointerUpListener);\n this.nativeElement.removeEventListener('lostpointercapture', this.pointerUpListener);\n }\n\n private get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n private handleWheel(event: WheelEvent): void {\n if (this.disabled() || this.pointerId !== null || !this.canScrollHorizontally()) return;\n if (event.shiftKey || Math.abs(event.deltaX) > Math.abs(event.deltaY)) return;\n if (event.deltaY === 0) return;\n\n const maxScrollLeft = this.getMaxScrollLeft();\n\n this.syncScrollState();\n\n const currentPosition = this.targetScrollLeft ?? this.scrollPosition;\n const atStart = currentPosition <= 0 && event.deltaY < 0;\n const atEnd = currentPosition >= maxScrollLeft && event.deltaY > 0;\n\n if (atStart || atEnd) return;\n\n event.preventDefault();\n\n const nextTarget = Math.max(0, Math.min(maxScrollLeft, currentPosition + event.deltaY));\n this.targetScrollLeft = nextTarget;\n\n if (this.speed() <= 0) {\n this.applyScrollPosition(nextTarget);\n this.targetScrollLeft = null;\n return;\n }\n\n this.startAnimation();\n }\n\n private handlePointerDown(event: PointerEvent): void {\n if (this.disabled() || !event.isPrimary || !this.canScrollHorizontally()) return;\n if (event.pointerType === 'mouse' && event.button !== 0) return;\n if (event.target instanceof Element && event.target.closest(this.interactiveSelector)) return;\n\n this.stopAnimation();\n this.targetScrollLeft = null;\n this.scrollPosition = this.nativeElement.scrollLeft;\n\n this.pointerId = event.pointerId;\n this.pointerStartX = event.clientX;\n this.pointerStartY = event.clientY;\n this.pointerStartScrollLeft = this.scrollPosition;\n this.pointerAxis = 'undecided';\n this.lastPointerX = event.clientX;\n this.lastPointerTime = performance.now();\n this.pointerVelocityX = 0;\n }\n\n private handlePointerMove(event: PointerEvent): void {\n if (this.pointerId !== event.pointerId || this.disabled()) return;\n\n const deltaX = event.clientX - this.pointerStartX;\n const deltaY = event.clientY - this.pointerStartY;\n\n if (this.pointerAxis === 'undecided') {\n if (Math.hypot(deltaX, deltaY) < this.axisLockThreshold) return;\n\n this.pointerAxis = Math.abs(deltaX) > Math.abs(deltaY) ? 'horizontal' : 'vertical';\n\n if (this.pointerAxis === 'vertical') {\n this.releasePointer();\n return;\n }\n\n this.nativeElement.setPointerCapture(event.pointerId);\n this.nativeElement.style.userSelect = 'none';\n if (event.pointerType === 'mouse') {\n this.nativeElement.style.cursor = 'grabbing';\n }\n }\n\n if (this.pointerAxis !== 'horizontal') return;\n\n event.preventDefault();\n\n const now = performance.now();\n const elapsed = now - this.lastPointerTime;\n if (elapsed > 0) {\n this.pointerVelocityX = (event.clientX - this.lastPointerX) / elapsed;\n }\n this.lastPointerX = event.clientX;\n this.lastPointerTime = now;\n\n const next = Math.max(0, Math.min(this.getMaxScrollLeft(), this.pointerStartScrollLeft - deltaX));\n this.applyScrollPosition(next);\n }\n\n private handlePointerUp(event: PointerEvent): void {\n if (this.pointerId !== event.pointerId) return;\n\n const wasHorizontalDrag = this.pointerAxis === 'horizontal';\n const velocityX = this.pointerVelocityX;\n const lastMoveAge = performance.now() - this.lastPointerTime;\n\n this.releasePointer();\n\n if (!wasHorizontalDrag) return;\n\n this.suppressClick();\n\n if (this.speed() <= 0 || lastMoveAge > 80) return;\n\n const distance = -velocityX * this.speed();\n if (Math.abs(distance) < 8) return;\n\n this.targetScrollLeft = Math.max(0, Math.min(this.getMaxScrollLeft(), this.scrollPosition + distance));\n this.startAnimation();\n }\n\n private releasePointer(): void {\n if (this.pointerId === null) return;\n\n const pointerId = this.pointerId;\n this.pointerId = null;\n this.pointerAxis = 'undecided';\n this.pointerVelocityX = 0;\n\n const element = this.nativeElement;\n if (element.hasPointerCapture(pointerId)) {\n element.releasePointerCapture(pointerId);\n }\n\n element.style.userSelect = '';\n element.style.cursor = '';\n }\n\n private suppressClick(): void {\n this.clearClickSuppression();\n\n const preventClick = (event: Event): void => {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.clearClickSuppression();\n };\n\n this.suppressClickListener = preventClick;\n this.nativeElement.addEventListener('click', preventClick, true);\n this.suppressClickTimer = setTimeout(() => this.clearClickSuppression(), 400);\n }\n\n private clearClickSuppression(): void {\n if (this.suppressClickTimer !== null) {\n clearTimeout(this.suppressClickTimer);\n this.suppressClickTimer = null;\n }\n\n if (!this.suppressClickListener) return;\n\n this.nativeElement.removeEventListener('click', this.suppressClickListener, true);\n this.suppressClickListener = null;\n }\n\n private syncScrollState(): void {\n if (this.targetScrollLeft !== null) return;\n\n this.scrollPosition = this.nativeElement.scrollLeft;\n this.targetScrollLeft = this.scrollPosition;\n }\n\n private startAnimation(): void {\n if (this.animationFrameId !== null) return;\n\n this.lastFrameTime = performance.now();\n\n const step = (currentTime: number): void => {\n const target = this.targetScrollLeft;\n\n if (target === null) {\n this.stopAnimation();\n return;\n }\n\n const deltaTime = Math.max(currentTime - this.lastFrameTime, 1);\n this.lastFrameTime = currentTime;\n\n const factor = 1 - Math.exp(-deltaTime / this.speed());\n this.scrollPosition += (target - this.scrollPosition) * factor;\n this.applyScrollPosition(this.scrollPosition);\n\n if (Math.abs(target - this.scrollPosition) < 0.5) {\n this.applyScrollPosition(target);\n this.targetScrollLeft = null;\n this.stopAnimation();\n return;\n }\n\n this.animationFrameId = requestAnimationFrame(step);\n };\n\n this.animationFrameId = requestAnimationFrame(step);\n }\n\n private applyScrollPosition(position: number): void {\n this.scrollPosition = position;\n this.nativeElement.scrollLeft = position;\n }\n\n private stopAnimation(): void {\n if (this.animationFrameId === null) return;\n\n cancelAnimationFrame(this.animationFrameId);\n this.animationFrameId = null;\n }\n\n private canScrollHorizontally(): boolean {\n const element = this.nativeElement;\n return element.scrollWidth > element.clientWidth;\n }\n\n private getMaxScrollLeft(): number {\n const element = this.nativeElement;\n return element.scrollWidth - element.clientWidth;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;;;;;;AAQG;MAOU,2BAA2B,CAAA;AANxC,IAAA,WAAA,GAAA;AAOU,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,EAAC,UAAuB,EAAC;AAC5C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AAE7B;;AAEG;QACH,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK;qFAAC;AAEvB;;;AAGG;QACH,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,GAAG;kFAAC;QAEV,IAAA,CAAA,gBAAgB,GAAkB,IAAI;QACtC,IAAA,CAAA,gBAAgB,GAAkB,IAAI;QACtC,IAAA,CAAA,cAAc,GAAG,CAAC;QAClB,IAAA,CAAA,aAAa,GAAG,CAAC;QAEjB,IAAA,CAAA,SAAS,GAAkB,IAAI;QAC/B,IAAA,CAAA,aAAa,GAAG,CAAC;QACjB,IAAA,CAAA,aAAa,GAAG,CAAC;QACjB,IAAA,CAAA,sBAAsB,GAAG,CAAC;QAC1B,IAAA,CAAA,WAAW,GAA4C,WAAW;QAClE,IAAA,CAAA,YAAY,GAAG,CAAC;QAChB,IAAA,CAAA,eAAe,GAAG,CAAC;QACnB,IAAA,CAAA,gBAAgB,GAAG,CAAC;QACpB,IAAA,CAAA,qBAAqB,GAAoC,IAAI;QAC7D,IAAA,CAAA,kBAAkB,GAAyC,IAAI;QAEtD,IAAA,CAAA,iBAAiB,GAAG,CAAC;QACrB,IAAA,CAAA,mBAAmB,GAClC,mFAAmF;AAEpE,QAAA,IAAA,CAAA,aAAa,GAAG,CAAC,KAAiB,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC9D,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,KAAmB,KAAK,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC5E,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,KAAmB,KAAK,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC5E,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,KAAmB,KAAK,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AAEzF,QAAA,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,MAAK;AAC3B,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;gBAAE;AAEzC,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC/B,gBAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBACpF,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC;AAC5E,gBAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBAChG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC;gBACxE,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC;gBAC5E,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,IAAI,CAAC,iBAAiB,CAAC;AACnF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AAyOH,IAAA;AApPC,IAAA,KAAK;IAaL,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE;QAEzC,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,qBAAqB,EAAE;QAC5B,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;QACnE,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC;QAC/E,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC;QAC/E,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC;QAC3E,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC;QAC/E,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,IAAI,CAAC,iBAAiB,CAAC;IACtF;AAEA,IAAA,IAAY,aAAa,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa;IACtC;AAEQ,IAAA,WAAW,CAAC,KAAiB,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAAE;QACjF,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE;AACvE,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE;AAExB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAE7C,IAAI,CAAC,eAAe,EAAE;QAEtB,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc;QACpE,MAAM,OAAO,GAAG,eAAe,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QACxD,MAAM,KAAK,GAAG,eAAe,IAAI,aAAa,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAElE,IAAI,OAAO,IAAI,KAAK;YAAE;QAEtB,KAAK,CAAC,cAAc,EAAE;QAEtB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AACvF,QAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU;AAElC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC;AACpC,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;YAC5B;QACF;QAEA,IAAI,CAAC,cAAc,EAAE;IACvB;AAEQ,IAAA,iBAAiB,CAAC,KAAmB,EAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAAE;QAC1E,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE;AACzD,QAAA,IAAI,KAAK,CAAC,MAAM,YAAY,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAAE;QAEvF,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;QAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU;AAEnD,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO;AAClC,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,cAAc;AACjD,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;AAC9B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO;AACjC,QAAA,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;AACxC,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;IAC3B;AAEQ,IAAA,iBAAiB,CAAC,KAAmB,EAAA;QAC3C,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QAE3D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa;AAEjD,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,EAAE;YACpC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,iBAAiB;gBAAE;YAEzD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,YAAY,GAAG,UAAU;AAElF,YAAA,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;gBACnC,IAAI,CAAC,cAAc,EAAE;gBACrB;YACF;YAEA,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC;YACrD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM;AAC5C,YAAA,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE;gBACjC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU;YAC9C;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY;YAAE;QAEvC,KAAK,CAAC,cAAc,EAAE;AAEtB,QAAA,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE;AAC7B,QAAA,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe;AAC1C,QAAA,IAAI,OAAO,GAAG,CAAC,EAAE;AACf,YAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,IAAI,OAAO;QACvE;AACA,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO;AACjC,QAAA,IAAI,CAAC,eAAe,GAAG,GAAG;QAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC;AACjG,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;IAChC;AAEQ,IAAA,eAAe,CAAC,KAAmB,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;YAAE;AAExC,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,KAAK,YAAY;AAC3D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB;QACvC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe;QAE5D,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,CAAC,iBAAiB;YAAE;QAExB,IAAI,CAAC,aAAa,EAAE;QAEpB,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,WAAW,GAAG,EAAE;YAAE;QAE3C,MAAM,QAAQ,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1C,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE;QAE5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC;QACtG,IAAI,CAAC,cAAc,EAAE;IACvB;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE;AAE7B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;AAC9B,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;AAEzB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa;AAClC,QAAA,IAAI,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;AACxC,YAAA,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC;QAC1C;AAEA,QAAA,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE;AAC7B,QAAA,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;IAC3B;IAEQ,aAAa,GAAA;QACnB,IAAI,CAAC,qBAAqB,EAAE;AAE5B,QAAA,MAAM,YAAY,GAAG,CAAC,KAAY,KAAU;YAC1C,KAAK,CAAC,cAAc,EAAE;YACtB,KAAK,CAAC,wBAAwB,EAAE;YAChC,IAAI,CAAC,qBAAqB,EAAE;AAC9B,QAAA,CAAC;AAED,QAAA,IAAI,CAAC,qBAAqB,GAAG,YAAY;QACzC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC;AAChE,QAAA,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,GAAG,CAAC;IAC/E;IAEQ,qBAAqB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE;AACpC,YAAA,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC;AACrC,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;QAChC;QAEA,IAAI,CAAC,IAAI,CAAC,qBAAqB;YAAE;AAEjC,QAAA,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC;AACjF,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;IACnC;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI;YAAE;QAEpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU;AACnD,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc;IAC7C;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI;YAAE;AAEpC,QAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;AAEtC,QAAA,MAAM,IAAI,GAAG,CAAC,WAAmB,KAAU;AACzC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB;AAEpC,YAAA,IAAI,MAAM,KAAK,IAAI,EAAE;gBACnB,IAAI,CAAC,aAAa,EAAE;gBACpB;YACF;AAEA,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AAC/D,YAAA,IAAI,CAAC,aAAa,GAAG,WAAW;AAEhC,YAAA,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AACtD,YAAA,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,IAAI,MAAM;AAC9D,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC;AAE7C,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,GAAG,EAAE;AAChD,gBAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;AAChC,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;gBAC5B,IAAI,CAAC,aAAa,EAAE;gBACpB;YACF;AAEA,YAAA,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,IAAI,CAAC;AACrD,QAAA,CAAC;AAED,QAAA,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,IAAI,CAAC;IACrD;AAEQ,IAAA,mBAAmB,CAAC,QAAgB,EAAA;AAC1C,QAAA,IAAI,CAAC,cAAc,GAAG,QAAQ;AAC9B,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,QAAQ;IAC1C;IAEQ,aAAa,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI;YAAE;AAEpC,QAAA,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC3C,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;IAC9B;IAEQ,qBAAqB,GAAA;AAC3B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa;AAClC,QAAA,OAAO,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;IAClD;IAEQ,gBAAgB,GAAA;AACtB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa;AAClC,QAAA,OAAO,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;IAClD;8GA5RW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,IAAI,EAAE;AACJ,wBAAA,sBAAsB,EAAE,6BAA6B;AACtD,qBAAA;AACF,iBAAA;;;ACjBD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"acorex-cdk-horizontal-scroll.mjs","sources":["../../../../packages/cdk/horizontal-scroll/src/lib/horizontal-scroll.directive.ts","../../../../packages/cdk/horizontal-scroll/src/acorex-cdk-horizontal-scroll.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { AXGestureDirective, AXGestureEvent } from '@acorex/cdk/gesture';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport {\n afterNextRender,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n linkedSignal,\n NgZone,\n OnDestroy,\n PLATFORM_ID,\n} from '@angular/core';\n\n/**\n * Converts vertical mouse-wheel scrolling and pan gestures into scrolling on the host element.\n * Supports horizontal and vertical orientations. Pan is provided by the hosted AXGestureDirective.\n *\n * Usage:\n * <div axHorizontalScroll [speed]=\"150\" class=\"overflow-x-auto\">\n * ...\n * </div>\n *\n * Do not put `axGesture` on the same element; this directive already hosts it.\n */\n@Directive({\n selector: '[axHorizontalScroll]',\n hostDirectives: [AXGestureDirective],\n host: {\n '[style.touch-action]': 'touchAction()',\n },\n})\nexport class AXHorizontalScrollDirective implements OnDestroy {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly zone = inject(NgZone);\n private readonly gesture = inject(AXGestureDirective);\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * Disables wheel-to-horizontal conversion and pan scrolling when true.\n */\n disabled = input(false);\n\n /**\n * Scroll axis. Horizontal converts wheel + pan; vertical uses pan only.\n * @defaultValue 'horizontal'\n */\n orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n /** Internal orientation state; can be overridden programmatically by host components. */\n readonly scrollOrientation = linkedSignal(() => this.orientation());\n\n /**\n * Scroll animation duration in milliseconds.\n * Lower values scroll faster; `0` applies the scroll instantly.\n */\n speed = input(200);\n\n private animationFrameId: number | null = null;\n private targetScrollPosition: number | null = null;\n private scrollPosition = 0;\n private lastFrameTime = 0;\n\n private isPanning = false;\n private ignorePan = false;\n private panStartScrollPosition = 0;\n private suppressClickListener: ((event: Event) => void) | null = null;\n private suppressClickTimer: ReturnType<typeof setTimeout> | null = null;\n private _isRtl = false;\n\n private readonly interactiveSelector =\n 'input, textarea, select, option, [contenteditable]:not([contenteditable=\"false\"])';\n\n private readonly wheelListener = (event: WheelEvent) => this.handleWheel(event);\n\n protected touchAction(): string | null {\n if (this.disabled()) return null;\n return this.isHorizontal() ? 'pan-y' : 'pan-x';\n }\n\n constructor() {\n const subscriptions = [\n this.gesture.panstart.subscribe((event) => this.handlePanStart(event)),\n this.gesture.panmove.subscribe((event) => this.handlePanMove(event)),\n this.gesture.panend.subscribe((event) => this.handlePanEnd(event)),\n ];\n this.destroyRef.onDestroy(() => {\n for (const subscription of subscriptions) {\n subscription.unsubscribe();\n }\n });\n }\n\n #orientationEffect = effect(() => {\n this.gesture.gestureDirection.set(this.scrollOrientation());\n });\n\n #init = afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId)) return;\n\n this._isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n\n this.zone.runOutsideAngular(() => {\n this.nativeElement.addEventListener('wheel', this.wheelListener, { passive: false });\n });\n });\n\n ngOnDestroy(): void {\n if (!isPlatformBrowser(this.platformId)) return;\n\n this.stopAnimation();\n this.clearPanStyles();\n this.clearClickSuppression();\n this.nativeElement.removeEventListener('wheel', this.wheelListener);\n }\n\n private get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n private isHorizontal(): boolean {\n return this.scrollOrientation() === 'horizontal';\n }\n\n private get rtlSign(): number {\n return this.isHorizontal() && this._isRtl ? -1 : 1;\n }\n\n private refreshRtlState(): void {\n if (isPlatformBrowser(this.platformId)) {\n this._isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n }\n }\n\n private getCurrentScrollPosition(): number {\n if (this.isHorizontal()) {\n return this.nativeElement.scrollLeft * this.rtlSign;\n }\n return this.nativeElement.scrollTop;\n }\n\n private getMaxScrollPosition(): number {\n const element = this.nativeElement;\n return this.isHorizontal()\n ? element.scrollWidth - element.clientWidth\n : element.scrollHeight - element.clientHeight;\n }\n\n private canScroll(): boolean {\n const element = this.nativeElement;\n return this.isHorizontal()\n ? element.scrollWidth > element.clientWidth\n : element.scrollHeight > element.clientHeight;\n }\n\n private applyScrollPosition(position: number): void {\n this.scrollPosition = position;\n if (this.isHorizontal()) {\n this.nativeElement.scrollLeft = position * this.rtlSign;\n } else {\n this.nativeElement.scrollTop = position;\n }\n }\n\n private isDragInProgress(): boolean {\n const host = this.nativeElement;\n if (host.classList.contains('ax-drop-list-sorting-active')) {\n return true;\n }\n return host.querySelector('.ax-dragging') !== null;\n }\n\n private handleWheel(event: WheelEvent): void {\n if (this.disabled() || this.isPanning || !this.isHorizontal() || !this.canScroll()) return;\n if (event.shiftKey || Math.abs(event.deltaX) > Math.abs(event.deltaY)) return;\n if (event.deltaY === 0) return;\n\n this.refreshRtlState();\n\n const maxScroll = this.getMaxScrollPosition();\n const step = event.deltaY * this.rtlSign;\n\n this.syncScrollState();\n\n const currentPosition = this.targetScrollPosition ?? this.scrollPosition;\n const atStart = currentPosition <= 0 && step < 0;\n const atEnd = currentPosition >= maxScroll && step > 0;\n\n if (atStart || atEnd) return;\n\n event.preventDefault();\n\n const nextTarget = Math.max(0, Math.min(maxScroll, currentPosition + step));\n this.targetScrollPosition = nextTarget;\n\n if (this.speed() <= 0) {\n this.applyScrollPosition(nextTarget);\n this.targetScrollPosition = null;\n return;\n }\n\n this.startAnimation();\n }\n\n private handlePanStart(event: AXGestureEvent): void {\n if (this.disabled() || !this.canScroll() || this.isDragInProgress()) {\n this.ignorePan = true;\n return;\n }\n if (event.target instanceof Element && event.target.closest(this.interactiveSelector)) {\n this.ignorePan = true;\n return;\n }\n\n this.refreshRtlState();\n this.ignorePan = false;\n this.isPanning = true;\n this.stopAnimation();\n this.targetScrollPosition = null;\n this.scrollPosition = this.getCurrentScrollPosition();\n this.panStartScrollPosition = this.scrollPosition;\n this.nativeElement.style.userSelect = 'none';\n if (event.pointerType === 'mouse') {\n this.nativeElement.style.cursor = 'grabbing';\n }\n }\n\n private handlePanMove(event: AXGestureEvent): void {\n if (this.ignorePan || this.disabled() || !this.isPanning || this.isDragInProgress()) return;\n\n event.preventDefault();\n const delta = this.isHorizontal() ? event.deltaX : event.deltaY;\n const next = Math.max(\n 0,\n Math.min(this.getMaxScrollPosition(), this.panStartScrollPosition - delta * this.rtlSign),\n );\n this.applyScrollPosition(next);\n }\n\n private handlePanEnd(event: AXGestureEvent): void {\n if (this.ignorePan) {\n this.ignorePan = false;\n this.isPanning = false;\n return;\n }\n\n this.isPanning = false;\n this.clearPanStyles();\n\n if (this.disabled()) return;\n\n this.suppressClick();\n\n if (this.speed() <= 0) return;\n\n const velocity = this.isHorizontal() ? event.velocityX : event.velocityY;\n const distance = -velocity * this.speed() * this.rtlSign;\n if (Math.abs(distance) < 8) return;\n\n this.targetScrollPosition = Math.max(\n 0,\n Math.min(this.getMaxScrollPosition(), this.scrollPosition + distance),\n );\n this.startAnimation();\n }\n\n private clearPanStyles(): void {\n this.nativeElement.style.userSelect = '';\n this.nativeElement.style.cursor = '';\n }\n\n private suppressClick(): void {\n this.clearClickSuppression();\n\n const preventClick = (event: Event): void => {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.clearClickSuppression();\n };\n\n this.suppressClickListener = preventClick;\n this.nativeElement.addEventListener('click', preventClick, true);\n this.suppressClickTimer = setTimeout(() => this.clearClickSuppression(), 400);\n }\n\n private clearClickSuppression(): void {\n if (this.suppressClickTimer !== null) {\n clearTimeout(this.suppressClickTimer);\n this.suppressClickTimer = null;\n }\n\n if (!this.suppressClickListener) return;\n\n this.nativeElement.removeEventListener('click', this.suppressClickListener, true);\n this.suppressClickListener = null;\n }\n\n private syncScrollState(): void {\n if (this.targetScrollPosition !== null) return;\n\n this.scrollPosition = this.getCurrentScrollPosition();\n this.targetScrollPosition = this.scrollPosition;\n }\n\n private startAnimation(): void {\n if (this.animationFrameId !== null) return;\n\n this.lastFrameTime = performance.now();\n\n const step = (currentTime: number): void => {\n const target = this.targetScrollPosition;\n\n if (target === null) {\n this.stopAnimation();\n return;\n }\n\n const deltaTime = Math.max(currentTime - this.lastFrameTime, 1);\n this.lastFrameTime = currentTime;\n\n const factor = 1 - Math.exp(-deltaTime / this.speed());\n this.scrollPosition += (target - this.scrollPosition) * factor;\n this.applyScrollPosition(this.scrollPosition);\n\n if (Math.abs(target - this.scrollPosition) < 0.5) {\n this.applyScrollPosition(target);\n this.targetScrollPosition = null;\n this.stopAnimation();\n return;\n }\n\n this.animationFrameId = requestAnimationFrame(step);\n };\n\n this.animationFrameId = requestAnimationFrame(step);\n }\n\n private stopAnimation(): void {\n if (this.animationFrameId === null) return;\n\n cancelAnimationFrame(this.animationFrameId);\n this.animationFrameId = null;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -292,10 +292,10 @@ class AXInputMaskDirective {
|
|
|
292
292
|
}
|
|
293
293
|
return this.rangeValueLimit(finalValue);
|
|
294
294
|
}
|
|
295
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
296
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.
|
|
295
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXInputMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
296
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: AXInputMaskDirective, isStandalone: true, selector: "[axInputMask]", inputs: { maskMode: { classPropertyName: "maskMode", publicName: "maskMode", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null }, eager: { classPropertyName: "eager", publicName: "eager", isSignal: true, isRequired: false, transformFunction: null }, minValue: { classPropertyName: "minValue", publicName: "minValue", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: true, isRequired: false, transformFunction: null }, decimal: { classPropertyName: "decimal", publicName: "decimal", isSignal: true, isRequired: false, transformFunction: null }, maskPattern: { classPropertyName: "maskPattern", publicName: "maskPattern", isSignal: true, isRequired: false, transformFunction: null }, customTokens: { classPropertyName: "customTokens", publicName: "customTokens", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onMaskChanged: "onMaskChanged" }, exportAs: ["axInputMask"], ngImport: i0 }); }
|
|
297
297
|
}
|
|
298
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
298
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXInputMaskDirective, decorators: [{
|
|
299
299
|
type: Directive,
|
|
300
300
|
args: [{
|
|
301
301
|
selector: '[axInputMask]',
|
|
@@ -100,10 +100,10 @@ class AXListNavigationDirective {
|
|
|
100
100
|
});
|
|
101
101
|
e.itemElem.nativeElement.scrollIntoView(this.scrollOption);
|
|
102
102
|
}
|
|
103
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
104
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.
|
|
103
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXListNavigationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
104
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.1.6", type: AXListNavigationDirective, isStandalone: true, selector: "[axListNavigation]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onNavigationChanged: "onNavigationChanged", onKeypress: "onKeypress" }, queries: [{ propertyName: "childElem", predicate: AXListNavigationItemDirective, descendants: true, isSignal: true }], exportAs: ["axListNavigation"], ngImport: i0 }); }
|
|
105
105
|
}
|
|
106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXListNavigationDirective, decorators: [{
|
|
107
107
|
type: Directive,
|
|
108
108
|
args: [{
|
|
109
109
|
selector: '[axListNavigation]',
|
|
@@ -141,10 +141,10 @@ class AXListNavigationItemDirective {
|
|
|
141
141
|
});
|
|
142
142
|
}
|
|
143
143
|
#init;
|
|
144
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
145
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.
|
|
144
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXListNavigationItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
145
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: AXListNavigationItemDirective, isStandalone: true, selector: "[axListNavigationItem]", outputs: { onKeypress: "onKeypress" }, exportAs: ["axListNavigationItem"], ngImport: i0 }); }
|
|
146
146
|
}
|
|
147
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
147
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXListNavigationItemDirective, decorators: [{
|
|
148
148
|
type: Directive,
|
|
149
149
|
args: [{
|
|
150
150
|
selector: '[axListNavigationItem]',
|
|
@@ -155,11 +155,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
155
155
|
const COMPONENT = [AXListNavigationDirective, AXListNavigationItemDirective];
|
|
156
156
|
const MODULES = [CommonModule];
|
|
157
157
|
class AXListNavigationModule {
|
|
158
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
159
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.
|
|
160
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.
|
|
158
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXListNavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
159
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: AXListNavigationModule, imports: [CommonModule, AXListNavigationDirective, AXListNavigationItemDirective], exports: [AXListNavigationDirective, AXListNavigationItemDirective] }); }
|
|
160
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXListNavigationModule, imports: [MODULES] }); }
|
|
161
161
|
}
|
|
162
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXListNavigationModule, decorators: [{
|
|
163
163
|
type: NgModule,
|
|
164
164
|
args: [{
|
|
165
165
|
imports: [...MODULES, ...COMPONENT],
|