@symbiote-native/angular 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +147 -0
  3. package/build/angular/components/activity-indicator/index.android.d.ts +12 -0
  4. package/build/angular/components/activity-indicator/index.android.js +21 -0
  5. package/build/angular/components/activity-indicator/index.android.js.map +1 -0
  6. package/build/angular/components/activity-indicator/index.d.ts +1 -0
  7. package/build/angular/components/activity-indicator/index.ios.d.ts +8 -0
  8. package/build/angular/components/activity-indicator/index.ios.js +21 -0
  9. package/build/angular/components/activity-indicator/index.ios.js.map +1 -0
  10. package/build/angular/components/activity-indicator/index.js +4 -0
  11. package/build/angular/components/activity-indicator/index.js.map +1 -0
  12. package/build/angular/components/activity-indicator/shared.d.ts +67 -0
  13. package/build/angular/components/activity-indicator/shared.js +260 -0
  14. package/build/angular/components/activity-indicator/shared.js.map +1 -0
  15. package/build/angular/components/button.d.ts +63 -0
  16. package/build/angular/components/button.js +332 -0
  17. package/build/angular/components/button.js.map +1 -0
  18. package/build/angular/components/drawer-layout-android/index.android.d.ts +34 -0
  19. package/build/angular/components/drawer-layout-android/index.android.js +291 -0
  20. package/build/angular/components/drawer-layout-android/index.android.js.map +1 -0
  21. package/build/angular/components/drawer-layout-android/index.d.ts +11 -0
  22. package/build/angular/components/drawer-layout-android/index.js +109 -0
  23. package/build/angular/components/drawer-layout-android/index.js.map +1 -0
  24. package/build/angular/components/drawer-layout-android/shared.d.ts +74 -0
  25. package/build/angular/components/drawer-layout-android/shared.js +138 -0
  26. package/build/angular/components/drawer-layout-android/shared.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 +689 -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 +408 -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.d.ts +59 -0
  46. package/build/angular/components/input-accessory-view.js +266 -0
  47. package/build/angular/components/input-accessory-view.js.map +1 -0
  48. package/build/angular/components/keyboard-avoiding-view.d.ts +82 -0
  49. package/build/angular/components/keyboard-avoiding-view.js +363 -0
  50. package/build/angular/components/keyboard-avoiding-view.js.map +1 -0
  51. package/build/angular/components/modal.d.ts +92 -0
  52. package/build/angular/components/modal.js +365 -0
  53. package/build/angular/components/modal.js.map +1 -0
  54. package/build/angular/components/pressable/index.d.ts +123 -0
  55. package/build/angular/components/pressable/index.js +421 -0
  56. package/build/angular/components/pressable/index.js.map +1 -0
  57. package/build/angular/components/refresh-control.d.ts +86 -0
  58. package/build/angular/components/refresh-control.js +347 -0
  59. package/build/angular/components/refresh-control.js.map +1 -0
  60. package/build/angular/components/safe-area-view.d.ts +57 -0
  61. package/build/angular/components/safe-area-view.js +253 -0
  62. package/build/angular/components/safe-area-view.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 +312 -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 +679 -0
  77. package/build/angular/components/scroll-view/shared.js.map +1 -0
  78. package/build/angular/components/scroll-view/sticky-header.d.ts +41 -0
  79. package/build/angular/components/scroll-view/sticky-header.js +208 -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 +604 -0
  98. package/build/angular/components/text-input.js.map +1 -0
  99. package/build/angular/components/touchable-native-feedback.d.ts +83 -0
  100. package/build/angular/components/touchable-native-feedback.js +376 -0
  101. package/build/angular/components/touchable-native-feedback.js.map +1 -0
  102. package/build/angular/components/touchable.d.ts +248 -0
  103. package/build/angular/components/touchable.js +1206 -0
  104. package/build/angular/components/touchable.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 +154 -0
  107. package/build/angular/components/virtualized-list/directives.js.map +1 -0
  108. package/build/angular/components/virtualized-list/index.d.ts +268 -0
  109. package/build/angular/components/virtualized-list/index.js +1162 -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 +77 -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 +722 -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.d.ts +22 -0
  121. package/build/angular/create-portal.js +74 -0
  122. package/build/angular/create-portal.js.map +1 -0
  123. package/build/angular/create-tunnel.d.ts +34 -0
  124. package/build/angular/create-tunnel.js +126 -0
  125. package/build/angular/create-tunnel.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 +21 -0
  133. package/build/angular/index.js +42 -0
  134. package/build/angular/index.js.map +1 -0
  135. package/build/angular/modules/animated/create-animated-component.d.ts +68 -0
  136. package/build/angular/modules/animated/create-animated-component.js +429 -0
  137. package/build/angular/modules/animated/create-animated-component.js.map +1 -0
  138. package/build/angular/modules/animated/index.d.ts +51 -0
  139. package/build/angular/modules/animated/index.js +59 -0
  140. package/build/angular/modules/animated/index.js.map +1 -0
  141. package/build/angular/modules/app-registry/index.d.ts +7 -0
  142. package/build/angular/modules/app-registry/index.js +23 -0
  143. package/build/angular/modules/app-registry/index.js.map +1 -0
  144. package/build/angular/modules/status-bar.d.ts +20 -0
  145. package/build/angular/modules/status-bar.js +59 -0
  146. package/build/angular/modules/status-bar.js.map +1 -0
  147. package/build/angular/primitives/index.d.ts +63 -0
  148. package/build/angular/primitives/index.js +189 -0
  149. package/build/angular/primitives/index.js.map +1 -0
  150. package/build/angular/primitives/shared.d.ts +89 -0
  151. package/build/angular/primitives/shared.js +172 -0
  152. package/build/angular/primitives/shared.js.map +1 -0
  153. package/build/angular/render.d.ts +11 -0
  154. package/build/angular/render.js +161 -0
  155. package/build/angular/render.js.map +1 -0
  156. package/build/angular/renderer.d.ts +38 -0
  157. package/build/angular/renderer.js +360 -0
  158. package/build/angular/renderer.js.map +1 -0
  159. package/build/angular/services/color-scheme.service.d.ts +16 -0
  160. package/build/angular/services/color-scheme.service.js +31 -0
  161. package/build/angular/services/color-scheme.service.js.map +1 -0
  162. package/build/angular/services/index.d.ts +2 -0
  163. package/build/angular/services/index.js +3 -0
  164. package/build/angular/services/index.js.map +1 -0
  165. package/build/angular/services/window-dimensions.service.d.ts +16 -0
  166. package/build/angular/services/window-dimensions.service.js +42 -0
  167. package/build/angular/services/window-dimensions.service.js.map +1 -0
  168. package/build/components/activity-indicator/index.android.d.ts +9 -0
  169. package/build/components/activity-indicator/index.android.js +64 -0
  170. package/build/components/activity-indicator/index.d.ts +1 -0
  171. package/build/components/activity-indicator/index.ios.d.ts +5 -0
  172. package/build/components/activity-indicator/index.ios.js +64 -0
  173. package/build/components/activity-indicator/index.js +3 -0
  174. package/build/components/activity-indicator/shared.d.ts +64 -0
  175. package/build/components/activity-indicator/shared.js +424 -0
  176. package/build/components/button.d.ts +60 -0
  177. package/build/components/button.js +456 -0
  178. package/build/components/drawer-layout-android/index.android.d.ts +29 -0
  179. package/build/components/drawer-layout-android/index.android.js +326 -0
  180. package/build/components/drawer-layout-android/index.d.ts +8 -0
  181. package/build/components/drawer-layout-android/index.js +145 -0
  182. package/build/components/drawer-layout-android/shared.d.ts +71 -0
  183. package/build/components/drawer-layout-android/shared.js +205 -0
  184. package/build/components/flat-list/index.d.ts +119 -0
  185. package/build/components/flat-list/index.js +692 -0
  186. package/build/components/image/index.android.d.ts +7 -0
  187. package/build/components/image/index.android.js +88 -0
  188. package/build/components/image/index.d.ts +1 -0
  189. package/build/components/image/index.ios.d.ts +7 -0
  190. package/build/components/image/index.ios.js +88 -0
  191. package/build/components/image/index.js +2 -0
  192. package/build/components/image/shared.d.ts +101 -0
  193. package/build/components/image/shared.js +407 -0
  194. package/build/components/image-background.d.ts +78 -0
  195. package/build/components/image-background.js +583 -0
  196. package/build/components/input-accessory-view.d.ts +56 -0
  197. package/build/components/input-accessory-view.js +407 -0
  198. package/build/components/keyboard-avoiding-view.d.ts +79 -0
  199. package/build/components/keyboard-avoiding-view.js +509 -0
  200. package/build/components/modal.d.ts +89 -0
  201. package/build/components/modal.js +534 -0
  202. package/build/components/pressable/index.d.ts +120 -0
  203. package/build/components/pressable/index.js +640 -0
  204. package/build/components/refresh-control.d.ts +83 -0
  205. package/build/components/refresh-control.js +514 -0
  206. package/build/components/safe-area-view.d.ts +54 -0
  207. package/build/components/safe-area-view.js +393 -0
  208. package/build/components/scroll-view/index.android.d.ts +16 -0
  209. package/build/components/scroll-view/index.android.js +228 -0
  210. package/build/components/scroll-view/index.d.ts +3 -0
  211. package/build/components/scroll-view/index.ios.d.ts +6 -0
  212. package/build/components/scroll-view/index.ios.js +113 -0
  213. package/build/components/scroll-view/index.js +5 -0
  214. package/build/components/scroll-view/projection.d.ts +32 -0
  215. package/build/components/scroll-view/projection.js +311 -0
  216. package/build/components/scroll-view/shared.d.ts +225 -0
  217. package/build/components/scroll-view/shared.js +757 -0
  218. package/build/components/scroll-view/sticky-header.d.ts +38 -0
  219. package/build/components/scroll-view/sticky-header.js +257 -0
  220. package/build/components/section-list/index.d.ts +113 -0
  221. package/build/components/section-list/index.js +768 -0
  222. package/build/components/switch/index.android.d.ts +17 -0
  223. package/build/components/switch/index.android.js +107 -0
  224. package/build/components/switch/index.d.ts +1 -0
  225. package/build/components/switch/index.ios.d.ts +16 -0
  226. package/build/components/switch/index.ios.js +106 -0
  227. package/build/components/switch/index.js +3 -0
  228. package/build/components/switch/shared.d.ts +37 -0
  229. package/build/components/switch/shared.js +176 -0
  230. package/build/components/text-input.d.ts +150 -0
  231. package/build/components/text-input.js +826 -0
  232. package/build/components/touchable-native-feedback.d.ts +80 -0
  233. package/build/components/touchable-native-feedback.js +550 -0
  234. package/build/components/touchable.d.ts +241 -0
  235. package/build/components/touchable.js +1672 -0
  236. package/build/components/virtualized-list/directives.d.ts +41 -0
  237. package/build/components/virtualized-list/directives.js +250 -0
  238. package/build/components/virtualized-list/index.d.ts +265 -0
  239. package/build/components/virtualized-list/index.js +1344 -0
  240. package/build/components/virtualized-section-list/directives.d.ts +28 -0
  241. package/build/components/virtualized-section-list/directives.js +149 -0
  242. package/build/components/virtualized-section-list/index.d.ts +175 -0
  243. package/build/components/virtualized-section-list/index.js +854 -0
  244. package/build/components.d.ts +39 -0
  245. package/build/components.js +37 -0
  246. package/build/create-portal.d.ts +17 -0
  247. package/build/create-portal.js +128 -0
  248. package/build/create-tunnel.d.ts +29 -0
  249. package/build/create-tunnel.js +181 -0
  250. package/build/descriptor-to-angular/index.d.ts +19 -0
  251. package/build/descriptor-to-angular/index.js +186 -0
  252. package/build/host-instance/index.d.ts +2 -0
  253. package/build/host-instance/index.js +36 -0
  254. package/build/index.d.ts +21 -0
  255. package/build/index.js +41 -0
  256. package/build/modules/animated/create-animated-component.d.ts +57 -0
  257. package/build/modules/animated/create-animated-component.js +490 -0
  258. package/build/modules/animated/index.d.ts +51 -0
  259. package/build/modules/animated/index.js +58 -0
  260. package/build/modules/app-registry/index.d.ts +7 -0
  261. package/build/modules/app-registry/index.js +22 -0
  262. package/build/modules/status-bar.d.ts +17 -0
  263. package/build/modules/status-bar.js +121 -0
  264. package/build/primitives/index.d.ts +32 -0
  265. package/build/primitives/index.js +386 -0
  266. package/build/primitives/shared.d.ts +84 -0
  267. package/build/primitives/shared.js +231 -0
  268. package/build/render.d.ts +11 -0
  269. package/build/render.js +160 -0
  270. package/build/renderer.d.ts +38 -0
  271. package/build/renderer.js +359 -0
  272. package/build/services/color-scheme.service.d.ts +13 -0
  273. package/build/services/color-scheme.service.js +72 -0
  274. package/build/services/index.d.ts +2 -0
  275. package/build/services/index.js +2 -0
  276. package/build/services/window-dimensions.service.d.ts +13 -0
  277. package/build/services/window-dimensions.service.js +83 -0
  278. package/metro-css-parser.cjs +11 -0
  279. package/package.json +57 -0
  280. package/src/__tests__/responder-change-detection.test.ts +102 -0
  281. package/src/__tests__/responder-nested-cd.test.ts +113 -0
  282. package/src/angular-gaps.test.ts +142 -0
  283. package/src/angular-imports.test.ts +100 -0
  284. package/src/components/activity-indicator/activity-indicator-class-style.test.ts +44 -0
  285. package/src/components/activity-indicator/activity-indicator.test.ts +131 -0
  286. package/src/components/activity-indicator/index.android.ts +16 -0
  287. package/src/components/activity-indicator/index.ios.ts +17 -0
  288. package/src/components/activity-indicator/index.ts +4 -0
  289. package/src/components/activity-indicator/shared.ts +206 -0
  290. package/src/components/button.ts +193 -0
  291. package/src/components/flat-list/column-wrapper-style-class.test.ts +116 -0
  292. package/src/components/flat-list/flat-list-array-style.test.ts +131 -0
  293. package/src/components/flat-list/flat-list-class-style.test.ts +74 -0
  294. package/src/components/flat-list/flat-list-scroll-containment.test.ts +107 -0
  295. package/src/components/flat-list/flat-list.test.ts +99 -0
  296. package/src/components/flat-list/index.ts +575 -0
  297. package/src/components/image/image-class-style.test.ts +46 -0
  298. package/src/components/image/index.android.ts +48 -0
  299. package/src/components/image/index.ios.ts +48 -0
  300. package/src/components/image/index.ts +3 -0
  301. package/src/components/image/shared.ts +478 -0
  302. package/src/components/image-background-class-style.test.ts +48 -0
  303. package/src/components/image-background-style-class.test.ts +79 -0
  304. package/src/components/image-background.ts +270 -0
  305. package/src/components/input-accessory-view.test.ts +43 -0
  306. package/src/components/input-accessory-view.ts +191 -0
  307. package/src/components/keyboard-avoiding-view.test.ts +54 -0
  308. package/src/components/keyboard-avoiding-view.ts +308 -0
  309. package/src/components/modal.test.ts +43 -0
  310. package/src/components/modal.ts +304 -0
  311. package/src/components/pressable/index.ts +371 -0
  312. package/src/components/pressable/pressable.test.ts +85 -0
  313. package/src/components/refresh-control.test.ts +41 -0
  314. package/src/components/refresh-control.ts +288 -0
  315. package/src/components/safe-area-view.test.ts +43 -0
  316. package/src/components/safe-area-view.ts +178 -0
  317. package/src/components/scroll-view/android-scroll-view-axis-projection.test.ts +123 -0
  318. package/src/components/scroll-view/content-container-style-class.test.ts +75 -0
  319. package/src/components/scroll-view/index.android.ts +190 -0
  320. package/src/components/scroll-view/index.ios.ts +79 -0
  321. package/src/components/scroll-view/index.ts +7 -0
  322. package/src/components/scroll-view/projection.ts +384 -0
  323. package/src/components/scroll-view/scroll-view-class-style.test.ts +134 -0
  324. package/src/components/scroll-view/scroll-view-projection.test.ts +194 -0
  325. package/src/components/scroll-view/shared.ts +836 -0
  326. package/src/components/scroll-view/sticky-header.ts +230 -0
  327. package/src/components/section-list/index.ts +445 -0
  328. package/src/components/switch/android-switch-class.test.ts +42 -0
  329. package/src/components/switch/index.android.ts +61 -0
  330. package/src/components/switch/index.ios.ts +60 -0
  331. package/src/components/switch/index.ts +4 -0
  332. package/src/components/switch/shared.ts +197 -0
  333. package/src/components/switch/switch.test.ts +92 -0
  334. package/src/components/text-input-class-style.test.ts +54 -0
  335. package/src/components/text-input.ts +536 -0
  336. package/src/components/touchable-native-feedback.test.ts +49 -0
  337. package/src/components/touchable-native-feedback.ts +260 -0
  338. package/src/components/touchable.test.ts +102 -0
  339. package/src/components/touchable.ts +643 -0
  340. package/src/components/virtualized-list/directives.ts +169 -0
  341. package/src/components/virtualized-list/index.ts +1204 -0
  342. package/src/components/virtualized-list/virtualized-list-class-style.test.ts +76 -0
  343. package/src/components/virtualized-section-list/directives.ts +91 -0
  344. package/src/components/virtualized-section-list/index.ts +598 -0
  345. package/src/components/virtualized-section-list/virtualized-section-list-class-style.test.ts +60 -0
  346. package/src/components.ts +149 -0
  347. package/src/create-portal.test.ts +90 -0
  348. package/src/create-portal.ts +74 -0
  349. package/src/create-tunnel.test.ts +120 -0
  350. package/src/create-tunnel.ts +136 -0
  351. package/src/descriptor-to-angular/descriptor-outlet.test.ts +94 -0
  352. package/src/descriptor-to-angular/index.ts +190 -0
  353. package/src/host-instance/host-instance.test.ts +49 -0
  354. package/src/host-instance/index.ts +36 -0
  355. package/src/index.ts +257 -0
  356. package/src/modules/animated/animated-scroll-view.test.ts +85 -0
  357. package/src/modules/animated/create-animated-component.ts +435 -0
  358. package/src/modules/animated/index.ts +105 -0
  359. package/src/modules/app-registry/app-registry.test.ts +106 -0
  360. package/src/modules/app-registry/index.ts +60 -0
  361. package/src/modules/status-bar.test.ts +50 -0
  362. package/src/modules/status-bar.ts +57 -0
  363. package/src/primitives/index.ts +119 -0
  364. package/src/primitives/shared.ts +191 -0
  365. package/src/render.test.ts +147 -0
  366. package/src/render.ts +224 -0
  367. package/src/renderer.test.ts +179 -0
  368. package/src/renderer.ts +407 -0
  369. package/src/services/color-scheme.service.ts +27 -0
  370. package/src/services/index.ts +2 -0
  371. package/src/services/services.test.ts +163 -0
  372. package/src/services/window-dimensions.service.ts +41 -0
