@symbiote-native/angular 1.0.0 → 2.0.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/README.md +13 -10
- package/babel-register-composed.cjs +41 -19
- package/bin/symbiote-angular-dev.cjs +16 -4
- package/build/angular/anchor-host-registry.js +1 -17
- package/build/angular/anchor-host-registry.js.map +1 -1
- package/build/angular/change-detection-flush.d.ts +31 -0
- package/build/angular/change-detection-flush.js +110 -0
- package/build/angular/change-detection-flush.js.map +1 -0
- package/build/angular/components/activity-indicator-props.d.ts +2 -0
- package/build/angular/components/activity-indicator-props.js +2 -0
- package/build/angular/components/activity-indicator-props.js.map +1 -0
- package/build/angular/components/button-props.d.ts +2 -0
- package/build/angular/components/button-props.js +2 -0
- package/build/angular/components/button-props.js.map +1 -0
- package/build/angular/components/flat-list/index.d.ts +2 -1
- package/build/angular/components/flat-list/index.js +22 -10
- package/build/angular/components/flat-list/index.js.map +1 -1
- package/build/angular/components/image-background-props.d.ts +6 -0
- package/build/angular/components/image-background-props.js +2 -0
- package/build/angular/components/image-background-props.js.map +1 -0
- package/build/angular/components/{image/shared.d.ts → image-shared.d.ts} +1 -1
- package/build/angular/components/{image/shared.js → image-shared.js} +7 -2
- package/build/angular/components/image-shared.js.map +1 -0
- package/build/angular/components/input-accessory-view-props.d.ts +7 -0
- package/build/angular/components/input-accessory-view-props.js +9 -0
- package/build/angular/components/input-accessory-view-props.js.map +1 -0
- package/build/angular/components/keyboard-avoiding-view/index.js +11 -17
- package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
- package/build/angular/components/modal/index.d.ts +1 -0
- package/build/angular/components/modal/index.js +19 -12
- package/build/angular/components/modal/index.js.map +1 -1
- package/build/angular/components/pressable-props.d.ts +32 -0
- package/build/angular/components/pressable-props.js +11 -0
- package/build/angular/components/pressable-props.js.map +1 -0
- package/build/angular/components/refresh-control-props.d.ts +16 -0
- package/build/angular/components/refresh-control-props.js +14 -0
- package/build/angular/components/refresh-control-props.js.map +1 -0
- package/build/angular/components/safe-area-view-props.d.ts +7 -0
- package/build/angular/components/safe-area-view-props.js +11 -0
- package/build/angular/components/safe-area-view-props.js.map +1 -0
- package/build/angular/components/scroll-view-props.d.ts +76 -0
- package/build/angular/components/scroll-view-props.js +18 -0
- package/build/angular/components/scroll-view-props.js.map +1 -0
- package/build/angular/components/text-input-props.d.ts +45 -0
- package/build/angular/components/text-input-props.js +18 -0
- package/build/angular/components/text-input-props.js.map +1 -0
- package/build/angular/components/touchable-native-feedback/touchable-native-feedback-props.d.ts +6 -0
- package/build/angular/components/touchable-native-feedback/touchable-native-feedback-props.js +2 -0
- package/build/angular/components/touchable-native-feedback/touchable-native-feedback-props.js.map +1 -0
- package/build/angular/components/touchable-props.d.ts +14 -0
- package/build/angular/components/touchable-props.js +13 -0
- package/build/angular/components/touchable-props.js.map +1 -0
- package/build/angular/components/touchable-without-feedback/touchable-without-feedback-props.d.ts +3 -0
- package/build/angular/components/touchable-without-feedback/touchable-without-feedback-props.js +2 -0
- package/build/angular/components/touchable-without-feedback/touchable-without-feedback-props.js.map +1 -0
- package/build/angular/components/virtualized-list/index.d.ts +5 -1
- package/build/angular/components/virtualized-list/index.js +366 -280
- package/build/angular/components/virtualized-list/index.js.map +1 -1
- package/build/angular/components.d.ts +20 -26
- package/build/angular/components.js +12 -14
- package/build/angular/components.js.map +1 -1
- package/build/angular/create-portal/index.d.ts +2 -2
- package/build/angular/create-portal/index.js +5 -5
- package/build/angular/create-tunnel/index.js +1 -1
- package/build/angular/element-props.d.ts +53 -0
- package/build/angular/element-props.js +2 -0
- package/build/angular/element-props.js.map +1 -0
- package/build/angular/elements.d.ts +528 -0
- package/build/angular/elements.js +1444 -0
- package/build/angular/elements.js.map +1 -0
- package/build/angular/host-instance/index.js +1 -1
- package/build/angular/index.d.ts +4 -2
- package/build/angular/index.js +15 -1
- package/build/angular/index.js.map +1 -1
- package/build/angular/modules/animated/create-animated-component.d.ts +5 -6
- package/build/angular/modules/animated/create-animated-component.js +60 -73
- package/build/angular/modules/animated/create-animated-component.js.map +1 -1
- package/build/angular/modules/animated/index.js +1 -1
- package/build/angular/modules/animated/index.js.map +1 -1
- package/build/angular/modules/image/index.d.ts +3 -0
- package/build/angular/modules/image/index.js +16 -0
- package/build/angular/modules/image/index.js.map +1 -0
- package/build/angular/primitives/index.d.ts +18 -18
- package/build/angular/primitives/index.js +40 -36
- package/build/angular/primitives/index.js.map +1 -1
- package/build/angular/primitives/shared.d.ts +2 -3
- package/build/angular/primitives/shared.js +8 -53
- package/build/angular/primitives/shared.js.map +1 -1
- package/build/angular/register.d.ts +1 -1
- package/build/angular/register.js +12 -31
- package/build/angular/register.js.map +1 -1
- package/build/angular/render/index.js +3 -3
- package/build/angular/render/index.js.map +1 -1
- package/build/angular/renderer/index.js +113 -67
- package/build/angular/renderer/index.js.map +1 -1
- package/build/angular/renderer/value-change.d.ts +2 -0
- package/build/angular/renderer/value-change.js +9 -0
- package/build/angular/renderer/value-change.js.map +1 -0
- package/metro-config.cjs +54 -20
- package/metro-css-parser.cjs +2 -1
- package/package.json +5 -14
- package/src/anchor-host-registry.ts +1 -17
- package/src/change-detection-flush.ts +120 -0
- package/src/components/activity-indicator-props.ts +21 -0
- package/src/components/button-props.ts +26 -0
- package/src/components/flat-list/index.ts +12 -4
- package/src/components/image-background-props.ts +24 -0
- package/src/components/{image/shared.ts → image-shared.ts} +6 -1
- package/src/components/input-accessory-view-props.ts +21 -0
- package/src/components/keyboard-avoiding-view/index.ts +6 -9
- package/src/components/modal/index.ts +15 -7
- package/src/components/pressable-props.ts +73 -0
- package/src/components/refresh-control-props.ts +43 -0
- package/src/components/safe-area-view-props.ts +28 -0
- package/src/components/scroll-view-props.ts +109 -0
- package/src/components/text-input-props.ts +72 -0
- package/src/components/touchable-native-feedback/touchable-native-feedback-props.ts +23 -0
- package/src/components/touchable-props.ts +30 -0
- package/src/components/touchable-without-feedback/touchable-without-feedback-props.ts +21 -0
- package/src/components/virtualized-list/index.ts +239 -156
- package/src/components.ts +84 -35
- package/src/create-portal/index.ts +5 -5
- package/src/create-tunnel/index.ts +1 -1
- package/src/diagnostics.ts +1 -1
- package/src/element-props.ts +90 -0
- package/src/elements.ts +919 -0
- package/src/host-instance/index.ts +1 -1
- package/src/index.ts +52 -15
- package/src/modules/animated/create-animated-component.ts +50 -55
- package/src/modules/animated/index.ts +1 -1
- package/src/modules/image/index.ts +18 -0
- package/src/primitives/index.ts +22 -18
- package/src/primitives/shared.ts +11 -44
- package/src/register.ts +12 -40
- package/src/render/index.ts +3 -3
- package/src/renderer/index.ts +122 -73
- package/src/renderer/value-change.ts +8 -0
- package/babel-lower-host-primitives.cjs +0 -636
- package/build/angular/components/activity-indicator/index.android.d.ts +0 -13
- package/build/angular/components/activity-indicator/index.android.js +0 -29
- package/build/angular/components/activity-indicator/index.android.js.map +0 -1
- package/build/angular/components/activity-indicator/index.d.ts +0 -1
- package/build/angular/components/activity-indicator/index.ios.d.ts +0 -9
- package/build/angular/components/activity-indicator/index.ios.js +0 -26
- package/build/angular/components/activity-indicator/index.ios.js.map +0 -1
- package/build/angular/components/activity-indicator/index.js +0 -4
- package/build/angular/components/activity-indicator/index.js.map +0 -1
- package/build/angular/components/activity-indicator/shared.d.ts +0 -67
- package/build/angular/components/activity-indicator/shared.js +0 -260
- package/build/angular/components/activity-indicator/shared.js.map +0 -1
- package/build/angular/components/button.d.ts +0 -68
- package/build/angular/components/button.js +0 -360
- package/build/angular/components/button.js.map +0 -1
- package/build/angular/components/image/index.android.d.ts +0 -15
- package/build/angular/components/image/index.android.js +0 -83
- package/build/angular/components/image/index.android.js.map +0 -1
- package/build/angular/components/image/index.d.ts +0 -1
- package/build/angular/components/image/index.ios.d.ts +0 -15
- package/build/angular/components/image/index.ios.js +0 -83
- package/build/angular/components/image/index.ios.js.map +0 -1
- package/build/angular/components/image/index.js +0 -3
- package/build/angular/components/image/index.js.map +0 -1
- package/build/angular/components/image/shared.js.map +0 -1
- package/build/angular/components/image-background.d.ts +0 -85
- package/build/angular/components/image-background.js +0 -443
- package/build/angular/components/image-background.js.map +0 -1
- package/build/angular/components/input-accessory-view/index.d.ts +0 -66
- package/build/angular/components/input-accessory-view/index.js +0 -287
- package/build/angular/components/input-accessory-view/index.js.map +0 -1
- package/build/angular/components/pressable/index.d.ts +0 -134
- package/build/angular/components/pressable/index.js +0 -514
- package/build/angular/components/pressable/index.js.map +0 -1
- package/build/angular/components/refresh-control/index.d.ts +0 -91
- package/build/angular/components/refresh-control/index.js +0 -382
- package/build/angular/components/refresh-control/index.js.map +0 -1
- package/build/angular/components/safe-area-view/index.d.ts +0 -64
- package/build/angular/components/safe-area-view/index.js +0 -287
- package/build/angular/components/safe-area-view/index.js.map +0 -1
- package/build/angular/components/scroll-view/index.android.d.ts +0 -20
- package/build/angular/components/scroll-view/index.android.js +0 -262
- package/build/angular/components/scroll-view/index.android.js.map +0 -1
- package/build/angular/components/scroll-view/index.d.ts +0 -3
- package/build/angular/components/scroll-view/index.ios.d.ts +0 -8
- package/build/angular/components/scroll-view/index.ios.js +0 -92
- package/build/angular/components/scroll-view/index.ios.js.map +0 -1
- package/build/angular/components/scroll-view/index.js +0 -6
- package/build/angular/components/scroll-view/index.js.map +0 -1
- package/build/angular/components/scroll-view/projection.d.ts +0 -67
- package/build/angular/components/scroll-view/projection.js +0 -560
- package/build/angular/components/scroll-view/projection.js.map +0 -1
- package/build/angular/components/scroll-view/shared.d.ts +0 -241
- package/build/angular/components/scroll-view/shared.js +0 -848
- package/build/angular/components/scroll-view/shared.js.map +0 -1
- package/build/angular/components/scroll-view/sticky-header.d.ts +0 -40
- package/build/angular/components/scroll-view/sticky-header.js +0 -224
- package/build/angular/components/scroll-view/sticky-header.js.map +0 -1
- package/build/angular/components/switch/index.android.d.ts +0 -24
- package/build/angular/components/switch/index.android.js +0 -112
- package/build/angular/components/switch/index.android.js.map +0 -1
- package/build/angular/components/switch/index.d.ts +0 -1
- package/build/angular/components/switch/index.ios.d.ts +0 -23
- package/build/angular/components/switch/index.ios.js +0 -111
- package/build/angular/components/switch/index.ios.js.map +0 -1
- package/build/angular/components/switch/index.js +0 -4
- package/build/angular/components/switch/index.js.map +0 -1
- package/build/angular/components/switch/shared.d.ts +0 -49
- package/build/angular/components/switch/shared.js +0 -191
- package/build/angular/components/switch/shared.js.map +0 -1
- package/build/angular/components/text-input.d.ts +0 -167
- package/build/angular/components/text-input.js +0 -684
- package/build/angular/components/text-input.js.map +0 -1
- package/build/angular/components/touchable/index.d.ts +0 -283
- package/build/angular/components/touchable/index.js +0 -1453
- package/build/angular/components/touchable/index.js.map +0 -1
- package/build/angular/components/touchable-native-feedback/index.d.ts +0 -87
- package/build/angular/components/touchable-native-feedback/index.js +0 -409
- package/build/angular/components/touchable-native-feedback/index.js.map +0 -1
- package/build/angular/state-style.d.ts +0 -9
- package/build/angular/state-style.js +0 -39
- package/build/angular/state-style.js.map +0 -1
- package/metro-transformer.cjs +0 -69
- package/src/components/activity-indicator/index.android.ts +0 -23
- package/src/components/activity-indicator/index.ios.ts +0 -21
- package/src/components/activity-indicator/index.ts +0 -4
- package/src/components/activity-indicator/shared.ts +0 -225
- package/src/components/button.ts +0 -237
- package/src/components/image/index.android.ts +0 -95
- package/src/components/image/index.ios.ts +0 -95
- package/src/components/image/index.ts +0 -3
- package/src/components/image-background.ts +0 -308
- package/src/components/input-accessory-view/index.ts +0 -246
- package/src/components/pressable/index.ts +0 -522
- package/src/components/refresh-control/index.ts +0 -349
- package/src/components/safe-area-view/index.ts +0 -247
- package/src/components/scroll-view/index.android.ts +0 -205
- package/src/components/scroll-view/index.ios.ts +0 -81
- package/src/components/scroll-view/index.ts +0 -7
- package/src/components/scroll-view/projection.ts +0 -713
- package/src/components/scroll-view/shared.ts +0 -1093
- package/src/components/scroll-view/sticky-header.ts +0 -267
- package/src/components/switch/index.android.ts +0 -113
- package/src/components/switch/index.ios.ts +0 -112
- package/src/components/switch/index.ts +0 -4
- package/src/components/switch/shared.ts +0 -284
- package/src/components/text-input.ts +0 -669
- package/src/components/touchable/index.ts +0 -956
- package/src/components/touchable-native-feedback/index.ts +0 -327
- package/src/state-style.ts +0 -39
package/README.md
CHANGED
|
@@ -52,24 +52,27 @@ RNAppRegistry.registerRunnable(appName, ({ rootTag }) => {
|
|
|
52
52
|
});
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
The app is ordinary standalone Angular
|
|
56
|
-
|
|
55
|
+
The app is ordinary standalone Angular. The native primitives are lowercase intrinsic tags, same as
|
|
56
|
+
every other adapter — Angular still needs them declared in the component's `imports:` array (an
|
|
57
|
+
Angular "element directive" is what makes `ngtsc` accept the tag with typed props), so
|
|
58
|
+
`SYMBIOTE_ELEMENTS` from `@symbiote-native/angular` covers the whole primitive surface in one import.
|
|
59
|
+
A tap→increment counter:
|
|
57
60
|
|
|
58
61
|
```ts
|
|
59
62
|
import { Component, signal } from '@angular/core';
|
|
60
|
-
import {
|
|
63
|
+
import { SYMBIOTE_ELEMENTS } from '@symbiote-native/angular';
|
|
61
64
|
|
|
62
65
|
@Component({
|
|
63
66
|
selector: 'app-root',
|
|
64
67
|
standalone: true,
|
|
65
|
-
imports: [
|
|
68
|
+
imports: [SYMBIOTE_ELEMENTS],
|
|
66
69
|
template: `
|
|
67
|
-
<
|
|
68
|
-
<
|
|
69
|
-
<
|
|
70
|
-
<
|
|
71
|
-
</
|
|
72
|
-
</
|
|
70
|
+
<view [style]="{ padding: 24 }">
|
|
71
|
+
<text>Taps: {{ count() }}</text>
|
|
72
|
+
<pressable (press)="count.set(count() + 1)">
|
|
73
|
+
<text>Tap me</text>
|
|
74
|
+
</pressable>
|
|
75
|
+
</view>
|
|
73
76
|
`,
|
|
74
77
|
})
|
|
75
78
|
export class AppComponent {
|
|
@@ -10,31 +10,53 @@
|
|
|
10
10
|
// truth: core/components/src/component-names/index.ios.ts's ISymbioteIntrinsic union. Kept in
|
|
11
11
|
// sync by the drift-protection test in babel-register-composed.test.ts.
|
|
12
12
|
const PRIMITIVE_SELECTORS = new Set([
|
|
13
|
-
'
|
|
13
|
+
'view',
|
|
14
14
|
// Same RCTView as a plain view; the tag exists so the host-behavior registry can key on it.
|
|
15
|
-
'
|
|
16
|
-
'
|
|
17
|
-
|
|
18
|
-
'
|
|
19
|
-
|
|
20
|
-
'
|
|
21
|
-
'
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
'pressable',
|
|
16
|
+
// RN's TouchableOpacity is ONE Animated.View, so this is the same RCTView again — the tag
|
|
17
|
+
// carries the press machine plus the engine-side opacity fade.
|
|
18
|
+
'touchable-opacity',
|
|
19
|
+
// Same RCTView again, plus the underlay show/hide machine on the engine node.
|
|
20
|
+
'touchable-highlight',
|
|
21
|
+
// The one primitive that resolves to NO Fabric view: RN's TouchableNativeFeedback clones onto
|
|
22
|
+
// its single child and renders nothing (TouchableNativeFeedback.js:339). It is still a PRIMITIVE
|
|
23
|
+
// here — what this Set decides is "not a composed Angular component", and an anchor-backed
|
|
24
|
+
// primitive is exactly that.
|
|
25
|
+
'touchable-native-feedback',
|
|
26
|
+
// The second anchor-backed primitive, same shape (TouchableWithoutFeedback.js:286).
|
|
27
|
+
'touchable-without-feedback',
|
|
28
|
+
'button',
|
|
29
|
+
'text',
|
|
30
|
+
'image',
|
|
31
|
+
// The box RN wraps the background image in — the tag an app writes. The image itself is built by
|
|
32
|
+
// the behavior and never named in a template, so it needs no entry.
|
|
33
|
+
'image-background',
|
|
34
|
+
'scroll-view',
|
|
35
|
+
'scroll-content',
|
|
36
|
+
'horizontal-scroll-view',
|
|
37
|
+
'horizontal-scroll-content',
|
|
38
|
+
'text-input',
|
|
39
|
+
'text-input-multiline',
|
|
24
40
|
// The COMPONENT path's pair. Only a lowering transform may emit the plain tags above — those
|
|
25
41
|
// carry the engine's TextInput machine, and this adapter's own component runs that state in
|
|
26
42
|
// its template. See `core/components/src/component-names/shared.ts`.
|
|
27
|
-
'
|
|
28
|
-
'
|
|
29
|
-
'
|
|
43
|
+
'text-input-managed',
|
|
44
|
+
'text-input-multiline-managed',
|
|
45
|
+
'switch',
|
|
30
46
|
// The component path's spelling — same native view, a tag the engine's Switch behavior does
|
|
31
47
|
// not carry. See `core/components/src/component-names/shared.ts`.
|
|
32
|
-
'
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
'
|
|
36
|
-
'
|
|
37
|
-
'
|
|
48
|
+
'switch-managed',
|
|
49
|
+
// The centering RCTView RN wraps the spinner in — the tag an app writes — plus the native
|
|
50
|
+
// spinner the ActivityIndicator behavior builds under it.
|
|
51
|
+
'activity-indicator',
|
|
52
|
+
'activity-indicator-spinner',
|
|
53
|
+
'safe-area-view',
|
|
54
|
+
'modal',
|
|
55
|
+
'refresh-control',
|
|
56
|
+
// RN's JS sticky wrapper as a tag: the same RCTView again, carrying the pin the engine's
|
|
57
|
+
// ScrollView behavior drives.
|
|
58
|
+
'sticky-header',
|
|
59
|
+
'input-accessory-view',
|
|
38
60
|
]);
|
|
39
61
|
|
|
40
62
|
// Inject from the package barrel — the ONE resolution route every consumer already uses, so the
|
|
@@ -37,7 +37,10 @@ function resolveWatchTsconfig(tsconfigName) {
|
|
|
37
37
|
// broke `@types/node` resolution (TS2688) even though the extended real config was found fine.
|
|
38
38
|
const buildDir = path.resolve(projectRoot, 'build');
|
|
39
39
|
fs.mkdirSync(buildDir, { recursive: true });
|
|
40
|
-
const watchConfigPath = path.join(
|
|
40
|
+
const watchConfigPath = path.join(
|
|
41
|
+
buildDir,
|
|
42
|
+
`symbiote-angular-dev-watch-${process.pid}.json`,
|
|
43
|
+
);
|
|
41
44
|
fs.writeFileSync(
|
|
42
45
|
watchConfigPath,
|
|
43
46
|
JSON.stringify({
|
|
@@ -53,7 +56,10 @@ function resolveWatchTsconfig(tsconfigName) {
|
|
|
53
56
|
// reliably blows past macOS's per-process fd limit (EMFILE) — doubly likely here since ngc
|
|
54
57
|
// --watch adds a second watcher on top of Metro's own. Warn instead of letting everyone
|
|
55
58
|
// individually debug a native stack trace down to this one missing binary.
|
|
56
|
-
const watchmanCheck = spawnSync('watchman', ['--version'], {
|
|
59
|
+
const watchmanCheck = spawnSync('watchman', ['--version'], {
|
|
60
|
+
stdio: 'ignore',
|
|
61
|
+
shell: true,
|
|
62
|
+
});
|
|
57
63
|
if (watchmanCheck.status !== 0) {
|
|
58
64
|
console.warn(
|
|
59
65
|
'[symbiote-angular-dev] watchman not found on PATH. Metro will fall back to watching files ' +
|
|
@@ -62,7 +68,10 @@ if (watchmanCheck.status !== 0) {
|
|
|
62
68
|
);
|
|
63
69
|
}
|
|
64
70
|
|
|
65
|
-
const initialBuild = spawnSync('ngc', ['-p', TSCONFIG], {
|
|
71
|
+
const initialBuild = spawnSync('ngc', ['-p', TSCONFIG], {
|
|
72
|
+
stdio: 'inherit',
|
|
73
|
+
shell: true,
|
|
74
|
+
});
|
|
66
75
|
if (initialBuild.status !== 0) {
|
|
67
76
|
process.exit(initialBuild.status ?? 1);
|
|
68
77
|
}
|
|
@@ -72,7 +81,10 @@ const ngcWatch = spawn('ngc', ['-p', watchTsconfigPath, '--watch'], {
|
|
|
72
81
|
stdio: 'inherit',
|
|
73
82
|
shell: true,
|
|
74
83
|
});
|
|
75
|
-
const metro = spawn('react-native', ['start', ...metroArgs], {
|
|
84
|
+
const metro = spawn('react-native', ['start', ...metroArgs], {
|
|
85
|
+
stdio: 'inherit',
|
|
86
|
+
shell: true,
|
|
87
|
+
});
|
|
76
88
|
|
|
77
89
|
function stopNgcWatch() {
|
|
78
90
|
ngcWatch.kill();
|
|
@@ -32,7 +32,6 @@ const ANCHOR_HOST_COMPONENTS = new Set([
|
|
|
32
32
|
// view instead (a real device-visible bug, not a silent no-op). This Set holds only
|
|
33
33
|
// adapter/engine-owned selectors; app code and third-party packages self-register their own
|
|
34
34
|
// composed components through registerComposedComponent instead of being hardcoded here.
|
|
35
|
-
'ActivityIndicator',
|
|
36
35
|
'Button',
|
|
37
36
|
'FlatList',
|
|
38
37
|
'AnimatedView',
|
|
@@ -46,30 +45,15 @@ const ANCHOR_HOST_COMPONENTS = new Set([
|
|
|
46
45
|
'symbiote-descriptor-outlet',
|
|
47
46
|
'tunnel-out',
|
|
48
47
|
'Image',
|
|
49
|
-
'ImageBackground',
|
|
50
|
-
'InputAccessoryView',
|
|
51
48
|
'KeyboardAvoidingView',
|
|
52
49
|
'Modal',
|
|
53
|
-
'Pressable',
|
|
54
|
-
'RefreshControl',
|
|
55
|
-
'SafeAreaView',
|
|
56
|
-
'ScrollView',
|
|
57
|
-
'ScrollViewStickyHeader',
|
|
58
50
|
'SectionList',
|
|
59
|
-
'
|
|
51
|
+
'sticky-header',
|
|
60
52
|
'StatusBar',
|
|
61
53
|
'Switch',
|
|
62
54
|
'Text',
|
|
63
|
-
'TextInput',
|
|
64
|
-
'TouchableHighlight',
|
|
65
|
-
'TouchableNativeFeedback',
|
|
66
|
-
'TouchableOpacity',
|
|
67
|
-
'TouchableWithoutFeedback',
|
|
68
55
|
'VirtualizedList',
|
|
69
56
|
'VirtualizedSectionList',
|
|
70
|
-
// 'symbiote-pressable' deliberately NOT here — see Pressable's own @Component comment
|
|
71
|
-
// (components/pressable/index.ts). It is the host-behavior registry's tag, never a spelling
|
|
72
|
-
// of the composed component now, so it must resolve to a real, painting node.
|
|
73
57
|
].map(selector => selector.toLowerCase()));
|
|
74
58
|
// A composed component's selector must be registered so createElement gives it a non-painting
|
|
75
59
|
// anchor host (see the Set comment above). Tests register their own child-component selectors
|
|
@@ -1 +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,6FAA6F;AAC7F,iGAAiG;AACjG,6FAA6F;AAC7F,4FAA4F;AAC5F,wBAAwB;AAExB,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,
|
|
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,6FAA6F;AAC7F,iGAAiG;AACjG,6FAA6F;AAC7F,4FAA4F;AAC5F,wBAAwB;AAExB,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,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,sBAAsB;IACtB,OAAO;IACP,aAAa;IACb,eAAe;IACf,WAAW;IACX,QAAQ;IACR,MAAM;IACN,iBAAiB;IACjB,wBAAwB;CACzB,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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
interface IViewMarker {
|
|
2
|
+
markForCheck(): void;
|
|
3
|
+
}
|
|
4
|
+
type ICallbackWrapper = (key: string, value: unknown) => unknown;
|
|
5
|
+
/**
|
|
6
|
+
* Makes an app callback handed to the engine as a PROP re-enter Angular's update loop.
|
|
7
|
+
*
|
|
8
|
+
* An `(event)` binding is wrapped by Angular's own `wrapListenerIn_markDirtyAndPreventDefault` and
|
|
9
|
+
* notifies on its own. A `[onPressMove]="fn"` prop is an `@Input` forwarded to the node, and the
|
|
10
|
+
* ENGINE calls it on event dispatch — Angular is told NOTHING, so a plain field mutation inside it
|
|
11
|
+
* dirties no view and the template reading it stays stale until something unrelated ticks.
|
|
12
|
+
* Device-reported 2026-09-11: a pan readout stuck at `dx 0 · dy 0` for a whole gesture, its real
|
|
13
|
+
* numbers arriving on the next button press.
|
|
14
|
+
*
|
|
15
|
+
* `markForCheck()` is one of the two notification sources Angular sanctions for an event source
|
|
16
|
+
* outside the framework (the other is writing a signal the template reads, which an ADAPTER cannot
|
|
17
|
+
* choose on the app's behalf). It flags the INJECTING view and every ancestor with RefreshView —
|
|
18
|
+
* the reach `detectChanges()` does not have — and notifies the scheduler.
|
|
19
|
+
*
|
|
20
|
+
* `flushViewFor` is the second, narrower half: three behaviors read the app's answer back inside
|
|
21
|
+
* the SAME microtask turn, and `markForCheck` only SCHEDULES. It is a no-op on a node that
|
|
22
|
+
* registered no flush.
|
|
23
|
+
*
|
|
24
|
+
* ONE wrapper per original handler, for the caller's lifetime. A fresh closure per push would make
|
|
25
|
+
* the engine store a new listener every time and would defeat every downstream identity check.
|
|
26
|
+
*/
|
|
27
|
+
export declare function createCallbackWrapper(view: IViewMarker, node: unknown): ICallbackWrapper;
|
|
28
|
+
export declare function registerViewFlush(node: object, flush: () => void): void;
|
|
29
|
+
export declare function unregisterViewFlush(node: object): void;
|
|
30
|
+
export declare function flushViewFor(node: unknown): void;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// A dependency-free LEAF so `renderer/index.ts` can ask a view to re-check itself without importing
|
|
2
|
+
// the element directives, which import the renderer (same reasoning as `renderer/value-change.ts`
|
|
3
|
+
// and `anchor-host-registry.ts`).
|
|
4
|
+
//
|
|
5
|
+
// WHY ANYTHING IS NEEDED. Zoneless change detection is scheduled on a
|
|
6
|
+
// requestAnimationFrame/setTimeout RACE (`ChangeDetectionSchedulerImpl`, upstream
|
|
7
|
+
// `zoneless_scheduling_impl.ts`), so an app's state update from a native event lands a whole
|
|
8
|
+
// MACROTASK later. A bound template listener DOES notify Angular — that is one of the documented
|
|
9
|
+
// notification sources — so nothing is missing; what is wrong is the TIMING. Three engine behaviors
|
|
10
|
+
// read the app's answer back within the same MICROTASK turn:
|
|
11
|
+
//
|
|
12
|
+
// behaviors/text-input.ts `afterCommit` re-commands the native text from `props.value`
|
|
13
|
+
// behaviors/switch.ts `queueMicrotask` snap-back reads `props.value`
|
|
14
|
+
// behaviors/refresh-control.ts `queueMicrotask` snap-back reads `props.refreshing`
|
|
15
|
+
//
|
|
16
|
+
// Every other adapter's state update lands inside that turn; zoneless Angular cannot, so all three
|
|
17
|
+
// read the PRE-event value and UNDO the user. Device-reported 2026-09-11: `[(value)]` on a
|
|
18
|
+
// `<text-input>` commanded the stale text back after one keystroke, a `[(value)]` `<switch>` snapped
|
|
19
|
+
// straight off again, and pull-to-refresh stopped itself.
|
|
20
|
+
//
|
|
21
|
+
// WHY `ChangeDetectorRef.detectChanges()` AND NOT `ApplicationRef.tick()`. Both re-evaluate the
|
|
22
|
+
// binding; only one of them is safe to call from a native event. `tick()` emits `afterTick`
|
|
23
|
+
// UNCONDITIONALLY — `dirtyFlags === 0` included — and the scheduler's `afterTick` subscriber runs
|
|
24
|
+
// `switchToMicrotaskScheduler`, which sets `useMicrotaskScheduler` for the rest of the turn. Every
|
|
25
|
+
// notification raised while that flag is set is counted by `trackMicrotaskNotificationForDebugging`
|
|
26
|
+
// against `CONSECUTIVE_MICROTASK_NOTIFICATION_LIMIT` (100), and the ONLY reset is a notification
|
|
27
|
+
// raised while it is clear. A commit can dispatch further events (`onLayout`), each of which
|
|
28
|
+
// notifies, so forcing a tick per native event turns that into NG0103, "Angular could not stabilize
|
|
29
|
+
// because there were endless change notifications" — device-reported the same day, on the first fix
|
|
30
|
+
// for the paragraph above. `ViewRef.detectChanges()` sets `RefreshView` and calls
|
|
31
|
+
// `detectChangesInternal` (upstream `render3/view_ref.ts`): no `afterTick`, no scheduler
|
|
32
|
+
// notification, so it cannot open that window at all. It is also the narrower answer — the only
|
|
33
|
+
// view that has to be re-checked is the one holding the binding.
|
|
34
|
+
//
|
|
35
|
+
// The flush is registered by the element DIRECTIVE, which is the only thing here that owns a
|
|
36
|
+
// `ChangeDetectorRef` for that view. A tag written under `CUSTOM_ELEMENTS_SCHEMA` with no directive
|
|
37
|
+
// matched therefore gets no flush and keeps the stale-read behaviour — the directive is the
|
|
38
|
+
// supported route (`[(value)]` is NG8007 without it), and this leaf has no way to reach a view it
|
|
39
|
+
// was never handed.
|
|
40
|
+
//
|
|
41
|
+
// When a fourth behavior starts reading an app value back, it needs a name in the renderer's
|
|
42
|
+
// `READ_BACK_*` sets — the census is `queueMicrotask` / `afterCommit` in
|
|
43
|
+
// `core/components/src/behaviors`.
|
|
44
|
+
const viewFlushes = new WeakMap();
|
|
45
|
+
const ON_PREFIX = /^on[A-Z]/;
|
|
46
|
+
// The one `onX` that fires per FRAME rather than per gesture — with sticky headers RN pins
|
|
47
|
+
// `scrollEventThrottle` to 1, i.e. 60 times a second. `markForCheck` walks to the ROOT, so wrapping
|
|
48
|
+
// it costs a full ancestor-screen template execution per frame: measured as the canary's ~37fps
|
|
49
|
+
// scroll (`components/virtualized-list/scroll-cost.test.ts`). Nothing loses its refresh — the list
|
|
50
|
+
// marks itself when its window moves, sticky rides the native driver, and a caller's own handler is
|
|
51
|
+
// typically an Animated.event touching no Angular state. Drag and momentum begin/end stay wrapped;
|
|
52
|
+
// once per gesture is not a hot path.
|
|
53
|
+
const PER_FRAME_CALLBACK = 'onScroll';
|
|
54
|
+
/**
|
|
55
|
+
* Makes an app callback handed to the engine as a PROP re-enter Angular's update loop.
|
|
56
|
+
*
|
|
57
|
+
* An `(event)` binding is wrapped by Angular's own `wrapListenerIn_markDirtyAndPreventDefault` and
|
|
58
|
+
* notifies on its own. A `[onPressMove]="fn"` prop is an `@Input` forwarded to the node, and the
|
|
59
|
+
* ENGINE calls it on event dispatch — Angular is told NOTHING, so a plain field mutation inside it
|
|
60
|
+
* dirties no view and the template reading it stays stale until something unrelated ticks.
|
|
61
|
+
* Device-reported 2026-09-11: a pan readout stuck at `dx 0 · dy 0` for a whole gesture, its real
|
|
62
|
+
* numbers arriving on the next button press.
|
|
63
|
+
*
|
|
64
|
+
* `markForCheck()` is one of the two notification sources Angular sanctions for an event source
|
|
65
|
+
* outside the framework (the other is writing a signal the template reads, which an ADAPTER cannot
|
|
66
|
+
* choose on the app's behalf). It flags the INJECTING view and every ancestor with RefreshView —
|
|
67
|
+
* the reach `detectChanges()` does not have — and notifies the scheduler.
|
|
68
|
+
*
|
|
69
|
+
* `flushViewFor` is the second, narrower half: three behaviors read the app's answer back inside
|
|
70
|
+
* the SAME microtask turn, and `markForCheck` only SCHEDULES. It is a no-op on a node that
|
|
71
|
+
* registered no flush.
|
|
72
|
+
*
|
|
73
|
+
* ONE wrapper per original handler, for the caller's lifetime. A fresh closure per push would make
|
|
74
|
+
* the engine store a new listener every time and would defeat every downstream identity check.
|
|
75
|
+
*/
|
|
76
|
+
export function createCallbackWrapper(view, node) {
|
|
77
|
+
const wrappers = new WeakMap();
|
|
78
|
+
return (key, value) => {
|
|
79
|
+
if (!ON_PREFIX.test(key) || typeof value !== 'function')
|
|
80
|
+
return value;
|
|
81
|
+
if (key === PER_FRAME_CALLBACK)
|
|
82
|
+
return value;
|
|
83
|
+
const cached = wrappers.get(value);
|
|
84
|
+
if (cached !== undefined)
|
|
85
|
+
return cached;
|
|
86
|
+
// Reflect.apply rather than a cast-to-signature local: `typeof value === 'function'` narrows to
|
|
87
|
+
// `Function`, which carries no call signature, and this repo does not use `as` to paper over it.
|
|
88
|
+
// `undefined` as the receiver preserves the previous unbound call.
|
|
89
|
+
const wrapper = (...args) => {
|
|
90
|
+
const result = Reflect.apply(value, undefined, args);
|
|
91
|
+
view.markForCheck();
|
|
92
|
+
flushViewFor(node);
|
|
93
|
+
return result;
|
|
94
|
+
};
|
|
95
|
+
wrappers.set(value, wrapper);
|
|
96
|
+
return wrapper;
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
export function registerViewFlush(node, flush) {
|
|
100
|
+
viewFlushes.set(node, flush);
|
|
101
|
+
}
|
|
102
|
+
export function unregisterViewFlush(node) {
|
|
103
|
+
viewFlushes.delete(node);
|
|
104
|
+
}
|
|
105
|
+
export function flushViewFor(node) {
|
|
106
|
+
if (typeof node !== 'object' || node === null)
|
|
107
|
+
return;
|
|
108
|
+
viewFlushes.get(node)?.();
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=change-detection-flush.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-detection-flush.js","sourceRoot":"","sources":["../../src/change-detection-flush.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,kGAAkG;AAClG,kCAAkC;AAClC,EAAE;AACF,sEAAsE;AACtE,kFAAkF;AAClF,6FAA6F;AAC7F,iGAAiG;AACjG,oGAAoG;AACpG,6DAA6D;AAC7D,EAAE;AACF,+FAA+F;AAC/F,iFAAiF;AACjF,sFAAsF;AACtF,EAAE;AACF,mGAAmG;AACnG,2FAA2F;AAC3F,qGAAqG;AACrG,0DAA0D;AAC1D,EAAE;AACF,gGAAgG;AAChG,4FAA4F;AAC5F,kGAAkG;AAClG,mGAAmG;AACnG,oGAAoG;AACpG,iGAAiG;AACjG,6FAA6F;AAC7F,oGAAoG;AACpG,oGAAoG;AACpG,kFAAkF;AAClF,yFAAyF;AACzF,gGAAgG;AAChG,iEAAiE;AACjE,EAAE;AACF,6FAA6F;AAC7F,oGAAoG;AACpG,4FAA4F;AAC5F,kGAAkG;AAClG,oBAAoB;AACpB,EAAE;AACF,6FAA6F;AAC7F,yEAAyE;AACzE,mCAAmC;AACnC,MAAM,WAAW,GAAG,IAAI,OAAO,EAAsB,CAAC;AAEtD,MAAM,SAAS,GAAG,UAAU,CAAC;AAE7B,2FAA2F;AAC3F,oGAAoG;AACpG,gGAAgG;AAChG,mGAAmG;AACnG,oGAAoG;AACpG,mGAAmG;AACnG,sCAAsC;AACtC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAQtC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAiB,EACjB,IAAa;IAEb,MAAM,QAAQ,GAAG,IAAI,OAAO,EAA2C,CAAC;IACxE,OAAO,CAAC,GAAW,EAAE,KAAc,EAAW,EAAE;QAC9C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QACtE,IAAI,GAAG,KAAK,kBAAkB;YAAE,OAAO,KAAK,CAAC;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QACxC,gGAAgG;QAChG,iGAAiG;QACjG,mEAAmE;QACnE,MAAM,OAAO,GAAG,CAAC,GAAG,IAAe,EAAW,EAAE;YAC9C,MAAM,MAAM,GAAY,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QACF,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,KAAiB;IAC/D,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAa;IACxC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IACtD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import type { IActivityIndicatorProps as ICoreActivityIndicatorProps } from '@symbiote-native/components';
|
|
2
|
+
export type IActivityIndicatorProps = Omit<ICoreActivityIndicatorProps, 'onLayout' | 'onAccessibilityAction' | 'onAccessibilityTap' | 'onMagicTap' | 'onAccessibilityEscape'>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-indicator-props.js","sourceRoot":"","sources":["../../../src/components/activity-indicator-props.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-props.js","sourceRoot":"","sources":["../../../src/components/button-props.ts"],"names":[],"mappings":""}
|
|
@@ -29,6 +29,7 @@ export declare class FlatList<ItemT = unknown> implements IFlatListInputs<ItemT>
|
|
|
29
29
|
averageItemLength: number;
|
|
30
30
|
}>;
|
|
31
31
|
data: readonly ItemT[];
|
|
32
|
+
testID?: string;
|
|
32
33
|
numColumns?: number;
|
|
33
34
|
columnWrapperStyle?: IStyleProp<IViewStyle> | string;
|
|
34
35
|
keyExtractor?: (item: ItemT, index: number) => string;
|
|
@@ -120,5 +121,5 @@ export declare class FlatList<ItemT = unknown> implements IFlatListInputs<ItemT>
|
|
|
120
121
|
getScrollNode(): ISymbioteNode | null;
|
|
121
122
|
recordInteraction(): void;
|
|
122
123
|
static ɵfac: i0.ɵɵFactoryDeclaration<FlatList<any>, never>;
|
|
123
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FlatList<any>, "FlatList", never, { "data": { "alias": "data"; "required": true; }; "numColumns": { "alias": "numColumns"; "required": false; }; "columnWrapperStyle": { "alias": "columnWrapperStyle"; "required": false; }; "keyExtractor": { "alias": "keyExtractor"; "required": false; }; "getItemLayout": { "alias": "getItemLayout"; "required": false; }; "horizontal": { "alias": "horizontal"; "required": false; }; "inverted": { "alias": "inverted"; "required": false; }; "extraData": { "alias": "extraData"; "required": false; }; "onEndReachedThreshold": { "alias": "onEndReachedThreshold"; "required": false; }; "onStartReachedThreshold": { "alias": "onStartReachedThreshold"; "required": false; }; "refreshing": { "alias": "refreshing"; "required": false; }; "progressViewOffset": { "alias": "progressViewOffset"; "required": false; }; "viewabilityConfig": { "alias": "viewabilityConfig"; "required": false; }; "viewabilityConfigCallbackPairs": { "alias": "viewabilityConfigCallbackPairs"; "required": false; }; "initialNumToRender": { "alias": "initialNumToRender"; "required": false; }; "initialScrollIndex": { "alias": "initialScrollIndex"; "required": false; }; "maxToRenderPerBatch": { "alias": "maxToRenderPerBatch"; "required": false; }; "updateCellsBatchingPeriod": { "alias": "updateCellsBatchingPeriod"; "required": false; }; "windowSize": { "alias": "windowSize"; "required": false; }; "stickyHeaderIndices": { "alias": "stickyHeaderIndices"; "required": false; }; "maintainVisibleContentPosition": { "alias": "maintainVisibleContentPosition"; "required": false; }; "onScroll": { "alias": "onScroll"; "required": false; }; "onScrollBeginDrag": { "alias": "onScrollBeginDrag"; "required": false; }; "onScrollEndDrag": { "alias": "onScrollEndDrag"; "required": false; }; "onMomentumScrollBegin": { "alias": "onMomentumScrollBegin"; "required": false; }; "onMomentumScrollEnd": { "alias": "onMomentumScrollEnd"; "required": false; }; "scrollEventThrottle": { "alias": "scrollEventThrottle"; "required": false; }; "keyboardShouldPersistTaps": { "alias": "keyboardShouldPersistTaps"; "required": false; }; "keyboardDismissMode": { "alias": "keyboardDismissMode"; "required": false; }; "style": { "alias": "style"; "required": false; }; "contentContainerStyle": { "alias": "contentContainerStyle"; "required": false; }; }, { "endReached": "endReached"; "startReached": "startReached"; "refresh": "refresh"; "viewableItemsChanged": "viewableItemsChanged"; "scrollToIndexFailed": "scrollToIndexFailed"; }, ["itemDir", "headerDir", "footerDir", "emptyDir", "separatorDir"], never, true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
|
|
124
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FlatList<any>, "FlatList", never, { "data": { "alias": "data"; "required": true; }; "testID": { "alias": "testID"; "required": false; }; "numColumns": { "alias": "numColumns"; "required": false; }; "columnWrapperStyle": { "alias": "columnWrapperStyle"; "required": false; }; "keyExtractor": { "alias": "keyExtractor"; "required": false; }; "getItemLayout": { "alias": "getItemLayout"; "required": false; }; "horizontal": { "alias": "horizontal"; "required": false; }; "inverted": { "alias": "inverted"; "required": false; }; "extraData": { "alias": "extraData"; "required": false; }; "onEndReachedThreshold": { "alias": "onEndReachedThreshold"; "required": false; }; "onStartReachedThreshold": { "alias": "onStartReachedThreshold"; "required": false; }; "refreshing": { "alias": "refreshing"; "required": false; }; "progressViewOffset": { "alias": "progressViewOffset"; "required": false; }; "viewabilityConfig": { "alias": "viewabilityConfig"; "required": false; }; "viewabilityConfigCallbackPairs": { "alias": "viewabilityConfigCallbackPairs"; "required": false; }; "initialNumToRender": { "alias": "initialNumToRender"; "required": false; }; "initialScrollIndex": { "alias": "initialScrollIndex"; "required": false; }; "maxToRenderPerBatch": { "alias": "maxToRenderPerBatch"; "required": false; }; "updateCellsBatchingPeriod": { "alias": "updateCellsBatchingPeriod"; "required": false; }; "windowSize": { "alias": "windowSize"; "required": false; }; "stickyHeaderIndices": { "alias": "stickyHeaderIndices"; "required": false; }; "maintainVisibleContentPosition": { "alias": "maintainVisibleContentPosition"; "required": false; }; "onScroll": { "alias": "onScroll"; "required": false; }; "onScrollBeginDrag": { "alias": "onScrollBeginDrag"; "required": false; }; "onScrollEndDrag": { "alias": "onScrollEndDrag"; "required": false; }; "onMomentumScrollBegin": { "alias": "onMomentumScrollBegin"; "required": false; }; "onMomentumScrollEnd": { "alias": "onMomentumScrollEnd"; "required": false; }; "scrollEventThrottle": { "alias": "scrollEventThrottle"; "required": false; }; "keyboardShouldPersistTaps": { "alias": "keyboardShouldPersistTaps"; "required": false; }; "keyboardDismissMode": { "alias": "keyboardDismissMode"; "required": false; }; "style": { "alias": "style"; "required": false; }; "contentContainerStyle": { "alias": "contentContainerStyle"; "required": false; }; }, { "endReached": "endReached"; "startReached": "startReached"; "refresh": "refresh"; "viewableItemsChanged": "viewableItemsChanged"; "scrollToIndexFailed": "scrollToIndexFailed"; }, ["itemDir", "headerDir", "footerDir", "emptyDir", "separatorDir"], never, true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
|
|
124
125
|
}
|
|
@@ -77,6 +77,12 @@ export class FlatList {
|
|
|
77
77
|
viewableItemsChanged = new EventEmitter();
|
|
78
78
|
scrollToIndexFailed = new EventEmitter();
|
|
79
79
|
data;
|
|
80
|
+
// RN's FlatList spreads its props onto the VirtualizedList it renders, so `testID` lands on the
|
|
81
|
+
// scroll view. Angular has no spread, and this one was simply missing: `<FlatList testID="x">`
|
|
82
|
+
// compiled (a static attribute on a component tag is never checked), reached the non-painting
|
|
83
|
+
// anchor host, and committed nowhere — so the list was untargetable by a test or an e2e selector
|
|
84
|
+
// while looking perfectly healthy on screen. VirtualizedList has always declared it.
|
|
85
|
+
testID;
|
|
80
86
|
numColumns;
|
|
81
87
|
columnWrapperStyle;
|
|
82
88
|
keyExtractor;
|
|
@@ -265,7 +271,7 @@ export class FlatList {
|
|
|
265
271
|
this.listRef?.recordInteraction();
|
|
266
272
|
}
|
|
267
273
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FlatList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
268
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: FlatList, isStandalone: true, selector: "FlatList", inputs: { data: "data", numColumns: "numColumns", columnWrapperStyle: "columnWrapperStyle", keyExtractor: "keyExtractor", getItemLayout: "getItemLayout", horizontal: "horizontal", inverted: "inverted", extraData: "extraData", onEndReachedThreshold: "onEndReachedThreshold", onStartReachedThreshold: "onStartReachedThreshold", refreshing: "refreshing", progressViewOffset: "progressViewOffset", viewabilityConfig: "viewabilityConfig", viewabilityConfigCallbackPairs: "viewabilityConfigCallbackPairs", initialNumToRender: "initialNumToRender", initialScrollIndex: "initialScrollIndex", maxToRenderPerBatch: "maxToRenderPerBatch", updateCellsBatchingPeriod: "updateCellsBatchingPeriod", windowSize: "windowSize", stickyHeaderIndices: "stickyHeaderIndices", maintainVisibleContentPosition: "maintainVisibleContentPosition", onScroll: "onScroll", onScrollBeginDrag: "onScrollBeginDrag", onScrollEndDrag: "onScrollEndDrag", onMomentumScrollBegin: "onMomentumScrollBegin", onMomentumScrollEnd: "onMomentumScrollEnd", scrollEventThrottle: "scrollEventThrottle", keyboardShouldPersistTaps: "keyboardShouldPersistTaps", keyboardDismissMode: "keyboardDismissMode", style: "style", contentContainerStyle: "contentContainerStyle" }, outputs: { endReached: "endReached", startReached: "startReached", refresh: "refresh", viewableItemsChanged: "viewableItemsChanged", scrollToIndexFailed: "scrollToIndexFailed" }, queries: [{ propertyName: "itemDir", first: true, predicate: VListItemDirective, descendants: true }, { propertyName: "headerDir", first: true, predicate: VListHeaderDirective, descendants: true }, { propertyName: "footerDir", first: true, predicate: VListFooterDirective, descendants: true }, { propertyName: "emptyDir", first: true, predicate: VListEmptyDirective, descendants: true }, { propertyName: "separatorDir", first: true, predicate: VListSeparatorDirective, descendants: true }], viewQueries: [{ propertyName: "listRef", first: true, predicate: VirtualizedList, descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: `
|
|
274
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: FlatList, isStandalone: true, selector: "FlatList", inputs: { data: "data", testID: "testID", numColumns: "numColumns", columnWrapperStyle: "columnWrapperStyle", keyExtractor: "keyExtractor", getItemLayout: "getItemLayout", horizontal: "horizontal", inverted: "inverted", extraData: "extraData", onEndReachedThreshold: "onEndReachedThreshold", onStartReachedThreshold: "onStartReachedThreshold", refreshing: "refreshing", progressViewOffset: "progressViewOffset", viewabilityConfig: "viewabilityConfig", viewabilityConfigCallbackPairs: "viewabilityConfigCallbackPairs", initialNumToRender: "initialNumToRender", initialScrollIndex: "initialScrollIndex", maxToRenderPerBatch: "maxToRenderPerBatch", updateCellsBatchingPeriod: "updateCellsBatchingPeriod", windowSize: "windowSize", stickyHeaderIndices: "stickyHeaderIndices", maintainVisibleContentPosition: "maintainVisibleContentPosition", onScroll: "onScroll", onScrollBeginDrag: "onScrollBeginDrag", onScrollEndDrag: "onScrollEndDrag", onMomentumScrollBegin: "onMomentumScrollBegin", onMomentumScrollEnd: "onMomentumScrollEnd", scrollEventThrottle: "scrollEventThrottle", keyboardShouldPersistTaps: "keyboardShouldPersistTaps", keyboardDismissMode: "keyboardDismissMode", style: "style", contentContainerStyle: "contentContainerStyle" }, outputs: { endReached: "endReached", startReached: "startReached", refresh: "refresh", viewableItemsChanged: "viewableItemsChanged", scrollToIndexFailed: "scrollToIndexFailed" }, queries: [{ propertyName: "itemDir", first: true, predicate: VListItemDirective, descendants: true }, { propertyName: "headerDir", first: true, predicate: VListHeaderDirective, descendants: true }, { propertyName: "footerDir", first: true, predicate: VListFooterDirective, descendants: true }, { propertyName: "emptyDir", first: true, predicate: VListEmptyDirective, descendants: true }, { propertyName: "separatorDir", first: true, predicate: VListSeparatorDirective, descendants: true }], viewQueries: [{ propertyName: "listRef", first: true, predicate: VirtualizedList, descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: `
|
|
269
275
|
@if (isMultiColumn) {
|
|
270
276
|
<VirtualizedList
|
|
271
277
|
[data]="rows"
|
|
@@ -303,20 +309,21 @@ export class FlatList {
|
|
|
303
309
|
[scrollEventThrottle]="scrollEventThrottle"
|
|
304
310
|
[keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
|
|
305
311
|
[keyboardDismissMode]="keyboardDismissMode"
|
|
312
|
+
[testID]="testID"
|
|
306
313
|
[style]="resolvedStyle"
|
|
307
314
|
[contentContainerStyle]="contentContainerStyle"
|
|
308
315
|
>
|
|
309
316
|
<ng-template vListItem let-row let-separators="separators">
|
|
310
|
-
<
|
|
317
|
+
<view [style]="rowStyle">
|
|
311
318
|
@for (cell of rowCells(row, separators); track cell.key) {
|
|
312
|
-
<
|
|
319
|
+
<view [style]="columnCellStyle">
|
|
313
320
|
<ng-container
|
|
314
321
|
[vListOutlet]="itemDir?.templateRef"
|
|
315
322
|
[vListOutletContext]="cell.context"
|
|
316
323
|
></ng-container>
|
|
317
|
-
</
|
|
324
|
+
</view>
|
|
318
325
|
}
|
|
319
|
-
</
|
|
326
|
+
</view>
|
|
320
327
|
</ng-template>
|
|
321
328
|
@if (headerDir !== undefined) {
|
|
322
329
|
<ng-template vListHeader>
|
|
@@ -386,6 +393,7 @@ export class FlatList {
|
|
|
386
393
|
[scrollEventThrottle]="scrollEventThrottle"
|
|
387
394
|
[keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
|
|
388
395
|
[keyboardDismissMode]="keyboardDismissMode"
|
|
396
|
+
[testID]="testID"
|
|
389
397
|
[style]="resolvedStyle"
|
|
390
398
|
[contentContainerStyle]="contentContainerStyle"
|
|
391
399
|
>
|
|
@@ -432,7 +440,7 @@ export class FlatList {
|
|
|
432
440
|
}
|
|
433
441
|
</VirtualizedList>
|
|
434
442
|
}
|
|
435
|
-
`, isInline: true, dependencies: [{ kind: "component", type: VirtualizedList, selector: "VirtualizedList", inputs: ["data", "getItem", "getItemCount", "keyExtractor", "getItemLayout", "horizontal", "inverted", "extraData", "onEndReachedThreshold", "onStartReachedThreshold", "refreshing", "progressViewOffset", "refreshRequested", "viewabilityConfig", "viewabilityConfigCallbackPairs", "initialNumToRender", "initialScrollIndex", "maxToRenderPerBatch", "updateCellsBatchingPeriod", "windowSize", "stickyHeaderIndices", "maintainVisibleContentPosition", "onScroll", "onScrollBeginDrag", "onScrollEndDrag", "onMomentumScrollBegin", "onMomentumScrollEnd", "scrollEventThrottle", "keyboardShouldPersistTaps", "keyboardDismissMode", "style", "contentContainerStyle", "testID", "nativeID", "accessible", "accessibilityLabel", "accessibilityHint", "accessibilityRole", "accessibilityState", "accessibilityValue", "accessibilityActions", "accessibilityLabelledBy", "importantForAccessibility", "accessibilityLiveRegion", "screenReaderFocusable", "accessibilityViewIsModal", "accessibilityElementsHidden", "accessibilityIgnoresInvertColors", "accessibilityLanguage", "accessibilityRespondsToUserInteraction", "accessibilityShowsLargeContentViewer", "accessibilityLargeContentTitle", "role", "ariaLabel", "ariaLabelledBy", "ariaLive", "ariaHidden", "ariaBusy", "ariaChecked", "ariaDisabled", "ariaExpanded", "ariaSelected", "ariaModal", "ariaValueMax", "ariaValueMin", "ariaValueNow", "ariaValueText"], outputs: ["endReached", "startReached", "refresh", "viewableItemsChanged", "scrollToIndexFailed", "accessibilityAction", "accessibilityTap", "magicTap", "accessibilityEscape"] }, { kind: "directive", type: VListItemDirective, selector: "[vListItem]" }, { kind: "directive", type: VListHeaderDirective, selector: "[vListHeader]" }, { kind: "directive", type: VListFooterDirective, selector: "[vListFooter]" }, { kind: "directive", type: VListEmptyDirective, selector: "[vListEmpty]" }, { kind: "directive", type: VListSeparatorDirective, selector: "[vListSeparator]" }, { kind: "directive", type: VListOutletDirective, selector: "[vListOutlet]", inputs: ["vListOutlet", "vListOutletContext"] }, { kind: "component", type: ViewHost, selector: "
|
|
443
|
+
`, isInline: true, dependencies: [{ kind: "component", type: VirtualizedList, selector: "VirtualizedList", inputs: ["data", "getItem", "getItemCount", "keyExtractor", "getItemLayout", "horizontal", "inverted", "extraData", "onEndReachedThreshold", "onStartReachedThreshold", "refreshing", "progressViewOffset", "refreshRequested", "viewabilityConfig", "viewabilityConfigCallbackPairs", "initialNumToRender", "initialScrollIndex", "maxToRenderPerBatch", "updateCellsBatchingPeriod", "windowSize", "stickyHeaderIndices", "maintainVisibleContentPosition", "onScroll", "onScrollBeginDrag", "onScrollEndDrag", "onMomentumScrollBegin", "onMomentumScrollEnd", "scrollEventThrottle", "keyboardShouldPersistTaps", "keyboardDismissMode", "style", "contentContainerStyle", "testID", "nativeID", "accessible", "accessibilityLabel", "accessibilityHint", "accessibilityRole", "accessibilityState", "accessibilityValue", "accessibilityActions", "accessibilityLabelledBy", "importantForAccessibility", "accessibilityLiveRegion", "screenReaderFocusable", "accessibilityViewIsModal", "accessibilityElementsHidden", "accessibilityIgnoresInvertColors", "accessibilityLanguage", "accessibilityRespondsToUserInteraction", "accessibilityShowsLargeContentViewer", "accessibilityLargeContentTitle", "role", "ariaLabel", "ariaLabelledBy", "ariaLive", "ariaHidden", "ariaBusy", "ariaChecked", "ariaDisabled", "ariaExpanded", "ariaSelected", "ariaModal", "ariaValueMax", "ariaValueMin", "ariaValueNow", "ariaValueText"], outputs: ["endReached", "startReached", "refresh", "viewableItemsChanged", "scrollToIndexFailed", "accessibilityAction", "accessibilityTap", "magicTap", "accessibilityEscape"] }, { kind: "directive", type: VListItemDirective, selector: "[vListItem]" }, { kind: "directive", type: VListHeaderDirective, selector: "[vListHeader]" }, { kind: "directive", type: VListFooterDirective, selector: "[vListFooter]" }, { kind: "directive", type: VListEmptyDirective, selector: "[vListEmpty]" }, { kind: "directive", type: VListSeparatorDirective, selector: "[vListSeparator]" }, { kind: "directive", type: VListOutletDirective, selector: "[vListOutlet]", inputs: ["vListOutlet", "vListOutletContext"] }, { kind: "component", type: ViewHost, selector: "view" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
436
444
|
}
|
|
437
445
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FlatList, decorators: [{
|
|
438
446
|
type: Component,
|
|
@@ -492,20 +500,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
492
500
|
[scrollEventThrottle]="scrollEventThrottle"
|
|
493
501
|
[keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
|
|
494
502
|
[keyboardDismissMode]="keyboardDismissMode"
|
|
503
|
+
[testID]="testID"
|
|
495
504
|
[style]="resolvedStyle"
|
|
496
505
|
[contentContainerStyle]="contentContainerStyle"
|
|
497
506
|
>
|
|
498
507
|
<ng-template vListItem let-row let-separators="separators">
|
|
499
|
-
<
|
|
508
|
+
<view [style]="rowStyle">
|
|
500
509
|
@for (cell of rowCells(row, separators); track cell.key) {
|
|
501
|
-
<
|
|
510
|
+
<view [style]="columnCellStyle">
|
|
502
511
|
<ng-container
|
|
503
512
|
[vListOutlet]="itemDir?.templateRef"
|
|
504
513
|
[vListOutletContext]="cell.context"
|
|
505
514
|
></ng-container>
|
|
506
|
-
</
|
|
515
|
+
</view>
|
|
507
516
|
}
|
|
508
|
-
</
|
|
517
|
+
</view>
|
|
509
518
|
</ng-template>
|
|
510
519
|
@if (headerDir !== undefined) {
|
|
511
520
|
<ng-template vListHeader>
|
|
@@ -575,6 +584,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
575
584
|
[scrollEventThrottle]="scrollEventThrottle"
|
|
576
585
|
[keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
|
|
577
586
|
[keyboardDismissMode]="keyboardDismissMode"
|
|
587
|
+
[testID]="testID"
|
|
578
588
|
[style]="resolvedStyle"
|
|
579
589
|
[contentContainerStyle]="contentContainerStyle"
|
|
580
590
|
>
|
|
@@ -636,6 +646,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
636
646
|
}], data: [{
|
|
637
647
|
type: Input,
|
|
638
648
|
args: [{ required: true }]
|
|
649
|
+
}], testID: [{
|
|
650
|
+
type: Input
|
|
639
651
|
}], numColumns: [{
|
|
640
652
|
type: Input
|
|
641
653
|
}], columnWrapperStyle: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/flat-list/index.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,+FAA+F;AAC/F,oGAAoG;AACpG,uFAAuF;AACvF,4FAA4F;AAC5F,4EAA4E;AAC5E,EAAE;AACF,oGAAoG;AACpG,oGAAoG;AACpG,sFAAsF;AACtF,gGAAgG;AAChG,0FAA0F;AAC1F,mDAAmD;AACnD,kGAAkG;AAClG,gGAAgG;AAChG,oGAAoG;AACpG,iFAAiF;AACjF,sFAAsF;AACtF,+FAA+F;AAC/F,+FAA+F;AAC/F,8FAA8F;AAC9F,+FAA+F;AAC/F,iGAAiG;AACjG,gGAAgG;AAChG,kGAAkG;AAClG,EAAE;AACF,uFAAuF;AACvF,gGAAgG;AAChG,+FAA+F;AAC/F,iGAAiG;AACjG,+FAA+F;AAC/F,iDAAiD;AAEjD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,KAAK,EACL,MAAM,EACN,SAAS,EACT,MAAM,GAIP,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,eAAe,GAOhB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,gBAAgB,GAIjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GAIxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,QAAQ,GACT,MAAM,kBAAkB,CAAC;;;AAE1B,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AACD,SAAS,KAAK,CAAQ,KAAc;IAClC,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,QAAQ,CACxC,CAAC;AACJ,CAAC;AACD,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,UAAU;QACxC,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,UAAU,CAC3C,CAAC;AACJ,CAAC;AACD,iGAAiG;AACjG,4EAA4E;AAC5E,MAAM,eAAe,GAAgB;IACnC,SAAS,EAAE,GAAS,EAAE,CAAC,SAAS;IAChC,WAAW,EAAE,GAAS,EAAE,CAAC,SAAS;IAClC,WAAW,EAAE,GAAS,EAAE,CAAC,SAAS;CACnC,CAAC;AAEF,+FAA+F;AAC/F,gGAAgG;AAChG,mGAAmG;AACnG,6FAA6F;AAC7F,mGAAmG;AACnG,SAAS,MAAM,CAAQ,KAAc;IACnC,OAAO,KAA0B,CAAC;AACpC,CAAC;AAUD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/flat-list/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IImageProps } from '@symbiote-native/components';
|
|
2
|
+
import type { IStyleProp, IViewStyle } from '@symbiote-native/engine';
|
|
3
|
+
export interface IAngularImageBackgroundProps extends Omit<IImageProps, 'style'> {
|
|
4
|
+
style?: IStyleProp<IViewStyle>;
|
|
5
|
+
imageStyle?: IStyleProp<IViewStyle> | string;
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-background-props.js","sourceRoot":"","sources":["../../../src/components/image-background-props.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { type IGatedAccessibilityEvent } from '
|
|
2
|
+
import { type IGatedAccessibilityEvent } from '../gate-demand';
|
|
3
3
|
import { type IAccessibilityProps, type IAriaProps, type IImageProps, type IImageSourceProp } from '@symbiote-native/components';
|
|
4
4
|
import { type ISymbioteEvent } from '@symbiote-native/engine';
|
|
5
5
|
export { setImageSourceResolver } from '@symbiote-native/components';
|