gi-component 0.0.49 → 0.0.51

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 (267) hide show
  1. package/dist/components/button/index.d.ts +2 -1
  2. package/dist/components/button/index.d.ts.map +1 -0
  3. package/dist/components/button/src/{button.vue.d.ts → button.d.ts} +5 -3
  4. package/dist/components/button/src/button.d.ts.map +1 -0
  5. package/dist/components/button/src/type.d.ts +1 -0
  6. package/dist/components/button/src/type.d.ts.map +1 -0
  7. package/dist/components/card/index.d.ts +2 -1
  8. package/dist/components/card/index.d.ts.map +1 -0
  9. package/dist/components/card/src/card.d.ts +37 -0
  10. package/dist/components/card/src/card.d.ts.map +1 -0
  11. package/dist/components/card/src/type.d.ts +1 -0
  12. package/dist/components/card/src/type.d.ts.map +1 -0
  13. package/dist/components/descriptions/index.d.ts +2 -2
  14. package/dist/components/descriptions/index.d.ts.map +1 -0
  15. package/dist/components/descriptions/src/descriptions.d.ts +25 -0
  16. package/dist/components/descriptions/src/descriptions.d.ts.map +1 -0
  17. package/dist/components/descriptions/src/type.d.ts +25 -11
  18. package/dist/components/descriptions/src/type.d.ts.map +1 -0
  19. package/dist/components/dialog/index.d.ts +3 -2
  20. package/dist/components/dialog/index.d.ts.map +1 -0
  21. package/dist/components/dialog/src/create-dialog.d.ts +27 -0
  22. package/dist/components/dialog/src/create-dialog.d.ts.map +1 -0
  23. package/dist/components/dialog/src/dialog-content.d.ts +11 -0
  24. package/dist/components/dialog/src/dialog-content.d.ts.map +1 -0
  25. package/dist/components/dialog/src/dialog.d.ts +42 -24
  26. package/dist/components/dialog/src/dialog.d.ts.map +1 -0
  27. package/dist/components/dialog/src/type.d.ts +1 -0
  28. package/dist/components/dialog/src/type.d.ts.map +1 -0
  29. package/dist/components/dot/index.d.ts +2 -1
  30. package/dist/components/dot/index.d.ts.map +1 -0
  31. package/dist/components/dot/src/dot.d.ts +9 -0
  32. package/dist/components/dot/src/dot.d.ts.map +1 -0
  33. package/dist/components/dot/src/type.d.ts +1 -0
  34. package/dist/components/dot/src/type.d.ts.map +1 -0
  35. package/dist/components/drawer/index.d.ts +3 -2
  36. package/dist/components/drawer/index.d.ts.map +1 -0
  37. package/dist/components/drawer/src/create-drawer.d.ts +19 -0
  38. package/dist/components/drawer/src/create-drawer.d.ts.map +1 -0
  39. package/dist/components/drawer/src/drawer.d.ts +46 -16
  40. package/dist/components/drawer/src/drawer.d.ts.map +1 -0
  41. package/dist/components/drawer/src/type.d.ts +1 -0
  42. package/dist/components/drawer/src/type.d.ts.map +1 -0
  43. package/dist/components/edit-table/index.d.ts +2 -1
  44. package/dist/components/edit-table/index.d.ts.map +1 -0
  45. package/dist/components/edit-table/src/type.d.ts +1 -0
  46. package/dist/components/edit-table/src/type.d.ts.map +1 -0
  47. package/dist/components/flex/index.d.ts +2 -1
  48. package/dist/components/flex/index.d.ts.map +1 -0
  49. package/dist/components/flex/src/{flex.vue.d.ts → flex.d.ts} +4 -2
  50. package/dist/components/flex/src/flex.d.ts.map +1 -0
  51. package/dist/components/flex/src/type.d.ts +1 -0
  52. package/dist/components/flex/src/type.d.ts.map +1 -0
  53. package/dist/components/form/index.d.ts +2 -1
  54. package/dist/components/form/index.d.ts.map +1 -0
  55. package/dist/components/form/src/type.d.ts +1 -0
  56. package/dist/components/form/src/type.d.ts.map +1 -0
  57. package/dist/components/grid/index.d.ts +3 -2
  58. package/dist/components/grid/index.d.ts.map +1 -0
  59. package/dist/components/grid/src/context.d.ts +1 -0
  60. package/dist/components/grid/src/context.d.ts.map +1 -0
  61. package/dist/components/grid/src/{grid-item.vue.d.ts → grid-item.d.ts} +9 -8
  62. package/dist/components/grid/src/grid-item.d.ts.map +1 -0
  63. package/dist/components/grid/src/{grid.vue.d.ts → grid.d.ts} +7 -6
  64. package/dist/components/grid/src/grid.d.ts.map +1 -0
  65. package/dist/components/grid/src/hook/use-index.d.ts +3 -2
  66. package/dist/components/grid/src/hook/use-index.d.ts.map +1 -0
  67. package/dist/components/grid/src/hook/use-responsive-state.d.ts +3 -2
  68. package/dist/components/grid/src/hook/use-responsive-state.d.ts.map +1 -0
  69. package/dist/components/grid/src/hook/use-responsive-value.d.ts +3 -2
  70. package/dist/components/grid/src/hook/use-responsive-value.d.ts.map +1 -0
  71. package/dist/components/grid/src/interface.d.ts +1 -0
  72. package/dist/components/grid/src/interface.d.ts.map +1 -0
  73. package/dist/components/grid/src/type.d.ts +1 -0
  74. package/dist/components/grid/src/type.d.ts.map +1 -0
  75. package/dist/components/grid/src/utils/global-config.d.ts +1 -0
  76. package/dist/components/grid/src/utils/global-config.d.ts.map +1 -0
  77. package/dist/components/grid/src/utils/index.d.ts +1 -0
  78. package/dist/components/grid/src/utils/index.d.ts.map +1 -0
  79. package/dist/components/grid/src/utils/is.d.ts +1 -0
  80. package/dist/components/grid/src/utils/is.d.ts.map +1 -0
  81. package/dist/components/grid/src/utils/responsive-observe.d.ts +1 -0
  82. package/dist/components/grid/src/utils/responsive-observe.d.ts.map +1 -0
  83. package/dist/components/input-group/index.d.ts +2 -1
  84. package/dist/components/input-group/index.d.ts.map +1 -0
  85. package/dist/components/input-group/src/{input-group.vue.d.ts → input-group.d.ts} +3 -1
  86. package/dist/components/input-group/src/input-group.d.ts.map +1 -0
  87. package/dist/components/input-group/src/type.d.ts +1 -0
  88. package/dist/components/input-group/src/type.d.ts.map +1 -0
  89. package/dist/components/input-search/index.d.ts +2 -1
  90. package/dist/components/input-search/index.d.ts.map +1 -0
  91. package/dist/components/input-search/src/{input-search.vue.d.ts → input-search.d.ts} +6 -4
  92. package/dist/components/input-search/src/input-search.d.ts.map +1 -0
  93. package/dist/components/input-search/src/type.d.ts +1 -0
  94. package/dist/components/input-search/src/type.d.ts.map +1 -0
  95. package/dist/components/nav-tabs/index.d.ts +2 -1
  96. package/dist/components/nav-tabs/index.d.ts.map +1 -0
  97. package/dist/components/nav-tabs/src/{nav-tabs.vue.d.ts → nav-tabs.d.ts} +6 -4
  98. package/dist/components/nav-tabs/src/nav-tabs.d.ts.map +1 -0
  99. package/dist/components/nav-tabs/src/type.d.ts +1 -0
  100. package/dist/components/nav-tabs/src/type.d.ts.map +1 -0
  101. package/dist/components/page-layout/index.d.ts +2 -1
  102. package/dist/components/page-layout/index.d.ts.map +1 -0
  103. package/dist/components/page-layout/src/page-layout.d.ts +219 -0
  104. package/dist/components/page-layout/src/page-layout.d.ts.map +1 -0
  105. package/dist/components/page-layout/src/{split-button.vue.d.ts → split-button.d.ts} +5 -3
  106. package/dist/components/page-layout/src/split-button.d.ts.map +1 -0
  107. package/dist/components/page-layout/src/type.d.ts +8 -0
  108. package/dist/components/page-layout/src/type.d.ts.map +1 -0
  109. package/dist/components/page-layout/src/useAutoCollapse.d.ts +1 -0
  110. package/dist/components/page-layout/src/useAutoCollapse.d.ts.map +1 -0
  111. package/dist/components/table/index.d.ts +22 -3
  112. package/dist/components/table/index.d.ts.map +1 -0
  113. package/dist/components/table/src/table-column.d.ts +21 -0
  114. package/dist/components/table/src/table-column.d.ts.map +1 -0
  115. package/dist/components/table/src/type.d.ts +225 -9
  116. package/dist/components/table/src/type.d.ts.map +1 -0
  117. package/dist/components/tabs/index.d.ts +2 -1
  118. package/dist/components/tabs/index.d.ts.map +1 -0
  119. package/dist/components/tabs/src/{tabs.vue.d.ts → tabs.d.ts} +16 -14
  120. package/dist/components/tabs/src/tabs.d.ts.map +1 -0
  121. package/dist/components/tabs/src/type.d.ts +1 -0
  122. package/dist/components/tabs/src/type.d.ts.map +1 -0
  123. package/dist/components/tag/index.d.ts +2 -1
  124. package/dist/components/tag/index.d.ts.map +1 -0
  125. package/dist/components/tag/src/{tag.vue.d.ts → tag.d.ts} +7 -5
  126. package/dist/components/tag/src/tag.d.ts.map +1 -0
  127. package/dist/components/tag/src/type.d.ts +1 -0
  128. package/dist/components/tag/src/type.d.ts.map +1 -0
  129. package/dist/components/tree-transfer/index.d.ts +2 -1
  130. package/dist/components/tree-transfer/index.d.ts.map +1 -0
  131. package/dist/components/tree-transfer/src/tree-transfer.d.ts +14438 -0
  132. package/dist/components/tree-transfer/src/tree-transfer.d.ts.map +1 -0
  133. package/dist/components/tree-transfer/src/type.d.ts +1 -0
  134. package/dist/components/tree-transfer/src/type.d.ts.map +1 -0
  135. package/dist/components/tree-transfer/src/utils.d.ts +1 -0
  136. package/dist/components/tree-transfer/src/utils.d.ts.map +1 -0
  137. package/dist/gi.css +1 -1
  138. package/dist/global.d.ts +26 -0
  139. package/dist/hooks/index.d.ts +1 -0
  140. package/dist/hooks/index.d.ts.map +1 -0
  141. package/dist/hooks/useBemClass.d.ts +1 -0
  142. package/dist/hooks/useBemClass.d.ts.map +1 -0
  143. package/dist/hooks/useNavTabs.d.ts +1 -0
  144. package/dist/hooks/useNavTabs.d.ts.map +1 -0
  145. package/dist/index.d.ts +3 -2
  146. package/dist/index.d.ts.map +1 -0
  147. package/dist/index.es.js +327 -321
  148. package/dist/index.es.js.map +1 -1
  149. package/dist/index.umd.js +1 -1
  150. package/dist/index.umd.js.map +1 -1
  151. package/dist/types/tool.d.ts +1 -0
  152. package/dist/types/tool.d.ts.map +1 -0
  153. package/dist/utils/createSelectDialog.d.ts +1 -0
  154. package/dist/utils/createSelectDialog.d.ts.map +1 -0
  155. package/dist/utils/index.d.ts +1 -0
  156. package/dist/utils/index.d.ts.map +1 -0
  157. package/package.json +10 -8
  158. package/dist/components/card/src/card.vue.d.ts +0 -35
  159. package/dist/components/descriptions/src/descriptions.vue.d.ts +0 -20
  160. package/dist/components/dialog/src/dialog-content.vue.d.ts +0 -9
  161. package/dist/components/dialog/src/dialog.vue.d.ts +0 -43
  162. package/dist/components/dot/src/dot.vue.d.ts +0 -7
  163. package/dist/components/drawer/src/drawer.vue.d.ts +0 -47
  164. package/dist/components/page-layout/src/page-layout.vue.d.ts +0 -21
  165. package/dist/components/plus-tabs/index.d.ts +0 -8
  166. package/dist/components/plus-tabs/src/context.d.ts +0 -26
  167. package/dist/components/plus-tabs/src/plus-tab-pane.vue.d.ts +0 -39
  168. package/dist/components/plus-tabs/src/plus-tabs.vue.d.ts +0 -78
  169. package/dist/components/plus-tabs/src/type.d.ts +0 -5
  170. package/dist/components/tab/index.d.ts +0 -2
  171. package/dist/components/tab/src/context.d.ts +0 -10
  172. package/dist/components/tab/src/tab-item.vue.d.ts +0 -26
  173. package/dist/components/tab/src/tab.vue.d.ts +0 -44
  174. package/dist/components/tab/src/type.d.ts +0 -21
  175. package/dist/components/tab/src/use-nav-tabs.d.ts +0 -2
  176. package/dist/components/tab/src/use-tabs.d.ts +0 -13
  177. package/dist/components/table/src/TableColumn.vue.d.ts +0 -10
  178. package/dist/components/table/src/table.d.ts +0 -4
  179. package/dist/components/table/src/table.vue.d.ts +0 -4
  180. package/dist/components/table-pro/index.d.ts +0 -4
  181. package/dist/components/table-pro/src/table-pro-column-setting.vue.d.ts +0 -13
  182. package/dist/components/table-pro/src/type.d.ts +0 -5
  183. package/dist/components/tree-transfer/src/tree-transfer.vue.d.ts +0 -14436
  184. package/dist/components.d.ts +0 -27
  185. package/packages/components/button/index.ts +0 -5
  186. package/packages/components/button/src/button.vue +0 -60
  187. package/packages/components/button/src/type.ts +0 -15
  188. package/packages/components/card/index.ts +0 -5
  189. package/packages/components/card/src/card.vue +0 -171
  190. package/packages/components/card/src/type.ts +0 -12
  191. package/packages/components/descriptions/index.ts +0 -5
  192. package/packages/components/descriptions/src/descriptions.vue +0 -72
  193. package/packages/components/descriptions/src/type.ts +0 -44
  194. package/packages/components/dialog/index.ts +0 -6
  195. package/packages/components/dialog/src/dialog-content.vue +0 -40
  196. package/packages/components/dialog/src/dialog.ts +0 -131
  197. package/packages/components/dialog/src/dialog.vue +0 -114
  198. package/packages/components/dialog/src/type.ts +0 -16
  199. package/packages/components/dot/index.ts +0 -5
  200. package/packages/components/dot/src/dot.vue +0 -107
  201. package/packages/components/dot/src/type.ts +0 -6
  202. package/packages/components/drawer/index.ts +0 -6
  203. package/packages/components/drawer/src/drawer.ts +0 -84
  204. package/packages/components/drawer/src/drawer.vue +0 -114
  205. package/packages/components/drawer/src/type.ts +0 -15
  206. package/packages/components/edit-table/index.ts +0 -5
  207. package/packages/components/edit-table/src/edit-table.vue +0 -201
  208. package/packages/components/edit-table/src/type.ts +0 -51
  209. package/packages/components/flex/index.ts +0 -5
  210. package/packages/components/flex/src/flex.vue +0 -95
  211. package/packages/components/flex/src/type.ts +0 -18
  212. package/packages/components/form/index.ts +0 -5
  213. package/packages/components/form/src/form.vue +0 -424
  214. package/packages/components/form/src/type.ts +0 -85
  215. package/packages/components/grid/index.ts +0 -8
  216. package/packages/components/grid/src/context.ts +0 -30
  217. package/packages/components/grid/src/grid-item.vue +0 -143
  218. package/packages/components/grid/src/grid.vue +0 -151
  219. package/packages/components/grid/src/hook/use-index.ts +0 -63
  220. package/packages/components/grid/src/hook/use-responsive-state.ts +0 -66
  221. package/packages/components/grid/src/hook/use-responsive-value.ts +0 -36
  222. package/packages/components/grid/src/interface.ts +0 -74
  223. package/packages/components/grid/src/type.ts +0 -0
  224. package/packages/components/grid/src/utils/global-config.ts +0 -6
  225. package/packages/components/grid/src/utils/index.ts +0 -73
  226. package/packages/components/grid/src/utils/is.ts +0 -9
  227. package/packages/components/grid/src/utils/responsive-observe.ts +0 -135
  228. package/packages/components/input-group/index.ts +0 -5
  229. package/packages/components/input-group/src/input-group.vue +0 -79
  230. package/packages/components/input-group/src/type.ts +0 -1
  231. package/packages/components/input-search/index.ts +0 -5
  232. package/packages/components/input-search/src/input-search.vue +0 -48
  233. package/packages/components/input-search/src/type.ts +0 -6
  234. package/packages/components/nav-tabs/index.ts +0 -8
  235. package/packages/components/nav-tabs/src/nav-tabs.vue +0 -235
  236. package/packages/components/nav-tabs/src/type.ts +0 -24
  237. package/packages/components/page-layout/index.ts +0 -5
  238. package/packages/components/page-layout/src/page-layout.vue +0 -203
  239. package/packages/components/page-layout/src/split-button.vue +0 -107
  240. package/packages/components/page-layout/src/type.ts +0 -16
  241. package/packages/components/page-layout/src/useAutoCollapse.ts +0 -88
  242. package/packages/components/table/index.ts +0 -5
  243. package/packages/components/table/src/TableColumn.vue +0 -43
  244. package/packages/components/table/src/table.vue +0 -89
  245. package/packages/components/table/src/type.ts +0 -24
  246. package/packages/components/tabs/index.ts +0 -5
  247. package/packages/components/tabs/src/tabs.vue +0 -139
  248. package/packages/components/tabs/src/type.ts +0 -15
  249. package/packages/components/tag/index.ts +0 -5
  250. package/packages/components/tag/src/tag.vue +0 -355
  251. package/packages/components/tag/src/type.ts +0 -38
  252. package/packages/components/tree-transfer/index.ts +0 -5
  253. package/packages/components/tree-transfer/src/tree-transfer.vue +0 -225
  254. package/packages/components/tree-transfer/src/type.ts +0 -7
  255. package/packages/components/tree-transfer/src/utils.ts +0 -23
  256. package/packages/components.d.ts +0 -34
  257. package/packages/hooks/index.ts +0 -2
  258. package/packages/hooks/useBemClass.ts +0 -11
  259. package/packages/hooks/useNavTabs.ts +0 -497
  260. package/packages/index.ts +0 -118
  261. package/packages/styles/el.scss +0 -90
  262. package/packages/styles/index.scss +0 -141
  263. package/packages/styles/var.scss +0 -1
  264. package/packages/types/global.d.ts +0 -7
  265. package/packages/types/tool.ts +0 -14
  266. package/packages/utils/createSelectDialog.ts +0 -74
  267. package/packages/utils/index.ts +0 -1
