@nativescript/core 9.0.0-next-09-09-2025-17590373424 → 9.0.0-next-09-19-2025-17844486041

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 (495) hide show
  1. package/accessibility/accessibility-common.d.ts +264 -0
  2. package/accessibility/accessibility-common.js +352 -0
  3. package/accessibility/accessibility-common.js.map +1 -1
  4. package/accessibility/accessibility-properties.d.ts +1 -1
  5. package/accessibility/accessibility-properties.js +2 -2
  6. package/accessibility/accessibility-properties.js.map +1 -1
  7. package/accessibility/index.d.ts +0 -36
  8. package/accessibility/index.js +2 -0
  9. package/accessibility/index.js.map +1 -0
  10. package/application/application-common.d.ts +7 -8
  11. package/application/application-common.js +62 -14
  12. package/application/application-common.js.map +1 -1
  13. package/application/application-interfaces.d.ts +2 -3
  14. package/application/application.android.d.ts +14 -7
  15. package/application/application.android.js +757 -76
  16. package/application/application.android.js.map +1 -1
  17. package/application/application.d.ts +25 -0
  18. package/application/application.ios.d.ts +16 -18
  19. package/application/application.ios.js +472 -46
  20. package/application/application.ios.js.map +1 -1
  21. package/application/helpers-common.d.ts +50 -0
  22. package/application/helpers-common.js +153 -0
  23. package/application/helpers-common.js.map +1 -0
  24. package/application/helpers.android.d.ts +17 -0
  25. package/application/helpers.android.js +173 -0
  26. package/application/helpers.android.js.map +1 -0
  27. package/application/helpers.d.ts +25 -0
  28. package/application/helpers.ios.d.ts +27 -0
  29. package/application/helpers.ios.js +62 -0
  30. package/application/helpers.ios.js.map +1 -0
  31. package/application-settings/index.android.js +2 -2
  32. package/application-settings/index.android.js.map +1 -1
  33. package/cli-hooks/{before-checkForChanges.js → before-checkForChanges.mjs} +6 -6
  34. package/cli-hooks/postinstall.mjs +7 -0
  35. package/cli-hooks/preuninstall.mjs +7 -0
  36. package/color/color-common.d.ts +18 -19
  37. package/color/color-common.js +13 -14
  38. package/color/color-common.js.map +1 -1
  39. package/color/color-types.d.ts +49 -0
  40. package/color/color-types.js +3 -0
  41. package/color/color-types.js.map +1 -0
  42. package/color/index.ios.d.ts +2 -1
  43. package/color/index.ios.js.map +1 -1
  44. package/connectivity/index.android.js +5 -4
  45. package/connectivity/index.android.js.map +1 -1
  46. package/core-types/animation-types.d.ts +11 -0
  47. package/{ui/animation/animation-interfaces.js → core-types/animation-types.js} +1 -1
  48. package/core-types/animation-types.js.map +1 -0
  49. package/core-types/index.d.ts +1 -1
  50. package/core-types/index.js +2 -2
  51. package/core-types/index.js.map +1 -1
  52. package/core-types/validators.d.ts +2 -0
  53. package/core-types/validators.js +18 -0
  54. package/core-types/validators.js.map +1 -0
  55. package/css/css-tree-parser.js +17 -21
  56. package/css/css-tree-parser.js.map +1 -1
  57. package/css/lib/parse/index.d.ts +1 -0
  58. package/css/lib/parse/index.js +475 -577
  59. package/css/lib/parse/index.js.map +1 -0
  60. package/css/reworkcss.d.ts +25 -28
  61. package/css/reworkcss.js +5 -1
  62. package/css/reworkcss.js.map +1 -0
  63. package/css-mediaquery/index.js +1 -1
  64. package/css-mediaquery/index.js.map +1 -1
  65. package/css-value/reworkcss-value.d.ts +31 -8
  66. package/css-value/reworkcss-value.js +89 -111
  67. package/css-value/reworkcss-value.js.map +1 -0
  68. package/debugger/devtools-elements-interfaces.d.ts +1 -1
  69. package/debugger/devtools-elements.common.js +17 -8
  70. package/debugger/devtools-elements.common.js.map +1 -1
  71. package/debugger/devtools-elements.js +1 -1
  72. package/debugger/devtools-elements.js.map +1 -1
  73. package/debugger/dom-types.d.ts +24 -0
  74. package/debugger/{dom-node.js → dom-types.js} +11 -9
  75. package/debugger/dom-types.js.map +1 -0
  76. package/debugger/webinspector-css.d.ts +18 -18
  77. package/debugger/webinspector-css.js +1 -1
  78. package/debugger/webinspector-css.js.map +1 -1
  79. package/debugger/webinspector-dom.d.ts +15 -15
  80. package/debugger/webinspector-dom.js +1 -1
  81. package/debugger/webinspector-dom.js.map +1 -1
  82. package/debugger/webinspector-network.android.d.ts +9 -9
  83. package/debugger/webinspector-network.android.js +3 -3
  84. package/debugger/webinspector-network.android.js.map +1 -1
  85. package/debugger/webinspector-network.ios.d.ts +9 -9
  86. package/debugger/webinspector-network.ios.js +1 -1
  87. package/debugger/webinspector-network.ios.js.map +1 -1
  88. package/fetch/index.d.ts +72 -0
  89. package/fetch/index.js +448 -458
  90. package/fetch/index.js.map +1 -0
  91. package/file-system/file-system-access.android.js +32 -39
  92. package/file-system/file-system-access.android.js.map +1 -1
  93. package/file-system/file-system-access.ios.js +2 -15
  94. package/file-system/file-system-access.ios.js.map +1 -1
  95. package/file-system/index.d.ts +2 -2
  96. package/file-system/index.js +4 -11
  97. package/file-system/index.js.map +1 -1
  98. package/fps-meter/fps-native.android.d.ts +1 -2
  99. package/fps-meter/fps-native.android.js.map +1 -1
  100. package/fps-meter/fps-native.ios.d.ts +1 -2
  101. package/fps-meter/fps-native.ios.js.map +1 -1
  102. package/global-types.d.ts +7 -8
  103. package/globals/global-utils.d.ts +27 -0
  104. package/globals/global-utils.js +67 -0
  105. package/globals/global-utils.js.map +1 -0
  106. package/globals/index.d.ts +3 -7
  107. package/globals/index.js +275 -281
  108. package/globals/index.js.map +1 -1
  109. package/http/http-interfaces.d.ts +84 -0
  110. package/http/http-interfaces.js +6 -0
  111. package/http/http-interfaces.js.map +1 -0
  112. package/http/http-request/http-request-common.js +2 -2
  113. package/http/http-request/http-request-common.js.map +1 -1
  114. package/http/http-request/index.android.d.ts +3 -7
  115. package/http/http-request/index.android.js +6 -22
  116. package/http/http-request/index.android.js.map +1 -1
  117. package/http/http-request/index.d.ts +5 -1
  118. package/http/http-request/index.ios.d.ts +3 -7
  119. package/http/http-request/index.ios.js +6 -22
  120. package/http/http-request/index.ios.js.map +1 -1
  121. package/http/http-shared.d.ts +5 -0
  122. package/http/http-shared.js +14 -0
  123. package/http/http-shared.js.map +1 -0
  124. package/http/index.d.ts +6 -105
  125. package/http/index.js +10 -12
  126. package/http/index.js.map +1 -1
  127. package/image-asset/index.android.js +3 -3
  128. package/image-asset/index.android.js.map +1 -1
  129. package/image-source/index.android.d.ts +1 -1
  130. package/image-source/index.android.js +5 -23
  131. package/image-source/index.android.js.map +1 -1
  132. package/image-source/index.ios.js +2 -9
  133. package/image-source/index.ios.js.map +1 -1
  134. package/index.d.ts +13 -8
  135. package/index.js +6 -3
  136. package/index.js.map +1 -1
  137. package/inspector_modules.d.ts +6 -0
  138. package/inspector_modules.js +118 -3
  139. package/inspector_modules.js.map +1 -1
  140. package/js-libs/easysax/easysax.js +5 -3
  141. package/media-query-list/index.js +7 -17
  142. package/media-query-list/index.js.map +1 -1
  143. package/module-name-resolver/helpers.d.ts +14 -0
  144. package/module-name-resolver/helpers.js +27 -0
  145. package/module-name-resolver/helpers.js.map +1 -0
  146. package/module-name-resolver/index.d.ts +12 -22
  147. package/module-name-resolver/index.js +6 -18
  148. package/module-name-resolver/index.js.map +1 -1
  149. package/module-name-resolver/non-bundle-workflow-compat.js +32 -23
  150. package/module-name-resolver/non-bundle-workflow-compat.js.map +1 -1
  151. package/module-name-resolver/qualifier-matcher/index.d.ts +6 -12
  152. package/module-name-resolver/qualifier-matcher/index.js +5 -5
  153. package/module-name-resolver/qualifier-matcher/index.js.map +1 -1
  154. package/package.json +18 -13
  155. package/platform/device/index.android.js +2 -2
  156. package/platform/device/index.android.js.map +1 -1
  157. package/platform/screen/index.android.js +2 -2
  158. package/platform/screen/index.android.js.map +1 -1
  159. package/platform/screen/index.ios.js +2 -2
  160. package/platform/screen/index.ios.js.map +1 -1
  161. package/profiling/index.js +2 -1
  162. package/profiling/index.js.map +1 -1
  163. package/timer/index.android.js +15 -7
  164. package/timer/index.android.js.map +1 -1
  165. package/ui/action-bar/action-bar-common.js +4 -2
  166. package/ui/action-bar/action-bar-common.js.map +1 -1
  167. package/ui/action-bar/index.android.js +7 -6
  168. package/ui/action-bar/index.android.js.map +1 -1
  169. package/ui/activity-indicator/index.ios.js +3 -4
  170. package/ui/activity-indicator/index.ios.js.map +1 -1
  171. package/ui/animation/animation-common.d.ts +4 -4
  172. package/ui/animation/animation-common.js +2 -3
  173. package/ui/animation/animation-common.js.map +1 -1
  174. package/ui/animation/{animation-interfaces.d.ts → animation-shared.d.ts} +39 -31
  175. package/ui/animation/animation-shared.js +4 -0
  176. package/ui/animation/animation-shared.js.map +1 -0
  177. package/ui/animation/animation-types.d.ts +1 -0
  178. package/ui/animation/animation-types.js +3 -0
  179. package/ui/animation/animation-types.js.map +1 -0
  180. package/ui/animation/index.android.d.ts +1 -2
  181. package/ui/animation/index.android.js +5 -5
  182. package/ui/animation/index.android.js.map +1 -1
  183. package/ui/animation/index.d.ts +2 -138
  184. package/ui/animation/index.ios.d.ts +1 -2
  185. package/ui/animation/index.ios.js +3 -3
  186. package/ui/animation/index.ios.js.map +1 -1
  187. package/ui/animation/keyframe-animation.d.ts +67 -118
  188. package/ui/animation/keyframe-animation.js +2 -2
  189. package/ui/animation/keyframe-animation.js.map +1 -1
  190. package/ui/builder/binding-builder.d.ts +12 -15
  191. package/ui/builder/component-builder/index.js +5 -5
  192. package/ui/builder/component-builder/index.js.map +1 -1
  193. package/ui/builder/index.d.ts +179 -59
  194. package/ui/builder/index.js +450 -10
  195. package/ui/builder/index.js.map +1 -1
  196. package/ui/button/index.android.js +4 -1
  197. package/ui/button/index.android.js.map +1 -1
  198. package/ui/core/bindable/bindable-types.d.ts +37 -0
  199. package/ui/core/bindable/bindable-types.js +3 -0
  200. package/ui/core/bindable/bindable-types.js.map +1 -0
  201. package/ui/core/bindable/index.d.ts +2 -38
  202. package/ui/core/bindable/index.js +1 -2
  203. package/ui/core/bindable/index.js.map +1 -1
  204. package/ui/core/properties/index.d.ts +4 -37
  205. package/ui/core/properties/index.js +6 -35
  206. package/ui/core/properties/index.js.map +1 -1
  207. package/ui/core/properties/property-shared.d.ts +35 -0
  208. package/ui/core/properties/property-shared.js +16 -0
  209. package/ui/core/properties/property-shared.js.map +1 -0
  210. package/ui/core/view/index.android.d.ts +2 -2
  211. package/ui/core/view/index.android.js +13 -10
  212. package/ui/core/view/index.android.js.map +1 -1
  213. package/ui/core/view/index.d.ts +1 -61
  214. package/ui/core/view/index.ios.d.ts +11 -4
  215. package/ui/core/view/index.ios.js +67 -12
  216. package/ui/core/view/index.ios.js.map +1 -1
  217. package/ui/core/view/view-common.d.ts +30 -16
  218. package/ui/core/view/view-common.js +18 -14
  219. package/ui/core/view/view-common.js.map +1 -1
  220. package/ui/core/view/view-helper/index.ios.d.ts +2 -1
  221. package/ui/core/view/view-helper/index.ios.js +3 -4
  222. package/ui/core/view/view-helper/index.ios.js.map +1 -1
  223. package/ui/core/view/view-helper/view-helper-common.js +1 -3
  224. package/ui/core/view/view-helper/view-helper-common.js.map +1 -1
  225. package/ui/core/view/view-helper/view-helper-shared.d.ts +5 -0
  226. package/ui/core/view/view-helper/view-helper-shared.js +6 -0
  227. package/ui/core/view/view-helper/view-helper-shared.js.map +1 -0
  228. package/ui/core/view/view-interfaces.d.ts +54 -0
  229. package/ui/core/view/view-interfaces.js +2 -0
  230. package/ui/core/view/view-interfaces.js.map +1 -0
  231. package/ui/core/view-base/index.d.ts +22 -24
  232. package/ui/core/view-base/index.js +9 -30
  233. package/ui/core/view-base/index.js.map +1 -1
  234. package/ui/core/view-base/utils.d.ts +1 -0
  235. package/ui/core/view-base/utils.js +9 -0
  236. package/ui/core/view-base/utils.js.map +1 -0
  237. package/ui/dialogs/dialogs-common.js +3 -3
  238. package/ui/dialogs/dialogs-common.js.map +1 -1
  239. package/ui/dialogs/index.android.js +8 -7
  240. package/ui/dialogs/index.android.js.map +1 -1
  241. package/ui/dialogs/index.ios.js +6 -4
  242. package/ui/dialogs/index.ios.js.map +1 -1
  243. package/ui/embedding/index.android.d.ts +1 -1
  244. package/ui/embedding/index.d.ts +1 -1
  245. package/ui/frame/fragment.android.js +3 -2
  246. package/ui/frame/fragment.android.js.map +1 -1
  247. package/ui/frame/fragment.transitions.android.js.map +1 -1
  248. package/ui/frame/frame-common.d.ts +3 -3
  249. package/ui/frame/frame-common.js.map +1 -1
  250. package/ui/frame/{callbacks/fragment-callbacks.d.ts → frame-helper-for-android.d.ts} +20 -1
  251. package/ui/frame/{callbacks/fragment-callbacks.js → frame-helper-for-android.js} +52 -38
  252. package/ui/frame/frame-helper-for-android.js.map +1 -0
  253. package/ui/frame/frame-interfaces.d.ts +40 -4
  254. package/ui/frame/frame-interfaces.js.map +1 -1
  255. package/ui/frame/frame-stack.js.map +1 -1
  256. package/ui/frame/index.android.d.ts +21 -5
  257. package/ui/frame/index.android.js +296 -19
  258. package/ui/frame/index.android.js.map +1 -1
  259. package/ui/frame/index.d.ts +19 -61
  260. package/ui/frame/index.ios.d.ts +2 -2
  261. package/ui/frame/index.ios.js +5 -4
  262. package/ui/frame/index.ios.js.map +1 -1
  263. package/ui/gestures/gestures-common.d.ts +4 -273
  264. package/ui/gestures/gestures-common.js +3 -146
  265. package/ui/gestures/gestures-common.js.map +1 -1
  266. package/ui/gestures/gestures-types.d.ts +108 -0
  267. package/ui/gestures/gestures-types.js +40 -0
  268. package/ui/gestures/gestures-types.js.map +1 -0
  269. package/ui/gestures/index.android.d.ts +29 -1
  270. package/ui/gestures/index.android.js +4 -2
  271. package/ui/gestures/index.android.js.map +1 -1
  272. package/ui/gestures/index.d.ts +35 -0
  273. package/ui/gestures/index.ios.d.ts +35 -1
  274. package/ui/gestures/index.ios.js +3 -3
  275. package/ui/gestures/index.ios.js.map +1 -1
  276. package/ui/gestures/touch-manager.d.ts +1 -1
  277. package/ui/html-view/index.ios.js +3 -3
  278. package/ui/html-view/index.ios.js.map +1 -1
  279. package/ui/image/image-common.js +1 -1
  280. package/ui/image/image-common.js.map +1 -1
  281. package/ui/image/index.android.js +1 -1
  282. package/ui/image/index.android.js.map +1 -1
  283. package/ui/image-cache/index.ios.js +5 -11
  284. package/ui/image-cache/index.ios.js.map +1 -1
  285. package/ui/index.d.ts +16 -8
  286. package/ui/index.js +21 -4
  287. package/ui/index.js.map +1 -1
  288. package/ui/label/index.ios.js.map +1 -1
  289. package/ui/layouts/absolute-layout/absolute-layout-common.js +1 -1
  290. package/ui/layouts/absolute-layout/absolute-layout-common.js.map +1 -1
  291. package/ui/layouts/absolute-layout/index.android.js +1 -1
  292. package/ui/layouts/absolute-layout/index.android.js.map +1 -1
  293. package/ui/layouts/absolute-layout/index.d.ts +1 -1
  294. package/ui/layouts/absolute-layout/index.ios.js.map +1 -1
  295. package/ui/layouts/flexbox-layout/flexbox-layout-common.js +2 -1
  296. package/ui/layouts/flexbox-layout/flexbox-layout-common.js.map +1 -1
  297. package/ui/layouts/flexbox-layout/index.android.js +1 -1
  298. package/ui/layouts/flexbox-layout/index.android.js.map +1 -1
  299. package/ui/layouts/flexbox-layout/index.ios.js.map +1 -1
  300. package/ui/layouts/index.d.ts +3 -1
  301. package/ui/layouts/index.js.map +1 -1
  302. package/ui/layouts/layout-base.android.js +2 -1
  303. package/ui/layouts/layout-base.android.js.map +1 -1
  304. package/ui/layouts/stack-layout/index.ios.js.map +1 -1
  305. package/ui/layouts/wrap-layout/index.android.js +1 -1
  306. package/ui/layouts/wrap-layout/index.android.js.map +1 -1
  307. package/ui/layouts/wrap-layout/index.d.ts +1 -1
  308. package/ui/layouts/wrap-layout/wrap-layout-common.js +1 -1
  309. package/ui/layouts/wrap-layout/wrap-layout-common.js.map +1 -1
  310. package/ui/list-view/index.android.js +1 -1
  311. package/ui/list-view/index.android.js.map +1 -1
  312. package/ui/list-view/index.d.ts +1 -1
  313. package/ui/list-view/index.ios.js +1 -1
  314. package/ui/list-view/index.ios.js.map +1 -1
  315. package/ui/list-view/list-view-common.js +1 -1
  316. package/ui/list-view/list-view-common.js.map +1 -1
  317. package/ui/page/events.d.ts +6 -0
  318. package/ui/page/events.js +7 -0
  319. package/ui/page/events.js.map +1 -0
  320. package/ui/page/index.android.js +2 -1
  321. package/ui/page/index.android.js.map +1 -1
  322. package/ui/page/index.d.ts +1 -1
  323. package/ui/page/index.ios.js +4 -5
  324. package/ui/page/index.ios.js.map +1 -1
  325. package/ui/page/page-common.d.ts +3 -2
  326. package/ui/page/page-common.js +5 -4
  327. package/ui/page/page-common.js.map +1 -1
  328. package/ui/scroll-view/index.ios.js +3 -3
  329. package/ui/scroll-view/index.ios.js.map +1 -1
  330. package/ui/styling/background-common.js +0 -1
  331. package/ui/styling/background-common.js.map +1 -1
  332. package/ui/styling/background.android.d.ts +0 -6
  333. package/ui/styling/background.android.js +1 -53
  334. package/ui/styling/background.android.js.map +1 -1
  335. package/ui/styling/background.ios.js +2 -1
  336. package/ui/styling/background.ios.js.map +1 -1
  337. package/ui/styling/converters.d.ts +2 -2
  338. package/ui/styling/css-shadow.js.map +1 -1
  339. package/ui/styling/css-transform.d.ts +1 -1
  340. package/ui/styling/css-utils.js +1 -1
  341. package/ui/styling/css-utils.js.map +1 -1
  342. package/ui/styling/font.android.js +2 -2
  343. package/ui/styling/font.android.js.map +1 -1
  344. package/ui/styling/font.ios.js +10 -10
  345. package/ui/styling/font.ios.js.map +1 -1
  346. package/ui/styling/length-shared.d.ts +52 -0
  347. package/ui/styling/length-shared.js +173 -0
  348. package/ui/styling/length-shared.js.map +1 -0
  349. package/ui/styling/style/index.d.ts +1 -1
  350. package/ui/styling/style-properties.d.ts +58 -112
  351. package/ui/styling/style-properties.js +7 -93
  352. package/ui/styling/style-properties.js.map +1 -1
  353. package/ui/styling/style-scope.d.ts +85 -48
  354. package/ui/styling/style-scope.js +30 -36
  355. package/ui/styling/style-scope.js.map +1 -1
  356. package/ui/styling/styling-profile.d.ts +1 -0
  357. package/ui/styling/styling-profile.js +4 -0
  358. package/ui/styling/styling-profile.js.map +1 -0
  359. package/ui/styling/styling-shared.d.ts +3 -0
  360. package/ui/styling/styling-shared.js +6 -0
  361. package/ui/styling/styling-shared.js.map +1 -0
  362. package/ui/tab-view/index.android.js +6 -6
  363. package/ui/tab-view/index.android.js.map +1 -1
  364. package/ui/text-base/index.android.d.ts +1 -1
  365. package/ui/text-base/index.android.js +4 -4
  366. package/ui/text-base/index.android.js.map +1 -1
  367. package/ui/text-base/index.d.ts +1 -1
  368. package/ui/text-base/index.ios.js +5 -4
  369. package/ui/text-base/index.ios.js.map +1 -1
  370. package/ui/text-view/index.ios.js.map +1 -1
  371. package/ui/transition/fade-transition.ios.js +1 -1
  372. package/ui/transition/fade-transition.ios.js.map +1 -1
  373. package/ui/transition/index.ios.js +1 -1
  374. package/ui/transition/index.ios.js.map +1 -1
  375. package/ui/transition/modal-transition.ios.js +1 -1
  376. package/ui/transition/modal-transition.ios.js.map +1 -1
  377. package/ui/transition/page-transition.android.d.ts +1 -1
  378. package/ui/transition/page-transition.android.js +4 -4
  379. package/ui/transition/page-transition.android.js.map +1 -1
  380. package/ui/transition/page-transition.ios.js +1 -1
  381. package/ui/transition/page-transition.ios.js.map +1 -1
  382. package/ui/transition/shared-transition-helper.ios.js +1 -1
  383. package/ui/transition/shared-transition-helper.ios.js.map +1 -1
  384. package/ui/transition/shared-transition.js +2 -1
  385. package/ui/transition/shared-transition.js.map +1 -1
  386. package/ui/transition/slide-transition.ios.js +2 -2
  387. package/ui/transition/slide-transition.ios.js.map +1 -1
  388. package/utils/animation-helpers.d.ts +27 -0
  389. package/utils/animation-helpers.js +48 -0
  390. package/utils/animation-helpers.js.map +1 -0
  391. package/utils/common.d.ts +1 -38
  392. package/utils/common.js +2 -112
  393. package/utils/common.js.map +1 -1
  394. package/utils/constants.android.d.ts +1 -0
  395. package/utils/constants.android.js +3 -0
  396. package/utils/constants.android.js.map +1 -1
  397. package/utils/constants.d.ts +1 -0
  398. package/utils/constants.ios.d.ts +1 -0
  399. package/utils/constants.ios.js +3 -0
  400. package/utils/constants.ios.js.map +1 -1
  401. package/utils/debug-source.d.ts +19 -0
  402. package/utils/debug-source.js +78 -0
  403. package/utils/debug-source.js.map +1 -0
  404. package/utils/debug.js +1 -59
  405. package/utils/debug.js.map +1 -1
  406. package/utils/index.android.d.ts +3 -1
  407. package/utils/index.android.js +37 -11
  408. package/utils/index.android.js.map +1 -1
  409. package/utils/index.d.ts +2 -14
  410. package/utils/index.ios.d.ts +4 -1
  411. package/utils/index.ios.js +32 -5
  412. package/utils/index.ios.js.map +1 -1
  413. package/utils/layout-helper/index.android.js +4 -4
  414. package/utils/layout-helper/index.android.js.map +1 -1
  415. package/utils/layout-helper/index.d.ts +6 -4
  416. package/utils/layout-helper/index.ios.js +5 -5
  417. package/utils/layout-helper/index.ios.js.map +1 -1
  418. package/utils/layout-helper/layout-helper-common.d.ts +0 -9
  419. package/utils/layout-helper/layout-helper-common.js +1 -9
  420. package/utils/layout-helper/layout-helper-common.js.map +1 -1
  421. package/utils/layout-helper/layout-helper-shared.d.ts +9 -0
  422. package/utils/layout-helper/layout-helper-shared.js +13 -0
  423. package/utils/layout-helper/layout-helper-shared.js.map +1 -0
  424. package/utils/{android/index.d.ts → native-helper-for-android.d.ts} +4 -2
  425. package/utils/native-helper-for-android.js +273 -0
  426. package/utils/native-helper-for-android.js.map +1 -0
  427. package/utils/native-helper.android.d.ts +29 -5
  428. package/utils/native-helper.android.js +18 -131
  429. package/utils/native-helper.android.js.map +1 -1
  430. package/utils/native-helper.d.ts +206 -258
  431. package/utils/native-helper.ios.d.ts +72 -3
  432. package/utils/native-helper.ios.js +250 -3
  433. package/utils/native-helper.ios.js.map +1 -1
  434. package/utils/shared.d.ts +17 -0
  435. package/utils/shared.js +40 -0
  436. package/utils/shared.js.map +1 -0
  437. package/utils/utils-shared.d.ts +1 -0
  438. package/utils/utils-shared.js +8 -0
  439. package/utils/utils-shared.js.map +1 -0
  440. package/xhr/index.js +12 -13
  441. package/xhr/index.js.map +1 -1
  442. package/xml/index.d.ts +94 -98
  443. package/xml/index.js +58 -2
  444. package/xml/index.js.map +1 -1
  445. package/accessibility/accessibility-css-helper.d.ts +0 -1
  446. package/accessibility/accessibility-css-helper.js +0 -146
  447. package/accessibility/accessibility-css-helper.js.map +0 -1
  448. package/accessibility/accessibility-service-common.d.ts +0 -8
  449. package/accessibility/accessibility-service-common.js +0 -26
  450. package/accessibility/accessibility-service-common.js.map +0 -1
  451. package/accessibility/accessibility-service.android.d.ts +0 -6
  452. package/accessibility/accessibility-service.android.js +0 -103
  453. package/accessibility/accessibility-service.android.js.map +0 -1
  454. package/accessibility/accessibility-service.d.ts +0 -10
  455. package/accessibility/accessibility-service.ios.d.ts +0 -6
  456. package/accessibility/accessibility-service.ios.js +0 -61
  457. package/accessibility/accessibility-service.ios.js.map +0 -1
  458. package/accessibility/accessibility-types.d.ts +0 -224
  459. package/accessibility/accessibility-types.js +0 -222
  460. package/accessibility/accessibility-types.js.map +0 -1
  461. package/accessibility/font-scale-common.d.ts +0 -7
  462. package/accessibility/font-scale-common.js +0 -14
  463. package/accessibility/font-scale-common.js.map +0 -1
  464. package/accessibility/font-scale.android.d.ts +0 -5
  465. package/accessibility/font-scale.android.js +0 -55
  466. package/accessibility/font-scale.android.js.map +0 -1
  467. package/accessibility/font-scale.d.ts +0 -9
  468. package/accessibility/font-scale.ios.d.ts +0 -5
  469. package/accessibility/font-scale.ios.js +0 -89
  470. package/accessibility/font-scale.ios.js.map +0 -1
  471. package/accessibility/index.android.d.ts +0 -10
  472. package/accessibility/index.android.js +0 -577
  473. package/accessibility/index.android.js.map +0 -1
  474. package/accessibility/index.ios.d.ts +0 -9
  475. package/accessibility/index.ios.js +0 -229
  476. package/accessibility/index.ios.js.map +0 -1
  477. package/cli-hooks/postinstall.js +0 -2
  478. package/cli-hooks/preuninstall.js +0 -2
  479. package/css/package.json +0 -36
  480. package/css-value/package.json +0 -23
  481. package/debugger/dom-node.d.ts +0 -27
  482. package/debugger/dom-node.js.map +0 -1
  483. package/ui/animation/animation-interfaces.js.map +0 -1
  484. package/ui/builder/xml2ui.d.ts +0 -134
  485. package/ui/builder/xml2ui.js +0 -397
  486. package/ui/builder/xml2ui.js.map +0 -1
  487. package/ui/frame/callbacks/activity-callbacks.d.ts +0 -19
  488. package/ui/frame/callbacks/activity-callbacks.js +0 -301
  489. package/ui/frame/callbacks/activity-callbacks.js.map +0 -1
  490. package/ui/frame/callbacks/fragment-callbacks.js.map +0 -1
  491. package/utils/android/index.js +0 -160
  492. package/utils/android/index.js.map +0 -1
  493. package/utils/ios/index.d.ts +0 -39
  494. package/utils/ios/index.js +0 -229
  495. package/utils/ios/index.js.map +0 -1
