@acorex/cdk 22.0.0-next.9 → 22.0.0
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-common.mjs +160 -23
- package/fesm2022/acorex-cdk-common.mjs.map +1 -1
- package/fesm2022/acorex-cdk-gesture.mjs +173 -0
- package/fesm2022/acorex-cdk-gesture.mjs.map +1 -0
- package/fesm2022/acorex-cdk-horizontal-scroll.mjs +111 -9
- package/fesm2022/acorex-cdk-horizontal-scroll.mjs.map +1 -1
- package/fesm2022/acorex-cdk-input-mask.mjs +12 -4
- package/fesm2022/acorex-cdk-input-mask.mjs.map +1 -1
- package/fesm2022/acorex-cdk-outline.mjs +49 -12
- package/fesm2022/acorex-cdk-outline.mjs.map +1 -1
- package/fesm2022/acorex-cdk-overlay.mjs +123 -17
- package/fesm2022/acorex-cdk-overlay.mjs.map +1 -1
- package/fesm2022/acorex-cdk-sliding-item.mjs +70 -60
- package/fesm2022/acorex-cdk-sliding-item.mjs.map +1 -1
- package/gesture/README.md +3 -0
- package/horizontal-scroll/README.md +1 -1
- package/package.json +8 -3
- package/sliding-item/README.md +4 -2
- package/types/acorex-cdk-common.d.ts +77 -61
- package/types/acorex-cdk-gesture.d.ts +120 -0
- package/types/acorex-cdk-horizontal-scroll.d.ts +26 -7
- package/types/acorex-cdk-overlay.d.ts +35 -3
- package/types/acorex-cdk-sliding-item.d.ts +22 -4
|
@@ -1,13 +1,18 @@
|
|
|
1
|
+
import * as i1 from '@acorex/cdk/gesture';
|
|
2
|
+
import { AXGestureDirective } from '@acorex/cdk/gesture';
|
|
1
3
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, signal, effect, afterNextRender, Directive } from '@angular/core';
|
|
4
|
+
import { inject, ElementRef, DestroyRef, signal, effect, afterNextRender, Directive } from '@angular/core';
|
|
3
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Enables horizontal sliding on the host via the hosted AXGestureDirective pan events.
|
|
8
|
+
*
|
|
9
|
+
* Do not put `axGesture` on the same element; this directive already hosts it.
|
|
10
|
+
*/
|
|
4
11
|
class AXSlidingItemDirective {
|
|
5
12
|
constructor() {
|
|
6
|
-
this.hostElement = inject(ElementRef);
|
|
7
|
-
this.
|
|
8
|
-
|
|
9
|
-
this.prevX = signal(0, /* @ts-ignore */
|
|
10
|
-
...(ngDevMode ? [{ debugName: "prevX" }] : /* istanbul ignore next */ []));
|
|
13
|
+
this.hostElement = inject((ElementRef));
|
|
14
|
+
this.gesture = inject(AXGestureDirective);
|
|
15
|
+
this.destroyRef = inject(DestroyRef);
|
|
11
16
|
this.currentX = signal(0, /* @ts-ignore */
|
|
12
17
|
...(ngDevMode ? [{ debugName: "currentX" }] : /* istanbul ignore next */ []));
|
|
13
18
|
this.stopPoint = signal(0, /* @ts-ignore */
|
|
@@ -16,6 +21,9 @@ class AXSlidingItemDirective {
|
|
|
16
21
|
...(ngDevMode ? [{ debugName: "disableSlidingRight" }] : /* istanbul ignore next */ []));
|
|
17
22
|
this.disableSlidingLeft = signal(false, /* @ts-ignore */
|
|
18
23
|
...(ngDevMode ? [{ debugName: "disableSlidingLeft" }] : /* istanbul ignore next */ []));
|
|
24
|
+
this.cursor = signal('grab', /* @ts-ignore */
|
|
25
|
+
...(ngDevMode ? [{ debugName: "cursor" }] : /* istanbul ignore next */ []));
|
|
26
|
+
this.originX = 0;
|
|
19
27
|
this.#positionChange = effect(() => {
|
|
20
28
|
if (this.currentX() > 0 && this.disableSlidingRight())
|
|
21
29
|
return;
|
|
@@ -26,77 +34,79 @@ class AXSlidingItemDirective {
|
|
|
26
34
|
...(ngDevMode ? [{ debugName: "#positionChange" }] : /* istanbul ignore next */ []));
|
|
27
35
|
this.#init = afterNextRender(() => {
|
|
28
36
|
const el = this.hostElement.nativeElement.parentElement;
|
|
37
|
+
if (!el)
|
|
38
|
+
return;
|
|
29
39
|
el.style.display = 'flex';
|
|
30
40
|
el.style.justifyContent = 'space-between';
|
|
31
41
|
el.style.position = 'relative';
|
|
32
42
|
el.style.overflow = 'hidden';
|
|
33
43
|
});
|
|
34
|
-
|
|
35
|
-
this.
|
|
36
|
-
this.
|
|
37
|
-
this.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
this.hostElement.nativeElement.onpointerdown = (e) => {
|
|
45
|
-
this.hostElement.nativeElement.style.transition = 'none';
|
|
46
|
-
this.hostElement.nativeElement.style.cursor = 'grabbing';
|
|
47
|
-
this.isMouseDown.set(true);
|
|
48
|
-
this.prevX.set(e.clientX);
|
|
49
|
-
};
|
|
50
|
-
this.hostElement.nativeElement.onpointermove = (e) => {
|
|
51
|
-
if (!this.isMouseDown())
|
|
52
|
-
return;
|
|
53
|
-
const currentX = e.clientX;
|
|
54
|
-
const deltaX = currentX - this.prevX();
|
|
55
|
-
this.currentX.update((prev) => prev + deltaX);
|
|
56
|
-
this.prevX.set(currentX);
|
|
57
|
-
};
|
|
58
|
-
this.hostElement.nativeElement.onpointerup = () => {
|
|
59
|
-
this.isMouseDown.set(false);
|
|
60
|
-
this.dismiss();
|
|
61
|
-
};
|
|
62
|
-
this.hostElement.nativeElement.onpointerleave = () => {
|
|
63
|
-
if (!this.isMouseDown())
|
|
64
|
-
return;
|
|
65
|
-
this.isMouseDown.set(false);
|
|
66
|
-
this.dismiss();
|
|
67
|
-
};
|
|
68
|
-
}, /* @ts-ignore */
|
|
69
|
-
...(ngDevMode ? [{ debugName: "#effect2" }] : /* istanbul ignore next */ []));
|
|
44
|
+
const subscriptions = [
|
|
45
|
+
this.gesture.panstart.subscribe(() => this.handlePanStart()),
|
|
46
|
+
this.gesture.panmove.subscribe((event) => this.handlePanMove(event)),
|
|
47
|
+
this.gesture.panend.subscribe(() => this.handlePanEnd()),
|
|
48
|
+
];
|
|
49
|
+
this.destroyRef.onDestroy(() => {
|
|
50
|
+
for (const subscription of subscriptions) {
|
|
51
|
+
subscription.unsubscribe();
|
|
52
|
+
}
|
|
53
|
+
});
|
|
70
54
|
}
|
|
71
55
|
#positionChange;
|
|
72
56
|
#init;
|
|
73
|
-
|
|
57
|
+
handlePanStart() {
|
|
58
|
+
this.hostElement.nativeElement.style.transition = 'none';
|
|
59
|
+
this.cursor.set('grabbing');
|
|
60
|
+
this.originX = this.currentX();
|
|
61
|
+
}
|
|
62
|
+
handlePanMove(event) {
|
|
63
|
+
let next = this.originX + event.deltaX;
|
|
64
|
+
if (next > 0 && this.disableSlidingRight())
|
|
65
|
+
next = 0;
|
|
66
|
+
if (next < 0 && this.disableSlidingLeft())
|
|
67
|
+
next = 0;
|
|
68
|
+
this.currentX.set(next);
|
|
69
|
+
}
|
|
70
|
+
handlePanEnd() {
|
|
71
|
+
this.dismiss();
|
|
72
|
+
}
|
|
74
73
|
dismiss() {
|
|
75
|
-
const el = this.hostElement.nativeElement;
|
|
76
74
|
this.hostElement.nativeElement.style.transition = '.5s transform ease';
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
this.prevX.set(this.stopPoint());
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
el.style.transform = `translate(0, 0)`;
|
|
85
|
-
this.currentX.set(0);
|
|
86
|
-
this.prevX.set(0);
|
|
87
|
-
}
|
|
75
|
+
this.cursor.set('grab');
|
|
76
|
+
const target = this.stopPoint();
|
|
77
|
+
this.currentX.set(target);
|
|
78
|
+
this.setPosition(target);
|
|
88
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Sets the position of the sliding element.
|
|
82
|
+
*
|
|
83
|
+
* @param pos - The horizontal position in pixels to set the element to
|
|
84
|
+
* @returns void - No return value. The element's transform is updated to the specified position.
|
|
85
|
+
*/
|
|
89
86
|
setPosition(pos) {
|
|
90
|
-
|
|
91
|
-
el.style.transform = `translate(${pos}px, 0)`;
|
|
87
|
+
this.hostElement.nativeElement.style.transform = `translate(${pos}px, 0)`;
|
|
92
88
|
}
|
|
93
89
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXSlidingItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
94
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: AXSlidingItemDirective, isStandalone: true, selector: "[axSlidingItem]", ngImport: i0 }); }
|
|
90
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: AXSlidingItemDirective, isStandalone: true, selector: "[axSlidingItem]", host: { properties: { "style.position": "\"absolute\"", "style.top": "\"0\"", "style.left": "\"0\"", "style.width": "\"100%\"", "style.height": "\"100%\"", "style.z-index": "\"1\"", "style.cursor": "cursor()", "style.user-select": "\"none\"", "style.touch-action": "\"none\"" } }, hostDirectives: [{ directive: i1.AXGestureDirective }], ngImport: i0 }); }
|
|
95
91
|
}
|
|
96
92
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXSlidingItemDirective, decorators: [{
|
|
97
93
|
type: Directive,
|
|
98
|
-
args: [{
|
|
99
|
-
|
|
94
|
+
args: [{
|
|
95
|
+
selector: '[axSlidingItem]',
|
|
96
|
+
hostDirectives: [AXGestureDirective],
|
|
97
|
+
host: {
|
|
98
|
+
'[style.position]': '"absolute"',
|
|
99
|
+
'[style.top]': '"0"',
|
|
100
|
+
'[style.left]': '"0"',
|
|
101
|
+
'[style.width]': '"100%"',
|
|
102
|
+
'[style.height]': '"100%"',
|
|
103
|
+
'[style.z-index]': '"1"',
|
|
104
|
+
'[style.cursor]': 'cursor()',
|
|
105
|
+
'[style.user-select]': '"none"',
|
|
106
|
+
'[style.touch-action]': '"none"',
|
|
107
|
+
},
|
|
108
|
+
}]
|
|
109
|
+
}], ctorParameters: () => [] });
|
|
100
110
|
|
|
101
111
|
/**
|
|
102
112
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-cdk-sliding-item.mjs","sources":["../../../../packages/cdk/sliding-item/src/lib/sliding-item.directive.ts","../../../../packages/cdk/sliding-item/src/acorex-cdk-sliding-item.ts"],"sourcesContent":["import { afterNextRender, Directive, effect, ElementRef, inject, signal } from '@angular/core';\n\n@Directive({
|
|
1
|
+
{"version":3,"file":"acorex-cdk-sliding-item.mjs","sources":["../../../../packages/cdk/sliding-item/src/lib/sliding-item.directive.ts","../../../../packages/cdk/sliding-item/src/acorex-cdk-sliding-item.ts"],"sourcesContent":["import { AXGestureDirective, AXGestureEvent } from '@acorex/cdk/gesture';\nimport { afterNextRender, DestroyRef, Directive, effect, ElementRef, inject, signal } from '@angular/core';\n\n/**\n * Enables horizontal sliding on the host via the hosted AXGestureDirective pan events.\n *\n * Do not put `axGesture` on the same element; this directive already hosts it.\n */\n@Directive({\n selector: '[axSlidingItem]',\n hostDirectives: [AXGestureDirective],\n host: {\n '[style.position]': '\"absolute\"',\n '[style.top]': '\"0\"',\n '[style.left]': '\"0\"',\n '[style.width]': '\"100%\"',\n '[style.height]': '\"100%\"',\n '[style.z-index]': '\"1\"',\n '[style.cursor]': 'cursor()',\n '[style.user-select]': '\"none\"',\n '[style.touch-action]': '\"none\"',\n },\n})\nexport class AXSlidingItemDirective {\n private readonly hostElement = inject(ElementRef<HTMLElement>);\n private readonly gesture = inject(AXGestureDirective);\n private readonly destroyRef = inject(DestroyRef);\n\n currentX = signal(0);\n stopPoint = signal(0);\n disableSlidingRight = signal(false);\n disableSlidingLeft = signal(false);\n\n protected readonly cursor = signal('grab');\n private originX = 0;\n\n constructor() {\n const subscriptions = [\n this.gesture.panstart.subscribe(() => this.handlePanStart()),\n this.gesture.panmove.subscribe((event) => this.handlePanMove(event)),\n this.gesture.panend.subscribe(() => this.handlePanEnd()),\n ];\n this.destroyRef.onDestroy(() => {\n for (const subscription of subscriptions) {\n subscription.unsubscribe();\n }\n });\n }\n\n #positionChange = effect(() => {\n if (this.currentX() > 0 && this.disableSlidingRight()) return;\n if (this.currentX() < 0 && this.disableSlidingLeft()) return;\n this.setPosition(this.currentX());\n });\n\n #init = afterNextRender(() => {\n const el = this.hostElement.nativeElement.parentElement;\n if (!el) return;\n el.style.display = 'flex';\n el.style.justifyContent = 'space-between';\n el.style.position = 'relative';\n el.style.overflow = 'hidden';\n });\n\n private handlePanStart(): void {\n this.hostElement.nativeElement.style.transition = 'none';\n this.cursor.set('grabbing');\n this.originX = this.currentX();\n }\n\n private handlePanMove(event: AXGestureEvent): void {\n let next = this.originX + event.deltaX;\n if (next > 0 && this.disableSlidingRight()) next = 0;\n if (next < 0 && this.disableSlidingLeft()) next = 0;\n this.currentX.set(next);\n }\n\n private handlePanEnd(): void {\n this.dismiss();\n }\n\n private dismiss(): void {\n this.hostElement.nativeElement.style.transition = '.5s transform ease';\n this.cursor.set('grab');\n const target = this.stopPoint();\n this.currentX.set(target);\n this.setPosition(target);\n }\n\n /**\n * Sets the position of the sliding element.\n *\n * @param pos - The horizontal position in pixels to set the element to\n * @returns void - No return value. The element's transform is updated to the specified position.\n */\n setPosition(pos: number): void {\n this.hostElement.nativeElement.style.transform = `translate(${pos}px, 0)`;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
|
|
3
3
|
Secondary entry point of `@acorex/cdk`. It can be used by importing from `@acorex/cdk/horizontal-scroll`.
|
|
4
4
|
|
|
5
|
-
Converts vertical mouse-wheel scrolling into horizontal scrolling on scrollable host elements.
|
|
5
|
+
Converts vertical mouse-wheel scrolling and horizontal pan into horizontal scrolling on scrollable host elements. Pan is provided by a hosted `AXGestureDirective`. Do not put `axGesture` on the same element.
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/cdk",
|
|
3
|
-
"version": "22.0.0
|
|
3
|
+
"version": "22.0.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@acorex/core": "22.0.0
|
|
5
|
+
"@acorex/core": "22.0.0",
|
|
6
6
|
"quill": ">=2.0.2",
|
|
7
7
|
"qrcode": ">=1.5.4",
|
|
8
8
|
"swiper": ">=11.1.15",
|
|
9
|
-
"maska": ">=3.1.1"
|
|
9
|
+
"maska": ">=3.1.1",
|
|
10
|
+
"hammerjs": ">=2.0.8"
|
|
10
11
|
},
|
|
11
12
|
"sideEffects": false,
|
|
12
13
|
"module": "fesm2022/acorex-cdk.mjs",
|
|
@@ -59,6 +60,10 @@
|
|
|
59
60
|
"types": "./types/acorex-cdk-full-screen.d.ts",
|
|
60
61
|
"default": "./fesm2022/acorex-cdk-full-screen.mjs"
|
|
61
62
|
},
|
|
63
|
+
"./gesture": {
|
|
64
|
+
"types": "./types/acorex-cdk-gesture.d.ts",
|
|
65
|
+
"default": "./fesm2022/acorex-cdk-gesture.mjs"
|
|
66
|
+
},
|
|
62
67
|
"./horizontal-scroll": {
|
|
63
68
|
"types": "./types/acorex-cdk-horizontal-scroll.d.ts",
|
|
64
69
|
"default": "./fesm2022/acorex-cdk-horizontal-scroll.mjs"
|
package/sliding-item/README.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
# @acorex/cdk/sliding-
|
|
1
|
+
# @acorex/cdk/sliding-item
|
|
2
2
|
|
|
3
|
-
Secondary entry point of `@acorex/cdk`. It can be used by importing from `@acorex/cdk/sliding-
|
|
3
|
+
Secondary entry point of `@acorex/cdk`. It can be used by importing from `@acorex/cdk/sliding-item`.
|
|
4
|
+
|
|
5
|
+
Enables horizontal sliding on the host via a hosted `AXGestureDirective`. Do not put `axGesture` on the same element.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { ChangeDetectorRef, ViewContainerRef, EventEmitter, OnDestroy, AfterViewInit, InjectionToken } from '@angular/core';
|
|
3
|
-
import { AXUnsubscriber } from '@acorex/core/utils';
|
|
4
3
|
import { AXValidationSummary, AXValidationRuleOptions } from '@acorex/core/validation';
|
|
4
|
+
import { AXUnsubscriber } from '@acorex/core/utils';
|
|
5
5
|
import { ControlValueAccessor } from '@angular/forms';
|
|
6
6
|
import { DataSource, CollectionViewer } from '@angular/cdk/collections';
|
|
7
7
|
import { Subject, Observable } from 'rxjs';
|
|
@@ -44,6 +44,11 @@ declare abstract class NXComponent {
|
|
|
44
44
|
#private;
|
|
45
45
|
protected isRendered: i0.Signal<boolean>;
|
|
46
46
|
get nativeElement(): HTMLElement;
|
|
47
|
+
/**
|
|
48
|
+
* Gets the host HTML element of the component.
|
|
49
|
+
* Same contract as classic editors so `ax-label` / `ax-form-field` can associate the field.
|
|
50
|
+
*/
|
|
51
|
+
getHostElement<T = HTMLElement>(): T;
|
|
47
52
|
static ɵfac: i0.ɵɵFactoryDeclaration<NXComponent, never>;
|
|
48
53
|
static ɵprov: i0.ɵɵInjectableDeclaration<NXComponent>;
|
|
49
54
|
}
|
|
@@ -87,66 +92,6 @@ declare abstract class NXLookComponent {
|
|
|
87
92
|
static ɵcmp: i0.ɵɵComponentDeclaration<NXLookComponent, "ng-component", never, { "look": { "alias": "look"; "required": false; "isSignal": true; }; }, { "look": "lookChange"; }, never, never, true, never>;
|
|
88
93
|
}
|
|
89
94
|
|
|
90
|
-
declare abstract class NXValueComponent {
|
|
91
|
-
readonly: i0.ModelSignal<boolean>;
|
|
92
|
-
name: i0.ModelSignal<string>;
|
|
93
|
-
value: i0.ModelSignal<unknown>;
|
|
94
|
-
onValueChanged: i0.OutputEmitterRef<void>;
|
|
95
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NXValueComponent, never>;
|
|
96
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NXValueComponent, "ng-component", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "readonly": "readonlyChange"; "name": "nameChange"; "value": "valueChange"; "onValueChanged": "onValueChanged"; }, never, never, true, never>;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* A token that specifies the direction of component.
|
|
101
|
-
*/
|
|
102
|
-
type AXDirection = 'vertical' | 'horizontal';
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* A token that specifies the orientation of component.
|
|
106
|
-
*/
|
|
107
|
-
type AXOrientation = 'vertical' | 'horizontal';
|
|
108
|
-
|
|
109
|
-
type AXPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'end' | 'end-top' | 'end-bottom' | 'start' | 'start-top' | 'start-bottom';
|
|
110
|
-
type AXPlacementType = AXConnectedPosition | AXConnectedPosition[] | AXPlacement | AXPlacement[];
|
|
111
|
-
declare function convertToPlacement(value: AXPlacementType): AXConnectedPosition[];
|
|
112
|
-
interface AXConnectedPosition {
|
|
113
|
-
originX: 'start' | 'center' | 'end';
|
|
114
|
-
originY: 'top' | 'center' | 'bottom';
|
|
115
|
-
overlayX: 'start' | 'center' | 'end';
|
|
116
|
-
overlayY: 'top' | 'center' | 'bottom';
|
|
117
|
-
weight?: number;
|
|
118
|
-
offsetX?: number;
|
|
119
|
-
offsetY?: number;
|
|
120
|
-
}
|
|
121
|
-
declare const AX_PLACEMENT_TOP: AXConnectedPosition;
|
|
122
|
-
declare const AX_PLACEMENT_TOP_START: AXConnectedPosition;
|
|
123
|
-
declare const AX_PLACEMENT_TOP_END: AXConnectedPosition;
|
|
124
|
-
declare const AX_PLACEMENT_BOTTOM: AXConnectedPosition;
|
|
125
|
-
declare const AX_PLACEMENT_BOTTOM_START: AXConnectedPosition;
|
|
126
|
-
declare const AX_PLACEMENT_BOTTOM_END: AXConnectedPosition;
|
|
127
|
-
declare const AX_PLACEMENT_START: AXConnectedPosition;
|
|
128
|
-
declare const AX_PLACEMENT_START_TOP: AXConnectedPosition;
|
|
129
|
-
declare const AX_PLACEMENT_START_BOTTOM: AXConnectedPosition;
|
|
130
|
-
declare const AX_PLACEMENT_END: AXConnectedPosition;
|
|
131
|
-
declare const AX_PLACEMENT_END_TOP: AXConnectedPosition;
|
|
132
|
-
declare const AX_PLACEMENT_END_BOTTOM: AXConnectedPosition;
|
|
133
|
-
declare const AX_PLACEMENT_MAP: {
|
|
134
|
-
[key: string]: {
|
|
135
|
-
origin: AXConnectedPosition;
|
|
136
|
-
alts?: AXConnectedPosition[];
|
|
137
|
-
};
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
interface AXRange<T> {
|
|
141
|
-
from: T;
|
|
142
|
-
end: T;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* A token that specifies the selection mode of component.
|
|
147
|
-
*/
|
|
148
|
-
type AXSelectionMode = 'single' | 'multiple' | 'none';
|
|
149
|
-
|
|
150
95
|
/**
|
|
151
96
|
* Contains native event
|
|
152
97
|
* @category Events
|
|
@@ -569,6 +514,77 @@ declare abstract class AXAutocompleteParentComponent<T> extends MXValueComponent
|
|
|
569
514
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXAutocompleteParentComponent<any>>;
|
|
570
515
|
}
|
|
571
516
|
|
|
517
|
+
/**
|
|
518
|
+
* Signal-based value editor with the same `ax-validation-rule` / `ax-form` contract as the classic value mixins.
|
|
519
|
+
*/
|
|
520
|
+
declare abstract class NXValueComponent extends NXComponent {
|
|
521
|
+
#private;
|
|
522
|
+
readonly validationRulesChange: EventEmitter<AXFormValidationRule[]>;
|
|
523
|
+
get isRequired(): boolean;
|
|
524
|
+
get state(): AXComponentState;
|
|
525
|
+
protected registerValidation(): void;
|
|
526
|
+
addValidationRule(rule: AXFormValidationRule): void;
|
|
527
|
+
removeValidationRule(ruleToRemove: AXFormValidationRule): void;
|
|
528
|
+
removeValidationRuleByType(type: string): void;
|
|
529
|
+
validate(): Promise<AXValidationSummary>;
|
|
530
|
+
setState(state: AXComponentState, ...args: unknown[]): void;
|
|
531
|
+
resetErrors(): void;
|
|
532
|
+
commitValue(value: unknown, _isUserInteraction?: boolean): void;
|
|
533
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NXValueComponent, never>;
|
|
534
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<NXValueComponent>;
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
/**
|
|
538
|
+
* A token that specifies the direction of component.
|
|
539
|
+
*/
|
|
540
|
+
type AXDirection = 'vertical' | 'horizontal';
|
|
541
|
+
|
|
542
|
+
/**
|
|
543
|
+
* A token that specifies the orientation of component.
|
|
544
|
+
*/
|
|
545
|
+
type AXOrientation = 'vertical' | 'horizontal';
|
|
546
|
+
|
|
547
|
+
type AXPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'end' | 'end-top' | 'end-bottom' | 'start' | 'start-top' | 'start-bottom';
|
|
548
|
+
type AXPlacementType = AXConnectedPosition | AXConnectedPosition[] | AXPlacement | AXPlacement[];
|
|
549
|
+
declare function convertToPlacement(value: AXPlacementType): AXConnectedPosition[];
|
|
550
|
+
interface AXConnectedPosition {
|
|
551
|
+
originX: 'start' | 'center' | 'end';
|
|
552
|
+
originY: 'top' | 'center' | 'bottom';
|
|
553
|
+
overlayX: 'start' | 'center' | 'end';
|
|
554
|
+
overlayY: 'top' | 'center' | 'bottom';
|
|
555
|
+
weight?: number;
|
|
556
|
+
offsetX?: number;
|
|
557
|
+
offsetY?: number;
|
|
558
|
+
}
|
|
559
|
+
declare const AX_PLACEMENT_TOP: AXConnectedPosition;
|
|
560
|
+
declare const AX_PLACEMENT_TOP_START: AXConnectedPosition;
|
|
561
|
+
declare const AX_PLACEMENT_TOP_END: AXConnectedPosition;
|
|
562
|
+
declare const AX_PLACEMENT_BOTTOM: AXConnectedPosition;
|
|
563
|
+
declare const AX_PLACEMENT_BOTTOM_START: AXConnectedPosition;
|
|
564
|
+
declare const AX_PLACEMENT_BOTTOM_END: AXConnectedPosition;
|
|
565
|
+
declare const AX_PLACEMENT_START: AXConnectedPosition;
|
|
566
|
+
declare const AX_PLACEMENT_START_TOP: AXConnectedPosition;
|
|
567
|
+
declare const AX_PLACEMENT_START_BOTTOM: AXConnectedPosition;
|
|
568
|
+
declare const AX_PLACEMENT_END: AXConnectedPosition;
|
|
569
|
+
declare const AX_PLACEMENT_END_TOP: AXConnectedPosition;
|
|
570
|
+
declare const AX_PLACEMENT_END_BOTTOM: AXConnectedPosition;
|
|
571
|
+
declare const AX_PLACEMENT_MAP: {
|
|
572
|
+
[key: string]: {
|
|
573
|
+
origin: AXConnectedPosition;
|
|
574
|
+
alts?: AXConnectedPosition[];
|
|
575
|
+
};
|
|
576
|
+
};
|
|
577
|
+
|
|
578
|
+
interface AXRange<T> {
|
|
579
|
+
from: T;
|
|
580
|
+
end: T;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
/**
|
|
584
|
+
* A token that specifies the selection mode of component.
|
|
585
|
+
*/
|
|
586
|
+
type AXSelectionMode = 'single' | 'multiple' | 'none';
|
|
587
|
+
|
|
572
588
|
type AXDataSourceOperator = {
|
|
573
589
|
type: 'equal' | 'isNull' | 'isEmpty' | 'lt' | 'lte' | 'gt' | 'gte' | 'startsWith' | 'endsWith' | 'contains' | 'in';
|
|
574
590
|
negative?: boolean;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { OnDestroy, OutputEmitterRef } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Hammer.js event payload emitted by AXGestureDirective outputs.
|
|
6
|
+
*/
|
|
7
|
+
interface AXGestureEvent {
|
|
8
|
+
type: string;
|
|
9
|
+
deltaX: number;
|
|
10
|
+
deltaY: number;
|
|
11
|
+
deltaTime: number;
|
|
12
|
+
distance: number;
|
|
13
|
+
angle: number;
|
|
14
|
+
velocity: number;
|
|
15
|
+
velocityX: number;
|
|
16
|
+
velocityY: number;
|
|
17
|
+
direction: number;
|
|
18
|
+
offsetDirection: number;
|
|
19
|
+
scale: number;
|
|
20
|
+
rotation: number;
|
|
21
|
+
center: {
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
};
|
|
25
|
+
srcEvent: Event;
|
|
26
|
+
target: HTMLElement;
|
|
27
|
+
pointerType: string;
|
|
28
|
+
eventType: number;
|
|
29
|
+
isFirst: boolean;
|
|
30
|
+
isFinal: boolean;
|
|
31
|
+
preventDefault: () => void;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Hammer.js constructor options passed through to the manager.
|
|
35
|
+
*/
|
|
36
|
+
interface AXGestureOptions {
|
|
37
|
+
touchAction?: string;
|
|
38
|
+
enable?: boolean;
|
|
39
|
+
cssProps?: Record<string, string | number>;
|
|
40
|
+
domEvents?: boolean;
|
|
41
|
+
inputTarget?: EventTarget;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Allowed pan and swipe directions. Maps to Hammer.DIRECTION_* constants.
|
|
45
|
+
*/
|
|
46
|
+
type AXGestureDirection = 'all' | 'horizontal' | 'vertical';
|
|
47
|
+
/**
|
|
48
|
+
* Public surface of the Hammer manager exposed via AXGestureDirective.manager.
|
|
49
|
+
*/
|
|
50
|
+
interface AXGestureManager {
|
|
51
|
+
get: (name: string) => {
|
|
52
|
+
set: (options: object) => unknown;
|
|
53
|
+
} | null;
|
|
54
|
+
on: (events: string, handler: (ev: AXGestureEvent) => void) => void;
|
|
55
|
+
off: (events: string, handler: (ev: AXGestureEvent) => void) => void;
|
|
56
|
+
destroy: () => void;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Attaches Hammer.js gesture recognition to the host element.
|
|
61
|
+
*
|
|
62
|
+
* Usage:
|
|
63
|
+
* <div axGesture [direction]="'all'" (tap)="onTap($event)" (pan)="onPan($event)"></div>
|
|
64
|
+
*/
|
|
65
|
+
declare class AXGestureDirective implements OnDestroy {
|
|
66
|
+
#private;
|
|
67
|
+
private readonly el;
|
|
68
|
+
private readonly zone;
|
|
69
|
+
private readonly platformId;
|
|
70
|
+
/**
|
|
71
|
+
* Extra Hammer.js options forwarded to the manager constructor.
|
|
72
|
+
*/
|
|
73
|
+
options: _angular_core.InputSignal<AXGestureOptions>;
|
|
74
|
+
/**
|
|
75
|
+
* Pan and swipe direction. Defaults to horizontal, matching Hammer.js.
|
|
76
|
+
*/
|
|
77
|
+
direction: _angular_core.InputSignal<AXGestureDirection>;
|
|
78
|
+
/**
|
|
79
|
+
* Enables the multi-touch pinch recognizer. Disabled by default.
|
|
80
|
+
*/
|
|
81
|
+
enablePinch: _angular_core.InputSignal<boolean>;
|
|
82
|
+
/**
|
|
83
|
+
* Enables the multi-touch rotate recognizer. Disabled by default.
|
|
84
|
+
*/
|
|
85
|
+
enableRotate: _angular_core.InputSignal<boolean>;
|
|
86
|
+
/**
|
|
87
|
+
* Stops gesture recognition when true.
|
|
88
|
+
*/
|
|
89
|
+
disabled: _angular_core.InputSignal<boolean>;
|
|
90
|
+
tap: OutputEmitterRef<AXGestureEvent>;
|
|
91
|
+
doubletap: OutputEmitterRef<AXGestureEvent>;
|
|
92
|
+
press: OutputEmitterRef<AXGestureEvent>;
|
|
93
|
+
pan: OutputEmitterRef<AXGestureEvent>;
|
|
94
|
+
panstart: OutputEmitterRef<AXGestureEvent>;
|
|
95
|
+
panmove: OutputEmitterRef<AXGestureEvent>;
|
|
96
|
+
panend: OutputEmitterRef<AXGestureEvent>;
|
|
97
|
+
swipe: OutputEmitterRef<AXGestureEvent>;
|
|
98
|
+
pinch: OutputEmitterRef<AXGestureEvent>;
|
|
99
|
+
rotate: OutputEmitterRef<AXGestureEvent>;
|
|
100
|
+
private hammer;
|
|
101
|
+
private hammerLib;
|
|
102
|
+
private setupId;
|
|
103
|
+
private ready;
|
|
104
|
+
private readonly emitters;
|
|
105
|
+
/**
|
|
106
|
+
* The underlying Hammer manager, or null when not initialized.
|
|
107
|
+
*/
|
|
108
|
+
get manager(): AXGestureManager | null;
|
|
109
|
+
ngOnDestroy(): void;
|
|
110
|
+
private setup;
|
|
111
|
+
private loadHammer;
|
|
112
|
+
private toHammerDirection;
|
|
113
|
+
private teardown;
|
|
114
|
+
private readonly onHammerEvent;
|
|
115
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXGestureDirective, never>;
|
|
116
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXGestureDirective, "[axGesture]", ["axGesture"], { "options": { "alias": "options"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "enablePinch": { "alias": "enablePinch"; "required": false; "isSignal": true; }; "enableRotate": { "alias": "enableRotate"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "tap": "tap"; "doubletap": "doubletap"; "press": "press"; "pan": "pan"; "panstart": "panstart"; "panmove": "panmove"; "panend": "panend"; "swipe": "swipe"; "pinch": "pinch"; "rotate": "rotate"; }, never, never, true, never>;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export { AXGestureDirective };
|
|
120
|
+
export type { AXGestureDirection, AXGestureEvent, AXGestureManager, AXGestureOptions };
|
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { OnDestroy } from '@angular/core';
|
|
3
|
+
import * as i1 from '@acorex/cdk/gesture';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
|
-
* Converts vertical mouse-wheel scrolling into horizontal scrolling on the host element.
|
|
6
|
-
* Applies only when the host can scroll horizontally.
|
|
6
|
+
* Converts vertical mouse-wheel scrolling and horizontal pan into horizontal scrolling on the host element.
|
|
7
|
+
* Applies only when the host can scroll horizontally. Pan is provided by the hosted AXGestureDirective.
|
|
7
8
|
*
|
|
8
9
|
* Usage:
|
|
9
10
|
* <div axHorizontalScroll [speed]="150" class="overflow-x-auto">
|
|
10
11
|
* ...
|
|
11
12
|
* </div>
|
|
13
|
+
*
|
|
14
|
+
* Do not put `axGesture` on the same element; this directive already hosts it.
|
|
12
15
|
*/
|
|
13
16
|
declare class AXHorizontalScrollDirective implements OnDestroy {
|
|
14
17
|
#private;
|
|
15
|
-
private elementRef;
|
|
16
|
-
private platformId;
|
|
17
|
-
private zone;
|
|
18
|
+
private readonly elementRef;
|
|
19
|
+
private readonly platformId;
|
|
20
|
+
private readonly zone;
|
|
21
|
+
private readonly gesture;
|
|
22
|
+
private readonly destroyRef;
|
|
18
23
|
/**
|
|
19
|
-
* Disables wheel-to-horizontal conversion when true.
|
|
24
|
+
* Disables wheel-to-horizontal conversion and pan scrolling when true.
|
|
20
25
|
*/
|
|
21
26
|
disabled: _angular_core.InputSignal<boolean>;
|
|
22
27
|
/**
|
|
@@ -28,17 +33,31 @@ declare class AXHorizontalScrollDirective implements OnDestroy {
|
|
|
28
33
|
private targetScrollLeft;
|
|
29
34
|
private scrollPosition;
|
|
30
35
|
private lastFrameTime;
|
|
36
|
+
private isPanning;
|
|
37
|
+
private ignorePan;
|
|
38
|
+
private panStartScrollLeft;
|
|
39
|
+
private suppressClickListener;
|
|
40
|
+
private suppressClickTimer;
|
|
41
|
+
private readonly interactiveSelector;
|
|
31
42
|
private readonly wheelListener;
|
|
43
|
+
constructor();
|
|
32
44
|
ngOnDestroy(): void;
|
|
33
45
|
private get nativeElement();
|
|
34
46
|
private handleWheel;
|
|
47
|
+
private handlePanStart;
|
|
48
|
+
private handlePanMove;
|
|
49
|
+
private handlePanEnd;
|
|
50
|
+
private clearPanStyles;
|
|
51
|
+
private suppressClick;
|
|
52
|
+
private clearClickSuppression;
|
|
35
53
|
private syncScrollState;
|
|
36
54
|
private startAnimation;
|
|
37
55
|
private applyScrollPosition;
|
|
38
56
|
private stopAnimation;
|
|
39
57
|
private canScrollHorizontally;
|
|
58
|
+
private getMaxScrollLeft;
|
|
40
59
|
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,
|
|
60
|
+
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, [{ directive: typeof i1.AXGestureDirective; inputs: {}; outputs: {}; }]>;
|
|
42
61
|
}
|
|
43
62
|
|
|
44
63
|
export { AXHorizontalScrollDirective };
|