@symbiote-native/angular 3.3.0 → 3.5.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 (187) hide show
  1. package/babel-register-composed.cjs +1 -0
  2. package/build/angular/accessibility-inputs.d.ts +2 -1
  3. package/build/angular/accessibility-inputs.js +4 -1
  4. package/build/angular/accessibility-inputs.js.map +1 -1
  5. package/build/angular/callback-host.d.ts +1 -1
  6. package/build/angular/callback-host.js +57 -9
  7. package/build/angular/callback-host.js.map +1 -1
  8. package/build/angular/components/flat-list/flat-list-handle.d.ts +35 -0
  9. package/build/angular/components/flat-list/flat-list-handle.js +48 -0
  10. package/build/angular/components/flat-list/flat-list-handle.js.map +1 -0
  11. package/build/angular/components/flat-list/flat-list-template.d.ts +1 -1
  12. package/build/angular/components/flat-list/flat-list-template.js +16 -0
  13. package/build/angular/components/flat-list/flat-list-template.js.map +1 -1
  14. package/build/angular/components/flat-list/index.d.ts +6 -30
  15. package/build/angular/components/flat-list/index.js +6 -36
  16. package/build/angular/components/flat-list/index.js.map +1 -1
  17. package/build/angular/components/image-inputs.d.ts +4 -0
  18. package/build/angular/components/image-inputs.js +81 -0
  19. package/build/angular/components/image-inputs.js.map +1 -0
  20. package/build/angular/components/image-props-resolve.d.ts +3 -0
  21. package/build/angular/components/image-props-resolve.js +133 -0
  22. package/build/angular/components/image-props-resolve.js.map +1 -0
  23. package/build/angular/components/image-shared.d.ts +8 -6
  24. package/build/angular/components/image-shared.js +23 -212
  25. package/build/angular/components/image-shared.js.map +1 -1
  26. package/build/angular/components/input-accessory-view-props.d.ts +4 -4
  27. package/build/angular/components/keyboard-avoiding-view/index.d.ts +3 -6
  28. package/build/angular/components/keyboard-avoiding-view/index.js +29 -56
  29. package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
  30. package/build/angular/components/layout-conformance-props.d.ts +4 -0
  31. package/build/angular/components/layout-conformance-props.js +2 -0
  32. package/build/angular/components/layout-conformance-props.js.map +1 -0
  33. package/build/angular/components/modal/index.d.ts +6 -5
  34. package/build/angular/components/modal/index.js +17 -2
  35. package/build/angular/components/modal/index.js.map +1 -1
  36. package/build/angular/components/refresh-control-props.d.ts +7 -7
  37. package/build/angular/components/scroll-view-props.d.ts +8 -5
  38. package/build/angular/components/section-list/index.d.ts +17 -8
  39. package/build/angular/components/section-list/index.js +37 -28
  40. package/build/angular/components/section-list/index.js.map +1 -1
  41. package/build/angular/components/touchable-props.d.ts +2 -2
  42. package/build/angular/components/virtualized-list/cell-renderer-context.d.ts +12 -0
  43. package/build/angular/components/virtualized-list/cell-renderer-context.js +16 -0
  44. package/build/angular/components/virtualized-list/cell-renderer-context.js.map +1 -0
  45. package/build/angular/components/virtualized-list/directives.d.ts +26 -6
  46. package/build/angular/components/virtualized-list/directives.js +59 -5
  47. package/build/angular/components/virtualized-list/directives.js.map +1 -1
  48. package/build/angular/components/virtualized-list/index.d.ts +19 -15
  49. package/build/angular/components/virtualized-list/index.js +91 -61
  50. package/build/angular/components/virtualized-list/index.js.map +1 -1
  51. package/build/angular/components/virtualized-list/list-bags.d.ts +5 -1
  52. package/build/angular/components/virtualized-list/list-bags.js +31 -19
  53. package/build/angular/components/virtualized-list/list-bags.js.map +1 -1
  54. package/build/angular/components/virtualized-list/list-effects.d.ts +2 -2
  55. package/build/angular/components/virtualized-list/list-effects.js +17 -27
  56. package/build/angular/components/virtualized-list/list-effects.js.map +1 -1
  57. package/build/angular/components/virtualized-list/list-handle.d.ts +4 -1
  58. package/build/angular/components/virtualized-list/list-handle.js +13 -3
  59. package/build/angular/components/virtualized-list/list-handle.js.map +1 -1
  60. package/build/angular/components/virtualized-list/list-inputs.d.ts +19 -5
  61. package/build/angular/components/virtualized-list/list-inputs.js +47 -4
  62. package/build/angular/components/virtualized-list/list-inputs.js.map +1 -1
  63. package/build/angular/components/virtualized-list/list-props.d.ts +9 -3
  64. package/build/angular/components/virtualized-list/list-rows.d.ts +25 -0
  65. package/build/angular/components/virtualized-list/list-rows.js +25 -0
  66. package/build/angular/components/virtualized-list/list-rows.js.map +1 -0
  67. package/build/angular/components/virtualized-list/list-styles.d.ts +4 -0
  68. package/build/angular/components/virtualized-list/list-styles.js +10 -2
  69. package/build/angular/components/virtualized-list/list-styles.js.map +1 -1
  70. package/build/angular/components/virtualized-list/list-template.d.ts +1 -1
  71. package/build/angular/components/virtualized-list/list-template.js +159 -73
  72. package/build/angular/components/virtualized-list/list-template.js.map +1 -1
  73. package/build/angular/components/virtualized-list/nested-scope.d.ts +6 -0
  74. package/build/angular/components/virtualized-list/nested-scope.js +17 -0
  75. package/build/angular/components/virtualized-list/nested-scope.js.map +1 -0
  76. package/build/angular/components/virtualized-section-list/directives.d.ts +21 -9
  77. package/build/angular/components/virtualized-section-list/directives.js +8 -28
  78. package/build/angular/components/virtualized-section-list/directives.js.map +1 -1
  79. package/build/angular/components/virtualized-section-list/index.d.ts +39 -60
  80. package/build/angular/components/virtualized-section-list/index.js +67 -33
  81. package/build/angular/components/virtualized-section-list/index.js.map +1 -1
  82. package/build/angular/components/virtualized-section-list/section-cell.d.ts +29 -0
  83. package/build/angular/components/virtualized-section-list/section-cell.js +82 -0
  84. package/build/angular/components/virtualized-section-list/section-cell.js.map +1 -0
  85. package/build/angular/components/virtualized-section-list/section-list-props.d.ts +56 -0
  86. package/build/angular/components/virtualized-section-list/section-list-props.js +3 -0
  87. package/build/angular/components/virtualized-section-list/section-list-props.js.map +1 -0
  88. package/build/angular/components/virtualized-section-list/section-list-template.d.ts +1 -1
  89. package/build/angular/components/virtualized-section-list/section-list-template.js +34 -26
  90. package/build/angular/components/virtualized-section-list/section-list-template.js.map +1 -1
  91. package/build/angular/components.d.ts +7 -3
  92. package/build/angular/components.js +2 -1
  93. package/build/angular/components.js.map +1 -1
  94. package/build/angular/element-base.d.ts +17 -1
  95. package/build/angular/element-base.js +33 -1
  96. package/build/angular/element-base.js.map +1 -1
  97. package/build/angular/element-props.d.ts +7 -7
  98. package/build/angular/element-text-input-native.d.ts +27 -0
  99. package/build/angular/element-text-input-native.js +52 -0
  100. package/build/angular/element-text-input-native.js.map +1 -0
  101. package/build/angular/elements-controls.d.ts +8 -2
  102. package/build/angular/elements-controls.js +13 -1
  103. package/build/angular/elements-controls.js.map +1 -1
  104. package/build/angular/elements-layout.d.ts +20 -3
  105. package/build/angular/elements-layout.js +37 -3
  106. package/build/angular/elements-layout.js.map +1 -1
  107. package/build/angular/elements-press.d.ts +10 -3
  108. package/build/angular/elements-press.js +13 -1
  109. package/build/angular/elements-press.js.map +1 -1
  110. package/build/angular/elements.d.ts +3 -3
  111. package/build/angular/elements.js +3 -2
  112. package/build/angular/elements.js.map +1 -1
  113. package/build/angular/index.d.ts +15 -7
  114. package/build/angular/index.js +22 -25
  115. package/build/angular/index.js.map +1 -1
  116. package/build/angular/modules/animated/create-animated-component.d.ts +1 -1
  117. package/build/angular/modules/animated/create-animated-component.js +1 -1
  118. package/build/angular/modules/animated/create-animated-component.js.map +1 -1
  119. package/build/angular/modules/animated/index.d.ts +54 -41
  120. package/build/angular/modules/animated/index.js +2 -26
  121. package/build/angular/modules/animated/index.js.map +1 -1
  122. package/build/angular/modules/app-registry/index.d.ts +3 -3
  123. package/build/angular/modules/app-registry/index.js +2 -2
  124. package/build/angular/modules/app-registry/index.js.map +1 -1
  125. package/build/angular/modules/status-bar/index.d.ts +9 -5
  126. package/build/angular/modules/status-bar/index.js +21 -10
  127. package/build/angular/modules/status-bar/index.js.map +1 -1
  128. package/build/angular/primitives/index.d.ts +4 -0
  129. package/build/angular/primitives/index.js +12 -0
  130. package/build/angular/primitives/index.js.map +1 -1
  131. package/build/angular/render/index.d.ts +2 -2
  132. package/build/angular/render/index.js +10 -29
  133. package/build/angular/render/index.js.map +1 -1
  134. package/build/angular/root-tag.d.ts +4 -0
  135. package/build/angular/root-tag.js +10 -0
  136. package/build/angular/root-tag.js.map +1 -0
  137. package/build/angular/services/color-scheme.service.d.ts +1 -1
  138. package/package.json +6 -6
  139. package/src/accessibility-inputs.ts +3 -0
  140. package/src/callback-host.ts +56 -8
  141. package/src/components/flat-list/flat-list-handle.ts +64 -0
  142. package/src/components/flat-list/flat-list-template.ts +16 -0
  143. package/src/components/flat-list/index.ts +6 -48
  144. package/src/components/image-inputs.ts +94 -0
  145. package/src/components/image-props-resolve.ts +172 -0
  146. package/src/components/image-shared.ts +26 -291
  147. package/src/components/input-accessory-view-props.ts +12 -8
  148. package/src/components/keyboard-avoiding-view/index.ts +39 -79
  149. package/src/components/layout-conformance-props.ts +8 -0
  150. package/src/components/modal/index.ts +42 -20
  151. package/src/components/refresh-control-props.ts +29 -25
  152. package/src/components/scroll-view-props.ts +84 -76
  153. package/src/components/section-list/index.ts +34 -37
  154. package/src/components/touchable-props.ts +6 -2
  155. package/src/components/virtualized-list/cell-renderer-context.ts +36 -0
  156. package/src/components/virtualized-list/directives.ts +84 -8
  157. package/src/components/virtualized-list/index.ts +118 -85
  158. package/src/components/virtualized-list/list-bags.ts +38 -19
  159. package/src/components/virtualized-list/list-effects.ts +20 -32
  160. package/src/components/virtualized-list/list-handle.ts +17 -4
  161. package/src/components/virtualized-list/list-inputs.ts +47 -0
  162. package/src/components/virtualized-list/list-props.ts +57 -50
  163. package/src/components/virtualized-list/list-rows.ts +66 -0
  164. package/src/components/virtualized-list/list-styles.ts +30 -1
  165. package/src/components/virtualized-list/list-template.ts +159 -73
  166. package/src/components/virtualized-list/nested-scope.ts +22 -0
  167. package/src/components/virtualized-section-list/directives.ts +41 -40
  168. package/src/components/virtualized-section-list/index.ts +114 -118
  169. package/src/components/virtualized-section-list/section-cell.ts +109 -0
  170. package/src/components/virtualized-section-list/section-list-props.ts +79 -0
  171. package/src/components/virtualized-section-list/section-list-template.ts +34 -26
  172. package/src/components.ts +8 -0
  173. package/src/element-base.ts +17 -0
  174. package/src/element-props.ts +35 -33
  175. package/src/element-text-input-native.ts +31 -0
  176. package/src/elements-controls.ts +9 -1
  177. package/src/elements-layout.ts +27 -0
  178. package/src/elements-press.ts +10 -2
  179. package/src/elements.ts +3 -0
  180. package/src/index.ts +79 -22
  181. package/src/modules/animated/index.ts +2 -47
  182. package/src/modules/app-registry/index.ts +3 -1
  183. package/src/modules/status-bar/index.ts +24 -11
  184. package/src/primitives/index.ts +7 -0
  185. package/src/render/index.ts +23 -50
  186. package/src/root-tag.ts +14 -0
  187. package/src/services/color-scheme.service.ts +1 -1
