@gx-design-vue/create-gx-cli 0.0.5 → 0.0.7

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 (263) hide show
  1. package/package.json +1 -1
  2. package/src/cli.js +3 -3
  3. package/src/main.js +6 -1
  4. package/template-mobile-vant-cli/build/generateModifyVars.ts +7 -0
  5. package/template-mobile-vant-cli/build/script/postBuild.ts +0 -1
  6. package/{template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/typings.ts → template-mobile-vant-cli/src/design/config.less} +0 -0
  7. package/template-mobile-vant-cli/types/components.d.ts +0 -2
  8. package/template-mobile-vant-cli/types/global.d.ts +3 -3
  9. package/template-mobile-vant-cli/types/module.d.ts +0 -2
  10. package/template-mobile-vant-cli/vite.config.ts +6 -7
  11. package/template-design-pro/.editorconfig +0 -19
  12. package/template-design-pro/.env +0 -2
  13. package/template-design-pro/.env.development +0 -18
  14. package/template-design-pro/.env.pro +0 -32
  15. package/template-design-pro/.env.production +0 -32
  16. package/template-design-pro/.env.test +0 -20
  17. package/template-design-pro/.eslintignore +0 -16
  18. package/template-design-pro/.eslintrc.js +0 -64
  19. package/template-design-pro/.gitpod.yml +0 -6
  20. package/template-design-pro/.husky/pre-commit +0 -4
  21. package/template-design-pro/.prettierignore +0 -9
  22. package/template-design-pro/.stylelintignore +0 -3
  23. package/template-design-pro/.yarnclean +0 -48
  24. package/template-design-pro/LICENSE +0 -21
  25. package/template-design-pro/README.md +0 -111
  26. package/template-design-pro/build/constant.ts +0 -6
  27. package/template-design-pro/build/generate/generateModifyVars.ts +0 -18
  28. package/template-design-pro/build/getConfigFileName.ts +0 -13
  29. package/template-design-pro/build/script/buildConf.ts +0 -44
  30. package/template-design-pro/build/script/postBuild.ts +0 -25
  31. package/template-design-pro/build/script/reSetRootHtml.ts +0 -20
  32. package/template-design-pro/build/utils.ts +0 -85
  33. package/template-design-pro/build/vite/cdn.ts +0 -7
  34. package/template-design-pro/build/vite/optimizer.ts +0 -22
  35. package/template-design-pro/build/vite/plugin/autoImport.ts +0 -18
  36. package/template-design-pro/build/vite/plugin/compress.ts +0 -35
  37. package/template-design-pro/build/vite/plugin/hmr.ts +0 -25
  38. package/template-design-pro/build/vite/plugin/html.ts +0 -47
  39. package/template-design-pro/build/vite/plugin/index.ts +0 -89
  40. package/template-design-pro/build/vite/plugin/mock.ts +0 -20
  41. package/template-design-pro/build/vite/plugin/pwa.ts +0 -37
  42. package/template-design-pro/build/vite/plugin/styleImport.ts +0 -129
  43. package/template-design-pro/build/vite/plugin/visualizer.ts +0 -17
  44. package/template-design-pro/build/vite/plugin/vite-plugin-antd-theme/index.ts +0 -24
  45. package/template-design-pro/build/vite/plugin/vite-plugin-mock/createMockServer.ts +0 -303
  46. package/template-design-pro/build/vite/plugin/vite-plugin-mock/createProdMockServer.ts +0 -93
  47. package/template-design-pro/build/vite/plugin/vite-plugin-mock/index.ts +0 -68
  48. package/template-design-pro/build/vite/plugin/vite-plugin-mock/types.ts +0 -30
  49. package/template-design-pro/build/vite/plugin/vite-plugin-mock/utils.ts +0 -26
  50. package/template-design-pro/commitlint.config.js +0 -32
  51. package/template-design-pro/config/config.ts +0 -14
  52. package/template-design-pro/config/default/animate.ts +0 -30
  53. package/template-design-pro/config/default/defaultSettings.ts +0 -75
  54. package/template-design-pro/config/default/network.ts +0 -16
  55. package/template-design-pro/config/default/proxy.ts +0 -26
  56. package/template-design-pro/config/default/theme.ts +0 -43
  57. package/template-design-pro/config/default/themeColor.ts +0 -62
  58. package/template-design-pro/index.html +0 -45
  59. package/template-design-pro/jest.config.mjs +0 -36
  60. package/template-design-pro/mock/_createProductionServer.ts +0 -19
  61. package/template-design-pro/mock/_util.ts +0 -55
  62. package/template-design-pro/mock/controller/menu.ts +0 -85
  63. package/template-design-pro/mock/controller/notices.ts +0 -114
  64. package/template-design-pro/mock/system/dict.ts +0 -60
  65. package/template-design-pro/mock/system/user.ts +0 -218
  66. package/template-design-pro/package.json +0 -151
  67. package/template-design-pro/pnpm-lock.yaml +0 -9913
  68. package/template-design-pro/postcss.config.js +0 -5
  69. package/template-design-pro/prettier.config.js +0 -18
  70. package/template-design-pro/public/resource/css/index.css +0 -171
  71. package/template-design-pro/public/resource/img/favicon.ico +0 -0
  72. package/template-design-pro/public/resource/img/logo.png +0 -0
  73. package/template-design-pro/public/resource/img/pro_icon.svg +0 -5
  74. package/template-design-pro/public/resource/img/pwa-192x192.png +0 -0
  75. package/template-design-pro/public/resource/img/pwa-512x512.png +0 -0
  76. package/template-design-pro/src/App.vue +0 -47
  77. package/template-design-pro/src/assets/error_images/403.png +0 -0
  78. package/template-design-pro/src/assets/error_images/404.png +0 -0
  79. package/template-design-pro/src/assets/error_images/cloud.png +0 -0
  80. package/template-design-pro/src/assets/login_images/login_background.svg +0 -69
  81. package/template-design-pro/src/assets/logo.png +0 -0
  82. package/template-design-pro/src/assets/menu_font/iconfont.css +0 -94
  83. package/template-design-pro/src/assets/menu_font/iconfont.eot +0 -0
  84. package/template-design-pro/src/assets/menu_font/iconfont.js +0 -1
  85. package/template-design-pro/src/assets/menu_font/iconfont.json +0 -142
  86. package/template-design-pro/src/assets/menu_font/iconfont.svg +0 -57
  87. package/template-design-pro/src/assets/menu_font/iconfont.ttf +0 -0
  88. package/template-design-pro/src/assets/menu_font/iconfont.woff +0 -0
  89. package/template-design-pro/src/assets/menu_font/iconfont.woff2 +0 -0
  90. package/template-design-pro/src/assets/menu_font/index.less +0 -94
  91. package/template-design-pro/src/common/global.ts +0 -1
  92. package/template-design-pro/src/components/GDesign/ProLayout/BasicLayout.less +0 -80
  93. package/template-design-pro/src/components/GDesign/ProLayout/BasicLayout.tsx +0 -342
  94. package/template-design-pro/src/components/GDesign/ProLayout/PageLoading.tsx +0 -20
  95. package/template-design-pro/src/components/GDesign/ProLayout/RenderTypings.ts +0 -31
  96. package/template-design-pro/src/components/GDesign/ProLayout/RouteContext.tsx +0 -82
  97. package/template-design-pro/src/components/GDesign/ProLayout/WrapContent.tsx +0 -69
  98. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalFooter/index.tsx +0 -88
  99. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/DefaultHeader.tsx +0 -189
  100. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/Header.less +0 -8
  101. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/index.tsx +0 -105
  102. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/props.ts +0 -69
  103. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/style.less +0 -144
  104. package/template-design-pro/src/components/GDesign/ProLayout/components/LogoContent/index.tsx +0 -81
  105. package/template-design-pro/src/components/GDesign/ProLayout/components/LogoContent/props.ts +0 -29
  106. package/template-design-pro/src/components/GDesign/ProLayout/components/MultiTab/index.tsx +0 -384
  107. package/template-design-pro/src/components/GDesign/ProLayout/components/MultiTab/props.ts +0 -15
  108. package/template-design-pro/src/components/GDesign/ProLayout/components/MultiTab/style.less +0 -79
  109. package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/NoticeIcon.tsx +0 -148
  110. package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/NoticeList.module.less +0 -115
  111. package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/NoticeList.tsx +0 -154
  112. package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/index.less +0 -39
  113. package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/index.tsx +0 -133
  114. package/template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/index.tsx +0 -190
  115. package/template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/props.ts +0 -48
  116. package/template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/style.less +0 -128
  117. package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/AvatarDropdown.tsx +0 -63
  118. package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/HeaderSearch.tsx +0 -122
  119. package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/headerSearch.less +0 -30
  120. package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/index.tsx +0 -95
  121. package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/style.less +0 -90
  122. package/template-design-pro/src/components/GDesign/ProLayout/components/SettingDrawer/BlockCheckbox.tsx +0 -70
  123. package/template-design-pro/src/components/GDesign/ProLayout/components/SettingDrawer/LayoutSetting.tsx +0 -107
  124. package/template-design-pro/src/components/GDesign/ProLayout/components/SettingDrawer/ThemeColor.tsx +0 -68
  125. package/template-design-pro/src/components/GDesign/ProLayout/components/SettingDrawer/index.tsx +0 -346
  126. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/BaseMenu.tsx +0 -224
  127. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/SiderMenu.tsx +0 -224
  128. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/index.tsx +0 -43
  129. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/props.ts +0 -112
  130. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/style.less +0 -262
  131. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/typings.ts +0 -44
  132. package/template-design-pro/src/components/GDesign/ProLayout/default.less +0 -2
  133. package/template-design-pro/src/components/GDesign/ProLayout/defaultSettings.ts +0 -121
  134. package/template-design-pro/src/components/GDesign/ProLayout/hooks/context/index.ts +0 -45
  135. package/template-design-pro/src/components/GDesign/ProLayout/index.ts +0 -43
  136. package/template-design-pro/src/components/GDesign/ProLayout/props.ts +0 -57
  137. package/template-design-pro/src/components/GDesign/ProLayout/style.less +0 -272
  138. package/template-design-pro/src/components/GDesign/ProLayout/typings.ts +0 -1
  139. package/template-design-pro/src/components/GDesign/ProLayout/utils/getMenuData.ts +0 -31
  140. package/template-design-pro/src/components/GDesign/ProLayout/utils/index.ts +0 -94
  141. package/template-design-pro/src/components/GDesign/ProLayout/utils/isImg/index.ts +0 -6
  142. package/template-design-pro/src/components/GDesign/ProLayout/utils/isUrl/index.ts +0 -5
  143. package/template-design-pro/src/components/GDesign/Result/index.tsx +0 -142
  144. package/template-design-pro/src/components/GDesign/Result/style.less +0 -140
  145. package/template-design-pro/src/components/GDesign/Scrollbars/components/Bar/index.tsx +0 -56
  146. package/template-design-pro/src/components/GDesign/Scrollbars/components/Bar/props.ts +0 -23
  147. package/template-design-pro/src/components/GDesign/Scrollbars/components/Thumb/index.tsx +0 -164
  148. package/template-design-pro/src/components/GDesign/Scrollbars/components/Thumb/props.ts +0 -11
  149. package/template-design-pro/src/components/GDesign/Scrollbars/context.ts +0 -10
  150. package/template-design-pro/src/components/GDesign/Scrollbars/index.tsx +0 -200
  151. package/template-design-pro/src/components/GDesign/Scrollbars/props.ts +0 -65
  152. package/template-design-pro/src/components/GDesign/Scrollbars/style.less +0 -85
  153. package/template-design-pro/src/components/GDesign/Scrollbars/util.ts +0 -40
  154. package/template-design-pro/src/components/GDesign/utils/index.ts +0 -7
  155. package/template-design-pro/src/components/PageLoading/index.tsx +0 -44
  156. package/template-design-pro/src/components/PageTransition/index.vue +0 -98
  157. package/template-design-pro/src/components/index.ts +0 -6
  158. package/template-design-pro/src/core/ant-design/index.ts +0 -14
  159. package/template-design-pro/src/core/gx-admin-design/index.ts +0 -7
  160. package/template-design-pro/src/core/gx-admin-directives/index.ts +0 -8
  161. package/template-design-pro/src/core/gx-admin-directives/permission.ts +0 -28
  162. package/template-design-pro/src/core/gx-design/index.ts +0 -7
  163. package/template-design-pro/src/core/gx-pro-design/index.ts +0 -10
  164. package/template-design-pro/src/core/index.ts +0 -27
  165. package/template-design-pro/src/design/ant-design/index.less +0 -4
  166. package/template-design-pro/src/design/ant-design/layout.less +0 -29
  167. package/template-design-pro/src/design/ant-design/menu.less +0 -55
  168. package/template-design-pro/src/design/ant-design/table.less +0 -67
  169. package/template-design-pro/src/design/ant-design/tooltip.less +0 -13
  170. package/template-design-pro/src/design/color.less +0 -1
  171. package/template-design-pro/src/design/config.less +0 -5
  172. package/template-design-pro/src/design/index.less +0 -41
  173. package/template-design-pro/src/design/mixin.less +0 -66
  174. package/template-design-pro/src/design/normalize.less +0 -390
  175. package/template-design-pro/src/global.less +0 -15
  176. package/template-design-pro/src/hooks/core/index.ts +0 -3
  177. package/template-design-pro/src/hooks/core/useRequest/index.ts +0 -70
  178. package/template-design-pro/src/hooks/core/useRequest/typings.ts +0 -0
  179. package/template-design-pro/src/hooks/event/index.ts +0 -3
  180. package/template-design-pro/src/hooks/event/useClipboard.ts +0 -14
  181. package/template-design-pro/src/hooks/system/index.ts +0 -5
  182. package/template-design-pro/src/hooks/system/useDict.ts +0 -62
  183. package/template-design-pro/src/hooks/system/usePermissions.ts +0 -39
  184. package/template-design-pro/src/hooks/typings.ts +0 -17
  185. package/template-design-pro/src/layout/BasicLayout.vue +0 -104
  186. package/template-design-pro/src/layout/BlankLayout.vue +0 -5
  187. package/template-design-pro/src/layout/ContentView.vue +0 -76
  188. package/template-design-pro/src/layout/IframeView.vue +0 -1
  189. package/template-design-pro/src/layout/UserLayout.vue +0 -7
  190. package/template-design-pro/src/main.ts +0 -34
  191. package/template-design-pro/src/plugins/index.ts +0 -3
  192. package/template-design-pro/src/router/guard/index.ts +0 -84
  193. package/template-design-pro/src/router/guard/permissions.ts +0 -73
  194. package/template-design-pro/src/router/guard/stateGuard.ts +0 -11
  195. package/template-design-pro/src/router/helper/routeHelper.ts +0 -244
  196. package/template-design-pro/src/router/helper/utils.ts +0 -19
  197. package/template-design-pro/src/router/index.ts +0 -30
  198. package/template-design-pro/src/router/routes/index.ts +0 -85
  199. package/template-design-pro/src/router/routes/modules/workplace.ts +0 -19
  200. package/template-design-pro/src/services/common/index.ts +0 -11
  201. package/template-design-pro/src/services/controller/router.ts +0 -10
  202. package/template-design-pro/src/services/controller/user.ts +0 -35
  203. package/template-design-pro/src/services/system/dictData.ts +0 -10
  204. package/template-design-pro/src/services/system/notices.ts +0 -9
  205. package/template-design-pro/src/store/index.ts +0 -32
  206. package/template-design-pro/src/store/modules/dict.ts +0 -27
  207. package/template-design-pro/src/store/modules/permission.ts +0 -19
  208. package/template-design-pro/src/store/modules/routes.ts +0 -110
  209. package/template-design-pro/src/store/modules/settings.ts +0 -102
  210. package/template-design-pro/src/store/modules/tabsRouter.ts +0 -73
  211. package/template-design-pro/src/store/modules/user.ts +0 -153
  212. package/template-design-pro/src/utils/accessToken.ts +0 -93
  213. package/template-design-pro/src/utils/crypto.ts +0 -39
  214. package/template-design-pro/src/utils/env.ts +0 -52
  215. package/template-design-pro/src/utils/fetchFile.ts +0 -79
  216. package/template-design-pro/src/utils/index.ts +0 -127
  217. package/template-design-pro/src/utils/pageTitle.ts +0 -17
  218. package/template-design-pro/src/utils/request/XHR.ts +0 -131
  219. package/template-design-pro/src/utils/request/axiosCancel.ts +0 -60
  220. package/template-design-pro/src/utils/request/checkStatus.ts +0 -26
  221. package/template-design-pro/src/utils/request/index.ts +0 -145
  222. package/template-design-pro/src/utils/request/typings.ts +0 -114
  223. package/template-design-pro/src/utils/storage.ts +0 -194
  224. package/template-design-pro/src/utils/uploadFile.ts +0 -26
  225. package/template-design-pro/src/utils/util.ts +0 -278
  226. package/template-design-pro/src/utils/validate.ts +0 -221
  227. package/template-design-pro/src/views/Iframe/index.vue +0 -76
  228. package/template-design-pro/src/views/MenuOne/index.vue +0 -15
  229. package/template-design-pro/src/views/MenuTwo/index.vue +0 -13
  230. package/template-design-pro/src/views/exception/403/index.vue +0 -9
  231. package/template-design-pro/src/views/exception/404/index.vue +0 -9
  232. package/template-design-pro/src/views/user/login/index.vue +0 -110
  233. package/template-design-pro/src/views/user/login/style.less +0 -38
  234. package/template-design-pro/stylelint.config.js +0 -106
  235. package/template-design-pro/tests/__mocks__/fileMock.ts +0 -1
  236. package/template-design-pro/tests/__mocks__/styleMock.ts +0 -1
  237. package/template-design-pro/tests/__mocks__/workerMock.ts +0 -5
  238. package/template-design-pro/tests/server/README.md +0 -15
  239. package/template-design-pro/tests/server/controller/FileController.ts +0 -18
  240. package/template-design-pro/tests/server/controller/UserController.ts +0 -15
  241. package/template-design-pro/tests/server/ecosystem.config.js +0 -18
  242. package/template-design-pro/tests/server/index.ts +0 -63
  243. package/template-design-pro/tests/server/nodemon.json +0 -8
  244. package/template-design-pro/tests/server/package.json +0 -36
  245. package/template-design-pro/tests/server/routes.ts +0 -23
  246. package/template-design-pro/tests/server/service/FileService.ts +0 -54
  247. package/template-design-pro/tests/server/service/UserService.ts +0 -25
  248. package/template-design-pro/tests/server/tsconfig.json +0 -15
  249. package/template-design-pro/tests/server/utils.ts +0 -9
  250. package/template-design-pro/tests/server/yarn.lock +0 -2955
  251. package/template-design-pro/tests/test.spec.ts +0 -16
  252. package/template-design-pro/tsconfig.json +0 -47
  253. package/template-design-pro/types/auto-imports.d.ts +0 -61
  254. package/template-design-pro/types/config.d.ts +0 -100
  255. package/template-design-pro/types/global.d.ts +0 -103
  256. package/template-design-pro/types/gx-components.d.ts +0 -24
  257. package/template-design-pro/types/index.d.ts +0 -13
  258. package/template-design-pro/types/mock.d.ts +0 -23
  259. package/template-design-pro/types/module.d.ts +0 -16
  260. package/template-design-pro/types/response.d.ts +0 -15
  261. package/template-design-pro/types/route.d.ts +0 -89
  262. package/template-design-pro/vite.config.ts +0 -136
  263. package/template-design-pro/yarn.lock +0 -9697
