@symbiote-native/angular 3.0.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/build/angular/callback-host.d.ts +2 -5
  2. package/build/angular/callback-host.js +11 -36
  3. package/build/angular/callback-host.js.map +1 -1
  4. package/build/angular/change-detection-flush.d.ts +1 -0
  5. package/build/angular/change-detection-flush.js +58 -14
  6. package/build/angular/change-detection-flush.js.map +1 -1
  7. package/build/angular/components/flat-list/index.d.ts +4 -2
  8. package/build/angular/components/flat-list/index.js +28 -78
  9. package/build/angular/components/flat-list/index.js.map +1 -1
  10. package/build/angular/components/image-shared.d.ts +8 -2
  11. package/build/angular/components/modal/index.d.ts +1 -0
  12. package/build/angular/components/modal/index.js +23 -16
  13. package/build/angular/components/modal/index.js.map +1 -1
  14. package/build/angular/components/section-list/index.d.ts +3 -1
  15. package/build/angular/components/section-list/index.js +10 -2
  16. package/build/angular/components/section-list/index.js.map +1 -1
  17. package/build/angular/components/virtualized-list/directives.js +7 -4
  18. package/build/angular/components/virtualized-list/directives.js.map +1 -1
  19. package/build/angular/components/virtualized-list/index.d.ts +10 -2
  20. package/build/angular/components/virtualized-list/index.js +45 -25
  21. package/build/angular/components/virtualized-list/index.js.map +1 -1
  22. package/build/angular/components/virtualized-section-list/index.d.ts +5 -1
  23. package/build/angular/components/virtualized-section-list/index.js +10 -2
  24. package/build/angular/components/virtualized-section-list/index.js.map +1 -1
  25. package/build/angular/descriptor-to-angular/index.js +6 -3
  26. package/build/angular/descriptor-to-angular/index.js.map +1 -1
  27. package/build/angular/element-props.d.ts +16 -5
  28. package/build/angular/elements.d.ts +5 -21
  29. package/build/angular/elements.js +18 -26
  30. package/build/angular/elements.js.map +1 -1
  31. package/build/angular/index.d.ts +0 -1
  32. package/build/angular/index.js +5 -7
  33. package/build/angular/index.js.map +1 -1
  34. package/build/angular/primitives/shared.js +5 -1
  35. package/build/angular/primitives/shared.js.map +1 -1
  36. package/build/angular/renderer/index.d.ts +11 -0
  37. package/build/angular/renderer/index.js +97 -12
  38. package/build/angular/renderer/index.js.map +1 -1
  39. package/build/angular/runtime-matching.d.ts +0 -1
  40. package/build/angular/runtime-matching.js +6 -29
  41. package/build/angular/runtime-matching.js.map +1 -1
  42. package/package.json +6 -6
  43. package/src/callback-host.ts +10 -43
  44. package/src/change-detection-flush.ts +67 -14
  45. package/src/components/flat-list/index.ts +22 -54
  46. package/src/components/modal/index.ts +22 -16
  47. package/src/components/section-list/index.ts +4 -0
  48. package/src/components/virtualized-list/directives.ts +10 -8
  49. package/src/components/virtualized-list/index.ts +38 -13
  50. package/src/components/virtualized-section-list/index.ts +6 -0
  51. package/src/descriptor-to-angular/index.ts +6 -3
  52. package/src/element-props.ts +22 -13
  53. package/src/elements.ts +21 -56
  54. package/src/index.ts +5 -7
  55. package/src/primitives/shared.ts +5 -1
  56. package/src/renderer/index.ts +107 -11
  57. package/src/runtime-matching.ts +6 -30
  58. package/build/angular/style-host.d.ts +0 -11
  59. package/build/angular/style-host.js +0 -86
  60. package/build/angular/style-host.js.map +0 -1
  61. package/src/style-host.ts +0 -94
@@ -1,4 +1,4 @@
1
- import { type OnChanges, type OnDestroy, type SimpleChanges } from '@angular/core';
1
+ import { type OnChanges, type SimpleChanges } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  /**
4
4
  * THE SAME NAMES AS A LITERAL, and the duplication is forced rather than chosen.
@@ -13,13 +13,10 @@ import * as i0 from "@angular/core";
13
13
  export declare const CALLBACK_ATTRIBUTE_SELECTOR: string;
14
14
  /** Exported for the guard alone — the decorator below must spell its own list for ngtsc. */
15
15
  export declare const CALLBACK_INPUT_NAMES: readonly string[];
