@symbiote-native/angular 0.6.1 → 0.7.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/README.md +1 -1
- package/bin/symbiote-angular-dev.cjs +20 -19
- package/build/angular/anchor-host-registry.js +2 -2
- package/build/angular/anchor-host-registry.js.map +1 -1
- package/build/angular/components/activity-indicator/index.android.d.ts +2 -1
- package/build/angular/components/activity-indicator/index.android.js +6 -3
- package/build/angular/components/activity-indicator/index.android.js.map +1 -1
- package/build/angular/components/activity-indicator/index.ios.d.ts +2 -1
- package/build/angular/components/activity-indicator/index.ios.js +6 -3
- package/build/angular/components/activity-indicator/index.ios.js.map +1 -1
- package/build/angular/components/activity-indicator/shared.js +3 -3
- package/build/angular/components/button.d.ts +4 -2
- package/build/angular/components/button.js +28 -17
- package/build/angular/components/button.js.map +1 -1
- package/build/angular/components/flat-list/index.d.ts +5 -3
- package/build/angular/components/flat-list/index.js +35 -38
- package/build/angular/components/flat-list/index.js.map +1 -1
- package/build/angular/components/image/index.android.d.ts +8 -3
- package/build/angular/components/image/index.android.js +39 -9
- package/build/angular/components/image/index.android.js.map +1 -1
- package/build/angular/components/image/index.ios.d.ts +8 -3
- package/build/angular/components/image/index.ios.js +39 -9
- package/build/angular/components/image/index.ios.js.map +1 -1
- package/build/angular/components/image/shared.d.ts +4 -1
- package/build/angular/components/image/shared.js +33 -2
- package/build/angular/components/image/shared.js.map +1 -1
- package/build/angular/components/image-background.d.ts +2 -1
- package/build/angular/components/image-background.js +6 -4
- package/build/angular/components/image-background.js.map +1 -1
- package/build/angular/components/input-accessory-view/index.d.ts +9 -4
- package/build/angular/components/input-accessory-view/index.js +43 -9
- package/build/angular/components/input-accessory-view/index.js.map +1 -1
- package/build/angular/components/keyboard-avoiding-view/index.d.ts +2 -1
- package/build/angular/components/keyboard-avoiding-view/index.js +6 -4
- package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
- package/build/angular/components/modal/index.d.ts +11 -8
- package/build/angular/components/modal/index.js +45 -28
- package/build/angular/components/modal/index.js.map +1 -1
- package/build/angular/components/pressable/index.d.ts +11 -5
- package/build/angular/components/pressable/index.js +61 -12
- package/build/angular/components/pressable/index.js.map +1 -1
- package/build/angular/components/refresh-control/index.d.ts +8 -4
- package/build/angular/components/refresh-control/index.js +52 -16
- package/build/angular/components/refresh-control/index.js.map +1 -1
- package/build/angular/components/safe-area-view/index.d.ts +9 -4
- package/build/angular/components/safe-area-view/index.js +46 -9
- package/build/angular/components/safe-area-view/index.js.map +1 -1
- package/build/angular/components/scroll-view/index.android.d.ts +2 -3
- package/build/angular/components/scroll-view/index.android.js +49 -52
- package/build/angular/components/scroll-view/index.android.js.map +1 -1
- package/build/angular/components/scroll-view/index.ios.d.ts +2 -3
- package/build/angular/components/scroll-view/index.ios.js +15 -17
- package/build/angular/components/scroll-view/index.ios.js.map +1 -1
- package/build/angular/components/scroll-view/projection.d.ts +3 -0
- package/build/angular/components/scroll-view/projection.js +68 -7
- package/build/angular/components/scroll-view/projection.js.map +1 -1
- package/build/angular/components/scroll-view/shared.d.ts +14 -5
- package/build/angular/components/scroll-view/shared.js +198 -69
- package/build/angular/components/scroll-view/shared.js.map +1 -1
- package/build/angular/components/scroll-view/sticky-header.js +14 -19
- package/build/angular/components/scroll-view/sticky-header.js.map +1 -1
- package/build/angular/components/section-list/index.d.ts +2 -1
- package/build/angular/components/section-list/index.js +31 -39
- package/build/angular/components/section-list/index.js.map +1 -1
- package/build/angular/components/switch/index.android.d.ts +7 -3
- package/build/angular/components/switch/index.android.js +38 -10
- package/build/angular/components/switch/index.android.js.map +1 -1
- package/build/angular/components/switch/index.ios.d.ts +7 -3
- package/build/angular/components/switch/index.ios.js +38 -10
- package/build/angular/components/switch/index.ios.js.map +1 -1
- package/build/angular/components/switch/shared.d.ts +12 -3
- package/build/angular/components/switch/shared.js +66 -5
- package/build/angular/components/switch/shared.js.map +1 -1
- package/build/angular/components/text-input.d.ts +10 -2
- package/build/angular/components/text-input.js +46 -6
- package/build/angular/components/text-input.js.map +1 -1
- package/build/angular/components/touchable/index.d.ts +17 -8
- package/build/angular/components/touchable/index.js +78 -19
- package/build/angular/components/touchable/index.js.map +1 -1
- package/build/angular/components/touchable-native-feedback/index.d.ts +6 -3
- package/build/angular/components/touchable-native-feedback/index.js +61 -25
- package/build/angular/components/touchable-native-feedback/index.js.map +1 -1
- package/build/angular/components/virtualized-list/directives.js +18 -18
- package/build/angular/components/virtualized-list/index.d.ts +12 -4
- package/build/angular/components/virtualized-list/index.js +163 -68
- package/build/angular/components/virtualized-list/index.js.map +1 -1
- package/build/angular/components/virtualized-section-list/directives.js +12 -12
- package/build/angular/components/virtualized-section-list/index.d.ts +2 -1
- package/build/angular/components/virtualized-section-list/index.js +6 -4
- package/build/angular/components/virtualized-section-list/index.js.map +1 -1
- package/build/angular/components.d.ts +1 -1
- package/build/angular/components.js +5 -0
- package/build/angular/components.js.map +1 -1
- package/build/angular/create-portal/index.js +29 -35
- package/build/angular/create-portal/index.js.map +1 -1
- package/build/angular/create-tunnel/index.js +19 -22
- package/build/angular/create-tunnel/index.js.map +1 -1
- package/build/angular/descriptor-to-angular/index.js +3 -3
- package/build/angular/index.d.ts +4 -2
- package/build/angular/index.js +2 -2
- package/build/angular/index.js.map +1 -1
- package/build/angular/modules/animated/animated-leaf-binder.d.ts +1 -7
- package/build/angular/modules/animated/animated-leaf-binder.js +22 -72
- package/build/angular/modules/animated/animated-leaf-binder.js.map +1 -1
- package/build/angular/modules/animated/create-animated-component.d.ts +11 -6
- package/build/angular/modules/animated/create-animated-component.js +83 -50
- package/build/angular/modules/animated/create-animated-component.js.map +1 -1
- package/build/angular/modules/app-registry/index.js.map +1 -1
- package/build/angular/modules/status-bar/index.js +3 -3
- package/build/angular/primitives/index.d.ts +1 -1
- package/build/angular/primitives/index.js +46 -46
- package/build/angular/primitives/index.js.map +1 -1
- package/build/angular/primitives/shared.d.ts +39 -1
- package/build/angular/primitives/shared.js +110 -9
- package/build/angular/primitives/shared.js.map +1 -1
- package/build/angular/render/index.js +23 -35
- package/build/angular/render/index.js.map +1 -1
- package/build/angular/services/color-scheme.service.js +3 -3
- package/build/angular/services/window-dimensions.service.js +3 -3
- package/package.json +13 -8
- package/src/anchor-host-registry.ts +2 -2
- package/src/components/activity-indicator/index.android.ts +2 -0
- package/src/components/activity-indicator/index.ios.ts +2 -0
- package/src/components/button.ts +28 -14
- package/src/components/flat-list/index.ts +34 -36
- package/src/components/image/index.android.ts +50 -6
- package/src/components/image/index.ios.ts +50 -6
- package/src/components/image/shared.ts +34 -2
- package/src/components/image-background.ts +2 -1
- package/src/components/input-accessory-view/index.ts +42 -4
- package/src/components/keyboard-avoiding-view/index.ts +7 -1
- package/src/components/modal/index.ts +51 -26
- package/src/components/pressable/index.ts +67 -8
- package/src/components/refresh-control/index.ts +54 -12
- package/src/components/safe-area-view/index.ts +50 -5
- package/src/components/scroll-view/index.android.ts +34 -41
- package/src/components/scroll-view/index.ios.ts +10 -21
- package/src/components/scroll-view/projection.ts +79 -7
- package/src/components/scroll-view/shared.ts +223 -68
- package/src/components/scroll-view/sticky-header.ts +11 -16
- package/src/components/section-list/index.ts +27 -36
- package/src/components/switch/index.android.ts +48 -7
- package/src/components/switch/index.ios.ts +48 -7
- package/src/components/switch/shared.ts +79 -3
- package/src/components/text-input.ts +52 -2
- package/src/components/touchable/index.ts +76 -16
- package/src/components/touchable-native-feedback/index.ts +62 -21
- package/src/components/virtualized-list/index.ts +137 -44
- package/src/components/virtualized-section-list/index.ts +2 -1
- package/src/components.ts +5 -0
- package/src/create-portal/index.ts +23 -29
- package/src/create-tunnel/index.ts +13 -16
- package/src/index.ts +30 -1
- package/src/modules/animated/animated-leaf-binder.ts +28 -77
- package/src/modules/animated/create-animated-component.ts +75 -36
- package/src/modules/app-registry/index.ts +6 -8
- package/src/primitives/index.ts +1 -0
- package/src/primitives/shared.ts +102 -3
- package/src/render/index.ts +23 -35
- package/build/angular/modules/animated/animated-leaf-binder/index.d.ts +0 -14
- package/build/angular/modules/animated/animated-leaf-binder/index.js +0 -91
- package/build/angular/modules/animated/animated-leaf-binder/index.js.map +0 -1
- package/src/__tests__/responder-change-detection.test.ts +0 -102
- package/src/__tests__/responder-nested-cd.test.ts +0 -113
- package/src/angular-gaps.test.ts +0 -142
- package/src/angular-imports.test.ts +0 -100
- package/src/components/activity-indicator/activity-indicator-class-style.test.ts +0 -44
- package/src/components/activity-indicator/activity-indicator.test.ts +0 -131
- package/src/components/flat-list/column-wrapper-style-class.test.ts +0 -116
- package/src/components/flat-list/flat-list-array-style.test.ts +0 -131
- package/src/components/flat-list/flat-list-class-style.test.ts +0 -74
- package/src/components/flat-list/flat-list-scroll-containment.test.ts +0 -107
- package/src/components/flat-list/flat-list.test.ts +0 -99
- package/src/components/image/image-class-style.test.ts +0 -46
- package/src/components/image-background-class-style.test.ts +0 -48
- package/src/components/image-background-style-class.test.ts +0 -79
- package/src/components/input-accessory-view/input-accessory-view.test.ts +0 -43
- package/src/components/keyboard-avoiding-view/keyboard-avoiding-view.test.ts +0 -54
- package/src/components/modal/modal.test.ts +0 -43
- package/src/components/pressable/pressable.test.ts +0 -85
- package/src/components/refresh-control/refresh-control.test.ts +0 -41
- package/src/components/safe-area-view/safe-area-view.test.ts +0 -43
- package/src/components/scroll-view/android-scroll-view-axis-projection.test.ts +0 -123
- package/src/components/scroll-view/content-container-style-class.test.ts +0 -75
- package/src/components/scroll-view/scroll-view-class-style.test.ts +0 -134
- package/src/components/scroll-view/scroll-view-projection.test.ts +0 -194
- package/src/components/switch/android-switch-class.test.ts +0 -42
- package/src/components/switch/switch.test.ts +0 -92
- package/src/components/text-input-class-style.test.ts +0 -54
- package/src/components/touchable/touchable.test.ts +0 -102
- package/src/components/touchable-native-feedback/touchable-native-feedback.test.ts +0 -49
- package/src/components/virtualized-list/virtualized-list-class-style.test.ts +0 -76
- package/src/components/virtualized-section-list/virtualized-section-list-class-style.test.ts +0 -60
- package/src/create-portal/create-portal.test.ts +0 -90
- package/src/create-tunnel/create-tunnel.test.ts +0 -120
- package/src/descriptor-to-angular/descriptor-outlet.test.ts +0 -94
- package/src/host-instance/host-instance.test.ts +0 -49
- package/src/modules/animated/animated-leaf-binder/animated-leaf-binder.test.ts +0 -116
- package/src/modules/animated/animated-leaf-binder/index.ts +0 -101
- package/src/modules/animated/animated-leaf-binder.test.ts +0 -116
- package/src/modules/animated/animated-scroll-view.test.ts +0 -102
- package/src/modules/app-registry/app-registry.test.ts +0 -106
- package/src/modules/status-bar/status-bar.test.ts +0 -50
- package/src/render/render.test.ts +0 -147
- package/src/renderer/renderer.test.ts +0 -203
- package/src/services/services.test.ts +0 -163
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, type DoCheck, type OnChanges } from '@angular/core';
|
|
2
2
|
import { type IAccessibilityProps, type IAccessibilityStateValue, type IAriaProps, type IPressableAndroidRippleConfig, type IPressHandler, type IPressState, type IRectOffset } from '@symbiote-native/components';
|
|
3
3
|
import { type ISymbioteEvent, type IStyleProp, type IViewStyle } from '@symbiote-native/engine';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../primitives/shared";
|
|
5
6
|
export type { IPressState, IPressableAndroidRippleConfig } from '@symbiote-native/components';
|
|
6
7
|
export interface IAngularPressableProps extends IAccessibilityProps, IAriaProps {
|
|
7
8
|
onPress?: IPressHandler;
|
|
@@ -32,7 +33,7 @@ export interface IAngularPressableProps extends IAccessibilityProps, IAriaProps
|
|
|
32
33
|
style?: IStyleProp<IViewStyle> | ((state: IPressState) => IStyleProp<IViewStyle>);
|
|
33
34
|
}
|
|
34
35
|
export type IAngularPressableInputs = Omit<IAngularPressableProps, 'onPress' | 'onPressIn' | 'onPressOut' | 'onPressMove' | 'onLongPress' | 'onHoverIn' | 'onHoverOut' | 'onAccessibilityAction' | 'onAccessibilityTap' | 'onMagicTap' | 'onAccessibilityEscape'>;
|
|
35
|
-
export declare class Pressable implements IAngularPressableInputs {
|
|
36
|
+
export declare class Pressable implements IAngularPressableInputs, OnChanges, DoCheck {
|
|
36
37
|
readonly press: EventEmitter<ISymbioteEvent>;
|
|
37
38
|
readonly pressIn: EventEmitter<ISymbioteEvent>;
|
|
38
39
|
readonly pressOut: EventEmitter<ISymbioteEvent>;
|
|
@@ -98,15 +99,20 @@ export declare class Pressable implements IAngularPressableInputs {
|
|
|
98
99
|
id?: string;
|
|
99
100
|
role?: IAngularPressableProps['role'];
|
|
100
101
|
private hostElement?;
|
|
101
|
-
|
|
102
|
+
private readonly pressedState;
|
|
103
|
+
get pressed(): boolean;
|
|
102
104
|
private readonly runtime;
|
|
103
105
|
private readonly host;
|
|
104
106
|
private readonly changeDetector;
|
|
105
107
|
private readonly elementRef;
|
|
108
|
+
private readonly inputsRevision;
|
|
109
|
+
private readonly anchorStyle;
|
|
110
|
+
ngDoCheck(): void;
|
|
111
|
+
ngOnChanges(): void;
|
|
106
112
|
get resolvedStyle(): IStyleProp<IViewStyle> | undefined;
|
|
107
113
|
get foldedAccessibility(): Partial<IAngularPressableProps>;
|
|
108
114
|
get resolvedRippleProps(): Record<string, unknown> | undefined;
|
|
109
|
-
|
|
115
|
+
readonly hostProps: import("@angular/core").Signal<Record<string, unknown>>;
|
|
110
116
|
handlePressIn(event: unknown): void;
|
|
111
117
|
handlePressOut(event: unknown): void;
|
|
112
118
|
handlePress(event: unknown): void;
|
|
@@ -119,5 +125,5 @@ export declare class Pressable implements IAngularPressableInputs {
|
|
|
119
125
|
private get handlers();
|
|
120
126
|
private get hostNode();
|
|
121
127
|
static ɵfac: i0.ɵɵFactoryDeclaration<Pressable, never>;
|
|
122
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<Pressable, "Pressable, symbiote-pressable", never, { "delayLongPress": { "alias": "delayLongPress"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "cancelable": { "alias": "cancelable"; "required": false; }; "hitSlop": { "alias": "hitSlop"; "required": false; }; "pressRetentionOffset": { "alias": "pressRetentionOffset"; "required": false; }; "unstable_pressDelay": { "alias": "unstable_pressDelay"; "required": false; }; "android_ripple": { "alias": "android_ripple"; "required": false; }; "android_disableSound": { "alias": "android_disableSound"; "required": false; }; "delayHoverIn": { "alias": "delayHoverIn"; "required": false; }; "delayHoverOut": { "alias": "delayHoverOut"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "hasTVPreferredFocus": { "alias": "hasTVPreferredFocus"; "required": false; }; "nextFocusDown": { "alias": "nextFocusDown"; "required": false; }; "nextFocusForward": { "alias": "nextFocusForward"; "required": false; }; "nextFocusLeft": { "alias": "nextFocusLeft"; "required": false; }; "nextFocusRight": { "alias": "nextFocusRight"; "required": false; }; "nextFocusUp": { "alias": "nextFocusUp"; "required": false; }; "style": { "alias": "style"; "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; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaBusy": { "alias": "ariaBusy"; "required": false; }; "ariaChecked": { "alias": "ariaChecked"; "required": false; }; "ariaDisabled": { "alias": "ariaDisabled"; "required": false; }; "ariaExpanded": { "alias": "ariaExpanded"; "required": false; }; "ariaHidden": { "alias": "ariaHidden"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaLive": { "alias": "ariaLive"; "required": false; }; "ariaSelected": { "alias": "ariaSelected"; "required": false; }; "ariaModal": { "alias": "ariaModal"; "required": false; }; "ariaValueMax": { "alias": "ariaValueMax"; "required": false; }; "ariaValueMin": { "alias": "ariaValueMin"; "required": false; }; "ariaValueNow": { "alias": "ariaValueNow"; "required": false; }; "ariaValueText": { "alias": "ariaValueText"; "required": false; }; "id": { "alias": "id"; "required": false; }; "role": { "alias": "role"; "required": false; }; }, { "press": "press"; "pressIn": "pressIn"; "pressOut": "pressOut"; "pressMove": "pressMove"; "longPress": "longPress"; "hoverIn": "hoverIn"; "hoverOut": "hoverOut"; "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, never, ["*"], true,
|
|
128
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<Pressable, "Pressable, symbiote-pressable", never, { "delayLongPress": { "alias": "delayLongPress"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "cancelable": { "alias": "cancelable"; "required": false; }; "hitSlop": { "alias": "hitSlop"; "required": false; }; "pressRetentionOffset": { "alias": "pressRetentionOffset"; "required": false; }; "unstable_pressDelay": { "alias": "unstable_pressDelay"; "required": false; }; "android_ripple": { "alias": "android_ripple"; "required": false; }; "android_disableSound": { "alias": "android_disableSound"; "required": false; }; "delayHoverIn": { "alias": "delayHoverIn"; "required": false; }; "delayHoverOut": { "alias": "delayHoverOut"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "hasTVPreferredFocus": { "alias": "hasTVPreferredFocus"; "required": false; }; "nextFocusDown": { "alias": "nextFocusDown"; "required": false; }; "nextFocusForward": { "alias": "nextFocusForward"; "required": false; }; "nextFocusLeft": { "alias": "nextFocusLeft"; "required": false; }; "nextFocusRight": { "alias": "nextFocusRight"; "required": false; }; "nextFocusUp": { "alias": "nextFocusUp"; "required": false; }; "style": { "alias": "style"; "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; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaBusy": { "alias": "ariaBusy"; "required": false; }; "ariaChecked": { "alias": "ariaChecked"; "required": false; }; "ariaDisabled": { "alias": "ariaDisabled"; "required": false; }; "ariaExpanded": { "alias": "ariaExpanded"; "required": false; }; "ariaHidden": { "alias": "ariaHidden"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaLive": { "alias": "ariaLive"; "required": false; }; "ariaSelected": { "alias": "ariaSelected"; "required": false; }; "ariaModal": { "alias": "ariaModal"; "required": false; }; "ariaValueMax": { "alias": "ariaValueMax"; "required": false; }; "ariaValueMin": { "alias": "ariaValueMin"; "required": false; }; "ariaValueNow": { "alias": "ariaValueNow"; "required": false; }; "ariaValueText": { "alias": "ariaValueText"; "required": false; }; "id": { "alias": "id"; "required": false; }; "role": { "alias": "role"; "required": false; }; }, { "press": "press"; "pressIn": "pressIn"; "pressOut": "pressOut"; "pressMove": "pressMove"; "longPress": "longPress"; "hoverIn": "hoverIn"; "hoverOut": "hoverOut"; "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, never, ["*"], true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
|
|
123
129
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Input, Output, ViewChild, } from '@angular/core';
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, computed, inject, Input, Output, signal, ViewChild, } from '@angular/core';
|
|
2
2
|
import { createPressHandlers, createPressRuntime, DEFAULT_DELAY_LONG_PRESS_MS, isTerminationAllowed, resolveAccessibilityProps, resolveDisabledAccessibilityState, rippleProps, shouldClaimResponder, shouldSuppressPress, } from '@symbiote-native/components';
|
|
3
3
|
import { dlog, isSymbioteNode, measure, } from '@symbiote-native/engine';
|
|
4
|
-
import { anchorHostStyle, SymbioteHostPropsDirective, ViewHost } from '../../primitives';
|
|
4
|
+
import { anchorHostStyle, SymbioteHostPropsDirective, SymbioteStyleInputDirective, ViewHost, } from '../../primitives';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../primitives/shared";
|
|
6
7
|
function isStyleFn(value) {
|
|
7
8
|
return typeof value === 'function';
|
|
8
9
|
}
|
|
@@ -85,11 +86,19 @@ export class Pressable {
|
|
|
85
86
|
id;
|
|
86
87
|
role;
|
|
87
88
|
hostElement;
|
|
88
|
-
|
|
89
|
+
// INTERNAL mutable state, driven by the press machine rather than by an @Input, so ngOnChanges
|
|
90
|
+
// can never cover it - it carries its OWN signal, which is what lets the memoized bag below stay
|
|
91
|
+
// correct across a press. Exposed as a plain boolean getter so a use site's `#ref.pressed` keeps
|
|
92
|
+
// reading a boolean and the public surface is unchanged.
|
|
93
|
+
pressedState = signal(false, /* @ts-ignore */
|
|
94
|
+
...(ngDevMode ? [{ debugName: "pressedState" }] : /* istanbul ignore next */ []));
|
|
95
|
+
get pressed() {
|
|
96
|
+
return this.pressedState();
|
|
97
|
+
}
|
|
89
98
|
runtime = createPressRuntime();
|
|
90
99
|
host = {
|
|
91
100
|
setPressed: pressed => {
|
|
92
|
-
this.pressed
|
|
101
|
+
this.pressedState.set(pressed);
|
|
93
102
|
this.changeDetector.detectChanges();
|
|
94
103
|
},
|
|
95
104
|
getMeasureFn: () => {
|
|
@@ -108,6 +117,37 @@ export class Pressable {
|
|
|
108
117
|
// onto (see anchorHostStyle's doc comment) - NOT `hostElement` above, which targets the real
|
|
109
118
|
// inner `symbiote-view` one level down.
|
|
110
119
|
elementRef = inject(ElementRef);
|
|
120
|
+
// Bridges the non-reactive @Input fields above into the reactive graph, so the computed() bag
|
|
121
|
+
// below can memoize a value derived from them. Signal inputs would make this unnecessary, but
|
|
122
|
+
// `input()` is visible only to the AOT compiler and this package's unit suite runs on JIT - see
|
|
123
|
+
// the `angular-adapter-change-detection` skill, §6. Mirrors ScrollView's identical bridge
|
|
124
|
+
// (components/scroll-view/shared.ts), including its constraint: ONLY safe for a bag whose every
|
|
125
|
+
// dependency is an @Input or carries its own signal, never for plain internal mutable state.
|
|
126
|
+
inputsRevision = signal(0, /* @ts-ignore */
|
|
127
|
+
...(ngDevMode ? [{ debugName: "inputsRevision" }] : /* istanbul ignore next */ []));
|
|
128
|
+
// The anchor's class-derived style is the one hostProps dependency that is NOT an @Input:
|
|
129
|
+
// `class="..."`/`[class.x]`/`[ngClass]` at the use site resolves through the renderer's
|
|
130
|
+
// addClass/removeClass onto the anchor node (anchorHostStyle's doc comment), so it never appears
|
|
131
|
+
// in SimpleChanges and ngOnChanges cannot cover it. The engine's commitClassStyle allocates a
|
|
132
|
+
// fresh [classStyle, explicitStyle] array on exactly the passes where a class token actually
|
|
133
|
+
// moved, so signal.set's own Object.is check makes an unchanged poll a no-op that dirties nothing.
|
|
134
|
+
anchorStyle = signal(undefined, /* @ts-ignore */
|
|
135
|
+
...(ngDevMode ? [{ debugName: "anchorStyle" }] : /* istanbul ignore next */ []));
|
|
136
|
+
// ngDoCheck is the only hook that observes the anchor AFTER the parent wrote it. Angular flushes
|
|
137
|
+
// a node's pre-order hooks at the next `advance` PAST it (hooks.ts callHooks runs "until that
|
|
138
|
+
// node index exclusive") or in refreshView's post-template flush - both strictly after the
|
|
139
|
+
// parent's classProp on this element, and strictly before this component's own view refreshes.
|
|
140
|
+
// Angular also nulls the active consumer around lifecycle hooks (render3/hooks.ts), so this
|
|
141
|
+
// write registers no dependency on the caller's view and cannot throw NG0600.
|
|
142
|
+
ngDoCheck() {
|
|
143
|
+
this.anchorStyle.set(anchorHostStyle(this.elementRef));
|
|
144
|
+
}
|
|
145
|
+
ngOnChanges() {
|
|
146
|
+
// Tells the computed bag below that an @Input moved - plain class fields are not reactive on
|
|
147
|
+
// their own. Must stay in ngOnChanges: that is the single moment Angular has finished writing
|
|
148
|
+
// every changed input for this pass.
|
|
149
|
+
this.inputsRevision.update(revision => revision + 1);
|
|
150
|
+
}
|
|
111
151
|
get resolvedStyle() {
|
|
112
152
|
const state = { pressed: this.pressed };
|
|
113
153
|
return isStyleFn(this.style) ? this.style(state) : this.style;
|
|
@@ -153,7 +193,14 @@ export class Pressable {
|
|
|
153
193
|
return this.android_ripple === undefined ? undefined : rippleProps(this.android_ripple);
|
|
154
194
|
}
|
|
155
195
|
// Flat bag for `[symbioteHostProps]` (Renderer2.setProperty per key) - see primitives/shared.ts.
|
|
156
|
-
|
|
196
|
+
//
|
|
197
|
+
// MEASURED 2026-08-16: as a getter this rebuilt the bag on every refresh of this view, and a
|
|
198
|
+
// press dirties this very view (SymbioteHostPropsDirective wraps each flat-bag onX with
|
|
199
|
+
// markForCheck, and setPressed calls detectChanges outright), so `[symbioteHostProps]`'s
|
|
200
|
+
// reference check failed every time and re-pushed every key through Renderer2.setProperty ->
|
|
201
|
+
// routeProp for an identical bag. Memoized, an unchanged bag costs one reference compare.
|
|
202
|
+
hostProps = computed(() => {
|
|
203
|
+
this.inputsRevision();
|
|
157
204
|
return {
|
|
158
205
|
testID: this.testID,
|
|
159
206
|
nativeID: this.nativeID,
|
|
@@ -163,14 +210,15 @@ export class Pressable {
|
|
|
163
210
|
nextFocusLeft: this.nextFocusLeft,
|
|
164
211
|
nextFocusRight: this.nextFocusRight,
|
|
165
212
|
nextFocusUp: this.nextFocusUp,
|
|
166
|
-
style: [
|
|
213
|
+
style: [this.anchorStyle(), this.resolvedStyle],
|
|
167
214
|
accessible: this.accessible,
|
|
168
215
|
...this.foldedAccessibility,
|
|
169
216
|
android_disableSound: this.android_disableSound,
|
|
170
217
|
nativeBackgroundAndroid: this.resolvedRippleProps?.nativeBackgroundAndroid,
|
|
171
218
|
nativeForegroundAndroid: this.resolvedRippleProps?.nativeForegroundAndroid,
|
|
172
219
|
};
|
|
173
|
-
}
|
|
220
|
+
}, /* @ts-ignore */
|
|
221
|
+
...(ngDevMode ? [{ debugName: "hostProps" }] : /* istanbul ignore next */ []));
|
|
174
222
|
handlePressIn(event) {
|
|
175
223
|
const symbioteEvent = asSymbioteEvent(event);
|
|
176
224
|
if (shouldSuppressPress(this.disabled) || symbioteEvent === undefined)
|
|
@@ -238,11 +286,11 @@ export class Pressable {
|
|
|
238
286
|
const native = this.hostElement?.nativeElement;
|
|
239
287
|
return isSymbioteNode(native) ? native : undefined;
|
|
240
288
|
}
|
|
241
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
242
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.
|
|
289
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: Pressable, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
290
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: Pressable, isStandalone: true, selector: "Pressable, symbiote-pressable", inputs: { delayLongPress: "delayLongPress", disabled: "disabled", cancelable: "cancelable", hitSlop: "hitSlop", pressRetentionOffset: "pressRetentionOffset", unstable_pressDelay: "unstable_pressDelay", android_ripple: "android_ripple", android_disableSound: "android_disableSound", delayHoverIn: "delayHoverIn", delayHoverOut: "delayHoverOut", testID: "testID", nativeID: "nativeID", hasTVPreferredFocus: "hasTVPreferredFocus", nextFocusDown: "nextFocusDown", nextFocusForward: "nextFocusForward", nextFocusLeft: "nextFocusLeft", nextFocusRight: "nextFocusRight", nextFocusUp: "nextFocusUp", style: "style", 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", ariaLabel: "ariaLabel", ariaBusy: "ariaBusy", ariaChecked: "ariaChecked", ariaDisabled: "ariaDisabled", ariaExpanded: "ariaExpanded", ariaHidden: "ariaHidden", ariaLabelledBy: "ariaLabelledBy", ariaLive: "ariaLive", ariaSelected: "ariaSelected", ariaModal: "ariaModal", ariaValueMax: "ariaValueMax", ariaValueMin: "ariaValueMin", ariaValueNow: "ariaValueNow", ariaValueText: "ariaValueText", id: "id", role: "role" }, outputs: { press: "press", pressIn: "pressIn", pressOut: "pressOut", pressMove: "pressMove", longPress: "longPress", hoverIn: "hoverIn", hoverOut: "hoverOut", accessibilityAction: "accessibilityAction", accessibilityTap: "accessibilityTap", magicTap: "magicTap", accessibilityEscape: "accessibilityEscape" }, viewQueries: [{ propertyName: "hostElement", first: true, predicate: ["host"], descendants: true, read: ElementRef }], usesOnChanges: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: `
|
|
243
291
|
<symbiote-view
|
|
244
292
|
#host
|
|
245
|
-
[symbioteHostProps]="hostProps"
|
|
293
|
+
[symbioteHostProps]="hostProps()"
|
|
246
294
|
(accessibilityAction)="emit(accessibilityAction, $event)"
|
|
247
295
|
(accessibilityTap)="emit(accessibilityTap, $event)"
|
|
248
296
|
(magicTap)="emit(magicTap, $event)"
|
|
@@ -258,17 +306,18 @@ export class Pressable {
|
|
|
258
306
|
</symbiote-view>
|
|
259
307
|
`, isInline: true, dependencies: [{ kind: "component", type: ViewHost, selector: "symbiote-view, View" }, { kind: "directive", type: SymbioteHostPropsDirective, selector: "[symbioteHostProps]", inputs: ["symbioteHostProps"], exportAs: ["symbioteHost"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
260
308
|
}
|
|
261
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
309
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: Pressable, decorators: [{
|
|
262
310
|
type: Component,
|
|
263
311
|
args: [{
|
|
264
312
|
selector: 'Pressable, symbiote-pressable',
|
|
265
313
|
standalone: true,
|
|
314
|
+
hostDirectives: [{ directive: SymbioteStyleInputDirective, inputs: ['style'] }],
|
|
266
315
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
267
316
|
imports: [ViewHost, SymbioteHostPropsDirective],
|
|
268
317
|
template: `
|
|
269
318
|
<symbiote-view
|
|
270
319
|
#host
|
|
271
|
-
[symbioteHostProps]="hostProps"
|
|
320
|
+
[symbioteHostProps]="hostProps()"
|
|
272
321
|
(accessibilityAction)="emit(accessibilityAction, $event)"
|
|
273
322
|
(accessibilityTap)="emit(accessibilityTap, $event)"
|
|
274
323
|
(magicTap)="emit(magicTap, $event)"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/pressable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,YAAY,EACZ,MAAM,EACN,KAAK,EACL,MAAM,EACN,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/pressable/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { EventEmitter, type AfterViewInit, type OnChanges, type OnInit, type SimpleChanges } from '@angular/core';
|
|
1
|
+
import { EventEmitter, type AfterViewInit, type DoCheck, type OnChanges, type OnInit, type SimpleChanges } from '@angular/core';
|
|
2
2
|
import { type IAccessibilityProps, type IAccessibilityStateValue, type IAriaProps } from '@symbiote-native/components';
|
|
3
3
|
import { type IStyleProp, type ISymbioteEvent, type IViewStyle } from '@symbiote-native/engine';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../primitives/shared";
|
|
5
6
|
type IHostProps = Record<string, unknown>;
|
|
6
7
|
export interface IAngularRefreshControlProps extends IAccessibilityProps, IAriaProps {
|
|
7
8
|
refreshing: boolean;
|
|
@@ -17,7 +18,7 @@ export interface IAngularRefreshControlProps extends IAccessibilityProps, IAriaP
|
|
|
17
18
|
style?: IStyleProp<IViewStyle>;
|
|
18
19
|
}
|
|
19
20
|
export type IAngularRefreshControlInputs = Omit<IAngularRefreshControlProps, 'onRefresh' | 'onAccessibilityAction' | 'onAccessibilityTap' | 'onMagicTap' | 'onAccessibilityEscape'>;
|
|
20
|
-
export declare class RefreshControl implements IAngularRefreshControlInputs, OnInit, OnChanges, AfterViewInit {
|
|
21
|
+
export declare class RefreshControl implements IAngularRefreshControlInputs, OnInit, OnChanges, DoCheck, AfterViewInit {
|
|
21
22
|
refreshing: boolean;
|
|
22
23
|
readonly refresh: EventEmitter<void>;
|
|
23
24
|
tintColor?: string;
|
|
@@ -72,15 +73,18 @@ export declare class RefreshControl implements IAngularRefreshControlInputs, OnI
|
|
|
72
73
|
private readonly elementRef;
|
|
73
74
|
private lastNativeRefreshing;
|
|
74
75
|
private refreshNativeNode;
|
|
76
|
+
private readonly hostPropsRevision;
|
|
77
|
+
private lastAnchorStyle;
|
|
75
78
|
ngOnInit(): void;
|
|
76
79
|
ngAfterViewInit(): void;
|
|
77
80
|
ngOnChanges(changes: SimpleChanges): void;
|
|
78
81
|
handleRefresh(nativeNode?: unknown): void;
|
|
79
82
|
private syncNativeRefreshing;
|
|
80
83
|
emit(emitter: EventEmitter<ISymbioteEvent>, event: unknown): void;
|
|
81
|
-
|
|
84
|
+
ngDoCheck(): void;
|
|
85
|
+
readonly hostProps: import("@angular/core").Signal<IHostProps>;
|
|
82
86
|
get folded(): Partial<IAngularRefreshControlProps>;
|
|
83
87
|
static ɵfac: i0.ɵɵFactoryDeclaration<RefreshControl, never>;
|
|
84
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RefreshControl, "RefreshControl", never, { "refreshing": { "alias": "refreshing"; "required": true; }; "tintColor": { "alias": "tintColor"; "required": false; }; "title": { "alias": "title"; "required": false; }; "titleColor": { "alias": "titleColor"; "required": false; }; "progressViewOffset": { "alias": "progressViewOffset"; "required": false; }; "colors": { "alias": "colors"; "required": false; }; "progressBackgroundColor": { "alias": "progressBackgroundColor"; "required": false; }; "size": { "alias": "size"; "required": false; }; "enabled": { "alias": "enabled"; "required": false; }; "style": { "alias": "style"; "required": false; }; "testID": { "alias": "testID"; "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; }; "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; }; }, { "refresh": "refresh"; "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, never, ["*"], true,
|
|
88
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RefreshControl, "RefreshControl", never, { "refreshing": { "alias": "refreshing"; "required": true; }; "tintColor": { "alias": "tintColor"; "required": false; }; "title": { "alias": "title"; "required": false; }; "titleColor": { "alias": "titleColor"; "required": false; }; "progressViewOffset": { "alias": "progressViewOffset"; "required": false; }; "colors": { "alias": "colors"; "required": false; }; "progressBackgroundColor": { "alias": "progressBackgroundColor"; "required": false; }; "size": { "alias": "size"; "required": false; }; "enabled": { "alias": "enabled"; "required": false; }; "style": { "alias": "style"; "required": false; }; "testID": { "alias": "testID"; "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; }; "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; }; }, { "refresh": "refresh"; "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, never, ["*"], true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
|
|
85
89
|
}
|
|
86
90
|
export {};
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
// RefreshControl, the Angular lifecycle half. On iOS this is the PullToRefreshView Fabric node that
|
|
2
2
|
// lives INSIDE a ScrollView (a childless sibling before the content container); on Android it is
|
|
3
|
-
// AndroidSwipeRefreshLayout and WRAPS the scroll view, receiving it through <ng-content>.
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
3
|
+
// AndroidSwipeRefreshLayout and WRAPS the scroll view, receiving it through <ng-content>. There is
|
|
4
|
+
// no JS-side platform renaming and no shared render fn — every prop forwards straight to the
|
|
5
|
+
// native node, which reads what it understands and ignores the rest, so Android-only and iOS-only
|
|
6
|
+
// prop families ride down harmlessly on both. This folds aria/role through the shared
|
|
7
|
+
// resolveAccessibilityProps and maps the native props + a11y + onRefresh onto the
|
|
8
|
+
// symbiote-refresh-control host, children via <ng-content>. One composed component covers both
|
|
9
|
+
// platforms, so this stays a flat single file.
|
|
10
10
|
//
|
|
11
11
|
// `refreshing` is a controlled prop: the parent owns it and pushes it down each commit; native
|
|
12
12
|
// reports the gesture via the direct `topRefresh` event, which the engine routes to the host's
|
|
13
13
|
// `refresh` listener (Angular blocks [onX] property bindings; events flow through (event) only).
|
|
14
|
-
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output, ViewChild, } from '@angular/core';
|
|
14
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, ElementRef, EventEmitter, inject, Input, Output, signal, ViewChild, } from '@angular/core';
|
|
15
15
|
import { resolveAccessibilityProps, } from '@symbiote-native/components';
|
|
16
16
|
import { dispatchViewCommand, dlog, isSymbioteEvent, isSymbioteNode, } from '@symbiote-native/engine';
|
|
17
|
-
import { anchorHostStyle, RefreshControlHost, SymbioteHostPropsDirective } from '../../primitives';
|
|
17
|
+
import { anchorHostStyle, RefreshControlHost, SymbioteHostPropsDirective, SymbioteStyleInputDirective, } from '../../primitives';
|
|
18
18
|
import * as i0 from "@angular/core";
|
|
19
|
+
import * as i1 from "../../primitives/shared";
|
|
19
20
|
export class RefreshControl {
|
|
20
21
|
// Controlled prop the parent owns; required to match the React reference surface.
|
|
21
22
|
refreshing;
|
|
@@ -79,6 +80,18 @@ export class RefreshControl {
|
|
|
79
80
|
elementRef = inject(ElementRef);
|
|
80
81
|
lastNativeRefreshing = false;
|
|
81
82
|
refreshNativeNode;
|
|
83
|
+
// Bridges the non-reactive @Input fields `hostProps` reads into the reactive graph, so it can
|
|
84
|
+
// memoize. Plain fields read inside a computed() are UNTRACKED - something must signal "a
|
|
85
|
+
// dependency changed" or the bag goes stale. Signal inputs would do this natively, but `input()`
|
|
86
|
+
// is visible only to the AOT compiler and this package's unit suite runs on JIT (see the
|
|
87
|
+
// `angular-adapter-change-detection` skill, §6); `signal()`/`computed()` are plain runtime APIs.
|
|
88
|
+
// Safe here because `refreshing` is a CONTROLLED @Input - the parent owns it, nothing in this
|
|
89
|
+
// class assigns it. The internal `lastNativeRefreshing` / `refreshNativeNode` fields drive the
|
|
90
|
+
// native handshake only; neither is read by the bag, so neither may bump this.
|
|
91
|
+
hostPropsRevision = signal(0, /* @ts-ignore */
|
|
92
|
+
...(ngDevMode ? [{ debugName: "hostPropsRevision" }] : /* istanbul ignore next */ []));
|
|
93
|
+
// What the anchor's class-derived style was when the bag was last built (identity, not value).
|
|
94
|
+
lastAnchorStyle;
|
|
82
95
|
ngOnInit() {
|
|
83
96
|
dlog('RefreshControl -> PullToRefreshView');
|
|
84
97
|
dlog(`RefreshControl refreshing=${String(this.refreshing)}`);
|
|
@@ -91,6 +104,9 @@ export class RefreshControl {
|
|
|
91
104
|
this.lastNativeRefreshing = this.refreshing;
|
|
92
105
|
}
|
|
93
106
|
ngOnChanges(changes) {
|
|
107
|
+
// Before the `refreshing`-only early-return below: this is the single moment Angular has
|
|
108
|
+
// finished writing every changed @Input, and `hostProps` depends on the whole input surface.
|
|
109
|
+
this.hostPropsRevision.update(revision => revision + 1);
|
|
94
110
|
const refreshing = changes.refreshing;
|
|
95
111
|
if (refreshing === undefined)
|
|
96
112
|
return;
|
|
@@ -123,11 +139,29 @@ export class RefreshControl {
|
|
|
123
139
|
if (isSymbioteEvent(event))
|
|
124
140
|
emitter.emit(event);
|
|
125
141
|
}
|
|
142
|
+
// The anchor's class-derived style is NOT an @Input: `class="..."`/`[ngClass]` at the use site
|
|
143
|
+
// resolves through the renderer's addClass onto this component's anchor host (see
|
|
144
|
+
// anchorHostStyle's doc comment), so it never shows up in SimpleChanges and ngOnChanges alone
|
|
145
|
+
// would leave a later class toggle stranded. ngDoCheck runs at exactly the cadence the old
|
|
146
|
+
// getter was re-read, and bumps only on a real identity change.
|
|
147
|
+
ngDoCheck() {
|
|
148
|
+
const anchorStyle = anchorHostStyle(this.elementRef);
|
|
149
|
+
if (anchorStyle === this.lastAnchorStyle)
|
|
150
|
+
return;
|
|
151
|
+
this.lastAnchorStyle = anchorStyle;
|
|
152
|
+
this.hostPropsRevision.update(revision => revision + 1);
|
|
153
|
+
}
|
|
126
154
|
// The full native + a11y prop bag applied onto the host in one shot via
|
|
127
155
|
// [symbioteHostProps], instead of enumerating each key as its own template binding. The
|
|
128
156
|
// anchor's class-derived style goes FIRST, this component's own explicit `style` @Input SECOND
|
|
129
157
|
// — flattenStyle's later-wins collapse keeps an explicit [style] winning over its ambient class.
|
|
130
|
-
|
|
158
|
+
//
|
|
159
|
+
// A computed(), not a getter: Angular re-reads a template getter on every refresh of this view
|
|
160
|
+
// and `[symbioteHostProps]` compares by REFERENCE, so a freshly rebuilt (but identical) bag
|
|
161
|
+
// re-pushes every key through renderer.setProperty -> the engine's prop routing. A pull gesture
|
|
162
|
+
// dirties this view through its own `(refresh)` binding, which is exactly when that waste hit.
|
|
163
|
+
hostProps = computed(() => {
|
|
164
|
+
this.hostPropsRevision();
|
|
131
165
|
return {
|
|
132
166
|
refreshing: this.refreshing,
|
|
133
167
|
tintColor: this.tintColor,
|
|
@@ -144,7 +178,8 @@ export class RefreshControl {
|
|
|
144
178
|
accessible: this.accessible,
|
|
145
179
|
...this.folded,
|
|
146
180
|
};
|
|
147
|
-
}
|
|
181
|
+
}, /* @ts-ignore */
|
|
182
|
+
...(ngDevMode ? [{ debugName: "hostProps" }] : /* istanbul ignore next */ []));
|
|
148
183
|
// Fold the web aria-*/role aliases into the canonical accessibility* props once per render, so the
|
|
149
184
|
// host node never sees an aria-* key (native ignores them) — the shared transform every adapter runs.
|
|
150
185
|
get folded() {
|
|
@@ -183,11 +218,11 @@ export class RefreshControl {
|
|
|
183
218
|
'aria-valuetext': this.ariaValueText,
|
|
184
219
|
});
|
|
185
220
|
}
|
|
186
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
187
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.
|
|
221
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: RefreshControl, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
222
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: RefreshControl, isStandalone: true, selector: "RefreshControl", inputs: { refreshing: "refreshing", tintColor: "tintColor", title: "title", titleColor: "titleColor", progressViewOffset: "progressViewOffset", colors: "colors", progressBackgroundColor: "progressBackgroundColor", size: "size", enabled: "enabled", style: "style", testID: "testID", 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", 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: { refresh: "refresh", accessibilityAction: "accessibilityAction", accessibilityTap: "accessibilityTap", magicTap: "magicTap", accessibilityEscape: "accessibilityEscape" }, viewQueries: [{ propertyName: "host", first: true, predicate: ["host"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: `
|
|
188
223
|
<symbiote-refresh-control
|
|
189
224
|
#host
|
|
190
|
-
[symbioteHostProps]="hostProps"
|
|
225
|
+
[symbioteHostProps]="hostProps()"
|
|
191
226
|
(refresh)="handleRefresh()"
|
|
192
227
|
(accessibilityAction)="emit(accessibilityAction, $event)"
|
|
193
228
|
(accessibilityTap)="emit(accessibilityTap, $event)"
|
|
@@ -198,18 +233,19 @@ export class RefreshControl {
|
|
|
198
233
|
</symbiote-refresh-control>
|
|
199
234
|
`, isInline: true, dependencies: [{ kind: "component", type: RefreshControlHost, selector: "symbiote-refresh-control" }, { kind: "directive", type: SymbioteHostPropsDirective, selector: "[symbioteHostProps]", inputs: ["symbioteHostProps"], exportAs: ["symbioteHost"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
200
235
|
}
|
|
201
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
236
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: RefreshControl, decorators: [{
|
|
202
237
|
type: Component,
|
|
203
238
|
args: [{
|
|
204
239
|
selector: 'RefreshControl',
|
|
205
240
|
standalone: true,
|
|
241
|
+
hostDirectives: [{ directive: SymbioteStyleInputDirective, inputs: ['style'] }],
|
|
206
242
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
207
243
|
imports: [RefreshControlHost, SymbioteHostPropsDirective],
|
|
208
244
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
209
245
|
template: `
|
|
210
246
|
<symbiote-refresh-control
|
|
211
247
|
#host
|
|
212
|
-
[symbioteHostProps]="hostProps"
|
|
248
|
+
[symbioteHostProps]="hostProps()"
|
|
213
249
|
(refresh)="handleRefresh()"
|
|
214
250
|
(accessibilityAction)="emit(accessibilityAction, $event)"
|
|
215
251
|
(accessibilityTap)="emit(accessibilityTap, $event)"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/refresh-control/index.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,iGAAiG;AACjG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/refresh-control/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, type DoCheck, type OnChanges } from '@angular/core';
|
|
2
2
|
import { type IAccessibilityProps, type IAccessibilityStateValue, type IAriaProps } from '@symbiote-native/components';
|
|
3
3
|
import { type IStyleProp, type ISymbioteEvent, type IViewStyle } from '@symbiote-native/engine';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../primitives/shared";
|
|
5
6
|
export interface IAngularSafeAreaViewProps extends IAccessibilityProps, IAriaProps {
|
|
6
7
|
style?: IStyleProp<IViewStyle>;
|
|
7
8
|
onLayout?: (event: ISymbioteEvent) => void;
|
|
8
9
|
}
|
|
9
10
|
export type IAngularSafeAreaViewInputs = Omit<IAngularSafeAreaViewProps, 'onLayout' | 'onAccessibilityAction' | 'onAccessibilityTap' | 'onMagicTap' | 'onAccessibilityEscape'>;
|
|
10
|
-
export declare class SafeAreaView implements IAngularSafeAreaViewInputs {
|
|
11
|
+
export declare class SafeAreaView implements IAngularSafeAreaViewInputs, OnChanges, DoCheck {
|
|
11
12
|
style?: IStyleProp<IViewStyle>;
|
|
12
13
|
readonly layout: EventEmitter<ISymbioteEvent>;
|
|
13
14
|
readonly accessibilityAction: EventEmitter<ISymbioteEvent>;
|
|
@@ -51,7 +52,11 @@ export declare class SafeAreaView implements IAngularSafeAreaViewInputs {
|
|
|
51
52
|
ariaValueText?: string;
|
|
52
53
|
private readonly elementRef;
|
|
53
54
|
emit(emitter: EventEmitter<ISymbioteEvent>, event: unknown): void;
|
|
54
|
-
|
|
55
|
+
private readonly hostPropsRevision;
|
|
56
|
+
private lastAnchorStyle;
|
|
57
|
+
ngOnChanges(): void;
|
|
58
|
+
ngDoCheck(): void;
|
|
59
|
+
readonly hostProps: import("@angular/core").Signal<Record<string, unknown>>;
|
|
55
60
|
static ɵfac: i0.ɵɵFactoryDeclaration<SafeAreaView, never>;
|
|
56
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SafeAreaView, "SafeAreaView", never, { "style": { "alias": "style"; "required": false; }; "testID": { "alias": "testID"; "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; }; "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; }; }, { "layout": "layout"; "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, never, ["*"], true,
|
|
61
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SafeAreaView, "SafeAreaView", never, { "style": { "alias": "style"; "required": false; }; "testID": { "alias": "testID"; "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; }; "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; }; }, { "layout": "layout"; "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, never, ["*"], true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
|
|
57
62
|
}
|