@symbiote-native/slider 0.1.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/LICENSE +21 -0
- package/README.md +90 -0
- package/build/angular/index.d.ts +3 -0
- package/build/angular/index.js +2 -0
- package/build/angular/slider/index.android.d.ts +9 -0
- package/build/angular/slider/index.android.js +71 -0
- package/build/angular/slider/index.d.ts +2 -0
- package/build/angular/slider/index.ios.d.ts +11 -0
- package/build/angular/slider/index.ios.js +72 -0
- package/build/angular/slider/index.js +3 -0
- package/build/angular/slider/shared.d.ts +84 -0
- package/build/angular/slider/shared.js +648 -0
- package/build/core/constants.d.ts +20 -0
- package/build/core/constants.js +40 -0
- package/build/core/index.d.ts +7 -0
- package/build/core/index.js +11 -0
- package/build/core/render-slider.d.ts +11 -0
- package/build/core/render-slider.js +66 -0
- package/build/core/render-steps-indicator.d.ts +28 -0
- package/build/core/render-steps-indicator.js +91 -0
- package/build/core/slider-props.d.ts +52 -0
- package/build/core/slider-props.js +6 -0
- package/build/core/slider-state.d.ts +15 -0
- package/build/core/slider-state.js +73 -0
- package/build/react/index.d.ts +4 -0
- package/build/react/index.js +7 -0
- package/build/react/slider/index.android.d.ts +1 -0
- package/build/react/slider/index.android.js +10 -0
- package/build/react/slider/index.d.ts +1 -0
- package/build/react/slider/index.ios.d.ts +1 -0
- package/build/react/slider/index.ios.js +11 -0
- package/build/react/slider/index.js +3 -0
- package/build/react/slider/shared.d.ts +10 -0
- package/build/react/slider/shared.js +175 -0
- package/build/register.d.ts +1 -0
- package/build/register.js +48 -0
- package/build/vue/index.d.ts +3 -0
- package/build/vue/index.js +8 -0
- package/build/vue/slider/index.android.d.ts +18 -0
- package/build/vue/slider/index.android.js +10 -0
- package/build/vue/slider/index.d.ts +2 -0
- package/build/vue/slider/index.ios.d.ts +18 -0
- package/build/vue/slider/index.ios.js +11 -0
- package/build/vue/slider/index.js +3 -0
- package/build/vue/slider/shared.d.ts +26 -0
- package/build/vue/slider/shared.js +254 -0
- package/build-ngc/angular/index.d.ts +3 -0
- package/build-ngc/angular/index.js +3 -0
- package/build-ngc/angular/index.js.map +1 -0
- package/build-ngc/angular/slider/index.android.d.ts +12 -0
- package/build-ngc/angular/slider/index.android.js +28 -0
- package/build-ngc/angular/slider/index.android.js.map +1 -0
- package/build-ngc/angular/slider/index.d.ts +2 -0
- package/build-ngc/angular/slider/index.ios.d.ts +14 -0
- package/build-ngc/angular/slider/index.ios.js +29 -0
- package/build-ngc/angular/slider/index.ios.js.map +1 -0
- package/build-ngc/angular/slider/index.js +4 -0
- package/build-ngc/angular/slider/index.js.map +1 -0
- package/build-ngc/angular/slider/shared.d.ts +87 -0
- package/build-ngc/angular/slider/shared.js +427 -0
- package/build-ngc/angular/slider/shared.js.map +1 -0
- package/build-ngc/core/constants.d.ts +20 -0
- package/build-ngc/core/constants.js +41 -0
- package/build-ngc/core/constants.js.map +1 -0
- package/build-ngc/core/index.d.ts +7 -0
- package/build-ngc/core/index.js +12 -0
- package/build-ngc/core/index.js.map +1 -0
- package/build-ngc/core/render-slider.d.ts +11 -0
- package/build-ngc/core/render-slider.js +67 -0
- package/build-ngc/core/render-slider.js.map +1 -0
- package/build-ngc/core/render-steps-indicator.d.ts +28 -0
- package/build-ngc/core/render-steps-indicator.js +92 -0
- package/build-ngc/core/render-steps-indicator.js.map +1 -0
- package/build-ngc/core/slider-props.d.ts +52 -0
- package/build-ngc/core/slider-props.js +7 -0
- package/build-ngc/core/slider-props.js.map +1 -0
- package/build-ngc/core/slider-state.d.ts +15 -0
- package/build-ngc/core/slider-state.js +74 -0
- package/build-ngc/core/slider-state.js.map +1 -0
- package/build-ngc/register.d.ts +1 -0
- package/build-ngc/register.js +49 -0
- package/build-ngc/register.js.map +1 -0
- package/package.json +116 -0
- package/src/angular/index.ts +4 -0
- package/src/angular/slider/index.android.ts +25 -0
- package/src/angular/slider/index.ios.ts +26 -0
- package/src/angular/slider/index.ts +5 -0
- package/src/angular/slider/shared.ts +364 -0
- package/src/angular/slider/slider.test.ts +260 -0
- package/src/core/constants.ts +47 -0
- package/src/core/index.ts +46 -0
- package/src/core/render-slider.ts +89 -0
- package/src/core/render-steps-indicator.ts +154 -0
- package/src/core/slider-props.ts +83 -0
- package/src/core/slider-state.ts +112 -0
- package/src/react/index.ts +11 -0
- package/src/react/slider/index.android.ts +13 -0
- package/src/react/slider/index.ios.ts +14 -0
- package/src/react/slider/index.ts +4 -0
- package/src/react/slider/shared.ts +332 -0
- package/src/react/slider/slider.test.tsx +203 -0
- package/src/register.test.tsx +89 -0
- package/src/register.ts +59 -0
- package/src/vue/index.ts +11 -0
- package/src/vue/slider/index.android.ts +13 -0
- package/src/vue/slider/index.ios.ts +14 -0
- package/src/vue/slider/index.ts +5 -0
- package/src/vue/slider/shared.ts +383 -0
- package/src/vue/slider/slider.test.ts +184 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Slider on Android: the native view sizes itself (no default height), lays out implicit steps at
|
|
2
|
+
// 128-point resolution, and keeps the step row at the top. Mirrors the library's Android branches.
|
|
3
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
|
+
import { DescriptorOutlet } from '@symbiote-native/angular';
|
|
5
|
+
import { SliderBase } from './shared';
|
|
6
|
+
import { SLIDER_STEP_RESOLUTION_ANDROID } from '../../core';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
const ANDROID_STEPS_CONTAINER_TOP = 0;
|
|
9
|
+
export class Slider extends SliderBase {
|
|
10
|
+
platform = {
|
|
11
|
+
defaultStyle: {},
|
|
12
|
+
stepResolution: SLIDER_STEP_RESOLUTION_ANDROID,
|
|
13
|
+
stepsContainerTop: ANDROID_STEPS_CONTAINER_TOP,
|
|
14
|
+
};
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: Slider, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: Slider, isStandalone: true, selector: "Slider", usesInheritance: true, ngImport: i0, template: `<symbiote-descriptor-outlet [node]="descriptor" />`, isInline: true, dependencies: [{ kind: "component", type: DescriptorOutlet, selector: "symbiote-descriptor-outlet", inputs: ["node"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: Slider, decorators: [{
|
|
19
|
+
type: Component,
|
|
20
|
+
args: [{
|
|
21
|
+
selector: 'Slider',
|
|
22
|
+
standalone: true,
|
|
23
|
+
imports: [DescriptorOutlet],
|
|
24
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
25
|
+
template: `<symbiote-descriptor-outlet [node]="descriptor" />`,
|
|
26
|
+
}]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=index.android.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../src/angular/slider/index.android.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,mGAAmG;AAEnG,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;;AAG5D,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAStC,MAAM,OAAO,MAAO,SAAQ,UAAU;IACjB,QAAQ,GAAG;QAC5B,YAAY,EAAE,EAAE;QAChB,cAAc,EAAE,8BAA8B;QAC9C,iBAAiB,EAAE,2BAA2B;KAC/C,CAAC;uGALS,MAAM;2FAAN,MAAM,yFAFP,oDAAoD,4DAFpD,gBAAgB;;2FAIf,MAAM;kBAPlB,SAAS;mBAAC;oBACT,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE,oDAAoD;iBAC/D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SliderBase } from './shared';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export type { ISliderProps } from './shared';
|
|
4
|
+
export declare class Slider extends SliderBase {
|
|
5
|
+
protected readonly platform: {
|
|
6
|
+
defaultStyle: {
|
|
7
|
+
height: number;
|
|
8
|
+
};
|
|
9
|
+
stepResolution: number;
|
|
10
|
+
stepsContainerTop: number;
|
|
11
|
+
};
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<Slider, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<Slider, "Slider", never, {}, {}, never, never, true, never>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Slider on iOS: the native view has an intrinsic 40pt height (the wrapper applies it as the
|
|
2
|
+
// default), lays out implicit steps at 1000-point resolution, and nudges the step row down 10pt.
|
|
3
|
+
// Also the base (./index re-exports it) for headless. Mirrors the library's iOS branches.
|
|
4
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
|
+
import { DescriptorOutlet } from '@symbiote-native/angular';
|
|
6
|
+
import { SliderBase } from './shared';
|
|
7
|
+
import { SLIDER_IOS_DEFAULT_HEIGHT, SLIDER_STEP_RESOLUTION_IOS } from '../../core';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
const IOS_STEPS_CONTAINER_TOP = 10;
|
|
10
|
+
export class Slider extends SliderBase {
|
|
11
|
+
platform = {
|
|
12
|
+
defaultStyle: { height: SLIDER_IOS_DEFAULT_HEIGHT },
|
|
13
|
+
stepResolution: SLIDER_STEP_RESOLUTION_IOS,
|
|
14
|
+
stepsContainerTop: IOS_STEPS_CONTAINER_TOP,
|
|
15
|
+
};
|
|
16
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: Slider, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: Slider, isStandalone: true, selector: "Slider", usesInheritance: true, ngImport: i0, template: `<symbiote-descriptor-outlet [node]="descriptor" />`, isInline: true, dependencies: [{ kind: "component", type: DescriptorOutlet, selector: "symbiote-descriptor-outlet", inputs: ["node"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: Slider, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{
|
|
22
|
+
selector: 'Slider',
|
|
23
|
+
standalone: true,
|
|
24
|
+
imports: [DescriptorOutlet],
|
|
25
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
26
|
+
template: `<symbiote-descriptor-outlet [node]="descriptor" />`,
|
|
27
|
+
}]
|
|
28
|
+
}] });
|
|
29
|
+
//# sourceMappingURL=index.ios.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../src/angular/slider/index.ios.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,iGAAiG;AACjG,0FAA0F;AAE1F,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;;AAGnF,MAAM,uBAAuB,GAAG,EAAE,CAAC;AASnC,MAAM,OAAO,MAAO,SAAQ,UAAU;IACjB,QAAQ,GAAG;QAC5B,YAAY,EAAE,EAAE,MAAM,EAAE,yBAAyB,EAAE;QACnD,cAAc,EAAE,0BAA0B;QAC1C,iBAAiB,EAAE,uBAAuB;KAC3C,CAAC;uGALS,MAAM;2FAAN,MAAM,yFAFP,oDAAoD,4DAFpD,gBAAgB;;2FAIf,MAAM;kBAPlB,SAAS;mBAAC;oBACT,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE,oDAAoD;iBAC/D"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// Base entry for headless / tsc: re-exports the iOS variant (Metro picks index.ios / index.android
|
|
2
|
+
// per platform via filename selection; this no-suffix file is what tsx/vitest resolve). ADR 0026.
|
|
3
|
+
export { Slider } from './index.ios';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/angular/slider/index.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,kGAAkG;AAElG,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { EventEmitter, type OnChanges } from '@angular/core';
|
|
2
|
+
import type { IAccessibilityProps, IAccessibilityStateValue, IAriaProps, IDescriptor } from '@symbiote-native/components';
|
|
3
|
+
import { type ISymbioteEvent } from '@symbiote-native/engine';
|
|
4
|
+
import { type ISliderPlatform, type ISliderProps as ISliderBaseProps } from '../../core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export type ISliderProps = Omit<ISliderBaseProps, 'onValueChange' | 'onSlidingStart' | 'onSlidingComplete' | 'onAccessibilityAction'>;
|
|
7
|
+
export declare abstract class SliderBase implements ISliderProps, OnChanges {
|
|
8
|
+
value?: number;
|
|
9
|
+
minimumValue?: number;
|
|
10
|
+
maximumValue?: number;
|
|
11
|
+
step?: number;
|
|
12
|
+
lowerLimit?: number;
|
|
13
|
+
upperLimit?: number;
|
|
14
|
+
minimumTrackTintColor?: ISliderProps['minimumTrackTintColor'];
|
|
15
|
+
maximumTrackTintColor?: ISliderProps['maximumTrackTintColor'];
|
|
16
|
+
thumbTintColor?: ISliderProps['thumbTintColor'];
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
inverted?: boolean;
|
|
19
|
+
tapToSeek?: boolean;
|
|
20
|
+
vertical?: boolean;
|
|
21
|
+
thumbImage?: ISliderProps['thumbImage'];
|
|
22
|
+
minimumTrackImage?: ISliderProps['minimumTrackImage'];
|
|
23
|
+
maximumTrackImage?: ISliderProps['maximumTrackImage'];
|
|
24
|
+
trackImage?: ISliderProps['trackImage'];
|
|
25
|
+
thumbSize?: number;
|
|
26
|
+
accessibilityUnits?: string;
|
|
27
|
+
accessibilityIncrements?: readonly string[];
|
|
28
|
+
renderStepNumber?: boolean;
|
|
29
|
+
testID?: string;
|
|
30
|
+
style?: ISliderProps['style'];
|
|
31
|
+
nativeID?: string;
|
|
32
|
+
accessible?: boolean;
|
|
33
|
+
accessibilityLabel?: string;
|
|
34
|
+
accessibilityHint?: string;
|
|
35
|
+
accessibilityRole?: IAccessibilityProps['accessibilityRole'];
|
|
36
|
+
accessibilityState?: IAccessibilityStateValue;
|
|
37
|
+
accessibilityValue?: IAccessibilityProps['accessibilityValue'];
|
|
38
|
+
accessibilityActions?: IAccessibilityProps['accessibilityActions'];
|
|
39
|
+
accessibilityLabelledBy?: string | string[];
|
|
40
|
+
importantForAccessibility?: IAccessibilityProps['importantForAccessibility'];
|
|
41
|
+
accessibilityLiveRegion?: IAccessibilityProps['accessibilityLiveRegion'];
|
|
42
|
+
screenReaderFocusable?: boolean;
|
|
43
|
+
accessibilityViewIsModal?: boolean;
|
|
44
|
+
accessibilityElementsHidden?: boolean;
|
|
45
|
+
accessibilityIgnoresInvertColors?: boolean;
|
|
46
|
+
accessibilityLanguage?: string;
|
|
47
|
+
accessibilityRespondsToUserInteraction?: boolean;
|
|
48
|
+
accessibilityShowsLargeContentViewer?: boolean;
|
|
49
|
+
accessibilityLargeContentTitle?: string;
|
|
50
|
+
onAccessibilityTap?: (event: ISymbioteEvent) => void;
|
|
51
|
+
onMagicTap?: (event: ISymbioteEvent) => void;
|
|
52
|
+
onAccessibilityEscape?: (event: ISymbioteEvent) => void;
|
|
53
|
+
role?: IAriaProps['role'];
|
|
54
|
+
ariaLabel?: string;
|
|
55
|
+
ariaLabelledBy?: string;
|
|
56
|
+
ariaLive?: IAriaProps['aria-live'];
|
|
57
|
+
ariaHidden?: boolean;
|
|
58
|
+
ariaBusy?: boolean;
|
|
59
|
+
ariaChecked?: boolean | 'mixed';
|
|
60
|
+
ariaDisabled?: boolean;
|
|
61
|
+
ariaExpanded?: boolean;
|
|
62
|
+
ariaSelected?: boolean;
|
|
63
|
+
ariaModal?: boolean;
|
|
64
|
+
ariaValueMax?: number;
|
|
65
|
+
ariaValueMin?: number;
|
|
66
|
+
ariaValueNow?: number;
|
|
67
|
+
ariaValueText?: string;
|
|
68
|
+
readonly valueChange: EventEmitter<number>;
|
|
69
|
+
readonly slidingStart: EventEmitter<number>;
|
|
70
|
+
readonly slidingComplete: EventEmitter<number>;
|
|
71
|
+
readonly accessibilityAction: EventEmitter<ISymbioteEvent>;
|
|
72
|
+
protected abstract readonly platform: ISliderPlatform;
|
|
73
|
+
private readonly changeDetector;
|
|
74
|
+
private readonly elementRef;
|
|
75
|
+
private reportedValue;
|
|
76
|
+
private width;
|
|
77
|
+
ngOnChanges(): void;
|
|
78
|
+
protected readonly handleValueChange: (event: ISymbioteEvent) => void;
|
|
79
|
+
protected readonly handleSlidingStart: (event: ISymbioteEvent) => void;
|
|
80
|
+
protected readonly handleSlidingComplete: (event: ISymbioteEvent) => void;
|
|
81
|
+
protected readonly handleAccessibilityAction: (event: ISymbioteEvent) => void;
|
|
82
|
+
protected readonly handleLayout: (event: ISymbioteEvent) => void;
|
|
83
|
+
private inputProps;
|
|
84
|
+
get descriptor(): IDescriptor;
|
|
85
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SliderBase, never>;
|
|
86
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<SliderBase, never, never, { "value": { "alias": "value"; "required": false; }; "minimumValue": { "alias": "minimumValue"; "required": false; }; "maximumValue": { "alias": "maximumValue"; "required": false; }; "step": { "alias": "step"; "required": false; }; "lowerLimit": { "alias": "lowerLimit"; "required": false; }; "upperLimit": { "alias": "upperLimit"; "required": false; }; "minimumTrackTintColor": { "alias": "minimumTrackTintColor"; "required": false; }; "maximumTrackTintColor": { "alias": "maximumTrackTintColor"; "required": false; }; "thumbTintColor": { "alias": "thumbTintColor"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "inverted": { "alias": "inverted"; "required": false; }; "tapToSeek": { "alias": "tapToSeek"; "required": false; }; "vertical": { "alias": "vertical"; "required": false; }; "thumbImage": { "alias": "thumbImage"; "required": false; }; "minimumTrackImage": { "alias": "minimumTrackImage"; "required": false; }; "maximumTrackImage": { "alias": "maximumTrackImage"; "required": false; }; "trackImage": { "alias": "trackImage"; "required": false; }; "thumbSize": { "alias": "thumbSize"; "required": false; }; "accessibilityUnits": { "alias": "accessibilityUnits"; "required": false; }; "accessibilityIncrements": { "alias": "accessibilityIncrements"; "required": false; }; "renderStepNumber": { "alias": "renderStepNumber"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "accessible": { "alias": "accessible"; "required": false; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; }; "accessibilityHint": { "alias": "accessibilityHint"; "required": false; }; "accessibilityRole": { "alias": "accessibilityRole"; "required": false; }; "accessibilityState": { "alias": "accessibilityState"; "required": false; }; "accessibilityValue": { "alias": "accessibilityValue"; "required": false; }; "accessibilityActions": { "alias": "accessibilityActions"; "required": false; }; "accessibilityLabelledBy": { "alias": "accessibilityLabelledBy"; "required": false; }; "importantForAccessibility": { "alias": "importantForAccessibility"; "required": false; }; "accessibilityLiveRegion": { "alias": "accessibilityLiveRegion"; "required": false; }; "screenReaderFocusable": { "alias": "screenReaderFocusable"; "required": false; }; "accessibilityViewIsModal": { "alias": "accessibilityViewIsModal"; "required": false; }; "accessibilityElementsHidden": { "alias": "accessibilityElementsHidden"; "required": false; }; "accessibilityIgnoresInvertColors": { "alias": "accessibilityIgnoresInvertColors"; "required": false; }; "accessibilityLanguage": { "alias": "accessibilityLanguage"; "required": false; }; "accessibilityRespondsToUserInteraction": { "alias": "accessibilityRespondsToUserInteraction"; "required": false; }; "accessibilityShowsLargeContentViewer": { "alias": "accessibilityShowsLargeContentViewer"; "required": false; }; "accessibilityLargeContentTitle": { "alias": "accessibilityLargeContentTitle"; "required": false; }; "onAccessibilityTap": { "alias": "onAccessibilityTap"; "required": false; }; "onMagicTap": { "alias": "onMagicTap"; "required": false; }; "onAccessibilityEscape": { "alias": "onAccessibilityEscape"; "required": false; }; "role": { "alias": "role"; "required": false; }; "ariaLabel": { "alias": "aria-label"; "required": false; }; "ariaLabelledBy": { "alias": "aria-labelledby"; "required": false; }; "ariaLive": { "alias": "aria-live"; "required": false; }; "ariaHidden": { "alias": "aria-hidden"; "required": false; }; "ariaBusy": { "alias": "aria-busy"; "required": false; }; "ariaChecked": { "alias": "aria-checked"; "required": false; }; "ariaDisabled": { "alias": "aria-disabled"; "required": false; }; "ariaExpanded": { "alias": "aria-expanded"; "required": false; }; "ariaSelected": { "alias": "aria-selected"; "required": false; }; "ariaModal": { "alias": "aria-modal"; "required": false; }; "ariaValueMax": { "alias": "aria-valuemax"; "required": false; }; "ariaValueMin": { "alias": "aria-valuemin"; "required": false; }; "ariaValueNow": { "alias": "aria-valuenow"; "required": false; }; "ariaValueText": { "alias": "aria-valuetext"; "required": false; }; }, { "valueChange": "valueChange"; "slidingStart": "slidingStart"; "slidingComplete": "slidingComplete"; "accessibilityAction": "accessibilityAction"; }, never, never, true, never>;
|
|
87
|
+
}
|
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
// Slider, the Angular lifecycle half. The logic (value/limit/disabled folds, the step-option
|
|
2
|
+
// layout) and the native render live in @symbiote-native/slider core, shared verbatim with the Vue
|
|
3
|
+
// adapter; here Angular supplies plain class fields (mirroring ActivityIndicatorBase/SwitchBase)
|
|
4
|
+
// plus real @Output() EventEmitters for the four native callbacks, and renders through
|
|
5
|
+
// DescriptorOutlet — the generic descriptorToAngular bridge (angular-adapter skill §6) — since
|
|
6
|
+
// this component has no imperative-ref need the Descriptor prop bag can't carry. The native
|
|
7
|
+
// RNCSlider view carries no symbiote metadata: the engine derives its events and color
|
|
8
|
+
// processors from the library's ViewConfig at runtime, registered by the side-effect import in
|
|
9
|
+
// ../../register (pulled in by the package barrel, NOT here, so this module and its tests stay
|
|
10
|
+
// free of the third-party spec). See CLAUDE.md <third_party_rn_packages_are_react_only> and
|
|
11
|
+
// ADR 0027.
|
|
12
|
+
//
|
|
13
|
+
// KNOWN GAP (deliberate, scoped by the task this module was built for): the custom `StepMarker`
|
|
14
|
+
// render slot (a per-adapter overlay element — a React FC, a Vue scoped slot) has no Angular
|
|
15
|
+
// equivalent yet. The natural analogue is a `@ContentChild(TemplateRef) stepMarker?:
|
|
16
|
+
// TemplateRef<IStepMarkerProps>` projected per step cell via `NgTemplateOutlet`, but wiring an
|
|
17
|
+
// embedded view per cell (constructing it, feeding its context, keeping it in step with
|
|
18
|
+
// DescriptorOutlet's imperative patch model, which has no notion of TemplateRefs) is
|
|
19
|
+
// disproportionate complexity for a path no real caller exercises today (examples/react/App.tsx's
|
|
20
|
+
// Slider usage has no step markers at all). Everything else — value/limits/disabled/colors/
|
|
21
|
+
// thumbImage/style/every event, and the DEFAULT numbered step indicator (`renderStepNumber`) — is
|
|
22
|
+
// fully implemented below; only the custom-marker overlay is unimplemented.
|
|
23
|
+
import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, inject, Input, Output, } from '@angular/core';
|
|
24
|
+
import { anchorHostStyle } from '@symbiote-native/angular';
|
|
25
|
+
import { resolveAccessibilityProps } from '@symbiote-native/components';
|
|
26
|
+
import { dlog } from '@symbiote-native/engine';
|
|
27
|
+
import { sanitizeSliderValue, resolveSliderDisabled, resolveSliderAccessibilityState, resolveSliderLowerLimit, resolveSliderUpperLimit, valueFromSliderEvent, shouldRenderStepsIndicator, resolveThumbTintColor, shouldPassNativeThumbImage, isInvalidLimitConfig, computeStepOptions, renderSlider, renderStepsIndicator, SLIDER_DEFAULT_MINIMUM_VALUE, SLIDER_DEFAULT_MAXIMUM_VALUE, SLIDER_DEFAULT_STEP, SLIDER_ON_CHANGE, SLIDER_ON_VALUE_CHANGE, SLIDER_ON_SLIDING_START, SLIDER_ON_SLIDING_COMPLETE, SLIDER_ON_ACCESSIBILITY_ACTION, } from '../../core';
|
|
28
|
+
import * as i0 from "@angular/core";
|
|
29
|
+
function isRecord(value) {
|
|
30
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
31
|
+
}
|
|
32
|
+
// Narrows anchorHostStyle's `unknown` (it reads an opaque engine prop bag) to the shape
|
|
33
|
+
// ISliderProps['style'] actually declares — the same runtime guard the Angular adapter's
|
|
34
|
+
// ActivityIndicator uses for the identical reason: a style value is structurally opaque at the
|
|
35
|
+
// type level, so this only rules out non-objects, never validates individual style keys.
|
|
36
|
+
function asStyle(value) {
|
|
37
|
+
return typeof value === 'object' && value !== null ? value : undefined;
|
|
38
|
+
}
|
|
39
|
+
export class SliderBase {
|
|
40
|
+
value;
|
|
41
|
+
minimumValue;
|
|
42
|
+
maximumValue;
|
|
43
|
+
step;
|
|
44
|
+
lowerLimit;
|
|
45
|
+
upperLimit;
|
|
46
|
+
minimumTrackTintColor;
|
|
47
|
+
maximumTrackTintColor;
|
|
48
|
+
thumbTintColor;
|
|
49
|
+
disabled;
|
|
50
|
+
inverted;
|
|
51
|
+
tapToSeek;
|
|
52
|
+
vertical;
|
|
53
|
+
thumbImage;
|
|
54
|
+
minimumTrackImage;
|
|
55
|
+
maximumTrackImage;
|
|
56
|
+
trackImage;
|
|
57
|
+
thumbSize;
|
|
58
|
+
accessibilityUnits;
|
|
59
|
+
accessibilityIncrements;
|
|
60
|
+
renderStepNumber;
|
|
61
|
+
testID;
|
|
62
|
+
style;
|
|
63
|
+
nativeID;
|
|
64
|
+
accessible;
|
|
65
|
+
accessibilityLabel;
|
|
66
|
+
accessibilityHint;
|
|
67
|
+
accessibilityRole;
|
|
68
|
+
accessibilityState;
|
|
69
|
+
accessibilityValue;
|
|
70
|
+
accessibilityActions;
|
|
71
|
+
accessibilityLabelledBy;
|
|
72
|
+
importantForAccessibility;
|
|
73
|
+
accessibilityLiveRegion;
|
|
74
|
+
screenReaderFocusable;
|
|
75
|
+
accessibilityViewIsModal;
|
|
76
|
+
accessibilityElementsHidden;
|
|
77
|
+
accessibilityIgnoresInvertColors;
|
|
78
|
+
accessibilityLanguage;
|
|
79
|
+
accessibilityRespondsToUserInteraction;
|
|
80
|
+
accessibilityShowsLargeContentViewer;
|
|
81
|
+
accessibilityLargeContentTitle;
|
|
82
|
+
onAccessibilityTap;
|
|
83
|
+
onMagicTap;
|
|
84
|
+
onAccessibilityEscape;
|
|
85
|
+
role;
|
|
86
|
+
ariaLabel;
|
|
87
|
+
ariaLabelledBy;
|
|
88
|
+
ariaLive;
|
|
89
|
+
ariaHidden;
|
|
90
|
+
ariaBusy;
|
|
91
|
+
ariaChecked;
|
|
92
|
+
ariaDisabled;
|
|
93
|
+
ariaExpanded;
|
|
94
|
+
ariaSelected;
|
|
95
|
+
ariaModal;
|
|
96
|
+
ariaValueMax;
|
|
97
|
+
ariaValueMin;
|
|
98
|
+
ariaValueNow;
|
|
99
|
+
ariaValueText;
|
|
100
|
+
// The four native callbacks, as real EventEmitters — no v-model-style two-way twin (that was
|
|
101
|
+
// Vue-specific v-model sugar; Angular has no equivalent concept here).
|
|
102
|
+
valueChange = new EventEmitter();
|
|
103
|
+
slidingStart = new EventEmitter();
|
|
104
|
+
slidingComplete = new EventEmitter();
|
|
105
|
+
accessibilityAction = new EventEmitter();
|
|
106
|
+
changeDetector = inject(ChangeDetectorRef);
|
|
107
|
+
// This component's OWN host — the non-painting anchor `class="..."` at the use site resolves
|
|
108
|
+
// onto (see anchorHostStyle's doc comment, @symbiote-native/angular) — NOT the descriptor-outlet-
|
|
109
|
+
// rendered wrapper the `descriptor` getter below builds. Merged FIRST so an explicit `style`
|
|
110
|
+
// @Input still wins (flattenStyle's later-wins collapse), mirroring every other composed
|
|
111
|
+
// component's anchor merge.
|
|
112
|
+
elementRef = inject(ElementRef);
|
|
113
|
+
// The value native last reported, kept only to mark the active step in the indicator. Not the
|
|
114
|
+
// controlled value — the slider is uncontrolled during a drag (no snap-back), mirroring the
|
|
115
|
+
// Vue lifecycle's `reportedValue` ref.
|
|
116
|
+
reportedValue;
|
|
117
|
+
// The measured wrapper width the step indicator lays out against; 0 until the first layout.
|
|
118
|
+
width = 0;
|
|
119
|
+
ngOnChanges() {
|
|
120
|
+
// No fold needed here: `descriptor` is a getter re-evaluated on every OnPush check the
|
|
121
|
+
// template's `[node]="descriptor"` binding triggers, so an @Input change already recomputes
|
|
122
|
+
// the render on its own. OnChanges exists so this class satisfies the same lifecycle contract
|
|
123
|
+
// as the rest of the input-driven components in this adapter.
|
|
124
|
+
}
|
|
125
|
+
handleValueChange = (event) => {
|
|
126
|
+
const value = valueFromSliderEvent(event);
|
|
127
|
+
if (value === undefined)
|
|
128
|
+
return;
|
|
129
|
+
this.reportedValue = value;
|
|
130
|
+
this.valueChange.emit(value);
|
|
131
|
+
};
|
|
132
|
+
handleSlidingStart = (event) => {
|
|
133
|
+
const value = valueFromSliderEvent(event);
|
|
134
|
+
if (value !== undefined)
|
|
135
|
+
this.slidingStart.emit(value);
|
|
136
|
+
};
|
|
137
|
+
handleSlidingComplete = (event) => {
|
|
138
|
+
const value = valueFromSliderEvent(event);
|
|
139
|
+
if (value !== undefined)
|
|
140
|
+
this.slidingComplete.emit(value);
|
|
141
|
+
};
|
|
142
|
+
handleAccessibilityAction = (event) => {
|
|
143
|
+
this.accessibilityAction.emit(event);
|
|
144
|
+
};
|
|
145
|
+
// Native onLayout fires through the engine's event dispatch (Renderer2.listen), OUTSIDE
|
|
146
|
+
// Angular's zoneless change-detection notification — the same async-commit-timing shape the
|
|
147
|
+
// angular-adapter skill (§5) documents and the sticky-header component already works around
|
|
148
|
+
// (`ChangeDetectorRef.markForCheck()`). Mutating `width` alone would never repaint the step
|
|
149
|
+
// indicator, since nothing would tell the OnPush view it is dirty.
|
|
150
|
+
handleLayout = (event) => {
|
|
151
|
+
const layout = event.nativeEvent.layout;
|
|
152
|
+
if (isRecord(layout) && typeof layout.width === 'number') {
|
|
153
|
+
this.width = layout.width;
|
|
154
|
+
this.changeDetector.markForCheck();
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
inputProps() {
|
|
158
|
+
return {
|
|
159
|
+
value: this.value,
|
|
160
|
+
minimumValue: this.minimumValue,
|
|
161
|
+
maximumValue: this.maximumValue,
|
|
162
|
+
step: this.step,
|
|
163
|
+
lowerLimit: this.lowerLimit,
|
|
164
|
+
upperLimit: this.upperLimit,
|
|
165
|
+
minimumTrackTintColor: this.minimumTrackTintColor,
|
|
166
|
+
maximumTrackTintColor: this.maximumTrackTintColor,
|
|
167
|
+
thumbTintColor: this.thumbTintColor,
|
|
168
|
+
disabled: this.disabled,
|
|
169
|
+
inverted: this.inverted,
|
|
170
|
+
tapToSeek: this.tapToSeek,
|
|
171
|
+
vertical: this.vertical,
|
|
172
|
+
thumbImage: this.thumbImage,
|
|
173
|
+
minimumTrackImage: this.minimumTrackImage,
|
|
174
|
+
maximumTrackImage: this.maximumTrackImage,
|
|
175
|
+
trackImage: this.trackImage,
|
|
176
|
+
thumbSize: this.thumbSize,
|
|
177
|
+
accessibilityUnits: this.accessibilityUnits,
|
|
178
|
+
accessibilityIncrements: this.accessibilityIncrements,
|
|
179
|
+
renderStepNumber: this.renderStepNumber,
|
|
180
|
+
testID: this.testID,
|
|
181
|
+
style: [asStyle(anchorHostStyle(this.elementRef)), this.style],
|
|
182
|
+
nativeID: this.nativeID,
|
|
183
|
+
accessible: this.accessible,
|
|
184
|
+
accessibilityLabel: this.accessibilityLabel,
|
|
185
|
+
accessibilityHint: this.accessibilityHint,
|
|
186
|
+
accessibilityRole: this.accessibilityRole,
|
|
187
|
+
accessibilityState: this.accessibilityState,
|
|
188
|
+
accessibilityValue: this.accessibilityValue,
|
|
189
|
+
accessibilityActions: this.accessibilityActions,
|
|
190
|
+
accessibilityLabelledBy: this.accessibilityLabelledBy,
|
|
191
|
+
importantForAccessibility: this.importantForAccessibility,
|
|
192
|
+
accessibilityLiveRegion: this.accessibilityLiveRegion,
|
|
193
|
+
screenReaderFocusable: this.screenReaderFocusable,
|
|
194
|
+
accessibilityViewIsModal: this.accessibilityViewIsModal,
|
|
195
|
+
accessibilityElementsHidden: this.accessibilityElementsHidden,
|
|
196
|
+
accessibilityIgnoresInvertColors: this.accessibilityIgnoresInvertColors,
|
|
197
|
+
accessibilityLanguage: this.accessibilityLanguage,
|
|
198
|
+
accessibilityRespondsToUserInteraction: this.accessibilityRespondsToUserInteraction,
|
|
199
|
+
accessibilityShowsLargeContentViewer: this.accessibilityShowsLargeContentViewer,
|
|
200
|
+
accessibilityLargeContentTitle: this.accessibilityLargeContentTitle,
|
|
201
|
+
onAccessibilityTap: this.onAccessibilityTap,
|
|
202
|
+
onMagicTap: this.onMagicTap,
|
|
203
|
+
onAccessibilityEscape: this.onAccessibilityEscape,
|
|
204
|
+
role: this.role,
|
|
205
|
+
'aria-label': this.ariaLabel,
|
|
206
|
+
'aria-labelledby': this.ariaLabelledBy,
|
|
207
|
+
'aria-live': this.ariaLive,
|
|
208
|
+
'aria-hidden': this.ariaHidden,
|
|
209
|
+
'aria-busy': this.ariaBusy,
|
|
210
|
+
'aria-checked': this.ariaChecked,
|
|
211
|
+
'aria-disabled': this.ariaDisabled,
|
|
212
|
+
'aria-expanded': this.ariaExpanded,
|
|
213
|
+
'aria-selected': this.ariaSelected,
|
|
214
|
+
'aria-modal': this.ariaModal,
|
|
215
|
+
'aria-valuemax': this.ariaValueMax,
|
|
216
|
+
'aria-valuemin': this.ariaValueMin,
|
|
217
|
+
'aria-valuenow': this.ariaValueNow,
|
|
218
|
+
'aria-valuetext': this.ariaValueText,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
get descriptor() {
|
|
222
|
+
const props = resolveAccessibilityProps(this.inputProps());
|
|
223
|
+
const { value, minimumValue: minimumValueInput, maximumValue: maximumValueInput, step: stepInput, lowerLimit: lowerLimitInput, upperLimit: upperLimitInput, disabled, inverted: invertedInput, thumbTintColor, thumbImage, accessibilityState, renderStepNumber, style, ...passthrough } = props;
|
|
224
|
+
const minimumValue = minimumValueInput ?? SLIDER_DEFAULT_MINIMUM_VALUE;
|
|
225
|
+
const maximumValue = maximumValueInput ?? SLIDER_DEFAULT_MAXIMUM_VALUE;
|
|
226
|
+
const step = stepInput ?? SLIDER_DEFAULT_STEP;
|
|
227
|
+
const lowerLimit = resolveSliderLowerLimit(lowerLimitInput);
|
|
228
|
+
const upperLimit = resolveSliderUpperLimit(upperLimitInput);
|
|
229
|
+
if (isInvalidLimitConfig(lowerLimit, upperLimit)) {
|
|
230
|
+
dlog('Slider: lowerLimit must be smaller than upperLimit');
|
|
231
|
+
}
|
|
232
|
+
const inverted = invertedInput ?? false;
|
|
233
|
+
const hasThumbImage = thumbImage !== undefined;
|
|
234
|
+
// No custom-StepMarker slot on Angular yet (see the module doc comment above) — showSteps
|
|
235
|
+
// only ever considers renderStepNumber.
|
|
236
|
+
const showSteps = shouldRenderStepsIndicator(false, renderStepNumber);
|
|
237
|
+
const nativeThumbImage = shouldPassNativeThumbImage(false, hasThumbImage)
|
|
238
|
+
? thumbImage
|
|
239
|
+
: undefined;
|
|
240
|
+
const view = {
|
|
241
|
+
value: sanitizeSliderValue(value),
|
|
242
|
+
minimumValue,
|
|
243
|
+
maximumValue,
|
|
244
|
+
step,
|
|
245
|
+
lowerLimit,
|
|
246
|
+
upperLimit,
|
|
247
|
+
disabled: resolveSliderDisabled(disabled, accessibilityState),
|
|
248
|
+
inverted,
|
|
249
|
+
thumbTintColor: resolveThumbTintColor(thumbTintColor, false, hasThumbImage),
|
|
250
|
+
thumbImage: nativeThumbImage,
|
|
251
|
+
accessibilityState: resolveSliderAccessibilityState(disabled, accessibilityState),
|
|
252
|
+
width: this.width,
|
|
253
|
+
style,
|
|
254
|
+
passthrough: {
|
|
255
|
+
...passthrough,
|
|
256
|
+
[SLIDER_ON_CHANGE]: this.handleValueChange,
|
|
257
|
+
[SLIDER_ON_VALUE_CHANGE]: this.handleValueChange,
|
|
258
|
+
[SLIDER_ON_SLIDING_START]: this.handleSlidingStart,
|
|
259
|
+
[SLIDER_ON_SLIDING_COMPLETE]: this.handleSlidingComplete,
|
|
260
|
+
[SLIDER_ON_ACCESSIBILITY_ACTION]: this.handleAccessibilityAction,
|
|
261
|
+
},
|
|
262
|
+
};
|
|
263
|
+
if (!showSteps) {
|
|
264
|
+
return renderSlider(view, this.platform, { onLayout: this.handleLayout });
|
|
265
|
+
}
|
|
266
|
+
const options = computeStepOptions(minimumValue, maximumValue, step, this.platform.stepResolution);
|
|
267
|
+
const currentValue = this.reportedValue ?? view.value ?? minimumValue;
|
|
268
|
+
const steps = renderStepsIndicator({
|
|
269
|
+
options,
|
|
270
|
+
currentValue,
|
|
271
|
+
width: this.width,
|
|
272
|
+
renderStepNumber: renderStepNumber === true,
|
|
273
|
+
thumbImage,
|
|
274
|
+
inverted,
|
|
275
|
+
platform: this.platform,
|
|
276
|
+
});
|
|
277
|
+
return renderSlider(view, this.platform, { steps, onLayout: this.handleLayout });
|
|
278
|
+
}
|
|
279
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: SliderBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
280
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.4", type: SliderBase, isStandalone: true, inputs: { value: "value", minimumValue: "minimumValue", maximumValue: "maximumValue", step: "step", lowerLimit: "lowerLimit", upperLimit: "upperLimit", minimumTrackTintColor: "minimumTrackTintColor", maximumTrackTintColor: "maximumTrackTintColor", thumbTintColor: "thumbTintColor", disabled: "disabled", inverted: "inverted", tapToSeek: "tapToSeek", vertical: "vertical", thumbImage: "thumbImage", minimumTrackImage: "minimumTrackImage", maximumTrackImage: "maximumTrackImage", trackImage: "trackImage", thumbSize: "thumbSize", accessibilityUnits: "accessibilityUnits", accessibilityIncrements: "accessibilityIncrements", renderStepNumber: "renderStepNumber", testID: "testID", style: "style", nativeID: "nativeID", accessible: "accessible", accessibilityLabel: "accessibilityLabel", accessibilityHint: "accessibilityHint", accessibilityRole: "accessibilityRole", accessibilityState: "accessibilityState", accessibilityValue: "accessibilityValue", accessibilityActions: "accessibilityActions", accessibilityLabelledBy: "accessibilityLabelledBy", importantForAccessibility: "importantForAccessibility", accessibilityLiveRegion: "accessibilityLiveRegion", screenReaderFocusable: "screenReaderFocusable", accessibilityViewIsModal: "accessibilityViewIsModal", accessibilityElementsHidden: "accessibilityElementsHidden", accessibilityIgnoresInvertColors: "accessibilityIgnoresInvertColors", accessibilityLanguage: "accessibilityLanguage", accessibilityRespondsToUserInteraction: "accessibilityRespondsToUserInteraction", accessibilityShowsLargeContentViewer: "accessibilityShowsLargeContentViewer", accessibilityLargeContentTitle: "accessibilityLargeContentTitle", onAccessibilityTap: "onAccessibilityTap", onMagicTap: "onMagicTap", onAccessibilityEscape: "onAccessibilityEscape", role: "role", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledBy: ["aria-labelledby", "ariaLabelledBy"], ariaLive: ["aria-live", "ariaLive"], ariaHidden: ["aria-hidden", "ariaHidden"], ariaBusy: ["aria-busy", "ariaBusy"], ariaChecked: ["aria-checked", "ariaChecked"], ariaDisabled: ["aria-disabled", "ariaDisabled"], ariaExpanded: ["aria-expanded", "ariaExpanded"], ariaSelected: ["aria-selected", "ariaSelected"], ariaModal: ["aria-modal", "ariaModal"], ariaValueMax: ["aria-valuemax", "ariaValueMax"], ariaValueMin: ["aria-valuemin", "ariaValueMin"], ariaValueNow: ["aria-valuenow", "ariaValueNow"], ariaValueText: ["aria-valuetext", "ariaValueText"] }, outputs: { valueChange: "valueChange", slidingStart: "slidingStart", slidingComplete: "slidingComplete", accessibilityAction: "accessibilityAction" }, usesOnChanges: true, ngImport: i0 });
|
|
281
|
+
}
|
|
282
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: SliderBase, decorators: [{
|
|
283
|
+
type: Directive
|
|
284
|
+
}], propDecorators: { value: [{
|
|
285
|
+
type: Input
|
|
286
|
+
}], minimumValue: [{
|
|
287
|
+
type: Input
|
|
288
|
+
}], maximumValue: [{
|
|
289
|
+
type: Input
|
|
290
|
+
}], step: [{
|
|
291
|
+
type: Input
|
|
292
|
+
}], lowerLimit: [{
|
|
293
|
+
type: Input
|
|
294
|
+
}], upperLimit: [{
|
|
295
|
+
type: Input
|
|
296
|
+
}], minimumTrackTintColor: [{
|
|
297
|
+
type: Input
|
|
298
|
+
}], maximumTrackTintColor: [{
|
|
299
|
+
type: Input
|
|
300
|
+
}], thumbTintColor: [{
|
|
301
|
+
type: Input
|
|
302
|
+
}], disabled: [{
|
|
303
|
+
type: Input
|
|
304
|
+
}], inverted: [{
|
|
305
|
+
type: Input
|
|
306
|
+
}], tapToSeek: [{
|
|
307
|
+
type: Input
|
|
308
|
+
}], vertical: [{
|
|
309
|
+
type: Input
|
|
310
|
+
}], thumbImage: [{
|
|
311
|
+
type: Input
|
|
312
|
+
}], minimumTrackImage: [{
|
|
313
|
+
type: Input
|
|
314
|
+
}], maximumTrackImage: [{
|
|
315
|
+
type: Input
|
|
316
|
+
}], trackImage: [{
|
|
317
|
+
type: Input
|
|
318
|
+
}], thumbSize: [{
|
|
319
|
+
type: Input
|
|
320
|
+
}], accessibilityUnits: [{
|
|
321
|
+
type: Input
|
|
322
|
+
}], accessibilityIncrements: [{
|
|
323
|
+
type: Input
|
|
324
|
+
}], renderStepNumber: [{
|
|
325
|
+
type: Input
|
|
326
|
+
}], testID: [{
|
|
327
|
+
type: Input
|
|
328
|
+
}], style: [{
|
|
329
|
+
type: Input
|
|
330
|
+
}], nativeID: [{
|
|
331
|
+
type: Input
|
|
332
|
+
}], accessible: [{
|
|
333
|
+
type: Input
|
|
334
|
+
}], accessibilityLabel: [{
|
|
335
|
+
type: Input
|
|
336
|
+
}], accessibilityHint: [{
|
|
337
|
+
type: Input
|
|
338
|
+
}], accessibilityRole: [{
|
|
339
|
+
type: Input
|
|
340
|
+
}], accessibilityState: [{
|
|
341
|
+
type: Input
|
|
342
|
+
}], accessibilityValue: [{
|
|
343
|
+
type: Input
|
|
344
|
+
}], accessibilityActions: [{
|
|
345
|
+
type: Input
|
|
346
|
+
}], accessibilityLabelledBy: [{
|
|
347
|
+
type: Input
|
|
348
|
+
}], importantForAccessibility: [{
|
|
349
|
+
type: Input
|
|
350
|
+
}], accessibilityLiveRegion: [{
|
|
351
|
+
type: Input
|
|
352
|
+
}], screenReaderFocusable: [{
|
|
353
|
+
type: Input
|
|
354
|
+
}], accessibilityViewIsModal: [{
|
|
355
|
+
type: Input
|
|
356
|
+
}], accessibilityElementsHidden: [{
|
|
357
|
+
type: Input
|
|
358
|
+
}], accessibilityIgnoresInvertColors: [{
|
|
359
|
+
type: Input
|
|
360
|
+
}], accessibilityLanguage: [{
|
|
361
|
+
type: Input
|
|
362
|
+
}], accessibilityRespondsToUserInteraction: [{
|
|
363
|
+
type: Input
|
|
364
|
+
}], accessibilityShowsLargeContentViewer: [{
|
|
365
|
+
type: Input
|
|
366
|
+
}], accessibilityLargeContentTitle: [{
|
|
367
|
+
type: Input
|
|
368
|
+
}], onAccessibilityTap: [{
|
|
369
|
+
type: Input
|
|
370
|
+
}], onMagicTap: [{
|
|
371
|
+
type: Input
|
|
372
|
+
}], onAccessibilityEscape: [{
|
|
373
|
+
type: Input
|
|
374
|
+
}], role: [{
|
|
375
|
+
type: Input
|
|
376
|
+
}], ariaLabel: [{
|
|
377
|
+
type: Input,
|
|
378
|
+
args: ['aria-label']
|
|
379
|
+
}], ariaLabelledBy: [{
|
|
380
|
+
type: Input,
|
|
381
|
+
args: ['aria-labelledby']
|
|
382
|
+
}], ariaLive: [{
|
|
383
|
+
type: Input,
|
|
384
|
+
args: ['aria-live']
|
|
385
|
+
}], ariaHidden: [{
|
|
386
|
+
type: Input,
|
|
387
|
+
args: ['aria-hidden']
|
|
388
|
+
}], ariaBusy: [{
|
|
389
|
+
type: Input,
|
|
390
|
+
args: ['aria-busy']
|
|
391
|
+
}], ariaChecked: [{
|
|
392
|
+
type: Input,
|
|
393
|
+
args: ['aria-checked']
|
|
394
|
+
}], ariaDisabled: [{
|
|
395
|
+
type: Input,
|
|
396
|
+
args: ['aria-disabled']
|
|
397
|
+
}], ariaExpanded: [{
|
|
398
|
+
type: Input,
|
|
399
|
+
args: ['aria-expanded']
|
|
400
|
+
}], ariaSelected: [{
|
|
401
|
+
type: Input,
|
|
402
|
+
args: ['aria-selected']
|
|
403
|
+
}], ariaModal: [{
|
|
404
|
+
type: Input,
|
|
405
|
+
args: ['aria-modal']
|
|
406
|
+
}], ariaValueMax: [{
|
|
407
|
+
type: Input,
|
|
408
|
+
args: ['aria-valuemax']
|
|
409
|
+
}], ariaValueMin: [{
|
|
410
|
+
type: Input,
|
|
411
|
+
args: ['aria-valuemin']
|
|
412
|
+
}], ariaValueNow: [{
|
|
413
|
+
type: Input,
|
|
414
|
+
args: ['aria-valuenow']
|
|
415
|
+
}], ariaValueText: [{
|
|
416
|
+
type: Input,
|
|
417
|
+
args: ['aria-valuetext']
|
|
418
|
+
}], valueChange: [{
|
|
419
|
+
type: Output
|
|
420
|
+
}], slidingStart: [{
|
|
421
|
+
type: Output
|
|
422
|
+
}], slidingComplete: [{
|
|
423
|
+
type: Output
|
|
424
|
+
}], accessibilityAction: [{
|
|
425
|
+
type: Output
|
|
426
|
+
}] } });
|
|
427
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/angular/slider/shared.ts"],"names":[],"mappings":"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"}
|