16
- export declare class SymbioteCallbackHost implements OnChanges, OnDestroy {
16
+ export declare class SymbioteCallbackHost implements OnChanges {
17
17
  private readonly renderer;
18
18
  private readonly host;
19
- private readonly detector;
20
- constructor();
21
19
  ngOnChanges(changes: SimpleChanges): void;
22
- ngOnDestroy(): void;
23
20
  static ɵfac: i0.ɵɵFactoryDeclaration<SymbioteCallbackHost, never>;
24
21
  static ɵdir: i0.ɵɵDirectiveDeclaration<SymbioteCallbackHost, "[onAccessibilityAction],[onAccessibilityEscape],[onAccessibilityTap],[onBlur],[onContentSizeChange],[onEndEditing],[onError],[onFocus],[onHoverIn],[onHoverOut],[onKeyPress],[onLayout],[onLoad],[onLoadEnd],[onLoadStart],[onLongPress],[onMagicTap],[onMomentumScrollBegin],[onMomentumScrollEnd],[onMoveShouldSetResponder],[onMoveShouldSetResponderCapture],[onPartialLoad],[onPress],[onPressIn],[onPressMove],[onPressOut],[onProgress],[onRefresh],[onResponderEnd],[onResponderGrant],[onResponderMove],[onResponderReject],[onResponderRelease],[onResponderStart],[onResponderTerminate],[onResponderTerminationRequest],[onScrollBeginDrag],[onScrollEndDrag],[onScrollToTop],[onSelectionChange],[onStartShouldSetResponder],[onStartShouldSetResponderCapture],[onSubmitEditing],[onValueChange]", never, { "onAccessibilityAction": { "alias": "onAccessibilityAction"; "required": false; }; "onAccessibilityEscape": { "alias": "onAccessibilityEscape"; "required": false; }; "onAccessibilityTap": { "alias": "onAccessibilityTap"; "required": false; }; "onBlur": { "alias": "onBlur"; "required": false; }; "onContentSizeChange": { "alias": "onContentSizeChange"; "required": false; }; "onEndEditing": { "alias": "onEndEditing"; "required": false; }; "onError": { "alias": "onError"; "required": false; }; "onFocus": { "alias": "onFocus"; "required": false; }; "onHoverIn": { "alias": "onHoverIn"; "required": false; }; "onHoverOut": { "alias": "onHoverOut"; "required": false; }; "onKeyPress": { "alias": "onKeyPress"; "required": false; }; "onLayout": { "alias": "onLayout"; "required": false; }; "onLoad": { "alias": "onLoad"; "required": false; }; "onLoadEnd": { "alias": "onLoadEnd"; "required": false; }; "onLoadStart": { "alias": "onLoadStart"; "required": false; }; "onLongPress": { "alias": "onLongPress"; "required": false; }; "onMagicTap": { "alias": "onMagicTap"; "required": false; }; "onMomentumScrollBegin": { "alias": "onMomentumScrollBegin"; "required": false; }; "onMomentumScrollEnd": { "alias": "onMomentumScrollEnd"; "required": false; }; "onMoveShouldSetResponder": { "alias": "onMoveShouldSetResponder"; "required": false; }; "onMoveShouldSetResponderCapture": { "alias": "onMoveShouldSetResponderCapture"; "required": false; }; "onPartialLoad": { "alias": "onPartialLoad"; "required": false; }; "onPress": { "alias": "onPress"; "required": false; }; "onPressIn": { "alias": "onPressIn"; "required": false; }; "onPressMove": { "alias": "onPressMove"; "required": false; }; "onPressOut": { "alias": "onPressOut"; "required": false; }; "onProgress": { "alias": "onProgress"; "required": false; }; "onRefresh": { "alias": "onRefresh"; "required": false; }; "onResponderEnd": { "alias": "onResponderEnd"; "required": false; }; "onResponderGrant": { "alias": "onResponderGrant"; "required": false; }; "onResponderMove": { "alias": "onResponderMove"; "required": false; }; "onResponderReject": { "alias": "onResponderReject"; "required": false; }; "onResponderRelease": { "alias": "onResponderRelease"; "required": false; }; "onResponderStart": { "alias": "onResponderStart"; "required": false; }; "onResponderTerminate": { "alias": "onResponderTerminate"; "required": false; }; "onResponderTerminationRequest": { "alias": "onResponderTerminationRequest"; "required": false; }; "onScrollBeginDrag": { "alias": "onScrollBeginDrag"; "required": false; }; "onScrollEndDrag": { "alias": "onScrollEndDrag"; "required": false; }; "onScrollToTop": { "alias": "onScrollToTop"; "required": false; }; "onSelectionChange": { "alias": "onSelectionChange"; "required": false; }; "onStartShouldSetResponder": { "alias": "onStartShouldSetResponder"; "required": false; }; "onStartShouldSetResponderCapture": { "alias": "onStartShouldSetResponderCapture"; "required": false; }; "onSubmitEditing": { "alias": "onSubmitEditing"; "required": false; }; "onValueChange": { "alias": "onValueChange"; "required": false; }; }, {}, never, never, true, never>;
25
22
  }
@@ -1,29 +1,14 @@
1
- // The directive that owns a `ChangeDetectorRef` for the elements that actually need one.
1
+ // The directive that CLAIMS an `on*` prop binding on a tag, and nothing more.
2
2
  //
3
- // An `on*` PROP is forwarded to the engine node, and the ENGINE calls it — Angular is told nothing,
4
- // so a plain field mutation inside the app's handler dirties no view. `createCallbackWrapper` fixes
5
- // that with `markForCheck`, and until 2026-09-18 the ref it marked came from `SymbioteElement`
6
- // injecting one on EVERY element, because any element MAY carry a callback.
3
+ // Unclaimed, `[onPress]="fn"` on an element is NG0306 in dev mode (`setDomProperty` refuses `on*`
4
+ // DOM properties, `render3/instructions/shared.ts:296-298`), so something has to own the name. The
5
+ // renderer wraps the value on its way through and marks the view with `markForCheck` when the engine
6
+ // calls it. That view is found from the node when the callback FIRES (`change-detection-flush.ts`),
7
+ // so this directive injects no `ChangeDetectorRef`.
7
8
  //
8
- // Almost none does. Priced on JavaScriptCore, an injection is ~1.0-2.4 us per element 10-24 ms
9
- // over the ten thousand of a thousand-row screen, all of it to build `ViewRef`s nothing reads
10
- // (`core/engine/cpp/tests/js/angular-directive-cost.itest.ts`, the `ChangeDetectorRef` row).
11
- //
12
- // MATCHING IS THE CHEAPER QUESTION THAN INJECTING, and that had to be measured rather than assumed,
13
- // because the selector below is dozens of alternatives and Angular tries a component's whole
14
- // directive list against every element it creates. The ladder's `cb-probe` arm carries this exact
15
- // string WITHOUT matching anything — the state of every element on the benchmark row — so the two
16
- // halves are priced against each other in one process, rotated, with a resolution bar:
17
- //
18
- // carrying the selector 4.3 5.9 -2.0 5.7 -1.5 ms inside the bar in four of five
19
- // the ChangeDetectorRef 9.7 23.5 13.6 31.3 23.8 ms
20
- // the CALLBACK HOST -3.9 -9.3 -25.5 -25.6 -25.3 ms all five negative, three outside
21
- //
22
- // WHAT IS NOT VERIFIED, said plainly: the ladder's arm carries ONE element directive beside this one,
23
- // where a real screen carries two dozen, and the `ng-elements` bench arm could not confirm the change
24
- // at app scale — the machine it was measured on swung its untouched CONTROL from 229 to 566 ms, so
25
- // nothing quoted off it would have carried a verdict either way. The controlled A/B is the evidence
26
- // here; the bench-arm confirmation is owed.
9
+ // Carrying the selector is free: Angular tries it against every element it creates, and the
10
+ // ladder's `cb-probe` arm priced that inside the resolution bar in four runs of five
11
+ // (`core/engine/cpp/tests/js/angular-directive-cost.itest.ts`).
27
12
  //
28
13
  // IT HOLDS NO INPUTS, which is what keeps the change off the public surface. The `on*` props stay
29
14
  // declared on `SymbioteElement` and its subclasses, so every type and every forward is unchanged;
@@ -33,8 +18,7 @@
33
18
  //
34
19
  // A LEAF, like `change-detection-flush` and `renderer/value-change`: importing `elements.ts` from
35
20
  // here would close a cycle, since that file is what puts this directive in `SYMBIOTE_ELEMENTS`.
36
- import { ChangeDetectorRef, Directive, ElementRef, Renderer2, inject, } from '@angular/core';
37
- import { registerViewMarker, unregisterViewMarker, } from './change-detection-flush';
21
+ import { Directive, ElementRef, Renderer2, inject, } from '@angular/core';
38
22
  import * as i0 from "@angular/core";
39
23
  /**
40
24
  * Every `on*` input any element directive declares, except the one that fires per FRAME.
@@ -116,10 +100,6 @@ export class SymbioteCallbackHost {
116
100
  constructor() {
117
101
  this.renderer = inject(Renderer2);
118
102
  this.host = inject(ElementRef);
119
- this.detector = inject(ChangeDetectorRef);
120
- const node = this.host.nativeElement;
121
- if (typeof node === 'object' && node !== null)
122
- registerViewMarker(node, this.detector);
123
103
  }
124
104
  ngOnChanges(changes) {
125
105
  // The renderer wraps the value on its way through, so this forwards it raw — same shape as the
@@ -127,11 +107,6 @@ export class SymbioteCallbackHost {
127
107
  for (const name of Object.keys(changes))
128
108
  this.renderer.setProperty(this.host.nativeElement, name, changes[name]?.currentValue);
129
109
  }
130
- ngOnDestroy() {
131
- const node = this.host.nativeElement;
132
- if (typeof node === 'object' && node !== null)
133
- unregisterViewMarker(node);
134
- }
135
110
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SymbioteCallbackHost, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
136
111
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: SymbioteCallbackHost, isStandalone: true, selector: "[onAccessibilityAction],[onAccessibilityEscape],[onAccessibilityTap],[onBlur],[onContentSizeChange],[onEndEditing],[onError],[onFocus],[onHoverIn],[onHoverOut],[onKeyPress],[onLayout],[onLoad],[onLoadEnd],[onLoadStart],[onLongPress],[onMagicTap],[onMomentumScrollBegin],[onMomentumScrollEnd],[onMoveShouldSetResponder],[onMoveShouldSetResponderCapture],[onPartialLoad],[onPress],[onPressIn],[onPressMove],[onPressOut],[onProgress],[onRefresh],[onResponderEnd],[onResponderGrant],[onResponderMove],[onResponderReject],[onResponderRelease],[onResponderStart],[onResponderTerminate],[onResponderTerminationRequest],[onScrollBeginDrag],[onScrollEndDrag],[onScrollToTop],[onSelectionChange],[onStartShouldSetResponder],[onStartShouldSetResponderCapture],[onSubmitEditing],[onValueChange]", inputs: { onAccessibilityAction: "onAccessibilityAction", onAccessibilityEscape: "onAccessibilityEscape", onAccessibilityTap: "onAccessibilityTap", onBlur: "onBlur", onContentSizeChange: "onContentSizeChange", onEndEditing: "onEndEditing", onError: "onError", onFocus: "onFocus", onHoverIn: "onHoverIn", onHoverOut: "onHoverOut", onKeyPress: "onKeyPress", onLayout: "onLayout", onLoad: "onLoad", onLoadEnd: "onLoadEnd", onLoadStart: "onLoadStart", onLongPress: "onLongPress", onMagicTap: "onMagicTap", onMomentumScrollBegin: "onMomentumScrollBegin", onMomentumScrollEnd: "onMomentumScrollEnd", onMoveShouldSetResponder: "onMoveShouldSetResponder", onMoveShouldSetResponderCapture: "onMoveShouldSetResponderCapture", onPartialLoad: "onPartialLoad", onPress: "onPress", onPressIn: "onPressIn", onPressMove: "onPressMove", onPressOut: "onPressOut", onProgress: "onProgress", onRefresh: "onRefresh", onResponderEnd: "onResponderEnd", onResponderGrant: "onResponderGrant", onResponderMove: "onResponderMove", onResponderReject: "onResponderReject", onResponderRelease: "onResponderRelease", onResponderStart: "onResponderStart", onResponderTerminate: "onResponderTerminate", onResponderTerminationRequest: "onResponderTerminationRequest", onScrollBeginDrag: "onScrollBeginDrag", onScrollEndDrag: "onScrollEndDrag", onScrollToTop: "onScrollToTop", onSelectionChange: "onSelectionChange", onStartShouldSetResponder: "onStartShouldSetResponder", onStartShouldSetResponderCapture: "onStartShouldSetResponderCapture", onSubmitEditing: "onSubmitEditing", onValueChange: "onValueChange" }, usesOnChanges: true, ngImport: i0 }); }
137
112
  }
@@ -207,5 +182,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
207
182
  ],
208
183
  standalone: true,
209
184
  }]
210
- }], ctorParameters: () => [] });
185
+ }] });
211
186
  //# sourceMappingURL=callback-host.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"callback-host.js","sourceRoot":"","sources":["../../src/callback-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"callback-host.js","sourceRoot":"","sources":["../../src/callback-host.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export declare function markReadBackNode(node: object): void;
1
2
  interface IViewMarker {
2
3
  markForCheck(): void;
3
4
  }
@@ -32,16 +32,50 @@
32
32
  // notification, so it cannot open that window at all. It is also the narrower answer — the only
33
33
  // view that has to be re-checked is the one holding the binding.
34
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.
35
+ // THE VIEW IS FOUND FROM THE NODE, at the moment an event needs it, not injected per element. Ivy
36
+ // patches `__ngContext__` onto every view's root elements and every directive host, so the nearest
37
+ // patched ancestor names the LView that declares the element - the one holding its `[value]`. A
38
+ // `ViewRef` over that LView is what `inject(ChangeDetectorRef)` would have handed out, built only
39
+ // for the element that fired, which is what let the read-back tags drop their directive instance
40
+ // (`element-directive-free.test.ts`). Projected content resolves to the view it is PROJECTED into,
41
+ // Angular's own discovery limit; the listener's `markForCheck` still reaches the declaring view.
40
42
  //
41
43
  // When a fourth behavior starts reading an app value back, it needs a name in the renderer's
42
44
  // `READ_BACK_*` sets — the census is `queueMicrotask` / `afterCommit` in
43
45
  // `core/components/src/behaviors`.
46
+ import { ɵViewRef as ViewRef, ɵgetLContext as getLContext, } from '@angular/core';
47
+ import { isSymbioteNode, parentOf, reportUncaughtError, } from '@symbiote-native/engine';
44
48
  const viewFlushes = new WeakMap();
49
+ // Nodes whose view is found lazily when they flush. Anything else keeps the no-op an unregistered
50
+ // node always had - `flushViewFor` also runs after every wrapped `on*` prop, and a press must not
51
+ // start paying a synchronous re-check it never needed.
52
+ const readBackNodes = new WeakSet();
53
+ export function markReadBackNode(node) {
54
+ readBackNodes.add(node);
55
+ }
56
+ // Ivy's monkey-patch key (`render3/interfaces/context.ts`, `MONKEY_PATCH_KEY_NAME`).
57
+ const NG_CONTEXT = '__ngContext__';
58
+ /** The LView-backed ref for the view that declares `node`, or undefined outside any view. */
59
+ function viewRefOf(node) {
60
+ let patched = node;
61
+ while (patched !== undefined && !(NG_CONTEXT in patched))
62
+ patched = isSymbioteNode(patched) ? parentOf(patched) : undefined;
63
+ if (patched === undefined)
64
+ return undefined;
65
+ const lView = getLContext(patched)?.lView;
66
+ return lView === undefined || lView === null ? undefined : new ViewRef(lView);
67
+ }
68
+ // REPORTED, NOT RETHROWN: this is the one change detection outside `ApplicationRef.tick()`'s error
69
+ // boundary, called from inside a native event dispatch where a throw becomes `RCTFatal`. Same
70
+ // channel `SymbioteErrorHandler` reports through.
71
+ function detectChangesReported(view) {
72
+ try {
73
+ view.detectChanges();
74
+ }
75
+ catch (error) {
76
+ reportUncaughtError(error, { origin: 'angular flush' });
77
+ }
78
+ }
45
79
  const ON_PREFIX = /^on[A-Z]/;
46
80
  // The one `onX` that fires per FRAME rather than per gesture — with sticky headers RN pins
47
81
  // `scrollEventThrottle` to 1, i.e. 60 times a second. `markForCheck` walks to the ROOT, so wrapping
@@ -123,14 +157,12 @@ export function createCallbackWrapper(node) {
123
157
  * element on JavaScriptCore (`core/engine/cpp/tests/js/angular-directive-cost.itest.ts`), so a
124
158
  * thousand-row screen paid for ten thousand `ViewRef`s to serve none.
125
159
  *
126
- * `SymbioteCallbackHost` registers here instead, and it MATCHES on the callback attributes rather
127
- * than being injected so an element with no `on*` binding neither instantiates it nor pays for it.
128
- * Measured as the whole trade, selector included: -3.9 / -9.3 / -25.5 ms over ten thousand elements.
160
+ * Only a composed component's host directive registers here (`primitives/shared.ts`); a TAG's
161
+ * view is found from the node when its callback fires (`markViewFor`), so no element pays an
162
+ * injection for a callback it may never carry.
129
163
  *
130
- * Separate from `viewFlushes` deliberately. They come from different directives, on overlapping but
131
- * different sets of tags, and they are not the same instruction: this one SCHEDULES and reaches every
132
- * ancestor, that one re-checks ONE view synchronously. Collapsing them into a single entry would make
133
- * whichever directive registered last decide which of the two an element gets.
164
+ * Separate from `viewFlushes` deliberately: this one SCHEDULES and reaches every ancestor, that one
165
+ * re-checks ONE view synchronously.
134
166
  */
135
167
  const viewMarkers = new WeakMap();
136
168
  export function registerViewMarker(node, marker) {
@@ -142,7 +174,10 @@ export function unregisterViewMarker(node) {
142
174
  export function markViewFor(node) {
143
175
  if (typeof node !== 'object' || node === null)
144
176
  return;
145
- viewMarkers.get(node)?.markForCheck();
177
+ // A composed component's host directive registers its own ref; a TAG registers nothing and has its
178
+ // view found here, only when a callback actually fires (see the header).
179
+ const marker = viewMarkers.get(node) ?? viewRefOf(node);
180
+ marker?.markForCheck();
146
181
  }
147
182
  export function registerViewFlush(node, flush) {
148
183
  viewFlushes.set(node, flush);
@@ -153,6 +188,15 @@ export function unregisterViewFlush(node) {
153
188
  export function flushViewFor(node) {
154
189
  if (typeof node !== 'object' || node === null)
155
190
  return;
156
- viewFlushes.get(node)?.();
191
+ const registered = viewFlushes.get(node);
192
+ if (registered !== undefined) {
193
+ registered();
194
+ return;
195
+ }
196
+ if (!readBackNodes.has(node))
197
+ return;
198
+ const view = viewRefOf(node);
199
+ if (view !== undefined)
200
+ detectChangesReported(view);
157
201
  }
158
202
  //# sourceMappingURL=change-detection-flush.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"change-detection-flush.js","sourceRoot":"","sources":["../../src/change-detection-flush.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change-detection-flush.js","sourceRoot":"","sources":["../../src/change-detection-flush.ts"],"names":[],"mappings":"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"}
@@ -65,8 +65,11 @@ export declare class FlatList<ItemT = unknown> implements IFlatListInputs<ItemT>
65
65
  scrollEventThrottle?: number;
66
66
  keyboardShouldPersistTaps?: boolean | 'always' | 'never' | 'handled';
67
67
  keyboardDismissMode?: 'none' | 'on-drag' | 'interactive';
68
+ removeClippedSubviews?: boolean;
69
+ nestedScrollEnabled?: boolean;
68
70
  style?: IStyleProp<IViewStyle>;
69
71
  contentContainerStyle?: IStyleProp<IViewStyle>;
72
+ get resolvedRemoveClippedSubviews(): boolean;
70
73
  itemDir?: VListItemDirective<ItemT>;
71
74
  headerDir?: VListHeaderDirective;
72
75
  footerDir?: VListFooterDirective;
@@ -95,7 +98,6 @@ export declare class FlatList<ItemT = unknown> implements IFlatListInputs<ItemT>
95
98
  context: IVListItemContext<ItemT>;
96
99
  }[];
97
100
  rowSeparatorContext(highlighted: unknown, leadingRow: unknown, trailingRow: unknown): IVListSeparatorContext<ItemT>;
98
- itemSeparatorContext(highlighted: unknown, leadingItem: unknown, trailingItem: unknown): IVListSeparatorContext<ItemT>;
99
101
  scrollToOffset(params: {
100
102
  offset: number;
101
103
  animated?: boolean;
@@ -121,5 +123,5 @@ export declare class FlatList<ItemT = unknown> implements IFlatListInputs<ItemT>
121
123
  getScrollNode(): ISymbioteNode | null;
122
124
  recordInteraction(): void;
123
125
  static ɵfac: i0.ɵɵFactoryDeclaration<FlatList<any>, never>;
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: {}; }]>;
126
+ 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; }; "removeClippedSubviews": { "alias": "removeClippedSubviews"; "required": false; }; "nestedScrollEnabled": { "alias": "nestedScrollEnabled"; "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: {}; }]>;
125
127
  }
@@ -13,9 +13,10 @@
13
13
  // flat-list.test.ts). Fixed for both column modes:
14
14
  // * Single column (numColumns <= 1): FlatList captures the app's `<ng-template vListItem>` (and
15
15
  // vListHeader/vListFooter/vListEmpty/vListSeparator) with its OWN @ContentChild — a single,
16
- // direct projection hop, which always resolves then re-authors equivalent `<ng-template>`s on
17
- // `<VirtualizedList>`, forwarding the captured templateRef + context through
18
- // VListOutletDirective. Item/index/separators pass through 1:1 (no row wrapping).
16
+ // direct projection hop, which always resolves. The per-cell item and separator templates go
17
+ // straight in through VirtualizedList's `[itemTemplate]`/`[itemSeparatorTemplate]`, so a cell
18
+ // is ONE outlet deep (a re-stamp doubled every cell's embedded views); the once-per-list
19
+ // header/footer/empty slots are still re-stamped.
19
20
  // * Multi column (numColumns > 1): same re-stamp, but the app's vListItem is typed for ItemT
20
21
  // while the virtualized stream is rows (IRow<ItemT>), so a plain passthrough couldn't work
21
22
  // regardless. The row vListItem lays out the N columns side by side (each cell stamps the
@@ -31,8 +32,8 @@
31
32
  // in Angular, so they're absent from IFlatListProps per the per-adapter children/render split;
32
33
  // everything else mirrors IVirtualizedListProps.
33
34
  import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, Input, Output, ViewChild, inject, } from '@angular/core';
34
- import { SINGLE_COLUMN, chunkIntoRows, expandRowViewability, firstItemOfRow, lastItemOfRow, rowKeyExtractor, } from '@symbiote-native/components';
35
- import { dlog, flattenStyle, resolveClassName, } from '@symbiote-native/engine';
35
+ import { SINGLE_COLUMN, chunkIntoRows, expandRowViewability, firstItemOfRow, lastItemOfRow, removeClippedSubviewsOrDefault, rowKeyExtractor, } from '@symbiote-native/components';
36
+ import { Platform, dlog, flattenStyle, resolveClassName, } from '@symbiote-native/engine';
36
37
  import { VirtualizedList, VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, } from '../virtualized-list';
37
38
  import { VListOutletDirective } from '../virtualized-list/directives';
38
39
  import { stableAnchorStyle, SymbioteStyleInputDirective, ViewHost, } from '../../primitives';
@@ -58,14 +59,6 @@ const NOOP_SEPARATORS = {
58
59
  unhighlight: () => undefined,
59
60
  updateProps: () => undefined,
60
61
  };
61
- // Angular cannot preserve VListSeparatorDirective<ItemT>'s type parameter across this re-stamp
62
- // reuse (the directive is matched structurally in FlatList's own template with no explicit type
63
- // argument to pin ItemT to, so `let-leadingItem`/`let-trailingItem` arrive typed `unknown`) — even
64
- // though VirtualizedList's own buildSeparatorContext always supplies a real ItemT value. The
65
- // narrowest possible I/O-boundary cast for that gap; not a general-purpose unknown-to-T narrowing.
66
- function asItem(value) {
67
- return value;
68
- }
69
62
  export { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, } from '../virtualized-list';
70
63
  export class FlatList {
71
64
  constructor() {
@@ -104,6 +97,10 @@ export class FlatList {
104
97
  this.viewableItemsChanged.emit(expandRowViewability(info, this.keyExtractor));
105
98
  };
106
99
  }
100
+ // FlatList.js always sends it, defaulted per platform.
101
+ get resolvedRemoveClippedSubviews() {
102
+ return removeClippedSubviewsOrDefault(this.removeClippedSubviews, Platform.OS);
103
+ }
107
104
  get columns() {
108
105
  return this.numColumns ?? SINGLE_COLUMN;
109
106
  }
@@ -181,17 +178,6 @@ export class FlatList {
181
178
  : undefined,
182
179
  };
183
180
  }
184
- // Single-column separator context: leadingItem/trailingItem are already real items (no row
185
- // wrapper to narrow through — see the asItem boundary comment above).
186
- itemSeparatorContext(highlighted, leadingItem, trailingItem) {
187
- const isHighlighted = highlighted === true;
188
- return {
189
- $implicit: isHighlighted,
190
- highlighted: isHighlighted,
191
- leadingItem: asItem(leadingItem),
192
- trailingItem: asItem(trailingItem),
193
- };
194
- }
195
181
  // ---- imperative handle (RN FlatList surface) — delegates to the inner VirtualizedList ----
196
182
  scrollToOffset(params) {
197
183
  this.listRef?.scrollToOffset(params);
@@ -224,7 +210,7 @@ export class FlatList {
224
210
  this.listRef?.recordInteraction();
225
211
  }
226
212
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FlatList, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
227
- static { this.ɵ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: `
213
+ static { this.ɵ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", removeClippedSubviews: "removeClippedSubviews", nestedScrollEnabled: "nestedScrollEnabled", 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: `
228
214
  @if (isMultiColumn) {
229
215
  <VirtualizedList
230
216
  [data]="rows"
@@ -262,6 +248,8 @@ export class FlatList {
262
248
  [scrollEventThrottle]="scrollEventThrottle"
263
249
  [keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
264
250
  [keyboardDismissMode]="keyboardDismissMode"
251
+ [removeClippedSubviews]="resolvedRemoveClippedSubviews"
252
+ [nestedScrollEnabled]="nestedScrollEnabled"
265
253
  [testID]="testID"
266
254
  [style]="resolvedStyle"
267
255
  [contentContainerStyle]="contentContainerStyle"
@@ -346,21 +334,14 @@ export class FlatList {
346
334
  [scrollEventThrottle]="scrollEventThrottle"
347
335
  [keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
348
336
  [keyboardDismissMode]="keyboardDismissMode"
337
+ [removeClippedSubviews]="resolvedRemoveClippedSubviews"
338
+ [nestedScrollEnabled]="nestedScrollEnabled"
349
339
  [testID]="testID"
350
340
  [style]="resolvedStyle"
351
341
  [contentContainerStyle]="contentContainerStyle"
342
+ [itemTemplate]="itemDir?.templateRef"
343
+ [itemSeparatorTemplate]="separatorDir?.templateRef"
352
344
  >
353
- <ng-template
354
- vListItem
355
- let-item
356
- let-index="index"
357
- let-separators="separators"
358
- >
359
- <ng-container
360
- [vListOutlet]="itemDir?.templateRef"
361
- [vListOutletContext]="{ $implicit: item, index, separators }"
362
- ></ng-container>
363
- </ng-template>
364
345
  @if (headerDir !== undefined) {
365
346
  <ng-template vListHeader>
366
347
  <ng-container [vListOutlet]="headerDir.templateRef"></ng-container>
@@ -376,24 +357,9 @@ export class FlatList {
376
357
  <ng-container [vListOutlet]="emptyDir.templateRef"></ng-container>
377
358
  </ng-template>
378
359
  }
379
- @if (separatorDir !== undefined) {
380
- <ng-template
381
- vListSeparator
382
- let-highlighted="highlighted"
383
- let-leadingItem="leadingItem"
384
- let-trailingItem="trailingItem"
385
- >
386
- <ng-container
387
- [vListOutlet]="separatorDir.templateRef"
388
- [vListOutletContext]="
389
- itemSeparatorContext(highlighted, leadingItem, trailingItem)
390
- "
391
- ></ng-container>
392
- </ng-template>
393
- }
394
360
  </VirtualizedList>
395
361
  }
396
- `, 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 }); }
362
+ `, 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", "removeClippedSubviews", "nestedScrollEnabled", "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", "itemTemplate", "itemSeparatorTemplate"], 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 }); }
397
363
  }
398
364
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FlatList, decorators: [{
399
365
  type: Component,
@@ -453,6 +419,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
453
419
  [scrollEventThrottle]="scrollEventThrottle"
454
420
  [keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
455
421
  [keyboardDismissMode]="keyboardDismissMode"
422
+ [removeClippedSubviews]="resolvedRemoveClippedSubviews"
423
+ [nestedScrollEnabled]="nestedScrollEnabled"
456
424
  [testID]="testID"
457
425
  [style]="resolvedStyle"
458
426
  [contentContainerStyle]="contentContainerStyle"
@@ -537,21 +505,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
537
505
  [scrollEventThrottle]="scrollEventThrottle"
538
506
  [keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
539
507
  [keyboardDismissMode]="keyboardDismissMode"
508
+ [removeClippedSubviews]="resolvedRemoveClippedSubviews"
509
+ [nestedScrollEnabled]="nestedScrollEnabled"
540
510
  [testID]="testID"
541
511
  [style]="resolvedStyle"
542
512
  [contentContainerStyle]="contentContainerStyle"
513
+ [itemTemplate]="itemDir?.templateRef"
514
+ [itemSeparatorTemplate]="separatorDir?.templateRef"
543
515
  >
544
- <ng-template
545
- vListItem
546
- let-item
547
- let-index="index"
548
- let-separators="separators"
549
- >
550
- <ng-container
551
- [vListOutlet]="itemDir?.templateRef"
552
- [vListOutletContext]="{ $implicit: item, index, separators }"
553
- ></ng-container>
554
- </ng-template>
555
516
  @if (headerDir !== undefined) {
556
517
  <ng-template vListHeader>
557
518
  <ng-container [vListOutlet]="headerDir.templateRef"></ng-container>
@@ -567,21 +528,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
567
528
  <ng-container [vListOutlet]="emptyDir.templateRef"></ng-container>
568
529
  </ng-template>
569
530
  }
570
- @if (separatorDir !== undefined) {
571
- <ng-template
572
- vListSeparator
573
- let-highlighted="highlighted"
574
- let-leadingItem="leadingItem"
575
- let-trailingItem="trailingItem"
576
- >
577
- <ng-container
578
- [vListOutlet]="separatorDir.templateRef"
579
- [vListOutletContext]="
580
- itemSeparatorContext(highlighted, leadingItem, trailingItem)
581
- "
582
- ></ng-container>
583
- </ng-template>
584
- }
585
531
  </VirtualizedList>
586
532
  }
587
533
  `,
@@ -657,6 +603,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
657
603
  type: Input
658
604
  }], keyboardDismissMode: [{
659
605
  type: Input
606
+ }], removeClippedSubviews: [{
607
+ type: Input
608
+ }], nestedScrollEnabled: [{
609
+ type: Input
660
610
  }], style: [{
661
611
  type: Input
662
612
  }], contentContainerStyle: [{
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/flat-list/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/flat-list/index.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,14 @@ export declare const IMAGE_OUTPUTS: string[];
9
9
  export declare function isImageEventCallback(value: unknown): value is (event: ISymbioteEvent) => void;
10
10
  export declare function resolveImageProps(input: Record<string, unknown>): Record<string, unknown>;
11
11
  export declare abstract class ImageBase {
12
- static readonly getSize: (uri: string, success?: (width: number, height: number) => void, failure?: (error: unknown) => void) => Promise<import("@symbiote-native/engine").IImageSize>;
13
- static readonly getSizeWithHeaders: (uri: string, headers: Record<string, string>, success?: (width: number, height: number) => void, failure?: (error: unknown) => void) => Promise<import("@symbiote-native/engine").IImageSize>;
12
+ static readonly getSize: {
13
+ (uri: string): Promise<import("@symbiote-native/engine").IImageSize>;
14
+ (uri: string, success: (width: number, height: number) => void, failure?: (error: unknown) => void): undefined;
15
+ };
16
+ static readonly getSizeWithHeaders: {
17
+ (uri: string, headers: Record<string, string>): Promise<import("@symbiote-native/engine").IImageSize>;
18
+ (uri: string, headers: Record<string, string>, success: (width: number, height: number) => void, failure?: (error: unknown) => void): undefined;
19
+ };
14
20
  static readonly prefetch: (uri: string, callback?: (requestId: number) => void) => Promise<boolean>;
15
21
  static readonly abortPrefetch: (requestId: number) => void;
16
22
  static readonly queryCache: (uris: string[]) => Promise<Record<string, import("@symbiote-native/engine").IImageCacheStatus>>;
@@ -83,6 +83,7 @@ export declare class Modal implements IAngularModalInputs, OnInit, OnChanges, Do
83
83
  private readonly hostPropsRevision;
84
84
  private lastAnchorStyle;
85
85
  ngOnChanges(changes: SimpleChanges): void;
86
+ handleDismiss(): void;
86
87
  get shouldRender(): boolean;
87
88
  private get descriptor();
88
89
  ngDoCheck(): void;