@@ -23,11 +23,15 @@
23
23
  // @angular/core ONLY — see package.json), built on ViewContainerRef / TemplateRef from
24
24
  // @angular/core: create on template change, update the embedded view's context in place on a
25
25
  // context change (no churn of the cell's own view across windowing recomputes).
26
- import { Directive, Input, TemplateRef, ViewContainerRef, inject, } from '@angular/core';
26
+ import { Directive, Input, TemplateRef, ViewContainerRef, inject, reflectComponentType, } from '@angular/core';
27
27
  import { dlog, isDebug } from '@symbiote-native/engine';
28
28
  import { countAngular } from '../../diagnostics';
29
29
  import * as i0 from "@angular/core";
30
30
  let vListOutletInstanceCounter = 0;
31
+ function nextOutletInstanceId() {
32
+ vListOutletInstanceCounter += 1;
33
+ return vListOutletInstanceCounter;
34
+ }
31
35
  function isRecord(value) {
32
36
  return typeof value === 'object' && value !== null;
33
37
  }
@@ -100,6 +104,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
100
104
  type: Directive,
101
105
  args: [{ selector: '[vListSeparator]', standalone: true }]
102
106
  }] });
107
+ // `<ng-template vListCell>` replaces the view around each cell (RN CellRendererComponent)
108
+ // It must wire `layout` and `focus` itself, as RN's custom cell must wire `onLayout`
109
+ export class VListCellDirective {
110
+ constructor() {
111
+ this.templateRef = inject(TemplateRef);
112
+ }
113
+ static ngTemplateContextGuard(_dir, _ctx) {
114
+ return true;
115
+ }
116
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: VListCellDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
117
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: VListCellDirective, isStandalone: true, selector: "[vListCell]", ngImport: i0 }); }
118
+ }
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: VListCellDirective, decorators: [{
120
+ type: Directive,
121
+ args: [{ selector: '[vListCell]', standalone: true }]
122
+ }] });
103
123
  // Core-only NgTemplateOutlet twin. The adapter cannot import @angular/common's NgTemplateOutlet
