@acorex/cdk 21.0.2-next.42 → 21.0.2-next.43

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.
@@ -0,0 +1,136 @@
1
+ import { isPlatformBrowser } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { inject, ElementRef, PLATFORM_ID, NgZone, input, afterNextRender, Directive } from '@angular/core';
4
+
5
+ /**
6
+ * Converts vertical mouse-wheel scrolling into horizontal scrolling on the host element.
7
+ * Applies only when the host can scroll horizontally.
8
+ *
9
+ * Usage:
10
+ * <div axHorizontalScroll [speed]="150" class="overflow-x-auto">
11
+ * ...
12
+ * </div>
13
+ */
14
+ class AXHorizontalScrollDirective {
15
+ constructor() {
16
+ this.elementRef = inject((ElementRef));
17
+ this.platformId = inject(PLATFORM_ID);
18
+ this.zone = inject(NgZone);
19
+ /**
20
+ * Disables wheel-to-horizontal conversion when true.
21
+ */
22
+ this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
23
+ /**
24
+ * Horizontal scroll animation duration in milliseconds.
25
+ * Lower values scroll faster; `0` applies the scroll instantly.
26
+ */
27
+ this.speed = input(200, ...(ngDevMode ? [{ debugName: "speed" }] : /* istanbul ignore next */ []));
28
+ this.animationFrameId = null;
29
+ this.targetScrollLeft = null;
30
+ this.scrollPosition = 0;
31
+ this.lastFrameTime = 0;
32
+ this.wheelListener = (event) => this.handleWheel(event);
33
+ this.#init = afterNextRender(() => {
34
+ if (!isPlatformBrowser(this.platformId))
35
+ return;
36
+ this.zone.runOutsideAngular(() => {
37
+ this.nativeElement.addEventListener('wheel', this.wheelListener, { passive: false });
38
+ });
39
+ });
40
+ }
41
+ #init;
42
+ ngOnDestroy() {
43
+ if (!isPlatformBrowser(this.platformId))
44
+ return;
45
+ this.stopAnimation();
46
+ this.nativeElement.removeEventListener('wheel', this.wheelListener);
47
+ }
48
+ get nativeElement() {
49
+ return this.elementRef.nativeElement;
50
+ }
51
+ handleWheel(event) {
52
+ if (this.disabled() || !this.canScrollHorizontally())
53
+ return;
54
+ if (event.shiftKey || Math.abs(event.deltaX) > Math.abs(event.deltaY))
55
+ return;
56
+ if (event.deltaY === 0)
57
+ return;
58
+ const element = this.nativeElement;
59
+ const maxScrollLeft = element.scrollWidth - element.clientWidth;
60
+ this.syncScrollState();
61
+ const currentPosition = this.targetScrollLeft ?? this.scrollPosition;
62
+ const atStart = currentPosition <= 0 && event.deltaY < 0;
63
+ const atEnd = currentPosition >= maxScrollLeft && event.deltaY > 0;
64
+ if (atStart || atEnd)
65
+ return;
66
+ event.preventDefault();
67
+ const nextTarget = Math.max(0, Math.min(maxScrollLeft, currentPosition + event.deltaY));
68
+ this.targetScrollLeft = nextTarget;
69
+ if (this.speed() <= 0) {
70
+ this.applyScrollPosition(nextTarget);
71
+ this.targetScrollLeft = null;
72
+ return;
73
+ }
74
+ this.startAnimation();
75
+ }
76
+ syncScrollState() {
77
+ if (this.targetScrollLeft !== null)
78
+ return;
79
+ this.scrollPosition = this.nativeElement.scrollLeft;
80
+ this.targetScrollLeft = this.scrollPosition;
81
+ }
82
+ startAnimation() {
83
+ if (this.animationFrameId !== null)
84
+ return;
85
+ this.lastFrameTime = performance.now();
86
+ const step = (currentTime) => {
87
+ const target = this.targetScrollLeft;
88
+ if (target === null) {
89
+ this.stopAnimation();
90
+ return;
91
+ }
92
+ const deltaTime = Math.max(currentTime - this.lastFrameTime, 1);
93
+ this.lastFrameTime = currentTime;
94
+ const factor = 1 - Math.exp(-deltaTime / this.speed());
95
+ this.scrollPosition += (target - this.scrollPosition) * factor;
96
+ this.applyScrollPosition(this.scrollPosition);
97
+ if (Math.abs(target - this.scrollPosition) < 0.5) {
98
+ this.applyScrollPosition(target);
99
+ this.targetScrollLeft = null;
100
+ this.stopAnimation();
101
+ return;
102
+ }
103
+ this.animationFrameId = requestAnimationFrame(step);
104
+ };
105
+ this.animationFrameId = requestAnimationFrame(step);
106
+ }
107
+ applyScrollPosition(position) {
108
+ this.scrollPosition = position;
109
+ this.nativeElement.scrollLeft = position;
110
+ }
111
+ stopAnimation() {
112
+ if (this.animationFrameId === null)
113
+ return;
114
+ cancelAnimationFrame(this.animationFrameId);
115
+ this.animationFrameId = null;
116
+ }
117
+ canScrollHorizontally() {
118
+ const element = this.nativeElement;
119
+ return element.scrollWidth > element.clientWidth;
120
+ }
121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXHorizontalScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
122
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", 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 } }, ngImport: i0 }); }
123
+ }
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXHorizontalScrollDirective, decorators: [{
125
+ type: Directive,
126
+ args: [{
127
+ selector: '[axHorizontalScroll]',
128
+ }]
129
+ }], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], speed: [{ type: i0.Input, args: [{ isSignal: true, alias: "speed", required: false }] }] } });
130
+
131
+ /**
132
+ * Generated bundle index. Do not edit.
133
+ */
134
+
135
+ export { AXHorizontalScrollDirective };
136
+ //# sourceMappingURL=acorex-cdk-horizontal-scroll.mjs.map
@@ -0,0 +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 into horizontal scrolling on the host element.\n * Applies only when the host can scroll horizontally.\n *\n * Usage:\n * <div axHorizontalScroll [speed]=\"150\" class=\"overflow-x-auto\">\n * ...\n * </div>\n */\n@Directive({\n selector: '[axHorizontalScroll]',\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 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 readonly wheelListener = (event: WheelEvent) => this.handleWheel(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 });\n });\n\n ngOnDestroy(): void {\n if (!isPlatformBrowser(this.platformId)) return;\n\n this.stopAnimation();\n this.nativeElement.removeEventListener('wheel', this.wheelListener);\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.canScrollHorizontally()) return;\n if (event.shiftKey || Math.abs(event.deltaX) > Math.abs(event.deltaY)) return;\n if (event.deltaY === 0) return;\n\n const element = this.nativeElement;\n const maxScrollLeft = element.scrollWidth - element.clientWidth;\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 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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;;;;;;AAQG;MAIU,2BAA2B,CAAA;AAHxC,IAAA,WAAA,GAAA;AAIU,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;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC;AAEvB;;;AAGG;AACH,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,GAAG,4EAAC;QAEV,IAAA,CAAA,gBAAgB,GAAkB,IAAI;QACtC,IAAA,CAAA,gBAAgB,GAAkB,IAAI;QACtC,IAAA,CAAA,cAAc,GAAG,CAAC;QAClB,IAAA,CAAA,aAAa,GAAG,CAAC;AAER,QAAA,IAAA,CAAA,aAAa,GAAG,CAAC,KAAiB,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAE/E,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;AACtF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AAmGH,IAAA;AAzGC,IAAA,KAAK;IAQL,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE;QAEzC,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;IACrE;AAEA,IAAA,IAAY,aAAa,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa;IACtC;AAEQ,IAAA,WAAW,CAAC,KAAiB,EAAA;QACnC,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAAE;QACtD,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,OAAO,GAAG,IAAI,CAAC,aAAa;QAClC,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;QAE/D,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;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;8GA/HW,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,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AACjC,iBAAA;;;ACdD;;AAEG;;;;"}
@@ -0,0 +1,5 @@
1
+ # @acorex/cdk/horizontal-scroll
2
+
3
+ Secondary entry point of `@acorex/cdk`. It can be used by importing from `@acorex/cdk/horizontal-scroll`.
4
+
5
+ Converts vertical mouse-wheel scrolling into horizontal scrolling on scrollable host elements.
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@acorex/cdk",
3
- "version": "21.0.2-next.42",
3
+ "version": "21.0.2-next.43",
4
4
  "peerDependencies": {
5
- "@acorex/core": "21.0.2-next.42",
5
+ "@acorex/core": "21.0.2-next.43",
6
6
  "quill": ">=2.0.2",
7
7
  "qrcode": ">=1.5.4",
8
8
  "swiper": ">=11.1.15",
@@ -59,6 +59,10 @@
59
59
  "types": "./types/acorex-cdk-full-screen.d.ts",
60
60
  "default": "./fesm2022/acorex-cdk-full-screen.mjs"
61
61
  },