@@ -1,8 +1,15 @@
1
1
  import { profile } from '../profiling';
2
2
  import { isEmbedded } from '../ui/embedding';
3
3
  import { IOSHelper } from '../ui/core/view/view-helper';
4
- import * as Utils from '../utils';
5
- import { ApplicationCommon } from './application-common';
4
+ import { getWindow } from '../utils/native-helper';
5
+ import { SDK_VERSION } from '../utils/constants';
6
+ import { ios as iosUtils } from '../utils/native-helper';
7
+ import { ApplicationCommon, initializeSdkVersionClass } from './application-common';
8
+ import { Observable } from '../data/observable';
9
+ import { Trace } from '../trace';
10
+ import { AccessibilityServiceEnabledPropName, CommonA11YServiceEnabledObservable, SharedA11YObservable, a11yServiceClasses, a11yServiceDisabledClass, a11yServiceEnabledClass, fontScaleCategoryClasses, fontScaleExtraLargeCategoryClass, fontScaleExtraSmallCategoryClass, fontScaleMediumCategoryClass, getCurrentA11YServiceClass, getCurrentFontScaleCategory, getCurrentFontScaleClass, getFontScaleCssClasses, setCurrentA11YServiceClass, setCurrentFontScaleCategory, setCurrentFontScaleClass, setFontScaleCssClasses, FontScaleCategory, getClosestValidFontScale, VALID_FONT_SCALES, setFontScale, getFontScale, setInitFontScale, getFontScaleCategory, setInitAccessibilityCssHelper, notifyAccessibilityFocusState, AccessibilityLiveRegion, AccessibilityRole, AccessibilityState, AccessibilityTrait, isA11yEnabled, setA11yEnabled, enforceArray, } from '../accessibility/accessibility-common';
11
+ import { iosAddNotificationObserver, iosRemoveNotificationObserver } from './helpers';
12
+ import { getiOSWindow, setA11yUpdatePropertiesCallback, setApplicationPropertiesCallback, setAppMainEntry, setiOSWindow, setRootView, setToggleApplicationEventListenersCallback } from './helpers-common';
6
13
  var CADisplayLinkTarget = /** @class */ (function (_super) {
7
14
  __extends(CADisplayLinkTarget, _super);
8
15
  function CADisplayLinkTarget() {
@@ -33,24 +40,6 @@ var CADisplayLinkTarget = /** @class */ (function (_super) {
33
40
  };
34
41
  return CADisplayLinkTarget;
35
42
  }(NSObject));
36
- var NotificationObserver = /** @class */ (function (_super) {
37
- __extends(NotificationObserver, _super);
38
- function NotificationObserver() {
39
- return _super !== null && _super.apply(this, arguments) || this;
40
- }
41
- NotificationObserver.initWithCallback = function (onReceiveCallback) {
42
- var observer = _super.new.call(this);
43
- observer._onReceiveCallback = onReceiveCallback;
44
- return observer;
45
- };
46
- NotificationObserver.prototype.onReceive = function (notification) {
47
- this._onReceiveCallback(notification);
48
- };
49
- NotificationObserver.ObjCExposedMethods = {
50
- onReceive: { returns: interop.types.void, params: [NSNotification] },
51
- };
52
- return NotificationObserver;
53
- }(NSObject));
54
43
  var Responder = /** @class */ (function (_super) {
55
44
  __extends(Responder, _super);
56
45
  function Responder() {
@@ -76,7 +65,6 @@ export class iOSApplication extends ApplicationCommon {
76
65
  constructor() {
77
66
  super();
78
67
  this._delegateHandlers = new Map();
79
- this._notificationObservers = [];
80
68
  this.displayedOnce = false;
81
69
  this.addNotificationObserver(UIApplicationDidFinishLaunchingNotification, this.didFinishLaunchingWithOptions.bind(this));
82
70
  this.addNotificationObserver(UIApplicationDidBecomeActiveNotification, this.didBecomeActive.bind(this));
@@ -93,7 +81,7 @@ export class iOSApplication extends ApplicationCommon {
93
81
  this.setWindowContent();
94
82
  }
95
83
  run(entry) {
96
- this.mainEntry = typeof entry === 'string' ? { moduleName: entry } : entry;
84
+ setAppMainEntry(typeof entry === 'string' ? { moduleName: entry } : entry);
97
85
  this.started = true;
98
86
  if (this.nativeApp) {
99
87
  this.runAsEmbeddedApp();
@@ -112,8 +100,9 @@ export class iOSApplication extends ApplicationCommon {
112
100
  return;
113
101
  }
114
102
  this._rootView = rootView;
103
+ setRootView(rootView);
115
104
  // Attach to the existing iOS app
116
- const window = Utils.ios.getWindow();
105
+ const window = getWindow();
117
106
  if (!window) {
118
107
  return;
119
108
  }
@@ -134,7 +123,7 @@ export class iOSApplication extends ApplicationCommon {
134
123
  embedderDelegate.presentNativeScriptApp(controller);
135
124
  }
136
125
  else {
137
- const visibleVC = Utils.ios.getVisibleViewController(rootController);
126
+ const visibleVC = iosUtils.getVisibleViewController(rootController);
138
127
  visibleVC.presentViewControllerAnimatedCompletion(controller, true, null);
139
128
  }
140
129
  this.initRootView(rootView);
@@ -168,7 +157,7 @@ export class iOSApplication extends ApplicationCommon {
168
157
  const minFrameRateDisabled = NSBundle.mainBundle.objectForInfoDictionaryKey('CADisableMinimumFrameDurationOnPhone');
169
158
  if (minFrameRateDisabled) {
170
159
  let max = 120;
171
- const deviceMaxFrames = Utils.ios.getMainScreen().maximumFramesPerSecond;
160
+ const deviceMaxFrames = iosUtils.getMainScreen().maximumFramesPerSecond;
172
161
  if (options?.max) {
173
162
  if (deviceMaxFrames) {
174
163
  // iOS 10.3
@@ -179,7 +168,7 @@ export class iOSApplication extends ApplicationCommon {
179
168
  max = options.max <= this.displayedLink.preferredFramesPerSecond ? options.max : this.displayedLink.preferredFramesPerSecond;
180
169
  }
181
170
  }
182
- if (Utils.SDK_VERSION >= 15 || __VISIONOS__) {
171
+ if (SDK_VERSION >= 15 || __VISIONOS__) {
183
172
  const min = options?.min || max / 2;
184
173
  const preferred = options?.preferred || max;
185
174
  this.displayedLink.preferredFrameRateRange = CAFrameRateRangeMake(min, max, preferred);
@@ -209,11 +198,11 @@ export class iOSApplication extends ApplicationCommon {
209
198
  // TODO: consideration
210
199
  // may not want to cache this value given the potential of multiple scenes
211
200
  // particularly with SwiftUI app lifecycle based apps
212
- if (!this._window) {
201
+ if (!getiOSWindow()) {
213
202
  // Note: NativeScriptViewFactory.getKeyWindow will always be used in SwiftUI app lifecycle based apps
214
- this._window = Utils.ios.getWindow();
203
+ setiOSWindow(getWindow());
215
204
  }
216
- return this._window;
205
+ return getiOSWindow();
217
206
  }
218
207
  get delegate() {
219
208
  return this._delegate;
@@ -257,21 +246,14 @@ export class iOSApplication extends ApplicationCommon {
257
246
  return this.nativeApp;
258
247
  }
259
248
  addNotificationObserver(notificationName, onReceiveCallback) {
260
- const observer = NotificationObserver.initWithCallback(onReceiveCallback);
261
- NSNotificationCenter.defaultCenter.addObserverSelectorNameObject(observer, 'onReceive', notificationName, null);
262
- this._notificationObservers.push(observer);
263
- return observer;
249
+ return iosAddNotificationObserver(notificationName, onReceiveCallback);
264
250
  }
265
- removeNotificationObserver(observer, notificationName) {
266
- const index = this._notificationObservers.indexOf(observer);
267
- if (index >= 0) {
268
- this._notificationObservers.splice(index, 1);
269
- NSNotificationCenter.defaultCenter.removeObserverNameObject(observer, notificationName, null);
270
- }
251
+ removeNotificationObserver(observer /* NotificationObserver */, notificationName) {
252
+ iosRemoveNotificationObserver(observer, notificationName);
271
253
  }
272
254
  getSystemAppearance() {
273
255
  // userInterfaceStyle is available on UITraitCollection since iOS 12.
274
- if ((!__VISIONOS__ && Utils.SDK_VERSION <= 11) || !this.rootController) {
256
+ if ((!__VISIONOS__ && SDK_VERSION <= 11) || !this.rootController) {
275
257
  return null;
276
258
  }
277
259
  const userInterfaceStyle = this.rootController.traitCollection.userInterfaceStyle;
@@ -312,13 +294,13 @@ export class iOSApplication extends ApplicationCommon {
312
294
  const root = this.notifyLaunch({
313
295
  ios: notification?.userInfo?.objectForKey('UIApplicationLaunchOptionsLocalNotificationKey') ?? null,
314
296
  });
315
- if (this._window) {
297
+ if (getiOSWindow()) {
316
298
  if (root !== null && !isEmbedded()) {
317
299
  this.setWindowContent(root);
318
300
  }
319
301
  }
320
302
  else {
321
- this._window = this.window; // UIApplication.sharedApplication.keyWindow;
303
+ setiOSWindow(this.window);
322
304
  }
323
305
  }
324
306
  _onLivesync(context) {
@@ -342,6 +324,7 @@ export class iOSApplication extends ApplicationCommon {
342
324
  const rootView = this.createRootView(view);
343
325
  const controller = this.getViewController(rootView);
344
326
  this._rootView = rootView;
327
+ setRootView(rootView);
345
328
  // setup view as styleScopeHost
346
329
  rootView._setupAsRootView({});
347
330
  this.setViewControllerView(rootView);
@@ -360,15 +343,29 @@ export class iOSApplication extends ApplicationCommon {
360
343
  }
361
344
  // Observers
362
345
  didFinishLaunchingWithOptions(notification) {
346
+ if (__DEV__) {
347
+ /**
348
+ * v9+ runtime crash handling
349
+ * When crash occurs during boot, we let runtime take over
350
+ */
351
+ if (notification.userInfo) {
352
+ const isBootCrash = notification.userInfo.objectForKey('NativeScriptBootCrash');
353
+ if (isBootCrash) {
354
+ // fatal crash will show in console without app exiting
355
+ // allowing hot reload fixes to continue
356
+ return;
357
+ }
358
+ }
359
+ }
363
360
  this.setMaxRefreshRate();
364
361
  // ensures window is assigned to proper window scene
365
- this._window = this.window;
366
- if (!this._window) {
362
+ setiOSWindow(this.window);
363
+ if (!getiOSWindow()) {
367
364
  // if still no window, create one
368
- this._window = UIWindow.alloc().initWithFrame(UIScreen.mainScreen.bounds);
365
+ setiOSWindow(UIWindow.alloc().initWithFrame(UIScreen.mainScreen.bounds));
369
366
  }
370
367
  if (!__VISIONOS__) {
371
- this.window.backgroundColor = Utils.SDK_VERSION <= 12 || !UIColor.systemBackgroundColor ? UIColor.whiteColor : UIColor.systemBackgroundColor;
368
+ this.window.backgroundColor = SDK_VERSION <= 12 || !UIColor.systemBackgroundColor ? UIColor.whiteColor : UIColor.systemBackgroundColor;
372
369
  }
373
370
  this.notifyAppStarted(notification);
374
371
  }
@@ -442,4 +439,433 @@ global.__onLiveSyncCore = function (context) {
442
439
  export * from './application-common';
443
440
  export const Application = iosApp;
444
441
  export const AndroidApplication = undefined;
442
+ function fontScaleChanged(origFontScale) {
443
+ const oldValue = getFontScale();
444
+ setFontScale(getClosestValidFontScale(origFontScale));
445
+ const currentFontScale = getFontScale();
446
+ if (oldValue !== currentFontScale) {
447
+ Application.notify({
448
+ eventName: Application.fontScaleChangedEvent,
449
+ object: Application,
450
+ newValue: currentFontScale,
451
+ });
452
+ }
453
+ }
454
+ export function getCurrentFontScale() {
455
+ setupConfigListener();
456
+ return getFontScale();
457
+ }
458
+ const sizeMap = new Map([
459
+ [UIContentSizeCategoryExtraSmall, 0.5],
460
+ [UIContentSizeCategorySmall, 0.7],
461
+ [UIContentSizeCategoryMedium, 0.85],
462
+ [UIContentSizeCategoryLarge, 1],
463
+ [UIContentSizeCategoryExtraLarge, 1.15],
464
+ [UIContentSizeCategoryExtraExtraLarge, 1.3],
465
+ [UIContentSizeCategoryExtraExtraExtraLarge, 1.5],
466
+ [UIContentSizeCategoryAccessibilityMedium, 2],
467
+ [UIContentSizeCategoryAccessibilityLarge, 2.5],
468
+ [UIContentSizeCategoryAccessibilityExtraLarge, 3],
469
+ [UIContentSizeCategoryAccessibilityExtraExtraLarge, 3.5],
470
+ [UIContentSizeCategoryAccessibilityExtraExtraExtraLarge, 4],
471
+ ]);
472
+ function contentSizeUpdated(fontSize) {
473
+ if (sizeMap.has(fontSize)) {
474
+ fontScaleChanged(sizeMap.get(fontSize));
475
+ return;
476
+ }
477
+ fontScaleChanged(1);
478
+ }
479
+ function useIOSFontScale() {
480
+ if (Application.ios.nativeApp) {
481
+ contentSizeUpdated(Application.ios.nativeApp.preferredContentSizeCategory);
482
+ }
483
+ else {
484
+ fontScaleChanged(1);
485
+ }
486
+ }
487
+ let fontSizeObserver;
488
+ function setupConfigListener(attempt = 0) {
489
+ if (fontSizeObserver) {
490
+ return;
491
+ }
492
+ if (!Application.ios.nativeApp) {
493
+ if (attempt > 100) {
494
+ fontScaleChanged(1);
495
+ return;
496
+ }
497
+ // Couldn't get launchEvent to trigger.
498
+ setTimeout(() => setupConfigListener(attempt + 1), 1);
499
+ return;
500
+ }
501
+ fontSizeObserver = Application.ios.addNotificationObserver(UIContentSizeCategoryDidChangeNotification, (args) => {
502
+ const fontSize = args.userInfo.valueForKey(UIContentSizeCategoryNewValueKey);
503
+ contentSizeUpdated(fontSize);
504
+ });
505
+ Application.on(Application.exitEvent, () => {
506
+ if (fontSizeObserver) {
507
+ Application.ios.removeNotificationObserver(fontSizeObserver, UIContentSizeCategoryDidChangeNotification);
508
+ fontSizeObserver = null;
509
+ }
510
+ Application.off(Application.resumeEvent, useIOSFontScale);
511
+ });
512
+ Application.on(Application.resumeEvent, useIOSFontScale);
513
+ useIOSFontScale();
514
+ }
515
+ setInitFontScale(setupConfigListener);
516
+ /**
517
+ * Convert array of values into a bitmask.
518
+ *
519
+ * @param values string values
520
+ * @param map map lower-case name to integer value.
521
+ */
522
+ function inputArrayToBitMask(values, map) {
523
+ return (enforceArray(values)
524
+ .filter((value) => !!value)
525
+ .map((value) => `${value}`.toLocaleLowerCase())
526
+ .filter((value) => map.has(value))
527
+ .reduce((res, value) => res | map.get(value), 0) || 0);
528
+ }
529
+ let AccessibilityTraitsMap;
530
+ let RoleTypeMap;
531
+ let nativeFocusedNotificationObserver;
532
+ let lastFocusedView;
533
+ function ensureNativeClasses() {
534
+ if (AccessibilityTraitsMap && nativeFocusedNotificationObserver) {
535
+ return;
536
+ }
537
+ AccessibilityTraitsMap = new Map([
538
+ [AccessibilityTrait.AllowsDirectInteraction, UIAccessibilityTraitAllowsDirectInteraction],
539
+ [AccessibilityTrait.CausesPageTurn, UIAccessibilityTraitCausesPageTurn],
540
+ [AccessibilityTrait.NotEnabled, UIAccessibilityTraitNotEnabled],
541
+ [AccessibilityTrait.Selected, UIAccessibilityTraitSelected],
542
+ [AccessibilityTrait.UpdatesFrequently, UIAccessibilityTraitUpdatesFrequently],
543
+ ]);
544
+ RoleTypeMap = new Map([
545
+ [AccessibilityRole.Adjustable, UIAccessibilityTraitAdjustable],
546
+ [AccessibilityRole.Button, UIAccessibilityTraitButton],
547
+ [AccessibilityRole.Checkbox, UIAccessibilityTraitButton],
548
+ [AccessibilityRole.Header, UIAccessibilityTraitHeader],
549
+ [AccessibilityRole.KeyboardKey, UIAccessibilityTraitKeyboardKey],
550
+ [AccessibilityRole.Image, UIAccessibilityTraitImage],
551
+ [AccessibilityRole.ImageButton, UIAccessibilityTraitImage | UIAccessibilityTraitButton],
552
+ [AccessibilityRole.Link, UIAccessibilityTraitLink],
553
+ [AccessibilityRole.None, UIAccessibilityTraitNone],
554
+ [AccessibilityRole.PlaysSound, UIAccessibilityTraitPlaysSound],
555
+ [AccessibilityRole.RadioButton, UIAccessibilityTraitButton],
556
+ [AccessibilityRole.Search, UIAccessibilityTraitSearchField],
557
+ [AccessibilityRole.StaticText, UIAccessibilityTraitStaticText],
558
+ [AccessibilityRole.StartsMediaSession, UIAccessibilityTraitStartsMediaSession],
559
+ [AccessibilityRole.Summary, UIAccessibilityTraitSummaryElement],
560
+ [AccessibilityRole.Switch, UIAccessibilityTraitButton],
561
+ ]);
562
+ nativeFocusedNotificationObserver = Application.ios.addNotificationObserver(UIAccessibilityElementFocusedNotification, (args) => {
563
+ const uiView = args.userInfo?.objectForKey(UIAccessibilityFocusedElementKey);
564
+ if (!uiView?.tag) {
565
+ return;
566
+ }
567
+ const rootView = Application.getRootView();
568
+ // We use the UIView's tag to find the NativeScript View by its domId.
569
+ let view = rootView.getViewByDomId(uiView?.tag);
570
+ if (!view) {
571
+ for (const modalView of rootView._getRootModalViews()) {
572
+ view = modalView.getViewByDomId(uiView?.tag);
573
+ if (view) {
574
+ break;
575
+ }
576
+ }
577
+ }
578
+ if (!view) {
579
+ return;
580
+ }
581
+ const lastView = lastFocusedView?.deref();
582
+ if (lastView && view !== lastView) {
583
+ const lastFocusedUIView = lastView.nativeViewProtected;
584
+ if (lastFocusedUIView) {
585
+ lastFocusedView = null;
586
+ notifyAccessibilityFocusState(lastView, false, true);
587
+ }
588
+ }
589
+ lastFocusedView = new WeakRef(view);
590
+ notifyAccessibilityFocusState(view, true, false);
591
+ });
592
+ Application.on(Application.exitEvent, () => {
593
+ if (nativeFocusedNotificationObserver) {
594
+ Application.ios.removeNotificationObserver(nativeFocusedNotificationObserver, UIAccessibilityElementFocusedNotification);
595
+ }
596
+ nativeFocusedNotificationObserver = null;
597
+ lastFocusedView = null;
598
+ });
599
+ }
600
+ export function updateAccessibilityProperties(view) {
601
+ const uiView = view.nativeViewProtected;
602
+ if (!uiView) {
603
+ return;
604
+ }
605
+ ensureNativeClasses();
606
+ const accessibilityRole = view.accessibilityRole;
607
+ const accessibilityState = view.accessibilityState;
608
+ if (!view.accessible || view.accessibilityHidden) {
609
+ uiView.accessibilityTraits = UIAccessibilityTraitNone;
610
+ return;
611
+ }
612
+ // NOTE: left here for various core inspection passes while running the toolbox app
613
+ // console.log('--- Accessible element: ', view.constructor.name);
614
+ // console.log('accessibilityLabel: ', view.accessibilityLabel);
615
+ // console.log('accessibilityRole: ', accessibilityRole);
616
+ // console.log('accessibilityState: ', accessibilityState);
617
+ // console.log('accessibilityValue: ', view.accessibilityValue);
618
+ let a11yTraits = UIAccessibilityTraitNone;
619
+ if (RoleTypeMap.has(accessibilityRole)) {
620
+ a11yTraits |= RoleTypeMap.get(accessibilityRole);
621
+ }
622
+ switch (accessibilityRole) {
623
+ case AccessibilityRole.Checkbox:
624
+ case AccessibilityRole.RadioButton:
625
+ case AccessibilityRole.Switch: {
626
+ if (accessibilityState === AccessibilityState.Checked) {
627
+ a11yTraits |= AccessibilityTraitsMap.get(AccessibilityTrait.Selected);
628
+ }
629
+ break;
630
+ }
631
+ default: {
632
+ if (accessibilityState === AccessibilityState.Selected) {
633
+ a11yTraits |= AccessibilityTraitsMap.get(AccessibilityTrait.Selected);
634
+ }
635
+ if (accessibilityState === AccessibilityState.Disabled) {
636
+ a11yTraits |= AccessibilityTraitsMap.get(AccessibilityTrait.NotEnabled);
637
+ }
638
+ break;
639
+ }
640
+ }
641
+ const UpdatesFrequentlyTrait = AccessibilityTraitsMap.get(AccessibilityTrait.UpdatesFrequently);
642
+ switch (view.accessibilityLiveRegion) {
643
+ case AccessibilityLiveRegion.Polite:
644
+ case AccessibilityLiveRegion.Assertive: {
645
+ a11yTraits |= UpdatesFrequentlyTrait;
646
+ break;
647
+ }
648
+ default: {
649
+ a11yTraits &= ~UpdatesFrequentlyTrait;
650
+ break;
651
+ }
652
+ }
653
+ // NOTE: left here for various core inspection passes while running the toolbox app
654
+ // if (view.accessibilityLiveRegion) {
655
+ // console.log('accessibilityLiveRegion:', view.accessibilityLiveRegion);
656
+ // }
657
+ if (view.accessibilityMediaSession) {
658
+ a11yTraits |= RoleTypeMap.get(AccessibilityRole.StartsMediaSession);
659
+ }
660
+ // NOTE: There were duplicated types in traits and roles previously which we conslidated
661
+ // not sure if this is still needed
662
+ // accessibilityTraits used to be stored on {N} view component but if the above
663
+ // is combining all traits fresh each time through, don't believe we need to keep track or previous traits
664
+ // if (view.accessibilityTraits) {
665
+ // a11yTraits |= inputArrayToBitMask(view.accessibilityTraits, AccessibilityTraitsMap);
666
+ // }
667
+ // NOTE: left here for various core inspection passes while running the toolbox app
668
+ // console.log('a11yTraits:', a11yTraits);
669
+ // console.log(' ');
670
+ uiView.accessibilityTraits = a11yTraits;
671
+ }
672
+ setA11yUpdatePropertiesCallback(updateAccessibilityProperties);
673
+ export const sendAccessibilityEvent = () => { };
674
+ export function isAccessibilityServiceEnabled() {
675
+ const accessibilityServiceEnabled = isA11yEnabled();
676
+ if (typeof accessibilityServiceEnabled === 'boolean') {
677
+ return accessibilityServiceEnabled;
678
+ }
679
+ let isVoiceOverRunning;
680
+ if (typeof UIAccessibilityIsVoiceOverRunning === 'function') {
681
+ isVoiceOverRunning = UIAccessibilityIsVoiceOverRunning;
682
+ }
683
+ else {
684
+ // iOS is too old to tell us if voice over is enabled
685
+ if (typeof UIAccessibilityIsVoiceOverRunning !== 'function') {
686
+ setA11yEnabled(false);
687
+ return isA11yEnabled();
688
+ }
689
+ }
690
+ setA11yEnabled(isVoiceOverRunning());
691
+ let voiceOverStatusChangedNotificationName = null;
692
+ if (typeof UIAccessibilityVoiceOverStatusDidChangeNotification !== 'undefined') {
693
+ voiceOverStatusChangedNotificationName = UIAccessibilityVoiceOverStatusDidChangeNotification;
694
+ }
695
+ else if (typeof UIAccessibilityVoiceOverStatusChanged !== 'undefined') {
696
+ voiceOverStatusChangedNotificationName = UIAccessibilityVoiceOverStatusChanged;
697
+ }
698
+ if (voiceOverStatusChangedNotificationName) {
699
+ nativeObserver = Application.ios.addNotificationObserver(voiceOverStatusChangedNotificationName, () => {
700
+ setA11yEnabled(isVoiceOverRunning());
701
+ });
702
+ Application.on(Application.exitEvent, () => {
703
+ if (nativeObserver) {
704
+ Application.ios.removeNotificationObserver(nativeObserver, voiceOverStatusChangedNotificationName);
705
+ }
706
+ setA11yEnabled(undefined);
707
+ nativeObserver = null;
708
+ });
709
+ }
710
+ Application.on(Application.resumeEvent, () => {
711
+ setA11yEnabled(isVoiceOverRunning());
712
+ });
713
+ return isA11yEnabled();
714
+ }
715
+ export function getAndroidAccessibilityManager() {
716
+ return null;
717
+ }
718
+ let sharedA11YObservable;
719
+ let nativeObserver;
720
+ function getSharedA11YObservable() {
721
+ if (sharedA11YObservable) {
722
+ return sharedA11YObservable;
723
+ }
724
+ sharedA11YObservable = new SharedA11YObservable();
725
+ let isVoiceOverRunning;
726
+ if (typeof UIAccessibilityIsVoiceOverRunning === 'function') {
727
+ isVoiceOverRunning = UIAccessibilityIsVoiceOverRunning;
728
+ }
729
+ else {
730
+ if (typeof UIAccessibilityIsVoiceOverRunning !== 'function') {
731
+ Trace.write(`UIAccessibilityIsVoiceOverRunning() - is not a function`, Trace.categories.Accessibility, Trace.messageType.error);
732
+ isVoiceOverRunning = () => false;
733
+ }
734
+ }
735
+ sharedA11YObservable.set(AccessibilityServiceEnabledPropName, isVoiceOverRunning());
736
+ let voiceOverStatusChangedNotificationName = null;
737
+ if (typeof UIAccessibilityVoiceOverStatusDidChangeNotification !== 'undefined') {
738
+ // iOS 11+
739
+ voiceOverStatusChangedNotificationName = UIAccessibilityVoiceOverStatusDidChangeNotification;
740
+ }
741
+ else if (typeof UIAccessibilityVoiceOverStatusChanged !== 'undefined') {
742
+ // iOS <11
743
+ voiceOverStatusChangedNotificationName = UIAccessibilityVoiceOverStatusChanged;
744
+ }
745
+ if (voiceOverStatusChangedNotificationName) {
746
+ nativeObserver = Application.ios.addNotificationObserver(voiceOverStatusChangedNotificationName, () => {
747
+ sharedA11YObservable?.set(AccessibilityServiceEnabledPropName, isVoiceOverRunning());
748
+ });
749
+ Application.on(Application.exitEvent, () => {
750
+ if (nativeObserver) {
751
+ Application.ios.removeNotificationObserver(nativeObserver, voiceOverStatusChangedNotificationName);
752
+ }
753
+ nativeObserver = null;
754
+ if (sharedA11YObservable) {
755
+ sharedA11YObservable.removeEventListener(Observable.propertyChangeEvent);
756
+ sharedA11YObservable = null;
757
+ }
758
+ });
759
+ }
760
+ Application.on(Application.resumeEvent, () => sharedA11YObservable.set(AccessibilityServiceEnabledPropName, isVoiceOverRunning()));
761
+ return sharedA11YObservable;
762
+ }
763
+ export class AccessibilityServiceEnabledObservable extends CommonA11YServiceEnabledObservable {
764
+ constructor() {
765
+ super(getSharedA11YObservable());
766
+ }
767
+ }
768
+ let accessibilityServiceObservable;
769
+ export function ensureClasses() {
770
+ if (accessibilityServiceObservable) {
771
+ return;
772
+ }
773
+ setFontScaleCssClasses(new Map(VALID_FONT_SCALES.map((fs) => [fs, `a11y-fontscale-${Number(fs * 100).toFixed(0)}`])));
774
+ accessibilityServiceObservable = new AccessibilityServiceEnabledObservable();
775
+ // Initialize SDK version CSS class once
776
+ initializeSdkVersionClass(Application.getRootView());
777
+ }
778
+ export function updateCurrentHelperClasses(applyRootCssClass) {
779
+ const fontScale = getFontScale();
780
+ const fontScaleCategory = getFontScaleCategory();
781
+ const fontScaleCssClasses = getFontScaleCssClasses();
782
+ const oldFontScaleClass = getCurrentFontScaleClass();
783
+ if (fontScaleCssClasses.has(fontScale)) {
784
+ setCurrentFontScaleClass(fontScaleCssClasses.get(fontScale));
785
+ }
786
+ else {
787
+ setCurrentFontScaleClass(fontScaleCssClasses.get(1));
788
+ }
789
+ if (oldFontScaleClass !== getCurrentFontScaleClass()) {
790
+ applyRootCssClass([...fontScaleCssClasses.values()], getCurrentFontScaleClass());
791
+ }
792
+ const oldActiveFontScaleCategory = getCurrentFontScaleCategory();
793
+ switch (fontScaleCategory) {
794
+ case FontScaleCategory.ExtraSmall: {
795
+ setCurrentFontScaleCategory(fontScaleExtraSmallCategoryClass);
796
+ break;
797
+ }
798
+ case FontScaleCategory.Medium: {
799
+ setCurrentFontScaleCategory(fontScaleMediumCategoryClass);
800
+ break;
801
+ }
802
+ case FontScaleCategory.ExtraLarge: {
803
+ setCurrentFontScaleCategory(fontScaleExtraLargeCategoryClass);
804
+ break;
805
+ }
806
+ default: {
807
+ setCurrentFontScaleCategory(fontScaleMediumCategoryClass);
808
+ break;
809
+ }
810
+ }
811
+ if (oldActiveFontScaleCategory !== getCurrentFontScaleCategory()) {
812
+ applyRootCssClass(fontScaleCategoryClasses, getCurrentFontScaleCategory());
813
+ }
814
+ const oldA11YStatusClass = getCurrentA11YServiceClass();
815
+ if (accessibilityServiceObservable.accessibilityServiceEnabled) {
816
+ setCurrentA11YServiceClass(a11yServiceEnabledClass);
817
+ }
818
+ else {
819
+ setCurrentA11YServiceClass(a11yServiceDisabledClass);
820
+ }
821
+ if (oldA11YStatusClass !== getCurrentA11YServiceClass()) {
822
+ applyRootCssClass(a11yServiceClasses, getCurrentA11YServiceClass());
823
+ }
824
+ }
825
+ function applyRootCssClass(cssClasses, newCssClass) {
826
+ const rootView = Application.getRootView();
827
+ if (!rootView) {
828
+ return;
829
+ }
830
+ Application.applyCssClass(rootView, cssClasses, newCssClass);
831
+ const rootModalViews = rootView._getRootModalViews();
832
+ rootModalViews.forEach((rootModalView) => Application.applyCssClass(rootModalView, cssClasses, newCssClass));
833
+ }
834
+ function applyFontScaleToRootViews() {
835
+ const rootView = Application.getRootView();
836
+ if (!rootView) {
837
+ return;
838
+ }
839
+ const fontScale = getCurrentFontScale();
840
+ rootView.style.fontScaleInternal = fontScale;
841
+ const rootModalViews = rootView._getRootModalViews();
842
+ rootModalViews.forEach((rootModalView) => (rootModalView.style.fontScaleInternal = fontScale));
843
+ }
844
+ export function initAccessibilityCssHelper() {
845
+ ensureClasses();
846
+ Application.on(Application.fontScaleChangedEvent, () => {
847
+ updateCurrentHelperClasses(applyRootCssClass);
848
+ applyFontScaleToRootViews();
849
+ });
850
+ accessibilityServiceObservable.on(AccessibilityServiceEnabledObservable.propertyChangeEvent, () => updateCurrentHelperClasses(applyRootCssClass));
851
+ }
852
+ setInitAccessibilityCssHelper(initAccessibilityCssHelper);
853
+ const applicationEvents = [Application.orientationChangedEvent, Application.systemAppearanceChangedEvent];
854
+ function toggleApplicationEventListeners(toAdd, callback) {
855
+ for (const eventName of applicationEvents) {
856
+ if (toAdd) {
857
+ Application.on(eventName, callback);
858
+ }
859
+ else {
860
+ Application.off(eventName, callback);
861
+ }
862
+ }
863
+ }
864
+ setToggleApplicationEventListenersCallback(toggleApplicationEventListeners);
865
+ setApplicationPropertiesCallback(() => {
866
+ return {
867
+ orientation: Application.orientation(),
868
+ systemAppearance: Application.systemAppearance(),
869
+ };
870
+ });
445
871
  //# sourceMappingURL=application.ios.js.map