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
@@ -1,725 +0,0 @@
1
- import $ from 'mdui.jq/es/$';
2
- import contains from 'mdui.jq/es/functions/contains';
3
- import extend from 'mdui.jq/es/functions/extend';
4
- import { JQ } from 'mdui.jq/es/JQ';
5
- import 'mdui.jq/es/methods/addClass';
6
- import 'mdui.jq/es/methods/attr';
7
- import 'mdui.jq/es/methods/children';
8
- import 'mdui.jq/es/methods/css';
9
- import 'mdui.jq/es/methods/data';
10
- import 'mdui.jq/es/methods/each';
11
- import 'mdui.jq/es/methods/find';
12
- import 'mdui.jq/es/methods/first';
13
- import 'mdui.jq/es/methods/hasClass';
14
- import 'mdui.jq/es/methods/height';
15
- import 'mdui.jq/es/methods/is';
16
- import 'mdui.jq/es/methods/on';
17
- import 'mdui.jq/es/methods/parent';
18
- import 'mdui.jq/es/methods/parents';
19
- import 'mdui.jq/es/methods/removeClass';
20
- import 'mdui.jq/es/methods/width';
21
- import Selector from 'mdui.jq/es/types/Selector';
22
- import mdui from '../../mdui';
23
- import '../../jq_extends/methods/transformOrigin';
24
- import '../../jq_extends/methods/transitionEnd';
25
- import '../../jq_extends/static/throttle';
26
- import { componentEvent } from '../../utils/componentEvent';
27
- import { $document, $window } from '../../utils/dom';
28
-
29
- declare module '../../interfaces/MduiStatic' {
30
- interface MduiStatic {
31
- /**
32
- * Menu 组件
33
- *
34
- * 请通过 `new mdui.Menu()` 调用
35
- */
36
- Menu: {
37
- /**
38
- * 实例化 Menu 组件
39
- * @param anchorSelector 触发菜单的元素的 CSS 选择器、或 DOM 元素、或 JQ 对象
40
- * @param menuSelector 菜单的 CSS 选择器、或 DOM 元素、或 JQ 对象
41
- * @param options 配置参数
42
- */
43
- new (
44
- anchorSelector: Selector | HTMLElement | ArrayLike<HTMLElement>,
45
- menuSelector: Selector | HTMLElement | ArrayLike<HTMLElement>,
46
- options?: OPTIONS,
47
- ): Menu;
48
- };
49
- }
50
- }
51
-
52
- type OPTIONS = {
53
- /**
54
- * 菜单相对于触发它的元素的位置,默认为 `auto`。
55
- * 取值范围包括:
56
- * `top`: 菜单在触发它的元素的上方
57
- * `bottom`: 菜单在触发它的元素的下方
58
- * `center`: 菜单在窗口中垂直居中
59
- * `auto`: 自动判断位置。优先级为:`bottom` > `top` > `center`
60
- */
61
- position?: 'auto' | 'top' | 'bottom' | 'center';
62
-
63
- /**
64
- * 菜单与触发它的元素的对其方式,默认为 `auto`。
65
- * 取值范围包括:
66
- * `left`: 菜单与触发它的元素左对齐
67
- * `right`: 菜单与触发它的元素右对齐
68
- * `center`: 菜单在窗口中水平居中
69
- * `auto`: 自动判断位置:优先级为:`left` > `right` > `center`
70
- */
71
- align?: 'auto' | 'left' | 'right' | 'center';
72
-
73
- /**
74
- * 菜单与窗口边框至少保持多少间距,单位为 px,默认为 `16`
75
- */
76
- gutter?: number;
77
-
78
- /**
79
- * 菜单的定位方式,默认为 `false`。
80
- * 为 `true` 时,菜单使用 fixed 定位。在页面滚动时,菜单将保持在窗口固定位置,不随滚动条滚动。
81
- * 为 `false` 时,菜单使用 absolute 定位。在页面滚动时,菜单将随着页面一起滚动。
82
- */
83
- fixed?: boolean;
84
-
85
- /**
86
- * 菜单是否覆盖在触发它的元素的上面,默认为 `auto`
87
- * 为 `true` 时,使菜单覆盖在触发它的元素的上面
88
- * 为 `false` 时,使菜单不覆盖触发它的元素
89
- * 为 `auto` 时,简单菜单覆盖触发它的元素。级联菜单不覆盖触发它的元素
90
- */
91
- covered?: boolean | 'auto';
92
-
93
- /**
94
- * 子菜单的触发方式,默认为 `hover`
95
- * 为 `click` 时,点击时触发子菜单
96
- * 为 `hover` 时,鼠标悬浮时触发子菜单
97
- */
98
- subMenuTrigger?: 'click' | 'hover';
99
-
100
- /**
101
- * 子菜单的触发延迟时间(单位:毫秒),只有在 `subMenuTrigger: hover` 时,这个参数才有效,默认为 `200`
102
- */
103
- subMenuDelay?: number;
104
- };
105
-
106
- type EVENT = 'open' | 'opened' | 'close' | 'closed';
107
- type STATE = 'opening' | 'opened' | 'closing' | 'closed';
108
-
109
- const DEFAULT_OPTIONS: OPTIONS = {
110
- position: 'auto',
111
- align: 'auto',
112
- gutter: 16,
113
- fixed: false,
114
- covered: 'auto',
115
- subMenuTrigger: 'hover',
116
- subMenuDelay: 200,
117
- };
118
-
119
- class Menu {
120
- /**
121
- * 触发菜单的元素的 JQ 对象
122
- */
123
- public $anchor: JQ;
124
-
125
- /**
126
- * 菜单元素的 JQ 对象
127
- */
128
- public $element: JQ;
129
-
130
- /**
131
- * 配置参数
132
- */
133
- public options: OPTIONS = extend({}, DEFAULT_OPTIONS);
134
-
135
- /**
136
- * 当前菜单状态
137
- */
138
- private state: STATE = 'closed';
139
-
140
- /**
141
- * 是否是级联菜单
142
- */
143
- private isCascade: boolean;
144
-
145
- /**
146
- * 菜单是否覆盖在触发它的元素的上面
147
- */
148
- private isCovered: boolean;
149
-
150
- public constructor(
151
- anchorSelector: Selector | HTMLElement | ArrayLike<HTMLElement>,
152
- menuSelector: Selector | HTMLElement | ArrayLike<HTMLElement>,
153
- options: OPTIONS = {},
154
- ) {
155
- this.$anchor = $(anchorSelector).first();
156
- this.$element = $(menuSelector).first();
157
-
158
- // 触发菜单的元素 和 菜单必须是同级的元素,否则菜单可能不能定位
159
- if (!this.$anchor.parent().is(this.$element.parent())) {
160
- throw new Error('anchorSelector and menuSelector must be siblings');
161
- }
162
-
163
- extend(this.options, options);
164
-
165
- // 是否是级联菜单
166
- this.isCascade = this.$element.hasClass('mdui-menu-cascade');
167
-
168
- // covered 参数处理
169
- this.isCovered =
170
- this.options.covered === 'auto' ? !this.isCascade : this.options.covered!;
171
-
172
- // 点击触发菜单切换
173
- this.$anchor.on('click', () => this.toggle());
174
-
175
- // 点击菜单外面区域关闭菜单
176
- $document.on('click touchstart', (event: Event) => {
177
- const $target = $(event.target as HTMLElement);
178
-
179
- if (
180
- this.isOpen() &&
181
- !$target.is(this.$element) &&
182
- !contains(this.$element[0], $target[0]) &&
183
- !$target.is(this.$anchor) &&
184
- !contains(this.$anchor[0], $target[0])
185
- ) {
186
- this.close();
187
- }
188
- });
189
-
190
- // 点击不含子菜单的菜单条目关闭菜单
191
- // eslint-disable-next-line @typescript-eslint/no-this-alias
192
- const that = this;
193
- $document.on('click', '.mdui-menu-item', function () {
194
- const $item = $(this);
195
-
196
- if (
197
- !$item.find('.mdui-menu').length &&
198
- $item.attr('disabled') === undefined
199
- ) {
200
- that.close();
201
- }
202
- });
203
-
204
- // 绑定点击或鼠标移入含子菜单的条目的事件
205
- this.bindSubMenuEvent();
206
-
207
- // 窗口大小变化时,重新调整菜单位置
208
- $window.on(
209
- 'resize',
210
- $.throttle(() => this.readjust(), 100),
211
- );
212
- }
213
-
214
- /**
215
- * 是否为打开状态
216
- */
217
- private isOpen(): boolean {
218
- return this.state === 'opening' || this.state === 'opened';
219
- }
220
-
221
- /**
222
- * 触发组件事件
223
- * @param name
224
- */
225
- private triggerEvent(name: EVENT): void {
226
- componentEvent(name, 'menu', this.$element, this);
227
- }
228
-
229
- /**
230
- * 调整主菜单位置
231
- */
232
- private readjust(): void {
233
- let menuLeft;
234
- let menuTop;
235
-
236
- // 菜单位置和方向
237
- let position: 'bottom' | 'top' | 'center';
238
- let align: 'left' | 'right' | 'center';
239
-
240
- // window 窗口的宽度和高度
241
- const windowHeight = $window.height();
242
- const windowWidth = $window.width();
243
-
244
- // 配置参数
245
- const gutter = this.options.gutter!;
246
- const isCovered = this.isCovered;
247
- const isFixed = this.options.fixed;
248
-
249
- // 动画方向参数
250
- let transformOriginX;
251
- let transformOriginY;
252
-
253
- // 菜单的原始宽度和高度
254
- const menuWidth = this.$element.width();
255
- const menuHeight = this.$element.height();
256
-
257
- // 触发菜单的元素在窗口中的位置
258
- const anchorRect = this.$anchor[0].getBoundingClientRect();
259
- const anchorTop = anchorRect.top;
260
- const anchorLeft = anchorRect.left;
261
- const anchorHeight = anchorRect.height;
262
- const anchorWidth = anchorRect.width;
263
- const anchorBottom = windowHeight - anchorTop - anchorHeight;
264
- const anchorRight = windowWidth - anchorLeft - anchorWidth;
265
-
266
- // 触发元素相对其拥有定位属性的父元素的位置
267
- const anchorOffsetTop = this.$anchor[0].offsetTop;
268
- const anchorOffsetLeft = this.$anchor[0].offsetLeft;
269
-
270
- // 自动判断菜单位置
271
- if (this.options.position === 'auto') {
272
- if (anchorBottom + (isCovered ? anchorHeight : 0) > menuHeight + gutter) {
273
- // 判断下方是否放得下菜单
274
- position = 'bottom';
275
- } else if (
276
- anchorTop + (isCovered ? anchorHeight : 0) >
277
- menuHeight + gutter
278
- ) {
279
- // 判断上方是否放得下菜单
280
- position = 'top';
281
- } else {
282
- // 上下都放不下,居中显示
283
- position = 'center';
284
- }
285
- } else {
286
- position = this.options.position!;
287
- }
288
-
289
- // 自动判断菜单对齐方式
290
- if (this.options.align === 'auto') {
291
- if (anchorRight + anchorWidth > menuWidth + gutter) {
292
- // 判断右侧是否放得下菜单
293
- align = 'left';
294
- } else if (anchorLeft + anchorWidth > menuWidth + gutter) {
295
- // 判断左侧是否放得下菜单
296
- align = 'right';
297
- } else {
298
- // 左右都放不下,居中显示
299
- align = 'center';
300
- }
301
- } else {
302
- align = this.options.align!;
303
- }
304
-
305
- // 设置菜单位置
306
- if (position === 'bottom') {
307
- transformOriginY = '0';
308
- menuTop =
309
- (isCovered ? 0 : anchorHeight) +
310
- (isFixed ? anchorTop : anchorOffsetTop);
311
- } else if (position === 'top') {
312
- transformOriginY = '100%';
313
- menuTop =
314
- (isCovered ? anchorHeight : 0) +
315
- (isFixed ? anchorTop - menuHeight : anchorOffsetTop - menuHeight);
316
- } else {
317
- transformOriginY = '50%';
318
-
319
- // =====================在窗口中居中
320
- // 显示的菜单的高度,简单菜单高度不超过窗口高度,若超过了则在菜单内部显示滚动条
321
- // 级联菜单内部不允许出现滚动条
322
- let menuHeightTemp = menuHeight;
323
-
324
- // 简单菜单比窗口高时,限制菜单高度
325
- if (!this.isCascade) {
326
- if (menuHeight + gutter * 2 > windowHeight) {
327
- menuHeightTemp = windowHeight - gutter * 2;
328
- this.$element.height(menuHeightTemp);
329
- }
330
- }
331
-
332
- menuTop =
333
- (windowHeight - menuHeightTemp) / 2 +
334
- (isFixed ? 0 : anchorOffsetTop - anchorTop);
335
- }
336
-
337
- this.$element.css('top', `${menuTop}px`);
338
-
339
- // 设置菜单对齐方式
340
- if (align === 'left') {
341
- transformOriginX = '0';
342
- menuLeft = isFixed ? anchorLeft : anchorOffsetLeft;
343
- } else if (align === 'right') {
344
- transformOriginX = '100%';
345
- menuLeft = isFixed
346
- ? anchorLeft + anchorWidth - menuWidth
347
- : anchorOffsetLeft + anchorWidth - menuWidth;
348
- } else {
349
- transformOriginX = '50%';
350
-
351
- //=======================在窗口中居中
352
- // 显示的菜单的宽度,菜单宽度不能超过窗口宽度
353
- let menuWidthTemp = menuWidth;
354
-
355
- // 菜单比窗口宽,限制菜单宽度
356
- if (menuWidth + gutter * 2 > windowWidth) {
357
- menuWidthTemp = windowWidth - gutter * 2;
358
- this.$element.width(menuWidthTemp);
359
- }
360
-
361
- menuLeft =
362
- (windowWidth - menuWidthTemp) / 2 +
363
- (isFixed ? 0 : anchorOffsetLeft - anchorLeft);
364
- }
365
-
366
- this.$element.css('left', `${menuLeft}px`);
367
-
368
- // 设置菜单动画方向
369
- this.$element.transformOrigin(`${transformOriginX} ${transformOriginY}`);
370
- }
371
-
372
- /**
373
- * 调整子菜单的位置
374
- * @param $submenu
375
- */
376
- private readjustSubmenu($submenu: JQ): void {
377
- const $item = $submenu.parent('.mdui-menu-item');
378
-
379
- let submenuTop;
380
- let submenuLeft;
381
-
382
- // 子菜单位置和方向
383
- let position: 'top' | 'bottom';
384
- let align: 'left' | 'right';
385
-
386
- // window 窗口的宽度和高度
387
- const windowHeight = $window.height();
388
- const windowWidth = $window.width();
389
-
390
- // 动画方向参数
391
- let transformOriginX;
392
- let transformOriginY;
393
-
394
- // 子菜单的原始宽度和高度
395
- const submenuWidth = $submenu.width();
396
- const submenuHeight = $submenu.height();
397
-
398
- // 触发子菜单的菜单项的宽度高度
399
- const itemRect = $item[0].getBoundingClientRect();
400
- const itemWidth = itemRect.width;
401
- const itemHeight = itemRect.height;
402
- const itemLeft = itemRect.left;
403
- const itemTop = itemRect.top;
404
-
405
- // 判断菜单上下位置
406
- if (windowHeight - itemTop > submenuHeight) {
407
- // 判断下方是否放得下菜单
408
- position = 'bottom';
409
- } else if (itemTop + itemHeight > submenuHeight) {
410
- // 判断上方是否放得下菜单
411
- position = 'top';
412
- } else {
413
- // 默认放在下方
414
- position = 'bottom';
415
- }
416
-
417
- // 判断菜单左右位置
418
- if (windowWidth - itemLeft - itemWidth > submenuWidth) {
419
- // 判断右侧是否放得下菜单
420
- align = 'left';
421
- } else if (itemLeft > submenuWidth) {
422
- // 判断左侧是否放得下菜单
423
- align = 'right';
424
- } else {
425
- // 默认放在右侧
426
- align = 'left';
427
- }
428
-
429
- // 设置菜单位置
430
- if (position === 'bottom') {
431
- transformOriginY = '0';
432
- submenuTop = '0';
433
- } else if (position === 'top') {
434
- transformOriginY = '100%';
435
- submenuTop = -submenuHeight + itemHeight;
436
- }
437
-
438
- $submenu.css('top', `${submenuTop}px`);
439
-
440
- // 设置菜单对齐方式
441
- if (align === 'left') {
442
- transformOriginX = '0';
443
- submenuLeft = itemWidth;
444
- } else if (align === 'right') {
445
- transformOriginX = '100%';
446
- submenuLeft = -submenuWidth;
447
- }
448
-
449
- $submenu.css('left', `${submenuLeft}px`);
450
-
451
- // 设置菜单动画方向
452
- $submenu.transformOrigin(`${transformOriginX} ${transformOriginY}`);
453
- }
454
-
455
- /**
456
- * 打开子菜单
457
- * @param $submenu
458
- */
459
- private openSubMenu($submenu: JQ): void {
460
- this.readjustSubmenu($submenu);
461
-
462
- $submenu
463
- .addClass('mdui-menu-open')
464
- .parent('.mdui-menu-item')
465
- .addClass('mdui-menu-item-active');
466
- }
467
-
468
- /**
469
- * 关闭子菜单,及其嵌套的子菜单
470
- * @param $submenu
471
- */
472
- private closeSubMenu($submenu: JQ): void {
473
- // 关闭子菜单
474
- $submenu
475
- .removeClass('mdui-menu-open')
476
- .addClass('mdui-menu-closing')
477
- .transitionEnd(() => $submenu.removeClass('mdui-menu-closing'))
478
-
479
- // 移除激活状态的样式
480
- .parent('.mdui-menu-item')
481
- .removeClass('mdui-menu-item-active');
482
-
483
- // 循环关闭嵌套的子菜单
484
- $submenu.find('.mdui-menu').each((_, menu) => {
485
- const $subSubmenu = $(menu);
486
-
487
- $subSubmenu
488
- .removeClass('mdui-menu-open')
489
- .addClass('mdui-menu-closing')
490
- .transitionEnd(() => $subSubmenu.removeClass('mdui-menu-closing'))
491
- .parent('.mdui-menu-item')
492
- .removeClass('mdui-menu-item-active');
493
- });
494
- }
495
-
496
- /**
497
- * 切换子菜单状态
498
- * @param $submenu
499
- */
500
- private toggleSubMenu($submenu: JQ): void {
501
- $submenu.hasClass('mdui-menu-open')
502
- ? this.closeSubMenu($submenu)
503
- : this.openSubMenu($submenu);
504
- }
505
-
506
- /**
507
- * 绑定子菜单事件
508
- */
509
- private bindSubMenuEvent(): void {
510
- // eslint-disable-next-line @typescript-eslint/no-this-alias
511
- const that = this;
512
-
513
- // 点击打开子菜单
514
- this.$element.on('click', '.mdui-menu-item', function (event) {
515
- const $item = $(this as HTMLElement);
516
- const $target = $(event.target as HTMLElement);
517
-
518
- // 禁用状态菜单不操作
519
- if ($item.attr('disabled') !== undefined) {
520
- return;
521
- }
522
-
523
- // 没有点击在子菜单的菜单项上时,不操作(点在了子菜单的空白区域、或分隔线上)
524
- if ($target.is('.mdui-menu') || $target.is('.mdui-divider')) {
525
- return;
526
- }
527
-
528
- // 阻止冒泡,点击菜单项时只在最后一级的 mdui-menu-item 上生效,不向上冒泡
529
- if (!$target.parents('.mdui-menu-item').first().is($item)) {
530
- return;
531
- }
532
-
533
- // 当前菜单的子菜单
534
- const $submenu = $item.children('.mdui-menu');
535
-
536
- // 先关闭除当前子菜单外的所有同级子菜单
537
- $item
538
- .parent('.mdui-menu')
539
- .children('.mdui-menu-item')
540
- .each((_, item) => {
541
- const $tmpSubmenu = $(item).children('.mdui-menu');
542
-
543
- if (
544
- $tmpSubmenu.length &&
545
- (!$submenu.length || !$tmpSubmenu.is($submenu))
546
- ) {
547
- that.closeSubMenu($tmpSubmenu);
548
- }
549
- });
550
-
551
- // 切换当前子菜单
552
- if ($submenu.length) {
553
- that.toggleSubMenu($submenu);
554
- }
555
- });
556
-
557
- if (this.options.subMenuTrigger === 'hover') {
558
- // 临时存储 setTimeout 对象
559
- let timeout: any = null;
560
- let timeoutOpen: any = null;
561
-
562
- this.$element.on(
563
- 'mouseover mouseout',
564
- '.mdui-menu-item',
565
- function (event) {
566
- const $item = $(this as HTMLElement);
567
- const eventType = event.type;
568
- const $relatedTarget = $(
569
- (event as MouseEvent).relatedTarget as HTMLElement,
570
- );
571
-
572
- // 禁用状态的菜单不操作
573
- if ($item.attr('disabled') !== undefined) {
574
- return;
575
- }
576
-
577
- // 用 mouseover 模拟 mouseenter
578
- if (eventType === 'mouseover') {
579
- if (
580
- !$item.is($relatedTarget) &&
581
- contains($item[0], $relatedTarget[0])
582
- ) {
583
- return;
584
- }
585
- }
586
-
587
- // 用 mouseout 模拟 mouseleave
588
- else if (eventType === 'mouseout') {
589
- if (
590
- $item.is($relatedTarget) ||
591
- contains($item[0], $relatedTarget[0])
592
- ) {
593
- return;
594
- }
595
- }
596
-
597
- // 当前菜单项下的子菜单,未必存在
598
- const $submenu = $item.children('.mdui-menu');
599
-
600
- // 鼠标移入菜单项时,显示菜单项下的子菜单
601
- if (eventType === 'mouseover') {
602
- if ($submenu.length) {
603
- // 当前子菜单准备打开时,如果当前子菜单正准备着关闭,不用再关闭了
604
- const tmpClose = $submenu.data('timeoutClose.mdui.menu');
605
- if (tmpClose) {
606
- clearTimeout(tmpClose);
607
- }
608
-
609
- // 如果当前子菜单已经打开,不操作
610
- if ($submenu.hasClass('mdui-menu-open')) {
611
- return;
612
- }
613
-
614
- // 当前子菜单准备打开时,其他准备打开的子菜单不用再打开了
615
- clearTimeout(timeoutOpen);
616
-
617
- // 准备打开当前子菜单
618
- timeout = timeoutOpen = setTimeout(
619
- () => that.openSubMenu($submenu),
620
- that.options.subMenuDelay,
621
- );
622
-
623
- $submenu.data('timeoutOpen.mdui.menu', timeout);
624
- }
625
- }
626
-
627
- // 鼠标移出菜单项时,关闭菜单项下的子菜单
628
- else if (eventType === 'mouseout') {
629
- if ($submenu.length) {
630
- // 鼠标移出菜单项时,如果当前菜单项下的子菜单正准备打开,不用再打开了
631
- const tmpOpen = $submenu.data('timeoutOpen.mdui.menu');
632
- if (tmpOpen) {
633
- clearTimeout(tmpOpen);
634
- }
635
-
636
- // 准备关闭当前子菜单
637
- timeout = setTimeout(
638
- () => that.closeSubMenu($submenu),
639
- that.options.subMenuDelay,
640
- );
641
-
642
- $submenu.data('timeoutClose.mdui.menu', timeout);
643
- }
644
- }
645
- },
646
- );
647
- }
648
- }
649
-
650
- /**
651
- * 动画结束回调
652
- */
653
- private transitionEnd(): void {
654
- this.$element.removeClass('mdui-menu-closing');
655
-
656
- if (this.state === 'opening') {
657
- this.state = 'opened';
658
- this.triggerEvent('opened');
659
- }
660
-
661
- if (this.state === 'closing') {
662
- this.state = 'closed';
663
- this.triggerEvent('closed');
664
-
665
- // 关闭后,恢复菜单样式到默认状态,并恢复 fixed 定位
666
- this.$element.css({
667
- top: '',
668
- left: '',
669
- width: '',
670
- position: 'fixed',
671
- });
672
- }
673
- }
674
-
675
- /**
676
- * 切换菜单状态
677
- */
678
- public toggle(): void {
679
- this.isOpen() ? this.close() : this.open();
680
- }
681
-
682
- /**
683
- * 打开菜单
684
- */
685
- public open(): void {
686
- if (this.isOpen()) {
687
- return;
688
- }
689
-
690
- this.state = 'opening';
691
- this.triggerEvent('open');
692
-
693
- this.readjust();
694
-
695
- this.$element
696
- // 菜单隐藏状态使用使用 fixed 定位。
697
- .css('position', this.options.fixed ? 'fixed' : 'absolute')
698
- .addClass('mdui-menu-open')
699
- .transitionEnd(() => this.transitionEnd());
700
- }
701
-
702
- /**
703
- * 关闭菜单
704
- */
705
- public close(): void {
706
- if (!this.isOpen()) {
707
- return;
708
- }
709
-
710
- this.state = 'closing';
711
- this.triggerEvent('close');
712
-
713
- // 菜单开始关闭时,关闭所有子菜单
714
- this.$element.find('.mdui-menu').each((_, submenu) => {
715
- this.closeSubMenu($(submenu));
716
- });
717
-
718
- this.$element
719
- .removeClass('mdui-menu-open')
720
- .addClass('mdui-menu-closing')
721
- .transitionEnd(() => this.transitionEnd());
722
- }
723
- }
724
-
725
- mdui.Menu = Menu;