62
+ "./horizontal-scroll": {
63
+ "types": "./types/acorex-cdk-horizontal-scroll.d.ts",
64
+ "default": "./fesm2022/acorex-cdk-horizontal-scroll.mjs"
65
+ },
62
66
  "./input-mask": {
63
67
  "types": "./types/acorex-cdk-input-mask.d.ts",
64
68
  "default": "./fesm2022/acorex-cdk-input-mask.mjs"
@@ -0,0 +1,44 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnDestroy } from '@angular/core';
3
+
4
+ /**
5
+ * Converts vertical mouse-wheel scrolling into horizontal scrolling on the host element.
6
+ * Applies only when the host can scroll horizontally.
7
+ *
8
+ * Usage:
9
+ * <div axHorizontalScroll [speed]="150" class="overflow-x-auto">
10
+ * ...
11
+ * </div>
12
+ */
13
+ declare class AXHorizontalScrollDirective implements OnDestroy {
14
+ #private;
15
+ private elementRef;
16
+ private platformId;
17
+ private zone;
18
+ /**
19
+ * Disables wheel-to-horizontal conversion when true.
20
+ */
21
+ disabled: _angular_core.InputSignal<boolean>;
22
+ /**
23
+ * Horizontal scroll animation duration in milliseconds.
24
+ * Lower values scroll faster; `0` applies the scroll instantly.
25
+ */
26
+ speed: _angular_core.InputSignal<number>;
27
+ private animationFrameId;
28
+ private targetScrollLeft;
29
+ private scrollPosition;
30
+ private lastFrameTime;
31
+ private readonly wheelListener;
32
+ ngOnDestroy(): void;
33
+ private get nativeElement();
34
+ private handleWheel;
35
+ private syncScrollState;
36
+ private startAnimation;
37
+ private applyScrollPosition;
38
+ private stopAnimation;
39
+ private canScrollHorizontally;
40
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXHorizontalScrollDirective, never>;
41
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXHorizontalScrollDirective, "[axHorizontalScroll]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "speed": { "alias": "speed"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
42
+ }
43
+
44
+ export { AXHorizontalScrollDirective };