@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,153 @@
1
+ // VirtualizedList authoring directives: the Angular-faithful equivalent of React/Vue
2
+ // `renderItem` / `ListHeaderComponent` / `ListFooterComponent` / `ListEmptyComponent` /
3
+ // `ItemSeparatorComponent`. React/Vue pass an element-returning callback; that does NOT
4
+ // translate to Angular, where per-item content is a TEMPLATE. So the app supplies each
5
+ // slot as an `<ng-template>` carrying one of these structural directives, and the list
6
+ // stamps the windowed slice through them. The agnostic windowing surface stays shared,
7
+ // only the cell-AUTHORING shape is framework-specific.
8
+ //
9
+ // Authoring API (what FlatList / SectionList build on, and what the app imports):
10
+ // <VirtualizedList [data]="rows" [getItem]="getItem" [getItemCount]="count">
11
+ // <ng-template vListItem let-item let-index="index" let-separators="separators"> … </ng-template>
12
+ // <ng-template vListHeader> … </ng-template>
13
+ // <ng-template vListFooter> … </ng-template>
14
+ // <ng-template vListEmpty> … </ng-template>
15
+ // <ng-template vListSeparator let-highlighted="highlighted" let-leadingItem="leadingItem"> … </ng-template>
16
+ // </VirtualizedList>
17
+ //
18
+ // `vListItem` carries a static ngTemplateContextGuard so `let-item` infers as ItemT and
19
+ // `let-index` / `let-separators` are typed — the Angular twin of `renderItem`'s typed info arg.
20
+ //
21
+ // VListOutletDirective is the INTERNAL renderer the list uses to stamp those templates. It is
22
+ // a core-only reimplementation of `@angular/common`'s NgTemplateOutlet (the adapter depends on
23
+ // @angular/core ONLY — see package.json), built on ViewContainerRef / TemplateRef from
24
+ // @angular/core: create on template change, update the embedded view's context in place on a
25
+ // context change (no churn of the cell's own view across windowing recomputes).
26
+ import { Directive, Input, TemplateRef, ViewContainerRef, inject, } from '@angular/core';
27
+ import { dlog } from '@symbiote-native/engine';
28
+ import * as i0 from "@angular/core";
29
+ let vListOutletInstanceCounter = 0;
30
+ function isRecord(value) {
31
+ return typeof value === 'object' && value !== null;
32
+ }
33
+ // `<ng-template vListItem>` — the per-cell content. The static guard makes the `let-` bindings
34
+ // typed at the call site (let-item: ItemT, let-index: number, let-separators: ISeparators).
35
+ export class VListItemDirective {
36
+ templateRef = inject(TemplateRef);
37
+ static ngTemplateContextGuard(_dir, _ctx) {
38
+ return true;
39
+ }
40
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VListItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
41
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: VListItemDirective, isStandalone: true, selector: "[vListItem]", ngImport: i0 });
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VListItemDirective, decorators: [{
44
+ type: Directive,
45
+ args: [{ selector: '[vListItem]', standalone: true }]
46
+ }] });
47
+ // `<ng-template vListHeader>` — rendered once above the cells (RN ListHeaderComponent).
48
+ export class VListHeaderDirective {
49
+ templateRef = inject(TemplateRef);
50
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VListHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
51
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: VListHeaderDirective, isStandalone: true, selector: "[vListHeader]", ngImport: i0 });
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VListHeaderDirective, decorators: [{
54
+ type: Directive,
55
+ args: [{ selector: '[vListHeader]', standalone: true }]
56
+ }] });
57
+ // `<ng-template vListFooter>` — rendered once below the cells (RN ListFooterComponent).
58
+ export class VListFooterDirective {
59
+ templateRef = inject(TemplateRef);
60
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VListFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
61
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: VListFooterDirective, isStandalone: true, selector: "[vListFooter]", ngImport: i0 });
62
+ }
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VListFooterDirective, decorators: [{
64
+ type: Directive,
65
+ args: [{ selector: '[vListFooter]', standalone: true }]
66
+ }] });
67
+ // `<ng-template vListEmpty>` — rendered in place of the cells when the list is empty
68
+ // (RN ListEmptyComponent).
69
+ export class VListEmptyDirective {
70
+ templateRef = inject(TemplateRef);
71
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VListEmptyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
72
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: VListEmptyDirective, isStandalone: true, selector: "[vListEmpty]", ngImport: i0 });
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VListEmptyDirective, decorators: [{
75
+ type: Directive,
76
+ args: [{ selector: '[vListEmpty]', standalone: true }]
77
+ }] });
78
+ // `<ng-template vListSeparator>` — rendered between cells (RN ItemSeparatorComponent). The guard
79
+ // types the `let-` bindings against the separator props.
80
+ export class VListSeparatorDirective {
81
+ templateRef = inject(TemplateRef);
82
+ static ngTemplateContextGuard(_dir, _ctx) {
83
+ return true;
84
+ }
85
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VListSeparatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
86
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: VListSeparatorDirective, isStandalone: true, selector: "[vListSeparator]", ngImport: i0 });
87
+ }
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VListSeparatorDirective, decorators: [{
89
+ type: Directive,
90
+ args: [{ selector: '[vListSeparator]', standalone: true }]
91
+ }] });
92
+ // Core-only NgTemplateOutlet twin. The adapter cannot import @angular/common's NgTemplateOutlet
93
+ // (not a dependency), so the list stamps templates through this: it creates the embedded view when
94
+ // the template changes and updates the live view's context IN PLACE on a context change, so a
95
+ // windowing recompute (a fresh context object every CD) refreshes the cell without tearing it down.
96
+ export class VListOutletDirective {
97
+ templateRef;
98
+ context;
99
+ viewRef = null;
100
+ viewContainer = inject(ViewContainerRef);
101
+ instanceId = (vListOutletInstanceCounter += 1);
102
+ ngOnChanges(changes) {
103
+ if (changes['templateRef'] !== undefined) {
104
+ dlog(`Angular VListOutlet#${this.instanceId} templateRef CHANGED (was=${changes['templateRef'].previousValue !== undefined} now=${this.templateRef !== undefined}) -> clear + recreate`);
105
+ this.viewContainer.clear();
106
+ this.viewRef =
107
+ this.templateRef === undefined
108
+ ? null
109
+ : this.viewContainer.createEmbeddedView(this.templateRef, this.context);
110
+ return;
111
+ }
112
+ if (this.viewRef !== null && this.context !== undefined) {
113
+ dlog(`Angular VListOutlet#${this.instanceId} context updated, markForCheck`);
114
+ this.updateContext(this.viewRef.context, this.context);
115
+ this.viewRef.markForCheck();
116
+ }
117
+ }
118
+ ngOnDestroy() {
119
+ dlog(`Angular VListOutlet#${this.instanceId} destroyed`);
120
+ this.viewContainer.clear();
121
+ }
122
+ // Copy the new context's fields onto the live embedded view's context object (whose identity the
123
+ // consumer's `let-` bindings already read), dropping keys that disappeared. The generic `C` can't
124
+ // be index-WRITTEN even once narrowed (TS2862), so the copy runs in a non-generic helper the
125
+ // guarded records flow into — no cast (NgTemplateOutlet does the same copy via `as any`).
126
+ updateContext(viewContext, nextContext) {
127
+ if (!isRecord(viewContext) || !isRecord(nextContext))
128
+ return;
129
+ copyContextFields(viewContext, nextContext);
130
+ }
131
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VListOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
132
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: VListOutletDirective, isStandalone: true, selector: "[vListOutlet]", inputs: { templateRef: ["vListOutlet", "templateRef"], context: ["vListOutletContext", "context"] }, usesOnChanges: true, ngImport: i0 });
133
+ }
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: VListOutletDirective, decorators: [{
135
+ type: Directive,
136
+ args: [{ selector: '[vListOutlet]', standalone: true }]
137
+ }], propDecorators: { templateRef: [{
138
+ type: Input,
139
+ args: [{ alias: 'vListOutlet' }]
140
+ }], context: [{
141
+ type: Input,
142
+ args: [{ alias: 'vListOutletContext' }]
143
+ }] } });
144
+ function copyContextFields(target, source) {
145
+ for (const key of Object.keys(target)) {
146
+ if (!(key in source))
147
+ delete target[key];
148
+ }
149
+ for (const key of Object.keys(source)) {
150
+ target[key] = source[key];
151
+ }
152
+ }
153
+ //# sourceMappingURL=directives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directives.js","sourceRoot":"","sources":["../../../../src/components/virtualized-list/directives.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,253 @@
1
+ import { EventEmitter, type AfterViewChecked, type DoCheck, type OnDestroy } from '@angular/core';
2
+ import { type IAccessibilityProps, type IAccessibilityStateValue, type IAriaProps, type IScrollViewHandle, type IViewabilityConfig, type IViewabilityConfigCallbackPair, type IViewableItemsChangedInfo, type IVirtualizedListHandle } from '@symbiote-native/components';
3
+ import { type IStyleProp, type ISymbioteEvent, type ISymbioteNode, type IViewStyle } from '@symbiote-native/engine';
4
+ import { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, type IVListItemContext, type IVListSeparatorContext } from './directives';
5
+ import * as i0 from "@angular/core";
6
+ export type { ICellLayout, ISeparators, ISeparatorProps, IViewToken, IViewableItemsChangedInfo, IViewabilityConfig, IViewabilityConfigCallbackPair, IVirtualizedListHandle, } from '@symbiote-native/components';
7
+ export { VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, } from './directives';
8
+ export type { IVListItemContext, IVListSeparatorContext } from './directives';
9
+ export interface IVirtualizedListProps<ItemT> extends IAccessibilityProps, IAriaProps {
10
+ data: unknown;
11
+ getItem: (data: unknown, index: number) => ItemT;
12
+ getItemCount: (data: unknown) => number;
13
+ keyExtractor?: (item: ItemT, index: number) => string;
14
+ getItemLayout?: (data: unknown, index: number) => {
15
+ length: number;
16
+ offset: number;
17
+ index: number;
18
+ };
19
+ horizontal?: boolean;
20
+ inverted?: boolean;
21
+ extraData?: unknown;
22
+ onEndReached?: (info: {
23
+ distanceFromEnd: number;
24
+ }) => void;
25
+ onEndReachedThreshold?: number;
26
+ onStartReached?: (info: {
27
+ distanceFromStart: number;
28
+ }) => void;
29
+ onStartReachedThreshold?: number;
30
+ onRefresh?: () => void;
31
+ refreshing?: boolean | null;
32
+ progressViewOffset?: number;
33
+ onViewableItemsChanged?: (info: IViewableItemsChangedInfo<ItemT>) => void;
34
+ viewabilityConfig?: IViewabilityConfig;
35
+ viewabilityConfigCallbackPairs?: IViewabilityConfigCallbackPair<ItemT>[];
36
+ onScrollToIndexFailed?: (info: {
37
+ index: number;
38
+ highestMeasuredFrameIndex: number;
39
+ averageItemLength: number;
40
+ }) => void;
41
+ initialNumToRender?: number;
42
+ initialScrollIndex?: number;
43
+ maxToRenderPerBatch?: number;
44
+ updateCellsBatchingPeriod?: number;
45
+ windowSize?: number;
46
+ stickyHeaderIndices?: number[];
47
+ maintainVisibleContentPosition?: {
48
+ minIndexForVisible: number;
49
+ autoscrollToTopThreshold?: number;
50
+ };
51
+ onScroll?: (event: ISymbioteEvent) => void;
52
+ onScrollBeginDrag?: (event: ISymbioteEvent) => void;
53
+ onScrollEndDrag?: (event: ISymbioteEvent) => void;
54
+ onMomentumScrollBegin?: (event: ISymbioteEvent) => void;
55
+ onMomentumScrollEnd?: (event: ISymbioteEvent) => void;
56
+ scrollEventThrottle?: number;
57
+ keyboardShouldPersistTaps?: boolean | 'always' | 'never' | 'handled';
58
+ keyboardDismissMode?: 'none' | 'on-drag' | 'interactive';
59
+ style?: IStyleProp<IViewStyle>;
60
+ contentContainerStyle?: IStyleProp<IViewStyle>;
61
+ }
62
+ export type IVirtualizedListInputs<ItemT> = Omit<IVirtualizedListProps<ItemT>, 'onEndReached' | 'onStartReached' | 'onRefresh' | 'onViewableItemsChanged' | 'onScrollToIndexFailed' | 'onAccessibilityAction' | 'onAccessibilityTap' | 'onMagicTap' | 'onAccessibilityEscape'>;
63
+ interface IWindowCell<ItemT> {
64
+ key: string;
65
+ index: number;
66
+ context: IVListItemContext<ItemT>;
67
+ measure: (event: ISymbioteEvent) => void;
68
+ separatorContext?: IVListSeparatorContext<ItemT>;
69
+ }
70
+ export declare class VirtualizedList<ItemT = unknown> implements IVirtualizedListInputs<ItemT>, IVirtualizedListHandle, DoCheck, AfterViewChecked, OnDestroy {
71
+ readonly endReached: EventEmitter<{
72
+ distanceFromEnd: number;
73
+ }>;
74
+ readonly startReached: EventEmitter<{
75
+ distanceFromStart: number;
76
+ }>;
77
+ readonly refresh: EventEmitter<void>;
78
+ readonly viewableItemsChanged: EventEmitter<IViewableItemsChangedInfo<ItemT>>;
79
+ readonly scrollToIndexFailed: EventEmitter<{
80
+ index: number;
81
+ highestMeasuredFrameIndex: number;
82
+ averageItemLength: number;
83
+ }>;
84
+ readonly accessibilityAction: EventEmitter<ISymbioteEvent>;
85
+ readonly accessibilityTap: EventEmitter<ISymbioteEvent>;
86
+ readonly magicTap: EventEmitter<ISymbioteEvent>;
87
+ readonly accessibilityEscape: EventEmitter<ISymbioteEvent>;
88
+ data: unknown;
89
+ getItem: (data: unknown, index: number) => ItemT;
90
+ getItemCount: (data: unknown) => number;
91
+ keyExtractor?: (item: ItemT, index: number) => string;
92
+ getItemLayout?: (data: unknown, index: number) => {
93
+ length: number;
94
+ offset: number;
95
+ index: number;
96
+ };
97
+ horizontal?: boolean;
98
+ inverted?: boolean;
99
+ extraData?: unknown;
100
+ onEndReachedThreshold?: number;
101
+ onStartReachedThreshold?: number;
102
+ refreshing?: boolean | null;
103
+ progressViewOffset?: number;
104
+ refreshRequested?: boolean;
105
+ viewabilityConfig?: IViewabilityConfig;
106
+ viewabilityConfigCallbackPairs?: IViewabilityConfigCallbackPair<ItemT>[];
107
+ initialNumToRender?: number;
108
+ initialScrollIndex?: number;
109
+ maxToRenderPerBatch?: number;
110
+ updateCellsBatchingPeriod?: number;
111
+ windowSize?: number;
112
+ stickyHeaderIndices?: number[];
113
+ maintainVisibleContentPosition?: {
114
+ minIndexForVisible: number;
115
+ autoscrollToTopThreshold?: number;
116
+ };
117
+ onScroll?: (event: ISymbioteEvent) => void;
118
+ onScrollBeginDrag?: (event: ISymbioteEvent) => void;
119
+ onScrollEndDrag?: (event: ISymbioteEvent) => void;
120
+ onMomentumScrollBegin?: (event: ISymbioteEvent) => void;
121
+ onMomentumScrollEnd?: (event: ISymbioteEvent) => void;
122
+ scrollEventThrottle?: number;
123
+ keyboardShouldPersistTaps?: boolean | 'always' | 'never' | 'handled';
124
+ keyboardDismissMode?: 'none' | 'on-drag' | 'interactive';
125
+ style?: IStyleProp<IViewStyle>;
126
+ contentContainerStyle?: IStyleProp<IViewStyle>;
127
+ testID?: string;
128
+ nativeID?: string;
129
+ accessible?: boolean;
130
+ accessibilityLabel?: string;
131
+ accessibilityHint?: string;
132
+ accessibilityRole?: IAccessibilityProps['accessibilityRole'];
133
+ accessibilityState?: IAccessibilityStateValue;
134
+ accessibilityValue?: IAccessibilityProps['accessibilityValue'];
135
+ accessibilityActions?: IAccessibilityProps['accessibilityActions'];
136
+ accessibilityLabelledBy?: string | string[];
137
+ importantForAccessibility?: IAccessibilityProps['importantForAccessibility'];
138
+ accessibilityLiveRegion?: IAccessibilityProps['accessibilityLiveRegion'];
139
+ screenReaderFocusable?: boolean;
140
+ accessibilityViewIsModal?: boolean;
141
+ accessibilityElementsHidden?: boolean;
142
+ accessibilityIgnoresInvertColors?: boolean;
143
+ accessibilityLanguage?: string;
144
+ accessibilityRespondsToUserInteraction?: boolean;
145
+ accessibilityShowsLargeContentViewer?: boolean;
146
+ accessibilityLargeContentTitle?: string;
147
+ role?: IAriaProps['role'];
148
+ ariaLabel?: string;
149
+ ariaLabelledBy?: string;
150
+ ariaLive?: IAriaProps['aria-live'];
151
+ ariaHidden?: boolean;
152
+ ariaBusy?: boolean;
153
+ ariaChecked?: boolean | 'mixed';
154
+ ariaDisabled?: boolean;
155
+ ariaExpanded?: boolean;
156
+ ariaSelected?: boolean;
157
+ ariaModal?: boolean;
158
+ ariaValueMax?: number;
159
+ ariaValueMin?: number;
160
+ ariaValueNow?: number;
161
+ ariaValueText?: string;
162
+ itemDir?: VListItemDirective<ItemT>;
163
+ headerDir?: VListHeaderDirective;
164
+ footerDir?: VListFooterDirective;
165
+ emptyDir?: VListEmptyDirective;
166
+ separatorDir?: VListSeparatorDirective<ItemT>;
167
+ private scrollView?;
168
+ itemCount: number;
169
+ windowCells: IWindowCell<ItemT>[];
170
+ leadingSpacerStyle: IViewStyle | null;
171
+ trailingSpacerStyle: IViewStyle | null;
172
+ cellStyle: IViewStyle | undefined;
173
+ renderedStickyIndices: number[] | undefined;
174
+ resolvedStyle: IViewStyle | undefined;
175
+ resolvedContentContainerStyle: IStyleProp<IViewStyle> | undefined;
176
+ resolvedMaintainVisibleContentPosition: {
177
+ minIndexForVisible: number;
178
+ autoscrollToTopThreshold?: number;
179
+ } | undefined;
180
+ commandedOffset: {
181
+ x: number;
182
+ y: number;
183
+ } | undefined;
184
+ private readonly listState;
185
+ private renderVersion;
186
+ private readonly cellMeasures;
187
+ private readonly separatorOverrides;
188
+ private viewableTimer;
189
+ private batchTimer;
190
+ private lastEffectSignature;
191
+ private lastRecompute;
192
+ private readonly cdr;
193
+ private readonly elementRef;
194
+ get foldedAccessibility(): IAccessibilityProps & IAriaProps & Record<string, unknown>;
195
+ get shouldRenderRefreshControl(): boolean;
196
+ get isHorizontal(): boolean;
197
+ private get isInverted();
198
+ private get windowSizeValue();
199
+ private get initialNumToRenderValue();
200
+ private get maxToRenderPerBatchValue();
201
+ private get updateCellsBatchingPeriodValue();
202
+ private get onEndReachedThresholdValue();
203
+ private get onStartReachedThresholdValue();
204
+ onScrollTick: (event: ISymbioteEvent) => void;
205
+ onLayoutTick: (event: ISymbioteEvent) => void;
206
+ handleRefresh: () => void;
207
+ accessibilityActionTick: (event: ISymbioteEvent) => void;
208
+ accessibilityTapTick: (event: ISymbioteEvent) => void;
209
+ magicTapTick: (event: ISymbioteEvent) => void;
210
+ accessibilityEscapeTick: (event: ISymbioteEvent) => void;
211
+ private keyFor;
212
+ private buildInputs;
213
+ private dispatch;
214
+ private runEffects;
215
+ ngDoCheck(): void;
216
+ ngAfterViewChecked(): void;
217
+ ngOnDestroy(): void;
218
+ private recomputeView;
219
+ private buildSeparatorContext;
220
+ private spacerStyle;
221
+ private cellMeasure;
222
+ handleCellLayout(measure: (event: ISymbioteEvent) => void, event: unknown): void;
223
+ private isSymbioteEvent;
224
+ private mergeSeparator;
225
+ private makeSeparators;
226
+ scrollToOffset(params: {
227
+ offset: number;
228
+ animated?: boolean;
229
+ }): void;
230
+ scrollToIndex(params: {
231
+ index: number;
232
+ animated?: boolean;
233
+ viewOffset?: number;
234
+ viewPosition?: number;
235
+ }): void;
236
+ scrollToItem(params: {
237
+ item: unknown;
238
+ animated?: boolean;
239
+ viewPosition?: number;
240
+ }): void;
241
+ scrollToEnd(params?: {
242
+ animated?: boolean;
243
+ }): void;
244
+ flashScrollIndicators(): void;
245
+ getNativeScrollRef(): IScrollViewHandle | null;
246
+ getScrollableNode(): IScrollViewHandle | null;
247
+ getScrollResponder(): IScrollViewHandle | null;
248
+ getScrollNode(): ISymbioteNode | null;
249
+ recordInteraction(): void;
250
+ private scrollToPixel;
251
+ static ɵfac: i0.ɵɵFactoryDeclaration<VirtualizedList<any>, never>;
252
+ static ɵcmp: i0.ɵɵComponentDeclaration<VirtualizedList<any>, "VirtualizedList", never, { "data": { "alias": "data"; "required": true; }; "getItem": { "alias": "getItem"; "required": true; }; "getItemCount": { "alias": "getItemCount"; "required": true; }; "keyExtractor": { "alias": "keyExtractor"; "required": false; }; "getItemLayout": { "alias": "getItemLayout"; "required": false; }; "horizontal": { "alias": "horizontal"; "required": false; }; "inverted": { "alias": "inverted"; "required": false; }; "extraData": { "alias": "extraData"; "required": false; }; "onEndReachedThreshold": { "alias": "onEndReachedThreshold"; "required": false; }; "onStartReachedThreshold": { "alias": "onStartReachedThreshold"; "required": false; }; "refreshing": { "alias": "refreshing"; "required": false; }; "progressViewOffset": { "alias": "progressViewOffset"; "required": false; }; "refreshRequested": { "alias": "refreshRequested"; "required": false; }; "viewabilityConfig": { "alias": "viewabilityConfig"; "required": false; }; "viewabilityConfigCallbackPairs": { "alias": "viewabilityConfigCallbackPairs"; "required": false; }; "initialNumToRender": { "alias": "initialNumToRender"; "required": false; }; "initialScrollIndex": { "alias": "initialScrollIndex"; "required": false; }; "maxToRenderPerBatch": { "alias": "maxToRenderPerBatch"; "required": false; }; "updateCellsBatchingPeriod": { "alias": "updateCellsBatchingPeriod"; "required": false; }; "windowSize": { "alias": "windowSize"; "required": false; }; "stickyHeaderIndices": { "alias": "stickyHeaderIndices"; "required": false; }; "maintainVisibleContentPosition": { "alias": "maintainVisibleContentPosition"; "required": false; }; "onScroll": { "alias": "onScroll"; "required": false; }; "onScrollBeginDrag": { "alias": "onScrollBeginDrag"; "required": false; }; "onScrollEndDrag": { "alias": "onScrollEndDrag"; "required": false; }; "onMomentumScrollBegin": { "alias": "onMomentumScrollBegin"; "required": false; }; "onMomentumScrollEnd": { "alias": "onMomentumScrollEnd"; "required": false; }; "scrollEventThrottle": { "alias": "scrollEventThrottle"; "required": false; }; "keyboardShouldPersistTaps": { "alias": "keyboardShouldPersistTaps"; "required": false; }; "keyboardDismissMode": { "alias": "keyboardDismissMode"; "required": false; }; "style": { "alias": "style"; "required": false; }; "contentContainerStyle": { "alias": "contentContainerStyle"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "accessible": { "alias": "accessible"; "required": false; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; }; "accessibilityHint": { "alias": "accessibilityHint"; "required": false; }; "accessibilityRole": { "alias": "accessibilityRole"; "required": false; }; "accessibilityState": { "alias": "accessibilityState"; "required": false; }; "accessibilityValue": { "alias": "accessibilityValue"; "required": false; }; "accessibilityActions": { "alias": "accessibilityActions"; "required": false; }; "accessibilityLabelledBy": { "alias": "accessibilityLabelledBy"; "required": false; }; "importantForAccessibility": { "alias": "importantForAccessibility"; "required": false; }; "accessibilityLiveRegion": { "alias": "accessibilityLiveRegion"; "required": false; }; "screenReaderFocusable": { "alias": "screenReaderFocusable"; "required": false; }; "accessibilityViewIsModal": { "alias": "accessibilityViewIsModal"; "required": false; }; "accessibilityElementsHidden": { "alias": "accessibilityElementsHidden"; "required": false; }; "accessibilityIgnoresInvertColors": { "alias": "accessibilityIgnoresInvertColors"; "required": false; }; "accessibilityLanguage": { "alias": "accessibilityLanguage"; "required": false; }; "accessibilityRespondsToUserInteraction": { "alias": "accessibilityRespondsToUserInteraction"; "required": false; }; "accessibilityShowsLargeContentViewer": { "alias": "accessibilityShowsLargeContentViewer"; "required": false; }; "accessibilityLargeContentTitle": { "alias": "accessibilityLargeContentTitle"; "required": false; }; "role": { "alias": "role"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaLive": { "alias": "ariaLive"; "required": false; }; "ariaHidden": { "alias": "ariaHidden"; "required": false; }; "ariaBusy": { "alias": "ariaBusy"; "required": false; }; "ariaChecked": { "alias": "ariaChecked"; "required": false; }; "ariaDisabled": { "alias": "ariaDisabled"; "required": false; }; "ariaExpanded": { "alias": "ariaExpanded"; "required": false; }; "ariaSelected": { "alias": "ariaSelected"; "required": false; }; "ariaModal": { "alias": "ariaModal"; "required": false; }; "ariaValueMax": { "alias": "ariaValueMax"; "required": false; }; "ariaValueMin": { "alias": "ariaValueMin"; "required": false; }; "ariaValueNow": { "alias": "ariaValueNow"; "required": false; }; "ariaValueText": { "alias": "ariaValueText"; "required": false; }; }, { "endReached": "endReached"; "startReached": "startReached"; "refresh": "refresh"; "viewableItemsChanged": "viewableItemsChanged"; "scrollToIndexFailed": "scrollToIndexFailed"; "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, ["itemDir", "headerDir", "footerDir", "emptyDir", "separatorDir"], never, true, never>;
253
+ }