@tarojs/components 3.6.1 → 3.6.2-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1254) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/helper-db78e01a.js +0 -2
  3. package/dist/cjs/hls-67cbc62d.js +0 -2
  4. package/dist/cjs/index-dfd8638f.js +0 -2
  5. package/dist/cjs/index-e1b469cd.js +0 -2
  6. package/dist/cjs/index-f9d21cc5.js +0 -2
  7. package/dist/cjs/index.cjs.js +0 -2
  8. package/dist/cjs/intersection-observer-dc4cfcef.js +0 -2
  9. package/dist/cjs/loader.cjs.js +1 -3
  10. package/dist/cjs/taro-ad-core.cjs.entry.js +0 -2
  11. package/dist/cjs/taro-ad-custom-core.cjs.entry.js +0 -2
  12. package/dist/cjs/taro-animation-video-core.cjs.entry.js +0 -2
  13. package/dist/cjs/taro-animation-view-core.cjs.entry.js +0 -2
  14. package/dist/cjs/taro-ar-camera-core.cjs.entry.js +0 -2
  15. package/dist/cjs/taro-audio-core.cjs.entry.js +0 -2
  16. package/dist/cjs/taro-aweme-data-core.cjs.entry.js +0 -2
  17. package/dist/cjs/taro-block-core.cjs.entry.js +0 -2
  18. package/dist/cjs/taro-button-core.cjs.entry.js +0 -2
  19. package/dist/cjs/taro-camera-core.cjs.entry.js +0 -2
  20. package/dist/cjs/taro-canvas-core.cjs.entry.js +0 -2
  21. package/dist/cjs/taro-channel-live-core.cjs.entry.js +21 -0
  22. package/dist/cjs/taro-channel-video-core.cjs.entry.js +21 -0
  23. package/dist/cjs/taro-checkbox-core_2.cjs.entry.js +0 -2
  24. package/dist/cjs/taro-comment-detail-core.cjs.entry.js +0 -2
  25. package/dist/cjs/taro-comment-list-core.cjs.entry.js +0 -2
  26. package/dist/cjs/taro-components.cjs.js +1 -3
  27. package/dist/cjs/taro-contact-button-core.cjs.entry.js +0 -2
  28. package/dist/cjs/taro-cover-image-core.cjs.entry.js +0 -2
  29. package/dist/cjs/taro-cover-view-core.cjs.entry.js +0 -2
  30. package/dist/cjs/taro-custom-wrapper-core.cjs.entry.js +0 -2
  31. package/dist/cjs/taro-editor-core.cjs.entry.js +0 -2
  32. package/dist/cjs/taro-follow-swan-core.cjs.entry.js +0 -2
  33. package/dist/cjs/taro-form-core.cjs.entry.js +0 -2
  34. package/dist/cjs/taro-functional-page-navigator-core.cjs.entry.js +0 -2
  35. package/dist/cjs/taro-grid-view-core.cjs.entry.js +21 -0
  36. package/dist/cjs/taro-icon-core.cjs.entry.js +0 -2
  37. package/dist/cjs/taro-image-core.cjs.entry.js +0 -2
  38. package/dist/cjs/taro-inline-payment-panel-core.cjs.entry.js +0 -2
  39. package/dist/cjs/taro-input-core.cjs.entry.js +0 -2
  40. package/dist/cjs/taro-keyboard-accessory-core.cjs.entry.js +0 -2
  41. package/dist/cjs/taro-label-core.cjs.entry.js +0 -2
  42. package/dist/cjs/taro-lifestyle-core.cjs.entry.js +0 -2
  43. package/dist/cjs/taro-like-core.cjs.entry.js +0 -2
  44. package/dist/cjs/taro-list-view-core.cjs.entry.js +21 -0
  45. package/dist/cjs/taro-live-player-core.cjs.entry.js +0 -2
  46. package/dist/cjs/taro-live-pusher-core.cjs.entry.js +0 -2
  47. package/dist/cjs/taro-login-core.cjs.entry.js +0 -2
  48. package/dist/cjs/taro-lottie-core.cjs.entry.js +0 -2
  49. package/dist/cjs/taro-map-core.cjs.entry.js +0 -2
  50. package/dist/cjs/taro-match-media-core.cjs.entry.js +0 -2
  51. package/dist/cjs/taro-movable-area-core_2.cjs.entry.js +0 -2
  52. package/dist/cjs/taro-native-slot-core.cjs.entry.js +0 -2
  53. package/dist/cjs/taro-navigation-bar-core.cjs.entry.js +0 -2
  54. package/dist/cjs/taro-navigator-core.cjs.entry.js +1 -3
  55. package/dist/cjs/taro-official-account-core.cjs.entry.js +0 -2
  56. package/dist/cjs/taro-open-data-core.cjs.entry.js +0 -2
  57. package/dist/cjs/taro-page-container-core.cjs.entry.js +0 -2
  58. package/dist/cjs/taro-page-meta-core.cjs.entry.js +0 -2
  59. package/dist/cjs/taro-picker-core_2.cjs.entry.js +3 -5
  60. package/dist/cjs/taro-picker-view-column-core_2.cjs.entry.js +0 -2
  61. package/dist/cjs/taro-progress-core.cjs.entry.js +0 -2
  62. package/dist/cjs/taro-pull-to-refresh.cjs.entry.js +0 -2
  63. package/dist/cjs/taro-radio-core_2.cjs.entry.js +0 -2
  64. package/dist/cjs/taro-rich-text-core.cjs.entry.js +0 -2
  65. package/dist/cjs/taro-root-portal-core.cjs.entry.js +0 -2
  66. package/dist/cjs/taro-rtc-room-core.cjs.entry.js +0 -2
  67. package/dist/cjs/taro-rtc-room-item-core.cjs.entry.js +0 -2
  68. package/dist/cjs/taro-scroll-view-core.cjs.entry.js +0 -2
  69. package/dist/cjs/taro-share-element-core.cjs.entry.js +0 -2
  70. package/dist/cjs/taro-slider-core.cjs.entry.js +0 -2
  71. package/dist/cjs/taro-slot-core.cjs.entry.js +0 -2
  72. package/dist/cjs/taro-sticky-header-core.cjs.entry.js +21 -0
  73. package/dist/cjs/taro-sticky-section-core.cjs.entry.js +21 -0
  74. package/dist/cjs/taro-swiper-core_2.cjs.entry.js +0 -2
  75. package/dist/cjs/taro-switch-core.cjs.entry.js +0 -2
  76. package/dist/cjs/taro-tab-item-core.cjs.entry.js +0 -2
  77. package/dist/cjs/taro-tabbar.cjs.entry.js +0 -2
  78. package/dist/cjs/taro-tabs-core.cjs.entry.js +0 -2
  79. package/dist/cjs/taro-text-core.cjs.entry.js +0 -2
  80. package/dist/cjs/taro-textarea-core.cjs.entry.js +11 -3
  81. package/dist/cjs/taro-video-control_3.cjs.entry.js +3 -3
  82. package/dist/cjs/taro-view-core.cjs.entry.js +0 -2
  83. package/dist/cjs/taro-voip-room-core.cjs.entry.js +0 -2
  84. package/dist/cjs/taro-web-view-core.cjs.entry.js +0 -2
  85. package/dist/collection/collection-manifest.json +6 -0
  86. package/dist/collection/components/ad/ad.js +0 -1
  87. package/dist/collection/components/ad-custom/ad-custom.js +0 -1
  88. package/dist/collection/components/animation-video/animation-video.js +0 -1
  89. package/dist/collection/components/animation-view/animation-view.js +0 -1
  90. package/dist/collection/components/ar-camera/ar-camera.js +0 -1
  91. package/dist/collection/components/audio/audio.js +0 -1
  92. package/dist/collection/components/aweme-data/aweme-data.js +0 -1
  93. package/dist/collection/components/block/block.js +0 -1
  94. package/dist/collection/components/button/button.js +0 -1
  95. package/dist/collection/components/camera/camera.js +0 -1
  96. package/dist/collection/components/canvas/canvas.js +0 -1
  97. package/dist/collection/components/channel-live/channel-live.js +11 -0
  98. package/dist/collection/components/channel-video/channel-video.js +11 -0
  99. package/dist/collection/components/checkbox/checkbox-group.js +0 -1
  100. package/dist/collection/components/checkbox/checkbox.js +0 -1
  101. package/dist/collection/components/comment/comment-detail.js +0 -1
  102. package/dist/collection/components/comment/comment-list.js +0 -1
  103. package/dist/collection/components/contact-button/contact-button.js +0 -1
  104. package/dist/collection/components/cover-image/cover-image.js +0 -1
  105. package/dist/collection/components/cover-view/cover-view.js +0 -1
  106. package/dist/collection/components/custom-wrapper/custom-wrapper.js +0 -1
  107. package/dist/collection/components/editor/editor.js +0 -1
  108. package/dist/collection/components/follow-swan/follow-swan.js +0 -1
  109. package/dist/collection/components/form/form.js +0 -1
  110. package/dist/collection/components/functional-page-navigator/functional-page-navigator.js +0 -1
  111. package/dist/collection/components/grid-view/grid-view.js +11 -0
  112. package/dist/collection/components/icon/icon.js +0 -1
  113. package/dist/collection/components/image/image.js +0 -1
  114. package/dist/collection/components/inline-payment-panel/inline-payment-panel.js +0 -1
  115. package/dist/collection/components/input/input.js +0 -1
  116. package/dist/collection/components/keyboard-accessory/keyboard-accessory.js +0 -1
  117. package/dist/collection/components/label/label.js +0 -1
  118. package/dist/collection/components/lifestyle/lifestyle.js +0 -1
  119. package/dist/collection/components/like/like.js +0 -1
  120. package/dist/collection/components/list-view/list-view.js +11 -0
  121. package/dist/collection/components/live-player/live-player.js +0 -1
  122. package/dist/collection/components/live-pusher/live-pusher.js +0 -1
  123. package/dist/collection/components/login/login.js +0 -1
  124. package/dist/collection/components/lottie/lottie.js +0 -1
  125. package/dist/collection/components/map/map.js +0 -1
  126. package/dist/collection/components/match-media/match-media.js +0 -1
  127. package/dist/collection/components/movable-area/movable-area.js +0 -1
  128. package/dist/collection/components/movable-area/movable-view.js +0 -1
  129. package/dist/collection/components/navigation-bar/navigation-bar.js +0 -1
  130. package/dist/collection/components/navigator/navigator.js +1 -2
  131. package/dist/collection/components/official-account/official-account.js +0 -1
  132. package/dist/collection/components/open-data/open-data.js +0 -1
  133. package/dist/collection/components/page-container/page-container.js +0 -1
  134. package/dist/collection/components/page-meta/page-meta.js +0 -1
  135. package/dist/collection/components/picker/constant.js +0 -1
  136. package/dist/collection/components/picker/picker-group.js +18 -7
  137. package/dist/collection/components/picker/picker.js +0 -1
  138. package/dist/collection/components/picker/utils.js +0 -1
  139. package/dist/collection/components/picker-view/picker-view-column.js +0 -1
  140. package/dist/collection/components/picker-view/picker-view.js +0 -1
  141. package/dist/collection/components/progress/progress.js +0 -1
  142. package/dist/collection/components/pull-to-refresh/pull-to-refresh.js +0 -1
  143. package/dist/collection/components/radio/radio-group.js +0 -1
  144. package/dist/collection/components/radio/radio.js +0 -1
  145. package/dist/collection/components/rich-text/rich-text.js +0 -1
  146. package/dist/collection/components/root-portal/root-portal.js +0 -1
  147. package/dist/collection/components/rtc-room/rtc-room-item.js +0 -1
  148. package/dist/collection/components/rtc-room/rtc-room.js +0 -1
  149. package/dist/collection/components/scroll-view/scroll-view.js +0 -1
  150. package/dist/collection/components/share-element/share-element.js +0 -1
  151. package/dist/collection/components/slider/slider.js +0 -1
  152. package/dist/collection/components/slot/native-slot.js +0 -1
  153. package/dist/collection/components/slot/slot.js +0 -1
  154. package/dist/collection/components/sticky-header/sticky-header.js +11 -0
  155. package/dist/collection/components/sticky-section/sticky-section.js +11 -0
  156. package/dist/collection/components/swiper/swiper-item.js +0 -1
  157. package/dist/collection/components/swiper/swiper.js +0 -1
  158. package/dist/collection/components/switch/switch.js +0 -1
  159. package/dist/collection/components/tabbar/tabbar-item.js +0 -1
  160. package/dist/collection/components/tabbar/tabbar.js +0 -1
  161. package/dist/collection/components/tabs/tab-item.js +0 -1
  162. package/dist/collection/components/tabs/tabs.js +0 -1
  163. package/dist/collection/components/text/text.js +0 -1
  164. package/dist/collection/components/textarea/textarea.js +16 -4
  165. package/dist/collection/components/video/utils.js +0 -1
  166. package/dist/collection/components/video/video-control.js +0 -1
  167. package/dist/collection/components/video/video-danmu.js +0 -1
  168. package/dist/collection/components/video/video.js +3 -2
  169. package/dist/collection/components/view/view.js +0 -1
  170. package/dist/collection/components/voip-room/voip-room.js +0 -1
  171. package/dist/collection/components/web-view/web-view.js +0 -1
  172. package/dist/collection/index.js +0 -1
  173. package/dist/collection/utils/helper.js +0 -1
  174. package/dist/collection/utils/index.js +0 -1
  175. package/dist/collection/utils/style.js +0 -1
  176. package/dist/collection/utils/url.js +0 -1
  177. package/dist/components/helper.js +0 -2
  178. package/dist/components/hls.js +0 -2
  179. package/dist/components/index.d.ts +6 -0
  180. package/dist/components/index.js +6 -2
  181. package/dist/components/index2.js +0 -2
  182. package/dist/components/index3.js +0 -2
  183. package/dist/components/intersection-observer.js +0 -2
  184. package/dist/components/picker-group.js +3 -5
  185. package/dist/components/taro-ad-core.js +0 -2
  186. package/dist/components/taro-ad-custom-core.js +0 -2
  187. package/dist/components/taro-animation-video-core.js +0 -2
  188. package/dist/components/taro-animation-view-core.js +0 -2
  189. package/dist/components/taro-ar-camera-core.js +0 -2
  190. package/dist/components/taro-audio-core.js +0 -2
  191. package/dist/components/taro-aweme-data-core.js +0 -2
  192. package/dist/components/taro-block-core.js +0 -2
  193. package/dist/components/taro-button-core.js +0 -2
  194. package/dist/components/taro-camera-core.js +0 -2
  195. package/dist/components/taro-canvas-core.js +0 -2
  196. package/dist/components/taro-channel-live-core.d.ts +11 -0
  197. package/dist/components/taro-channel-live-core.js +33 -0
  198. package/dist/components/taro-channel-video-core.d.ts +11 -0
  199. package/dist/components/taro-channel-video-core.js +33 -0
  200. package/dist/components/taro-checkbox-core.js +0 -2
  201. package/dist/components/taro-checkbox-group-core.js +0 -2
  202. package/dist/components/taro-comment-detail-core.js +0 -2
  203. package/dist/components/taro-comment-list-core.js +0 -2
  204. package/dist/components/taro-contact-button-core.js +0 -2
  205. package/dist/components/taro-cover-image-core.js +0 -2
  206. package/dist/components/taro-cover-view-core.js +0 -2
  207. package/dist/components/taro-custom-wrapper-core.js +0 -2
  208. package/dist/components/taro-editor-core.js +0 -2
  209. package/dist/components/taro-follow-swan-core.js +0 -2
  210. package/dist/components/taro-form-core.js +0 -2
  211. package/dist/components/taro-functional-page-navigator-core.js +0 -2
  212. package/dist/components/taro-grid-view-core.d.ts +11 -0
  213. package/dist/components/taro-grid-view-core.js +33 -0
  214. package/dist/components/taro-icon-core.js +0 -2
  215. package/dist/components/taro-image-core.js +0 -2
  216. package/dist/components/taro-inline-payment-panel-core.js +0 -2
  217. package/dist/components/taro-input-core.js +0 -2
  218. package/dist/components/taro-keyboard-accessory-core.js +0 -2
  219. package/dist/components/taro-label-core.js +0 -2
  220. package/dist/components/taro-lifestyle-core.js +0 -2
  221. package/dist/components/taro-like-core.js +0 -2
  222. package/dist/components/taro-list-view-core.d.ts +11 -0
  223. package/dist/components/taro-list-view-core.js +33 -0
  224. package/dist/components/taro-live-player-core.js +0 -2
  225. package/dist/components/taro-live-pusher-core.js +0 -2
  226. package/dist/components/taro-login-core.js +0 -2
  227. package/dist/components/taro-lottie-core.js +0 -2
  228. package/dist/components/taro-map-core.js +0 -2
  229. package/dist/components/taro-match-media-core.js +0 -2
  230. package/dist/components/taro-movable-area-core.js +0 -2
  231. package/dist/components/taro-movable-view-core.js +0 -2
  232. package/dist/components/taro-native-slot-core.js +0 -2
  233. package/dist/components/taro-navigation-bar-core.js +0 -2
  234. package/dist/components/taro-navigator-core.js +1 -3
  235. package/dist/components/taro-official-account-core.js +0 -2
  236. package/dist/components/taro-open-data-core.js +0 -2
  237. package/dist/components/taro-page-container-core.js +0 -2
  238. package/dist/components/taro-page-meta-core.js +0 -2
  239. package/dist/components/taro-picker-core.js +0 -2
  240. package/dist/components/taro-picker-group.js +0 -2
  241. package/dist/components/taro-picker-view-column-core.js +0 -2
  242. package/dist/components/taro-picker-view-core.js +0 -2
  243. package/dist/components/taro-progress-core.js +0 -2
  244. package/dist/components/taro-pull-to-refresh.js +0 -2
  245. package/dist/components/taro-radio-core.js +0 -2
  246. package/dist/components/taro-radio-group-core.js +0 -2
  247. package/dist/components/taro-rich-text-core.js +0 -2
  248. package/dist/components/taro-root-portal-core.js +0 -2
  249. package/dist/components/taro-rtc-room-core.js +0 -2
  250. package/dist/components/taro-rtc-room-item-core.js +0 -2
  251. package/dist/components/taro-scroll-view-core.js +0 -2
  252. package/dist/components/taro-share-element-core.js +0 -2
  253. package/dist/components/taro-slider-core.js +0 -2
  254. package/dist/components/taro-slot-core.js +0 -2
  255. package/dist/components/taro-sticky-header-core.d.ts +11 -0
  256. package/dist/components/taro-sticky-header-core.js +33 -0
  257. package/dist/components/taro-sticky-section-core.d.ts +11 -0
  258. package/dist/components/taro-sticky-section-core.js +33 -0
  259. package/dist/components/taro-swiper-core.js +0 -2
  260. package/dist/components/taro-swiper-item-core.js +0 -2
  261. package/dist/components/taro-switch-core.js +0 -2
  262. package/dist/components/taro-tab-item-core.js +0 -2
  263. package/dist/components/taro-tabbar.js +0 -2
  264. package/dist/components/taro-tabs-core.js +0 -2
  265. package/dist/components/taro-text-core.js +0 -2
  266. package/dist/components/taro-textarea-core.js +12 -4
  267. package/dist/components/taro-video-control.js +0 -2
  268. package/dist/components/taro-video-core.js +3 -3
  269. package/dist/components/taro-video-danmu.js +0 -2
  270. package/dist/components/taro-view-core.js +0 -2
  271. package/dist/components/taro-voip-room-core.js +0 -2
  272. package/dist/components/taro-web-view-core.js +0 -2
  273. package/dist/components/video-control.js +0 -2
  274. package/dist/components/video-danmu.js +0 -2
  275. package/dist/esm/helper-3d0ecf0f.js +0 -2
  276. package/dist/esm/hls-221423a1.js +0 -2
  277. package/dist/esm/index-1d8e8acd.js +0 -2
  278. package/dist/esm/index-c948674f.js +0 -2
  279. package/dist/esm/index-d1b03e47.js +0 -2
  280. package/dist/esm/index.js +0 -2
  281. package/dist/esm/intersection-observer-8e4c7135.js +0 -2
  282. package/dist/esm/loader.js +1 -3
  283. package/dist/esm/taro-ad-core.entry.js +0 -2
  284. package/dist/esm/taro-ad-custom-core.entry.js +0 -2
  285. package/dist/esm/taro-animation-video-core.entry.js +0 -2
  286. package/dist/esm/taro-animation-view-core.entry.js +0 -2
  287. package/dist/esm/taro-ar-camera-core.entry.js +0 -2
  288. package/dist/esm/taro-audio-core.entry.js +0 -2
  289. package/dist/esm/taro-aweme-data-core.entry.js +0 -2
  290. package/dist/esm/taro-block-core.entry.js +0 -2
  291. package/dist/esm/taro-button-core.entry.js +0 -2
  292. package/dist/esm/taro-camera-core.entry.js +0 -2
  293. package/dist/esm/taro-canvas-core.entry.js +0 -2
  294. package/dist/esm/taro-channel-live-core.entry.js +17 -0
  295. package/dist/esm/taro-channel-video-core.entry.js +17 -0
  296. package/dist/esm/taro-checkbox-core_2.entry.js +0 -2
  297. package/dist/esm/taro-comment-detail-core.entry.js +0 -2
  298. package/dist/esm/taro-comment-list-core.entry.js +0 -2
  299. package/dist/esm/taro-components.js +1 -3
  300. package/dist/esm/taro-contact-button-core.entry.js +0 -2
  301. package/dist/esm/taro-cover-image-core.entry.js +0 -2
  302. package/dist/esm/taro-cover-view-core.entry.js +0 -2
  303. package/dist/esm/taro-custom-wrapper-core.entry.js +0 -2
  304. package/dist/esm/taro-editor-core.entry.js +0 -2
  305. package/dist/esm/taro-follow-swan-core.entry.js +0 -2
  306. package/dist/esm/taro-form-core.entry.js +0 -2
  307. package/dist/esm/taro-functional-page-navigator-core.entry.js +0 -2
  308. package/dist/esm/taro-grid-view-core.entry.js +17 -0
  309. package/dist/esm/taro-icon-core.entry.js +0 -2
  310. package/dist/esm/taro-image-core.entry.js +0 -2
  311. package/dist/esm/taro-inline-payment-panel-core.entry.js +0 -2
  312. package/dist/esm/taro-input-core.entry.js +0 -2
  313. package/dist/esm/taro-keyboard-accessory-core.entry.js +0 -2
  314. package/dist/esm/taro-label-core.entry.js +0 -2
  315. package/dist/esm/taro-lifestyle-core.entry.js +0 -2
  316. package/dist/esm/taro-like-core.entry.js +0 -2
  317. package/dist/esm/taro-list-view-core.entry.js +17 -0
  318. package/dist/esm/taro-live-player-core.entry.js +0 -2
  319. package/dist/esm/taro-live-pusher-core.entry.js +0 -2
  320. package/dist/esm/taro-login-core.entry.js +0 -2
  321. package/dist/esm/taro-lottie-core.entry.js +0 -2
  322. package/dist/esm/taro-map-core.entry.js +0 -2
  323. package/dist/esm/taro-match-media-core.entry.js +0 -2
  324. package/dist/esm/taro-movable-area-core_2.entry.js +0 -2
  325. package/dist/esm/taro-native-slot-core.entry.js +0 -2
  326. package/dist/esm/taro-navigation-bar-core.entry.js +0 -2
  327. package/dist/esm/taro-navigator-core.entry.js +1 -3
  328. package/dist/esm/taro-official-account-core.entry.js +0 -2
  329. package/dist/esm/taro-open-data-core.entry.js +0 -2
  330. package/dist/esm/taro-page-container-core.entry.js +0 -2
  331. package/dist/esm/taro-page-meta-core.entry.js +0 -2
  332. package/dist/esm/taro-picker-core_2.entry.js +3 -5
  333. package/dist/esm/taro-picker-view-column-core_2.entry.js +0 -2
  334. package/dist/esm/taro-progress-core.entry.js +0 -2
  335. package/dist/esm/taro-pull-to-refresh.entry.js +0 -2
  336. package/dist/esm/taro-radio-core_2.entry.js +0 -2
  337. package/dist/esm/taro-rich-text-core.entry.js +0 -2
  338. package/dist/esm/taro-root-portal-core.entry.js +0 -2
  339. package/dist/esm/taro-rtc-room-core.entry.js +0 -2
  340. package/dist/esm/taro-rtc-room-item-core.entry.js +0 -2
  341. package/dist/esm/taro-scroll-view-core.entry.js +0 -2
  342. package/dist/esm/taro-share-element-core.entry.js +0 -2
  343. package/dist/esm/taro-slider-core.entry.js +0 -2
  344. package/dist/esm/taro-slot-core.entry.js +0 -2
  345. package/dist/esm/taro-sticky-header-core.entry.js +17 -0
  346. package/dist/esm/taro-sticky-section-core.entry.js +17 -0
  347. package/dist/esm/taro-swiper-core_2.entry.js +0 -2
  348. package/dist/esm/taro-switch-core.entry.js +0 -2
  349. package/dist/esm/taro-tab-item-core.entry.js +0 -2
  350. package/dist/esm/taro-tabbar.entry.js +0 -2
  351. package/dist/esm/taro-tabs-core.entry.js +0 -2
  352. package/dist/esm/taro-text-core.entry.js +0 -2
  353. package/dist/esm/taro-textarea-core.entry.js +11 -3
  354. package/dist/esm/taro-video-control_3.entry.js +3 -3
  355. package/dist/esm/taro-view-core.entry.js +0 -2
  356. package/dist/esm/taro-voip-room-core.entry.js +0 -2
  357. package/dist/esm/taro-web-view-core.entry.js +0 -2
  358. package/dist/esm-es5/helper-3d0ecf0f.js +1 -2
  359. package/dist/esm-es5/hls-221423a1.js +1 -2
  360. package/dist/esm-es5/index-1d8e8acd.js +1 -2
  361. package/dist/esm-es5/index-c948674f.js +1 -2
  362. package/dist/esm-es5/index-d1b03e47.js +1 -2
  363. package/dist/esm-es5/index.js +0 -2
  364. package/dist/esm-es5/intersection-observer-8e4c7135.js +1 -2
  365. package/dist/esm-es5/loader.js +1 -2
  366. package/dist/esm-es5/taro-ad-core.entry.js +1 -2
  367. package/dist/esm-es5/taro-ad-custom-core.entry.js +1 -2
  368. package/dist/esm-es5/taro-animation-video-core.entry.js +1 -2
  369. package/dist/esm-es5/taro-animation-view-core.entry.js +1 -2
  370. package/dist/esm-es5/taro-ar-camera-core.entry.js +1 -2
  371. package/dist/esm-es5/taro-audio-core.entry.js +1 -2
  372. package/dist/esm-es5/taro-aweme-data-core.entry.js +1 -2
  373. package/dist/esm-es5/taro-block-core.entry.js +1 -2
  374. package/dist/esm-es5/taro-button-core.entry.js +1 -2
  375. package/dist/esm-es5/taro-camera-core.entry.js +1 -2
  376. package/dist/esm-es5/taro-canvas-core.entry.js +1 -2
  377. package/dist/esm-es5/taro-channel-live-core.entry.js +1 -0
  378. package/dist/esm-es5/taro-channel-video-core.entry.js +1 -0
  379. package/dist/esm-es5/taro-checkbox-core_2.entry.js +1 -2
  380. package/dist/esm-es5/taro-comment-detail-core.entry.js +1 -2
  381. package/dist/esm-es5/taro-comment-list-core.entry.js +1 -2
  382. package/dist/esm-es5/taro-components.js +1 -2
  383. package/dist/esm-es5/taro-contact-button-core.entry.js +1 -2
  384. package/dist/esm-es5/taro-cover-image-core.entry.js +1 -2
  385. package/dist/esm-es5/taro-cover-view-core.entry.js +1 -2
  386. package/dist/esm-es5/taro-custom-wrapper-core.entry.js +1 -2
  387. package/dist/esm-es5/taro-editor-core.entry.js +1 -2
  388. package/dist/esm-es5/taro-follow-swan-core.entry.js +1 -2
  389. package/dist/esm-es5/taro-form-core.entry.js +1 -2
  390. package/dist/esm-es5/taro-functional-page-navigator-core.entry.js +1 -2
  391. package/dist/esm-es5/taro-grid-view-core.entry.js +1 -0
  392. package/dist/esm-es5/taro-icon-core.entry.js +1 -2
  393. package/dist/esm-es5/taro-image-core.entry.js +1 -2
  394. package/dist/esm-es5/taro-inline-payment-panel-core.entry.js +1 -2
  395. package/dist/esm-es5/taro-input-core.entry.js +1 -2
  396. package/dist/esm-es5/taro-keyboard-accessory-core.entry.js +1 -2
  397. package/dist/esm-es5/taro-label-core.entry.js +1 -2
  398. package/dist/esm-es5/taro-lifestyle-core.entry.js +1 -2
  399. package/dist/esm-es5/taro-like-core.entry.js +1 -2
  400. package/dist/esm-es5/taro-list-view-core.entry.js +1 -0
  401. package/dist/esm-es5/taro-live-player-core.entry.js +1 -2
  402. package/dist/esm-es5/taro-live-pusher-core.entry.js +1 -2
  403. package/dist/esm-es5/taro-login-core.entry.js +1 -2
  404. package/dist/esm-es5/taro-lottie-core.entry.js +1 -2
  405. package/dist/esm-es5/taro-map-core.entry.js +1 -2
  406. package/dist/esm-es5/taro-match-media-core.entry.js +1 -2
  407. package/dist/esm-es5/taro-movable-area-core_2.entry.js +1 -2
  408. package/dist/esm-es5/taro-native-slot-core.entry.js +1 -2
  409. package/dist/esm-es5/taro-navigation-bar-core.entry.js +1 -2
  410. package/dist/esm-es5/taro-navigator-core.entry.js +1 -2
  411. package/dist/esm-es5/taro-official-account-core.entry.js +1 -2
  412. package/dist/esm-es5/taro-open-data-core.entry.js +1 -2
  413. package/dist/esm-es5/taro-page-container-core.entry.js +1 -2
  414. package/dist/esm-es5/taro-page-meta-core.entry.js +1 -2
  415. package/dist/esm-es5/taro-picker-core_2.entry.js +1 -2
  416. package/dist/esm-es5/taro-picker-view-column-core_2.entry.js +1 -2
  417. package/dist/esm-es5/taro-progress-core.entry.js +1 -2
  418. package/dist/esm-es5/taro-pull-to-refresh.entry.js +1 -2
  419. package/dist/esm-es5/taro-radio-core_2.entry.js +1 -2
  420. package/dist/esm-es5/taro-rich-text-core.entry.js +1 -2
  421. package/dist/esm-es5/taro-root-portal-core.entry.js +1 -2
  422. package/dist/esm-es5/taro-rtc-room-core.entry.js +1 -2
  423. package/dist/esm-es5/taro-rtc-room-item-core.entry.js +1 -2
  424. package/dist/esm-es5/taro-scroll-view-core.entry.js +1 -2
  425. package/dist/esm-es5/taro-share-element-core.entry.js +1 -2
  426. package/dist/esm-es5/taro-slider-core.entry.js +1 -2
  427. package/dist/esm-es5/taro-slot-core.entry.js +1 -2
  428. package/dist/esm-es5/taro-sticky-header-core.entry.js +1 -0
  429. package/dist/esm-es5/taro-sticky-section-core.entry.js +1 -0
  430. package/dist/esm-es5/taro-swiper-core_2.entry.js +1 -2
  431. package/dist/esm-es5/taro-switch-core.entry.js +1 -2
  432. package/dist/esm-es5/taro-tab-item-core.entry.js +1 -2
  433. package/dist/esm-es5/taro-tabbar.entry.js +1 -2
  434. package/dist/esm-es5/taro-tabs-core.entry.js +1 -2
  435. package/dist/esm-es5/taro-text-core.entry.js +1 -2
  436. package/dist/esm-es5/taro-textarea-core.entry.js +1 -2
  437. package/dist/esm-es5/taro-video-control_3.entry.js +1 -2
  438. package/dist/esm-es5/taro-view-core.entry.js +1 -2
  439. package/dist/esm-es5/taro-voip-room-core.entry.js +1 -2
  440. package/dist/esm-es5/taro-web-view-core.entry.js +1 -2
  441. package/dist/taro-components/index.esm.js +0 -2
  442. package/dist/taro-components/p-02aa7366.system.entry.js +1 -0
  443. package/dist/taro-components/{p-0accc602.entry.js → p-0393ed55.entry.js} +1 -2
  444. package/dist/taro-components/p-058b9004.entry.js +1 -0
  445. package/dist/taro-components/{p-eb9adf17.entry.js → p-05bc0fce.entry.js} +1 -2
  446. package/dist/taro-components/p-05c757b7.entry.js +1 -0
  447. package/dist/taro-components/{p-76e6fbff.entry.js → p-07293238.entry.js} +1 -2
  448. package/dist/taro-components/p-0836fcd9.entry.js +1 -0
  449. package/dist/taro-components/p-087bf23a.system.entry.js +1 -2
  450. package/dist/taro-components/p-08bb8dfc.system.entry.js +1 -2
  451. package/dist/taro-components/p-0a165ad3.system.entry.js +1 -2
  452. package/dist/taro-components/p-0a9b984e.system.entry.js +1 -2
  453. package/dist/taro-components/p-0aaf66d2.entry.js +1 -0
  454. package/dist/taro-components/p-10046f1a.system.entry.js +1 -2
  455. package/dist/taro-components/p-10be7fb5.system.entry.js +1 -2
  456. package/dist/taro-components/{p-4a462c95.entry.js → p-11936d9a.entry.js} +1 -2
  457. package/dist/taro-components/{p-51caa3f3.entry.js → p-1249cb09.entry.js} +1 -2
  458. package/dist/taro-components/p-1385d50f.entry.js +1 -0
  459. package/dist/taro-components/p-1493866a.entry.js +1 -0
  460. package/dist/taro-components/p-15e45ed6.system.js +1 -2
  461. package/dist/taro-components/p-16e03200.entry.js +1 -0
  462. package/dist/taro-components/p-17302fe9.system.entry.js +1 -2
  463. package/dist/taro-components/p-1743a04b.system.js +1 -2
  464. package/dist/taro-components/p-1941d333.system.entry.js +1 -2
  465. package/dist/taro-components/p-1a0e1932.system.js +1 -2
  466. package/dist/taro-components/{p-386ae2b2.entry.js → p-1be83ed3.entry.js} +1 -2
  467. package/dist/taro-components/p-1c320250.system.entry.js +1 -2
  468. package/dist/taro-components/p-1c446c65.system.js +1 -2
  469. package/dist/taro-components/{p-19e87e18.entry.js → p-1e8c8ae1.entry.js} +1 -2
  470. package/dist/taro-components/p-2024e133.system.entry.js +1 -2
  471. package/dist/taro-components/{p-780870eb.entry.js → p-22dc57d4.entry.js} +1 -2
  472. package/dist/taro-components/{p-0faf45d5.entry.js → p-23cb8a7f.entry.js} +1 -2
  473. package/dist/taro-components/p-26889f3c.system.entry.js +1 -2
  474. package/dist/taro-components/p-27c4878c.entry.js +1 -0
  475. package/dist/taro-components/{p-4263c9d9.entry.js → p-2e28cb1c.entry.js} +1 -2
  476. package/dist/taro-components/p-2f7dba29.entry.js +1 -0
  477. package/dist/taro-components/p-30f32fa2.system.entry.js +1 -2
  478. package/dist/taro-components/p-30fe0e81.system.entry.js +1 -2
  479. package/dist/taro-components/p-33223303.system.entry.js +1 -2
  480. package/dist/taro-components/{p-955fbcfa.entry.js → p-369fb262.entry.js} +1 -2
  481. package/dist/taro-components/{p-a7789ed6.entry.js → p-38a51bd2.entry.js} +1 -2
  482. package/dist/taro-components/{p-7c6f0d5c.entry.js → p-38de410e.entry.js} +1 -2
  483. package/dist/taro-components/p-3b1d2d37.system.js +1 -2
  484. package/dist/taro-components/p-3c5ac930.entry.js +1 -0
  485. package/dist/taro-components/p-3c91f59b.entry.js +1 -0
  486. package/dist/taro-components/{p-908ddbb0.entry.js → p-3d60bd58.entry.js} +1 -2
  487. package/dist/taro-components/p-3e23fa46.system.entry.js +1 -0
  488. package/dist/taro-components/p-4086e546.system.entry.js +1 -2
  489. package/dist/taro-components/p-4190e20b.system.entry.js +1 -2
  490. package/dist/taro-components/{p-24c2fd23.entry.js → p-429a0f99.entry.js} +1 -2
  491. package/dist/taro-components/p-42bcb98a.entry.js +1 -0
  492. package/dist/taro-components/p-4402972b.system.entry.js +1 -0
  493. package/dist/taro-components/p-4514dc53.system.entry.js +1 -0
  494. package/dist/taro-components/p-4542b767.entry.js +1 -0
  495. package/dist/taro-components/p-46244579.system.entry.js +1 -2
  496. package/dist/taro-components/p-4915fdc1.system.entry.js +1 -2
  497. package/dist/taro-components/{p-de356b29.system.entry.js → p-491c6272.system.entry.js} +1 -2
  498. package/dist/taro-components/p-4b579316.entry.js +1 -0
  499. package/dist/taro-components/p-4d0da795.system.entry.js +1 -2
  500. package/dist/taro-components/p-4d390d17.entry.js +1 -0
  501. package/dist/taro-components/p-4d7182f4.system.entry.js +1 -0
  502. package/dist/taro-components/p-4e77bdea.entry.js +1 -0
  503. package/dist/taro-components/p-50ea2036.system.js +1 -2
  504. package/dist/taro-components/p-518146fd.system.entry.js +1 -2
  505. package/dist/taro-components/p-51b6fc09.system.entry.js +1 -2
  506. package/dist/taro-components/p-56da1da3.system.entry.js +1 -2
  507. package/dist/taro-components/p-58877ef2.system.entry.js +1 -2
  508. package/dist/taro-components/{p-c2ac8f08.entry.js → p-58b7e960.entry.js} +1 -2
  509. package/dist/taro-components/p-5931c82e.entry.js +1 -0
  510. package/dist/taro-components/p-59590806.system.entry.js +1 -2
  511. package/dist/taro-components/p-61f225ef.system.js +1 -2
  512. package/dist/taro-components/p-623b3eb6.system.entry.js +1 -2
  513. package/dist/taro-components/p-651586f8.system.entry.js +1 -2
  514. package/dist/taro-components/p-69f6784d.system.entry.js +1 -2
  515. package/dist/taro-components/p-69fa7272.system.entry.js +1 -2
  516. package/dist/taro-components/p-6a96da58.js +1 -2
  517. package/dist/taro-components/p-6dae898a.system.entry.js +1 -2
  518. package/dist/taro-components/{p-b39b973e.entry.js → p-6de6eb4e.entry.js} +1 -2
  519. package/dist/taro-components/p-6f048097.system.entry.js +1 -2
  520. package/dist/taro-components/p-6f214fc3.system.entry.js +1 -2
  521. package/dist/taro-components/p-72f327e1.js +1 -2
  522. package/dist/taro-components/p-736053bb.system.entry.js +1 -2
  523. package/dist/taro-components/{p-b4419d86.entry.js → p-7377a117.entry.js} +1 -2
  524. package/dist/taro-components/p-744a6b99.entry.js +1 -0
  525. package/dist/taro-components/p-74bf8246.system.entry.js +1 -2
  526. package/dist/taro-components/p-76724e58.js +2 -3
  527. package/dist/taro-components/p-7722f33f.entry.js +1 -0
  528. package/dist/taro-components/p-78c30850.system.entry.js +1 -2
  529. package/dist/taro-components/p-78e3ebb9.js +2 -3
  530. package/dist/taro-components/p-7c1fc8f5.system.entry.js +1 -0
  531. package/dist/taro-components/p-7db63e92.entry.js +1 -0
  532. package/dist/taro-components/p-7dd9c8da.system.entry.js +1 -2
  533. package/dist/taro-components/p-7df9de66.system.entry.js +1 -0
  534. package/dist/taro-components/p-8027e1c6.system.entry.js +1 -2
  535. package/dist/taro-components/p-80970d8f.entry.js +1 -0
  536. package/dist/taro-components/p-80f3d88d.entry.js +1 -0
  537. package/dist/taro-components/p-88d64daa.system.entry.js +1 -2
  538. package/dist/taro-components/p-895cd7c9.system.entry.js +1 -2
  539. package/dist/taro-components/{p-66b07ac0.entry.js → p-8b8a8e39.entry.js} +1 -2
  540. package/dist/taro-components/{p-281278cf.entry.js → p-8d037fc0.entry.js} +1 -2
  541. package/dist/taro-components/p-8d2101be.system.entry.js +1 -2
  542. package/dist/taro-components/p-8e5cc8fe.system.entry.js +1 -2
  543. package/dist/taro-components/p-8feeb7ce.entry.js +1 -0
  544. package/dist/taro-components/p-90e4274e.entry.js +1 -0
  545. package/dist/taro-components/{p-03d4de13.entry.js → p-9318da32.entry.js} +1 -2
  546. package/dist/taro-components/p-95f70aea.system.entry.js +1 -2
  547. package/dist/taro-components/p-97782cdd.system.entry.js +1 -2
  548. package/dist/taro-components/p-9d4fa0d3.system.entry.js +1 -2
  549. package/dist/taro-components/p-9df17ea6.entry.js +1 -0
  550. package/dist/taro-components/{p-c0bb8610.entry.js → p-a294e169.entry.js} +1 -2
  551. package/dist/taro-components/{p-e0e4a403.entry.js → p-a6d2e81b.entry.js} +1 -2
  552. package/dist/taro-components/{p-d61d3394.entry.js → p-a9b51167.entry.js} +1 -2
  553. package/dist/taro-components/p-ab84c88e.entry.js +1 -0
  554. package/dist/taro-components/p-acd9a9da.entry.js +1 -0
  555. package/dist/taro-components/p-ae3f1ed4.system.entry.js +1 -2
  556. package/dist/taro-components/{p-4bc85eb7.entry.js → p-ae8fd8c8.entry.js} +1 -2
  557. package/dist/taro-components/p-b1249ebb.system.entry.js +1 -2
  558. package/dist/taro-components/p-b16eddaa.entry.js +1 -0
  559. package/dist/taro-components/p-b1c972e2.system.entry.js +1 -2
  560. package/dist/taro-components/p-b2bb02d7.system.entry.js +1 -2
  561. package/dist/taro-components/p-bac3deb0.system.entry.js +1 -2
  562. package/dist/taro-components/{p-eb2a7609.entry.js → p-badfb3be.entry.js} +1 -2
  563. package/dist/taro-components/p-bba8c3a7.system.entry.js +1 -2
  564. package/dist/taro-components/p-bd5177d3.system.js +1 -2
  565. package/dist/taro-components/{p-c50087fd.entry.js → p-beba1657.entry.js} +1 -2
  566. package/dist/taro-components/p-c212b845.entry.js +1 -0
  567. package/dist/taro-components/p-c2391de5.entry.js +1 -0
  568. package/dist/taro-components/p-c2c498d9.entry.js +1 -0
  569. package/dist/taro-components/p-c33733b3.system.entry.js +1 -2
  570. package/dist/taro-components/{p-603ceecd.entry.js → p-c3d35ae5.entry.js} +1 -2
  571. package/dist/taro-components/p-c3d3eca2.entry.js +1 -0
  572. package/dist/taro-components/{p-c3e98fdf.entry.js → p-c4dd85b6.entry.js} +1 -2
  573. package/dist/taro-components/p-c4fdb669.system.entry.js +1 -2
  574. package/dist/taro-components/p-c586a796.system.entry.js +1 -2
  575. package/dist/taro-components/p-c6385fc2.system.entry.js +1 -2
  576. package/dist/taro-components/p-c6e6dab1.system.entry.js +1 -2
  577. package/dist/taro-components/p-c70dd956.system.entry.js +1 -2
  578. package/dist/taro-components/p-d3c7f87d.js +1 -2
  579. package/dist/taro-components/{p-fda82bc1.entry.js → p-d42e41ff.entry.js} +1 -2
  580. package/dist/taro-components/p-d5234e7e.js +92 -93
  581. package/dist/taro-components/{p-adc37a00.entry.js → p-d797cdc4.entry.js} +1 -2
  582. package/dist/taro-components/{p-0895120a.system.entry.js → p-da1f3d54.system.entry.js} +1 -2
  583. package/dist/taro-components/p-da5cdbf5.system.entry.js +1 -2
  584. package/dist/taro-components/{p-3f07f3d3.entry.js → p-dccf1ae9.entry.js} +1 -2
  585. package/dist/taro-components/p-de2d8e2e.system.entry.js +1 -2
  586. package/dist/taro-components/p-dfc405a5.entry.js +1 -0
  587. package/dist/taro-components/{p-09db02e6.entry.js → p-e2f2fbe5.entry.js} +1 -2
  588. package/dist/taro-components/p-e3f8265d.system.entry.js +1 -2
  589. package/dist/taro-components/p-e53feb03.system.entry.js +1 -2
  590. package/dist/taro-components/p-e753b776.entry.js +1 -0
  591. package/dist/taro-components/{p-a23a21e1.entry.js → p-e8b1ea64.entry.js} +1 -2
  592. package/dist/taro-components/{p-3bce88d9.entry.js → p-e9eeb060.entry.js} +1 -2
  593. package/dist/taro-components/p-ef7e7d73.system.entry.js +1 -2
  594. package/dist/taro-components/p-efa51030.system.entry.js +1 -2
  595. package/dist/taro-components/{p-7c1fec76.entry.js → p-efcfdb97.entry.js} +1 -2
  596. package/dist/taro-components/p-f44e975b.entry.js +1 -0
  597. package/dist/taro-components/p-f499c0a0.system.entry.js +1 -2
  598. package/dist/taro-components/{p-8425ff09.entry.js → p-f671ed7d.entry.js} +1 -2
  599. package/dist/taro-components/p-f9ac515e.system.entry.js +1 -2
  600. package/dist/taro-components/p-fa36fe8e.system.entry.js +1 -2
  601. package/dist/taro-components/{p-982e431d.entry.js → p-fb585037.entry.js} +1 -2
  602. package/dist/taro-components/p-fcdac6ec.system.entry.js +1 -2
  603. package/dist/taro-components/{p-6bb1fdf2.entry.js → p-fdecdc25.entry.js} +1 -2
  604. package/dist/taro-components/taro-components.esm.js +1 -2
  605. package/dist/types/components/channel-live/channel-live.d.ts +5 -0
  606. package/dist/types/components/channel-video/channel-video.d.ts +5 -0
  607. package/dist/types/components/grid-view/grid-view.d.ts +5 -0
  608. package/dist/types/components/list-view/list-view.d.ts +5 -0
  609. package/dist/types/components/picker/picker-group.d.ts +3 -3
  610. package/dist/types/components/sticky-header/sticky-header.d.ts +5 -0
  611. package/dist/types/components/sticky-section/sticky-section.d.ts +5 -0
  612. package/dist/types/components/textarea/textarea.d.ts +1 -0
  613. package/dist/types/components.d.ts +78 -0
  614. package/lib/react/components.d.ts +81 -75
  615. package/lib/react/components.js +161 -75
  616. package/lib/react/components.js.map +1 -1
  617. package/lib/react/helper.js +4 -1
  618. package/lib/react/helper.js.map +1 -1
  619. package/lib/react/index.js +1 -1
  620. package/lib/react/{interfaces-4f837811.d.ts → interfaces-f526f1a2.d.ts} +4 -0
  621. package/lib/react/react-component-lib/createComponent.d.ts +5 -1
  622. package/lib/react/react-component-lib/createComponent.js +6 -4
  623. package/lib/react/react-component-lib/createComponent.js.map +1 -1
  624. package/lib/react/react-component-lib/createOverlayComponent.d.ts +5 -1
  625. package/lib/react/react-component-lib/createOverlayComponent.js +1 -0
  626. package/lib/react/react-component-lib/createOverlayComponent.js.map +1 -1
  627. package/lib/react/react-component-lib/utils/attachProps.d.ts +2 -6
  628. package/lib/react/react-component-lib/utils/attachProps.js +41 -41
  629. package/lib/react/react-component-lib/utils/attachProps.js.map +1 -1
  630. package/lib/react/react-component-lib/utils/case.d.ts +4 -0
  631. package/lib/react/react-component-lib/utils/case.js +4 -0
  632. package/lib/react/react-component-lib/utils/case.js.map +1 -1
  633. package/lib/react/react-component-lib/utils/index.d.ts +5 -1
  634. package/lib/react/react-component-lib/utils/index.js +6 -4
  635. package/lib/react/react-component-lib/utils/index.js.map +1 -1
  636. package/lib/vue2/components-loader.d.ts +2 -0
  637. package/lib/vue2/components-loader.js +21 -0
  638. package/lib/vue2/components-loader.js.map +1 -0
  639. package/lib/vue2/components.d.ts +590 -356
  640. package/lib/vue2/components.js +394 -390
  641. package/lib/vue2/components.js.map +1 -1
  642. package/lib/vue2/index.d.ts +0 -2
  643. package/lib/vue2/index.js +1 -22
  644. package/lib/vue2/index.js.map +1 -1
  645. package/lib/vue2/vue-component-lib/utils.d.ts +7 -3
  646. package/lib/vue2/vue-component-lib/utils.js +42 -25
  647. package/lib/vue2/vue-component-lib/utils.js.map +1 -1
  648. package/lib/vue3/components-loader.d.ts +2 -0
  649. package/lib/vue3/components-loader.js +13 -0
  650. package/lib/vue3/components-loader.js.map +1 -0
  651. package/lib/vue3/components.d.ts +7 -1
  652. package/lib/vue3/components.js +162 -76
  653. package/lib/vue3/components.js.map +1 -1
  654. package/lib/vue3/index.d.ts +0 -2
  655. package/lib/vue3/index.js +1 -14
  656. package/lib/vue3/index.js.map +1 -1
  657. package/lib/vue3/vue-component-lib/utils.d.ts +13 -13
  658. package/lib/vue3/vue-component-lib/utils.js +35 -28
  659. package/lib/vue3/vue-component-lib/utils.js.map +1 -1
  660. package/package.json +11 -8
  661. package/types/Button.d.ts +12 -0
  662. package/types/ChannelVideo.d.ts +50 -0
  663. package/types/GridView.d.ts +42 -0
  664. package/types/ListView.d.ts +12 -0
  665. package/types/Map.d.ts +72 -8
  666. package/types/ScrollView.d.ts +52 -0
  667. package/types/StickyHeader.d.ts +12 -0
  668. package/types/StickySection.d.ts +18 -0
  669. package/types/Textarea.d.ts +2 -2
  670. package/types/index.d.ts +7 -0
  671. package/types/index.vue3.d.ts +32 -16
  672. package/dist/cjs/helper-db78e01a.js.map +0 -1
  673. package/dist/cjs/hls-67cbc62d.js.map +0 -1
  674. package/dist/cjs/index-dfd8638f.js.map +0 -1
  675. package/dist/cjs/index-e1b469cd.js.map +0 -1
  676. package/dist/cjs/index-f9d21cc5.js.map +0 -1
  677. package/dist/cjs/index.cjs.js.map +0 -1
  678. package/dist/cjs/intersection-observer-dc4cfcef.js.map +0 -1
  679. package/dist/cjs/loader.cjs.js.map +0 -1
  680. package/dist/cjs/taro-ad-core.cjs.entry.js.map +0 -1
  681. package/dist/cjs/taro-ad-custom-core.cjs.entry.js.map +0 -1
  682. package/dist/cjs/taro-animation-video-core.cjs.entry.js.map +0 -1
  683. package/dist/cjs/taro-animation-view-core.cjs.entry.js.map +0 -1
  684. package/dist/cjs/taro-ar-camera-core.cjs.entry.js.map +0 -1
  685. package/dist/cjs/taro-audio-core.cjs.entry.js.map +0 -1
  686. package/dist/cjs/taro-aweme-data-core.cjs.entry.js.map +0 -1
  687. package/dist/cjs/taro-block-core.cjs.entry.js.map +0 -1
  688. package/dist/cjs/taro-button-core.cjs.entry.js.map +0 -1
  689. package/dist/cjs/taro-camera-core.cjs.entry.js.map +0 -1
  690. package/dist/cjs/taro-canvas-core.cjs.entry.js.map +0 -1
  691. package/dist/cjs/taro-checkbox-core_2.cjs.entry.js.map +0 -1
  692. package/dist/cjs/taro-comment-detail-core.cjs.entry.js.map +0 -1
  693. package/dist/cjs/taro-comment-list-core.cjs.entry.js.map +0 -1
  694. package/dist/cjs/taro-components.cjs.js.map +0 -1
  695. package/dist/cjs/taro-contact-button-core.cjs.entry.js.map +0 -1
  696. package/dist/cjs/taro-cover-image-core.cjs.entry.js.map +0 -1
  697. package/dist/cjs/taro-cover-view-core.cjs.entry.js.map +0 -1
  698. package/dist/cjs/taro-custom-wrapper-core.cjs.entry.js.map +0 -1
  699. package/dist/cjs/taro-editor-core.cjs.entry.js.map +0 -1
  700. package/dist/cjs/taro-follow-swan-core.cjs.entry.js.map +0 -1
  701. package/dist/cjs/taro-form-core.cjs.entry.js.map +0 -1
  702. package/dist/cjs/taro-functional-page-navigator-core.cjs.entry.js.map +0 -1
  703. package/dist/cjs/taro-icon-core.cjs.entry.js.map +0 -1
  704. package/dist/cjs/taro-image-core.cjs.entry.js.map +0 -1
  705. package/dist/cjs/taro-inline-payment-panel-core.cjs.entry.js.map +0 -1
  706. package/dist/cjs/taro-input-core.cjs.entry.js.map +0 -1
  707. package/dist/cjs/taro-keyboard-accessory-core.cjs.entry.js.map +0 -1
  708. package/dist/cjs/taro-label-core.cjs.entry.js.map +0 -1
  709. package/dist/cjs/taro-lifestyle-core.cjs.entry.js.map +0 -1
  710. package/dist/cjs/taro-like-core.cjs.entry.js.map +0 -1
  711. package/dist/cjs/taro-live-player-core.cjs.entry.js.map +0 -1
  712. package/dist/cjs/taro-live-pusher-core.cjs.entry.js.map +0 -1
  713. package/dist/cjs/taro-login-core.cjs.entry.js.map +0 -1
  714. package/dist/cjs/taro-lottie-core.cjs.entry.js.map +0 -1
  715. package/dist/cjs/taro-map-core.cjs.entry.js.map +0 -1
  716. package/dist/cjs/taro-match-media-core.cjs.entry.js.map +0 -1
  717. package/dist/cjs/taro-movable-area-core_2.cjs.entry.js.map +0 -1
  718. package/dist/cjs/taro-native-slot-core.cjs.entry.js.map +0 -1
  719. package/dist/cjs/taro-navigation-bar-core.cjs.entry.js.map +0 -1
  720. package/dist/cjs/taro-navigator-core.cjs.entry.js.map +0 -1
  721. package/dist/cjs/taro-official-account-core.cjs.entry.js.map +0 -1
  722. package/dist/cjs/taro-open-data-core.cjs.entry.js.map +0 -1
  723. package/dist/cjs/taro-page-container-core.cjs.entry.js.map +0 -1
  724. package/dist/cjs/taro-page-meta-core.cjs.entry.js.map +0 -1
  725. package/dist/cjs/taro-picker-core_2.cjs.entry.js.map +0 -1
  726. package/dist/cjs/taro-picker-view-column-core_2.cjs.entry.js.map +0 -1
  727. package/dist/cjs/taro-progress-core.cjs.entry.js.map +0 -1
  728. package/dist/cjs/taro-pull-to-refresh.cjs.entry.js.map +0 -1
  729. package/dist/cjs/taro-radio-core_2.cjs.entry.js.map +0 -1
  730. package/dist/cjs/taro-rich-text-core.cjs.entry.js.map +0 -1
  731. package/dist/cjs/taro-root-portal-core.cjs.entry.js.map +0 -1
  732. package/dist/cjs/taro-rtc-room-core.cjs.entry.js.map +0 -1
  733. package/dist/cjs/taro-rtc-room-item-core.cjs.entry.js.map +0 -1
  734. package/dist/cjs/taro-scroll-view-core.cjs.entry.js.map +0 -1
  735. package/dist/cjs/taro-share-element-core.cjs.entry.js.map +0 -1
  736. package/dist/cjs/taro-slider-core.cjs.entry.js.map +0 -1
  737. package/dist/cjs/taro-slot-core.cjs.entry.js.map +0 -1
  738. package/dist/cjs/taro-swiper-core_2.cjs.entry.js.map +0 -1
  739. package/dist/cjs/taro-switch-core.cjs.entry.js.map +0 -1
  740. package/dist/cjs/taro-tab-item-core.cjs.entry.js.map +0 -1
  741. package/dist/cjs/taro-tabbar.cjs.entry.js.map +0 -1
  742. package/dist/cjs/taro-tabs-core.cjs.entry.js.map +0 -1
  743. package/dist/cjs/taro-text-core.cjs.entry.js.map +0 -1
  744. package/dist/cjs/taro-textarea-core.cjs.entry.js.map +0 -1
  745. package/dist/cjs/taro-video-control_3.cjs.entry.js.map +0 -1
  746. package/dist/cjs/taro-view-core.cjs.entry.js.map +0 -1
  747. package/dist/cjs/taro-voip-room-core.cjs.entry.js.map +0 -1
  748. package/dist/cjs/taro-web-view-core.cjs.entry.js.map +0 -1
  749. package/dist/collection/components/ad/ad.js.map +0 -1
  750. package/dist/collection/components/ad-custom/ad-custom.js.map +0 -1
  751. package/dist/collection/components/animation-video/animation-video.js.map +0 -1
  752. package/dist/collection/components/animation-view/animation-view.js.map +0 -1
  753. package/dist/collection/components/ar-camera/ar-camera.js.map +0 -1
  754. package/dist/collection/components/audio/audio.js.map +0 -1
  755. package/dist/collection/components/aweme-data/aweme-data.js.map +0 -1
  756. package/dist/collection/components/block/block.js.map +0 -1
  757. package/dist/collection/components/button/button.js.map +0 -1
  758. package/dist/collection/components/camera/camera.js.map +0 -1
  759. package/dist/collection/components/canvas/canvas.js.map +0 -1
  760. package/dist/collection/components/checkbox/checkbox-group.js.map +0 -1
  761. package/dist/collection/components/checkbox/checkbox.js.map +0 -1
  762. package/dist/collection/components/comment/comment-detail.js.map +0 -1
  763. package/dist/collection/components/comment/comment-list.js.map +0 -1
  764. package/dist/collection/components/contact-button/contact-button.js.map +0 -1
  765. package/dist/collection/components/cover-image/cover-image.js.map +0 -1
  766. package/dist/collection/components/cover-view/cover-view.js.map +0 -1
  767. package/dist/collection/components/custom-wrapper/custom-wrapper.js.map +0 -1
  768. package/dist/collection/components/editor/editor.js.map +0 -1
  769. package/dist/collection/components/follow-swan/follow-swan.js.map +0 -1
  770. package/dist/collection/components/form/form.js.map +0 -1
  771. package/dist/collection/components/functional-page-navigator/functional-page-navigator.js.map +0 -1
  772. package/dist/collection/components/icon/icon.js.map +0 -1
  773. package/dist/collection/components/image/image.js.map +0 -1
  774. package/dist/collection/components/inline-payment-panel/inline-payment-panel.js.map +0 -1
  775. package/dist/collection/components/input/input.js.map +0 -1
  776. package/dist/collection/components/keyboard-accessory/keyboard-accessory.js.map +0 -1
  777. package/dist/collection/components/label/label.js.map +0 -1
  778. package/dist/collection/components/lifestyle/lifestyle.js.map +0 -1
  779. package/dist/collection/components/like/like.js.map +0 -1
  780. package/dist/collection/components/live-player/live-player.js.map +0 -1
  781. package/dist/collection/components/live-pusher/live-pusher.js.map +0 -1
  782. package/dist/collection/components/login/login.js.map +0 -1
  783. package/dist/collection/components/lottie/lottie.js.map +0 -1
  784. package/dist/collection/components/map/map.js.map +0 -1
  785. package/dist/collection/components/match-media/match-media.js.map +0 -1
  786. package/dist/collection/components/movable-area/movable-area.js.map +0 -1
  787. package/dist/collection/components/movable-area/movable-view.js.map +0 -1
  788. package/dist/collection/components/navigation-bar/navigation-bar.js.map +0 -1
  789. package/dist/collection/components/navigator/navigator.js.map +0 -1
  790. package/dist/collection/components/official-account/official-account.js.map +0 -1
  791. package/dist/collection/components/open-data/open-data.js.map +0 -1
  792. package/dist/collection/components/page-container/page-container.js.map +0 -1
  793. package/dist/collection/components/page-meta/page-meta.js.map +0 -1
  794. package/dist/collection/components/picker/constant.js.map +0 -1
  795. package/dist/collection/components/picker/picker-group.js.map +0 -1
  796. package/dist/collection/components/picker/picker.js.map +0 -1
  797. package/dist/collection/components/picker/utils.js.map +0 -1
  798. package/dist/collection/components/picker-view/picker-view-column.js.map +0 -1
  799. package/dist/collection/components/picker-view/picker-view.js.map +0 -1
  800. package/dist/collection/components/progress/progress.js.map +0 -1
  801. package/dist/collection/components/pull-to-refresh/pull-to-refresh.js.map +0 -1
  802. package/dist/collection/components/radio/radio-group.js.map +0 -1
  803. package/dist/collection/components/radio/radio.js.map +0 -1
  804. package/dist/collection/components/rich-text/rich-text.js.map +0 -1
  805. package/dist/collection/components/root-portal/root-portal.js.map +0 -1
  806. package/dist/collection/components/rtc-room/rtc-room-item.js.map +0 -1
  807. package/dist/collection/components/rtc-room/rtc-room.js.map +0 -1
  808. package/dist/collection/components/scroll-view/scroll-view.js.map +0 -1
  809. package/dist/collection/components/share-element/share-element.js.map +0 -1
  810. package/dist/collection/components/slider/slider.js.map +0 -1
  811. package/dist/collection/components/slot/native-slot.js.map +0 -1
  812. package/dist/collection/components/slot/slot.js.map +0 -1
  813. package/dist/collection/components/swiper/swiper-item.js.map +0 -1
  814. package/dist/collection/components/swiper/swiper.js.map +0 -1
  815. package/dist/collection/components/switch/switch.js.map +0 -1
  816. package/dist/collection/components/tabbar/tabbar-item.js.map +0 -1
  817. package/dist/collection/components/tabbar/tabbar.js.map +0 -1
  818. package/dist/collection/components/tabs/tab-item.js.map +0 -1
  819. package/dist/collection/components/tabs/tabs.js.map +0 -1
  820. package/dist/collection/components/text/text.js.map +0 -1
  821. package/dist/collection/components/textarea/textarea.js.map +0 -1
  822. package/dist/collection/components/video/utils.js.map +0 -1
  823. package/dist/collection/components/video/video-control.js.map +0 -1
  824. package/dist/collection/components/video/video-danmu.js.map +0 -1
  825. package/dist/collection/components/video/video.js.map +0 -1
  826. package/dist/collection/components/view/view.js.map +0 -1
  827. package/dist/collection/components/voip-room/voip-room.js.map +0 -1
  828. package/dist/collection/components/web-view/web-view.js.map +0 -1
  829. package/dist/collection/index.js.map +0 -1
  830. package/dist/collection/utils/helper.js.map +0 -1
  831. package/dist/collection/utils/index.js.map +0 -1
  832. package/dist/collection/utils/style.js.map +0 -1
  833. package/dist/collection/utils/url.js.map +0 -1
  834. package/dist/components/helper.js.map +0 -1
  835. package/dist/components/hls.js.map +0 -1
  836. package/dist/components/index.js.map +0 -1
  837. package/dist/components/index2.js.map +0 -1
  838. package/dist/components/index3.js.map +0 -1
  839. package/dist/components/intersection-observer.js.map +0 -1
  840. package/dist/components/picker-group.js.map +0 -1
  841. package/dist/components/taro-ad-core.js.map +0 -1
  842. package/dist/components/taro-ad-custom-core.js.map +0 -1
  843. package/dist/components/taro-animation-video-core.js.map +0 -1
  844. package/dist/components/taro-animation-view-core.js.map +0 -1
  845. package/dist/components/taro-ar-camera-core.js.map +0 -1
  846. package/dist/components/taro-audio-core.js.map +0 -1
  847. package/dist/components/taro-aweme-data-core.js.map +0 -1
  848. package/dist/components/taro-block-core.js.map +0 -1
  849. package/dist/components/taro-button-core.js.map +0 -1
  850. package/dist/components/taro-camera-core.js.map +0 -1
  851. package/dist/components/taro-canvas-core.js.map +0 -1
  852. package/dist/components/taro-checkbox-core.js.map +0 -1
  853. package/dist/components/taro-checkbox-group-core.js.map +0 -1
  854. package/dist/components/taro-comment-detail-core.js.map +0 -1
  855. package/dist/components/taro-comment-list-core.js.map +0 -1
  856. package/dist/components/taro-contact-button-core.js.map +0 -1
  857. package/dist/components/taro-cover-image-core.js.map +0 -1
  858. package/dist/components/taro-cover-view-core.js.map +0 -1
  859. package/dist/components/taro-custom-wrapper-core.js.map +0 -1
  860. package/dist/components/taro-editor-core.js.map +0 -1
  861. package/dist/components/taro-follow-swan-core.js.map +0 -1
  862. package/dist/components/taro-form-core.js.map +0 -1
  863. package/dist/components/taro-functional-page-navigator-core.js.map +0 -1
  864. package/dist/components/taro-icon-core.js.map +0 -1
  865. package/dist/components/taro-image-core.js.map +0 -1
  866. package/dist/components/taro-inline-payment-panel-core.js.map +0 -1
  867. package/dist/components/taro-input-core.js.map +0 -1
  868. package/dist/components/taro-keyboard-accessory-core.js.map +0 -1
  869. package/dist/components/taro-label-core.js.map +0 -1
  870. package/dist/components/taro-lifestyle-core.js.map +0 -1
  871. package/dist/components/taro-like-core.js.map +0 -1
  872. package/dist/components/taro-live-player-core.js.map +0 -1
  873. package/dist/components/taro-live-pusher-core.js.map +0 -1
  874. package/dist/components/taro-login-core.js.map +0 -1
  875. package/dist/components/taro-lottie-core.js.map +0 -1
  876. package/dist/components/taro-map-core.js.map +0 -1
  877. package/dist/components/taro-match-media-core.js.map +0 -1
  878. package/dist/components/taro-movable-area-core.js.map +0 -1
  879. package/dist/components/taro-movable-view-core.js.map +0 -1
  880. package/dist/components/taro-native-slot-core.js.map +0 -1
  881. package/dist/components/taro-navigation-bar-core.js.map +0 -1
  882. package/dist/components/taro-navigator-core.js.map +0 -1
  883. package/dist/components/taro-official-account-core.js.map +0 -1
  884. package/dist/components/taro-open-data-core.js.map +0 -1
  885. package/dist/components/taro-page-container-core.js.map +0 -1
  886. package/dist/components/taro-page-meta-core.js.map +0 -1
  887. package/dist/components/taro-picker-core.js.map +0 -1
  888. package/dist/components/taro-picker-group.js.map +0 -1
  889. package/dist/components/taro-picker-view-column-core.js.map +0 -1
  890. package/dist/components/taro-picker-view-core.js.map +0 -1
  891. package/dist/components/taro-progress-core.js.map +0 -1
  892. package/dist/components/taro-pull-to-refresh.js.map +0 -1
  893. package/dist/components/taro-radio-core.js.map +0 -1
  894. package/dist/components/taro-radio-group-core.js.map +0 -1
  895. package/dist/components/taro-rich-text-core.js.map +0 -1
  896. package/dist/components/taro-root-portal-core.js.map +0 -1
  897. package/dist/components/taro-rtc-room-core.js.map +0 -1
  898. package/dist/components/taro-rtc-room-item-core.js.map +0 -1
  899. package/dist/components/taro-scroll-view-core.js.map +0 -1
  900. package/dist/components/taro-share-element-core.js.map +0 -1
  901. package/dist/components/taro-slider-core.js.map +0 -1
  902. package/dist/components/taro-slot-core.js.map +0 -1
  903. package/dist/components/taro-swiper-core.js.map +0 -1
  904. package/dist/components/taro-swiper-item-core.js.map +0 -1
  905. package/dist/components/taro-switch-core.js.map +0 -1
  906. package/dist/components/taro-tab-item-core.js.map +0 -1
  907. package/dist/components/taro-tabbar.js.map +0 -1
  908. package/dist/components/taro-tabs-core.js.map +0 -1
  909. package/dist/components/taro-text-core.js.map +0 -1
  910. package/dist/components/taro-textarea-core.js.map +0 -1
  911. package/dist/components/taro-video-control.js.map +0 -1
  912. package/dist/components/taro-video-core.js.map +0 -1
  913. package/dist/components/taro-video-danmu.js.map +0 -1
  914. package/dist/components/taro-view-core.js.map +0 -1
  915. package/dist/components/taro-voip-room-core.js.map +0 -1
  916. package/dist/components/taro-web-view-core.js.map +0 -1
  917. package/dist/components/video-control.js.map +0 -1
  918. package/dist/components/video-danmu.js.map +0 -1
  919. package/dist/esm/helper-3d0ecf0f.js.map +0 -1
  920. package/dist/esm/hls-221423a1.js.map +0 -1
  921. package/dist/esm/index-1d8e8acd.js.map +0 -1
  922. package/dist/esm/index-c948674f.js.map +0 -1
  923. package/dist/esm/index-d1b03e47.js.map +0 -1
  924. package/dist/esm/index.js.map +0 -1
  925. package/dist/esm/intersection-observer-8e4c7135.js.map +0 -1
  926. package/dist/esm/loader.js.map +0 -1
  927. package/dist/esm/taro-ad-core.entry.js.map +0 -1
  928. package/dist/esm/taro-ad-custom-core.entry.js.map +0 -1
  929. package/dist/esm/taro-animation-video-core.entry.js.map +0 -1
  930. package/dist/esm/taro-animation-view-core.entry.js.map +0 -1
  931. package/dist/esm/taro-ar-camera-core.entry.js.map +0 -1
  932. package/dist/esm/taro-audio-core.entry.js.map +0 -1
  933. package/dist/esm/taro-aweme-data-core.entry.js.map +0 -1
  934. package/dist/esm/taro-block-core.entry.js.map +0 -1
  935. package/dist/esm/taro-button-core.entry.js.map +0 -1
  936. package/dist/esm/taro-camera-core.entry.js.map +0 -1
  937. package/dist/esm/taro-canvas-core.entry.js.map +0 -1
  938. package/dist/esm/taro-checkbox-core_2.entry.js.map +0 -1
  939. package/dist/esm/taro-comment-detail-core.entry.js.map +0 -1
  940. package/dist/esm/taro-comment-list-core.entry.js.map +0 -1
  941. package/dist/esm/taro-components.js.map +0 -1
  942. package/dist/esm/taro-contact-button-core.entry.js.map +0 -1
  943. package/dist/esm/taro-cover-image-core.entry.js.map +0 -1
  944. package/dist/esm/taro-cover-view-core.entry.js.map +0 -1
  945. package/dist/esm/taro-custom-wrapper-core.entry.js.map +0 -1
  946. package/dist/esm/taro-editor-core.entry.js.map +0 -1
  947. package/dist/esm/taro-follow-swan-core.entry.js.map +0 -1
  948. package/dist/esm/taro-form-core.entry.js.map +0 -1
  949. package/dist/esm/taro-functional-page-navigator-core.entry.js.map +0 -1
  950. package/dist/esm/taro-icon-core.entry.js.map +0 -1
  951. package/dist/esm/taro-image-core.entry.js.map +0 -1
  952. package/dist/esm/taro-inline-payment-panel-core.entry.js.map +0 -1
  953. package/dist/esm/taro-input-core.entry.js.map +0 -1
  954. package/dist/esm/taro-keyboard-accessory-core.entry.js.map +0 -1
  955. package/dist/esm/taro-label-core.entry.js.map +0 -1
  956. package/dist/esm/taro-lifestyle-core.entry.js.map +0 -1
  957. package/dist/esm/taro-like-core.entry.js.map +0 -1
  958. package/dist/esm/taro-live-player-core.entry.js.map +0 -1
  959. package/dist/esm/taro-live-pusher-core.entry.js.map +0 -1
  960. package/dist/esm/taro-login-core.entry.js.map +0 -1
  961. package/dist/esm/taro-lottie-core.entry.js.map +0 -1
  962. package/dist/esm/taro-map-core.entry.js.map +0 -1
  963. package/dist/esm/taro-match-media-core.entry.js.map +0 -1
  964. package/dist/esm/taro-movable-area-core_2.entry.js.map +0 -1
  965. package/dist/esm/taro-native-slot-core.entry.js.map +0 -1
  966. package/dist/esm/taro-navigation-bar-core.entry.js.map +0 -1
  967. package/dist/esm/taro-navigator-core.entry.js.map +0 -1
  968. package/dist/esm/taro-official-account-core.entry.js.map +0 -1
  969. package/dist/esm/taro-open-data-core.entry.js.map +0 -1
  970. package/dist/esm/taro-page-container-core.entry.js.map +0 -1
  971. package/dist/esm/taro-page-meta-core.entry.js.map +0 -1
  972. package/dist/esm/taro-picker-core_2.entry.js.map +0 -1
  973. package/dist/esm/taro-picker-view-column-core_2.entry.js.map +0 -1
  974. package/dist/esm/taro-progress-core.entry.js.map +0 -1
  975. package/dist/esm/taro-pull-to-refresh.entry.js.map +0 -1
  976. package/dist/esm/taro-radio-core_2.entry.js.map +0 -1
  977. package/dist/esm/taro-rich-text-core.entry.js.map +0 -1
  978. package/dist/esm/taro-root-portal-core.entry.js.map +0 -1
  979. package/dist/esm/taro-rtc-room-core.entry.js.map +0 -1
  980. package/dist/esm/taro-rtc-room-item-core.entry.js.map +0 -1
  981. package/dist/esm/taro-scroll-view-core.entry.js.map +0 -1
  982. package/dist/esm/taro-share-element-core.entry.js.map +0 -1
  983. package/dist/esm/taro-slider-core.entry.js.map +0 -1
  984. package/dist/esm/taro-slot-core.entry.js.map +0 -1
  985. package/dist/esm/taro-swiper-core_2.entry.js.map +0 -1
  986. package/dist/esm/taro-switch-core.entry.js.map +0 -1
  987. package/dist/esm/taro-tab-item-core.entry.js.map +0 -1
  988. package/dist/esm/taro-tabbar.entry.js.map +0 -1
  989. package/dist/esm/taro-tabs-core.entry.js.map +0 -1
  990. package/dist/esm/taro-text-core.entry.js.map +0 -1
  991. package/dist/esm/taro-textarea-core.entry.js.map +0 -1
  992. package/dist/esm/taro-video-control_3.entry.js.map +0 -1
  993. package/dist/esm/taro-view-core.entry.js.map +0 -1
  994. package/dist/esm/taro-voip-room-core.entry.js.map +0 -1
  995. package/dist/esm/taro-web-view-core.entry.js.map +0 -1
  996. package/dist/esm-es5/helper-3d0ecf0f.js.map +0 -1
  997. package/dist/esm-es5/hls-221423a1.js.map +0 -1
  998. package/dist/esm-es5/index-1d8e8acd.js.map +0 -1
  999. package/dist/esm-es5/index-c948674f.js.map +0 -1
  1000. package/dist/esm-es5/index-d1b03e47.js.map +0 -1
  1001. package/dist/esm-es5/index.js.map +0 -1
  1002. package/dist/esm-es5/intersection-observer-8e4c7135.js.map +0 -1
  1003. package/dist/esm-es5/loader.js.map +0 -1
  1004. package/dist/esm-es5/taro-ad-core.entry.js.map +0 -1
  1005. package/dist/esm-es5/taro-ad-custom-core.entry.js.map +0 -1
  1006. package/dist/esm-es5/taro-animation-video-core.entry.js.map +0 -1
  1007. package/dist/esm-es5/taro-animation-view-core.entry.js.map +0 -1
  1008. package/dist/esm-es5/taro-ar-camera-core.entry.js.map +0 -1
  1009. package/dist/esm-es5/taro-audio-core.entry.js.map +0 -1
  1010. package/dist/esm-es5/taro-aweme-data-core.entry.js.map +0 -1
  1011. package/dist/esm-es5/taro-block-core.entry.js.map +0 -1
  1012. package/dist/esm-es5/taro-button-core.entry.js.map +0 -1
  1013. package/dist/esm-es5/taro-camera-core.entry.js.map +0 -1
  1014. package/dist/esm-es5/taro-canvas-core.entry.js.map +0 -1
  1015. package/dist/esm-es5/taro-checkbox-core_2.entry.js.map +0 -1
  1016. package/dist/esm-es5/taro-comment-detail-core.entry.js.map +0 -1
  1017. package/dist/esm-es5/taro-comment-list-core.entry.js.map +0 -1
  1018. package/dist/esm-es5/taro-components.js.map +0 -1
  1019. package/dist/esm-es5/taro-contact-button-core.entry.js.map +0 -1
  1020. package/dist/esm-es5/taro-cover-image-core.entry.js.map +0 -1
  1021. package/dist/esm-es5/taro-cover-view-core.entry.js.map +0 -1
  1022. package/dist/esm-es5/taro-custom-wrapper-core.entry.js.map +0 -1
  1023. package/dist/esm-es5/taro-editor-core.entry.js.map +0 -1
  1024. package/dist/esm-es5/taro-follow-swan-core.entry.js.map +0 -1
  1025. package/dist/esm-es5/taro-form-core.entry.js.map +0 -1
  1026. package/dist/esm-es5/taro-functional-page-navigator-core.entry.js.map +0 -1
  1027. package/dist/esm-es5/taro-icon-core.entry.js.map +0 -1
  1028. package/dist/esm-es5/taro-image-core.entry.js.map +0 -1
  1029. package/dist/esm-es5/taro-inline-payment-panel-core.entry.js.map +0 -1
  1030. package/dist/esm-es5/taro-input-core.entry.js.map +0 -1
  1031. package/dist/esm-es5/taro-keyboard-accessory-core.entry.js.map +0 -1
  1032. package/dist/esm-es5/taro-label-core.entry.js.map +0 -1
  1033. package/dist/esm-es5/taro-lifestyle-core.entry.js.map +0 -1
  1034. package/dist/esm-es5/taro-like-core.entry.js.map +0 -1
  1035. package/dist/esm-es5/taro-live-player-core.entry.js.map +0 -1
  1036. package/dist/esm-es5/taro-live-pusher-core.entry.js.map +0 -1
  1037. package/dist/esm-es5/taro-login-core.entry.js.map +0 -1
  1038. package/dist/esm-es5/taro-lottie-core.entry.js.map +0 -1
  1039. package/dist/esm-es5/taro-map-core.entry.js.map +0 -1
  1040. package/dist/esm-es5/taro-match-media-core.entry.js.map +0 -1
  1041. package/dist/esm-es5/taro-movable-area-core_2.entry.js.map +0 -1
  1042. package/dist/esm-es5/taro-native-slot-core.entry.js.map +0 -1
  1043. package/dist/esm-es5/taro-navigation-bar-core.entry.js.map +0 -1
  1044. package/dist/esm-es5/taro-navigator-core.entry.js.map +0 -1
  1045. package/dist/esm-es5/taro-official-account-core.entry.js.map +0 -1
  1046. package/dist/esm-es5/taro-open-data-core.entry.js.map +0 -1
  1047. package/dist/esm-es5/taro-page-container-core.entry.js.map +0 -1
  1048. package/dist/esm-es5/taro-page-meta-core.entry.js.map +0 -1
  1049. package/dist/esm-es5/taro-picker-core_2.entry.js.map +0 -1
  1050. package/dist/esm-es5/taro-picker-view-column-core_2.entry.js.map +0 -1
  1051. package/dist/esm-es5/taro-progress-core.entry.js.map +0 -1
  1052. package/dist/esm-es5/taro-pull-to-refresh.entry.js.map +0 -1
  1053. package/dist/esm-es5/taro-radio-core_2.entry.js.map +0 -1
  1054. package/dist/esm-es5/taro-rich-text-core.entry.js.map +0 -1
  1055. package/dist/esm-es5/taro-root-portal-core.entry.js.map +0 -1
  1056. package/dist/esm-es5/taro-rtc-room-core.entry.js.map +0 -1
  1057. package/dist/esm-es5/taro-rtc-room-item-core.entry.js.map +0 -1
  1058. package/dist/esm-es5/taro-scroll-view-core.entry.js.map +0 -1
  1059. package/dist/esm-es5/taro-share-element-core.entry.js.map +0 -1
  1060. package/dist/esm-es5/taro-slider-core.entry.js.map +0 -1
  1061. package/dist/esm-es5/taro-slot-core.entry.js.map +0 -1
  1062. package/dist/esm-es5/taro-swiper-core_2.entry.js.map +0 -1
  1063. package/dist/esm-es5/taro-switch-core.entry.js.map +0 -1
  1064. package/dist/esm-es5/taro-tab-item-core.entry.js.map +0 -1
  1065. package/dist/esm-es5/taro-tabbar.entry.js.map +0 -1
  1066. package/dist/esm-es5/taro-tabs-core.entry.js.map +0 -1
  1067. package/dist/esm-es5/taro-text-core.entry.js.map +0 -1
  1068. package/dist/esm-es5/taro-textarea-core.entry.js.map +0 -1
  1069. package/dist/esm-es5/taro-video-control_3.entry.js.map +0 -1
  1070. package/dist/esm-es5/taro-view-core.entry.js.map +0 -1
  1071. package/dist/esm-es5/taro-voip-room-core.entry.js.map +0 -1
  1072. package/dist/esm-es5/taro-web-view-core.entry.js.map +0 -1
  1073. package/dist/taro-components/index.esm.js.map +0 -1
  1074. package/dist/taro-components/p-020bcd8c.entry.js +0 -2
  1075. package/dist/taro-components/p-020bcd8c.entry.js.map +0 -1
  1076. package/dist/taro-components/p-03d4de13.entry.js.map +0 -1
  1077. package/dist/taro-components/p-05f3f84a.entry.js +0 -2
  1078. package/dist/taro-components/p-05f3f84a.entry.js.map +0 -1
  1079. package/dist/taro-components/p-087bf23a.system.entry.js.map +0 -1
  1080. package/dist/taro-components/p-0895120a.system.entry.js.map +0 -1
  1081. package/dist/taro-components/p-08bb8dfc.system.entry.js.map +0 -1
  1082. package/dist/taro-components/p-09db02e6.entry.js.map +0 -1
  1083. package/dist/taro-components/p-0a165ad3.system.entry.js.map +0 -1
  1084. package/dist/taro-components/p-0a9b984e.system.entry.js.map +0 -1
  1085. package/dist/taro-components/p-0accc602.entry.js.map +0 -1
  1086. package/dist/taro-components/p-0faf45d5.entry.js.map +0 -1
  1087. package/dist/taro-components/p-10046f1a.system.entry.js.map +0 -1
  1088. package/dist/taro-components/p-10be7fb5.system.entry.js.map +0 -1
  1089. package/dist/taro-components/p-15e45ed6.system.js.map +0 -1
  1090. package/dist/taro-components/p-17302fe9.system.entry.js.map +0 -1
  1091. package/dist/taro-components/p-1743a04b.system.js.map +0 -1
  1092. package/dist/taro-components/p-1941d333.system.entry.js.map +0 -1
  1093. package/dist/taro-components/p-19e87e18.entry.js.map +0 -1
  1094. package/dist/taro-components/p-1a0e1932.system.js.map +0 -1
  1095. package/dist/taro-components/p-1c320250.system.entry.js.map +0 -1
  1096. package/dist/taro-components/p-1c446c65.system.js.map +0 -1
  1097. package/dist/taro-components/p-2024e133.system.entry.js.map +0 -1
  1098. package/dist/taro-components/p-2049bdc4.entry.js +0 -2
  1099. package/dist/taro-components/p-2049bdc4.entry.js.map +0 -1
  1100. package/dist/taro-components/p-2357313b.entry.js +0 -2
  1101. package/dist/taro-components/p-2357313b.entry.js.map +0 -1
  1102. package/dist/taro-components/p-24c2fd23.entry.js.map +0 -1
  1103. package/dist/taro-components/p-26889f3c.system.entry.js.map +0 -1
  1104. package/dist/taro-components/p-281278cf.entry.js.map +0 -1
  1105. package/dist/taro-components/p-30f32fa2.system.entry.js.map +0 -1
  1106. package/dist/taro-components/p-30fe0e81.system.entry.js.map +0 -1
  1107. package/dist/taro-components/p-33223303.system.entry.js.map +0 -1
  1108. package/dist/taro-components/p-386ae2b2.entry.js.map +0 -1
  1109. package/dist/taro-components/p-3b1d2d37.system.js.map +0 -1
  1110. package/dist/taro-components/p-3bce88d9.entry.js.map +0 -1
  1111. package/dist/taro-components/p-3f07f3d3.entry.js.map +0 -1
  1112. package/dist/taro-components/p-4086e546.system.entry.js.map +0 -1
  1113. package/dist/taro-components/p-4190e20b.system.entry.js.map +0 -1
  1114. package/dist/taro-components/p-4263c9d9.entry.js.map +0 -1
  1115. package/dist/taro-components/p-46244579.system.entry.js.map +0 -1
  1116. package/dist/taro-components/p-4915fdc1.system.entry.js.map +0 -1
  1117. package/dist/taro-components/p-4a462c95.entry.js.map +0 -1
  1118. package/dist/taro-components/p-4bc85eb7.entry.js.map +0 -1
  1119. package/dist/taro-components/p-4d0da795.system.entry.js.map +0 -1
  1120. package/dist/taro-components/p-50ea2036.system.js.map +0 -1
  1121. package/dist/taro-components/p-518146fd.system.entry.js.map +0 -1
  1122. package/dist/taro-components/p-51b6fc09.system.entry.js.map +0 -1
  1123. package/dist/taro-components/p-51caa3f3.entry.js.map +0 -1
  1124. package/dist/taro-components/p-56da1da3.system.entry.js.map +0 -1
  1125. package/dist/taro-components/p-58877ef2.system.entry.js.map +0 -1
  1126. package/dist/taro-components/p-59590806.system.entry.js.map +0 -1
  1127. package/dist/taro-components/p-5d3acf86.entry.js +0 -2
  1128. package/dist/taro-components/p-5d3acf86.entry.js.map +0 -1
  1129. package/dist/taro-components/p-5f3c65f0.entry.js +0 -2
  1130. package/dist/taro-components/p-5f3c65f0.entry.js.map +0 -1
  1131. package/dist/taro-components/p-603ceecd.entry.js.map +0 -1
  1132. package/dist/taro-components/p-61f225ef.system.js.map +0 -1
  1133. package/dist/taro-components/p-623b3eb6.system.entry.js.map +0 -1
  1134. package/dist/taro-components/p-651586f8.system.entry.js.map +0 -1
  1135. package/dist/taro-components/p-663e27a0.entry.js +0 -2
  1136. package/dist/taro-components/p-663e27a0.entry.js.map +0 -1
  1137. package/dist/taro-components/p-66b07ac0.entry.js.map +0 -1
  1138. package/dist/taro-components/p-67c3a0ba.entry.js +0 -2
  1139. package/dist/taro-components/p-67c3a0ba.entry.js.map +0 -1
  1140. package/dist/taro-components/p-69f6784d.system.entry.js.map +0 -1
  1141. package/dist/taro-components/p-69fa7272.system.entry.js.map +0 -1
  1142. package/dist/taro-components/p-6a96da58.js.map +0 -1
  1143. package/dist/taro-components/p-6bb1fdf2.entry.js.map +0 -1
  1144. package/dist/taro-components/p-6dae898a.system.entry.js.map +0 -1
  1145. package/dist/taro-components/p-6f048097.system.entry.js.map +0 -1
  1146. package/dist/taro-components/p-6f214fc3.system.entry.js.map +0 -1
  1147. package/dist/taro-components/p-72f327e1.js.map +0 -1
  1148. package/dist/taro-components/p-736053bb.system.entry.js.map +0 -1
  1149. package/dist/taro-components/p-74bf8246.system.entry.js.map +0 -1
  1150. package/dist/taro-components/p-76724e58.js.map +0 -1
  1151. package/dist/taro-components/p-76e6fbff.entry.js.map +0 -1
  1152. package/dist/taro-components/p-780870eb.entry.js.map +0 -1
  1153. package/dist/taro-components/p-78c30850.system.entry.js.map +0 -1
  1154. package/dist/taro-components/p-78e3ebb9.js.map +0 -1
  1155. package/dist/taro-components/p-7a2f11dc.entry.js +0 -2
  1156. package/dist/taro-components/p-7a2f11dc.entry.js.map +0 -1
  1157. package/dist/taro-components/p-7c1fec76.entry.js.map +0 -1
  1158. package/dist/taro-components/p-7c6f0d5c.entry.js.map +0 -1
  1159. package/dist/taro-components/p-7dd9c8da.system.entry.js.map +0 -1
  1160. package/dist/taro-components/p-8027e1c6.system.entry.js.map +0 -1
  1161. package/dist/taro-components/p-828bd091.entry.js +0 -2
  1162. package/dist/taro-components/p-828bd091.entry.js.map +0 -1
  1163. package/dist/taro-components/p-8425ff09.entry.js.map +0 -1
  1164. package/dist/taro-components/p-8594d1e5.entry.js +0 -2
  1165. package/dist/taro-components/p-8594d1e5.entry.js.map +0 -1
  1166. package/dist/taro-components/p-8625c29c.entry.js +0 -2
  1167. package/dist/taro-components/p-8625c29c.entry.js.map +0 -1
  1168. package/dist/taro-components/p-88d64daa.system.entry.js.map +0 -1
  1169. package/dist/taro-components/p-88fbacdb.entry.js +0 -2
  1170. package/dist/taro-components/p-88fbacdb.entry.js.map +0 -1
  1171. package/dist/taro-components/p-895cd7c9.system.entry.js.map +0 -1
  1172. package/dist/taro-components/p-8d2101be.system.entry.js.map +0 -1
  1173. package/dist/taro-components/p-8e5cc8fe.system.entry.js.map +0 -1
  1174. package/dist/taro-components/p-908ddbb0.entry.js.map +0 -1
  1175. package/dist/taro-components/p-91f8cd40.entry.js +0 -2
  1176. package/dist/taro-components/p-91f8cd40.entry.js.map +0 -1
  1177. package/dist/taro-components/p-93ccd68a.entry.js +0 -2
  1178. package/dist/taro-components/p-93ccd68a.entry.js.map +0 -1
  1179. package/dist/taro-components/p-955fbcfa.entry.js.map +0 -1
  1180. package/dist/taro-components/p-95f70aea.system.entry.js.map +0 -1
  1181. package/dist/taro-components/p-97782cdd.system.entry.js.map +0 -1
  1182. package/dist/taro-components/p-982e431d.entry.js.map +0 -1
  1183. package/dist/taro-components/p-9bc9f3a0.entry.js +0 -2
  1184. package/dist/taro-components/p-9bc9f3a0.entry.js.map +0 -1
  1185. package/dist/taro-components/p-9d4fa0d3.system.entry.js.map +0 -1
  1186. package/dist/taro-components/p-a23a21e1.entry.js.map +0 -1
  1187. package/dist/taro-components/p-a7789ed6.entry.js.map +0 -1
  1188. package/dist/taro-components/p-adc37a00.entry.js.map +0 -1
  1189. package/dist/taro-components/p-ae3f1ed4.system.entry.js.map +0 -1
  1190. package/dist/taro-components/p-b1249ebb.system.entry.js.map +0 -1
  1191. package/dist/taro-components/p-b1c972e2.system.entry.js.map +0 -1
  1192. package/dist/taro-components/p-b2bb02d7.system.entry.js.map +0 -1
  1193. package/dist/taro-components/p-b313c11a.entry.js +0 -2
  1194. package/dist/taro-components/p-b313c11a.entry.js.map +0 -1
  1195. package/dist/taro-components/p-b39b973e.entry.js.map +0 -1
  1196. package/dist/taro-components/p-b4419d86.entry.js.map +0 -1
  1197. package/dist/taro-components/p-b8ba5d0a.entry.js +0 -2
  1198. package/dist/taro-components/p-b8ba5d0a.entry.js.map +0 -1
  1199. package/dist/taro-components/p-bac3deb0.system.entry.js.map +0 -1
  1200. package/dist/taro-components/p-bba8c3a7.system.entry.js.map +0 -1
  1201. package/dist/taro-components/p-bd5177d3.system.js.map +0 -1
  1202. package/dist/taro-components/p-c0bb8610.entry.js.map +0 -1
  1203. package/dist/taro-components/p-c1c0e16d.entry.js +0 -2
  1204. package/dist/taro-components/p-c1c0e16d.entry.js.map +0 -1
  1205. package/dist/taro-components/p-c2ac8f08.entry.js.map +0 -1
  1206. package/dist/taro-components/p-c33733b3.system.entry.js.map +0 -1
  1207. package/dist/taro-components/p-c3e98fdf.entry.js.map +0 -1
  1208. package/dist/taro-components/p-c4fdb669.system.entry.js.map +0 -1
  1209. package/dist/taro-components/p-c50087fd.entry.js.map +0 -1
  1210. package/dist/taro-components/p-c586a796.system.entry.js.map +0 -1
  1211. package/dist/taro-components/p-c6385fc2.system.entry.js.map +0 -1
  1212. package/dist/taro-components/p-c6e6dab1.system.entry.js.map +0 -1
  1213. package/dist/taro-components/p-c70dd956.system.entry.js.map +0 -1
  1214. package/dist/taro-components/p-d1d19ce9.entry.js +0 -2
  1215. package/dist/taro-components/p-d1d19ce9.entry.js.map +0 -1
  1216. package/dist/taro-components/p-d3c7f87d.js.map +0 -1
  1217. package/dist/taro-components/p-d5234e7e.js.map +0 -1
  1218. package/dist/taro-components/p-d562aae3.entry.js +0 -2
  1219. package/dist/taro-components/p-d562aae3.entry.js.map +0 -1
  1220. package/dist/taro-components/p-d61d3394.entry.js.map +0 -1
  1221. package/dist/taro-components/p-d621d190.entry.js +0 -2
  1222. package/dist/taro-components/p-d621d190.entry.js.map +0 -1
  1223. package/dist/taro-components/p-d8c8c63f.entry.js +0 -2
  1224. package/dist/taro-components/p-d8c8c63f.entry.js.map +0 -1
  1225. package/dist/taro-components/p-da5cdbf5.system.entry.js.map +0 -1
  1226. package/dist/taro-components/p-de2d8e2e.system.entry.js.map +0 -1
  1227. package/dist/taro-components/p-de356b29.system.entry.js.map +0 -1
  1228. package/dist/taro-components/p-e0e4a403.entry.js.map +0 -1
  1229. package/dist/taro-components/p-e3f8265d.system.entry.js.map +0 -1
  1230. package/dist/taro-components/p-e53feb03.system.entry.js.map +0 -1
  1231. package/dist/taro-components/p-e67165fd.entry.js +0 -2
  1232. package/dist/taro-components/p-e67165fd.entry.js.map +0 -1
  1233. package/dist/taro-components/p-eb2a7609.entry.js.map +0 -1
  1234. package/dist/taro-components/p-eb9adf17.entry.js.map +0 -1
  1235. package/dist/taro-components/p-ef4c1fd4.entry.js +0 -2
  1236. package/dist/taro-components/p-ef4c1fd4.entry.js.map +0 -1
  1237. package/dist/taro-components/p-ef7e7d73.system.entry.js.map +0 -1
  1238. package/dist/taro-components/p-efa51030.system.entry.js.map +0 -1
  1239. package/dist/taro-components/p-efe31b23.entry.js +0 -2
  1240. package/dist/taro-components/p-efe31b23.entry.js.map +0 -1
  1241. package/dist/taro-components/p-f034fb11.system.entry.js +0 -2
  1242. package/dist/taro-components/p-f034fb11.system.entry.js.map +0 -1
  1243. package/dist/taro-components/p-f499c0a0.system.entry.js.map +0 -1
  1244. package/dist/taro-components/p-f88f0f55.entry.js +0 -2
  1245. package/dist/taro-components/p-f88f0f55.entry.js.map +0 -1
  1246. package/dist/taro-components/p-f9ac515e.system.entry.js.map +0 -1
  1247. package/dist/taro-components/p-fa36fe8e.system.entry.js.map +0 -1
  1248. package/dist/taro-components/p-fcdac6ec.system.entry.js.map +0 -1
  1249. package/dist/taro-components/p-fda82bc1.entry.js.map +0 -1
  1250. package/dist/taro-components/p-fe58b450.entry.js +0 -2
  1251. package/dist/taro-components/p-fe58b450.entry.js.map +0 -1
  1252. package/dist/taro-components/p-fec6746d.entry.js +0 -2
  1253. package/dist/taro-components/p-fec6746d.entry.js.map +0 -1
  1254. package/dist/taro-components/taro-components.esm.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"names":["indexCss","Switch","this","switchChange","e","stopPropagation","value","target","checked","_this","isChecked","onChange","emit","prototype","function","newVal","oldVal","isWillLoadCalled","componentWillLoad","componentDidLoad","Object","defineProperty","el","get","configurable","render","_a","type","color","name","disabled","nativeProps","style","borderColor","backgroundColor","h","assign","class","concat"],"sources":["src/components/switch/style/index.scss?tag=taro-switch-core","src/components/switch/switch.tsx"],"sourcesContent":["taro-switch-core {\n display: inline-block;\n width: 52px;\n height: 32px;\n\n .weui-switch {\n display: block;\n width: 100%;\n height: 100%;\n }\n}\n","import { Component, h, ComponentInterface, Prop, State, Event, EventEmitter, Watch, Element } from '@stencil/core'\n\n@Component({\n tag: 'taro-switch-core',\n styleUrl: './style/index.scss'\n})\nexport class Switch implements ComponentInterface {\n @Prop() type = 'switch'\n @Prop() checked = false\n @Prop() color = '#04BE02'\n @Prop() name: string\n @Prop() disabled = false\n @Prop() nativeProps = {}\n\n @State() isChecked: boolean\n @State() isWillLoadCalled = false\n\n @Element() el: HTMLElement\n\n @Watch('checked')\n function (newVal: boolean, oldVal: boolean) {\n if (!this.isWillLoadCalled) return\n if (newVal !== oldVal) this.isChecked = newVal\n }\n\n @Event({\n eventName: 'change'\n })\n onChange: EventEmitter\n\n componentWillLoad () {\n this.isWillLoadCalled = true\n this.isChecked = this.checked\n }\n\n componentDidLoad () {\n Object.defineProperty(this.el, 'value', {\n get: () => this.isChecked,\n configurable: true\n })\n }\n\n switchChange = e => {\n e.stopPropagation()\n const value = e.target.checked\n this.isChecked = value\n this.onChange.emit({\n value\n })\n }\n\n render () {\n const {\n type,\n color,\n isChecked,\n name,\n disabled,\n nativeProps\n } = this\n\n const style = isChecked\n ? {\n borderColor: color || '04BE02',\n backgroundColor: color || '04BE02'\n }\n : {}\n\n return (\n <input\n type='checkbox'\n class={`weui-${type}`}\n style={style}\n checked={isChecked}\n name={name}\n disabled={disabled}\n onChange={this.switchChange}\n {...nativeProps}\n />\n )\n }\n}\n"],"mappings":"0FAAA,IAAMA,SAAW,mI,ICMJC,OAAM,W,6FAoCjBC,KAAAC,aAAe,SAAAC,GACbA,EAAEC,kBACF,IAAMC,EAAQF,EAAEG,OAAOC,QACvBC,EAAKC,UAAYJ,EACjBG,EAAKE,SAASC,KAAK,CACjBN,MAAKA,G,YAxCM,S,aACG,M,WACF,U,kCAEG,M,iBACG,G,+CAGM,K,CAK5BL,EAAAY,UAAAC,SAAA,SAAUC,EAAiBC,GACzB,IAAKd,KAAKe,iBAAkB,OAC5B,GAAIF,IAAWC,EAAQd,KAAKQ,UAAYK,C,EAQ1Cd,EAAAY,UAAAK,kBAAA,WACEhB,KAAKe,iBAAmB,KACxBf,KAAKQ,UAAYR,KAAKM,O,EAGxBP,EAAAY,UAAAM,iBAAA,eAAAV,EAAAP,KACEkB,OAAOC,eAAenB,KAAKoB,GAAI,QAAS,CACtCC,IAAK,WAAM,OAAAd,EAAKC,SAAL,EACXc,aAAc,M,EAalBvB,EAAAY,UAAAY,OAAA,WACQ,IAAAC,EAOFxB,KANFyB,EAAID,EAAAC,KACJC,EAAKF,EAAAE,MACLlB,EAASgB,EAAAhB,UACTmB,EAAIH,EAAAG,KACJC,EAAQJ,EAAAI,SACRC,EAAWL,EAAAK,YAGb,IAAMC,EAAQtB,EACV,CACAuB,YAAaL,GAAS,SACtBM,gBAAiBN,GAAS,UAE1B,GAEJ,OACEO,EAAA,QAAAf,OAAAgB,OAAA,CACET,KAAK,WACLU,MAAO,QAAAC,OAAQX,GACfK,MAAOA,EACPxB,QAASE,EACTmB,KAAMA,EACNC,SAAUA,EACVnB,SAAUT,KAAKC,cACX4B,G,sPAvEO,G"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["TabItem","prototype","componentDidLoad","notSupport","this","render","h","Host"],"sources":["src/components/tabs/tab-item.tsx"],"sourcesContent":["import { Component, ComponentInterface, h, Host } from '@stencil/core'\n\nimport { notSupport } from '../../utils'\n\n@Component({\n tag: 'taro-tab-item-core'\n})\nexport class TabItem implements ComponentInterface {\n componentDidLoad () {\n notSupport('TabItem', this)\n }\n\n render () {\n return (\n <Host />\n )\n }\n}\n"],"mappings":"8IAOaA,QAAO,W,uCAClBA,EAAAC,UAAAC,iBAAA,WACEC,WAAW,UAAWC,K,EAGxBJ,EAAAC,UAAAI,OAAA,WACE,OACEC,EAACC,KAAI,K,WAPS,U"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["splitUrl","_url","url","pos","res","path","query","fragment","indexOf","substring","addLeadingSlash","charAt","hasBasename","prefix","RegExp","test","stripBasename","length","stripSuffix","suffix","includes","getCurrentPage","routerMode","basename","pagePath","location","hash","slice","split","pathname","isAbsolute","spliceOne","list","index","i","k","n","pop","resolvePathname","to","from","undefined","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","concat","hasTrailingSlash","last","up","part","unshift","result","join","substr","TabbarItem","_b","_c","isSelected","textColor","iconPath","badgeText","_d","showRedDot","text","onSelect","className","classNames","badgeStyle","position","top","right","dotStyle","onClick","page","Taro","getCurrentPages","shift","onTabItemTap","isVisible","this","h","key","href","class","style","display","src","alt","color","indexCss","STATUS_SHOW","STATUS_HIDE","STATUS_SLIDEOUT","basicTabBarClassName","hideTabBarClassName","hideTabBarWithAnimationClassName","Tabbar","hostRef","_this","homePage","customRoutes","tabbarPos","getOriginUrl","customRoute","filter","customUrl","pathA","pathB","getSelectedIndex","foundIndex","forEach","idx","switchTab","selectedIndex","switchTabHandler","successHandler","errorHandler","currentUrl","getCurrentUrl","nextTab","errMsg","routerChangeHandler","options","_a","toLocation","currentPage","routerBasename","conf","setTabBarBadgeHandler","__spreadArray","removeTabBarBadgeHandler","showTabBarRedDotHandler","hideTabBarRedDotHandler","showTabBarHandler","status","hideTabBarHandler","animation","setTabBarStyleHandler","selectedColor","backgroundColor","borderStyle","setTabBarItemHandler","selectedIconPath","Object","prototype","toString","call","Error","this_1","push","apply","map","p","item","routePath","mode","decodeURI","bindEvent","eventCenter","on","removeEvent","off","componentDidLoad","tabbar","nextElementSibling","disconnectedCallback","render","containerCls","shouldHideTabBar","shouldSlideout","Host","height","bind"],"sources":["src/utils/url.ts","../taro-router/dist/utils/index.js","../../node_modules/.pnpm/registry.npmjs.org+resolve-pathname@3.0.0/node_modules/resolve-pathname/esm/resolve-pathname.js","src/components/tabbar/tabbar-item.tsx","src/components/tabbar/style/index.scss?tag=taro-tabbar","src/components/tabbar/tabbar.tsx"],"sourcesContent":["export const normalizePath = url => {\n let _isRelative\n let _leadingParents = ''\n let _parent, _pos\n\n // handle relative paths\n if (url.charAt(0) !== '/') {\n _isRelative = true\n url = '/' + url\n }\n\n // handle relative files (as opposed to directories)\n if (url.substring(-3) === '/..' || url.slice(-2) === '/.') {\n url += '/'\n }\n\n // resolve simples\n url = url.replace(/(\\/(\\.\\/)+)|(\\/\\.$)/g, '/').replace(/\\/{2,}/g, '/')\n\n // remember leading parents\n if (_isRelative) {\n _leadingParents = url.substring(1).match(/^(\\.\\.\\/)+/) || ''\n if (_leadingParents) {\n _leadingParents = _leadingParents[0]\n }\n }\n\n // resolve parents\n while (true) {\n _parent = url.search(/\\/\\.\\.(\\/|$)/)\n if (_parent === -1) {\n // no more ../ to resolve\n break\n } else if (_parent === 0) {\n // top level cannot be relative, skip it\n url = url.substring(3)\n continue\n }\n\n _pos = url.substring(0, _parent).lastIndexOf('/')\n if (_pos === -1) {\n _pos = _parent\n }\n url = url.substring(0, _pos) + url.substring(_parent + 3)\n }\n\n // revert to relative\n if (_isRelative) {\n url = _leadingParents + url.substring(1)\n }\n\n return url\n}\n\nexport const splitUrl = _url => {\n let url = _url || ''\n let pos\n const res = {\n path: null,\n query: null,\n fragment: null\n }\n\n pos = url.indexOf('#')\n if (pos > -1) {\n res.fragment = url.substring(pos + 1)\n url = url.substring(0, pos)\n }\n\n pos = url.indexOf('?')\n if (pos > -1) {\n res.query = url.substring(pos + 1)\n url = url.substring(0, pos)\n }\n\n res.path = url\n\n return res\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);\nexport const hasBasename = (path = '', prefix = '') => new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path) || path === prefix;\nexport const stripBasename = (path = '', prefix = '') => hasBasename(path, prefix) ? path.substring(prefix.length) : path;\nexport const stripTrailing = (str = '') => str.replace(/[?#][\\s\\S]*$/, '');\nexport const stripSuffix = (path = '', suffix = '') => path.includes(suffix) ? path.substring(0, path.length - suffix.length) : path;\nexport const getHomePage = (path = '', basename = '', customRoutes = {}, entryPagePath = '') => {\n var _a;\n const routePath = addLeadingSlash(stripBasename(path, basename));\n const alias = ((_a = Object.entries(customRoutes).find(([key]) => key === routePath)) === null || _a === void 0 ? void 0 : _a[1]) || routePath;\n return entryPagePath || (typeof alias === 'string' ? alias : alias[0]) || basename;\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};\nclass RoutesAlias {\n constructor() {\n this.conf = [];\n this.getConfig = (url = '') => {\n const customRoute = this.conf.filter((arr) => {\n return arr.includes(url);\n });\n return customRoute[0];\n };\n this.getOrigin = (url = '') => {\n var _a;\n return ((_a = this.getConfig(url)) === null || _a === void 0 ? void 0 : _a[0]) || url;\n };\n this.getAlias = (url = '') => {\n var _a;\n return ((_a = this.getConfig(url)) === null || _a === void 0 ? void 0 : _a[1]) || url;\n };\n this.getAll = (url = '') => {\n return this.conf\n .filter((arr) => arr.includes(url))\n .reduceRight((p, a) => {\n p.unshift(a[1]);\n return p;\n }, []);\n };\n }\n set(customRoutes = {}) {\n for (let key in customRoutes) {\n const path = customRoutes[key];\n key = addLeadingSlash(key);\n if (typeof path === 'string') {\n this.conf.push([key, addLeadingSlash(path)]);\n }\n else if ((path === null || path === void 0 ? void 0 : path.length) > 0) {\n this.conf.push(...path.map(p => [key, addLeadingSlash(p)]));\n }\n }\n }\n}\nexport const routesAlias = new RoutesAlias();\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","import classNames from 'classnames'\nimport { FunctionalComponent, h } from '@stencil/core'\nimport Taro from '@tarojs/taro'\n\nimport { isVisible } from '../../utils'\n\ntype TabbarItemProps = {\n index: number\n isSelected?: boolean\n textColor?: string\n badgeText?: string\n iconPath: string\n showRedDot?: boolean\n pagePath?: string\n text?: string\n onSelect: (index: number) => void\n}\n\nexport const TabbarItem: FunctionalComponent<TabbarItemProps> = ({\n index,\n isSelected = false,\n textColor,\n iconPath,\n badgeText,\n showRedDot = false,\n pagePath,\n text,\n onSelect\n}) => {\n const className = classNames('weui-tabbar__item', {\n 'weui-bar__item_on': isSelected\n })\n const badgeStyle = {\n position: 'absolute',\n top: '-2px',\n right: '-13px'\n }\n const dotStyle = {\n position: 'absolute',\n top: '0',\n right: '-6px'\n }\n\n function onClick () {\n const page = Taro.getCurrentPages().shift()\n if (typeof page?.onTabItemTap === 'function' && isVisible(this)) {\n page.onTabItemTap({ index, pagePath, text })\n }\n onSelect(index)\n }\n\n return (\n <a key={index} href='javascript:;' class={className} onClick={onClick}>\n <span style={{ display: 'inline-block', position: 'relative' }}>\n <img src={iconPath} alt='' class='weui-tabbar__icon' />\n {!!badgeText && (\n <span\n class='weui-badge taro-tabbar-badge'\n style={badgeStyle}>\n {badgeText}\n </span>\n )}\n {showRedDot && (\n <span\n class='weui-badge weui-badge_dot'\n style={dotStyle}\n />\n )}\n </span>\n <p class='weui-tabbar__label' style={{ color: textColor }}>\n {text}\n </p>\n </a>\n )\n}\n","html,\nbody {\n height: 100%;\n}\n\n#app {\n height: 100%;\n}\n\n.taro-tabbar {\n &__border {\n &-white {\n &::before {\n border-top-color: #fff !important;\n }\n }\n }\n\n &__container {\n display: flex;\n overflow: hidden;\n flex-direction: column;\n height: 100%;\n }\n\n &__panel {\n overflow: auto;\n position: relative;\n flex: 1;\n -webkit-overflow-scrolling: auto;\n }\n\n &__tabbar {\n position: relative;\n width: 100%;\n height: 50px;\n transition: bottom 0.2s, top 0.2s;\n\n &-top {\n top: 0;\n }\n\n &-bottom {\n bottom: 0;\n margin-bottom: constant(safe-area-inset-bottom);\n margin-bottom: env(safe-area-inset-bottom);\n }\n\n &-hide {\n display: none;\n }\n\n &-slideout {\n top: -52px;\n flex: 0 0;\n }\n }\n\n &__panel + &__tabbar-slideout {\n top: auto;\n bottom: -52px;\n }\n}\n","import { Component, Prop, h, ComponentInterface, Host, State, Event, EventEmitter, Element } from '@stencil/core'\nimport Taro from '@tarojs/taro'\nimport { addLeadingSlash, getCurrentPage, stripBasename, stripSuffix } from '@tarojs/router/dist/utils'\nimport { IH5RouterConfig } from '@tarojs/taro/types/compile'\nimport classNames from 'classnames'\nimport resolvePathname from 'resolve-pathname'\n\nimport { splitUrl } from '../../utils'\nimport { TabbarItem } from './tabbar-item'\n\nconst STATUS_SHOW = 0\nconst STATUS_HIDE = 1\nconst STATUS_SLIDEOUT = 2\n\nconst basicTabBarClassName = 'taro-tabbar__tabbar'\nconst hideTabBarClassName = 'taro-tabbar__tabbar-hide'\nconst hideTabBarWithAnimationClassName = 'taro-tabbar__tabbar-slideout'\n\ninterface RouterHandler {\n index: string\n text: string\n url: string\n successHandler: Function\n errorHandler: Function\n animation?: boolean\n}\n\nexport interface Conf {\n color: string\n selectedColor: string\n backgroundColor: string\n borderStyle?: 'black' | 'white'\n list: TabbarList[]\n position?: 'bottom' | 'top'\n custom: boolean\n customRoutes: Record<string, string | string[]>\n mode: IH5RouterConfig['mode']\n basename: string\n homePage: string\n currentPagename: string\n}\n\ninterface TabbarList {\n pagePath: string\n text: string\n iconPath?: string\n selectedIconPath?: string\n badgeText?: string\n showRedDot?: boolean\n}\n\n@Component({\n tag: 'taro-tabbar',\n styleUrl: './style/index.scss'\n})\nexport class Tabbar implements ComponentInterface {\n private homePage = ''\n\n private customRoutes: Array<string[]> = []\n\n private tabbarPos: 'top' | 'bottom' = 'bottom'\n\n @Prop() conf: Conf\n\n @State() list: TabbarList[]\n\n @State() borderStyle: Conf['borderStyle']\n\n @State() backgroundColor: Conf['backgroundColor']\n\n @State() color: Conf['color']\n\n @State() selectedColor: Conf['selectedColor']\n\n @State() selectedIndex = -1\n\n @State() status: 0 | 1 | 2 = STATUS_SHOW\n\n @Event({\n eventName: 'longpress'\n }) onLongPress: EventEmitter\n\n @Element() tabbar: HTMLDivElement\n\n constructor () {\n const list = this.conf.list\n const customRoutes = this.conf.customRoutes\n if (\n Object.prototype.toString.call(list) !== '[object Array]' ||\n list.length < 2 ||\n list.length > 5\n ) {\n throw new Error('tabBar 配置错误')\n }\n\n this.homePage = addLeadingSlash(this.conf.homePage)\n for (let key in customRoutes) {\n const path = customRoutes[key]\n key = addLeadingSlash(key)\n if (typeof path === 'string') {\n this.customRoutes.push([key, addLeadingSlash(path)])\n } else if (path?.length > 0) {\n this.customRoutes.push(...path.map(p => [key, addLeadingSlash(p)]))\n }\n }\n\n list.forEach(item => {\n if (item.pagePath.indexOf('/') !== 0) {\n item.pagePath = '/' + item.pagePath\n }\n })\n\n this.list = list\n this.borderStyle = this.conf.borderStyle\n this.backgroundColor = this.conf.backgroundColor\n this.color = this.conf.color\n this.selectedColor = this.conf.selectedColor\n }\n\n getCurrentUrl () {\n const routePath = getCurrentPage(this.conf.mode, this.conf.basename)\n return decodeURI(routePath === '/' ? this.homePage : routePath)\n }\n\n getOriginUrl = (url: string) => {\n const customRoute = this.customRoutes.filter(([, customUrl]) => {\n const pathA = splitUrl(customUrl).path\n const pathB = splitUrl(url).path\n return pathA === pathB\n })\n return stripSuffix(customRoute.length ? customRoute[0][0] : url, '.html')\n }\n\n getSelectedIndex = (url: string) => {\n let foundIndex = -1\n this.list.forEach(({ pagePath }, idx) => {\n const pathA = splitUrl(url).path\n const pathB = splitUrl(pagePath).path\n if (pathA === pathB) {\n foundIndex = idx\n }\n })\n return foundIndex\n }\n\n switchTab = (index: number) => {\n this.selectedIndex = index\n Taro.switchTab({\n url: this.list[index].pagePath\n })\n }\n\n switchTabHandler = ({ url, successHandler, errorHandler }: RouterHandler) => {\n const currentUrl = this.getOriginUrl(this.getCurrentUrl() || this.homePage)\n const nextTab = resolvePathname(url, currentUrl)\n const foundIndex = this.getSelectedIndex(nextTab)\n\n if (foundIndex > -1) {\n this.switchTab(foundIndex)\n successHandler({\n errMsg: 'switchTab:ok'\n })\n } else {\n errorHandler({\n errMsg: `switchTab:fail page \"${nextTab}\" is not found`\n })\n }\n }\n\n routerChangeHandler = (options?) => {\n const to = options?.toLocation?.path\n let currentPage\n\n if (typeof to === 'string') {\n const routerBasename = this.conf.basename || '/'\n currentPage = stripBasename(addLeadingSlash(to || this.homePage), routerBasename) || '/'\n } else {\n currentPage = this.getCurrentUrl()\n }\n\n this.selectedIndex = this.getSelectedIndex(this.getOriginUrl(currentPage))\n }\n\n setTabBarBadgeHandler = ({ index, text, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].showRedDot = false\n list[index].badgeText = text\n successHandler({\n errMsg: 'setTabBarBadge:ok'\n })\n } else {\n errorHandler({\n errMsg: 'setTabBarBadge:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n removeTabBarBadgeHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].badgeText = null\n list[index].badgeText = null\n successHandler({\n errMsg: 'removeTabBarBadge:ok'\n })\n } else {\n errorHandler({\n errMsg: 'removeTabBarBadge:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n showTabBarRedDotHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].badgeText = null\n list[index].showRedDot = true\n successHandler({\n errMsg: 'showTabBarRedDot:ok'\n })\n } else {\n errorHandler({\n errMsg: 'showTabBarRedDot:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n hideTabBarRedDotHandler = ({ index, successHandler, errorHandler }: RouterHandler) => {\n const list = [...this.list]\n if (index in list) {\n list[index].showRedDot = false\n successHandler({\n errMsg: 'hideTabBarRedDot:ok'\n })\n } else {\n errorHandler({\n errMsg: 'hideTabBarRedDot:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n showTabBarHandler = ({ successHandler }) => {\n this.status = STATUS_SHOW\n successHandler({\n errMsg: 'showTabBar:ok'\n })\n }\n\n hideTabBarHandler = ({ animation, successHandler }) => {\n this.status = animation ? STATUS_SLIDEOUT : STATUS_HIDE\n successHandler({\n errMsg: 'hideTabBar:ok'\n })\n }\n\n setTabBarStyleHandler = ({ color, selectedColor, backgroundColor, borderStyle, successHandler }) => {\n if (backgroundColor) this.backgroundColor = backgroundColor\n if (borderStyle) this.borderStyle = borderStyle\n if (color) this.color = color\n if (selectedColor) this.selectedColor = selectedColor\n successHandler({\n errMsg: 'setTabBarStyle:ok'\n })\n }\n\n setTabBarItemHandler = ({ index, iconPath, selectedIconPath, text, successHandler, errorHandler }) => {\n const list = [...this.list]\n if (index in list) {\n if (iconPath) list[index].iconPath = iconPath\n if (selectedIconPath) list[index].selectedIconPath = selectedIconPath\n if (text) list[index].text = text\n successHandler({\n errMsg: 'setTabBarItem:ok'\n })\n } else {\n errorHandler({\n errMsg: 'setTabBarItem:fail tabbar item not found'\n })\n }\n\n this.list = list\n }\n\n bindEvent () {\n Taro.eventCenter.on('__taroRouterChange', this.routerChangeHandler)\n Taro.eventCenter.on('__taroSwitchTab', this.switchTabHandler)\n Taro.eventCenter.on('__taroSetTabBarBadge', this.setTabBarBadgeHandler)\n Taro.eventCenter.on('__taroRemoveTabBarBadge', this.removeTabBarBadgeHandler)\n Taro.eventCenter.on('__taroShowTabBarRedDotHandler', this.showTabBarRedDotHandler)\n Taro.eventCenter.on('__taroHideTabBarRedDotHandler', this.hideTabBarRedDotHandler)\n Taro.eventCenter.on('__taroShowTabBar', this.showTabBarHandler)\n Taro.eventCenter.on('__taroHideTabBar', this.hideTabBarHandler)\n Taro.eventCenter.on('__taroSetTabBarStyle', this.setTabBarStyleHandler)\n Taro.eventCenter.on('__taroSetTabBarItem', this.setTabBarItemHandler)\n }\n\n removeEvent () {\n Taro.eventCenter.off('__taroRouterChange', this.routerChangeHandler)\n Taro.eventCenter.off('__taroSwitchTab', this.switchTabHandler)\n Taro.eventCenter.off('__taroSetTabBarBadge', this.setTabBarBadgeHandler)\n Taro.eventCenter.off('__taroRemoveTabBarBadge', this.removeTabBarBadgeHandler)\n Taro.eventCenter.off('__taroShowTabBarRedDotHandler', this.showTabBarRedDotHandler)\n Taro.eventCenter.off('__taroHideTabBarRedDotHandler', this.hideTabBarRedDotHandler)\n Taro.eventCenter.off('__taroShowTabBar', this.showTabBarHandler)\n Taro.eventCenter.off('__taroHideTabBar', this.hideTabBarHandler)\n Taro.eventCenter.off('__taroSetTabBarStyle', this.setTabBarStyleHandler)\n Taro.eventCenter.off('__taroSetTabBarItem', this.setTabBarItemHandler)\n }\n\n componentDidLoad () {\n this.tabbarPos = this.tabbar.nextElementSibling ? 'top' : 'bottom'\n this.bindEvent()\n this.routerChangeHandler()\n }\n\n disconnectedCallback () {\n this.removeEvent()\n }\n\n render () {\n const { tabbarPos = 'bottom' } = this\n const status = this.status\n const containerCls = classNames('weui-tabbar', {\n [`taro-tabbar__border-${this.borderStyle || 'black'}`]: true\n })\n const shouldHideTabBar = this.selectedIndex === -1 || status === STATUS_HIDE\n const shouldSlideout = status === STATUS_SLIDEOUT\n\n return (\n <Host\n class={classNames(\n basicTabBarClassName,\n `${basicTabBarClassName}-${tabbarPos}`, {\n [hideTabBarClassName]: shouldHideTabBar,\n [hideTabBarWithAnimationClassName]: shouldSlideout\n })} >\n <div\n class={containerCls}\n style={{\n backgroundColor: this.backgroundColor || '',\n height: 'inherit'\n }}\n >\n {this.list.map((item, index) => {\n const isSelected = this.selectedIndex === index\n let textColor\n let iconPath\n if (isSelected) {\n textColor = this.selectedColor || ''\n iconPath = item.selectedIconPath\n } else {\n textColor = this.color || ''\n iconPath = item.iconPath\n }\n return (\n <TabbarItem\n index={index}\n onSelect={this.switchTab.bind(this)}\n isSelected={isSelected}\n textColor={textColor}\n iconPath={iconPath}\n pagePath={item.pagePath}\n text={item.text}\n badgeText={item.badgeText}\n showRedDot={item.showRedDot}\n />\n )\n })}\n </div>\n </Host>\n )\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["Tabs","prototype","componentDidLoad","notSupport","this","render","h","Host"],"sources":["src/components/tabs/tabs.tsx"],"sourcesContent":["import { Component, ComponentInterface, h, Host } from '@stencil/core'\n\nimport { notSupport } from '../../utils'\n\n@Component({\n tag: 'taro-tabs-core'\n})\nexport class Tabs implements ComponentInterface {\n componentDidLoad () {\n notSupport('Tabs', this)\n }\n\n render () {\n return (\n <Host />\n )\n }\n}\n"],"mappings":"8IAOaA,KAAI,W,uCACfA,EAAAC,UAAAC,iBAAA,WACEC,WAAW,OAAQC,K,EAGrBJ,EAAAC,UAAAI,OAAA,WACE,OACEC,EAACC,KAAI,K,WAPM,U"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["indexCss","Text","prototype","render","cls","classNames","this","selectable","h","Host","class"],"sources":["src/components/text/style/index.scss?tag=taro-text-core","src/components/text/text.tsx"],"sourcesContent":["taro-text-core {\n display: inline;\n user-select: none;\n white-space: pre-wrap;\n}\n\n.taro-text__selectable {\n user-select: text;\n}\n","import { Component, Prop, h, ComponentInterface, Host } from '@stencil/core'\nimport classNames from 'classnames'\n\n@Component({\n tag: 'taro-text-core',\n styleUrl: './style/index.scss'\n})\nexport class Text implements ComponentInterface {\n @Prop() selectable = false\n\n render () {\n const cls = classNames({\n 'taro-text__selectable': this.selectable\n })\n return (\n <Host class={cls}>\n <slot></slot>\n </Host>\n )\n }\n}\n"],"mappings":"oHAAA,IAAMA,SAAW,uP,ICOJC,KAAI,W,uDACM,K,CAErBA,EAAAC,UAAAC,OAAA,WACE,IAAMC,EAAMC,WAAW,CACrB,wBAAyBC,KAAKC,aAEhC,OACEC,EAACC,KAAI,CAACC,MAAON,GACXI,EAAA,a,WATS,G"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["indexCss","fixControlledValue","value","Textarea","this","handleInput","e","stopPropagation","_this","handleLineChange","target","onInput","emit","cursor","length","handleFocus","onFocus","handleBlur","onBlur","handleChange","onChange","line","getNumberOfLines","onLineChange","height","textareaRef","clientHeight","lineCount","calculateContentHeight","ta","scanAmount","origHeight","style","offsetHeight","scrollHeight","overflow","originMinHeight","minHeight","window","getComputedStyle","taLineHeight","parseInt","lineHeight","taHeight","numberOfLines","Math","floor","prototype","focus","componentDidLoad","Object","defineProperty","el","get","set","configurable","autoFocus","render","_a","placeholder","disabled","maxlength","autoHeight","name","nativeProps","otherProps","rows","h","assign","ref","input","class","concat","autofocus"],"sources":["src/components/textarea/style/index.scss?tag=taro-textarea-core","src/components/textarea/textarea.tsx"],"sourcesContent":["taro-textarea-core {\n display: block;\n width: 300px;\n}\n\ntaro-textarea-core .auto-height {\n height: auto;\n}\n\n.taro-textarea {\n &:focus {\n outline: none;\n }\n\n display: block;\n position: relative;\n border: 0;\n width: 100%;\n height: inherit;\n appearance: none;\n cursor: auto;\n line-height: 1.5;\n}\n","import { Component, h, ComponentInterface, Prop, State, Event, EventEmitter, Element, Method } from '@stencil/core'\nimport { TaroEvent } from '../../../types'\n\nfunction fixControlledValue(value?: string) {\n return value ?? ''\n}\n\n@Component({\n tag: 'taro-textarea-core',\n styleUrl: './style/index.scss'\n})\nexport class Textarea implements ComponentInterface {\n private textareaRef: HTMLTextAreaElement\n\n @Element() el: HTMLElement\n\n @Prop({ mutable: true }) value: string\n @Prop() placeholder: string\n @Prop() disabled = false\n @Prop() maxlength = 140\n @Prop() autoFocus = false\n @Prop() autoHeight = false\n @Prop() name: string\n @Prop() nativeProps = {}\n @State() line = 1\n\n @Event({\n eventName: 'input'\n })\n onInput: EventEmitter\n\n @Event({\n eventName: 'focus'\n })\n onFocus: EventEmitter\n\n @Event({\n eventName: 'blur'\n })\n onBlur: EventEmitter\n\n @Event({\n eventName: 'change'\n })\n onChange: EventEmitter\n\n @Event({\n eventName: 'linechange' // 必须全小写\n })\n onLineChange: EventEmitter\n\n @Method()\n focus() {\n this.textareaRef.focus()\n }\n\n componentDidLoad() {\n Object.defineProperty(this.el, 'value', {\n get: () => this.textareaRef.value,\n set: value => (this.value = value),\n configurable: true\n })\n this.autoFocus && this.textareaRef.focus()\n }\n\n handleInput = (e: TaroEvent<HTMLInputElement>) => {\n e.stopPropagation()\n this.handleLineChange()\n const value = e.target.value || ''\n this.onInput.emit({\n value,\n cursor: value.length\n })\n }\n\n handleFocus = (e: TaroEvent<HTMLInputElement> & FocusEvent) => {\n e.stopPropagation()\n this.onFocus.emit({\n value: e.target.value\n })\n }\n\n handleBlur = (e: TaroEvent<HTMLInputElement> & FocusEvent) => {\n e.stopPropagation()\n this.onBlur.emit({\n value: e.target.value\n })\n }\n\n handleChange = (e: TaroEvent<HTMLInputElement>) => {\n e.stopPropagation()\n this.onChange.emit({\n value: e.target.value\n })\n }\n\n handleLineChange = () => {\n const line = this.getNumberOfLines()\n if (line !== this.line) {\n this.line = line\n this.onLineChange.emit({\n height: this.textareaRef.clientHeight,\n lineCount: this.line\n })\n }\n }\n\n calculateContentHeight = (ta, scanAmount) => {\n let origHeight = ta.style.height,\n height = ta.offsetHeight,\n scrollHeight = ta.scrollHeight,\n overflow = ta.style.overflow,\n originMinHeight = ta.style.minHeight || null\n\n /// only bother if the ta is bigger than content\n if (height >= scrollHeight) {\n ta.style.minHeight = 0\n /// check that our browser supports changing dimension\n /// calculations mid-way through a function call...\n ta.style.height = height + scanAmount + 'px'\n /// because the scrollbar can cause calculation problems\n ta.style.overflow = 'hidden'\n /// by checking that scrollHeight has updated\n if (scrollHeight < ta.scrollHeight) {\n /// now try and scan the ta's height downwards\n /// until scrollHeight becomes larger than height\n while (ta.offsetHeight >= ta.scrollHeight) {\n ta.style.height = (height -= scanAmount) + 'px'\n }\n /// be more specific to get the exact height\n while (ta.offsetHeight < ta.scrollHeight) {\n ta.style.height = height++ + 'px'\n }\n /// reset the ta back to it's original height\n ta.style.height = origHeight\n /// put the overflow back\n ta.style.overflow = overflow\n ta.style.minHeight = originMinHeight\n return height\n }\n } else {\n return scrollHeight\n }\n }\n\n getNumberOfLines = () => {\n const ta = this.textareaRef,\n style = window.getComputedStyle ? window.getComputedStyle(ta) : ta.style,\n // This will get the line-height only if it is set in the css,\n // otherwise it's \"normal\"\n taLineHeight = parseInt(style.lineHeight, 10),\n // Get the scroll height of the textarea\n taHeight = this.calculateContentHeight(ta, taLineHeight),\n // calculate the number of lines\n numberOfLines = Math.floor(taHeight / taLineHeight)\n\n return numberOfLines\n }\n\n render() {\n const {\n value,\n placeholder,\n disabled,\n maxlength,\n autoFocus,\n autoHeight,\n name,\n nativeProps,\n handleInput,\n handleFocus,\n handleBlur,\n handleChange\n } = this\n\n const otherProps: {\n [props: string]: any\n } = {}\n\n if (autoHeight) {\n otherProps.rows = this.line\n }\n\n return (\n <textarea\n ref={input => {\n if (input) {\n this.textareaRef = input\n }\n }}\n class={`taro-textarea ${autoHeight ? 'auto-height' : ''}`}\n value={fixControlledValue(value)}\n placeholder={placeholder}\n name={name}\n disabled={disabled}\n maxlength={maxlength}\n autofocus={autoFocus}\n onInput={handleInput}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleChange}\n {...nativeProps}\n {...otherProps}\n />\n )\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["formatTime","time","sec","Math","round","min","concat","calcDist","x","y","sqrt","pow","normalizeNumber","number","max","scene","screenFn","val","fnMap","defaultIOSMap","i","l","length","ret","document","isHls","url","test","VideoControl","this","visible","isDraggingProgressBall","percentage","progressDimensions","left","width","calcPercentage","pageX","pos","_this","onDragProgressBallStart","hideControlsTimer","clearTimeout","onClickProgress","e","stopPropagation","seekFunc","duration","toggleVisibility","class_1","prototype","onDocumentTouchMove","touchX","touches","setProgressBall","setCurrentTime","onDocumentTouchEnd","progressBallRef","style","nextVisible","undefined","isPlaying","setTimeout","el","visibility","getIsDraggingProgressBall","currentTimeRef","innerHTML","render","_c","controls","currentTime","pauseFunc","playFunc","showPlayBtn","showProgress","formattedDuration","playBtn","h","class","onClick","Host","ref","dom","rect","getBoundingClientRect","onTouchStart","indexCss","Video","isDraggingProgress","gestureType","analyzeGesture","obj","type","nowX","screenX","nowY","screenY","distX","lastTouchScreenX","distY","lastTouchScreenY","enableVslideGesture","isFullScreen","vslideGestureInFullscreen","vslideGesture","dist","abs","lastVolume","videoRef","volume","enableProgressGesture","lastPercentage","_a","_duration","dataX","dataY","loadNativePlayer","src","_b","load","call","init","import","then","n","Hls","default","HLS","isSupported","hls","destroy","loadSource","attachMedia","on","Events","MANIFEST_PARSED","autoplay","play","ERROR","_","data","handleError","canPlayType","console","error","handlePlay","isFirst","controlsRef","onPlay","emit","handlePause","onPause","handleEnded","pause","onEnded","handleTimeUpdate","throttle","__awaiter","isControlDragging","sent","danmuRef","tick","onTimeUpdate","target","seek","ErrorTypes","NETWORK_ERROR","onError","errMsg","response","startLoad","MEDIA_ERROR","reason","recoverMediaError","message","handleDurationChange","handleProgress","onProgress","handleLoadedMetaData","onLoadedMetaData","videoWidth","height","videoHeight","_play","_pause","_stop","_seek","position","onTouchStartContainer","onClickContainer","enablePlayGesture","now","Date","lastClickedTime","onClickFullScreenBtn","toggleFullScreen","handleFullScreenChange","timestamp","getTime","detail","fullscreenElement","fullScreenTimestamp","onFullScreenChange","fullScreen","direction","requestFullscreen","navigationUI","toggleMute","muted","isMute","toggleDanmu","_enableDanmu","class_2","componentWillLoad","enableDanmu","componentDidLoad","initialTime","sendDanmu","danmuList","addEventListener","fullscreenchange","componentDidRender","disconnectedCallback","removeEventListener","watchEnableDanmu","newVal","watchSrc","gestureObj","toastVolumeRef","nextVolume","toastVolumeBarRef","nextPercentage","toastProgressTitleRef","toastProgressRef","getHlsObject","stop","requestFullScreen","exitFullScreen","loop","poster","objectFit","showCenterPlayBtn","showMuteBtn","danmuBtn","showFullscreenBtn","nativeProps","durationTime","classNames","Object","assign","playsinline","onDurationChange","enable","Array","fill","map","VideoDanmu","list","danmuElList","class_3","ensureProperties","danmu","clonedDanmu","key","random","bottom","isArray","__spreadArray","newDanmuList","filter","shouldUpdate","oldDanmuList","some","every","componentDidUpdate","requestAnimationFrame","splice","forEach","webkitTransform","transform","text","color","push"],"sources":["src/components/video/utils.ts","src/components/video/video-control.tsx","src/components/video/style/index.scss?tag=taro-video-core","src/components/video/video.tsx","src/components/video/video-danmu.tsx"],"sourcesContent":["export const formatTime = (time?: number): string => {\r\n if (!time) return ''\r\n const sec = Math.round(time % 60)\r\n const min = Math.round((time - sec) / 60)\r\n return `${min < 10 ? `0${min}` : min}:${sec < 10 ? `0${sec}` : sec}`\r\n}\r\n\r\nexport const calcDist = (x: number, y: number): number => {\r\n return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2))\r\n}\r\n\r\nexport const normalizeNumber = (number: number): number => {\r\n return Math.max(-1, Math.min(number, 1))\r\n}\r\n\r\nexport let scene = 'default'\r\n\r\nexport const screenFn = (function () {\r\n let val\r\n const fnMap = [\r\n [\r\n 'requestFullscreen',\r\n 'exitFullscreen',\r\n 'fullscreenElement',\r\n 'fullscreenEnabled',\r\n 'fullscreenchange',\r\n 'fullscreenerror'\r\n ],\r\n // New WebKit\r\n [\r\n 'webkitRequestFullscreen',\r\n 'webkitExitFullscreen',\r\n 'webkitFullscreenElement',\r\n 'webkitFullscreenEnabled',\r\n 'webkitfullscreenchange',\r\n 'webkitfullscreenerror'\r\n ],\r\n // Old WebKit\r\n [\r\n 'webkitRequestFullScreen',\r\n 'webkitCancelFullScreen',\r\n 'webkitCurrentFullScreenElement',\r\n 'webkitCancelFullScreen',\r\n 'webkitfullscreenchange',\r\n 'webkitfullscreenerror'\r\n ],\r\n [\r\n 'mozRequestFullScreen',\r\n 'mozCancelFullScreen',\r\n 'mozFullScreenElement',\r\n 'mozFullScreenEnabled',\r\n 'mozfullscreenchange',\r\n 'mozfullscreenerror'\r\n ],\r\n [\r\n 'msRequestFullscreen',\r\n 'msExitFullscreen',\r\n 'msFullscreenElement',\r\n 'msFullscreenEnabled',\r\n 'MSFullscreenChange',\r\n 'MSFullscreenError'\r\n ]\r\n ]\r\n var defaultIOSMap = [\r\n 'webkitEnterFullscreen',\r\n 'webkitExitFullscreen',\r\n 'webkitCurrentFullScreenElement',\r\n 'webkitSupportsFullscreen',\r\n 'fullscreenchange',\r\n 'fullscreenerror'\r\n ]\r\n let i = 0\r\n const l = fnMap.length\r\n const ret: Record<string, any> = {}\r\n // This for loop essentially checks the current document object for the property/methods above.\r\n for (; i < l; i++) {\r\n val = fnMap[i]\r\n if (val && val[1] in document) {\r\n for (i = 0; i < val.length; i++) {\r\n ret[fnMap[0][i]] = val[i]\r\n }\r\n return ret\r\n }\r\n }\r\n if (!ret[fnMap[0][0]]) {\r\n scene = 'iOS'\r\n // when there is no any APIs be set.\r\n\r\n // In IOS, there is no 'webkitEnterFullscreen' property `in document` but video can use it for fullscreen.\r\n // ref: https://developer.apple.com/documentation/webkitjs/htmlvideoelement/1633500-webkitenterfullscreen\r\n for (i = 0; i < defaultIOSMap.length; i++) {\r\n ret[fnMap[0][i]] = defaultIOSMap[i]\r\n }\r\n }\r\n // If it doesn't find any of them, this whole function returns {}\r\n // and the fn variable is set to this returned value.\r\n return ret\r\n})()\r\n\r\nexport const isHls = url => /\\.(m3u8)($|\\?)/i.test(url)\r\n","import { Component, h, ComponentInterface, Prop, Host, Element, Listen, Method } from '@stencil/core'\nimport { formatTime } from './utils'\n\n@Component({\n tag: 'taro-video-control'\n})\nexport class VideoControl implements ComponentInterface {\n private currentTimeRef: HTMLDivElement\n private progressBallRef: HTMLDivElement\n private visible = false\n private isDraggingProgressBall = false\n private hideControlsTimer: ReturnType<typeof setTimeout>\n private percentage = 0\n private progressDimensions = {\n left: 0,\n width: 0\n }\n\n @Element() el: HTMLElement\n\n @Prop() controls: boolean\n @Prop() currentTime: number\n @Prop() duration: number\n @Prop() isPlaying: boolean\n @Prop() pauseFunc: () => void\n @Prop() playFunc: () => void\n @Prop() seekFunc: (position: number) => void\n @Prop() showPlayBtn: boolean\n @Prop() showProgress: boolean\n\n @Listen('touchmove', {\n target: 'document'\n })\n onDocumentTouchMove (e: TouchEvent) {\n if (!this.isDraggingProgressBall) return\n const touchX = e.touches[0].pageX\n this.percentage = this.calcPercentage(touchX)\n this.setProgressBall(this.percentage)\n this.setCurrentTime(this.percentage * this.duration)\n }\n\n @Listen('touchend', {\n target: 'document'\n })\n @Listen('touchcancel', {\n target: 'document'\n })\n onDocumentTouchEnd () {\n if (!this.isDraggingProgressBall) return\n\n this.isDraggingProgressBall = false\n this.seekFunc(this.percentage * this.duration)\n this.toggleVisibility(true)\n }\n\n @Method()\n async setProgressBall (percentage: number) {\n if (this.progressBallRef) {\n this.progressBallRef.style.left = `${percentage * 100}%`\n }\n }\n\n @Method()\n async toggleVisibility (nextVisible?: boolean) {\n const visible = nextVisible === undefined ? !this.visible : nextVisible\n if (visible) {\n this.hideControlsTimer && clearTimeout(this.hideControlsTimer)\n if (this.isPlaying) {\n this.hideControlsTimer = setTimeout(() => {\n this.toggleVisibility(false)\n }, 2000)\n }\n this.el.style.visibility = 'visible'\n } else {\n this.el.style.visibility = 'hidden'\n }\n this.visible = !!visible\n }\n\n @Method()\n async getIsDraggingProgressBall () {\n return this.isDraggingProgressBall\n }\n\n @Method()\n async setCurrentTime (time: number) {\n this.currentTimeRef.innerHTML = formatTime(time)\n }\n\n calcPercentage = (pageX: number): number => {\n let pos = pageX - this.progressDimensions.left\n pos = Math.max(pos, 0)\n pos = Math.min(pos, this.progressDimensions.width)\n return pos / this.progressDimensions.width\n }\n\n onDragProgressBallStart = () => {\n this.isDraggingProgressBall = true\n this.hideControlsTimer && clearTimeout(this.hideControlsTimer)\n }\n\n onClickProgress = (e: MouseEvent) => {\n e.stopPropagation()\n\n const percentage = this.calcPercentage(e.pageX)\n this.seekFunc(percentage * this.duration)\n this.toggleVisibility(true)\n }\n\n render () {\n const {\n controls,\n currentTime,\n duration,\n isPlaying,\n pauseFunc,\n playFunc,\n showPlayBtn,\n showProgress\n } = this\n\n const formattedDuration = formatTime(duration)\n let playBtn\n\n if (!showPlayBtn) {\n playBtn = null\n } else if (isPlaying) {\n playBtn = <div class='taro-video-control-button taro-video-control-button-pause' onClick={pauseFunc} />\n } else {\n playBtn = <div class='taro-video-control-button taro-video-control-button-play' onClick={playFunc} />\n }\n\n return (\n <Host class='taro-video-bar taro-video-bar-full'>\n {controls && (\n <div class='taro-video-controls'>\n {playBtn}\n {showProgress && (\n <div class='taro-video-current-time' ref={dom => (this.currentTimeRef = dom as HTMLDivElement)}>\n {formatTime(currentTime)}\n </div>\n )}\n {showProgress && (\n <div class='taro-video-progress-container' onClick={this.onClickProgress}>\n <div\n class='taro-video-progress'\n ref={ref => {\n if (!ref) return\n const rect = ref.getBoundingClientRect()\n this.progressDimensions.left = rect.left\n this.progressDimensions.width = rect.width\n }}>\n <div class='taro-video-progress-buffered' style={{ width: '100%' }} />\n <div\n class='taro-video-ball'\n ref={dom => (this.progressBallRef = dom as HTMLDivElement)}\n onTouchStart={this.onDragProgressBallStart}\n style={{\n left: `${formattedDuration ? (this.currentTime / duration) * 100 : 0}%`\n }}\n >\n <div class='taro-video-inner' />\n </div>\n </div>\n </div>\n )}\n {showProgress && <div class='taro-video-duration'>{formattedDuration}</div>}\n </div>\n )}\n <slot />\n </Host>\n )\n }\n}\n","@charset \"UTF-8\";\n\n.taro-video {\n display: inline-block;\n overflow: hidden;\n position: relative;\n width: 100%;\n height: 225px;\n line-height: 0;\n}\n\n.taro-video[hidden] {\n display: none;\n}\n\n.taro-video-container {\n display: inline-block;\n\n // NOTE: video 元素父节点设置该属性会导致 iOS 元素层级问题 https://stackoverflow.com/questions/49653475/video-and-z-index-inside-scaled-element-some-divs-disappear\n // overflow: hidden;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: #000;\n object-position: inherit;\n}\n\n.taro-video-container.taro-video-type-fullscreen {\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 999;\n}\n\n.taro-video-container.taro-video-type-fullscreen.taro-video-type-rotate-left {\n transform: translate(-50%, -50%) rotate(-90deg);\n}\n\n.taro-video-container.taro-video-type-fullscreen.taro-video-type-rotate-right {\n transform: translate(-50%, -50%) rotate(90deg);\n}\n\n.taro-video-video {\n width: 100%;\n height: 100%;\n object-position: inherit;\n}\n\n.taro-video-cover {\n display: flex;\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n z-index: 1;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n background-color: rgb(1 1 1 / 50%);\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -webkit-box-pack: center;\n -webkit-box-align: center;\n}\n\n.taro-video-cover-play-button {\n width: 40px;\n height: 40px;\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: 50%;\n}\n\n.taro-video-cover-duration {\n margin-top: 10px;\n line-height: 1;\n font-size: 16px;\n color: #fff;\n}\n\n.taro-video-bar {\n display: flex;\n visibility: hidden;\n overflow: hidden;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 1;\n align-items: center;\n padding: 0 10px;\n height: 44px;\n background-color: rgb(0 0 0 / 50%);\n -webkit-box-align: center;\n}\n\n.taro-video-bar.taro-video-bar-full {\n left: 0;\n}\n\n.taro-video-controls {\n display: flex;\n -webkit-box-flex: 1;\n flex-grow: 1;\n margin: 0 8.5px;\n}\n\n.taro-video-control-button {\n box-sizing: content-box;\n margin-left: -8.5px;\n padding: 14.5px 12.5px;\n width: 13px;\n height: 15px;\n}\n\n.taro-video-control-button::after {\n display: block;\n width: 100%;\n height: 100%;\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: 100%;\n content: \"\";\n}\n\n.taro-video-control-button.taro-video-control-button-play::after,\n.taro-video-cover-play-button {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAeCAYAAAAy2w7YAAAAAXNSR0IArs4c6QAAAWhJREFUSA1j+P///0cgBoHjQGzCQCsAtgJB/AMy5wCxGNXtQ9iBwvoA5BUCMQvVLEQxHpNzDSjkRhXLMM3GKrIeKKpEkYVYjcUu+AMo3ALE3GRZiN1MvKKPgbIRJFuG10j8koeA0gZEW4jfLIKyf4EqpgOxMEELCRpFnIJ3QGU5QMyM00LizCFa1SWgSkeslhFtBGkKVwGVy6FYSJp+klR/A6quB2JOkIWMIK0oNlOf8xBoZDE9LAI7nYn6HsBq4l96WHQEaLUpAyiOaASeAM2NgvuPBpaACt82IEYtfKls0UagecpwXyAzqGTRdaA57sjmYrAptAjUsCkGYlYMg9EFyLQI1IiZB8Ti6Obh5JNh0QmgHlOcBuKSIMGi50C18UDMiMssvOJEWPQLqKYbiHnxGkRIkoBF24DyaoTMIEoeh0W3geI+RBlArCI0iz4D+RVAzEasfqLVAQ19AcSg5LoYiKWI1kiiQgCMBLnEEcfDSgAAAABJRU5ErkJggg==\");\n}\n\n.taro-video-control-button.taro-video-control-button-pause::after {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAAAXNSR0IArs4c6QAAAFlJREFUSA3tksEKACAIQ7X//5zq98wOgQayum8QaGweHhMzG/6OujzKAymn+0LMqivu1XznWmX8/echTIyMyAgTwA72iIwwAexgj8gIE8CO3aMRbDPMaEy5BRGaKcZv8YxRAAAAAElFTkSuQmCC\");\n}\n\n.taro-video-current-time,\n.taro-video-duration {\n margin-top: 15px;\n margin-bottom: 14.5px;\n height: 14.5px;\n line-height: 14.5px;\n font-size: 12px;\n color: #cbcbcb;\n}\n\n.taro-video-progress-container {\n position: relative;\n flex-grow: 2;\n -webkit-box-flex: 2;\n}\n\n.taro-video-progress {\n position: relative;\n margin: 21px 12px;\n height: 2px;\n background-color: hsl(0deg 0% 100% / 40%);\n}\n\n.taro-video-progress-buffered {\n position: absolute;\n left: 0;\n top: 0;\n width: 0;\n height: 100%;\n background-color: hsl(0deg 0% 100% / 80%);\n transition: width 0.1s;\n}\n\n.taro-video-ball {\n position: absolute;\n left: 0;\n top: -21px;\n box-sizing: content-box;\n margin-left: -22px;\n padding: 14px;\n width: 16px;\n height: 16px;\n}\n\n.taro-video-inner {\n border-radius: 50%;\n width: 100%;\n height: 100%;\n background-color: #fff;\n}\n\n.taro-video-danmu-button {\n margin: 0 8.5px;\n padding: 2px 10px;\n border: 1px solid #fff;\n border-radius: 5px;\n line-height: 1;\n font-size: 13px;\n color: #fff;\n white-space: nowrap;\n}\n\n.taro-video-danmu-button.taro-video-danmu-button-active {\n border-color: #48c23d;\n color: #48c23d;\n}\n\n.taro-video-fullscreen,\n.taro-video-mute {\n box-sizing: content-box;\n padding: 8.5px;\n width: 17px;\n height: 17px;\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: 50%;\n}\n\n.taro-video-fullscreen {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAhUlEQVRYR+2WSwrAMAhEnZO3PfmULLooGEFTiIXJ2s/kRY2wzQeb85sE9CRA8jSzY1YfAFzhJBnU1AVgxH2dSiArCnD9QgGzRNnOech48SRABHoSyFb5in3PSbhyo6yvCPQkEM3u7BsPe/0FIvBfAh/vhKmVbO9SWun1qk/PSVi9TcVPBG6R1YIhgWwNpQAAAABJRU5ErkJggg==\");\n}\n\n.taro-video-fullscreen.taro-video-type-fullscreen {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABPUlEQVRYR+2Xu0pDURBF1/ZLxNcHKNiIlfhA7C0UBSEE8RNEBNFPUEQEEbGxFiSSSrCwEHsf5E/ccsSUuWfUhKQ40947+y42Z8+ZK/pcinzf9hhwD1xJ2q/qsb0JHAOzkl5y+lGAGnCWICQtZgAS6DxQk3TeLYA6cAo0JSXxjmW7CcwBdUkJurKiDhSA4kBvHbA9CqwBQx2O7BSw8ssU3ALPFRF4knT3nQLbr8B4LjLBOdAAFgJaLUkjbYC9n+zm+i4kXWbmwCqwnRMCHiXthuZAQOzPrxSA4kBxYDAcsH0EzATCfCLpJjOINoCtgFZabg7bk7AFDAeaGpKWgitZTu5N0kQbYBmYrujo9mX0CVxL+gidAdu9vY5zXhWA4sAgOND3X7NJ4AHYCaxkB8B62gslvecSFpoDOZH/PP8Cnt7hIaM5xCEAAAAASUVORK5CYII=\");\n}\n\n.taro-video-mute {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAGAGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTktMDQtMTFUMTA6MTg6MjArMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA0LTExVDEwOjIyOjIyKzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTA0LTExVDEwOjIyOjIyKzA4OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjk3YmE4Yjg0LTFhNTYtNGM1MS04NDVkLTNiZmYyMGI0ZDc0ZiIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjg1NGQ3MjlkLWUwNjctZjU0OC1hMTlhLTBlZjQ4OGRkYjJiOSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjA1ODY3ZDFlLWQ3NGEtNDgyNC04MDU3LTYzYmRmMTdjODk5ZSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDU4NjdkMWUtZDc0YS00ODI0LTgwNTctNjNiZGYxN2M4OTllIiBzdEV2dDp3aGVuPSIyMDE5LTA0LTExVDEwOjE4OjIwKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OTdiYThiODQtMWE1Ni00YzUxLTg0NWQtM2JmZjIwYjRkNzRmIiBzdEV2dDp3aGVuPSIyMDE5LTA0LTExVDEwOjIyOjIyKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz459+FoAAABqElEQVRYhc2XPWsVQRSGnxPjF4oGRfxoRQKGWCU2Ft7CykrQWosEyf/If0hhIPgHDEmbNJZqCFxiQEgTUGxsBUVEHgvnyrjZZJO92V1fGIaZnTPvszPszNlQ6VIjnbr/DwCoDLMNak/dUVfUK0f2rQugnlcX/FevWgFQH6gf3autRgHUC+piiXHzAOmtPx9gXgug8itQx9SXwDpw47AGKXZWvXvQmNFCwE3gCXA2dY0Az4GrRzHONA9cU/vAbERsllEOyh31e8USV2mrMPdG9uyn+rDom2/BHHCm5puWKiKmgdtAnz+rvaxO5mNygEvHaZ5BfADuARvAaWBpP4DGFBHfgBngFzClTrUKkCDeA+9S837rAEnbqb7VFcCpVJ/oCmCw959aB1AfAROpudYqgDoOLKRmPyLelAF8bcD4pPoMeAtcB34AT4uDBqXXwFG8XXUU/72MIuK1OgE8Bs6l7mEvo8up7lN1Ge0n9aK6VHMFZvJTr9S3CiALaCQhqZOSvegMIAvu2UVSWpigLC1fbQ0gm6in7qpfLCQbhwGIYcyPQ53/G3YO8BtUtd35bvKcVwAAAABJRU5ErkJggg==\");\n}\n\n.taro-video-mute.taro-video-type-mute {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAgCAYAAAB3j6rJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGAGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTktMDQtMTFUMTA6MTk6MDMrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA0LTExVDEwOjIyOjMzKzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTA0LTExVDEwOjIyOjMzKzA4OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAzYjJmNjE2LTZmZTUtNDJjNC1iNTgwLTczNzZjZjI2NzdmNSIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjYzZjQ2NTYzLWE0ZjktOGQ0Mi1hM2FhLTY3ODJhNDBhYWNjMSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjIyYWNjMWFlLTg4ZmMtNDBlZi1iMWM1LTNmODgwY2QzYWI2MiI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MjJhY2MxYWUtODhmYy00MGVmLWIxYzUtM2Y4ODBjZDNhYjYyIiBzdEV2dDp3aGVuPSIyMDE5LTA0LTExVDEwOjE5OjAzKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDNiMmY2MTYtNmZlNS00MmM0LWI1ODAtNzM3NmNmMjY3N2Y1IiBzdEV2dDp3aGVuPSIyMDE5LTA0LTExVDEwOjIyOjMzKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5PmxYVAAACLklEQVRYhc2XP2sVQRRHz40hKoqaQgVBCy1EozFlGiVFxMLGh4piYWEh+hkEP4YKAVFEEFTyughaCH6DqIVpAhYWEgIxoJE8cywyi5tNHu/tJmvyg2WZO3dmzt47/zZUtoJ6Nhsg09YDiYhKDzACTAFNYH9lEpUq80TdrT5wpV5n/ZV9KoGoo+pXV2uyKkipOaLuUceAt8DhUvQd1FsCYhR4ChzaSIBMHSOi7lOfsByFWiCgEBH1GHAF2JlMPcBt4GC3HUYEaj9wF3gVEVPtfNVTwAXgWX7CDKq/1piAZTSZBmim8qJ6sQ3EgDqb/L7kU3MH2NHtl3dQX3r3Ak21UYAYAj4A/cl0JB+RF+uMRj4iQ+p8zt7KYFLdXKHuRi0gacBhV6a6pd5bA6KRNagFJPU9qv5u47toLmW1HnoR8Q5oAK1CVQu4FBHj/wUkaXsb+4pzpVaQFPqXrN7Be4Fx9VztIOr1BLEtmX4A94E/qdwHTKjDWYM6lu81dSlnn3V570BtuLxaMs2rZ/IgYxsBovaoPwsQA4VoFWEm8ql5DiysNyURsQTMpOIMcDYiPhd8xoGr/FtNC2G6FKXD6ihwGdiVHMoeeh8jYlA9ANwE3kTEp3bO6vE03qOONzR1r/q4RGrquaFFxFxE3ALOA9+6jExpdb180y55AhirhaRTatq0GXEzL8+ZIuI9cBJ4WKiartJf9nWV/mty7UfUafW7erpqRGI9EBuprffvu9n6C1KOmsqwI5A1AAAAAElFTkSuQmCC\");\n}\n\n.taro-video-danmu {\n overflow: visible;\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n margin-top: 14px;\n margin-bottom: 44px;\n width: 100%;\n line-height: 14px;\n font-size: 14px;\n}\n\n.taro-video-danmu-item {\n position: absolute;\n left: 100%;\n line-height: 1;\n color: #fff;\n white-space: nowrap;\n transform: translateX(0);\n transition-property: left, transform;\n transition-duration: 3s;\n transition-timing-function: linear;\n}\n\n.taro-video-toast {\n display: block;\n visibility: hidden;\n position: absolute;\n left: 50%;\n top: 50%;\n border-radius: 5px;\n background-color: hsl(0deg 0% 100% / 80%);\n pointer-events: none;\n color: #000;\n transform: translate(-50%, -50%);\n}\n\n.taro-video-toast.taro-video-toast-volume {\n display: block;\n width: 100px;\n height: 100px;\n}\n\n.taro-video-toast-volume .taro-video-toast-title {\n display: block;\n margin-top: 10px;\n width: 100%;\n line-height: 16px;\n text-align: center;\n font-size: 12px;\n}\n\n.taro-video-toast-volume .taro-video-toast-icon {\n display: block;\n margin-left: 25%;\n width: 50%;\n height: 50%;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAFhklEQVR4Xu2aeaxfQxTHP1VBES0NIQitWtpaaxeCUkQtaYVa0tiClAq1ExIiQTVppaWxt8RWSa2tWkJQRGgtQaSIpUKEpG0ssbbk28yV2+mZO/e9e3vvu/e98897mZnfzPl+75mZs0wvurn06ub46SGgxwLqZaA3sB/wO/A+8G/V6tS5BU4BJgJbO9DvAMOB36okoQ4CNgAeBEYbQK8Bbm4zAdsBc4EdAyA/APZoKwHHAA8DG2UA/AnYrG0ErAVcD1yXA9gfQJ8c40obsqbPgH7AY8CROTVuFQFD3X7fJid4DWsNAWOAGZ0w58YTsDZwKzChA189PbTRBGwKzAYO6iT4srbAMHfTfAksjulS1iG4JzAH2Dy2YKS/qAVcCdzi1vgZOBZ4PWvNGAG6wgYCW0IwctzNmf06BcEXtYABwOeA4otEfgEOdnGGqV6IAAUopwM6zDYuAVjeKYpYwCjgCWOhH513+b2lhE+Avrj89NPyalzyuCIE6EN9BfQ1dHoPOAD40+9LE6D/5aoqSqtLsgiQC60DTiHzfGCFoaSsQAexZdlTgEuyCDgLuK8u5G7dEAHyKN8CBrtxLwDHAX8Z+l4N3GS0L3db4aN0X5opmc+2XZQAfb2LPd2eciG1lUSRJZ9qYHkZONwiYAjwSc3gs24BXWWWfzEVuMjQez13HljX8v7A28lvEgsInaBVcxLaAvr6sgJLtBWeNTrOB+4w2p8DRvoEnAPcXTVaY70QAbrbXwIONX7zBSAL/tvrk1+iviTllnRry2irr/QSEws4D7izCxMg1XQLLAQGGXpeCkw22kOWI49RMUujCJC+uwAfGtfcImAng4AtAMsBeg04pIkESOfbgQsMsNoGnxrtSrfv7rXrSlwXWN6kLZBgEBiB8iWUUZZPIN/AF1nMoiYSICDfAlt5iB4CxhpAzwXuMtqPBuY1lYB5wFEeqFeAwwyguvIUqvuiQO/xphJwP3Cmhyh0EKrOoGDIF7n+M5pKwEwXrqdBCaQSM77Ig7SSIicDs5pKwIvACA+pzFwZIF9OlKm36QyQV7jEqDDJk5VD58uFgGIGX1Se+6yJFqAKsqI6X84GdDb4Mh0Y5zUqjFYFakUTCXja5QLSmBQHbAL8ahAgT1AeYVreSKLLphGwF/CuAfLJQLldGSTFD75c5d4mNCoWyAqG9gYWGED1AOMKo12ZbiWA/idA++deY2DVTZ0Jh5UJPsFQtD/wDaAHGWl5EzgwaUi2gK4UXS11S0cTIjrMFBtYQdAk4DID0BnAAz4B6wNLgTKKG0VIDBHwqitwpOcW+OOB540FdeipNKbUWFrUtn06o5xOij4KyDuqU0IE3Obl/rLA63pTzm9XA8jKACjdniZAaSKFmUpB1yUhAlTsUEpMh913wEkuTe7rKTzPAHqO44vpKPkFhH3cWWBVV6ogJVYZUgz/tXtIYelzI3Ct0fExIGx6j7iKWBUUveyYBehv1RIjIEsfqziq8Xp4pSBJOYTVJFQcVY3wCFeKUjVGyYfQWB00+5bEVBECrNS+qsOKBpVHNCVWHs+LS7H5PV5pOu9v0+OKEOAXR39w1e1C7wM6AkJ1eLmkRcrpRQiQrqobXO5S3vL3/4kBKMsCknV0k+iasVLUMV3UX5SAPGtED8EOT+L9YENnCasUIXNO2goChFWHqAIRyxXN4qI1BCQg9dJESYq8LnbrCBAR8t50Lig6i0krCRBoVWhVlt45wkBrCRBuRZyPuAguxIPe9lXqhpd9DcZMXOvdkPF0Xu/8dohNUmZ/1QQkuitXr+d4fryuFx3jywQYm6suAqSX8vLTXKJDt4QqO6rtLYspXWZ/nQQkOJTAUJZGIav19q9MvKvN1RUIWKMAY5P3EBBjqO393d4C/gMVHwRQlpx21QAAAABJRU5ErkJggg==\");\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: 50%;\n fill: #000;\n}\n\n.taro-video-toast-volume .taro-video-toast-value {\n margin-left: 10px;\n margin-top: 5px;\n width: 80px;\n height: 5px;\n}\n\n.taro-video-toast-volume .taro-video-toast-value > .taro-video-toast-value-content {\n overflow: hidden;\n}\n\n.taro-video-toast-volume-grids {\n width: 80px;\n height: 5px;\n}\n\n.taro-video-toast-volume-grids-item {\n float: left;\n width: 7.1px;\n height: 5px;\n background-color: #000;\n}\n\n.taro-video-toast-volume-grids-item:not(:first-child) {\n margin-left: 1px;\n}\n\n.taro-video-toast.taro-video-toast-progress {\n padding: 6px;\n background-color: rgb(0 0 0 / 80%);\n line-height: 18px;\n font-size: 14px;\n color: #fff;\n}\n","import { Component, h, ComponentInterface, Prop, State, Event, EventEmitter, Host, Watch, Listen, Element, Method } from '@stencil/core'\nimport classNames from 'classnames'\n\nimport { throttle } from '../../utils'\nimport {\n formatTime,\n calcDist,\n normalizeNumber,\n screenFn,\n isHls,\n scene\n} from './utils'\n\nimport type HLS from 'hls.js'\n\n@Component({\n tag: 'taro-video-core',\n styleUrl: './style/index.scss'\n})\nexport class Video implements ComponentInterface {\n private videoRef: HTMLVideoElement\n private controlsRef: HTMLTaroVideoControlElement\n private danmuRef: HTMLTaroVideoDanmuElement\n private toastProgressRef: HTMLDivElement\n private toastProgressTitleRef: HTMLDivElement\n private toastVolumeRef: HTMLDivElement\n private toastVolumeBarRef: HTMLDivElement\n private currentTime = 0\n private lastClickedTime: number\n private lastTouchScreenX: number | undefined\n private lastTouchScreenY: number | undefined\n private isDraggingProgress = false\n private lastVolume: number\n private lastPercentage: number\n private nextPercentage: number\n private gestureType = 'none'\n private HLS: typeof HLS\n private hls: HLS\n\n @Element() el: HTMLTaroVideoCoreElement\n\n /**\n * 要播放视频的资源地址\n */\n @Prop() src: string\n\n /**\n * 指定视频时长\n */\n @Prop() duration: number\n\n /**\n * 是否显示默认播放控件(播放/暂停按钮、播放进度、时间)\n */\n @Prop() controls = true\n\n /**\n * 是否自动播放\n */\n @Prop() autoplay = false\n\n /**\n * 是否循环播放\n */\n @Prop() loop = false\n\n /**\n * 是否静音播放\n */\n @Prop() muted = false\n\n /**\n * 指定视频初始播放位置\n */\n @Prop() initialTime = 0\n\n /**\n * 视频封面的图片网络资源地址或云文件ID(2.3.0)。若 controls 属性值为 false 则设置 poster 无效\n */\n @Prop() poster: string\n\n /**\n * 当视频大小与 video 容器大小不一致时,视频的表现形式\n */\n @Prop() objectFit: 'contain' | 'fill' | 'cover' = 'contain'\n\n /**\n * 若不设置,宽度大于 240 时才会显示\n */\n @Prop() showProgress = true\n\n /**\n * 是否显示全屏按钮\n */\n @Prop() showFullscreenBtn = true\n\n /**\n * 是否显示视频底部控制栏的播放按钮\n */\n @Prop() showPlayBtn = true\n\n /**\n * 是否显示视频中间的播放按钮\n */\n @Prop() showCenterPlayBtn = true\n\n /**\n * 是否显示静音按钮\n */\n @Prop() showMuteBtn = false\n\n /**\n * 弹幕列表\n */\n @Prop() danmuList: []\n\n /**\n * 是否显示弹幕按钮\n */\n @Prop() danmuBtn = false\n\n /**\n * 是否展示弹幕\n */\n @Prop() enableDanmu = false\n\n /**\n * 是否开启播放手势,即双击切换播放/暂停\n */\n @Prop() enablePlayGesture = false\n\n /**\n * 是否开启控制进度的手势\n */\n @Prop() enableProgressGesture = true\n\n /**\n * 在非全屏模式下,是否开启亮度与音量调节手势\n */\n @Prop() vslideGesture = false\n\n /**\n * 在全屏模式下,是否开启亮度与音量调节手势\n */\n @Prop() vslideGestureInFullscreen = true\n\n @Prop() nativeProps = {}\n\n @State() _duration: number\n @State() _enableDanmu = false\n @State() isPlaying = false\n @State() isFirst = true\n @State() isFullScreen = false\n @State() fullScreenTimestamp = new Date().getTime()\n @State() isMute = false\n\n @Event({\n eventName: 'play'\n }) onPlay: EventEmitter\n\n @Event({\n eventName: 'pause'\n }) onPause: EventEmitter\n\n @Event({\n eventName: 'ended'\n }) onEnded: EventEmitter\n\n @Event({\n eventName: 'timeupdate'\n }) onTimeUpdate: EventEmitter\n\n @Event({\n eventName: 'error'\n }) onError: EventEmitter\n\n @Event({\n eventName: 'fullscreenchange'\n }) onFullScreenChange: EventEmitter\n\n @Event({\n eventName: 'progress'\n }) onProgress: EventEmitter\n\n @Event({\n eventName: 'loadedmetadata'\n }) onLoadedMetaData: EventEmitter\n\n componentWillLoad () {\n this._enableDanmu = this.enableDanmu\n }\n\n componentDidLoad () {\n this.init()\n if (this.initialTime) {\n this.videoRef.currentTime = this.initialTime\n }\n // 目前只支持 danmuList 初始化弹幕列表,还未支持更新弹幕列表\n this.danmuRef.sendDanmu?.(this.danmuList)\n\n if (document.addEventListener) {\n document.addEventListener(screenFn.fullscreenchange, this.handleFullScreenChange)\n }\n if (this.videoRef && scene === 'iOS') {\n // NOTE: iOS 场景下 fullscreenchange 并不会在退出全屏状态下触发,仅 webkitpresentationmodechanged 与 webkitendfullscreen 可替代\n this.videoRef.addEventListener('webkitendfullscreen', this.handleFullScreenChange)\n }\n }\n\n componentDidRender () {\n }\n\n disconnectedCallback () {\n if (document.removeEventListener) {\n document.removeEventListener(screenFn.fullscreenchange, this.handleFullScreenChange)\n }\n if (this.videoRef && scene === 'iOS') {\n this.videoRef.removeEventListener('webkitendfullscreen', this.handleFullScreenChange)\n }\n }\n\n @Watch('enableDanmu')\n watchEnableDanmu (newVal) {\n this._enableDanmu = newVal\n }\n\n @Watch('src')\n watchSrc () {\n this.init()\n }\n\n analyzeGesture = (e: TouchEvent) => {\n const obj: {\n type: string\n dataX?: number\n dataY?: number\n } = {\n type: 'none'\n }\n const nowX = e.touches[0].screenX\n const nowY = e.touches[0].screenY\n const distX = nowX - (this.lastTouchScreenX as number)\n const distY = nowY - (this.lastTouchScreenY as number)\n const enableVslideGesture = this.isFullScreen ? this.vslideGestureInFullscreen : this.vslideGesture\n\n if (this.gestureType === 'none') {\n // 两点间距离\n const dist = calcDist(distX, distY)\n\n // 没有移动\n if (dist < 10) return obj\n\n if (Math.abs(distY) >= Math.abs(distX)) {\n // 垂直方向移动:调整音量\n if (enableVslideGesture) {\n this.gestureType = 'adjustVolume'\n this.lastVolume = this.videoRef.volume\n } else {\n return obj\n }\n } else if (Math.abs(distY) < Math.abs(distX)) {\n // 水平方向移动:调整进度\n if (this.enableProgressGesture) {\n this.gestureType = 'adjustProgress'\n this.lastPercentage = this.currentTime / (this.duration ?? this._duration)\n } else {\n return obj\n }\n }\n }\n obj.type = this.gestureType\n obj.dataX = normalizeNumber(distX / 200)\n obj.dataY = normalizeNumber(distY / 200)\n return obj\n }\n\n @Listen('touchmove', {\n target: 'document'\n })\n async onDocumentTouchMove (e: TouchEvent) {\n if (this.lastTouchScreenX === undefined || this.lastTouchScreenY === undefined) return\n if (await this.controlsRef.getIsDraggingProgressBall()) return\n\n const gestureObj = this.analyzeGesture(e)\n if (gestureObj.type === 'adjustVolume') {\n this.toastVolumeRef.style.visibility = 'visible'\n const nextVolume = Math.max(Math.min(this.lastVolume - gestureObj.dataY!, 1), 0)\n this.videoRef.volume = nextVolume\n this.toastVolumeBarRef.style.width = `${nextVolume * 100}%`\n } else if (gestureObj.type === 'adjustProgress') {\n this.isDraggingProgress = true\n this.nextPercentage = Math.max(Math.min(this.lastPercentage + (gestureObj.dataX || 0), 1), 0)\n if (this.controls && this.showProgress) {\n this.controlsRef.setProgressBall(this.nextPercentage)\n this.controlsRef.toggleVisibility(true)\n }\n const duration = this.duration || this._duration\n this.toastProgressTitleRef.innerHTML = `${formatTime(this.nextPercentage * duration)} / ${formatTime(duration)}`\n this.toastProgressRef.style.visibility = 'visible'\n }\n }\n\n @Listen('touchend', {\n target: 'document'\n })\n @Listen('touchcancel', {\n target: 'document'\n })\n onDocumentTouchEnd () {\n if (this.gestureType === 'adjustVolume') {\n this.toastVolumeRef.style.visibility = 'hidden'\n } else if (this.gestureType === 'adjustProgress') {\n this.toastProgressRef.style.visibility = 'hidden'\n }\n\n if (this.isDraggingProgress) {\n this.isDraggingProgress = false\n this.seek(this.nextPercentage * (this.duration ?? this._duration))\n }\n\n this.gestureType = 'none'\n this.lastTouchScreenX = undefined\n this.lastTouchScreenY = undefined\n }\n\n loadNativePlayer = () => {\n if (this.videoRef) {\n this.videoRef.src = this.src\n this.videoRef.load?.()\n }\n }\n\n init = () => {\n const { src, videoRef } = this\n\n if (isHls(src)) {\n import('hls.js').then(e => {\n const Hls = e.default\n this.HLS = Hls\n if (Hls.isSupported()) {\n if (this.hls) {\n this.hls.destroy()\n }\n this.hls = new Hls()\n this.hls.loadSource(src)\n this.hls.attachMedia(videoRef)\n this.hls.on(Hls.Events.MANIFEST_PARSED, () => {\n this.autoplay && this.play()\n })\n this.hls.on(Hls.Events.ERROR, (_, data) => {\n this.handleError(data)\n })\n } else if (videoRef.canPlayType('application/vnd.apple.mpegurl')) {\n this.loadNativePlayer()\n } else {\n console.error('该浏览器不支持 HLS 播放')\n }\n })\n } else {\n this.loadNativePlayer()\n }\n }\n\n handlePlay = () => {\n this.isPlaying = true\n this.isFirst = false\n this.controlsRef.toggleVisibility(true)\n this.onPlay.emit()\n }\n\n handlePause = () => {\n this.isPlaying = false\n this.controlsRef.toggleVisibility(true)\n this.onPause.emit()\n }\n\n handleEnded = () => {\n this.isFirst = true\n this.pause()\n this.controlsRef.toggleVisibility()\n this.onEnded.emit()\n }\n\n handleTimeUpdate = throttle(async e => {\n this.currentTime = this.videoRef.currentTime\n const duration = this.duration || this._duration\n\n const isControlDragging = await this.controlsRef.getIsDraggingProgressBall()\n if (this.controls && this.showProgress) {\n if (!isControlDragging && !this.isDraggingProgress) {\n this.controlsRef.setProgressBall(this.currentTime / duration)\n this.controlsRef.setCurrentTime(this.currentTime)\n }\n }\n\n this.danmuRef.tick(this.currentTime)\n\n this.onTimeUpdate.emit({\n duration: e.target?.duration,\n currentTime: e.target?.currentTime\n })\n\n if (this.duration) {\n if (this.currentTime >= this.duration) {\n this.seek(0)\n this.handleEnded()\n }\n }\n }, 250)\n\n handleError = e => {\n if (this.hls) {\n switch (e.type) {\n case this.HLS.ErrorTypes.NETWORK_ERROR:\n // try to recover network error\n this.onError.emit({ errMsg: e.response })\n this.hls.startLoad()\n break\n case this.HLS.ErrorTypes.MEDIA_ERROR:\n this.onError.emit({ errMsg: e.reason || '媒体错误,请重试' })\n this.hls.recoverMediaError()\n break\n default:\n break\n }\n } else {\n this.onError.emit({\n errMsg: e.target?.error?.message,\n })\n }\n }\n\n handleDurationChange = () => {\n this._duration = this.videoRef.duration\n }\n\n handleProgress = () => {\n this.onProgress.emit()\n }\n\n handleLoadedMetaData = (e: Event) => {\n const target = e.target as HTMLVideoElement\n this.onLoadedMetaData.emit({\n width: target.videoWidth,\n height: target.videoHeight,\n duration: target.duration\n })\n }\n\n @Method()\n async getHlsObject() {\n // Note: H5 端专属方法,获取 HLS 实例 fix #11894\n return this.hls\n }\n\n /** 播放视频 */\n @Method()\n async play () {\n this._play()\n }\n\n _play = () => this.videoRef.play()\n\n /** 暂停视频 */\n @Method()\n async pause () {\n this._pause()\n }\n\n _pause = () => this.videoRef.pause()\n\n /** 停止视频 */\n @Method()\n async stop () {\n this._stop()\n }\n\n _stop = () => {\n this.videoRef.pause()\n this._seek(0)\n }\n\n /** 跳转到指定位置 */\n @Method()\n async seek (position: number) {\n this._seek(position)\n }\n\n _seek = (position: number) => {\n this.videoRef.currentTime = position\n }\n\n /** 进入全屏。若有自定义内容需在全屏时展示,需将内容节点放置到 video 节点内。 */\n @Method()\n async requestFullScreen () {\n this.toggleFullScreen(true)\n }\n\n /** 退出全屏 */\n @Method()\n async exitFullScreen () {\n this.toggleFullScreen(false)\n }\n\n onTouchStartContainer = (e: TouchEvent) => {\n this.lastTouchScreenX = e.touches[0].screenX\n this.lastTouchScreenY = e.touches[0].screenY\n }\n\n onClickContainer = () => {\n if (this.enablePlayGesture) {\n const now = Date.now()\n if (now - this.lastClickedTime < 300) {\n // 双击\n this.isPlaying ? this.pause() : this.play()\n }\n this.lastClickedTime = now\n }\n this.controlsRef.toggleVisibility()\n }\n\n onClickFullScreenBtn = (e: MouseEvent) => {\n e.stopPropagation()\n this.toggleFullScreen()\n }\n\n handleFullScreenChange = e => {\n // 全屏后,\"退出\"走的是浏览器事件,在此同步状态\n const timestamp = new Date().getTime()\n if (!e.detail && this.isFullScreen && !document[screenFn.fullscreenElement] && timestamp - this.fullScreenTimestamp > 100) {\n this.toggleFullScreen(false)\n }\n }\n\n toggleFullScreen = (isFullScreen = !this.isFullScreen) => {\n this.isFullScreen = isFullScreen // this.videoRef?.['webkitDisplayingFullscreen']\n this.controlsRef.toggleVisibility(true)\n this.fullScreenTimestamp = new Date().getTime()\n this.onFullScreenChange.emit({\n fullScreen: this.isFullScreen,\n direction: 'vertical'\n })\n if (this.isFullScreen && !document[screenFn.fullscreenElement]) {\n setTimeout(() => {\n this.videoRef[screenFn.requestFullscreen]({ navigationUI: 'auto' })\n }, 0)\n }\n }\n\n toggleMute = (e: MouseEvent) => {\n e.stopPropagation()\n this.videoRef.muted = !this.isMute\n this.controlsRef.toggleVisibility(true)\n this.isMute = !this.isMute\n }\n\n toggleDanmu = (e: MouseEvent) => {\n e.stopPropagation()\n this.controlsRef.toggleVisibility(true)\n this._enableDanmu = !this._enableDanmu\n }\n\n render () {\n const {\n controls,\n autoplay,\n loop,\n muted,\n poster,\n objectFit,\n isFirst,\n isMute,\n isFullScreen,\n showCenterPlayBtn,\n isPlaying,\n _enableDanmu,\n showMuteBtn,\n danmuBtn,\n showFullscreenBtn,\n nativeProps\n } = this\n const duration = this.duration || this._duration\n const durationTime = formatTime(duration)\n\n return (\n <Host\n class={classNames('taro-video-container', {\n 'taro-video-type-fullscreen': isFullScreen\n })}\n onTouchStart={this.onTouchStartContainer}\n onClick={this.onClickContainer}\n >\n <video\n class='taro-video-video'\n style={{\n 'object-fit': objectFit\n }}\n ref={dom => {\n if (dom) {\n this.videoRef = dom as HTMLVideoElement\n }\n }}\n autoplay={autoplay}\n loop={loop}\n muted={muted}\n poster={controls ? poster : undefined}\n playsinline\n webkit-playsinline\n onPlay={this.handlePlay}\n onPause={this.handlePause}\n onEnded={this.handleEnded}\n onTimeUpdate={this.handleTimeUpdate}\n onError={this.handleError}\n onDurationChange={this.handleDurationChange}\n onProgress={this.handleProgress}\n onLoadedMetaData={this.handleLoadedMetaData}\n {...nativeProps}\n >\n 暂时不支持播放该视频\n </video>\n\n <taro-video-danmu\n ref={dom => {\n if (dom) {\n this.danmuRef = dom as HTMLTaroVideoDanmuElement\n }\n }}\n enable={_enableDanmu}\n />\n\n {isFirst && showCenterPlayBtn && !isPlaying && (\n <div class='taro-video-cover'>\n <div class='taro-video-cover-play-button' onClick={() => this.play()} />\n <p class='taro-video-cover-duration'>{durationTime}</p>\n </div>\n )}\n\n <taro-video-control\n ref={dom => {\n if (dom) {\n this.controlsRef = dom\n }\n }}\n controls={controls}\n currentTime={this.currentTime}\n duration={duration}\n isPlaying={this.isPlaying}\n pauseFunc={this._pause}\n playFunc={this._play}\n seekFunc={this._seek}\n showPlayBtn={this.showPlayBtn}\n showProgress={this.showProgress}\n >\n {showMuteBtn && (\n <div\n class={classNames('taro-video-mute', {\n 'taro-video-type-mute': isMute\n })}\n onClick={this.toggleMute}\n />\n )}\n {danmuBtn && (\n <div\n class={classNames('taro-video-danmu-button', {\n 'taro-video-danmu-button-active': _enableDanmu\n })}\n onClick={this.toggleDanmu}>\n 弹幕\n </div>\n )}\n {showFullscreenBtn && (\n <div\n class={classNames('taro-video-fullscreen', {\n 'taro-video-type-fullscreen': isFullScreen\n })}\n onClick={this.onClickFullScreenBtn}\n />\n )}\n </taro-video-control>\n\n <div class='taro-video-toast taro-video-toast-volume' ref={dom => {\n if (dom) {\n this.toastVolumeRef = dom\n }\n }}>\n <div class='taro-video-toast-title'>音量</div>\n <div class='taro-video-toast-icon' />\n <div class='taro-video-toast-value'>\n <div class='taro-video-toast-value-content' ref={dom => {\n if (dom) {\n this.toastVolumeBarRef = dom\n }\n }}>\n <div class='taro-video-toast-volume-grids'>\n {Array(10).fill(1).map(() => (\n <div class='taro-video-toast-volume-grids-item' />\n ))}\n </div>\n </div>\n </div>\n </div>\n\n <div class='taro-video-toast taro-video-toast-progress' ref={dom => {\n if (dom) {\n this.toastProgressRef = dom\n }\n }}>\n <div class='taro-video-toast-title' ref={dom => {\n if (dom) {\n this.toastProgressTitleRef = dom\n }\n }} />\n </div>\n </Host>\n )\n }\n}\n","import { Component, h, ComponentInterface, Prop, State, Host, Method } from '@stencil/core'\n\nexport interface Danmu {\n text: string\n color: string\n time: number,\n key: number,\n bottom: string\n}\n\n@Component({\n tag: 'taro-video-danmu'\n})\nexport class VideoDanmu implements ComponentInterface {\n private list: Danmu[] = []\n private danmuElList: HTMLParagraphElement[] = []\n private currentTime = 0\n\n @Prop() enable = false\n\n @State() danmuList: Danmu[] = []\n\n ensureProperties (danmu: Partial<Danmu>): Danmu {\n const clonedDanmu = { ...danmu } as Danmu\n if (!('time' in danmu)) {\n clonedDanmu.time = this.currentTime\n }\n clonedDanmu.key = Math.random()\n clonedDanmu.bottom = `${Math.random() * 90 + 5}%`\n return clonedDanmu\n }\n\n @Method()\n async sendDanmu (danmuList: Partial<Danmu> | Partial<Danmu>[] = []) {\n if (Array.isArray(danmuList)) {\n this.list = [\n ...this.list,\n ...danmuList.map(danmu => this.ensureProperties(danmu))\n ]\n } else {\n const danmu = danmuList\n this.list = [\n ...this.list,\n { ...this.ensureProperties(danmu) }\n ]\n }\n }\n\n @Method()\n async tick (currentTime: number) {\n this.currentTime = currentTime\n\n if (!this.enable) return\n\n const danmuList = this.list\n\n /**\n * @todo 这个判断对拖拽进度的处理不严谨\n */\n const newDanmuList = danmuList.filter(({ time }) => {\n return currentTime - time < 4 && currentTime > time\n })\n let shouldUpdate = false\n const oldDanmuList = this.danmuList\n\n if (newDanmuList.length !== oldDanmuList.length) {\n shouldUpdate = true\n } else {\n shouldUpdate = newDanmuList.some(({ key }) => {\n return oldDanmuList.every((danmu) => {\n return key !== danmu.key\n })\n })\n }\n if (shouldUpdate) {\n this.danmuList = newDanmuList\n }\n }\n\n componentDidUpdate () {\n requestAnimationFrame(() => {\n setTimeout(() => {\n const danmuElList = this.danmuElList.splice(0)\n danmuElList.forEach(danmu => {\n danmu.style.left = '0'\n danmu.style.webkitTransform = 'translateX(-100%)'\n danmu.style.transform = 'translateX(-100%)'\n })\n })\n })\n }\n\n render () {\n if (!this.enable) return ''\n\n return (\n <Host class='taro-video-danmu'>\n {this.danmuList.map(({ text, color, bottom, key }) => (\n <p\n class='taro-video-danmu-item'\n key={key}\n style={{\n color,\n bottom\n }}\n ref={ref => {\n if (ref) {\n this.danmuElList.push(ref)\n }\n }}\n >\n {text}\n </p>\n ))}\n </Host>\n )\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["indexCss","View","this","startTime","prototype","onTouchStart","_this","hoverClass","touch","setTimeout","hover","hoverStartTime","timeoutEvent","onLongPress","emit","Date","now","onTouchMove","clearTimeout","onTouchEnd","spanTime","hoverStayTime","componentDidRender","el","childNodes","forEach","item","nodeType","document","COMMENT_NODE","render","cls","classNames","_a","concat","attr","animation","h","Host","Object","assign","class"],"sources":["src/components/view/style/index.scss?tag=taro-view-core","src/components/view/view.tsx"],"sourcesContent":["body,\nhtml {\n user-select: none;\n -webkit-tap-highlight-color: rgb(0 0 0 / 0%);\n}\n\ntaro-view-core {\n display: block;\n}\n","import { Component, Prop, h, ComponentInterface, Host, Listen, State, Event, EventEmitter, Element } from '@stencil/core'\nimport classNames from 'classnames'\n\n@Component({\n tag: 'taro-view-core',\n styleUrl: './style/index.scss'\n})\nexport class View implements ComponentInterface {\n @Element() el: HTMLElement\n\n @Prop() animation: string\n @Prop() hoverClass: string\n @Prop() hoverStartTime = 50\n @Prop() hoverStayTime = 400\n @State() hover = false\n @State() touch = false\n\n @Event({\n eventName: 'longpress'\n }) onLongPress: EventEmitter\n\n private timeoutEvent: ReturnType<typeof setTimeout>\n private startTime = 0\n\n @Listen('touchstart')\n onTouchStart () {\n if (this.hoverClass) {\n this.touch = true\n setTimeout(() => {\n if (this.touch) {\n this.hover = true\n }\n }, this.hoverStartTime)\n }\n\n this.timeoutEvent = setTimeout(() => {\n this.onLongPress.emit()\n }, 350)\n this.startTime = Date.now()\n }\n\n @Listen('touchmove')\n onTouchMove () {\n clearTimeout(this.timeoutEvent)\n }\n\n @Listen('touchend')\n onTouchEnd () {\n const spanTime = Date.now() - this.startTime\n if (spanTime < 350) {\n clearTimeout(this.timeoutEvent)\n }\n if (this.hoverClass) {\n this.touch = false\n setTimeout(() => {\n if (!this.touch) {\n this.hover = false\n }\n }, this.hoverStayTime)\n }\n }\n\n componentDidRender () {\n const el = this.el\n el.childNodes.forEach(item => {\n // Note: ['s-cn'] Content Reference Node\n if (item.nodeType === document.COMMENT_NODE && item['s-cn']) item['s-cn'] = false\n // Note: ['s-sr'] Is a slot reference node (渲染完成后禁用 slotRelocation 特性, 避免 Stencil 组件相互调用时内置排序与第三方 UI 框架冲突导致组件顺序混乱)\n if (item.nodeType !== document.COMMENT_NODE && item['s-sr']) item['s-sr'] = false\n })\n }\n\n render() {\n const cls = classNames({\n [`${this.hoverClass}`]: this.hover\n })\n let attr = {}\n if (!!this.animation) {\n attr['animation'] = this.animation\n attr['data-animation'] = this.animation\n }\n return (\n <Host class={cls} {...attr}>\n <slot></slot>\n </Host>\n )\n }\n}\n"],"mappings":"qJAAA,IAAMA,SAAW,4K,ICOJC,KAAI,W,wFAePC,KAAAC,UAAY,E,uEAVK,G,mBACD,I,WACP,M,WACA,K,CAUjBF,EAAAG,UAAAC,aAAA,eAAAC,EAAAJ,KACE,GAAIA,KAAKK,WAAY,CACnBL,KAAKM,MAAQ,KACbC,YAAW,WACT,GAAIH,EAAKE,MAAO,CACdF,EAAKI,MAAQ,I,IAEdR,KAAKS,e,CAGVT,KAAKU,aAAeH,YAAW,WAC7BH,EAAKO,YAAYC,M,GAChB,KACHZ,KAAKC,UAAYY,KAAKC,K,EAIxBf,EAAAG,UAAAa,YAAA,WACEC,aAAahB,KAAKU,a,EAIpBX,EAAAG,UAAAe,WAAA,eAAAb,EAAAJ,KACE,IAAMkB,EAAWL,KAAKC,MAAQd,KAAKC,UACnC,GAAIiB,EAAW,IAAK,CAClBF,aAAahB,KAAKU,a,CAEpB,GAAIV,KAAKK,WAAY,CACnBL,KAAKM,MAAQ,MACbC,YAAW,WACT,IAAKH,EAAKE,MAAO,CACfF,EAAKI,MAAQ,K,IAEdR,KAAKmB,c,GAIZpB,EAAAG,UAAAkB,mBAAA,WACE,IAAMC,EAAKrB,KAAKqB,GAChBA,EAAGC,WAAWC,SAAQ,SAAAC,GAEpB,GAAIA,EAAKC,WAAaC,SAASC,cAAgBH,EAAK,QAASA,EAAK,QAAU,MAE5E,GAAIA,EAAKC,WAAaC,SAASC,cAAgBH,EAAK,QAASA,EAAK,QAAU,K,KAIhFzB,EAAAG,UAAA0B,OAAA,W,MACE,IAAMC,EAAMC,YAAUC,EAAA,GACpBA,EAAC,GAAAC,OAAGhC,KAAKK,aAAeL,KAAKQ,M,IAE/B,IAAIyB,EAAO,GACX,KAAMjC,KAAKkC,UAAW,CACpBD,EAAK,aAAejC,KAAKkC,UACzBD,EAAK,kBAAoBjC,KAAKkC,S,CAEhC,OACEC,EAACC,KAAIC,OAAAC,OAAA,CAACC,MAAOV,GAASI,GACpBE,EAAA,a,gIA5ES,G"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["VoipRoom","prototype","componentDidLoad","notSupport","this","render","h","Host"],"sources":["src/components/voip-room/voip-room.tsx"],"sourcesContent":["import { Component, ComponentInterface, h, Host } from '@stencil/core'\n\nimport { notSupport } from '../../utils'\n\n@Component({\n tag: 'taro-voip-room-core'\n})\nexport class VoipRoom implements ComponentInterface {\n componentDidLoad () {\n notSupport('VoipRoom', this)\n }\n\n render () {\n return (\n <Host />\n )\n }\n}\n"],"mappings":"8IAOaA,SAAQ,W,uCACnBA,EAAAC,UAAAC,iBAAA,WACEC,WAAW,WAAYC,K,EAGzBJ,EAAAC,UAAAI,OAAA,WACE,OACEC,EAACC,KAAI,K,WAPU,U"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["indexCss","WebView","prototype","render","_a","this","src","onLoad","onError","h","class","e","stopPropagation","emit"],"sources":["src/components/web-view/style/index.scss?tag=taro-web-view-core","src/components/web-view/web-view.tsx"],"sourcesContent":["iframe {\n border: none;\n}\n\n.taro-webview {\n position: fixed;\n top: 0;\n bottom: 0;\n z-index: 999;\n width: 100%;\n height: 100%;\n}\n","import { Component, h, ComponentInterface, Prop, Event, EventEmitter } from '@stencil/core'\n\n@Component({\n tag: 'taro-web-view-core',\n styleUrl: './style/index.scss'\n})\nexport class WebView implements ComponentInterface {\n @Prop() src: string\n\n @Event({\n eventName: 'load'\n })\n onLoad: EventEmitter\n\n @Event({\n eventName: 'error'\n })\n onError: EventEmitter\n\n render () {\n const {\n src,\n onLoad,\n onError\n } = this\n return (\n <iframe\n class='taro-webview'\n onLoad={(e: Event) => {\n e.stopPropagation()\n onLoad.emit({ src })\n }}\n onError={(e: Event) => {\n e.stopPropagation()\n onError.emit({ src })\n }}\n src={src}\n />\n )\n }\n}\n"],"mappings":"0EAAA,IAAMA,SAAW,qG,ICMJC,QAAO,W,0IAalBA,EAAAC,UAAAC,OAAA,WACQ,IAAAC,EAIFC,KAHFC,EAAGF,EAAAE,IACHC,EAAMH,EAAAG,OACNC,EAAOJ,EAAAI,QAET,OACEC,EAAA,UACEC,MAAM,eACNH,OAAQ,SAACI,GACPA,EAAEC,kBACFL,EAAOM,KAAK,CAAEP,IAAGA,G,EAEnBE,QAAS,SAACG,GACRA,EAAEC,kBACFJ,EAAQK,KAAK,CAAEP,IAAGA,G,EAEpBA,IAAKA,G,WA9BO,G"}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- import{r as t,h as i,H as e,g as s,c as o}from"./p-78e3ebb9.js";import{c as n}from"./p-76724e58.js";import{t as r}from"./p-d3c7f87d.js";const a=t=>{if(!t)return"";const i=Math.round(t%60);const e=Math.round((t-i)/60);return`${e<10?`0${e}`:e}:${i<10?`0${i}`:i}`};const h=(t,i)=>Math.sqrt(Math.pow(t,2)+Math.pow(i,2));const l=t=>Math.max(-1,Math.min(t,1));let d="default";const c=function(){let t;const i=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]];var e=["webkitEnterFullscreen","webkitExitFullscreen","webkitCurrentFullScreenElement","webkitSupportsFullscreen","fullscreenchange","fullscreenerror"];let s=0;const o=i.length;const n={};for(;s<o;s++){t=i[s];if(t&&t[1]in document){for(s=0;s<t.length;s++){n[i[0][s]]=t[s]}return n}}if(!n[i[0][0]]){d="iOS";for(s=0;s<e.length;s++){n[i[0][s]]=e[s]}}return n}();const A=t=>/\.(m3u8)($|\?)/i.test(t);const u=class{constructor(i){t(this,i);this.visible=false;this.isDraggingProgressBall=false;this.percentage=0;this.progressDimensions={left:0,width:0};this.calcPercentage=t=>{let i=t-this.progressDimensions.left;i=Math.max(i,0);i=Math.min(i,this.progressDimensions.width);return i/this.progressDimensions.width};this.onDragProgressBallStart=()=>{this.isDraggingProgressBall=true;this.hideControlsTimer&&clearTimeout(this.hideControlsTimer)};this.onClickProgress=t=>{t.stopPropagation();const i=this.calcPercentage(t.pageX);this.seekFunc(i*this.duration);this.toggleVisibility(true)};this.controls=undefined;this.currentTime=undefined;this.duration=undefined;this.isPlaying=undefined;this.pauseFunc=undefined;this.playFunc=undefined;this.seekFunc=undefined;this.showPlayBtn=undefined;this.showProgress=undefined}onDocumentTouchMove(t){if(!this.isDraggingProgressBall)return;const i=t.touches[0].pageX;this.percentage=this.calcPercentage(i);this.setProgressBall(this.percentage);this.setCurrentTime(this.percentage*this.duration)}onDocumentTouchEnd(){if(!this.isDraggingProgressBall)return;this.isDraggingProgressBall=false;this.seekFunc(this.percentage*this.duration);this.toggleVisibility(true)}async setProgressBall(t){if(this.progressBallRef){this.progressBallRef.style.left=`${t*100}%`}}async toggleVisibility(t){const i=t===undefined?!this.visible:t;if(i){this.hideControlsTimer&&clearTimeout(this.hideControlsTimer);if(this.isPlaying){this.hideControlsTimer=setTimeout((()=>{this.toggleVisibility(false)}),2e3)}this.el.style.visibility="visible"}else{this.el.style.visibility="hidden"}this.visible=!!i}async getIsDraggingProgressBall(){return this.isDraggingProgressBall}async setCurrentTime(t){this.currentTimeRef.innerHTML=a(t)}render(){const{controls:t,currentTime:s,duration:o,isPlaying:n,pauseFunc:r,playFunc:h,showPlayBtn:l,showProgress:d}=this;const c=a(o);let A;if(!l){A=null}else if(n){A=i("div",{class:"taro-video-control-button taro-video-control-button-pause",onClick:r})}else{A=i("div",{class:"taro-video-control-button taro-video-control-button-play",onClick:h})}return i(e,{class:"taro-video-bar taro-video-bar-full"},t&&i("div",{class:"taro-video-controls"},A,d&&i("div",{class:"taro-video-current-time",ref:t=>this.currentTimeRef=t},a(s)),d&&i("div",{class:"taro-video-progress-container",onClick:this.onClickProgress},i("div",{class:"taro-video-progress",ref:t=>{if(!t)return;const i=t.getBoundingClientRect();this.progressDimensions.left=i.left;this.progressDimensions.width=i.width}},i("div",{class:"taro-video-progress-buffered",style:{width:"100%"}}),i("div",{class:"taro-video-ball",ref:t=>this.progressBallRef=t,onTouchStart:this.onDragProgressBallStart,style:{left:`${c?this.currentTime/o*100:0}%`}},i("div",{class:"taro-video-inner"})))),d&&i("div",{class:"taro-video-duration"},c)),i("slot",null))}get el(){return s(this)}};const g='.taro-video{display:inline-block;overflow:hidden;position:relative;width:100%;height:225px;line-height:0}.taro-video[hidden]{display:none}.taro-video-container{display:inline-block;position:absolute;left:0;top:0;width:100%;height:100%;background-color:#000;-o-object-position:inherit;object-position:inherit}.taro-video-container.taro-video-type-fullscreen{position:fixed;left:0;right:0;top:0;bottom:0;z-index:999}.taro-video-container.taro-video-type-fullscreen.taro-video-type-rotate-left{-webkit-transform:translate(-50%, -50%) rotate(-90deg);transform:translate(-50%, -50%) rotate(-90deg)}.taro-video-container.taro-video-type-fullscreen.taro-video-type-rotate-right{-webkit-transform:translate(-50%, -50%) rotate(90deg);transform:translate(-50%, -50%) rotate(90deg)}.taro-video-video{width:100%;height:100%;-o-object-position:inherit;object-position:inherit}.taro-video-cover{display:-ms-flexbox;display:flex;position:absolute;left:0;top:0;bottom:0;z-index:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;width:100%;background-color:rgba(1, 1, 1, 0.5);-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-pack:center;-webkit-box-align:center}.taro-video-cover-play-button{width:40px;height:40px;background-repeat:no-repeat;background-position:50% 50%;background-size:50%}.taro-video-cover-duration{margin-top:10px;line-height:1;font-size:16px;color:#fff}.taro-video-bar{display:-ms-flexbox;display:flex;visibility:hidden;overflow:hidden;position:absolute;right:0;bottom:0;z-index:1;-ms-flex-align:center;align-items:center;padding:0 10px;height:44px;background-color:rgba(0, 0, 0, 0.5);-webkit-box-align:center}.taro-video-bar.taro-video-bar-full{left:0}.taro-video-controls{display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin:0 8.5px}.taro-video-control-button{-webkit-box-sizing:content-box;box-sizing:content-box;margin-left:-8.5px;padding:14.5px 12.5px;width:13px;height:15px}.taro-video-control-button::after{display:block;width:100%;height:100%;background-repeat:no-repeat;background-position:50% 50%;background-size:100%;content:""}.taro-video-control-button.taro-video-control-button-play::after,.taro-video-cover-play-button{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAeCAYAAAAy2w7YAAAAAXNSR0IArs4c6QAAAWhJREFUSA1j+P///0cgBoHjQGzCQCsAtgJB/AMy5wCxGNXtQ9iBwvoA5BUCMQvVLEQxHpNzDSjkRhXLMM3GKrIeKKpEkYVYjcUu+AMo3ALE3GRZiN1MvKKPgbIRJFuG10j8koeA0gZEW4jfLIKyf4EqpgOxMEELCRpFnIJ3QGU5QMyM00LizCFa1SWgSkeslhFtBGkKVwGVy6FYSJp+klR/A6quB2JOkIWMIK0oNlOf8xBoZDE9LAI7nYn6HsBq4l96WHQEaLUpAyiOaASeAM2NgvuPBpaACt82IEYtfKls0UagecpwXyAzqGTRdaA57sjmYrAptAjUsCkGYlYMg9EFyLQI1IiZB8Ti6Obh5JNh0QmgHlOcBuKSIMGi50C18UDMiMssvOJEWPQLqKYbiHnxGkRIkoBF24DyaoTMIEoeh0W3geI+RBlArCI0iz4D+RVAzEasfqLVAQ19AcSg5LoYiKWI1kiiQgCMBLnEEcfDSgAAAABJRU5ErkJggg==")}.taro-video-control-button.taro-video-control-button-pause::after{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAAAXNSR0IArs4c6QAAAFlJREFUSA3tksEKACAIQ7X//5zq98wOgQayum8QaGweHhMzG/6OujzKAymn+0LMqivu1XznWmX8/echTIyMyAgTwA72iIwwAexgj8gIE8CO3aMRbDPMaEy5BRGaKcZv8YxRAAAAAElFTkSuQmCC")}.taro-video-current-time,.taro-video-duration{margin-top:15px;margin-bottom:14.5px;height:14.5px;line-height:14.5px;font-size:12px;color:#cbcbcb}.taro-video-progress-container{position:relative;-ms-flex-positive:2;flex-grow:2;-webkit-box-flex:2}.taro-video-progress{position:relative;margin:21px 12px;height:2px;background-color:rgba(255, 255, 255, 0.4)}.taro-video-progress-buffered{position:absolute;left:0;top:0;width:0;height:100%;background-color:rgba(255, 255, 255, 0.8);-webkit-transition:width 0.1s;transition:width 0.1s}.taro-video-ball{position:absolute;left:0;top:-21px;-webkit-box-sizing:content-box;box-sizing:content-box;margin-left:-22px;padding:14px;width:16px;height:16px}.taro-video-inner{border-radius:50%;width:100%;height:100%;background-color:#fff}.taro-video-danmu-button{margin:0 8.5px;padding:2px 10px;border:1px solid #fff;border-radius:5px;line-height:1;font-size:13px;color:#fff;white-space:nowrap}.taro-video-danmu-button.taro-video-danmu-button-active{border-color:#48c23d;color:#48c23d}.taro-video-fullscreen,.taro-video-mute{-webkit-box-sizing:content-box;box-sizing:content-box;padding:8.5px;width:17px;height:17px;background-repeat:no-repeat;background-position:50% 50%;background-size:50%}.taro-video-fullscreen{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAhUlEQVRYR+2WSwrAMAhEnZO3PfmULLooGEFTiIXJ2s/kRY2wzQeb85sE9CRA8jSzY1YfAFzhJBnU1AVgxH2dSiArCnD9QgGzRNnOech48SRABHoSyFb5in3PSbhyo6yvCPQkEM3u7BsPe/0FIvBfAh/vhKmVbO9SWun1qk/PSVi9TcVPBG6R1YIhgWwNpQAAAABJRU5ErkJggg==")}.taro-video-fullscreen.taro-video-type-fullscreen{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABPUlEQVRYR+2Xu0pDURBF1/ZLxNcHKNiIlfhA7C0UBSEE8RNEBNFPUEQEEbGxFiSSSrCwEHsf5E/ccsSUuWfUhKQ40947+y42Z8+ZK/pcinzf9hhwD1xJ2q/qsb0JHAOzkl5y+lGAGnCWICQtZgAS6DxQk3TeLYA6cAo0JSXxjmW7CcwBdUkJurKiDhSA4kBvHbA9CqwBQx2O7BSw8ssU3ALPFRF4knT3nQLbr8B4LjLBOdAAFgJaLUkjbYC9n+zm+i4kXWbmwCqwnRMCHiXthuZAQOzPrxSA4kBxYDAcsH0EzATCfCLpJjOINoCtgFZabg7bk7AFDAeaGpKWgitZTu5N0kQbYBmYrujo9mX0CVxL+gidAdu9vY5zXhWA4sAgOND3X7NJ4AHYCaxkB8B62gslvecSFpoDOZH/PP8Cnt7hIaM5xCEAAAAASUVORK5CYII=")}.taro-video-mute{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAGAGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTktMDQtMTFUMTA6MTg6MjArMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA0LTExVDEwOjIyOjIyKzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTA0LTExVDEwOjIyOjIyKzA4OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjk3YmE4Yjg0LTFhNTYtNGM1MS04NDVkLTNiZmYyMGI0ZDc0ZiIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjg1NGQ3MjlkLWUwNjctZjU0OC1hMTlhLTBlZjQ4OGRkYjJiOSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjA1ODY3ZDFlLWQ3NGEtNDgyNC04MDU3LTYzYmRmMTdjODk5ZSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDU4NjdkMWUtZDc0YS00ODI0LTgwNTctNjNiZGYxN2M4OTllIiBzdEV2dDp3aGVuPSIyMDE5LTA0LTExVDEwOjE4OjIwKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OTdiYThiODQtMWE1Ni00YzUxLTg0NWQtM2JmZjIwYjRkNzRmIiBzdEV2dDp3aGVuPSIyMDE5LTA0LTExVDEwOjIyOjIyKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz459+FoAAABqElEQVRYhc2XPWsVQRSGnxPjF4oGRfxoRQKGWCU2Ft7CykrQWosEyf/If0hhIPgHDEmbNJZqCFxiQEgTUGxsBUVEHgvnyrjZZJO92V1fGIaZnTPvszPszNlQ6VIjnbr/DwCoDLMNak/dUVfUK0f2rQugnlcX/FevWgFQH6gf3autRgHUC+piiXHzAOmtPx9gXgug8itQx9SXwDpw47AGKXZWvXvQmNFCwE3gCXA2dY0Az4GrRzHONA9cU/vAbERsllEOyh31e8USV2mrMPdG9uyn+rDom2/BHHCm5puWKiKmgdtAnz+rvaxO5mNygEvHaZ5BfADuARvAaWBpP4DGFBHfgBngFzClTrUKkCDeA+9S837rAEnbqb7VFcCpVJ/oCmCw959aB1AfAROpudYqgDoOLKRmPyLelAF8bcD4pPoMeAtcB34AT4uDBqXXwFG8XXUU/72MIuK1OgE8Bs6l7mEvo8up7lN1Ge0n9aK6VHMFZvJTr9S3CiALaCQhqZOSvegMIAvu2UVSWpigLC1fbQ0gm6in7qpfLCQbhwGIYcyPQ53/G3YO8BtUtd35bvKcVwAAAABJRU5ErkJggg==")}.taro-video-mute.taro-video-type-mute{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAgCAYAAAB3j6rJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGAGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTktMDQtMTFUMTA6MTk6MDMrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA0LTExVDEwOjIyOjMzKzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTA0LTExVDEwOjIyOjMzKzA4OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAzYjJmNjE2LTZmZTUtNDJjNC1iNTgwLTczNzZjZjI2NzdmNSIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjYzZjQ2NTYzLWE0ZjktOGQ0Mi1hM2FhLTY3ODJhNDBhYWNjMSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjIyYWNjMWFlLTg4ZmMtNDBlZi1iMWM1LTNmODgwY2QzYWI2MiI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MjJhY2MxYWUtODhmYy00MGVmLWIxYzUtM2Y4ODBjZDNhYjYyIiBzdEV2dDp3aGVuPSIyMDE5LTA0LTExVDEwOjE5OjAzKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDNiMmY2MTYtNmZlNS00MmM0LWI1ODAtNzM3NmNmMjY3N2Y1IiBzdEV2dDp3aGVuPSIyMDE5LTA0LTExVDEwOjIyOjMzKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5PmxYVAAACLklEQVRYhc2XP2sVQRRHz40hKoqaQgVBCy1EozFlGiVFxMLGh4piYWEh+hkEP4YKAVFEEFTyughaCH6DqIVpAhYWEgIxoJE8cywyi5tNHu/tJmvyg2WZO3dmzt47/zZUtoJ6Nhsg09YDiYhKDzACTAFNYH9lEpUq80TdrT5wpV5n/ZV9KoGoo+pXV2uyKkipOaLuUceAt8DhUvQd1FsCYhR4ChzaSIBMHSOi7lOfsByFWiCgEBH1GHAF2JlMPcBt4GC3HUYEaj9wF3gVEVPtfNVTwAXgWX7CDKq/1piAZTSZBmim8qJ6sQ3EgDqb/L7kU3MH2NHtl3dQX3r3Ak21UYAYAj4A/cl0JB+RF+uMRj4iQ+p8zt7KYFLdXKHuRi0gacBhV6a6pd5bA6KRNagFJPU9qv5u47toLmW1HnoR8Q5oAK1CVQu4FBHj/wUkaXsb+4pzpVaQFPqXrN7Be4Fx9VztIOr1BLEtmX4A94E/qdwHTKjDWYM6lu81dSlnn3V570BtuLxaMs2rZ/IgYxsBovaoPwsQA4VoFWEm8ql5DiysNyURsQTMpOIMcDYiPhd8xoGr/FtNC2G6FKXD6ihwGdiVHMoeeh8jYlA9ANwE3kTEp3bO6vE03qOONzR1r/q4RGrquaFFxFxE3ALOA9+6jExpdb180y55AhirhaRTatq0GXEzL8+ZIuI9cBJ4WKiartJf9nWV/mty7UfUafW7erpqRGI9EBuprffvu9n6C1KOmsqwI5A1AAAAAElFTkSuQmCC")}.taro-video-danmu{overflow:visible;position:absolute;left:0;top:0;bottom:0;margin-top:14px;margin-bottom:44px;width:100%;line-height:14px;font-size:14px}.taro-video-danmu-item{position:absolute;left:100%;line-height:1;color:#fff;white-space:nowrap;-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition-property:left, -webkit-transform;transition-property:left, -webkit-transform;transition-property:left, transform;transition-property:left, transform, -webkit-transform;-webkit-transition-duration:3s;transition-duration:3s;-webkit-transition-timing-function:linear;transition-timing-function:linear}.taro-video-toast{display:block;visibility:hidden;position:absolute;left:50%;top:50%;border-radius:5px;background-color:rgba(255, 255, 255, 0.8);pointer-events:none;color:#000;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.taro-video-toast.taro-video-toast-volume{display:block;width:100px;height:100px}.taro-video-toast-volume .taro-video-toast-title{display:block;margin-top:10px;width:100%;line-height:16px;text-align:center;font-size:12px}.taro-video-toast-volume .taro-video-toast-icon{display:block;margin-left:25%;width:50%;height:50%;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAFhklEQVR4Xu2aeaxfQxTHP1VBES0NIQitWtpaaxeCUkQtaYVa0tiClAq1ExIiQTVppaWxt8RWSa2tWkJQRGgtQaSIpUKEpG0ssbbk28yV2+mZO/e9e3vvu/e98897mZnfzPl+75mZs0wvurn06ub46SGgxwLqZaA3sB/wO/A+8G/V6tS5BU4BJgJbO9DvAMOB36okoQ4CNgAeBEYbQK8Bbm4zAdsBc4EdAyA/APZoKwHHAA8DG2UA/AnYrG0ErAVcD1yXA9gfQJ8c40obsqbPgH7AY8CROTVuFQFD3X7fJid4DWsNAWOAGZ0w58YTsDZwKzChA189PbTRBGwKzAYO6iT4srbAMHfTfAksjulS1iG4JzAH2Dy2YKS/qAVcCdzi1vgZOBZ4PWvNGAG6wgYCW0IwctzNmf06BcEXtYABwOeA4otEfgEOdnGGqV6IAAUopwM6zDYuAVjeKYpYwCjgCWOhH513+b2lhE+Avrj89NPyalzyuCIE6EN9BfQ1dHoPOAD40+9LE6D/5aoqSqtLsgiQC60DTiHzfGCFoaSsQAexZdlTgEuyCDgLuK8u5G7dEAHyKN8CBrtxLwDHAX8Z+l4N3GS0L3db4aN0X5opmc+2XZQAfb2LPd2eciG1lUSRJZ9qYHkZONwiYAjwSc3gs24BXWWWfzEVuMjQez13HljX8v7A28lvEgsInaBVcxLaAvr6sgJLtBWeNTrOB+4w2p8DRvoEnAPcXTVaY70QAbrbXwIONX7zBSAL/tvrk1+iviTllnRry2irr/QSEws4D7izCxMg1XQLLAQGGXpeCkw22kOWI49RMUujCJC+uwAfGtfcImAng4AtAMsBeg04pIkESOfbgQsMsNoGnxrtSrfv7rXrSlwXWN6kLZBgEBiB8iWUUZZPIN/AF1nMoiYSICDfAlt5iB4CxhpAzwXuMtqPBuY1lYB5wFEeqFeAwwyguvIUqvuiQO/xphJwP3Cmhyh0EKrOoGDIF7n+M5pKwEwXrqdBCaQSM77Ig7SSIicDs5pKwIvACA+pzFwZIF9OlKm36QyQV7jEqDDJk5VD58uFgGIGX1Se+6yJFqAKsqI6X84GdDb4Mh0Y5zUqjFYFakUTCXja5QLSmBQHbAL8ahAgT1AeYVreSKLLphGwF/CuAfLJQLldGSTFD75c5d4mNCoWyAqG9gYWGED1AOMKo12ZbiWA/idA++deY2DVTZ0Jh5UJPsFQtD/wDaAHGWl5EzgwaUi2gK4UXS11S0cTIjrMFBtYQdAk4DID0BnAAz4B6wNLgTKKG0VIDBHwqitwpOcW+OOB540FdeipNKbUWFrUtn06o5xOij4KyDuqU0IE3Obl/rLA63pTzm9XA8jKACjdniZAaSKFmUpB1yUhAlTsUEpMh913wEkuTe7rKTzPAHqO44vpKPkFhH3cWWBVV6ogJVYZUgz/tXtIYelzI3Ct0fExIGx6j7iKWBUUveyYBehv1RIjIEsfqziq8Xp4pSBJOYTVJFQcVY3wCFeKUjVGyYfQWB00+5bEVBECrNS+qsOKBpVHNCVWHs+LS7H5PV5pOu9v0+OKEOAXR39w1e1C7wM6AkJ1eLmkRcrpRQiQrqobXO5S3vL3/4kBKMsCknV0k+iasVLUMV3UX5SAPGtED8EOT+L9YENnCasUIXNO2goChFWHqAIRyxXN4qI1BCQg9dJESYq8LnbrCBAR8t50Lig6i0krCRBoVWhVlt45wkBrCRBuRZyPuAguxIPe9lXqhpd9DcZMXOvdkPF0Xu/8dohNUmZ/1QQkuitXr+d4fryuFx3jywQYm6suAqSX8vLTXKJDt4QqO6rtLYspXWZ/nQQkOJTAUJZGIav19q9MvKvN1RUIWKMAY5P3EBBjqO393d4C/gMVHwRQlpx21QAAAABJRU5ErkJggg==");background-repeat:no-repeat;background-position:50% 50%;background-size:50%;fill:#000}.taro-video-toast-volume .taro-video-toast-value{margin-left:10px;margin-top:5px;width:80px;height:5px}.taro-video-toast-volume .taro-video-toast-value>.taro-video-toast-value-content{overflow:hidden}.taro-video-toast-volume-grids{width:80px;height:5px}.taro-video-toast-volume-grids-item{float:left;width:7.1px;height:5px;background-color:#000}.taro-video-toast-volume-grids-item:not(:first-child){margin-left:1px}.taro-video-toast.taro-video-toast-progress{padding:6px;background-color:rgba(0, 0, 0, 0.8);line-height:18px;font-size:14px;color:#fff}';const b=class{constructor(i){t(this,i);this.onPlay=o(this,"play",7);this.onPause=o(this,"pause",7);this.onEnded=o(this,"ended",7);this.onTimeUpdate=o(this,"timeupdate",7);this.onError=o(this,"error",7);this.onFullScreenChange=o(this,"fullscreenchange",7);this.onProgress=o(this,"progress",7);this.onLoadedMetaData=o(this,"loadedmetadata",7);this.currentTime=0;this.isDraggingProgress=false;this.gestureType="none";this.analyzeGesture=t=>{var i;const e={type:"none"};const s=t.touches[0].screenX;const o=t.touches[0].screenY;const n=s-this.lastTouchScreenX;const r=o-this.lastTouchScreenY;const a=this.isFullScreen?this.vslideGestureInFullscreen:this.vslideGesture;if(this.gestureType==="none"){const t=h(n,r);if(t<10)return e;if(Math.abs(r)>=Math.abs(n)){if(a){this.gestureType="adjustVolume";this.lastVolume=this.videoRef.volume}else{return e}}else if(Math.abs(r)<Math.abs(n)){if(this.enableProgressGesture){this.gestureType="adjustProgress";this.lastPercentage=this.currentTime/((i=this.duration)!==null&&i!==void 0?i:this._duration)}else{return e}}}e.type=this.gestureType;e.dataX=l(n/200);e.dataY=l(r/200);return e};this.loadNativePlayer=()=>{var t,i;if(this.videoRef){this.videoRef.src=this.src;(i=(t=this.videoRef).load)===null||i===void 0?void 0:i.call(t)}};this.init=()=>{const{src:t,videoRef:i}=this;if(A(t)){import("./p-d5234e7e.js").then((function(t){return t.h})).then((e=>{const s=e.default;this.HLS=s;if(s.isSupported()){if(this.hls){this.hls.destroy()}this.hls=new s;this.hls.loadSource(t);this.hls.attachMedia(i);this.hls.on(s.Events.MANIFEST_PARSED,(()=>{this.autoplay&&this.play()}));this.hls.on(s.Events.ERROR,((t,i)=>{this.handleError(i)}))}else if(i.canPlayType("application/vnd.apple.mpegurl")){this.loadNativePlayer()}else{console.error("该浏览器不支持 HLS 播放")}}))}else{this.loadNativePlayer()}};this.handlePlay=()=>{this.isPlaying=true;this.isFirst=false;this.controlsRef.toggleVisibility(true);this.onPlay.emit()};this.handlePause=()=>{this.isPlaying=false;this.controlsRef.toggleVisibility(true);this.onPause.emit()};this.handleEnded=()=>{this.isFirst=true;this.pause();this.controlsRef.toggleVisibility();this.onEnded.emit()};this.handleTimeUpdate=r((async t=>{var i,e;this.currentTime=this.videoRef.currentTime;const s=this.duration||this._duration;const o=await this.controlsRef.getIsDraggingProgressBall();if(this.controls&&this.showProgress){if(!o&&!this.isDraggingProgress){this.controlsRef.setProgressBall(this.currentTime/s);this.controlsRef.setCurrentTime(this.currentTime)}}this.danmuRef.tick(this.currentTime);this.onTimeUpdate.emit({duration:(i=t.target)===null||i===void 0?void 0:i.duration,currentTime:(e=t.target)===null||e===void 0?void 0:e.currentTime});if(this.duration){if(this.currentTime>=this.duration){this.seek(0);this.handleEnded()}}}),250);this.handleError=t=>{var i,e;if(this.hls){switch(t.type){case this.HLS.ErrorTypes.NETWORK_ERROR:this.onError.emit({errMsg:t.response});this.hls.startLoad();break;case this.HLS.ErrorTypes.MEDIA_ERROR:this.onError.emit({errMsg:t.reason||"媒体错误,请重试"});this.hls.recoverMediaError();break}}else{this.onError.emit({errMsg:(e=(i=t.target)===null||i===void 0?void 0:i.error)===null||e===void 0?void 0:e.message})}};this.handleDurationChange=()=>{this._duration=this.videoRef.duration};this.handleProgress=()=>{this.onProgress.emit()};this.handleLoadedMetaData=t=>{const i=t.target;this.onLoadedMetaData.emit({width:i.videoWidth,height:i.videoHeight,duration:i.duration})};this._play=()=>this.videoRef.play();this._pause=()=>this.videoRef.pause();this._stop=()=>{this.videoRef.pause();this._seek(0)};this._seek=t=>{this.videoRef.currentTime=t};this.onTouchStartContainer=t=>{this.lastTouchScreenX=t.touches[0].screenX;this.lastTouchScreenY=t.touches[0].screenY};this.onClickContainer=()=>{if(this.enablePlayGesture){const t=Date.now();if(t-this.lastClickedTime<300){this.isPlaying?this.pause():this.play()}this.lastClickedTime=t}this.controlsRef.toggleVisibility()};this.onClickFullScreenBtn=t=>{t.stopPropagation();this.toggleFullScreen()};this.handleFullScreenChange=t=>{const i=(new Date).getTime();if(!t.detail&&this.isFullScreen&&!document[c.fullscreenElement]&&i-this.fullScreenTimestamp>100){this.toggleFullScreen(false)}};this.toggleFullScreen=(t=!this.isFullScreen)=>{this.isFullScreen=t;this.controlsRef.toggleVisibility(true);this.fullScreenTimestamp=(new Date).getTime();this.onFullScreenChange.emit({fullScreen:this.isFullScreen,direction:"vertical"});if(this.isFullScreen&&!document[c.fullscreenElement]){setTimeout((()=>{this.videoRef[c.requestFullscreen]({navigationUI:"auto"})}),0)}};this.toggleMute=t=>{t.stopPropagation();this.videoRef.muted=!this.isMute;this.controlsRef.toggleVisibility(true);this.isMute=!this.isMute};this.toggleDanmu=t=>{t.stopPropagation();this.controlsRef.toggleVisibility(true);this._enableDanmu=!this._enableDanmu};this.src=undefined;this.duration=undefined;this.controls=true;this.autoplay=false;this.loop=false;this.muted=false;this.initialTime=0;this.poster=undefined;this.objectFit="contain";this.showProgress=true;this.showFullscreenBtn=true;this.showPlayBtn=true;this.showCenterPlayBtn=true;this.showMuteBtn=false;this.danmuList=undefined;this.danmuBtn=false;this.enableDanmu=false;this.enablePlayGesture=false;this.enableProgressGesture=true;this.vslideGesture=false;this.vslideGestureInFullscreen=true;this.nativeProps={};this._duration=undefined;this._enableDanmu=false;this.isPlaying=false;this.isFirst=true;this.isFullScreen=false;this.fullScreenTimestamp=(new Date).getTime();this.isMute=false}componentWillLoad(){this._enableDanmu=this.enableDanmu}componentDidLoad(){var t,i;this.init();if(this.initialTime){this.videoRef.currentTime=this.initialTime}(i=(t=this.danmuRef).sendDanmu)===null||i===void 0?void 0:i.call(t,this.danmuList);if(document.addEventListener){document.addEventListener(c.fullscreenchange,this.handleFullScreenChange)}if(this.videoRef&&d==="iOS"){this.videoRef.addEventListener("webkitendfullscreen",this.handleFullScreenChange)}}componentDidRender(){}disconnectedCallback(){if(document.removeEventListener){document.removeEventListener(c.fullscreenchange,this.handleFullScreenChange)}if(this.videoRef&&d==="iOS"){this.videoRef.removeEventListener("webkitendfullscreen",this.handleFullScreenChange)}}watchEnableDanmu(t){this._enableDanmu=t}watchSrc(){this.init()}async onDocumentTouchMove(t){if(this.lastTouchScreenX===undefined||this.lastTouchScreenY===undefined)return;if(await this.controlsRef.getIsDraggingProgressBall())return;const i=this.analyzeGesture(t);if(i.type==="adjustVolume"){this.toastVolumeRef.style.visibility="visible";const t=Math.max(Math.min(this.lastVolume-i.dataY,1),0);this.videoRef.volume=t;this.toastVolumeBarRef.style.width=`${t*100}%`}else if(i.type==="adjustProgress"){this.isDraggingProgress=true;this.nextPercentage=Math.max(Math.min(this.lastPercentage+(i.dataX||0),1),0);if(this.controls&&this.showProgress){this.controlsRef.setProgressBall(this.nextPercentage);this.controlsRef.toggleVisibility(true)}const t=this.duration||this._duration;this.toastProgressTitleRef.innerHTML=`${a(this.nextPercentage*t)} / ${a(t)}`;this.toastProgressRef.style.visibility="visible"}}onDocumentTouchEnd(){var t;if(this.gestureType==="adjustVolume"){this.toastVolumeRef.style.visibility="hidden"}else if(this.gestureType==="adjustProgress"){this.toastProgressRef.style.visibility="hidden"}if(this.isDraggingProgress){this.isDraggingProgress=false;this.seek(this.nextPercentage*((t=this.duration)!==null&&t!==void 0?t:this._duration))}this.gestureType="none";this.lastTouchScreenX=undefined;this.lastTouchScreenY=undefined}async getHlsObject(){return this.hls}async play(){this._play()}async pause(){this._pause()}async stop(){this._stop()}async seek(t){this._seek(t)}async requestFullScreen(){this.toggleFullScreen(true)}async exitFullScreen(){this.toggleFullScreen(false)}render(){const{controls:t,autoplay:s,loop:o,muted:r,poster:h,objectFit:l,isFirst:d,isMute:c,isFullScreen:A,showCenterPlayBtn:u,isPlaying:g,_enableDanmu:b,showMuteBtn:p,danmuBtn:v,showFullscreenBtn:m,nativeProps:f}=this;const w=this.duration||this._duration;const E=a(w);return i(e,{class:n("taro-video-container",{"taro-video-type-fullscreen":A}),onTouchStart:this.onTouchStartContainer,onClick:this.onClickContainer},i("video",Object.assign({class:"taro-video-video",style:{"object-fit":l},ref:t=>{if(t){this.videoRef=t}},autoplay:s,loop:o,muted:r,poster:t?h:undefined,playsinline:true,"webkit-playsinline":true,onPlay:this.handlePlay,onPause:this.handlePause,onEnded:this.handleEnded,onTimeUpdate:this.handleTimeUpdate,onError:this.handleError,onDurationChange:this.handleDurationChange,onProgress:this.handleProgress,onLoadedMetaData:this.handleLoadedMetaData},f),"暂时不支持播放该视频"),i("taro-video-danmu",{ref:t=>{if(t){this.danmuRef=t}},enable:b}),d&&u&&!g&&i("div",{class:"taro-video-cover"},i("div",{class:"taro-video-cover-play-button",onClick:()=>this.play()}),i("p",{class:"taro-video-cover-duration"},E)),i("taro-video-control",{ref:t=>{if(t){this.controlsRef=t}},controls:t,currentTime:this.currentTime,duration:w,isPlaying:this.isPlaying,pauseFunc:this._pause,playFunc:this._play,seekFunc:this._seek,showPlayBtn:this.showPlayBtn,showProgress:this.showProgress},p&&i("div",{class:n("taro-video-mute",{"taro-video-type-mute":c}),onClick:this.toggleMute}),v&&i("div",{class:n("taro-video-danmu-button",{"taro-video-danmu-button-active":b}),onClick:this.toggleDanmu},"弹幕"),m&&i("div",{class:n("taro-video-fullscreen",{"taro-video-type-fullscreen":A}),onClick:this.onClickFullScreenBtn})),i("div",{class:"taro-video-toast taro-video-toast-volume",ref:t=>{if(t){this.toastVolumeRef=t}}},i("div",{class:"taro-video-toast-title"},"音量"),i("div",{class:"taro-video-toast-icon"}),i("div",{class:"taro-video-toast-value"},i("div",{class:"taro-video-toast-value-content",ref:t=>{if(t){this.toastVolumeBarRef=t}}},i("div",{class:"taro-video-toast-volume-grids"},Array(10).fill(1).map((()=>i("div",{class:"taro-video-toast-volume-grids-item"}))))))),i("div",{class:"taro-video-toast taro-video-toast-progress",ref:t=>{if(t){this.toastProgressRef=t}}},i("div",{class:"taro-video-toast-title",ref:t=>{if(t){this.toastProgressTitleRef=t}}})))}get el(){return s(this)}static get watchers(){return{enableDanmu:["watchEnableDanmu"],src:["watchSrc"]}}};b.style=g;const p=class{constructor(i){t(this,i);this.list=[];this.danmuElList=[];this.currentTime=0;this.enable=false;this.danmuList=[]}ensureProperties(t){const i=Object.assign({},t);if(!("time"in t)){i.time=this.currentTime}i.key=Math.random();i.bottom=`${Math.random()*90+5}%`;return i}async sendDanmu(t=[]){if(Array.isArray(t)){this.list=[...this.list,...t.map((t=>this.ensureProperties(t)))]}else{const i=t;this.list=[...this.list,Object.assign({},this.ensureProperties(i))]}}async tick(t){this.currentTime=t;if(!this.enable)return;const i=this.list;const e=i.filter((({time:i})=>t-i<4&&t>i));let s=false;const o=this.danmuList;if(e.length!==o.length){s=true}else{s=e.some((({key:t})=>o.every((i=>t!==i.key))))}if(s){this.danmuList=e}}componentDidUpdate(){requestAnimationFrame((()=>{setTimeout((()=>{const t=this.danmuElList.splice(0);t.forEach((t=>{t.style.left="0";t.style.webkitTransform="translateX(-100%)";t.style.transform="translateX(-100%)"}))}))}))}render(){if(!this.enable)return"";return i(e,{class:"taro-video-danmu"},this.danmuList.map((({text:t,color:e,bottom:s,key:o})=>i("p",{class:"taro-video-danmu-item",key:o,style:{color:e,bottom:s},ref:t=>{if(t){this.danmuElList.push(t)}}},t))))}};export{u as taro_video_control,b as taro_video_core,p as taro_video_danmu};
2
- //# sourceMappingURL=p-020bcd8c.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["formatTime","time","sec","Math","round","min","calcDist","x","y","sqrt","pow","normalizeNumber","number","max","scene","screenFn","val","fnMap","defaultIOSMap","i","l","length","ret","document","isHls","url","test","VideoControl","this","visible","isDraggingProgressBall","percentage","progressDimensions","left","width","calcPercentage","pageX","pos","onDragProgressBallStart","hideControlsTimer","clearTimeout","onClickProgress","e","stopPropagation","seekFunc","duration","toggleVisibility","onDocumentTouchMove","touchX","touches","setProgressBall","setCurrentTime","onDocumentTouchEnd","async","progressBallRef","style","nextVisible","undefined","isPlaying","setTimeout","el","visibility","currentTimeRef","innerHTML","render","controls","currentTime","pauseFunc","playFunc","showPlayBtn","showProgress","formattedDuration","playBtn","h","class","onClick","Host","ref","dom","rect","getBoundingClientRect","onTouchStart","indexCss","Video","isDraggingProgress","gestureType","analyzeGesture","obj","type","nowX","screenX","nowY","screenY","distX","lastTouchScreenX","distY","lastTouchScreenY","enableVslideGesture","isFullScreen","vslideGestureInFullscreen","vslideGesture","dist","abs","lastVolume","videoRef","volume","enableProgressGesture","lastPercentage","_a","_duration","dataX","dataY","loadNativePlayer","src","_b","load","call","init","import","then","n","Hls","default","HLS","isSupported","hls","destroy","loadSource","attachMedia","on","Events","MANIFEST_PARSED","autoplay","play","ERROR","_","data","handleError","canPlayType","console","error","handlePlay","isFirst","controlsRef","onPlay","emit","handlePause","onPause","handleEnded","pause","onEnded","handleTimeUpdate","throttle","isControlDragging","getIsDraggingProgressBall","danmuRef","tick","onTimeUpdate","target","seek","ErrorTypes","NETWORK_ERROR","onError","errMsg","response","startLoad","MEDIA_ERROR","reason","recoverMediaError","message","handleDurationChange","handleProgress","onProgress","handleLoadedMetaData","onLoadedMetaData","videoWidth","height","videoHeight","_play","_pause","_stop","_seek","position","onTouchStartContainer","onClickContainer","enablePlayGesture","now","Date","lastClickedTime","onClickFullScreenBtn","toggleFullScreen","handleFullScreenChange","timestamp","getTime","detail","fullscreenElement","fullScreenTimestamp","onFullScreenChange","fullScreen","direction","requestFullscreen","navigationUI","toggleMute","muted","isMute","toggleDanmu","_enableDanmu","componentWillLoad","enableDanmu","componentDidLoad","initialTime","sendDanmu","danmuList","addEventListener","fullscreenchange","componentDidRender","disconnectedCallback","removeEventListener","watchEnableDanmu","newVal","watchSrc","gestureObj","toastVolumeRef","nextVolume","toastVolumeBarRef","nextPercentage","toastProgressTitleRef","toastProgressRef","loop","poster","objectFit","showCenterPlayBtn","showMuteBtn","danmuBtn","showFullscreenBtn","nativeProps","durationTime","classNames","Object","assign","playsinline","onDurationChange","enable","Array","fill","map","VideoDanmu","list","danmuElList","ensureProperties","danmu","clonedDanmu","key","random","bottom","isArray","newDanmuList","filter","shouldUpdate","oldDanmuList","some","every","componentDidUpdate","requestAnimationFrame","splice","forEach","webkitTransform","transform","text","color","push"],"sources":["./src/components/video/utils.ts","./src/components/video/video-control.tsx","./src/components/video/style/index.scss?tag=taro-video-core","./src/components/video/video.tsx","./src/components/video/video-danmu.tsx"],"sourcesContent":["export const formatTime = (time?: number): string => {\r\n if (!time) return ''\r\n const sec = Math.round(time % 60)\r\n const min = Math.round((time - sec) / 60)\r\n return `${min < 10 ? `0${min}` : min}:${sec < 10 ? `0${sec}` : sec}`\r\n}\r\n\r\nexport const calcDist = (x: number, y: number): number => {\r\n return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2))\r\n}\r\n\r\nexport const normalizeNumber = (number: number): number => {\r\n return Math.max(-1, Math.min(number, 1))\r\n}\r\n\r\nexport let scene = 'default'\r\n\r\nexport const screenFn = (function () {\r\n let val\r\n const fnMap = [\r\n [\r\n 'requestFullscreen',\r\n 'exitFullscreen',\r\n 'fullscreenElement',\r\n 'fullscreenEnabled',\r\n 'fullscreenchange',\r\n 'fullscreenerror'\r\n ],\r\n // New WebKit\r\n [\r\n 'webkitRequestFullscreen',\r\n 'webkitExitFullscreen',\r\n 'webkitFullscreenElement',\r\n 'webkitFullscreenEnabled',\r\n 'webkitfullscreenchange',\r\n 'webkitfullscreenerror'\r\n ],\r\n // Old WebKit\r\n [\r\n 'webkitRequestFullScreen',\r\n 'webkitCancelFullScreen',\r\n 'webkitCurrentFullScreenElement',\r\n 'webkitCancelFullScreen',\r\n 'webkitfullscreenchange',\r\n 'webkitfullscreenerror'\r\n ],\r\n [\r\n 'mozRequestFullScreen',\r\n 'mozCancelFullScreen',\r\n 'mozFullScreenElement',\r\n 'mozFullScreenEnabled',\r\n 'mozfullscreenchange',\r\n 'mozfullscreenerror'\r\n ],\r\n [\r\n 'msRequestFullscreen',\r\n 'msExitFullscreen',\r\n 'msFullscreenElement',\r\n 'msFullscreenEnabled',\r\n 'MSFullscreenChange',\r\n 'MSFullscreenError'\r\n ]\r\n ]\r\n var defaultIOSMap = [\r\n 'webkitEnterFullscreen',\r\n 'webkitExitFullscreen',\r\n 'webkitCurrentFullScreenElement',\r\n 'webkitSupportsFullscreen',\r\n 'fullscreenchange',\r\n 'fullscreenerror'\r\n ]\r\n let i = 0\r\n const l = fnMap.length\r\n const ret: Record<string, any> = {}\r\n // This for loop essentially checks the current document object for the property/methods above.\r\n for (; i < l; i++) {\r\n val = fnMap[i]\r\n if (val && val[1] in document) {\r\n for (i = 0; i < val.length; i++) {\r\n ret[fnMap[0][i]] = val[i]\r\n }\r\n return ret\r\n }\r\n }\r\n if (!ret[fnMap[0][0]]) {\r\n scene = 'iOS'\r\n // when there is no any APIs be set.\r\n\r\n // In IOS, there is no 'webkitEnterFullscreen' property `in document` but video can use it for fullscreen.\r\n // ref: https://developer.apple.com/documentation/webkitjs/htmlvideoelement/1633500-webkitenterfullscreen\r\n for (i = 0; i < defaultIOSMap.length; i++) {\r\n ret[fnMap[0][i]] = defaultIOSMap[i]\r\n }\r\n }\r\n // If it doesn't find any of them, this whole function returns {}\r\n // and the fn variable is set to this returned value.\r\n return ret\r\n})()\r\n\r\nexport const isHls = url => /\\.(m3u8)($|\\?)/i.test(url)\r\n","import { Component, h, ComponentInterface, Prop, Host, Element, Listen, Method } from '@stencil/core'\nimport { formatTime } from './utils'\n\n@Component({\n tag: 'taro-video-control'\n})\nexport class VideoControl implements ComponentInterface {\n private currentTimeRef: HTMLDivElement\n private progressBallRef: HTMLDivElement\n private visible = false\n private isDraggingProgressBall = false\n private hideControlsTimer: ReturnType<typeof setTimeout>\n private percentage = 0\n private progressDimensions = {\n left: 0,\n width: 0\n }\n\n @Element() el: HTMLElement\n\n @Prop() controls: boolean\n @Prop() currentTime: number\n @Prop() duration: number\n @Prop() isPlaying: boolean\n @Prop() pauseFunc: () => void\n @Prop() playFunc: () => void\n @Prop() seekFunc: (position: number) => void\n @Prop() showPlayBtn: boolean\n @Prop() showProgress: boolean\n\n @Listen('touchmove', {\n target: 'document'\n })\n onDocumentTouchMove (e: TouchEvent) {\n if (!this.isDraggingProgressBall) return\n const touchX = e.touches[0].pageX\n this.percentage = this.calcPercentage(touchX)\n this.setProgressBall(this.percentage)\n this.setCurrentTime(this.percentage * this.duration)\n }\n\n @Listen('touchend', {\n target: 'document'\n })\n @Listen('touchcancel', {\n target: 'document'\n })\n onDocumentTouchEnd () {\n if (!this.isDraggingProgressBall) return\n\n this.isDraggingProgressBall = false\n this.seekFunc(this.percentage * this.duration)\n this.toggleVisibility(true)\n }\n\n @Method()\n async setProgressBall (percentage: number) {\n if (this.progressBallRef) {\n this.progressBallRef.style.left = `${percentage * 100}%`\n }\n }\n\n @Method()\n async toggleVisibility (nextVisible?: boolean) {\n const visible = nextVisible === undefined ? !this.visible : nextVisible\n if (visible) {\n this.hideControlsTimer && clearTimeout(this.hideControlsTimer)\n if (this.isPlaying) {\n this.hideControlsTimer = setTimeout(() => {\n this.toggleVisibility(false)\n }, 2000)\n }\n this.el.style.visibility = 'visible'\n } else {\n this.el.style.visibility = 'hidden'\n }\n this.visible = !!visible\n }\n\n @Method()\n async getIsDraggingProgressBall () {\n return this.isDraggingProgressBall\n }\n\n @Method()\n async setCurrentTime (time: number) {\n this.currentTimeRef.innerHTML = formatTime(time)\n }\n\n calcPercentage = (pageX: number): number => {\n let pos = pageX - this.progressDimensions.left\n pos = Math.max(pos, 0)\n pos = Math.min(pos, this.progressDimensions.width)\n return pos / this.progressDimensions.width\n }\n\n onDragProgressBallStart = () => {\n this.isDraggingProgressBall = true\n this.hideControlsTimer && clearTimeout(this.hideControlsTimer)\n }\n\n onClickProgress = (e: MouseEvent) => {\n e.stopPropagation()\n\n const percentage = this.calcPercentage(e.pageX)\n this.seekFunc(percentage * this.duration)\n this.toggleVisibility(true)\n }\n\n render () {\n const {\n controls,\n currentTime,\n duration,\n isPlaying,\n pauseFunc,\n playFunc,\n showPlayBtn,\n showProgress\n } = this\n\n const formattedDuration = formatTime(duration)\n let playBtn\n\n if (!showPlayBtn) {\n playBtn = null\n } else if (isPlaying) {\n playBtn = <div class='taro-video-control-button taro-video-control-button-pause' onClick={pauseFunc} />\n } else {\n playBtn = <div class='taro-video-control-button taro-video-control-button-play' onClick={playFunc} />\n }\n\n return (\n <Host class='taro-video-bar taro-video-bar-full'>\n {controls && (\n <div class='taro-video-controls'>\n {playBtn}\n {showProgress && (\n <div class='taro-video-current-time' ref={dom => (this.currentTimeRef = dom as HTMLDivElement)}>\n {formatTime(currentTime)}\n </div>\n )}\n {showProgress && (\n <div class='taro-video-progress-container' onClick={this.onClickProgress}>\n <div\n class='taro-video-progress'\n ref={ref => {\n if (!ref) return\n const rect = ref.getBoundingClientRect()\n this.progressDimensions.left = rect.left\n this.progressDimensions.width = rect.width\n }}>\n <div class='taro-video-progress-buffered' style={{ width: '100%' }} />\n <div\n class='taro-video-ball'\n ref={dom => (this.progressBallRef = dom as HTMLDivElement)}\n onTouchStart={this.onDragProgressBallStart}\n style={{\n left: `${formattedDuration ? (this.currentTime / duration) * 100 : 0}%`\n }}\n >\n <div class='taro-video-inner' />\n </div>\n </div>\n </div>\n )}\n {showProgress && <div class='taro-video-duration'>{formattedDuration}</div>}\n </div>\n )}\n <slot />\n </Host>\n )\n }\n}\n","@charset \"UTF-8\";\n\n.taro-video {\n display: inline-block;\n overflow: hidden;\n position: relative;\n width: 100%;\n height: 225px;\n line-height: 0;\n}\n\n.taro-video[hidden] {\n display: none;\n}\n\n.taro-video-container {\n display: inline-block;\n\n // NOTE: video 元素父节点设置该属性会导致 iOS 元素层级问题 https://stackoverflow.com/questions/49653475/video-and-z-index-inside-scaled-element-some-divs-disappear\n // overflow: hidden;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: #000;\n object-position: inherit;\n}\n\n.taro-video-container.taro-video-type-fullscreen {\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 999;\n}\n\n.taro-video-container.taro-video-type-fullscreen.taro-video-type-rotate-left {\n transform: translate(-50%, -50%) rotate(-90deg);\n}\n\n.taro-video-container.taro-video-type-fullscreen.taro-video-type-rotate-right {\n transform: translate(-50%, -50%) rotate(90deg);\n}\n\n.taro-video-video {\n width: 100%;\n height: 100%;\n object-position: inherit;\n}\n\n.taro-video-cover {\n display: flex;\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n z-index: 1;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n background-color: rgb(1 1 1 / 50%);\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -webkit-box-pack: center;\n -webkit-box-align: center;\n}\n\n.taro-video-cover-play-button {\n width: 40px;\n height: 40px;\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: 50%;\n}\n\n.taro-video-cover-duration {\n margin-top: 10px;\n line-height: 1;\n font-size: 16px;\n color: #fff;\n}\n\n.taro-video-bar {\n display: flex;\n visibility: hidden;\n overflow: hidden;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 1;\n align-items: center;\n padding: 0 10px;\n height: 44px;\n background-color: rgb(0 0 0 / 50%);\n -webkit-box-align: center;\n}\n\n.taro-video-bar.taro-video-bar-full {\n left: 0;\n}\n\n.taro-video-controls {\n display: flex;\n -webkit-box-flex: 1;\n flex-grow: 1;\n margin: 0 8.5px;\n}\n\n.taro-video-control-button {\n box-sizing: content-box;\n margin-left: -8.5px;\n padding: 14.5px 12.5px;\n width: 13px;\n height: 15px;\n}\n\n.taro-video-control-button::after {\n display: block;\n width: 100%;\n height: 100%;\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: 100%;\n content: \"\";\n}\n\n.taro-video-control-button.taro-video-control-button-play::after,\n.taro-video-cover-play-button {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAeCAYAAAAy2w7YAAAAAXNSR0IArs4c6QAAAWhJREFUSA1j+P///0cgBoHjQGzCQCsAtgJB/AMy5wCxGNXtQ9iBwvoA5BUCMQvVLEQxHpNzDSjkRhXLMM3GKrIeKKpEkYVYjcUu+AMo3ALE3GRZiN1MvKKPgbIRJFuG10j8koeA0gZEW4jfLIKyf4EqpgOxMEELCRpFnIJ3QGU5QMyM00LizCFa1SWgSkeslhFtBGkKVwGVy6FYSJp+klR/A6quB2JOkIWMIK0oNlOf8xBoZDE9LAI7nYn6HsBq4l96WHQEaLUpAyiOaASeAM2NgvuPBpaACt82IEYtfKls0UagecpwXyAzqGTRdaA57sjmYrAptAjUsCkGYlYMg9EFyLQI1IiZB8Ti6Obh5JNh0QmgHlOcBuKSIMGi50C18UDMiMssvOJEWPQLqKYbiHnxGkRIkoBF24DyaoTMIEoeh0W3geI+RBlArCI0iz4D+RVAzEasfqLVAQ19AcSg5LoYiKWI1kiiQgCMBLnEEcfDSgAAAABJRU5ErkJggg==\");\n}\n\n.taro-video-control-button.taro-video-control-button-pause::after {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAAAXNSR0IArs4c6QAAAFlJREFUSA3tksEKACAIQ7X//5zq98wOgQayum8QaGweHhMzG/6OujzKAymn+0LMqivu1XznWmX8/echTIyMyAgTwA72iIwwAexgj8gIE8CO3aMRbDPMaEy5BRGaKcZv8YxRAAAAAElFTkSuQmCC\");\n}\n\n.taro-video-current-time,\n.taro-video-duration {\n margin-top: 15px;\n margin-bottom: 14.5px;\n height: 14.5px;\n line-height: 14.5px;\n font-size: 12px;\n color: #cbcbcb;\n}\n\n.taro-video-progress-container {\n position: relative;\n flex-grow: 2;\n -webkit-box-flex: 2;\n}\n\n.taro-video-progress {\n position: relative;\n margin: 21px 12px;\n height: 2px;\n background-color: hsl(0deg 0% 100% / 40%);\n}\n\n.taro-video-progress-buffered {\n position: absolute;\n left: 0;\n top: 0;\n width: 0;\n height: 100%;\n background-color: hsl(0deg 0% 100% / 80%);\n transition: width 0.1s;\n}\n\n.taro-video-ball {\n position: absolute;\n left: 0;\n top: -21px;\n box-sizing: content-box;\n margin-left: -22px;\n padding: 14px;\n width: 16px;\n height: 16px;\n}\n\n.taro-video-inner {\n border-radius: 50%;\n width: 100%;\n height: 100%;\n background-color: #fff;\n}\n\n.taro-video-danmu-button {\n margin: 0 8.5px;\n padding: 2px 10px;\n border: 1px solid #fff;\n border-radius: 5px;\n line-height: 1;\n font-size: 13px;\n color: #fff;\n white-space: nowrap;\n}\n\n.taro-video-danmu-button.taro-video-danmu-button-active {\n border-color: #48c23d;\n color: #48c23d;\n}\n\n.taro-video-fullscreen,\n.taro-video-mute {\n box-sizing: content-box;\n padding: 8.5px;\n width: 17px;\n height: 17px;\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: 50%;\n}\n\n.taro-video-fullscreen {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAhUlEQVRYR+2WSwrAMAhEnZO3PfmULLooGEFTiIXJ2s/kRY2wzQeb85sE9CRA8jSzY1YfAFzhJBnU1AVgxH2dSiArCnD9QgGzRNnOech48SRABHoSyFb5in3PSbhyo6yvCPQkEM3u7BsPe/0FIvBfAh/vhKmVbO9SWun1qk/PSVi9TcVPBG6R1YIhgWwNpQAAAABJRU5ErkJggg==\");\n}\n\n.taro-video-fullscreen.taro-video-type-fullscreen {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABPUlEQVRYR+2Xu0pDURBF1/ZLxNcHKNiIlfhA7C0UBSEE8RNEBNFPUEQEEbGxFiSSSrCwEHsf5E/ccsSUuWfUhKQ40947+y42Z8+ZK/pcinzf9hhwD1xJ2q/qsb0JHAOzkl5y+lGAGnCWICQtZgAS6DxQk3TeLYA6cAo0JSXxjmW7CcwBdUkJurKiDhSA4kBvHbA9CqwBQx2O7BSw8ssU3ALPFRF4knT3nQLbr8B4LjLBOdAAFgJaLUkjbYC9n+zm+i4kXWbmwCqwnRMCHiXthuZAQOzPrxSA4kBxYDAcsH0EzATCfCLpJjOINoCtgFZabg7bk7AFDAeaGpKWgitZTu5N0kQbYBmYrujo9mX0CVxL+gidAdu9vY5zXhWA4sAgOND3X7NJ4AHYCaxkB8B62gslvecSFpoDOZH/PP8Cnt7hIaM5xCEAAAAASUVORK5CYII=\");\n}\n\n.taro-video-mute {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAGAGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTktMDQtMTFUMTA6MTg6MjArMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA0LTExVDEwOjIyOjIyKzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTA0LTExVDEwOjIyOjIyKzA4OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjk3YmE4Yjg0LTFhNTYtNGM1MS04NDVkLTNiZmYyMGI0ZDc0ZiIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjg1NGQ3MjlkLWUwNjctZjU0OC1hMTlhLTBlZjQ4OGRkYjJiOSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjA1ODY3ZDFlLWQ3NGEtNDgyNC04MDU3LTYzYmRmMTdjODk5ZSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDU4NjdkMWUtZDc0YS00ODI0LTgwNTctNjNiZGYxN2M4OTllIiBzdEV2dDp3aGVuPSIyMDE5LTA0LTExVDEwOjE4OjIwKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OTdiYThiODQtMWE1Ni00YzUxLTg0NWQtM2JmZjIwYjRkNzRmIiBzdEV2dDp3aGVuPSIyMDE5LTA0LTExVDEwOjIyOjIyKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz459+FoAAABqElEQVRYhc2XPWsVQRSGnxPjF4oGRfxoRQKGWCU2Ft7CykrQWosEyf/If0hhIPgHDEmbNJZqCFxiQEgTUGxsBUVEHgvnyrjZZJO92V1fGIaZnTPvszPszNlQ6VIjnbr/DwCoDLMNak/dUVfUK0f2rQugnlcX/FevWgFQH6gf3autRgHUC+piiXHzAOmtPx9gXgug8itQx9SXwDpw47AGKXZWvXvQmNFCwE3gCXA2dY0Az4GrRzHONA9cU/vAbERsllEOyh31e8USV2mrMPdG9uyn+rDom2/BHHCm5puWKiKmgdtAnz+rvaxO5mNygEvHaZ5BfADuARvAaWBpP4DGFBHfgBngFzClTrUKkCDeA+9S837rAEnbqb7VFcCpVJ/oCmCw959aB1AfAROpudYqgDoOLKRmPyLelAF8bcD4pPoMeAtcB34AT4uDBqXXwFG8XXUU/72MIuK1OgE8Bs6l7mEvo8up7lN1Ge0n9aK6VHMFZvJTr9S3CiALaCQhqZOSvegMIAvu2UVSWpigLC1fbQ0gm6in7qpfLCQbhwGIYcyPQ53/G3YO8BtUtd35bvKcVwAAAABJRU5ErkJggg==\");\n}\n\n.taro-video-mute.taro-video-type-mute {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAgCAYAAAB3j6rJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGAGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTktMDQtMTFUMTA6MTk6MDMrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA0LTExVDEwOjIyOjMzKzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTA0LTExVDEwOjIyOjMzKzA4OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAzYjJmNjE2LTZmZTUtNDJjNC1iNTgwLTczNzZjZjI2NzdmNSIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjYzZjQ2NTYzLWE0ZjktOGQ0Mi1hM2FhLTY3ODJhNDBhYWNjMSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjIyYWNjMWFlLTg4ZmMtNDBlZi1iMWM1LTNmODgwY2QzYWI2MiI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MjJhY2MxYWUtODhmYy00MGVmLWIxYzUtM2Y4ODBjZDNhYjYyIiBzdEV2dDp3aGVuPSIyMDE5LTA0LTExVDEwOjE5OjAzKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDNiMmY2MTYtNmZlNS00MmM0LWI1ODAtNzM3NmNmMjY3N2Y1IiBzdEV2dDp3aGVuPSIyMDE5LTA0LTExVDEwOjIyOjMzKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5PmxYVAAACLklEQVRYhc2XP2sVQRRHz40hKoqaQgVBCy1EozFlGiVFxMLGh4piYWEh+hkEP4YKAVFEEFTyughaCH6DqIVpAhYWEgIxoJE8cywyi5tNHu/tJmvyg2WZO3dmzt47/zZUtoJ6Nhsg09YDiYhKDzACTAFNYH9lEpUq80TdrT5wpV5n/ZV9KoGoo+pXV2uyKkipOaLuUceAt8DhUvQd1FsCYhR4ChzaSIBMHSOi7lOfsByFWiCgEBH1GHAF2JlMPcBt4GC3HUYEaj9wF3gVEVPtfNVTwAXgWX7CDKq/1piAZTSZBmim8qJ6sQ3EgDqb/L7kU3MH2NHtl3dQX3r3Ak21UYAYAj4A/cl0JB+RF+uMRj4iQ+p8zt7KYFLdXKHuRi0gacBhV6a6pd5bA6KRNagFJPU9qv5u47toLmW1HnoR8Q5oAK1CVQu4FBHj/wUkaXsb+4pzpVaQFPqXrN7Be4Fx9VztIOr1BLEtmX4A94E/qdwHTKjDWYM6lu81dSlnn3V570BtuLxaMs2rZ/IgYxsBovaoPwsQA4VoFWEm8ql5DiysNyURsQTMpOIMcDYiPhd8xoGr/FtNC2G6FKXD6ihwGdiVHMoeeh8jYlA9ANwE3kTEp3bO6vE03qOONzR1r/q4RGrquaFFxFxE3ALOA9+6jExpdb180y55AhirhaRTatq0GXEzL8+ZIuI9cBJ4WKiartJf9nWV/mty7UfUafW7erpqRGI9EBuprffvu9n6C1KOmsqwI5A1AAAAAElFTkSuQmCC\");\n}\n\n.taro-video-danmu {\n overflow: visible;\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n margin-top: 14px;\n margin-bottom: 44px;\n width: 100%;\n line-height: 14px;\n font-size: 14px;\n}\n\n.taro-video-danmu-item {\n position: absolute;\n left: 100%;\n line-height: 1;\n color: #fff;\n white-space: nowrap;\n transform: translateX(0);\n transition-property: left, transform;\n transition-duration: 3s;\n transition-timing-function: linear;\n}\n\n.taro-video-toast {\n display: block;\n visibility: hidden;\n position: absolute;\n left: 50%;\n top: 50%;\n border-radius: 5px;\n background-color: hsl(0deg 0% 100% / 80%);\n pointer-events: none;\n color: #000;\n transform: translate(-50%, -50%);\n}\n\n.taro-video-toast.taro-video-toast-volume {\n display: block;\n width: 100px;\n height: 100px;\n}\n\n.taro-video-toast-volume .taro-video-toast-title {\n display: block;\n margin-top: 10px;\n width: 100%;\n line-height: 16px;\n text-align: center;\n font-size: 12px;\n}\n\n.taro-video-toast-volume .taro-video-toast-icon {\n display: block;\n margin-left: 25%;\n width: 50%;\n height: 50%;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAFhklEQVR4Xu2aeaxfQxTHP1VBES0NIQitWtpaaxeCUkQtaYVa0tiClAq1ExIiQTVppaWxt8RWSa2tWkJQRGgtQaSIpUKEpG0ssbbk28yV2+mZO/e9e3vvu/e98897mZnfzPl+75mZs0wvurn06ub46SGgxwLqZaA3sB/wO/A+8G/V6tS5BU4BJgJbO9DvAMOB36okoQ4CNgAeBEYbQK8Bbm4zAdsBc4EdAyA/APZoKwHHAA8DG2UA/AnYrG0ErAVcD1yXA9gfQJ8c40obsqbPgH7AY8CROTVuFQFD3X7fJid4DWsNAWOAGZ0w58YTsDZwKzChA189PbTRBGwKzAYO6iT4srbAMHfTfAksjulS1iG4JzAH2Dy2YKS/qAVcCdzi1vgZOBZ4PWvNGAG6wgYCW0IwctzNmf06BcEXtYABwOeA4otEfgEOdnGGqV6IAAUopwM6zDYuAVjeKYpYwCjgCWOhH513+b2lhE+Avrj89NPyalzyuCIE6EN9BfQ1dHoPOAD40+9LE6D/5aoqSqtLsgiQC60DTiHzfGCFoaSsQAexZdlTgEuyCDgLuK8u5G7dEAHyKN8CBrtxLwDHAX8Z+l4N3GS0L3db4aN0X5opmc+2XZQAfb2LPd2eciG1lUSRJZ9qYHkZONwiYAjwSc3gs24BXWWWfzEVuMjQez13HljX8v7A28lvEgsInaBVcxLaAvr6sgJLtBWeNTrOB+4w2p8DRvoEnAPcXTVaY70QAbrbXwIONX7zBSAL/tvrk1+iviTllnRry2irr/QSEws4D7izCxMg1XQLLAQGGXpeCkw22kOWI49RMUujCJC+uwAfGtfcImAng4AtAMsBeg04pIkESOfbgQsMsNoGnxrtSrfv7rXrSlwXWN6kLZBgEBiB8iWUUZZPIN/AF1nMoiYSICDfAlt5iB4CxhpAzwXuMtqPBuY1lYB5wFEeqFeAwwyguvIUqvuiQO/xphJwP3Cmhyh0EKrOoGDIF7n+M5pKwEwXrqdBCaQSM77Ig7SSIicDs5pKwIvACA+pzFwZIF9OlKm36QyQV7jEqDDJk5VD58uFgGIGX1Se+6yJFqAKsqI6X84GdDb4Mh0Y5zUqjFYFakUTCXja5QLSmBQHbAL8ahAgT1AeYVreSKLLphGwF/CuAfLJQLldGSTFD75c5d4mNCoWyAqG9gYWGED1AOMKo12ZbiWA/idA++deY2DVTZ0Jh5UJPsFQtD/wDaAHGWl5EzgwaUi2gK4UXS11S0cTIjrMFBtYQdAk4DID0BnAAz4B6wNLgTKKG0VIDBHwqitwpOcW+OOB540FdeipNKbUWFrUtn06o5xOij4KyDuqU0IE3Obl/rLA63pTzm9XA8jKACjdniZAaSKFmUpB1yUhAlTsUEpMh913wEkuTe7rKTzPAHqO44vpKPkFhH3cWWBVV6ogJVYZUgz/tXtIYelzI3Ct0fExIGx6j7iKWBUUveyYBehv1RIjIEsfqziq8Xp4pSBJOYTVJFQcVY3wCFeKUjVGyYfQWB00+5bEVBECrNS+qsOKBpVHNCVWHs+LS7H5PV5pOu9v0+OKEOAXR39w1e1C7wM6AkJ1eLmkRcrpRQiQrqobXO5S3vL3/4kBKMsCknV0k+iasVLUMV3UX5SAPGtED8EOT+L9YENnCasUIXNO2goChFWHqAIRyxXN4qI1BCQg9dJESYq8LnbrCBAR8t50Lig6i0krCRBoVWhVlt45wkBrCRBuRZyPuAguxIPe9lXqhpd9DcZMXOvdkPF0Xu/8dohNUmZ/1QQkuitXr+d4fryuFx3jywQYm6suAqSX8vLTXKJDt4QqO6rtLYspXWZ/nQQkOJTAUJZGIav19q9MvKvN1RUIWKMAY5P3EBBjqO393d4C/gMVHwRQlpx21QAAAABJRU5ErkJggg==\");\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: 50%;\n fill: #000;\n}\n\n.taro-video-toast-volume .taro-video-toast-value {\n margin-left: 10px;\n margin-top: 5px;\n width: 80px;\n height: 5px;\n}\n\n.taro-video-toast-volume .taro-video-toast-value > .taro-video-toast-value-content {\n overflow: hidden;\n}\n\n.taro-video-toast-volume-grids {\n width: 80px;\n height: 5px;\n}\n\n.taro-video-toast-volume-grids-item {\n float: left;\n width: 7.1px;\n height: 5px;\n background-color: #000;\n}\n\n.taro-video-toast-volume-grids-item:not(:first-child) {\n margin-left: 1px;\n}\n\n.taro-video-toast.taro-video-toast-progress {\n padding: 6px;\n background-color: rgb(0 0 0 / 80%);\n line-height: 18px;\n font-size: 14px;\n color: #fff;\n}\n","import { Component, h, ComponentInterface, Prop, State, Event, EventEmitter, Host, Watch, Listen, Element, Method } from '@stencil/core'\nimport classNames from 'classnames'\n\nimport { throttle } from '../../utils'\nimport {\n formatTime,\n calcDist,\n normalizeNumber,\n screenFn,\n isHls,\n scene\n} from './utils'\n\nimport type HLS from 'hls.js'\n\n@Component({\n tag: 'taro-video-core',\n styleUrl: './style/index.scss'\n})\nexport class Video implements ComponentInterface {\n private videoRef: HTMLVideoElement\n private controlsRef: HTMLTaroVideoControlElement\n private danmuRef: HTMLTaroVideoDanmuElement\n private toastProgressRef: HTMLDivElement\n private toastProgressTitleRef: HTMLDivElement\n private toastVolumeRef: HTMLDivElement\n private toastVolumeBarRef: HTMLDivElement\n private currentTime = 0\n private lastClickedTime: number\n private lastTouchScreenX: number | undefined\n private lastTouchScreenY: number | undefined\n private isDraggingProgress = false\n private lastVolume: number\n private lastPercentage: number\n private nextPercentage: number\n private gestureType = 'none'\n private HLS: typeof HLS\n private hls: HLS\n\n @Element() el: HTMLTaroVideoCoreElement\n\n /**\n * 要播放视频的资源地址\n */\n @Prop() src: string\n\n /**\n * 指定视频时长\n */\n @Prop() duration: number\n\n /**\n * 是否显示默认播放控件(播放/暂停按钮、播放进度、时间)\n */\n @Prop() controls = true\n\n /**\n * 是否自动播放\n */\n @Prop() autoplay = false\n\n /**\n * 是否循环播放\n */\n @Prop() loop = false\n\n /**\n * 是否静音播放\n */\n @Prop() muted = false\n\n /**\n * 指定视频初始播放位置\n */\n @Prop() initialTime = 0\n\n /**\n * 视频封面的图片网络资源地址或云文件ID(2.3.0)。若 controls 属性值为 false 则设置 poster 无效\n */\n @Prop() poster: string\n\n /**\n * 当视频大小与 video 容器大小不一致时,视频的表现形式\n */\n @Prop() objectFit: 'contain' | 'fill' | 'cover' = 'contain'\n\n /**\n * 若不设置,宽度大于 240 时才会显示\n */\n @Prop() showProgress = true\n\n /**\n * 是否显示全屏按钮\n */\n @Prop() showFullscreenBtn = true\n\n /**\n * 是否显示视频底部控制栏的播放按钮\n */\n @Prop() showPlayBtn = true\n\n /**\n * 是否显示视频中间的播放按钮\n */\n @Prop() showCenterPlayBtn = true\n\n /**\n * 是否显示静音按钮\n */\n @Prop() showMuteBtn = false\n\n /**\n * 弹幕列表\n */\n @Prop() danmuList: []\n\n /**\n * 是否显示弹幕按钮\n */\n @Prop() danmuBtn = false\n\n /**\n * 是否展示弹幕\n */\n @Prop() enableDanmu = false\n\n /**\n * 是否开启播放手势,即双击切换播放/暂停\n */\n @Prop() enablePlayGesture = false\n\n /**\n * 是否开启控制进度的手势\n */\n @Prop() enableProgressGesture = true\n\n /**\n * 在非全屏模式下,是否开启亮度与音量调节手势\n */\n @Prop() vslideGesture = false\n\n /**\n * 在全屏模式下,是否开启亮度与音量调节手势\n */\n @Prop() vslideGestureInFullscreen = true\n\n @Prop() nativeProps = {}\n\n @State() _duration: number\n @State() _enableDanmu = false\n @State() isPlaying = false\n @State() isFirst = true\n @State() isFullScreen = false\n @State() fullScreenTimestamp = new Date().getTime()\n @State() isMute = false\n\n @Event({\n eventName: 'play'\n }) onPlay: EventEmitter\n\n @Event({\n eventName: 'pause'\n }) onPause: EventEmitter\n\n @Event({\n eventName: 'ended'\n }) onEnded: EventEmitter\n\n @Event({\n eventName: 'timeupdate'\n }) onTimeUpdate: EventEmitter\n\n @Event({\n eventName: 'error'\n }) onError: EventEmitter\n\n @Event({\n eventName: 'fullscreenchange'\n }) onFullScreenChange: EventEmitter\n\n @Event({\n eventName: 'progress'\n }) onProgress: EventEmitter\n\n @Event({\n eventName: 'loadedmetadata'\n }) onLoadedMetaData: EventEmitter\n\n componentWillLoad () {\n this._enableDanmu = this.enableDanmu\n }\n\n componentDidLoad () {\n this.init()\n if (this.initialTime) {\n this.videoRef.currentTime = this.initialTime\n }\n // 目前只支持 danmuList 初始化弹幕列表,还未支持更新弹幕列表\n this.danmuRef.sendDanmu?.(this.danmuList)\n\n if (document.addEventListener) {\n document.addEventListener(screenFn.fullscreenchange, this.handleFullScreenChange)\n }\n if (this.videoRef && scene === 'iOS') {\n // NOTE: iOS 场景下 fullscreenchange 并不会在退出全屏状态下触发,仅 webkitpresentationmodechanged 与 webkitendfullscreen 可替代\n this.videoRef.addEventListener('webkitendfullscreen', this.handleFullScreenChange)\n }\n }\n\n componentDidRender () {\n }\n\n disconnectedCallback () {\n if (document.removeEventListener) {\n document.removeEventListener(screenFn.fullscreenchange, this.handleFullScreenChange)\n }\n if (this.videoRef && scene === 'iOS') {\n this.videoRef.removeEventListener('webkitendfullscreen', this.handleFullScreenChange)\n }\n }\n\n @Watch('enableDanmu')\n watchEnableDanmu (newVal) {\n this._enableDanmu = newVal\n }\n\n @Watch('src')\n watchSrc () {\n this.init()\n }\n\n analyzeGesture = (e: TouchEvent) => {\n const obj: {\n type: string\n dataX?: number\n dataY?: number\n } = {\n type: 'none'\n }\n const nowX = e.touches[0].screenX\n const nowY = e.touches[0].screenY\n const distX = nowX - (this.lastTouchScreenX as number)\n const distY = nowY - (this.lastTouchScreenY as number)\n const enableVslideGesture = this.isFullScreen ? this.vslideGestureInFullscreen : this.vslideGesture\n\n if (this.gestureType === 'none') {\n // 两点间距离\n const dist = calcDist(distX, distY)\n\n // 没有移动\n if (dist < 10) return obj\n\n if (Math.abs(distY) >= Math.abs(distX)) {\n // 垂直方向移动:调整音量\n if (enableVslideGesture) {\n this.gestureType = 'adjustVolume'\n this.lastVolume = this.videoRef.volume\n } else {\n return obj\n }\n } else if (Math.abs(distY) < Math.abs(distX)) {\n // 水平方向移动:调整进度\n if (this.enableProgressGesture) {\n this.gestureType = 'adjustProgress'\n this.lastPercentage = this.currentTime / (this.duration ?? this._duration)\n } else {\n return obj\n }\n }\n }\n obj.type = this.gestureType\n obj.dataX = normalizeNumber(distX / 200)\n obj.dataY = normalizeNumber(distY / 200)\n return obj\n }\n\n @Listen('touchmove', {\n target: 'document'\n })\n async onDocumentTouchMove (e: TouchEvent) {\n if (this.lastTouchScreenX === undefined || this.lastTouchScreenY === undefined) return\n if (await this.controlsRef.getIsDraggingProgressBall()) return\n\n const gestureObj = this.analyzeGesture(e)\n if (gestureObj.type === 'adjustVolume') {\n this.toastVolumeRef.style.visibility = 'visible'\n const nextVolume = Math.max(Math.min(this.lastVolume - gestureObj.dataY!, 1), 0)\n this.videoRef.volume = nextVolume\n this.toastVolumeBarRef.style.width = `${nextVolume * 100}%`\n } else if (gestureObj.type === 'adjustProgress') {\n this.isDraggingProgress = true\n this.nextPercentage = Math.max(Math.min(this.lastPercentage + (gestureObj.dataX || 0), 1), 0)\n if (this.controls && this.showProgress) {\n this.controlsRef.setProgressBall(this.nextPercentage)\n this.controlsRef.toggleVisibility(true)\n }\n const duration = this.duration || this._duration\n this.toastProgressTitleRef.innerHTML = `${formatTime(this.nextPercentage * duration)} / ${formatTime(duration)}`\n this.toastProgressRef.style.visibility = 'visible'\n }\n }\n\n @Listen('touchend', {\n target: 'document'\n })\n @Listen('touchcancel', {\n target: 'document'\n })\n onDocumentTouchEnd () {\n if (this.gestureType === 'adjustVolume') {\n this.toastVolumeRef.style.visibility = 'hidden'\n } else if (this.gestureType === 'adjustProgress') {\n this.toastProgressRef.style.visibility = 'hidden'\n }\n\n if (this.isDraggingProgress) {\n this.isDraggingProgress = false\n this.seek(this.nextPercentage * (this.duration ?? this._duration))\n }\n\n this.gestureType = 'none'\n this.lastTouchScreenX = undefined\n this.lastTouchScreenY = undefined\n }\n\n loadNativePlayer = () => {\n if (this.videoRef) {\n this.videoRef.src = this.src\n this.videoRef.load?.()\n }\n }\n\n init = () => {\n const { src, videoRef } = this\n\n if (isHls(src)) {\n import('hls.js').then(e => {\n const Hls = e.default\n this.HLS = Hls\n if (Hls.isSupported()) {\n if (this.hls) {\n this.hls.destroy()\n }\n this.hls = new Hls()\n this.hls.loadSource(src)\n this.hls.attachMedia(videoRef)\n this.hls.on(Hls.Events.MANIFEST_PARSED, () => {\n this.autoplay && this.play()\n })\n this.hls.on(Hls.Events.ERROR, (_, data) => {\n this.handleError(data)\n })\n } else if (videoRef.canPlayType('application/vnd.apple.mpegurl')) {\n this.loadNativePlayer()\n } else {\n console.error('该浏览器不支持 HLS 播放')\n }\n })\n } else {\n this.loadNativePlayer()\n }\n }\n\n handlePlay = () => {\n this.isPlaying = true\n this.isFirst = false\n this.controlsRef.toggleVisibility(true)\n this.onPlay.emit()\n }\n\n handlePause = () => {\n this.isPlaying = false\n this.controlsRef.toggleVisibility(true)\n this.onPause.emit()\n }\n\n handleEnded = () => {\n this.isFirst = true\n this.pause()\n this.controlsRef.toggleVisibility()\n this.onEnded.emit()\n }\n\n handleTimeUpdate = throttle(async e => {\n this.currentTime = this.videoRef.currentTime\n const duration = this.duration || this._duration\n\n const isControlDragging = await this.controlsRef.getIsDraggingProgressBall()\n if (this.controls && this.showProgress) {\n if (!isControlDragging && !this.isDraggingProgress) {\n this.controlsRef.setProgressBall(this.currentTime / duration)\n this.controlsRef.setCurrentTime(this.currentTime)\n }\n }\n\n this.danmuRef.tick(this.currentTime)\n\n this.onTimeUpdate.emit({\n duration: e.target?.duration,\n currentTime: e.target?.currentTime\n })\n\n if (this.duration) {\n if (this.currentTime >= this.duration) {\n this.seek(0)\n this.handleEnded()\n }\n }\n }, 250)\n\n handleError = e => {\n if (this.hls) {\n switch (e.type) {\n case this.HLS.ErrorTypes.NETWORK_ERROR:\n // try to recover network error\n this.onError.emit({ errMsg: e.response })\n this.hls.startLoad()\n break\n case this.HLS.ErrorTypes.MEDIA_ERROR:\n this.onError.emit({ errMsg: e.reason || '媒体错误,请重试' })\n this.hls.recoverMediaError()\n break\n default:\n break\n }\n } else {\n this.onError.emit({\n errMsg: e.target?.error?.message,\n })\n }\n }\n\n handleDurationChange = () => {\n this._duration = this.videoRef.duration\n }\n\n handleProgress = () => {\n this.onProgress.emit()\n }\n\n handleLoadedMetaData = (e: Event) => {\n const target = e.target as HTMLVideoElement\n this.onLoadedMetaData.emit({\n width: target.videoWidth,\n height: target.videoHeight,\n duration: target.duration\n })\n }\n\n @Method()\n async getHlsObject() {\n // Note: H5 端专属方法,获取 HLS 实例 fix #11894\n return this.hls\n }\n\n /** 播放视频 */\n @Method()\n async play () {\n this._play()\n }\n\n _play = () => this.videoRef.play()\n\n /** 暂停视频 */\n @Method()\n async pause () {\n this._pause()\n }\n\n _pause = () => this.videoRef.pause()\n\n /** 停止视频 */\n @Method()\n async stop () {\n this._stop()\n }\n\n _stop = () => {\n this.videoRef.pause()\n this._seek(0)\n }\n\n /** 跳转到指定位置 */\n @Method()\n async seek (position: number) {\n this._seek(position)\n }\n\n _seek = (position: number) => {\n this.videoRef.currentTime = position\n }\n\n /** 进入全屏。若有自定义内容需在全屏时展示,需将内容节点放置到 video 节点内。 */\n @Method()\n async requestFullScreen () {\n this.toggleFullScreen(true)\n }\n\n /** 退出全屏 */\n @Method()\n async exitFullScreen () {\n this.toggleFullScreen(false)\n }\n\n onTouchStartContainer = (e: TouchEvent) => {\n this.lastTouchScreenX = e.touches[0].screenX\n this.lastTouchScreenY = e.touches[0].screenY\n }\n\n onClickContainer = () => {\n if (this.enablePlayGesture) {\n const now = Date.now()\n if (now - this.lastClickedTime < 300) {\n // 双击\n this.isPlaying ? this.pause() : this.play()\n }\n this.lastClickedTime = now\n }\n this.controlsRef.toggleVisibility()\n }\n\n onClickFullScreenBtn = (e: MouseEvent) => {\n e.stopPropagation()\n this.toggleFullScreen()\n }\n\n handleFullScreenChange = e => {\n // 全屏后,\"退出\"走的是浏览器事件,在此同步状态\n const timestamp = new Date().getTime()\n if (!e.detail && this.isFullScreen && !document[screenFn.fullscreenElement] && timestamp - this.fullScreenTimestamp > 100) {\n this.toggleFullScreen(false)\n }\n }\n\n toggleFullScreen = (isFullScreen = !this.isFullScreen) => {\n this.isFullScreen = isFullScreen // this.videoRef?.['webkitDisplayingFullscreen']\n this.controlsRef.toggleVisibility(true)\n this.fullScreenTimestamp = new Date().getTime()\n this.onFullScreenChange.emit({\n fullScreen: this.isFullScreen,\n direction: 'vertical'\n })\n if (this.isFullScreen && !document[screenFn.fullscreenElement]) {\n setTimeout(() => {\n this.videoRef[screenFn.requestFullscreen]({ navigationUI: 'auto' })\n }, 0)\n }\n }\n\n toggleMute = (e: MouseEvent) => {\n e.stopPropagation()\n this.videoRef.muted = !this.isMute\n this.controlsRef.toggleVisibility(true)\n this.isMute = !this.isMute\n }\n\n toggleDanmu = (e: MouseEvent) => {\n e.stopPropagation()\n this.controlsRef.toggleVisibility(true)\n this._enableDanmu = !this._enableDanmu\n }\n\n render () {\n const {\n controls,\n autoplay,\n loop,\n muted,\n poster,\n objectFit,\n isFirst,\n isMute,\n isFullScreen,\n showCenterPlayBtn,\n isPlaying,\n _enableDanmu,\n showMuteBtn,\n danmuBtn,\n showFullscreenBtn,\n nativeProps\n } = this\n const duration = this.duration || this._duration\n const durationTime = formatTime(duration)\n\n return (\n <Host\n class={classNames('taro-video-container', {\n 'taro-video-type-fullscreen': isFullScreen\n })}\n onTouchStart={this.onTouchStartContainer}\n onClick={this.onClickContainer}\n >\n <video\n class='taro-video-video'\n style={{\n 'object-fit': objectFit\n }}\n ref={dom => {\n if (dom) {\n this.videoRef = dom as HTMLVideoElement\n }\n }}\n autoplay={autoplay}\n loop={loop}\n muted={muted}\n poster={controls ? poster : undefined}\n playsinline\n webkit-playsinline\n onPlay={this.handlePlay}\n onPause={this.handlePause}\n onEnded={this.handleEnded}\n onTimeUpdate={this.handleTimeUpdate}\n onError={this.handleError}\n onDurationChange={this.handleDurationChange}\n onProgress={this.handleProgress}\n onLoadedMetaData={this.handleLoadedMetaData}\n {...nativeProps}\n >\n 暂时不支持播放该视频\n </video>\n\n <taro-video-danmu\n ref={dom => {\n if (dom) {\n this.danmuRef = dom as HTMLTaroVideoDanmuElement\n }\n }}\n enable={_enableDanmu}\n />\n\n {isFirst && showCenterPlayBtn && !isPlaying && (\n <div class='taro-video-cover'>\n <div class='taro-video-cover-play-button' onClick={() => this.play()} />\n <p class='taro-video-cover-duration'>{durationTime}</p>\n </div>\n )}\n\n <taro-video-control\n ref={dom => {\n if (dom) {\n this.controlsRef = dom\n }\n }}\n controls={controls}\n currentTime={this.currentTime}\n duration={duration}\n isPlaying={this.isPlaying}\n pauseFunc={this._pause}\n playFunc={this._play}\n seekFunc={this._seek}\n showPlayBtn={this.showPlayBtn}\n showProgress={this.showProgress}\n >\n {showMuteBtn && (\n <div\n class={classNames('taro-video-mute', {\n 'taro-video-type-mute': isMute\n })}\n onClick={this.toggleMute}\n />\n )}\n {danmuBtn && (\n <div\n class={classNames('taro-video-danmu-button', {\n 'taro-video-danmu-button-active': _enableDanmu\n })}\n onClick={this.toggleDanmu}>\n 弹幕\n </div>\n )}\n {showFullscreenBtn && (\n <div\n class={classNames('taro-video-fullscreen', {\n 'taro-video-type-fullscreen': isFullScreen\n })}\n onClick={this.onClickFullScreenBtn}\n />\n )}\n </taro-video-control>\n\n <div class='taro-video-toast taro-video-toast-volume' ref={dom => {\n if (dom) {\n this.toastVolumeRef = dom\n }\n }}>\n <div class='taro-video-toast-title'>音量</div>\n <div class='taro-video-toast-icon' />\n <div class='taro-video-toast-value'>\n <div class='taro-video-toast-value-content' ref={dom => {\n if (dom) {\n this.toastVolumeBarRef = dom\n }\n }}>\n <div class='taro-video-toast-volume-grids'>\n {Array(10).fill(1).map(() => (\n <div class='taro-video-toast-volume-grids-item' />\n ))}\n </div>\n </div>\n </div>\n </div>\n\n <div class='taro-video-toast taro-video-toast-progress' ref={dom => {\n if (dom) {\n this.toastProgressRef = dom\n }\n }}>\n <div class='taro-video-toast-title' ref={dom => {\n if (dom) {\n this.toastProgressTitleRef = dom\n }\n }} />\n </div>\n </Host>\n )\n }\n}\n","import { Component, h, ComponentInterface, Prop, State, Host, Method } from '@stencil/core'\n\nexport interface Danmu {\n text: string\n color: string\n time: number,\n key: number,\n bottom: string\n}\n\n@Component({\n tag: 'taro-video-danmu'\n})\nexport class VideoDanmu implements ComponentInterface {\n private list: Danmu[] = []\n private danmuElList: HTMLParagraphElement[] = []\n private currentTime = 0\n\n @Prop() enable = false\n\n @State() danmuList: Danmu[] = []\n\n ensureProperties (danmu: Partial<Danmu>): Danmu {\n const clonedDanmu = { ...danmu } as Danmu\n if (!('time' in danmu)) {\n clonedDanmu.time = this.currentTime\n }\n clonedDanmu.key = Math.random()\n clonedDanmu.bottom = `${Math.random() * 90 + 5}%`\n return clonedDanmu\n }\n\n @Method()\n async sendDanmu (danmuList: Partial<Danmu> | Partial<Danmu>[] = []) {\n if (Array.isArray(danmuList)) {\n this.list = [\n ...this.list,\n ...danmuList.map(danmu => this.ensureProperties(danmu))\n ]\n } else {\n const danmu = danmuList\n this.list = [\n ...this.list,\n { ...this.ensureProperties(danmu) }\n ]\n }\n }\n\n @Method()\n async tick (currentTime: number) {\n this.currentTime = currentTime\n\n if (!this.enable) return\n\n const danmuList = this.list\n\n /**\n * @todo 这个判断对拖拽进度的处理不严谨\n */\n const newDanmuList = danmuList.filter(({ time }) => {\n return currentTime - time < 4 && currentTime > time\n })\n let shouldUpdate = false\n const oldDanmuList = this.danmuList\n\n if (newDanmuList.length !== oldDanmuList.length) {\n shouldUpdate = true\n } else {\n shouldUpdate = newDanmuList.some(({ key }) => {\n return oldDanmuList.every((danmu) => {\n return key !== danmu.key\n })\n })\n }\n if (shouldUpdate) {\n this.danmuList = newDanmuList\n }\n }\n\n componentDidUpdate () {\n requestAnimationFrame(() => {\n setTimeout(() => {\n const danmuElList = this.danmuElList.splice(0)\n danmuElList.forEach(danmu => {\n danmu.style.left = '0'\n danmu.style.webkitTransform = 'translateX(-100%)'\n danmu.style.transform = 'translateX(-100%)'\n })\n })\n })\n }\n\n render () {\n if (!this.enable) return ''\n\n return (\n <Host class='taro-video-danmu'>\n {this.danmuList.map(({ text, color, bottom, key }) => (\n <p\n class='taro-video-danmu-item'\n key={key}\n style={{\n color,\n bottom\n }}\n ref={ref => {\n if (ref) {\n this.danmuElList.push(ref)\n }\n }}\n >\n {text}\n </p>\n ))}\n </Host>\n )\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["Slot","componentDidLoad","notSupport","this","render","h","Host"],"sources":["./src/components/slot/slot.tsx"],"sourcesContent":["import { Component, ComponentInterface, h, Host } from '@stencil/core'\n\nimport { notSupport } from '../../utils'\n\n@Component({\n tag: 'taro-slot-core'\n})\nexport class Slot implements ComponentInterface {\n componentDidLoad () {\n notSupport('Slot', this)\n }\n\n render () {\n return (\n <Host />\n )\n }\n}\n"],"mappings":"iHAOaA,EAAI,M,yBACfC,mBACEC,EAAW,OAAQC,K,CAGrBC,SACE,OACEC,EAACC,EAAI,K"}