104
124
  // (not a dependency), so the list stamps templates through this: it creates the embedded view when
105
125
  // the template changes and updates the live view's context IN PLACE on a context change, so a
@@ -107,21 +127,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
107
127
  export class VListOutletDirective {
108
128
  constructor() {
109
129
  this.viewRef = null;
130
+ this.componentRef = null;
110
131
  this.viewContainer = inject(ViewContainerRef);
111
- this.instanceId = (vListOutletInstanceCounter += 1);
132
+ this.instanceId = nextOutletInstanceId();
112
133
  }
113
134
  ngOnChanges(changes) {
114
- if (changes['templateRef'] !== undefined) {
135
+ if (changes['templateRef'] !== undefined ||
136
+ changes['component'] !== undefined) {
115
137
  if (isDebug())
116
- dlog(`Angular VListOutlet#${this.instanceId} templateRef CHANGED (was=${changes['templateRef'].previousValue !== undefined} now=${this.templateRef !== undefined}) -> clear + recreate`);
138
+ dlog(`Angular VListOutlet#${this.instanceId} templateRef CHANGED (was=${changes['templateRef']?.previousValue !== undefined} now=${this.templateRef !== undefined}) -> clear + recreate`);
117
139
  this.viewContainer.clear();
118
140
  countAngular('outletCreates');
141
+ this.componentRef = null;
142
+ this.viewRef = null;
143
+ if (this.component !== undefined) {
144
+ this.componentRef = this.viewContainer.createComponent(this.component);
145
+ this.writeComponentInputs(this.componentRef);
146
+ return;
147
+ }
119
148
  this.viewRef =
120
149
  this.templateRef === undefined
121
150
  ? null
122
151
  : this.viewContainer.createEmbeddedView(this.templateRef, this.context);
123
152
  return;
124
153
  }
154
+ if (this.componentRef !== null) {
155
+ countAngular('outletUpdates');
156
+ this.writeComponentInputs(this.componentRef);
157
+ return;
158
+ }
125
159
  if (this.viewRef !== null && this.context !== undefined) {
126
160
  countAngular('outletUpdates');
127
161
  if (isDebug())
@@ -136,6 +170,23 @@ export class VListOutletDirective {
136
170
  dlog(`Angular VListOutlet#${this.instanceId} destroyed`);
137
171
  this.viewContainer.clear();
138
172
  }
173
+ // The item context becomes the component's inputs, only those it declares: RN hands a
174
+ // `ListItemComponent` item, index and separators, and one may not read all three
175
+ writeComponentInputs(ref) {
176
+ const { context } = this;
177
+ if (!isRecord(context))
178
+ return;
179
+ const declared = new Set(reflectComponentType(ref.componentType)?.inputs.map(input => input.propName));
180
+ const inputs = {
181
+ item: context['$implicit'],
182
+ index: context['index'],
183
+ separators: context['separators'],
184
+ };
185
+ for (const [name, value] of Object.entries(inputs)) {
186
+ if (declared.has(name))
187
+ ref.setInput(name, value);
188
+ }
189
+ }
139
190
  // Copy the new context's fields onto the live embedded view's context object (whose identity the
140
191
  // consumer's `let-` bindings already read), dropping keys that disappeared. The generic `C` can't
141
192
  // be index-WRITTEN even once narrowed (TS2862), so the copy runs in a non-generic helper the
@@ -146,7 +197,7 @@ export class VListOutletDirective {
146
197
  copyContextFields(viewContext, nextContext);
147
198
  }
148
199
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: VListOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
149
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: VListOutletDirective, isStandalone: true, selector: "[vListOutlet]", inputs: { templateRef: ["vListOutlet", "templateRef"], context: ["vListOutletContext", "context"] }, usesOnChanges: true, ngImport: i0 }); }
200
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: VListOutletDirective, isStandalone: true, selector: "[vListOutlet]", inputs: { templateRef: ["vListOutlet", "templateRef"], context: ["vListOutletContext", "context"], component: ["vListOutletComponent", "component"] }, usesOnChanges: true, ngImport: i0 }); }
150
201
  }
151
202
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: VListOutletDirective, decorators: [{
152
203
  type: Directive,
@@ -157,6 +208,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
157
208
  }], context: [{
158
209
  type: Input,
159
210
  args: [{ alias: 'vListOutletContext' }]
211
+ }], component: [{
212
+ type: Input,
213
+ args: [{ alias: 'vListOutletComponent' }]
160
214
  }] } });
