vite-plugin-taro-runtime 0.7.0 → 0.7.1-beta.2

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 (1212) hide show
  1. package/README.md +10 -28
  2. package/dist/api/dist/env.d.ts +15 -0
  3. package/dist/api/dist/env.js +58 -0
  4. package/dist/api/dist/env.js.map +1 -0
  5. package/dist/api/dist/index.d.ts +2 -0
  6. package/dist/api/dist/index.js +28 -0
  7. package/dist/api/dist/index.js.map +1 -0
  8. package/dist/api/dist/interceptor/chain.d.ts +16 -0
  9. package/dist/api/dist/interceptor/chain.js +30 -0
  10. package/dist/api/dist/interceptor/chain.js.map +1 -0
  11. package/dist/api/dist/interceptor/index.d.ts +11 -0
  12. package/dist/api/dist/interceptor/index.js +30 -0
  13. package/dist/api/dist/interceptor/index.js.map +1 -0
  14. package/dist/api/dist/interceptor/interceptors.d.ts +3 -0
  15. package/dist/api/dist/interceptor/interceptors.js +48 -0
  16. package/dist/api/dist/interceptor/interceptors.js.map +1 -0
  17. package/dist/api/dist/tools.d.ts +4 -0
  18. package/dist/api/dist/tools.js +67 -0
  19. package/dist/api/dist/tools.js.map +1 -0
  20. package/dist/components/dist/components/helper.js +24 -0
  21. package/dist/components/dist/components/index.d.ts +130 -0
  22. package/dist/components/dist/components/index.js +103 -0
  23. package/dist/components/dist/components/index2.js +89 -0
  24. package/dist/components/dist/components/index3.js +39 -0
  25. package/dist/components/dist/components/picker-group.js +218 -0
  26. package/dist/components/dist/components/taro-ad-core.d.ts +11 -0
  27. package/dist/components/dist/components/taro-ad-core.js +33 -0
  28. package/dist/components/dist/components/taro-ad-custom-core.d.ts +11 -0
  29. package/dist/components/dist/components/taro-ad-custom-core.js +33 -0
  30. package/dist/components/dist/components/taro-animation-video-core.d.ts +11 -0
  31. package/dist/components/dist/components/taro-animation-video-core.js +33 -0
  32. package/dist/components/dist/components/taro-animation-view-core.d.ts +11 -0
  33. package/dist/components/dist/components/taro-animation-view-core.js +33 -0
  34. package/dist/components/dist/components/taro-ar-camera-core.d.ts +11 -0
  35. package/dist/components/dist/components/taro-ar-camera-core.js +33 -0
  36. package/dist/components/dist/components/taro-audio-core.d.ts +11 -0
  37. package/dist/components/dist/components/taro-audio-core.js +78 -0
  38. package/dist/components/dist/components/taro-aweme-data-core.d.ts +11 -0
  39. package/dist/components/dist/components/taro-aweme-data-core.js +33 -0
  40. package/dist/components/dist/components/taro-block-core.d.ts +11 -0
  41. package/dist/components/dist/components/taro-block-core.js +29 -0
  42. package/dist/components/dist/components/taro-button-core.d.ts +11 -0
  43. package/dist/components/dist/components/taro-button-core.js +100 -0
  44. package/dist/components/dist/components/taro-camera-core.d.ts +11 -0
  45. package/dist/components/dist/components/taro-camera-core.js +33 -0
  46. package/dist/components/dist/components/taro-canvas-core.d.ts +11 -0
  47. package/dist/components/dist/components/taro-canvas-core.js +69 -0
  48. package/dist/components/dist/components/taro-channel-live-core.d.ts +11 -0
  49. package/dist/components/dist/components/taro-channel-live-core.js +33 -0
  50. package/dist/components/dist/components/taro-channel-video-core.d.ts +11 -0
  51. package/dist/components/dist/components/taro-channel-video-core.js +33 -0
  52. package/dist/components/dist/components/taro-checkbox-core.d.ts +11 -0
  53. package/dist/components/dist/components/taro-checkbox-core.js +79 -0
  54. package/dist/components/dist/components/taro-checkbox-group-core.d.ts +11 -0
  55. package/dist/components/dist/components/taro-checkbox-group-core.js +88 -0
  56. package/dist/components/dist/components/taro-comment-detail-core.d.ts +11 -0
  57. package/dist/components/dist/components/taro-comment-detail-core.js +33 -0
  58. package/dist/components/dist/components/taro-comment-list-core.d.ts +11 -0
  59. package/dist/components/dist/components/taro-comment-list-core.js +33 -0
  60. package/dist/components/dist/components/taro-contact-button-core.d.ts +11 -0
  61. package/dist/components/dist/components/taro-contact-button-core.js +33 -0
  62. package/dist/components/dist/components/taro-cover-image-core.d.ts +11 -0
  63. package/dist/components/dist/components/taro-cover-image-core.js +50 -0
  64. package/dist/components/dist/components/taro-cover-view-core.d.ts +11 -0
  65. package/dist/components/dist/components/taro-cover-view-core.js +87 -0
  66. package/dist/components/dist/components/taro-custom-wrapper-core.d.ts +11 -0
  67. package/dist/components/dist/components/taro-custom-wrapper-core.js +29 -0
  68. package/dist/components/dist/components/taro-double-tap-gesture-handler-core.d.ts +11 -0
  69. package/dist/components/dist/components/taro-double-tap-gesture-handler-core.js +33 -0
  70. package/dist/components/dist/components/taro-draggable-sheet-core.d.ts +11 -0
  71. package/dist/components/dist/components/taro-draggable-sheet-core.js +33 -0
  72. package/dist/components/dist/components/taro-editor-core.d.ts +11 -0
  73. package/dist/components/dist/components/taro-editor-core.js +33 -0
  74. package/dist/components/dist/components/taro-follow-swan-core.d.ts +11 -0
  75. package/dist/components/dist/components/taro-follow-swan-core.js +33 -0
  76. package/dist/components/dist/components/taro-force-press-gesture-handler-core.d.ts +11 -0
  77. package/dist/components/dist/components/taro-force-press-gesture-handler-core.js +33 -0
  78. package/dist/components/dist/components/taro-form-core.d.ts +11 -0
  79. package/dist/components/dist/components/taro-form-core.js +156 -0
  80. package/dist/components/dist/components/taro-functional-page-navigator-core.d.ts +11 -0
  81. package/dist/components/dist/components/taro-functional-page-navigator-core.js +33 -0
  82. package/dist/components/dist/components/taro-grid-builder-core.d.ts +11 -0
  83. package/dist/components/dist/components/taro-grid-builder-core.js +33 -0
  84. package/dist/components/dist/components/taro-grid-view-core.d.ts +11 -0
  85. package/dist/components/dist/components/taro-grid-view-core.js +33 -0
  86. package/dist/components/dist/components/taro-horizontal-drag-gesture-handler-core.d.ts +11 -0
  87. package/dist/components/dist/components/taro-horizontal-drag-gesture-handler-core.js +33 -0
  88. package/dist/components/dist/components/taro-icon-core.d.ts +11 -0
  89. package/dist/components/dist/components/taro-icon-core.js +49 -0
  90. package/dist/components/dist/components/taro-image-core.d.ts +11 -0
  91. package/dist/components/dist/components/taro-image-core.js +82 -0
  92. package/dist/components/dist/components/taro-inline-payment-panel-core.d.ts +11 -0
  93. package/dist/components/dist/components/taro-inline-payment-panel-core.js +33 -0
  94. package/dist/components/dist/components/taro-input-core.d.ts +11 -0
  95. package/dist/components/dist/components/taro-input-core.js +241 -0
  96. package/dist/components/dist/components/taro-keyboard-accessory-core.d.ts +11 -0
  97. package/dist/components/dist/components/taro-keyboard-accessory-core.js +33 -0
  98. package/dist/components/dist/components/taro-label-core.d.ts +11 -0
  99. package/dist/components/dist/components/taro-label-core.js +32 -0
  100. package/dist/components/dist/components/taro-lifestyle-core.d.ts +11 -0
  101. package/dist/components/dist/components/taro-lifestyle-core.js +33 -0
  102. package/dist/components/dist/components/taro-like-core.d.ts +11 -0
  103. package/dist/components/dist/components/taro-like-core.js +33 -0
  104. package/dist/components/dist/components/taro-list-builder-core.d.ts +11 -0
  105. package/dist/components/dist/components/taro-list-builder-core.js +33 -0
  106. package/dist/components/dist/components/taro-list-view-core.d.ts +11 -0
  107. package/dist/components/dist/components/taro-list-view-core.js +33 -0
  108. package/dist/components/dist/components/taro-live-player-core.d.ts +11 -0
  109. package/dist/components/dist/components/taro-live-player-core.js +33 -0
  110. package/dist/components/dist/components/taro-live-pusher-core.d.ts +11 -0
  111. package/dist/components/dist/components/taro-live-pusher-core.js +33 -0
  112. package/dist/components/dist/components/taro-login-core.d.ts +11 -0
  113. package/dist/components/dist/components/taro-login-core.js +33 -0
  114. package/dist/components/dist/components/taro-long-press-gesture-handler-core.d.ts +11 -0
  115. package/dist/components/dist/components/taro-long-press-gesture-handler-core.js +33 -0
  116. package/dist/components/dist/components/taro-lottie-core.d.ts +11 -0
  117. package/dist/components/dist/components/taro-lottie-core.js +33 -0
  118. package/dist/components/dist/components/taro-map-core.d.ts +11 -0
  119. package/dist/components/dist/components/taro-map-core.js +1376 -0
  120. package/dist/components/dist/components/taro-match-media-core.d.ts +11 -0
  121. package/dist/components/dist/components/taro-match-media-core.js +33 -0
  122. package/dist/components/dist/components/taro-movable-area-core.d.ts +11 -0
  123. package/dist/components/dist/components/taro-movable-area-core.js +174 -0
  124. package/dist/components/dist/components/taro-movable-view-core.d.ts +11 -0
  125. package/dist/components/dist/components/taro-movable-view-core.js +361 -0
  126. package/dist/components/dist/components/taro-native-slot-core.d.ts +11 -0
  127. package/dist/components/dist/components/taro-native-slot-core.js +33 -0
  128. package/dist/components/dist/components/taro-navigation-bar-core.d.ts +11 -0
  129. package/dist/components/dist/components/taro-navigation-bar-core.js +33 -0
  130. package/dist/components/dist/components/taro-navigator-core.d.ts +11 -0
  131. package/dist/components/dist/components/taro-navigator-core.js +94 -0
  132. package/dist/components/dist/components/taro-nested-scroll-body-core.d.ts +11 -0
  133. package/dist/components/dist/components/taro-nested-scroll-body-core.js +33 -0
  134. package/dist/components/dist/components/taro-nested-scroll-header-core.d.ts +11 -0
  135. package/dist/components/dist/components/taro-nested-scroll-header-core.js +33 -0
  136. package/dist/components/dist/components/taro-official-account-core.d.ts +11 -0
  137. package/dist/components/dist/components/taro-official-account-core.js +33 -0
  138. package/dist/components/dist/components/taro-open-container-core.d.ts +11 -0
  139. package/dist/components/dist/components/taro-open-container-core.js +33 -0
  140. package/dist/components/dist/components/taro-open-data-core.d.ts +11 -0
  141. package/dist/components/dist/components/taro-open-data-core.js +33 -0
  142. package/dist/components/dist/components/taro-open-embedded-atomicservice-core.d.ts +11 -0
  143. package/dist/components/dist/components/taro-open-embedded-atomicservice-core.js +33 -0
  144. package/dist/components/dist/components/taro-page-container-core.d.ts +11 -0
  145. package/dist/components/dist/components/taro-page-container-core.js +33 -0
  146. package/dist/components/dist/components/taro-page-meta-core.d.ts +11 -0
  147. package/dist/components/dist/components/taro-page-meta-core.js +33 -0
  148. package/dist/components/dist/components/taro-pan-gesture-handler-core.d.ts +11 -0
  149. package/dist/components/dist/components/taro-pan-gesture-handler-core.js +33 -0
  150. package/dist/components/dist/components/taro-picker-core.d.ts +11 -0
  151. package/dist/components/dist/components/taro-picker-core.js +540 -0
  152. package/dist/components/dist/components/taro-picker-group.d.ts +11 -0
  153. package/dist/components/dist/components/taro-picker-group.js +6 -0
  154. package/dist/components/dist/components/taro-picker-view-column-core.d.ts +11 -0
  155. package/dist/components/dist/components/taro-picker-view-column-core.js +103 -0
  156. package/dist/components/dist/components/taro-picker-view-core.d.ts +11 -0
  157. package/dist/components/dist/components/taro-picker-view-core.js +121 -0
  158. package/dist/components/dist/components/taro-progress-core.d.ts +11 -0
  159. package/dist/components/dist/components/taro-progress-core.js +63 -0
  160. package/dist/components/dist/components/taro-pull-to-refresh-core.d.ts +11 -0
  161. package/dist/components/dist/components/taro-pull-to-refresh-core.js +287 -0
  162. package/dist/components/dist/components/taro-radio-core.d.ts +11 -0
  163. package/dist/components/dist/components/taro-radio-core.js +81 -0
  164. package/dist/components/dist/components/taro-radio-group-core.d.ts +11 -0
  165. package/dist/components/dist/components/taro-radio-group-core.js +99 -0
  166. package/dist/components/dist/components/taro-rich-text-core.d.ts +11 -0
  167. package/dist/components/dist/components/taro-rich-text-core.js +93 -0
  168. package/dist/components/dist/components/taro-root-portal-core.d.ts +11 -0
  169. package/dist/components/dist/components/taro-root-portal-core.js +33 -0
  170. package/dist/components/dist/components/taro-rtc-room-core.d.ts +11 -0
  171. package/dist/components/dist/components/taro-rtc-room-core.js +33 -0
  172. package/dist/components/dist/components/taro-rtc-room-item-core.d.ts +11 -0
  173. package/dist/components/dist/components/taro-rtc-room-item-core.js +33 -0
  174. package/dist/components/dist/components/taro-scale-gesture-handler-core.d.ts +11 -0
  175. package/dist/components/dist/components/taro-scale-gesture-handler-core.js +33 -0
  176. package/dist/components/dist/components/taro-script-core.d.ts +11 -0
  177. package/dist/components/dist/components/taro-script-core.js +33 -0
  178. package/dist/components/dist/components/taro-scroll-view-core.d.ts +11 -0
  179. package/dist/components/dist/components/taro-scroll-view-core.js +199 -0
  180. package/dist/components/dist/components/taro-share-element-core.d.ts +11 -0
  181. package/dist/components/dist/components/taro-share-element-core.js +33 -0
  182. package/dist/components/dist/components/taro-slider-core.d.ts +11 -0
  183. package/dist/components/dist/components/taro-slider-core.js +197 -0
  184. package/dist/components/dist/components/taro-slot-core.d.ts +11 -0
  185. package/dist/components/dist/components/taro-slot-core.js +33 -0
  186. package/dist/components/dist/components/taro-snapshot-core.d.ts +11 -0
  187. package/dist/components/dist/components/taro-snapshot-core.js +33 -0
  188. package/dist/components/dist/components/taro-span-core.d.ts +11 -0
  189. package/dist/components/dist/components/taro-span-core.js +33 -0
  190. package/dist/components/dist/components/taro-sticky-header-core.d.ts +11 -0
  191. package/dist/components/dist/components/taro-sticky-header-core.js +33 -0
  192. package/dist/components/dist/components/taro-sticky-section-core.d.ts +11 -0
  193. package/dist/components/dist/components/taro-sticky-section-core.js +33 -0
  194. package/dist/components/dist/components/taro-swiper-core.d.ts +11 -0
  195. package/dist/components/dist/components/taro-swiper-core.js +438 -0
  196. package/dist/components/dist/components/taro-swiper-item-core.d.ts +11 -0
  197. package/dist/components/dist/components/taro-swiper-item-core.js +42 -0
  198. package/dist/components/dist/components/taro-switch-core.d.ts +11 -0
  199. package/dist/components/dist/components/taro-switch-core.js +85 -0
  200. package/dist/components/dist/components/taro-tab-item-core.d.ts +11 -0
  201. package/dist/components/dist/components/taro-tab-item-core.js +33 -0
  202. package/dist/components/dist/components/taro-tabbar.d.ts +11 -0
  203. package/dist/components/dist/components/taro-tabbar.js +371 -0
  204. package/dist/components/dist/components/taro-tabs-core.d.ts +11 -0
  205. package/dist/components/dist/components/taro-tabs-core.js +33 -0
  206. package/dist/components/dist/components/taro-tap-gesture-handler-core.d.ts +11 -0
  207. package/dist/components/dist/components/taro-tap-gesture-handler-core.js +33 -0
  208. package/dist/components/dist/components/taro-text-core.d.ts +11 -0
  209. package/dist/components/dist/components/taro-text-core.js +45 -0
  210. package/dist/components/dist/components/taro-textarea-core.d.ts +11 -0
  211. package/dist/components/dist/components/taro-textarea-core.js +285 -0
  212. package/dist/components/dist/components/taro-vertical-drag-gesture-handler-core.d.ts +11 -0
  213. package/dist/components/dist/components/taro-vertical-drag-gesture-handler-core.js +33 -0
  214. package/dist/components/dist/components/taro-video-control.d.ts +11 -0
  215. package/dist/components/dist/components/taro-video-control.js +6 -0
  216. package/dist/components/dist/components/taro-video-core.d.ts +11 -0
  217. package/dist/components/dist/components/taro-video-core.js +500 -0
  218. package/dist/components/dist/components/taro-video-danmu.d.ts +11 -0
  219. package/dist/components/dist/components/taro-video-danmu.js +6 -0
  220. package/dist/components/dist/components/taro-view-core.d.ts +11 -0
  221. package/dist/components/dist/components/taro-view-core.js +92 -0
  222. package/dist/components/dist/components/taro-voip-room-core.d.ts +11 -0
  223. package/dist/components/dist/components/taro-voip-room-core.js +33 -0
  224. package/dist/components/dist/components/taro-web-view-core.d.ts +11 -0
  225. package/dist/components/dist/components/taro-web-view-core.js +44 -0
  226. package/dist/components/dist/components/video-control.js +240 -0
  227. package/dist/components/dist/components/video-danmu.js +108 -0
  228. package/dist/components/dist/taro-components/taro-components.css +1 -0
  229. package/dist/components/global.css +1 -0
  230. package/dist/components/lib/react/component-lib/index.d.ts +54 -0
  231. package/dist/components/lib/react/component-lib/index.js +68 -0
  232. package/dist/components/lib/react/component-lib/index.js.map +1 -0
  233. package/dist/components/lib/react/component-lib/input.d.ts +3 -0
  234. package/dist/components/lib/react/component-lib/input.js +17 -0
  235. package/dist/components/lib/react/component-lib/input.js.map +1 -0
  236. package/dist/components/lib/react/component-lib/reactify-wc.d.ts +7 -0
  237. package/dist/components/lib/react/component-lib/reactify-wc.js +176 -0
  238. package/dist/components/lib/react/component-lib/reactify-wc.js.map +1 -0
  239. package/dist/components/lib/react/components.d.ts +103 -0
  240. package/dist/components/lib/react/components.js +112 -0
  241. package/dist/components/lib/react/components.js.map +1 -0
  242. package/dist/components/lib/react/helper.d.ts +10 -0
  243. package/dist/components/lib/react/helper.js +10 -0
  244. package/dist/components/lib/react/helper.js.map +1 -0
  245. package/dist/components/lib/react/index.d.ts +1 -0
  246. package/dist/components/lib/react/index.js +2 -0
  247. package/dist/components/lib/react/index.js.map +1 -0
  248. package/dist/components/lib/react/node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.39.0_tslib@2.8.1_typescript@5.4.5/node_modules/tslib/tslib.es6.js +405 -0
  249. package/dist/components/lib/react/node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.39.0_tslib@2.8.1_typescript@5.4.5/node_modules/tslib/tslib.es6.js.map +1 -0
  250. package/dist/components/lib/react/react-component-lib/createComponent.d.ts +14 -0
  251. package/dist/components/lib/react/react-component-lib/createComponent.js +73 -0
  252. package/dist/components/lib/react/react-component-lib/createComponent.js.map +1 -0
  253. package/dist/components/lib/react/react-component-lib/createOverlayComponent.d.ts +25 -0
  254. package/dist/components/lib/react/react-component-lib/createOverlayComponent.js +94 -0
  255. package/dist/components/lib/react/react-component-lib/createOverlayComponent.js.map +1 -0
  256. package/dist/components/lib/react/react-component-lib/index.d.ts +2 -0
  257. package/dist/components/lib/react/react-component-lib/index.js +3 -0
  258. package/dist/components/lib/react/react-component-lib/index.js.map +1 -0
  259. package/dist/components/lib/react/react-component-lib/interfaces.d.ts +33 -0
  260. package/dist/components/lib/react/react-component-lib/utils/attachProps.d.ts +18 -0
  261. package/dist/components/lib/react/react-component-lib/utils/attachProps.js +182 -0
  262. package/dist/components/lib/react/react-component-lib/utils/attachProps.js.map +1 -0
  263. package/dist/components/lib/react/react-component-lib/utils/case.d.ts +6 -0
  264. package/dist/components/lib/react/react-component-lib/utils/case.js +13 -0
  265. package/dist/components/lib/react/react-component-lib/utils/case.js.map +1 -0
  266. package/dist/components/lib/react/react-component-lib/utils/dev.d.ts +6 -0
  267. package/dist/components/lib/react/react-component-lib/utils/index.d.ts +14 -0
  268. package/dist/components/lib/react/react-component-lib/utils/index.js +39 -0
  269. package/dist/components/lib/react/react-component-lib/utils/index.js.map +1 -0
  270. package/dist/components/types/Ad.d.ts +205 -0
  271. package/dist/components/types/AdCustom.d.ts +44 -0
  272. package/dist/components/types/AnimationVideo.d.ts +53 -0
  273. package/dist/components/types/AnimationView.d.ts +39 -0
  274. package/dist/components/types/ArCamera.d.ts +43 -0
  275. package/dist/components/types/Audio.d.ts +135 -0
  276. package/dist/components/types/AwemeData.d.ts +37 -0
  277. package/dist/components/types/Block.d.ts +9 -0
  278. package/dist/components/types/Button.d.ts +740 -0
  279. package/dist/components/types/Camera.d.ts +128 -0
  280. package/dist/components/types/Canvas.d.ts +98 -0
  281. package/dist/components/types/ChannelLive.d.ts +20 -0
  282. package/dist/components/types/ChannelVideo.d.ts +48 -0
  283. package/dist/components/types/Checkbox.d.ts +167 -0
  284. package/dist/components/types/CheckboxGroup.d.ts +81 -0
  285. package/dist/components/types/CommentDetail.d.ts +66 -0
  286. package/dist/components/types/CommentList.d.ts +112 -0
  287. package/dist/components/types/ContactButton.d.ts +46 -0
  288. package/dist/components/types/CoverImage.d.ts +151 -0
  289. package/dist/components/types/CoverView.d.ts +219 -0
  290. package/dist/components/types/CustomWrapper.d.ts +31 -0
  291. package/dist/components/types/DraggableSheet.d.ts +52 -0
  292. package/dist/components/types/Editor.d.ts +143 -0
  293. package/dist/components/types/FollowSwan.d.ts +25 -0
  294. package/dist/components/types/Form.d.ts +130 -0
  295. package/dist/components/types/FunctionalPageNavigator.d.ts +56 -0
  296. package/dist/components/types/GridBuilder.d.ts +72 -0
  297. package/dist/components/types/GridView.d.ts +51 -0
  298. package/dist/components/types/Icon.d.ts +97 -0
  299. package/dist/components/types/Image.d.ts +175 -0
  300. package/dist/components/types/InlinePaymentPanel.d.ts +49 -0
  301. package/dist/components/types/Input.d.ts +353 -0
  302. package/dist/components/types/KeyboardAccessory.d.ts +42 -0
  303. package/dist/components/types/Label.d.ts +52 -0
  304. package/dist/components/types/Lifestyle.d.ts +23 -0
  305. package/dist/components/types/Like.d.ts +90 -0
  306. package/dist/components/types/List.d.ts +38 -0
  307. package/dist/components/types/ListBuilder.d.ts +55 -0
  308. package/dist/components/types/ListItem.d.ts +6 -0
  309. package/dist/components/types/ListView.d.ts +19 -0
  310. package/dist/components/types/LivePlayer.d.ts +261 -0
  311. package/dist/components/types/LivePusher.d.ts +360 -0
  312. package/dist/components/types/Login.d.ts +40 -0
  313. package/dist/components/types/Lottie.d.ts +97 -0
  314. package/dist/components/types/Map.d.ts +732 -0
  315. package/dist/components/types/MatchMedia.d.ts +70 -0
  316. package/dist/components/types/MovableArea.d.ts +34 -0
  317. package/dist/components/types/MovableView.d.ts +180 -0
  318. package/dist/components/types/NativeSlot.d.ts +35 -0
  319. package/dist/components/types/NavigationBar.d.ts +44 -0
  320. package/dist/components/types/Navigator.d.ts +118 -0
  321. package/dist/components/types/NestedScrollBody.d.ts +15 -0
  322. package/dist/components/types/NestedScrollHeader.d.ts +15 -0
  323. package/dist/components/types/OfficialAccount.d.ts +58 -0
  324. package/dist/components/types/OpenContainer.d.ts +74 -0
  325. package/dist/components/types/OpenData.d.ts +98 -0
  326. package/dist/components/types/OpenEmbeddedAtomicservice.d.ts +52 -0
  327. package/dist/components/types/PageContainer.d.ts +110 -0
  328. package/dist/components/types/PageMeta.d.ts +133 -0
  329. package/dist/components/types/Picker.d.ts +452 -0
  330. package/dist/components/types/PickerView.d.ts +198 -0
  331. package/dist/components/types/PickerViewColumn.d.ts +12 -0
  332. package/dist/components/types/Progress.d.ts +105 -0
  333. package/dist/components/types/PullToRefresh.d.ts +26 -0
  334. package/dist/components/types/Radio.d.ts +187 -0
  335. package/dist/components/types/RadioGroup.d.ts +24 -0
  336. package/dist/components/types/RichText.d.ts +166 -0
  337. package/dist/components/types/RootPortal.d.ts +40 -0
  338. package/dist/components/types/RtcRoom.d.ts +88 -0
  339. package/dist/components/types/RtcRoomItem.d.ts +23 -0
  340. package/dist/components/types/Script.d.ts +37 -0
  341. package/dist/components/types/ScrollView.d.ts +510 -0
  342. package/dist/components/types/ShareElement.d.ts +270 -0
  343. package/dist/components/types/Slider.d.ts +145 -0
  344. package/dist/components/types/Slot.d.ts +42 -0
  345. package/dist/components/types/Snapshot.d.ts +25 -0
  346. package/dist/components/types/Span.d.ts +14 -0
  347. package/dist/components/types/StickyHeader.d.ts +31 -0
  348. package/dist/components/types/StickySection.d.ts +23 -0
  349. package/dist/components/types/Swiper.d.ts +339 -0
  350. package/dist/components/types/SwiperItem.d.ts +77 -0
  351. package/dist/components/types/Switch.d.ts +96 -0
  352. package/dist/components/types/TabItem.d.ts +31 -0
  353. package/dist/components/types/Tabs.d.ts +50 -0
  354. package/dist/components/types/Text.d.ts +146 -0
  355. package/dist/components/types/Textarea.d.ts +252 -0
  356. package/dist/components/types/Video.d.ts +604 -0
  357. package/dist/components/types/View.d.ts +183 -0
  358. package/dist/components/types/VoipRoom.d.ts +67 -0
  359. package/dist/components/types/WebView.d.ts +68 -0
  360. package/dist/components/types/common.d.ts +185 -0
  361. package/dist/components/types/event.d.ts +7 -0
  362. package/dist/components/types/gesture/DoubleTapGestureHandler.d.ts +53 -0
  363. package/dist/components/types/gesture/ForcePressGestureHandler.d.ts +49 -0
  364. package/dist/components/types/gesture/HorizontalDragGestureHandler.d.ts +53 -0
  365. package/dist/components/types/gesture/LongPressGestureHandler.d.ts +53 -0
  366. package/dist/components/types/gesture/PanGestureHandler.d.ts +53 -0
  367. package/dist/components/types/gesture/ScaleGestureHandler.d.ts +53 -0
  368. package/dist/components/types/gesture/TapGestureHandler.d.ts +53 -0
  369. package/dist/components/types/gesture/VerticalDragGestureHandler.d.ts +53 -0
  370. package/dist/components/types/global.d.ts +4 -0
  371. package/dist/components/types/index.d.ts +128 -0
  372. package/dist/components/types/index.solid.d.ts +301 -0
  373. package/dist/components/types/index.vue3.d.ts +337 -0
  374. package/dist/components/types/props.d.ts +72 -0
  375. package/dist/plugin-framework-react/runtime.js +1080 -0
  376. package/dist/plugin-framework-react/runtime.js.map +1 -0
  377. package/dist/plugin-platform-alipay/components-react.js +54 -0
  378. package/dist/plugin-platform-alipay/components-react.js.map +1 -0
  379. package/dist/plugin-platform-alipay/runtime-utils.js +854 -0
  380. package/dist/plugin-platform-alipay/runtime-utils.js.map +1 -0
  381. package/dist/plugin-platform-alipay/runtime.js +864 -0
  382. package/dist/plugin-platform-alipay/runtime.js.map +1 -0
  383. package/dist/plugin-platform-alipay/types/apis-list.d.ts +1 -0
  384. package/dist/plugin-platform-alipay/types/apis.d.ts +9 -0
  385. package/dist/plugin-platform-alipay/types/components-react.d.ts +10 -0
  386. package/dist/plugin-platform-alipay/types/components.d.ts +202 -0
  387. package/dist/plugin-platform-alipay/types/index.d.ts +5 -0
  388. package/dist/plugin-platform-alipay/types/program.d.ts +51 -0
  389. package/dist/plugin-platform-alipay/types/runtime-utils.d.ts +19 -0
  390. package/dist/plugin-platform-alipay/types/runtime.d.ts +1 -0
  391. package/dist/plugin-platform-alipay/types/template.d.ts +39 -0
  392. package/dist/plugin-platform-h5/definition.json +2481 -0
  393. package/dist/plugin-platform-h5/runtime/apis/index.d.ts +5 -0
  394. package/dist/plugin-platform-h5/runtime/apis/index.js +29 -0
  395. package/dist/plugin-platform-h5/runtime/apis/index.js.map +1 -0
  396. package/dist/plugin-platform-h5/runtime/apis/taro-h5.d.ts +1 -0
  397. package/dist/plugin-platform-h5/runtime/apis/taro-h5.js +2 -0
  398. package/dist/plugin-platform-h5/runtime/apis/taro-h5.js.map +1 -0
  399. package/dist/plugin-platform-h5/runtime/apis/taro.d.ts +2 -0
  400. package/dist/plugin-platform-h5/runtime/apis/taro.js +3 -0
  401. package/dist/plugin-platform-h5/runtime/apis/taro.js.map +1 -0
  402. package/dist/plugin-platform-weapp/components-react.js +81 -0
  403. package/dist/plugin-platform-weapp/components-react.js.map +1 -0
  404. package/dist/plugin-platform-weapp/runtime-utils.js +613 -0
  405. package/dist/plugin-platform-weapp/runtime-utils.js.map +1 -0
  406. package/dist/plugin-platform-weapp/runtime.js +614 -0
  407. package/dist/plugin-platform-weapp/runtime.js.map +1 -0
  408. package/dist/plugin-platform-weapp/types/apis-list.d.ts +1 -0
  409. package/dist/plugin-platform-weapp/types/apis.d.ts +1 -0
  410. package/dist/plugin-platform-weapp/types/components-react.d.ts +37 -0
  411. package/dist/plugin-platform-weapp/types/components.d.ts +503 -0
  412. package/dist/plugin-platform-weapp/types/index.d.ts +8 -0
  413. package/dist/plugin-platform-weapp/types/program.d.ts +35 -0
  414. package/dist/plugin-platform-weapp/types/runtime-utils.d.ts +13 -0
  415. package/dist/plugin-platform-weapp/types/runtime.d.ts +1 -0
  416. package/dist/plugin-platform-weapp/types/template.d.ts +25 -0
  417. package/dist/react/componentTree.d.ts +19 -0
  418. package/dist/react/constant.d.ts +7 -0
  419. package/dist/react/domInput.d.ts +12 -0
  420. package/dist/react/event.d.ts +13 -0
  421. package/dist/react/index.d.ts +33 -0
  422. package/dist/react/inputValueTracking.d.ts +3 -0
  423. package/dist/react/props.d.ts +5 -0
  424. package/dist/react/react.esm.js +1165 -0
  425. package/dist/react/react.esm.js.map +1 -0
  426. package/dist/react/reconciler.d.ts +4 -0
  427. package/dist/react/render.d.ts +25 -0
  428. package/dist/react/workTags.d.ts +26 -0
  429. package/dist/router/dist/api.d.ts +7 -0
  430. package/dist/router/dist/events/resize.d.ts +2 -0
  431. package/dist/router/dist/events/scroll.d.ts +2 -0
  432. package/dist/router/dist/history.d.ts +26 -0
  433. package/dist/router/dist/index.d.ts +9 -0
  434. package/dist/router/dist/index.esm.js +1755 -0
  435. package/dist/router/dist/navigationBar.d.ts +2 -0
  436. package/dist/router/dist/router/index.d.ts +11 -0
  437. package/dist/router/dist/router/mpa.d.ts +11 -0
  438. package/dist/router/dist/router/multi-page.d.ts +33 -0
  439. package/dist/router/dist/router/navigation-bar.d.ts +36 -0
  440. package/dist/router/dist/router/page.d.ts +53 -0
  441. package/dist/router/dist/router/spa.d.ts +4 -0
  442. package/dist/router/dist/router/stack.d.ts +26 -0
  443. package/dist/router/dist/style.d.ts +13 -0
  444. package/dist/router/dist/tabbar.d.ts +3 -0
  445. package/dist/router/dist/utils/index.d.ts +10 -0
  446. package/dist/router/dist/utils/navigate.d.ts +9 -0
  447. package/dist/router/types/api.d.ts +18 -0
  448. package/dist/router/types/component.d.ts +11 -0
  449. package/dist/router/types/history.d.ts +6 -0
  450. package/dist/router/types/router.d.ts +32 -0
  451. package/dist/router/types/taro.d.ts +8 -0
  452. package/dist/taro/index.js +9 -0
  453. package/dist/taro/package.json +76 -0
  454. package/dist/taro/types/api/ad/index.d.ts +197 -0
  455. package/dist/taro/types/api/ai/face.d.ts +133 -0
  456. package/dist/taro/types/api/ai/inference.d.ts +129 -0
  457. package/dist/taro/types/api/ai/visionkit.d.ts +874 -0
  458. package/dist/taro/types/api/alipay/index.d.ts +69 -0
  459. package/dist/taro/types/api/base/crypto.d.ts +104 -0
  460. package/dist/taro/types/api/base/debug.d.ts +329 -0
  461. package/dist/taro/types/api/base/env.d.ts +19 -0
  462. package/dist/taro/types/api/base/index.d.ts +102 -0
  463. package/dist/taro/types/api/base/performance.d.ts +258 -0
  464. package/dist/taro/types/api/base/system.d.ts +742 -0
  465. package/dist/taro/types/api/base/update.d.ts +130 -0
  466. package/dist/taro/types/api/base/weapp/app-event.d.ts +265 -0
  467. package/dist/taro/types/api/base/weapp/life-cycle.d.ts +155 -0
  468. package/dist/taro/types/api/canvas/index.d.ts +2162 -0
  469. package/dist/taro/types/api/cloud/index.d.ts +2622 -0
  470. package/dist/taro/types/api/data-analysis/index.d.ts +122 -0
  471. package/dist/taro/types/api/device/accelerometer.d.ts +102 -0
  472. package/dist/taro/types/api/device/accessibility.d.ts +26 -0
  473. package/dist/taro/types/api/device/battery.d.ts +46 -0
  474. package/dist/taro/types/api/device/bluetooth-ble.d.ts +601 -0
  475. package/dist/taro/types/api/device/bluetooth-peripheral.d.ts +430 -0
  476. package/dist/taro/types/api/device/bluetooth.d.ts +463 -0
  477. package/dist/taro/types/api/device/calendar.d.ts +98 -0
  478. package/dist/taro/types/api/device/clipboard.d.ts +81 -0
  479. package/dist/taro/types/api/device/compass.d.ts +105 -0
  480. package/dist/taro/types/api/device/contact.d.ts +110 -0
  481. package/dist/taro/types/api/device/gyroscope.d.ts +85 -0
  482. package/dist/taro/types/api/device/iBeacon.d.ts +168 -0
  483. package/dist/taro/types/api/device/keyboard.d.ts +97 -0
  484. package/dist/taro/types/api/device/memory.d.ts +52 -0
  485. package/dist/taro/types/api/device/motion.d.ts +88 -0
  486. package/dist/taro/types/api/device/network.d.ts +172 -0
  487. package/dist/taro/types/api/device/nfc.d.ts +1238 -0
  488. package/dist/taro/types/api/device/phone.d.ts +30 -0
  489. package/dist/taro/types/api/device/scan.d.ts +111 -0
  490. package/dist/taro/types/api/device/screen.d.ts +217 -0
  491. package/dist/taro/types/api/device/sms.d.ts +26 -0
  492. package/dist/taro/types/api/device/vibrate.d.ts +51 -0
  493. package/dist/taro/types/api/device/wifi.d.ts +301 -0
  494. package/dist/taro/types/api/ext/index.d.ts +64 -0
  495. package/dist/taro/types/api/files/index.d.ts +1472 -0
  496. package/dist/taro/types/api/framework/index.d.ts +51 -0
  497. package/dist/taro/types/api/location/index.d.ts +517 -0
  498. package/dist/taro/types/api/media/audio.d.ts +1013 -0
  499. package/dist/taro/types/api/media/background-audio.d.ts +291 -0
  500. package/dist/taro/types/api/media/camera.d.ts +207 -0
  501. package/dist/taro/types/api/media/editor.d.ts +239 -0
  502. package/dist/taro/types/api/media/image.d.ts +469 -0
  503. package/dist/taro/types/api/media/live.d.ts +461 -0
  504. package/dist/taro/types/api/media/map.d.ts +638 -0
  505. package/dist/taro/types/api/media/media-recorder.d.ts +117 -0
  506. package/dist/taro/types/api/media/recorder.d.ts +317 -0
  507. package/dist/taro/types/api/media/video-decoder.d.ts +117 -0
  508. package/dist/taro/types/api/media/video-processing.d.ts +84 -0
  509. package/dist/taro/types/api/media/video.d.ts +527 -0
  510. package/dist/taro/types/api/media/voip.d.ts +393 -0
  511. package/dist/taro/types/api/navigate/index.d.ts +327 -0
  512. package/dist/taro/types/api/network/download.d.ts +173 -0
  513. package/dist/taro/types/api/network/mdns.d.ts +191 -0
  514. package/dist/taro/types/api/network/request.d.ts +480 -0
  515. package/dist/taro/types/api/network/tcp.d.ts +181 -0
  516. package/dist/taro/types/api/network/udp.d.ts +218 -0
  517. package/dist/taro/types/api/network/upload.d.ts +201 -0
  518. package/dist/taro/types/api/network/websocket.d.ts +383 -0
  519. package/dist/taro/types/api/open-api/account.d.ts +51 -0
  520. package/dist/taro/types/api/open-api/address.d.ts +68 -0
  521. package/dist/taro/types/api/open-api/authorize.d.ts +80 -0
  522. package/dist/taro/types/api/open-api/card.d.ts +110 -0
  523. package/dist/taro/types/api/open-api/channels.d.ts +225 -0
  524. package/dist/taro/types/api/open-api/customer-service.d.ts +45 -0
  525. package/dist/taro/types/api/open-api/device-voip.d.ts +103 -0
  526. package/dist/taro/types/api/open-api/facial.d.ts +98 -0
  527. package/dist/taro/types/api/open-api/favorites.d.ts +101 -0
  528. package/dist/taro/types/api/open-api/group.d.ts +59 -0
  529. package/dist/taro/types/api/open-api/invoice.d.ts +87 -0
  530. package/dist/taro/types/api/open-api/license-plate.d.ts +27 -0
  531. package/dist/taro/types/api/open-api/login.d.ts +115 -0
  532. package/dist/taro/types/api/open-api/my-miniprogram.d.ts +28 -0
  533. package/dist/taro/types/api/open-api/privacy.d.ts +107 -0
  534. package/dist/taro/types/api/open-api/redpackage.d.ts +24 -0
  535. package/dist/taro/types/api/open-api/settings.d.ts +174 -0
  536. package/dist/taro/types/api/open-api/soter.d.ts +184 -0
  537. package/dist/taro/types/api/open-api/sticker.d.ts +83 -0
  538. package/dist/taro/types/api/open-api/subscribe-message.d.ts +305 -0
  539. package/dist/taro/types/api/open-api/user-info.d.ts +182 -0
  540. package/dist/taro/types/api/open-api/werun.d.ts +101 -0
  541. package/dist/taro/types/api/payment/index.d.ts +119 -0
  542. package/dist/taro/types/api/qq/index.d.ts +354 -0
  543. package/dist/taro/types/api/route/index.d.ts +324 -0
  544. package/dist/taro/types/api/share/index.d.ts +354 -0
  545. package/dist/taro/types/api/skyline/index.d.ts +345 -0
  546. package/dist/taro/types/api/storage/background-fetch.d.ts +131 -0
  547. package/dist/taro/types/api/storage/cache-manager.d.ts +249 -0
  548. package/dist/taro/types/api/storage/index.d.ts +397 -0
  549. package/dist/taro/types/api/swan/bookshelf.d.ts +307 -0
  550. package/dist/taro/types/api/swan/download-package.d.ts +80 -0
  551. package/dist/taro/types/api/swan/index.d.ts +251 -0
  552. package/dist/taro/types/api/swan/pay.d.ts +139 -0
  553. package/dist/taro/types/api/taro.extend.d.ts +233 -0
  554. package/dist/taro/types/api/taro.hooks.d.ts +148 -0
  555. package/dist/taro/types/api/ui/animation.d.ts +427 -0
  556. package/dist/taro/types/api/ui/background.d.ts +69 -0
  557. package/dist/taro/types/api/ui/custom-component.d.ts +23 -0
  558. package/dist/taro/types/api/ui/fonts.d.ts +77 -0
  559. package/dist/taro/types/api/ui/interaction.d.ts +281 -0
  560. package/dist/taro/types/api/ui/menu.d.ts +29 -0
  561. package/dist/taro/types/api/ui/navigation-bar.d.ts +130 -0
  562. package/dist/taro/types/api/ui/pull-down-refresh.d.ts +50 -0
  563. package/dist/taro/types/api/ui/scroll.d.ts +114 -0
  564. package/dist/taro/types/api/ui/sticky.d.ts +32 -0
  565. package/dist/taro/types/api/ui/tab-bar.d.ts +196 -0
  566. package/dist/taro/types/api/ui/window.d.ts +71 -0
  567. package/dist/taro/types/api/worker/index.d.ts +83 -0
  568. package/dist/taro/types/api/wxml/index.d.ts +540 -0
  569. package/dist/taro/types/compile/compiler.d.ts +32 -0
  570. package/dist/taro/types/compile/config/h5.d.ts +134 -0
  571. package/dist/taro/types/compile/config/harmony.d.ts +118 -0
  572. package/dist/taro/types/compile/config/index.d.ts +8 -0
  573. package/dist/taro/types/compile/config/manifest.d.ts +155 -0
  574. package/dist/taro/types/compile/config/mini.d.ts +120 -0
  575. package/dist/taro/types/compile/config/plugin.d.ts +34 -0
  576. package/dist/taro/types/compile/config/project.d.ts +338 -0
  577. package/dist/taro/types/compile/config/rn.d.ts +85 -0
  578. package/dist/taro/types/compile/config/util.d.ts +179 -0
  579. package/dist/taro/types/compile/hooks.d.ts +13 -0
  580. package/dist/taro/types/compile/index.d.ts +11 -0
  581. package/dist/taro/types/compile/viteCompilerContext.d.ts +167 -0
  582. package/dist/taro/types/global.d.ts +428 -0
  583. package/dist/taro/types/index.d.ts +196 -0
  584. package/dist/taro/types/taro.api.d.ts +130 -0
  585. package/dist/taro/types/taro.component.d.ts +168 -0
  586. package/dist/taro/types/taro.config.d.ts +712 -0
  587. package/dist/taro/types/taro.lifecycle.d.ts +220 -0
  588. package/dist/taro/types/taro.runtime.d.ts +9 -0
  589. package/dist/taro-h5/dist/api/ad/index.d.ts +2 -0
  590. package/dist/taro-h5/dist/api/ad/index.js +8 -0
  591. package/dist/taro-h5/dist/api/ad/index.js.map +1 -0
  592. package/dist/taro-h5/dist/api/ai/facial.d.ts +3 -0
  593. package/dist/taro-h5/dist/api/ai/facial.js +9 -0
  594. package/dist/taro-h5/dist/api/ai/facial.js.map +1 -0
  595. package/dist/taro-h5/dist/api/ai/index.d.ts +3 -0
  596. package/dist/taro-h5/dist/api/ai/index.js +4 -0
  597. package/dist/taro-h5/dist/api/ai/index.js.map +1 -0
  598. package/dist/taro-h5/dist/api/ai/inference.d.ts +2 -0
  599. package/dist/taro-h5/dist/api/ai/inference.js +8 -0
  600. package/dist/taro-h5/dist/api/ai/inference.js.map +1 -0
  601. package/dist/taro-h5/dist/api/ai/visual.d.ts +2 -0
  602. package/dist/taro-h5/dist/api/ai/visual.js +9 -0
  603. package/dist/taro-h5/dist/api/ai/visual.js.map +1 -0
  604. package/dist/taro-h5/dist/api/alipay/index.d.ts +2 -0
  605. package/dist/taro-h5/dist/api/alipay/index.js +8 -0
  606. package/dist/taro-h5/dist/api/alipay/index.js.map +1 -0
  607. package/dist/taro-h5/dist/api/base/crypto.d.ts +1 -0
  608. package/dist/taro-h5/dist/api/base/crypto.js +7 -0
  609. package/dist/taro-h5/dist/api/base/crypto.js.map +1 -0
  610. package/dist/taro-h5/dist/api/base/debug.d.ts +3 -0
  611. package/dist/taro-h5/dist/api/base/debug.js +8 -0
  612. package/dist/taro-h5/dist/api/base/debug.js.map +1 -0
  613. package/dist/taro-h5/dist/api/base/index.d.ts +15 -0
  614. package/dist/taro-h5/dist/api/base/index.js +26 -0
  615. package/dist/taro-h5/dist/api/base/index.js.map +1 -0
  616. package/dist/taro-h5/dist/api/base/performance.d.ts +5 -0
  617. package/dist/taro-h5/dist/api/base/performance.js +11 -0
  618. package/dist/taro-h5/dist/api/base/performance.js.map +1 -0
  619. package/dist/taro-h5/dist/api/base/system.d.ts +25 -0
  620. package/dist/taro-h5/dist/api/base/system.js +194 -0
  621. package/dist/taro-h5/dist/api/base/system.js.map +1 -0
  622. package/dist/taro-h5/dist/api/base/update.d.ts +2 -0
  623. package/dist/taro-h5/dist/api/base/update.js +8 -0
  624. package/dist/taro-h5/dist/api/base/update.js.map +1 -0
  625. package/dist/taro-h5/dist/api/base/weapp/app-event.d.ts +20 -0
  626. package/dist/taro-h5/dist/api/base/weapp/app-event.js +143 -0
  627. package/dist/taro-h5/dist/api/base/weapp/app-event.js.map +1 -0
  628. package/dist/taro-h5/dist/api/base/weapp/life-cycle.d.ts +4 -0
  629. package/dist/taro-h5/dist/api/base/weapp/life-cycle.js +19 -0
  630. package/dist/taro-h5/dist/api/base/weapp/life-cycle.js.map +1 -0
  631. package/dist/taro-h5/dist/api/canvas/CanvasContext.d.ts +106 -0
  632. package/dist/taro-h5/dist/api/canvas/CanvasContext.js +219 -0
  633. package/dist/taro-h5/dist/api/canvas/CanvasContext.js.map +1 -0
  634. package/dist/taro-h5/dist/api/canvas/canvasGetImageData.d.ts +6 -0
  635. package/dist/taro-h5/dist/api/canvas/canvasGetImageData.js +29 -0
  636. package/dist/taro-h5/dist/api/canvas/canvasGetImageData.js.map +1 -0
  637. package/dist/taro-h5/dist/api/canvas/canvasPutImageData.d.ts +7 -0
  638. package/dist/taro-h5/dist/api/canvas/canvasPutImageData.js +26 -0
  639. package/dist/taro-h5/dist/api/canvas/canvasPutImageData.js.map +1 -0
  640. package/dist/taro-h5/dist/api/canvas/canvasToTempFilePath.d.ts +7 -0
  641. package/dist/taro-h5/dist/api/canvas/canvasToTempFilePath.js +26 -0
  642. package/dist/taro-h5/dist/api/canvas/canvasToTempFilePath.js.map +1 -0
  643. package/dist/taro-h5/dist/api/canvas/createCanvasContext.d.ts +6 -0
  644. package/dist/taro-h5/dist/api/canvas/createCanvasContext.js +20 -0
  645. package/dist/taro-h5/dist/api/canvas/createCanvasContext.js.map +1 -0
  646. package/dist/taro-h5/dist/api/canvas/index.d.ts +10 -0
  647. package/dist/taro-h5/dist/api/canvas/index.js +12 -0
  648. package/dist/taro-h5/dist/api/canvas/index.js.map +1 -0
  649. package/dist/taro-h5/dist/api/cloud/index.d.ts +14 -0
  650. package/dist/taro-h5/dist/api/cloud/index.js +25 -0
  651. package/dist/taro-h5/dist/api/cloud/index.js.map +1 -0
  652. package/dist/taro-h5/dist/api/data-analysis/index.d.ts +4 -0
  653. package/dist/taro-h5/dist/api/data-analysis/index.js +9 -0
  654. package/dist/taro-h5/dist/api/data-analysis/index.js.map +1 -0
  655. package/dist/taro-h5/dist/api/device/accelerometer.d.ts +18 -0
  656. package/dist/taro-h5/dist/api/device/accelerometer.js +79 -0
  657. package/dist/taro-h5/dist/api/device/accelerometer.js.map +1 -0
  658. package/dist/taro-h5/dist/api/device/accessibility.d.ts +1 -0
  659. package/dist/taro-h5/dist/api/device/accessibility.js +7 -0
  660. package/dist/taro-h5/dist/api/device/accessibility.js.map +1 -0
  661. package/dist/taro-h5/dist/api/device/battery.d.ts +4 -0
  662. package/dist/taro-h5/dist/api/device/battery.js +27 -0
  663. package/dist/taro-h5/dist/api/device/battery.js.map +1 -0
  664. package/dist/taro-h5/dist/api/device/bluetooth-ble.d.ts +16 -0
  665. package/dist/taro-h5/dist/api/device/bluetooth-ble.js +22 -0
  666. package/dist/taro-h5/dist/api/device/bluetooth-ble.js.map +1 -0
  667. package/dist/taro-h5/dist/api/device/bluetooth-peripheral.d.ts +3 -0
  668. package/dist/taro-h5/dist/api/device/bluetooth-peripheral.js +9 -0
  669. package/dist/taro-h5/dist/api/device/bluetooth-peripheral.js.map +1 -0
  670. package/dist/taro-h5/dist/api/device/bluetooth.d.ts +13 -0
  671. package/dist/taro-h5/dist/api/device/bluetooth.js +19 -0
  672. package/dist/taro-h5/dist/api/device/bluetooth.js.map +1 -0
  673. package/dist/taro-h5/dist/api/device/calendar.d.ts +4 -0
  674. package/dist/taro-h5/dist/api/device/calendar.js +147 -0
  675. package/dist/taro-h5/dist/api/device/calendar.js.map +1 -0
  676. package/dist/taro-h5/dist/api/device/clipboard.d.ts +16 -0
  677. package/dist/taro-h5/dist/api/device/clipboard.js +77 -0
  678. package/dist/taro-h5/dist/api/device/clipboard.js.map +1 -0
  679. package/dist/taro-h5/dist/api/device/compass.d.ts +18 -0
  680. package/dist/taro-h5/dist/api/device/compass.js +82 -0
  681. package/dist/taro-h5/dist/api/device/compass.js.map +1 -0
  682. package/dist/taro-h5/dist/api/device/contact.d.ts +2 -0
  683. package/dist/taro-h5/dist/api/device/contact.js +8 -0
  684. package/dist/taro-h5/dist/api/device/contact.js.map +1 -0
  685. package/dist/taro-h5/dist/api/device/crypto.d.ts +1 -0
  686. package/dist/taro-h5/dist/api/device/crypto.js +7 -0
  687. package/dist/taro-h5/dist/api/device/crypto.js.map +1 -0
  688. package/dist/taro-h5/dist/api/device/gyroscope.d.ts +4 -0
  689. package/dist/taro-h5/dist/api/device/gyroscope.js +10 -0
  690. package/dist/taro-h5/dist/api/device/gyroscope.js.map +1 -0
  691. package/dist/taro-h5/dist/api/device/iBeacon.d.ts +7 -0
  692. package/dist/taro-h5/dist/api/device/iBeacon.js +13 -0
  693. package/dist/taro-h5/dist/api/device/iBeacon.js.map +1 -0
  694. package/dist/taro-h5/dist/api/device/index.d.ts +24 -0
  695. package/dist/taro-h5/dist/api/device/index.js +25 -0
  696. package/dist/taro-h5/dist/api/device/index.js.map +1 -0
  697. package/dist/taro-h5/dist/api/device/keyboard.d.ts +4 -0
  698. package/dist/taro-h5/dist/api/device/keyboard.js +10 -0
  699. package/dist/taro-h5/dist/api/device/keyboard.js.map +1 -0
  700. package/dist/taro-h5/dist/api/device/memory.d.ts +2 -0
  701. package/dist/taro-h5/dist/api/device/memory.js +8 -0
  702. package/dist/taro-h5/dist/api/device/memory.js.map +1 -0
  703. package/dist/taro-h5/dist/api/device/motion.d.ts +18 -0
  704. package/dist/taro-h5/dist/api/device/motion.js +76 -0
  705. package/dist/taro-h5/dist/api/device/motion.js.map +1 -0
  706. package/dist/taro-h5/dist/api/device/network.d.ts +15 -0
  707. package/dist/taro-h5/dist/api/device/network.js +83 -0
  708. package/dist/taro-h5/dist/api/device/network.js.map +1 -0
  709. package/dist/taro-h5/dist/api/device/nfc.d.ts +7 -0
  710. package/dist/taro-h5/dist/api/device/nfc.js +13 -0
  711. package/dist/taro-h5/dist/api/device/nfc.js.map +1 -0
  712. package/dist/taro-h5/dist/api/device/phone.d.ts +3 -0
  713. package/dist/taro-h5/dist/api/device/phone.js +28 -0
  714. package/dist/taro-h5/dist/api/device/phone.js.map +1 -0
  715. package/dist/taro-h5/dist/api/device/scan.d.ts +3 -0
  716. package/dist/taro-h5/dist/api/device/scan.js +14 -0
  717. package/dist/taro-h5/dist/api/device/scan.js.map +1 -0
  718. package/dist/taro-h5/dist/api/device/screen.d.ts +9 -0
  719. package/dist/taro-h5/dist/api/device/screen.js +15 -0
  720. package/dist/taro-h5/dist/api/device/screen.js.map +1 -0
  721. package/dist/taro-h5/dist/api/device/sms.d.ts +1 -0
  722. package/dist/taro-h5/dist/api/device/sms.js +7 -0
  723. package/dist/taro-h5/dist/api/device/sms.js.map +1 -0
  724. package/dist/taro-h5/dist/api/device/vibrate.d.ts +10 -0
  725. package/dist/taro-h5/dist/api/device/vibrate.js +44 -0
  726. package/dist/taro-h5/dist/api/device/vibrate.js.map +1 -0
  727. package/dist/taro-h5/dist/api/device/wifi.d.ts +12 -0
  728. package/dist/taro-h5/dist/api/device/wifi.js +18 -0
  729. package/dist/taro-h5/dist/api/device/wifi.js.map +1 -0
  730. package/dist/taro-h5/dist/api/ext/index.d.ts +2 -0
  731. package/dist/taro-h5/dist/api/ext/index.js +8 -0
  732. package/dist/taro-h5/dist/api/ext/index.js.map +1 -0
  733. package/dist/taro-h5/dist/api/files/index.d.ts +8 -0
  734. package/dist/taro-h5/dist/api/files/index.js +14 -0
  735. package/dist/taro-h5/dist/api/files/index.js.map +1 -0
  736. package/dist/taro-h5/dist/api/framework/index.d.ts +5 -0
  737. package/dist/taro-h5/dist/api/framework/index.js +11 -0
  738. package/dist/taro-h5/dist/api/framework/index.js.map +1 -0
  739. package/dist/taro-h5/dist/api/index.d.ts +25 -0
  740. package/dist/taro-h5/dist/api/index.js +133 -0
  741. package/dist/taro-h5/dist/api/index.js.map +1 -0
  742. package/dist/taro-h5/dist/api/location/chooseLocation.d.ts +7 -0
  743. package/dist/taro-h5/dist/api/location/chooseLocation.js +105 -0
  744. package/dist/taro-h5/dist/api/location/chooseLocation.js.map +1 -0
  745. package/dist/taro-h5/dist/api/location/getLocation.d.ts +3 -0
  746. package/dist/taro-h5/dist/api/location/getLocation.js +68 -0
  747. package/dist/taro-h5/dist/api/location/getLocation.js.map +1 -0
  748. package/dist/taro-h5/dist/api/location/index.d.ts +9 -0
  749. package/dist/taro-h5/dist/api/location/index.js +15 -0
  750. package/dist/taro-h5/dist/api/location/index.js.map +1 -0
  751. package/dist/taro-h5/dist/api/location/locationChange.d.ts +6 -0
  752. package/dist/taro-h5/dist/api/location/locationChange.js +130 -0
  753. package/dist/taro-h5/dist/api/location/locationChange.js.map +1 -0
  754. package/dist/taro-h5/dist/api/location/style.scss.js +8 -0
  755. package/dist/taro-h5/dist/api/location/style.scss.js.map +1 -0
  756. package/dist/taro-h5/dist/api/location/utils.d.ts +1 -0
  757. package/dist/taro-h5/dist/api/location/utils.js +4 -0
  758. package/dist/taro-h5/dist/api/location/utils.js.map +1 -0
  759. package/dist/taro-h5/dist/api/media/EditorContext.d.ts +17 -0
  760. package/dist/taro-h5/dist/api/media/audio/InnerAudioContext.d.ts +61 -0
  761. package/dist/taro-h5/dist/api/media/audio/InnerAudioContext.js +101 -0
  762. package/dist/taro-h5/dist/api/media/audio/InnerAudioContext.js.map +1 -0
  763. package/dist/taro-h5/dist/api/media/audio/index.d.ts +14 -0
  764. package/dist/taro-h5/dist/api/media/audio/index.js +19 -0
  765. package/dist/taro-h5/dist/api/media/audio/index.js.map +1 -0
  766. package/dist/taro-h5/dist/api/media/background-audio/BackgroundAudioManager.d.ts +64 -0
  767. package/dist/taro-h5/dist/api/media/background-audio/BackgroundAudioManager.js +101 -0
  768. package/dist/taro-h5/dist/api/media/background-audio/BackgroundAudioManager.js.map +1 -0
  769. package/dist/taro-h5/dist/api/media/background-audio/index.d.ts +13 -0
  770. package/dist/taro-h5/dist/api/media/background-audio/index.js +24 -0
  771. package/dist/taro-h5/dist/api/media/background-audio/index.js.map +1 -0
  772. package/dist/taro-h5/dist/api/media/camera.d.ts +1 -0
  773. package/dist/taro-h5/dist/api/media/camera.js +7 -0
  774. package/dist/taro-h5/dist/api/media/camera.js.map +1 -0
  775. package/dist/taro-h5/dist/api/media/image/chooseImage.d.ts +7 -0
  776. package/dist/taro-h5/dist/api/media/image/chooseImage.js +46 -0
  777. package/dist/taro-h5/dist/api/media/image/chooseImage.js.map +1 -0
  778. package/dist/taro-h5/dist/api/media/image/getImageInfo.d.ts +6 -0
  779. package/dist/taro-h5/dist/api/media/image/getImageInfo.js +50 -0
  780. package/dist/taro-h5/dist/api/media/image/getImageInfo.js.map +1 -0
  781. package/dist/taro-h5/dist/api/media/image/index.d.ts +11 -0
  782. package/dist/taro-h5/dist/api/media/image/index.js +14 -0
  783. package/dist/taro-h5/dist/api/media/image/index.js.map +1 -0
  784. package/dist/taro-h5/dist/api/media/image/previewImage.d.ts +9 -0
  785. package/dist/taro-h5/dist/api/media/image/previewImage.js +85 -0
  786. package/dist/taro-h5/dist/api/media/image/previewImage.js.map +1 -0
  787. package/dist/taro-h5/dist/api/media/image/saveImageToPhotosAlbum.d.ts +3 -0
  788. package/dist/taro-h5/dist/api/media/image/saveImageToPhotosAlbum.js +30 -0
  789. package/dist/taro-h5/dist/api/media/image/saveImageToPhotosAlbum.js.map +1 -0
  790. package/dist/taro-h5/dist/api/media/index.d.ts +12 -0
  791. package/dist/taro-h5/dist/api/media/index.js +13 -0
  792. package/dist/taro-h5/dist/api/media/index.js.map +1 -0
  793. package/dist/taro-h5/dist/api/media/live.d.ts +2 -0
  794. package/dist/taro-h5/dist/api/media/live.js +8 -0
  795. package/dist/taro-h5/dist/api/media/live.js.map +1 -0
  796. package/dist/taro-h5/dist/api/media/map.d.ts +1 -0
  797. package/dist/taro-h5/dist/api/media/map.js +7 -0
  798. package/dist/taro-h5/dist/api/media/map.js.map +1 -0
  799. package/dist/taro-h5/dist/api/media/media-recorder.d.ts +1 -0
  800. package/dist/taro-h5/dist/api/media/media-recorder.js +7 -0
  801. package/dist/taro-h5/dist/api/media/media-recorder.js.map +1 -0
  802. package/dist/taro-h5/dist/api/media/recorder.d.ts +3 -0
  803. package/dist/taro-h5/dist/api/media/recorder.js +9 -0
  804. package/dist/taro-h5/dist/api/media/recorder.js.map +1 -0
  805. package/dist/taro-h5/dist/api/media/video/chooseMedia.d.ts +6 -0
  806. package/dist/taro-h5/dist/api/media/video/chooseMedia.js +210 -0
  807. package/dist/taro-h5/dist/api/media/video/chooseMedia.js.map +1 -0
  808. package/dist/taro-h5/dist/api/media/video/chooseVideo.d.ts +7 -0
  809. package/dist/taro-h5/dist/api/media/video/chooseVideo.js +44 -0
  810. package/dist/taro-h5/dist/api/media/video/chooseVideo.js.map +1 -0
  811. package/dist/taro-h5/dist/api/media/video/getVideoInfo.d.ts +4 -0
  812. package/dist/taro-h5/dist/api/media/video/getVideoInfo.js +63 -0
  813. package/dist/taro-h5/dist/api/media/video/getVideoInfo.js.map +1 -0
  814. package/dist/taro-h5/dist/api/media/video/index.d.ts +12 -0
  815. package/dist/taro-h5/dist/api/media/video/index.js +19 -0
  816. package/dist/taro-h5/dist/api/media/video/index.js.map +1 -0
  817. package/dist/taro-h5/dist/api/media/video/saveVideoToPhotosAlbum.d.ts +3 -0
  818. package/dist/taro-h5/dist/api/media/video/saveVideoToPhotosAlbum.js +30 -0
  819. package/dist/taro-h5/dist/api/media/video/saveVideoToPhotosAlbum.js.map +1 -0
  820. package/dist/taro-h5/dist/api/media/video-decoder.d.ts +1 -0
  821. package/dist/taro-h5/dist/api/media/video-decoder.js +7 -0
  822. package/dist/taro-h5/dist/api/media/video-decoder.js.map +1 -0
  823. package/dist/taro-h5/dist/api/media/video-processing.d.ts +1 -0
  824. package/dist/taro-h5/dist/api/media/video-processing.js +7 -0
  825. package/dist/taro-h5/dist/api/media/video-processing.js.map +1 -0
  826. package/dist/taro-h5/dist/api/media/voip.d.ts +16 -0
  827. package/dist/taro-h5/dist/api/media/voip.js +22 -0
  828. package/dist/taro-h5/dist/api/media/voip.js.map +1 -0
  829. package/dist/taro-h5/dist/api/navigate/index.d.ts +5 -0
  830. package/dist/taro-h5/dist/api/navigate/index.js +11 -0
  831. package/dist/taro-h5/dist/api/navigate/index.js.map +1 -0
  832. package/dist/taro-h5/dist/api/network/download.d.ts +7 -0
  833. package/dist/taro-h5/dist/api/network/download.js +138 -0
  834. package/dist/taro-h5/dist/api/network/download.js.map +1 -0
  835. package/dist/taro-h5/dist/api/network/index.d.ts +7 -0
  836. package/dist/taro-h5/dist/api/network/index.js +8 -0
  837. package/dist/taro-h5/dist/api/network/index.js.map +1 -0
  838. package/dist/taro-h5/dist/api/network/mdns.d.ts +10 -0
  839. package/dist/taro-h5/dist/api/network/mdns.js +16 -0
  840. package/dist/taro-h5/dist/api/network/mdns.js.map +1 -0
  841. package/dist/taro-h5/dist/api/network/request/index.d.ts +7 -0
  842. package/dist/taro-h5/dist/api/network/request/index.js +179 -0
  843. package/dist/taro-h5/dist/api/network/request/index.js.map +1 -0
  844. package/dist/taro-h5/dist/api/network/tcp.d.ts +1 -0
  845. package/dist/taro-h5/dist/api/network/tcp.js +7 -0
  846. package/dist/taro-h5/dist/api/network/tcp.js.map +1 -0
  847. package/dist/taro-h5/dist/api/network/udp.d.ts +1 -0
  848. package/dist/taro-h5/dist/api/network/udp.js +7 -0
  849. package/dist/taro-h5/dist/api/network/udp.js.map +1 -0
  850. package/dist/taro-h5/dist/api/network/upload.d.ts +6 -0
  851. package/dist/taro-h5/dist/api/network/upload.js +159 -0
  852. package/dist/taro-h5/dist/api/network/upload.js.map +1 -0
  853. package/dist/taro-h5/dist/api/network/utils.d.ts +44 -0
  854. package/dist/taro-h5/dist/api/network/utils.js +69 -0
  855. package/dist/taro-h5/dist/api/network/utils.js.map +1 -0
  856. package/dist/taro-h5/dist/api/network/websocket/index.d.ts +9 -0
  857. package/dist/taro-h5/dist/api/network/websocket/index.js +74 -0
  858. package/dist/taro-h5/dist/api/network/websocket/index.js.map +1 -0
  859. package/dist/taro-h5/dist/api/network/websocket/socketTask.d.ts +26 -0
  860. package/dist/taro-h5/dist/api/network/websocket/socketTask.js +68 -0
  861. package/dist/taro-h5/dist/api/network/websocket/socketTask.js.map +1 -0
  862. package/dist/taro-h5/dist/api/open-api/account.d.ts +1 -0
  863. package/dist/taro-h5/dist/api/open-api/account.js +7 -0
  864. package/dist/taro-h5/dist/api/open-api/account.js.map +1 -0
  865. package/dist/taro-h5/dist/api/open-api/address.d.ts +1 -0
  866. package/dist/taro-h5/dist/api/open-api/address.js +7 -0
  867. package/dist/taro-h5/dist/api/open-api/address.js.map +1 -0
  868. package/dist/taro-h5/dist/api/open-api/authorize.d.ts +2 -0
  869. package/dist/taro-h5/dist/api/open-api/authorize.js +8 -0
  870. package/dist/taro-h5/dist/api/open-api/authorize.js.map +1 -0
  871. package/dist/taro-h5/dist/api/open-api/card.d.ts +2 -0
  872. package/dist/taro-h5/dist/api/open-api/card.js +8 -0
  873. package/dist/taro-h5/dist/api/open-api/card.js.map +1 -0
  874. package/dist/taro-h5/dist/api/open-api/channels-live.d.ts +8 -0
  875. package/dist/taro-h5/dist/api/open-api/channels-live.js +14 -0
  876. package/dist/taro-h5/dist/api/open-api/channels-live.js.map +1 -0
  877. package/dist/taro-h5/dist/api/open-api/customer-service.d.ts +1 -0
  878. package/dist/taro-h5/dist/api/open-api/customer-service.js +7 -0
  879. package/dist/taro-h5/dist/api/open-api/customer-service.js.map +1 -0
  880. package/dist/taro-h5/dist/api/open-api/device-voip.d.ts +2 -0
  881. package/dist/taro-h5/dist/api/open-api/device-voip.js +8 -0
  882. package/dist/taro-h5/dist/api/open-api/device-voip.js.map +1 -0
  883. package/dist/taro-h5/dist/api/open-api/facial.d.ts +4 -0
  884. package/dist/taro-h5/dist/api/open-api/facial.js +10 -0
  885. package/dist/taro-h5/dist/api/open-api/facial.js.map +1 -0
  886. package/dist/taro-h5/dist/api/open-api/favorites.d.ts +2 -0
  887. package/dist/taro-h5/dist/api/open-api/favorites.js +8 -0
  888. package/dist/taro-h5/dist/api/open-api/favorites.js.map +1 -0
  889. package/dist/taro-h5/dist/api/open-api/group.d.ts +1 -0
  890. package/dist/taro-h5/dist/api/open-api/group.js +7 -0
  891. package/dist/taro-h5/dist/api/open-api/group.js.map +1 -0
  892. package/dist/taro-h5/dist/api/open-api/index.d.ts +21 -0
  893. package/dist/taro-h5/dist/api/open-api/index.js +22 -0
  894. package/dist/taro-h5/dist/api/open-api/index.js.map +1 -0
  895. package/dist/taro-h5/dist/api/open-api/invoice.d.ts +2 -0
  896. package/dist/taro-h5/dist/api/open-api/invoice.js +8 -0
  897. package/dist/taro-h5/dist/api/open-api/invoice.js.map +1 -0
  898. package/dist/taro-h5/dist/api/open-api/license-plate.d.ts +1 -0
  899. package/dist/taro-h5/dist/api/open-api/license-plate.js +7 -0
  900. package/dist/taro-h5/dist/api/open-api/license-plate.js.map +1 -0
  901. package/dist/taro-h5/dist/api/open-api/login.d.ts +3 -0
  902. package/dist/taro-h5/dist/api/open-api/login.js +9 -0
  903. package/dist/taro-h5/dist/api/open-api/login.js.map +1 -0
  904. package/dist/taro-h5/dist/api/open-api/my-miniprogram.d.ts +1 -0
  905. package/dist/taro-h5/dist/api/open-api/my-miniprogram.js +7 -0
  906. package/dist/taro-h5/dist/api/open-api/my-miniprogram.js.map +1 -0
  907. package/dist/taro-h5/dist/api/open-api/privacy.d.ts +4 -0
  908. package/dist/taro-h5/dist/api/open-api/privacy.js +10 -0
  909. package/dist/taro-h5/dist/api/open-api/privacy.js.map +1 -0
  910. package/dist/taro-h5/dist/api/open-api/red-package.d.ts +1 -0
  911. package/dist/taro-h5/dist/api/open-api/red-package.js +7 -0
  912. package/dist/taro-h5/dist/api/open-api/red-package.js.map +1 -0
  913. package/dist/taro-h5/dist/api/open-api/settings.d.ts +2 -0
  914. package/dist/taro-h5/dist/api/open-api/settings.js +8 -0
  915. package/dist/taro-h5/dist/api/open-api/settings.js.map +1 -0
  916. package/dist/taro-h5/dist/api/open-api/soter.d.ts +3 -0
  917. package/dist/taro-h5/dist/api/open-api/soter.js +9 -0
  918. package/dist/taro-h5/dist/api/open-api/soter.js.map +1 -0
  919. package/dist/taro-h5/dist/api/open-api/subscribe-message.d.ts +2 -0
  920. package/dist/taro-h5/dist/api/open-api/subscribe-message.js +9 -0
  921. package/dist/taro-h5/dist/api/open-api/subscribe-message.js.map +1 -0
  922. package/dist/taro-h5/dist/api/open-api/user-info.d.ts +2 -0
  923. package/dist/taro-h5/dist/api/open-api/user-info.js +8 -0
  924. package/dist/taro-h5/dist/api/open-api/user-info.js.map +1 -0
  925. package/dist/taro-h5/dist/api/open-api/werun.d.ts +2 -0
  926. package/dist/taro-h5/dist/api/open-api/werun.js +8 -0
  927. package/dist/taro-h5/dist/api/open-api/werun.js.map +1 -0
  928. package/dist/taro-h5/dist/api/payment/index.d.ts +3 -0
  929. package/dist/taro-h5/dist/api/payment/index.js +9 -0
  930. package/dist/taro-h5/dist/api/payment/index.js.map +1 -0
  931. package/dist/taro-h5/dist/api/qq/index.d.ts +9 -0
  932. package/dist/taro-h5/dist/api/qq/index.js +15 -0
  933. package/dist/taro-h5/dist/api/qq/index.js.map +1 -0
  934. package/dist/taro-h5/dist/api/route/index.d.ts +7 -0
  935. package/dist/taro-h5/dist/api/route/index.js +12 -0
  936. package/dist/taro-h5/dist/api/route/index.js.map +1 -0
  937. package/dist/taro-h5/dist/api/share/index.d.ts +20 -0
  938. package/dist/taro-h5/dist/api/share/index.js +26 -0
  939. package/dist/taro-h5/dist/api/share/index.js.map +1 -0
  940. package/dist/taro-h5/dist/api/storage/background-fetch.d.ts +4 -0
  941. package/dist/taro-h5/dist/api/storage/background-fetch.js +10 -0
  942. package/dist/taro-h5/dist/api/storage/background-fetch.js.map +1 -0
  943. package/dist/taro-h5/dist/api/storage/cache-manager.d.ts +1 -0
  944. package/dist/taro-h5/dist/api/storage/cache-manager.js +7 -0
  945. package/dist/taro-h5/dist/api/storage/cache-manager.js.map +1 -0
  946. package/dist/taro-h5/dist/api/storage/index.d.ts +20 -0
  947. package/dist/taro-h5/dist/api/storage/index.js +166 -0
  948. package/dist/taro-h5/dist/api/storage/index.js.map +1 -0
  949. package/dist/taro-h5/dist/api/swan/index.d.ts +21 -0
  950. package/dist/taro-h5/dist/api/swan/index.js +30 -0
  951. package/dist/taro-h5/dist/api/swan/index.js.map +1 -0
  952. package/dist/taro-h5/dist/api/taro.d.ts +25 -0
  953. package/dist/taro-h5/dist/api/taro.js +114 -0
  954. package/dist/taro-h5/dist/api/taro.js.map +1 -0
  955. package/dist/taro-h5/dist/api/ui/animation/index.d.ts +3 -0
  956. package/dist/taro-h5/dist/api/ui/animation/index.js +321 -0
  957. package/dist/taro-h5/dist/api/ui/animation/index.js.map +1 -0
  958. package/dist/taro-h5/dist/api/ui/animation/worklet.d.ts +2 -0
  959. package/dist/taro-h5/dist/api/ui/animation/worklet.js +24 -0
  960. package/dist/taro-h5/dist/api/ui/animation/worklet.js.map +1 -0
  961. package/dist/taro-h5/dist/api/ui/background.d.ts +2 -0
  962. package/dist/taro-h5/dist/api/ui/background.js +8 -0
  963. package/dist/taro-h5/dist/api/ui/background.js.map +1 -0
  964. package/dist/taro-h5/dist/api/ui/custom-component.d.ts +1 -0
  965. package/dist/taro-h5/dist/api/ui/custom-component.js +7 -0
  966. package/dist/taro-h5/dist/api/ui/custom-component.js.map +1 -0
  967. package/dist/taro-h5/dist/api/ui/fonts.d.ts +3 -0
  968. package/dist/taro-h5/dist/api/ui/fonts.js +57 -0
  969. package/dist/taro-h5/dist/api/ui/fonts.js.map +1 -0
  970. package/dist/taro-h5/dist/api/ui/index.d.ts +13 -0
  971. package/dist/taro-h5/dist/api/ui/index.js +14 -0
  972. package/dist/taro-h5/dist/api/ui/index.js.map +1 -0
  973. package/dist/taro-h5/dist/api/ui/interaction/actionSheet.d.ts +74 -0
  974. package/dist/taro-h5/dist/api/ui/interaction/actionSheet.js +212 -0
  975. package/dist/taro-h5/dist/api/ui/interaction/actionSheet.js.map +1 -0
  976. package/dist/taro-h5/dist/api/ui/interaction/index.d.ts +11 -0
  977. package/dist/taro-h5/dist/api/ui/interaction/index.js +279 -0
  978. package/dist/taro-h5/dist/api/ui/interaction/index.js.map +1 -0
  979. package/dist/taro-h5/dist/api/ui/interaction/modal.d.ts +72 -0
  980. package/dist/taro-h5/dist/api/ui/interaction/modal.js +207 -0
  981. package/dist/taro-h5/dist/api/ui/interaction/modal.js.map +1 -0
  982. package/dist/taro-h5/dist/api/ui/interaction/toast.d.ts +86 -0
  983. package/dist/taro-h5/dist/api/ui/interaction/toast.js +185 -0
  984. package/dist/taro-h5/dist/api/ui/interaction/toast.js.map +1 -0
  985. package/dist/taro-h5/dist/api/ui/menu.d.ts +1 -0
  986. package/dist/taro-h5/dist/api/ui/menu.js +7 -0
  987. package/dist/taro-h5/dist/api/ui/menu.js.map +1 -0
  988. package/dist/taro-h5/dist/api/ui/navigation-bar/index.d.ts +16 -0
  989. package/dist/taro-h5/dist/api/ui/navigation-bar/index.js +62 -0
  990. package/dist/taro-h5/dist/api/ui/navigation-bar/index.js.map +1 -0
  991. package/dist/taro-h5/dist/api/ui/pull-down-refresh.d.ts +10 -0
  992. package/dist/taro-h5/dist/api/ui/pull-down-refresh.js +30 -0
  993. package/dist/taro-h5/dist/api/ui/pull-down-refresh.js.map +1 -0
  994. package/dist/taro-h5/dist/api/ui/scroll/index.d.ts +6 -0
  995. package/dist/taro-h5/dist/api/ui/scroll/index.js +89 -0
  996. package/dist/taro-h5/dist/api/ui/scroll/index.js.map +1 -0
  997. package/dist/taro-h5/dist/api/ui/sticky.d.ts +1 -0
  998. package/dist/taro-h5/dist/api/ui/sticky.js +7 -0
  999. package/dist/taro-h5/dist/api/ui/sticky.js.map +1 -0
  1000. package/dist/taro-h5/dist/api/ui/tab-bar.d.ts +35 -0
  1001. package/dist/taro-h5/dist/api/ui/tab-bar.js +287 -0
  1002. package/dist/taro-h5/dist/api/ui/tab-bar.js.map +1 -0
  1003. package/dist/taro-h5/dist/api/ui/window.d.ts +15 -0
  1004. package/dist/taro-h5/dist/api/ui/window.js +36 -0
  1005. package/dist/taro-h5/dist/api/ui/window.js.map +1 -0
  1006. package/dist/taro-h5/dist/api/worker/index.d.ts +1 -0
  1007. package/dist/taro-h5/dist/api/worker/index.js +7 -0
  1008. package/dist/taro-h5/dist/api/worker/index.js.map +1 -0
  1009. package/dist/taro-h5/dist/api/wxml/IntersectionObserver.d.ts +21 -0
  1010. package/dist/taro-h5/dist/api/wxml/IntersectionObserver.js +113 -0
  1011. package/dist/taro-h5/dist/api/wxml/IntersectionObserver.js.map +1 -0
  1012. package/dist/taro-h5/dist/api/wxml/MediaQueryObserver.d.ts +8 -0
  1013. package/dist/taro-h5/dist/api/wxml/MediaQueryObserver.js +55 -0
  1014. package/dist/taro-h5/dist/api/wxml/MediaQueryObserver.js.map +1 -0
  1015. package/dist/taro-h5/dist/api/wxml/index.d.ts +7 -0
  1016. package/dist/taro-h5/dist/api/wxml/index.js +17 -0
  1017. package/dist/taro-h5/dist/api/wxml/index.js.map +1 -0
  1018. package/dist/taro-h5/dist/api/wxml/nodesRef.d.ts +15 -0
  1019. package/dist/taro-h5/dist/api/wxml/nodesRef.js +48 -0
  1020. package/dist/taro-h5/dist/api/wxml/nodesRef.js.map +1 -0
  1021. package/dist/taro-h5/dist/api/wxml/selectorQuery.d.ts +25 -0
  1022. package/dist/taro-h5/dist/api/wxml/selectorQuery.js +214 -0
  1023. package/dist/taro-h5/dist/api/wxml/selectorQuery.js.map +1 -0
  1024. package/dist/taro-h5/dist/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js +29 -0
  1025. package/dist/taro-h5/dist/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
  1026. package/dist/taro-h5/dist/utils/animation.d.ts +6 -0
  1027. package/dist/taro-h5/dist/utils/animation.js +17 -0
  1028. package/dist/taro-h5/dist/utils/animation.js.map +1 -0
  1029. package/dist/taro-h5/dist/utils/handler.d.ts +42 -0
  1030. package/dist/taro-h5/dist/utils/handler.js +86 -0
  1031. package/dist/taro-h5/dist/utils/handler.js.map +1 -0
  1032. package/dist/taro-h5/dist/utils/helper.d.ts +1 -0
  1033. package/dist/taro-h5/dist/utils/helper.js +11 -0
  1034. package/dist/taro-h5/dist/utils/helper.js.map +1 -0
  1035. package/dist/taro-h5/dist/utils/index.d.ts +40 -0
  1036. package/dist/taro-h5/dist/utils/index.js +181 -0
  1037. package/dist/taro-h5/dist/utils/index.js.map +1 -0
  1038. package/dist/taro-h5/dist/utils/valid.d.ts +1 -0
  1039. package/dist/taro-h5/dist/utils/valid.js +7 -0
  1040. package/dist/taro-h5/dist/utils/valid.js.map +1 -0
  1041. package/dist/taro-h5/types/api.d.ts +4 -0
  1042. package/dist/taro-h5/types/component.d.ts +6 -0
  1043. package/dist/taro-h5/types/define.d.ts +2 -0
  1044. package/dist/taro-h5/types/global.d.ts +1 -0
  1045. package/dist/taro-h5/types/index.d.ts +33 -0
  1046. package/dist/taro-h5/types/overlay.d.ts +9 -0
  1047. package/package.json +143 -8
  1048. package/dist/index.cjs.d.ts +0 -921
  1049. package/dist/index.cjs.js +0 -5406
  1050. package/dist/index.cjs.js.map +0 -1
  1051. /package/dist/{bom → runtime/bom}/URL.d.ts +0 -0
  1052. /package/dist/{bom → runtime/bom}/URL.js +0 -0
  1053. /package/dist/{bom → runtime/bom}/URL.js.map +0 -0
  1054. /package/dist/{bom → runtime/bom}/URLSearchParams.d.ts +0 -0
  1055. /package/dist/{bom → runtime/bom}/URLSearchParams.js +0 -0
  1056. /package/dist/{bom → runtime/bom}/URLSearchParams.js.map +0 -0
  1057. /package/dist/{bom → runtime/bom}/document.d.ts +0 -0
  1058. /package/dist/{bom → runtime/bom}/document.js +0 -0
  1059. /package/dist/{bom → runtime/bom}/document.js.map +0 -0
  1060. /package/dist/{bom → runtime/bom}/getComputedStyle.d.ts +0 -0
  1061. /package/dist/{bom → runtime/bom}/getComputedStyle.js +0 -0
  1062. /package/dist/{bom → runtime/bom}/getComputedStyle.js.map +0 -0
  1063. /package/dist/{bom → runtime/bom}/history.d.ts +0 -0
  1064. /package/dist/{bom → runtime/bom}/history.js +0 -0
  1065. /package/dist/{bom → runtime/bom}/history.js.map +0 -0
  1066. /package/dist/{bom → runtime/bom}/location.d.ts +0 -0
  1067. /package/dist/{bom → runtime/bom}/location.js +0 -0
  1068. /package/dist/{bom → runtime/bom}/location.js.map +0 -0
  1069. /package/dist/{bom → runtime/bom}/navigator.d.ts +0 -0
  1070. /package/dist/{bom → runtime/bom}/navigator.js +0 -0
  1071. /package/dist/{bom → runtime/bom}/navigator.js.map +0 -0
  1072. /package/dist/{bom → runtime/bom}/raf.d.ts +0 -0
  1073. /package/dist/{bom → runtime/bom}/raf.js +0 -0
  1074. /package/dist/{bom → runtime/bom}/raf.js.map +0 -0
  1075. /package/dist/{bom → runtime/bom}/window.d.ts +0 -0
  1076. /package/dist/{bom → runtime/bom}/window.js +0 -0
  1077. /package/dist/{bom → runtime/bom}/window.js.map +0 -0
  1078. /package/dist/{constants → runtime/constants}/index.d.ts +0 -0
  1079. /package/dist/{constants → runtime/constants}/index.js +0 -0
  1080. /package/dist/{constants → runtime/constants}/index.js.map +0 -0
  1081. /package/dist/{current.d.ts → runtime/current.d.ts} +0 -0
  1082. /package/dist/{current.js → runtime/current.js} +0 -0
  1083. /package/dist/{current.js.map → runtime/current.js.map} +0 -0
  1084. /package/dist/{dom → runtime/dom}/anchor-element.js +0 -0
  1085. /package/dist/{dom → runtime/dom}/anchor-element.js.map +0 -0
  1086. /package/dist/{dom → runtime/dom}/class-list.d.ts +0 -0
  1087. /package/dist/{dom → runtime/dom}/class-list.js +0 -0
  1088. /package/dist/{dom → runtime/dom}/class-list.js.map +0 -0
  1089. /package/dist/{dom → runtime/dom}/document.d.ts +0 -0
  1090. /package/dist/{dom → runtime/dom}/document.js +0 -0
  1091. /package/dist/{dom → runtime/dom}/document.js.map +0 -0
  1092. /package/dist/{dom → runtime/dom}/element.d.ts +0 -0
  1093. /package/dist/{dom → runtime/dom}/element.js +0 -0
  1094. /package/dist/{dom → runtime/dom}/element.js.map +0 -0
  1095. /package/dist/{dom → runtime/dom}/event-source.d.ts +0 -0
  1096. /package/dist/{dom → runtime/dom}/event-source.js +0 -0
  1097. /package/dist/{dom → runtime/dom}/event-source.js.map +0 -0
  1098. /package/dist/{dom → runtime/dom}/event-target.d.ts +0 -0
  1099. /package/dist/{dom → runtime/dom}/event-target.js +0 -0
  1100. /package/dist/{dom → runtime/dom}/event-target.js.map +0 -0
  1101. /package/dist/{dom → runtime/dom}/event.d.ts +0 -0
  1102. /package/dist/{dom → runtime/dom}/event.js +0 -0
  1103. /package/dist/{dom → runtime/dom}/event.js.map +0 -0
  1104. /package/dist/{dom → runtime/dom}/form.d.ts +0 -0
  1105. /package/dist/{dom → runtime/dom}/form.js +0 -0
  1106. /package/dist/{dom → runtime/dom}/form.js.map +0 -0
  1107. /package/dist/{dom → runtime/dom}/node.d.ts +0 -0
  1108. /package/dist/{dom → runtime/dom}/node.js +0 -0
  1109. /package/dist/{dom → runtime/dom}/node.js.map +0 -0
  1110. /package/dist/{dom → runtime/dom}/node_types.d.ts +0 -0
  1111. /package/dist/{dom → runtime/dom}/root.d.ts +0 -0
  1112. /package/dist/{dom → runtime/dom}/root.js +0 -0
  1113. /package/dist/{dom → runtime/dom}/root.js.map +0 -0
  1114. /package/dist/{dom → runtime/dom}/style.d.ts +0 -0
  1115. /package/dist/{dom → runtime/dom}/style.js +0 -0
  1116. /package/dist/{dom → runtime/dom}/style.js.map +0 -0
  1117. /package/dist/{dom → runtime/dom}/style_properties.js +0 -0
  1118. /package/dist/{dom → runtime/dom}/style_properties.js.map +0 -0
  1119. /package/dist/{dom → runtime/dom}/svg.d.ts +0 -0
  1120. /package/dist/{dom → runtime/dom}/svg.js +0 -0
  1121. /package/dist/{dom → runtime/dom}/svg.js.map +0 -0
  1122. /package/dist/{dom → runtime/dom}/text.d.ts +0 -0
  1123. /package/dist/{dom → runtime/dom}/text.js +0 -0
  1124. /package/dist/{dom → runtime/dom}/text.js.map +0 -0
  1125. /package/dist/{dom → runtime/dom}/transfer.js +0 -0
  1126. /package/dist/{dom → runtime/dom}/transfer.js.map +0 -0
  1127. /package/dist/{dom → runtime/dom}/tree.js +0 -0
  1128. /package/dist/{dom → runtime/dom}/tree.js.map +0 -0
  1129. /package/dist/{dom-external → runtime/dom-external}/element.js +0 -0
  1130. /package/dist/{dom-external → runtime/dom-external}/element.js.map +0 -0
  1131. /package/dist/{dom-external → runtime/dom-external}/index.js +0 -0
  1132. /package/dist/{dom-external → runtime/dom-external}/index.js.map +0 -0
  1133. /package/dist/{dom-external → runtime/dom-external}/inner-html/html.d.ts +0 -0
  1134. /package/dist/{dom-external → runtime/dom-external}/inner-html/html.js +0 -0
  1135. /package/dist/{dom-external → runtime/dom-external}/inner-html/html.js.map +0 -0
  1136. /package/dist/{dom-external → runtime/dom-external}/inner-html/parser.d.ts +0 -0
  1137. /package/dist/{dom-external → runtime/dom-external}/inner-html/parser.js +0 -0
  1138. /package/dist/{dom-external → runtime/dom-external}/inner-html/parser.js.map +0 -0
  1139. /package/dist/{dom-external → runtime/dom-external}/inner-html/scanner.js +0 -0
  1140. /package/dist/{dom-external → runtime/dom-external}/inner-html/scanner.js.map +0 -0
  1141. /package/dist/{dom-external → runtime/dom-external}/inner-html/style.js +0 -0
  1142. /package/dist/{dom-external → runtime/dom-external}/inner-html/style.js.map +0 -0
  1143. /package/dist/{dom-external → runtime/dom-external}/inner-html/tags.js +0 -0
  1144. /package/dist/{dom-external → runtime/dom-external}/inner-html/tags.js.map +0 -0
  1145. /package/dist/{dom-external → runtime/dom-external}/inner-html/utils.js +0 -0
  1146. /package/dist/{dom-external → runtime/dom-external}/inner-html/utils.js.map +0 -0
  1147. /package/dist/{dom-external → runtime/dom-external}/mutation-observer/implements.d.ts +0 -0
  1148. /package/dist/{dom-external → runtime/dom-external}/mutation-observer/implements.js +0 -0
  1149. /package/dist/{dom-external → runtime/dom-external}/mutation-observer/implements.js.map +0 -0
  1150. /package/dist/{dom-external → runtime/dom-external}/mutation-observer/index.d.ts +0 -0
  1151. /package/dist/{dom-external → runtime/dom-external}/mutation-observer/index.js +0 -0
  1152. /package/dist/{dom-external → runtime/dom-external}/mutation-observer/index.js.map +0 -0
  1153. /package/dist/{dom-external → runtime/dom-external}/mutation-observer/record.d.ts +0 -0
  1154. /package/dist/{dom-external → runtime/dom-external}/node.js +0 -0
  1155. /package/dist/{dom-external → runtime/dom-external}/node.js.map +0 -0
  1156. /package/dist/{dsl → runtime/dsl}/common.d.ts +0 -0
  1157. /package/dist/{dsl → runtime/dsl}/common.js +0 -0
  1158. /package/dist/{dsl → runtime/dsl}/common.js.map +0 -0
  1159. /package/dist/{dsl → runtime/dsl}/instance.d.ts +0 -0
  1160. /package/dist/{emitter → runtime/emitter}/emitter.d.ts +0 -0
  1161. /package/dist/{emitter → runtime/emitter}/emitter.js +0 -0
  1162. /package/dist/{emitter → runtime/emitter}/emitter.js.map +0 -0
  1163. /package/dist/{env.d.ts → runtime/env.d.ts} +0 -0
  1164. /package/dist/{env.js → runtime/env.js} +0 -0
  1165. /package/dist/{env.js.map → runtime/env.js.map} +0 -0
  1166. /package/dist/{hydrate.d.ts → runtime/hydrate.d.ts} +0 -0
  1167. /package/dist/{hydrate.js → runtime/hydrate.js} +0 -0
  1168. /package/dist/{hydrate.js.map → runtime/hydrate.js.map} +0 -0
  1169. /package/dist/{index.d.ts → runtime/index.d.ts} +0 -0
  1170. /package/dist/{index.js → runtime/index.js} +0 -0
  1171. /package/dist/{index.js.map → runtime/index.js.map} +0 -0
  1172. /package/dist/{interface → runtime/interface}/animate.d.ts +0 -0
  1173. /package/dist/{interface → runtime/interface}/element.d.ts +0 -0
  1174. /package/dist/{interface → runtime/interface}/event-target.d.ts +0 -0
  1175. /package/dist/{interface → runtime/interface}/event.d.ts +0 -0
  1176. /package/dist/{interface → runtime/interface}/hydrate.d.ts +0 -0
  1177. /package/dist/{interface → runtime/interface}/node.d.ts +0 -0
  1178. /package/dist/{interface → runtime/interface}/options.d.ts +0 -0
  1179. /package/dist/{interface → runtime/interface}/utils.d.ts +0 -0
  1180. /package/dist/{next-tick.d.ts → runtime/next-tick.d.ts} +0 -0
  1181. /package/dist/{next-tick.js → runtime/next-tick.js} +0 -0
  1182. /package/dist/{next-tick.js.map → runtime/next-tick.js.map} +0 -0
  1183. /package/dist/{options.d.ts → runtime/options.d.ts} +0 -0
  1184. /package/dist/{options.js → runtime/options.js} +0 -0
  1185. /package/dist/{options.js.map → runtime/options.js.map} +0 -0
  1186. /package/dist/{perf.d.ts → runtime/perf.d.ts} +0 -0
  1187. /package/dist/{perf.js → runtime/perf.js} +0 -0
  1188. /package/dist/{perf.js.map → runtime/perf.js.map} +0 -0
  1189. /package/dist/{polyfill → runtime/polyfill}/array.js +0 -0
  1190. /package/dist/{polyfill → runtime/polyfill}/array.js.map +0 -0
  1191. /package/dist/{polyfill → runtime/polyfill}/index.d.ts +0 -0
  1192. /package/dist/{polyfill → runtime/polyfill}/index.js +0 -0
  1193. /package/dist/{polyfill → runtime/polyfill}/index.js.map +0 -0
  1194. /package/dist/{polyfill → runtime/polyfill}/intersection-observer.js +0 -0
  1195. /package/dist/{polyfill → runtime/polyfill}/intersection-observer.js.map +0 -0
  1196. /package/dist/{polyfill → runtime/polyfill}/object.js +0 -0
  1197. /package/dist/{polyfill → runtime/polyfill}/object.js.map +0 -0
  1198. /package/dist/{runtime.esm.d.ts → runtime/runtime.esm.d.ts} +0 -0
  1199. /package/dist/{runtime.esm.js → runtime/runtime.esm.js} +0 -0
  1200. /package/dist/{runtime.esm.js.map → runtime/runtime.esm.js.map} +0 -0
  1201. /package/dist/{utils → runtime/utils}/cache.d.ts +0 -0
  1202. /package/dist/{utils → runtime/utils}/cache.js +0 -0
  1203. /package/dist/{utils → runtime/utils}/cache.js.map +0 -0
  1204. /package/dist/{utils → runtime/utils}/index.d.ts +0 -0
  1205. /package/dist/{utils → runtime/utils}/index.js +0 -0
  1206. /package/dist/{utils → runtime/utils}/index.js.map +0 -0
  1207. /package/dist/{utils → runtime/utils}/lodash.d.ts +0 -0
  1208. /package/dist/{utils → runtime/utils}/lodash.js +0 -0
  1209. /package/dist/{utils → runtime/utils}/lodash.js.map +0 -0
  1210. /package/dist/{utils → runtime/utils}/router.d.ts +0 -0
  1211. /package/dist/{utils → runtime/utils}/router.js +0 -0
  1212. /package/dist/{utils → runtime/utils}/router.js.map +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../src/constants/index.ts","../../src/dom-external/mutation-observer/implements.ts","../../src/dom-external/mutation-observer/index.ts","../../src/utils/lodash.ts","../../src/emitter/emitter.ts","../../src/env.ts","../../src/bom/getComputedStyle.ts","../../src/utils/cache.ts","../../src/bom/history.ts","../../src/current.ts","../../src/bom/URLSearchParams.ts","../../src/bom/URL.ts","../../src/bom/location.ts","../../src/bom/navigator.ts","../../src/bom/raf.ts","../../src/bom/window.ts","../../src/utils/router.ts","../../src/utils/index.ts","../../src/dom/class-list.ts","../../src/dom/event-source.ts","../../src/hydrate.ts","../../src/dom/event-target.ts","../../src/dom/node.ts","../../src/dom/style_properties.ts","../../src/dom/style.ts","../../src/dom/tree.ts","../../src/dom/element.ts","../../src/options.ts","../../src/dom-external/inner-html/scanner.ts","../../src/dom-external/inner-html/utils.ts","../../src/dom-external/inner-html/style.ts","../../src/dom-external/inner-html/tags.ts","../../src/dom-external/inner-html/parser.ts","../../src/dom-external/inner-html/html.ts","../../src/dom-external/element.ts","../../src/dom-external/node.ts","../../src/dom-external/index.ts","../../src/dom/event.ts","../../src/dom/form.ts","../../src/perf.ts","../../src/dom/root.ts","../../src/dom/text.ts","../../src/dom/anchor-element.ts","../../src/dom/transfer.ts","../../src/dom/document.ts","../../src/bom/document.ts","../../src/dom/svg.ts","../../src/dsl/common.ts","../../src/next-tick.ts","../../src/polyfill/array.ts","../../src/polyfill/intersection-observer.ts","../../src/polyfill/object.ts","../../src/polyfill/index.ts"],"sourcesContent":["export const PROPERTY_THRESHOLD = 2046\nexport const TARO_RUNTIME = 'Taro runtime'\nexport const HOOKS_APP_ID = 'taro-app'\nexport const SET_DATA = '小程序 setData'\nexport const PAGE_INIT = '页面初始化'\nexport const ROOT_STR = 'root'\nexport const HTML = 'html'\nexport const HEAD = 'head'\nexport const BODY = 'body'\nexport const APP = 'app'\nexport const CONTAINER = 'container'\nexport const DOCUMENT_ELEMENT_NAME = '#document'\nexport const DOCUMENT_FRAGMENT = 'document-fragment'\nexport const ID = 'id'\nexport const UID = 'uid'\nexport const CLASS = 'class'\nexport const STYLE = 'style'\nexport const FOCUS = 'focus'\nexport const VIEW = 'view'\nexport const STATIC_VIEW = 'static-view'\nexport const PURE_VIEW = 'pure-view'\nexport const CLICK_VIEW = 'click-view'\nexport const PROPS = 'props'\nexport const DATASET = 'dataset'\nexport const OBJECT = 'object'\nexport const VALUE = 'value'\nexport const INPUT = 'input'\nexport const CHANGE = 'change'\nexport const CUSTOM_WRAPPER = 'custom-wrapper'\nexport const TARGET = 'target'\nexport const CURRENT_TARGET = 'currentTarget'\nexport const TYPE = 'type'\nexport const CONFIRM = 'confirm'\nexport const TIME_STAMP = 'timeStamp'\nexport const KEY_CODE = 'keyCode'\nexport const TOUCHMOVE = 'touchmove'\nexport const DATE = 'Date'\nexport const SET_TIMEOUT = 'setTimeout'\nexport const COMPILE_MODE = 'compileMode'\nexport const CATCHMOVE = 'catchMove'\nexport const CATCH_VIEW = 'catch-view'\nexport const COMMENT = 'comment'\nexport const ON_LOAD = 'onLoad'\nexport const ON_READY = 'onReady'\nexport const ON_SHOW = 'onShow'\nexport const ON_HIDE = 'onHide'\nexport const OPTIONS = 'options'\nexport const EXTERNAL_CLASSES = 'externalClasses'\nexport const EVENT_CALLBACK_RESULT = 'e_result'\nexport const BEHAVIORS = 'behaviors'\nexport const A = 'a'\n\n// 页面上下文切换时的行为\nexport enum CONTEXT_ACTIONS {\n INIT = '0',\n RESTORE = '1',\n RECOVER = '2',\n DESTROY = '3'\n}\n","import { MutationRecordType } from './record'\n\nimport type { TaroNode } from '../../dom/node'\nimport type { MutationRecord } from './record'\n\nexport type MutationCallback = (mutations: MutationRecord[]) => any\n\n/**\n * @see https://dom.spec.whatwg.org/#dictdef-mutationobserverinit\n */\nexport interface MutationObserverInit {\n attributeFilter?: string[]\n attributeOldValue?: boolean\n attributes?: boolean\n characterData?: boolean\n characterDataOldValue?: boolean\n childList?: boolean\n subtree?: boolean\n}\n\nconst observers: MutationObserverImpl[] = []\n\n/**\n * The MutationObserver provides the ability\n * to watch for changes being made to the DOM tree.\n * It will invoke a specified callback function\n * when DOM changes occur.\n * @see https://dom.spec.whatwg.org/#mutationobserver\n * @see https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver\n */\nexport class MutationObserverImpl {\n public callback: MutationCallback\n public target: TaroNode | null\n public options: MutationObserverInit\n public records: MutationRecord[] = []\n\n constructor (callback: MutationCallback) {\n this.callback = callback\n }\n\n /**\n * Configures the MutationObserver\n * to begin receiving notifications\n * through its callback function\n * when DOM changes matching the given options occur.\n *\n * Options matching is to be implemented.\n */\n observe (target: TaroNode, options?: MutationObserverInit): void {\n this.disconnect()\n this.target = target\n this.options = options || {}\n\n observers.push(this)\n }\n\n /**\n * Stop the MutationObserver instance\n * from receiving further notifications\n * until and unless observe() is called again.\n */\n disconnect (): void {\n this.target = null\n\n const index = observers.indexOf(this)\n if (index >= 0) {\n observers.splice(index, 1)\n }\n }\n\n /**\n * Removes all pending notifications\n * from the MutationObserver's notification queue\n * and returns them in a new Array of MutationRecord objects.\n */\n takeRecords (): MutationRecord[] {\n return this.records.splice(0, this.records.length)\n }\n}\n\n/** Match two TaroNodes by sid. */\nconst sidMatches = (\n observerTarget: TaroNode | null,\n target: TaroNode | null\n): boolean => {\n return !!observerTarget && observerTarget.sid === target?.sid\n}\n\nconst isConcerned = (record: MutationRecord, options: MutationObserverInit) => {\n const { characterData, characterDataOldValue, attributes, attributeOldValue, childList } = options\n switch (record.type) {\n case MutationRecordType.CHARACTER_DATA:\n if (characterData) {\n if (!characterDataOldValue) record.oldValue = null\n return true\n }\n return false\n case MutationRecordType.ATTRIBUTES:\n if (attributes) {\n if (!attributeOldValue) record.oldValue = null\n return true\n }\n return false\n case MutationRecordType.CHILD_LIST:\n if (childList) {\n return true\n }\n return false\n }\n}\n\nlet pendingMuatations = false\n\nfunction logMutation (observer: MutationObserverImpl, record: MutationRecord) {\n observer.records.push(record)\n if (!pendingMuatations) {\n pendingMuatations = true\n Promise\n .resolve()\n .then(() => {\n pendingMuatations = false\n observers.forEach(observer => {\n return observer.callback(observer.takeRecords())\n })\n })\n }\n}\n\nexport function recordMutation (record: MutationRecord) {\n observers.forEach(observer => {\n const { options } = observer\n for (let t: TaroNode | null = record.target; t; t = t.parentNode) {\n if (sidMatches(observer.target, t) && isConcerned(record, options)) {\n logMutation(observer, record)\n break\n }\n if (!options.subtree) break\n }\n })\n}\n","import { noop } from '@tarojs/shared'\n\nimport { MutationObserverImpl, recordMutation } from './implements'\nimport { MutationRecord, MutationRecordType } from './record'\n\nimport type { TaroNode } from '../../dom/node'\nimport type { MutationCallback, MutationObserverInit } from './implements'\n\ndeclare const ENABLE_MUTATION_OBSERVER: boolean\n\nexport class MutationObserver {\n core: Pick<MutationObserverImpl, 'observe' | 'disconnect' | 'takeRecords'>\n\n constructor (callback: MutationCallback) {\n if (ENABLE_MUTATION_OBSERVER) {\n this.core = new MutationObserverImpl(callback)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[Taro Warning] 若要使用 MutationObserver,请在 Taro 编译配置中设置 \\'mini.runtime.enableMutationObserver: true\\'')\n }\n this.core = {\n observe: noop,\n disconnect: noop,\n takeRecords: (noop as () => any)\n }\n }\n }\n\n public observe (...args: [TaroNode, MutationObserverInit?]) {\n this.core.observe(...args)\n }\n\n public disconnect () {\n this.core.disconnect()\n }\n\n public takeRecords () {\n return this.core.takeRecords()\n }\n\n static record (record: MutationRecord) {\n recordMutation(record)\n }\n}\n\nexport {\n MutationRecordType\n}\n","export function throttle (fn, threshold = 250, scope?) {\n let lastTime = 0\n let deferTimer: ReturnType<typeof setTimeout>\n return function (...args) {\n const context = scope || this\n const now = Date.now()\n if (now - lastTime > threshold) {\n fn.apply(this, args)\n lastTime = now\n } else {\n clearTimeout(deferTimer)\n deferTimer = setTimeout(() => {\n lastTime = now\n fn.apply(context, args)\n }, threshold)\n }\n }\n}\n\nexport function debounce (fn, ms = 250, scope?) {\n let timer: ReturnType<typeof setTimeout>\n\n return function (...args) {\n const context = scope || this\n clearTimeout(timer)\n timer = setTimeout(function () {\n fn.apply(context, args)\n }, ms)\n }\n}\n","import { Events, hooks } from '@tarojs/shared'\n\nconst eventCenter = hooks.call('getEventCenter', Events)!\n\nexport type EventsType = typeof Events\nexport { eventCenter, Events }\n","import { EMPTY_OBJ } from '@tarojs/shared'\n\nimport type { TaroDocument } from './dom/document'\n\ninterface Env {\n window\n document: TaroDocument\n}\n\nconst env: Env = {\n window: process.env.TARO_PLATFORM === 'web' ? window : EMPTY_OBJ,\n document: process.env.TARO_PLATFORM === 'web' ? document : EMPTY_OBJ\n}\n\nexport default env\n","import env from '../env'\n\nimport type { TaroElement } from '../dom/element'\nimport type { Style } from '../dom/style'\n\nexport type TGetComputedStyle = typeof window.getComputedStyle | ((el: TaroElement) => Style)\n\n// Note: 小程序端 vite 打包成 commonjs,const getComputedStyle = xxx 会报错,所以把 GetComputedStyle 改为 taroGetComputedStyleProvider\nexport const taroGetComputedStyleProvider: TGetComputedStyle = process.env.TARO_PLATFORM === 'web' ? env.window.getComputedStyle : function (element: TaroElement): Style {\n return element.style\n}\n","/**\n * 一个小型缓存池,用于在切换页面时,存储一些上下文信息\n */\n\nexport class RuntimeCache<T> {\n name: string\n cache = new Map<string, T>()\n\n constructor (name: string) {\n this.name = name\n }\n\n has (identifier: string) {\n return this.cache.has(identifier)\n }\n\n set (identifier: string, ctx: T) {\n if (identifier && ctx) {\n this.cache.set(identifier, ctx)\n }\n }\n\n get (identifier: string): T | undefined {\n if (this.has(identifier)) return this.cache.get(identifier)\n }\n\n delete (identifier: string) {\n this.cache.delete(identifier)\n }\n}\n","import { isNumber, isString } from '@tarojs/shared'\n\nimport { CONTEXT_ACTIONS } from '../constants'\nimport { Events } from '../emitter/emitter'\nimport env from '../env'\nimport { RuntimeCache } from '../utils/cache'\n\nimport type { TaroLocation } from './location'\n\nexport interface HistoryState {\n state: Record<string, any> | null\n title: string\n url: string\n}\n\ntype Options = {\n window: any\n}\ntype HistoryContext = {\n location: TaroLocation\n stack: HistoryState[]\n cur: number\n}\nconst cache = new RuntimeCache<HistoryContext>('history')\n\nclass TaroHistory extends Events {\n /* private property */\n #location: TaroLocation\n #stack: HistoryState[] = []\n #cur = 0\n\n #window: any\n\n constructor (location: TaroLocation, options: Options) {\n super()\n\n this.#window = options.window\n this.#location = location\n\n this.#location.on('__record_history__', (href: string) => {\n this.#cur++\n this.#stack = this.#stack.slice(0, this.#cur)\n this.#stack.push({\n state: null,\n title: '',\n url: href\n })\n }, null)\n\n this.#location.on('__reset_history__', (href: string) => {\n this.#reset(href)\n }, null)\n\n // 切换上下文行为\n\n this.on(CONTEXT_ACTIONS.INIT, () => {\n this.#reset()\n }, null)\n\n this.on(CONTEXT_ACTIONS.RESTORE, (pageId: string) => {\n cache.set(pageId, {\n location: this.#location,\n stack: this.#stack.slice(),\n cur: this.#cur\n })\n }, null)\n\n this.on(CONTEXT_ACTIONS.RECOVER, (pageId: string) => {\n if (cache.has(pageId)) {\n const ctx = cache.get(pageId)!\n this.#location = ctx.location\n this.#stack = ctx.stack\n this.#cur = ctx.cur\n }\n }, null)\n\n this.on(CONTEXT_ACTIONS.DESTROY, (pageId: string) => {\n cache.delete(pageId)\n }, null)\n\n this.#reset()\n }\n\n #reset (href = '') {\n this.#stack = [\n {\n state: null,\n title: '',\n url: href || this.#location.href\n }\n ]\n this.#cur = 0\n }\n\n /* public property */\n get length () {\n return this.#stack.length\n }\n\n get state () {\n return this.#stack[this.#cur].state\n }\n\n /* public method */\n go (delta: number) {\n if (!isNumber(delta) || isNaN(delta)) return\n\n let targetIdx = this.#cur + delta\n targetIdx = Math.min(Math.max(targetIdx, 0), this.length - 1)\n\n this.#cur = targetIdx\n\n this.#location.trigger('__set_href_without_history__', this.#stack[this.#cur].url)\n this.#window.trigger('popstate', this.#stack[this.#cur])\n }\n\n back () {\n this.go(-1)\n }\n\n forward () {\n this.go(1)\n }\n\n pushState (state: any, title: string, url: string) {\n if (!url || !isString(url)) return\n this.#stack = this.#stack.slice(0, this.#cur + 1)\n this.#stack.push({\n state,\n title,\n url\n })\n this.#cur = this.length - 1\n\n this.#location.trigger('__set_href_without_history__', url)\n }\n\n replaceState (state: any, title: string, url: string) {\n if (!url || !isString(url)) return\n this.#stack[this.#cur] = {\n state,\n title,\n url\n }\n\n this.#location.trigger('__set_href_without_history__', url)\n }\n\n // For debug\n get cache () {\n return cache\n }\n}\n\nexport type { TaroHistory }\nexport const History: typeof TaroHistory = process.env.TARO_PLATFORM === 'web' ? env.window.History : TaroHistory\n","import { AppInstance, PageInstance } from './dsl/instance'\n\nexport interface Router {\n params: Record<string, unknown>\n path: string\n $taroPath: string\n onReady: string\n onHide: string\n onShow: string\n exitState?: any\n}\n\ninterface Current {\n app: AppInstance | null\n router: Router | null\n page: PageInstance | null\n preloadData?: any\n}\n\nexport const Current: Current = {\n app: null,\n router: null,\n page: null\n}\n\nexport const getCurrentInstance = () => Current\n","import { isArray } from '@tarojs/shared'\n\nimport env from '../env'\n\nconst findReg = /[!'()~]|%20|%00/g\nconst plusReg = /\\+/g\nconst replaceCharMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00',\n}\n\nfunction replacer (match: string) {\n return replaceCharMap[match]\n}\n\nfunction appendTo (dict: Record<string, string[]>, name: string, value: string) {\n const res = isArray(value) ? value.join(',') : value\n if (name in dict) dict[name].push(res)\n else dict[name] = [res]\n}\n\nfunction addEach (value: string, key: string) {\n appendTo(this, key, value)\n}\n\nfunction decode (str: string) {\n return decodeURIComponent(str.replace(plusReg, ' '))\n}\n\nfunction encode (str: string) {\n return encodeURIComponent(str).replace(findReg, replacer)\n}\n\nexport const URLSearchParams = process.env.TARO_PLATFORM === 'web' ? env.window.URLSearchParams : class {\n #dict = Object.create(null)\n\n constructor (query) {\n query ??= ''\n\n const dict = this.#dict\n\n if (typeof query === 'string') {\n if (query.charAt(0) === '?') {\n query = query.slice(1)\n }\n for (let pairs = query.split('&'), i = 0, length = pairs.length; i < length; i++) {\n const value = pairs[i]\n const index = value.indexOf('=')\n\n // 针对不规范的 url 参数做容错处理,如:word=你%好\n try {\n if (index > -1) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)))\n } else if (value.length) {\n appendTo(dict, decode(value), '')\n }\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Taro warn] URL 参数 ${value} decode 异常`)\n }\n }\n }\n } else {\n if (isArray(query)) {\n for (let i = 0, length = query.length; i < length; i++) {\n const value = query[i]\n appendTo(dict, value[0], value[1])\n }\n } else if (query.forEach) {\n query.forEach(addEach, dict)\n } else {\n for (const key in query) {\n appendTo(dict, key, query[key])\n }\n }\n }\n }\n\n append (name: string, value: string) {\n appendTo(this.#dict, name, value)\n }\n\n delete (name: string) {\n delete this.#dict[name]\n }\n\n get (name: string) {\n const dict = this.#dict\n return name in dict ? dict[name][0] : null\n }\n\n getAll (name: string) {\n const dict = this.#dict\n return name in dict ? dict[name].slice(0) : []\n }\n\n has (name: string) {\n return name in this.#dict\n }\n\n keys () {\n return Object.keys(this.#dict)\n }\n\n set (name: string, value: string) {\n this.#dict[name] = ['' + value]\n }\n\n forEach (callback, thisArg) {\n const dict = this.#dict\n Object.getOwnPropertyNames(dict).forEach(function (name) {\n dict[name].forEach(function (value: string) {\n callback.call(thisArg, value, name, this)\n }, this)\n }, this)\n }\n\n toJSON () {\n return {}\n }\n\n toString () {\n const dict = this.#dict\n const query: any[] = []\n for (const key in dict) {\n const name = encode(key)\n for (let i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]))\n }\n }\n return query.join('&')\n }\n}\n","import { isString, isUndefined } from '@tarojs/shared'\n\nimport env from '../env'\nimport { URLSearchParams } from './URLSearchParams'\n\nclass TaroURL {\n static createObjectURL () {\n throw new Error('Oops, not support URL.createObjectURL() in miniprogram.')\n }\n\n static revokeObjectURL () {\n throw new Error('Oops, not support URL.revokeObjectURL() in miniprogram.')\n }\n\n /* private property */\n #hash = ''\n #hostname = ''\n #pathname = ''\n #port = ''\n #protocol = ''\n #search: URLSearchParams\n\n constructor (url: string, base?: string) {\n if (!isString(url)) url = String(url)\n\n const parseResult = parseUrlBase(url, base)\n const { hash, hostname, pathname, port, protocol, search } = parseResult\n\n this.#hash = hash\n this.#hostname = hostname\n this.#pathname = pathname || '/'\n this.#port = port\n this.#protocol = protocol\n this.#search = new URLSearchParams(search)\n }\n\n /* public property */\n get protocol () {\n return this.#protocol\n }\n\n set protocol (val: string) {\n isString(val) && (this.#protocol = val.trim())\n }\n\n get host () {\n return this.hostname + (this.port ? ':' + this.port : '')\n }\n\n set host (val: string) {\n if (val && isString(val)) {\n val = val.trim()\n const { hostname, port } = parseUrl(`//${val}`)\n this.hostname = hostname\n this.port = port\n }\n }\n\n get hostname () {\n return this.#hostname\n }\n\n set hostname (val: string) {\n val && isString(val) && (this.#hostname = val.trim())\n }\n\n get port () {\n return this.#port\n }\n\n set port (val: string) {\n isString(val) && (this.#port = val.trim())\n }\n\n get pathname () {\n return this.#pathname\n }\n\n set pathname (val: string) {\n if (isString(val)) {\n val = val.trim()\n const HEAD_REG = /^(\\/|\\.\\/|\\.\\.\\/)/\n let temp = val\n while (HEAD_REG.test(temp)) {\n temp = temp.replace(HEAD_REG, '')\n }\n if (temp) this.#pathname = '/' + temp\n else this.#pathname = '/'\n }\n }\n\n get search () {\n const val = this.#search.toString()\n return (val.length === 0 || val.startsWith('?')) ? val : `?${val}`\n }\n\n set search (val: string) {\n if (isString(val)) {\n val = val.trim()\n this.#search = new URLSearchParams(val)\n }\n }\n\n get hash () {\n return this.#hash\n }\n\n set hash (val: string) {\n if (isString(val)) {\n val = val.trim()\n if (val) this.#hash = val.startsWith('#') ? val : `#${val}`\n else this.#hash = ''\n }\n }\n\n get href () {\n return `${this.protocol}//${this.host}${this.pathname}${this.search}${this.hash}`\n }\n\n set href (val: string) {\n if (val && isString(val)) {\n val = val.trim()\n const { protocol, hostname, port, hash, search, pathname } = parseUrl(val)\n this.protocol = protocol\n this.hostname = hostname\n this.pathname = pathname\n this.port = port\n this.hash = hash\n this.search = search\n }\n }\n\n get origin () {\n return `${this.protocol}//${this.host}`\n }\n\n set origin (val: string) {\n if (val && isString(val)) {\n val = val.trim()\n const { protocol, hostname, port } = parseUrl(val)\n this.protocol = protocol\n this.hostname = hostname\n this.port = port\n }\n }\n\n get searchParams () {\n return this.#search\n }\n\n // public method\n toString () {\n return this.href\n }\n\n toJSON () {\n return this.toString()\n }\n\n // convenient for deconstructor\n _toRaw () {\n return {\n protocol: this.protocol,\n port: this.port,\n host: this.host,\n hostname: this.hostname,\n pathname: this.pathname,\n hash: this.hash,\n search: this.search,\n origin: this.origin,\n href: this.href,\n }\n }\n}\n\nexport type { TaroURL }\n\n// Note: 小程序端 vite 打包成 commonjs,const URL = xxx 会报错,所以把 URL 改为 TaroURLProvider\nexport const TaroURLProvider: typeof TaroURL = process.env.TARO_PLATFORM === 'web' ? env.window.URL : TaroURL\n\nexport function parseUrl (url = '') {\n const result = {\n href: '',\n origin: '',\n protocol: '',\n hostname: '',\n host: '',\n port: '',\n pathname: '',\n search: '',\n hash: ''\n }\n if (!url || !isString(url)) return result\n\n url = url.trim()\n const PATTERN = /^(([^:/?#]+):)?\\/\\/(([^/?#]+):(.+)@)?([^/?#:]*)(:(\\d+))?([^?#]*)(\\?([^#]*))?(#(.*))?/\n const matches = url.match(PATTERN)\n\n if (!matches) return result\n\n // TODO: username & password ?\n result.protocol = matches[1] || 'https:'\n result.hostname = matches[6] || 'taro.com'\n result.port = matches[8] || ''\n result.pathname = matches[9] || '/'\n result.search = matches[10] || ''\n result.hash = matches[12] || ''\n result.href = url\n result.origin = result.protocol + '//' + result.hostname + (result.port ? `:${result.port}` : '')\n result.host = result.hostname + (result.port ? `:${result.port}` : '')\n\n return result\n}\n\nfunction parseUrlBase (url: string, base?: string) {\n const VALID_URL = /^(https?:)\\/\\//i\n\n let fullUrl = ''\n let parsedBase: ReturnType<typeof parseUrl> | null = null\n\n if (!isUndefined(base)) {\n base = String(base).trim()\n if (!VALID_URL.test(base)) throw new TypeError(`Failed to construct 'URL': Invalid base URL`)\n parsedBase = parseUrl(base)\n }\n\n url = String(url).trim()\n\n if (VALID_URL.test(url)) {\n fullUrl = url\n } else if (parsedBase) {\n if (url) {\n if (url.startsWith('//')) {\n fullUrl = parsedBase.protocol + url\n } else {\n fullUrl = parsedBase.origin + (url.startsWith('/') ? url : `/${url}`)\n }\n } else {\n fullUrl = parsedBase.href\n }\n } else {\n throw new TypeError(`Failed to construct 'URL': Invalid URL`)\n }\n\n return parseUrl(fullUrl)\n}\n","import { isNumber, isString, warn } from '@tarojs/shared'\n\nimport { CONTEXT_ACTIONS } from '../constants'\nimport { getCurrentInstance } from '../current'\nimport { Events } from '../emitter/emitter'\nimport env from '../env'\nimport { RuntimeCache } from '../utils/cache'\nimport { TaroURLProvider } from './URL'\n\ntype PreValue = ReturnType<typeof TaroURLProvider.prototype._toRaw>\n\ntype Options = {\n window: any\n}\ntype LocationContext = {\n lastHref: string\n}\n\nconst INIT_URL = 'https://taro.com'\nconst cache = new RuntimeCache<LocationContext>('location')\n\nclass TaroLocation extends Events {\n /* private property */\n #url = new TaroURLProvider(INIT_URL)\n #noCheckUrl = false\n #window: any\n\n constructor (options: Options) {\n super()\n\n this.#window = options.window\n\n this.#reset()\n\n this.on(\n '__set_href_without_history__',\n (href: string) => {\n this.#noCheckUrl = true\n\n const lastHash = this.#url.hash\n this.#url.href = generateFullUrl(href)\n\n if (lastHash !== this.#url.hash) {\n this.#window.trigger('hashchange')\n }\n\n this.#noCheckUrl = false\n },\n null\n )\n\n // 切换上下文行为\n this.on(\n CONTEXT_ACTIONS.INIT,\n () => {\n this.#reset()\n },\n null\n )\n\n this.on(\n CONTEXT_ACTIONS.RESTORE,\n (pageId: string) => {\n cache.set(pageId, {\n lastHref: this.href,\n })\n },\n null\n )\n\n this.on(\n CONTEXT_ACTIONS.RECOVER,\n (pageId: string) => {\n // 数据恢复时,不需要执行跳转\n if (cache.has(pageId)) {\n const ctx = cache.get(pageId)!\n this.#noCheckUrl = true\n this.#url.href = ctx.lastHref\n this.#noCheckUrl = false\n }\n },\n null\n )\n\n this.on(\n CONTEXT_ACTIONS.DESTROY,\n (pageId: string) => {\n cache.delete(pageId)\n },\n null\n )\n }\n\n /* private method */\n #reset () {\n const Current = getCurrentInstance()\n const router = Current.router\n if (router) {\n const { path, params } = router\n const searchArr = Object.keys(params).map((key) => {\n return `${key}=${params[key]}`\n })\n const searchStr = searchArr.length > 0 ? '?' + searchArr.join('&') : ''\n const url = `${INIT_URL}${path.startsWith('/') ? path : '/' + path}${searchStr}`\n\n this.#url = new TaroURLProvider(url)\n\n this.trigger('__reset_history__', this.href)\n }\n }\n\n #getPreValue (): PreValue {\n return this.#url._toRaw()\n }\n\n #rollBack (href: string) {\n this.#url.href = href\n }\n\n #recordHistory () {\n this.trigger('__record_history__', this.href)\n }\n\n /**\n * 校验url的变化,是否需要更新history\n */\n #checkUrlChange (preValue: PreValue): boolean {\n if (this.#noCheckUrl) {\n return false\n }\n\n const { protocol, hostname, port, pathname, search, hash } = this.#url._toRaw()\n\n // 跨域三要素不允许修改\n if (protocol !== preValue.protocol || hostname !== preValue.hostname || port !== preValue.port) {\n this.#rollBack(preValue.href)\n return false\n }\n\n // pathname\n if (pathname !== preValue.pathname) {\n return true\n }\n\n // search\n if (search !== preValue.search) {\n return true\n }\n\n // hashchange\n if (hash !== preValue.hash) {\n this.#window.trigger('hashchange')\n return true\n }\n\n this.#rollBack(preValue.href)\n return false\n }\n\n /* public property */\n get protocol () {\n return this.#url.protocol\n }\n\n set protocol (val: string) {\n const REG = /^(http|https):$/i\n if (!val || !isString(val) || !REG.test(val.trim())) return\n\n val = val.trim()\n const preValue = this.#getPreValue()\n this.#url.protocol = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n get host () {\n return this.#url.host\n }\n\n set host (val: string) {\n if (!val || !isString(val)) return\n val = val.trim()\n\n const preValue = this.#getPreValue()\n this.#url.host = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n get hostname () {\n return this.#url.hostname\n }\n\n set hostname (val: string) {\n if (!val || !isString(val)) return\n val = val.trim()\n\n const preValue = this.#getPreValue()\n this.#url.hostname = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n get port () {\n return this.#url.port\n }\n\n set port (val: string) {\n const xVal = Number((val = val.trim()))\n if (!isNumber(xVal) || xVal <= 0) return\n\n const preValue = this.#getPreValue()\n this.#url.port = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n get pathname () {\n return this.#url.pathname\n }\n\n set pathname (val: string) {\n if (!val || !isString(val)) return\n val = val.trim()\n\n const preValue = this.#getPreValue()\n this.#url.pathname = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n get search () {\n return this.#url.search\n }\n\n set search (val: string) {\n if (!val || !isString(val)) return\n val = val.trim()\n val = val.startsWith('?') ? val : `?${val}`\n\n const preValue = this.#getPreValue()\n this.#url.search = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n get hash () {\n return this.#url.hash\n }\n\n // 小程序的navigateTo存在截断hash字符串的问题\n set hash (val: string) {\n if (!val || !isString(val)) return\n val = val.trim()\n val = val.startsWith('#') ? val : `#${val}`\n\n const preValue = this.#getPreValue()\n this.#url.hash = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n get href () {\n return this.#url.href\n }\n\n set href (val: string) {\n const REG = /^(http:|https:)?\\/\\/.+/\n if (!val || !isString(val) || !REG.test((val = val.trim()))) return\n\n const preValue = this.#getPreValue()\n this.#url.href = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n get origin () {\n return this.#url.origin\n }\n\n set origin (val: string) {\n const REG = /^(http:|https:)?\\/\\/.+/\n if (!val || !isString(val) || !REG.test((val = val.trim()))) return\n\n const preValue = this.#getPreValue()\n this.#url.origin = val\n\n if (this.#checkUrlChange(preValue)) this.#recordHistory()\n }\n\n /* public method */\n assign () {\n warn(true, '小程序环境中调用location.assign()无效.')\n }\n\n reload () {\n warn(true, '小程序环境中调用location.reload()无效.')\n }\n\n replace (url: string) {\n this.trigger('__set_href_without_history__', url)\n }\n\n toString () {\n return this.href\n }\n\n // For debug\n get cache () {\n return cache\n }\n}\n\nexport type { TaroLocation }\nexport const Location: typeof TaroLocation = process.env.TARO_PLATFORM === 'web' ? env.window.Location : TaroLocation\n\nfunction generateFullUrl (val = '') {\n const origin = INIT_URL\n if (/^[/?#]/.test(val)) {\n return origin + val\n }\n return val\n}\n","import env from '../env'\n\nconst machine = 'Macintosh'\nconst arch = 'Intel Mac OS X 10_14_5'\nconst engine = 'AppleWebKit/534.36 (KHTML, like Gecko) NodeJS/v4.1.0 Chrome/76.0.3809.132 Safari/534.36'\n\nconst msg = '(' + machine + '; ' + arch + ') ' + engine\n\nexport const nav: typeof window.navigator = process.env.TARO_PLATFORM === 'web' ? env.window.navigator : {\n appCodeName: 'Mozilla',\n appName: 'Netscape',\n appVersion: '5.0 ' + msg,\n cookieEnabled: true,\n mimeTypes: [],\n onLine: true,\n platform: 'MacIntel',\n plugins: [],\n product: 'Taro',\n productSub: '20030107',\n userAgent: 'Mozilla/5.0 ' + msg,\n vendor: 'Joyent',\n vendorSub: ''\n}\n","// https://github.com/myrne/performance-now\nexport let now: () => number\n\n(function () {\n let loadTime\n if ((typeof performance !== 'undefined' && performance !== null) && performance.now) {\n now = () => performance.now()\n } else if (Date.now) {\n loadTime = Date.now()\n now = () => Date.now() - loadTime\n } else {\n loadTime = new Date().getTime()\n now = () => new Date().getTime() - loadTime\n }\n})()\n\nlet lastTime = 0\n\n// https://gist.github.com/paulirish/1579671\n// https://gist.github.com/jalbam/5fe05443270fa6d8136238ec72accbc0\nconst _raf = process.env.TARO_PLATFORM === 'web' ? requestAnimationFrame : function (callback) {\n const _now = now()\n const nextTime = Math.max(lastTime + 16, _now) // First time will execute it immediately but barely noticeable and performance is gained.\n return setTimeout(function () { callback(lastTime = nextTime) }, nextTime - _now)\n}\n\nconst _caf = process.env.TARO_PLATFORM === 'web'\n ? cancelAnimationFrame\n : function (seed) {\n // fix https://github.com/NervJS/taro/issues/7749\n clearTimeout(seed)\n }\n\nexport {\n _caf as caf,\n _raf as raf\n}\n","import { isString } from '@tarojs/shared'\n\nimport { CONTEXT_ACTIONS } from '../constants'\nimport { Events } from '../emitter/emitter'\nimport env from '../env'\nimport { taroGetComputedStyleProvider } from './getComputedStyle'\nimport { History } from './history'\nimport { Location } from './location'\nimport { nav as navigator } from './navigator'\nimport { caf, raf } from './raf'\n\nimport type { TaroHistory } from './history'\nimport type { TaroLocation } from './location'\n\nexport class TaroWindow extends Events {\n navigator = navigator\n requestAnimationFrame = raf\n cancelAnimationFrame = caf\n getComputedStyle = taroGetComputedStyleProvider\n Date: DateConstructor\n\n location: TaroLocation\n history: TaroHistory\n XMLHttpRequest?: Partial<XMLHttpRequest>\n\n constructor () {\n super()\n\n const globalProperties = [\n ...Object.getOwnPropertyNames(global || {}),\n ...Object.getOwnPropertySymbols(global || {})\n ]\n\n globalProperties.forEach(property => {\n if (property === 'atob' || property === 'document') return\n if (!Object.prototype.hasOwnProperty.call(this, property)) {\n // 防止小程序环境下,window 上的某些 get 属性在赋值时报错\n try {\n this[property] = global[property]\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Taro warn] window.${String(property)} 在赋值到 window 时报错`)\n }\n }\n }\n })\n\n this.Date ||= Date\n\n // 应用启动时,提供给需要读取历史信息的库使用\n this.location = new Location({ window: this }) as any\n // @ts-ignore\n this.history = new History(this.location, { window: this })\n\n this.initEvent()\n }\n\n initEvent () {\n const _location = this.location\n const _history = this.history\n\n this.on(CONTEXT_ACTIONS.INIT, (pageId: string) => {\n // 页面 onload,为该页面建立新的上下文信息\n _location.trigger(CONTEXT_ACTIONS.INIT, pageId)\n }, null)\n\n this.on(CONTEXT_ACTIONS.RECOVER, (pageId: string) => {\n // 页面 onshow,恢复当前页面的上下文信息\n _location.trigger(CONTEXT_ACTIONS.RECOVER, pageId)\n _history.trigger(CONTEXT_ACTIONS.RECOVER, pageId)\n }, null)\n\n this.on(CONTEXT_ACTIONS.RESTORE, (pageId: string) => {\n // 页面 onhide,缓存当前页面的上下文信息\n _location.trigger(CONTEXT_ACTIONS.RESTORE, pageId)\n _history.trigger(CONTEXT_ACTIONS.RESTORE, pageId)\n }, null)\n\n this.on(CONTEXT_ACTIONS.DESTROY, (pageId: string) => {\n // 页面 onunload,清除当前页面的上下文信息\n _location.trigger(CONTEXT_ACTIONS.DESTROY, pageId)\n _history.trigger(CONTEXT_ACTIONS.DESTROY, pageId)\n }, null)\n }\n\n get document () {\n return env.document\n }\n\n addEventListener (event: string, callback: (arg: any) => void) {\n if (!isString(event)) return\n this.on(event, callback, null)\n }\n\n removeEventListener (event: string, callback: (arg: any) => void) {\n if (!isString(event)) return\n this.off(event, callback, null)\n }\n\n setTimeout (...args: Parameters<typeof setTimeout>) {\n return setTimeout(...args)\n }\n\n clearTimeout (...args: Parameters<typeof clearTimeout>) {\n return clearTimeout(...args)\n }\n}\n\n// Note: 小程序端 vite 打包成 commonjs,const window = xxx 会报错,所以把 window 改为 taroWindowProvider,location 和 history 同理\nexport const taroWindowProvider: TaroWindow = process.env.TARO_PLATFORM === 'web' ? env.window : (env.window = new TaroWindow())\nexport const taroLocationProvider = taroWindowProvider.location\nexport const taroHistoryProvider = taroWindowProvider.history\n","import { taroLocationProvider as location } from '../bom/window'\n\n// export const removeLeadingSlash = (str = '') => str.replace(/^\\.?\\//, '')\n// export const removeTrailingSearch = (str = '') => str.replace(/\\?[\\s\\S]*$/, '')\nexport const addLeadingSlash = (url = '') => (url.charAt(0) === '/' ? url : '/' + url)\n\nexport const hasBasename = (path = '', prefix = '') =>\n new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path) || path === prefix\n\nexport const stripBasename = (path = '', prefix = '') =>\n hasBasename(path, prefix) ? path.substring(prefix.length) : path\n\nexport const stripTrailing = (str = '') => str.replace(/[?#][\\s\\S]*$/, '')\n\nexport const stripSuffix = (path = '', suffix = '') =>\n path.includes(suffix) ? path.substring(0, path.length - suffix.length) : path\n\nexport const getHomePage = (path = '', basename = '', customRoutes: Record<string, string | string[]> = {}, entryPagePath = '') => {\n const routePath = addLeadingSlash(stripBasename(path, basename))\n const alias = Object.entries(customRoutes).find(\n ([key]) => key === routePath\n )?.[1] || routePath\n return entryPagePath || (typeof alias === 'string' ? alias : alias[0]) || basename\n}\n\nexport const getCurrentPage = (routerMode = 'hash', basename = '/') => {\n const pagePath = routerMode === 'hash'\n ? location.hash.slice(1).split('?')[0]\n : location.pathname\n return addLeadingSlash(stripBasename(pagePath, basename))\n}\n","import {\n getComponentsAlias as _getComponentsAlias,\n internalComponents,\n isFunction,\n Shortcuts\n} from '@tarojs/shared'\n\nimport {\n CLASS,\n COMMENT,\n ID,\n ROOT_STR,\n STYLE,\n UID\n} from '../constants'\nimport { NodeType } from '../dom/node_types'\n\nimport type { TaroElement } from '../dom/element'\nimport type { TaroNode } from '../dom/node'\nimport type { TaroText } from '../dom/text'\nimport type { TFunc } from '../interface'\n\nexport const incrementId = () => {\n const chatCodes: number[] = []\n // A-Z\n for (let i = 65; i <= 90; i++) {\n chatCodes.push(i)\n }\n // a-z\n for (let i = 97; i <= 122; i++) {\n chatCodes.push(i)\n }\n const chatCodesLen = chatCodes.length - 1\n const list = [0, 0]\n return () => {\n const target = list.map(item => chatCodes[item])\n const res = String.fromCharCode(...target)\n\n let tailIdx = list.length - 1\n\n list[tailIdx]++\n\n while (list[tailIdx] > chatCodesLen) {\n list[tailIdx] = 0\n tailIdx = tailIdx - 1\n if (tailIdx < 0) {\n list.push(0)\n break\n }\n list[tailIdx]++\n }\n\n return res\n }\n}\n\nexport function isElement (node: TaroNode): node is TaroElement {\n return node.nodeType === NodeType.ELEMENT_NODE\n}\n\nexport function isText (node: TaroNode): node is TaroText {\n return node.nodeType === NodeType.TEXT_NODE\n}\n\nexport function isComment (node: TaroNode): boolean {\n return node.nodeName === COMMENT\n}\n\nexport function isHasExtractProp (el: TaroElement): boolean {\n const res = Object.keys(el.props).find(prop => {\n return !(/^(class|style|id)$/.test(prop) || prop.startsWith('data-'))\n })\n return Boolean(res)\n}\n\n/**\n * 往上寻找组件树直到 root,寻找是否有祖先组件绑定了同类型的事件\n * @param node 当前组件\n * @param type 事件类型\n */\nexport function isParentBound (node: TaroElement | null, type: string): boolean {\n while ((node = node?.parentElement || null)) {\n if (!node || node.nodeName === ROOT_STR || node.nodeName === 'root-portal') {\n return false\n } else if (node.__handlers[type]?.length) {\n return true\n }\n }\n\n return false\n}\n\nexport function shortcutAttr (key: string): string {\n switch (key) {\n case STYLE:\n return Shortcuts.Style\n case ID:\n return UID\n case CLASS:\n return Shortcuts.Class\n default:\n return key\n }\n}\n\nexport const customWrapperCache = new Map<string, Record<string, any>>()\n\ninterface Ctor {\n new (...args: any[]): any\n}\n\nexport function extend (ctor: Ctor, methodName: string, options: TFunc | Record<string, any>) {\n if (isFunction(options)) {\n options = {\n value: options\n }\n }\n Object.defineProperty(ctor.prototype, methodName, {\n configurable: true,\n enumerable: true,\n ...options\n })\n}\n\nlet componentsAlias\nexport function getComponentsAlias () {\n if (!componentsAlias) {\n componentsAlias = _getComponentsAlias(internalComponents)\n }\n return componentsAlias\n}\n\nexport function convertNumber2PX (value: number) {\n return value + 'px'\n}\n\nexport * from './lodash'\nexport * from './router'\n","import type { TaroElement } from './element'\n\nexport class ClassList {\n private el: TaroElement\n\n private tokenList: string[] = []\n\n constructor (className: string, el: TaroElement) {\n this.el = el\n className.trim().split(/\\s+/).forEach(token => this.tokenList.push(token))\n }\n\n public get value () {\n return this.toString()\n }\n\n public get length () {\n return this.tokenList.length\n }\n\n add () {\n let index = 0\n let updated = false\n\n const tokens = arguments\n const length = tokens.length\n const tokenList = this.tokenList\n\n do {\n const token: string = tokens[index]\n\n if (this.checkTokenIsValid(token) && !~tokenList.indexOf(token)) {\n tokenList.push(token)\n\n updated = true\n }\n } while (++index < length)\n\n if (updated) {\n this._update()\n }\n }\n\n remove () {\n let i = 0\n let updated = false\n\n const tokens = arguments\n const length = tokens.length\n const tokenList = this.tokenList\n\n do {\n const token = tokens[i] + ''\n\n if (!this.checkTokenIsValid(token)) continue\n\n const index = tokenList.indexOf(token)\n\n if (~tokenList.indexOf(token)) {\n tokenList.splice(index, 1)\n\n updated = true\n }\n } while (++i < length)\n\n if (updated) {\n this._update()\n }\n }\n\n contains (token: string) {\n if (!this.checkTokenIsValid(token)) return false\n\n return !!~this.tokenList.indexOf(token)\n }\n\n toggle (token: string, force: boolean) {\n const result = this.contains(token)\n const method = result ? force !== true && 'remove' : force !== false && 'add'\n\n if (method) {\n // @ts-ignore\n this[method](token)\n }\n\n if (force === true || force === false) {\n return force\n } else {\n return !result\n }\n }\n\n replace (token: string, replacement_token: string) {\n if (!this.checkTokenIsValid(token) || !this.checkTokenIsValid(replacement_token)) return\n\n const index = this.tokenList.indexOf(token)\n\n if (~index) {\n this.tokenList.splice(index, 1, replacement_token)\n this._update()\n }\n }\n\n toString () {\n return this.tokenList.filter(v => v !== '').join(' ')\n }\n\n private checkTokenIsValid (token: string) {\n if (token === '' || /\\s/.test(token)) return false\n\n return true\n }\n\n private _update () {\n this.el.className = this.value\n }\n}\n","import type { TaroNode } from './node'\n\ninterface IEventSource extends Map<string | undefined | null, TaroNode> {\n removeNode (child: TaroNode): void\n removeNodeTree (child: TaroNode): void\n}\n\nclass EventSource extends Map {\n removeNode (child: TaroNode) {\n const { sid, uid } = child\n this.delete(sid)\n if (uid !== sid && uid) this.delete(uid)\n }\n\n removeNodeTree (child: TaroNode) {\n this.removeNode(child)\n const { childNodes } = child\n childNodes.forEach(node => this.removeNodeTree(node))\n }\n}\n\nexport const eventSource: IEventSource = new EventSource()\n","import { hooks, Shortcuts, toCamelCase } from '@tarojs/shared'\n\nimport {\n CATCH_VIEW,\n CATCHMOVE,\n CLASS,\n CLICK_VIEW,\n COMPILE_MODE,\n ID,\n PURE_VIEW,\n STYLE,\n VIEW\n} from './constants'\nimport { getComponentsAlias, isComment, isHasExtractProp, isText } from './utils'\n\nimport type { TaroElement } from './dom/element'\nimport type { TaroText } from './dom/text'\nimport type { MiniData, MiniElementData } from './interface'\n\nlet SPECIAL_NODES\nlet componentsAlias\n\n/**\n * React also has a fancy function's name for this: `hydrate()`.\n * You may have been heard `hydrate` as a SSR-related function,\n * actually, `hydrate` basicly do the `render()` thing, but ignore some properties,\n * it's a vnode traverser and modifier: that's exactly what Taro's doing in here.\n */\nexport function hydrate (node: TaroElement | TaroText): MiniData {\n // 初始化 componentsAlias\n componentsAlias ||= getComponentsAlias()\n\n // 初始化 SPECIAL_NODES\n SPECIAL_NODES ||= hooks.call('getSpecialNodes')!\n\n const nodeName = node.nodeName\n let compileModeName = null\n\n if (isText(node)) {\n return {\n sid: node.sid,\n [Shortcuts.Text]: node.nodeValue,\n [Shortcuts.NodeName]: componentsAlias[nodeName]?._num || '8'\n }\n }\n\n const data: MiniElementData = {\n [Shortcuts.NodeName]: nodeName,\n sid: node.sid\n }\n\n if (node.uid !== node.sid) {\n data.uid = node.uid\n }\n\n if (SPECIAL_NODES.indexOf(nodeName) > -1) {\n if (!node.isAnyEventBinded()) {\n data[Shortcuts.NodeName] = `static-${nodeName}`\n if (nodeName === VIEW && !isHasExtractProp(node)) {\n data[Shortcuts.NodeName] = PURE_VIEW\n }\n }\n\n if (nodeName === VIEW && node.isOnlyClickBinded() && !isHasExtractProp(node)) {\n data[Shortcuts.NodeName] = CLICK_VIEW\n }\n }\n\n const { props } = node\n for (const prop in props) {\n const propInCamelCase = toCamelCase(prop)\n if (\n !prop.startsWith('data-') && // 在 node.dataset 的数据\n prop !== CLASS &&\n prop !== STYLE &&\n prop !== ID &&\n propInCamelCase !== CATCHMOVE &&\n propInCamelCase !== COMPILE_MODE\n ) {\n data[propInCamelCase] = props[prop]\n }\n if (\n process.env.TARO_ENV !== 'swan' &&\n nodeName === VIEW &&\n propInCamelCase === CATCHMOVE &&\n props[prop] !== false\n ) {\n data[Shortcuts.NodeName] = CATCH_VIEW\n }\n if (propInCamelCase === COMPILE_MODE) {\n compileModeName = props[prop]\n }\n }\n\n // Children\n data[Shortcuts.Childnodes] = node.childNodes.filter(node => !isComment(node)).map(hydrate)\n\n if (node.className !== '') {\n data[Shortcuts.Class] = node.className\n }\n\n const cssText = node.cssText\n if (cssText !== '' && nodeName !== 'swiper-item') {\n data[Shortcuts.Style] = cssText\n }\n\n hooks.call('modifyHydrateData', data, node)\n\n const nn = data[Shortcuts.NodeName]\n const componentAlias = componentsAlias[nn]\n if (componentAlias) {\n data[Shortcuts.NodeName] = componentAlias._num\n for (const prop in data) {\n if (prop in componentAlias) {\n data[componentAlias[prop]] = data[prop]\n delete data[prop]\n }\n }\n }\n\n if (compileModeName !== null) {\n data[Shortcuts.NodeName] = compileModeName\n }\n\n const resData = hooks.call('transferHydrateData', data, node, componentAlias)\n\n return resData || data\n}\n","import { hooks, isArray, isObject, warn } from '@tarojs/shared'\n\nimport type { AddEventListenerOptions, EventHandler } from '../interface'\n\nexport class TaroEventTarget {\n public __handlers: Record<string, EventHandler[]> = {}\n\n public addEventListener (type: string, handler: EventHandler, options?: boolean | AddEventListenerOptions) {\n type = type.toLowerCase()\n\n hooks.call('onAddEvent', type, handler, options, this)\n\n if (type === 'regionchange') {\n // map 组件的 regionchange 事件非常特殊,详情:https://github.com/NervJS/taro/issues/5766\n this.addEventListener('begin', handler, options)\n this.addEventListener('end', handler, options)\n return\n }\n\n let isCapture = Boolean(options)\n let isOnce = false\n if (isObject<AddEventListenerOptions>(options)) {\n isCapture = Boolean(options.capture)\n isOnce = Boolean(options.once)\n }\n\n if (isOnce) {\n const wrapper = function () {\n handler.apply(this, arguments) // this 指向 Element\n this.removeEventListener(type, wrapper)\n }\n this.addEventListener(type, wrapper, {\n ...(options as AddEventListenerOptions),\n once: false\n })\n return\n }\n\n process.env.NODE_ENV !== 'production' && warn(isCapture, 'Taro 暂未实现 event 的 capture 特性。')\n\n // 某些框架,如 PReact 有委托的机制,handler 始终是同一个函数\n // 这会导致多层停止冒泡失败:view -> view(handler.stop = false) -> view(handler.stop = true)\n // 这样解决:view -> view(handlerA.stop = false) -> view(handlerB.stop = false)\n // 因此每次绑定事件都新建一个函数,如果带来了性能问题,可以把这段逻辑抽取到 PReact 插件中。\n const oldHandler = handler\n handler = function () {\n return oldHandler.apply(this, arguments) // this 指向 Element\n }\n ;(handler as any).oldHandler = oldHandler\n\n const handlers = this.__handlers[type]\n if (isArray(handlers)) {\n handlers.push(handler)\n } else {\n this.__handlers[type] = [handler]\n }\n }\n\n public removeEventListener (type: string, handler: EventHandler) {\n type = type.toLowerCase()\n\n if (type === 'regionchange') {\n // map 组件的 regionchange 事件非常特殊,详情:https://github.com/NervJS/taro/issues/5766\n this.removeEventListener('begin', handler)\n this.removeEventListener('end', handler)\n return\n }\n\n if (!handler) {\n return\n }\n\n const handlers = this.__handlers[type]\n if (!isArray(handlers)) {\n return\n }\n\n const index = handlers.findIndex(item => {\n if (item === handler || (item as any).oldHandler === handler) return true\n })\n\n process.env.NODE_ENV !== 'production' && warn(index === -1, `事件: '${type}' 没有注册在 DOM 中,因此不会被移除。`)\n\n handlers.splice(index, 1)\n }\n\n public isAnyEventBinded (): boolean {\n const handlers = this.__handlers\n const isAnyEventBinded = Object.keys(handlers).find(key => handlers[key].length)\n return Boolean(isAnyEventBinded)\n }\n\n public isOnlyClickBinded (): boolean {\n const handlers = this.__handlers\n const isOnlyClickBinded = handlers.tap && Object.keys(handlers).length === 1\n return Boolean(isOnlyClickBinded)\n }\n}\n","import { ensure, hooks, Shortcuts } from '@tarojs/shared'\n\nimport { DOCUMENT_FRAGMENT } from '../constants'\nimport { MutationObserver, MutationRecordType } from '../dom-external/mutation-observer'\nimport env from '../env'\nimport { hydrate } from '../hydrate'\nimport { extend, incrementId, isComment } from '../utils'\nimport { eventSource } from './event-source'\nimport { TaroEventTarget } from './event-target'\nimport { NodeType } from './node_types'\n\nimport type { TFunc, UpdatePayload } from '../interface'\nimport type { TaroDocument } from './document'\nimport type { TaroElement } from './element'\nimport type { TaroRootElement } from './root'\n\ninterface RemoveChildOptions {\n cleanRef?: boolean\n doUpdate?: boolean\n}\n\nconst CHILDNODES = Shortcuts.Childnodes\nconst nodeId = incrementId()\n\nexport class TaroNode extends TaroEventTarget {\n public uid: string\n public sid: string\n public nodeType: NodeType\n public nodeName: string\n public parentNode: TaroNode | null = null\n public childNodes: TaroNode[] = []\n\n public constructor () {\n super()\n this.uid = '_' + nodeId() // dom 节点 id,开发者可修改\n this.sid = this.uid // dom 节点全局唯一 id,不可被修改\n eventSource.set(this.sid, this)\n }\n\n private hydrate = (node: TaroNode) => () => hydrate(node as TaroElement)\n\n private updateChildNodes (isClean?: boolean) {\n const cleanChildNodes = () => []\n const rerenderChildNodes = () => {\n const childNodes = this.childNodes.filter(node => !isComment(node))\n return childNodes.map(hydrate)\n }\n\n this.enqueueUpdate({\n path: `${this._path}.${CHILDNODES}`,\n value: isClean ? cleanChildNodes : rerenderChildNodes\n })\n }\n\n private updateSingleChild (index: number) {\n this.childNodes.forEach((child, childIndex) => {\n if (isComment(child)) return\n\n if (index && childIndex < index) return\n\n this.enqueueUpdate({\n path: child._path,\n value: this.hydrate(child)\n })\n })\n }\n\n public get _root (): TaroRootElement | null {\n return this.parentNode?._root || null\n }\n\n protected findIndex (refChild: TaroNode): number {\n const index = this.childNodes.indexOf(refChild)\n\n ensure(index !== -1, 'The node to be replaced is not a child of this node.')\n\n return index\n }\n\n public get _path (): string {\n const parentNode = this.parentNode\n\n if (parentNode) {\n // 计算路径时,先过滤掉 comment 节点\n const list = parentNode.childNodes.filter(node => !isComment(node))\n const indexOfNode = list.indexOf(this)\n const index = hooks.call('getPathIndex', indexOfNode)\n\n return `${parentNode._path}.${CHILDNODES}.${index}`\n }\n\n return ''\n }\n\n public get nextSibling (): TaroNode | null {\n const parentNode = this.parentNode\n return parentNode?.childNodes[parentNode.findIndex(this) + 1] || null\n }\n\n public get previousSibling (): TaroNode | null {\n const parentNode = this.parentNode\n return parentNode?.childNodes[parentNode.findIndex(this) - 1] || null\n }\n\n public get parentElement (): TaroElement | null {\n const parentNode = this.parentNode\n if (parentNode?.nodeType === NodeType.ELEMENT_NODE) {\n return parentNode as TaroElement\n }\n return null\n }\n\n public get firstChild (): TaroNode | null {\n return this.childNodes[0] || null\n }\n\n public get lastChild (): TaroNode | null {\n const childNodes = this.childNodes\n return childNodes[childNodes.length - 1] || null\n }\n\n /**\n * @textContent 目前只能置空子元素\n * @TODO 等待完整 innerHTML 实现\n */\n // eslint-disable-next-line accessor-pairs\n public set textContent (text: string) {\n const removedNodes = this.childNodes.slice()\n const addedNodes: TaroNode[] = []\n\n // Handle old children' data structure & ref\n while (this.firstChild) {\n this.removeChild(this.firstChild, { doUpdate: false })\n }\n\n if (text === '') {\n this.updateChildNodes(true)\n } else {\n const newText = env.document.createTextNode(text)\n addedNodes.push(newText)\n this.appendChild(newText)\n this.updateChildNodes()\n }\n\n // @Todo: appendChild 会多触发一次\n MutationObserver.record({\n type: MutationRecordType.CHILD_LIST,\n target: this,\n removedNodes,\n addedNodes\n })\n }\n\n /**\n * @doc https://developer.mozilla.org/zh-CN/docs/Web/API/Node/insertBefore\n * @scenario\n * [A,B,C]\n * 1. insert D before C, D has no parent\n * 2. insert D before C, D has the same parent of C\n * 3. insert D before C, D has the different parent of C\n */\n public insertBefore<T extends TaroNode> (newChild: T, refChild?: TaroNode | null, isReplace?: boolean): T {\n if (newChild.nodeName === DOCUMENT_FRAGMENT) {\n newChild.childNodes.reduceRight((previousValue, currentValue) => {\n this.insertBefore(currentValue, previousValue)\n return currentValue\n }, refChild)\n return newChild\n }\n\n // Parent release newChild\n // - cleanRef: false (No need to clean eventSource, because newChild is about to be inserted)\n // - update: true (Need to update parent.childNodes, because parent.childNodes is reordered)\n newChild.remove({ cleanRef: false })\n\n let index = 0\n // Data structure\n newChild.parentNode = this\n if (refChild) {\n // insertBefore & replaceChild\n index = this.findIndex(refChild)\n this.childNodes.splice(index, 0, newChild)\n } else {\n // appendChild\n this.childNodes.push(newChild)\n }\n\n const childNodesLength = this.childNodes.length\n // Serialization\n if (this._root) {\n if (!refChild) {\n // appendChild\n const isOnlyChild = childNodesLength === 1\n if (isOnlyChild) {\n this.updateChildNodes()\n } else {\n this.enqueueUpdate({\n path: newChild._path,\n value: this.hydrate(newChild)\n })\n }\n } else if (isReplace) {\n // replaceChild\n this.enqueueUpdate({\n path: newChild._path,\n value: this.hydrate(newChild)\n })\n } else {\n // insertBefore 有两种更新模式\n // 比方说有 A B C 三个节点,现在要在 C 前插入 D\n // 1. 插入 D,然后更新整个父节点的 childNodes 数组\n // setData({ cn: [A, B, D, C] })\n // 2. 插入 D,然后更新 D 以及 D 之后每个节点的数据\n // setData ({\n // cn.[2]: D,\n // cn.[3]: C,\n // })\n // 由于微信解析 ’cn.[2]‘ 这些路径的时候也需要消耗时间,\n // 所以根据 insertBefore 插入的位置来做不同的处理\n const mark = childNodesLength * 2 / 3\n if (mark > index) {\n // 如果 insertBefore 的位置在 childNodes 的 2/3 前,则为了避免解析路径消耗过多的时间,采用第一种方式\n this.updateChildNodes()\n } else {\n // 如果 insertBefore 的位置在 childNodes 的 2/3 之后,则采用第二种方式,避免 childNodes 的全量更新\n this.updateSingleChild(index)\n }\n }\n }\n\n MutationObserver.record({\n type: MutationRecordType.CHILD_LIST,\n target: this,\n addedNodes: [newChild],\n removedNodes: isReplace\n ? [refChild as TaroNode] /** replaceChild */\n : [],\n nextSibling: isReplace\n ? (refChild as TaroNode).nextSibling /** replaceChild */\n : (refChild || null), /** insertBefore & appendChild */\n previousSibling: newChild.previousSibling\n })\n\n return newChild\n }\n\n /**\n * @doc https://developer.mozilla.org/zh-CN/docs/Web/API/Node/appendChild\n * @scenario\n * [A,B,C]\n * 1. append C, C has no parent\n * 2. append C, C has the same parent of B\n * 3. append C, C has the different parent of B\n */\n public appendChild (newChild: TaroNode) {\n return this.insertBefore(newChild)\n }\n\n /**\n * @doc https://developer.mozilla.org/zh-CN/docs/Web/API/Node/replaceChild\n * @scenario\n * [A,B,C]\n * 1. replace B with C, C has no parent\n * 2. replace B with C, C has no parent, C has the same parent of B\n * 3. replace B with C, C has no parent, C has the different parent of B\n */\n public replaceChild (newChild: TaroNode, oldChild: TaroNode) {\n if (oldChild.parentNode !== this) return\n\n // Insert the newChild\n this.insertBefore(newChild, oldChild, true)\n\n // Destroy the oldChild\n // - cleanRef: true (Need to clean eventSource, because the oldChild was detached from the DOM tree)\n // - update: false (No need to update parent.childNodes, because replace will not cause the parent.childNodes being reordered)\n oldChild.remove({ doUpdate: false })\n\n return oldChild\n }\n\n /**\n * @doc https://developer.mozilla.org/zh-CN/docs/Web/API/Node/removeChild\n * @scenario\n * [A,B,C]\n * 1. remove A or B\n * 2. remove C\n */\n public removeChild<T extends TaroNode> (child: T, options: RemoveChildOptions = {}): T {\n const { cleanRef, doUpdate } = options\n\n if (cleanRef !== false && doUpdate !== false) {\n // appendChild/replaceChild/insertBefore 不应该触发\n // @Todo: 但其实如果 newChild 的父节点是另一颗子树的节点,应该是要触发的\n MutationObserver.record({\n type: MutationRecordType.CHILD_LIST,\n target: this,\n removedNodes: [child],\n nextSibling: child.nextSibling,\n previousSibling: child.previousSibling\n })\n }\n\n // Data Structure\n const index = this.findIndex(child)\n this.childNodes.splice(index, 1)\n child.parentNode = null\n\n // Set eventSource\n if (cleanRef !== false) {\n eventSource.removeNodeTree(child)\n }\n\n // Serialization\n if (this._root && doUpdate !== false) {\n this.updateChildNodes()\n }\n\n return child\n }\n\n public remove (options?: RemoveChildOptions) {\n this.parentNode?.removeChild(this, options)\n }\n\n public hasChildNodes () {\n return this.childNodes.length > 0\n }\n\n public enqueueUpdate (payload: UpdatePayload) {\n this._root?.enqueueUpdate(payload)\n }\n\n public get ownerDocument (): TaroDocument {\n return env.document\n }\n\n static extend (methodName: string, options: TFunc | Record<string, any>) {\n extend(TaroNode, methodName, options)\n }\n}\n","/*\n *\n * https://www.w3.org/Style/CSS/all-properties.en.html\n */\n\nconst WEBKIT = 'webkit'\n\nconst styleProperties = [\n 'all',\n 'appearance',\n 'backdropFilter',\n 'blockOverflow',\n 'blockSize',\n 'bottom',\n 'clear',\n 'contain',\n 'content',\n 'continue',\n 'cursor',\n 'direction',\n 'display',\n 'filter',\n 'float',\n 'gap',\n 'height',\n 'inset',\n 'isolation',\n 'left',\n 'letterSpacing',\n 'lightingColor',\n 'markerSide',\n 'mixBlendMode',\n 'opacity',\n 'order',\n 'position',\n 'quotes',\n 'resize',\n 'right',\n 'rowGap',\n 'tabSize',\n 'tableLayout',\n 'top',\n 'userSelect',\n 'verticalAlign',\n 'visibility',\n 'voiceFamily',\n 'volume',\n 'whiteSpace',\n 'widows',\n 'width',\n 'zIndex',\n 'pointerEvents',\n 'aspectRatio'\n\n /** 非常用 style */\n // 'azimuth',\n // 'backfaceVisibility',\n // 'baselineShift',\n // 'captionSide',\n // 'chains',\n // 'dominantBaseline',\n // 'elevation',\n // 'emptyCells',\n // 'forcedColorAdjust',\n // 'glyphOrientationVertical',\n // 'hangingPunctuation',\n // 'hyphenateCharacter',\n // 'hyphens',\n // 'imageOrientation',\n // 'imageResolution',\n // 'orphans',\n // 'playDuring',\n // 'pointerEvents',\n // 'regionFragment',\n // 'richness',\n // 'running',\n // 'scrollBehavior',\n // 'speechRate',\n // 'stress',\n // 'stringSet',\n // 'unicodeBidi',\n // 'willChange',\n // 'writingMode',\n]\n\n// 减少文件体积\nfunction combine (prefix: string, list: string[], excludeSelf?: boolean) {\n !excludeSelf && styleProperties.push(prefix)\n list.forEach(item => {\n styleProperties.push(prefix + item)\n if (prefix === WEBKIT) {\n styleProperties.push('Webkit' + item)\n }\n })\n}\n\nconst color = 'Color'\nconst style = 'Style'\nconst width = 'Width'\nconst image = 'Image'\nconst size = 'Size'\nconst color_style_width = [color, style, width]\nconst fitlength_fitwidth_image = ['FitLength', 'FitWidth', image]\nconst fitlength_fitwidth_image_radius = [...fitlength_fitwidth_image, 'Radius']\nconst color_style_width_fitlength_fitwidth_image = [...color_style_width, ...fitlength_fitwidth_image]\nconst endRadius_startRadius = ['EndRadius', 'StartRadius']\nconst bottom_left_right_top = ['Bottom', 'Left', 'Right', 'Top']\nconst end_start = ['End', 'Start']\nconst content_items_self = ['Content', 'Items', 'Self']\nconst blockSize_height_inlineSize_width = ['BlockSize', 'Height', 'InlineSize', width]\nconst after_before = ['After', 'Before']\n\ncombine('borderBlock', color_style_width)\ncombine('borderBlockEnd', color_style_width)\ncombine('borderBlockStart', color_style_width)\ncombine('outline', [...color_style_width, 'Offset'])\ncombine('border', [...color_style_width, 'Boundary', 'Break', 'Collapse', 'Radius', 'Spacing'])\ncombine('borderFit', ['Length', width])\ncombine('borderInline', color_style_width)\ncombine('borderInlineEnd', color_style_width)\ncombine('borderInlineStart', color_style_width)\ncombine('borderLeft', color_style_width_fitlength_fitwidth_image)\ncombine('borderRight', color_style_width_fitlength_fitwidth_image)\ncombine('borderTop', color_style_width_fitlength_fitwidth_image)\ncombine('borderBottom', color_style_width_fitlength_fitwidth_image)\ncombine('textDecoration', [color, style, 'Line'])\ncombine('textEmphasis', [color, style, 'Position'])\ncombine('scrollMargin', bottom_left_right_top)\ncombine('scrollPadding', bottom_left_right_top)\ncombine('padding', bottom_left_right_top)\ncombine('margin', [...bottom_left_right_top, 'Trim'])\ncombine('scrollMarginBlock', end_start)\ncombine('scrollMarginInline', end_start)\ncombine('scrollPaddingBlock', end_start)\ncombine('scrollPaddingInline', end_start)\ncombine('gridColumn', end_start)\ncombine('gridRow', end_start)\ncombine('insetBlock', end_start)\ncombine('insetInline', end_start)\ncombine('marginBlock', end_start)\ncombine('marginInline', end_start)\ncombine('paddingBlock', end_start)\ncombine('paddingInline', end_start)\ncombine('pause', after_before)\ncombine('cue', after_before)\ncombine('mask', ['Clip', 'Composite', image, 'Mode', 'Origin', 'Position', 'Repeat', size, 'Type'])\ncombine('borderImage', ['Outset', 'Repeat', 'Slice', 'Source', 'Transform', width])\ncombine('maskBorder', ['Mode', 'Outset', 'Repeat', 'Slice', 'Source', width])\ncombine('font', ['Family', 'FeatureSettings', 'Kerning', 'LanguageOverride', 'MaxSize', 'MinSize', 'OpticalSizing', 'Palette', size, 'SizeAdjust', 'Stretch', style, 'Weight', 'VariationSettings'])\ncombine('transform', ['Box', 'Origin', style])\ncombine('background', [color, image, 'Attachment', 'BlendMode', 'Clip', 'Origin', 'Position', 'Repeat', size])\ncombine('listStyle', [image, 'Position', 'Type'])\ncombine('scrollSnap', ['Align', 'Stop', 'Type'])\ncombine('grid', ['Area', 'AutoColumns', 'AutoFlow', 'AutoRows'])\ncombine('gridTemplate', ['Areas', 'Columns', 'Rows'])\ncombine('overflow', ['Block', 'Inline', 'Wrap', 'X', 'Y'])\ncombine('transition', ['Delay', 'Duration', 'Property', 'TimingFunction'])\ncombine('color', ['Adjust', 'InterpolationFilters', 'Scheme'])\ncombine('textAlign', ['All', 'Last'])\ncombine('page', ['BreakAfter', 'BreakBefore', 'BreakInside'])\ncombine('animation', ['Delay', 'Direction', 'Duration', 'FillMode', 'IterationCount', 'Name', 'PlayState', 'TimingFunction'])\ncombine('flex', ['Basis', 'Direction', 'Flow', 'Grow', 'Shrink', 'Wrap'])\ncombine('offset', [...after_before, ...end_start, 'Anchor', 'Distance', 'Path', 'Position', 'Rotate'])\ncombine('perspective', ['Origin'])\ncombine('clip', ['Path', 'Rule'])\ncombine('flow', ['From', 'Into'])\n\ncombine('align', ['Content', 'Items', 'Self'], true)\ncombine('alignment', ['Adjust', 'Baseline'], true)\ncombine('borderStart', endRadius_startRadius, true)\ncombine('borderEnd', endRadius_startRadius, true)\ncombine('borderCorner', ['Fit', image, 'ImageTransform'], true)\ncombine('borderTopLeft', fitlength_fitwidth_image_radius, true)\ncombine('borderTopRight', fitlength_fitwidth_image_radius, true)\ncombine('borderBottomLeft', fitlength_fitwidth_image_radius, true)\ncombine('borderBottomRight', fitlength_fitwidth_image_radius, true)\ncombine('column', ['s', 'Count', 'Fill', 'Gap', 'Rule', 'RuleColor', 'RuleStyle', 'RuleWidth', 'Span', width], true)\ncombine('break', [...after_before, 'Inside'], true)\ncombine('wrap', [...after_before, 'Flow', 'Inside', 'Through'], true)\ncombine('justify', content_items_self, true)\ncombine('place', content_items_self, true)\ncombine('max', [...blockSize_height_inlineSize_width, 'Lines'], true)\ncombine('min', blockSize_height_inlineSize_width, true)\ncombine('line', ['Break', 'Clamp', 'Grid', 'Height', 'Padding', 'Snap'], true)\ncombine('inline', ['BoxAlign', size, 'Sizing'], true)\ncombine('text', ['CombineUpright', 'GroupAlign', 'Height', 'Indent', 'Justify', 'Orientation', 'Overflow', 'Shadow', 'SpaceCollapse', 'SpaceTrim', 'Spacing', 'Transform', 'UnderlinePosition', 'Wrap'], true)\ncombine('shape', ['ImageThreshold', 'Inside', 'Margin', 'Outside'], true)\ncombine('word', ['Break', 'Spacing', 'Wrap'], true)\ncombine('object', ['Fit', 'Position'], true)\ncombine('box', ['DecorationBreak', 'Shadow', 'Sizing', 'Snap'], true)\n\ncombine(WEBKIT, ['LineClamp', 'BoxOrient', 'TextFillColor', 'TextStroke', 'TextStrokeColor', 'TextStrokeWidth'], true)\n\n/** 非常用 style */\n// combine('caret', [color, 'Shape'])\n// combine('counter', ['Increment', 'Reset', 'Set'], true)\n// combine('dropInitial', ['AfterAdjust', 'AfterAlign', 'BeforeAdjust', 'BeforeAlign', size, 'Value'], true)\n// combine('flood', [color, 'Opacity'], true)\n// combine('footnote', ['Display', 'Policy'], true)\n// combine('hyphenateLimit', ['Chars', 'Last', 'Lines', 'Zone'], true)\n// combine('initialLetters', ['Align', 'Wrap'])\n// combine('ruby', ['Align', 'Merge', 'Position'], true)\n// combine('lineStacking', ['Ruby', 'Shift', 'Strategy'])\n// combine('bookmark', ['Label', 'Level', 'State'], true)\n// combine('speak', ['Header', 'Numeral', 'Punctuation'])\n// combine('pitch', ['Range'])\n// combine('nav', ['Down', 'Left', 'Right', 'Up'], true)\n// combine('fontSynthesis', ['SmallCaps', style, 'Weight'])\n// combine('fontVariant', ['Alternates', 'Caps', 'EastAsian', 'Emoji', 'Ligatures', 'Numeric', 'Position'])\n\nexport { styleProperties }\n","import { hooks, isArray, isNull, isString, isUndefined, Shortcuts, toCamelCase, toDashed, warn } from '@tarojs/shared'\n\nimport { PROPERTY_THRESHOLD } from '../constants'\nimport { MutationObserver, MutationRecordType } from '../dom-external/mutation-observer'\nimport { TaroElement } from './element'\nimport { styleProperties } from './style_properties'\n\nfunction recordCss (obj: Style) {\n MutationObserver.record({\n type: MutationRecordType.ATTRIBUTES,\n target: obj._element,\n attributeName: 'style',\n oldValue: obj.cssText\n })\n}\n\nfunction enqueueUpdate (obj: Style) {\n const element = obj._element\n if (element._root) {\n element.enqueueUpdate({\n path: `${element._path}.${Shortcuts.Style}`,\n value: obj.cssText\n })\n }\n}\n\nfunction setStyle (this: Style, newVal: string, styleKey: string) {\n process.env.NODE_ENV !== 'production' && warn(\n isString(newVal) && newVal.length > PROPERTY_THRESHOLD,\n `Style 属性 ${styleKey} 的值数据量过大,可能会影响渲染性能,考虑使用 CSS 类或其它方案替代。`\n )\n\n const old = this[styleKey]\n\n if (old === newVal) return\n\n !this._pending && recordCss(this)\n\n if (isNull(newVal) || isUndefined(newVal) || newVal === '') {\n this._usedStyleProp.delete(styleKey)\n delete this._value[styleKey]\n } else {\n this._usedStyleProp.add(styleKey)\n this._value[styleKey] = newVal\n }\n\n !this._pending && enqueueUpdate(this)\n}\n\nfunction initStyle (ctor: typeof Style, styleProperties: string[]) {\n const properties = {}\n\n for (let i = 0; i < styleProperties.length; i++) {\n const styleKey = styleProperties[i]\n\n if (ctor[styleKey]) return\n\n properties[styleKey] = {\n get (this: Style) {\n const val = this._value[styleKey]\n return isNull(val) || isUndefined(val) ? '' : val\n },\n set (this: Style, newVal: string) {\n setStyle.call(this, newVal, styleKey)\n }\n }\n }\n\n Object.defineProperties(ctor.prototype, properties)\n}\n\nfunction isCssVariable (propertyName) {\n return /^--/.test(propertyName)\n}\n\nexport class Style {\n public _pending: boolean\n\n public _usedStyleProp: Set<string>\n\n public _value: Partial<CSSStyleDeclaration>\n\n public _element: TaroElement\n\n public constructor (element: TaroElement) {\n this._element = element\n this._usedStyleProp = new Set()\n this._value = {}\n }\n\n private setCssVariables (styleKey: string) {\n this.hasOwnProperty(styleKey) || Object.defineProperty(this, styleKey, {\n enumerable: true,\n configurable: true,\n get: () => {\n return this._value[styleKey] || ''\n },\n set: (newVal: string) => {\n setStyle.call(this, newVal, styleKey)\n }\n })\n }\n\n public get cssText () {\n if (!this._usedStyleProp.size) return ''\n\n const texts: string[] = []\n this._usedStyleProp.forEach(key => {\n const val = this[key]\n if (isNull(val) || isUndefined(val)) return\n let styleName = isCssVariable(key) ? key : toDashed(key)\n if (styleName.indexOf('webkit') === 0 || styleName.indexOf('Webkit') === 0) {\n styleName = `-${styleName}`\n }\n texts.push(`${styleName}: ${val};`)\n })\n return texts.join(' ')\n }\n\n public set cssText (str: string) {\n this._pending = true\n recordCss(this)\n\n this._usedStyleProp.forEach(prop => {\n this.removeProperty(prop)\n })\n\n if (str === '' || isUndefined(str) || isNull(str)) {\n this._pending = false\n enqueueUpdate(this)\n return\n }\n\n const rules = str.split(';')\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i].trim()\n if (rule === '') {\n continue\n }\n\n // 可能存在 'background: url(http:x/y/z)' 的情况\n const [propName, ...valList] = rule.split(':')\n const val = valList.join(':')\n\n if (isUndefined(val)) {\n continue\n }\n this.setProperty(propName.trim(), val.trim())\n }\n\n this._pending = false\n enqueueUpdate(this)\n }\n\n public setProperty (propertyName: string, value?: string | null) {\n if (propertyName[0] === '-') {\n // 支持 webkit 属性或 css 变量\n this.setCssVariables(propertyName)\n } else {\n propertyName = toCamelCase(propertyName)\n }\n\n if (isNull(value) || isUndefined(value)) {\n this.removeProperty(propertyName)\n } else {\n this[propertyName] = value\n }\n }\n\n public removeProperty (propertyName: string): string {\n propertyName = toCamelCase(propertyName)\n if (!this._usedStyleProp.has(propertyName)) {\n return ''\n }\n\n const value = this[propertyName]\n this[propertyName] = undefined\n return value\n }\n\n public getPropertyValue (propertyName: string) {\n propertyName = toCamelCase(propertyName)\n const value = this[propertyName]\n if (!value) {\n return ''\n }\n\n return value\n }\n}\n\ninitStyle(Style, styleProperties)\n\nhooks.tap('injectNewStyleProperties', (newStyleProperties: string[]) => {\n if (isArray(newStyleProperties)) {\n initStyle(Style, newStyleProperties)\n } else {\n if (typeof newStyleProperties !== 'string') return\n\n initStyle(Style, [newStyleProperties])\n }\n})\n","import { NodeType } from './node_types'\n\nimport type { TaroElement } from './element'\n\ntype Filter = (element: TaroElement) => boolean\n\nfunction returnTrue () {\n return true\n}\n\nexport function treeToArray (root: TaroElement, predict?: Filter): TaroElement[] {\n const array: TaroElement[] = []\n const filter = predict ?? returnTrue\n\n let object: TaroElement | null = root\n\n while (object) {\n if (object.nodeType === NodeType.ELEMENT_NODE && filter(object)) {\n array.push(object)\n }\n\n object = following(object, root)\n }\n\n return array\n}\n\nfunction following (el: TaroElement, root: TaroElement): TaroElement | null {\n const firstChild = el.firstChild\n const isElmentTypeValid = el.nodeType === NodeType.ELEMENT_NODE || el.nodeType === NodeType.DOCUMENT_NODE\n\n // 如果当前 el 不是 element 或 document 元素,则可以直接不递归他的子元素了\n if (firstChild && isElmentTypeValid) {\n return firstChild as TaroElement\n }\n\n let current: TaroElement | null = el\n\n do {\n if (current === root) {\n return null\n }\n\n const nextSibling = current.nextSibling\n\n if (nextSibling) {\n return nextSibling as TaroElement\n }\n current = current.parentElement\n } while (current)\n\n return null\n}\n","import { EMPTY_OBJ, hooks, isArray, isFunction, isObject, isString, isUndefined, Shortcuts, toCamelCase, warn } from '@tarojs/shared'\n\nimport {\n CATCH_VIEW,\n CATCHMOVE,\n CLASS,\n CLICK_VIEW,\n EVENT_CALLBACK_RESULT,\n FOCUS,\n ID,\n PROPERTY_THRESHOLD,\n PURE_VIEW,\n STATIC_VIEW,\n STYLE,\n VIEW\n} from '../constants'\nimport { MutationObserver, MutationRecordType } from '../dom-external/mutation-observer'\nimport { extend, getComponentsAlias, isElement, isHasExtractProp, shortcutAttr } from '../utils'\nimport { ClassList } from './class-list'\nimport { eventSource } from './event-source'\nimport { TaroNode } from './node'\nimport { NodeType } from './node_types'\nimport { Style } from './style'\nimport { treeToArray } from './tree'\n\nimport type { Attributes, TFunc } from '../interface'\nimport type { TaroEvent } from './event'\n\nexport class TaroElement extends TaroNode {\n public ctx?\n public tagName: string\n public props: Record<string, any> = {}\n public style: Style\n public dataset: Record<string, unknown> = EMPTY_OBJ\n public innerHTML: string\n\n public constructor () {\n super()\n this.nodeType = NodeType.ELEMENT_NODE\n this.style = new Style(this)\n hooks.call('patchElement', this)\n }\n\n private _stopPropagation (event: TaroEvent) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let target = this\n // eslint-disable-next-line no-cond-assign\n while ((target = target.parentNode as this)) {\n const listeners = target.__handlers[event.type]\n\n if (!isArray(listeners)) {\n continue\n }\n\n for (let i = listeners.length; i--;) {\n const l = listeners[i]\n l._stop = true\n }\n }\n }\n\n public get id (): string {\n return this.getAttribute(ID)!\n }\n\n public set id (val: string) {\n this.setAttribute(ID, val)\n }\n\n public get className (): string {\n return this.getAttribute(CLASS) || ''\n }\n\n public set className (val: string) {\n this.setAttribute(CLASS, val)\n }\n\n public get cssText (): string {\n return this.getAttribute(STYLE) || ''\n }\n\n public get classList (): ClassList {\n return new ClassList(this.className, this)\n }\n\n public get children (): TaroElement[] {\n return this.childNodes.filter(isElement)\n }\n\n public get attributes (): Attributes[] {\n const props = this.props\n const propKeys = Object.keys(props)\n const style = this.style.cssText\n const attrs = propKeys.map(key => ({ name: key, value: props[key] }))\n return attrs.concat(style ? { name: STYLE, value: style } : [])\n }\n\n public get textContent (): string {\n let text = ''\n const childNodes = this.childNodes\n\n for (let i = 0; i < childNodes.length; i++) {\n text += childNodes[i].textContent\n }\n\n return text\n }\n\n public set textContent (text: string) {\n super.textContent = text\n }\n\n public hasAttribute (qualifiedName: string): boolean {\n return !isUndefined(this.props[qualifiedName])\n }\n\n public hasAttributes (): boolean {\n return this.attributes.length > 0\n }\n\n public get focus () {\n return function () {\n this.setAttribute(FOCUS, true)\n }\n }\n\n // 兼容 Vue3,详情请见:https://github.com/NervJS/taro/issues/10579\n public set focus (value) {\n this.setAttribute(FOCUS, value)\n }\n\n public blur () {\n this.setAttribute(FOCUS, false)\n }\n\n public setAttribute (qualifiedName: string, value: any): void {\n process.env.NODE_ENV !== 'production' && warn(\n isString(value) && value.length > PROPERTY_THRESHOLD,\n `元素 ${this.nodeName} 的 ${qualifiedName} 属性值数据量过大,可能会影响渲染性能。考虑降低图片转为 base64 的阈值或在 CSS 中使用 base64。`\n )\n\n const isPureView = this.nodeName === VIEW && !isHasExtractProp(this) && !this.isAnyEventBinded()\n\n if (qualifiedName !== STYLE) {\n MutationObserver.record({\n target: this,\n type: MutationRecordType.ATTRIBUTES,\n attributeName: qualifiedName,\n oldValue: this.getAttribute(qualifiedName)\n })\n }\n\n switch (qualifiedName) {\n case STYLE:\n this.style.cssText = value as string\n break\n case ID:\n if (this.uid !== this.sid) {\n // eventSource[sid] 永远保留,直到组件卸载\n // eventSource[uid] 可变\n eventSource.delete(this.uid)\n }\n value = String(value)\n this.props[qualifiedName] = this.uid = value\n eventSource.set(value, this)\n break\n default:\n this.props[qualifiedName] = value as string\n\n if (qualifiedName.startsWith('data-')) {\n if (this.dataset === EMPTY_OBJ) {\n this.dataset = Object.create(null)\n }\n this.dataset[toCamelCase(qualifiedName.replace(/^data-/, ''))] = value\n }\n break\n }\n\n // Serialization\n if (!this._root) return\n\n const componentsAlias = getComponentsAlias()\n const _alias = componentsAlias[this.nodeName]\n const viewAlias = componentsAlias[VIEW]._num\n const clickViewAlias = componentsAlias[CLICK_VIEW]._num\n const staticViewAlias = componentsAlias[STATIC_VIEW]._num\n const catchViewAlias = componentsAlias[CATCH_VIEW]._num\n const _path = this._path\n\n qualifiedName = shortcutAttr(qualifiedName)\n\n const qualifiedNameInCamelCase = toCamelCase(qualifiedName)\n const payload = {\n path: `${_path}.${qualifiedNameInCamelCase}`,\n value: isFunction(value) ? () => value : value\n }\n\n hooks.call('modifySetAttrPayload', this, qualifiedName, payload, componentsAlias)\n\n if (_alias) {\n const qualifiedNameAlias = _alias[qualifiedNameInCamelCase] || qualifiedName\n payload.path = `${_path}.${toCamelCase(qualifiedNameAlias)}`\n }\n\n this.enqueueUpdate(payload)\n\n if (this.nodeName === VIEW) {\n if (qualifiedNameInCamelCase === CATCHMOVE) {\n // catchMove = true: catch-view\n // catchMove = false: view or click-view or static-view\n this.enqueueUpdate({\n path: `${_path}.${Shortcuts.NodeName}`,\n value: value ? catchViewAlias : (\n this.isOnlyClickBinded() && !isHasExtractProp(this) ? clickViewAlias : (this.isAnyEventBinded() ? viewAlias : staticViewAlias)\n )\n })\n } else if (isPureView && isHasExtractProp(this)) {\n // pure-view => static-view\n this.enqueueUpdate({\n path: `${_path}.${Shortcuts.NodeName}`,\n value: staticViewAlias\n })\n }\n }\n }\n\n public removeAttribute (qualifiedName: string) {\n const isStaticView = this.nodeName === VIEW && isHasExtractProp(this) && !this.isAnyEventBinded()\n\n MutationObserver.record({\n target: this,\n type: MutationRecordType.ATTRIBUTES,\n attributeName: qualifiedName,\n oldValue: this.getAttribute(qualifiedName)\n })\n\n if (qualifiedName === STYLE) {\n this.style.cssText = ''\n } else {\n const isInterrupt = hooks.call('onRemoveAttribute', this, qualifiedName)\n if (isInterrupt) {\n return\n }\n\n if (!this.props.hasOwnProperty(qualifiedName)) {\n return\n }\n delete this.props[qualifiedName]\n }\n\n // Serialization\n if (!this._root) return\n\n const componentsAlias = getComponentsAlias()\n const _alias = componentsAlias[this.nodeName]\n const viewAlias = componentsAlias[VIEW]._num\n const staticViewAlias = componentsAlias[STATIC_VIEW]._num\n const pureViewAlias = componentsAlias[PURE_VIEW]._num\n const clickViewAlias = componentsAlias[CLICK_VIEW]._num\n const _path = this._path\n\n qualifiedName = shortcutAttr(qualifiedName)\n\n const qualifiedNameInCamelCase = toCamelCase(qualifiedName)\n const payload = {\n path: `${_path}.${qualifiedNameInCamelCase}`,\n value: ''\n }\n\n hooks.call('modifyRmAttrPayload', this, qualifiedName, payload, componentsAlias)\n\n if (_alias) {\n const qualifiedNameAlias = _alias[qualifiedNameInCamelCase] || qualifiedName\n payload.path = `${_path}.${toCamelCase(qualifiedNameAlias)}`\n }\n\n this.enqueueUpdate(payload)\n\n if (this.nodeName === VIEW) {\n if (qualifiedNameInCamelCase === CATCHMOVE) {\n // catch-view => view or click-view or static-view or pure-view\n this.enqueueUpdate({\n path: `${_path}.${Shortcuts.NodeName}`,\n value: this.isOnlyClickBinded() && !isHasExtractProp(this) ? clickViewAlias : (this.isAnyEventBinded() ? viewAlias : (isHasExtractProp(this) ? staticViewAlias : pureViewAlias))\n })\n } else if (isStaticView && !isHasExtractProp(this)) {\n // static-view => pure-view\n this.enqueueUpdate({\n path: `${_path}.${Shortcuts.NodeName}`,\n value: pureViewAlias\n })\n }\n }\n }\n\n public getAttribute (qualifiedName: string): string {\n const attr = qualifiedName === STYLE ? this.style.cssText : this.props[qualifiedName]\n return attr ?? ''\n }\n\n public getElementsByTagName (tagName: string): TaroElement[] {\n return treeToArray(this, (el) => {\n return el.nodeName === tagName || (tagName === '*' && this !== el)\n })\n }\n\n public getElementsByClassName (className: string): TaroElement[] {\n const classNames = className.trim().split(/\\s+/)\n\n return treeToArray(this, (el) => {\n const classList = el.classList\n return classNames.every(c => classList.contains(c))\n })\n }\n\n public dispatchEvent (event: TaroEvent): boolean {\n const cancelable = event.cancelable\n\n const listeners = this.__handlers[event.type]\n\n if (!isArray(listeners)) {\n return false\n }\n\n for (let i = listeners.length; i--;) {\n const listener = listeners[i]\n let result: unknown\n if (listener._stop) {\n listener._stop = false\n } else {\n hooks.call('modifyDispatchEvent', event, this)\n result = listener.call(this, event)\n }\n if ((result === false || event._end) && cancelable) {\n event.defaultPrevented = true\n }\n\n if (!isUndefined(result) && event.mpEvent) {\n const res = hooks.call('modifyTaroEventReturn', this, event, result)\n if (res) { event.mpEvent[EVENT_CALLBACK_RESULT] = result }\n }\n\n if (event._end && event._stop) {\n break\n }\n }\n\n if (event._stop) {\n this._stopPropagation(event)\n }\n\n return listeners != null\n }\n\n public addEventListener (type, handler, options) {\n const name = this.nodeName\n const SPECIAL_NODES = hooks.call('getSpecialNodes')!\n\n let sideEffect = true\n if (isObject<Record<string, any>>(options) && options.sideEffect === false) {\n sideEffect = false\n delete options.sideEffect\n }\n\n hooks.call('modifyAddEventListener', this, sideEffect, getComponentsAlias)\n\n if (sideEffect !== false && !this.isAnyEventBinded() && SPECIAL_NODES.indexOf(name) > -1) {\n const componentsAlias = getComponentsAlias()\n const alias = componentsAlias[name]._num\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: alias\n })\n }\n\n super.addEventListener(type, handler, options)\n }\n\n public removeEventListener (type, handler, sideEffect = true) {\n super.removeEventListener(type, handler)\n\n const name = this.nodeName\n const SPECIAL_NODES = hooks.call('getSpecialNodes')!\n\n hooks.call('modifyRemoveEventListener', this, sideEffect, getComponentsAlias)\n\n if (sideEffect !== false && !this.isAnyEventBinded() && SPECIAL_NODES.indexOf(name) > -1) {\n const componentsAlias = getComponentsAlias()\n const value = isHasExtractProp(this) ? `static-${name}` : `pure-${name}`\n const valueAlias = componentsAlias[value]._num\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.NodeName}`,\n value: valueAlias\n })\n }\n }\n\n static extend (methodName: string, options: TFunc | Record<string, any>) {\n extend(TaroElement, methodName, options)\n }\n}\n","import type { Options } from './interface'\n\nexport const options: Options = {\n prerender: true,\n debug: false\n}\n","import { options } from '../../options'\n\ninterface Position {\n index: number\n column: number\n line: number\n}\n\nexport interface Token {\n type: string\n content?: string\n position?: {\n start?: Position\n end?: Position\n }\n close?: boolean\n}\n\nfunction initPosition (): Position {\n return {\n index: 0,\n column: 0,\n line: 0\n }\n}\n\nfunction feedPosition (position: Position, str: string, len: number) {\n const start = position.index\n const end = position.index = start + len\n for (let i = start; i < end; i++) {\n const char = str.charAt(i)\n if (char === '\\n') {\n position.line++\n position.column = 0\n } else {\n position.column++\n }\n }\n}\n\nfunction jumpPosition (position: Position, str: string, end: number) {\n const len = end - position.index\n return feedPosition(position, str, len)\n}\n\nfunction copyPosition (position: Position) {\n return {\n index: position.index,\n line: position.line,\n column: position.column\n }\n}\n\nconst whitespace = /\\s/\nfunction isWhitespaceChar (char: string) {\n return whitespace.test(char)\n}\n\nconst equalSign = /=/\nfunction isEqualSignChar (char: string) {\n return equalSign.test(char)\n}\n\nfunction shouldBeIgnore (tagName: string) {\n const name = tagName.toLowerCase()\n if (options.html!.skipElements.has(name)) {\n return true\n }\n return false\n}\n\nconst alphanumeric = /[A-Za-z0-9]/\n\nfunction findTextEnd (str: string, index: number) {\n while (true) {\n const textEnd = str.indexOf('<', index)\n if (textEnd === -1) {\n return textEnd\n }\n const char = str.charAt(textEnd + 1)\n if (char === '/' || char === '!' || alphanumeric.test(char)) {\n return textEnd\n }\n index = textEnd + 1\n }\n}\n\nfunction isWordEnd (cursor: number, wordBegin: number, html: string) {\n if (!isWhitespaceChar(html.charAt(cursor))) return false\n\n const len = html.length\n\n // backward\n for (let i = cursor - 1; i > wordBegin; i--) {\n const char = html.charAt(i)\n if (!isWhitespaceChar(char)) {\n if (isEqualSignChar(char)) return false\n break\n }\n }\n\n // forward\n for (let i = cursor + 1; i < len; i++) {\n const char = html.charAt(i)\n if (!isWhitespaceChar(char)) {\n if (isEqualSignChar(char)) return false\n return true\n }\n }\n}\n\nexport class Scanner {\n private tokens: Token[] = []\n\n private position: Position = initPosition()\n\n private html: string\n\n constructor (html: string) {\n this.html = html\n }\n\n public scan (): Token[] {\n const { html, position } = this\n const len = html.length\n\n while (position.index < len) {\n const start = position.index\n this.scanText()\n if (position.index === start) {\n const isComment = html.startsWith('!--', start + 1)\n if (isComment) {\n this.scanComment()\n } else {\n const tagName = this.scanTag()\n if (shouldBeIgnore(tagName)) {\n this.scanSkipTag(tagName)\n }\n }\n }\n }\n\n return this.tokens\n }\n\n private scanText () {\n const type = 'text'\n const { html, position } = this\n let textEnd = findTextEnd(html, position.index)\n if (textEnd === position.index) {\n return\n }\n if (textEnd === -1) {\n textEnd = html.length\n }\n\n const start = copyPosition(position)\n const content = html.slice(position.index, textEnd)\n jumpPosition(position, html, textEnd)\n const end = copyPosition(position)\n this.tokens.push({ type, content, position: { start, end } })\n }\n\n private scanComment () {\n const type = 'comment'\n const { html, position } = this\n const start = copyPosition(position)\n feedPosition(position, html, 4) // \"<!--\".length\n let contentEnd = html.indexOf('-->', position.index)\n let commentEnd = contentEnd + 3 // \"-->\".length\n if (contentEnd === -1) {\n contentEnd = commentEnd = html.length\n }\n\n const content = html.slice(position.index, contentEnd)\n jumpPosition(position, html, commentEnd)\n this.tokens.push({\n type,\n content,\n position: {\n start,\n end: copyPosition(position)\n }\n })\n }\n\n private scanTag () {\n this.scanTagStart()\n const tagName = this.scanTagName()\n this.scanAttrs()\n this.scanTagEnd()\n\n return tagName\n }\n\n private scanTagStart () {\n const type = 'tag-start'\n const { html, position } = this\n\n const secondChar = html.charAt(position.index + 1)\n const close = secondChar === '/'\n const start = copyPosition(position)\n feedPosition(position, html, close ? 2 : 1)\n this.tokens.push({ type, close, position: { start } })\n }\n\n private scanTagEnd () {\n const type = 'tag-end'\n const { html, position } = this\n\n const firstChar = html.charAt(position.index)\n const close = firstChar === '/'\n feedPosition(position, html, close ? 2 : 1)\n const end = copyPosition(position)\n this.tokens.push({ type, close, position: { end } })\n }\n\n private scanTagName (): string {\n const type = 'tag'\n const { html, position } = this\n const len = html.length\n let start = position.index\n while (start < len) {\n const char = html.charAt(start)\n const isTagChar = !(isWhitespaceChar(char) || char === '/' || char === '>')\n if (isTagChar) break\n start++\n }\n\n let end = start + 1\n while (end < len) {\n const char = html.charAt(end)\n const isTagChar = !(isWhitespaceChar(char) || char === '/' || char === '>')\n if (!isTagChar) break\n end++\n }\n\n jumpPosition(position, html, end)\n const tagName = html.slice(start, end)\n this.tokens.push({\n type,\n content: tagName\n })\n\n return tagName\n }\n\n private scanAttrs () {\n const { html, position, tokens } = this\n let cursor = position.index\n let quote: string | null = null // null, single-, or double-quote\n let wordBegin = cursor // index of word start\n const words: string[] = [] // \"key\", \"key=value\", \"key='value'\", etc\n const len = html.length\n while (cursor < len) {\n const char = html.charAt(cursor)\n if (quote) {\n const isQuoteEnd = char === quote\n if (isQuoteEnd) {\n quote = null\n }\n cursor++\n continue\n }\n\n const isTagEnd = char === '/' || char === '>'\n if (isTagEnd) {\n if (cursor !== wordBegin) {\n words.push(html.slice(wordBegin, cursor))\n }\n break\n }\n\n if (isWordEnd(cursor, wordBegin, html)) {\n if (cursor !== wordBegin) {\n words.push(html.slice(wordBegin, cursor))\n }\n wordBegin = cursor + 1\n cursor++\n continue\n }\n\n const isQuoteStart = char === '\\'' || char === '\"'\n if (isQuoteStart) {\n quote = char\n cursor++\n continue\n }\n\n cursor++\n }\n\n jumpPosition(position, html, cursor)\n\n const wLen = words.length\n const type = 'attribute'\n for (let i = 0; i < wLen; i++) {\n const word = words[i]\n const isNotPair = word.includes('=')\n if (isNotPair) {\n const secondWord = words[i + 1]\n if (secondWord && secondWord.startsWith('=')) {\n if (secondWord.length > 1) {\n const newWord = word + secondWord\n tokens.push({ type, content: newWord })\n i += 1\n continue\n }\n const thirdWord = words[i + 2]\n i += 1\n if (thirdWord) {\n const newWord = word + '=' + thirdWord\n tokens.push({ type, content: newWord })\n i += 1\n continue\n }\n }\n }\n if (word.endsWith('=')) {\n const secondWord = words[i + 1]\n if (secondWord && !secondWord.includes('=')) {\n const newWord = word + secondWord\n tokens.push({ type, content: newWord })\n i += 1\n continue\n }\n\n const newWord = word.slice(0, -1)\n tokens.push({ type, content: newWord })\n continue\n }\n\n tokens.push({ type, content: word })\n }\n }\n\n private scanSkipTag (tagName: string) {\n const { html, position } = this\n const safeTagName = tagName.toLowerCase()\n const len = html.length\n while (position.index < len) {\n const nextTag = html.indexOf('</', position.index)\n if (nextTag === -1) {\n this.scanText()\n break\n }\n\n jumpPosition(position, html, nextTag)\n const name = this.scanTag()\n if (safeTagName === name.toLowerCase()) {\n break\n }\n }\n }\n}\n","export function unquote (str: string): string {\n const car = str.charAt(0)\n const end = str.length - 1\n const isQuoteStart = car === '\"' || car === \"'\"\n if (isQuoteStart && car === str.charAt(end)) {\n return str.slice(1, end)\n }\n return str\n}\n","import { NodeType } from '../../dom/node_types'\nimport { unquote } from './utils'\n\nimport type { ParsedTaroElement } from './parser'\n\nconst LEFT_BRACKET = '{'\nconst RIGHT_BRACKET = '}'\nconst CLASS_SELECTOR = '.'\nconst ID_SELECTOR = '#'\nconst CHILD_COMBINATOR = '>'\nconst GENERAL_SIBLING_COMBINATOR = '~'\nconst ADJACENT_SIBLING_COMBINATOR = '+'\n\ninterface ISelector {\n isChild: boolean\n isGeneralSibling: boolean\n isAdjacentSibling: boolean\n tag: string | null\n id: string | null\n class: string[]\n attrs: {\n all: boolean\n key: string\n value?: string | null\n }[]\n}\n\ninterface IStyle {\n content: string\n selectorList: ISelector[]\n}\n\nexport default class StyleTagParser {\n styles: IStyle[] = []\n\n extractStyle (src: string) {\n const REG_STYLE = /<style\\s?[^>]*>((.|\\n|\\s)+?)<\\/style>/g\n let html = src\n // let html = src.replace(/\\n/g, '')\n\n html = html.replace(REG_STYLE, (_, $1: string) => {\n const style = $1.trim()\n this.stringToSelector(style)\n return ''\n })\n\n return html.trim()\n }\n\n stringToSelector (style: string) {\n let lb = style.indexOf(LEFT_BRACKET)\n\n while (lb > -1) {\n const rb = style.indexOf(RIGHT_BRACKET)\n const selectors = style.slice(0, lb).trim()\n\n let content = style.slice(lb + 1, rb)\n content = content.replace(/:(.*);/g, function (_, $1) {\n const t = $1.trim().replace(/ +/g, '+++')\n return `:${t};`\n })\n content = content.replace(/ /g, '')\n content = content.replace(/\\+\\+\\+/g, ' ')\n\n if (!(/;$/.test(content))) {\n content += ';'\n }\n selectors.split(',').forEach(src => {\n const selectorList = this.parseSelector(src)\n this.styles.push({\n content,\n selectorList\n })\n })\n style = style.slice(rb + 1)\n lb = style.indexOf(LEFT_BRACKET)\n }\n // console.log('res this.styles: ', this.styles)\n }\n\n parseSelector (src: string) {\n const list = src\n .trim()\n .replace(/ *([>~+]) */g, ' $1')\n .replace(/ +/g, ' ')\n .replace(/\\[\\s*([^[\\]=\\s]+)\\s*=\\s*([^[\\]=\\s]+)\\s*\\]/g, '[$1=$2]')\n .split(' ')\n const selectors = list.map(item => {\n const firstChar = item.charAt(0)\n const selector: ISelector = {\n isChild: firstChar === CHILD_COMBINATOR,\n isGeneralSibling: firstChar === GENERAL_SIBLING_COMBINATOR,\n isAdjacentSibling: firstChar === ADJACENT_SIBLING_COMBINATOR,\n tag: null,\n id: null,\n class: [],\n attrs: []\n }\n\n item = item.replace(/^[>~+]/, '')\n\n // 属性选择器\n item = item.replace(/\\[(.+?)\\]/g, function (_, $1: string) {\n const [key, value] = $1.split('=')\n const all = $1.indexOf('=') === -1\n\n const attr = {\n all,\n key,\n value: all ? null : value\n }\n selector.attrs.push(attr)\n return ''\n })\n\n item = item.replace(/([.#][A-Za-z0-9-_]+)/g, function (_, $1: string) {\n if ($1[0] === ID_SELECTOR) {\n // id 选择器\n selector.id = $1.substr(1)\n } else if ($1[0] === CLASS_SELECTOR) {\n // class 选择器\n selector.class.push($1.substr(1))\n }\n return ''\n })\n\n // 标签选择器\n if (item !== '') {\n selector.tag = item\n }\n\n return selector\n })\n return selectors\n }\n\n matchStyle (tagName: string, el: ParsedTaroElement, list: number[]): string {\n const res = sortStyles(this.styles).reduce((str, { content, selectorList }, i) => {\n let idx = list[i]\n let selector = selectorList[idx]\n const nextSelector = selectorList[idx + 1]\n\n if (nextSelector?.isGeneralSibling || nextSelector?.isAdjacentSibling) {\n selector = nextSelector\n idx += 1\n list[i] += 1\n }\n\n let isMatch = this.matchCurrent(tagName, el, selector)\n\n if (isMatch && selector.isGeneralSibling) {\n let prev: ParsedTaroElement | null = getPreviousElement(el)\n while (prev) {\n if (prev.h5tagName && this.matchCurrent(prev.h5tagName, prev, selectorList[idx - 1])) {\n isMatch = true\n break\n }\n prev = getPreviousElement(prev)\n isMatch = false\n }\n }\n if (isMatch && selector.isAdjacentSibling) {\n const prev: ParsedTaroElement | null = getPreviousElement(el)\n if (!prev || !prev.h5tagName) {\n isMatch = false\n } else {\n const isSiblingMatch = this.matchCurrent(prev.h5tagName, prev, selectorList[idx - 1])\n if (!isSiblingMatch) {\n isMatch = false\n }\n }\n }\n\n if (isMatch) {\n if (idx === selectorList.length - 1) {\n return str + content\n } else if (idx < selectorList.length - 1) {\n list[i] += 1\n }\n } else {\n // 直接子代组合器: >\n if (selector.isChild && idx > 0) {\n list[i] -= 1\n if (this.matchCurrent(tagName, el, selectorList[list[i]])) {\n list[i] += 1\n }\n }\n }\n\n return str\n }, '')\n return res\n }\n\n matchCurrent (tagName: string, el: ParsedTaroElement, selector: ISelector): boolean {\n // 标签选择器\n if (selector.tag && selector.tag !== tagName) return false\n\n // id 选择器\n if (selector.id && selector.id !== el.id) return false\n\n // class 选择器\n if (selector.class.length) {\n const classList = el.className.split(' ')\n for (let i = 0; i < selector.class.length; i++) {\n const cls = selector.class[i]\n if (classList.indexOf(cls) === -1) {\n return false\n }\n }\n }\n\n // 属性选择器\n if (selector.attrs.length) {\n for (let i = 0; i < selector.attrs.length; i++) {\n const { all, key, value } = selector.attrs[i]\n if (all && !el.hasAttribute(key)) {\n return false\n } else {\n const attr = el.getAttribute(key)\n if (attr !== unquote(value || '')) {\n return false\n }\n }\n }\n }\n\n return true\n }\n}\n\nfunction getPreviousElement (el: ParsedTaroElement): ParsedTaroElement | null {\n const parent = el.parentElement\n if (!parent) return null\n\n const prev = el.previousSibling as ParsedTaroElement\n if (!prev) return null\n\n if (prev.nodeType === NodeType.ELEMENT_NODE) {\n return prev\n } else {\n return getPreviousElement(prev)\n }\n}\n\n// 根据 css selector 权重排序: 权重大的靠后\n// @WARN 不考虑伪类\n// https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance#specificity_2\nfunction sortStyles (styles: IStyle[]) {\n return styles.sort((s1, s2) => {\n const hundreds1 = getHundredsWeight(s1.selectorList)\n const hundreds2 = getHundredsWeight(s2.selectorList)\n\n if (hundreds1 !== hundreds2) return hundreds1 - hundreds2\n\n const tens1 = getTensWeight(s1.selectorList)\n const tens2 = getTensWeight(s2.selectorList)\n\n if (tens1 !== tens2) return tens1 - tens2\n\n const ones1 = getOnesWeight(s1.selectorList)\n const ones2 = getOnesWeight(s2.selectorList)\n\n return ones1 - ones2\n })\n}\n\nfunction getHundredsWeight (selectors: ISelector[]) {\n return selectors.reduce((pre, cur) => pre + (cur.id ? 1 : 0), 0)\n}\n\nfunction getTensWeight (selectors: ISelector[]) {\n return selectors.reduce((pre, cur) => pre + cur.class.length + cur.attrs.length, 0)\n}\n\nfunction getOnesWeight (selectors: ISelector[]) {\n return selectors.reduce((pre, cur) => pre + (cur.tag ? 1 : 0), 0)\n}\n","import { internalComponents } from '@tarojs/shared'\n\nexport function makeMap (\n str: string,\n expectsLowerCase?: boolean\n): (key: string) => boolean {\n const map: Record<string, boolean> = Object.create(null)\n const list: Array<string> = str.split(',')\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true\n }\n return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val]\n}\n\nexport const specialMiniElements = {\n img: 'image',\n iframe: 'web-view'\n}\n\nconst internalCompsList = Object.keys(internalComponents)\n .map(i => i.toLowerCase())\n .join(',')\n\n// https://developers.weixin.qq.com/miniprogram/dev/component\nexport const isMiniElements = makeMap(internalCompsList, true)\n\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Inline_elements\nexport const isInlineElements = makeMap('a,i,abbr,iframe,select,acronym,slot,small,span,bdi,kbd,strong,big,map,sub,sup,br,mark,mark,meter,template,canvas,textarea,cite,object,time,code,output,u,data,picture,tt,datalist,var,dfn,del,q,em,s,embed,samp,b', true)\n\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements\nexport const isBlockElements = makeMap('address,fieldset,li,article,figcaption,main,aside,figure,nav,blockquote,footer,ol,details,form,p,dialog,h1,h2,h3,h4,h5,h6,pre,dd,header,section,div,hgroup,table,dl,hr,ul,dt', true)\n","import { isFunction } from '@tarojs/shared'\n\nimport { options } from '../../options'\nimport { Scanner, Token } from './scanner'\nimport StyleTagParser from './style'\nimport { isBlockElements, isInlineElements, isMiniElements, specialMiniElements } from './tags'\nimport { unquote } from './utils'\n\nimport type { TaroDocument } from '../../dom/document'\nimport type { TaroElement } from '../../dom/element'\n\ninterface State {\n tokens: Token[]\n cursor: number\n stack: Element[]\n}\n\nconst closingTagAncestorBreakers = {\n li: ['ul', 'ol', 'menu'],\n dt: ['dl'],\n dd: ['dl'],\n tbody: ['table'],\n thead: ['table'],\n tfoot: ['table'],\n tr: ['table'],\n td: ['table']\n}\n\ninterface Node {\n type: string\n}\n\ninterface Comment extends Node {\n type: 'comment'\n content: string\n}\n\nexport interface Text extends Node {\n type: 'text'\n content: string\n}\n\nexport interface Element extends Node {\n type: 'element'\n tagName: string\n children: ChildNode[]\n attributes: string[]\n}\n\nexport interface ParsedTaroElement extends TaroElement{\n h5tagName?: string\n}\n\ntype ChildNode = Comment | Text | Element\n\nfunction hasTerminalParent (tagName: string, stack: Element[]) {\n const tagParents: undefined | string[] = closingTagAncestorBreakers[tagName]\n if (tagParents) {\n let currentIndex = stack.length - 1\n while (currentIndex >= 0) {\n const parentTagName = stack[currentIndex].tagName\n if (parentTagName === tagName) {\n break\n }\n if (tagParents && tagParents.includes(parentTagName!)) {\n return true\n }\n currentIndex--\n }\n }\n return false\n}\n\nfunction getTagName (tag: string) {\n if (options.html!.renderHTMLTag) {\n return tag\n }\n\n if (specialMiniElements[tag]) {\n return specialMiniElements[tag]\n } else if (isMiniElements(tag)) {\n return tag\n } else if (isBlockElements(tag)) {\n return 'view'\n } else if (isInlineElements(tag)) {\n return 'text'\n }\n\n return 'view'\n}\n\nfunction splitEqual (str: string) {\n const sep = '='\n const idx = str.indexOf(sep)\n if (idx === -1) return [str]\n const key = str.slice(0, idx).trim()\n const value = str.slice(idx + sep.length).trim()\n return [key, value]\n}\n\nfunction format (\n children: ChildNode[],\n document: TaroDocument,\n styleOptions: {\n styleTagParser: StyleTagParser\n descendantList: number[]\n },\n parent?: TaroElement\n) {\n return children\n .filter(child => {\n // 过滤注释和空文本节点\n if (child.type === 'comment') {\n return false\n } else if (child.type === 'text') {\n return child.content !== ''\n }\n return true\n })\n .map((child: Text | Element) => {\n // 文本节点\n if (child.type === 'text') {\n let text = document.createTextNode(child.content)\n if (isFunction(options.html!.transformText)) {\n text = options.html!.transformText(text, child)\n }\n parent?.appendChild(text)\n return text\n }\n\n const el: ParsedTaroElement = document.createElement(getTagName(child.tagName))\n el.h5tagName = child.tagName\n\n parent?.appendChild(el)\n\n if (!options.html!.renderHTMLTag) {\n el.className = `h5-${child.tagName}`\n }\n\n for (let i = 0; i < child.attributes.length; i++) {\n const attr = child.attributes[i]\n const [key, value] = splitEqual(attr)\n if (key === 'class') {\n el.className += ' ' + unquote(value)\n } else if (key[0] === 'o' && key[1] === 'n') {\n continue\n } else {\n el.setAttribute(key, value == null ? true : unquote(value))\n }\n }\n\n const { styleTagParser, descendantList } = styleOptions\n const list = descendantList.slice()\n const style = styleTagParser.matchStyle(child.tagName, el, list)\n\n el.setAttribute('style', style + el.style.cssText)\n // console.log('style, ', style)\n\n format(child.children, document, {\n styleTagParser,\n descendantList: list\n }, el)\n\n if (isFunction(options.html!.transformElement)) {\n return options.html!.transformElement(el, child)\n }\n\n return el\n })\n}\n\nexport function parser (html: string, document: TaroDocument) {\n const styleTagParser = new StyleTagParser()\n html = styleTagParser.extractStyle(html)\n\n const tokens = new Scanner(html).scan()\n\n const root: Element = { tagName: '', children: [], type: 'element', attributes: [] }\n\n const state = { tokens, options, cursor: 0, stack: [root] }\n parse(state)\n\n return format(root.children, document, {\n styleTagParser,\n descendantList: Array(styleTagParser.styles.length).fill(0)\n })\n}\n\nfunction parse (state: State) {\n const { tokens, stack } = state\n let { cursor } = state\n\n const len = tokens.length\n\n let nodes = stack[stack.length - 1].children\n\n while (cursor < len) {\n const token = tokens[cursor]\n if (token.type !== 'tag-start') {\n // comment or text\n nodes.push(token as ChildNode)\n cursor++\n continue\n }\n\n const tagToken = tokens[++cursor]\n cursor++\n const tagName = tagToken.content!.toLowerCase()\n if (token.close) {\n let index = stack.length\n let shouldRewind = false\n while (--index > -1) {\n if (stack[index].tagName === tagName) {\n shouldRewind = true\n break\n }\n }\n while (cursor < len) {\n const endToken = tokens[cursor]\n if (endToken.type !== 'tag-end') break\n cursor++\n }\n if (shouldRewind) {\n stack.splice(index)\n break\n } else {\n continue\n }\n }\n\n const isClosingTag = options.html!.closingElements.has(tagName)\n let shouldRewindToAutoClose = isClosingTag\n if (shouldRewindToAutoClose) {\n shouldRewindToAutoClose = !hasTerminalParent(tagName, stack)\n }\n\n if (shouldRewindToAutoClose) {\n let currentIndex = stack.length - 1\n while (currentIndex > 0) {\n if (tagName === stack[currentIndex].tagName) {\n stack.splice(currentIndex)\n const previousIndex = currentIndex - 1\n nodes = stack[previousIndex].children\n break\n }\n currentIndex = currentIndex - 1\n }\n }\n\n const attributes: string[] = []\n let attrToken: Token\n while (cursor < len) {\n attrToken = tokens[cursor]\n if (attrToken.type === 'tag-end') break\n attributes.push(attrToken.content!)\n cursor++\n }\n\n cursor++\n const children: Element[] = []\n const element: Element = {\n type: 'element',\n tagName: tagToken.content!,\n attributes,\n children\n }\n nodes.push(element)\n\n const hasChildren = !(attrToken!.close || options.html!.voidElements.has(tagName))\n if (hasChildren) {\n stack.push({ tagName, children } as any)\n const innerState: State = { tokens, cursor, stack }\n parse(innerState)\n cursor = innerState.cursor\n }\n }\n\n state.cursor = cursor\n}\n","import { isEnableTTDom } from '@tarojs/shared'\n\nimport { options } from '../../options'\nimport { parser } from './parser'\n\nimport type { TaroNode } from '../../dom/node'\n\noptions.html = {\n skipElements: new Set(['style', 'script']),\n voidElements: new Set([\n '!doctype', 'area', 'base', 'br', 'col', 'command',\n 'embed', 'hr', 'img', 'input', 'keygen', 'link',\n 'meta', 'param', 'source', 'track', 'wbr'\n ]),\n closingElements: new Set([\n 'html', 'head', 'body', 'p', 'dt', 'dd', 'li', 'option',\n 'thead', 'th', 'tbody', 'tr', 'td', 'tfoot', 'colgroup'\n ]),\n renderHTMLTag: false\n}\n\ndeclare const tt: any\n\nexport function setInnerHTML (element: TaroNode, html: string) {\n while (element.firstChild) {\n element.removeChild(element.firstChild)\n }\n let { ownerDocument } = element\n\n if (process.env.TARO_ENV === 'tt' && isEnableTTDom()) {\n if ('appDocument' in tt) {\n ownerDocument = tt.appDocument\n }\n }\n\n const children = parser(html, ownerDocument)\n\n for (let i = 0; i < children.length; i++) {\n element.appendChild(children[i])\n }\n}\n","import { DOCUMENT_FRAGMENT } from '../constants'\nimport { options } from '../options'\n\nimport type { TaroElement } from '../dom/element'\n\nexport function getBoundingClientRectImpl (this: TaroElement): Promise<null> {\n if (!options.miniGlobal) return Promise.resolve(null)\n return new Promise(resolve => {\n const query = options.miniGlobal.createSelectorQuery()\n // ref: https://opendocs.alipay.com/mini/api/na4yun\n if (process.env.TARO_ENV === 'alipay') {\n query.select(`#${this.uid}`).boundingClientRect().exec(res => {\n resolve(res)\n })\n return\n }\n\n query.select(`#${this.uid}`).boundingClientRect(res => {\n resolve(res)\n }).exec()\n })\n}\n\nexport function getTemplateContent (ctx: TaroElement): TaroElement | undefined {\n if (ctx.nodeName === 'template') {\n const document = ctx.ownerDocument\n const content: TaroElement = document.createElement(DOCUMENT_FRAGMENT)\n content.childNodes = ctx.childNodes\n ctx.childNodes = [content]\n content.parentNode = ctx\n content.childNodes.forEach(nodes => {\n nodes.parentNode = content\n })\n return content\n }\n}\n","import { DATASET, OBJECT, PROPS, STYLE } from '../constants'\nimport { NodeType } from '../dom/node_types'\nimport { parser } from '../dom-external/inner-html/parser'\n\nimport type { TaroNode } from '../dom/node'\n\nexport type IPosition = 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend'\n\n/**\n * An implementation of `Element.insertAdjacentHTML()`\n * to support Vue 3 with a version of or greater than `vue@3.1.2`\n */\nexport function insertAdjacentHTML (\n this: TaroNode,\n position: IPosition,\n html: string\n) {\n const parsedNodes = parser(html, this.ownerDocument)\n\n for (let i = 0; i < parsedNodes.length; i++) {\n const n = parsedNodes[i]\n\n switch (position) {\n case 'beforebegin':\n this.parentNode?.insertBefore(n, this)\n break\n case 'afterbegin':\n if (this.hasChildNodes()) {\n this.insertBefore(n, this.childNodes[0])\n } else {\n this.appendChild(n)\n }\n break\n case 'beforeend':\n this.appendChild(n)\n break\n case 'afterend':\n this.parentNode?.appendChild(n)\n break\n }\n }\n}\n\nexport function cloneNode (this: TaroNode, isDeep = false) {\n const document = this.ownerDocument\n let newNode\n\n if (this.nodeType === NodeType.ELEMENT_NODE) {\n newNode = document.createElement(this.nodeName)\n } else if (this.nodeType === NodeType.TEXT_NODE) {\n newNode = document.createTextNode('')\n }\n\n for (const key in this) {\n const value: any = this[key]\n // eslint-disable-next-line valid-typeof\n if ([PROPS, DATASET].includes(key) && typeof value === OBJECT) {\n newNode[key] = { ...value }\n } else if (key === '_value') {\n newNode[key] = value\n } else if (key === STYLE) {\n newNode.style._value = { ...value._value }\n newNode.style._usedStyleProp = new Set(Array.from(value._usedStyleProp))\n }\n }\n\n if (isDeep) {\n newNode.childNodes = this.childNodes.map(node => (node as any).cloneNode(true))\n }\n\n return newNode\n}\n\nexport function contains (this: TaroNode, node: TaroNode & { id?: string }): boolean {\n let isContains = false\n this.childNodes.some(childNode => {\n const { uid } = childNode\n if (uid === node.uid || uid === node.id || (childNode as any).contains(node)) {\n isContains = true\n return true\n }\n })\n return isContains\n}\n","import { PLATFORM_TYPE } from '@tarojs/shared'\n\nimport { TaroElement } from '../dom/element'\nimport { TaroNode } from '../dom/node'\nimport { setInnerHTML } from '../dom-external/inner-html/html'\nimport { getBoundingClientRectImpl, getTemplateContent } from './element'\nimport { cloneNode, contains, insertAdjacentHTML } from './node'\n\ndeclare const ENABLE_INNER_HTML: boolean\ndeclare const ENABLE_ADJACENT_HTML: boolean\ndeclare const ENABLE_CLONE_NODE: boolean\ndeclare const ENABLE_CONTAINS: boolean\n\ndeclare const ENABLE_SIZE_APIS: boolean\ndeclare const ENABLE_TEMPLATE_CONTENT: boolean\n\nif (process.env.TARO_PLATFORM !== PLATFORM_TYPE.WEB && process.env.TARO_PLATFORM !== PLATFORM_TYPE.HARMONY) {\n if (ENABLE_INNER_HTML) {\n TaroNode.extend('innerHTML', {\n set (html: string) {\n setInnerHTML.call(this, this, html)\n },\n get (): string {\n return ''\n }\n })\n\n if (ENABLE_ADJACENT_HTML) {\n TaroNode.extend('insertAdjacentHTML', insertAdjacentHTML)\n }\n }\n\n if (ENABLE_CLONE_NODE) {\n TaroNode.extend('cloneNode', cloneNode)\n }\n\n if (ENABLE_CONTAINS) {\n TaroNode.extend('contains', contains)\n }\n\n if (ENABLE_SIZE_APIS) {\n TaroElement.extend('getBoundingClientRect', getBoundingClientRectImpl)\n }\n\n if (ENABLE_TEMPLATE_CONTENT) {\n TaroElement.extend('content', {\n get () {\n return getTemplateContent(this)\n }\n })\n }\n}\n","import { EMPTY_OBJ, hooks, isUndefined } from '@tarojs/shared'\n\nimport {\n CONFIRM,\n CURRENT_TARGET,\n EVENT_CALLBACK_RESULT,\n INPUT,\n KEY_CODE,\n TARGET,\n TIME_STAMP,\n TOUCHMOVE,\n TYPE\n} from '../constants'\nimport env from '../env'\nimport { isParentBound } from '../utils'\n\nimport type { EventOptions, MpEvent } from '../interface'\nimport type { TaroElement } from './element'\n\n// Taro 事件对象。以 Web 标准的事件对象为基础,加入小程序事件对象中携带的部分信息,并模拟实现事件冒泡。\nexport class TaroEvent {\n private cacheTarget\n private cacheCurrentTarget\n\n public type: string\n\n public bubbles: boolean\n\n public cancelable: boolean\n\n public _stop = false\n\n public _end = false\n\n public defaultPrevented = false\n\n // Mouse Event botton property, it's used in 3rd lib, like react-router. default 0 in general\n public button = 0\n\n // timestamp can either be hi-res ( relative to page load) or low-res (relative to UNIX epoch)\n // here use hi-res timestamp\n public timeStamp = Date.now()\n\n public mpEvent: MpEvent | undefined\n\n public constructor (type: string, opts: EventOptions, event?: MpEvent) {\n this.type = type.toLowerCase()\n this.mpEvent = event\n this.bubbles = Boolean(opts && opts.bubbles)\n this.cancelable = Boolean(opts && opts.cancelable)\n }\n\n public stopPropagation () {\n this._stop = true\n }\n\n public stopImmediatePropagation () {\n this._end = this._stop = true\n }\n\n public preventDefault () {\n this.defaultPrevented = true\n }\n\n get target () {\n const cacheTarget = this.cacheTarget\n if (!cacheTarget) {\n const target = Object.create(this.mpEvent?.target || null)\n const currentEle = env.document.getElementById(target.dataset?.sid || target.id || null)\n // Note:优先判断冒泡场景alipay的targetDataset的sid, 不然冒泡场景target属性吐出不对,其余拿取当前绑定id\n const element = env.document.getElementById(target.targetDataset?.sid || target.dataset?.sid || target.id || null)\n\n target.dataset = {\n ...(currentEle !== null ? currentEle.dataset : EMPTY_OBJ),\n ...(element !== null ? element.dataset : EMPTY_OBJ)\n }\n\n for (const key in this.mpEvent?.detail) {\n target[key] = this.mpEvent!.detail[key]\n }\n\n this.cacheTarget = target\n\n return target\n } else {\n return cacheTarget\n }\n }\n\n get currentTarget () {\n const cacheCurrentTarget = this.cacheCurrentTarget\n if (!cacheCurrentTarget) {\n const doc = env.document\n\n const currentTarget = Object.create(this.mpEvent?.currentTarget || null)\n\n const element = doc.getElementById(currentTarget.dataset?.sid || currentTarget.id || null)\n const targetElement = doc.getElementById(this.mpEvent?.target?.dataset?.sid as string || this.mpEvent?.target?.id as string || null)\n\n if (element === null || (element && element === targetElement)) {\n this.cacheCurrentTarget = this.target\n return this.target\n }\n\n currentTarget.dataset = element.dataset\n\n for (const key in this.mpEvent?.detail) {\n currentTarget[key] = this.mpEvent!.detail[key]\n }\n\n this.cacheCurrentTarget = currentTarget\n\n return currentTarget\n } else {\n return cacheCurrentTarget\n }\n }\n}\n\nexport function createEvent (event: MpEvent | string, node?: TaroElement) {\n if (typeof event === 'string') {\n // For Vue3 using document.createEvent\n return new TaroEvent(event, { bubbles: true, cancelable: true })\n }\n\n const domEv = new TaroEvent(event.type, { bubbles: true, cancelable: true }, event)\n\n for (const key in event) {\n if (key === CURRENT_TARGET || key === TARGET || key === TYPE || key === TIME_STAMP) {\n continue\n } else {\n domEv[key] = event[key]\n }\n }\n\n if (domEv.type === CONFIRM && node?.nodeName === INPUT) {\n // eslint-disable-next-line dot-notation\n domEv[KEY_CODE] = 13\n }\n\n return domEv\n}\n\nconst eventsBatch = {}\n\nfunction getEventCBResult (event: MpEvent) {\n const result = event[EVENT_CALLBACK_RESULT]\n if (!isUndefined(result)) {\n delete event[EVENT_CALLBACK_RESULT]\n }\n return result\n}\n\n// 小程序的事件代理回调函数\nexport function eventHandler (event: MpEvent) {\n // Note: ohos 上事件没有设置 type、detail 类型 setter 方法,且部分事件(例如 load 等)缺失 target 导致事件错误\n event.type === undefined && Object.defineProperty(event, 'type', {\n value: (event as any)._type // ohos only\n })\n event.detail === undefined && Object.defineProperty(event, 'detail', {\n value: (event as any)._detail || { ...event } // ohos only\n })\n event.currentTarget = event.currentTarget || event.target || { ...event }\n hooks.call('modifyMpEventImpl', event)\n\n const currentTarget = event.currentTarget\n const id = currentTarget.dataset?.sid as string /** sid */ || currentTarget.id /** uid */ || event.detail?.id as string || ''\n\n const node = env.document.getElementById(id)\n if (node) {\n const dispatch = () => {\n const e = createEvent(event, node)\n\n hooks.call('modifyTaroEvent', e, node)\n hooks.call('dispatchTaroEvent', e, node)\n hooks.call('dispatchTaroEventFinish', e, node)\n }\n if (hooks.isExist('batchedEventUpdates')) {\n const type = event.type\n\n if (\n !hooks.call('isBubbleEvents', type) ||\n !isParentBound(node, type) ||\n (type === TOUCHMOVE && !!node.props.catchMove)\n ) {\n // 最上层组件统一 batchUpdate\n hooks.call('batchedEventUpdates', () => {\n if (eventsBatch[type]) {\n eventsBatch[type].forEach(fn => fn())\n delete eventsBatch[type]\n }\n dispatch()\n })\n return getEventCBResult(event)\n } else {\n // 如果上层组件也有绑定同类型的组件,委托给上层组件调用事件回调\n (eventsBatch[type] ||= []).push(dispatch)\n }\n } else {\n dispatch()\n return getEventCBResult(event)\n }\n }\n}\n\nexport function eventHandlerTTDom(ele: any, listener: (event: MpEvent, element: any) => void, event: MpEvent) {\n Object.assign(event, {\n mpEvent: event,\n bubbles: true,\n cancelable: true,\n })\n listener(event, ele)\n}\n","import {\n CHANGE,\n INPUT,\n TYPE,\n VALUE\n} from '../constants'\nimport { TaroElement } from './element'\n\nimport type { TaroEvent } from './event'\n\nexport class FormElement extends TaroElement {\n public get type () {\n return this.props[TYPE] ?? ''\n }\n\n public set type (val: string) {\n this.setAttribute(TYPE, val)\n }\n\n public get value () {\n // eslint-disable-next-line dot-notation\n const val = this.props[VALUE]\n return val == null ? '' : val\n }\n\n public set value (val: string | boolean | number | any[]) {\n this.setAttribute(VALUE, val)\n }\n\n public dispatchEvent (event: TaroEvent) {\n if (event.mpEvent) {\n const val = event.mpEvent.detail.value\n if (event.type === CHANGE) {\n this.props.value = val as string\n } else if (event.type === INPUT) {\n // Web 规范中表单组件的 value 应该跟着输入改变\n // 只是改 this.props.value 的话不会进行 setData,因此这里修改 this.value。\n // 只测试了 React、Vue3 input 组件的 onInput 事件,onChange 事件不确定有没有副作用,所以暂不修改。\n this.value = val as string\n }\n }\n\n return super.dispatchEvent(event)\n }\n}\n","import { options } from './options'\nimport { debounce } from './utils'\n\nimport type { TFunc } from './interface'\n\nclass Performance {\n private recorder = new Map<string, number>()\n\n public start (id: string) {\n if (!options.debug) {\n return\n }\n this.recorder.set(id, Date.now())\n }\n\n public stop (id: string, now = Date.now()) {\n if (!options.debug) {\n return\n }\n const prev = this.recorder.get(id)!\n if (!(prev >= 0)) return\n\n this.recorder.delete(id)\n const time = now - prev\n // eslint-disable-next-line no-console\n console.log(`${id} 时长: ${time}ms 开始时间:${this.#parseTime(prev)} 结束时间:${this.#parseTime(now)}`)\n }\n\n public delayStop (id: string, delay = 500) {\n if (!options.debug) {\n return\n }\n\n return debounce((now = Date.now(), cb?: TFunc) => {\n this.stop(id, now)\n cb?.()\n }, delay)\n }\n\n #parseTime (time: number) {\n const d = new Date(time)\n return `${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}.${`${d.getMilliseconds()}`.padStart(3, '0')}`\n }\n}\n\nexport const perf = new Performance()\n","import { hooks, isArray, isFunction, isUndefined, Shortcuts } from '@tarojs/shared'\n\nimport {\n CUSTOM_WRAPPER,\n PAGE_INIT,\n ROOT_STR,\n SET_DATA\n} from '../constants'\nimport { options } from '../options'\nimport { perf } from '../perf'\nimport { customWrapperCache, isComment } from '../utils'\nimport { TaroElement } from './element'\n\nimport type { HydratedData, MpInstance, TFunc, UpdatePayload, UpdatePayloadValue } from '../interface'\n\nfunction findCustomWrapper (root: TaroRootElement, dataPathArr: string[]) {\n // ['root', 'cn', '[0]'] remove 'root' => ['cn', '[0]']\n const list = dataPathArr.slice(1)\n let currentData: any = root\n let customWrapper: Record<string, any> | undefined\n let splitedPath = ''\n\n list.some((item, i) => {\n const key = item\n // '[0]' => '0'\n .replace(/^\\[(.+)\\]$/, '$1')\n // 'cn' => 'childNodes'\n .replace(/\\bcn\\b/g, 'childNodes')\n\n currentData = currentData[key]\n\n if (isArray(currentData)) {\n currentData = currentData.filter(el => !isComment(el))\n }\n\n if (isUndefined(currentData)) return true\n\n if (currentData.nodeName === CUSTOM_WRAPPER) {\n const res = customWrapperCache.get(currentData.sid)\n if (res) {\n customWrapper = res\n splitedPath = dataPathArr.slice(i + 2).join('.')\n }\n }\n })\n\n if (customWrapper) {\n return {\n customWrapper,\n splitedPath\n }\n }\n}\n\nexport class TaroRootElement extends TaroElement {\n private updatePayloads: UpdatePayload[] = []\n\n private updateCallbacks: TFunc[] = []\n\n public pendingUpdate = false\n\n public ctx: null | MpInstance = null\n\n public constructor () {\n super()\n this.nodeName = ROOT_STR\n this.tagName = ROOT_STR.toUpperCase()\n }\n\n public get _path (): string {\n return ROOT_STR\n }\n\n public get _root (): TaroRootElement {\n return this\n }\n\n public scheduleTask(fn: TFunc) {\n // 这里若使用微任务可略微提前setData的执行时机,但在部分场景下可能会出现连续setData两次,造成更大的性能问题\n setTimeout(fn)\n }\n\n public enqueueUpdate (payload: UpdatePayload): void {\n this.updatePayloads.push(payload)\n\n if (!this.pendingUpdate && this.ctx) {\n this.performUpdate()\n }\n }\n\n public performUpdate (initRender = false, prerender?: TFunc) {\n this.pendingUpdate = true\n\n const ctx = hooks.call('proxyToRaw', this.ctx)!\n\n this.scheduleTask(() => {\n const setDataMark = `${SET_DATA} 开始时间戳 ${Date.now()}`\n perf.start(setDataMark)\n const data: Record<string, UpdatePayloadValue | ReturnType<HydratedData>> = Object.create(null)\n const resetPaths = new Set<string>(\n initRender\n ? ['root.cn.[0]', 'root.cn[0]']\n : []\n )\n\n while (this.updatePayloads.length > 0) {\n const { path, value } = this.updatePayloads.shift()!\n if (path.endsWith(Shortcuts.Childnodes)) {\n resetPaths.add(path)\n }\n data[path] = value\n }\n\n for (const path in data) {\n resetPaths.forEach(p => {\n // 已经重置了数组,就不需要分别再设置了\n if (path.includes(p) && path !== p) {\n delete data[path]\n }\n })\n\n const value = data[path]\n if (isFunction(value)) {\n data[path] = value()\n }\n }\n\n // 预渲染\n if (isFunction(prerender)) return prerender(data)\n\n // 正常渲染\n this.pendingUpdate = false\n let normalUpdate = {}\n const customWrapperMap: Map<Record<any, any>, Record<string, any>> = new Map()\n\n if (initRender) {\n // 初次渲染,使用页面级别的 setData\n normalUpdate = data\n } else {\n // 更新渲染,区分 CustomWrapper 与页面级别的 setData\n for (const p in data) {\n const dataPathArr = p.split('.')\n const found = findCustomWrapper(this, dataPathArr)\n if (found) {\n // 此项数据使用 CustomWrapper 去更新\n const { customWrapper, splitedPath } = found\n // 合并同一个 customWrapper 的相关更新到一次 setData 中\n customWrapperMap.set(customWrapper, {\n ...(customWrapperMap.get(customWrapper) || {}),\n [`i.${splitedPath}`]: data[p]\n })\n } else {\n // 此项数据使用页面去更新\n normalUpdate[p] = data[p]\n }\n }\n }\n\n const customWrapperCount = customWrapperMap.size\n const isNeedNormalUpdate = Object.keys(normalUpdate).length > 0\n const updateArrLen = customWrapperCount + (isNeedNormalUpdate ? 1 : 0)\n let executeTime = 0\n\n const cb = () => {\n if (++executeTime === updateArrLen) {\n perf.stop(setDataMark)\n this.flushUpdateCallback()\n initRender && perf.stop(PAGE_INIT)\n }\n }\n\n // custom-wrapper setData\n if (customWrapperCount) {\n customWrapperMap.forEach((data, ctx) => {\n if (process.env.NODE_ENV !== 'production' && options.debug) {\n // eslint-disable-next-line no-console\n console.log('custom wrapper setData: ', data)\n }\n ctx.setData(data, cb)\n })\n }\n\n // page setData\n if (isNeedNormalUpdate) {\n if (process.env.NODE_ENV !== 'production' && options.debug) {\n // eslint-disable-next-line no-console\n console.log('page setData:', normalUpdate)\n }\n ctx.setData(normalUpdate, cb)\n }\n })\n }\n\n public enqueueUpdateCallback (cb: TFunc, ctx?: Record<string, any>) {\n this.updateCallbacks.push(() => {\n ctx ? cb.call(ctx) : cb()\n })\n }\n\n public flushUpdateCallback () {\n const updateCallbacks = this.updateCallbacks\n if (!updateCallbacks.length) return\n\n const copies = updateCallbacks.slice(0)\n this.updateCallbacks.length = 0\n for (let i = 0; i < copies.length; i++) {\n copies[i]()\n }\n }\n}\n","import { Shortcuts } from '@tarojs/shared'\n\nimport { MutationObserver, MutationRecordType } from '../dom-external/mutation-observer'\nimport { TaroNode } from './node'\nimport { NodeType } from './node_types'\n\nexport class TaroText extends TaroNode {\n public _value: string\n public nodeType = NodeType.TEXT_NODE\n public nodeName = '#text'\n\n constructor (value) {\n super()\n this._value = value\n }\n\n public set textContent (text: string) {\n MutationObserver.record({\n target: this,\n type: MutationRecordType.CHARACTER_DATA,\n oldValue: this._value\n })\n this._value = text\n this.enqueueUpdate({\n path: `${this._path}.${Shortcuts.Text}`,\n value: text\n })\n }\n\n public get textContent (): string {\n return this._value\n }\n\n public set nodeValue (text: string) {\n this.textContent = text\n }\n\n public get nodeValue (): string {\n return this._value\n }\n\n public set data (text: string) {\n this.textContent = text\n }\n\n public get data (): string {\n return this._value\n }\n}\n","import { parseUrl } from '../bom/URL'\nimport { TaroElement } from './element'\n\nconst enum AnchorElementAttrs {\n HREF = 'href',\n PROTOCOL = 'protocol',\n HOST = 'host',\n SEARCH = 'search',\n HASH = 'hash',\n HOSTNAME = 'hostname',\n PORT = 'port',\n PATHNAME = 'pathname'\n}\n\nexport class AnchorElement extends TaroElement {\n public get href () {\n return this.props[AnchorElementAttrs.HREF] ?? ''\n }\n\n public set href (val: string) {\n this.setAttribute(AnchorElementAttrs.HREF, val)\n }\n\n get protocol () {\n return this.props[AnchorElementAttrs.PROTOCOL] ?? ''\n }\n\n get host () {\n return this.props[AnchorElementAttrs.HOST] ?? ''\n }\n\n get search () {\n return this.props[AnchorElementAttrs.SEARCH] ?? ''\n }\n\n get hash () {\n return this.props[AnchorElementAttrs.HASH] ?? ''\n }\n\n get hostname () {\n return this.props[AnchorElementAttrs.HOSTNAME] ?? ''\n }\n\n get port () {\n return this.props[AnchorElementAttrs.PORT] ?? ''\n }\n\n get pathname () {\n return this.props[AnchorElementAttrs.PATHNAME] ?? ''\n }\n\n public setAttribute (qualifiedName: string, value: any): void {\n if (qualifiedName === AnchorElementAttrs.HREF) {\n const willSetAttr = parseUrl(value)\n for (const k in willSetAttr) {\n super.setAttribute(k, willSetAttr[k])\n }\n } else {\n super.setAttribute(qualifiedName, value)\n }\n }\n}\n","import { TaroElement } from './element'\n\nexport class TransferElement extends TaroElement {\n public isTransferElement = true\n\n constructor (public dataName: string) {\n super()\n }\n\n public get _path () {\n return this.dataName\n }\n}\n","import { controlledComponent, isUndefined, toCamelCase } from '@tarojs/shared'\n\nimport {\n A,\n COMMENT,\n DOCUMENT_ELEMENT_NAME,\n ROOT_STR\n} from '../constants'\nimport { TaroElement } from '../dom/element'\nimport { createEvent } from '../dom/event'\nimport { eventSource } from '../dom/event-source'\nimport { FormElement } from '../dom/form'\nimport { NodeType } from '../dom/node_types'\nimport { TaroRootElement } from '../dom/root'\nimport { TaroText } from '../dom/text'\nimport env from '../env'\nimport { AnchorElement } from './anchor-element'\nimport { TransferElement } from './transfer'\n\nexport class TaroDocument extends TaroElement {\n public documentElement: TaroElement\n public head: TaroElement\n public body: TaroElement\n public createEvent = createEvent\n cookie?: string\n\n public constructor () {\n super()\n this.nodeType = NodeType.DOCUMENT_NODE\n this.nodeName = DOCUMENT_ELEMENT_NAME\n }\n\n public createElement (type: string): TaroElement | TaroRootElement | FormElement {\n const nodeName = type.toLowerCase()\n\n let element: TaroElement\n switch (true) {\n case nodeName === ROOT_STR:\n element = new TaroRootElement()\n return element\n case controlledComponent.has(nodeName):\n element = new FormElement()\n break\n case nodeName === A:\n element = new AnchorElement()\n break\n case nodeName === 'page-meta':\n case nodeName === 'navigation-bar':\n element = new TransferElement(toCamelCase(nodeName))\n break\n default:\n element = new TaroElement()\n break\n }\n\n element.nodeName = nodeName\n element.tagName = type.toUpperCase()\n\n return element\n }\n\n // an ugly fake createElementNS to deal with @vue/runtime-dom's\n // support mounting app to svg container since vue@3.0.8\n public createElementNS (_svgNS: string, type: string): TaroElement | TaroRootElement | FormElement {\n return this.createElement(type)\n }\n\n public createTextNode (text: string): TaroText {\n return new TaroText(text)\n }\n\n public getElementById<T extends TaroElement> (id: string | undefined | null): T | null {\n const el = eventSource.get(id)\n return isUndefined(el) ? null : el as T\n }\n\n public querySelector<T extends TaroElement> (query: string): T | null {\n // 为了 Vue3 的乞丐版实现\n if (/^#/.test(query)) {\n return this.getElementById<T>(query.slice(1))\n }\n return null\n }\n\n public querySelectorAll () {\n // fake hack\n return []\n }\n\n // @TODO: @PERF: 在 hydrate 移除掉空的 node\n public createComment (): TaroText {\n const textnode = new TaroText('')\n textnode.nodeName = COMMENT\n return textnode\n }\n\n get defaultView () {\n return env.window\n }\n}\n","import { DEFAULT_COMPONENTS, isEnableTTDom, TT_SPECIFIC_COMPONENTS } from '@tarojs/shared'\n\nimport {\n APP,\n BODY,\n CONTAINER,\n HEAD,\n HTML\n} from '../constants'\nimport { TaroDocument } from '../dom/document'\nimport env from '../env'\n\nfunction createDocument (): TaroDocument {\n /**\n * <document>\n * <html>\n * <head></head>\n * <body>\n * <container>\n * <app id=\"app\" />\n * </container>\n * </body>\n * </html>\n * </document>\n */\n const doc = new TaroDocument()\n const documentCreateElement = doc.createElement.bind(doc)\n const html = documentCreateElement(HTML)\n const head = documentCreateElement(HEAD)\n const body = documentCreateElement(BODY)\n const app = documentCreateElement(APP)\n app.id = APP\n const container = documentCreateElement(CONTAINER) // 多包一层主要为了兼容 vue\n\n doc.appendChild(html)\n html.appendChild(head)\n html.appendChild(body)\n body.appendChild(container)\n container.appendChild(app)\n\n doc.documentElement = html\n doc.head = head\n doc.body = body\n\n return doc\n}\n\ndeclare const tt: any\n\nexport function createTTDomDocument(): TaroDocument {\n const document = tt?.appDocument\n if (!document) {\n throw new Error('tt.appDocument is not found')\n }\n const html = document.createElement(HTML)\n const head = document.createElement(HEAD)\n const body = document.createElement(BODY)\n const app = document.createElement(APP)\n app.id = APP\n const container = document.createElement(CONTAINER)\n\n const emptyFunction = () => {}\n\n document.childNodes.push(html)\n html.childNodes.push(head, body)\n body.childNodes.push(container)\n container.childNodes.push(app)\n\n document.documentElement = html\n document.head = head\n document.body = body\n document.appElement = app\n\n let builtInComponents = tt?.getBuiltInComponents?.()\n if (Array.isArray(builtInComponents)) {\n builtInComponents = new Set(builtInComponents)\n } else if (!(builtInComponents instanceof Set)) {\n builtInComponents = new Set([...DEFAULT_COMPONENTS, ...TT_SPECIFIC_COMPONENTS])\n }\n\n document.getElementById = function getElementById(id: string) {\n if (id === 'app') {\n return app\n } else {\n return Object.getPrototypeOf(this).getElementById.call(this, id)\n }\n }\n\n document.getLastPage = function getLastPage() {\n let last\n for (const v of this._pageDocumentMap.values()) last = v\n return last\n }\n\n document.createElement = function (type: string, ...args) {\n if (type === 'root') {\n return this.getLastPage()\n } else {\n const el = builtInComponents.has(type)\n ? Object.getPrototypeOf(this).createElement.call(this, type, ...args)\n : Object.getPrototypeOf(this).createNativeComponent.call(this, type, {\n __tt__inner__options__: {\n name: type,\n },\n })\n // 给元素加上 scopeId\n el.setAttribute('class', '')\n\n // 保存原始的 setAttribute 和 removeAttribute\n const originalSetAttribute = el.setAttribute.bind(el)\n const originalRemoveAttribute = el.removeAttribute.bind(el)\n\n // 拦截 setAttribute 来处理 catchMove\n el.setAttribute = function (name: string, value: any) {\n const result = originalSetAttribute(name, value)\n\n // 处理 catchMove 属性\n if (name === 'catchMove') {\n if (value) {\n el.addEventListener('catchtouchmove', emptyFunction)\n } else {\n el.removeEventListener('catchtouchmove', emptyFunction)\n }\n }\n\n return result\n }\n\n // 拦截 removeAttribute 来处理 catchMove\n el.removeAttribute = function (name: string) {\n const oldValue = el.getAttribute(name)\n\n // 处理 catchMove 属性\n if (name === 'catchMove' && oldValue) {\n el.removeEventListener('catchtouchmove', emptyFunction)\n }\n\n return originalRemoveAttribute(name)\n }\n\n if (process.env.FRAMEWORK === 'preact') {\n const ttEventListener = el.addEventListener.bind(el)\n const ttRemoveEventListener = el.removeEventListener.bind(el)\n\n el.addEventListener = function (type: string, listener) {\n if (type === 'click') {\n type = 'tap'\n }\n\n const bindEventName = type.startsWith('bind') || type.startsWith('catch') ? type : `bind${type}`\n // 创建包装函数\n const wrapper = (event) => {\n const type = event.type\n // 对齐 modifyMpEvent 处理逻辑\n if (type === 'tap') {\n event.type = 'click'\n } else if (type === 'focus') {\n event.type = 'focusin'\n } else if (type === 'blur') {\n event.type = 'focusout'\n }\n Object.assign(event, {\n mpEvent: event,\n bubbles: true,\n cancelable: true,\n })\n listener.call(el, event)\n }\n\n // 保存包装函数的引用,用于后续移除\n if (!el.__eventWrappers) {\n el.__eventWrappers = new WeakMap()\n }\n el.__eventWrappers.set(listener, wrapper)\n\n ttEventListener(bindEventName, wrapper)\n }\n\n el.removeEventListener = function (type: string, listener) {\n if (type === 'click') {\n type = 'tap'\n }\n\n const bindEventName = type.startsWith('bind') || type.startsWith('catch') ? type : `bind${type}`\n // 获取之前保存的包装函数\n const wrapper = el.__eventWrappers?.get(listener)\n if (wrapper) {\n ttRemoveEventListener(bindEventName, wrapper)\n delete el.__eventWrappers[listener]\n }\n }\n }\n\n return el\n }\n }\n return document\n}\n\n// Note: 小程序端 vite 打包成 commonjs,const document = xxx 会报错,所以把 document 改为 taroDocumentProvider\nexport const taroDocumentProvider: TaroDocument = process.env.TARO_PLATFORM === 'web' ? env.document : (env.document =\n isEnableTTDom() ? createTTDomDocument() : createDocument())\n","import { TaroElement } from './element'\n\n// for Vue3\nexport class SVGElement extends TaroElement {}\n","/* eslint-disable dot-notation */\nimport {\n EMPTY_OBJ, ensure, EventChannel,\n getComponentsAlias, hooks, internalComponents,\n isArray, isEnableTTDom,\n isFunction, isString, isUndefined, Shortcuts\n} from '@tarojs/shared'\n\nimport { raf } from '../bom/raf'\nimport { taroWindowProvider } from '../bom/window'\nimport { BEHAVIORS, CONTEXT_ACTIONS, CUSTOM_WRAPPER, EXTERNAL_CLASSES, ON_HIDE, ON_LOAD, ON_READY, ON_SHOW, OPTIONS, PAGE_INIT, VIEW } from '../constants'\nimport { Current } from '../current'\nimport { eventHandler } from '../dom/event'\nimport { eventCenter } from '../emitter/emitter'\nimport env from '../env'\nimport { perf } from '../perf'\nimport { customWrapperCache, incrementId } from '../utils'\nimport { addLeadingSlash } from '../utils/router'\n\nimport type { TaroRootElement } from '../dom/root'\nimport type { MpInstance, PageConfig, TFunc } from '../interface'\nimport type { Instance, PageInstance, PageProps } from './instance'\n\nconst instances = new Map<string, Instance>()\nconst pageId = incrementId()\n\nexport function injectPageInstance (inst: Instance<PageProps>, id: string) {\n hooks.call('mergePageInstance', instances.get(id), inst)\n instances.set(id, inst)\n}\n\nexport function getPageInstance (id: string): Instance | undefined {\n return instances.get(id)\n}\n\nexport function removePageInstance (id: string) {\n instances.delete(id)\n}\n\nexport function safeExecute (path: string, lifecycle: string, ...args: unknown[]) {\n const instance = instances.get(path)\n\n if (instance == null) {\n return\n }\n\n const func = hooks.call('getLifecycle', instance, lifecycle as keyof PageInstance)\n\n if (isArray(func)) {\n const res = func.map(fn => fn.apply(instance, args))\n return res[0]\n }\n\n if (!isFunction(func)) {\n return\n }\n\n return func.apply(instance, args)\n}\n\nexport function stringify (obj?: Record<string, unknown>) {\n if (obj == null) {\n return ''\n }\n const path = Object.keys(obj).map((key) => {\n return key + '=' + obj[key]\n }).join('&')\n return path === '' ? path : '?' + path\n}\n\nexport function getPath (id: string, options?: Record<string, unknown>): string {\n const idx = id.indexOf('?')\n if (process.env.TARO_PLATFORM === 'web') {\n return `${idx > -1 ? id.substring(0, idx) : id}${stringify(options?.stamp ? { stamp: options.stamp } : {})}`\n } else {\n return `${idx > -1 ? id.substring(0, idx) : id}${stringify(options)}`\n }\n}\n\nexport function getOnReadyEventKey (path: string) {\n return path + '.' + ON_READY\n}\n\nexport function getOnShowEventKey (path: string) {\n return path + '.' + ON_SHOW\n}\n\nexport function getOnHideEventKey (path: string) {\n return path + '.' + ON_HIDE\n}\n\nexport function createPageConfig (component: any, pageName?: string, data?: Record<string, unknown>, pageConfig?: PageConfig) {\n // 小程序 Page 构造器是一个傲娇小公主,不能把复杂的对象挂载到参数上\n const id = pageName ?? `taro_page_${pageId()}`\n const [\n ONLOAD,\n ONUNLOAD,\n ONREADY,\n ONSHOW,\n ONHIDE,\n LIFECYCLES,\n SIDE_EFFECT_LIFECYCLES,\n ] = hooks.call('getMiniLifecycleImpl')!.page\n let pageElement: TaroRootElement | null = null\n let unmounting = false\n let prepareMountList: (() => void)[] = []\n\n function setCurrentRouter (page: MpInstance) {\n const router = process.env.TARO_PLATFORM === 'web' ? page.$taroPath : page.route || page.__route__ || page.$taroPath\n Current.router = {\n params: page.$taroParams!,\n path: addLeadingSlash(router),\n $taroPath: page.$taroPath,\n onReady: getOnReadyEventKey(id),\n onShow: getOnShowEventKey(id),\n onHide: getOnHideEventKey(id)\n }\n if (!isUndefined(page.exitState)) {\n Current.router.exitState = page.exitState\n }\n }\n let loadResolver: (...args: unknown[]) => void\n let hasLoaded: Promise<void>\n const config: PageInstance = {\n [ONLOAD] (this: MpInstance, options: Readonly<Record<string, unknown>> = {}, cb?: TFunc) {\n hasLoaded = new Promise(resolve => { loadResolver = resolve })\n\n perf.start(PAGE_INIT)\n\n Current.page = this as any\n this.config = pageConfig || {}\n\n // this.$taroPath 是页面唯一标识\n const uniqueOptions = Object.assign({}, options, { $taroTimestamp: Date.now() })\n const $taroPath = this.$taroPath = getPath(id, uniqueOptions)\n if (process.env.TARO_PLATFORM === 'web') {\n config.path = $taroPath\n }\n // this.$taroParams 作为暴露给开发者的页面参数对象,可以被随意修改\n if (this.$taroParams == null) {\n this.$taroParams = uniqueOptions\n }\n\n setCurrentRouter(this)\n\n // 初始化当前页面的上下文信息\n if (process.env.TARO_PLATFORM !== 'web') {\n taroWindowProvider.trigger(CONTEXT_ACTIONS.INIT, $taroPath)\n }\n\n const mount = () => {\n Current.app!.mount!(component, $taroPath, () => {\n if (process.env.TARO_ENV === 'tt' && isEnableTTDom()) {\n pageElement = (env.document as any).getPageDocumentById(this.__webviewId__)\n } else {\n pageElement = env.document.getElementById<TaroRootElement>($taroPath)\n }\n\n ensure(pageElement !== null, '没有找到页面实例。')\n safeExecute($taroPath, ON_LOAD, this.$taroParams)\n loadResolver()\n if (process.env.TARO_PLATFORM !== 'web') {\n pageElement.ctx = this\n if (process.env.TARO_ENV === 'tt' && isEnableTTDom()) {\n (pageElement as any).sync()\n } else {\n pageElement.performUpdate(true, cb)\n }\n } else {\n isFunction(cb) && cb()\n }\n })\n }\n if (unmounting) {\n prepareMountList.push(mount)\n } else {\n mount()\n }\n },\n [ONUNLOAD] () {\n const $taroPath = this.$taroPath\n // 销毁当前页面的上下文信息\n if (process.env.TARO_PLATFORM !== 'web') {\n taroWindowProvider.trigger(CONTEXT_ACTIONS.DESTROY, $taroPath)\n }\n // 触发onUnload生命周期\n safeExecute($taroPath, ONUNLOAD)\n unmounting = true\n Current.app!.unmount!($taroPath, () => {\n unmounting = false\n instances.delete($taroPath)\n if (pageElement) {\n pageElement.ctx = null\n pageElement = null\n }\n if (prepareMountList.length) {\n prepareMountList.forEach(fn => fn())\n prepareMountList = []\n }\n })\n },\n [ONREADY] () {\n hasLoaded.then(() => {\n // 触发生命周期\n safeExecute(this.$taroPath, ON_READY)\n // 通过事件触发子组件的生命周期\n raf(() => eventCenter.trigger(getOnReadyEventKey(id)))\n this.onReady.called = true\n })\n },\n [ONSHOW] (options = {}) {\n hasLoaded.then(() => {\n // 设置 Current 的 page 和 router\n Current.page = this as any\n setCurrentRouter(this)\n // 恢复上下文信息\n if (process.env.TARO_PLATFORM !== 'web') {\n taroWindowProvider.trigger(CONTEXT_ACTIONS.RECOVER, this.$taroPath)\n }\n // 触发生命周期\n safeExecute(this.$taroPath, ON_SHOW, options)\n // 通过事件触发子组件的生命周期\n raf(() => eventCenter.trigger(getOnShowEventKey(id)))\n })\n },\n [ONHIDE] () {\n // 缓存当前页面上下文信息\n if (process.env.TARO_PLATFORM !== 'web') {\n taroWindowProvider.trigger(CONTEXT_ACTIONS.RESTORE, this.$taroPath)\n }\n // 设置 Current 的 page 和 router\n if (Current.page === this) {\n Current.page = null\n Current.router = null\n }\n // 触发生命周期\n safeExecute(this.$taroPath, ON_HIDE)\n // 通过事件触发子组件的生命周期\n eventCenter.trigger(getOnHideEventKey(id))\n }\n }\n\n if (process.env.TARO_PLATFORM === 'web') {\n config.getOpenerEventChannel = () => {\n return EventChannel.pageChannel\n }\n }\n\n const isSWAN = process.env.TARO_ENV === 'swan'// 百度小程序\n LIFECYCLES.forEach((lifecycle) => {\n let isDefer = false\n let isEvent = false\n lifecycle = lifecycle.replace(/^defer:/, () => {\n isDefer = true\n return ''\n })\n lifecycle = lifecycle.replace(/^events:/, () => {\n isEvent = true\n return ''\n })\n\n if (isEvent && process.env.TARO_ENV === 'alipay') {\n // 初始化 config.events 对象\n if (!config.events) config.events = {}\n config.events[lifecycle] = function () {\n return safeExecute(this.$taroPath, lifecycle, ...arguments)\n }\n } else {\n config[lifecycle] = function () {\n const exec = () => safeExecute(this.$taroPath, lifecycle, ...arguments)\n if (isSWAN) {\n return exec()\n }\n\n if (isDefer) {\n hasLoaded.then(exec)\n } else {\n return exec()\n }\n }\n }\n })\n\n // onShareAppMessage 和 onShareTimeline 一样,会影响小程序右上方按钮的选项,因此不能默认注册。\n SIDE_EFFECT_LIFECYCLES.forEach(lifecycle => {\n if (component[lifecycle] ||\n component.prototype?.[lifecycle] ||\n component[lifecycle.replace(/^on/, 'enable')] ||\n pageConfig?.[lifecycle.replace(/^on/, 'enable')]\n ) {\n config[lifecycle] = function (...args) {\n const target = args[0]?.target\n if (target?.id) {\n const id = target.id\n const element = env.document.getElementById(id)\n if (element) {\n target.dataset = element.dataset\n }\n }\n return safeExecute(this.$taroPath, lifecycle, ...args)\n }\n }\n })\n\n config.eh = eventHandler\n\n if (!isUndefined(data)) {\n config.data = data\n }\n\n hooks.call('modifyPageObject', config)\n\n return config\n}\n\nexport function createComponentConfig (component: React.ComponentClass, componentName?: string, data?: Record<string, unknown>) {\n const id = componentName ?? `taro_component_${pageId()}`\n let componentElement: TaroRootElement | null = null\n const [ATTACHED, DETACHED] = hooks.call('getMiniLifecycleImpl')!.component\n\n const config: any = {\n [ATTACHED] () {\n perf.start(PAGE_INIT)\n this.pageIdCache = this.getPageId?.() || pageId()\n\n const path = getPath(id, { id: this.pageIdCache })\n\n Current.app!.mount!(component, path, () => {\n componentElement = env.document.getElementById<TaroRootElement>(path)\n ensure(componentElement !== null, '没有找到组件实例。')\n this.$taroInstances = instances.get(path)\n safeExecute(path, ON_LOAD)\n if (process.env.TARO_PLATFORM !== 'web') {\n componentElement.ctx = this\n if (process.env.TARO_ENV !== 'tt' || !isEnableTTDom()) {\n componentElement.performUpdate(true)\n }\n }\n })\n },\n [DETACHED] () {\n const path = getPath(id, { id: this.pageIdCache })\n\n Current.app!.unmount!(path, () => {\n instances.delete(path)\n if (componentElement) {\n componentElement.ctx = null\n }\n })\n },\n methods: {\n eh: eventHandler\n }\n }\n\n if (!isUndefined(data)) {\n config.data = data\n }\n\n [OPTIONS, EXTERNAL_CLASSES, BEHAVIORS].forEach(key => {\n config[key] = component[key] ?? EMPTY_OBJ\n })\n\n return config\n}\n\nexport function createRecursiveComponentConfig (componentName?: string) {\n const isCustomWrapper = componentName === CUSTOM_WRAPPER\n const [ATTACHED, DETACHED] = hooks.call('getMiniLifecycleImpl')!.component\n\n const lifeCycles = isCustomWrapper\n ? {\n [ATTACHED] () {\n if (process.env.TARO_ENV === 'tt' && isEnableTTDom()) {\n return\n }\n\n const componentId = this.data.i?.sid || this.props.i?.sid\n if (isString(componentId)) {\n customWrapperCache.set(componentId, this)\n const el = env.document.getElementById(componentId)\n if (el) {\n el.ctx = this\n }\n }\n },\n [DETACHED] () {\n if (process.env.TARO_ENV === 'tt' && isEnableTTDom()) {\n return\n }\n\n const componentId = this.data.i?.sid || this.props.i?.sid\n if (isString(componentId)) {\n customWrapperCache.delete(componentId)\n const el = env.document.getElementById(componentId)\n if (el) {\n el.ctx = null\n }\n }\n }\n }\n : EMPTY_OBJ\n\n // 不同平台的个性化配置\n const extraOptions: { [key: string]: any } = {}\n if (process.env.TARO_ENV === 'jd') {\n extraOptions.addGlobalClass = true\n }\n\n return hooks.call('modifyRecursiveComponentConfig',\n {\n properties: {\n i: {\n type: Object,\n value: {\n [Shortcuts.NodeName]: getComponentsAlias(internalComponents)[VIEW]._num\n }\n },\n l: {\n type: String,\n value: ''\n }\n },\n options: {\n ...extraOptions,\n virtualHost: !isCustomWrapper\n },\n methods: {\n eh: eventHandler\n },\n ...lifeCycles\n }, { isCustomWrapper })\n}\n","import { Current } from './current'\nimport { TaroRootElement } from './dom/root'\nimport env from './env'\n\nimport type { TFunc } from './interface'\n\nconst TIMEOUT = 100\n\nexport const nextTick = (cb: TFunc, ctx?: Record<string, any>) => {\n const beginTime = Date.now()\n const router = Current.router\n\n const timerFunc = () => {\n setTimeout(function () {\n ctx ? cb.call(ctx) : cb()\n }, 1)\n }\n\n if (router === null) return timerFunc()\n\n const path = router.$taroPath\n\n /**\n * 三种情况\n * 1. 调用 nextTick 时,pendingUpdate 已经从 true 变为 false(即已更新完成),那么需要光等 100ms\n * 2. 调用 nextTick 时,pendingUpdate 为 true,那么刚好可以搭上便车\n * 3. 调用 nextTick 时,pendingUpdate 还是 false,框架仍未启动更新逻辑,这时最多轮询 100ms,等待 pendingUpdate 变为 true。\n */\n function next () {\n const pageElement: TaroRootElement | null = env.document.getElementById<TaroRootElement>(path)\n if (pageElement?.pendingUpdate) {\n if (process.env.TARO_PLATFORM === 'web') {\n // eslint-disable-next-line dot-notation\n pageElement.firstChild?.['componentOnReady']?.().then(() => {\n timerFunc()\n }) ?? timerFunc()\n } else {\n pageElement.enqueueUpdateCallback(cb, ctx)\n }\n } else if (Date.now() - beginTime > TIMEOUT) {\n timerFunc()\n } else {\n setTimeout(() => next(), 20)\n }\n }\n\n next()\n}\n","import { isFunction } from '@tarojs/shared'\n\nexport function handleArrayFindPolyfill () {\n if (!isFunction(Array.prototype.find)) {\n Object.defineProperty(Array.prototype, 'find', {\n value (predicate) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined')\n }\n const o = Object(this)\n const len = o.length >>> 0\n if (!isFunction(predicate)) {\n throw new TypeError('predicate must be a function')\n }\n const thisArg = arguments[1]\n let k = 0\n while (k < len) {\n const kValue = o[k]\n if (predicate.call(thisArg, kValue, k, o)) {\n return kValue\n }\n k++\n }\n return undefined\n }\n })\n }\n}\n\nexport function handleArrayIncludesPolyfill () {\n if (!isFunction(Array.prototype.includes)) {\n Object.defineProperty(Array.prototype, 'includes', {\n value (searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined')\n }\n const o = Object(this)\n const len = o.length >>> 0\n if (len === 0) {\n return false\n }\n const n = fromIndex | 0\n let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0)\n while (k < len) {\n if (o[k] === searchElement) {\n return true\n }\n k++\n }\n return false\n }\n })\n }\n}\n","/* eslint-disable eqeqeq */\nimport { isFunction, isNumber } from '@tarojs/shared'\n\nimport { throttle } from '../utils'\n\nexport function handleIntersectionObserverPolyfill () {\n // Exit early if all IntersectionObserver and IntersectionObserverEntry\n // features are natively supported.\n if (\n 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype\n ) {\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n Object.defineProperty(window.IntersectionObserverEntry.prototype, 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0\n }\n })\n }\n } else {\n handleIntersectionObserverObjectPolyfill()\n }\n}\n\nfunction handleIntersectionObserverObjectPolyfill () {\n const document = window.document\n\n /**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\n const registry: number[] = []\n\n /**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\n function IntersectionObserverEntry (entry: IntersectionObserverEntryInit) {\n this.time = entry.time\n this.target = entry.target\n this.rootBounds = entry.rootBounds\n this.boundingClientRect = entry.boundingClientRect\n this.intersectionRect = entry.intersectionRect || getEmptyRect()\n this.isIntersecting = !!entry.intersectionRect\n\n // Calculates the intersection ratio.\n const targetRect = this.boundingClientRect\n const targetArea = targetRect.width * targetRect.height\n const intersectionRect = this.intersectionRect\n const intersectionArea = intersectionRect.width * intersectionRect.height\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4))\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0\n }\n }\n\n /**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\n function IntersectionObserver (callback: IntersectionObserverCallback, options: IntersectionObserverInit = {}) {\n if (!isFunction(callback)) {\n throw new Error('callback must be a function')\n }\n\n if (options.root && options.root.nodeType != 1) {\n throw new Error('root must be an Element')\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT)\n\n // Private properties.\n this._callback = callback\n this._observationTargets = []\n this._queuedEntries = []\n this._rootMarginValues = this._parseRootMargin(options.rootMargin)\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold)\n this.root = options.root || null\n this.rootMargin = this._rootMarginValues.map(function (margin) {\n return margin.value + margin.unit\n }).join(' ')\n }\n\n /**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\n IntersectionObserver.prototype.THROTTLE_TIMEOUT = 100\n\n /**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\n IntersectionObserver.prototype.POLL_INTERVAL = null\n\n /**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\n IntersectionObserver.prototype.USE_MUTATION_OBSERVER = true\n\n /**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\n IntersectionObserver.prototype.observe = function (target) {\n const isTargetAlreadyObserved = this._observationTargets.some(function (item) {\n return item.element == target\n })\n\n if (isTargetAlreadyObserved) return\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element')\n }\n\n this._registerInstance()\n this._observationTargets.push({ element: target, entry: null })\n this._monitorIntersections()\n this._checkForIntersections()\n }\n\n /**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\n IntersectionObserver.prototype.unobserve = function (target) {\n this._observationTargets =\n this._observationTargets.filter(function (item) {\n return item.element != target\n })\n if (!this._observationTargets.length) {\n this._unmonitorIntersections()\n this._unregisterInstance()\n }\n }\n\n /**\n * Stops observing all target elements for intersection changes.\n */\n IntersectionObserver.prototype.disconnect = function () {\n this._observationTargets = []\n this._unmonitorIntersections()\n this._unregisterInstance()\n }\n\n /**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\n IntersectionObserver.prototype.takeRecords = function () {\n const records = this._queuedEntries.slice()\n this._queuedEntries = []\n return records\n }\n\n /**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\n IntersectionObserver.prototype._initThresholds = function (opt_threshold) {\n let threshold = opt_threshold || [0]\n if (!Array.isArray(threshold)) threshold = [threshold]\n\n return threshold.sort().filter(function (t, i, a) {\n if (!isNumber(t) || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively')\n }\n return t !== a[i - 1]\n })\n }\n\n /**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array<Object>} An array of margin objects with the keys\n * value and unit.\n */\n IntersectionObserver.prototype._parseRootMargin = function (opt_rootMargin) {\n const marginString = opt_rootMargin || '0px'\n const margins = marginString.split(/\\s+/).map(function (margin) {\n const parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin)\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent')\n }\n return { value: parseFloat(parts[1]), unit: parts[2] }\n })\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0]\n margins[2] = margins[2] || margins[0]\n margins[3] = margins[3] || margins[1]\n\n return margins\n }\n\n /**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @private\n */\n IntersectionObserver.prototype._monitorIntersections = function () {\n if (!this._monitoringIntersections) {\n this._monitoringIntersections = true\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n this._monitoringInterval = setInterval(this._checkForIntersections, this.POLL_INTERVAL)\n } else {\n addEvent(window, 'resize', this._checkForIntersections, true)\n addEvent(document, 'scroll', this._checkForIntersections, true)\n\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in window) {\n this._domObserver = new MutationObserver(this._checkForIntersections)\n this._domObserver.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n })\n }\n }\n }\n }\n\n /**\n * Stops polling for intersection changes.\n * @private\n */\n IntersectionObserver.prototype._unmonitorIntersections = function () {\n if (this._monitoringIntersections) {\n this._monitoringIntersections = false\n\n clearInterval(this._monitoringInterval)\n this._monitoringInterval = null\n\n removeEvent(window, 'resize', this._checkForIntersections, true)\n removeEvent(document, 'scroll', this._checkForIntersections, true)\n\n if (this._domObserver) {\n this._domObserver.disconnect()\n this._domObserver = null\n }\n }\n }\n\n /**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\n IntersectionObserver.prototype._checkForIntersections = function () {\n const rootIsInDom = this._rootIsInDom()\n const rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect()\n\n this._observationTargets.forEach(function (item) {\n const target = item.element\n const targetRect = getBoundingClientRect(target)\n const rootContainsTarget = this._rootContainsTarget(target)\n const oldEntry = item.entry\n const intersectionRect = rootIsInDom && rootContainsTarget &&\n this._computeTargetAndRootIntersection(target, rootRect)\n\n const newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootRect,\n intersectionRect: intersectionRect,\n intersectionRatio: -1,\n isIntersecting: false,\n })\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry)\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry)\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry)\n }\n }\n }, this)\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this)\n }\n }\n\n /**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\n IntersectionObserver.prototype._computeTargetAndRootIntersection = function (target, rootRect) {\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display === 'none') return\n\n const targetRect = getBoundingClientRect(target)\n let intersectionRect = targetRect\n let parent = getParentNode(target)\n let atRoot = false\n\n while (!atRoot) {\n let parentRect = null\n const parentComputedStyle: Partial<CSSStyleDeclaration> = parent.nodeType == 1 ?\n window.getComputedStyle(parent) : {}\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display === 'none') return\n\n if (parent == this.root || parent == document) {\n atRoot = true\n parentRect = rootRect\n } else {\n // If the element has a non-visible overflow, and it's not the <body>\n // or <html> element, update the intersection rect.\n // Note: <body> and <html> cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n if (parent != document.body &&\n parent != document.documentElement &&\n parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent)\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect)\n\n if (!intersectionRect) break\n }\n parent = getParentNode(parent)\n }\n return intersectionRect\n }\n\n\n /**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {Object} The expanded root rect.\n * @private\n */\n IntersectionObserver.prototype._getRootRect = function () {\n let rootRect\n if (this.root) {\n rootRect = getBoundingClientRect(this.root)\n } else {\n // Use <html>/<body> instead of window since scroll bars affect size.\n const html = document.documentElement\n const body = document.body\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n }\n }\n return this._expandRectByRootMargin(rootRect)\n }\n\n /**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {Object} rect The rect object to expand.\n * @return {Object} The expanded rect.\n * @private\n */\n IntersectionObserver.prototype._expandRectByRootMargin = function (rect) {\n const margins = this._rootMarginValues.map(function (margin, i) {\n return margin.unit === 'px' ? margin.value :\n margin.value * (i % 2 ? rect.width : rect.height) / 100\n })\n const newRect: Record<string, number> = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n }\n newRect.width = newRect.right - newRect.left\n newRect.height = newRect.bottom - newRect.top\n\n return newRect\n }\n\n /**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\n IntersectionObserver.prototype._hasCrossedThreshold =\n function (oldEntry, newEntry) {\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n const oldRatio = oldEntry && oldEntry.isIntersecting ? oldEntry.intersectionRatio || 0 : -1\n const newRatio = newEntry.isIntersecting ? newEntry.intersectionRatio || 0 : -1\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return\n\n for (let i = 0; i < this.thresholds.length; i++) {\n const threshold = this.thresholds[i]\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio ||\n threshold < oldRatio !== threshold < newRatio) {\n return true\n }\n }\n }\n\n /**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\n IntersectionObserver.prototype._rootIsInDom = function () {\n return !this.root || containsDeep(document, this.root)\n }\n\n /**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\n IntersectionObserver.prototype._rootContainsTarget = function (target) {\n return containsDeep(this.root || document, target)\n }\n\n /**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\n IntersectionObserver.prototype._registerInstance = function () {\n if (registry.indexOf(this) < 0) {\n registry.push(this)\n }\n }\n\n /**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\n IntersectionObserver.prototype._unregisterInstance = function () {\n const index = registry.indexOf(this)\n if (index != -1) registry.splice(index, 1)\n }\n\n /**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\n function now () {\n return window.performance && performance.now && performance.now()\n }\n\n /**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\n function addEvent (node, event, fn, opt_useCapture) {\n if (isFunction(node.addEventListener)) {\n node.addEventListener(event, fn, opt_useCapture || false)\n } else if (isFunction(node.attachEvent)) {\n node.attachEvent('on' + event, fn)\n }\n }\n\n /**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\n function removeEvent (node, event, fn, opt_useCapture) {\n if (isFunction(node.removeEventListener)) {\n node.removeEventListener(event, fn, opt_useCapture || false)\n }\n else if (isFunction(node.detatchEvent)) {\n node.detatchEvent('on' + event, fn)\n }\n }\n\n /**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object} The intersection rect or undefined if no intersection\n * is found.\n */\n function computeRectIntersection (rect1, rect2) {\n const top = Math.max(rect1.top, rect2.top)\n const bottom = Math.min(rect1.bottom, rect2.bottom)\n const left = Math.max(rect1.left, rect2.left)\n const right = Math.min(rect1.right, rect2.right)\n const width = right - left\n const height = bottom - top\n\n return (width >= 0 && height >= 0) && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n }\n }\n\n /**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {Object} The (possibly shimmed) rect of the element.\n */\n function getBoundingClientRect (el) {\n let rect\n\n try {\n rect = el.getBoundingClientRect()\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect()\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n }\n }\n return rect\n }\n\n /**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {Object} The empty rect.\n */\n function getEmptyRect () {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n }\n }\n\n /**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\n function containsDeep (parent, child) {\n let node = child\n while (node) {\n if (node == parent) return true\n\n node = getParentNode(node)\n }\n return false\n }\n\n /**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\n function getParentNode (node) {\n const parent = node.parentNode\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host\n }\n\n if (parent && parent.assignedSlot) {\n // If the parent is distributed in a <slot>, return the parent of a slot.\n return parent.assignedSlot.parentNode\n }\n\n return parent\n }\n\n // Exposes the constructors globally.\n window.IntersectionObserver = IntersectionObserver as unknown as typeof window.IntersectionObserver\n window.IntersectionObserverEntry = IntersectionObserverEntry as unknown as typeof window.IntersectionObserverEntry\n}\n","import { isFunction, isObject, isUndefined } from '@tarojs/shared'\n\nexport function handleObjectAssignPolyfill () {\n if (!isFunction(Object.assign)) {\n // Must be writable: true, enumerable: false, configurable: true\n Object.assign = function (target) { // .length of function is 2\n if (target == null) { // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object')\n }\n\n const to = Object(target)\n\n for (let index = 1; index < arguments.length; index++) {\n const nextSource = arguments[index]\n\n if (nextSource != null) { // Skip over if undefined or null\n for (const nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey]\n }\n }\n }\n }\n return to\n }\n }\n}\n\nexport function handleObjectEntriesPolyfill () {\n if (!isFunction(Object.entries)) {\n // Must be writable: true, enumerable: false, configurable: true\n Object.entries = function (obj) { // .length of function is 2\n if (obj == null) { // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object')\n }\n\n const to: [string, unknown][] = []\n\n if (obj != null) { // Skip over if undefined or null\n for (const key in obj) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n to.push([key, obj[key]])\n }\n }\n }\n return to\n }\n }\n}\n\nexport function handleObjectDefinePropertyPolyfill () {\n if (!isFunction(Object.defineProperties)) {\n Object.defineProperties = function (obj, properties: Record<PropertyKey, Record<PropertyKey, unknown>>) {\n function convertToDescriptor (desc: Record<string, unknown>) {\n function hasProperty (obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop)\n }\n\n if (!isObject(desc)) { throw new TypeError('bad desc') }\n\n const d: Record<PropertyKey, unknown> = {}\n\n if (hasProperty(desc, 'enumerable')) d.enumerable = !!desc.enumerable\n if (hasProperty(desc, 'configurable')) { d.configurable = !!desc.configurable }\n if (hasProperty(desc, 'value')) d.value = desc.value\n if (hasProperty(desc, 'writable')) d.writable = !!desc.writable\n if (hasProperty(desc, 'get')) {\n const g = desc.get\n\n if (!isFunction(g) && !isUndefined(g)) { throw new TypeError('bad get') }\n d.get = g\n }\n if (hasProperty(desc, 'set')) {\n const s = desc.set\n if (!isFunction(s) && !isUndefined(s)) { throw new TypeError('bad set') }\n d.set = s\n }\n\n if (('get' in d || 'set' in d) && ('value' in d || 'writable' in d)) { throw new TypeError('identity-confused descriptor') }\n\n return d\n }\n\n if (!isObject(obj)) throw new TypeError('bad obj')\n\n properties = Object(properties)\n\n const keys = Object.keys(properties)\n const descs: [PropertyKey, Record<PropertyKey, unknown>][] = []\n\n for (let i = 0; i < keys.length; i++) {\n descs.push([keys[i], convertToDescriptor(properties[keys[i]])])\n }\n\n for (let i = 0; i < descs.length; i++) {\n Object.defineProperty(obj, descs[i][0], descs[i][1])\n }\n\n return obj\n }\n }\n}\n","import { isObject } from '@tarojs/shared'\n\nimport { handleArrayFindPolyfill, handleArrayIncludesPolyfill } from './array'\nimport { handleIntersectionObserverPolyfill } from './intersection-observer'\nimport { handleObjectAssignPolyfill, handleObjectDefinePropertyPolyfill, handleObjectEntriesPolyfill } from './object'\n\nfunction handlePolyfill () {\n if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'Object' || process.env.SUPPORT_TARO_POLYFILL === 'Object.assign') {\n handleObjectAssignPolyfill()\n }\n if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'Object' || process.env.SUPPORT_TARO_POLYFILL === 'Object.entries') {\n handleObjectEntriesPolyfill()\n }\n if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'Object' || process.env.SUPPORT_TARO_POLYFILL === 'Object.defineProperty') {\n handleObjectDefinePropertyPolyfill()\n }\n if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'Array' || process.env.SUPPORT_TARO_POLYFILL === 'Array.find') {\n handleArrayFindPolyfill()\n }\n if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'Array' || process.env.SUPPORT_TARO_POLYFILL === 'Array.includes') {\n handleArrayIncludesPolyfill()\n }\n // Exit early if we're not running in a browser.\n if (process.env.TARO_PLATFORM === 'web' && isObject(window)) {\n if (process.env.SUPPORT_TARO_POLYFILL === 'enabled' || process.env.SUPPORT_TARO_POLYFILL === 'IntersectionObserver') {\n handleIntersectionObserverPolyfill()\n }\n }\n}\n\nif (process.env.SUPPORT_TARO_POLYFILL !== 'disabled' && process.env.TARO_PLATFORM !== 'web') {\n handlePolyfill()\n}\n\nexport { handlePolyfill }\n\n"],"names":["CONTEXT_ACTIONS","noop","hooks","Events","EMPTY_OBJ","cache","__classPrivateFieldSet","__classPrivateFieldGet","isNumber","isString","isArray","isUndefined","warn","now","navigator","raf","caf","location","isFunction","componentsAlias","_getComponentsAlias","internalComponents","toCamelCase","isObject","ensure","MutationObserver","isNull","toDashed","isEnableTTDom","PLATFORM_TYPE","controlledComponent","DEFAULT_COMPONENTS","TT_SPECIFIC_COMPONENTS","EventChannel","getComponentsAlias"],"mappings":"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"}