@symbiote-native/angular 0.0.0-canary-20260724081123

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 (276) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +157 -0
  3. package/babel-linker.cjs +7 -0
  4. package/babel-register-composed.cjs +127 -0
  5. package/bin/symbiote-angular-dev.cjs +93 -0
  6. package/build/angular/anchor-host-registry.d.ts +2 -0
  7. package/build/angular/anchor-host-registry.js +84 -0
  8. package/build/angular/anchor-host-registry.js.map +1 -0
  9. package/build/angular/bootstrap.d.ts +7 -0
  10. package/build/angular/bootstrap.js +15 -0
  11. package/build/angular/bootstrap.js.map +1 -0
  12. package/build/angular/components/activity-indicator/index.android.d.ts +12 -0
  13. package/build/angular/components/activity-indicator/index.android.js +21 -0
  14. package/build/angular/components/activity-indicator/index.android.js.map +1 -0
  15. package/build/angular/components/activity-indicator/index.d.ts +1 -0
  16. package/build/angular/components/activity-indicator/index.ios.d.ts +8 -0
  17. package/build/angular/components/activity-indicator/index.ios.js +21 -0
  18. package/build/angular/components/activity-indicator/index.ios.js.map +1 -0
  19. package/build/angular/components/activity-indicator/index.js +4 -0
  20. package/build/angular/components/activity-indicator/index.js.map +1 -0
  21. package/build/angular/components/activity-indicator/shared.d.ts +67 -0
  22. package/build/angular/components/activity-indicator/shared.js +260 -0
  23. package/build/angular/components/activity-indicator/shared.js.map +1 -0
  24. package/build/angular/components/button.d.ts +63 -0
  25. package/build/angular/components/button.js +332 -0
  26. package/build/angular/components/button.js.map +1 -0
  27. package/build/angular/components/flat-list/index.d.ts +122 -0
  28. package/build/angular/components/flat-list/index.js +688 -0
  29. package/build/angular/components/flat-list/index.js.map +1 -0
  30. package/build/angular/components/image/index.android.d.ts +10 -0
  31. package/build/angular/components/image/index.android.js +59 -0
  32. package/build/angular/components/image/index.android.js.map +1 -0
  33. package/build/angular/components/image/index.d.ts +1 -0
  34. package/build/angular/components/image/index.ios.d.ts +10 -0
  35. package/build/angular/components/image/index.ios.js +59 -0
  36. package/build/angular/components/image/index.ios.js.map +1 -0
  37. package/build/angular/components/image/index.js +3 -0
  38. package/build/angular/components/image/index.js.map +1 -0
  39. package/build/angular/components/image/shared.d.ts +101 -0
  40. package/build/angular/components/image/shared.js +406 -0
  41. package/build/angular/components/image/shared.js.map +1 -0
  42. package/build/angular/components/image-background.d.ts +81 -0
  43. package/build/angular/components/image-background.js +418 -0
  44. package/build/angular/components/image-background.js.map +1 -0
  45. package/build/angular/components/input-accessory-view/index.d.ts +60 -0
  46. package/build/angular/components/input-accessory-view/index.js +251 -0
  47. package/build/angular/components/input-accessory-view/index.js.map +1 -0
  48. package/build/angular/components/keyboard-avoiding-view/index.d.ts +82 -0
  49. package/build/angular/components/keyboard-avoiding-view/index.js +358 -0
  50. package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -0
  51. package/build/angular/components/modal/index.d.ts +92 -0
  52. package/build/angular/components/modal/index.js +360 -0
  53. package/build/angular/components/modal/index.js.map +1 -0
  54. package/build/angular/components/pressable/index.d.ts +123 -0
  55. package/build/angular/components/pressable/index.js +420 -0
  56. package/build/angular/components/pressable/index.js.map +1 -0
  57. package/build/angular/components/refresh-control/index.d.ts +86 -0
  58. package/build/angular/components/refresh-control/index.js +342 -0
  59. package/build/angular/components/refresh-control/index.js.map +1 -0
  60. package/build/angular/components/safe-area-view/index.d.ts +57 -0
  61. package/build/angular/components/safe-area-view/index.js +248 -0
  62. package/build/angular/components/safe-area-view/index.js.map +1 -0
  63. package/build/angular/components/scroll-view/index.android.d.ts +21 -0
  64. package/build/angular/components/scroll-view/index.android.js +235 -0
  65. package/build/angular/components/scroll-view/index.android.js.map +1 -0
  66. package/build/angular/components/scroll-view/index.d.ts +3 -0
  67. package/build/angular/components/scroll-view/index.ios.d.ts +9 -0
  68. package/build/angular/components/scroll-view/index.ios.js +86 -0
  69. package/build/angular/components/scroll-view/index.ios.js.map +1 -0
  70. package/build/angular/components/scroll-view/index.js +6 -0
  71. package/build/angular/components/scroll-view/index.js.map +1 -0
  72. package/build/angular/components/scroll-view/projection.d.ts +32 -0
  73. package/build/angular/components/scroll-view/projection.js +334 -0
  74. package/build/angular/components/scroll-view/projection.js.map +1 -0
  75. package/build/angular/components/scroll-view/shared.d.ts +230 -0
  76. package/build/angular/components/scroll-view/shared.js +682 -0
  77. package/build/angular/components/scroll-view/shared.js.map +1 -0
  78. package/build/angular/components/scroll-view/sticky-header.d.ts +40 -0
  79. package/build/angular/components/scroll-view/sticky-header.js +225 -0
  80. package/build/angular/components/scroll-view/sticky-header.js.map +1 -0
  81. package/build/angular/components/section-list/index.d.ts +116 -0
  82. package/build/angular/components/section-list/index.js +641 -0
  83. package/build/angular/components/section-list/index.js.map +1 -0
  84. package/build/angular/components/switch/index.android.d.ts +20 -0
  85. package/build/angular/components/switch/index.android.js +70 -0
  86. package/build/angular/components/switch/index.android.js.map +1 -0
  87. package/build/angular/components/switch/index.d.ts +1 -0
  88. package/build/angular/components/switch/index.ios.d.ts +19 -0
  89. package/build/angular/components/switch/index.ios.js +69 -0
  90. package/build/angular/components/switch/index.ios.js.map +1 -0
  91. package/build/angular/components/switch/index.js +4 -0
  92. package/build/angular/components/switch/index.js.map +1 -0
  93. package/build/angular/components/switch/shared.d.ts +40 -0
  94. package/build/angular/components/switch/shared.js +127 -0
  95. package/build/angular/components/switch/shared.js.map +1 -0
  96. package/build/angular/components/text-input.d.ts +153 -0
  97. package/build/angular/components/text-input.js +599 -0
  98. package/build/angular/components/text-input.js.map +1 -0
  99. package/build/angular/components/touchable/index.d.ts +245 -0
  100. package/build/angular/components/touchable/index.js +1186 -0
  101. package/build/angular/components/touchable/index.js.map +1 -0
  102. package/build/angular/components/touchable-native-feedback/index.d.ts +83 -0
  103. package/build/angular/components/touchable-native-feedback/index.js +371 -0
  104. package/build/angular/components/touchable-native-feedback/index.js.map +1 -0
  105. package/build/angular/components/virtualized-list/directives.d.ts +54 -0
  106. package/build/angular/components/virtualized-list/directives.js +153 -0
  107. package/build/angular/components/virtualized-list/directives.js.map +1 -0
  108. package/build/angular/components/virtualized-list/index.d.ts +253 -0
  109. package/build/angular/components/virtualized-list/index.js +1031 -0
  110. package/build/angular/components/virtualized-list/index.js.map +1 -0
  111. package/build/angular/components/virtualized-section-list/directives.d.ts +37 -0
  112. package/build/angular/components/virtualized-section-list/directives.js +76 -0
  113. package/build/angular/components/virtualized-section-list/directives.js.map +1 -0
  114. package/build/angular/components/virtualized-section-list/index.d.ts +178 -0
  115. package/build/angular/components/virtualized-section-list/index.js +720 -0
  116. package/build/angular/components/virtualized-section-list/index.js.map +1 -0
  117. package/build/angular/components.d.ts +39 -0
  118. package/build/angular/components.js +38 -0
  119. package/build/angular/components.js.map +1 -0
  120. package/build/angular/create-portal/index.d.ts +22 -0
  121. package/build/angular/create-portal/index.js +74 -0
  122. package/build/angular/create-portal/index.js.map +1 -0
  123. package/build/angular/create-tunnel/index.d.ts +34 -0
  124. package/build/angular/create-tunnel/index.js +126 -0
  125. package/build/angular/create-tunnel/index.js.map +1 -0
  126. package/build/angular/descriptor-to-angular/index.d.ts +22 -0
  127. package/build/angular/descriptor-to-angular/index.js +142 -0
  128. package/build/angular/descriptor-to-angular/index.js.map +1 -0
  129. package/build/angular/host-instance/index.d.ts +2 -0
  130. package/build/angular/host-instance/index.js +37 -0
  131. package/build/angular/host-instance/index.js.map +1 -0
  132. package/build/angular/index.d.ts +22 -0
  133. package/build/angular/index.js +46 -0
  134. package/build/angular/index.js.map +1 -0
  135. package/build/angular/modules/animated/animated-leaf-binder/index.d.ts +14 -0
  136. package/build/angular/modules/animated/animated-leaf-binder/index.js +91 -0
  137. package/build/angular/modules/animated/animated-leaf-binder/index.js.map +1 -0
  138. package/build/angular/modules/animated/animated-leaf-binder.d.ts +14 -0
  139. package/build/angular/modules/animated/animated-leaf-binder.js +91 -0
  140. package/build/angular/modules/animated/animated-leaf-binder.js.map +1 -0
  141. package/build/angular/modules/animated/create-animated-component.d.ts +59 -0
  142. package/build/angular/modules/animated/create-animated-component.js +364 -0
  143. package/build/angular/modules/animated/create-animated-component.js.map +1 -0
  144. package/build/angular/modules/animated/index.d.ts +51 -0
  145. package/build/angular/modules/animated/index.js +59 -0
  146. package/build/angular/modules/animated/index.js.map +1 -0
  147. package/build/angular/modules/app-registry/index.d.ts +7 -0
  148. package/build/angular/modules/app-registry/index.js +23 -0
  149. package/build/angular/modules/app-registry/index.js.map +1 -0
  150. package/build/angular/modules/status-bar/index.d.ts +20 -0
  151. package/build/angular/modules/status-bar/index.js +59 -0
  152. package/build/angular/modules/status-bar/index.js.map +1 -0
  153. package/build/angular/primitives/index.d.ts +63 -0
  154. package/build/angular/primitives/index.js +189 -0
  155. package/build/angular/primitives/index.js.map +1 -0
  156. package/build/angular/primitives/shared.d.ts +88 -0
  157. package/build/angular/primitives/shared.js +171 -0
  158. package/build/angular/primitives/shared.js.map +1 -0
  159. package/build/angular/render/index.d.ts +11 -0
  160. package/build/angular/render/index.js +171 -0
  161. package/build/angular/render/index.js.map +1 -0
  162. package/build/angular/renderer/index.d.ts +37 -0
  163. package/build/angular/renderer/index.js +301 -0
  164. package/build/angular/renderer/index.js.map +1 -0
  165. package/build/angular/services/color-scheme.service.d.ts +16 -0
  166. package/build/angular/services/color-scheme.service.js +31 -0
  167. package/build/angular/services/color-scheme.service.js.map +1 -0
  168. package/build/angular/services/index.d.ts +2 -0
  169. package/build/angular/services/index.js +3 -0
  170. package/build/angular/services/index.js.map +1 -0
  171. package/build/angular/services/window-dimensions.service.d.ts +16 -0
  172. package/build/angular/services/window-dimensions.service.js +42 -0
  173. package/build/angular/services/window-dimensions.service.js.map +1 -0
  174. package/metro-config.cjs +48 -0
  175. package/metro-css-parser.cjs +13 -0
  176. package/package.json +80 -0
  177. package/src/__tests__/responder-change-detection.test.ts +102 -0
  178. package/src/__tests__/responder-nested-cd.test.ts +113 -0
  179. package/src/anchor-host-registry.ts +88 -0
  180. package/src/angular-gaps.test.ts +142 -0
  181. package/src/angular-imports.test.ts +100 -0
  182. package/src/bootstrap.ts +26 -0
  183. package/src/components/activity-indicator/activity-indicator-class-style.test.ts +44 -0
  184. package/src/components/activity-indicator/activity-indicator.test.ts +131 -0
  185. package/src/components/activity-indicator/index.android.ts +16 -0
  186. package/src/components/activity-indicator/index.ios.ts +17 -0
  187. package/src/components/activity-indicator/index.ts +4 -0
  188. package/src/components/activity-indicator/shared.ts +206 -0
  189. package/src/components/button.ts +193 -0
  190. package/src/components/flat-list/column-wrapper-style-class.test.ts +116 -0
  191. package/src/components/flat-list/flat-list-array-style.test.ts +131 -0
  192. package/src/components/flat-list/flat-list-class-style.test.ts +74 -0
  193. package/src/components/flat-list/flat-list-scroll-containment.test.ts +107 -0
  194. package/src/components/flat-list/flat-list.test.ts +99 -0
  195. package/src/components/flat-list/index.ts +574 -0
  196. package/src/components/image/image-class-style.test.ts +46 -0
  197. package/src/components/image/index.android.ts +48 -0
  198. package/src/components/image/index.ios.ts +48 -0
  199. package/src/components/image/index.ts +3 -0
  200. package/src/components/image/shared.ts +479 -0
  201. package/src/components/image-background-class-style.test.ts +48 -0
  202. package/src/components/image-background-style-class.test.ts +79 -0
  203. package/src/components/image-background.ts +270 -0
  204. package/src/components/input-accessory-view/index.ts +185 -0
  205. package/src/components/input-accessory-view/input-accessory-view.test.ts +43 -0
  206. package/src/components/keyboard-avoiding-view/index.ts +303 -0
  207. package/src/components/keyboard-avoiding-view/keyboard-avoiding-view.test.ts +54 -0
  208. package/src/components/modal/index.ts +299 -0
  209. package/src/components/modal/modal.test.ts +43 -0
  210. package/src/components/pressable/index.ts +373 -0
  211. package/src/components/pressable/pressable.test.ts +85 -0
  212. package/src/components/refresh-control/index.ts +284 -0
  213. package/src/components/refresh-control/refresh-control.test.ts +41 -0
  214. package/src/components/safe-area-view/index.ts +177 -0
  215. package/src/components/safe-area-view/safe-area-view.test.ts +43 -0
  216. package/src/components/scroll-view/android-scroll-view-axis-projection.test.ts +123 -0
  217. package/src/components/scroll-view/content-container-style-class.test.ts +75 -0
  218. package/src/components/scroll-view/index.android.ts +190 -0
  219. package/src/components/scroll-view/index.ios.ts +79 -0
  220. package/src/components/scroll-view/index.ts +7 -0
  221. package/src/components/scroll-view/projection.ts +414 -0
  222. package/src/components/scroll-view/scroll-view-class-style.test.ts +134 -0
  223. package/src/components/scroll-view/scroll-view-projection.test.ts +194 -0
  224. package/src/components/scroll-view/shared.ts +844 -0
  225. package/src/components/scroll-view/sticky-header.ts +255 -0
  226. package/src/components/section-list/index.ts +445 -0
  227. package/src/components/switch/android-switch-class.test.ts +42 -0
  228. package/src/components/switch/index.android.ts +61 -0
  229. package/src/components/switch/index.ios.ts +60 -0
  230. package/src/components/switch/index.ts +4 -0
  231. package/src/components/switch/shared.ts +197 -0
  232. package/src/components/switch/switch.test.ts +92 -0
  233. package/src/components/text-input-class-style.test.ts +54 -0
  234. package/src/components/text-input.ts +531 -0
  235. package/src/components/touchable/index.ts +629 -0
  236. package/src/components/touchable/touchable.test.ts +102 -0
  237. package/src/components/touchable-native-feedback/index.ts +254 -0
  238. package/src/components/touchable-native-feedback/touchable-native-feedback.test.ts +49 -0
  239. package/src/components/virtualized-list/directives.ts +168 -0
  240. package/src/components/virtualized-list/index.ts +992 -0
  241. package/src/components/virtualized-list/virtualized-list-class-style.test.ts +76 -0
  242. package/src/components/virtualized-section-list/directives.ts +90 -0
  243. package/src/components/virtualized-section-list/index.ts +601 -0
  244. package/src/components/virtualized-section-list/virtualized-section-list-class-style.test.ts +60 -0
  245. package/src/components.ts +149 -0
  246. package/src/create-portal/create-portal.test.ts +90 -0
  247. package/src/create-portal/index.ts +74 -0
  248. package/src/create-tunnel/create-tunnel.test.ts +120 -0
  249. package/src/create-tunnel/index.ts +136 -0
  250. package/src/descriptor-to-angular/descriptor-outlet.test.ts +94 -0
  251. package/src/descriptor-to-angular/index.ts +190 -0
  252. package/src/host-instance/host-instance.test.ts +49 -0
  253. package/src/host-instance/index.ts +36 -0
  254. package/src/index.ts +261 -0
  255. package/src/modules/animated/animated-leaf-binder/animated-leaf-binder.test.ts +116 -0
  256. package/src/modules/animated/animated-leaf-binder/index.ts +101 -0
  257. package/src/modules/animated/animated-leaf-binder.test.ts +116 -0
  258. package/src/modules/animated/animated-leaf-binder.ts +101 -0
  259. package/src/modules/animated/animated-scroll-view.test.ts +102 -0
  260. package/src/modules/animated/create-animated-component.ts +365 -0
  261. package/src/modules/animated/index.ts +105 -0
  262. package/src/modules/app-registry/app-registry.test.ts +106 -0
  263. package/src/modules/app-registry/index.ts +60 -0
  264. package/src/modules/status-bar/index.ts +57 -0
  265. package/src/modules/status-bar/status-bar.test.ts +50 -0
  266. package/src/primitives/index.ts +119 -0
  267. package/src/primitives/shared.ts +190 -0
  268. package/src/render/index.ts +235 -0
  269. package/src/render/render.test.ts +147 -0
  270. package/src/renderer/index.ts +347 -0
  271. package/src/renderer/renderer.test.ts +203 -0
  272. package/src/services/color-scheme.service.ts +27 -0
  273. package/src/services/index.ts +2 -0
  274. package/src/services/services.test.ts +163 -0
  275. package/src/services/window-dimensions.service.ts +41 -0
  276. package/tsconfig.angular.base.json +30 -0