@@ -1,135 +0,0 @@
1
- // https://github.com/ant-design/ant-design/blob/master/components/_util/responsiveObserve.ts
2
-
3
- export type Breakpoint = 'xxl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs'
4
- export type BreakpointMap = Partial<Record<Breakpoint, string>>
5
- export type ScreenMap = Partial<Record<Breakpoint, boolean>>
6
-
7
- export const responsiveArray: Breakpoint[] = [
8
- 'xxl',
9
- 'xl',
10
- 'lg',
11
- 'md',
12
- 'sm',
13
- 'xs'
14
- ]
15
-
16
- export const responsiveMap: BreakpointMap = {
17
- xs: '(max-width: 575px)',
18
- sm: '(min-width: 576px)',
19
- md: '(min-width: 768px)',
20
- lg: '(min-width: 992px)',
21
- xl: '(min-width: 1200px)',
22
- xxl: '(min-width: 1600px)'
23
- }
24
-
25
- type SubscribeFunc = (
26
- screens: ScreenMap,
27
- breakpointChecked: Breakpoint
28
- ) => void
29
-
30
- interface MediaQueryResult {
31
- matches: boolean
32
- }
33
-
34
- type MediaQueryListener = (matches: MediaQueryResult) => void
35
-
36
- let subscribers: Array<{
37
- token: string
38
- func: SubscribeFunc
39
- }> = []
40
- let subUid = -1
41
- let screens = {}
42
-
43
- const responsiveObserve: {
44
- matchHandlers: {
45
- [key: string]: {
46
- mql: MediaQueryList
47
- listener: MediaQueryListener
48
- }
49
- }
50
- dispatch: (pointMap: ScreenMap, breakpointChecked: Breakpoint) => boolean
51
- subscribe: (func: SubscribeFunc) => string
52
- unsubscribe: (token: string) => void
53
- unregister: () => void
54
- register: () => void
55
- } = {
56
- matchHandlers: {},
57
- dispatch(pointMap: ScreenMap, breakpointChecked: Breakpoint) {
58
- screens = pointMap
59
- if (subscribers.length < 1) {
60
- return false
61
- }
62
-
63
- subscribers.forEach((item) => {
64
- item.func(screens, breakpointChecked)
65
- })
66
-
67
- return true
68
- },
69
- subscribe(func: SubscribeFunc) {
70
- if (subscribers.length === 0) {
71
- this.register()
72
- }
73
- const token = (++subUid).toString()
74
- subscribers.push({
75
- token,
76
- func
77
- })
78
- func(screens, null as unknown as Breakpoint)
79
- return token
80
- },
81
- unsubscribe(token: string) {
82
- subscribers = subscribers.filter((item) => item.token !== token)
83
- if (subscribers.length === 0) {
84
- this.unregister()
85
- }
86
- },
87
- unregister() {
88
- (Object.keys(responsiveMap) as Breakpoint[]).forEach(
89
- (screen: Breakpoint) => {
90
- const matchMediaQuery = responsiveMap[screen]
91
- if (!matchMediaQuery) return
92
- const handler = this.matchHandlers[matchMediaQuery]
93
- if (handler && handler.mql && handler.listener) {
94
- if (handler.mql.removeEventListener) {
95
- handler.mql.removeEventListener('change', handler.listener)
96
- } else {
97
- handler.mql.removeListener(handler.listener)
98
- }
99
- }
100
- }
101
- )
102
- },
103
- register() {
104
- (Object.keys(responsiveMap) as Breakpoint[]).forEach(
105
- (screen: Breakpoint) => {
106
- const matchMediaQuery = responsiveMap[screen]
107
- if (!matchMediaQuery) return
108
- const listener = ({ matches }: MediaQueryResult) => {
109
- this.dispatch(
110
- {
111
- ...screens,
112
- [screen]: matches
113
- },
114
- screen
115
- )
116
- }
117
- const mql = window.matchMedia(matchMediaQuery)
118
- if (mql.addEventListener) {
119
- mql.addEventListener('change', listener)
120
- } else {
121
- mql.addListener(listener)
122
- }
123
-
124
- this.matchHandlers[matchMediaQuery] = {
125
- mql,
126
- listener
127
- }
128
-
129
- listener(mql)
130
- }
131
- )
132
- }
133
- }
134
-
135
- export default responsiveObserve
@@ -1,5 +0,0 @@
1
- import InputGroup from './src/input-group.vue'
2
-
3
- export type InputGroupInstance = InstanceType<typeof InputGroup>
4
- export * from './src/type'
5
- export default InputGroup
@@ -1,79 +0,0 @@
1
- <template>
2
- <div :class="b('input-group')">
3
- <slot></slot>
4
- </div>
5
- </template>
6
-
7
- <script lang="ts" setup>
8
- import { useBemClass } from '../../../hooks'
9
-
10
- const { b } = useBemClass()
11
- </script>
12
-
13
- <style lang="scss" scoped>
14
- @use '../../../styles/var.scss' as a;
15
-
16
- :deep(.el-button + .el-button) {
17
- margin-left: 0;
18
- }
19
-
20
- .#{a.$prefix}-input-group {
21
- display: flex;
22
-
23
- > :deep(*:not(:last-child)) {
24
- margin-right: -1px;
25
- }
26
-
27
- > :deep(*:first-child:last-child) {
28
- border-radius: var(--el-border-radius-base);
29
-
30
- .el-input__wrapper,
31
- .el-select__wrapper {
32
- border-radius: var(--el-border-radius-base);
33
- }
34
- }
35
-
36
- > :deep(*:not(:first-child):not(:last-child)) {
37
- border-radius: 0;
38
-
39
- .el-input__wrapper,
40
- .el-select__wrapper {
41
- border-radius: 0;
42
- }
43
- }
44
-
45
- > :deep(*:first-child) {
46
- border-top-right-radius: 0;
47
- border-bottom-right-radius: 0;
48
-
49
- .el-input__wrapper,
50
- .el-select__wrapper {
51
- border-top-right-radius: 0;
52
- border-bottom-right-radius: 0;
53
- }
54
- }
55
-
56
- > :deep(*:last-child) {
57
- border-top-left-radius: 0;
58
- border-bottom-left-radius: 0;
59
-
60
- .el-input__wrapper,
61
- .el-select__wrapper {
62
- border-top-left-radius: 0;
63
- border-bottom-left-radius: 0;
64
- }
65
- }
66
-
67
- > :deep(*:hover, *:focus, *:active) {
68
- z-index: 1;
69
- }
70
-
71
- > :deep(*) {
72
-
73
- .el-input__wrapper.is-focus,
74
- .el-select__wrapper.is-focused {
75
- z-index: 2;
76
- }
77
- }
78
- }
79
- </style>
@@ -1 +0,0 @@
1
- export interface InputGroupProps {}
@@ -1,5 +0,0 @@
1
- import InputSearch from './src/input-search.vue'
2
-
3
- export type InputSearchInstance = InstanceType<typeof InputSearch>
4
- export * from './src/type'
5
- export default InputSearch
@@ -1,48 +0,0 @@
1
- <template>
2
- <InputGroup :class="b('input-search')">
3
- <ElInput v-model="model" :disabled="props.disabled" :readonly="!props.disabled" :placeholder="props.placeholder">
4
- </ElInput>
5
- <ElButton v-if="showButton" :icon="Search" :disabled="props.disabled" @click="emit('search')"></ElButton>
6
- <ElButton v-if="showButton" :icon="Close" :disabled="props.disabled" @click="emit('clear')"></ElButton>
7
- </InputGroup>
8
- </template>
9
-
10
- <script setup lang="ts">
11
- import type { InputSearchProps } from './type'
12
- import { Close, Search } from '@element-plus/icons-vue'
13
- import { ElButton, ElInput } from 'element-plus'
14
- import { computed } from 'vue'
15
- import { useBemClass } from '../../../hooks'
16
- import InputGroup from '../../input-group/src/input-group.vue'
17
-
18
- const model = defineModel({ type: String })
19
-
20
- const props = withDefaults(defineProps<InputSearchProps>(), {
21
- disabled: false,
22
- readonly: false,
23
- placeholder: '请选择',
24
- disabledHideButton: false
25
- })
26
-
27
- const emit = defineEmits<{
28
- (e: 'search'): void
29
- (e: 'clear'): void
30
- }>()
31
-
32
- const { b } = useBemClass()
33
-
34
- const showButton = computed(() => {
35
- if (props.readonly) return false
36
- if (props.disabled) {
37
- return !props.disabledHideButton
38
- }
39
- return true
40
- })
41
- </script>
42
-
43
- <style lang="scss" scoped>
44
- :deep(.el-button) {
45
- padding-right: 12px;
46
- padding-left: 12px;
47
- }
48
- </style>
@@ -1,6 +0,0 @@
1
- export interface InputSearchProps {
2
- disabled?: boolean
3
- readonly?: boolean
4
- placeholder?: string
5
- disabledHideButton?: boolean // 禁用的时候隐藏按钮
6
- }
@@ -1,8 +0,0 @@
1
- import type { DefineComponent } from 'vue'
2
- import type { NavTabBase, NavTabsProps } from './src/type'
3
- import NavTabs from './src/nav-tabs.vue'
4
-
5
- export type NavTabsInstance<T extends NavTabBase = NavTabBase> = DefineComponent<NavTabsProps<T>>
6
-
7
- export * from './src/type'
8
- export default NavTabs
@@ -1,235 +0,0 @@
1
- <template>
2
- <div ref="rootRef" :class="[b('nav-tabs'), { [b('nav-tabs--custom')]: props.custom }]">
3
- <div v-if="slots['left-extra']" :class="b('nav-tabs__left')">
4
- <slot name="left-extra" />
5
- </div>
6
- <div :class="b('nav-tabs__scroll-wrap')">
7
- <button ref="leftBtnRef" type="button" :class="[b('nav-tabs__nav-btn'), b('nav-tabs__nav-btn--prev')]">
8
- <ElIcon>
9
- <ArrowLeft />
10
- </ElIcon>
11
- </button>
12
- <div ref="scrollRef" :class="b('nav-tabs__scroll')">
13
- <div v-for="item in props.data" :key="item.value" :class="[
14
- b('nav-tabs-item'),
15
- props.custom
16
- ? b('nav-tabs-item--custom')
17
- : {
18
- [b('nav-tabs-item--active')]: model === item.value,
19
- [b('nav-tabs-item--disabled')]: item.disabled,
20
- },
21
- ]" :data-value="item.value" @click="handleItemClick(item)">
22
- <slot :item="item" :active="model === item.value" :disabled="!!item.disabled">
23
- {{ item.label }}
24
- </slot>
25
- </div>
26
- </div>
27
- <button ref="rightBtnRef" type="button" :class="[b('nav-tabs__nav-btn'), b('nav-tabs__nav-btn--next')]">
28
- <ElIcon>
29
- <ArrowRight />
30
- </ElIcon>
31
- </button>
32
- </div>
33
- <div v-if="slots['right-extra']" :class="b('nav-tabs__right')">
34
- <slot name="right-extra" />
35
- </div>
36
- </div>
37
- </template>
38
-
39
- <script lang="ts" setup generic="T extends NavTabBase">
40
- import type { NavTabBase, NavTabSlotProps, NavTabsProps } from './type.ts'
41
- import { ArrowLeft, ArrowRight } from '@element-plus/icons-vue'
42
- import { ElIcon } from 'element-plus'
43
- import { ref, useSlots } from 'vue'
44
- import { useBemClass, useNavTabs } from '../../../hooks'
45
-
46
- const model = defineModel<string | number>()
47
-
48
- const props = withDefaults(defineProps<NavTabsProps<T>>(), {
49
- data: () => [],
50
- wheelSpeed: 1,
51
- custom: false
52
- })
53
-
54
- const emits = defineEmits<{
55
- (e: 'change', value: string | number): void
56
- }>()
57
-
58
- defineSlots<{
59
- 'default': (props: NavTabSlotProps<T>) => void
60
- 'left-extra': () => void
61
- 'right-extra': () => void
62
- }>()
63
-
64
- const slots = useSlots()
65
- const { b } = useBemClass()
66
-
67
- const rootRef = ref<HTMLElement | null>(null)
68
- const scrollRef = ref<HTMLElement | null>(null)
69
- const leftBtnRef = ref<HTMLElement | null>(null)
70
- const rightBtnRef = ref<HTMLElement | null>(null)
71
-
72
- const tabItemClassName = b('nav-tabs-item')
73
-
74
- useNavTabs({
75
- tabEl: rootRef,
76
- tabScrollEl: scrollRef,
77
- tabItemClassName,
78
- activeValue: model,
79
- wheelSpeed: props.wheelSpeed,
80
- tabLeftScrollBtnEl: leftBtnRef,
81
- tabRightScrollBtnEl: rightBtnRef,
82
- navBtnDisabledClassName: b('nav-tabs__nav-btn--disabled')
83
- })
84
-
85
- function handleItemClick(item: T) {
86
- if (item.disabled) {
87
- return
88
- }
89
- model.value = item.value
90
- emits('change', item.value)
91
- }
92
- </script>
93
-
94
- <style lang="scss" scoped>
95
- @use '../../../styles/var.scss' as a;
96
-
97
- .#{a.$prefix}-nav-tabs {
98
- display: flex;
99
- align-items: center;
100
- width: 100%;
101
- height: 40px;
102
- box-sizing: border-box;
103
-
104
- &__left {
105
- flex-shrink: 0;
106
- // margin-right: 8px;
107
- }
108
-
109
- &__right {
110
- flex-shrink: 0;
111
- //margin-left: 8px;
112
- }
113
-
114
- &__scroll-wrap {
115
- flex: 1;
116
- display: flex;
117
- align-items: center;
118
- min-width: 0;
119
- overflow: hidden;
120
- height: 100%;
121
- }
122
-
123
- &__scroll {
124
- flex: 1;
125
- min-width: 0;
126
- display: flex;
127
- overflow-x: auto;
128
- overflow-y: hidden;
129
- scrollbar-width: none;
130
- height: 100%;
131
-
132
- &::-webkit-scrollbar {
133
- display: none;
134
- }
135
- }
136
-
137
- &__nav-btn {
138
- flex-shrink: 0;
139
- display: none;
140
- align-items: center;
141
- justify-content: center;
142
- width: 20px;
143
- height: 20px;
144
- border-radius: 50%;
145
- padding: 0;
146
- border: none;
147
- background: transparent;
148
- color: var(--el-text-color-secondary);
149
- cursor: pointer;
150
- outline: none;
151
- margin: 0 4px;
152
-
153
- &--prev {
154
- margin-left: 6px;
155
- }
156
-
157
- &--next {
158
- margin-right: 6px;
159
- }
160
-
161
- &:hover {
162
- color: var(--el-color-primary);
163
- background-color: var(--el-fill-color-light);
164
- }
165
-
166
- &:active {
167
- background-color: var(--el-fill-color);
168
- }
169
-
170
- &--disabled {
171
- color: var(--el-text-color-disabled);
172
- cursor: not-allowed;
173
- pointer-events: none;
174
-
175
- &:hover,
176
- &:active {
177
- color: var(--el-text-color-disabled);
178
- background-color: transparent;
179
- }
180
- }
181
- }
182
-
183
- &:not(.#{a.$prefix}-nav-tabs--custom) {
184
- .#{a.$prefix}-nav-tabs-item {
185
- padding: 0 16px;
186
- color: var(--el-text-color-regular);
187
- position: relative;
188
- font-size: 14px;
189
- }
190
-
191
- .#{a.$prefix}-nav-tabs-item--active {
192
- color: var(--el-color-primary);
193
- font-weight: 500;
194
-
195
- &::after {
196
- content: '';
197
- position: absolute;
198
- left: 16px;
199
- right: 16px;
200
- bottom: 0;
201
- height: 2px;
202
- background: var(--el-color-primary);
203
- }
204
- }
205
-
206
- .#{a.$prefix}-nav-tabs-item--disabled {
207
- color: var(--el-text-color-disabled);
208
- cursor: not-allowed;
209
- }
210
- }
211
- }
212
-
213
- .#{a.$prefix}-nav-tabs--custom {
214
- .#{a.$prefix}-nav-tabs__scroll {
215
- gap: 8px;
216
- }
217
-
218
- .#{a.$prefix}-nav-tabs-item {
219
- padding: 0;
220
- height: auto;
221
- line-height: inherit;
222
- }
223
- }
224
-
225
- .#{a.$prefix}-nav-tabs-item {
226
- flex-shrink: 0;
227
- cursor: pointer;
228
- user-select: none;
229
- height: 100%;
230
- display: flex;
231
- justify-content: center;
232
- align-items: center;
233
- position: relative;
234
- }
235
- </style>
@@ -1,24 +0,0 @@
1
- /** 页签项基础字段(必填 + 可选 disabled) */
2
- export interface NavTabBase {
3
- label: string
4
- value: string | number
5
- disabled?: boolean
6
- }
7
-
8
- /** 兼容旧用法:无扩展字段时的默认项类型 */
9
- export type NavTabItem = NavTabBase
10
-
11
- /** 组件 Props,T 由 data 数组元素类型推导 */
12
- export interface NavTabsProps<T extends NavTabBase = NavTabBase> {
13
- data?: T[]
14
- wheelSpeed?: number
15
- /** 自定义项样式:无 padding,不应用 --active / --disabled 修饰类 */
16
- custom?: boolean
17
- }
18
-
19
- /** 默认插槽作用域 */
20
- export type NavTabSlotProps<T extends NavTabBase = NavTabBase> = {
21
- item: T
22
- active: boolean
23
- disabled: boolean
24
- }
@@ -1,5 +0,0 @@
1
- import PageLayout from './src/page-layout.vue'
2
-
3
- export type PageLayoutInstance = InstanceType<typeof PageLayout>
4
- export * from './src/type'
5
- export default PageLayout