mdui 1.0.2 → 2.0.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 (664) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +49 -70
  3. package/components/avatar/index.d.ts +49 -0
  4. package/components/avatar/index.js +55 -0
  5. package/components/avatar/style.d.ts +1 -0
  6. package/components/avatar/style.js +2 -0
  7. package/components/avatar.d.ts +1 -0
  8. package/components/avatar.js +1 -0
  9. package/components/badge/index.d.ts +28 -0
  10. package/components/badge/index.js +41 -0
  11. package/components/badge/style.d.ts +1 -0
  12. package/components/badge/style.js +2 -0
  13. package/components/badge.d.ts +1 -0
  14. package/components/badge.js +1 -0
  15. package/components/bottom-app-bar/index.d.ts +60 -0
  16. package/components/bottom-app-bar/index.js +105 -0
  17. package/components/bottom-app-bar/style.d.ts +1 -0
  18. package/components/bottom-app-bar/style.js +2 -0
  19. package/components/bottom-app-bar.d.ts +1 -0
  20. package/components/bottom-app-bar.js +1 -0
  21. package/components/button/button-base-style.d.ts +1 -0
  22. package/components/button/button-base-style.js +2 -0
  23. package/components/button/button-base.d.ts +138 -0
  24. package/components/button/button-base.js +206 -0
  25. package/components/button/index.d.ts +64 -0
  26. package/components/button/index.js +110 -0
  27. package/components/button/style.d.ts +1 -0
  28. package/components/button/style.js +4 -0
  29. package/components/button-icon/index.d.ts +66 -0
  30. package/components/button-icon/index.js +129 -0
  31. package/components/button-icon/style.d.ts +1 -0
  32. package/components/button-icon/style.js +4 -0
  33. package/components/button-icon.d.ts +1 -0
  34. package/components/button-icon.js +1 -0
  35. package/components/button.d.ts +1 -0
  36. package/components/button.js +1 -0
  37. package/components/card/index.d.ts +49 -0
  38. package/components/card/index.js +87 -0
  39. package/components/card/style.d.ts +1 -0
  40. package/components/card/style.js +2 -0
  41. package/components/card.d.ts +1 -0
  42. package/components/card.js +1 -0
  43. package/components/checkbox/index.d.ts +130 -0
  44. package/components/checkbox/index.js +257 -0
  45. package/components/checkbox/style.d.ts +1 -0
  46. package/components/checkbox/style.js +2 -0
  47. package/components/checkbox.d.ts +1 -0
  48. package/components/checkbox.js +1 -0
  49. package/components/chip/index.d.ts +102 -0
  50. package/components/chip/index.js +243 -0
  51. package/components/chip/style.d.ts +1 -0
  52. package/components/chip/style.js +4 -0
  53. package/components/chip.d.ts +1 -0
  54. package/components/chip.js +1 -0
  55. package/components/circular-progress/index.d.ts +28 -0
  56. package/components/circular-progress/index.js +61 -0
  57. package/components/circular-progress/style.d.ts +1 -0
  58. package/components/circular-progress/style.js +2 -0
  59. package/components/circular-progress.d.ts +1 -0
  60. package/components/circular-progress.js +1 -0
  61. package/components/collapse/collapse-item-style.d.ts +1 -0
  62. package/components/collapse/collapse-item-style.js +2 -0
  63. package/components/collapse/collapse-item.d.ts +56 -0
  64. package/components/collapse/collapse-item.js +126 -0
  65. package/components/collapse/collapse-style.d.ts +1 -0
  66. package/components/collapse/collapse-style.js +2 -0
  67. package/components/collapse/collapse.d.ts +49 -0
  68. package/components/collapse/collapse.js +175 -0
  69. package/components/collapse-item.d.ts +1 -0
  70. package/components/collapse-item.js +1 -0
  71. package/components/collapse.d.ts +1 -0
  72. package/components/collapse.js +1 -0
  73. package/components/dialog/index.d.ts +99 -0
  74. package/components/dialog/index.js +307 -0
  75. package/components/dialog/style.d.ts +1 -0
  76. package/components/dialog/style.js +2 -0
  77. package/components/dialog.d.ts +1 -0
  78. package/components/dialog.js +1 -0
  79. package/components/divider/index.d.ts +30 -0
  80. package/components/divider/index.js +58 -0
  81. package/components/divider/style.d.ts +1 -0
  82. package/components/divider/style.js +2 -0
  83. package/components/divider.d.ts +1 -0
  84. package/components/divider.js +1 -0
  85. package/components/dropdown/index.d.ts +131 -0
  86. package/components/dropdown/index.js +571 -0
  87. package/components/dropdown/style.d.ts +1 -0
  88. package/components/dropdown/style.js +2 -0
  89. package/components/dropdown.d.ts +1 -0
  90. package/components/dropdown.js +1 -0
  91. package/components/fab/index.d.ts +70 -0
  92. package/components/fab/index.js +144 -0
  93. package/components/fab/style.d.ts +1 -0
  94. package/components/fab/style.js +8 -0
  95. package/components/fab.d.ts +1 -0
  96. package/components/fab.js +1 -0
  97. package/components/icon/index.d.ts +29 -0
  98. package/components/icon/index.js +57 -0
  99. package/components/icon/style.d.ts +1 -0
  100. package/components/icon/style.js +2 -0
  101. package/components/icon.d.ts +1 -0
  102. package/components/icon.js +1 -0
  103. package/components/layout/helper.d.ts +67 -0
  104. package/components/layout/helper.js +212 -0
  105. package/components/layout/layout-item-base.d.ts +17 -0
  106. package/components/layout/layout-item-base.js +45 -0
  107. package/components/layout/layout-item-style.d.ts +1 -0
  108. package/components/layout/layout-item-style.js +2 -0
  109. package/components/layout/layout-item.d.ts +37 -0
  110. package/components/layout/layout-item.js +58 -0
  111. package/components/layout/layout-main-style.d.ts +1 -0
  112. package/components/layout/layout-main-style.js +2 -0
  113. package/components/layout/layout-main.d.ts +27 -0
  114. package/components/layout/layout-main.js +46 -0
  115. package/components/layout/layout-style.d.ts +1 -0
  116. package/components/layout/layout-style.js +2 -0
  117. package/components/layout/layout.d.ts +28 -0
  118. package/components/layout/layout.js +43 -0
  119. package/components/layout-item.d.ts +1 -0
  120. package/components/layout-item.js +1 -0
  121. package/components/layout-main.d.ts +1 -0
  122. package/components/layout-main.js +1 -0
  123. package/components/layout.d.ts +1 -0
  124. package/components/layout.js +1 -0
  125. package/components/linear-progress/index.d.ts +30 -0
  126. package/components/linear-progress/index.js +48 -0
  127. package/components/linear-progress/style.d.ts +1 -0
  128. package/components/linear-progress/style.js +2 -0
  129. package/components/linear-progress.d.ts +1 -0
  130. package/components/linear-progress.js +1 -0
  131. package/components/list/list-item-style.d.ts +1 -0
  132. package/components/list/list-item-style.js +4 -0
  133. package/components/list/list-item.d.ts +111 -0
  134. package/components/list/list-item.js +186 -0
  135. package/components/list/list-style.d.ts +1 -0
  136. package/components/list/list-style.js +2 -0
  137. package/components/list/list-subheader-style.d.ts +1 -0
  138. package/components/list/list-subheader-style.js +2 -0
  139. package/components/list/list-subheader.d.ts +24 -0
  140. package/components/list/list-subheader.js +30 -0
  141. package/components/list/list.d.ts +24 -0
  142. package/components/list/list.js +27 -0
  143. package/components/list-item.d.ts +1 -0
  144. package/components/list-item.js +1 -0
  145. package/components/list-subheader.d.ts +1 -0
  146. package/components/list-subheader.js +1 -0
  147. package/components/list.d.ts +1 -0
  148. package/components/list.js +1 -0
  149. package/components/menu/menu-item-style.d.ts +1 -0
  150. package/components/menu/menu-item-style.js +2 -0
  151. package/components/menu/menu-item.d.ts +123 -0
  152. package/components/menu/menu-item.js +412 -0
  153. package/components/menu/menu-style.d.ts +1 -0
  154. package/components/menu/menu-style.js +2 -0
  155. package/components/menu/menu.d.ts +111 -0
  156. package/components/menu/menu.js +425 -0
  157. package/components/menu-item.d.ts +1 -0
  158. package/components/menu-item.js +1 -0
  159. package/components/menu.d.ts +1 -0
  160. package/components/menu.js +1 -0
  161. package/components/navigation-bar/navigation-bar-item-style.d.ts +1 -0
  162. package/components/navigation-bar/navigation-bar-item-style.js +2 -0
  163. package/components/navigation-bar/navigation-bar-item.d.ts +72 -0
  164. package/components/navigation-bar/navigation-bar-item.js +120 -0
  165. package/components/navigation-bar/navigation-bar-style.d.ts +1 -0
  166. package/components/navigation-bar/navigation-bar-style.js +2 -0
  167. package/components/navigation-bar/navigation-bar.d.ts +78 -0
  168. package/components/navigation-bar/navigation-bar.js +180 -0
  169. package/components/navigation-bar-item.d.ts +1 -0
  170. package/components/navigation-bar-item.js +1 -0
  171. package/components/navigation-bar.d.ts +1 -0
  172. package/components/navigation-bar.js +1 -0
  173. package/components/navigation-drawer/index.d.ts +84 -0
  174. package/components/navigation-drawer/index.js +365 -0
  175. package/components/navigation-drawer/style.d.ts +1 -0
  176. package/components/navigation-drawer/style.js +2 -0
  177. package/components/navigation-drawer.d.ts +1 -0
  178. package/components/navigation-drawer.js +1 -0
  179. package/components/navigation-rail/navigation-rail-item-style.d.ts +1 -0
  180. package/components/navigation-rail/navigation-rail-item-style.js +2 -0
  181. package/components/navigation-rail/navigation-rail-item.d.ts +72 -0
  182. package/components/navigation-rail/navigation-rail-item.js +128 -0
  183. package/components/navigation-rail/navigation-rail-style.d.ts +1 -0
  184. package/components/navigation-rail/navigation-rail-style.js +2 -0
  185. package/components/navigation-rail/navigation-rail.d.ts +87 -0
  186. package/components/navigation-rail/navigation-rail.js +230 -0
  187. package/components/navigation-rail-item.d.ts +1 -0
  188. package/components/navigation-rail-item.js +1 -0
  189. package/components/navigation-rail.d.ts +1 -0
  190. package/components/navigation-rail.js +1 -0
  191. package/components/radio/radio-group-style.d.ts +1 -0
  192. package/components/radio/radio-group-style.js +2 -0
  193. package/components/radio/radio-group.d.ts +103 -0
  194. package/components/radio/radio-group.js +268 -0
  195. package/components/radio/radio-style.d.ts +1 -0
  196. package/components/radio/radio-style.js +2 -0
  197. package/components/radio/radio.d.ts +71 -0
  198. package/components/radio/radio.js +144 -0
  199. package/components/radio-group.d.ts +1 -0
  200. package/components/radio-group.js +1 -0
  201. package/components/radio.d.ts +1 -0
  202. package/components/radio.js +1 -0
  203. package/components/range-slider/index.d.ts +67 -0
  204. package/components/range-slider/index.js +210 -0
  205. package/components/range-slider.d.ts +1 -0
  206. package/components/range-slider.js +1 -0
  207. package/components/ripple/index.d.ts +44 -0
  208. package/components/ripple/index.js +173 -0
  209. package/components/ripple/ripple-mixin.d.ts +28 -0
  210. package/components/ripple/ripple-mixin.js +258 -0
  211. package/components/ripple/style.d.ts +1 -0
  212. package/components/ripple/style.js +2 -0
  213. package/components/ripple.d.ts +1 -0
  214. package/components/ripple.js +1 -0
  215. package/components/segmented-button/segmented-button-group-style.d.ts +1 -0
  216. package/components/segmented-button/segmented-button-group-style.js +2 -0
  217. package/components/segmented-button/segmented-button-group.d.ts +125 -0
  218. package/components/segmented-button/segmented-button-group.js +383 -0
  219. package/components/segmented-button/segmented-button-style.d.ts +1 -0
  220. package/components/segmented-button/segmented-button-style.js +4 -0
  221. package/components/segmented-button/segmented-button.d.ts +73 -0
  222. package/components/segmented-button/segmented-button.js +160 -0
  223. package/components/segmented-button-group.d.ts +1 -0
  224. package/components/segmented-button-group.js +1 -0
  225. package/components/segmented-button.d.ts +1 -0
  226. package/components/segmented-button.js +1 -0
  227. package/components/select/index.d.ts +200 -0
  228. package/components/select/index.js +390 -0
  229. package/components/select/style.d.ts +1 -0
  230. package/components/select/style.js +2 -0
  231. package/components/select.d.ts +1 -0
  232. package/components/select.js +1 -0
  233. package/components/slider/index.d.ts +53 -0
  234. package/components/slider/index.js +128 -0
  235. package/components/slider/slider-base-style.d.ts +1 -0
  236. package/components/slider/slider-base-style.js +2 -0
  237. package/components/slider/slider-base.d.ts +92 -0
  238. package/components/slider/slider-base.js +199 -0
  239. package/components/slider/style.d.ts +1 -0
  240. package/components/slider/style.js +2 -0
  241. package/components/slider.d.ts +1 -0
  242. package/components/slider.js +1 -0
  243. package/components/snackbar/index.d.ts +98 -0
  244. package/components/snackbar/index.js +285 -0
  245. package/components/snackbar/style.d.ts +1 -0
  246. package/components/snackbar/style.js +2 -0
  247. package/components/snackbar.d.ts +1 -0
  248. package/components/snackbar.js +1 -0
  249. package/components/switch/index.d.ts +123 -0
  250. package/components/switch/index.js +245 -0
  251. package/components/switch/style.d.ts +1 -0
  252. package/components/switch/style.js +2 -0
  253. package/components/switch.d.ts +1 -0
  254. package/components/switch.js +1 -0
  255. package/components/tab-panel.d.ts +1 -0
  256. package/components/tab-panel.js +1 -0
  257. package/components/tab.d.ts +1 -0
  258. package/components/tab.js +1 -0
  259. package/components/tabs/tab-panel-style.d.ts +1 -0
  260. package/components/tabs/tab-panel-style.js +2 -0
  261. package/components/tabs/tab-panel.d.ts +36 -0
  262. package/components/tabs/tab-panel.js +52 -0
  263. package/components/tabs/tab-style.d.ts +1 -0
  264. package/components/tabs/tab-style.js +2 -0
  265. package/components/tabs/tab.d.ts +69 -0
  266. package/components/tabs/tab.js +110 -0
  267. package/components/tabs/tabs-style.d.ts +1 -0
  268. package/components/tabs/tabs-style.js +2 -0
  269. package/components/tabs/tabs.d.ts +87 -0
  270. package/components/tabs/tabs.js +221 -0
  271. package/components/tabs.d.ts +1 -0
  272. package/components/tabs.js +1 -0
  273. package/components/text-field/index.d.ts +400 -0
  274. package/components/text-field/index.js +752 -0
  275. package/components/text-field/style.d.ts +1 -0
  276. package/components/text-field/style.js +2 -0
  277. package/components/text-field.d.ts +1 -0
  278. package/components/text-field.js +1 -0
  279. package/components/tooltip/index.d.ts +140 -0
  280. package/components/tooltip/index.js +497 -0
  281. package/components/tooltip/style.d.ts +1 -0
  282. package/components/tooltip/style.js +2 -0
  283. package/components/tooltip.d.ts +1 -0
  284. package/components/tooltip.js +1 -0
  285. package/components/top-app-bar/top-app-bar-style.d.ts +1 -0
  286. package/components/top-app-bar/top-app-bar-style.js +2 -0
  287. package/components/top-app-bar/top-app-bar-title-style.d.ts +1 -0
  288. package/components/top-app-bar/top-app-bar-title-style.js +2 -0
  289. package/components/top-app-bar/top-app-bar-title.d.ts +46 -0
  290. package/components/top-app-bar/top-app-bar-title.js +76 -0
  291. package/components/top-app-bar/top-app-bar.d.ts +74 -0
  292. package/components/top-app-bar/top-app-bar.js +178 -0
  293. package/components/top-app-bar-title.d.ts +1 -0
  294. package/components/top-app-bar-title.js +1 -0
  295. package/components/top-app-bar.d.ts +1 -0
  296. package/components/top-app-bar.js +1 -0
  297. package/css-data.zh-cn.json +2819 -0
  298. package/custom-elements.json +28087 -0
  299. package/functions/alert.d.ts +80 -0
  300. package/functions/alert.js +59 -0
  301. package/functions/breakpoint.d.ts +1 -0
  302. package/functions/breakpoint.js +1 -0
  303. package/functions/confirm.d.ts +95 -0
  304. package/functions/confirm.js +68 -0
  305. package/functions/dialog.d.ts +97 -0
  306. package/functions/dialog.js +100 -0
  307. package/functions/getColorFromImage.d.ts +7 -0
  308. package/functions/getColorFromImage.js +12 -0
  309. package/functions/getTheme.d.ts +10 -0
  310. package/functions/getTheme.js +16 -0
  311. package/functions/observeResize.d.ts +2 -0
  312. package/functions/observeResize.js +1 -0
  313. package/functions/prompt.d.ts +110 -0
  314. package/functions/prompt.js +103 -0
  315. package/functions/removeColorScheme.d.ts +6 -0
  316. package/functions/removeColorScheme.js +8 -0
  317. package/functions/setColorScheme.d.ts +15 -0
  318. package/functions/setColorScheme.js +15 -0
  319. package/functions/setTheme.d.ts +10 -0
  320. package/functions/setTheme.js +16 -0
  321. package/functions/snackbar.d.ts +91 -0
  322. package/functions/snackbar.js +84 -0
  323. package/functions/throttle.d.ts +1 -0
  324. package/functions/throttle.js +1 -0
  325. package/functions/utils/colorScheme.d.ts +39 -0
  326. package/functions/utils/colorScheme.js +133 -0
  327. package/functions/utils/theme.d.ts +1 -0
  328. package/html-data.zh-cn.json +6566 -0
  329. package/jq.d.ts +1 -0
  330. package/jq.js +1 -0
  331. package/mdui.css +1 -0
  332. package/mdui.d.ts +61 -0
  333. package/mdui.esm.js +22 -0
  334. package/mdui.global.js +22 -0
  335. package/mdui.js +61 -0
  336. package/package.json +39 -68
  337. package/web-types.zh-cn.json +11728 -0
  338. package/dist/css/mdui.css +0 -13559
  339. package/dist/css/mdui.css.map +0 -1
  340. package/dist/css/mdui.min.css +0 -6
  341. package/dist/css/mdui.min.css.map +0 -1
  342. package/dist/fonts/roboto/LICENSE.txt +0 -201
  343. package/dist/fonts/roboto/Roboto-Black.woff +0 -0
  344. package/dist/fonts/roboto/Roboto-Black.woff2 +0 -0
  345. package/dist/fonts/roboto/Roboto-BlackItalic.woff +0 -0
  346. package/dist/fonts/roboto/Roboto-BlackItalic.woff2 +0 -0
  347. package/dist/fonts/roboto/Roboto-Bold.woff +0 -0
  348. package/dist/fonts/roboto/Roboto-Bold.woff2 +0 -0
  349. package/dist/fonts/roboto/Roboto-BoldItalic.woff +0 -0
  350. package/dist/fonts/roboto/Roboto-BoldItalic.woff2 +0 -0
  351. package/dist/fonts/roboto/Roboto-Light.woff +0 -0
  352. package/dist/fonts/roboto/Roboto-Light.woff2 +0 -0
  353. package/dist/fonts/roboto/Roboto-LightItalic.woff +0 -0
  354. package/dist/fonts/roboto/Roboto-LightItalic.woff2 +0 -0
  355. package/dist/fonts/roboto/Roboto-Medium.woff +0 -0
  356. package/dist/fonts/roboto/Roboto-Medium.woff2 +0 -0
  357. package/dist/fonts/roboto/Roboto-MediumItalic.woff +0 -0
  358. package/dist/fonts/roboto/Roboto-MediumItalic.woff2 +0 -0
  359. package/dist/fonts/roboto/Roboto-Regular.woff +0 -0
  360. package/dist/fonts/roboto/Roboto-Regular.woff2 +0 -0
  361. package/dist/fonts/roboto/Roboto-RegularItalic.woff +0 -0
  362. package/dist/fonts/roboto/Roboto-RegularItalic.woff2 +0 -0
  363. package/dist/fonts/roboto/Roboto-Thin.woff +0 -0
  364. package/dist/fonts/roboto/Roboto-Thin.woff2 +0 -0
  365. package/dist/fonts/roboto/Roboto-ThinItalic.woff +0 -0
  366. package/dist/fonts/roboto/Roboto-ThinItalic.woff2 +0 -0
  367. package/dist/icons/material-icons/LICENSE.txt +0 -393
  368. package/dist/icons/material-icons/MaterialIcons-Regular.ijmap +0 -1
  369. package/dist/icons/material-icons/MaterialIcons-Regular.woff +0 -0
  370. package/dist/icons/material-icons/MaterialIcons-Regular.woff2 +0 -0
  371. package/dist/js/mdui.esm.js +0 -5976
  372. package/dist/js/mdui.esm.js.map +0 -1
  373. package/dist/js/mdui.js +0 -6474
  374. package/dist/js/mdui.js.map +0 -1
  375. package/dist/js/mdui.min.js +0 -7
  376. package/dist/js/mdui.min.js.map +0 -1
  377. package/es/components/appbar/index.d.ts +0 -2
  378. package/es/components/appbar/index.js +0 -17
  379. package/es/components/bottom_nav/index.d.ts +0 -9
  380. package/es/components/bottom_nav/index.js +0 -38
  381. package/es/components/collapse/collapseAbstract.d.ts +0 -110
  382. package/es/components/collapse/collapseAbstract.js +0 -175
  383. package/es/components/collapse/customAttr.d.ts +0 -2
  384. package/es/components/collapse/customAttr.js +0 -11
  385. package/es/components/collapse/index.d.ts +0 -23
  386. package/es/components/collapse/index.js +0 -8
  387. package/es/components/dialog/alert.d.ts +0 -44
  388. package/es/components/dialog/alert.js +0 -42
  389. package/es/components/dialog/class.d.ts +0 -133
  390. package/es/components/dialog/class.js +0 -316
  391. package/es/components/dialog/confirm.d.ts +0 -54
  392. package/es/components/dialog/confirm.js +0 -55
  393. package/es/components/dialog/customAttr.d.ts +0 -4
  394. package/es/components/dialog/customAttr.js +0 -25
  395. package/es/components/dialog/dialog.d.ts +0 -91
  396. package/es/components/dialog/dialog.js +0 -101
  397. package/es/components/dialog/index.d.ts +0 -20
  398. package/es/components/dialog/index.js +0 -14
  399. package/es/components/dialog/prompt.d.ts +0 -74
  400. package/es/components/dialog/prompt.js +0 -109
  401. package/es/components/drawer/customAttr.d.ts +0 -4
  402. package/es/components/drawer/customAttr.js +0 -20
  403. package/es/components/drawer/index.d.ts +0 -111
  404. package/es/components/drawer/index.js +0 -310
  405. package/es/components/fab/customAttr.d.ts +0 -1
  406. package/es/components/fab/customAttr.js +0 -13
  407. package/es/components/fab/index.d.ts +0 -100
  408. package/es/components/fab/index.js +0 -144
  409. package/es/components/headroom/customAttr.d.ts +0 -2
  410. package/es/components/headroom/customAttr.js +0 -11
  411. package/es/components/headroom/index.d.ts +0 -120
  412. package/es/components/headroom/index.js +0 -167
  413. package/es/components/menu/customAttr.d.ts +0 -3
  414. package/es/components/menu/customAttr.js +0 -24
  415. package/es/components/menu/index.d.ts +0 -167
  416. package/es/components/menu/index.js +0 -512
  417. package/es/components/panel/customAttr.d.ts +0 -2
  418. package/es/components/panel/customAttr.js +0 -11
  419. package/es/components/panel/index.d.ts +0 -23
  420. package/es/components/panel/index.js +0 -8
  421. package/es/components/progress/spinner.d.ts +0 -16
  422. package/es/components/progress/spinner.js +0 -47
  423. package/es/components/ripple/index.d.ts +0 -25
  424. package/es/components/ripple/index.js +0 -170
  425. package/es/components/select/customAttr.d.ts +0 -2
  426. package/es/components/select/customAttr.js +0 -11
  427. package/es/components/select/index.d.ts +0 -160
  428. package/es/components/select/index.js +0 -340
  429. package/es/components/slider/index.d.ts +0 -28
  430. package/es/components/slider/index.js +0 -134
  431. package/es/components/snackbar/index.d.ts +0 -126
  432. package/es/components/snackbar/index.js +0 -217
  433. package/es/components/tab/customAttr.d.ts +0 -2
  434. package/es/components/tab/customAttr.js +0 -11
  435. package/es/components/tab/index.d.ts +0 -114
  436. package/es/components/tab/index.js +0 -266
  437. package/es/components/table/index.d.ts +0 -25
  438. package/es/components/table/index.js +0 -178
  439. package/es/components/textfield/index.d.ts +0 -28
  440. package/es/components/textfield/index.js +0 -147
  441. package/es/components/tooltip/customAttr.d.ts +0 -3
  442. package/es/components/tooltip/customAttr.js +0 -20
  443. package/es/components/tooltip/index.d.ts +0 -123
  444. package/es/components/tooltip/index.js +0 -251
  445. package/es/global/mutation.d.ts +0 -23
  446. package/es/global/mutation.js +0 -14
  447. package/es/index.d.ts +0 -36
  448. package/es/index.js +0 -36
  449. package/es/interfaces/MduiStatic.d.ts +0 -8
  450. package/es/jq.d.ts +0 -99
  451. package/es/jq.js +0 -102
  452. package/es/jq_extends/methods/mutation.d.ts +0 -11
  453. package/es/jq_extends/methods/mutation.js +0 -19
  454. package/es/jq_extends/methods/reflow.d.ts +0 -14
  455. package/es/jq_extends/methods/reflow.js +0 -7
  456. package/es/jq_extends/methods/transform.d.ts +0 -14
  457. package/es/jq_extends/methods/transform.js +0 -8
  458. package/es/jq_extends/methods/transformOrigin.d.ts +0 -14
  459. package/es/jq_extends/methods/transformOrigin.js +0 -8
  460. package/es/jq_extends/methods/transition.d.ts +0 -15
  461. package/es/jq_extends/methods/transition.js +0 -12
  462. package/es/jq_extends/methods/transitionEnd.d.ts +0 -17
  463. package/es/jq_extends/methods/transitionEnd.js +0 -23
  464. package/es/jq_extends/static/guid.d.ts +0 -18
  465. package/es/jq_extends/static/guid.js +0 -30
  466. package/es/jq_extends/static/hideOverlay.d.ts +0 -23
  467. package/es/jq_extends/static/hideOverlay.js +0 -25
  468. package/es/jq_extends/static/lockScreen.d.ts +0 -15
  469. package/es/jq_extends/static/lockScreen.js +0 -14
  470. package/es/jq_extends/static/showOverlay.d.ts +0 -23
  471. package/es/jq_extends/static/showOverlay.js +0 -27
  472. package/es/jq_extends/static/throttle.d.ts +0 -17
  473. package/es/jq_extends/static/throttle.js +0 -13
  474. package/es/jq_extends/static/unlockScreen.d.ts +0 -22
  475. package/es/jq_extends/static/unlockScreen.js +0 -13
  476. package/es/mdui.d.ts +0 -3
  477. package/es/mdui.js +0 -8
  478. package/es/utils/componentEvent.d.ts +0 -13
  479. package/es/utils/componentEvent.js +0 -37
  480. package/es/utils/dom.d.ts +0 -4
  481. package/es/utils/dom.js +0 -5
  482. package/es/utils/mutation.d.ts +0 -15
  483. package/es/utils/mutation.js +0 -24
  484. package/es/utils/parseOptions.d.ts +0 -9
  485. package/es/utils/parseOptions.js +0 -15
  486. package/es/utils/queue.d.ts +0 -18
  487. package/es/utils/queue.js +0 -26
  488. package/es/utils/touchHandler.d.ts +0 -50
  489. package/es/utils/touchHandler.js +0 -76
  490. package/src/components/appbar/index.less +0 -110
  491. package/src/components/appbar/index.ts +0 -19
  492. package/src/components/bottom_nav/index.less +0 -155
  493. package/src/components/bottom_nav/index.ts +0 -43
  494. package/src/components/button/index.less +0 -291
  495. package/src/components/card/index.less +0 -200
  496. package/src/components/chip/index.less +0 -97
  497. package/src/components/collapse/collapseAbstract.ts +0 -270
  498. package/src/components/collapse/customAttr.ts +0 -13
  499. package/src/components/collapse/index.less +0 -44
  500. package/src/components/collapse/index.ts +0 -32
  501. package/src/components/dialog/alert.less +0 -11
  502. package/src/components/dialog/alert.ts +0 -111
  503. package/src/components/dialog/class.ts +0 -432
  504. package/src/components/dialog/confirm.less +0 -11
  505. package/src/components/dialog/confirm.ts +0 -140
  506. package/src/components/dialog/customAttr.ts +0 -41
  507. package/src/components/dialog/dialog.ts +0 -224
  508. package/src/components/dialog/index.less +0 -154
  509. package/src/components/dialog/index.ts +0 -40
  510. package/src/components/dialog/prompt.less +0 -16
  511. package/src/components/dialog/prompt.ts +0 -231
  512. package/src/components/divider/index.less +0 -49
  513. package/src/components/drawer/customAttr.ts +0 -30
  514. package/src/components/drawer/index.less +0 -177
  515. package/src/components/drawer/index.ts +0 -425
  516. package/src/components/fab/customAttr.ts +0 -23
  517. package/src/components/fab/index.less +0 -158
  518. package/src/components/fab/index.ts +0 -232
  519. package/src/components/grid_list/index.less +0 -126
  520. package/src/components/headroom/customAttr.ts +0 -13
  521. package/src/components/headroom/index.less +0 -51
  522. package/src/components/headroom/index.ts +0 -275
  523. package/src/components/list/index.less +0 -347
  524. package/src/components/menu/customAttr.ts +0 -40
  525. package/src/components/menu/index.less +0 -195
  526. package/src/components/menu/index.ts +0 -725
  527. package/src/components/menu/svg/arrow_right_dark.svg +0 -1
  528. package/src/components/menu/svg/arrow_right_light.svg +0 -1
  529. package/src/components/panel/customAttr.ts +0 -13
  530. package/src/components/panel/index.less +0 -191
  531. package/src/components/panel/index.ts +0 -32
  532. package/src/components/progress/progress.less +0 -113
  533. package/src/components/progress/spinner.less +0 -198
  534. package/src/components/progress/spinner.ts +0 -75
  535. package/src/components/ripple/index.less +0 -92
  536. package/src/components/ripple/index.ts +0 -217
  537. package/src/components/select/customAttr.ts +0 -13
  538. package/src/components/select/index.less +0 -342
  539. package/src/components/select/index.ts +0 -478
  540. package/src/components/select/svg/arrow_down_dark.svg +0 -1
  541. package/src/components/select/svg/arrow_down_light.svg +0 -1
  542. package/src/components/select/svg/arrow_up_dark.svg +0 -1
  543. package/src/components/select/svg/arrow_up_light.svg +0 -1
  544. package/src/components/selection_control/checkbox.less +0 -226
  545. package/src/components/selection_control/radio.less +0 -163
  546. package/src/components/selection_control/switch.less +0 -210
  547. package/src/components/slider/index.less +0 -340
  548. package/src/components/slider/index.ts +0 -187
  549. package/src/components/snackbar/index.less +0 -133
  550. package/src/components/snackbar/index.ts +0 -367
  551. package/src/components/subheader/index.less +0 -38
  552. package/src/components/tab/customAttr.ts +0 -13
  553. package/src/components/tab/index.less +0 -195
  554. package/src/components/tab/index.ts +0 -372
  555. package/src/components/table/index.less +0 -169
  556. package/src/components/table/index.ts +0 -240
  557. package/src/components/textfield/index.less +0 -425
  558. package/src/components/textfield/index.ts +0 -217
  559. package/src/components/toolbar/index.less +0 -92
  560. package/src/components/tooltip/customAttr.ts +0 -26
  561. package/src/components/tooltip/index.less +0 -45
  562. package/src/components/tooltip/index.ts +0 -361
  563. package/src/fonts/roboto/LICENSE.txt +0 -201
  564. package/src/fonts/roboto/Roboto-Black.woff +0 -0
  565. package/src/fonts/roboto/Roboto-Black.woff2 +0 -0
  566. package/src/fonts/roboto/Roboto-BlackItalic.woff +0 -0
  567. package/src/fonts/roboto/Roboto-BlackItalic.woff2 +0 -0
  568. package/src/fonts/roboto/Roboto-Bold.woff +0 -0
  569. package/src/fonts/roboto/Roboto-Bold.woff2 +0 -0
  570. package/src/fonts/roboto/Roboto-BoldItalic.woff +0 -0
  571. package/src/fonts/roboto/Roboto-BoldItalic.woff2 +0 -0
  572. package/src/fonts/roboto/Roboto-Light.woff +0 -0
  573. package/src/fonts/roboto/Roboto-Light.woff2 +0 -0
  574. package/src/fonts/roboto/Roboto-LightItalic.woff +0 -0
  575. package/src/fonts/roboto/Roboto-LightItalic.woff2 +0 -0
  576. package/src/fonts/roboto/Roboto-Medium.woff +0 -0
  577. package/src/fonts/roboto/Roboto-Medium.woff2 +0 -0
  578. package/src/fonts/roboto/Roboto-MediumItalic.woff +0 -0
  579. package/src/fonts/roboto/Roboto-MediumItalic.woff2 +0 -0
  580. package/src/fonts/roboto/Roboto-Regular.woff +0 -0
  581. package/src/fonts/roboto/Roboto-Regular.woff2 +0 -0
  582. package/src/fonts/roboto/Roboto-RegularItalic.woff +0 -0
  583. package/src/fonts/roboto/Roboto-RegularItalic.woff2 +0 -0
  584. package/src/fonts/roboto/Roboto-Thin.woff +0 -0
  585. package/src/fonts/roboto/Roboto-Thin.woff2 +0 -0
  586. package/src/fonts/roboto/Roboto-ThinItalic.woff +0 -0
  587. package/src/fonts/roboto/Roboto-ThinItalic.woff2 +0 -0
  588. package/src/global/mutation.ts +0 -37
  589. package/src/icons/material-icons/LICENSE.txt +0 -393
  590. package/src/icons/material-icons/MaterialIcons-Regular.ijmap +0 -1
  591. package/src/icons/material-icons/MaterialIcons-Regular.woff +0 -0
  592. package/src/icons/material-icons/MaterialIcons-Regular.woff2 +0 -0
  593. package/src/index.less +0 -73
  594. package/src/index.ts +0 -39
  595. package/src/interfaces/MduiStatic.ts +0 -11
  596. package/src/jq.ts +0 -104
  597. package/src/jq_extends/methods/mutation.ts +0 -32
  598. package/src/jq_extends/methods/reflow.ts +0 -23
  599. package/src/jq_extends/methods/transform.ts +0 -24
  600. package/src/jq_extends/methods/transformOrigin.ts +0 -24
  601. package/src/jq_extends/methods/transition.ts +0 -30
  602. package/src/jq_extends/methods/transitionEnd.ts +0 -49
  603. package/src/jq_extends/static/guid.ts +0 -56
  604. package/src/jq_extends/static/hideOverlay.ts +0 -50
  605. package/src/jq_extends/static/lockScreen.ts +0 -30
  606. package/src/jq_extends/static/showOverlay.ts +0 -51
  607. package/src/jq_extends/static/throttle.ts +0 -32
  608. package/src/jq_extends/static/unlockScreen.ts +0 -36
  609. package/src/mdui.ts +0 -12
  610. package/src/styles/color.less +0 -392
  611. package/src/styles/global.less +0 -75
  612. package/src/styles/grid.less +0 -150
  613. package/src/styles/helper.less +0 -242
  614. package/src/styles/icon.less +0 -31
  615. package/src/styles/material-icons.less +0 -36
  616. package/src/styles/media.less +0 -39
  617. package/src/styles/mixin/color.less +0 -66
  618. package/src/styles/mixin/divider.less +0 -30
  619. package/src/styles/mixin/helper.less +0 -126
  620. package/src/styles/mixin/icon.less +0 -33
  621. package/src/styles/mixin/layout-theme.less +0 -14
  622. package/src/styles/mixin/media.less +0 -11
  623. package/src/styles/mixin/shadow.less +0 -17
  624. package/src/styles/mixin/typo.less +0 -149
  625. package/src/styles/mixin.less +0 -8
  626. package/src/styles/roboto.less +0 -125
  627. package/src/styles/shadow.less +0 -20
  628. package/src/styles/typo-styles.less +0 -91
  629. package/src/styles/typo.less +0 -338
  630. package/src/styles/variable/animation.less +0 -5
  631. package/src/styles/variable/color/amber.less +0 -41
  632. package/src/styles/variable/color/black.less +0 -16
  633. package/src/styles/variable/color/blue-grey.less +0 -29
  634. package/src/styles/variable/color/blue.less +0 -41
  635. package/src/styles/variable/color/brown.less +0 -29
  636. package/src/styles/variable/color/cyan.less +0 -41
  637. package/src/styles/variable/color/deep-orange.less +0 -41
  638. package/src/styles/variable/color/deep-purple.less +0 -41
  639. package/src/styles/variable/color/default.less +0 -74
  640. package/src/styles/variable/color/green.less +0 -41
  641. package/src/styles/variable/color/grey.less +0 -29
  642. package/src/styles/variable/color/indigo.less +0 -41
  643. package/src/styles/variable/color/light-blue.less +0 -41
  644. package/src/styles/variable/color/light-green.less +0 -41
  645. package/src/styles/variable/color/lime.less +0 -41
  646. package/src/styles/variable/color/orange.less +0 -41
  647. package/src/styles/variable/color/pink.less +0 -41
  648. package/src/styles/variable/color/purple.less +0 -41
  649. package/src/styles/variable/color/red.less +0 -41
  650. package/src/styles/variable/color/teal.less +0 -41
  651. package/src/styles/variable/color/transparent.less +0 -1
  652. package/src/styles/variable/color/white.less +0 -16
  653. package/src/styles/variable/color/yellow.less +0 -41
  654. package/src/styles/variable/global.less +0 -98
  655. package/src/styles/variable/shadow.less +0 -103
  656. package/src/styles/variable.less +0 -26
  657. package/src/tsconfig.json +0 -12
  658. package/src/utils/componentEvent.ts +0 -63
  659. package/src/utils/dom.ts +0 -7
  660. package/src/utils/mutation.ts +0 -41
  661. package/src/utils/parseOptions.ts +0 -23
  662. package/src/utils/queue.ts +0 -51
  663. package/src/utils/touchHandler.ts +0 -92
  664. /package/{es/interfaces/MduiStatic.js → functions/utils/theme.js} +0 -0