@@ -0,0 +1,641 @@
1
+ // SectionList, the Angular public list-of-sections component. A thin convenience surface over
2
+ // VirtualizedSectionList, mirroring RN's layering (SectionList -> VirtualizedSectionList ->
3
+ // VirtualizedList). All section-flattening / windowing / sticky-header / imperative-scroll logic
4
+ // lives below; this layer re-exposes the same surface under the SectionList name and re-exposes the
5
+ // handle (delegating to the inner VirtualizedSectionList). The Angular twin of
6
+ // adapters/vue/src/components/section-list/index.ts.
7
+ //
8
+ // As in the Vue twin, SectionList is a PURE FORWARDER: its public prop surface IS
9
+ // VirtualizedSectionList's (RN layers them one-for-one), and the SectionList-flavour defaults
10
+ // (stickySectionHeadersEnabled per Platform.OS, the section entry keyExtractor) already live INSIDE
11
+ // VirtualizedSectionList — it applies `stickySectionHeadersEnabled ?? (Platform.OS === 'ios')` in
12
+ // its ngDoCheck and routes keyExtractor through the shared sectionEntryKey. So SectionList forwards
13
+ // each prop unchanged (undefined included) and the default lands one layer down; double-applying
14
+ // here would fight VSL. Vue spreads $attrs to do this in one line — Angular has no attrs-spread, so
15
+ // every prop is forwarded as an explicit @Input binding, except the seven list-lifecycle events
16
+ // (endReached/startReached/refresh/accessibilityAction/accessibilityTap/magicTap/
17
+ // accessibilityEscape), which are real @Output() EventEmitters re-emitted via a listener binding.
18
+ //
19
+ // TEMPLATE FORWARDING — RE-STAMP, the same pattern FlatList's single-column branch was fixed to use
20
+ // (see flat-list/index.ts). A bare `<ng-content></ng-content>` passthrough does NOT let
21
+ // VirtualizedSectionList's own @ContentChild resolve directives across the SECOND projection hop
22
+ // (SectionList's own `<ng-content>` re-projecting content that was actually authored on `<SectionList>`
23
+ // by the app, one level further out) — Angular's content queries resolve against what was projected
24
+ // directly onto the querying component's OWN tag, not transitively through a nested `<ng-content>`
25
+ // relay. So SectionList captures the app's `<ng-template vSectionItem>` / vSectionHeader /
26
+ // vSectionFooter / vSectionSeparator / vListHeader / vListFooter / vListEmpty / vListSeparator with
27
+ // its OWN @ContentChild (a single, direct projection hop — this always resolves) and re-authors
28
+ // equivalent `<ng-template>`s on `<VirtualizedSectionList>`, each forwarding the captured
29
+ // templateRef + context through VListOutletDirective, exactly mirroring how VirtualizedSectionList
30
+ // itself re-stamps its own captured directives onto its inner VirtualizedList.
31
+ import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, Input, Output, ViewChild, inject, } from '@angular/core';
32
+ import {} from '@symbiote-native/engine';
33
+ import { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListSeparatorDirective, } from '../virtualized-list';
34
+ import { VListOutletDirective } from '../virtualized-list/directives';
35
+ import { stableAnchorStyle } from '../../primitives';
36
+ import { VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, VirtualizedSectionList, } from '../virtualized-section-list';
37
+ import * as i0 from "@angular/core";
38
+ // Angular cannot preserve VListSeparatorDirective<ItemT>'s type parameter across this re-stamp
39
+ // reuse (the directive is matched structurally in SectionList's own template with no explicit type
40
+ // argument to pin ItemT to, so `let-leadingItem`/`let-trailingItem` arrive typed `unknown`) — even
41
+ // though VirtualizedSectionList's own unwrap always supplies a real ItemT value. The narrowest
42
+ // possible I/O-boundary cast for that gap; not a general-purpose unknown-to-T narrowing (mirrors
43
+ // flat-list/index.ts's identical asItem helper).
44
+ function asItem(value) {
45
+ return value;
46
+ }
47
+ // Re-export the section authoring directives + the list-level slot directives so app code importing
48
+ // from '@symbiote-native/angular' gets the full `<ng-template vSection*>` / `vList*` authoring surface
49
+ // alongside SectionList (mirrors how virtualized-section-list/index re-exports the section ones and
50
+ // FlatList re-exports the list-level ones).
51
+ export { VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, } from '../virtualized-section-list';
52
+ export { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListSeparatorDirective, } from '../virtualized-list';
53
+ export class SectionList {
54
+ sections;
55
+ keyExtractor;
56
+ stickySectionHeadersEnabled;
57
+ extraData;
58
+ endReached = new EventEmitter();
59
+ onEndReachedThreshold;
60
+ startReached = new EventEmitter();
61
+ onStartReachedThreshold;
62
+ refresh = new EventEmitter();
63
+ refreshing;
64
+ progressViewOffset;
65
+ initialNumToRender;
66
+ initialScrollIndex;
67
+ maxToRenderPerBatch;
68
+ updateCellsBatchingPeriod;
69
+ windowSize;
70
+ inverted;
71
+ maintainVisibleContentPosition;
72
+ onScroll;
73
+ onScrollBeginDrag;
74
+ onScrollEndDrag;
75
+ onMomentumScrollBegin;
76
+ onMomentumScrollEnd;
77
+ scrollEventThrottle;
78
+ keyboardShouldPersistTaps;
79
+ keyboardDismissMode;
80
+ style;
81
+ contentContainerStyle;
82
+ testID;
83
+ nativeID;
84
+ // Bound to the template's `[style]="resolvedStyle"`, which Angular compiles to the built-in
85
+ // ɵɵstyleMap instruction — it only understands a flat object, never an array (RN's own
86
+ // `style={[a, b]}` composition idiom crashes deep inside Angular's styling engine), so this
87
+ // flattens `style` via the engine's own flattenStyle before it ever reaches that binding.
88
+ // anchorHostStyle merges in this component's OWN anchor's class-derived style (see its doc
89
+ // comment) — `elementRef` below is SectionList's OWN host, not `list`'s inner VirtualizedSectionList.
90
+ // A plain `flattenStyle([...])` here would allocate a FRESH object on every getter read (every CD
91
+ // check), which — bound onto the nested VirtualizedSectionList/VirtualizedList's own `@Input()
92
+ // style` — defeats VirtualizedList's `ngDoCheck` dedup gate and free-runs change detection
93
+ // forever (the exact bug `stableAnchorStyle` exists to prevent, see its doc comment and the
94
+ // `flat-list-array-style.test.ts` regression it fixes). `cachedResolvedStyle` is the getter's own
95
+ // persisted "previous" value across reads, since a getter has no natural field to compare against.
96
+ cachedResolvedStyle;
97
+ get resolvedStyle() {
98
+ this.cachedResolvedStyle = stableAnchorStyle(this.elementRef, this.style, this.cachedResolvedStyle);
99
+ return this.cachedResolvedStyle;
100
+ }
101
+ accessible;
102
+ accessibilityLabel;
103
+ accessibilityHint;
104
+ accessibilityRole;
105
+ accessibilityState;
106
+ accessibilityValue;
107
+ accessibilityActions;
108
+ accessibilityLabelledBy;
109
+ importantForAccessibility;
110
+ accessibilityLiveRegion;
111
+ screenReaderFocusable;
112
+ accessibilityViewIsModal;
113
+ accessibilityElementsHidden;
114
+ accessibilityIgnoresInvertColors;
115
+ accessibilityLanguage;
116
+ accessibilityRespondsToUserInteraction;
117
+ accessibilityShowsLargeContentViewer;
118
+ accessibilityLargeContentTitle;
119
+ accessibilityAction = new EventEmitter();
120
+ accessibilityTap = new EventEmitter();
121
+ magicTap = new EventEmitter();
122
+ accessibilityEscape = new EventEmitter();
123
+ role;
124
+ ariaLabel;
125
+ ariaLabelledBy;
126
+ ariaLive;
127
+ ariaHidden;
128
+ ariaBusy;
129
+ ariaChecked;
130
+ ariaDisabled;
131
+ ariaExpanded;
132
+ ariaSelected;
133
+ ariaModal;
134
+ ariaValueMax;
135
+ ariaValueMin;
136
+ ariaValueNow;
137
+ ariaValueText;
138
+ // The app's section/list authoring templates, captured from the app's DIRECT projected content
139
+ // (single hop — always resolves) and re-stamped onto the inner VirtualizedSectionList above.
140
+ sectionItemDir;
141
+ sectionHeaderDir;
142
+ sectionFooterDir;
143
+ sectionSeparatorDir;
144
+ listHeaderDir;
145
+ listFooterDir;
146
+ listEmptyDir;
147
+ itemSeparatorDir;
148
+ // The composed inner VirtualizedSectionList. Its instance IS an IVirtualizedSectionListHandle, so
149
+ // SectionList's handle delegates straight to it. Available from ngAfterViewInit; reads lazily.
150
+ list;
151
+ // This component's OWN host — the non-painting anchor `class="..."` at the use site resolves
152
+ // onto (see anchorHostStyle's doc comment) — NOT `list` above, which targets the real inner
153
+ // `<VirtualizedSectionList>` one level down (itself its own separate anchor host).
154
+ elementRef = inject(ElementRef);
155
+ // The item separator context: leadingItem/trailingItem arrive `unknown` from the template's `let`
156
+ // bindings (see the asItem boundary comment above), already-unwrapped real items (no envelope to
157
+ // narrow through, unlike a section header/footer entry).
158
+ itemSeparatorContext(highlighted, leadingItem, trailingItem) {
159
+ const isHighlighted = highlighted === true;
160
+ return {
161
+ $implicit: isHighlighted,
162
+ highlighted: isHighlighted,
163
+ leadingItem: asItem(leadingItem),
164
+ trailingItem: asItem(trailingItem),
165
+ };
166
+ }
167
+ // ---- imperative handle (the shared IVirtualizedSectionListHandle surface) — delegates down ----
168
+ scrollToLocation(params) {
169
+ this.list?.scrollToLocation(params);
170
+ }
171
+ flashScrollIndicators() {
172
+ this.list?.flashScrollIndicators();
173
+ }
174
+ getNativeScrollRef() {
175
+ return this.list?.getNativeScrollRef() ?? null;
176
+ }
177
+ getScrollableNode() {
178
+ return this.list?.getScrollableNode() ?? null;
179
+ }
180
+ getScrollResponder() {
181
+ return this.list?.getScrollResponder() ?? null;
182
+ }
183
+ getScrollNode() {
184
+ return this.list?.getScrollNode() ?? null;
185
+ }
186
+ recordInteraction() {
187
+ this.list?.recordInteraction();
188
+ }
189
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SectionList, deps: [], target: i0.ɵɵFactoryTarget.Component });
190
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SectionList, isStandalone: true, selector: "SectionList", inputs: { sections: "sections", keyExtractor: "keyExtractor", stickySectionHeadersEnabled: "stickySectionHeadersEnabled", extraData: "extraData", onEndReachedThreshold: "onEndReachedThreshold", onStartReachedThreshold: "onStartReachedThreshold", refreshing: "refreshing", progressViewOffset: "progressViewOffset", initialNumToRender: "initialNumToRender", initialScrollIndex: "initialScrollIndex", maxToRenderPerBatch: "maxToRenderPerBatch", updateCellsBatchingPeriod: "updateCellsBatchingPeriod", windowSize: "windowSize", inverted: "inverted", maintainVisibleContentPosition: "maintainVisibleContentPosition", onScroll: "onScroll", onScrollBeginDrag: "onScrollBeginDrag", onScrollEndDrag: "onScrollEndDrag", onMomentumScrollBegin: "onMomentumScrollBegin", onMomentumScrollEnd: "onMomentumScrollEnd", scrollEventThrottle: "scrollEventThrottle", keyboardShouldPersistTaps: "keyboardShouldPersistTaps", keyboardDismissMode: "keyboardDismissMode", style: "style", contentContainerStyle: "contentContainerStyle", testID: "testID", nativeID: "nativeID", accessible: "accessible", accessibilityLabel: "accessibilityLabel", accessibilityHint: "accessibilityHint", accessibilityRole: "accessibilityRole", accessibilityState: "accessibilityState", accessibilityValue: "accessibilityValue", accessibilityActions: "accessibilityActions", accessibilityLabelledBy: "accessibilityLabelledBy", importantForAccessibility: "importantForAccessibility", accessibilityLiveRegion: "accessibilityLiveRegion", screenReaderFocusable: "screenReaderFocusable", accessibilityViewIsModal: "accessibilityViewIsModal", accessibilityElementsHidden: "accessibilityElementsHidden", accessibilityIgnoresInvertColors: "accessibilityIgnoresInvertColors", accessibilityLanguage: "accessibilityLanguage", accessibilityRespondsToUserInteraction: "accessibilityRespondsToUserInteraction", accessibilityShowsLargeContentViewer: "accessibilityShowsLargeContentViewer", accessibilityLargeContentTitle: "accessibilityLargeContentTitle", role: "role", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaLive: "ariaLive", ariaHidden: "ariaHidden", ariaBusy: "ariaBusy", ariaChecked: "ariaChecked", ariaDisabled: "ariaDisabled", ariaExpanded: "ariaExpanded", ariaSelected: "ariaSelected", ariaModal: "ariaModal", ariaValueMax: "ariaValueMax", ariaValueMin: "ariaValueMin", ariaValueNow: "ariaValueNow", ariaValueText: "ariaValueText" }, outputs: { endReached: "endReached", startReached: "startReached", refresh: "refresh", accessibilityAction: "accessibilityAction", accessibilityTap: "accessibilityTap", magicTap: "magicTap", accessibilityEscape: "accessibilityEscape" }, queries: [{ propertyName: "sectionItemDir", first: true, predicate: VSectionItemDirective, descendants: true }, { propertyName: "sectionHeaderDir", first: true, predicate: VSectionHeaderDirective, descendants: true }, { propertyName: "sectionFooterDir", first: true, predicate: VSectionFooterDirective, descendants: true }, { propertyName: "sectionSeparatorDir", first: true, predicate: VSectionSeparatorDirective, descendants: true }, { propertyName: "listHeaderDir", first: true, predicate: VListHeaderDirective, descendants: true }, { propertyName: "listFooterDir", first: true, predicate: VListFooterDirective, descendants: true }, { propertyName: "listEmptyDir", first: true, predicate: VListEmptyDirective, descendants: true }, { propertyName: "itemSeparatorDir", first: true, predicate: VListSeparatorDirective, descendants: true }], viewQueries: [{ propertyName: "list", first: true, predicate: VirtualizedSectionList, descendants: true }], ngImport: i0, template: `
191
+ <VirtualizedSectionList
192
+ [sections]="sections"
193
+ [keyExtractor]="keyExtractor"
194
+ [stickySectionHeadersEnabled]="stickySectionHeadersEnabled"
195
+ [extraData]="extraData"
196
+ (endReached)="endReached.emit($event)"
197
+ [onEndReachedThreshold]="onEndReachedThreshold"
198
+ (startReached)="startReached.emit($event)"
199
+ [onStartReachedThreshold]="onStartReachedThreshold"
200
+ (refresh)="refresh.emit()"
201
+ [refreshRequested]="refresh.observed"
202
+ [refreshing]="refreshing"
203
+ [progressViewOffset]="progressViewOffset"
204
+ [initialNumToRender]="initialNumToRender"
205
+ [initialScrollIndex]="initialScrollIndex"
206
+ [maxToRenderPerBatch]="maxToRenderPerBatch"
207
+ [updateCellsBatchingPeriod]="updateCellsBatchingPeriod"
208
+ [windowSize]="windowSize"
209
+ [inverted]="inverted"
210
+ [maintainVisibleContentPosition]="maintainVisibleContentPosition"
211
+ [onScroll]="onScroll"
212
+ [onScrollBeginDrag]="onScrollBeginDrag"
213
+ [onScrollEndDrag]="onScrollEndDrag"
214
+ [onMomentumScrollBegin]="onMomentumScrollBegin"
215
+ [onMomentumScrollEnd]="onMomentumScrollEnd"
216
+ [scrollEventThrottle]="scrollEventThrottle"
217
+ [keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
218
+ [keyboardDismissMode]="keyboardDismissMode"
219
+ [style]="resolvedStyle"
220
+ [contentContainerStyle]="contentContainerStyle"
221
+ [testID]="testID"
222
+ [nativeID]="nativeID"
223
+ [accessible]="accessible"
224
+ [accessibilityLabel]="accessibilityLabel"
225
+ [accessibilityHint]="accessibilityHint"
226
+ [accessibilityRole]="accessibilityRole"
227
+ [accessibilityState]="accessibilityState"
228
+ [accessibilityValue]="accessibilityValue"
229
+ [accessibilityActions]="accessibilityActions"
230
+ [accessibilityLabelledBy]="accessibilityLabelledBy"
231
+ [importantForAccessibility]="importantForAccessibility"
232
+ [accessibilityLiveRegion]="accessibilityLiveRegion"
233
+ [screenReaderFocusable]="screenReaderFocusable"
234
+ [accessibilityViewIsModal]="accessibilityViewIsModal"
235
+ [accessibilityElementsHidden]="accessibilityElementsHidden"
236
+ [accessibilityIgnoresInvertColors]="accessibilityIgnoresInvertColors"
237
+ [accessibilityLanguage]="accessibilityLanguage"
238
+ [accessibilityRespondsToUserInteraction]="accessibilityRespondsToUserInteraction"
239
+ [accessibilityShowsLargeContentViewer]="accessibilityShowsLargeContentViewer"
240
+ [accessibilityLargeContentTitle]="accessibilityLargeContentTitle"
241
+ (accessibilityAction)="accessibilityAction.emit($event)"
242
+ (accessibilityTap)="accessibilityTap.emit($event)"
243
+ (magicTap)="magicTap.emit($event)"
244
+ (accessibilityEscape)="accessibilityEscape.emit($event)"
245
+ [role]="role"
246
+ [ariaLabel]="ariaLabel"
247
+ [ariaLabelledBy]="ariaLabelledBy"
248
+ [ariaLive]="ariaLive"
249
+ [ariaHidden]="ariaHidden"
250
+ [ariaBusy]="ariaBusy"
251
+ [ariaChecked]="ariaChecked"
252
+ [ariaDisabled]="ariaDisabled"
253
+ [ariaExpanded]="ariaExpanded"
254
+ [ariaSelected]="ariaSelected"
255
+ [ariaModal]="ariaModal"
256
+ [ariaValueMax]="ariaValueMax"
257
+ [ariaValueMin]="ariaValueMin"
258
+ [ariaValueNow]="ariaValueNow"
259
+ [ariaValueText]="ariaValueText"
260
+ >
261
+ <ng-template
262
+ vSectionItem
263
+ let-item
264
+ let-index="index"
265
+ let-section="section"
266
+ let-separators="separators"
267
+ >
268
+ <ng-container
269
+ [vListOutlet]="sectionItemDir?.templateRef"
270
+ [vListOutletContext]="{ $implicit: item, item, index, section, separators }"
271
+ ></ng-container>
272
+ </ng-template>
273
+ @if (sectionHeaderDir !== undefined) {
274
+ <ng-template vSectionHeader let-section>
275
+ <ng-container
276
+ [vListOutlet]="sectionHeaderDir.templateRef"
277
+ [vListOutletContext]="{ $implicit: section, section }"
278
+ ></ng-container>
279
+ </ng-template>
280
+ }
281
+ @if (sectionFooterDir !== undefined) {
282
+ <ng-template vSectionFooter let-section>
283
+ <ng-container
284
+ [vListOutlet]="sectionFooterDir.templateRef"
285
+ [vListOutletContext]="{ $implicit: section, section }"
286
+ ></ng-container>
287
+ </ng-template>
288
+ }
289
+ @if (sectionSeparatorDir !== undefined) {
290
+ <ng-template vSectionSeparator>
291
+ <ng-container [vListOutlet]="sectionSeparatorDir.templateRef"></ng-container>
292
+ </ng-template>
293
+ }
294
+ @if (listHeaderDir !== undefined) {
295
+ <ng-template vListHeader>
296
+ <ng-container [vListOutlet]="listHeaderDir.templateRef"></ng-container>
297
+ </ng-template>
298
+ }
299
+ @if (listFooterDir !== undefined) {
300
+ <ng-template vListFooter>
301
+ <ng-container [vListOutlet]="listFooterDir.templateRef"></ng-container>
302
+ </ng-template>
303
+ }
304
+ @if (listEmptyDir !== undefined) {
305
+ <ng-template vListEmpty>
306
+ <ng-container [vListOutlet]="listEmptyDir.templateRef"></ng-container>
307
+ </ng-template>
308
+ }
309
+ @if (itemSeparatorDir !== undefined) {
310
+ <ng-template
311
+ vListSeparator
312
+ let-highlighted="highlighted"
313
+ let-leadingItem="leadingItem"
314
+ let-trailingItem="trailingItem"
315
+ >
316
+ <ng-container
317
+ [vListOutlet]="itemSeparatorDir.templateRef"
318
+ [vListOutletContext]="itemSeparatorContext(highlighted, leadingItem, trailingItem)"
319
+ ></ng-container>
320
+ </ng-template>
321
+ }
322
+ </VirtualizedSectionList>
323
+ `, isInline: true, dependencies: [{ kind: "component", type: VirtualizedSectionList, selector: "VirtualizedSectionList", inputs: ["sections", "keyExtractor", "stickySectionHeadersEnabled", "extraData", "onEndReachedThreshold", "onStartReachedThreshold", "refreshing", "progressViewOffset", "refreshRequested", "initialNumToRender", "initialScrollIndex", "maxToRenderPerBatch", "updateCellsBatchingPeriod", "windowSize", "inverted", "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", "accessibilityAction", "accessibilityTap", "magicTap", "accessibilityEscape"] }, { kind: "directive", type: VSectionItemDirective, selector: "[vSectionItem]" }, { kind: "directive", type: VSectionHeaderDirective, selector: "[vSectionHeader]" }, { kind: "directive", type: VSectionFooterDirective, selector: "[vSectionFooter]" }, { kind: "directive", type: VSectionSeparatorDirective, selector: "[vSectionSeparator]" }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
324
+ }
325
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SectionList, decorators: [{
326
+ type: Component,
327
+ args: [{
328
+ selector: 'SectionList',
329
+ standalone: true,
330
+ imports: [
331
+ VirtualizedSectionList,
332
+ VSectionItemDirective,
333
+ VSectionHeaderDirective,
334
+ VSectionFooterDirective,
335
+ VSectionSeparatorDirective,
336
+ VListHeaderDirective,
337
+ VListFooterDirective,
338
+ VListEmptyDirective,
339
+ VListSeparatorDirective,
340
+ VListOutletDirective,
341
+ ],
342
+ changeDetection: ChangeDetectionStrategy.OnPush,
343
+ template: `
344
+ <VirtualizedSectionList
345
+ [sections]="sections"
346
+ [keyExtractor]="keyExtractor"
347
+ [stickySectionHeadersEnabled]="stickySectionHeadersEnabled"
348
+ [extraData]="extraData"
349
+ (endReached)="endReached.emit($event)"
350
+ [onEndReachedThreshold]="onEndReachedThreshold"
351
+ (startReached)="startReached.emit($event)"
352
+ [onStartReachedThreshold]="onStartReachedThreshold"
353
+ (refresh)="refresh.emit()"
354
+ [refreshRequested]="refresh.observed"
355
+ [refreshing]="refreshing"
356
+ [progressViewOffset]="progressViewOffset"
357
+ [initialNumToRender]="initialNumToRender"
358
+ [initialScrollIndex]="initialScrollIndex"
359
+ [maxToRenderPerBatch]="maxToRenderPerBatch"
360
+ [updateCellsBatchingPeriod]="updateCellsBatchingPeriod"
361
+ [windowSize]="windowSize"
362
+ [inverted]="inverted"
363
+ [maintainVisibleContentPosition]="maintainVisibleContentPosition"
364
+ [onScroll]="onScroll"
365
+ [onScrollBeginDrag]="onScrollBeginDrag"
366
+ [onScrollEndDrag]="onScrollEndDrag"
367
+ [onMomentumScrollBegin]="onMomentumScrollBegin"
368
+ [onMomentumScrollEnd]="onMomentumScrollEnd"
369
+ [scrollEventThrottle]="scrollEventThrottle"
370
+ [keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
371
+ [keyboardDismissMode]="keyboardDismissMode"
372
+ [style]="resolvedStyle"
373
+ [contentContainerStyle]="contentContainerStyle"
374
+ [testID]="testID"
375
+ [nativeID]="nativeID"
376
+ [accessible]="accessible"
377
+ [accessibilityLabel]="accessibilityLabel"
378
+ [accessibilityHint]="accessibilityHint"
379
+ [accessibilityRole]="accessibilityRole"
380
+ [accessibilityState]="accessibilityState"
381
+ [accessibilityValue]="accessibilityValue"
382
+ [accessibilityActions]="accessibilityActions"
383
+ [accessibilityLabelledBy]="accessibilityLabelledBy"
384
+ [importantForAccessibility]="importantForAccessibility"
385
+ [accessibilityLiveRegion]="accessibilityLiveRegion"
386
+ [screenReaderFocusable]="screenReaderFocusable"
387
+ [accessibilityViewIsModal]="accessibilityViewIsModal"
388
+ [accessibilityElementsHidden]="accessibilityElementsHidden"
389
+ [accessibilityIgnoresInvertColors]="accessibilityIgnoresInvertColors"
390
+ [accessibilityLanguage]="accessibilityLanguage"
391
+ [accessibilityRespondsToUserInteraction]="accessibilityRespondsToUserInteraction"
392
+ [accessibilityShowsLargeContentViewer]="accessibilityShowsLargeContentViewer"
393
+ [accessibilityLargeContentTitle]="accessibilityLargeContentTitle"
394
+ (accessibilityAction)="accessibilityAction.emit($event)"
395
+ (accessibilityTap)="accessibilityTap.emit($event)"
396
+ (magicTap)="magicTap.emit($event)"
397
+ (accessibilityEscape)="accessibilityEscape.emit($event)"
398
+ [role]="role"
399
+ [ariaLabel]="ariaLabel"
400
+ [ariaLabelledBy]="ariaLabelledBy"
401
+ [ariaLive]="ariaLive"
402
+ [ariaHidden]="ariaHidden"
403
+ [ariaBusy]="ariaBusy"
404
+ [ariaChecked]="ariaChecked"
405
+ [ariaDisabled]="ariaDisabled"
406
+ [ariaExpanded]="ariaExpanded"
407
+ [ariaSelected]="ariaSelected"
408
+ [ariaModal]="ariaModal"
409
+ [ariaValueMax]="ariaValueMax"
410
+ [ariaValueMin]="ariaValueMin"
411
+ [ariaValueNow]="ariaValueNow"
412
+ [ariaValueText]="ariaValueText"
413
+ >
414
+ <ng-template
415
+ vSectionItem
416
+ let-item
417
+ let-index="index"
418
+ let-section="section"
419
+ let-separators="separators"
420
+ >
421
+ <ng-container
422
+ [vListOutlet]="sectionItemDir?.templateRef"
423
+ [vListOutletContext]="{ $implicit: item, item, index, section, separators }"
424
+ ></ng-container>
425
+ </ng-template>
426
+ @if (sectionHeaderDir !== undefined) {
427
+ <ng-template vSectionHeader let-section>
428
+ <ng-container
429
+ [vListOutlet]="sectionHeaderDir.templateRef"
430
+ [vListOutletContext]="{ $implicit: section, section }"
431
+ ></ng-container>
432
+ </ng-template>
433
+ }
434
+ @if (sectionFooterDir !== undefined) {
435
+ <ng-template vSectionFooter let-section>
436
+ <ng-container
437
+ [vListOutlet]="sectionFooterDir.templateRef"
438
+ [vListOutletContext]="{ $implicit: section, section }"
439
+ ></ng-container>
440
+ </ng-template>
441
+ }
442
+ @if (sectionSeparatorDir !== undefined) {
443
+ <ng-template vSectionSeparator>
444
+ <ng-container [vListOutlet]="sectionSeparatorDir.templateRef"></ng-container>
445
+ </ng-template>
446
+ }
447
+ @if (listHeaderDir !== undefined) {
448
+ <ng-template vListHeader>
449
+ <ng-container [vListOutlet]="listHeaderDir.templateRef"></ng-container>
450
+ </ng-template>
451
+ }
452
+ @if (listFooterDir !== undefined) {
453
+ <ng-template vListFooter>
454
+ <ng-container [vListOutlet]="listFooterDir.templateRef"></ng-container>
455
+ </ng-template>
456
+ }
457
+ @if (listEmptyDir !== undefined) {
458
+ <ng-template vListEmpty>
459
+ <ng-container [vListOutlet]="listEmptyDir.templateRef"></ng-container>
460
+ </ng-template>
461
+ }
462
+ @if (itemSeparatorDir !== undefined) {
463
+ <ng-template
464
+ vListSeparator
465
+ let-highlighted="highlighted"
466
+ let-leadingItem="leadingItem"
467
+ let-trailingItem="trailingItem"
468
+ >
469
+ <ng-container
470
+ [vListOutlet]="itemSeparatorDir.templateRef"
471
+ [vListOutletContext]="itemSeparatorContext(highlighted, leadingItem, trailingItem)"
472
+ ></ng-container>
473
+ </ng-template>
474
+ }
475
+ </VirtualizedSectionList>
476
+ `,
477
+ }]
478
+ }], propDecorators: { sections: [{
479
+ type: Input,
480
+ args: [{ required: true }]
481
+ }], keyExtractor: [{
482
+ type: Input
483
+ }], stickySectionHeadersEnabled: [{
484
+ type: Input
485
+ }], extraData: [{
486
+ type: Input
487
+ }], endReached: [{
488
+ type: Output
489
+ }], onEndReachedThreshold: [{
490
+ type: Input
491
+ }], startReached: [{
492
+ type: Output
493
+ }], onStartReachedThreshold: [{
494
+ type: Input
495
+ }], refresh: [{
496
+ type: Output
497
+ }], refreshing: [{
498
+ type: Input
499
+ }], progressViewOffset: [{
500
+ type: Input
501
+ }], initialNumToRender: [{
502
+ type: Input
503
+ }], initialScrollIndex: [{
504
+ type: Input
505
+ }], maxToRenderPerBatch: [{
506
+ type: Input
507
+ }], updateCellsBatchingPeriod: [{
508
+ type: Input
509
+ }], windowSize: [{
510
+ type: Input
511
+ }], inverted: [{
512
+ type: Input
513
+ }], maintainVisibleContentPosition: [{
514
+ type: Input
515
+ }], onScroll: [{
516
+ type: Input
517
+ }], onScrollBeginDrag: [{
518
+ type: Input
519
+ }], onScrollEndDrag: [{
520
+ type: Input
521
+ }], onMomentumScrollBegin: [{
522
+ type: Input
523
+ }], onMomentumScrollEnd: [{
524
+ type: Input
525
+ }], scrollEventThrottle: [{
526
+ type: Input
527
+ }], keyboardShouldPersistTaps: [{
528
+ type: Input
529
+ }], keyboardDismissMode: [{
530
+ type: Input
531
+ }], style: [{
532
+ type: Input
533
+ }], contentContainerStyle: [{
534
+ type: Input
535
+ }], testID: [{
536
+ type: Input
537
+ }], nativeID: [{
538
+ type: Input
539
+ }], accessible: [{
540
+ type: Input
541
+ }], accessibilityLabel: [{
542
+ type: Input
543
+ }], accessibilityHint: [{
544
+ type: Input
545
+ }], accessibilityRole: [{
546
+ type: Input
547
+ }], accessibilityState: [{
548
+ type: Input
549
+ }], accessibilityValue: [{
550
+ type: Input
551
+ }], accessibilityActions: [{
552
+ type: Input
553
+ }], accessibilityLabelledBy: [{
554
+ type: Input
555
+ }], importantForAccessibility: [{
556
+ type: Input
557
+ }], accessibilityLiveRegion: [{
558
+ type: Input
559
+ }], screenReaderFocusable: [{
560
+ type: Input
561
+ }], accessibilityViewIsModal: [{
562
+ type: Input
563
+ }], accessibilityElementsHidden: [{
564
+ type: Input
565
+ }], accessibilityIgnoresInvertColors: [{
566
+ type: Input
567
+ }], accessibilityLanguage: [{
568
+ type: Input
569
+ }], accessibilityRespondsToUserInteraction: [{
570
+ type: Input
571
+ }], accessibilityShowsLargeContentViewer: [{
572
+ type: Input
573
+ }], accessibilityLargeContentTitle: [{
574
+ type: Input
575
+ }], accessibilityAction: [{
576
+ type: Output
577
+ }], accessibilityTap: [{
578
+ type: Output
579
+ }], magicTap: [{
580
+ type: Output
581
+ }], accessibilityEscape: [{
582
+ type: Output
583
+ }], role: [{
584
+ type: Input
585
+ }], ariaLabel: [{
586
+ type: Input
587
+ }], ariaLabelledBy: [{
588
+ type: Input
589
+ }], ariaLive: [{
590
+ type: Input
591
+ }], ariaHidden: [{
592
+ type: Input
593
+ }], ariaBusy: [{
594
+ type: Input
595
+ }], ariaChecked: [{
596
+ type: Input
597
+ }], ariaDisabled: [{
598
+ type: Input
599
+ }], ariaExpanded: [{
600
+ type: Input
601
+ }], ariaSelected: [{
602
+ type: Input
603
+ }], ariaModal: [{
604
+ type: Input
605
+ }], ariaValueMax: [{
606
+ type: Input
607
+ }], ariaValueMin: [{
608
+ type: Input
609
+ }], ariaValueNow: [{
610
+ type: Input
611
+ }], ariaValueText: [{
612
+ type: Input
613
+ }], sectionItemDir: [{
614
+ type: ContentChild,
615
+ args: [VSectionItemDirective]
616
+ }], sectionHeaderDir: [{
617
+ type: ContentChild,
618
+ args: [VSectionHeaderDirective]
619
+ }], sectionFooterDir: [{
620
+ type: ContentChild,
621
+ args: [VSectionFooterDirective]
622
+ }], sectionSeparatorDir: [{
623
+ type: ContentChild,
624
+ args: [VSectionSeparatorDirective]
625
+ }], listHeaderDir: [{
626
+ type: ContentChild,
627
+ args: [VListHeaderDirective]
628
+ }], listFooterDir: [{
629
+ type: ContentChild,
630
+ args: [VListFooterDirective]
631
+ }], listEmptyDir: [{
632
+ type: ContentChild,
633
+ args: [VListEmptyDirective]
634
+ }], itemSeparatorDir: [{
635
+ type: ContentChild,
636
+ args: [VListSeparatorDirective]
637
+ }], list: [{
638
+ type: ViewChild,
639
+ args: [VirtualizedSectionList]
640
+ }] } });
641
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/section-list/index.ts"],"names":[],"mappings":"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"}