ff-ui-plus 2.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 (319) hide show
  1. package/.nvmrc +1 -0
  2. package/.prettierrc.cjs +41 -0
  3. package/.stylelintignore +5 -0
  4. package/LICENSE +21 -0
  5. package/README.md +265 -0
  6. package/commitlint.config.cjs +162 -0
  7. package/global.d.ts +27 -0
  8. package/index.html +16 -0
  9. package/lib.sh +9 -0
  10. package/lint-staged.config.cjs +8 -0
  11. package/package.json +149 -0
  12. package/packages/components/adaptive-page/index.ts +5 -0
  13. package/packages/components/adaptive-page/src/index.vue +85 -0
  14. package/packages/components/adaptive-page/src/type.ts +9 -0
  15. package/packages/components/adaptive-page/style/css.ts +1 -0
  16. package/packages/components/adaptive-page/style/index.ts +1 -0
  17. package/packages/components/button/index.ts +5 -0
  18. package/packages/components/button/src/index.vue +41 -0
  19. package/packages/components/button/src/type.ts +11 -0
  20. package/packages/components/button/style/css.ts +1 -0
  21. package/packages/components/button/style/index.ts +1 -0
  22. package/packages/components/chart/index.ts +5 -0
  23. package/packages/components/chart/src/index.vue +121 -0
  24. package/packages/components/chart/src/type.ts +7 -0
  25. package/packages/components/chart/style/css.ts +1 -0
  26. package/packages/components/chart/style/index.ts +1 -0
  27. package/packages/components/checkbox/index.ts +3 -0
  28. package/packages/components/checkbox/src/checkbox.d.ts +5 -0
  29. package/packages/components/checkbox/src/index.vue +67 -0
  30. package/packages/components/checkbox/style/css.ts +1 -0
  31. package/packages/components/checkbox/style/index.ts +1 -0
  32. package/packages/components/date-picker/index.ts +5 -0
  33. package/packages/components/date-picker/src/index.vue +228 -0
  34. package/packages/components/date-picker/src/type.ts +22 -0
  35. package/packages/components/date-picker/style/css.ts +1 -0
  36. package/packages/components/date-picker/style/index.ts +1 -0
  37. package/packages/components/detail/index.ts +5 -0
  38. package/packages/components/detail/src/index.vue +102 -0
  39. package/packages/components/detail/src/renderLabel.vue +15 -0
  40. package/packages/components/detail/src/renderTooltip.vue +15 -0
  41. package/packages/components/detail/src/type.ts +28 -0
  42. package/packages/components/detail/style/css.ts +1 -0
  43. package/packages/components/detail/style/index.ts +1 -0
  44. package/packages/components/form/index.ts +5 -0
  45. package/packages/components/form/src/index.vue +407 -0
  46. package/packages/components/form/src/renderBtn.vue +15 -0
  47. package/packages/components/form/src/renderComp.vue +15 -0
  48. package/packages/components/form/src/type.ts +26 -0
  49. package/packages/components/form/style/css.ts +1 -0
  50. package/packages/components/form/style/index.ts +1 -0
  51. package/packages/components/index.ts +20 -0
  52. package/packages/components/input/index.ts +5 -0
  53. package/packages/components/input/src/index.vue +225 -0
  54. package/packages/components/input/src/type.ts +14 -0
  55. package/packages/components/input/style/css.ts +1 -0
  56. package/packages/components/input/style/index.ts +1 -0
  57. package/packages/components/layout-page/index.ts +4 -0
  58. package/packages/components/layout-page/src/index.vue +74 -0
  59. package/packages/components/layout-page/style/css.ts +1 -0
  60. package/packages/components/layout-page/style/index.ts +1 -0
  61. package/packages/components/layout-page-item/index.ts +3 -0
  62. package/packages/components/layout-page-item/src/index.vue +16 -0
  63. package/packages/components/layout-page-item/style/css.ts +1 -0
  64. package/packages/components/layout-page-item/style/index.ts +1 -0
  65. package/packages/components/module-form/index.ts +4 -0
  66. package/packages/components/module-form/src/index.vue +243 -0
  67. package/packages/components/module-form/src/moduleDetail.vue +61 -0
  68. package/packages/components/module-form/src/moduleForm.vue +88 -0
  69. package/packages/components/module-form/src/type.ts +16 -0
  70. package/packages/components/module-form/style/css.ts +1 -0
  71. package/packages/components/module-form/style/index.ts +1 -0
  72. package/packages/components/package.json +9 -0
  73. package/packages/components/query-condition/index.ts +4 -0
  74. package/packages/components/query-condition/src/index.vue +478 -0
  75. package/packages/components/query-condition/src/moreChoose.vue +159 -0
  76. package/packages/components/query-condition/src/renderComp.vue +15 -0
  77. package/packages/components/query-condition/src/type.ts +22 -0
  78. package/packages/components/query-condition/src/useComputed.ts +94 -0
  79. package/packages/components/query-condition/style/css.ts +1 -0
  80. package/packages/components/query-condition/style/index.ts +1 -0
  81. package/packages/components/radio/index.ts +3 -0
  82. package/packages/components/radio/src/index.vue +73 -0
  83. package/packages/components/radio/src/radio.d.ts +12 -0
  84. package/packages/components/radio/style/css.ts +1 -0
  85. package/packages/components/radio/style/index.ts +1 -0
  86. package/packages/components/select/index.ts +4 -0
  87. package/packages/components/select/src/index.vue +240 -0
  88. package/packages/components/select/src/type.ts +43 -0
  89. package/packages/components/select/style/css.ts +1 -0
  90. package/packages/components/select/style/index.ts +1 -0
  91. package/packages/components/select-icon/index.ts +4 -0
  92. package/packages/components/select-icon/src/index.vue +128 -0
  93. package/packages/components/select-icon/style/css.ts +1 -0
  94. package/packages/components/select-icon/style/index.ts +1 -0
  95. package/packages/components/select-table/index.ts +4 -0
  96. package/packages/components/select-table/src/ClickOutside.ts +106 -0
  97. package/packages/components/select-table/src/index.vue +851 -0
  98. package/packages/components/select-table/src/renderCol.vue +20 -0
  99. package/packages/components/select-table/src/type.ts +56 -0
  100. package/packages/components/select-table/src/useVirtualized.ts +86 -0
  101. package/packages/components/select-table/style/css.ts +1 -0
  102. package/packages/components/select-table/style/index.ts +1 -0
  103. package/packages/components/step-wizard/index.ts +4 -0
  104. package/packages/components/step-wizard/src/index.vue +99 -0
  105. package/packages/components/step-wizard/src/type.ts +17 -0
  106. package/packages/components/step-wizard/style/css.ts +1 -0
  107. package/packages/components/step-wizard/style/index.ts +1 -0
  108. package/packages/components/table/index.ts +5 -0
  109. package/packages/components/table/src/ColumnSet.vue +176 -0
  110. package/packages/components/table/src/TTableColumn.vue +100 -0
  111. package/packages/components/table/src/densitySet.vue +91 -0
  112. package/packages/components/table/src/firstColumn.vue +132 -0
  113. package/packages/components/table/src/index.vue +926 -0
  114. package/packages/components/table/src/operator.vue +246 -0
  115. package/packages/components/table/src/renderCol.vue +20 -0
  116. package/packages/components/table/src/renderHeader.vue +18 -0
  117. package/packages/components/table/src/singleEdit.vue +354 -0
  118. package/packages/components/table/src/singleEditCell.vue +303 -0
  119. package/packages/components/table/src/tableProps.ts +162 -0
  120. package/packages/components/table/src/useExpose.ts +74 -0
  121. package/packages/components/table/src/useVirtualized.ts +70 -0
  122. package/packages/components/table/style/css.ts +1 -0
  123. package/packages/components/table/style/index.ts +1 -0
  124. package/packages/components/tabs/index.ts +4 -0
  125. package/packages/components/tabs/src/index.vue +50 -0
  126. package/packages/components/tabs/style/css.ts +1 -0
  127. package/packages/components/tabs/style/index.ts +1 -0
  128. package/packages/components/timer-btn/index.ts +4 -0
  129. package/packages/components/timer-btn/src/index.vue +57 -0
  130. package/packages/components/timer-btn/style/css.ts +1 -0
  131. package/packages/components/timer-btn/style/index.ts +1 -0
  132. package/packages/components/utils/index.ts +142 -0
  133. package/packages/components/utils/install.ts +16 -0
  134. package/packages/eslint-config/build.config.ts +16 -0
  135. package/packages/eslint-config/dist/index.cjs +122 -0
  136. package/packages/eslint-config/dist/index.d.cts +92 -0
  137. package/packages/eslint-config/dist/index.d.mts +92 -0
  138. package/packages/eslint-config/dist/index.d.ts +92 -0
  139. package/packages/eslint-config/dist/index.mjs +120 -0
  140. package/packages/eslint-config/package.json +34 -0
  141. package/packages/eslint-config/src/index.ts +121 -0
  142. package/packages/ff-ui-plus/component.ts +55 -0
  143. package/packages/ff-ui-plus/defaults.ts +4 -0
  144. package/packages/ff-ui-plus/index.ts +9 -0
  145. package/packages/ff-ui-plus/make-installer.ts +10 -0
  146. package/packages/ff-ui-plus/package.json +117 -0
  147. package/packages/ff-ui-plus/version.ts +1 -0
  148. package/packages/hooks/index.ts +1 -0
  149. package/packages/hooks/package.json +9 -0
  150. package/packages/hooks/useLocale.ts +53 -0
  151. package/packages/locale/index.ts +11 -0
  152. package/packages/locale/lang/en.ts +157 -0
  153. package/packages/locale/lang/zh-cn.ts +155 -0
  154. package/packages/locale/package.json +12 -0
  155. package/packages/resolver/package.json +23 -0
  156. package/packages/resolver/src/index.ts +99 -0
  157. package/packages/theme-chalk/build.ts +76 -0
  158. package/packages/theme-chalk/dist/index.css +1 -0
  159. package/packages/theme-chalk/dist/src/adaptive-page.scss +48 -0
  160. package/packages/theme-chalk/dist/src/button.scss +23 -0
  161. package/packages/theme-chalk/dist/src/chart.scss +10 -0
  162. package/packages/theme-chalk/dist/src/checkbox.scss +0 -0
  163. package/packages/theme-chalk/dist/src/date-picker.scss +3 -0
  164. package/packages/theme-chalk/dist/src/detail.scss +7 -0
  165. package/packages/theme-chalk/dist/src/form.scss +104 -0
  166. package/packages/theme-chalk/dist/src/index.scss +19 -0
  167. package/packages/theme-chalk/dist/src/input.scss +0 -0
  168. package/packages/theme-chalk/dist/src/layout-page-item.scss +10 -0
  169. package/packages/theme-chalk/dist/src/layout-page.scss +37 -0
  170. package/packages/theme-chalk/dist/src/module-form.scss +335 -0
  171. package/packages/theme-chalk/dist/src/query-condition.scss +132 -0
  172. package/packages/theme-chalk/dist/src/radio.scss +0 -0
  173. package/packages/theme-chalk/dist/src/select-icon.scss +61 -0
  174. package/packages/theme-chalk/dist/src/select-table.scss +71 -0
  175. package/packages/theme-chalk/dist/src/select.scss +7 -0
  176. package/packages/theme-chalk/dist/src/step-wizard.scss +51 -0
  177. package/packages/theme-chalk/dist/src/table.scss +381 -0
  178. package/packages/theme-chalk/dist/src/tabs.scss +20 -0
  179. package/packages/theme-chalk/dist/src/timer-btn.scss +21 -0
  180. package/packages/theme-chalk/dist/t-adaptive-page.css +1 -0
  181. package/packages/theme-chalk/dist/t-button.css +1 -0
  182. package/packages/theme-chalk/dist/t-chart.css +1 -0
  183. package/packages/theme-chalk/dist/t-checkbox.css +0 -0
  184. package/packages/theme-chalk/dist/t-date-picker.css +1 -0
  185. package/packages/theme-chalk/dist/t-detail.css +1 -0
  186. package/packages/theme-chalk/dist/t-form.css +1 -0
  187. package/packages/theme-chalk/dist/t-input.css +0 -0
  188. package/packages/theme-chalk/dist/t-layout-page-item.css +1 -0
  189. package/packages/theme-chalk/dist/t-layout-page.css +1 -0
  190. package/packages/theme-chalk/dist/t-module-form.css +1 -0
  191. package/packages/theme-chalk/dist/t-query-condition.css +1 -0
  192. package/packages/theme-chalk/dist/t-radio.css +0 -0
  193. package/packages/theme-chalk/dist/t-select-icon.css +1 -0
  194. package/packages/theme-chalk/dist/t-select-table.css +1 -0
  195. package/packages/theme-chalk/dist/t-select.css +1 -0
  196. package/packages/theme-chalk/dist/t-step-wizard.css +1 -0
  197. package/packages/theme-chalk/dist/t-table.css +1 -0
  198. package/packages/theme-chalk/dist/t-tabs.css +1 -0
  199. package/packages/theme-chalk/dist/t-timer-btn.css +1 -0
  200. package/packages/theme-chalk/mixins/config.scss +8 -0
  201. package/packages/theme-chalk/mixins/function.scss +71 -0
  202. package/packages/theme-chalk/mixins/mixins.scss +79 -0
  203. package/packages/theme-chalk/package.json +21 -0
  204. package/packages/theme-chalk/src/adaptive-page.scss +48 -0
  205. package/packages/theme-chalk/src/button.scss +23 -0
  206. package/packages/theme-chalk/src/chart.scss +10 -0
  207. package/packages/theme-chalk/src/checkbox.scss +0 -0
  208. package/packages/theme-chalk/src/date-picker.scss +3 -0
  209. package/packages/theme-chalk/src/detail.scss +7 -0
  210. package/packages/theme-chalk/src/form.scss +104 -0
  211. package/packages/theme-chalk/src/index.scss +19 -0
  212. package/packages/theme-chalk/src/input.scss +0 -0
  213. package/packages/theme-chalk/src/layout-page-item.scss +10 -0
  214. package/packages/theme-chalk/src/layout-page.scss +37 -0
  215. package/packages/theme-chalk/src/module-form.scss +335 -0
  216. package/packages/theme-chalk/src/query-condition.scss +132 -0
  217. package/packages/theme-chalk/src/radio.scss +0 -0
  218. package/packages/theme-chalk/src/select-icon.scss +61 -0
  219. package/packages/theme-chalk/src/select-table.scss +71 -0
  220. package/packages/theme-chalk/src/select.scss +7 -0
  221. package/packages/theme-chalk/src/step-wizard.scss +51 -0
  222. package/packages/theme-chalk/src/table.scss +381 -0
  223. package/packages/theme-chalk/src/tabs.scss +20 -0
  224. package/packages/theme-chalk/src/timer-btn.scss +21 -0
  225. package/packages/types/global.ts +34 -0
  226. package/packages/types/index.ts +1 -0
  227. package/packages/types/package.json +10 -0
  228. package/packages/utils/build.config.ts +23 -0
  229. package/packages/utils/dist/cookie.cjs +1 -0
  230. package/packages/utils/dist/cookie.d.cts +16 -0
  231. package/packages/utils/dist/cookie.d.mts +16 -0
  232. package/packages/utils/dist/cookie.d.ts +16 -0
  233. package/packages/utils/dist/cookie.mjs +1 -0
  234. package/packages/utils/dist/day.cjs +1 -0
  235. package/packages/utils/dist/day.d.cts +37 -0
  236. package/packages/utils/dist/day.d.mts +37 -0
  237. package/packages/utils/dist/day.d.ts +37 -0
  238. package/packages/utils/dist/day.mjs +1 -0
  239. package/packages/utils/dist/file.cjs +1 -0
  240. package/packages/utils/dist/file.d.cts +61 -0
  241. package/packages/utils/dist/file.d.mts +61 -0
  242. package/packages/utils/dist/file.d.ts +61 -0
  243. package/packages/utils/dist/file.mjs +1 -0
  244. package/packages/utils/dist/index.cjs +1 -0
  245. package/packages/utils/dist/index.d.cts +13 -0
  246. package/packages/utils/dist/index.d.mts +13 -0
  247. package/packages/utils/dist/index.d.ts +13 -0
  248. package/packages/utils/dist/index.mjs +1 -0
  249. package/packages/utils/dist/is.cjs +1 -0
  250. package/packages/utils/dist/is.d.cts +117 -0
  251. package/packages/utils/dist/is.d.mts +117 -0
  252. package/packages/utils/dist/is.d.ts +117 -0
  253. package/packages/utils/dist/is.mjs +1 -0
  254. package/packages/utils/dist/letter.cjs +1 -0
  255. package/packages/utils/dist/letter.d.cts +12 -0
  256. package/packages/utils/dist/letter.d.mts +12 -0
  257. package/packages/utils/dist/letter.d.ts +12 -0
  258. package/packages/utils/dist/letter.mjs +1 -0
  259. package/packages/utils/dist/number.cjs +1 -0
  260. package/packages/utils/dist/number.d.cts +23 -0
  261. package/packages/utils/dist/number.d.mts +23 -0
  262. package/packages/utils/dist/number.d.ts +23 -0
  263. package/packages/utils/dist/number.mjs +1 -0
  264. package/packages/utils/dist/openExe.cjs +1 -0
  265. package/packages/utils/dist/openExe.d.cts +9 -0
  266. package/packages/utils/dist/openExe.d.mts +9 -0
  267. package/packages/utils/dist/openExe.d.ts +9 -0
  268. package/packages/utils/dist/openExe.mjs +1 -0
  269. package/packages/utils/dist/storage.cjs +1 -0
  270. package/packages/utils/dist/storage.d.cts +46 -0
  271. package/packages/utils/dist/storage.d.mts +46 -0
  272. package/packages/utils/dist/storage.d.ts +46 -0
  273. package/packages/utils/dist/storage.mjs +1 -0
  274. package/packages/utils/dist/validate.cjs +1 -0
  275. package/packages/utils/dist/validate.d.cts +32 -0
  276. package/packages/utils/dist/validate.d.mts +32 -0
  277. package/packages/utils/dist/validate.d.ts +32 -0
  278. package/packages/utils/dist/validate.mjs +1 -0
  279. package/packages/utils/dist/ws.cjs +1 -0
  280. package/packages/utils/dist/ws.d.cts +86 -0
  281. package/packages/utils/dist/ws.d.mts +86 -0
  282. package/packages/utils/dist/ws.d.ts +86 -0
  283. package/packages/utils/dist/ws.mjs +1 -0
  284. package/packages/utils/package.json +42 -0
  285. package/packages/utils/src/cookie.ts +24 -0
  286. package/packages/utils/src/day.ts +66 -0
  287. package/packages/utils/src/file.ts +173 -0
  288. package/packages/utils/src/index.ts +10 -0
  289. package/packages/utils/src/is.ts +159 -0
  290. package/packages/utils/src/letter.ts +15 -0
  291. package/packages/utils/src/number.ts +37 -0
  292. package/packages/utils/src/openExe.ts +45 -0
  293. package/packages/utils/src/storage.ts +77 -0
  294. package/packages/utils/src/validate.ts +55 -0
  295. package/packages/utils/src/ws.ts +191 -0
  296. package/pnpm-workspace.yaml +3 -0
  297. package/publish.sh +37 -0
  298. package/resolver.sh +9 -0
  299. package/scripts/build/all.ts +152 -0
  300. package/scripts/build/build.config.ts +10 -0
  301. package/scripts/build/dist/index.cjs +7 -0
  302. package/scripts/build/dist/index.d.ts +2 -0
  303. package/scripts/build/dist/index.mjs +12 -0
  304. package/scripts/build/index.ts +63 -0
  305. package/scripts/build/modules.ts +141 -0
  306. package/scripts/build/package.json +14 -0
  307. package/scripts/release/gen-version.ts +12 -0
  308. package/scripts/release/index.ts +209 -0
  309. package/scripts/utils/excludeFiles.ts +14 -0
  310. package/scripts/utils/index.ts +88 -0
  311. package/scripts/utils/main.ts +14 -0
  312. package/scripts/utils/paths.ts +40 -0
  313. package/scripts/utils/plugin.ts +61 -0
  314. package/tsconfig.base.json +23 -0
  315. package/tsconfig.vitest.json +11 -0
  316. package/tsconfig.web.json +18 -0
  317. package/typings/env.d.ts +22 -0
  318. package/typings/index.d.ts +161 -0
  319. package/vitest.config.ts +22 -0
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "@ff-ui-plus/build",
3
+ "version": "0.0.1",
4
+ "private": true,
5
+ "type": "module",
6
+ "description": "Build Toolchain for ff-ui-plus",
7
+ "main": "./dist/index.cjs",
8
+ "module": "./dist/index.mjs",
9
+ "types": "./dist/index.d.ts",
10
+ "scripts": {
11
+ "build": "node .",
12
+ "stub": "npx unbuild --stub"
13
+ }
14
+ }
@@ -0,0 +1,12 @@
1
+ import { writeFile } from 'fs/promises'
2
+
3
+ import path from 'path'
4
+ import consola from 'consola'
5
+ import { pcRoot } from '../utils/paths'
6
+
7
+ export async function genVersion(version?: string) {
8
+ if (version) {
9
+ consola.info(`Version: ${version}`)
10
+ await writeFile(path.resolve(pcRoot, 'version.ts'), `export const version = '${version}'\n`)
11
+ }
12
+ }
@@ -0,0 +1,209 @@
1
+ import path from 'path'
2
+ import fs from 'fs'
3
+ import semver from 'semver'
4
+ import consola from 'consola'
5
+ import execa from 'execa'
6
+ import { checkbox, select, input } from '@inquirer/prompts'
7
+ import { findWorkspacePackages } from '@pnpm/find-workspace-packages'
8
+ import { projRoot, projPackage } from '../utils/paths'
9
+ import { PKG_NAME } from '../utils'
10
+ import { genVersion } from './gen-version'
11
+
12
+ type SemverRow = {
13
+ release: semver.ReleaseType
14
+ optionsOrLoose?: boolean | semver.Options | string
15
+ identifier?: string
16
+ }
17
+
18
+ // 打印
19
+ const echo = (msg: string) => consola.success(msg)
20
+
21
+ // 运行脚本
22
+ const run = (bin: string, args: string[], opts = {}) =>
23
+ execa(bin, args, { stdio: 'inherit', ...opts })
24
+
25
+ // 版本列表
26
+ const versionIncrements: SemverRow[] = [
27
+ {
28
+ release: 'patch'
29
+ },
30
+ {
31
+ release: 'minor'
32
+ },
33
+ {
34
+ release: 'major'
35
+ },
36
+ {
37
+ release: 'prepatch',
38
+ optionsOrLoose: 'rc',
39
+ identifier: '1'
40
+ },
41
+ {
42
+ release: 'preminor',
43
+ optionsOrLoose: 'rc',
44
+ identifier: '1'
45
+ },
46
+ {
47
+ release: 'premajor',
48
+ optionsOrLoose: 'rc',
49
+ identifier: '1'
50
+ },
51
+ {
52
+ release: 'prerelease',
53
+ optionsOrLoose: 'alpha',
54
+ identifier: '1'
55
+ },
56
+ {
57
+ release: 'prerelease',
58
+ optionsOrLoose: 'beta',
59
+ identifier: '1'
60
+ }
61
+ ]
62
+
63
+ // 获取工作空间包
64
+ const getWorkspaceList = async (dir = projRoot) => {
65
+ const pkgs = await findWorkspacePackages(projRoot)
66
+ return pkgs
67
+ .filter(pkg => pkg.dir.startsWith(dir))
68
+ .filter(pkg => pkg.manifest.private !== true && pkg.manifest.name)
69
+ }
70
+
71
+ /**
72
+ * 更新版本号
73
+ * @param {string} version
74
+ */
75
+ const updatePackage = (version: string, pkgPath: string) => {
76
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'))
77
+ pkg.version = version
78
+ fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n')
79
+ }
80
+
81
+ // 获取版本
82
+ const getVersion = async (currentVersion: string, pkgName: string) => {
83
+ // 发布版本
84
+ let version: string | null
85
+ const selectChoices = versionIncrements
86
+ .map(item => {
87
+ const value = semver.inc(
88
+ currentVersion,
89
+ item.release,
90
+ item.optionsOrLoose as any,
91
+ item.identifier
92
+ )
93
+ const name = `${item.release} (${value})`
94
+
95
+ return {
96
+ name,
97
+ value
98
+ }
99
+ })
100
+ .concat({ name: 'custom', value: 'custom' })
101
+
102
+ version = await select({
103
+ message: `Select release type (${pkgName})`,
104
+ choices: selectChoices
105
+ })
106
+
107
+ // 自定义版本
108
+ if (version === 'custom') {
109
+ version = await input({ message: 'Enter custom version' })
110
+ // 校验版本
111
+ if (!semver.valid(version)) {
112
+ throw new Error(`Illegal version: ${version}`)
113
+ }
114
+ }
115
+
116
+ return version
117
+ }
118
+
119
+ // 提交
120
+ async function commit(version?: string) {
121
+ try {
122
+ // 打tag
123
+ if (version) {
124
+ await run('git', ['tag', '-a', `v${version}`, '-m', `v${version}`])
125
+ }
126
+
127
+ // 生成changelog
128
+ if (version) {
129
+ await run('npm', ['run', '--name', 'changelog'])
130
+ }
131
+
132
+ // 更新导出 版本号
133
+ if (version) {
134
+ await genVersion(version)
135
+ }
136
+
137
+ await run('git', ['add', '-A'])
138
+ await run('npm', ['run', '--name', 'gitcz'])
139
+ await run('git', ['pull'])
140
+
141
+ // push tag
142
+ if (version) {
143
+ await run('git', ['push', '--tags'])
144
+ }
145
+ await run('git', ['push'])
146
+ echo(`\ncommit success ${version}`)
147
+ } catch (error: any) {
148
+ throw new Error(error)
149
+ }
150
+ }
151
+
152
+ const main = async () => {
153
+ const workspaceList = await getWorkspaceList()
154
+ const workspaceNames = workspaceList.map(item => item.manifest.name) as string[]
155
+ const workspaceMaps = workspaceList.map(item => ({
156
+ dir: item.dir,
157
+ name: item.manifest.name,
158
+ version: item.manifest.version,
159
+ pkgPath: path.resolve(item.dir, 'package.json')
160
+ }))
161
+
162
+ // 选择需要更新的包
163
+ let selectPackages: string[] = []
164
+ const checkboxChoices = workspaceNames.map(item => ({
165
+ name: item,
166
+ value: item,
167
+ checked: item === PKG_NAME
168
+ }))
169
+ const packages = await checkbox({
170
+ message: 'Which packages would you like to include?',
171
+ choices: [{ name: 'all', value: 'all' }, ...checkboxChoices]
172
+ })
173
+
174
+ if (!packages.length) {
175
+ throw new Error('Please select one or more packages!')
176
+ }
177
+
178
+ if (packages.includes('all')) {
179
+ selectPackages = workspaceNames
180
+ } else {
181
+ selectPackages = [...packages]
182
+ }
183
+
184
+ // 更新版本号
185
+ for (let index = 0; index < selectPackages.length; index++) {
186
+ const name = selectPackages[index]
187
+ const packageInfo = workspaceMaps.find(i => i.name === name)
188
+ const pkg = name === PKG_NAME ? JSON.parse(fs.readFileSync(projPackage, 'utf-8')) : packageInfo
189
+ const pkgPath = name === PKG_NAME ? projPackage : packageInfo?.pkgPath
190
+ const version = await getVersion(pkg.version as string, packageInfo?.name as string)
191
+ updatePackage(version as string, pkgPath as string)
192
+ consola.success(`Successfully updated version ${name}!`)
193
+ }
194
+
195
+ if (selectPackages.includes(PKG_NAME)) {
196
+ const mainPkg = JSON.parse(fs.readFileSync(projPackage, 'utf-8'))
197
+ commit(mainPkg.version)
198
+ } else {
199
+ commit()
200
+ }
201
+ }
202
+
203
+ main()
204
+ .then(() => {
205
+ console.log('success')
206
+ })
207
+ .catch(err => {
208
+ console.log(err)
209
+ })
@@ -0,0 +1,14 @@
1
+ // 基础
2
+ const excludes = [
3
+ 'node_modules',
4
+ '__tests__',
5
+ 'dist',
6
+ 'packages/eslint-config',
7
+ 'packages/utils',
8
+ 'packages/theme-chalk',
9
+ 'packages/resolver'
10
+ ]
11
+
12
+ export const excludeFiles = (files: string[]) => {
13
+ return files.filter(path => ![...excludes].some(exclude => path.includes(exclude)))
14
+ }
@@ -0,0 +1,88 @@
1
+ import path from 'node:path'
2
+ import type { RollupBuild, OutputOptions } from 'rollup'
3
+ import { pkgRoot } from './paths'
4
+
5
+ export function writeBundles(bundle: RollupBuild, options: OutputOptions[]) {
6
+ return Promise.all(options.map(option => bundle.write(option)))
7
+ }
8
+
9
+ export async function writeBundlesFunction(
10
+ getBundle: (option: OutputOptions) => Promise<RollupBuild>,
11
+ options: OutputOptions[]
12
+ ) {
13
+ const task = []
14
+ for (let index = 0; index < options.length; index++) {
15
+ const option = options[index]
16
+ const bundle = await getBundle(option)
17
+ task.push(bundle.write(option))
18
+ }
19
+ return task
20
+ }
21
+
22
+ export function formatBundleFilename(name: string, minify?: boolean, ext?: string) {
23
+ return `${name}${minify ? '.min' : ''}.${ext}`
24
+ }
25
+
26
+ export const PKG_NAME = 'ff-ui-plus'
27
+
28
+ export const PKG_CAMEL_CASE_NAME = 'TuiPlus'
29
+
30
+ export const PKG_PREFIX = '@ff-ui-plus'
31
+
32
+ export const PKG_CAMEL_CASE_LOCAL_NAME = 'TuiPlusLocale'
33
+
34
+ export const target = 'es2018'
35
+
36
+ const alias = [
37
+ 'node_modules/element-plus',
38
+ 'node_modules/@vue/shared',
39
+ 'node_modules/async-validator'
40
+ ]
41
+
42
+ const relative = ['../../../../', '../../../', '../../', '../']
43
+ /**
44
+ * 替换 dts 中的别名
45
+ * @param id
46
+ * @returns
47
+ */
48
+ export const pathRewriter = (id: string) => {
49
+ /**
50
+ * 解决style/*.ts中导入element-plus外部样式导致打包出现问题。
51
+ */
52
+ id = id.replaceAll(`@external`, `element-plus/es/components`)
53
+
54
+ id = id.replaceAll(`${PKG_PREFIX}/theme-chalk`, `${PKG_NAME}/theme-chalk`)
55
+ id = id.replaceAll(`${PKG_PREFIX}/`, `${PKG_NAME}/es/`)
56
+ id = id.replaceAll(`packages/${PKG_NAME}`, `${PKG_NAME}`)
57
+ id = id.replaceAll(`packages/types`, `${PKG_NAME}`)
58
+
59
+ alias.forEach(item => {
60
+ relative.forEach(path => {
61
+ if (id.includes(path + item)) {
62
+ id = id.replaceAll(path + item, item.replace('node_modules/', ''))
63
+ }
64
+ })
65
+ })
66
+
67
+ return id
68
+ }
69
+
70
+ /**
71
+ * 替换 css dts
72
+ * @param id
73
+ * @returns
74
+ */
75
+ export const cssResolver: any = {
76
+ name: 'ff-ui-plus-css-resolver',
77
+ supports: (id: string) => id.includes('/style/css.ts') || id.includes('/style/index.ts'),
78
+ transform: ({ id, code }: { id: string; code: string }) => {
79
+ const tempPath = id.replaceAll('/', path.sep)
80
+ const content = pathRewriter(code)
81
+ return [
82
+ {
83
+ path: tempPath.replace(pkgRoot, './types').replace('.ts', '.d.ts'),
84
+ content: JSON.stringify(content)
85
+ }
86
+ ]
87
+ }
88
+ }
@@ -0,0 +1,14 @@
1
+ import { excludeFiles } from './excludeFiles'
2
+
3
+ export { excludeFiles }
4
+
5
+ export const external = ['vue', 'element-plus']
6
+
7
+ export const externalModules = [
8
+ ...external,
9
+ '@element-plus/icons-vue',
10
+ '@vue/shared',
11
+ 'sortablejs',
12
+ 'dayjs',
13
+ 'lodash-es'
14
+ ]
@@ -0,0 +1,40 @@
1
+ import path from 'node:path'
2
+
3
+ const resolve = path.resolve
4
+
5
+ /** 项目根目录 `/` */
6
+ export const projRoot = resolve(__dirname, '../../')
7
+ /** 包目录 `/packages` */
8
+ export const pkgRoot = resolve(projRoot, 'packages')
9
+ /** 组件目录 `/packages/components` */
10
+ export const compRoot = resolve(pkgRoot, 'components')
11
+ /** hooks目录 `/packages/hooks` */
12
+ export const hookRoot = resolve(pkgRoot, 'hooks')
13
+ /** 工具函数目录 `/packages/utils` */
14
+ export const utilRoot = resolve(pkgRoot, 'utils')
15
+ /** 语言包目录 `/packages/locale` */
16
+ export const localesRoot = resolve(pkgRoot, 'locale')
17
+
18
+ /** ff-ui-plus 目录 即 `/packages/ff-ui-plus` */
19
+ export const pcRoot = resolve(pkgRoot, 'ff-ui-plus')
20
+
21
+ /** Docs */
22
+ export const docsDirName = 'docs'
23
+ export const docRoot = resolve(projRoot, docsDirName)
24
+ export const vpRoot = resolve(docRoot, '.vitepress')
25
+
26
+ /** `/dist` */
27
+ export const buildOutput = resolve(projRoot, 'dist')
28
+ /** `/dist/ff-ui-plus` */
29
+ export const pcOutput = resolve(buildOutput, 'ff-ui-plus')
30
+
31
+ export const pcPackage = resolve(pcRoot, 'package.json')
32
+ export const projPackage = resolve(projRoot, 'package.json')
33
+ export const compPackage = resolve(compRoot, 'package.json')
34
+ export const hookPackage = resolve(hookRoot, 'package.json')
35
+ export const utilPackage = resolve(utilRoot, 'package.json')
36
+ export const docPackage = resolve(docRoot, 'package.json')
37
+
38
+ // dts
39
+ export const TSCONFIG_PATH = resolve(projRoot, 'tsconfig.web.json')
40
+ export const DTS_OUT_DIR = resolve(buildOutput, 'types')
@@ -0,0 +1,61 @@
1
+ import type { Plugin, OutputOptions } from 'rollup'
2
+ import { PKG_NAME, PKG_PREFIX } from './index'
3
+
4
+ /**
5
+ * 替换 style/*.ts中导入.css/.scss的文件名称后缀。
6
+ * @returns
7
+ */
8
+ export function TuiPlusAlias(): Plugin {
9
+ const themeChalk = 'theme-chalk'
10
+ const sourceThemeChalk = `${PKG_PREFIX}/${themeChalk}` as const
11
+ const bundleThemeChalk = `${PKG_NAME}/${themeChalk}` as const
12
+
13
+ return {
14
+ name: 'ff-ui-plus-alias-plugin',
15
+ resolveId(id) {
16
+ if (!id.startsWith(sourceThemeChalk)) return
17
+ return {
18
+ id: id.replaceAll(sourceThemeChalk, bundleThemeChalk),
19
+ external: 'absolute'
20
+ }
21
+ }
22
+ }
23
+ }
24
+
25
+ /**
26
+ *
27
+ * 替换 style/*.ts中导入element-plus外部样式。
28
+ * @returns
29
+ */
30
+ export function TuiPlusExternal(options: OutputOptions): Plugin {
31
+ const sourceStyle = `@external` as const
32
+ const module = options.format === 'esm' ? 'es' : 'lib'
33
+ const ext = options.format === 'esm' ? '.mjs' : '.js'
34
+ const bundleStyle = `element-plus/${module}/components` as const
35
+
36
+ return {
37
+ name: 't-ui-plus-external-plugin',
38
+ resolveId(id) {
39
+ if (!id.startsWith(sourceStyle)) return
40
+ return {
41
+ id: id.replaceAll(sourceStyle, bundleStyle) + ext,
42
+ external: 'absolute'
43
+ }
44
+ }
45
+ }
46
+ }
47
+
48
+ /**
49
+ * 清除console.log
50
+ * @returns
51
+ */
52
+ export function TuiPlusClearConsole(): Plugin {
53
+ const reg = /(console.log()(.*)())/g
54
+ return {
55
+ name: 't-ui-plus-clear-console-plugin',
56
+ transform(source) {
57
+ source = source.replace(reg, '')
58
+ return source
59
+ }
60
+ }
61
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "compilerOptions": {
3
+ "outDir": "dist",
4
+ "target": "es2018",
5
+ "module": "esnext",
6
+ "sourceMap": false,
7
+ "moduleResolution": "node",
8
+ "allowJs": false,
9
+ "strict": true,
10
+ "noUnusedLocals": true,
11
+ "resolveJsonModule": true,
12
+ "allowSyntheticDefaultImports": true,
13
+ "esModuleInterop": true,
14
+ "removeComments": false,
15
+ "rootDir": ".",
16
+ "baseUrl": ".",
17
+ "paths": {
18
+ "@t-ui-plus/*": [
19
+ "packages/*"
20
+ ]
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "extends": "./tsconfig.web.json",
3
+ "compilerOptions": {
4
+ "composite": true,
5
+ "lib": ["ES2021", "DOM", "DOM.Iterable"],
6
+ "types": ["node", "jsdom"],
7
+ "skipLibCheck": true
8
+ },
9
+ "include": ["packages", "typings"],
10
+ "exclude": ["node_modules", "dist", "**/*.md"]
11
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "extends": "./tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "composite": true,
5
+ "jsx": "preserve",
6
+ "lib": ["ES2018", "DOM", "DOM.Iterable"],
7
+ "types": [],
8
+ "skipLibCheck": true,
9
+ "noImplicitAny": false,
10
+ "paths": {
11
+ "element-plus": ["./node_modules/element-plus"],
12
+ "async-validator": ["./node_modules/async-validator"],
13
+ "@vue/shared": ["./node_modules/@vue/shared"]
14
+ }
15
+ },
16
+ "include": ["packages", "typings"],
17
+ "exclude": ["node_modules", "**/dist", "**/__tests__/**/*", "**/*.md"]
18
+ }
@@ -0,0 +1,22 @@
1
+ declare global {
2
+ const process: {
3
+ env: {
4
+ NODE_ENV: string
5
+ }
6
+ }
7
+
8
+ namespace JSX {
9
+ interface IntrinsicAttributes {
10
+ class?: any
11
+ style?: any
12
+ }
13
+ }
14
+ }
15
+
16
+ declare module '@vue/runtime-core' {
17
+ export interface GlobalComponents {
18
+ Component: (props: { is: Component | string }) => void
19
+ }
20
+ }
21
+
22
+ export {}