@@ -0,0 +1,21 @@
1
+ export { ActivityIndicator, anchorHostStyle, Button, FlatList, HorizontalScrollContentView, HorizontalScrollView, Image, ImageBackground, InputAccessoryView, KeyboardAvoidingView, Modal, Pressable, RefreshControl, SafeAreaView, ScrollContentView, ScrollView, ScrollViewStickyHeader, SectionList, stableAnchorStyle, Switch, SymbioteHostPropsDirective, Text, TextInput, TouchableHighlight, TouchableNativeFeedback, TouchableOpacity, TouchableWithoutFeedback, View, VirtualizedList, VirtualizedSectionList, VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, } from './components';
2
+ export { Animated } from './modules/animated';
3
+ export { AnimatedFlatList, AnimatedImage, AnimatedScrollView, AnimatedSectionList, AnimatedText, AnimatedView, } from './modules/animated';
4
+ export type { IActivityIndicatorProps, IAngularImageBackgroundProps, IAngularInputAccessoryViewProps, IAngularKeyboardAvoidingViewProps, IAngularModalProps, IAngularPressableProps, IAngularRefreshControlProps, IAngularSafeAreaViewProps, IAngularScrollViewProps, IAngularTextInputProps, IAngularTouchableHighlightProps, IAngularTouchableNativeFeedbackProps, IAngularTouchableOpacityProps, IAngularTouchableWithoutFeedbackProps, IButtonProps, ICellLayout, IFlatListHandle, IFlatListProps, IEnterKeyHint, IImageCacheStatus, IImageProps, IImageSize, IImageSource, IImageSourceProp, IInputMode, IKeyboardAvoidingBehavior, IModalAnimationType, IModalOrientation, IModalOrientationChangeEvent, IModalPresentationStyle, INativeFeedbackBackground, IResizeMode, IRippleBackground, IScrollViewHandle, ISectionListHandle, ISectionListProps, ISeparatorProps, ISeparators, IStickyHeaderComponentType, ISubmitBehavior, IThemeAttrBackground, IViewabilityConfig, IViewabilityConfigCallbackPair, IViewableItemsChangedInfo, IViewToken, IVirtualizedListHandle, IVirtualizedListProps, IVirtualizedSectionListHandle, IVirtualizedSectionListProps, IVListItemContext, IVListSeparatorContext, IVSectionContext, IVSectionItemContext, ISection, ISwitchProps, ISwitchTrackColor, ITextInputHandle, ITextInputSelection, } from './components';
5
+ export { setImageSourceResolver } from './components';
6
+ export { mount, unmount } from './render';
7
+ export { DescriptorOutlet } from './descriptor-to-angular';
8
+ export { PortalDirective, PortalOutletDirective } from './create-portal';
9
+ export { createTunnel, TunnelInDirective, TunnelOut, type ITunnelStore } from './create-tunnel';
10
+ export { SymbioteRenderer, SymbioteRendererFactory } from './renderer';
11
+ export { findNodeHandle } from './host-instance';
12
+ export type { IHostInstance } from './host-instance';
13
+ export { StatusBar } from './modules/status-bar';
14
+ export type { IStatusBarProps, IStatusBarStyle } from './modules/status-bar';
15
+ export { AppRegistry, setHostRegistrar } from './modules/app-registry';
16
+ export type { IComponentProvider, IAppParameters, IRunnable, IHostRegistrar, IWrapperComponentProvider, IRegistry, IHeadlessTask, ITaskProvider, ITaskCanceller, ITaskCancelProvider, } from './modules/app-registry';
17
+ export { ColorSchemeService, WindowDimensionsService } from './services';
18
+ export { Alert, Share, ActionSheetIOS, Linking, Vibration, ToastAndroid, Settings, I18nManager, Dimensions, Appearance, AppState, Keyboard, KEYBOARD_EVENT, BackHandler, PermissionsAndroid, PERMISSIONS, RESULTS, AccessibilityInfo, LayoutAnimation, InteractionManager, PanResponder, PixelRatio, PlatformColor, DynamicColorIOS, } from '@symbiote-native/engine';
19
+ export type { IAlertType, IAlertButtonStyle, IAlertButton, IAlertButtons, IAlertOptions, IShareContent, IShareOptions, IShareAction, IActionSheetIOSOptions, IShareActionSheetIOSOptions, IShareActionSheetError, IUrlEvent, II18nManagerConstants, IDisplayMetrics, IDisplayMetricsAndroid, IDimensionsPayload, IDimensionsSet, IDimensionsKey, IDimensionsChangeListener, IDimensionsStatic, IColorSchemeName, IColorSchemePreference, IAppStateStatus, IAppStateEvent, IKeyboardEventName, IKeyboardEvent, IKeyboardMetrics, IBackPressEventName, IBackPressHandler, IPermission, IPermissionStatus, IRationale, IAccessibilityChangeEvent, IAccessibilityChangeEventName, IAccessibilityChangeEventHandler, IAccessibilityAnnouncementFinishedEvent, IAnnounceForAccessibilityOptions, IAccessibilityEventType, ILayoutAnimationType, ILayoutAnimationProperty, ILayoutAnimationConfig, ILayoutAnimationAnim, IInteractionEvent, ISimpleTask, IPromiseTask, ITask, IHandle, IPanResponderGestureState, IPanResponderCallbacks, IGestureResponderHandlers, IPanResponderInstance, IPixelRatioStatic, IColorValue, IOpaqueColorValue, IDynamicColorIOSTuple, } from '@symbiote-native/engine';
20
+ export { dlog, flattenStyle, isDebug, Platform, processColor, setColorProcessor, setDeviceEventSource, setNativeViewConfigSource, StyleSheet, } from '@symbiote-native/engine';
21
+ export type { IRootTag, ISymbioteEvent, ISymbioteNode } from '@symbiote-native/engine';
@@ -0,0 +1,42 @@
1
+ // @symbiote-native/angular: a thin Angular reconciler over @symbiote-native/engine. A custom Renderer2 +
2
+ // RendererFactory2 map each node op onto the engine's mutation API; all Fabric clone-on-write
3
+ // lives in the engine, shared with every other adapter. App code names only @symbiote-native/angular.
4
+ //
5
+ // SEAM SCAFFOLD: mount/unmount + the renderer seam + host intrinsic selectors. Full RN-like
6
+ // composed components still flow through the shared @symbiote-native/components bridge — see the
7
+ // `angular-adapter` skill (§6 descriptorToAngular, the layered milestones).
8
+ export { ActivityIndicator, anchorHostStyle, Button, FlatList, HorizontalScrollContentView, HorizontalScrollView, Image, ImageBackground, InputAccessoryView, KeyboardAvoidingView, Modal, Pressable, RefreshControl, SafeAreaView, ScrollContentView, ScrollView, ScrollViewStickyHeader, SectionList, stableAnchorStyle, Switch, SymbioteHostPropsDirective, Text, TextInput, TouchableHighlight, TouchableNativeFeedback, TouchableOpacity, TouchableWithoutFeedback, View, VirtualizedList, VirtualizedSectionList, VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, } from './components';
9
+ export { Animated } from './modules/animated';
10
+ // Also exposed as named top-level symbols (not just Animated.View/.Text/...): ngtsc's partial-mode
11
+ // static evaluator (real AOT, see angular-adapter skill §4) can't trace a component class through
12
+ // property access on an external namespace object, only through a direct named import binding —
13
+ // so `<AnimatedView>` in a template requires `import { AnimatedView } from '@symbiote-native/angular'`,
14
+ // not `const AnimatedView = Animated.View`. Plain tsc/vitest don't catch this; only a real ngc run does.
15
+ export { AnimatedFlatList, AnimatedImage, AnimatedScrollView, AnimatedSectionList, AnimatedText, AnimatedView, } from './modules/animated';
16
+ export { setImageSourceResolver } from './components';
17
+ export { mount, unmount } from './render';
18
+ // The generic Descriptor→Angular bridge (§6 of the angular-adapter skill), the twin of
19
+ // descriptorToReact/descriptorToVue. Exported so a component defined OUTSIDE this package (e.g.
20
+ // @symbiote-native/slider) can render a shared @symbiote-native/components/@symbiote-native/slider Descriptor tree
21
+ // without hand-writing its own Renderer2 walker.
22
+ export { DescriptorOutlet } from './descriptor-to-angular';
23
+ // createPortal (same-surface only — see the file header) and createTunnel (cross-surface,
24
+ // see its file header) are the Angular twins of the React/Vue portal/tunnel primitives.
25
+ // Angular can't synthesize components at runtime (no JIT under Metro/Hermes), so both are
26
+ // static, pre-authored structural directives (`*portal`/`*tunnelIn`, the `*ngIf`/`*ngFor`
27
+ // idiom) parameterized by an `@Input()`, rather than a factory returning fresh components per
28
+ // call — see the react-adapter-portal / angular-adapter skills.
29
+ export { PortalDirective, PortalOutletDirective } from './create-portal';
30
+ export { createTunnel, TunnelInDirective, TunnelOut } from './create-tunnel';
31
+ export { SymbioteRenderer, SymbioteRendererFactory } from './renderer';
32
+ export { findNodeHandle } from './host-instance';
33
+ export { StatusBar } from './modules/status-bar';
34
+ // AppRegistry: RN's app entry point over `mount`. setHostRegistrar wires RN's own
35
+ // registrar so the native Fabric host finds our runnable by app key.
36
+ export { AppRegistry, setHostRegistrar } from './modules/app-registry';
37
+ export { ColorSchemeService, WindowDimensionsService } from './services';
38
+ // Framework-agnostic runtime modules from @symbiote-native/engine. Every adapter re-exports them so
39
+ // app code names only @symbiote-native/angular.
40
+ export { Alert, Share, ActionSheetIOS, Linking, Vibration, ToastAndroid, Settings, I18nManager, Dimensions, Appearance, AppState, Keyboard, KEYBOARD_EVENT, BackHandler, PermissionsAndroid, PERMISSIONS, RESULTS, AccessibilityInfo, LayoutAnimation, InteractionManager, PanResponder, PixelRatio, PlatformColor, DynamicColorIOS, } from '@symbiote-native/engine';
41
+ export { dlog, flattenStyle, isDebug, Platform, processColor, setColorProcessor, setDeviceEventSource, setNativeViewConfigSource, StyleSheet, } from '@symbiote-native/engine';
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,8FAA8F;AAC9F,sGAAsG;AACtG,EAAE;AACF,4FAA4F;AAC5F,iGAAiG;AACjG,4EAA4E;AAE5E,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,MAAM,EACN,QAAQ,EACR,2BAA2B,EAC3B,oBAAoB,EACpB,KAAK,EACL,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,EACL,SAAS,EACT,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,0BAA0B,EAC1B,IAAI,EACJ,SAAS,EACT,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACxB,IAAI,EACJ,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,mGAAmG;AACnG,kGAAkG;AAClG,gGAAgG;AAChG,wGAAwG;AACxG,yGAAyG;AACzG,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACb,MAAM,oBAAoB,CAAC;AA6D5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1C,uFAAuF;AACvF,gGAAgG;AAChG,mHAAmH;AACnH,iDAAiD;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,0FAA0F;AAC1F,wFAAwF;AACxF,0FAA0F;AAC1F,0FAA0F;AAC1F,8FAA8F;AAC9F,gEAAgE;AAChE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAqB,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,kFAAkF;AAClF,qEAAqE;AACrE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAavE,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAEzE,oGAAoG;AACpG,gDAAgD;AAChD,OAAO,EACL,KAAK,EACL,KAAK,EACL,cAAc,EACd,OAAO,EACP,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,aAAa,EACb,eAAe,GAChB,MAAM,yBAAyB,CAAC;AA0DjC,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,UAAU,GACX,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,68 @@
1
+ import { type AfterViewInit, type OnChanges, type OnDestroy, type Type } from '@angular/core';
2
+ import { FlatList } from '../../components/flat-list';
3
+ import { ImageBase } from '../../components/image/shared';
4
+ import { SectionList } from '../../components/section-list';
5
+ import * as i0 from "@angular/core";
6
+ export declare const ANIMATED_INPUTS: string[];
7
+ export declare const ANIMATED_IMAGE_INPUTS: string[];
8
+ export declare abstract class AnimatedComponentBase implements AfterViewInit, OnChanges, OnDestroy {
9
+ style: unknown;
10
+ animatedProps: Record<string, unknown> | undefined;
11
+ passthroughAnimatedPropExplicitValues: unknown;
12
+ private readonly elementRef;
13
+ private hostDirective?;
14
+ private attached;
15
+ private cancelBind;
16
+ private eventDetachers;
17
+ private viewReady;
18
+ get reducedProps(): Record<string, unknown>;
19
+ ngAfterViewInit(): void;
20
+ ngOnChanges(): void;
21
+ ngOnDestroy(): void;
22
+ private reconcile;
23
+ private bindNode;
24
+ private attachEvents;
25
+ private detachEvents;
26
+ private mergedProps;
27
+ private hostNode;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<AnimatedComponentBase, never>;
29
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AnimatedComponentBase, never, never, {}, {}, never, never, true, never>;
30
+ }
31
+ export declare class AnimatedView extends AnimatedComponentBase {
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<AnimatedView, never>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<AnimatedView, "AnimatedView, symbiote-animated-view", never, { "style": { "alias": "style"; "required": false; }; "animatedProps": { "alias": "animatedProps"; "required": false; }; "passthroughAnimatedPropExplicitValues": { "alias": "passthroughAnimatedPropExplicitValues"; "required": false; }; }, {}, never, ["*"], true, never>;
34
+ }
35
+ export declare class AnimatedText extends AnimatedComponentBase {
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<AnimatedText, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<AnimatedText, "AnimatedText, symbiote-animated-text", never, { "style": { "alias": "style"; "required": false; }; "animatedProps": { "alias": "animatedProps"; "required": false; }; "passthroughAnimatedPropExplicitValues": { "alias": "passthroughAnimatedPropExplicitValues"; "required": false; }; }, {}, never, ["*"], true, never>;
38
+ }
39
+ export declare class AnimatedImage extends ImageBase implements AfterViewInit, OnChanges, OnDestroy {
40
+ animatedProps: Record<string, unknown> | undefined;
41
+ passthroughAnimatedPropExplicitValues: unknown;
42
+ private readonly elementRef;
43
+ private hostDirective?;
44
+ private attached;
45
+ private cancelBind;
46
+ private eventDetachers;
47
+ private viewReady;
48
+ get animatedImageProps(): Record<string, unknown>;
49
+ ngAfterViewInit(): void;
50
+ ngOnChanges(): void;
51
+ ngOnDestroy(): void;
52
+ private reconcile;
53
+ private bindNode;
54
+ private attachEvents;
55
+ private detachEvents;
56
+ private mergedProps;
57
+ private hostNode;
58
+ static ɵfac: i0.ɵɵFactoryDeclaration<AnimatedImage, never>;
59
+ static ɵcmp: i0.ɵɵComponentDeclaration<AnimatedImage, "AnimatedImage, symbiote-animated-image", never, { "source": { "alias": "source"; "required": false; }; "defaultSource": { "alias": "defaultSource"; "required": false; }; "loadingIndicatorSource": { "alias": "loadingIndicatorSource"; "required": false; }; "style": { "alias": "style"; "required": false; }; "resizeMode": { "alias": "resizeMode"; "required": false; }; "resizeMethod": { "alias": "resizeMethod"; "required": false; }; "tintColor": { "alias": "tintColor"; "required": false; }; "blurRadius": { "alias": "blurRadius"; "required": false; }; "capInsets": { "alias": "capInsets"; "required": false; }; "fadeDuration": { "alias": "fadeDuration"; "required": false; }; "progressiveRenderingEnabled": { "alias": "progressiveRenderingEnabled"; "required": false; }; "src": { "alias": "src"; "required": false; }; "srcSet": { "alias": "srcSet"; "required": false; }; "alt": { "alias": "alt"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "crossOrigin": { "alias": "crossOrigin"; "required": false; }; "referrerPolicy": { "alias": "referrerPolicy"; "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": "aria-label"; "required": false; }; "ariaLabelledBy": { "alias": "aria-labelledby"; "required": false; }; "ariaLive": { "alias": "aria-live"; "required": false; }; "ariaHidden": { "alias": "aria-hidden"; "required": false; }; "ariaBusy": { "alias": "aria-busy"; "required": false; }; "ariaChecked": { "alias": "aria-checked"; "required": false; }; "ariaDisabled": { "alias": "aria-disabled"; "required": false; }; "ariaExpanded": { "alias": "aria-expanded"; "required": false; }; "ariaSelected": { "alias": "aria-selected"; "required": false; }; "ariaModal": { "alias": "aria-modal"; "required": false; }; "ariaValueMax": { "alias": "aria-valuemax"; "required": false; }; "ariaValueMin": { "alias": "aria-valuemin"; "required": false; }; "ariaValueNow": { "alias": "aria-valuenow"; "required": false; }; "ariaValueText": { "alias": "aria-valuetext"; "required": false; }; "onAccessibilityAction": { "alias": "onAccessibilityAction"; "required": false; }; "onAccessibilityTap": { "alias": "onAccessibilityTap"; "required": false; }; "onMagicTap": { "alias": "onMagicTap"; "required": false; }; "onAccessibilityEscape": { "alias": "onAccessibilityEscape"; "required": false; }; "onLoadStart": { "alias": "onLoadStart"; "required": false; }; "onLoad": { "alias": "onLoad"; "required": false; }; "onLoadEnd": { "alias": "onLoadEnd"; "required": false; }; "onError": { "alias": "onError"; "required": false; }; "onProgress": { "alias": "onProgress"; "required": false; }; "onPartialLoad": { "alias": "onPartialLoad"; "required": false; }; "animatedProps": { "alias": "animatedProps"; "required": false; }; "passthroughAnimatedPropExplicitValues": { "alias": "passthroughAnimatedPropExplicitValues"; "required": false; }; }, { "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; "loadStart": "loadStart"; "load": "load"; "loadEnd": "loadEnd"; "error": "error"; "progress": "progress"; "partialLoad": "partialLoad"; }, never, ["*"], true, never>;
60
+ }
61
+ export declare class AnimatedScrollView extends AnimatedComponentBase {
62
+ get reducedProps(): Record<string, unknown>;
63
+ static ɵfac: i0.ɵɵFactoryDeclaration<AnimatedScrollView, never>;
64
+ static ɵcmp: i0.ɵɵComponentDeclaration<AnimatedScrollView, "AnimatedScrollView, symbiote-animated-scroll-view", never, { "style": { "alias": "style"; "required": false; }; "animatedProps": { "alias": "animatedProps"; "required": false; }; "passthroughAnimatedPropExplicitValues": { "alias": "passthroughAnimatedPropExplicitValues"; "required": false; }; }, {}, never, ["*"], true, never>;
65
+ }
66
+ export declare const AnimatedFlatList: typeof FlatList;
67
+ export declare const AnimatedSectionList: typeof SectionList;
68
+ export declare function createAnimatedComponent(base: unknown): Type<unknown>;
@@ -0,0 +1,429 @@
1
+ // createAnimatedComponent for @symbiote-native/angular: the Angular twin of the React/Vue
2
+ // wrapper. React/Vue have a runtime HOC (`createAnimatedComponent(Component)` builds a
3
+ // fresh wrapped component on the fly). Angular has NO such idiom AND it cannot have one:
4
+ // the AOT-under-Metro build (angular-adapter skill §4) compiles every @Component at build
5
+ // time and ships NO JIT compiler to Hermes, so a runtime `Component({...})(class)` would
6
+ // throw. The idiomatic, AOT-safe equivalent is therefore an EXPLICIT set of standalone
7
+ // components — AnimatedView / AnimatedText / AnimatedImage / AnimatedScrollView — each a
8
+ // thin @Component over the matching host primitive, all sharing one abstract lifecycle
9
+ // base. The mechanism (build an AnimatedProps leaf, reduce animated props to current
10
+ // values for the first paint, bind the leaf to the committed host node, swap leaves on
11
+ // re-render, tear down on destroy) lives once in AnimatedComponentBase; only the per-host
12
+ // template differs.
13
+ //
14
+ // The framework-agnostic half (reduceProps / readPassthroughStyle / resolveHostNode /
15
+ // AnimatedProps / attachNativeEventHandler / isNativeAnimatedAvailable) comes from
16
+ // @symbiote-native/engine, shared verbatim with React and Vue (ADR 0016/0017). Angular supplies
17
+ // only the lifecycle wiring. The per-frame path NEVER goes through Angular change
18
+ // detection: value.setValue / animation -> flushValue -> AnimatedProps.update() ->
19
+ // setNativeProps(node), exactly as on the other adapters.
20
+ import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, Directive, ElementRef, inject, ViewChild, } from '@angular/core';
21
+ import { AnimatedProps, attachNativeEventHandler, dlog, isNativeAnimatedAvailable, isSymbioteNode, reduceProps, readPassthroughStyle, resolveHostNode, whenCommitted, } from '@symbiote-native/engine';
22
+ import { Image, ScrollView, Text, View } from '../../components';
23
+ import { anchorHostStyle, ViewHost, TextHost, ImageHost, ScrollViewHost, SymbioteHostPropsDirective, } from '../../primitives';
24
+ import { FlatList } from '../../components/flat-list';
25
+ import { IMAGE_INPUTS, IMAGE_OUTPUTS, ImageBase, resolveImageProps, } from '../../components/image/shared';
26
+ import { SectionList } from '../../components/section-list';
27
+ import * as i0 from "@angular/core";
28
+ // RN's prop carrying explicit (already-rasterized) values that override the animated prop in
29
+ // the COMMITTED props (sticky-header passthrough). Named once so the directive input and the
30
+ // reconcile agree.
31
+ const PASSTHROUGH_PROP = 'passthroughAnimatedPropExplicitValues';
32
+ // The inputs every animated wrapper accepts. `style` is the (possibly animated) style — the
33
+ // common path (TouchableOpacity passes `[style, { opacity }]`). `animatedProps` is the generic
34
+ // escape hatch for any OTHER prop that may hold an AnimatedNode or an Animated.event handler,
35
+ // plus static host props to forward (the React/Vue `rest`). The passthrough drives native.
36
+ // Each concrete @Component re-lists these (Angular's inputs-on-base convention, mirroring
37
+ // Switch/Image), so they are inherited consistently.
38
+ export const ANIMATED_INPUTS = ['style', 'animatedProps', PASSTHROUGH_PROP];
39
+ export const ANIMATED_IMAGE_INPUTS = [...IMAGE_INPUTS, 'animatedProps', PASSTHROUGH_PROP];
40
+ // The shared lifecycle for every animated wrapper. Concrete subclasses add ONLY a @Component
41
+ // decorator (selector + the host-primitive template) — no behavior. Plain fields (no @Input
42
+ // here): the inputs are declared on each concrete via ANIMATED_INPUTS, the adapter convention.
43
+ // @Directive() (no selector) is the Angular-sanctioned decorator for an abstract base that
44
+ // declares lifecycle hooks — without it ngtsc rejects the inherited hooks (NG2007).
45
+ export class AnimatedComponentBase {
46
+ style;
47
+ animatedProps;
48
+ passthroughAnimatedPropExplicitValues;
49
+ // This component's OWN host — every Animated* wrapper is a non-painting ANCHOR
50
+ // (ANCHOR_HOST_COMPONENTS in renderer.ts), so a `class="..."` at the use site resolves onto
51
+ // THIS element, never the real inner host primitive one level down (see anchorHostStyle's doc
52
+ // comment in primitives/shared.ts — the same reason ScrollView's own scrollProps merges it in).
53
+ elementRef = inject(ElementRef);
54
+ // The directive sitting on the inner host primitive; its `node` is the committed SymbioteNode
55
+ // the leaf binds to. Inherited by the decorated subclass (Angular collects base-class queries).
56
+ hostDirective;
57
+ // The leaf currently wired into the value graph. Null until the first reconcile.
58
+ attached = null;
59
+ // The whenCommitted waiter for the current leaf's node binding, cancelled before the next.
60
+ cancelBind;
61
+ // Detachers for any Animated.event prop bound natively to the committed node (JS path: none).
62
+ eventDetachers = [];
63
+ // Set once the view (and the inner host directive) exists; ngOnChanges before then is a no-op.
64
+ viewReady = false;
65
+ // The concrete props for the host element each change-detection pass: animated entries reduced
66
+ // to their current value, then the passthrough style layered on top (last wins via the style
67
+ // array, which the commit layer flattens) so the ShadowTree carries the current transform.
68
+ get reducedProps() {
69
+ const reduced = reduceProps(this.mergedProps());
70
+ const passthroughStyle = readPassthroughStyle(this.passthroughAnimatedPropExplicitValues);
71
+ if (passthroughStyle !== undefined) {
72
+ reduced['style'] =
73
+ reduced['style'] === undefined ? passthroughStyle : [reduced['style'], passthroughStyle];
74
+ }
75
+ reduced['style'] = [anchorHostStyle(this.elementRef), reduced['style']];
76
+ return reduced;
77
+ }
78
+ ngAfterViewInit() {
79
+ this.viewReady = true;
80
+ this.reconcile();
81
+ }
82
+ ngOnChanges() {
83
+ this.reconcile();
84
+ }
85
+ ngOnDestroy() {
86
+ this.cancelBind?.();
87
+ this.cancelBind = undefined;
88
+ this.detachEvents();
89
+ if (this.attached !== null) {
90
+ this.attached.__detach();
91
+ this.attached = null;
92
+ }
93
+ }
94
+ // Build a fresh AnimatedProps leaf from the current props (the React/Vue per-render
95
+ // useMemo(rest)), wire it into the graph, and swap the previous one out. Attach the NEW leaf
96
+ // BEFORE detaching the OLD one: a shared Value self-detaches (dropping its native node) the
97
+ // instant its child count hits zero, so detaching first would kill a running native animation
98
+ // on any unrelated re-render (mirrors RN's AnimatedComponent._attachProps). Then bind the
99
+ // committed node, go native if wanted, and rebind native events.
100
+ reconcile() {
101
+ if (!this.viewReady)
102
+ return;
103
+ // A non-stable [animatedProps]/[style] input (a fresh object literal in the template)
104
+ // pushes a new reference on every change-detection pass of the HOST view, re-triggering
105
+ // this on every unrelated interaction elsewhere in the app — DEBUG=1 turns this into a
106
+ // visible tick count, so an unexpectedly high rate for a component nobody is animating
107
+ // is the tell (see AnimatedScrollView's stable-reference fix in examples/angular/App.ts).
108
+ dlog(`AnimatedComponentBase reconcile (${this.constructor.name})`);
109
+ const props = this.mergedProps();
110
+ const hasPassthroughAnimatedValues = this.passthroughAnimatedPropExplicitValues !== null &&
111
+ this.passthroughAnimatedPropExplicitValues !== undefined;
112
+ const wantsNative = hasPassthroughAnimatedValues && isNativeAnimatedAvailable();
113
+ const newLeaf = new AnimatedProps(props);
114
+ newLeaf.__attach();
115
+ if (this.attached !== null && this.attached !== newLeaf)
116
+ this.attached.__detach();
117
+ this.attached = newLeaf;
118
+ this.bindNode(newLeaf, props, wantsNative);
119
+ }
120
+ // Bind the leaf to the host's Fabric node THROUGH whenCommitted: under Angular's zoneless
121
+ // batched change detection the inner host's tag does not exist yet at ngAfterViewInit time
122
+ // (the same async-commit gotcha Vue documents), so binding eagerly would no-op. whenCommitted
123
+ // runs the action now if already committed, else after the commit that assigns the tag.
124
+ bindNode(leaf, props, wantsNative) {
125
+ this.cancelBind?.();
126
+ this.cancelBind = undefined;
127
+ const node = this.hostNode();
128
+ if (node === null)
129
+ return;
130
+ this.cancelBind = whenCommitted(node, () => {
131
+ leaf.setNativeView(node);
132
+ if (wantsNative)
133
+ leaf.__makeNative();
134
+ this.attachEvents(node, props);
135
+ });
136
+ }
137
+ // Native-attach any Animated.event prop (e.g. onScroll={Animated.event(…,{useNativeDriver:true})})
138
+ // to the committed node. attachNativeEventHandler no-ops (returns undefined) unless the prop is a
139
+ // native event handler with a committed tag, so the JS path stays the fallback. Rebound each
140
+ // reconcile so a new inline event re-attaches; detached first to avoid leaking the prior binding.
141
+ attachEvents(node, props) {
142
+ this.detachEvents();
143
+ for (const key of Object.keys(props)) {
144
+ const attachment = attachNativeEventHandler(node, key, props[key]);
145
+ if (attachment !== undefined)
146
+ this.eventDetachers.push(attachment.detach);
147
+ }
148
+ }
149
+ detachEvents() {
150
+ for (const detach of this.eventDetachers)
151
+ detach();
152
+ this.eventDetachers = [];
153
+ }
154
+ // Merge the dedicated `style` input over the generic `animatedProps` bag into one props map —
155
+ // the equivalent of React/Vue `rest`. `style` wins so `[style]` and `[animatedProps].style`
156
+ // never disagree.
157
+ mergedProps() {
158
+ const base = this.animatedProps ?? {};
159
+ return this.style === undefined ? { ...base } : { ...base, style: this.style };
160
+ }
161
+ // The committed host node held by IDENTITY. resolveHostNode unwraps an imperative scroll
162
+ // handle to the underlying SymbioteNode (View / Text already hand back the node directly);
163
+ // the isSymbioteNode guard keeps us off a cast.
164
+ hostNode() {
165
+ const resolved = resolveHostNode(this.hostDirective?.node);
166
+ return isSymbioteNode(resolved) ? resolved : null;
167
+ }
168
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AnimatedComponentBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
169
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.4", type: AnimatedComponentBase, isStandalone: true, viewQueries: [{ propertyName: "hostDirective", first: true, predicate: SymbioteHostPropsDirective, descendants: true }], usesOnChanges: true, ngImport: i0 });
170
+ }
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AnimatedComponentBase, decorators: [{
172
+ type: Directive
173
+ }], propDecorators: { hostDirective: [{
174
+ type: ViewChild,
175
+ args: [SymbioteHostPropsDirective]
176
+ }] } });
177
+ export class AnimatedView extends AnimatedComponentBase {
178
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AnimatedView, deps: null, target: i0.ɵɵFactoryTarget.Component });
179
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: AnimatedView, isStandalone: true, selector: "AnimatedView, symbiote-animated-view", inputs: { style: "style", animatedProps: "animatedProps", passthroughAnimatedPropExplicitValues: "passthroughAnimatedPropExplicitValues" }, usesInheritance: true, ngImport: i0, template: `
180
+ <symbiote-view [symbioteHostProps]="reducedProps">
181
+ <ng-content></ng-content>
182
+ </symbiote-view>
183
+ `, isInline: true, dependencies: [{ kind: "directive", type: SymbioteHostPropsDirective, selector: "[symbioteHostProps]", inputs: ["symbioteHostProps"], exportAs: ["symbioteHost"] }, { kind: "component", type: ViewHost, selector: "symbiote-view, View" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
184
+ }
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AnimatedView, decorators: [{
186
+ type: Component,
187
+ args: [{
188
+ selector: 'AnimatedView, symbiote-animated-view',
189
+ standalone: true,
190
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
191
+ imports: [SymbioteHostPropsDirective, ViewHost],
192
+ inputs: ANIMATED_INPUTS,
193
+ template: `
194
+ <symbiote-view [symbioteHostProps]="reducedProps">
195
+ <ng-content></ng-content>
196
+ </symbiote-view>
197
+ `,
198
+ changeDetection: ChangeDetectionStrategy.OnPush,
199
+ }]
200
+ }] });
201
+ export class AnimatedText extends AnimatedComponentBase {
202
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AnimatedText, deps: null, target: i0.ɵɵFactoryTarget.Component });
203
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: AnimatedText, isStandalone: true, selector: "AnimatedText, symbiote-animated-text", inputs: { style: "style", animatedProps: "animatedProps", passthroughAnimatedPropExplicitValues: "passthroughAnimatedPropExplicitValues" }, usesInheritance: true, ngImport: i0, template: `
204
+ <symbiote-text [symbioteHostProps]="reducedProps">
205
+ <ng-content></ng-content>
206
+ </symbiote-text>
207
+ `, isInline: true, dependencies: [{ kind: "directive", type: SymbioteHostPropsDirective, selector: "[symbioteHostProps]", inputs: ["symbioteHostProps"], exportAs: ["symbioteHost"] }, { kind: "component", type: TextHost, selector: "symbiote-text, Text" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
208
+ }
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AnimatedText, decorators: [{
210
+ type: Component,
211
+ args: [{
212
+ selector: 'AnimatedText, symbiote-animated-text',
213
+ standalone: true,
214
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
215
+ imports: [SymbioteHostPropsDirective, TextHost],
216
+ inputs: ANIMATED_INPUTS,
217
+ template: `
218
+ <symbiote-text [symbioteHostProps]="reducedProps">
219
+ <ng-content></ng-content>
220
+ </symbiote-text>
221
+ `,
222
+ changeDetection: ChangeDetectionStrategy.OnPush,
223
+ }]
224
+ }] });
225
+ export class AnimatedImage extends ImageBase {
226
+ animatedProps;
227
+ passthroughAnimatedPropExplicitValues;
228
+ // AnimatedImage is a non-painting ANCHOR too (ANCHOR_HOST_COMPONENTS) — see the matching
229
+ // comment on AnimatedComponentBase.elementRef.
230
+ elementRef = inject(ElementRef);
231
+ hostDirective;
232
+ attached = null;
233
+ cancelBind;
234
+ eventDetachers = [];
235
+ viewReady = false;
236
+ get animatedImageProps() {
237
+ const reduced = reduceProps(this.mergedProps());
238
+ const passthroughStyle = readPassthroughStyle(this.passthroughAnimatedPropExplicitValues);
239
+ if (passthroughStyle !== undefined) {
240
+ reduced['style'] =
241
+ reduced['style'] === undefined ? passthroughStyle : [reduced['style'], passthroughStyle];
242
+ }
243
+ const resolved = resolveImageProps(reduced);
244
+ resolved['style'] = [anchorHostStyle(this.elementRef), resolved['style']];
245
+ return resolved;
246
+ }
247
+ ngAfterViewInit() {
248
+ this.viewReady = true;
249
+ this.reconcile();
250
+ }
251
+ ngOnChanges() {
252
+ this.reconcile();
253
+ }
254
+ ngOnDestroy() {
255
+ this.cancelBind?.();
256
+ this.cancelBind = undefined;
257
+ this.detachEvents();
258
+ if (this.attached !== null) {
259
+ this.attached.__detach();
260
+ this.attached = null;
261
+ }
262
+ }
263
+ reconcile() {
264
+ if (!this.viewReady)
265
+ return;
266
+ const props = this.mergedProps();
267
+ const hasPassthroughAnimatedValues = this.passthroughAnimatedPropExplicitValues !== null &&
268
+ this.passthroughAnimatedPropExplicitValues !== undefined;
269
+ const wantsNative = hasPassthroughAnimatedValues && isNativeAnimatedAvailable();
270
+ const newLeaf = new AnimatedProps(props);
271
+ newLeaf.__attach();
272
+ if (this.attached !== null && this.attached !== newLeaf)
273
+ this.attached.__detach();
274
+ this.attached = newLeaf;
275
+ this.bindNode(newLeaf, props, wantsNative);
276
+ }
277
+ bindNode(leaf, props, wantsNative) {
278
+ this.cancelBind?.();
279
+ this.cancelBind = undefined;
280
+ const node = this.hostNode();
281
+ if (node === null)
282
+ return;
283
+ this.cancelBind = whenCommitted(node, () => {
284
+ leaf.setNativeView(node);
285
+ if (wantsNative)
286
+ leaf.__makeNative();
287
+ this.attachEvents(node, props);
288
+ });
289
+ }
290
+ attachEvents(node, props) {
291
+ this.detachEvents();
292
+ for (const key of Object.keys(props)) {
293
+ const attachment = attachNativeEventHandler(node, key, props[key]);
294
+ if (attachment !== undefined)
295
+ this.eventDetachers.push(attachment.detach);
296
+ }
297
+ }
298
+ detachEvents() {
299
+ for (const detach of this.eventDetachers)
300
+ detach();
301
+ this.eventDetachers = [];
302
+ }
303
+ mergedProps() {
304
+ const props = { ...(this.animatedProps ?? {}) };
305
+ for (const [key, value] of Object.entries(this.imageInputProps)) {
306
+ if (value !== undefined)
307
+ props[key] = value;
308
+ }
309
+ return props;
310
+ }
311
+ hostNode() {
312
+ const resolved = resolveHostNode(this.hostDirective?.node);
313
+ return isSymbioteNode(resolved) ? resolved : null;
314
+ }
315
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AnimatedImage, deps: null, target: i0.ɵɵFactoryTarget.Component });
316
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: AnimatedImage, isStandalone: true, selector: "AnimatedImage, symbiote-animated-image", inputs: { source: "source", defaultSource: "defaultSource", loadingIndicatorSource: "loadingIndicatorSource", style: "style", resizeMode: "resizeMode", resizeMethod: "resizeMethod", tintColor: "tintColor", blurRadius: "blurRadius", capInsets: "capInsets", fadeDuration: "fadeDuration", progressiveRenderingEnabled: "progressiveRenderingEnabled", src: "src", srcSet: "srcSet", alt: "alt", width: "width", height: "height", crossOrigin: "crossOrigin", referrerPolicy: "referrerPolicy", 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: ["aria-label", "ariaLabel"], ariaLabelledBy: ["aria-labelledby", "ariaLabelledBy"], ariaLive: ["aria-live", "ariaLive"], ariaHidden: ["aria-hidden", "ariaHidden"], ariaBusy: ["aria-busy", "ariaBusy"], ariaChecked: ["aria-checked", "ariaChecked"], ariaDisabled: ["aria-disabled", "ariaDisabled"], ariaExpanded: ["aria-expanded", "ariaExpanded"], ariaSelected: ["aria-selected", "ariaSelected"], ariaModal: ["aria-modal", "ariaModal"], ariaValueMax: ["aria-valuemax", "ariaValueMax"], ariaValueMin: ["aria-valuemin", "ariaValueMin"], ariaValueNow: ["aria-valuenow", "ariaValueNow"], ariaValueText: ["aria-valuetext", "ariaValueText"], onAccessibilityAction: "onAccessibilityAction", onAccessibilityTap: "onAccessibilityTap", onMagicTap: "onMagicTap", onAccessibilityEscape: "onAccessibilityEscape", onLoadStart: "onLoadStart", onLoad: "onLoad", onLoadEnd: "onLoadEnd", onError: "onError", onProgress: "onProgress", onPartialLoad: "onPartialLoad", animatedProps: "animatedProps", passthroughAnimatedPropExplicitValues: "passthroughAnimatedPropExplicitValues" }, outputs: { accessibilityAction: "accessibilityAction", accessibilityTap: "accessibilityTap", magicTap: "magicTap", accessibilityEscape: "accessibilityEscape", loadStart: "loadStart", load: "load", loadEnd: "loadEnd", error: "error", progress: "progress", partialLoad: "partialLoad" }, viewQueries: [{ propertyName: "hostDirective", first: true, predicate: SymbioteHostPropsDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
317
+ <symbiote-image
318
+ [symbioteHostProps]="animatedImageProps"
319
+ (accessibilityAction)="handleAccessibilityAction($event)"
320
+ (accessibilityTap)="handleAccessibilityTap($event)"
321
+ (magicTap)="handleMagicTap($event)"
322
+ (accessibilityEscape)="handleAccessibilityEscape($event)"
323
+ (loadStart)="handleLoadStart($event)"
324
+ (load)="handleLoad($event)"
325
+ (loadEnd)="handleLoadEnd($event)"
326
+ (error)="handleError($event)"
327
+ (progress)="handleProgress($event)"
328
+ (partialLoad)="handlePartialLoad($event)"
329
+ >
330
+ <ng-content></ng-content>
331
+ </symbiote-image>
332
+ `, isInline: true, dependencies: [{ kind: "directive", type: SymbioteHostPropsDirective, selector: "[symbioteHostProps]", inputs: ["symbioteHostProps"], exportAs: ["symbioteHost"] }, { kind: "component", type: ImageHost, selector: "symbiote-image" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
333
+ }
334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AnimatedImage, decorators: [{
335
+ type: Component,
336
+ args: [{
337
+ selector: 'AnimatedImage, symbiote-animated-image',
338
+ standalone: true,
339
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
340
+ imports: [SymbioteHostPropsDirective, ImageHost],
341
+ inputs: ANIMATED_IMAGE_INPUTS,
342
+ outputs: IMAGE_OUTPUTS,
343
+ template: `
344
+ <symbiote-image
345
+ [symbioteHostProps]="animatedImageProps"
346
+ (accessibilityAction)="handleAccessibilityAction($event)"
347
+ (accessibilityTap)="handleAccessibilityTap($event)"
348
+ (magicTap)="handleMagicTap($event)"
349
+ (accessibilityEscape)="handleAccessibilityEscape($event)"
350
+ (loadStart)="handleLoadStart($event)"
351
+ (load)="handleLoad($event)"
352
+ (loadEnd)="handleLoadEnd($event)"
353
+ (error)="handleError($event)"
354
+ (progress)="handleProgress($event)"
355
+ (partialLoad)="handlePartialLoad($event)"
356
+ >
357
+ <ng-content></ng-content>
358
+ </symbiote-image>
359
+ `,
360
+ changeDetection: ChangeDetectionStrategy.OnPush,
361
+ }]
362
+ }], propDecorators: { hostDirective: [{
363
+ type: ViewChild,
364
+ args: [SymbioteHostPropsDirective]
365
+ }] } });
366
+ export class AnimatedScrollView extends AnimatedComponentBase {
367
+ // RN defaults nested scrolling ON (ScrollView.js `nestedScrollEnabled ?? true`) — Android
368
+ // needs it explicit or a ScrollView nested inside another scrollable container never
369
+ // receives touch (swallowed by the outer scroll view; iOS doesn't gate on this). The real
370
+ // ScrollView component already defaults this (scroll-view/shared.ts), but AnimatedScrollView
371
+ // talks to the raw primitive directly and has no such defaulting, so it must apply it too.
372
+ get reducedProps() {
373
+ const reduced = super.reducedProps;
374
+ return reduced.nestedScrollEnabled === undefined
375
+ ? { ...reduced, nestedScrollEnabled: true }
376
+ : reduced;
377
+ }
378
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AnimatedScrollView, deps: null, target: i0.ɵɵFactoryTarget.Component });
379
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: AnimatedScrollView, isStandalone: true, selector: "AnimatedScrollView, symbiote-animated-scroll-view", inputs: { style: "style", animatedProps: "animatedProps", passthroughAnimatedPropExplicitValues: "passthroughAnimatedPropExplicitValues" }, usesInheritance: true, ngImport: i0, template: `
380
+ <symbiote-scroll-view [symbioteHostProps]="reducedProps">
381
+ <symbiote-scroll-content [collapsable]="false">
382
+ <ng-content></ng-content>
383
+ </symbiote-scroll-content>
384
+ </symbiote-scroll-view>
385
+ `, isInline: true, dependencies: [{ kind: "directive", type: SymbioteHostPropsDirective, selector: "[symbioteHostProps]", inputs: ["symbioteHostProps"], exportAs: ["symbioteHost"] }, { kind: "component", type: ScrollViewHost, selector: "symbiote-scroll-view" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
386
+ }
387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AnimatedScrollView, decorators: [{
388
+ type: Component,
389
+ args: [{
390
+ selector: 'AnimatedScrollView, symbiote-animated-scroll-view',
391
+ standalone: true,
392
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
393
+ imports: [SymbioteHostPropsDirective, ScrollViewHost],
394
+ inputs: ANIMATED_INPUTS,
395
+ template: `
396
+ <symbiote-scroll-view [symbioteHostProps]="reducedProps">
397
+ <symbiote-scroll-content [collapsable]="false">
398
+ <ng-content></ng-content>
399
+ </symbiote-scroll-content>
400
+ </symbiote-scroll-view>
401
+ `,
402
+ changeDetection: ChangeDetectionStrategy.OnPush,
403
+ }]
404
+ }] });
405
+ // List components are already explicit AOT-compiled Angular components with their own full input
406
+ // surface and inner ScrollView composition. Expose them in the Animated namespace without runtime
407
+ // synthesis; app code passes animated style/onScroll through the existing list inputs.
408
+ export const AnimatedFlatList = FlatList;
409
+ export const AnimatedSectionList = SectionList;
410
+ // Surface-parity shim for the React/Vue `createAnimatedComponent(Component)`. Angular cannot
411
+ // synthesize a component at runtime (no JIT under AOT/Metro — see the file header), so this maps
412
+ // the built-in primitives to their pre-authored wrappers and refuses anything else with a
413
+ // pointer to the real Angular idiom: author a standalone @Component extending
414
+ // AnimatedComponentBase.
415
+ export function createAnimatedComponent(base) {
416
+ if (base === View)
417
+ return AnimatedView;
418
+ if (base === Text)
419
+ return AnimatedText;
420
+ if (base === Image)
421
+ return AnimatedImage;
422
+ if (base === ScrollView)
423
+ return AnimatedScrollView;
424
+ throw new Error('createAnimatedComponent: Angular cannot synthesize a component at runtime (no JIT compiler ' +
425
+ 'under AOT/Metro). Author an explicit standalone @Component extending AnimatedComponentBase ' +
426
+ 'instead. The built-in primitives View / Text / Image / ScrollView map to ' +
427
+ 'AnimatedView / AnimatedText / AnimatedImage / AnimatedScrollView.');
428
+ }
429
+ //# sourceMappingURL=create-animated-component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-animated-component.js","sourceRoot":"","sources":["../../../../src/modules/animated/create-animated-component.ts"],"names":[],"mappings":"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"}