@symbiote-native/angular 0.5.0 → 0.6.1
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/babel-register-composed.cjs +11 -3
- package/build/angular/anchor-host-registry.d.ts +2 -0
- package/build/angular/anchor-host-registry.js +84 -0
- package/build/angular/anchor-host-registry.js.map +1 -0
- package/build/angular/components/input-accessory-view/index.d.ts +2 -1
- package/build/angular/components/input-accessory-view/index.js +28 -39
- package/build/angular/components/input-accessory-view/index.js.map +1 -1
- package/build/angular/components/scroll-view/projection.js +70 -48
- package/build/angular/components/scroll-view/projection.js.map +1 -1
- package/build/angular/components/scroll-view/shared.js +28 -25
- package/build/angular/components/scroll-view/shared.js.map +1 -1
- package/build/angular/components/scroll-view/sticky-header.d.ts +6 -7
- package/build/angular/components/scroll-view/sticky-header.js +82 -65
- package/build/angular/components/scroll-view/sticky-header.js.map +1 -1
- package/build/angular/components/touchable/index.d.ts +2 -5
- package/build/angular/components/touchable/index.js +36 -56
- package/build/angular/components/touchable/index.js.map +1 -1
- package/build/angular/components/virtualized-list/index.d.ts +5 -20
- package/build/angular/components/virtualized-list/index.js +145 -275
- package/build/angular/components/virtualized-list/index.js.map +1 -1
- package/build/angular/components/virtualized-section-list/index.js +2 -4
- package/build/angular/components/virtualized-section-list/index.js.map +1 -1
- package/build/angular/index.d.ts +2 -1
- package/build/angular/index.js +6 -1
- package/build/angular/index.js.map +1 -1
- package/build/angular/renderer/index.d.ts +0 -1
- package/build/angular/renderer/index.js +5 -60
- package/build/angular/renderer/index.js.map +1 -1
- package/package.json +9 -7
- package/src/__tests__/responder-nested-cd.test.ts +1 -1
- package/src/anchor-host-registry.ts +88 -0
- package/src/components/input-accessory-view/index.ts +30 -39
- package/src/components/scroll-view/projection.ts +76 -46
- package/src/components/scroll-view/shared.ts +27 -19
- package/src/components/scroll-view/sticky-header.ts +89 -64
- package/src/components/touchable/index.ts +52 -66
- package/src/components/virtualized-list/index.ts +157 -368
- package/src/components/virtualized-section-list/index.ts +6 -3
- package/src/index.ts +6 -1
- package/src/renderer/index.ts +5 -63
- package/src/renderer/renderer.test.ts +2 -1
- package/build/bootstrap.d.ts +0 -7
- package/build/bootstrap.js +0 -14
- package/build/components/activity-indicator/index.android.d.ts +0 -9
- package/build/components/activity-indicator/index.android.js +0 -64
- package/build/components/activity-indicator/index.d.ts +0 -1
- package/build/components/activity-indicator/index.ios.d.ts +0 -5
- package/build/components/activity-indicator/index.ios.js +0 -64
- package/build/components/activity-indicator/index.js +0 -3
- package/build/components/activity-indicator/shared.d.ts +0 -64
- package/build/components/activity-indicator/shared.js +0 -424
- package/build/components/button.d.ts +0 -60
- package/build/components/button.js +0 -456
- package/build/components/flat-list/index.d.ts +0 -119
- package/build/components/flat-list/index.js +0 -691
- package/build/components/image/index.android.d.ts +0 -7
- package/build/components/image/index.android.js +0 -88
- package/build/components/image/index.d.ts +0 -1
- package/build/components/image/index.ios.d.ts +0 -7
- package/build/components/image/index.ios.js +0 -88
- package/build/components/image/index.js +0 -2
- package/build/components/image/shared.d.ts +0 -101
- package/build/components/image/shared.js +0 -405
- package/build/components/image-background.d.ts +0 -78
- package/build/components/image-background.js +0 -583
- package/build/components/input-accessory-view/index.d.ts +0 -56
- package/build/components/input-accessory-view/index.js +0 -403
- package/build/components/keyboard-avoiding-view/index.d.ts +0 -79
- package/build/components/keyboard-avoiding-view/index.js +0 -504
- package/build/components/modal/index.d.ts +0 -89
- package/build/components/modal/index.js +0 -529
- package/build/components/pressable/index.d.ts +0 -120
- package/build/components/pressable/index.js +0 -639
- package/build/components/refresh-control/index.d.ts +0 -83
- package/build/components/refresh-control/index.js +0 -509
- package/build/components/safe-area-view/index.d.ts +0 -54
- package/build/components/safe-area-view/index.js +0 -388
- package/build/components/scroll-view/index.android.d.ts +0 -16
- package/build/components/scroll-view/index.android.js +0 -228
- package/build/components/scroll-view/index.d.ts +0 -3
- package/build/components/scroll-view/index.ios.d.ts +0 -6
- package/build/components/scroll-view/index.ios.js +0 -113
- package/build/components/scroll-view/index.js +0 -5
- package/build/components/scroll-view/projection.d.ts +0 -32
- package/build/components/scroll-view/projection.js +0 -311
- package/build/components/scroll-view/shared.d.ts +0 -225
- package/build/components/scroll-view/shared.js +0 -757
- package/build/components/scroll-view/sticky-header.d.ts +0 -38
- package/build/components/scroll-view/sticky-header.js +0 -257
- package/build/components/section-list/index.d.ts +0 -113
- package/build/components/section-list/index.js +0 -768
- package/build/components/switch/index.android.d.ts +0 -17
- package/build/components/switch/index.android.js +0 -107
- package/build/components/switch/index.d.ts +0 -1
- package/build/components/switch/index.ios.d.ts +0 -16
- package/build/components/switch/index.ios.js +0 -106
- package/build/components/switch/index.js +0 -3
- package/build/components/switch/shared.d.ts +0 -37
- package/build/components/switch/shared.js +0 -176
- package/build/components/text-input.d.ts +0 -150
- package/build/components/text-input.js +0 -821
- package/build/components/touchable/index.d.ts +0 -241
- package/build/components/touchable/index.js +0 -1672
- package/build/components/touchable-native-feedback/index.d.ts +0 -80
- package/build/components/touchable-native-feedback/index.js +0 -545
- package/build/components/virtualized-list/directives.d.ts +0 -41
- package/build/components/virtualized-list/directives.js +0 -249
- package/build/components/virtualized-list/index.d.ts +0 -265
- package/build/components/virtualized-list/index.js +0 -1343
- package/build/components/virtualized-section-list/directives.d.ts +0 -28
- package/build/components/virtualized-section-list/directives.js +0 -148
- package/build/components/virtualized-section-list/index.d.ts +0 -175
- package/build/components/virtualized-section-list/index.js +0 -854
- package/build/components.d.ts +0 -39
- package/build/components.js +0 -37
- package/build/create-portal/index.d.ts +0 -17
- package/build/create-portal/index.js +0 -128
- package/build/create-tunnel/index.d.ts +0 -29
- package/build/create-tunnel/index.js +0 -181
- package/build/descriptor-to-angular/index.d.ts +0 -19
- package/build/descriptor-to-angular/index.js +0 -186
- package/build/host-instance/index.d.ts +0 -2
- package/build/host-instance/index.js +0 -36
- package/build/index.d.ts +0 -21
- package/build/index.js +0 -40
- package/build/modules/animated/animated-leaf-binder/index.d.ts +0 -14
- package/build/modules/animated/animated-leaf-binder/index.js +0 -90
- package/build/modules/animated/animated-leaf-binder.d.ts +0 -14
- package/build/modules/animated/animated-leaf-binder.js +0 -90
- package/build/modules/animated/create-animated-component.d.ts +0 -48
- package/build/modules/animated/create-animated-component.js +0 -425
- package/build/modules/animated/index.d.ts +0 -51
- package/build/modules/animated/index.js +0 -58
- package/build/modules/app-registry/index.d.ts +0 -7
- package/build/modules/app-registry/index.js +0 -22
- package/build/modules/status-bar/index.d.ts +0 -17
- package/build/modules/status-bar/index.js +0 -121
- package/build/primitives/index.d.ts +0 -32
- package/build/primitives/index.js +0 -386
- package/build/primitives/shared.d.ts +0 -83
- package/build/primitives/shared.js +0 -230
- package/build/render/index.d.ts +0 -11
- package/build/render/index.js +0 -170
- package/build/renderer/index.d.ts +0 -38
- package/build/renderer/index.js +0 -355
- package/build/services/color-scheme.service.d.ts +0 -13
- package/build/services/color-scheme.service.js +0 -72
- package/build/services/index.d.ts +0 -2
- package/build/services/index.js +0 -2
- package/build/services/window-dimensions.service.d.ts +0 -13
- package/build/services/window-dimensions.service.js +0 -83
|
@@ -27,7 +27,15 @@ const PRIMITIVE_SELECTORS = new Set([
|
|
|
27
27
|
'symbiote-input-accessory-view',
|
|
28
28
|
]);
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
// Inject from the package barrel — the ONE resolution route every consumer already uses, so the
|
|
31
|
+
// leaf's registry Set stays a single module instance. `registerComposedComponent` is re-exported
|
|
32
|
+
// from the barrel straight off the dependency-free leaf `anchor-host-registry.ts`, so importing it
|
|
33
|
+
// here does NOT drag in the cyclic renderer graph, yet resolves to the same leaf Set that
|
|
34
|
+
// `createElement` reads. (An earlier attempt injected a dedicated `.../anchor-host-registry`
|
|
35
|
+
// subpath instead; under pnpm symlinks that gave the leaf a SECOND resolved path — a second Set —
|
|
36
|
+
// so navigation-package registrations and createElement's lookup desynced. See the leaf header +
|
|
37
|
+
// angular-adapter §11c.)
|
|
38
|
+
const IMPORT_SOURCE = '@symbiote-native/angular';
|
|
31
39
|
const HELPER_NAME = 'registerComposedComponent';
|
|
32
40
|
|
|
33
41
|
function isNgDeclareComponentCall(node) {
|
|
@@ -65,7 +73,7 @@ function hasComposedImport(programNode) {
|
|
|
65
73
|
return programNode.body.some(
|
|
66
74
|
node =>
|
|
67
75
|
node.type === 'ImportDeclaration' &&
|
|
68
|
-
node.source.value ===
|
|
76
|
+
node.source.value === IMPORT_SOURCE &&
|
|
69
77
|
node.specifiers.some(
|
|
70
78
|
spec =>
|
|
71
79
|
spec.type === 'ImportSpecifier' &&
|
|
@@ -103,7 +111,7 @@ module.exports = function registerComposedPlugin({ types: t }) {
|
|
|
103
111
|
statements.unshift(
|
|
104
112
|
t.importDeclaration(
|
|
105
113
|
[t.importSpecifier(t.identifier(HELPER_NAME), t.identifier(HELPER_NAME))],
|
|
106
|
-
t.stringLiteral(
|
|
114
|
+
t.stringLiteral(IMPORT_SOURCE),
|
|
107
115
|
),
|
|
108
116
|
);
|
|
109
117
|
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// Registry of composed-component selectors that must NOT paint a native view of their own.
|
|
2
|
+
//
|
|
3
|
+
// A dependency-free LEAF module (imports nothing from the adapter barrel `./index` or
|
|
4
|
+
// `./components`, both deeply require-cyclic). Both consumers reach it by RELATIVE path — the
|
|
5
|
+
// renderer imports `isAnchorHostComponent` from `../anchor-host-registry`, the barrel re-exports
|
|
6
|
+
// `registerComposedComponent` from `./anchor-host-registry` — so Metro keys it to ONE module
|
|
7
|
+
// instance / ONE Set. Do NOT give it a package `exports` subpath and inject THAT bare specifier
|
|
8
|
+
// into app code: a subpath resolves via a different path than the relative imports under pnpm
|
|
9
|
+
// symlinks, which splits the Set in two.
|
|
10
|
+
//
|
|
11
|
+
// Housing the registry here rather than inline in `renderer/index.ts` keeps it out of the require
|
|
12
|
+
// cycle (cheap insurance against a load-order strand). The bug that actually surfaced this,
|
|
13
|
+
// though, was STALE BUILD ARTIFACTS, not the cycle: `ngc -p` never deletes orphaned outputs, so
|
|
14
|
+
// after the renderer moved `renderer.ts` → `renderer/index.ts` the orphaned `build/angular/
|
|
15
|
+
// renderer.js` lingered and SHADOWED `build/angular/renderer/index.js` (a file beats a folder in
|
|
16
|
+
// Node/Metro resolution), giving the bundle a second, stale registry Set — fixed by cleaning
|
|
17
|
+
// `build/` before every ngc build (see each Angular package's `clean` script). Full record:
|
|
18
|
+
// angular-adapter §11c, symbiote-dev-examples §5e.
|
|
19
|
+
// Lowercased at construction — isAnchorHostComponent and registerComposedComponent both normalize
|
|
20
|
+
// to lowercase (Angular lowercases a dynamically-mounted component's selector at runtime, see
|
|
21
|
+
// angular-adapter §11a), so the literal entries below must match that or every capitalized one
|
|
22
|
+
// (all but the handful already written lowercase) silently never matches .has() and falls through
|
|
23
|
+
// to a real Fabric createNode — the exact "Unimplemented component" / extra-wrapper-node bug this
|
|
24
|
+
// Set exists to prevent.
|
|
25
|
+
const ANCHOR_HOST_COMPONENTS = new Set([
|
|
26
|
+
// Composed Angular components render their real Fabric descriptor tree from the template;
|
|
27
|
+
// their Angular host element is only a framework bookkeeping node and must not paint. This
|
|
28
|
+
// is NOT limited to adapter-authored components — ANY custom composed @Component used as a
|
|
29
|
+
// plain <Tag> inside another template needs its selector listed here too, or Angular's
|
|
30
|
+
// automatic host-element creation for it falls through to a raw Fabric createNode call with
|
|
31
|
+
// an unrecognized view name, which paints RN's own "Unimplemented component: <Tag>" fallback
|
|
32
|
+
// view instead (a real device-visible bug, not a silent no-op). This Set holds only
|
|
33
|
+
// adapter/engine-owned selectors; app code and third-party packages self-register their own
|
|
34
|
+
// composed components through registerComposedComponent instead of being hardcoded here.
|
|
35
|
+
'ActivityIndicator',
|
|
36
|
+
'Button',
|
|
37
|
+
'FlatList',
|
|
38
|
+
'AnimatedView',
|
|
39
|
+
'symbiote-animated-view',
|
|
40
|
+
'AnimatedText',
|
|
41
|
+
'symbiote-animated-text',
|
|
42
|
+
'AnimatedImage',
|
|
43
|
+
'symbiote-animated-image',
|
|
44
|
+
'AnimatedScrollView',
|
|
45
|
+
'symbiote-animated-scroll-view',
|
|
46
|
+
'symbiote-descriptor-outlet',
|
|
47
|
+
'tunnel-out',
|
|
48
|
+
'Image',
|
|
49
|
+
'ImageBackground',
|
|
50
|
+
'InputAccessoryView',
|
|
51
|
+
'KeyboardAvoidingView',
|
|
52
|
+
'Modal',
|
|
53
|
+
'Pressable',
|
|
54
|
+
'RefreshControl',
|
|
55
|
+
'SafeAreaView',
|
|
56
|
+
'ScrollView',
|
|
57
|
+
'ScrollViewStickyHeader',
|
|
58
|
+
'SectionList',
|
|
59
|
+
'symbiote-sticky-header',
|
|
60
|
+
'StatusBar',
|
|
61
|
+
'Switch',
|
|
62
|
+
'Text',
|
|
63
|
+
'TextInput',
|
|
64
|
+
'TouchableHighlight',
|
|
65
|
+
'TouchableNativeFeedback',
|
|
66
|
+
'TouchableOpacity',
|
|
67
|
+
'TouchableWithoutFeedback',
|
|
68
|
+
'VirtualizedList',
|
|
69
|
+
'VirtualizedSectionList',
|
|
70
|
+
'symbiote-pressable',
|
|
71
|
+
].map(selector => selector.toLowerCase()));
|
|
72
|
+
// A composed component's selector must be registered so createElement gives it a non-painting
|
|
73
|
+
// anchor host (see the Set comment above). Tests register their own child-component selectors
|
|
74
|
+
// through this at module load; app-authored composed components self-register the same way via
|
|
75
|
+
// the babel-register-composed plugin.
|
|
76
|
+
export function registerComposedComponent(selector) {
|
|
77
|
+
ANCHOR_HOST_COMPONENTS.add(selector.toLowerCase());
|
|
78
|
+
}
|
|
79
|
+
// True when `engineName` is a composed selector that must anchor-host (not paint). Case-
|
|
80
|
+
// insensitive — the Set is lowercased at construction, so callers pass the raw selector.
|
|
81
|
+
export function isAnchorHostComponent(engineName) {
|
|
82
|
+
return ANCHOR_HOST_COMPONENTS.has(engineName.toLowerCase());
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=anchor-host-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anchor-host-registry.js","sourceRoot":"","sources":["../../src/anchor-host-registry.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,EAAE;AACF,sFAAsF;AACtF,8FAA8F;AAC9F,iGAAiG;AACjG,6FAA6F;AAC7F,gGAAgG;AAChG,8FAA8F;AAC9F,yCAAyC;AACzC,EAAE;AACF,kGAAkG;AAClG,4FAA4F;AAC5F,gGAAgG;AAChG,4FAA4F;AAC5F,iGAAiG;AACjG,6FAA6F;AAC7F,4FAA4F;AAC5F,mDAAmD;AAEnD,kGAAkG;AAClG,8FAA8F;AAC9F,+FAA+F;AAC/F,kGAAkG;AAClG,kGAAkG;AAClG,yBAAyB;AACzB,MAAM,sBAAsB,GAAgB,IAAI,GAAG,CACjD;IACE,0FAA0F;IAC1F,2FAA2F;IAC3F,2FAA2F;IAC3F,uFAAuF;IACvF,4FAA4F;IAC5F,6FAA6F;IAC7F,oFAAoF;IACpF,4FAA4F;IAC5F,yFAAyF;IACzF,mBAAmB;IACnB,QAAQ;IACR,UAAU;IACV,cAAc;IACd,wBAAwB;IACxB,cAAc;IACd,wBAAwB;IACxB,eAAe;IACf,yBAAyB;IACzB,oBAAoB;IACpB,+BAA+B;IAC/B,4BAA4B;IAC5B,YAAY;IACZ,OAAO;IACP,iBAAiB;IACjB,oBAAoB;IACpB,sBAAsB;IACtB,OAAO;IACP,WAAW;IACX,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,wBAAwB;IACxB,aAAa;IACb,wBAAwB;IACxB,WAAW;IACX,QAAQ;IACR,MAAM;IACN,WAAW;IACX,oBAAoB;IACpB,yBAAyB;IACzB,kBAAkB;IAClB,0BAA0B;IAC1B,iBAAiB;IACjB,wBAAwB;IACxB,oBAAoB;CACrB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAC1C,CAAC;AAEF,8FAA8F;AAC9F,8FAA8F;AAC9F,+FAA+F;AAC/F,sCAAsC;AACtC,MAAM,UAAU,yBAAyB,CAAC,QAAgB;IACxD,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,yFAAyF;AACzF,yFAAyF;AACzF,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,OAAO,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -52,8 +52,9 @@ export declare class InputAccessoryView implements IAngularInputAccessoryViewInp
|
|
|
52
52
|
ariaValueText?: string;
|
|
53
53
|
private readonly elementRef;
|
|
54
54
|
emit(emitter: EventEmitter<ISymbioteEvent>, event: unknown): void;
|
|
55
|
+
private get descriptor();
|
|
55
56
|
get hostProps(): Record<string, unknown>;
|
|
56
|
-
|
|
57
|
+
private accessibilityInputs;
|
|
57
58
|
static ɵfac: i0.ɵɵFactoryDeclaration<InputAccessoryView, never>;
|
|
58
59
|
static ɵcmp: i0.ɵɵComponentDeclaration<InputAccessoryView, "InputAccessoryView", never, { "nativeID": { "alias": "nativeID"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "style": { "alias": "style"; "required": false; }; "testID": { "alias": "testID"; "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; }; }, { "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, never, ["*"], true, never>;
|
|
59
60
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
// InputAccessoryView, the Angular lifecycle half (iOS).
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
// Angular
|
|
1
|
+
// InputAccessoryView, the Angular lifecycle half (iOS). RCTInputAccessoryView is a real Fabric
|
|
2
|
+
// host node that docks its content above the keyboard; a TextInput points at it by nativeID through
|
|
3
|
+
// its inputAccessoryViewID. The host-node assembly (nativeID / backgroundColor / style /
|
|
4
|
+
// accessibility forwarding) lives framework-agnostic in
|
|
5
|
+
// @symbiote-native/components/renderInputAccessoryView and is shared verbatim with React/Vue; here
|
|
6
|
+
// Angular supplies only the lifecycle — it folds aria/role, reads the resolved props off the
|
|
7
|
+
// Descriptor, and nests the user children under the host via <ng-content>. The Angular twin of the
|
|
8
|
+
// React/Vue InputAccessoryView. No platform branch, so this stays flat.
|
|
7
9
|
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output, } from '@angular/core';
|
|
8
|
-
import { resolveAccessibilityProps, } from '@symbiote-native/components';
|
|
10
|
+
import { renderInputAccessoryView, resolveAccessibilityProps, } from '@symbiote-native/components';
|
|
9
11
|
import { isSymbioteEvent, } from '@symbiote-native/engine';
|
|
10
12
|
import { anchorHostStyle, InputAccessoryViewHost, SymbioteHostPropsDirective, } from '../../primitives';
|
|
11
13
|
import * as i0 from "@angular/core";
|
|
@@ -60,41 +62,28 @@ export class InputAccessoryView {
|
|
|
60
62
|
if (isSymbioteEvent(event))
|
|
61
63
|
emitter.emit(event);
|
|
62
64
|
}
|
|
63
|
-
//
|
|
64
|
-
//
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
get hostProps() {
|
|
68
|
-
const folded = this.folded;
|
|
69
|
-
return {
|
|
70
|
-
style: [anchorHostStyle(this.elementRef), this.style],
|
|
65
|
+
// renderInputAccessoryView owns the host-node assembly (shared with React/Vue); the adapter reads
|
|
66
|
+
// the resolved host props off the Descriptor it returns.
|
|
67
|
+
get descriptor() {
|
|
68
|
+
return renderInputAccessoryView({
|
|
71
69
|
nativeID: this.nativeID,
|
|
72
70
|
backgroundColor: this.backgroundColor,
|
|
71
|
+
style: this.style,
|
|
72
|
+
passthrough: resolveAccessibilityProps(this.accessibilityInputs()),
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
// The anchor's class-derived style goes FIRST, the Descriptor's resolved style SECOND —
|
|
76
|
+
// flattenStyle's later-wins collapse keeps an explicit [style] winning over its ambient class.
|
|
77
|
+
get hostProps() {
|
|
78
|
+
const descriptorProps = this.descriptor.props;
|
|
79
|
+
return { ...descriptorProps, style: [anchorHostStyle(this.elementRef), descriptorProps.style] };
|
|
80
|
+
}
|
|
81
|
+
// Typed as the a11y intersection WITH the string index (the bag renderInputAccessoryView spreads
|
|
82
|
+
// into the host props), so resolveAccessibilityProps's result stays assignable to passthrough.
|
|
83
|
+
accessibilityInputs() {
|
|
84
|
+
return {
|
|
73
85
|
testID: this.testID,
|
|
74
86
|
accessible: this.accessible,
|
|
75
|
-
accessibilityLabel: folded.accessibilityLabel,
|
|
76
|
-
accessibilityHint: folded.accessibilityHint,
|
|
77
|
-
accessibilityRole: folded.accessibilityRole,
|
|
78
|
-
accessibilityState: folded.accessibilityState,
|
|
79
|
-
accessibilityValue: folded.accessibilityValue,
|
|
80
|
-
accessibilityActions: folded.accessibilityActions,
|
|
81
|
-
accessibilityLabelledBy: folded.accessibilityLabelledBy,
|
|
82
|
-
importantForAccessibility: folded.importantForAccessibility,
|
|
83
|
-
accessibilityLiveRegion: folded.accessibilityLiveRegion,
|
|
84
|
-
screenReaderFocusable: folded.screenReaderFocusable,
|
|
85
|
-
accessibilityViewIsModal: folded.accessibilityViewIsModal,
|
|
86
|
-
accessibilityElementsHidden: folded.accessibilityElementsHidden,
|
|
87
|
-
accessibilityIgnoresInvertColors: folded.accessibilityIgnoresInvertColors,
|
|
88
|
-
accessibilityLanguage: folded.accessibilityLanguage,
|
|
89
|
-
accessibilityRespondsToUserInteraction: folded.accessibilityRespondsToUserInteraction,
|
|
90
|
-
accessibilityShowsLargeContentViewer: folded.accessibilityShowsLargeContentViewer,
|
|
91
|
-
accessibilityLargeContentTitle: folded.accessibilityLargeContentTitle,
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
// Fold the web aria-*/role aliases into the canonical accessibility* props once per render, so
|
|
95
|
-
// the host node never sees an aria-* key (native ignores them) — the shared transform.
|
|
96
|
-
get folded() {
|
|
97
|
-
return resolveAccessibilityProps({
|
|
98
87
|
accessibilityLabel: this.accessibilityLabel,
|
|
99
88
|
accessibilityHint: this.accessibilityHint,
|
|
100
89
|
accessibilityRole: this.accessibilityRole,
|
|
@@ -127,7 +116,7 @@ export class InputAccessoryView {
|
|
|
127
116
|
'aria-valuemin': this.ariaValueMin,
|
|
128
117
|
'aria-valuenow': this.ariaValueNow,
|
|
129
118
|
'aria-valuetext': this.ariaValueText,
|
|
130
|
-
}
|
|
119
|
+
};
|
|
131
120
|
}
|
|
132
121
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: InputAccessoryView, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
133
122
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: InputAccessoryView, isStandalone: true, selector: "InputAccessoryView", inputs: { nativeID: "nativeID", backgroundColor: "backgroundColor", style: "style", testID: "testID", 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: { accessibilityAction: "accessibilityAction", accessibilityTap: "accessibilityTap", magicTap: "magicTap", accessibilityEscape: "accessibilityEscape" }, ngImport: i0, template: `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/input-accessory-view/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/input-accessory-view/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AnimatedProps, dlog, isAnchor, reduceProps, routeProp, whenCommitted, createElement, appendChild, insertBefore, removeChild, } from '@symbiote-native/engine';
|
|
2
|
-
import {
|
|
2
|
+
import { createInitialStickyState, readLayoutNumber, reduceSticky, STICKY_HEADER_Z_INDEX, } from '@symbiote-native/components';
|
|
3
3
|
import { descriptorFor } from '@symbiote-native/components';
|
|
4
4
|
import { Platform } from '@symbiote-native/engine';
|
|
5
5
|
const contentProjection = new WeakMap();
|
|
@@ -20,20 +20,23 @@ function isProjectedRefreshControl(node) {
|
|
|
20
20
|
// a RefreshControl sibling and also leaves the projected one inside the scroll content.
|
|
21
21
|
return isAnchor(node) && node.children.some(isProjectedRefreshControl);
|
|
22
22
|
}
|
|
23
|
+
// The SECOND Angular sticky effect-runner (auto-projected children can't be arbitrary Angular
|
|
24
|
+
// component classes, so the controller drives engine nodes directly). It shares the ONE
|
|
25
|
+
// reduceSticky state machine with ScrollViewStickyHeader — the DECISIONS (zero-swallow gate, debounce
|
|
26
|
+
// delay, rebuild ranges, cross-talk record) live there; this runner only EXECUTES the effects on the
|
|
27
|
+
// engine node (build interpolation + wire listener, hold the debounce timer, re-apply the node props).
|
|
28
|
+
// Because it owns the child index, it consumes the reducer's record-header-y effect for cross-talk.
|
|
23
29
|
class StickyProjectionWrapper {
|
|
24
30
|
controller;
|
|
25
31
|
childIndex;
|
|
26
32
|
node;
|
|
27
|
-
|
|
28
|
-
layoutY = 0;
|
|
29
|
-
layoutHeight = 0;
|
|
33
|
+
state = createInitialStickyState();
|
|
30
34
|
animatedTranslateY;
|
|
35
|
+
interpolation;
|
|
31
36
|
animatedProps;
|
|
32
37
|
cancelBind;
|
|
33
38
|
listenerId;
|
|
34
39
|
debounceTimer;
|
|
35
|
-
translateY = null;
|
|
36
|
-
haveReceivedInitialZeroTranslateY = true;
|
|
37
40
|
constructor(controller, childIndex, node) {
|
|
38
41
|
this.controller = controller;
|
|
39
42
|
this.childIndex = childIndex;
|
|
@@ -42,13 +45,13 @@ class StickyProjectionWrapper {
|
|
|
42
45
|
inputRange: [-1, 0],
|
|
43
46
|
outputRange: [0, 0],
|
|
44
47
|
});
|
|
45
|
-
this.
|
|
48
|
+
this.dispatch({ kind: 'inputs-changed' });
|
|
46
49
|
}
|
|
47
50
|
destroy() {
|
|
48
51
|
this.cancelBind?.();
|
|
49
52
|
this.cancelBind = undefined;
|
|
50
|
-
if (this.listenerId !== undefined) {
|
|
51
|
-
this.
|
|
53
|
+
if (this.interpolation !== undefined && this.listenerId !== undefined) {
|
|
54
|
+
this.interpolation.removeListener(this.listenerId);
|
|
52
55
|
this.listenerId = undefined;
|
|
53
56
|
}
|
|
54
57
|
if (this.debounceTimer !== undefined) {
|
|
@@ -60,62 +63,81 @@ class StickyProjectionWrapper {
|
|
|
60
63
|
this.animatedProps = undefined;
|
|
61
64
|
}
|
|
62
65
|
}
|
|
66
|
+
// The controller calls this when a cross-talk input changed (a sibling recorded its y): rebuild the
|
|
67
|
+
// ranges off the new nextStickyHeaderY.
|
|
63
68
|
rebuild() {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
measured: this.measured,
|
|
69
|
+
this.dispatch({ kind: 'inputs-changed' });
|
|
70
|
+
}
|
|
71
|
+
inputs() {
|
|
72
|
+
return {
|
|
73
|
+
os: Platform.OS,
|
|
70
74
|
inverted: this.controller.config.invertStickyHeaders,
|
|
71
75
|
scrollViewHeight: this.controller.config.scrollViewHeight,
|
|
72
|
-
layoutY: this.layoutY,
|
|
73
|
-
layoutHeight: this.layoutHeight,
|
|
74
76
|
nextHeaderLayoutY: this.controller.nextStickyHeaderY(this.childIndex),
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
77
|
+
index: this.childIndex,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
dispatch(action) {
|
|
81
|
+
this.runEffects(reduceSticky(this.state, action, this.inputs()).effects);
|
|
82
|
+
}
|
|
83
|
+
runEffects(effects) {
|
|
84
|
+
for (const effect of effects) {
|
|
85
|
+
switch (effect.kind) {
|
|
86
|
+
case 'rebuild-interpolation': {
|
|
87
|
+
if (this.interpolation !== undefined && this.listenerId !== undefined) {
|
|
88
|
+
this.interpolation.removeListener(this.listenerId);
|
|
89
|
+
this.listenerId = undefined;
|
|
90
|
+
}
|
|
91
|
+
const next = this.controller.config.scrollAnimatedValue.interpolate({
|
|
92
|
+
inputRange: effect.inputRange,
|
|
93
|
+
outputRange: effect.outputRange,
|
|
94
|
+
});
|
|
95
|
+
this.listenerId = next.addListener(this.animatedValueListener);
|
|
96
|
+
this.interpolation = next;
|
|
97
|
+
this.animatedTranslateY = next;
|
|
98
|
+
this.applyProps();
|
|
99
|
+
dlog(`Angular ScrollView projection sticky index=${this.childIndex} measured=${this.state.measured} y=${this.state.layoutY}`);
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
case 'schedule-debounce':
|
|
103
|
+
if (this.debounceTimer !== undefined)
|
|
104
|
+
clearTimeout(this.debounceTimer);
|
|
105
|
+
this.debounceTimer = setTimeout(() => {
|
|
106
|
+
this.debounceTimer = undefined;
|
|
107
|
+
this.dispatch({ kind: 'debounce-fired', value: effect.value });
|
|
108
|
+
}, effect.delay);
|
|
109
|
+
break;
|
|
110
|
+
case 'apply-passthrough':
|
|
111
|
+
this.applyProps();
|
|
112
|
+
break;
|
|
113
|
+
case 'record-header-y':
|
|
114
|
+
this.controller.recordHeaderLayoutY(effect.index, effect.y);
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
83
118
|
}
|
|
84
119
|
onLayout = (event) => {
|
|
85
120
|
const y = readLayoutNumber(event, 'y');
|
|
86
121
|
const height = readLayoutNumber(event, 'height');
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
this.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
this.rebuild();
|
|
122
|
+
// Keep the previous value when a field is absent (RN sets state only on a defined read).
|
|
123
|
+
this.dispatch({
|
|
124
|
+
kind: 'layout',
|
|
125
|
+
y: y ?? this.state.layoutY,
|
|
126
|
+
height: height ?? this.state.layoutHeight,
|
|
127
|
+
});
|
|
94
128
|
};
|
|
95
129
|
animatedValueListener = ({ value }) => {
|
|
96
|
-
if (typeof value
|
|
97
|
-
|
|
98
|
-
if (value === 0 && !this.haveReceivedInitialZeroTranslateY) {
|
|
99
|
-
this.haveReceivedInitialZeroTranslateY = true;
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
if (this.debounceTimer !== undefined)
|
|
103
|
-
clearTimeout(this.debounceTimer);
|
|
104
|
-
this.debounceTimer = setTimeout(() => {
|
|
105
|
-
this.translateY = value;
|
|
106
|
-
if (value !== 0)
|
|
107
|
-
this.haveReceivedInitialZeroTranslateY = false;
|
|
108
|
-
this.applyProps();
|
|
109
|
-
}, stickyDebounceMs(Platform.OS));
|
|
130
|
+
if (typeof value === 'number')
|
|
131
|
+
this.dispatch({ kind: 'animated-tick', value });
|
|
110
132
|
};
|
|
111
133
|
props() {
|
|
112
134
|
const style = {
|
|
113
135
|
transform: [{ translateY: this.animatedTranslateY }],
|
|
114
136
|
zIndex: STICKY_HEADER_Z_INDEX,
|
|
115
137
|
};
|
|
116
|
-
const passthrough = this.translateY === null
|
|
138
|
+
const passthrough = this.state.translateY === null
|
|
117
139
|
? undefined
|
|
118
|
-
: { transform: [{ translateY: this.translateY }], zIndex: STICKY_HEADER_Z_INDEX };
|
|
140
|
+
: { transform: [{ translateY: this.state.translateY }], zIndex: STICKY_HEADER_Z_INDEX };
|
|
119
141
|
return {
|
|
120
142
|
style: passthrough === undefined ? style : [style, passthrough],
|
|
121
143
|
onLayout: this.onLayout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../../src/components/scroll-view/projection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../../src/components/scroll-view/projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
// re-rendering the projected component's native prop surface as the wrapper around the scroll view
|
|
20
20
|
// (RN's Android shape), while excluding the original projected node from the content slot.
|
|
21
21
|
import { Directive, ElementRef, EventEmitter, Output, ViewChild, ContentChild, inject, } from '@angular/core';
|
|
22
|
-
import { attachStickyScroll, buildScrollViewHandle, didContentSizeChange, forwardScrollEvent, readLayoutDimension, resolveAccessibilityProps, resolveDecelerationRate, selectScrollIntrinsics, splitLayoutProps, } from '@symbiote-native/components';
|
|
22
|
+
import { attachStickyScroll, buildScrollViewHandle, didContentSizeChange, forwardScrollEvent, readLayoutDimension, resolveAccessibilityProps, resolveDecelerationRate, resolveScrollForwarding, selectScrollIntrinsics, splitLayoutProps, } from '@symbiote-native/components';
|
|
23
23
|
import { AnimatedValue, dlog, event as animatedEvent, isNativeAnimatedAvailable, isSymbioteNode, resolveClassName, whenCommitted, } from '@symbiote-native/engine';
|
|
24
24
|
import { SymbioteHostPropsDirective } from '../../primitives';
|
|
25
25
|
import { RefreshControl } from '../refresh-control';
|
|
@@ -410,33 +410,36 @@ export class ScrollViewBase {
|
|
|
410
410
|
// by the post-commit attach below, so onScroll forwards to the user with throttle 1
|
|
411
411
|
// (ScrollView.js:1798). Without it, Animated.event drives the value each frame (the JS jitter)
|
|
412
412
|
// and forwards the user handler as the listener passthrough.
|
|
413
|
+
// The scroll-forwarding DECISIONS (which onScroll path, the 1/16 throttle defaults, whether to
|
|
414
|
+
// capture the viewport height) are folded out to the shared resolveScrollForwarding; here Angular
|
|
415
|
+
// only EXECUTES them, keeping its stable-reference handlers (stickyOnScrollHandler /
|
|
416
|
+
// handleInvertedStickyLayout / emitterCallback) so a fresh closure never forces a re-clone cascade.
|
|
413
417
|
const nativeStickyAvailable = this.hasStickyHeaders && isNativeAnimatedAvailable();
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
418
|
+
const forwarding = resolveScrollForwarding({
|
|
419
|
+
hasStickyHeaders: this.hasStickyHeaders,
|
|
420
|
+
nativeStickyAvailable,
|
|
421
|
+
invertStickyHeaders: this.invertStickyHeaders,
|
|
422
|
+
scrollEventThrottle: this.scrollEventThrottle,
|
|
423
|
+
maintainVisibleContentPosition: this.maintainVisibleContentPosition,
|
|
424
|
+
snapToAlignment: this.snapToAlignment,
|
|
425
|
+
});
|
|
426
|
+
// onScroll: the JS-fallback path uses the cached Animated.event handler; the native + plain paths
|
|
427
|
+
// forward the user handler as-is (the native driver attaches the value on the UI thread).
|
|
428
|
+
if (forwarding.mode === 'sticky-js') {
|
|
429
|
+
bag.onScroll = this.stickyOnScrollHandler(this.onScroll);
|
|
430
|
+
}
|
|
431
|
+
else if (this.onScroll !== undefined) {
|
|
432
|
+
bag.onScroll = this.onScroll;
|
|
433
|
+
}
|
|
434
|
+
if (forwarding.scrollEventThrottle !== undefined) {
|
|
435
|
+
bag.scrollEventThrottle = forwarding.scrollEventThrottle;
|
|
436
|
+
}
|
|
437
|
+
// Inverted sticky headers need the viewport height (RN _handleLayout): capture it on the
|
|
438
|
+
// scroll-view onLayout, then call the user's handler. Otherwise forward the layout emitter.
|
|
439
|
+
if (forwarding.capturesViewportHeight) {
|
|
440
|
+
bag.onLayout = this.handleInvertedStickyLayout;
|
|
434
441
|
}
|
|
435
442
|
else {
|
|
436
|
-
if (this.onScroll !== undefined)
|
|
437
|
-
bag.onScroll = this.onScroll;
|
|
438
|
-
if (this.scrollEventThrottle !== undefined)
|
|
439
|
-
bag.scrollEventThrottle = this.scrollEventThrottle;
|
|
440
443
|
const layoutCallback = this.emitterCallback(this.layout);
|
|
441
444
|
if (layoutCallback !== undefined)
|
|
442
445
|
bag.onLayout = layoutCallback;
|