@nativescript/core 8.9.0-napi-es5.0 → 8.9.0-napi.1

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 (571) hide show
  1. package/abortcontroller/abortsignal.js +16 -23
  2. package/abortcontroller/abortsignal.js.map +1 -1
  3. package/abortcontroller/index.js +14 -20
  4. package/abortcontroller/index.js.map +1 -1
  5. package/accessibility/accessibility-common.js +8 -8
  6. package/accessibility/accessibility-common.js.map +1 -1
  7. package/accessibility/accessibility-css-helper.js +27 -27
  8. package/accessibility/accessibility-css-helper.js.map +1 -1
  9. package/accessibility/accessibility-properties.js +22 -23
  10. package/accessibility/accessibility-properties.js.map +1 -1
  11. package/accessibility/accessibility-service-common.js +12 -22
  12. package/accessibility/accessibility-service-common.js.map +1 -1
  13. package/accessibility/accessibility-service.android.js +27 -39
  14. package/accessibility/accessibility-service.android.js.map +1 -1
  15. package/accessibility/accessibility-service.ios.js +14 -17
  16. package/accessibility/accessibility-service.ios.js.map +1 -1
  17. package/accessibility/font-scale-common.js +2 -2
  18. package/accessibility/font-scale-common.js.map +1 -1
  19. package/accessibility/font-scale.android.js +7 -8
  20. package/accessibility/font-scale.android.js.map +1 -1
  21. package/accessibility/font-scale.ios.js +9 -10
  22. package/accessibility/font-scale.ios.js.map +1 -1
  23. package/accessibility/index.android.js +77 -83
  24. package/accessibility/index.android.js.map +1 -1
  25. package/accessibility/index.ios.js +34 -36
  26. package/accessibility/index.ios.js.map +1 -1
  27. package/animation-frame/animation-native.ios.js +1 -1
  28. package/animation-frame/animation-native.ios.js.map +1 -1
  29. package/animation-frame/index.js +16 -16
  30. package/animation-frame/index.js.map +1 -1
  31. package/application/application-common.js +196 -214
  32. package/application/application-common.js.map +1 -1
  33. package/application/application-shims.js +39 -39
  34. package/application/application-shims.js.map +1 -1
  35. package/application/application.android.js +110 -149
  36. package/application/application.android.js.map +1 -1
  37. package/application/application.ios.js +162 -197
  38. package/application/application.ios.js.map +1 -1
  39. package/application-settings/index.android.js +11 -11
  40. package/application-settings/index.android.js.map +1 -1
  41. package/application-settings/index.ios.js +1 -1
  42. package/application-settings/index.ios.js.map +1 -1
  43. package/bundle-entry-points.js +1 -1
  44. package/bundle-entry-points.js.map +1 -1
  45. package/color/color-common.js +157 -200
  46. package/color/color-common.js.map +1 -1
  47. package/color/index.android.js +4 -14
  48. package/color/index.android.js.map +1 -1
  49. package/color/index.ios.js +14 -24
  50. package/color/index.ios.js.map +1 -1
  51. package/color/known-colors.js +144 -144
  52. package/color/known-colors.js.map +1 -1
  53. package/connectivity/index.android.js +23 -23
  54. package/connectivity/index.android.js.map +1 -1
  55. package/connectivity/index.ios.js +25 -25
  56. package/connectivity/index.ios.js.map +1 -1
  57. package/console/index.js +20 -24
  58. package/console/index.js.map +1 -1
  59. package/core-types/index.js +38 -38
  60. package/core-types/index.js.map +1 -1
  61. package/css/CSS3Parser.js +104 -106
  62. package/css/CSS3Parser.js.map +1 -1
  63. package/css/CSSNativeScript.js +29 -34
  64. package/css/CSSNativeScript.js.map +1 -1
  65. package/css/css-tree-parser.js.map +1 -1
  66. package/css/parser.js +158 -178
  67. package/css/parser.js.map +1 -1
  68. package/css/system-classes.js +9 -9
  69. package/css/system-classes.js.map +1 -1
  70. package/css-mediaquery/index.js +27 -29
  71. package/css-mediaquery/index.js.map +1 -1
  72. package/data/observable/index.js +115 -124
  73. package/data/observable/index.js.map +1 -1
  74. package/data/observable-array/index.js +119 -176
  75. package/data/observable-array/index.js.map +1 -1
  76. package/data/virtual-array/index.js +61 -74
  77. package/data/virtual-array/index.js.map +1 -1
  78. package/debugger/InspectorBackendCommands.js +137 -161
  79. package/debugger/InspectorBackendCommands.js.map +1 -1
  80. package/debugger/devtools-elements.common.js +20 -20
  81. package/debugger/devtools-elements.common.js.map +1 -1
  82. package/debugger/devtools-elements.js +2 -2
  83. package/debugger/devtools-elements.js.map +1 -1
  84. package/debugger/dom-node.js +61 -73
  85. package/debugger/dom-node.js.map +1 -1
  86. package/debugger/index.js +19 -19
  87. package/debugger/index.js.map +1 -1
  88. package/debugger/webinspector-css.js +25 -30
  89. package/debugger/webinspector-css.js.map +1 -1
  90. package/debugger/webinspector-dom.js +38 -43
  91. package/debugger/webinspector-dom.js.map +1 -1
  92. package/debugger/webinspector-network.android.js +103 -132
  93. package/debugger/webinspector-network.android.js.map +1 -1
  94. package/debugger/webinspector-network.ios.js +100 -128
  95. package/debugger/webinspector-network.ios.js.map +1 -1
  96. package/file-system/file-system-access.android.js +414 -421
  97. package/file-system/file-system-access.android.js.map +1 -1
  98. package/file-system/file-system-access.ios.js +203 -213
  99. package/file-system/file-system-access.ios.js.map +1 -1
  100. package/file-system/index.js +294 -372
  101. package/file-system/index.js.map +1 -1
  102. package/fps-meter/fps-native.android.js +15 -18
  103. package/fps-meter/fps-native.android.js.map +1 -1
  104. package/fps-meter/fps-native.ios.js +9 -11
  105. package/fps-meter/fps-native.ios.js.map +1 -1
  106. package/fps-meter/index.js +11 -11
  107. package/fps-meter/index.js.map +1 -1
  108. package/globals/index.js +88 -112
  109. package/globals/index.js.map +1 -1
  110. package/http/http-request/http-request-common.js +5 -5
  111. package/http/http-request/http-request-common.js.map +1 -1
  112. package/http/http-request/index.android.js +53 -54
  113. package/http/http-request/index.android.js.map +1 -1
  114. package/http/http-request/index.ios.js +56 -58
  115. package/http/http-request/index.ios.js.map +1 -1
  116. package/http/index.js +19 -19
  117. package/http/index.js.map +1 -1
  118. package/image-asset/image-asset-common.js +25 -37
  119. package/image-asset/image-asset-common.js.map +1 -1
  120. package/image-asset/index.android.js +17 -25
  121. package/image-asset/index.android.js.map +1 -1
  122. package/image-asset/index.ios.js +25 -35
  123. package/image-asset/index.ios.js.map +1 -1
  124. package/image-source/image-source-common.js +2 -2
  125. package/image-source/image-source-common.js.map +1 -1
  126. package/image-source/index.android.js +152 -178
  127. package/image-source/index.android.js.map +1 -1
  128. package/image-source/index.ios.js +177 -203
  129. package/image-source/index.ios.js.map +1 -1
  130. package/index.js +4 -8
  131. package/index.js.map +1 -1
  132. package/matrix/index.js +17 -27
  133. package/matrix/index.js.map +1 -1
  134. package/media-query-list/index.js +61 -87
  135. package/media-query-list/index.js.map +1 -1
  136. package/module-name-resolver/index.js +21 -24
  137. package/module-name-resolver/index.js.map +1 -1
  138. package/module-name-resolver/non-bundle-workflow-compat.js +24 -24
  139. package/module-name-resolver/non-bundle-workflow-compat.js.map +1 -1
  140. package/module-name-resolver/qualifier-matcher/index.js +46 -46
  141. package/module-name-resolver/qualifier-matcher/index.js.map +1 -1
  142. package/package.json +1 -1
  143. package/platform/common.js +5 -5
  144. package/platform/common.js.map +1 -1
  145. package/platform/device/index.android.js +68 -107
  146. package/platform/device/index.android.js.map +1 -1
  147. package/platform/device/index.ios.js +62 -101
  148. package/platform/device/index.ios.js.map +1 -1
  149. package/platform/screen/index.android.js +32 -63
  150. package/platform/screen/index.android.js.map +1 -1
  151. package/platform/screen/index.ios.js +29 -60
  152. package/platform/screen/index.ios.js.map +1 -1
  153. package/profiling/index.js +40 -47
  154. package/profiling/index.js.map +1 -1
  155. package/text/text-common.js +36 -49
  156. package/text/text-common.js.map +1 -1
  157. package/timer/index.android.js +20 -30
  158. package/timer/index.android.js.map +1 -1
  159. package/timer/index.ios.js +12 -22
  160. package/timer/index.ios.js.map +1 -1
  161. package/trace/index.js +26 -36
  162. package/trace/index.js.map +1 -1
  163. package/ui/action-bar/action-bar-common.js +193 -252
  164. package/ui/action-bar/action-bar-common.js.map +1 -1
  165. package/ui/action-bar/index.android.js +170 -212
  166. package/ui/action-bar/index.android.js.map +1 -1
  167. package/ui/action-bar/index.ios.js +208 -251
  168. package/ui/action-bar/index.ios.js.map +1 -1
  169. package/ui/activity-indicator/activity-indicator-common.js +6 -11
  170. package/ui/activity-indicator/activity-indicator-common.js.map +1 -1
  171. package/ui/activity-indicator/index.android.js +20 -26
  172. package/ui/activity-indicator/index.android.js.map +1 -1
  173. package/ui/activity-indicator/index.ios.js +23 -31
  174. package/ui/activity-indicator/index.ios.js.map +1 -1
  175. package/ui/animation/animation-common.js +43 -50
  176. package/ui/animation/animation-common.js.map +1 -1
  177. package/ui/animation/animation-interfaces.js +3 -5
  178. package/ui/animation/animation-interfaces.js.map +1 -1
  179. package/ui/animation/index.android.js +90 -94
  180. package/ui/animation/index.android.js.map +1 -1
  181. package/ui/animation/index.ios.js +225 -191
  182. package/ui/animation/index.ios.js.map +1 -1
  183. package/ui/animation/keyframe-animation.js +67 -89
  184. package/ui/animation/keyframe-animation.js.map +1 -1
  185. package/ui/builder/binding-builder.js +31 -31
  186. package/ui/builder/binding-builder.js.map +1 -1
  187. package/ui/builder/component-builder/index.js +37 -37
  188. package/ui/builder/component-builder/index.js.map +1 -1
  189. package/ui/builder/index.js +54 -59
  190. package/ui/builder/index.js.map +1 -1
  191. package/ui/builder/xml2ui.js +128 -158
  192. package/ui/builder/xml2ui.js.map +1 -1
  193. package/ui/button/button-common.js +18 -25
  194. package/ui/button/button-common.js.map +1 -1
  195. package/ui/button/index.android.js +69 -80
  196. package/ui/button/index.android.js.map +1 -1
  197. package/ui/button/index.ios.js +103 -114
  198. package/ui/button/index.ios.js.map +1 -1
  199. package/ui/content-view/index.js +60 -78
  200. package/ui/content-view/index.js.map +1 -1
  201. package/ui/core/bindable/bindable-expressions.js +93 -101
  202. package/ui/core/bindable/bindable-expressions.js.map +1 -1
  203. package/ui/core/bindable/bindable-resources.js +1 -1
  204. package/ui/core/bindable/index.js +136 -141
  205. package/ui/core/bindable/index.js.map +1 -1
  206. package/ui/core/control-state-change/index.android.js +5 -7
  207. package/ui/core/control-state-change/index.android.js.map +1 -1
  208. package/ui/core/control-state-change/index.ios.js +9 -13
  209. package/ui/core/control-state-change/index.ios.js.map +1 -1
  210. package/ui/core/properties/index.js +440 -489
  211. package/ui/core/properties/index.js.map +1 -1
  212. package/ui/core/view/index.android.js +348 -384
  213. package/ui/core/view/index.android.js.map +1 -1
  214. package/ui/core/view/index.ios.js +364 -400
  215. package/ui/core/view/index.ios.js.map +1 -1
  216. package/ui/core/view/view-common.js +655 -944
  217. package/ui/core/view/view-common.js.map +1 -1
  218. package/ui/core/view/view-helper/index.android.js +15 -19
  219. package/ui/core/view/view-helper/index.android.js.map +1 -1
  220. package/ui/core/view/view-helper/index.ios.js +81 -85
  221. package/ui/core/view/view-helper/index.ios.js.map +1 -1
  222. package/ui/core/view/view-helper/view-helper-common.js +44 -49
  223. package/ui/core/view/view-helper/view-helper-common.js.map +1 -1
  224. package/ui/core/view-base/index.js +371 -426
  225. package/ui/core/view-base/index.js.map +1 -1
  226. package/ui/core/weak-event-listener/index.js +25 -26
  227. package/ui/core/weak-event-listener/index.js.map +1 -1
  228. package/ui/date-picker/date-picker-common.js +30 -35
  229. package/ui/date-picker/date-picker-common.js.map +1 -1
  230. package/ui/date-picker/index.android.js +43 -51
  231. package/ui/date-picker/index.android.js.map +1 -1
  232. package/ui/date-picker/index.ios.js +51 -61
  233. package/ui/date-picker/index.ios.js.map +1 -1
  234. package/ui/dialogs/dialogs-common.js +18 -18
  235. package/ui/dialogs/dialogs-common.js.map +1 -1
  236. package/ui/dialogs/index.android.js +86 -98
  237. package/ui/dialogs/index.android.js.map +1 -1
  238. package/ui/dialogs/index.ios.js +67 -80
  239. package/ui/dialogs/index.ios.js.map +1 -1
  240. package/ui/editable-text-base/editable-text-base-common.js +29 -35
  241. package/ui/editable-text-base/editable-text-base-common.js.map +1 -1
  242. package/ui/editable-text-base/index.android.js +106 -112
  243. package/ui/editable-text-base/index.android.js.map +1 -1
  244. package/ui/editable-text-base/index.ios.js +47 -53
  245. package/ui/editable-text-base/index.ios.js.map +1 -1
  246. package/ui/embedding/index.android.js +2 -3
  247. package/ui/embedding/index.android.js.map +1 -1
  248. package/ui/frame/activity.android.js +44 -44
  249. package/ui/frame/activity.android.js.map +1 -1
  250. package/ui/frame/callbacks/activity-callbacks.js +118 -123
  251. package/ui/frame/callbacks/activity-callbacks.js.map +1 -1
  252. package/ui/frame/callbacks/fragment-callbacks.js +139 -141
  253. package/ui/frame/callbacks/fragment-callbacks.js.map +1 -1
  254. package/ui/frame/fragment.android.js +21 -21
  255. package/ui/frame/fragment.android.js.map +1 -1
  256. package/ui/frame/fragment.ios.js +1 -1
  257. package/ui/frame/fragment.transitions.android.js +105 -114
  258. package/ui/frame/fragment.transitions.android.js.map +1 -1
  259. package/ui/frame/frame-common.d.ts +1 -1
  260. package/ui/frame/frame-common.js +249 -285
  261. package/ui/frame/frame-common.js.map +1 -1
  262. package/ui/frame/frame-helpers.js +1 -1
  263. package/ui/frame/frame-helpers.js.map +1 -1
  264. package/ui/frame/frame-stack.js +4 -4
  265. package/ui/frame/frame-stack.js.map +1 -1
  266. package/ui/frame/index.android.js +239 -291
  267. package/ui/frame/index.android.js.map +1 -1
  268. package/ui/frame/index.ios.js +133 -167
  269. package/ui/frame/index.ios.js.map +1 -1
  270. package/ui/gestures/gestures-common.js +15 -29
  271. package/ui/gestures/gestures-common.js.map +1 -1
  272. package/ui/gestures/index.android.js +108 -124
  273. package/ui/gestures/index.android.js.map +1 -1
  274. package/ui/gestures/index.ios.js +108 -121
  275. package/ui/gestures/index.ios.js.map +1 -1
  276. package/ui/gestures/touch-manager.js +42 -48
  277. package/ui/gestures/touch-manager.js.map +1 -1
  278. package/ui/html-view/html-view-common.js +9 -14
  279. package/ui/html-view/html-view-common.js.map +1 -1
  280. package/ui/html-view/index.android.js +37 -43
  281. package/ui/html-view/index.android.js.map +1 -1
  282. package/ui/html-view/index.ios.js +62 -73
  283. package/ui/html-view/index.ios.js.map +1 -1
  284. package/ui/image/image-common.js +47 -57
  285. package/ui/image/image-common.js.map +1 -1
  286. package/ui/image/index.android.js +54 -59
  287. package/ui/image/index.android.js.map +1 -1
  288. package/ui/image/index.ios.js +65 -72
  289. package/ui/image/index.ios.js.map +1 -1
  290. package/ui/image/symbol-effects-common.js +2 -6
  291. package/ui/image/symbol-effects-common.js.map +1 -1
  292. package/ui/image/symbol-effects.android.js +4 -10
  293. package/ui/image/symbol-effects.android.js.map +1 -1
  294. package/ui/image/symbol-effects.ios.js +7 -11
  295. package/ui/image/symbol-effects.ios.js.map +1 -1
  296. package/ui/image-cache/image-cache-common.js +57 -61
  297. package/ui/image-cache/image-cache-common.js.map +1 -1
  298. package/ui/image-cache/index.android.js +23 -27
  299. package/ui/image-cache/index.android.js.map +1 -1
  300. package/ui/image-cache/index.ios.js +24 -29
  301. package/ui/image-cache/index.ios.js.map +1 -1
  302. package/ui/label/index.android.js +29 -38
  303. package/ui/label/index.android.js.map +1 -1
  304. package/ui/label/index.ios.js +89 -102
  305. package/ui/label/index.ios.js.map +1 -1
  306. package/ui/layouts/absolute-layout/absolute-layout-common.js +25 -30
  307. package/ui/layouts/absolute-layout/absolute-layout-common.js.map +1 -1
  308. package/ui/layouts/absolute-layout/index.android.js +6 -12
  309. package/ui/layouts/absolute-layout/index.android.js.map +1 -1
  310. package/ui/layouts/absolute-layout/index.ios.js +32 -40
  311. package/ui/layouts/absolute-layout/index.ios.js.map +1 -1
  312. package/ui/layouts/dock-layout/dock-layout-common.js +16 -21
  313. package/ui/layouts/dock-layout/dock-layout-common.js.map +1 -1
  314. package/ui/layouts/dock-layout/index.android.js +11 -17
  315. package/ui/layouts/dock-layout/index.android.js.map +1 -1
  316. package/ui/layouts/dock-layout/index.ios.js +45 -53
  317. package/ui/layouts/dock-layout/index.ios.js.map +1 -1
  318. package/ui/layouts/flexbox-layout/flexbox-layout-common.js +90 -115
  319. package/ui/layouts/flexbox-layout/flexbox-layout-common.js.map +1 -1
  320. package/ui/layouts/flexbox-layout/index.android.js +92 -97
  321. package/ui/layouts/flexbox-layout/index.android.js.map +1 -1
  322. package/ui/layouts/flexbox-layout/index.ios.js +366 -427
  323. package/ui/layouts/flexbox-layout/index.ios.js.map +1 -1
  324. package/ui/layouts/grid-layout/grid-layout-common.js +159 -211
  325. package/ui/layouts/grid-layout/grid-layout-common.js.map +1 -1
  326. package/ui/layouts/grid-layout/index.android.js +49 -55
  327. package/ui/layouts/grid-layout/index.android.js.map +1 -1
  328. package/ui/layouts/grid-layout/index.ios.js +340 -348
  329. package/ui/layouts/grid-layout/index.ios.js.map +1 -1
  330. package/ui/layouts/layout-base-common.js +78 -106
  331. package/ui/layouts/layout-base-common.js.map +1 -1
  332. package/ui/layouts/layout-base.android.js +25 -31
  333. package/ui/layouts/layout-base.android.js.map +1 -1
  334. package/ui/layouts/layout-base.ios.js +21 -27
  335. package/ui/layouts/layout-base.ios.js.map +1 -1
  336. package/ui/layouts/root-layout/index.android.js +47 -46
  337. package/ui/layouts/root-layout/index.android.js.map +1 -1
  338. package/ui/layouts/root-layout/index.ios.js +54 -53
  339. package/ui/layouts/root-layout/index.ios.js.map +1 -1
  340. package/ui/layouts/root-layout/root-layout-common.js +186 -190
  341. package/ui/layouts/root-layout/root-layout-common.js.map +1 -1
  342. package/ui/layouts/stack-layout/index.android.js +6 -12
  343. package/ui/layouts/stack-layout/index.android.js.map +1 -1
  344. package/ui/layouts/stack-layout/index.ios.js +62 -69
  345. package/ui/layouts/stack-layout/index.ios.js.map +1 -1
  346. package/ui/layouts/stack-layout/stack-layout-common.js +7 -12
  347. package/ui/layouts/stack-layout/stack-layout-common.js.map +1 -1
  348. package/ui/layouts/wrap-layout/index.android.js +10 -16
  349. package/ui/layouts/wrap-layout/index.android.js.map +1 -1
  350. package/ui/layouts/wrap-layout/index.ios.js +70 -76
  351. package/ui/layouts/wrap-layout/index.ios.js.map +1 -1
  352. package/ui/layouts/wrap-layout/wrap-layout-common.js +13 -18
  353. package/ui/layouts/wrap-layout/wrap-layout-common.js.map +1 -1
  354. package/ui/list-picker/index.android.js +42 -48
  355. package/ui/list-picker/index.android.js.map +1 -1
  356. package/ui/list-picker/index.ios.js +26 -36
  357. package/ui/list-picker/index.ios.js.map +1 -1
  358. package/ui/list-picker/list-picker-common.js +27 -32
  359. package/ui/list-picker/list-picker-common.js.map +1 -1
  360. package/ui/list-view/index.android.js +98 -110
  361. package/ui/list-view/index.android.js.map +1 -1
  362. package/ui/list-view/index.ios.js +121 -137
  363. package/ui/list-view/index.ios.js.map +1 -1
  364. package/ui/list-view/list-view-common.js +100 -116
  365. package/ui/list-view/list-view-common.js.map +1 -1
  366. package/ui/page/index.android.js +57 -65
  367. package/ui/page/index.android.js.map +1 -1
  368. package/ui/page/index.ios.js +98 -107
  369. package/ui/page/index.ios.js.map +1 -1
  370. package/ui/page/page-common.js +113 -145
  371. package/ui/page/page-common.js.map +1 -1
  372. package/ui/placeholder/index.android.js +10 -16
  373. package/ui/placeholder/index.android.js.map +1 -1
  374. package/ui/placeholder/index.js +6 -12
  375. package/ui/placeholder/index.js.map +1 -1
  376. package/ui/progress/index.android.js +28 -34
  377. package/ui/progress/index.android.js.map +1 -1
  378. package/ui/progress/index.ios.js +29 -39
  379. package/ui/progress/index.ios.js.map +1 -1
  380. package/ui/progress/progress-common.js +11 -16
  381. package/ui/progress/progress-common.js.map +1 -1
  382. package/ui/proxy-view-container/index.js +90 -111
  383. package/ui/proxy-view-container/index.js.map +1 -1
  384. package/ui/repeater/index.js +100 -112
  385. package/ui/repeater/index.js.map +1 -1
  386. package/ui/scroll-view/index.android.d.ts +1 -1
  387. package/ui/scroll-view/index.android.js +75 -95
  388. package/ui/scroll-view/index.android.js.map +1 -1
  389. package/ui/scroll-view/index.ios.js +72 -92
  390. package/ui/scroll-view/index.ios.js.map +1 -1
  391. package/ui/scroll-view/scroll-view-common.js +45 -65
  392. package/ui/scroll-view/scroll-view-common.js.map +1 -1
  393. package/ui/search-bar/index.android.js +88 -94
  394. package/ui/search-bar/index.android.js.map +1 -1
  395. package/ui/search-bar/index.ios.js +74 -88
  396. package/ui/search-bar/index.ios.js.map +1 -1
  397. package/ui/search-bar/search-bar-common.js +13 -18
  398. package/ui/search-bar/search-bar-common.js.map +1 -1
  399. package/ui/segmented-bar/index.android.js +98 -112
  400. package/ui/segmented-bar/index.android.js.map +1 -1
  401. package/ui/segmented-bar/index.ios.js +63 -80
  402. package/ui/segmented-bar/index.ios.js.map +1 -1
  403. package/ui/segmented-bar/segmented-bar-common.js +61 -81
  404. package/ui/segmented-bar/segmented-bar-common.js.map +1 -1
  405. package/ui/slider/index.android.js +43 -49
  406. package/ui/slider/index.android.js.map +1 -1
  407. package/ui/slider/index.ios.js +49 -59
  408. package/ui/slider/index.ios.js.map +1 -1
  409. package/ui/slider/slider-common.js +28 -35
  410. package/ui/slider/slider-common.js.map +1 -1
  411. package/ui/styling/background-common.js +98 -100
  412. package/ui/styling/background-common.js.map +1 -1
  413. package/ui/styling/background.android.js +35 -38
  414. package/ui/styling/background.android.js.map +1 -1
  415. package/ui/styling/background.ios.js +252 -258
  416. package/ui/styling/background.ios.js.map +1 -1
  417. package/ui/styling/box-shadow.js +2 -6
  418. package/ui/styling/box-shadow.js.map +1 -1
  419. package/ui/styling/converters.js +7 -7
  420. package/ui/styling/converters.js.map +1 -1
  421. package/ui/styling/css-animation-parser.js +56 -69
  422. package/ui/styling/css-animation-parser.js.map +1 -1
  423. package/ui/styling/css-selector.js +425 -522
  424. package/ui/styling/css-selector.js.map +1 -1
  425. package/ui/styling/css-shadow.js +2 -2
  426. package/ui/styling/css-shadow.js.map +1 -1
  427. package/ui/styling/css-stroke.js +3 -3
  428. package/ui/styling/css-stroke.js.map +1 -1
  429. package/ui/styling/css-utils.js +22 -22
  430. package/ui/styling/css-utils.js.map +1 -1
  431. package/ui/styling/font-common.js +44 -59
  432. package/ui/styling/font-common.js.map +1 -1
  433. package/ui/styling/font.android.js +34 -42
  434. package/ui/styling/font.android.js.map +1 -1
  435. package/ui/styling/font.ios.js +49 -54
  436. package/ui/styling/font.ios.js.map +1 -1
  437. package/ui/styling/linear-gradient.js +13 -17
  438. package/ui/styling/linear-gradient.js.map +1 -1
  439. package/ui/styling/style/index.js +36 -47
  440. package/ui/styling/style/index.js.map +1 -1
  441. package/ui/styling/style-properties.js +291 -306
  442. package/ui/styling/style-properties.js.map +1 -1
  443. package/ui/styling/style-scope.js +377 -416
  444. package/ui/styling/style-scope.js.map +1 -1
  445. package/ui/switch/index.android.js +41 -47
  446. package/ui/switch/index.android.js.map +1 -1
  447. package/ui/switch/index.ios.js +57 -66
  448. package/ui/switch/index.ios.js.map +1 -1
  449. package/ui/switch/switch-common.js +11 -16
  450. package/ui/switch/switch-common.js.map +1 -1
  451. package/ui/tab-view/index.android.js +187 -206
  452. package/ui/tab-view/index.android.js.map +1 -1
  453. package/ui/tab-view/index.ios.js +161 -177
  454. package/ui/tab-view/index.ios.js.map +1 -1
  455. package/ui/tab-view/tab-view-common.js +143 -197
  456. package/ui/tab-view/tab-view-common.js.map +1 -1
  457. package/ui/text-base/formatted-string.js +105 -158
  458. package/ui/text-base/formatted-string.js.map +1 -1
  459. package/ui/text-base/index.android.js +130 -136
  460. package/ui/text-base/index.android.js.map +1 -1
  461. package/ui/text-base/index.ios.js +112 -120
  462. package/ui/text-base/index.ios.js.map +1 -1
  463. package/ui/text-base/span.js +102 -158
  464. package/ui/text-base/span.js.map +1 -1
  465. package/ui/text-base/text-base-common.js +181 -268
  466. package/ui/text-base/text-base-common.js.map +1 -1
  467. package/ui/text-field/index.android.js +18 -24
  468. package/ui/text-field/index.android.js.map +1 -1
  469. package/ui/text-field/index.ios.js +70 -80
  470. package/ui/text-field/index.ios.js.map +1 -1
  471. package/ui/text-field/text-field-common.js +8 -13
  472. package/ui/text-field/text-field-common.js.map +1 -1
  473. package/ui/text-view/index.android.js +13 -19
  474. package/ui/text-view/index.android.js.map +1 -1
  475. package/ui/text-view/index.ios.js +116 -124
  476. package/ui/text-view/index.ios.js.map +1 -1
  477. package/ui/text-view/text-view-common.js +3 -9
  478. package/ui/text-view/text-view-common.js.map +1 -1
  479. package/ui/time-picker/index.android.js +18 -24
  480. package/ui/time-picker/index.android.js.map +1 -1
  481. package/ui/time-picker/index.ios.js +61 -69
  482. package/ui/time-picker/index.ios.js.map +1 -1
  483. package/ui/time-picker/time-picker-common.js +37 -42
  484. package/ui/time-picker/time-picker-common.js.map +1 -1
  485. package/ui/transition/fade-transition.android.js +8 -14
  486. package/ui/transition/fade-transition.android.js.map +1 -1
  487. package/ui/transition/fade-transition.ios.js +4 -10
  488. package/ui/transition/fade-transition.ios.js.map +1 -1
  489. package/ui/transition/flip-transition.android.js +14 -18
  490. package/ui/transition/flip-transition.android.js.map +1 -1
  491. package/ui/transition/index.android.js +24 -27
  492. package/ui/transition/index.android.js.map +1 -1
  493. package/ui/transition/index.ios.js +18 -22
  494. package/ui/transition/index.ios.js.map +1 -1
  495. package/ui/transition/modal-transition.android.js +4 -10
  496. package/ui/transition/modal-transition.android.js.map +1 -1
  497. package/ui/transition/modal-transition.ios.js +18 -25
  498. package/ui/transition/modal-transition.ios.js.map +1 -1
  499. package/ui/transition/page-transition.android.js +57 -71
  500. package/ui/transition/page-transition.android.js.map +1 -1
  501. package/ui/transition/page-transition.ios.js +19 -27
  502. package/ui/transition/page-transition.ios.js.map +1 -1
  503. package/ui/transition/shared-transition-helper.android.js +8 -12
  504. package/ui/transition/shared-transition-helper.android.js.map +1 -1
  505. package/ui/transition/shared-transition-helper.ios.js +442 -539
  506. package/ui/transition/shared-transition-helper.ios.js.map +1 -1
  507. package/ui/transition/shared-transition.js +77 -76
  508. package/ui/transition/shared-transition.js.map +1 -1
  509. package/ui/transition/slide-transition.android.js +17 -22
  510. package/ui/transition/slide-transition.android.js.map +1 -1
  511. package/ui/transition/slide-transition.ios.js +7 -11
  512. package/ui/transition/slide-transition.ios.js.map +1 -1
  513. package/ui/utils.ios.js +13 -13
  514. package/ui/utils.ios.js.map +1 -1
  515. package/ui/web-view/index.android.js +50 -64
  516. package/ui/web-view/index.android.js.map +1 -1
  517. package/ui/web-view/index.ios.js +50 -73
  518. package/ui/web-view/index.ios.js.map +1 -1
  519. package/ui/web-view/web-view-common.js +29 -43
  520. package/ui/web-view/web-view-common.js.map +1 -1
  521. package/utils/android/index.js +26 -27
  522. package/utils/android/index.js.map +1 -1
  523. package/utils/common.js +49 -65
  524. package/utils/common.js.map +1 -1
  525. package/utils/constants.android.js +1 -1
  526. package/utils/constants.android.js.map +1 -1
  527. package/utils/constants.ios.js +1 -1
  528. package/utils/constants.ios.js.map +1 -1
  529. package/utils/debug.js +32 -54
  530. package/utils/debug.js.map +1 -1
  531. package/utils/index.android.js +40 -36
  532. package/utils/index.android.js.map +1 -1
  533. package/utils/index.ios.js +9 -9
  534. package/utils/index.ios.js.map +1 -1
  535. package/utils/ios/index.js +45 -42
  536. package/utils/ios/index.js.map +1 -1
  537. package/utils/layout-helper/index.android.js +4 -4
  538. package/utils/layout-helper/index.android.js.map +1 -1
  539. package/utils/layout-helper/index.ios.js +2 -2
  540. package/utils/layout-helper/index.ios.js.map +1 -1
  541. package/utils/layout-helper/layout-helper-common.js +13 -13
  542. package/utils/layout-helper/layout-helper-common.js.map +1 -1
  543. package/utils/lazy.js +2 -2
  544. package/utils/lazy.js.map +1 -1
  545. package/utils/macrotask-scheduler.js +6 -6
  546. package/utils/macrotask-scheduler.js.map +1 -1
  547. package/utils/mainthread-helper.android.js +4 -4
  548. package/utils/mainthread-helper.android.js.map +1 -1
  549. package/utils/mainthread-helper.ios.js +1 -1
  550. package/utils/mainthread-helper.ios.js.map +1 -1
  551. package/utils/module-merge.js +1 -1
  552. package/utils/module-merge.js.map +1 -1
  553. package/utils/native-helper.android.js +19 -19
  554. package/utils/native-helper.android.js.map +1 -1
  555. package/utils/native-helper.ios.js +16 -23
  556. package/utils/native-helper.ios.js.map +1 -1
  557. package/utils/number-utils.js +3 -3
  558. package/utils/number-utils.js.map +1 -1
  559. package/utils/platform-check.js +6 -6
  560. package/utils/platform-check.js.map +1 -1
  561. package/utils/types.js +33 -43
  562. package/utils/types.js.map +1 -1
  563. package/wgc/crypto/SubtleCrypto.js +132 -167
  564. package/wgc/crypto/SubtleCrypto.js.map +1 -1
  565. package/wgc/crypto/index.d.ts +1 -1
  566. package/wgc/crypto/index.js +10 -18
  567. package/wgc/crypto/index.js.map +1 -1
  568. package/xhr/index.js +226 -308
  569. package/xhr/index.js.map +1 -1
  570. package/xml/index.js +78 -118
  571. package/xml/index.js.map +1 -1
