ranui 0.1.10-alpha.7 → 0.2.0-alpha.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 (326) hide show
  1. package/README.md +397 -0
  2. package/README.zh-CN.md +369 -0
  3. package/dist/assets/image/failImage.d.ts +2 -0
  4. package/dist/bin/generate-component-api.d.ts +1 -0
  5. package/dist/bin/generate-style-docs.d.ts +1 -0
  6. package/dist/build/config.bundle.d.ts +2 -0
  7. package/dist/build/config.d.ts +3 -0
  8. package/dist/build/config.es.d.ts +2 -0
  9. package/dist/build/config.umd.d.ts +1 -0
  10. package/dist/builder.d.ts +11 -0
  11. package/dist/builder.js +39 -0
  12. package/dist/button-DukaD6uL.js +117 -0
  13. package/dist/button.js +3 -5
  14. package/dist/card-DQUJoDUQ.js +60 -0
  15. package/dist/card.js +5 -0
  16. package/dist/checkbox-iHZQb-yQ.js +94 -0
  17. package/dist/checkbox.js +3 -5
  18. package/dist/colorpicker-Ch67dWa_.js +302 -0
  19. package/dist/colorpicker.js +3 -9
  20. package/dist/components/button/index.d.ts +44 -0
  21. package/dist/components/card/index.d.ts +21 -0
  22. package/dist/components/checkbox/index.d.ts +35 -0
  23. package/dist/components/colorpicker/index.d.ts +88 -0
  24. package/dist/components/dropdown/index.d.ts +32 -0
  25. package/dist/components/form/index.d.ts +15 -0
  26. package/dist/components/icon/index.d.ts +58 -0
  27. package/dist/components/image/index.d.ts +25 -0
  28. package/dist/components/input/index.d.ts +229 -0
  29. package/dist/components/link/index.d.ts +21 -0
  30. package/dist/components/loading/index.d.ts +76 -0
  31. package/dist/components/math/index.d.ts +16 -0
  32. package/dist/components/message/container.d.ts +8 -0
  33. package/dist/components/message/index.d.ts +32 -0
  34. package/dist/components/modal/index.d.ts +100 -0
  35. package/dist/components/player/core/constants.d.ts +5 -0
  36. package/dist/components/player/core/controller.d.ts +33 -0
  37. package/dist/components/player/core/events.d.ts +10 -0
  38. package/dist/components/player/core/fullscreen.d.ts +5 -0
  39. package/dist/components/player/core/levels.d.ts +20 -0
  40. package/dist/components/player/core/media.d.ts +50 -0
  41. package/dist/components/player/core/playback.d.ts +14 -0
  42. package/dist/components/player/core/progress.d.ts +2 -0
  43. package/dist/components/player/core/state.d.ts +27 -0
  44. package/dist/components/player/core/view.d.ts +39 -0
  45. package/dist/components/player/index.d.ts +277 -0
  46. package/dist/components/popover/content/index.d.ts +12 -0
  47. package/dist/components/popover/index.d.ts +95 -0
  48. package/dist/components/progress/index.d.ts +40 -0
  49. package/dist/components/radar/index.d.ts +52 -0
  50. package/dist/components/route/index.d.ts +26 -0
  51. package/dist/components/router/index.d.ts +24 -0
  52. package/dist/components/scratch/index.d.ts +19 -0
  53. package/dist/components/section/index.d.ts +23 -0
  54. package/dist/components/select/dropdown-item/index.d.ts +21 -0
  55. package/dist/components/select/index.d.ts +135 -0
  56. package/dist/components/select/option/index.d.ts +19 -0
  57. package/dist/components/skeleton/index.d.ts +13 -0
  58. package/dist/components/tab/index.d.ts +58 -0
  59. package/dist/components/tabpane/index.d.ts +33 -0
  60. package/dist/demo/i18n.d.ts +4 -0
  61. package/dist/demo/index.d.ts +3 -0
  62. package/dist/demo/register-icons.d.ts +1 -0
  63. package/dist/dropdown-C5362qTy.js +82 -0
  64. package/dist/dropdown.js +6 -0
  65. package/dist/events-C59wGdni.js +30 -0
  66. package/dist/factory-BdsO0dEW.js +165 -0
  67. package/dist/form-05Lxxl3D.js +44 -0
  68. package/dist/form.js +5 -0
  69. package/dist/icon-DmoEnao5.js +165 -0
  70. package/dist/icon.js +4 -4
  71. package/dist/{index-KS2nvVcO.js → image-6GayFDqX.js} +58 -71
  72. package/dist/image.js +3 -2
  73. package/dist/index.cjs +35 -0
  74. package/dist/index.d.ts +277 -116
  75. package/dist/index.iife.js +306 -0
  76. package/dist/index.js +78 -38
  77. package/dist/input-DoraIb3x.js +198 -0
  78. package/dist/input.js +2 -3
  79. package/dist/katex-es-Bpesphgp.js +23682 -0
  80. package/dist/katex-es-Cnq5Pk8K.cjs +261 -0
  81. package/dist/link-BW-gvrpN.js +77 -0
  82. package/dist/link.js +6 -0
  83. package/dist/loading-Mko22ncl.js +206 -0
  84. package/dist/loading.js +4 -6
  85. package/dist/math-B5PpSnFR.js +52 -0
  86. package/dist/math.js +2 -4
  87. package/dist/message-CQENvkoi.js +137 -0
  88. package/dist/message.js +3 -4
  89. package/dist/mocks-CMGoftIc.js +179 -0
  90. package/dist/modal-DruDj3AB.js +350 -0
  91. package/dist/modal.js +3 -2
  92. package/dist/player-CvfmwWUa.js +13536 -0
  93. package/dist/player.js +3 -6
  94. package/dist/playwright.config.d.ts +2 -0
  95. package/dist/plugins/load-svg.d.ts +9 -0
  96. package/dist/popover-BCvHwLZb.js +213 -0
  97. package/dist/popover.js +3 -5
  98. package/dist/progress-BWkNf2J5.js +123 -0
  99. package/dist/progress.js +3 -5
  100. package/dist/radar-CWsawt2g.js +181 -0
  101. package/dist/radar.js +3 -4
  102. package/dist/ranui.css +1 -0
  103. package/dist/route-BY_E6-2C.js +88 -0
  104. package/dist/route.js +6 -0
  105. package/dist/router-BDcv4F-2.js +79 -0
  106. package/dist/router.js +6 -0
  107. package/dist/scratch-Dbd9G6Q6.js +60 -0
  108. package/dist/scratch.js +4 -0
  109. package/dist/section-CNTvgdQ-.js +63 -0
  110. package/dist/section.js +5 -0
  111. package/dist/select-BmhCUTLb.js +433 -0
  112. package/dist/select.js +3 -8
  113. package/dist/signal-XHfNsQNW.js +57 -0
  114. package/dist/skeleton-DPv9nFhL.js +32 -0
  115. package/dist/skeleton.js +3 -2
  116. package/dist/ssg.js +21 -0
  117. package/dist/ssr-DSGwPtEd.js +34 -0
  118. package/dist/ssr-stream.d.ts +1 -0
  119. package/dist/ssr-stream.js +87 -0
  120. package/dist/ssr.d.ts +1 -0
  121. package/dist/ssr.js +7 -0
  122. package/dist/style.d.ts +1 -0
  123. package/dist/style.js +0 -0
  124. package/dist/tab-C9swK-hm.js +185 -0
  125. package/dist/tab.js +3 -4
  126. package/dist/tabpane-B_M-Jokw.js +87 -0
  127. package/dist/tabpane.js +3 -2
  128. package/dist/test/e2e/button.spec.d.ts +1 -0
  129. package/dist/test/e2e/checkbox.spec.d.ts +1 -0
  130. package/dist/test/e2e/helpers.d.ts +13 -0
  131. package/dist/test/e2e/icon.spec.d.ts +1 -0
  132. package/dist/test/e2e/image.spec.d.ts +1 -0
  133. package/dist/test/e2e/input.spec.d.ts +1 -0
  134. package/dist/test/e2e/loading.spec.d.ts +1 -0
  135. package/dist/test/e2e/message.spec.d.ts +1 -0
  136. package/dist/test/e2e/modal.spec.d.ts +1 -0
  137. package/dist/test/e2e/popover.spec.d.ts +1 -0
  138. package/dist/test/e2e/progress.spec.d.ts +1 -0
  139. package/dist/test/e2e/radar.spec.d.ts +1 -0
  140. package/dist/test/e2e/select.spec.d.ts +1 -0
  141. package/dist/test/e2e/skeleton.spec.d.ts +1 -0
  142. package/dist/test/e2e/tab.spec.d.ts +1 -0
  143. package/dist/test/e2e/visual/colorpicker.spec.d.ts +1 -0
  144. package/dist/test/e2e/visual/components.spec.d.ts +1 -0
  145. package/dist/test/e2e/visual/player.spec.d.ts +1 -0
  146. package/dist/test/integration/composition.test.d.ts +23 -0
  147. package/dist/test/setup.d.ts +0 -0
  148. package/dist/test/ssr/builder.core.ssr.test.d.ts +1 -0
  149. package/dist/test/ssr/builder.factory.ssr.test.d.ts +1 -0
  150. package/dist/test/ssr/builder.mocks.test.d.ts +1 -0
  151. package/dist/test/ssr/components/button.test.d.ts +1 -0
  152. package/dist/test/ssr/css-vars.test.d.ts +1 -0
  153. package/dist/test/ssr/registry.test.d.ts +1 -0
  154. package/dist/test/ssr/router.ssg.test.d.ts +2 -0
  155. package/dist/test/ssr/snapshots/button.test.d.ts +1 -0
  156. package/dist/test/ssr/stream.test.d.ts +2 -0
  157. package/dist/test/ssr/theme.tokens.ssr.test.d.ts +1 -0
  158. package/dist/test/unit/builder.core.browser.test.d.ts +1 -0
  159. package/dist/test/unit/builder.escape.test.d.ts +1 -0
  160. package/dist/test/unit/builder.selectors.test.d.ts +1 -0
  161. package/dist/test/unit/button.contract.test.d.ts +1 -0
  162. package/dist/test/unit/card.contract.test.d.ts +1 -0
  163. package/dist/test/unit/checkbox.contract.test.d.ts +1 -0
  164. package/dist/test/unit/colorpicker.color.utils.test.d.ts +1 -0
  165. package/dist/test/unit/colorpicker.contract.test.d.ts +1 -0
  166. package/dist/test/unit/colorpicker.methods.test.d.ts +1 -0
  167. package/dist/test/unit/component.helpers.test.d.ts +1 -0
  168. package/dist/test/unit/dropdown-item.contract.test.d.ts +1 -0
  169. package/dist/test/unit/dropdown.contract.test.d.ts +1 -0
  170. package/dist/test/unit/form.contract.test.d.ts +1 -0
  171. package/dist/test/unit/helpers/component.d.ts +3 -0
  172. package/dist/test/unit/helpers/dom.d.ts +2 -0
  173. package/dist/test/unit/icon.contract.test.d.ts +1 -0
  174. package/dist/test/unit/image.contract.test.d.ts +1 -0
  175. package/dist/test/unit/input.contract.test.d.ts +1 -0
  176. package/dist/test/unit/link.contract.test.d.ts +1 -0
  177. package/dist/test/unit/loading.contract.test.d.ts +1 -0
  178. package/dist/test/unit/math.contract.test.d.ts +1 -0
  179. package/dist/test/unit/message.component.test.d.ts +1 -0
  180. package/dist/test/unit/message.container.test.d.ts +1 -0
  181. package/dist/test/unit/modal.contract.test.d.ts +1 -0
  182. package/dist/test/unit/option.contract.test.d.ts +1 -0
  183. package/dist/test/unit/package-exports.source.test.d.ts +1 -0
  184. package/dist/test/unit/player-controls.test.d.ts +1 -0
  185. package/dist/test/unit/player-core.test.d.ts +1 -0
  186. package/dist/test/unit/player-event-handlers.test.d.ts +1 -0
  187. package/dist/test/unit/player-events.test.d.ts +1 -0
  188. package/dist/test/unit/player-fullscreen.test.d.ts +1 -0
  189. package/dist/test/unit/player-interactions.test.d.ts +1 -0
  190. package/dist/test/unit/player-levels.test.d.ts +1 -0
  191. package/dist/test/unit/player-media.test.d.ts +1 -0
  192. package/dist/test/unit/player-playback.test.d.ts +1 -0
  193. package/dist/test/unit/player.contract.test.d.ts +1 -0
  194. package/dist/test/unit/popover-accessibility.test.d.ts +1 -0
  195. package/dist/test/unit/popover.contract.test.d.ts +2 -0
  196. package/dist/test/unit/progress.contract.test.d.ts +1 -0
  197. package/dist/test/unit/radar.contract.test.d.ts +1 -0
  198. package/dist/test/unit/route.contract.test.d.ts +1 -0
  199. package/dist/test/unit/router.contract.test.d.ts +2 -0
  200. package/dist/test/unit/scratch.contract.test.d.ts +1 -0
  201. package/dist/test/unit/select-accessibility.test.d.ts +1 -0
  202. package/dist/test/unit/select-option.contract.test.d.ts +1 -0
  203. package/dist/test/unit/select.contract.test.d.ts +1 -0
  204. package/dist/test/unit/skeleton.contract.test.d.ts +1 -0
  205. package/dist/test/unit/ssr.test.d.ts +1 -0
  206. package/dist/test/unit/tab.contract.test.d.ts +2 -0
  207. package/dist/test/unit/theme.semantic-tokens.test.d.ts +1 -0
  208. package/dist/test/unit/theme.skin-tokens.test.d.ts +1 -0
  209. package/dist/test/unit/utils.dom.test.d.ts +1 -0
  210. package/dist/test/unit/utils.error.test.d.ts +1 -0
  211. package/dist/test/unit/utils.i18n.test.d.ts +1 -0
  212. package/dist/test/unit/utils.image.test.d.ts +1 -0
  213. package/dist/test/unit/utils.math.test.d.ts +1 -0
  214. package/dist/test/unit/utils.router.test.d.ts +1 -0
  215. package/dist/test/unit/utils.signal.test.d.ts +1 -0
  216. package/dist/test/unit/utils.ssr-stream.test.d.ts +1 -0
  217. package/dist/test/unit/utils.style.test.d.ts +1 -0
  218. package/dist/test/unit/utils.theme.test.d.ts +1 -0
  219. package/dist/test/unit/utils.tween.test.d.ts +1 -0
  220. package/dist/tsconfig.json +9 -9
  221. package/dist/typings.d.ts +163 -116
  222. package/dist/utils/builder/core.d.ts +70 -0
  223. package/dist/utils/builder/env.d.ts +1 -0
  224. package/dist/utils/builder/escape.d.ts +2 -0
  225. package/dist/utils/builder/events.d.ts +55 -0
  226. package/dist/utils/builder/factory.d.ts +18 -0
  227. package/dist/utils/builder/index.d.ts +9 -0
  228. package/dist/utils/builder/mocks.d.ts +62 -0
  229. package/dist/utils/builder/selectors.d.ts +4 -0
  230. package/dist/utils/builder/signal.d.ts +87 -0
  231. package/dist/utils/color.d.ts +52 -0
  232. package/dist/utils/component.d.ts +16 -0
  233. package/dist/utils/dom.d.ts +39 -0
  234. package/dist/utils/error.d.ts +6 -0
  235. package/dist/utils/i18n/index.d.ts +53 -0
  236. package/dist/utils/i18n.js +88 -0
  237. package/dist/utils/image.d.ts +39 -0
  238. package/dist/utils/index.d.ts +8 -0
  239. package/dist/utils/math.d.ts +26 -0
  240. package/dist/utils/router/index.d.ts +128 -0
  241. package/dist/utils/router.js +197 -0
  242. package/dist/utils/ssg.d.ts +49 -0
  243. package/dist/utils/ssr-registry.d.ts +8 -0
  244. package/dist/utils/ssr-stream.d.ts +23 -0
  245. package/dist/utils/ssr.d.ts +17 -0
  246. package/dist/utils/style.d.ts +12 -0
  247. package/dist/utils/theme.d.ts +9 -0
  248. package/dist/utils/tween.d.ts +21 -0
  249. package/dist/utils/video.d.ts +40 -0
  250. package/dist/utils-D4pPF77E.js +689 -0
  251. package/dist/vite.config.d.ts +6 -0
  252. package/dist/vitest.config.d.ts +2 -0
  253. package/dist/vitest.config.ssr.d.ts +2 -0
  254. package/docs/COMPONENTS.md +326 -0
  255. package/docs/DESIGN.md +182 -0
  256. package/docs/style-tokens-public.md +880 -0
  257. package/package.json +138 -74
  258. package/typings.d.ts +163 -116
  259. package/dist/_commonjs-dynamic-modules-DLbDWi6a.js +0 -12
  260. package/dist/add-user-BN1JlY7e.js +0 -4
  261. package/dist/arrow-down-Beig7FXI.js +0 -652
  262. package/dist/book-nTEFXU2x.js +0 -4
  263. package/dist/check-circle-fill-B_pd8ZSs.js +0 -4
  264. package/dist/check-circle-szyAJiap.js +0 -4
  265. package/dist/close-CFnkhudp.js +0 -4
  266. package/dist/close-circle-CwmuN2C6.js +0 -4
  267. package/dist/close-circle-fill-jSqPPw9i.js +0 -4
  268. package/dist/colz-DJZvo_8B.js +0 -232
  269. package/dist/docx-CHkPTdGU.js +0 -3665
  270. package/dist/drop-4j4abxje.js +0 -36
  271. package/dist/eye-D_mEt17f.js +0 -4
  272. package/dist/eye-close-BVr3NJtg.js +0 -4
  273. package/dist/home-BUQ4USMk.js +0 -4
  274. package/dist/iconShadowless.js +0 -6
  275. package/dist/index-BZR0HaP2.js +0 -40
  276. package/dist/index-Bl6-5Hp8.js +0 -63701
  277. package/dist/index-C0Xh8vJ3.js +0 -146
  278. package/dist/index-C4Sv0T51.js +0 -495
  279. package/dist/index-CGEx9VOA.js +0 -17106
  280. package/dist/index-CILRcFIV.js +0 -100
  281. package/dist/index-CQTJoWhb.js +0 -19
  282. package/dist/index-CWNtaUwu.js +0 -308
  283. package/dist/index-CjSKJE6S.js +0 -158
  284. package/dist/index-Ck9TOxFh.js +0 -279
  285. package/dist/index-CryFK9u4.js +0 -320
  286. package/dist/index-D4twPONc.js +0 -187
  287. package/dist/index-D83djTVa.js +0 -659
  288. package/dist/index-DAxs7Dd2.js +0 -119
  289. package/dist/index-DBecKjmY.js +0 -279
  290. package/dist/index-DC5EA657.js +0 -91
  291. package/dist/index-DHTzB_6b.js +0 -9575
  292. package/dist/index-DL-1C2RQ.js +0 -496
  293. package/dist/index-DN-kAx-A.js +0 -72
  294. package/dist/index-TlwIh-o2.js +0 -306
  295. package/dist/index-WfFw4LJT.js +0 -490
  296. package/dist/index-lLO-8KJ1.js +0 -204
  297. package/dist/index-oD-_YELB.js +0 -511
  298. package/dist/index-qvcQTV5_.js +0 -105
  299. package/dist/info-circle-COnL5bTJ.js +0 -4
  300. package/dist/info-circle-fill-CFeVMdci.js +0 -4
  301. package/dist/inputShadowless.js +0 -6
  302. package/dist/jszip.min-Dhs3nUkD.js +0 -2346
  303. package/dist/katex-es-B5r5vt3m.js +0 -14628
  304. package/dist/loading-Dcc5RApI.js +0 -4
  305. package/dist/loading-scene-BMc2wqKm.js +0 -4
  306. package/dist/lock-Cr7BnmWN.js +0 -4
  307. package/dist/message-D36_Zo2l.js +0 -4
  308. package/dist/pdf-Cx0VWKFo.js +0 -118
  309. package/dist/power-off-lQRbiBak.js +0 -4
  310. package/dist/preview-CJbz9GjO.js +0 -4
  311. package/dist/preview.js +0 -7
  312. package/dist/selectShadowless.js +0 -564
  313. package/dist/setting-DemlgzVC.js +0 -4
  314. package/dist/shadowless.js +0 -8
  315. package/dist/sprite-CH2zLtZy.js +0 -141
  316. package/dist/style.css +0 -1
  317. package/dist/team-tl4NJXPC.js +0 -4
  318. package/dist/umd/index.umd.cjs +0 -60
  319. package/dist/umd/shadowless/shadowless.umd.cjs +0 -1
  320. package/dist/umd/shadowless/style.css +0 -1
  321. package/dist/umd/style.css +0 -1
  322. package/dist/unlock-CeU74z9n.js +0 -4
  323. package/dist/user-B-eVXwuk.js +0 -4
  324. package/dist/warning-circle-DDUgEDIv.js +0 -4
  325. package/dist/warning-circle-fill-lODUKz0i.js +0 -4
  326. package/readme.md +0 -176