@@ -0,0 +1,210 @@
1
+ import { __decorate } from "tslib";
2
+ import { html } from 'lit';
3
+ import { customElement, property, state } from 'lit/decorators.js';
4
+ import { classMap } from 'lit/directives/class-map.js';
5
+ import { map } from 'lit/directives/map.js';
6
+ import { createRef, ref } from 'lit/directives/ref.js';
7
+ import { styleMap } from 'lit/directives/style-map.js';
8
+ import { when } from 'lit/directives/when.js';
9
+ import { $ } from '@mdui/jq/$.js';
10
+ import '@mdui/jq/methods/css.js';
11
+ import { FormController, formResets } from '@mdui/shared/controllers/form.js';
12
+ import { defaultValue } from '@mdui/shared/decorators/default-value.js';
13
+ import { emit } from '@mdui/shared/helpers/event.js';
14
+ import { SliderBase } from '../slider/slider-base.js';
15
+ /**
16
+ * @summary 范围滑块组件
17
+ *
18
+ * ```html
19
+ * <mdui-range-slider></mdui-range-slider>
20
+ * ```
21
+ *
22
+ * @event focus - 获得焦点时触发
23
+ * @event blur - 失去焦点时触发
24
+ * @event change - 在值发生了变更,且失去了焦点时,将触发该事件
25
+ * @event input - 值变更时触发
26
+ * @event invalid - 表单字段验证未通过时触发
27
+ *
28
+ * @csspart track-inactive - 未激活状态的轨道
29
+ * @csspart track-active - 已激活状态的轨道
30
+ * @csspart handle - 操作杆
31
+ * @csspart label - 提示文本
32
+ * @csspart tickmark - 刻度标记
33
+ */
34
+ export let RangeSlider = class RangeSlider extends SliderBase {
35
+ constructor() {
36
+ super(...arguments);
37
+ /**
38
+ * 默认值。在重置表单时,将重置为该默认值。该属性只能通过 JavaScript 属性设置
39
+ */
40
+ this.defaultValue = [];
41
+ /**
42
+ * 当前操作的是哪一个 handle
43
+ */
44
+ this.currentHandle = 'start';
45
+ this.rippleStartRef = createRef();
46
+ this.rippleEndRef = createRef();
47
+ this.handleStartRef = createRef();
48
+ this.handleEndRef = createRef();
49
+ this.formController = new FormController(this);
50
+ this._value = [];
51
+ this.getRippleIndex = () => {
52
+ if (this.hoverHandle) {
53
+ return this.hoverHandle === 'start' ? 0 : 1;
54
+ }
55
+ return this.currentHandle === 'start' ? 0 : 1;
56
+ };
57
+ }
58
+ /**
59
+ * 滑块的值,为数组格式;将于表单数据一起提交
60
+ *
61
+ * NOTE:
62
+ * 该属性无法通过 HTML 属性设置初始值,如果要修改该值,只能通过修改 JavaScript 属性值实现。
63
+ */
64
+ get value() {
65
+ return this._value;
66
+ }
67
+ set value(_value) {
68
+ const oldValue = [...this._value];
69
+ this._value = _value;
70
+ this.requestUpdate('value', oldValue);
71
+ this.updateComplete.then(() => {
72
+ var _a;
73
+ this.updateStyle();
74
+ // reset 引起的值变更,不执行验证;直接修改值引起的变更,需要进行验证
75
+ const form = this.formController.getForm();
76
+ if (form && ((_a = formResets.get(form)) === null || _a === void 0 ? void 0 : _a.has(this))) {
77
+ this.invalid = false;
78
+ formResets.get(form).delete(this);
79
+ }
80
+ else {
81
+ this.invalid = !this.inputRef.value.checkValidity();
82
+ }
83
+ });
84
+ }
85
+ get rippleElement() {
86
+ return [this.rippleStartRef.value, this.rippleEndRef.value];
87
+ }
88
+ connectedCallback() {
89
+ super.connectedCallback();
90
+ this.value = [this.min, this.max];
91
+ if (!this.defaultValue.length) {
92
+ this.defaultValue = [...this.value];
93
+ }
94
+ // 在轨道上点击时,计算出点击位置在 <input type="range"> 元素上的值
95
+ // 若该值在 this.value 的两个值中间位置的左侧,则表示操作的是左侧的值,否则操作的是右侧的值
96
+ const getCurrentHandle = (event) => {
97
+ const $this = $(this);
98
+ // 计算出鼠标悬浮位置的值,<mdui-range-slider> 元素的左右两侧有内边距,计算时要去除内边距
99
+ const paddingLeft = parseFloat($this.css('padding-left'));
100
+ const paddingRight = parseFloat($this.css('padding-right'));
101
+ const percent = (event.offsetX - paddingLeft) /
102
+ (this.clientWidth - paddingLeft - paddingRight);
103
+ const pointerValue = (this.max - this.min) * percent + this.min;
104
+ // 计算 this.value 两个值中间位置的值
105
+ const middleValue = (this.value[1] - this.value[0]) / 2 + this.value[0];
106
+ return pointerValue > middleValue ? 'end' : 'start';
107
+ };
108
+ const onTouchStart = () => {
109
+ if (!this.disabled) {
110
+ this.labelVisible = true;
111
+ }
112
+ };
113
+ const onTouchEnd = () => {
114
+ if (!this.disabled) {
115
+ this.labelVisible = false;
116
+ }
117
+ };
118
+ this.addEventListener('touchstart', onTouchStart);
119
+ this.addEventListener('mousedown', onTouchStart);
120
+ this.addEventListener('touchend', onTouchEnd);
121
+ this.addEventListener('mouseup', onTouchEnd);
122
+ // 按下鼠标时,计算当前操作的是起始值还是结束值
123
+ this.addEventListener('pointerdown', (event) => {
124
+ this.currentHandle = getCurrentHandle(event);
125
+ });
126
+ // 移动鼠标时,修改 mdui-ripple 的 hover 状态
127
+ this.addEventListener('pointermove', (event) => {
128
+ const currentHandle = getCurrentHandle(event);
129
+ if (this.hoverHandle !== currentHandle) {
130
+ this.endHover(event);
131
+ this.hoverHandle = currentHandle;
132
+ this.startHover(event);
133
+ }
134
+ });
135
+ }
136
+ firstUpdated(changedProperties) {
137
+ super.firstUpdated(changedProperties);
138
+ this.updateStyle();
139
+ }
140
+ /**
141
+ * <input /> 用于提供拖拽操作
142
+ * <input class="invalid" /> 用于提供 html5 自带的表单错误提示
143
+ */
144
+ render() {
145
+ return html `<label><input ${ref(this.inputRef)} type="range" step="${this.step}" min="${this.min}" max="${this.max}" ?disabled="${this.disabled}" @input="${this.onInput}" @change="${this.onChange}"><div part="track-inactive" class="track-inactive"></div><div ${ref(this.trackActiveRef)} part="track-active" class="track-active"></div><div ${ref(this.handleStartRef)} part="handle" class="handle start" style="${styleMap({
146
+ 'z-index': this.currentHandle === 'start' ? '2' : '1',
147
+ })}"><div class="elevation"></div><mdui-ripple ${ref(this.rippleStartRef)} .noRipple="${this.noRipple}"></mdui-ripple>${this.renderLabel(this.value[0])}</div><div ${ref(this.handleEndRef)} part="handle" class="handle end" style="${styleMap({
148
+ 'z-index': this.currentHandle === 'end' ? '2' : '1',
149
+ })}"><div class="elevation"></div><mdui-ripple ${ref(this.rippleEndRef)} .noRipple="${this.noRipple}"></mdui-ripple>${this.renderLabel(this.value[1])}</div>${when(this.tickmarks, () => map(this.getCandidateValues(), (value) => html `<div part="tickmark" class="tickmark ${classMap({
150
+ active: value > this.value[0] && value < this.value[1],
151
+ })}" style="${styleMap({
152
+ left: `${((value - this.min) / this.max) * 100}%`,
153
+ display: value === this.value[0] || value === this.value[1]
154
+ ? 'none'
155
+ : 'block',
156
+ })}"></div>`))}</label>`;
157
+ }
158
+ updateStyle() {
159
+ const getPercent = (value) => ((value - this.min) / (this.max - this.min)) * 100;
160
+ const startPercent = getPercent(this.value[0]);
161
+ const endPercent = getPercent(this.value[1]);
162
+ this.trackActiveRef.value.style.width = `${endPercent - startPercent}%`;
163
+ this.trackActiveRef.value.style.left = `${startPercent}%`;
164
+ this.handleStartRef.value.style.left = `${startPercent}%`;
165
+ this.handleEndRef.value.style.left = `${endPercent}%`;
166
+ }
167
+ onInput() {
168
+ const isStart = this.currentHandle === 'start';
169
+ const value = parseFloat(this.inputRef.value.value);
170
+ const startValue = this.value[0];
171
+ const endValue = this.value[1];
172
+ const doInput = () => {
173
+ emit(this, 'input');
174
+ this.updateStyle();
175
+ };
176
+ if (isStart) {
177
+ if (value <= endValue) {
178
+ this.value = [value, endValue];
179
+ doInput();
180
+ }
181
+ else if (startValue !== endValue) {
182
+ this.value = [endValue, endValue];
183
+ doInput();
184
+ }
185
+ }
186
+ else {
187
+ if (value >= startValue) {
188
+ this.value = [startValue, value];
189
+ doInput();
190
+ }
191
+ else if (startValue !== endValue) {
192
+ this.value = [startValue, startValue];
193
+ doInput();
194
+ }
195
+ }
196
+ }
197
+ };
198
+ RangeSlider.styles = [SliderBase.styles];
199
+ __decorate([
200
+ defaultValue()
201
+ ], RangeSlider.prototype, "defaultValue", void 0);
202
+ __decorate([
203
+ state()
204
+ ], RangeSlider.prototype, "currentHandle", void 0);
205
+ __decorate([
206
+ property({ type: Array, attribute: false })
207
+ ], RangeSlider.prototype, "value", null);
208
+ RangeSlider = __decorate([
209
+ customElement('mdui-range-slider')
210
+ ], RangeSlider);
@@ -0,0 +1 @@
1
+ export * from './range-slider/index.js';
@@ -0,0 +1 @@
1
+ export * from './range-slider/index.js';
@@ -0,0 +1,44 @@
1
+ import { LitElement } from 'lit';
2
+ import '@mdui/jq/methods/addClass.js';
3
+ import '@mdui/jq/methods/children.js';
4
+ import '@mdui/jq/methods/css.js';
5
+ import '@mdui/jq/methods/data.js';
6
+ import '@mdui/jq/methods/each.js';
7
+ import '@mdui/jq/methods/filter.js';
8
+ import '@mdui/jq/methods/innerHeight.js';
9
+ import '@mdui/jq/methods/innerWidth.js';
10
+ import '@mdui/jq/methods/offset.js';
11
+ import '@mdui/jq/methods/on.js';
12
+ import '@mdui/jq/methods/prependTo.js';
13
+ import '@mdui/jq/methods/remove.js';
14
+ import type { TemplateResult, CSSResultGroup } from 'lit';
15
+ /**
16
+ * 处理点击时的涟漪动画;及添加 hover、focused、dragged 的背景色
17
+ * 背景色通过在 .surface 元素上添加对应的 class 实现
18
+ * 阴影在 ripple-mixin 中处理,通过在 :host 元素上添加 attribute 供 CSS 选择器添加样式
19
+ */
20
+ export declare class Ripple extends LitElement {
21
+ static styles: CSSResultGroup;
22
+ /**
23
+ * 是否禁用涟漪动画
24
+ */
25
+ noRipple: boolean;
26
+ private hover;
27
+ private focused;
28
+ private dragged;
29
+ private readonly surfaceRef;
30
+ startPress(event?: Event): void;
31
+ endPress(): void;
32
+ startHover(): void;
33
+ endHover(): void;
34
+ startFocus(): void;
35
+ endFocus(): void;
36
+ startDrag(): void;
37
+ endDrag(): void;
38
+ protected render(): TemplateResult;
39
+ }
40
+ declare global {
41
+ interface HTMLElementTagNameMap {
42
+ 'mdui-ripple': Ripple;
43
+ }
44
+ }
@@ -0,0 +1,173 @@
1
+ import { __decorate } from "tslib";
2
+ import { LitElement, html } from 'lit';
3
+ import { customElement, property, state } from 'lit/decorators.js';
4
+ import { classMap } from 'lit/directives/class-map.js';
5
+ import { createRef, ref } from 'lit/directives/ref.js';
6
+ import { $ } from '@mdui/jq/$.js';
7
+ import '@mdui/jq/methods/addClass.js';
8
+ import '@mdui/jq/methods/children.js';
9
+ import '@mdui/jq/methods/css.js';
10
+ import '@mdui/jq/methods/data.js';
11
+ import '@mdui/jq/methods/each.js';
12
+ import '@mdui/jq/methods/filter.js';
13
+ import '@mdui/jq/methods/innerHeight.js';
14
+ import '@mdui/jq/methods/innerWidth.js';
15
+ import '@mdui/jq/methods/offset.js';
16
+ import '@mdui/jq/methods/on.js';
17
+ import '@mdui/jq/methods/prependTo.js';
18
+ import '@mdui/jq/methods/remove.js';
19
+ import { booleanConverter } from '@mdui/shared/helpers/decorator.js';
20
+ import { componentStyle } from '@mdui/shared/lit-styles/component-style.js';
21
+ import { style } from './style.js';
22
+ /**
23
+ * 处理点击时的涟漪动画;及添加 hover、focused、dragged 的背景色
24
+ * 背景色通过在 .surface 元素上添加对应的 class 实现
25
+ * 阴影在 ripple-mixin 中处理,通过在 :host 元素上添加 attribute 供 CSS 选择器添加样式
26
+ */
27
+ export let Ripple = class Ripple extends LitElement {
28
+ constructor() {
29
+ super(...arguments);
30
+ /**
31
+ * 是否禁用涟漪动画
32
+ */
33
+ this.noRipple = false;
34
+ this.hover = false;
35
+ this.focused = false;
36
+ this.dragged = false;
37
+ this.surfaceRef = createRef();
38
+ }
39
+ startPress(event) {
40
+ if (this.noRipple) {
41
+ return;
42
+ }
43
+ const $surface = $(this.surfaceRef.value);
44
+ const surfaceHeight = $surface.innerHeight();
45
+ const surfaceWidth = $surface.innerWidth();
46
+ // 点击位置坐标
47
+ let touchStartX;
48
+ let touchStartY;
49
+ if (!event) {
50
+ // 未传入事件对象,涟漪从中间扩散
51
+ touchStartX = surfaceWidth / 2;
52
+ touchStartY = surfaceHeight / 2;
53
+ }
54
+ else {
55
+ // 传入了事件对象,涟漪从点击位置扩散
56
+ const touchPosition = typeof TouchEvent !== 'undefined' &&
57
+ event instanceof TouchEvent &&
58
+ event.touches.length
59
+ ? event.touches[0]
60
+ : event;
61
+ const offset = $surface.offset();
62
+ // 点击位置不在 surface 内,不执行
63
+ if (touchPosition.pageX < offset.left ||
64
+ touchPosition.pageX > offset.left + surfaceWidth ||
65
+ touchPosition.pageY < offset.top ||
66
+ touchPosition.pageY > offset.top + surfaceHeight) {
67
+ return;
68
+ }
69
+ touchStartX = touchPosition.pageX - offset.left;
70
+ touchStartY = touchPosition.pageY - offset.top;
71
+ }
72
+ // 涟漪直径
73
+ const diameter = Math.max(Math.pow(Math.pow(surfaceHeight, 2) + Math.pow(surfaceWidth, 2), 0.5), 48);
74
+ // 涟漪扩散动画
75
+ const translateX = `${-touchStartX + surfaceWidth / 2}px`;
76
+ const translateY = `${-touchStartY + surfaceHeight / 2}px`;
77
+ const translate = `translate3d(${translateX}, ${translateY}, 0) scale(1)`;
78
+ // 涟漪 DOM 元素
79
+ $('<div class="wave"></div>')
80
+ .css({
81
+ width: diameter,
82
+ height: diameter,
83
+ marginTop: -diameter / 2,
84
+ marginLeft: -diameter / 2,
85
+ left: touchStartX,
86
+ top: touchStartY,
87
+ })
88
+ .each((_, wave) => {
89
+ wave.style.setProperty('--mdui-comp-ripple-transition-x', translateX);
90
+ wave.style.setProperty('--mdui-comp-ripple-transition-y', translateY);
91
+ })
92
+ .prependTo(this.surfaceRef.value)
93
+ .each((_, wave) => wave.clientLeft) // 重绘
94
+ .css('transform', translate)
95
+ .on('animationend', function (e) {
96
+ const event = e;
97
+ if (event.animationName === 'mdui-comp-ripple-radius-in') {
98
+ $(this).data('filled', true); // 扩散动画完成后,添加标记
99
+ }
100
+ });
101
+ }
102
+ endPress() {
103
+ const $waves = $(this.surfaceRef.value)
104
+ .children()
105
+ .filter((_, wave) => !$(wave).data('removing'))
106
+ .data('removing', true);
107
+ const hideAndRemove = ($waves) => {
108
+ $waves
109
+ .addClass('out')
110
+ .each((_, wave) => wave.clientLeft) // 重绘
111
+ .on('animationend', function () {
112
+ $(this).remove();
113
+ });
114
+ };
115
+ // 扩散动画未完成,先完成扩散,再隐藏并移除
116
+ $waves
117
+ .filter((_, wave) => !$(wave).data('filled'))
118
+ .on('animationend', function (e) {
119
+ const event = e;
120
+ if (event.animationName === 'mdui-comp-ripple-radius-in') {
121
+ hideAndRemove($(this));
122
+ }
123
+ });
124
+ // 扩散动画已完成,直接隐藏并移除
125
+ hideAndRemove($waves.filter((_, wave) => !!$(wave).data('filled')));
126
+ }
127
+ startHover() {
128
+ this.hover = true;
129
+ }
130
+ endHover() {
131
+ this.hover = false;
132
+ }
133
+ startFocus() {
134
+ this.focused = true;
135
+ }
136
+ endFocus() {
137
+ this.focused = false;
138
+ }
139
+ startDrag() {
140
+ this.dragged = true;
141
+ }
142
+ endDrag() {
143
+ this.dragged = false;
144
+ }
145
+ render() {
146
+ return html `<div ${ref(this.surfaceRef)} class="surface ${classMap({
147
+ hover: this.hover,
148
+ focused: this.focused,
149
+ dragged: this.dragged,
150
+ })}"></div>`;
151
+ }
152
+ };
153
+ Ripple.styles = [componentStyle, style];
154
+ __decorate([
155
+ property({
156
+ type: Boolean,
157
+ reflect: true,
158
+ converter: booleanConverter,
159
+ attribute: 'no-ripple',
160
+ })
161
+ ], Ripple.prototype, "noRipple", void 0);
162
+ __decorate([
163
+ state()
164
+ ], Ripple.prototype, "hover", void 0);
165
+ __decorate([
166
+ state()
167
+ ], Ripple.prototype, "focused", void 0);
168
+ __decorate([
169
+ state()
170
+ ], Ripple.prototype, "dragged", void 0);
171
+ Ripple = __decorate([
172
+ customElement('mdui-ripple')
173
+ ], Ripple);
@@ -0,0 +1,28 @@
1
+ import '@mdui/jq/methods/index.js';
2
+ import './index.js';
3
+ import type { Ripple } from './index.js';
4
+ import type { Constructor } from '@open-wc/dedupe-mixin';
5
+ import type { LitElement } from 'lit';
6
+ export declare class RippleMixinInterface extends LitElement {
7
+ noRipple: boolean;
8
+ protected getRippleIndex: () => number | undefined;
9
+ protected get rippleElement(): Ripple | Ripple[] | NodeListOf<Ripple>;
10
+ protected get rippleDisabled(): boolean | boolean[];
11
+ protected get rippleTarget(): HTMLElement | HTMLElement[] | NodeListOf<HTMLElement>;
12
+ protected startHover(event: PointerEvent): void;
13
+ protected endHover(event: PointerEvent): void;
14
+ }
15
+ /**
16
+ * hover, pressed, dragged 三个属性用于添加到 rippleTarget 属性指定的元素上,供 CSS 选择题添加样式
17
+ *
18
+ * TODO: dragged 功能
19
+ *
20
+ * NOTE:
21
+ * 不支持触控的屏幕上事件顺序为:pointerdown -> (8ms) -> mousedown -> pointerup -> (1ms) -> mouseup -> (1ms) -> click
22
+ *
23
+ * 支持触控的屏幕上事件顺序为:pointerdown -> (8ms) -> touchstart -> pointerup -> (1ms) -> touchend -> (5ms) -> mousedown -> mouseup -> click
24
+ * pointermove 比较灵敏,有可能触发了 pointermove 但没有触发 touchmove
25
+ *
26
+ * 支持触摸笔的屏幕上事件顺序为:todo
27
+ */
28
+ export declare const RippleMixin: <T extends Constructor<LitElement>>(superclass: T) => Constructor<RippleMixinInterface> & T;