@@ -3,531 +3,448 @@ import { isNumber } from '../../utils/types';
3
3
  import { Screen } from '../../platform';
4
4
  import { CORE_ANIMATION_DEFAULTS } from '../../utils/common';
5
5
  import { ios as iOSUtils } from '../../utils/native-helper';
6
- var SharedTransitionHelper = /** @class */ (function () {
7
- function SharedTransitionHelper() {
8
- }
9
- SharedTransitionHelper.animate = function (state, transitionContext, type) {
10
- var _this = this;
11
- var transition = state.instance;
12
- setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
13
- var _a, _b, sharedElements_1, presented_1, presenting_1, sharedElementTags_1, pageOut_1, pageStart_1, startFrame, pageEnd_1, pageEndTags_1, positionSharedTags, positionIndependentTags, snapshotData, _i, snapshotData_1, data, cleanupPresent_1, animateProperties_1, pageOut_2, pageEnd, pageEndTags, pageReturn_1, _c, _d, p, snapshotData, _e, snapshotData_2, data, pageEndProps, _loop_1, _f, snapshotData_3, data, cleanupDismiss_1, animateProperties_2;
14
- var _this = this;
15
- var _g;
16
- return __generator(this, function (_h) {
17
- switch (_h.label) {
18
- case 0:
19
- _a = state.activeType;
20
- switch (_a) {
21
- case SharedTransitionAnimationType.present: return [3 /*break*/, 1];
22
- case SharedTransitionAnimationType.dismiss: return [3 /*break*/, 4];
23
- }
24
- return [3 /*break*/, 9];
25
- case 1:
26
- // console.log('-- Transition present --');
27
- SharedTransition.notifyEvent(SharedTransition.startedEvent, {
28
- id: transition.id,
29
- type: type,
30
- action: 'present',
31
- });
32
- if (type === 'modal') {
33
- transitionContext.containerView.addSubview(transition.presented.view);
34
- }
35
- else if (type === 'page') {
36
- transitionContext.containerView.insertSubviewAboveSubview(transition.presented.view, transition.presenting.view);
37
- }
38
- transition.presented.view.layoutIfNeeded();
39
- _b = SharedTransition.getSharedElements(state.page, state.toPage), sharedElements_1 = _b.sharedElements, presented_1 = _b.presented, presenting_1 = _b.presenting;
40
- sharedElementTags_1 = sharedElements_1.map(function (v) { return v.sharedTransitionTag; });
41
- if (!transition.sharedElements) {
42
- transition.sharedElements = {
43
- presented: [],
44
- presenting: [],
45
- independent: [],
46
- };
47
- }
48
- if (SharedTransition.DEBUG) {
49
- console.log(" ".concat(type, ": Present"));
50
- console.log("1. Found sharedTransitionTags to animate:", sharedElementTags_1);
51
- console.log("2. Take snapshots of shared elements and position them based on presenting view:");
52
- }
53
- pageOut_1 = state.pageOut;
54
- pageStart_1 = state.pageStart;
55
- startFrame = getRectFromProps(pageStart_1, getPageStartDefaultsForType(type));
56
- pageEnd_1 = state.pageEnd;
57
- pageEndTags_1 = (pageEnd_1 === null || pageEnd_1 === void 0 ? void 0 : pageEnd_1.sharedTransitionTags) || {};
58
- positionSharedTags = function () { return __awaiter(_this, void 0, void 0, function () {
59
- var _loop_2, _i, sharedElements_2, presentingView;
60
- return __generator(this, function (_a) {
61
- switch (_a.label) {
62
- case 0:
63
- _loop_2 = function (presentingView) {
64
- var presentingSharedElement, presentedView, presentedSharedElement, pageEndProps, snapshot, startFrame_1, endFrame;
65
- return __generator(this, function (_b) {
66
- switch (_b.label) {
67
- case 0:
68
- presentingSharedElement = presentingView.ios;
69
- presentedView = presented_1.find(function (v) { return v.sharedTransitionTag === presentingView.sharedTransitionTag; });
70
- presentedSharedElement = presentedView.ios;
71
- pageEndProps = pageEndTags_1[presentingView.sharedTransitionTag];
72
- snapshot = UIImageView.alloc().init();
73
- if (!(pageEndProps === null || pageEndProps === void 0 ? void 0 : pageEndProps.callback)) return [3 /*break*/, 2];
74
- return [4 /*yield*/, (pageEndProps === null || pageEndProps === void 0 ? void 0 : pageEndProps.callback(presentedView, 'present'))];
75
- case 1:
76
- _b.sent();
77
- _b.label = 2;
78
- case 2:
79
- // treat images differently...
80
- if (presentedSharedElement instanceof UIImageView) {
81
- // in case the image is loaded async, we need to update the snapshot when it changes
82
- // todo: remove listener on transition end
83
- presentedView.on('imageSourceChange', function () {
84
- snapshot.image = iOSUtils.snapshotView(presentedSharedElement, Screen.mainScreen.scale);
85
- snapshot.tintColor = presentedSharedElement.tintColor;
86
- });
87
- snapshot.tintColor = presentedSharedElement.tintColor;
88
- snapshot.contentMode = presentedSharedElement.contentMode;
89
- }
90
- iOSUtils.copyLayerProperties(snapshot, presentingSharedElement, pageEndProps === null || pageEndProps === void 0 ? void 0 : pageEndProps.propertiesToMatch);
91
- snapshot.clipsToBounds = true;
92
- startFrame_1 = presentingSharedElement.convertRectToView(presentingSharedElement.bounds, transitionContext.containerView);
93
- endFrame = presentedSharedElement.convertRectToView(presentedSharedElement.bounds, transitionContext.containerView);
94
- snapshot.frame = startFrame_1;
95
- if (SharedTransition.DEBUG) {
96
- console.log('---> ', presentingView.sharedTransitionTag, ' frame:', iOSUtils.printCGRect(snapshot.frame));
97
- }
98
- transition.sharedElements.presenting.push({
99
- view: presentingView,
100
- startFrame: startFrame_1,
101
- endFrame: endFrame,
102
- snapshot: snapshot,
103
- startOpacity: presentingView.opacity,
104
- endOpacity: isNumber(pageEndProps === null || pageEndProps === void 0 ? void 0 : pageEndProps.opacity) ? pageEndProps.opacity : presentedView.opacity,
105
- propertiesToMatch: pageEndProps === null || pageEndProps === void 0 ? void 0 : pageEndProps.propertiesToMatch,
106
- zIndex: isNumber(pageEndProps === null || pageEndProps === void 0 ? void 0 : pageEndProps.zIndex) ? pageEndProps.zIndex : 0,
107
- });
108
- transition.sharedElements.presented.push({
109
- view: presentedView,
110
- startFrame: endFrame,
111
- endFrame: startFrame_1,
112
- startOpacity: presentedView.opacity,
113
- endOpacity: presentingView.opacity,
114
- propertiesToMatch: pageEndProps === null || pageEndProps === void 0 ? void 0 : pageEndProps.propertiesToMatch,
115
- });
116
- // set initial opacity to match the source view opacity
117
- snapshot.alpha = presentingView.opacity;
118
- // hide both while animating within the transition context
119
- presentingView.opacity = 0;
120
- presentedView.opacity = 0;
121
- return [2 /*return*/];
122
- }
123
- });
124
- };
125
- _i = 0, sharedElements_2 = sharedElements_1;
126
- _a.label = 1;
127
- case 1:
128
- if (!(_i < sharedElements_2.length)) return [3 /*break*/, 4];
129
- presentingView = sharedElements_2[_i];
130
- return [5 /*yield**/, _loop_2(presentingView)];
131
- case 2:
132
- _a.sent();
133
- _a.label = 3;
134
- case 3:
135
- _i++;
136
- return [3 /*break*/, 1];
137
- case 4: return [2 /*return*/];
138
- }
139
- });
140
- }); };
141
- positionIndependentTags = function () { return __awaiter(_this, void 0, void 0, function () {
142
- var _loop_3, _a, _b, _c, _i, tag, state_1;
143
- return __generator(this, function (_d) {
144
- switch (_d.label) {
145
- case 0:
146
- _loop_3 = function (tag) {
147
- var pageStartIndependentProps, pageEndProps, independentView, isPresented, independentSharedElement, snapshot, startFrame_2, startFrameRect, startFrameAdjusted, endFrameRect, endFrame;
148
- return __generator(this, function (_e) {
149
- switch (_e.label) {
150
- case 0:
151
- if (!!sharedElementTags_1.includes(tag)) return [3 /*break*/, 3];
152
- pageStartIndependentProps = (pageStart_1 === null || pageStart_1 === void 0 ? void 0 : pageStart_1.sharedTransitionTags) ? pageStart_1 === null || pageStart_1 === void 0 ? void 0 : pageStart_1.sharedTransitionTags[tag] : null;
153
- pageEndProps = pageEndTags_1[tag];
154
- independentView = presenting_1.find(function (v) { return v.sharedTransitionTag === tag; });
155
- isPresented = false;
156
- if (!independentView) {
157
- independentView = presented_1.find(function (v) { return v.sharedTransitionTag === tag; });
158
- if (!independentView) {
159
- return [2 /*return*/, "break"];
160
- }
161
- isPresented = true;
162
- }
163
- independentSharedElement = independentView.ios;
164
- if (!(pageEndProps === null || pageEndProps === void 0 ? void 0 : pageEndProps.callback)) return [3 /*break*/, 2];
165
- return [4 /*yield*/, (pageEndProps === null || pageEndProps === void 0 ? void 0 : pageEndProps.callback(independentView, 'present'))];
166
- case 1:
167
- _e.sent();
168
- _e.label = 2;
169
- case 2:
170
- snapshot = UIImageView.alloc().initWithImage(iOSUtils.snapshotView(independentSharedElement, Screen.mainScreen.scale));
171
- // }
172
- if (independentSharedElement instanceof UIImageView) {
173
- // in case the image is loaded async, we need to update the snapshot when it changes
174
- // todo: remove listener on transition end
175
- // if (isPresented) {
176
- // independentView.on('imageSourceChange', () => {
177
- // snapshot.image = iOSNativeHelper.snapshotView(independentSharedElement, Screen.mainScreen.scale);
178
- // snapshot.tintColor = independentSharedElement.tintColor;
179
- // });
180
- // }
181
- snapshot.tintColor = independentSharedElement.tintColor;
182
- snapshot.contentMode = independentSharedElement.contentMode;
183
- }
184
- snapshot.clipsToBounds = true;
185
- startFrame_2 = independentSharedElement.convertRectToView(independentSharedElement.bounds, transitionContext.containerView);
186
- startFrameRect = getRectFromProps(pageStartIndependentProps);
187
- startFrameAdjusted = CGRectMake(startFrame_2.origin.x + startFrameRect.x, startFrame_2.origin.y + startFrameRect.y, startFrame_2.size.width, startFrame_2.size.height);
188
- // console.log('startFrameAdjusted:', tag, iOSNativeHelper.printCGRect(startFrameAdjusted));
189
- // if (pageStartIndependentProps?.scale) {
190
- // snapshot.transform = CGAffineTransformConcat(CGAffineTransformMakeTranslation(startFrameAdjusted.origin.x, startFrameAdjusted.origin.y), CGAffineTransformMakeScale(pageStartIndependentProps.scale.x, pageStartIndependentProps.scale.y))
191
- // } else {
192
- snapshot.frame = startFrame_2; //startFrameAdjusted;
193
- // }
194
- if (SharedTransition.DEBUG) {
195
- console.log('---> ', independentView.sharedTransitionTag, ' frame:', iOSUtils.printCGRect(snapshot.frame));
196
- }
197
- endFrameRect = getRectFromProps(pageEndProps);
198
- endFrame = CGRectMake(startFrame_2.origin.x + endFrameRect.x, startFrame_2.origin.y + endFrameRect.y, startFrame_2.size.width, startFrame_2.size.height);
199
- // console.log('endFrame:', tag, iOSNativeHelper.printCGRect(endFrame));
200
- transition.sharedElements.independent.push({
201
- view: independentView,
202
- isPresented: isPresented,
203
- startFrame: startFrame_2,
204
- snapshot: snapshot,
205
- endFrame: endFrame,
206
- startTransform: independentSharedElement.transform,
207
- scale: pageEndProps.scale,
208
- startOpacity: independentView.opacity,
209
- endOpacity: isNumber(pageEndProps.opacity) ? pageEndProps.opacity : 0,
210
- propertiesToMatch: pageEndProps === null || pageEndProps === void 0 ? void 0 : pageEndProps.propertiesToMatch,
211
- zIndex: isNumber(pageEndProps === null || pageEndProps === void 0 ? void 0 : pageEndProps.zIndex) ? pageEndProps.zIndex : 0,
212
- });
213
- independentView.opacity = 0;
214
- _e.label = 3;
215
- case 3: return [2 /*return*/];
216
- }
217
- });
218
- };
219
- _a = pageEndTags_1;
220
- _b = [];
221
- for (_c in _a)
222
- _b.push(_c);
223
- _i = 0;
224
- _d.label = 1;
225
- case 1:
226
- if (!(_i < _b.length)) return [3 /*break*/, 4];
227
- _c = _b[_i];
228
- if (!(_c in _a)) return [3 /*break*/, 3];
229
- tag = _c;
230
- return [5 /*yield**/, _loop_3(tag)];
231
- case 2:
232
- state_1 = _d.sent();
233
- if (state_1 === "break")
234
- return [3 /*break*/, 4];
235
- _d.label = 3;
236
- case 3:
237
- _i++;
238
- return [3 /*break*/, 1];
239
- case 4: return [2 /*return*/];
240
- }
241
- });
242
- }); };
243
- // position all sharedTransitionTag elements
244
- return [4 /*yield*/, positionSharedTags()];
245
- case 2:
246
- // position all sharedTransitionTag elements
247
- _h.sent();
248
- return [4 /*yield*/, positionIndependentTags()];
249
- case 3:
250
- _h.sent();
251
- snapshotData = transition.sharedElements.presenting.concat(transition.sharedElements.independent);
252
- snapshotData.sort(function (a, b) { return (a.zIndex > b.zIndex ? 1 : -1); });
253
- if (SharedTransition.DEBUG) {
254
- console.log("zIndex settings:", snapshotData.map(function (s) {
255
- return {
256
- sharedTransitionTag: s.view.sharedTransitionTag,
257
- zIndex: s.zIndex,
258
- };
259
- }));
260
- }
261
- for (_i = 0, snapshotData_1 = snapshotData; _i < snapshotData_1.length; _i++) {
262
- data = snapshotData_1[_i];
263
- // add snapshot to animate
264
- transitionContext.containerView.addSubview(data.snapshot);
265
- }
266
- // Important: always set after above shared element positions have had their start positions set
267
- transition.presented.view.alpha = isNumber(pageStart_1 === null || pageStart_1 === void 0 ? void 0 : pageStart_1.opacity) ? pageStart_1 === null || pageStart_1 === void 0 ? void 0 : pageStart_1.opacity : 0;
268
- transition.presented.view.frame = CGRectMake(startFrame.x, startFrame.y, startFrame.width, startFrame.height);
269
- cleanupPresent_1 = function () {
270
- for (var _i = 0, _a = transition.sharedElements.presented; _i < _a.length; _i++) {
271
- var presented_2 = _a[_i];
272
- presented_2.view.opacity = presented_2.startOpacity;
6
+ export class SharedTransitionHelper {
7
+ static animate(state, transitionContext, type) {
8
+ const transition = state.instance;
9
+ setTimeout(async () => {
10
+ // Run on next tick
11
+ // ensures that existing UI state finishes before snapshotting
12
+ // (eg, button touch up state)
13
+ switch (state.activeType) {
14
+ case SharedTransitionAnimationType.present: {
15
+ // console.log('-- Transition present --');
16
+ SharedTransition.notifyEvent(SharedTransition.startedEvent, {
17
+ id: transition.id,
18
+ type,
19
+ action: 'present',
20
+ });
21
+ if (type === 'modal') {
22
+ transitionContext.containerView.addSubview(transition.presented.view);
23
+ }
24
+ else if (type === 'page') {
25
+ transitionContext.containerView.insertSubviewAboveSubview(transition.presented.view, transition.presenting.view);
26
+ }
27
+ transition.presented.view.layoutIfNeeded();
28
+ const { sharedElements, presented, presenting } = SharedTransition.getSharedElements(state.page, state.toPage);
29
+ const sharedElementTags = sharedElements.map((v) => v.sharedTransitionTag);
30
+ if (!transition.sharedElements) {
31
+ transition.sharedElements = {
32
+ presented: [],
33
+ presenting: [],
34
+ independent: [],
35
+ };
36
+ }
37
+ if (SharedTransition.DEBUG) {
38
+ console.log(` ${type}: Present`);
39
+ console.log(`1. Found sharedTransitionTags to animate:`, sharedElementTags);
40
+ console.log(`2. Take snapshots of shared elements and position them based on presenting view:`);
41
+ }
42
+ const pageOut = state.pageOut;
43
+ const pageStart = state.pageStart;
44
+ const startFrame = getRectFromProps(pageStart, getPageStartDefaultsForType(type));
45
+ const pageEnd = state.pageEnd;
46
+ const pageEndTags = pageEnd?.sharedTransitionTags || {};
47
+ // console.log('pageEndIndependentTags:', pageEndIndependentTags);
48
+ const positionSharedTags = async () => {
49
+ for (const presentingView of sharedElements) {
50
+ const presentingSharedElement = presentingView.ios;
51
+ // console.log('fromTarget instanceof UIImageView:', fromTarget instanceof UIImageView)
52
+ // TODO: discuss whether we should check if UIImage/UIImageView type to always snapshot images or if other view types could be duped/added vs. snapshotted
53
+ // Note: snapshot may be most efficient/simple
54
+ // console.log('---> ', presentingView.sharedTransitionTag, ': ', presentingSharedElement)
55
+ const presentedView = presented.find((v) => v.sharedTransitionTag === presentingView.sharedTransitionTag);
56
+ const presentedSharedElement = presentedView.ios;
57
+ const pageEndProps = pageEndTags[presentingView.sharedTransitionTag];
58
+ const snapshot = UIImageView.alloc().init();
59
+ if (pageEndProps?.callback) {
60
+ await pageEndProps?.callback(presentedView, 'present');
273
61
  }
274
- for (var _b = 0, _c = transition.sharedElements.presenting; _b < _c.length; _b++) {
275
- var presenting_2 = _c[_b];
276
- presenting_2.snapshot.removeFromSuperview();
62
+ // treat images differently...
63
+ if (presentedSharedElement instanceof UIImageView) {
64
+ // in case the image is loaded async, we need to update the snapshot when it changes
65
+ // todo: remove listener on transition end
66
+ presentedView.on('imageSourceChange', () => {
67
+ snapshot.image = iOSUtils.snapshotView(presentedSharedElement, Screen.mainScreen.scale);
68
+ snapshot.tintColor = presentedSharedElement.tintColor;
69
+ });
70
+ snapshot.tintColor = presentedSharedElement.tintColor;
71
+ snapshot.contentMode = presentedSharedElement.contentMode;
277
72
  }
278
- for (var _d = 0, _e = transition.sharedElements.independent; _d < _e.length; _d++) {
279
- var independent = _e[_d];
280
- independent.snapshot.removeFromSuperview();
281
- if (independent.isPresented) {
282
- independent.view.opacity = independent.startOpacity;
283
- }
73
+ iOSUtils.copyLayerProperties(snapshot, presentingSharedElement, pageEndProps?.propertiesToMatch);
74
+ snapshot.clipsToBounds = true;
75
+ // console.log('---> snapshot: ', snapshot);
76
+ const startFrame = presentingSharedElement.convertRectToView(presentingSharedElement.bounds, transitionContext.containerView);
77
+ const endFrame = presentedSharedElement.convertRectToView(presentedSharedElement.bounds, transitionContext.containerView);
78
+ snapshot.frame = startFrame;
79
+ if (SharedTransition.DEBUG) {
80
+ console.log('---> ', presentingView.sharedTransitionTag, ' frame:', iOSUtils.printCGRect(snapshot.frame));
284
81
  }
285
- SharedTransition.updateState(transition.id, {
286
- activeType: SharedTransitionAnimationType.dismiss,
82
+ transition.sharedElements.presenting.push({
83
+ view: presentingView,
84
+ startFrame,
85
+ endFrame,
86
+ snapshot,
87
+ startOpacity: presentingView.opacity,
88
+ endOpacity: isNumber(pageEndProps?.opacity) ? pageEndProps.opacity : presentedView.opacity,
89
+ propertiesToMatch: pageEndProps?.propertiesToMatch,
90
+ zIndex: isNumber(pageEndProps?.zIndex) ? pageEndProps.zIndex : 0,
287
91
  });
288
- if (type === 'page') {
289
- transition.presenting.view.removeFromSuperview();
290
- }
291
- transitionContext.completeTransition(true);
292
- SharedTransition.notifyEvent(SharedTransition.finishedEvent, {
293
- id: transition.id,
294
- type: type,
295
- action: 'present',
92
+ transition.sharedElements.presented.push({
93
+ view: presentedView,
94
+ startFrame: endFrame,
95
+ endFrame: startFrame,
96
+ startOpacity: presentedView.opacity,
97
+ endOpacity: presentingView.opacity,
98
+ propertiesToMatch: pageEndProps?.propertiesToMatch,
296
99
  });
297
- };
298
- animateProperties_1 = function () {
299
- if (SharedTransition.DEBUG) {
300
- console.log('3. Animating shared elements:');
301
- }
302
- transition.presented.view.alpha = isNumber(pageEnd_1 === null || pageEnd_1 === void 0 ? void 0 : pageEnd_1.opacity) ? pageEnd_1 === null || pageEnd_1 === void 0 ? void 0 : pageEnd_1.opacity : 1;
303
- var endFrame = getRectFromProps(pageEnd_1);
304
- transition.presented.view.frame = CGRectMake(endFrame.x, endFrame.y, endFrame.width, endFrame.height);
305
- if (pageOut_1) {
306
- if (isNumber(pageOut_1.opacity)) {
307
- transition.presenting.view.alpha = pageOut_1 === null || pageOut_1 === void 0 ? void 0 : pageOut_1.opacity;
100
+ // set initial opacity to match the source view opacity
101
+ snapshot.alpha = presentingView.opacity;
102
+ // hide both while animating within the transition context
103
+ presentingView.opacity = 0;
104
+ presentedView.opacity = 0;
105
+ }
106
+ };
107
+ const positionIndependentTags = async () => {
108
+ // independent tags
109
+ for (const tag in pageEndTags) {
110
+ // only handle if independent (otherwise it's shared between both pages and handled above)
111
+ if (!sharedElementTags.includes(tag)) {
112
+ // only consider start when there's a matching end
113
+ const pageStartIndependentProps = pageStart?.sharedTransitionTags ? pageStart?.sharedTransitionTags[tag] : null;
114
+ // console.log('start:', tag, pageStartIndependentProps);
115
+ const pageEndProps = pageEndTags[tag];
116
+ let independentView = presenting.find((v) => v.sharedTransitionTag === tag);
117
+ let isPresented = false;
118
+ if (!independentView) {
119
+ independentView = presented.find((v) => v.sharedTransitionTag === tag);
120
+ if (!independentView) {
121
+ break;
122
+ }
123
+ isPresented = true;
308
124
  }
309
- var outFrame = getRectFromProps(pageOut_1);
310
- transition.presenting.view.frame = CGRectMake(outFrame.x, outFrame.y, outFrame.width, outFrame.height);
311
- }
312
- var _loop_4 = function (presented_3) {
313
- var presentingMatch = transition.sharedElements.presenting.find(function (v) { return v.view.sharedTransitionTag === presented_3.view.sharedTransitionTag; });
314
- // Workaround wrong origin due ongoing layout process.
315
- var updatedEndFrame = presented_3.view.ios.convertRectToView(presented_3.view.ios.bounds, transitionContext.containerView);
316
- var correctedEndFrame = CGRectMake(updatedEndFrame.origin.x, updatedEndFrame.origin.y, presentingMatch.endFrame.size.width, presentingMatch.endFrame.size.height);
317
- presentingMatch.snapshot.frame = correctedEndFrame;
318
- // apply view and layer properties to the snapshot view to match the source/presented view
319
- iOSUtils.copyLayerProperties(presentingMatch.snapshot, presented_3.view.ios, presented_3.propertiesToMatch);
320
- // create a snapshot of the presented view
321
- presentingMatch.snapshot.image = iOSUtils.snapshotView(presented_3.view.ios, Screen.mainScreen.scale);
322
- // apply correct alpha
323
- presentingMatch.snapshot.alpha = presentingMatch.endOpacity;
324
- if (SharedTransition.DEBUG) {
325
- console.log("---> ".concat(presentingMatch.view.sharedTransitionTag, " animate to: "), iOSUtils.printCGRect(correctedEndFrame));
125
+ const independentSharedElement = independentView.ios;
126
+ if (pageEndProps?.callback) {
127
+ await pageEndProps?.callback(independentView, 'present');
326
128
  }
327
- };
328
- // animate page properties to the following:
329
- // https://stackoverflow.com/a/27997678/1418981
330
- // In order to have proper layout. Seems mostly needed when presenting.
331
- // For instance during presentation, destination view doesn't account navigation bar height.
332
- // Not sure if best to leave all the time?
333
- // owner.presented.view.setNeedsLayout();
334
- // owner.presented.view.layoutIfNeeded();
335
- for (var _i = 0, _a = transition.sharedElements.presented; _i < _a.length; _i++) {
336
- var presented_3 = _a[_i];
337
- _loop_4(presented_3);
338
- }
339
- for (var _b = 0, _c = transition.sharedElements.independent; _b < _c.length; _b++) {
340
- var independent = _c[_b];
341
- var endFrame_1 = independent.endFrame;
342
- // if (independent.isPresented) {
343
- // const updatedEndFrame = independent.view.ios.convertRectToView(independent.view.ios.bounds, transitionContext.containerView);
344
- // endFrame = CGRectMake(updatedEndFrame.origin.x, updatedEndFrame.origin.y, independent.endFrame.size.width, independent.endFrame.size.height);
129
+ // let snapshot: UIImageView;
130
+ // if (isPresented) {
131
+ // snapshot = UIImageView.alloc().init();
132
+ // } else {
133
+ const snapshot = UIImageView.alloc().initWithImage(iOSUtils.snapshotView(independentSharedElement, Screen.mainScreen.scale));
345
134
  // }
346
- if (independent.scale) {
347
- independent.snapshot.transform = CGAffineTransformConcat(CGAffineTransformMakeTranslation(endFrame_1.origin.x, endFrame_1.origin.y), CGAffineTransformMakeScale(independent.scale.x, independent.scale.y));
135
+ if (independentSharedElement instanceof UIImageView) {
136
+ // in case the image is loaded async, we need to update the snapshot when it changes
137
+ // todo: remove listener on transition end
138
+ // if (isPresented) {
139
+ // independentView.on('imageSourceChange', () => {
140
+ // snapshot.image = iOSNativeHelper.snapshotView(independentSharedElement, Screen.mainScreen.scale);
141
+ // snapshot.tintColor = independentSharedElement.tintColor;
142
+ // });
143
+ // }
144
+ snapshot.tintColor = independentSharedElement.tintColor;
145
+ snapshot.contentMode = independentSharedElement.contentMode;
348
146
  }
349
- else {
350
- independent.snapshot.frame = endFrame_1;
351
- }
352
- independent.snapshot.alpha = independent.endOpacity;
147
+ snapshot.clipsToBounds = true;
148
+ const startFrame = independentSharedElement.convertRectToView(independentSharedElement.bounds, transitionContext.containerView);
149
+ const startFrameRect = getRectFromProps(pageStartIndependentProps);
150
+ // adjust for any specified start positions
151
+ const startFrameAdjusted = CGRectMake(startFrame.origin.x + startFrameRect.x, startFrame.origin.y + startFrameRect.y, startFrame.size.width, startFrame.size.height);
152
+ // console.log('startFrameAdjusted:', tag, iOSNativeHelper.printCGRect(startFrameAdjusted));
153
+ // if (pageStartIndependentProps?.scale) {
154
+ // snapshot.transform = CGAffineTransformConcat(CGAffineTransformMakeTranslation(startFrameAdjusted.origin.x, startFrameAdjusted.origin.y), CGAffineTransformMakeScale(pageStartIndependentProps.scale.x, pageStartIndependentProps.scale.y))
155
+ // } else {
156
+ snapshot.frame = startFrame; //startFrameAdjusted;
157
+ // }
353
158
  if (SharedTransition.DEBUG) {
354
- console.log("---> ".concat(independent.view.sharedTransitionTag, " animate to: "), iOSUtils.printCGRect(independent.endFrame));
159
+ console.log('---> ', independentView.sharedTransitionTag, ' frame:', iOSUtils.printCGRect(snapshot.frame));
355
160
  }
161
+ const endFrameRect = getRectFromProps(pageEndProps);
162
+ const endFrame = CGRectMake(startFrame.origin.x + endFrameRect.x, startFrame.origin.y + endFrameRect.y, startFrame.size.width, startFrame.size.height);
163
+ // console.log('endFrame:', tag, iOSNativeHelper.printCGRect(endFrame));
164
+ transition.sharedElements.independent.push({
165
+ view: independentView,
166
+ isPresented,
167
+ startFrame,
168
+ snapshot,
169
+ endFrame,
170
+ startTransform: independentSharedElement.transform,
171
+ scale: pageEndProps.scale,
172
+ startOpacity: independentView.opacity,
173
+ endOpacity: isNumber(pageEndProps.opacity) ? pageEndProps.opacity : 0,
174
+ propertiesToMatch: pageEndProps?.propertiesToMatch,
175
+ zIndex: isNumber(pageEndProps?.zIndex) ? pageEndProps.zIndex : 0,
176
+ });
177
+ independentView.opacity = 0;
356
178
  }
357
- };
358
- if (isNumber(pageEnd_1 === null || pageEnd_1 === void 0 ? void 0 : pageEnd_1.duration)) {
359
- // override spring and use only linear animation
360
- UIView.animateWithDurationDelayOptionsAnimationsCompletion((pageEnd_1 === null || pageEnd_1 === void 0 ? void 0 : pageEnd_1.duration) / 1000, 0, 0 /* UIViewAnimationOptions.CurveEaseInOut */, function () {
361
- animateProperties_1();
362
- }, function () {
363
- cleanupPresent_1();
364
- });
365
179
  }
366
- else {
367
- iOSUtils.animateWithSpring(__assign(__assign({}, getSpringFromProps(pageEnd_1 === null || pageEnd_1 === void 0 ? void 0 : pageEnd_1.spring)), { animations: function () {
368
- animateProperties_1();
369
- }, completion: function () {
370
- cleanupPresent_1();
371
- } }));
180
+ };
181
+ // position all sharedTransitionTag elements
182
+ await positionSharedTags();
183
+ await positionIndependentTags();
184
+ // combine to order by zIndex and add to transition context
185
+ const snapshotData = transition.sharedElements.presenting.concat(transition.sharedElements.independent);
186
+ snapshotData.sort((a, b) => (a.zIndex > b.zIndex ? 1 : -1));
187
+ if (SharedTransition.DEBUG) {
188
+ console.log(`zIndex settings:`, snapshotData.map((s) => {
189
+ return {
190
+ sharedTransitionTag: s.view.sharedTransitionTag,
191
+ zIndex: s.zIndex,
192
+ };
193
+ }));
194
+ }
195
+ for (const data of snapshotData) {
196
+ // add snapshot to animate
197
+ transitionContext.containerView.addSubview(data.snapshot);
198
+ }
199
+ // Important: always set after above shared element positions have had their start positions set
200
+ transition.presented.view.alpha = isNumber(pageStart?.opacity) ? pageStart?.opacity : 0;
201
+ transition.presented.view.frame = CGRectMake(startFrame.x, startFrame.y, startFrame.width, startFrame.height);
202
+ const cleanupPresent = () => {
203
+ for (const presented of transition.sharedElements.presented) {
204
+ presented.view.opacity = presented.startOpacity;
372
205
  }
373
- return [3 /*break*/, 9];
374
- case 4:
375
- // console.log('-- Transition dismiss --');
376
- SharedTransition.notifyEvent(SharedTransition.startedEvent, {
377
- id: transition.id,
378
- type: type,
379
- action: 'dismiss',
380
- });
381
- if (type === 'page') {
382
- transitionContext.containerView.insertSubviewBelowSubview(transition.presenting.view, transition.presented.view);
206
+ for (const presenting of transition.sharedElements.presenting) {
207
+ presenting.snapshot.removeFromSuperview();
383
208
  }
384
- // console.log('transitionContext.containerView.subviews.count:', transitionContext.containerView.subviews.count);
385
- if (SharedTransition.DEBUG) {
386
- console.log(" ".concat(type, ": Dismiss"));
387
- console.log("1. Dismiss sharedTransitionTags to animate:", transition.sharedElements.presented.map(function (p) { return p.view.sharedTransitionTag; }));
388
- console.log("2. Add back previously stored sharedElements to dismiss:");
209
+ for (const independent of transition.sharedElements.independent) {
210
+ independent.snapshot.removeFromSuperview();
211
+ if (independent.isPresented) {
212
+ independent.view.opacity = independent.startOpacity;
213
+ }
389
214
  }
390
- pageOut_2 = state.pageOut;
391
- pageEnd = state.pageEnd;
392
- pageEndTags = (pageEnd === null || pageEnd === void 0 ? void 0 : pageEnd.sharedTransitionTags) || {};
393
- pageReturn_1 = state.pageReturn;
394
- for (_c = 0, _d = transition.sharedElements.presented; _c < _d.length; _c++) {
395
- p = _d[_c];
396
- p.view.opacity = 0;
215
+ SharedTransition.updateState(transition.id, {
216
+ activeType: SharedTransitionAnimationType.dismiss,
217
+ });
218
+ if (type === 'page') {
219
+ transition.presenting.view.removeFromSuperview();
397
220
  }
398
- snapshotData = transition.sharedElements.presenting.concat(transition.sharedElements.independent);
399
- snapshotData.sort(function (a, b) { return (a.zIndex > b.zIndex ? 1 : -1); });
221
+ transitionContext.completeTransition(true);
222
+ SharedTransition.notifyEvent(SharedTransition.finishedEvent, {
223
+ id: transition.id,
224
+ type,
225
+ action: 'present',
226
+ });
227
+ };
228
+ const animateProperties = () => {
400
229
  if (SharedTransition.DEBUG) {
401
- console.log("zIndex settings:", snapshotData.map(function (s) {
402
- return {
403
- sharedTransitionTag: s.view.sharedTransitionTag,
404
- zIndex: s.zIndex,
405
- };
406
- }));
230
+ console.log('3. Animating shared elements:');
407
231
  }
408
- _e = 0, snapshotData_2 = snapshotData;
409
- _h.label = 5;
410
- case 5:
411
- if (!(_e < snapshotData_2.length)) return [3 /*break*/, 8];
412
- data = snapshotData_2[_e];
413
- pageEndProps = pageEndTags[data.view.sharedTransitionTag];
414
- if (!(pageEndProps === null || pageEndProps === void 0 ? void 0 : pageEndProps.callback)) return [3 /*break*/, 7];
415
- return [4 /*yield*/, (pageEndProps === null || pageEndProps === void 0 ? void 0 : pageEndProps.callback(data.view, 'dismiss'))];
416
- case 6:
417
- _h.sent();
418
- _h.label = 7;
419
- case 7:
420
- _e++;
421
- return [3 /*break*/, 5];
422
- case 8:
423
- _loop_1 = function (data) {
424
- var view = data.view.ios;
425
- var currentAlpha = view.alpha;
426
- if (pageReturn_1 === null || pageReturn_1 === void 0 ? void 0 : pageReturn_1.useStartOpacity) {
427
- // when desired, reset the alpha to the start value so the view is visible in the snapshot
428
- view.alpha = data.startOpacity;
232
+ transition.presented.view.alpha = isNumber(pageEnd?.opacity) ? pageEnd?.opacity : 1;
233
+ const endFrame = getRectFromProps(pageEnd);
234
+ transition.presented.view.frame = CGRectMake(endFrame.x, endFrame.y, endFrame.width, endFrame.height);
235
+ if (pageOut) {
236
+ if (isNumber(pageOut.opacity)) {
237
+ transition.presenting.view.alpha = pageOut?.opacity;
429
238
  }
430
- // take a new snapshot
431
- data.snapshot.image = iOSUtils.snapshotView(view, Screen.mainScreen.scale);
432
- // find the currently visible view with the same sharedTransitionTag
433
- var fromView = (_g = transition.sharedElements.presented.find(function (p) { return p.view.sharedTransitionTag === data.view.sharedTransitionTag; })) === null || _g === void 0 ? void 0 : _g.view;
434
- if (fromView) {
435
- // match the snapshot frame to the current frame of the fromView
436
- data.snapshot.frame = fromView.ios.convertRectToView(fromView.ios.bounds, transitionContext.containerView);
239
+ const outFrame = getRectFromProps(pageOut);
240
+ transition.presenting.view.frame = CGRectMake(outFrame.x, outFrame.y, outFrame.width, outFrame.height);
241
+ }
242
+ // animate page properties to the following:
243
+ // https://stackoverflow.com/a/27997678/1418981
244
+ // In order to have proper layout. Seems mostly needed when presenting.
245
+ // For instance during presentation, destination view doesn't account navigation bar height.
246
+ // Not sure if best to leave all the time?
247
+ // owner.presented.view.setNeedsLayout();
248
+ // owner.presented.view.layoutIfNeeded();
249
+ for (const presented of transition.sharedElements.presented) {
250
+ const presentingMatch = transition.sharedElements.presenting.find((v) => v.view.sharedTransitionTag === presented.view.sharedTransitionTag);
251
+ // Workaround wrong origin due ongoing layout process.
252
+ const updatedEndFrame = presented.view.ios.convertRectToView(presented.view.ios.bounds, transitionContext.containerView);
253
+ const correctedEndFrame = CGRectMake(updatedEndFrame.origin.x, updatedEndFrame.origin.y, presentingMatch.endFrame.size.width, presentingMatch.endFrame.size.height);
254
+ presentingMatch.snapshot.frame = correctedEndFrame;
255
+ // apply view and layer properties to the snapshot view to match the source/presented view
256
+ iOSUtils.copyLayerProperties(presentingMatch.snapshot, presented.view.ios, presented.propertiesToMatch);
257
+ // create a snapshot of the presented view
258
+ presentingMatch.snapshot.image = iOSUtils.snapshotView(presented.view.ios, Screen.mainScreen.scale);
259
+ // apply correct alpha
260
+ presentingMatch.snapshot.alpha = presentingMatch.endOpacity;
261
+ if (SharedTransition.DEBUG) {
262
+ console.log(`---> ${presentingMatch.view.sharedTransitionTag} animate to: `, iOSUtils.printCGRect(correctedEndFrame));
437
263
  }
438
- // snapshot has been taken, we can restore the alpha
439
- view.alpha = currentAlpha;
440
- // we recalculate the startFrame because the view might have changed its position in the background
441
- data.startFrame = view.convertRectToView(view.bounds, transitionContext.containerView);
442
- // add snapshot to animate
443
- transitionContext.containerView.addSubview(data.snapshot);
444
- };
445
- // now that all the callbacks had their chance to run, we can take the snapshots
446
- for (_f = 0, snapshotData_3 = snapshotData; _f < snapshotData_3.length; _f++) {
447
- data = snapshotData_3[_f];
448
- _loop_1(data);
449
264
  }
450
- cleanupDismiss_1 = function () {
451
- for (var _i = 0, _a = transition.sharedElements.presenting; _i < _a.length; _i++) {
452
- var presenting = _a[_i];
453
- presenting.view.opacity = presenting.startOpacity;
454
- presenting.snapshot.removeFromSuperview();
265
+ for (const independent of transition.sharedElements.independent) {
266
+ const endFrame = independent.endFrame;
267
+ // if (independent.isPresented) {
268
+ // const updatedEndFrame = independent.view.ios.convertRectToView(independent.view.ios.bounds, transitionContext.containerView);
269
+ // endFrame = CGRectMake(updatedEndFrame.origin.x, updatedEndFrame.origin.y, independent.endFrame.size.width, independent.endFrame.size.height);
270
+ // }
271
+ if (independent.scale) {
272
+ independent.snapshot.transform = CGAffineTransformConcat(CGAffineTransformMakeTranslation(endFrame.origin.x, endFrame.origin.y), CGAffineTransformMakeScale(independent.scale.x, independent.scale.y));
455
273
  }
456
- for (var _b = 0, _c = transition.sharedElements.independent; _b < _c.length; _b++) {
457
- var independent = _c[_b];
458
- independent.view.opacity = independent.startOpacity;
459
- independent.snapshot.removeFromSuperview();
274
+ else {
275
+ independent.snapshot.frame = endFrame;
460
276
  }
461
- SharedTransition.finishState(transition.id);
462
- transition.sharedElements = null;
463
- transitionContext.completeTransition(true);
464
- SharedTransition.notifyEvent(SharedTransition.finishedEvent, {
465
- id: transition.id,
466
- type: type,
467
- action: 'dismiss',
468
- });
469
- };
470
- animateProperties_2 = function () {
277
+ independent.snapshot.alpha = independent.endOpacity;
278
+ if (SharedTransition.DEBUG) {
279
+ console.log(`---> ${independent.view.sharedTransitionTag} animate to: `, iOSUtils.printCGRect(independent.endFrame));
280
+ }
281
+ }
282
+ };
283
+ if (isNumber(pageEnd?.duration)) {
284
+ // override spring and use only linear animation
285
+ UIView.animateWithDurationDelayOptionsAnimationsCompletion(pageEnd?.duration / 1000, 0, 0 /* UIViewAnimationOptions.CurveEaseInOut */, () => {
286
+ animateProperties();
287
+ }, () => {
288
+ cleanupPresent();
289
+ });
290
+ }
291
+ else {
292
+ iOSUtils.animateWithSpring({
293
+ ...getSpringFromProps(pageEnd?.spring),
294
+ animations: () => {
295
+ animateProperties();
296
+ },
297
+ completion: () => {
298
+ cleanupPresent();
299
+ },
300
+ });
301
+ }
302
+ break;
303
+ }
304
+ case SharedTransitionAnimationType.dismiss: {
305
+ // console.log('-- Transition dismiss --');
306
+ SharedTransition.notifyEvent(SharedTransition.startedEvent, {
307
+ id: transition.id,
308
+ type,
309
+ action: 'dismiss',
310
+ });
311
+ if (type === 'page') {
312
+ transitionContext.containerView.insertSubviewBelowSubview(transition.presenting.view, transition.presented.view);
313
+ }
314
+ // console.log('transitionContext.containerView.subviews.count:', transitionContext.containerView.subviews.count);
315
+ if (SharedTransition.DEBUG) {
316
+ console.log(` ${type}: Dismiss`);
317
+ console.log(`1. Dismiss sharedTransitionTags to animate:`, transition.sharedElements.presented.map((p) => p.view.sharedTransitionTag));
318
+ console.log(`2. Add back previously stored sharedElements to dismiss:`);
319
+ }
320
+ const pageOut = state.pageOut;
321
+ const pageEnd = state.pageEnd;
322
+ const pageEndTags = pageEnd?.sharedTransitionTags || {};
323
+ const pageReturn = state.pageReturn;
324
+ for (const p of transition.sharedElements.presented) {
325
+ p.view.opacity = 0;
326
+ }
327
+ // combine to order by zIndex and add to transition context
328
+ const snapshotData = transition.sharedElements.presenting.concat(transition.sharedElements.independent);
329
+ snapshotData.sort((a, b) => (a.zIndex > b.zIndex ? 1 : -1));
330
+ if (SharedTransition.DEBUG) {
331
+ console.log(`zIndex settings:`, snapshotData.map((s) => {
332
+ return {
333
+ sharedTransitionTag: s.view.sharedTransitionTag,
334
+ zIndex: s.zIndex,
335
+ };
336
+ }));
337
+ }
338
+ // first loop through all the shared elements and fire the callback
339
+ for (const data of snapshotData) {
340
+ const pageEndProps = pageEndTags[data.view.sharedTransitionTag];
341
+ if (pageEndProps?.callback) {
342
+ await pageEndProps?.callback(data.view, 'dismiss');
343
+ }
344
+ }
345
+ // now that all the callbacks had their chance to run, we can take the snapshots
346
+ for (const data of snapshotData) {
347
+ const view = data.view.ios;
348
+ const currentAlpha = view.alpha;
349
+ if (pageReturn?.useStartOpacity) {
350
+ // when desired, reset the alpha to the start value so the view is visible in the snapshot
351
+ view.alpha = data.startOpacity;
352
+ }
353
+ // take a new snapshot
354
+ data.snapshot.image = iOSUtils.snapshotView(view, Screen.mainScreen.scale);
355
+ // find the currently visible view with the same sharedTransitionTag
356
+ const fromView = transition.sharedElements.presented.find((p) => p.view.sharedTransitionTag === data.view.sharedTransitionTag)?.view;
357
+ if (fromView) {
358
+ // match the snapshot frame to the current frame of the fromView
359
+ data.snapshot.frame = fromView.ios.convertRectToView(fromView.ios.bounds, transitionContext.containerView);
360
+ }
361
+ // snapshot has been taken, we can restore the alpha
362
+ view.alpha = currentAlpha;
363
+ // we recalculate the startFrame because the view might have changed its position in the background
364
+ data.startFrame = view.convertRectToView(view.bounds, transitionContext.containerView);
365
+ // add snapshot to animate
366
+ transitionContext.containerView.addSubview(data.snapshot);
367
+ }
368
+ const cleanupDismiss = () => {
369
+ for (const presenting of transition.sharedElements.presenting) {
370
+ presenting.view.opacity = presenting.startOpacity;
371
+ presenting.snapshot.removeFromSuperview();
372
+ }
373
+ for (const independent of transition.sharedElements.independent) {
374
+ independent.view.opacity = independent.startOpacity;
375
+ independent.snapshot.removeFromSuperview();
376
+ }
377
+ SharedTransition.finishState(transition.id);
378
+ transition.sharedElements = null;
379
+ transitionContext.completeTransition(true);
380
+ SharedTransition.notifyEvent(SharedTransition.finishedEvent, {
381
+ id: transition.id,
382
+ type,
383
+ action: 'dismiss',
384
+ });
385
+ };
386
+ const animateProperties = () => {
387
+ if (SharedTransition.DEBUG) {
388
+ console.log('3. Dismissing shared elements:');
389
+ }
390
+ transition.presented.view.alpha = isNumber(pageReturn?.opacity) ? pageReturn?.opacity : 0;
391
+ const endFrame = getRectFromProps(pageReturn, getPageStartDefaultsForType(type));
392
+ transition.presented.view.frame = CGRectMake(endFrame.x, endFrame.y, endFrame.width, endFrame.height);
393
+ if (pageOut) {
394
+ // always return to defaults if pageOut had been used
395
+ transition.presenting.view.alpha = 1;
396
+ const outFrame = getRectFromProps(null);
397
+ transition.presenting.view.frame = CGRectMake(0, 0, outFrame.width, outFrame.height);
398
+ }
399
+ for (const presenting of transition.sharedElements.presenting) {
400
+ iOSUtils.copyLayerProperties(presenting.snapshot, presenting.view.ios, presenting.propertiesToMatch);
401
+ presenting.snapshot.frame = presenting.startFrame;
402
+ presenting.snapshot.alpha = presenting.startOpacity;
471
403
  if (SharedTransition.DEBUG) {
472
- console.log('3. Dismissing shared elements:');
404
+ console.log(`---> ${presenting.view.sharedTransitionTag} animate to: `, iOSUtils.printCGRect(presenting.snapshot.frame));
473
405
  }
474
- transition.presented.view.alpha = isNumber(pageReturn_1 === null || pageReturn_1 === void 0 ? void 0 : pageReturn_1.opacity) ? pageReturn_1 === null || pageReturn_1 === void 0 ? void 0 : pageReturn_1.opacity : 0;
475
- var endFrame = getRectFromProps(pageReturn_1, getPageStartDefaultsForType(type));
476
- transition.presented.view.frame = CGRectMake(endFrame.x, endFrame.y, endFrame.width, endFrame.height);
477
- if (pageOut_2) {
478
- // always return to defaults if pageOut had been used
479
- transition.presenting.view.alpha = 1;
480
- var outFrame = getRectFromProps(null);
481
- transition.presenting.view.frame = CGRectMake(0, 0, outFrame.width, outFrame.height);
406
+ }
407
+ for (const independent of transition.sharedElements.independent) {
408
+ independent.snapshot.alpha = independent.startOpacity;
409
+ if (independent.scale) {
410
+ independent.snapshot.transform = independent.startTransform;
482
411
  }
483
- for (var _i = 0, _a = transition.sharedElements.presenting; _i < _a.length; _i++) {
484
- var presenting = _a[_i];
485
- iOSUtils.copyLayerProperties(presenting.snapshot, presenting.view.ios, presenting.propertiesToMatch);
486
- presenting.snapshot.frame = presenting.startFrame;
487
- presenting.snapshot.alpha = presenting.startOpacity;
488
- if (SharedTransition.DEBUG) {
489
- console.log("---> ".concat(presenting.view.sharedTransitionTag, " animate to: "), iOSUtils.printCGRect(presenting.snapshot.frame));
490
- }
412
+ else {
413
+ independent.snapshot.frame = independent.startFrame;
491
414
  }
492
- for (var _b = 0, _c = transition.sharedElements.independent; _b < _c.length; _b++) {
493
- var independent = _c[_b];
494
- independent.snapshot.alpha = independent.startOpacity;
495
- if (independent.scale) {
496
- independent.snapshot.transform = independent.startTransform;
497
- }
498
- else {
499
- independent.snapshot.frame = independent.startFrame;
500
- }
501
- if (SharedTransition.DEBUG) {
502
- console.log("---> ".concat(independent.view.sharedTransitionTag, " animate to: "), iOSUtils.printCGRect(independent.snapshot.frame));
503
- }
415
+ if (SharedTransition.DEBUG) {
416
+ console.log(`---> ${independent.view.sharedTransitionTag} animate to: `, iOSUtils.printCGRect(independent.snapshot.frame));
504
417
  }
505
- };
506
- if (isNumber(pageReturn_1 === null || pageReturn_1 === void 0 ? void 0 : pageReturn_1.duration)) {
507
- // override spring and use only linear animation
508
- UIView.animateWithDurationDelayOptionsAnimationsCompletion((pageReturn_1 === null || pageReturn_1 === void 0 ? void 0 : pageReturn_1.duration) / 1000, 0, 0 /* UIViewAnimationOptions.CurveEaseInOut */, function () {
509
- animateProperties_2();
510
- }, function () {
511
- cleanupDismiss_1();
512
- });
513
418
  }
514
- else {
515
- iOSUtils.animateWithSpring(__assign(__assign({}, getSpringFromProps(pageReturn_1 === null || pageReturn_1 === void 0 ? void 0 : pageReturn_1.spring)), { animations: function () {
516
- animateProperties_2();
517
- }, completion: function () {
518
- cleanupDismiss_1();
519
- } }));
520
- }
521
- return [3 /*break*/, 9];
522
- case 9: return [2 /*return*/];
419
+ };
420
+ if (isNumber(pageReturn?.duration)) {
421
+ // override spring and use only linear animation
422
+ UIView.animateWithDurationDelayOptionsAnimationsCompletion(pageReturn?.duration / 1000, 0, 0 /* UIViewAnimationOptions.CurveEaseInOut */, () => {
423
+ animateProperties();
424
+ }, () => {
425
+ cleanupDismiss();
426
+ });
427
+ }
428
+ else {
429
+ iOSUtils.animateWithSpring({
430
+ ...getSpringFromProps(pageReturn?.spring),
431
+ animations: () => {
432
+ animateProperties();
433
+ },
434
+ completion: () => {
435
+ cleanupDismiss();
436
+ },
437
+ });
438
+ }
439
+ break;
523
440
  }
524
- });
525
- }); });
526
- };
527
- SharedTransitionHelper.interactiveStart = function (state, interactiveState, type) {
441
+ }
442
+ });
443
+ }
444
+ static interactiveStart(state, interactiveState, type) {
528
445
  SharedTransition.notifyEvent(SharedTransition.startedEvent, {
529
446
  id: state.instance.id,
530
- type: type,
447
+ type,
531
448
  action: 'interactiveStart',
532
449
  });
533
450
  switch (type) {
@@ -535,57 +452,48 @@ var SharedTransitionHelper = /** @class */ (function () {
535
452
  interactiveState.transitionContext.containerView.insertSubviewBelowSubview(state.instance.presenting.view, state.instance.presented.view);
536
453
  break;
537
454
  }
538
- };
539
- SharedTransitionHelper.interactiveUpdate = function (state, interactiveState, type, percent) {
540
- var _a;
455
+ }
456
+ static interactiveUpdate(state, interactiveState, type, percent) {
541
457
  if (interactiveState) {
542
458
  if (!interactiveState.added) {
543
459
  interactiveState.added = true;
544
- for (var _i = 0, _b = state.instance.sharedElements.presented; _i < _b.length; _i++) {
545
- var p = _b[_i];
460
+ for (const p of state.instance.sharedElements.presented) {
546
461
  p.view.opacity = 0;
547
462
  }
548
- for (var _c = 0, _d = state.instance.sharedElements.presenting; _c < _d.length; _c++) {
549
- var p = _d[_c];
463
+ for (const p of state.instance.sharedElements.presenting) {
550
464
  p.snapshot.alpha = p.endOpacity;
551
465
  interactiveState.transitionContext.containerView.addSubview(p.snapshot);
552
466
  }
553
- var pageStart = state.pageStart;
554
- var startFrame_3 = getRectFromProps(pageStart, getPageStartDefaultsForType(type));
555
- interactiveState.propertyAnimator = UIViewPropertyAnimator.alloc().initWithDurationDampingRatioAnimations(1, 1, function () {
556
- var _a, _b;
557
- for (var _i = 0, _c = state.instance.sharedElements.presenting; _i < _c.length; _i++) {
558
- var p = _c[_i];
467
+ const pageStart = state.pageStart;
468
+ const startFrame = getRectFromProps(pageStart, getPageStartDefaultsForType(type));
469
+ interactiveState.propertyAnimator = UIViewPropertyAnimator.alloc().initWithDurationDampingRatioAnimations(1, 1, () => {
470
+ for (const p of state.instance.sharedElements.presenting) {
559
471
  p.snapshot.frame = p.startFrame;
560
472
  iOSUtils.copyLayerProperties(p.snapshot, p.view.ios, p.propertiesToMatch);
561
473
  p.snapshot.alpha = 1;
562
474
  }
563
- state.instance.presented.view.alpha = isNumber((_a = state.pageReturn) === null || _a === void 0 ? void 0 : _a.opacity) ? (_b = state.pageReturn) === null || _b === void 0 ? void 0 : _b.opacity : 0;
564
- state.instance.presented.view.frame = CGRectMake(startFrame_3.x, startFrame_3.y, state.instance.presented.view.bounds.size.width, state.instance.presented.view.bounds.size.height);
475
+ state.instance.presented.view.alpha = isNumber(state.pageReturn?.opacity) ? state.pageReturn?.opacity : 0;
476
+ state.instance.presented.view.frame = CGRectMake(startFrame.x, startFrame.y, state.instance.presented.view.bounds.size.width, state.instance.presented.view.bounds.size.height);
565
477
  });
566
478
  }
567
479
  interactiveState.propertyAnimator.fractionComplete = percent;
568
480
  SharedTransition.notifyEvent(SharedTransition.interactiveUpdateEvent, {
569
- id: (_a = state === null || state === void 0 ? void 0 : state.instance) === null || _a === void 0 ? void 0 : _a.id,
570
- type: type,
571
- percent: percent,
481
+ id: state?.instance?.id,
482
+ type,
483
+ percent,
572
484
  });
573
485
  }
574
- };
575
- SharedTransitionHelper.interactiveCancel = function (state, interactiveState, type) {
576
- var _a, _b;
577
- if ((state === null || state === void 0 ? void 0 : state.instance) && (interactiveState === null || interactiveState === void 0 ? void 0 : interactiveState.added) && (interactiveState === null || interactiveState === void 0 ? void 0 : interactiveState.propertyAnimator)) {
486
+ }
487
+ static interactiveCancel(state, interactiveState, type) {
488
+ if (state?.instance && interactiveState?.added && interactiveState?.propertyAnimator) {
578
489
  interactiveState.propertyAnimator.reversed = true;
579
- var duration = isNumber((_a = state.pageEnd) === null || _a === void 0 ? void 0 : _a.duration) ? ((_b = state.pageEnd) === null || _b === void 0 ? void 0 : _b.duration) / 1000 : CORE_ANIMATION_DEFAULTS.duration;
490
+ const duration = isNumber(state.pageEnd?.duration) ? state.pageEnd?.duration / 1000 : CORE_ANIMATION_DEFAULTS.duration;
580
491
  interactiveState.propertyAnimator.continueAnimationWithTimingParametersDurationFactor(null, duration);
581
- setTimeout(function () {
582
- var _a, _b;
583
- for (var _i = 0, _c = state.instance.sharedElements.presented; _i < _c.length; _i++) {
584
- var p = _c[_i];
492
+ setTimeout(() => {
493
+ for (const p of state.instance.sharedElements.presented) {
585
494
  p.view.opacity = 1;
586
495
  }
587
- for (var _d = 0, _e = state.instance.sharedElements.presenting; _d < _e.length; _d++) {
588
- var p = _e[_d];
496
+ for (const p of state.instance.sharedElements.presenting) {
589
497
  p.snapshot.removeFromSuperview();
590
498
  }
591
499
  state.instance.presented.view.alpha = 1;
@@ -593,27 +501,24 @@ var SharedTransitionHelper = /** @class */ (function () {
593
501
  interactiveState.added = false;
594
502
  interactiveState.transitionContext.cancelInteractiveTransition();
595
503
  interactiveState.transitionContext.completeTransition(false);
596
- SharedTransition.updateState((_a = state === null || state === void 0 ? void 0 : state.instance) === null || _a === void 0 ? void 0 : _a.id, {
504
+ SharedTransition.updateState(state?.instance?.id, {
597
505
  interactiveBegan: false,
598
506
  interactiveCancelled: true,
599
507
  });
600
508
  SharedTransition.notifyEvent(SharedTransition.interactiveCancelledEvent, {
601
- id: (_b = state === null || state === void 0 ? void 0 : state.instance) === null || _b === void 0 ? void 0 : _b.id,
602
- type: type,
509
+ id: state?.instance?.id,
510
+ type,
603
511
  });
604
512
  }, duration * 1000);
605
513
  }
606
- };
607
- SharedTransitionHelper.interactiveFinish = function (state, interactiveState, type) {
608
- var _a, _b;
609
- if ((state === null || state === void 0 ? void 0 : state.instance) && (interactiveState === null || interactiveState === void 0 ? void 0 : interactiveState.added) && (interactiveState === null || interactiveState === void 0 ? void 0 : interactiveState.propertyAnimator)) {
514
+ }
515
+ static interactiveFinish(state, interactiveState, type) {
516
+ if (state?.instance && interactiveState?.added && interactiveState?.propertyAnimator) {
610
517
  interactiveState.propertyAnimator.reversed = false;
611
- var duration = isNumber((_a = state.pageReturn) === null || _a === void 0 ? void 0 : _a.duration) ? ((_b = state.pageReturn) === null || _b === void 0 ? void 0 : _b.duration) / 1000 : CORE_ANIMATION_DEFAULTS.duration;
518
+ const duration = isNumber(state.pageReturn?.duration) ? state.pageReturn?.duration / 1000 : CORE_ANIMATION_DEFAULTS.duration;
612
519
  interactiveState.propertyAnimator.continueAnimationWithTimingParametersDurationFactor(null, duration);
613
- setTimeout(function () {
614
- var _a;
615
- for (var _i = 0, _b = state.instance.sharedElements.presenting; _i < _b.length; _i++) {
616
- var presenting = _b[_i];
520
+ setTimeout(() => {
521
+ for (const presenting of state.instance.sharedElements.presenting) {
617
522
  presenting.view.opacity = presenting.startOpacity;
618
523
  presenting.snapshot.removeFromSuperview();
619
524
  }
@@ -623,14 +528,12 @@ var SharedTransitionHelper = /** @class */ (function () {
623
528
  interactiveState.transitionContext.finishInteractiveTransition();
624
529
  interactiveState.transitionContext.completeTransition(true);
625
530
  SharedTransition.notifyEvent(SharedTransition.finishedEvent, {
626
- id: (_a = state === null || state === void 0 ? void 0 : state.instance) === null || _a === void 0 ? void 0 : _a.id,
627
- type: type,
531
+ id: state?.instance?.id,
532
+ type,
628
533
  action: 'interactiveFinish',
629
534
  });
630
535
  }, duration * 1000);
631
536
  }
632
- };
633
- return SharedTransitionHelper;
634
- }());
635
- export { SharedTransitionHelper };
537
+ }
538
+ }
636
539
  //# sourceMappingURL=shared-transition-helper.ios.js.map