@@ -0,0 +1,50 @@
1
+ export interface HlsLikeStatic<TPlayer> {
2
+ Events: {
3
+ MANIFEST_LOADED: string;
4
+ ERROR: string;
5
+ };
6
+ isSupported: () => boolean;
7
+ new (): TPlayer;
8
+ }
9
+ export interface HlsPlayerLike {
10
+ startLoad(): () => void;
11
+ off: (eventName: string, handler: Function) => void;
12
+ on: (eventName: string, handler: Function) => void;
13
+ loadSource: (src: string) => void;
14
+ attachMedia: (video: HTMLVideoElement) => void;
15
+ destroy: () => void;
16
+ }
17
+ export interface PlayerMediaHandlers {
18
+ onCanplay: (e: Event) => void;
19
+ onCanplaythrough: (e: Event) => void;
20
+ onComplete: (e: Event) => void;
21
+ onDurationchange: (e: Event) => void;
22
+ onEmptied: (e: Event) => void;
23
+ onEnded: (e: Event) => void;
24
+ onError: (e: Event) => void;
25
+ onLoadeddata: (e: Event) => void;
26
+ onLoadedmetadata: (e: Event) => void;
27
+ onLoadstart: (e: Event) => void;
28
+ onPause: (e: Event) => void;
29
+ onPlay: (e: Event) => void;
30
+ onPlaying: (e: Event) => void;
31
+ onProgress: (e: Event) => void;
32
+ onRatechange: (e: Event) => void;
33
+ onSeeked: (e: Event) => void;
34
+ onSeeking: (e: Event) => void;
35
+ onStalled: (e: Event) => void;
36
+ onSuspend: (e: Event) => void;
37
+ onTimeupdate: (e: Event) => void;
38
+ onVolumechange: (e: Event) => void;
39
+ onWaiting: (e: Event) => void;
40
+ }
41
+ export declare function bindMediaEvents(video: HTMLVideoElement, handlers: PlayerMediaHandlers): void;
42
+ export declare function unbindMediaEvents(video: HTMLVideoElement, handlers: PlayerMediaHandlers): void;
43
+ export declare function loadVideoSource<TPlayer extends HlsPlayerLike>(input: {
44
+ video: HTMLVideoElement;
45
+ src: string;
46
+ Hls?: HlsLikeStatic<TPlayer>;
47
+ existingHls?: TPlayer;
48
+ onManifestLoaded: Function;
49
+ onHlsError: Function;
50
+ }): TPlayer | undefined;
@@ -0,0 +1,14 @@
1
+ export interface PlaybackSnapshot {
2
+ currentTime: number;
3
+ playbackRate: number;
4
+ volume: number;
5
+ shouldResume: boolean;
6
+ }
7
+ export declare function shouldResumePlayback(video?: HTMLVideoElement): boolean;
8
+ export declare function resolveSeekDuration(durationFromVideo: number, durationFromContext: number): number;
9
+ export declare function createPlaybackSnapshot(input: {
10
+ currentTime: number;
11
+ playbackRate: number;
12
+ volume: number;
13
+ shouldResume: boolean;
14
+ }): PlaybackSnapshot;
@@ -0,0 +1,2 @@
1
+ export declare function normalizeProgress(percentage: number): number;
2
+ export declare function getBufferedPercentage(video: HTMLVideoElement, duration: number): number;
@@ -0,0 +1,27 @@
1
+ export interface PlayerContextState<TAction = unknown, TLevel = unknown> {
2
+ action: TAction;
3
+ currentState: string;
4
+ duration: number;
5
+ currentTime: number;
6
+ volume: number;
7
+ playbackRate: number;
8
+ fullScreen: boolean;
9
+ levels: Array<TLevel>;
10
+ url: string;
11
+ levelMap: Map<string, string>;
12
+ clarity: string;
13
+ }
14
+ export interface PlayerRuntimeState<TPending = unknown> {
15
+ moveProgress: {
16
+ percentage: number;
17
+ mouseDown: boolean;
18
+ };
19
+ isSeeking: boolean;
20
+ wasPlayingBeforeSeek: boolean;
21
+ isBuffering: boolean;
22
+ pendingPlaybackRestore?: TPending;
23
+ }
24
+ export declare function createDefaultPlayerContext<TAction, TLevel = unknown>(action: TAction): PlayerContextState<TAction, TLevel>;
25
+ export declare function resetSourceContextState(ctx: PlayerContextState): void;
26
+ export declare function createDefaultRuntimeState<TPending = unknown>(): PlayerRuntimeState<TPending>;
27
+ export declare function resetTransientRuntimeState<TPending>(state: PlayerRuntimeState<TPending>): void;
@@ -0,0 +1,39 @@
1
+ import type { Progress } from '@/components/progress';
2
+ export interface SpeedOption {
3
+ label: string;
4
+ value: number;
5
+ }
6
+ export interface PlayerViewRefs {
7
+ player: HTMLDivElement;
8
+ container: HTMLDivElement;
9
+ slot: HTMLSlotElement;
10
+ playerBtn: HTMLDivElement;
11
+ playerController: HTMLDivElement;
12
+ progress: HTMLDivElement;
13
+ progressWrap: HTMLDivElement;
14
+ progressWrapBuffer: HTMLDivElement;
15
+ progressWrapValue: HTMLDivElement;
16
+ progressDot: HTMLDivElement;
17
+ playerControllerBottom: HTMLDivElement;
18
+ playerControllerBottomRight: HTMLDivElement;
19
+ playerControllerBottomLeft: HTMLDivElement;
20
+ playerControllerBottomPlayBtn: HTMLDivElement;
21
+ playerControllerBottomTimeCurrent: HTMLDivElement;
22
+ playerControllerBottomTimeDuration: HTMLDivElement;
23
+ playerControllerBottomTimeDivide: HTMLDivElement;
24
+ playControllerBottomClarity: HTMLElement;
25
+ playControllerBottomSpeed: HTMLDivElement;
26
+ playControllerBottomSpeedIcon: HTMLDivElement;
27
+ playControllerBottomVolumeProgress: Progress;
28
+ playControllerBottomRightFullScreen: HTMLDivElement;
29
+ playControllerBottomVolume: HTMLDivElement;
30
+ playControllerBottomSpeedPopover: HTMLElement;
31
+ playerTip: HTMLDivElement;
32
+ playerTipTime: HTMLDivElement;
33
+ playerTipText: HTMLDivElement;
34
+ }
35
+ export declare function ensurePlayerView(input: {
36
+ shadowDom: ShadowRoot;
37
+ speedOptions: SpeedOption[];
38
+ onSpeedChange: (e: Event) => void;
39
+ }): PlayerViewRefs;
@@ -0,0 +1,277 @@
1
+ import { SyncHook } from 'ranuts/utils';
2
+ import '../../assets/js/hls.js';
3
+ import type { Progress } from '@/components/progress';
4
+ import '@/components/select';
5
+ import { type PlayerControllerElements, type PlayerControllerHandlers } from './core/controller';
6
+ import { type PlaybackSnapshot } from './core/playback';
7
+ import { type PlayerMediaHandlers } from './core/media';
8
+ import { type PlayerRuntimeState } from './core/state';
9
+ type Callback = (...args: unknown[]) => unknown;
10
+ type EventName = string | symbol;
11
+ type EventItem = {
12
+ name?: string | symbol;
13
+ callback: Callback;
14
+ initialCallback?: Callback;
15
+ };
16
+ export declare class SHook {
17
+ private _events;
18
+ constructor();
19
+ tap: (eventName: EventName, eventItem: EventItem | Callback) => void;
20
+ call: (eventName: EventName, ...args: Array<unknown>) => void;
21
+ callSync: (eventName: EventName, ...args: Array<unknown>) => Promise<void>;
22
+ once: (eventName: EventName, eventItem: EventItem | Callback) => void;
23
+ off: (eventName: EventName, eventItem: EventItem | Callback) => void;
24
+ }
25
+ export interface HlsPlayer {
26
+ startLoad(): () => void;
27
+ off: (s: string, f: Function) => void;
28
+ on: (s: string, f: Function) => void;
29
+ loadSource: (s: string) => void;
30
+ attachMedia: (v: HTMLVideoElement) => void;
31
+ destroy: () => void;
32
+ }
33
+ export interface Level {
34
+ audioCodec: string;
35
+ bitrate: number;
36
+ height: number;
37
+ width: number;
38
+ name: string;
39
+ url: string;
40
+ videoCodec: string;
41
+ }
42
+ export interface Context {
43
+ action: SyncHook;
44
+ currentState: string;
45
+ duration: number;
46
+ currentTime: number;
47
+ volume: number;
48
+ playbackRate: number;
49
+ fullScreen: boolean;
50
+ levels: Partial<Level>[];
51
+ url: string;
52
+ levelMap: Map<string, string>;
53
+ clarity: string;
54
+ }
55
+ interface Hls {
56
+ Events: {
57
+ MANIFEST_LOADED: 'hlsManifestLoaded';
58
+ ERROR: 'error';
59
+ };
60
+ isSupported: () => boolean;
61
+ }
62
+ type HLS = Hls & (new () => HlsPlayer);
63
+ declare global {
64
+ interface Window {
65
+ Hls: HLS;
66
+ }
67
+ }
68
+ declare const RanPlayer_base: {
69
+ new (): HTMLElement;
70
+ prototype: HTMLElement;
71
+ };
72
+ export declare class RanPlayer extends RanPlayer_base {
73
+ ctx: Context;
74
+ _player: HTMLDivElement;
75
+ _container: HTMLDivElement;
76
+ _slot: HTMLSlotElement;
77
+ _playerController: HTMLDivElement;
78
+ _playerBtn: HTMLDivElement;
79
+ _progress: HTMLDivElement;
80
+ _progressDot: HTMLDivElement;
81
+ _progressWrap: HTMLDivElement;
82
+ _progressWrapBuffer: HTMLDivElement;
83
+ _progressWrapValue: HTMLDivElement;
84
+ requestAnimationFrameId?: number;
85
+ moveProgress: {
86
+ percentage: number;
87
+ mouseDown: boolean;
88
+ };
89
+ _isSeeking: boolean;
90
+ _wasPlayingBeforeSeek: boolean;
91
+ _isBuffering: boolean;
92
+ _isSwitchingSource: boolean;
93
+ _playerControllerBottom: HTMLDivElement;
94
+ _playerControllerBottomRight: HTMLDivElement;
95
+ _playerControllerBottomLeft: HTMLDivElement;
96
+ _playerControllerBottomPlayBtn: HTMLDivElement;
97
+ _playerControllerBottomTimeCurrent: HTMLDivElement;
98
+ _playerControllerBottomTimeDuration: HTMLDivElement;
99
+ _playerControllerBottomTimeDivide: HTMLDivElement;
100
+ _playControllerBottomClarity: HTMLElement;
101
+ _playControllerBottomSpeed: HTMLDivElement;
102
+ _playControllerBottomSpeedIcon: HTMLDivElement;
103
+ _playControllerBottomVolumeProgress: Progress;
104
+ _playControllerBottomRightFullScreen: HTMLDivElement;
105
+ _playControllerBottomVolume: HTMLDivElement;
106
+ _playControllerBottomSpeedPopover: HTMLElement;
107
+ controllerBarTimeId?: NodeJS.Timeout;
108
+ _playerTip: HTMLDivElement;
109
+ _playerTipTime: HTMLDivElement;
110
+ _playerTipText: HTMLDivElement;
111
+ _shadowDom: ShadowRoot;
112
+ _volume?: number;
113
+ _video?: HTMLVideoElement;
114
+ _hls?: HlsPlayer;
115
+ _pendingPlaybackRestore?: PlaybackSnapshot;
116
+ static get observedAttributes(): string[];
117
+ /**
118
+ * @description: 初始化 view 和 video 的全局上下文
119
+ * @return {*}
120
+ */
121
+ constructor();
122
+ get src(): string;
123
+ set src(value: string);
124
+ get debug(): string;
125
+ set debug(value: string);
126
+ get volume(): string;
127
+ set volume(value: string);
128
+ get currentTime(): string;
129
+ set currentTime(value: string);
130
+ get playbackRate(): string;
131
+ set playbackRate(value: string);
132
+ get sheet(): string;
133
+ set sheet(value: string);
134
+ handlerExternalCss: () => void;
135
+ getRuntimeState: () => PlayerRuntimeState<PlaybackSnapshot>;
136
+ applyRuntimeState: (state: PlayerRuntimeState<PlaybackSnapshot>) => void;
137
+ resetTransientState: () => void;
138
+ capturePlaybackSnapshot: () => PlaybackSnapshot;
139
+ restorePlaybackSnapshot: (snapshot: PlaybackSnapshot) => void;
140
+ changeClarity: (e: Event) => void;
141
+ createClaritySelect: () => void;
142
+ manifestLoaded: (type: string, data: {
143
+ levels: Level[];
144
+ url: string;
145
+ }) => void;
146
+ /**
147
+ * @description: 初始化 video 和更新 video 方法
148
+ * @return {*}
149
+ */
150
+ updatePlayer: () => void;
151
+ hlsError: (event: unknown, data: unknown) => void;
152
+ change: (name: string, value: unknown) => void;
153
+ onCanplay: (e: Event) => void;
154
+ onCanplaythrough: (e: Event) => void;
155
+ onComplete: (e: Event) => void;
156
+ onDurationchange: (e: Event) => void;
157
+ onEmptied: (e: Event) => void;
158
+ onEnded: (e: Event) => void;
159
+ onError: (e: Event) => void;
160
+ onLoadedmetadata: (e: Event) => void;
161
+ onLoadstart: (e: Event) => void;
162
+ onProgress: (e: Event) => void;
163
+ onRatechange: (e: Event) => void;
164
+ onSeeked: (e: Event) => void;
165
+ onSeeking: (e: Event) => void;
166
+ onStalled: (e: Event) => void;
167
+ onSuspend: (e: Event) => void;
168
+ onLoadeddata: (e: Event) => void;
169
+ onTimeupdate: (e: Event) => void;
170
+ onVolumechange: (e: Event) => void;
171
+ onWaiting: (e: Event) => void;
172
+ onPlay: (e: Event) => void;
173
+ onPlaying: (e: Event) => void;
174
+ onPause: (e: Event) => void;
175
+ getMediaHandlers: () => PlayerMediaHandlers;
176
+ clearListenerEvent: () => void;
177
+ /**
178
+ * @description: 用户行为和 video 之间的交互
179
+ * @return {*}
180
+ */
181
+ listenEvent: () => void;
182
+ showControllerBar: (e?: MouseEvent) => void;
183
+ setLoadingState: (loading: boolean) => void;
184
+ updateBufferedProgress: () => void;
185
+ syncProgressByPercentage: (percentage: number) => void;
186
+ seekToPercentage: (percentage: number) => void;
187
+ /**
188
+ * @description: 进度条点击事件
189
+ * @param {MouseEvent} e
190
+ * @return {*}
191
+ */
192
+ progressClick: (e: MouseEvent) => void;
193
+ /**
194
+ * @description: 进度条鼠标按下事件
195
+ * @param {MouseEvent} e
196
+ * @return {*}
197
+ */
198
+ progressDotMouseDown: () => void;
199
+ /**
200
+ * @description: 进度条鼠标移动事件
201
+ * @param {MouseEvent} e
202
+ * @return {*}
203
+ */
204
+ progressDotMouseMove: (e: MouseEvent) => void;
205
+ progressDotMouseMoveDocument: (e: MouseEvent) => void;
206
+ /**
207
+ * @description: 进度条鼠标松开事件
208
+ * @param {MouseEvent} e
209
+ * @return {*}
210
+ */
211
+ progressDotMouseUp: () => void;
212
+ /**
213
+ * @description: 更新页面样式
214
+ * @param {Function} fn
215
+ * @return {*}
216
+ */
217
+ requestAnimationFrame: (fn: Function) => void;
218
+ /**
219
+ * @description: 取消页面动画
220
+ * @param {Function} fn
221
+ * @return {*}
222
+ */
223
+ cancelAnimationFrame: () => void;
224
+ /**
225
+ * @description: 更新进度条
226
+ * @param {*} void
227
+ * @return {*}
228
+ */
229
+ updateCurrentProgress: () => void;
230
+ changeAttribute: (k: string, o: string, n: string, attribute: string, callback: Function) => void;
231
+ /**
232
+ * @description: 点击整个视频时,触发的事件
233
+ * @param {*} void
234
+ * @return {*}
235
+ */
236
+ dispatchClickPlayerContainerAction: (e: Event) => void;
237
+ /**
238
+ * @description: 空格事件
239
+ * @param {KeyboardEvent} e
240
+ * @return {*}
241
+ */
242
+ SpaceKeyDown: (e: KeyboardEvent) => void;
243
+ /**
244
+ * @description: 点击 player-btn,触发的事件
245
+ * @param {*} void
246
+ * @return {*}
247
+ */
248
+ dispatchClickPlayerBtnAction: (e: Event) => void;
249
+ changeVolumeProgress: (e: Event) => void;
250
+ customRequestFullscreen: () => Promise<void>;
251
+ customExitFullscreen: () => Promise<void>;
252
+ openFullScreen: () => void;
253
+ changeSpeed: (e: Event) => void;
254
+ progressMouseEnter: (e: MouseEvent) => void;
255
+ progressMouseLeave: (e: MouseEvent) => void;
256
+ progressMouseMove: (e: MouseEvent) => void;
257
+ changePlayerVolume: () => void;
258
+ resize: () => void;
259
+ fullScreenChange: () => void;
260
+ getPlaybackRate: () => number;
261
+ setPlaybackRate: (n: number) => number;
262
+ setVolume: (n: number) => number;
263
+ getVolume: () => number;
264
+ setCurrentTime: (n: number) => number;
265
+ getCurrentTime: () => number;
266
+ getTotalTime: () => number;
267
+ safePlay: (showLoading: boolean) => void;
268
+ play: (n?: number) => void;
269
+ pause: () => void;
270
+ getControllerElements: () => PlayerControllerElements;
271
+ getControllerHandlers: () => PlayerControllerHandlers;
272
+ connectedCallback(): void;
273
+ disconnectedCallback(): void;
274
+ attributeChangedCallback(k: string, o: string, n: string): void;
275
+ }
276
+ declare const _default: typeof RanPlayer;
277
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import { RanElement } from '@/utils/index';
2
+ export declare class Content extends RanElement {
3
+ observer: MutationObserver;
4
+ _shadowDom: ShadowRoot;
5
+ _slot: HTMLElement;
6
+ constructor();
7
+ callback: (mutations: MutationRecord[]) => void;
8
+ onChange: (mutation: MutationRecord) => void;
9
+ connectedCallback(): void;
10
+ disconnectedCallback(): void;
11
+ }
12
+ export default Content;
@@ -0,0 +1,95 @@
1
+ import { RanElement } from '@/utils/index';
2
+ import '@/components/popover/content';
3
+ import '@/components/dropdown';
4
+ import { EventManager } from '@/utils/builder';
5
+ export type PlacementDirection = Record<string, Record<string, string>>;
6
+ export declare enum PLACEMENT_TYPE {
7
+ TOP = "top",
8
+ BOTTOM = "bottom",
9
+ LEFT = "left",
10
+ RIGHT = "right"
11
+ }
12
+ export declare class Popover extends RanElement {
13
+ _events: EventManager;
14
+ _slot: HTMLSlotElement;
15
+ popoverBlock: HTMLDivElement;
16
+ popoverContent?: HTMLElement;
17
+ popoverInner?: HTMLDivElement;
18
+ popoverInnerBlock?: HTMLDivElement;
19
+ _shadowDom: ShadowRoot;
20
+ dropDownInTimeId?: NodeJS.Timeout;
21
+ dropDownOutTimeId?: NodeJS.Timeout;
22
+ removeTimeId?: NodeJS.Timeout;
23
+ static get observedAttributes(): string[];
24
+ readonly closePopover: () => void;
25
+ constructor();
26
+ get placement(): string;
27
+ set placement(value: string);
28
+ get arrow(): string;
29
+ set arrow(value: string);
30
+ get trigger(): string;
31
+ set trigger(value: string);
32
+ get getPopupContainerId(): string;
33
+ set getPopupContainerId(value: string);
34
+ get sheet(): string;
35
+ set sheet(value: string);
36
+ handlerExternalCss: () => void;
37
+ initAria: () => void;
38
+ updateAriaExpanded: (isExpanded: boolean) => void;
39
+ stopPropagation: (e: Event) => void;
40
+ /**
41
+ * @description: 创建下拉框
42
+ * @param {HTMLCollection} content
43
+ * @return {*}
44
+ */
45
+ createContent: (content: HTMLCollection) => void;
46
+ /**
47
+ * @description: 观察内容变化
48
+ * @param {Event} e
49
+ * @return {*}
50
+ */
51
+ watchContent: (e: Event) => void;
52
+ /**
53
+ * @description: 焦点移除的情况,需要移除下拉框
54
+ * @return {*}
55
+ */
56
+ blur: any;
57
+ /**
58
+ * @description: 移除下拉框
59
+ * @return {*}
60
+ */
61
+ removeDropDownTimeId: any;
62
+ /**
63
+ * @description: 添加 dropdown
64
+ * @return {*}
65
+ */
66
+ setDropdownDisplayBlock: any;
67
+ /**
68
+ * @description: 移除 select dropdown
69
+ * @return {*}
70
+ */
71
+ setDropdownDisplayNone: any;
72
+ /**
73
+ * @description: 设置 popover 位置
74
+ * @param {*} void
75
+ * @return {*}
76
+ */
77
+ placementPosition: () => void;
78
+ /**
79
+ * @description: 鼠标移入
80
+ * @param {Event} e
81
+ * @return {*}
82
+ */
83
+ hoverPopover: (e: Event) => void;
84
+ clickContent: (e: Event) => void;
85
+ clickPopover: (e: Event) => void;
86
+ keydownPopover: (e: KeyboardEvent) => void;
87
+ clickRemovePopover: (e: Event) => void;
88
+ popoverTrigger: () => void;
89
+ hoverRemovePopover: (e: Event) => void;
90
+ changePlacement: any;
91
+ connectedCallback(): void;
92
+ disconnectedCallback(): void;
93
+ attributeChangedCallback(n: string, o: string, v: string): void;
94
+ }
95
+ export default Popover;
@@ -0,0 +1,40 @@
1
+ import { EventManager, RanElement } from '@/utils/index';
2
+ export declare class Progress extends RanElement {
3
+ _progress: HTMLDivElement;
4
+ _progressWrap: HTMLDivElement;
5
+ _progressWrapValue: HTMLDivElement;
6
+ _progressDot: HTMLDivElement;
7
+ _shadowDom: ShadowRoot;
8
+ _events: EventManager;
9
+ moveProgress: {
10
+ mouseDown: boolean;
11
+ };
12
+ static get observedAttributes(): string[];
13
+ constructor();
14
+ get percent(): string;
15
+ set percent(value: string);
16
+ get total(): string;
17
+ set total(value: string);
18
+ get type(): string;
19
+ set type(value: string);
20
+ get dot(): string;
21
+ set dot(value: string);
22
+ get sheet(): string;
23
+ set sheet(value: string);
24
+ handlerExternalCss: () => void;
25
+ progressClick: (e: MouseEvent) => void;
26
+ progressDotMouseDown: (e: MouseEvent) => void;
27
+ progressDotMouseMove: (e: MouseEvent) => void;
28
+ progressDotMouseUp: () => void;
29
+ updateUI: (percentage: number) => void;
30
+ _preSerialize(): void;
31
+ change: () => void;
32
+ appendProgressDot: () => void;
33
+ updateCurrentProgress: () => void;
34
+ dragEvent: () => void;
35
+ private resize;
36
+ connectedCallback(): void;
37
+ disconnectedCallback(): void;
38
+ attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
39
+ }
40
+ export default Progress;
@@ -0,0 +1,52 @@
1
+ import { RanElement } from '@/utils/index';
2
+ interface AbilityTags {
3
+ abilityName: string;
4
+ scoreRate: number;
5
+ backgroundColor: string;
6
+ fontSize: string;
7
+ fontFamily: string;
8
+ fontColor: string;
9
+ }
10
+ export declare class RadarChart extends RanElement {
11
+ mData?: Array<AbilityTags>;
12
+ mCount?: number;
13
+ mW?: number;
14
+ mCenter?: number;
15
+ mRadius?: number;
16
+ mAngle?: number;
17
+ static get observedAttributes(): string[];
18
+ abilityRadarChartContainer: HTMLDivElement;
19
+ abilityRadarChart: HTMLCanvasElement;
20
+ _iconElement?: HTMLElement;
21
+ _shadowDom: ShadowRoot;
22
+ resizeObserver: ResizeObserver;
23
+ constructor();
24
+ resize: () => void;
25
+ get abilitys(): any;
26
+ set abilitys(value: any);
27
+ _cssVar(name: string): string;
28
+ get colorPolygon(): string;
29
+ set colorPolygon(value: string);
30
+ get colorLine(): string;
31
+ set colorLine(value: string);
32
+ get fontColor(): string;
33
+ get fillColor(): string;
34
+ set fillColor(value: string);
35
+ get strokeColor(): string;
36
+ set strokeColor(value: string);
37
+ get sheet(): string;
38
+ set sheet(value: string);
39
+ handlerExternalCss: () => void;
40
+ refreshData(): void;
41
+ drawSide(ctx: CanvasRenderingContext2D): void;
42
+ drawPolygon(ctx: CanvasRenderingContext2D): void;
43
+ drawLines(ctx: CanvasRenderingContext2D): void;
44
+ drawText(ctx: CanvasRenderingContext2D): void;
45
+ drawButton(ctx: CanvasRenderingContext2D, color: string, x: number, y: number, width: number, height: number, radius: number, text: string, fontColor: string, fontFamily: string, fontSize: string | number): void;
46
+ drawRegion(ctx: CanvasRenderingContext2D): void;
47
+ drawCircle(ctx: CanvasRenderingContext2D): void;
48
+ connectedCallback(): void;
49
+ disconnectedCallback(): void;
50
+ attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
51
+ }
52
+ export default RadarChart;
@@ -0,0 +1,26 @@
1
+ import { EventManager } from '@/utils/builder';
2
+ import { RanElement } from '@/utils/index';
3
+ export declare class Route extends RanElement {
4
+ static get observedAttributes(): string[];
5
+ _events: EventManager;
6
+ _shadowDom: ShadowRoot;
7
+ _params: Record<string, string>;
8
+ constructor();
9
+ get path(): string;
10
+ set path(v: string);
11
+ get exact(): boolean;
12
+ get params(): Record<string, string>;
13
+ get sheet(): string;
14
+ set sheet(v: string);
15
+ handlerExternalCss: () => void;
16
+ _matchPath(currentPath: string): {
17
+ matched: boolean;
18
+ params: Record<string, string>;
19
+ };
20
+ _update(currentPath: string): void;
21
+ _preSerialize(): void;
22
+ connectedCallback(): void;
23
+ disconnectedCallback(): void;
24
+ attributeChangedCallback(name: string, old: string, next: string): void;
25
+ }
26
+ export default Route;
@@ -0,0 +1,24 @@
1
+ import { EventManager } from '@/utils/builder';
2
+ import { RanElement } from '@/utils/index';
3
+ export declare class Router extends RanElement {
4
+ static get observedAttributes(): string[];
5
+ _events: EventManager;
6
+ _shadowDom: ShadowRoot;
7
+ _slot: HTMLSlotElement;
8
+ _currentPath: string;
9
+ constructor();
10
+ get mode(): 'history' | 'hash';
11
+ get base(): string;
12
+ get sheet(): string;
13
+ set sheet(v: string);
14
+ handlerExternalCss: () => void;
15
+ _getPath(): string;
16
+ navigate(path: string, replace?: boolean): void;
17
+ _syncRoutes(): void;
18
+ _handlePopState: () => void;
19
+ _handleNavigate: (e: Event) => void;
20
+ connectedCallback(): void;
21
+ disconnectedCallback(): void;
22
+ attributeChangedCallback(name: string, old: string, next: string): void;
23
+ }
24
+ export default Router;
@@ -0,0 +1,19 @@
1
+ import { RanElement } from '@/utils/index';
2
+ declare class ScratchTicket extends RanElement {
3
+ scratchTicketContainer: HTMLDivElement;
4
+ scratchTicket: HTMLCanvasElement;
5
+ state: {
6
+ touchStart: boolean;
7
+ scratchArea: number;
8
+ };
9
+ scratchAward: HTMLDivElement;
10
+ _shadowDom: ShadowRoot;
11
+ static get observedAttributes(): string[];
12
+ constructor();
13
+ touchStartScratch: (e: TouchEvent) => void;
14
+ touchMoveScratch: () => void;
15
+ touchEndScratch: () => void;
16
+ drawScratchTicket: () => void;
17
+ attributeChangedCallback(): void;
18
+ }
19
+ export default ScratchTicket;