@@ -1,56 +0,0 @@
1
- import type { ExtractPropTypes } from 'vue'
2
- import { defineComponent, ref } from 'vue'
3
- import { barProps } from './props'
4
- import Thumb from '../Thumb'
5
-
6
- export type BarProps = ExtractPropTypes<typeof barProps>
7
-
8
- const Bar = defineComponent({
9
- props: barProps,
10
- setup(props) {
11
- const moveX = ref(0)
12
- const moveY = ref(0)
13
- const GAP = 4
14
-
15
- const handleScroll = (wrap: HTMLDivElement) => {
16
- if (wrap) {
17
- const offsetHeight = wrap.offsetHeight - GAP
18
- const offsetWidth = wrap.offsetWidth - GAP
19
-
20
- moveY.value = ((wrap.scrollTop * 100) / offsetHeight) * props.ratioY
21
- moveX.value = ((wrap.scrollLeft * 100) / offsetWidth) * props.ratioX
22
- }
23
- }
24
-
25
- return {
26
- moveX,
27
- moveY,
28
- handleScroll
29
- }
30
- },
31
- render() {
32
- return (
33
- <>
34
- <Thumb
35
- className={this.className}
36
- move={this.moveX}
37
- ratio={this.ratioX}
38
- size={this.width}
39
- always={this.always}
40
- />
41
- <Thumb
42
- className={this.className}
43
- move={this.moveY}
44
- ratio={this.ratioY}
45
- size={this.height}
46
- vertical
47
- always={this.always}
48
- />
49
- </>
50
- )
51
- }
52
- })
53
-
54
- Bar.inheritAttrs = false
55
-
56
- export default Bar
@@ -1,23 +0,0 @@
1
- export const barProps = {
2
- className: String,
3
- always: {
4
- type: Boolean,
5
- default: true,
6
- },
7
- width: {
8
- type: String,
9
- default: '',
10
- },
11
- height: {
12
- type: String,
13
- default: '',
14
- },
15
- ratioX: {
16
- type: Number,
17
- default: 1,
18
- },
19
- ratioY: {
20
- type: Number,
21
- default: 1,
22
- },
23
- }
@@ -1,164 +0,0 @@
1
- import type { ExtractPropTypes } from 'vue'
2
- import { computed, defineComponent, inject, onBeforeUnmount, ref, toRef, Transition } from 'vue'
3
- import { isClient, useEventListener } from '@vueuse/core'
4
- import { thumbProps } from './props'
5
- import { scrollbarContextKey } from '../../context'
6
- import { BAR_MAP, renderThumbStyle } from '../../util'
7
-
8
- export type ThumbProps = ExtractPropTypes<typeof thumbProps>
9
-
10
- const COMPONENT_NAME = 'Thumb'
11
- const Thumb = defineComponent({
12
- props: thumbProps,
13
- setup(props) {
14
- const scrollbar = inject(scrollbarContextKey)
15
-
16
- if (!scrollbar) console.error(COMPONENT_NAME, 'can not inject scrollbar context')
17
-
18
- const instance = ref()
19
- const thumb = ref()
20
-
21
- const thumbState = ref({})
22
- const visible = ref(false)
23
-
24
- let cursorDown = false
25
- let cursorLeave = false
26
- let originalOnSelectStart: ((this: GlobalEventHandlers, ev: Event) => any) | null = isClient
27
- ? document.onselectstart
28
- : null
29
-
30
- const bar = computed(() => BAR_MAP[props.vertical ? 'vertical' : 'horizontal'])
31
-
32
- const thumbStyle = computed(() =>
33
- renderThumbStyle({
34
- size: props.size,
35
- move: props.move,
36
- bar: bar.value
37
- })
38
- )
39
-
40
- const offsetRatio = computed(
41
- () =>
42
- // offsetRatioX = original width of thumb / current width of thumb / ratioX
43
- // offsetRatioY = original height of thumb / current height of thumb / ratioY
44
- // instance height = wrap height - GAP
45
- instance.value![bar.value.offset] ** 2 /
46
- scrollbar.wrapElement![bar.value.scrollSize] /
47
- props.ratio /
48
- thumb.value![bar.value.offset]
49
- )
50
-
51
- const clickThumbHandler = (e: MouseEvent) => {
52
- // prevent click event of middle and right button
53
- e.stopPropagation()
54
- if (e.ctrlKey || [1, 2].includes(e.button)) return
55
-
56
- window.getSelection()?.removeAllRanges()
57
- startDrag(e)
58
-
59
- const el = e.currentTarget as HTMLDivElement
60
- if (!el) return
61
- thumbState.value[bar.value.axis] =
62
- el[bar.value.offset] -
63
- (e[bar.value.client] - el.getBoundingClientRect()[bar.value.direction])
64
- }
65
-
66
- const clickTrackHandler = (e: MouseEvent) => {
67
- if (!thumb.value || !instance.value || !scrollbar.wrapElement) return
68
-
69
- const offset = Math.abs(
70
- (e.target as HTMLElement).getBoundingClientRect()[bar.value.direction] - e[bar.value.client]
71
- )
72
- const thumbHalf = thumb.value[bar.value.offset] / 2
73
- const thumbPositionPercentage =
74
- ((offset - thumbHalf) * 100 * offsetRatio.value) / instance.value[bar.value.offset]
75
-
76
- scrollbar.wrapElement[bar.value.scroll] =
77
- (thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize]) / 100
78
- }
79
-
80
- const startDrag = (e: MouseEvent) => {
81
- e.stopImmediatePropagation()
82
- cursorDown = true
83
- document.addEventListener('mousemove', mouseMoveDocumentHandler)
84
- document.addEventListener('mouseup', mouseUpDocumentHandler)
85
- originalOnSelectStart = document.onselectstart
86
- document.onselectstart = () => false
87
- }
88
-
89
- const mouseMoveDocumentHandler = (e: MouseEvent) => {
90
- if (!instance.value || !thumb.value) return
91
- if (cursorDown === false) return
92
-
93
- const prevPage = thumbState.value[bar.value.axis]
94
- if (!prevPage) return
95
-
96
- const offset =
97
- (instance.value.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) * -1
98
- const thumbClickPosition = thumb.value[bar.value.offset] - prevPage
99
- const thumbPositionPercentage =
100
- ((offset - thumbClickPosition) * 100 * offsetRatio.value) / instance.value[bar.value.offset]
101
- scrollbar.wrapElement[bar.value.scroll] =
102
- (thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize]) / 100
103
- }
104
-
105
- const mouseUpDocumentHandler = () => {
106
- cursorDown = false
107
- thumbState.value[bar.value.axis] = 0
108
- document.removeEventListener('mousemove', mouseMoveDocumentHandler)
109
- document.removeEventListener('mouseup', mouseUpDocumentHandler)
110
- restoreOnselectstart()
111
- if (cursorLeave) visible.value = false
112
- }
113
-
114
- const mouseMoveScrollbarHandler = () => {
115
- cursorLeave = false
116
- visible.value = !!props.size
117
- }
118
-
119
- const mouseLeaveScrollbarHandler = () => {
120
- cursorLeave = true
121
- visible.value = cursorDown
122
- }
123
-
124
- onBeforeUnmount(() => {
125
- restoreOnselectstart()
126
- document.removeEventListener('mouseup', mouseUpDocumentHandler)
127
- })
128
-
129
- const restoreOnselectstart = () => {
130
- if (document.onselectstart !== originalOnSelectStart)
131
- document.onselectstart = originalOnSelectStart
132
- }
133
-
134
- useEventListener(toRef(scrollbar, 'scrollbarElement'), 'mousemove', mouseMoveScrollbarHandler)
135
- useEventListener(toRef(scrollbar, 'scrollbarElement'), 'mouseleave', mouseLeaveScrollbarHandler)
136
-
137
- return () => {
138
- return (
139
- <Transition name={`${props.className}-fade`}>
140
- <div
141
- ref={(e) => (instance.value = e)}
142
- class={
143
- props.always || visible.value
144
- ? [`${props.className}-bar`, 'is-' + bar.value.key]
145
- : [`${props.className}-bar`, 'is-' + bar.value.key, 'hidden']
146
- }
147
- onMousedown={clickTrackHandler}
148
- >
149
- <div
150
- ref={(e) => (thumb.value = e)}
151
- class={`${props.className}-thumb`}
152
- style={thumbStyle.value}
153
- onMousedown={clickThumbHandler}
154
- />
155
- </div>
156
- </Transition>
157
- )
158
- }
159
- }
160
- })
161
-
162
- Thumb.inheritAttrs = false
163
-
164
- export default Thumb
@@ -1,11 +0,0 @@
1
- export const thumbProps = {
2
- className: String,
3
- vertical: Boolean,
4
- size: String,
5
- move: Number,
6
- ratio: {
7
- type: Number,
8
- required: true,
9
- },
10
- always: Boolean,
11
- }
@@ -1,10 +0,0 @@
1
- import type { InjectionKey } from 'vue'
2
-
3
- export interface scrollbarContext {
4
- scrollbarElement: HTMLDivElement
5
- wrapElement: HTMLDivElement
6
- }
7
-
8
- export const scrollbarContextKey: InjectionKey<scrollbarContext> = Symbol(
9
- 'scrollbarContextKey'
10
- )
@@ -1,200 +0,0 @@
1
- import { ExtractPropTypes, StyleValue } from 'vue'
2
- import { defineComponent, watch, provide, onMounted, ref, computed } from 'vue'
3
- import { useEventListener, useResizeObserver } from '@vueuse/core'
4
- import { isNumber, isObject, getPrefixCls } from '@gx-design-vue/pro-utils'
5
- import { scrollbarEmits, scrollbarProps } from './props'
6
- import { scrollbarContextKey } from './context'
7
- import Bar from './components/Bar'
8
- import { addUnit } from './util'
9
-
10
- import './style.less'
11
-
12
- export type ScrollbarProps = ExtractPropTypes<typeof scrollbarProps>
13
-
14
- const GBars = defineComponent({
15
- name: 'GBars',
16
- props: scrollbarProps,
17
- emits: scrollbarEmits,
18
- setup(props, { emit }) {
19
- const prefixCls = getPrefixCls({
20
- suffixCls: 'scrollbar'
21
- })
22
-
23
- let stopResizeObserver: (() => void) | undefined = undefined
24
- let stopResizeListener: (() => void) | undefined = undefined
25
-
26
- const scrollbar$ = ref()
27
- const wrap$ = ref()
28
- const resize$ = ref()
29
-
30
- const sizeWidth = ref('0')
31
- const sizeHeight = ref('0')
32
- const barRef = ref()
33
- const moveX = ref(0)
34
- const moveY = ref(0)
35
- const ratioY = ref(1)
36
- const ratioX = ref(1)
37
- const SCOPE = 'GBars'
38
- const GAP = 4 // top 2 + bottom 2 of bar instance
39
-
40
- const style = computed<StyleValue>(() => {
41
- const style: any = {}
42
- if (props.height) style.height = addUnit(props.height)
43
- if (props.maxHeight) style.maxHeight = addUnit(props.maxHeight)
44
- return [props.wrapStyle, style]
45
- })
46
-
47
- const handleScroll = () => {
48
- if (wrap$.value) {
49
- barRef.value?.handleScroll(wrap$.value)
50
-
51
- emit('scroll', {
52
- scrollTop: wrap$.value.scrollTop,
53
- scrollLeft: wrap$.value.scrollLeft
54
- })
55
- }
56
- }
57
-
58
- function scrollTo(xCord: number, yCord?: number): void
59
- function scrollTo(options: ScrollToOptions): void
60
- function scrollTo(arg1: unknown, arg2?: number) {
61
- if (isObject(arg1)) {
62
- wrap$.value!.scrollTo(arg1)
63
- } else if (isNumber(arg1) && isNumber(arg2)) {
64
- wrap$.value!.scrollTo(arg1, arg2)
65
- }
66
- }
67
-
68
- const setScrollTop = (value: number) => {
69
- if (!isNumber(value)) {
70
- console.warn(SCOPE, 'value 必须为数字')
71
- return
72
- }
73
- wrap$.value!.scrollTop = value
74
- }
75
-
76
- const setScrollLeft = (value: number) => {
77
- if (!isNumber(value)) {
78
- console.warn(SCOPE, 'value 必须为数字')
79
- return
80
- }
81
- wrap$.value!.scrollLeft = value
82
- }
83
-
84
- const update = () => {
85
- if (!wrap$.value) return
86
- const offsetHeight = wrap$.value.offsetHeight - GAP
87
- const offsetWidth = wrap$.value.offsetWidth - GAP
88
-
89
- const originalHeight = offsetHeight ** 2 / wrap$.value.scrollHeight
90
- const originalWidth = offsetWidth ** 2 / wrap$.value.scrollWidth
91
- const height = Math.max(originalHeight, props.minSize)
92
- const width = Math.max(originalWidth, props.minSize)
93
-
94
- ratioY.value =
95
- originalHeight / (offsetHeight - originalHeight) / (height / (offsetHeight - height))
96
- ratioX.value = originalWidth / (offsetWidth - originalWidth) / (width / (offsetWidth - width))
97
-
98
- sizeHeight.value = height + GAP < offsetHeight ? `${height}px` : ''
99
- sizeWidth.value = width + GAP < offsetWidth ? `${width}px` : ''
100
- }
101
-
102
- watch(
103
- () => props.noresize,
104
- (noresize) => {
105
- if (noresize) {
106
- stopResizeObserver?.()
107
- stopResizeListener?.()
108
- } else {
109
- ;({ stop: stopResizeObserver } = useResizeObserver(resize$, update))
110
- stopResizeListener = useEventListener('resize', update)
111
- }
112
- },
113
- { immediate: true }
114
- )
115
-
116
- watch(
117
- () => [props.maxHeight, props.height],
118
- () => {
119
- if (!props.native)
120
- nextTick(() => {
121
- update()
122
- if (wrap$.value) {
123
- barRef.value?.handleScroll(wrap$.value)
124
- }
125
- })
126
- }
127
- )
128
-
129
- provide(
130
- scrollbarContextKey,
131
- reactive({
132
- scrollbarElement: scrollbar$,
133
- wrapElement: wrap$
134
- })
135
- )
136
-
137
- onMounted(() => {
138
- if (!props.native) nextTick(() => update())
139
- })
140
-
141
- return {
142
- barRef,
143
- wrap$,
144
- scrollbar$,
145
- resize$,
146
- style,
147
- moveX,
148
- moveY,
149
- prefixCls,
150
- sizeHeight,
151
- sizeWidth,
152
- ratioX,
153
- ratioY,
154
- handleScroll,
155
- scrollTo,
156
- setScrollTop,
157
- setScrollLeft
158
- }
159
- },
160
- render() {
161
- const CustomTag: any = this.tag
162
- return (
163
- <div ref={(e) => (this.scrollbar$ = e)} class={this.prefixCls}>
164
- <div
165
- ref={(e) => (this.wrap$ = e)}
166
- class={[
167
- this.wrapClass,
168
- `${this.prefixCls}-wrap`,
169
- this.native ? '' : `${this.prefixCls}-wrap-hidden-default`
170
- ]}
171
- style={this.style}
172
- onScroll={this.handleScroll}
173
- >
174
- <CustomTag
175
- ref={(e) => (this.resize$ = e)}
176
- class={[`${this.prefixCls}-view`, this.viewClass]}
177
- style={this.viewStyle}
178
- >
179
- {this.$slots.default?.()}
180
- </CustomTag>
181
- </div>
182
- {!this.native && (
183
- <Bar
184
- ref={(e) => (this.barRef = e)}
185
- className={this.prefixCls}
186
- height={this.sizeHeight}
187
- width={this.sizeWidth}
188
- always={this.always}
189
- ratioX={this.ratioX}
190
- ratioY={this.ratioY}
191
- />
192
- )}
193
- </div>
194
- )
195
- }
196
- })
197
-
198
- GBars.inheritAttrs = false
199
-
200
- export default GBars
@@ -1,65 +0,0 @@
1
- import type { CSSProperties } from 'vue'
2
- import { isNumber } from '@gx-design-vue/pro-utils'
3
-
4
- const wrapperKey = Symbol()
5
-
6
- export type PropWrapper<T> = { [wrapperKey]: T }
7
-
8
- export const definePropType = <T>(val: any) =>
9
- ({ [wrapperKey]: val } as PropWrapper<T>)
10
-
11
- export const scrollbarProps = {
12
- height: {
13
- type: [ String, Number ],
14
- default: ''
15
- },
16
- maxHeight: {
17
- type: [ String, Number ],
18
- default: ''
19
- },
20
- native: {
21
- type: Boolean,
22
- default: false
23
- },
24
- wrapStyle: {
25
- type: [String, Array] as PropType<string | CSSProperties[]>,
26
- default: ''
27
- },
28
- wrapClass: {
29
- type: [ String, Array ],
30
- default: ''
31
- },
32
- viewClass: {
33
- type: [ String, Array ],
34
- default: ''
35
- },
36
- viewStyle: {
37
- type: [ String, Array, Object ],
38
- default: ''
39
- },
40
- noresize: Boolean, // 如果 container 尺寸不会发生变化,最好设置它可以优化性能
41
- tag: {
42
- type: String,
43
- default: 'div'
44
- },
45
- always: {
46
- type: Boolean,
47
- default: false
48
- },
49
- minSize: {
50
- type: Number,
51
- default: 20
52
- }
53
- }
54
-
55
-
56
- export const scrollbarEmits = {
57
- scroll: ({
58
- scrollTop,
59
- scrollLeft
60
- }: {
61
- scrollTop: number
62
- scrollLeft: number
63
- }) => isNumber(scrollTop) && isNumber(scrollLeft)
64
- }
65
- export type ScrollbarEmits = typeof scrollbarEmits
@@ -1,85 +0,0 @@
1
- :root {
2
- --wd-scrollbar-opacity: 0.3;
3
- --wd-text-color-secondary: #909399;
4
- --wd-scrollbar-background-color: var(--wd-text-color-secondary);
5
- --wd-scrollbar-hover-opacity: 0.5;
6
- --wd-scrollbar-hover-background-color: var(--wd-text-color-secondary);
7
- }
8
-
9
- .@{gx-prefix}-scrollbar {
10
- position: relative;
11
- height: 100%;
12
- overflow: hidden;
13
-
14
- &-wrap {
15
- height: 100%;
16
- overflow: auto;
17
-
18
- &-hidden-default {
19
- scrollbar-width: none;
20
-
21
- &::-webkit-scrollbar {
22
- display: none;
23
- }
24
- }
25
- }
26
-
27
- &-bar {
28
- position: absolute;
29
- right: 2px;
30
- bottom: 2px;
31
- z-index: 999;
32
- border-radius: 4px;
33
-
34
- &.is-vertical {
35
- top: 2px;
36
- width: 6px;
37
-
38
- & > div {
39
- width: 100%;
40
- }
41
- }
42
-
43
- &.is-horizontal {
44
- left: 2px;
45
- height: 6px;
46
-
47
- & > div {
48
- height: 100%;
49
- }
50
- }
51
- }
52
-
53
- &-thumb {
54
- position: relative;
55
- display: block;
56
- width: 0;
57
- height: 0;
58
- cursor: pointer;
59
- background-color: var(--wd-scrollbar-background-color);
60
- border-radius: inherit;
61
- opacity: var(--wd-scrollbar-opacity);
62
- -webkit-transition: var(--wd-transition-duration) background-color;
63
- transition: var(--wd-transition-duration) background-color;
64
-
65
- &:hover {
66
- background-color: var(--wd-scrollbar-hover-background-color);
67
- opacity: var(--wd-scrollbar-hover-opacity);
68
- }
69
- }
70
-
71
- &-fade-enter-active {
72
- -webkit-transition: opacity 340ms ease-out;
73
- transition: opacity 340ms ease-out;
74
- }
75
-
76
- &-fade-leave-active {
77
- -webkit-transition: opacity 120ms ease-out;
78
- transition: opacity 120ms ease-out;
79
- }
80
- }
81
-
82
- .@{gx-prefix}-scrollbar-fade-enter-from,
83
- .@{gx-prefix}-scrollbar-fade-leave-active {
84
- opacity: 0;
85
- }
@@ -1,40 +0,0 @@
1
- import type { CSSProperties } from 'vue'
2
- import { isNumber, isString } from '@gx-design-vue/pro-utils'
3
-
4
- export const BAR_MAP = {
5
- vertical: {
6
- offset: 'offsetHeight',
7
- scroll: 'scrollTop',
8
- scrollSize: 'scrollHeight',
9
- size: 'height',
10
- key: 'vertical',
11
- axis: 'Y',
12
- client: 'clientY',
13
- direction: 'top',
14
- },
15
- horizontal: {
16
- offset: 'offsetWidth',
17
- scroll: 'scrollLeft',
18
- scrollSize: 'scrollWidth',
19
- size: 'width',
20
- key: 'horizontal',
21
- axis: 'X',
22
- client: 'clientX',
23
- direction: 'left',
24
- },
25
- }
26
-
27
- export const renderThumbStyle = ({ move, size, bar }): CSSProperties => ({
28
- [bar.size]: size,
29
- transform: `translate${bar.axis}(${move}%)`,
30
- })
31
-
32
- export function addUnit(value: string | number, defaultUnit = 'px') {
33
- if (!value) return ''
34
- if (isString(value)) {
35
- return value
36
- } else if (isNumber(value)) {
37
- return `${value}${defaultUnit}`
38
- }
39
- return false
40
- }
@@ -1,7 +0,0 @@
1
- import devWarning from 'ant-design-vue/es/vc-util/devWarning'
2
-
3
- export { noteOnce, warning } from 'ant-design-vue/es/vc-util/warning'
4
-
5
- export {
6
- devWarning
7
- }