161
215
  function copyContextFields(target, source) {
162
216
  for (const key of Object.keys(target)) {
@@ -1 +1 @@
1
- {"version":3,"file":"directives.js","sourceRoot":"","sources":["../../../../src/components/virtualized-list/directives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directives.js","sourceRoot":"","sources":["../../../../src/components/virtualized-list/directives.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,27 @@
1
1
  import { type AfterViewChecked, type DoCheck, type OnDestroy } from '@angular/core';
2
- import { type IListAction, type IScrollViewHandle } from '@symbiote-native/components';
2
+ import { type IListAction, type IListNesting, type IListScope, type IScrollViewHandle } from '@symbiote-native/components';
3
3
  import { type ISymbioteEvent, type ISymbioteNode, type IViewStyle } from '@symbiote-native/engine';
4
- import { type IWindowCell } from './cell-registry';
5
4
  import { VirtualizedListBagsBase } from './list-bags';
6
5
  import type { IVirtualizedListInputs } from './list-props';
6
+ import { ListScopeProvider } from './nested-scope';
7
+ import { type IListRow } from './list-rows';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "../../primitives/shared";
9
10
  export type { ICellLayout, ISeparators, ISeparatorProps, IViewToken, IViewableItemsChangedInfo, IViewabilityConfig, IViewabilityConfigCallbackPair, IVirtualizedListHandle, } from '@symbiote-native/components';
10
- export { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, } from './directives';
11
- export type { IVListItemContext, IVListSeparatorContext } from './directives';
11
+ export { VListCellDirective, VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListOutletDirective, VListSeparatorDirective, } from './directives';
12
+ export type { IVListCellContext, IVListItemContext, IVListSeparatorContext, } from './directives';
12
13
  export type { IVirtualizedListInputs, IVirtualizedListProps, } from './list-props';
13
- export declare class VirtualizedList<ItemT = unknown> extends VirtualizedListBagsBase<ItemT> implements IVirtualizedListInputs<ItemT>, DoCheck, AfterViewChecked, OnDestroy {
14
+ export declare class VirtualizedList<ItemT = unknown> extends VirtualizedListBagsBase<ItemT> implements IVirtualizedListInputs<ItemT>, ListScopeProvider, DoCheck, AfterViewChecked, OnDestroy {
14
15
  private scrollHostRef?;
16
+ private cellBody?;
15
17
  protected get scrollNode(): ISymbioteNode | null;
16
18
  protected readonly scrollHandle: IScrollViewHandle;
19
+ protected readonly spacerKind: "spacer";
17
20
  itemCount: number;
18
- windowCells: IWindowCell<ItemT>[];
19
- forcedStickyCell: IWindowCell<ItemT> | null;
20
- leadingSpacerStyle: IViewStyle | null;
21
- gapSpacerStyle: IViewStyle | null;
22
- trailingSpacerStyle: IViewStyle | null;
21
+ rows: IListRow<ItemT>[];
23
22
  cellStyle: IViewStyle | undefined;
23
+ headerStyle: IViewStyle | undefined;
24
+ footerStyle: IViewStyle | undefined;
24
25
  private readonly listState;
25
26
  private renderVersion;
26
27
  private readonly cells;
@@ -29,7 +30,11 @@ export declare class VirtualizedList<ItemT = unknown> extends VirtualizedListBag
29
30
  private lastRecompute;
30
31
  private readonly cdr;
31
32
  private readonly elementRef;
32
- private keyFor;
33
+ protected readonly keyFor: (index: number) => string;
34
+ private readonly parentScope;
35
+ private nestingMemo;
36
+ protected get nesting(): IListNesting<ItemT>;
37
+ get listScope(): IListScope;
33
38
  private buildInputs;
34
39
  protected dispatch(action: IListAction<ItemT>): void;
35
40
  private isWindowSettled;
@@ -37,12 +42,11 @@ export declare class VirtualizedList<ItemT = unknown> extends VirtualizedListBag
37
42
  ngAfterViewChecked(): void;
38
43
  ngOnDestroy(): void;
39
44
  private recomputeView;
45
+ private rendererFor;
40
46
  private applyStyles;
41
47
  private showEmpty;
42
- private applySpacers;
43
- private spacerStyle;
44
- private buildCells;
45
- handleCellLayout(measure: (event: ISymbioteEvent) => void, event: unknown): void;
48
+ handleCellLayout(measure: (event: ISymbioteEvent) => void, event: unknown, index: number): void;
49
+ handleCellFocus(index: number): void;
46
50
  private isSymbioteEvent;
47
51
  private scrollToPixel;
48
52
  static ɵfac: i0.ɵɵFactoryDeclaration<VirtualizedList<any>, never>;
@@ -1,33 +1,36 @@
1
1
  // Angular lifecycle half of VirtualizedList, the windowing engine is shared with React and Vue
2
2
  // The bound surface is in ./list-inputs.ts, cells in ./cell-registry.ts, effects in
3
3
  // ./list-effects.ts, styles in ./list-styles.ts and the authoring templates in ./directives.ts
4
- import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewChild, inject, } from '@angular/core';
5
- import { EMPTY_OFFSET, FIRST_INDEX, LIST_ACTION_KIND, buildListPlan, buildScrollViewHandle, buildViewabilityPairs, computeWindow, createInitialListState, listEffectSignature, reduceList, resolveItemKey, } from '@symbiote-native/components';
4
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewChild, forwardRef, inject, } from '@angular/core';
5
+ import { EMPTY_OFFSET, FIRST_INDEX, LIST_ACTION_KIND, LIST_SEGMENT_KIND, buildScrollViewHandle, buildViewabilityPairs, createInitialListState, createListNesting, deriveWindow, listEffectSignature, listHasMore, planFromMetrics, reduceList, resolveItemKey, } from '@symbiote-native/components';
6
6
  import { dlog, isSymbioteNode, } from '@symbiote-native/engine';
7
7
  import { countAngular } from '../../diagnostics';
8
8
  import { anchorHostStyle, SymbioteHostPropsDirective, SymbioteStyleInputDirective, ViewHost, } from '../../primitives';
9
9
  import { CellRegistry } from './cell-registry';
10
+ import { buildCellRendererContext } from './cell-renderer-context';
10
11
  import { VListOutletDirective } from './directives';
11
12
  import { ListEffectRunner } from './list-effects';
12
13
  import { VirtualizedListBagsBase } from './list-bags';
14
+ import { injectVirtualizedListScope, ListScopeProvider } from './nested-scope';
15
+ import { stampPlanRows } from './list-rows';
13
16
  import { resolveListStyles } from './list-styles';
14
17
  import { VIRTUALIZED_LIST_TEMPLATE } from './list-template';
15
18
  import * as i0 from "@angular/core";
16
19
  import * as i1 from "../../primitives/shared";
17
- export { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, } from './directives';
20
+ export { VListCellDirective, VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListOutletDirective, VListSeparatorDirective, } from './directives';
18
21
  export class VirtualizedList extends VirtualizedListBagsBase {
19
22
  constructor() {
20
23
  super(...arguments);
21
24
  this.scrollHandle = buildScrollViewHandle(() => this.scrollNode);
25
+ // The template tells a spacer row from a cell row by this, a bare literal would repeat per host
26
+ this.spacerKind = LIST_SEGMENT_KIND.spacer;
22
27
  // Template-bound view state, assembled by `recomputeView` in `ngDoCheck`
23
28
  this.itemCount = EMPTY_OFFSET;
24
- this.windowCells = [];
25
- // The nearest sticky cell mounted outside the window, `gapSpacerStyle` fills up to the window
26
- this.forcedStickyCell = null;
27
- this.leadingSpacerStyle = null;
28
- this.gapSpacerStyle = null;
29
- this.trailingSpacerStyle = null;
29
+ // The plan's spacers and cells in document order
30
+ this.rows = [];
30
31
  this.cellStyle = undefined;
32
+ this.headerStyle = undefined;
33
+ this.footerStyle = undefined;
31
34
  // `renderVersion` bumps on every transition that changes render state, for the recompute dedup
32
35
  this.listState = createInitialListState();
33
36
  this.renderVersion = EMPTY_OFFSET;
@@ -55,11 +58,31 @@ export class VirtualizedList extends VirtualizedListBagsBase {
55
58
  const item = this.getItem(this.data, index);
56
59
  return resolveItemKey(item, index, this.keyExtractor);
57
60
  };
61
+ this.parentScope = injectVirtualizedListScope();
62
+ this.nestingMemo = undefined;
58
63
  }
59
64
  get scrollNode() {
60
65
  const node = this.scrollHostRef?.nativeElement;
61
66
  return isSymbioteNode(node) ? node : null;
62
67
  }
68
+ // Built on first use, the inputs that pick its axis are set only after construction
69
+ get nesting() {
70
+ this.nestingMemo ??= createListNesting({
71
+ parent: this.parentScope,
72
+ horizontal: this.isHorizontal,
73
+ getState: () => this.listState,
74
+ dispatch: action => this.dispatch(action),
75
+ getContainerNode: () => this.scrollNode,
76
+ getHasMore: () => listHasMore(this.listState),
77
+ keyFor: this.keyFor,
78
+ handlers: () => this.listHandlers,
79
+ });
80
+ return this.nestingMemo;
81
+ }
82
+ // The scope the lists in this list's cells inject
83
+ get listScope() {
84
+ return this.nesting.scope;
85
+ }
63
86
  // Edge and viewability listeners map to `.observed`, so the reducer emits only if listened to
64
87
  buildInputs() {
65
88
  return {
@@ -70,6 +93,7 @@ export class VirtualizedList extends VirtualizedListBagsBase {
70
93
  getItemLayout: this.getItemLayout,
71
94
  horizontal: this.isHorizontal,
72
95
  windowSize: this.windowSizeValue,
96
+ disableVirtualization: this.disableVirtualization,
73
97
  initialNumToRender: this.initialNumToRenderValue,
74
98
  maxToRenderPerBatch: this.maxToRenderPerBatchValue,
75
99
  updateCellsBatchingPeriod: this.updateCellsBatchingPeriodValue,
@@ -82,6 +106,7 @@ export class VirtualizedList extends VirtualizedListBagsBase {
82
106
  : undefined, this.viewabilityConfig, this.viewabilityConfigCallbackPairs),
83
107
  maintainVisibleContentPosition: this.maintainVisibleContentPosition,
84
108
  initialScrollIndex: this.initialScrollIndex,
109
+ findFirstChildWithMore: (first, last) => this.nesting.findFirstChildWithMore(first, last),
85
110
  };
86
111
  }
87
112
  // Native callbacks fire outside Angular's bindings, so a changed state must mark the view dirty
@@ -107,7 +132,7 @@ export class VirtualizedList extends VirtualizedListBagsBase {
107
132
  // Mid-fill the window climbs one batch step per render, only a render advances it
108
133
  if (m.first !== m.target.first || m.last !== m.target.last)
109
134
  return false;
110
- const next = computeWindow(m.count, m.offsets, m.lengths, this.listState.scrollOffset, this.listState.viewportLength, this.windowSizeValue, this.initialNumToRenderValue);
135
+ const next = deriveWindow(this.listState, this.buildInputs(), m.count, m).target;
111
136
  const isSettled = next.first === m.target.first && next.last === m.target.last;
112
137
  if (!isSettled)
113
138
  dlog(`Angular VirtualizedList window moves [${m.first}, ${m.last}] -> ` +
@@ -125,6 +150,7 @@ export class VirtualizedList extends VirtualizedListBagsBase {
125
150
  this.isHorizontal,
126
151
  this.isInverted,
127
152
  this.windowSizeValue,
153
+ this.disableVirtualization,
128
154
  this.initialNumToRenderValue,
129
155
  this.maxToRenderPerBatchValue,
130
156
  this.stickyHeaderIndices,
@@ -133,11 +159,14 @@ export class VirtualizedList extends VirtualizedListBagsBase {
133
159
  // Arrives through `addClass` and `removeClass`, never as an input
134
160
  anchorHostStyle(this.elementRef),
135
161
  this.contentContainerStyle,
162
+ this.listHeaderComponentStyle,
163
+ this.listFooterComponentStyle,
136
164
  this.renderVersion,
137
165
  this.headerDir !== undefined,
138
166
  this.footerDir !== undefined,
139
167
  this.emptyDir !== undefined,
140
168
  this.separatorTemplate !== undefined,
169
+ this.cellRendererTpl,
141
170
  ];
142
171
  const previous = this.lastRecompute;
143
172
  this.lastRecompute = recomputeInputs;
@@ -161,6 +190,7 @@ export class VirtualizedList extends VirtualizedListBagsBase {
161
190
  }
162
191
  ngOnDestroy() {
163
192
  this.effects.dispose();
193
+ this.nestingMemo?.detach();
164
194
  }
165
195
  recomputeView() {
166
196
  const m = this.listState.metrics;
@@ -176,24 +206,29 @@ export class VirtualizedList extends VirtualizedListBagsBase {
176
206
  this.showEmpty();
177
207
  return;
178
208
  }
179
- const stickySet = this.stickyHeaderIndices !== undefined
180
- ? new Set(this.stickyHeaderIndices)
181
- : undefined;
182
- const plan = buildListPlan({
209
+ this.rows = stampPlanRows({
210
+ windowPlan: planFromMetrics(m, this.keyFor, this.stickyHeaderIndices),
211
+ cells: this.cells,
183
212
  count: m.count,
184
- first: m.first,
185
- last: m.last,
186
- offsets: m.offsets,
187
- lengths: m.lengths,
188
- total: m.total,
189
- keyFor: this.keyFor,
190
- stickyIndices: stickySet,
191
- hasHeader: this.headerDir !== undefined,
213
+ isHorizontal: this.isHorizontal,
214
+ hasSeparators: this.separatorTemplate !== undefined,
215
+ rendererFor: this.rendererFor(),
192
216
  });
193
- this.applySpacers(plan);
194
- this.buildCells(plan, stickySet);
217
+ this.cells.endPass();
195
218
  dlog(`Angular VirtualizedList window [${m.first}, ${m.last}] of ${m.count} ` +
196
- `(offset=${this.listState.scrollOffset}, viewport=${this.listState.viewportLength}, rendered=${this.windowCells.length})`);
219
+ `(offset=${this.listState.scrollOffset}, viewport=${this.listState.viewportLength}, rows=${this.rows.length})`);
220
+ }
221
+ // Only a list given a `vListCell` template builds the wrapper contexts
222
+ rendererFor() {
223
+ if (this.cellRendererTpl === undefined)
224
+ return undefined;
225
+ return cell => buildCellRendererContext({
226
+ cell,
227
+ style: this.cellStyle,
228
+ body: this.cellBody,
229
+ layout: (measure, event, index) => this.handleCellLayout(measure, event, index),
230
+ focus: index => this.handleCellFocus(index),
231
+ });
197
232
  }
198
233
  applyStyles(total) {
199
234
  const styles = resolveListStyles({
@@ -203,55 +238,36 @@ export class VirtualizedList extends VirtualizedListBagsBase {
203
238
  hasHeader: this.headerDir !== undefined,
204
239
  style: this.style,
205
240
  contentContainerStyle: this.contentContainerStyle,
241
+ listHeaderComponentStyle: this.listHeaderComponentStyle,
242
+ listFooterComponentStyle: this.listFooterComponentStyle,
206
243
  anchorStyle: anchorHostStyle(this.elementRef),
207
244
  maintainVisibleContentPosition: this.maintainVisibleContentPosition,
208
245
  });
209
246
  this.resolvedStyle = styles.style;
210
247
  this.resolvedContentContainerStyle = styles.contentContainerStyle;
211
248
  this.cellStyle = styles.cellStyle;
249
+ this.headerStyle = styles.headerStyle;
250
+ this.footerStyle = styles.footerStyle;
212
251
  this.resolvedMaintainVisibleContentPosition =
213
252
  styles.maintainVisibleContentPosition;
214
253
  }
215
254
  showEmpty() {
216
255
  this.cells.clear();
217
- this.windowCells = [];
218
- this.forcedStickyCell = null;
219
- this.leadingSpacerStyle = null;
220
- this.gapSpacerStyle = null;
221
- this.trailingSpacerStyle = null;
256
+ this.rows = [];
222
257
  dlog(`Angular VirtualizedList empty (viewport=${this.listState.viewportLength})`);
223
258
  }
224
- applySpacers(plan) {
225
- this.leadingSpacerStyle = this.spacerStyle(plan.leadingExtent);
226
- this.gapSpacerStyle = this.spacerStyle(plan.gapExtent);
227
- this.trailingSpacerStyle = this.spacerStyle(plan.trailingExtent);
228
- }
229
- spacerStyle(extent) {
230
- if (extent <= EMPTY_OFFSET)
231
- return null;
232
- return this.isHorizontal ? { width: extent } : { height: extent };
233
- }
234
- buildCells(plan, stickySet) {
235
- const count = this.listState.metrics.count;
236
- const forced = plan.forcedStickyCell;
237
- dlog(`STICKY[list] stickySet=${stickySet === undefined ? 'undefined' : JSON.stringify([...stickySet])} ` +
238
- `childPositions=${JSON.stringify(plan.stickyChildPositions)} ` +
239
- `forcedStickyCell=${forced === undefined ? 'none' : forced.index}`);
240
- // Sticky by construction: a forced cell exists only for an index in `stickySet`
241
- this.forcedStickyCell =
242
- forced !== undefined
243
- ? this.cells.windowCell(forced.index, forced.key, false, true)
244
- : null;
245
- const hasSeparators = this.separatorTemplate !== undefined;
246
- // The separator gates on the last index of the data, not of the window, or a cell's height
247
- // would shift as it slides past
248
- this.windowCells = plan.cells.map(planned => this.cells.windowCell(planned.index, planned.key, hasSeparators && planned.index < count - 1, stickySet?.has(planned.index) === true));
249
- this.cells.endPass();
250
- }
251
259
  // Angular forbids an `[onLayout]` binding, so the event arrives untyped and is narrowed here
252
- handleCellLayout(measure, event) {
253
- if (this.isSymbioteEvent(event))
254
- measure(event);
260
+ handleCellLayout(measure, event, index) {
261
+ if (!this.isSymbioteEvent(event))
262
+ return;
263
+ measure(event);
264
+ const cellKey = this.keyFor(index);
265
+ this.nesting.scope.registerCellNode(event.currentTarget, cellKey);
266
+ this.nesting.remeasureCell(cellKey);
267
+ }
268
+ // Focus inside a cell keeps a viewport of cells around it mounted, like RN's focus capture
269
+ handleCellFocus(index) {
270
+ this.dispatch({ kind: LIST_ACTION_KIND.cellFocused, index });
255
271
  }
256
272
  isSymbioteEvent(value) {
257
273
  return (typeof value === 'object' && value !== null && 'nativeEvent' in value);
@@ -271,7 +287,12 @@ export class VirtualizedList extends VirtualizedListBagsBase {
271
287
  this.cdr.markForCheck();
272
288
  }
273
289
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: VirtualizedList, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
274
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: VirtualizedList, isStandalone: true, selector: "VirtualizedList", viewQueries: [{ propertyName: "scrollHostRef", first: true, predicate: ["scrollHost"], descendants: true, read: ElementRef }], usesInheritance: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: "\n @if (isHorizontal) {\n <horizontal-scroll-view #scrollHost [symbioteHostProps]=\"scrollViewBag()\">\n @if (shouldRenderRefreshControl) {\n <refresh-control\n [symbioteHostProps]=\"refreshControlBag()\"\n ></refresh-control>\n }\n\n @if (headerDir !== undefined) {\n <view>\n <ng-container [vListOutlet]=\"headerDir.templateRef\"></ng-container>\n </view>\n }\n\n @if (itemCount === 0) {\n @if (emptyDir !== undefined) {\n <view>\n <ng-container [vListOutlet]=\"emptyDir.templateRef\"></ng-container>\n </view>\n }\n } @else {\n @if (leadingSpacerStyle !== null) {\n <view [style]=\"leadingSpacerStyle\"></view>\n }\n @if (forcedStickyCell !== null) {\n <sticky-header\n (layout)=\"handleCellLayout(forcedStickyCell.measure, $event)\"\n [style]=\"cellStyle\"\n >\n <ng-container\n [vListOutlet]=\"cellTemplate\"\n [vListOutletContext]=\"forcedStickyCell.context\"\n ></ng-container>\n </sticky-header>\n }\n @if (gapSpacerStyle !== null) {\n <view [style]=\"gapSpacerStyle\"></view>\n }\n @for (cell of windowCells; track cell.key) {\n @if (cell.isSticky) {\n <sticky-header\n (layout)=\"handleCellLayout(cell.measure, $event)\"\n [style]=\"cellStyle\"\n >\n <ng-container\n [vListOutlet]=\"cellTemplate\"\n [vListOutletContext]=\"cell.context\"\n ></ng-container>\n @if (cell.separatorContext !== undefined) {\n <ng-container\n [vListOutlet]=\"separatorTemplate\"\n [vListOutletContext]=\"cell.separatorContext\"\n ></ng-container>\n }\n </sticky-header>\n } @else {\n <view\n (layout)=\"handleCellLayout(cell.measure, $event)\"\n [style]=\"cellStyle\"\n >\n <ng-container\n [vListOutlet]=\"cellTemplate\"\n [vListOutletContext]=\"cell.context\"\n ></ng-container>\n @if (cell.separatorContext !== undefined) {\n <ng-container\n [vListOutlet]=\"separatorTemplate\"\n [vListOutletContext]=\"cell.separatorContext\"\n ></ng-container>\n }\n </view>\n }\n }\n @if (trailingSpacerStyle !== null) {\n <view [style]=\"trailingSpacerStyle\"></view>\n }\n }\n\n @if (footerDir !== undefined) {\n <view>\n <ng-container [vListOutlet]=\"footerDir.templateRef\"></ng-container>\n </view>\n }\n </horizontal-scroll-view>\n } @else {\n <scroll-view #scrollHost [symbioteHostProps]=\"scrollViewBag()\">\n @if (shouldRenderRefreshControl) {\n <refresh-control\n [symbioteHostProps]=\"refreshControlBag()\"\n ></refresh-control>\n }\n\n @if (headerDir !== undefined) {\n <view>\n <ng-container [vListOutlet]=\"headerDir.templateRef\"></ng-container>\n </view>\n }\n\n @if (itemCount === 0) {\n @if (emptyDir !== undefined) {\n <view>\n <ng-container [vListOutlet]=\"emptyDir.templateRef\"></ng-container>\n </view>\n }\n } @else {\n @if (leadingSpacerStyle !== null) {\n <view [style]=\"leadingSpacerStyle\"></view>\n }\n @if (forcedStickyCell !== null) {\n <sticky-header\n (layout)=\"handleCellLayout(forcedStickyCell.measure, $event)\"\n [style]=\"cellStyle\"\n >\n <ng-container\n [vListOutlet]=\"cellTemplate\"\n [vListOutletContext]=\"forcedStickyCell.context\"\n ></ng-container>\n </sticky-header>\n }\n @if (gapSpacerStyle !== null) {\n <view [style]=\"gapSpacerStyle\"></view>\n }\n <!-- The separator sits INSIDE the measuring view, matching RN's cell renderer, as a\n sibling it would add an extra flex gap -->\n @for (cell of windowCells; track cell.key) {\n @if (cell.isSticky) {\n <sticky-header\n (layout)=\"handleCellLayout(cell.measure, $event)\"\n [style]=\"cellStyle\"\n >\n <ng-container\n [vListOutlet]=\"cellTemplate\"\n [vListOutletContext]=\"cell.context\"\n ></ng-container>\n @if (cell.separatorContext !== undefined) {\n <ng-container\n [vListOutlet]=\"separatorTemplate\"\n [vListOutletContext]=\"cell.separatorContext\"\n ></ng-container>\n }\n </sticky-header>\n } @else {\n <view\n (layout)=\"handleCellLayout(cell.measure, $event)\"\n [style]=\"cellStyle\"\n >\n <ng-container\n [vListOutlet]=\"cellTemplate\"\n [vListOutletContext]=\"cell.context\"\n ></ng-container>\n @if (cell.separatorContext !== undefined) {\n <ng-container\n [vListOutlet]=\"separatorTemplate\"\n [vListOutletContext]=\"cell.separatorContext\"\n ></ng-container>\n }\n </view>\n }\n }\n @if (trailingSpacerStyle !== null) {\n <view [style]=\"trailingSpacerStyle\"></view>\n }\n }\n\n @if (footerDir !== undefined) {\n <view>\n <ng-container [vListOutlet]=\"footerDir.templateRef\"></ng-container>\n </view>\n }\n </scroll-view>\n }\n ", isInline: true, dependencies: [{ kind: "directive", type: SymbioteHostPropsDirective, selector: "[symbioteHostProps]", inputs: ["symbioteHostProps"], exportAs: ["symbioteHost"] }, { kind: "directive", type: VListOutletDirective, selector: "[vListOutlet]", inputs: ["vListOutlet", "vListOutletContext"] }, { kind: "component", type: ViewHost, selector: "view" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
290
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: VirtualizedList, isStandalone: true, selector: "VirtualizedList", providers: [
291
+ {
292
+ provide: ListScopeProvider,
293
+ useExisting: forwardRef(() => VirtualizedList),
294
+ },
295
+ ], viewQueries: [{ propertyName: "scrollHostRef", first: true, predicate: ["scrollHost"], descendants: true, read: ElementRef }, { propertyName: "cellBody", first: true, predicate: ["cellBody"], descendants: true, static: true }], usesInheritance: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: "\n @if (nesting.isNested) {\n <view #scrollHost [symbioteHostProps]=\"nestedViewBag()\">\n @if (headerDir !== undefined) {\n <view [style]=\"headerStyle\">\n <ng-container [vListOutlet]=\"headerDir.templateRef\"></ng-container>\n </view>\n }\n\n @if (itemCount === 0) {\n @if (emptyDir !== undefined) {\n <view [style]=\"cellStyle\">\n <ng-container [vListOutlet]=\"emptyDir.templateRef\"></ng-container>\n </view>\n }\n } @else {\n @for (row of rows; track row.key) {\n @if (row.kind === spacerKind) {\n <view [style]=\"row.style\"></view>\n } @else if (row.renderer !== undefined) {\n @if (row.cell.isSticky) {\n <sticky-header>\n <ng-container\n [vListOutlet]=\"cellRendererTpl\"\n [vListOutletContext]=\"row.renderer\"\n ></ng-container>\n </sticky-header>\n } @else {\n <ng-container\n [vListOutlet]=\"cellRendererTpl\"\n [vListOutletContext]=\"row.renderer\"\n ></ng-container>\n }\n } @else if (row.cell.isSticky) {\n <sticky-header\n (layout)=\"handleCellLayout(row.cell.measure, $event, row.cell.index)\"\n (focus)=\"handleCellFocus(row.cell.index)\"\n [style]=\"cellStyle\"\n >\n <ng-container\n [vListOutlet]=\"cellTemplate\" [vListOutletComponent]=\"itemComponent\"\n [vListOutletContext]=\"row.cell.context\"\n ></ng-container>\n @if (row.cell.separatorContext !== undefined) {\n <ng-container\n [vListOutlet]=\"separatorTemplate\"\n [vListOutletContext]=\"row.cell.separatorContext\"\n ></ng-container>\n }\n </sticky-header>\n } @else {\n <view\n (layout)=\"handleCellLayout(row.cell.measure, $event, row.cell.index)\"\n (focus)=\"handleCellFocus(row.cell.index)\"\n [style]=\"cellStyle\"\n >\n <ng-container\n [vListOutlet]=\"cellTemplate\" [vListOutletComponent]=\"itemComponent\"\n [vListOutletContext]=\"row.cell.context\"\n ></ng-container>\n @if (row.cell.separatorContext !== undefined) {\n <ng-container\n [vListOutlet]=\"separatorTemplate\"\n [vListOutletContext]=\"row.cell.separatorContext\"\n ></ng-container>\n }\n </view>\n }\n }\n }\n\n @if (footerDir !== undefined) {\n <view [style]=\"footerStyle\">\n <ng-container [vListOutlet]=\"footerDir.templateRef\"></ng-container>\n </view>\n }\n </view>\n } @else if (isHorizontal) {\n <horizontal-scroll-view #scrollHost [symbioteHostProps]=\"scrollViewBag()\">\n @if (shouldRenderRefreshControl) {\n <refresh-control\n [symbioteHostProps]=\"refreshControlBag()\"\n ></refresh-control>\n }\n\n @if (headerDir !== undefined) {\n <view [style]=\"headerStyle\">\n <ng-container [vListOutlet]=\"headerDir.templateRef\"></ng-container>\n </view>\n }\n\n @if (itemCount === 0) {\n @if (emptyDir !== undefined) {\n <view [style]=\"cellStyle\">\n <ng-container [vListOutlet]=\"emptyDir.templateRef\"></ng-container>\n </view>\n }\n } @else {\n @for (row of rows; track row.key) {\n @if (row.kind === spacerKind) {\n <view [style]=\"row.style\"></view>\n } @else if (row.renderer !== undefined) {\n @if (row.cell.isSticky) {\n <sticky-header>\n <ng-container\n [vListOutlet]=\"cellRendererTpl\"\n [vListOutletContext]=\"row.renderer\"\n ></ng-container>\n </sticky-header>\n } @else {\n <ng-container\n [vListOutlet]=\"cellRendererTpl\"\n [vListOutletContext]=\"row.renderer\"\n ></ng-container>\n }\n } @else if (row.cell.isSticky) {\n <sticky-header\n (layout)=\"handleCellLayout(row.cell.measure, $event, row.cell.index)\"\n (focus)=\"handleCellFocus(row.cell.index)\"\n [style]=\"cellStyle\"\n >\n <ng-container\n [vListOutlet]=\"cellTemplate\" [vListOutletComponent]=\"itemComponent\"\n [vListOutletContext]=\"row.cell.context\"\n ></ng-container>\n @if (row.cell.separatorContext !== undefined) {\n <ng-container\n [vListOutlet]=\"separatorTemplate\"\n [vListOutletContext]=\"row.cell.separatorContext\"\n ></ng-container>\n }\n </sticky-header>\n } @else {\n <view\n (layout)=\"handleCellLayout(row.cell.measure, $event, row.cell.index)\"\n (focus)=\"handleCellFocus(row.cell.index)\"\n [style]=\"cellStyle\"\n >\n <ng-container\n [vListOutlet]=\"cellTemplate\" [vListOutletComponent]=\"itemComponent\"\n [vListOutletContext]=\"row.cell.context\"\n ></ng-container>\n @if (row.cell.separatorContext !== undefined) {\n <ng-container\n [vListOutlet]=\"separatorTemplate\"\n [vListOutletContext]=\"row.cell.separatorContext\"\n ></ng-container>\n }\n </view>\n }\n }\n }\n\n @if (footerDir !== undefined) {\n <view [style]=\"footerStyle\">\n <ng-container [vListOutlet]=\"footerDir.templateRef\"></ng-container>\n </view>\n }\n </horizontal-scroll-view>\n } @else {\n <scroll-view #scrollHost [symbioteHostProps]=\"scrollViewBag()\">\n @if (shouldRenderRefreshControl) {\n <refresh-control\n [symbioteHostProps]=\"refreshControlBag()\"\n ></refresh-control>\n }\n\n @if (headerDir !== undefined) {\n <view [style]=\"headerStyle\">\n <ng-container [vListOutlet]=\"headerDir.templateRef\"></ng-container>\n </view>\n }\n\n @if (itemCount === 0) {\n @if (emptyDir !== undefined) {\n <view [style]=\"cellStyle\">\n <ng-container [vListOutlet]=\"emptyDir.templateRef\"></ng-container>\n </view>\n }\n } @else {\n <!-- The separator sits INSIDE the measuring view, matching RN's cell renderer, as a\n sibling it would add an extra flex gap -->\n @for (row of rows; track row.key) {\n @if (row.kind === spacerKind) {\n <view [style]=\"row.style\"></view>\n } @else if (row.renderer !== undefined) {\n @if (row.cell.isSticky) {\n <sticky-header>\n <ng-container\n [vListOutlet]=\"cellRendererTpl\"\n [vListOutletContext]=\"row.renderer\"\n ></ng-container>\n </sticky-header>\n } @else {\n <ng-container\n [vListOutlet]=\"cellRendererTpl\"\n [vListOutletContext]=\"row.renderer\"\n ></ng-container>\n }\n } @else if (row.cell.isSticky) {\n <sticky-header\n (layout)=\"handleCellLayout(row.cell.measure, $event, row.cell.index)\"\n (focus)=\"handleCellFocus(row.cell.index)\"\n [style]=\"cellStyle\"\n >\n <ng-container\n [vListOutlet]=\"cellTemplate\" [vListOutletComponent]=\"itemComponent\"\n [vListOutletContext]=\"row.cell.context\"\n ></ng-container>\n @if (row.cell.separatorContext !== undefined) {\n <ng-container\n [vListOutlet]=\"separatorTemplate\"\n [vListOutletContext]=\"row.cell.separatorContext\"\n ></ng-container>\n }\n </sticky-header>\n } @else {\n <view\n (layout)=\"handleCellLayout(row.cell.measure, $event, row.cell.index)\"\n (focus)=\"handleCellFocus(row.cell.index)\"\n [style]=\"cellStyle\"\n >\n <ng-container\n [vListOutlet]=\"cellTemplate\" [vListOutletComponent]=\"itemComponent\"\n [vListOutletContext]=\"row.cell.context\"\n ></ng-container>\n @if (row.cell.separatorContext !== undefined) {\n <ng-container\n [vListOutlet]=\"separatorTemplate\"\n [vListOutletContext]=\"row.cell.separatorContext\"\n ></ng-container>\n }\n </view>\n }\n }\n }\n\n @if (footerDir !== undefined) {\n <view [style]=\"footerStyle\">\n <ng-container [vListOutlet]=\"footerDir.templateRef\"></ng-container>\n </view>\n }\n </scroll-view>\n }\n\n <!-- What a `vListCell` wrapper stamps for its item and separator, once per list -->\n <ng-template #cellBody let-cell>\n <ng-container\n [vListOutlet]=\"cellTemplate\" [vListOutletComponent]=\"itemComponent\"\n [vListOutletContext]=\"cell.context\"\n ></ng-container>\n @if (cell.separatorContext !== undefined) {\n <ng-container\n [vListOutlet]=\"separatorTemplate\"\n [vListOutletContext]=\"cell.separatorContext\"\n ></ng-container>\n }\n </ng-template>\n ", isInline: true, dependencies: [{ kind: "directive", type: SymbioteHostPropsDirective, selector: "[symbioteHostProps]", inputs: ["symbioteHostProps"], exportAs: ["symbioteHost"] }, { kind: "directive", type: VListOutletDirective, selector: "[vListOutlet]", inputs: ["vListOutlet", "vListOutletContext", "vListOutletComponent"] }, { kind: "component", type: ViewHost, selector: "view" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
275
296
  }
276
297
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: VirtualizedList, decorators: [{
277
298
  type: Component,
@@ -283,11 +304,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
283
304
  ],
284
305
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
285
306
  imports: [SymbioteHostPropsDirective, VListOutletDirective, ViewHost],
307
+ providers: [
308
+ {
309
+ provide: ListScopeProvider,
310
+ useExisting: forwardRef(() => VirtualizedList),
311
+ },
312
+ ],
286
313
  changeDetection: ChangeDetectionStrategy.OnPush,
287
314
  template: VIRTUALIZED_LIST_TEMPLATE,
288
315
  }]
289
316
  }], propDecorators: { scrollHostRef: [{
290
317
  type: ViewChild,
291
318
  args: ['scrollHost', { read: ElementRef }]
319
+ }], cellBody: [{
320
+ type: ViewChild,
321
+ args: ['cellBody', { static: true }]
292
322
  }] } });
293
323
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/virtualized-list/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/virtualized-list/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type OnChanges } from '@angular/core';
2
- import { type IAccessibilityProps, type IAriaProps } from '@symbiote-native/components';
2
+ import { type IAccessibilityProps, type IAriaProps, type IListHandlers, type IListNesting } from '@symbiote-native/components';
3
3
  import { type IStyleProp, type ISymbioteEvent, type IViewStyle } from '@symbiote-native/engine';
4
4
  import { VirtualizedListHandleBase } from './list-handle';
5
5
  import * as i0 from "@angular/core";
@@ -14,12 +14,16 @@ export declare abstract class VirtualizedListBagsBase<ItemT> extends Virtualized
14
14
  x: number;
15
15
  y: number;
16
16
  } | undefined;
17
+ protected abstract get nesting(): IListNesting<ItemT>;
18
+ protected abstract readonly keyFor: (index: number) => string;
19
+ protected readonly listHandlers: IListHandlers;
17
20
  private readonly inputsRevision;
18
21
  readonly foldedAccessibility: import("@angular/core").Signal<IAccessibilityProps & IAriaProps & Record<string, unknown>>;
19
22
  ngOnChanges(): void;
20
23
  get shouldRenderRefreshControl(): boolean;
21
24
  scrollViewBag(): Record<string, unknown>;
22
25
  refreshControlBag(): Record<string, unknown>;
26
+ nestedViewBag(): Record<string, unknown>;
23
27
  onScrollTick: (event: ISymbioteEvent) => void;
24
28
  onLayoutTick: (event: ISymbioteEvent) => void;
25
29
  handleRefresh: () => void;