vxe-pc-ui 3.0.0 → 3.0.1

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 (331) hide show
  1. package/es/button/src/button.js +3 -0
  2. package/es/carousel/index.js +12 -0
  3. package/es/carousel/src/carousel-item.js +100 -0
  4. package/es/carousel/src/carousel.js +418 -0
  5. package/es/carousel/src/util.js +17 -0
  6. package/es/carousel/style.css +185 -0
  7. package/es/carousel/style.min.css +1 -0
  8. package/es/carousel-item/index.js +12 -0
  9. package/es/carousel-item/style.css +0 -0
  10. package/es/carousel-item/style.min.css +0 -0
  11. package/es/checkbox/index.js +12 -0
  12. package/es/checkbox/src/checkbox.js +159 -0
  13. package/es/checkbox/src/group.js +154 -0
  14. package/es/checkbox/style.css +117 -0
  15. package/es/checkbox/style.min.css +1 -0
  16. package/es/checkbox-group/index.js +12 -0
  17. package/es/checkbox-group/style.css +0 -0
  18. package/es/checkbox-group/style.min.css +0 -0
  19. package/es/components.js +39 -39
  20. package/es/date-picker/src/date-picker.js +3 -0
  21. package/es/icon/style.css +1 -1
  22. package/es/icon-picker/index.js +12 -0
  23. package/es/icon-picker/src/icon-picker.js +668 -0
  24. package/es/icon-picker/style.css +207 -0
  25. package/es/icon-picker/style.min.css +1 -0
  26. package/es/input/index.js +12 -0
  27. package/es/input/src/input.js +2892 -0
  28. package/es/input/style.css +941 -0
  29. package/es/input/style.min.css +1 -0
  30. package/es/layout-footer/src/layout-footer.js +2 -1
  31. package/es/layout-header/src/layout-header.js +2 -1
  32. package/es/optgroup/index.js +12 -0
  33. package/es/optgroup/style.css +0 -0
  34. package/es/optgroup/style.min.css +0 -0
  35. package/es/option/index.js +12 -0
  36. package/es/option/style.css +0 -0
  37. package/es/option/style.min.css +0 -0
  38. package/es/pager/index.js +12 -0
  39. package/es/pager/src/pager.js +687 -0
  40. package/es/password-input/index.js +12 -0
  41. package/es/password-input/src/password-input.js +388 -0
  42. package/es/password-input/style.css +604 -0
  43. package/es/password-input/style.min.css +1 -0
  44. package/es/pulldown/src/pulldown.js +5 -1
  45. package/es/select/index.js +12 -0
  46. package/es/select/src/optgroup.js +90 -0
  47. package/es/select/src/option-info.js +16 -0
  48. package/es/select/src/option.js +86 -0
  49. package/es/select/src/select.js +1269 -0
  50. package/es/select/src/util.js +35 -0
  51. package/es/select/style.css +207 -0
  52. package/es/select/style.min.css +1 -0
  53. package/es/style.css +1 -1
  54. package/es/style.min.css +1 -1
  55. package/es/tab-pane/index.js +12 -0
  56. package/es/tab-pane/style.css +0 -0
  57. package/es/tab-pane/style.min.css +0 -0
  58. package/es/tabs/index.js +12 -0
  59. package/es/tabs/src/tab-pane.js +119 -0
  60. package/es/tabs/src/tabs.js +593 -0
  61. package/es/tabs/src/util.js +17 -0
  62. package/es/tabs/style.css +342 -0
  63. package/es/tabs/style.min.css +1 -0
  64. package/es/ui/index.js +1 -1
  65. package/es/ui/src/log.js +1 -1
  66. package/es/vxe-carousel/index.js +3 -0
  67. package/es/vxe-carousel/style.css +185 -0
  68. package/es/vxe-carousel/style.min.css +1 -0
  69. package/es/vxe-carousel-item/index.js +3 -0
  70. package/es/vxe-carousel-item/style.css +0 -0
  71. package/es/vxe-carousel-item/style.min.css +0 -0
  72. package/es/vxe-checkbox/index.js +3 -0
  73. package/es/vxe-checkbox/style.css +117 -0
  74. package/es/vxe-checkbox/style.min.css +1 -0
  75. package/es/vxe-checkbox-group/index.js +3 -0
  76. package/es/vxe-checkbox-group/style.css +0 -0
  77. package/es/vxe-checkbox-group/style.min.css +0 -0
  78. package/es/vxe-icon-picker/index.js +3 -0
  79. package/es/vxe-icon-picker/style.css +207 -0
  80. package/es/vxe-icon-picker/style.min.css +1 -0
  81. package/es/vxe-input/index.js +3 -0
  82. package/es/vxe-input/style.css +941 -0
  83. package/es/vxe-input/style.min.css +1 -0
  84. package/es/vxe-optgroup/index.js +3 -0
  85. package/es/vxe-optgroup/style.css +0 -0
  86. package/es/vxe-optgroup/style.min.css +0 -0
  87. package/es/vxe-option/index.js +3 -0
  88. package/es/vxe-option/style.css +0 -0
  89. package/es/vxe-option/style.min.css +0 -0
  90. package/es/vxe-password-input/index.js +3 -0
  91. package/es/vxe-password-input/style.css +604 -0
  92. package/es/vxe-password-input/style.min.css +1 -0
  93. package/es/vxe-select/index.js +3 -0
  94. package/es/vxe-select/style.css +207 -0
  95. package/es/vxe-select/style.min.css +1 -0
  96. package/es/vxe-tab-pane/index.js +3 -0
  97. package/es/vxe-tab-pane/style.css +0 -0
  98. package/es/vxe-tab-pane/style.min.css +0 -0
  99. package/es/vxe-tabs/index.js +3 -0
  100. package/es/vxe-tabs/style.css +342 -0
  101. package/es/vxe-tabs/style.min.css +1 -0
  102. package/lib/button/src/button.js +3 -0
  103. package/lib/button/src/button.min.js +1 -1
  104. package/lib/carousel/index.js +19 -0
  105. package/lib/carousel/index.min.js +1 -0
  106. package/lib/carousel/src/carousel-item.js +107 -0
  107. package/lib/carousel/src/carousel-item.min.js +1 -0
  108. package/lib/carousel/src/carousel.js +437 -0
  109. package/lib/carousel/src/carousel.min.js +1 -0
  110. package/lib/carousel/src/util.js +27 -0
  111. package/lib/carousel/src/util.min.js +1 -0
  112. package/lib/carousel/style/index.js +1 -0
  113. package/lib/carousel/style/style.css +185 -0
  114. package/lib/carousel/style/style.min.css +1 -0
  115. package/lib/carousel-item/index.js +19 -0
  116. package/lib/carousel-item/index.min.js +1 -0
  117. package/lib/carousel-item/style/index.js +1 -0
  118. package/lib/carousel-item/style/style.css +0 -0
  119. package/lib/carousel-item/style/style.min.css +0 -0
  120. package/lib/checkbox/index.js +19 -0
  121. package/lib/checkbox/index.min.js +1 -0
  122. package/lib/checkbox/src/checkbox.js +169 -0
  123. package/lib/checkbox/src/checkbox.min.js +1 -0
  124. package/lib/checkbox/src/group.js +164 -0
  125. package/lib/checkbox/src/group.min.js +1 -0
  126. package/lib/checkbox/style/index.js +1 -0
  127. package/lib/checkbox/style/style.css +117 -0
  128. package/lib/checkbox/style/style.min.css +1 -0
  129. package/lib/checkbox-group/index.js +19 -0
  130. package/lib/checkbox-group/index.min.js +1 -0
  131. package/lib/checkbox-group/style/index.js +1 -0
  132. package/lib/checkbox-group/style/style.css +0 -0
  133. package/lib/checkbox-group/style/style.min.css +0 -0
  134. package/lib/components.js +159 -60
  135. package/lib/components.min.js +1 -1
  136. package/lib/date-picker/src/date-picker.js +3 -0
  137. package/lib/date-picker/src/date-picker.min.js +1 -1
  138. package/lib/icon/style/style.css +1 -1
  139. package/lib/icon/style/style.min.css +1 -1
  140. package/lib/icon-picker/index.js +19 -0
  141. package/lib/icon-picker/index.min.js +1 -0
  142. package/lib/icon-picker/src/icon-picker.js +646 -0
  143. package/lib/icon-picker/src/icon-picker.min.js +1 -0
  144. package/lib/icon-picker/style/index.js +1 -0
  145. package/lib/icon-picker/style/style.css +207 -0
  146. package/lib/icon-picker/style/style.min.css +1 -0
  147. package/lib/index.umd.js +15870 -7738
  148. package/lib/index.umd.min.js +1 -1
  149. package/lib/input/index.js +19 -0
  150. package/lib/input/index.min.js +1 -0
  151. package/lib/input/src/input.js +2897 -0
  152. package/lib/input/src/input.min.js +1 -0
  153. package/lib/input/style/index.js +1 -0
  154. package/lib/input/style/style.css +941 -0
  155. package/lib/input/style/style.min.css +1 -0
  156. package/lib/layout-footer/src/layout-footer.js +2 -1
  157. package/lib/layout-header/src/layout-header.js +2 -1
  158. package/lib/optgroup/index.js +19 -0
  159. package/lib/optgroup/index.min.js +1 -0
  160. package/lib/optgroup/style/index.js +1 -0
  161. package/lib/optgroup/style/style.css +0 -0
  162. package/lib/optgroup/style/style.min.css +0 -0
  163. package/lib/option/index.js +19 -0
  164. package/lib/option/index.min.js +1 -0
  165. package/lib/option/style/index.js +1 -0
  166. package/lib/option/style/style.css +0 -0
  167. package/lib/option/style/style.min.css +0 -0
  168. package/lib/pager/index.js +19 -0
  169. package/lib/pager/index.min.js +1 -0
  170. package/lib/pager/src/pager.js +714 -0
  171. package/lib/pager/src/pager.min.js +1 -0
  172. package/lib/password-input/index.js +19 -0
  173. package/lib/password-input/index.min.js +1 -0
  174. package/lib/password-input/src/password-input.js +398 -0
  175. package/lib/password-input/src/password-input.min.js +1 -0
  176. package/lib/password-input/style/index.js +1 -0
  177. package/lib/password-input/style/style.css +604 -0
  178. package/lib/password-input/style/style.min.css +1 -0
  179. package/lib/pulldown/src/pulldown.js +5 -1
  180. package/lib/pulldown/src/pulldown.min.js +1 -1
  181. package/lib/select/index.js +19 -0
  182. package/lib/select/index.min.js +1 -0
  183. package/lib/select/src/optgroup.js +97 -0
  184. package/lib/select/src/optgroup.min.js +1 -0
  185. package/lib/select/src/option-info.js +33 -0
  186. package/lib/select/src/option-info.min.js +1 -0
  187. package/lib/select/src/option.js +93 -0
  188. package/lib/select/src/option.min.js +1 -0
  189. package/lib/select/src/select.js +1315 -0
  190. package/lib/select/src/select.min.js +1 -0
  191. package/lib/select/src/util.js +50 -0
  192. package/lib/select/src/util.min.js +1 -0
  193. package/lib/select/style/index.js +1 -0
  194. package/lib/select/style/style.css +207 -0
  195. package/lib/select/style/style.min.css +1 -0
  196. package/lib/style.css +1 -1
  197. package/lib/style.min.css +1 -1
  198. package/lib/tab-pane/index.js +19 -0
  199. package/lib/tab-pane/index.min.js +1 -0
  200. package/lib/tab-pane/style/index.js +1 -0
  201. package/lib/tab-pane/style/style.css +0 -0
  202. package/lib/tab-pane/style/style.min.css +0 -0
  203. package/lib/tabs/index.js +19 -0
  204. package/lib/tabs/index.min.js +1 -0
  205. package/lib/tabs/src/tab-pane.js +128 -0
  206. package/lib/tabs/src/tab-pane.min.js +1 -0
  207. package/lib/tabs/src/tabs.js +630 -0
  208. package/lib/tabs/src/tabs.min.js +1 -0
  209. package/lib/tabs/src/util.js +29 -0
  210. package/lib/tabs/src/util.min.js +1 -0
  211. package/lib/tabs/style/index.js +1 -0
  212. package/lib/tabs/style/style.css +342 -0
  213. package/lib/tabs/style/style.min.css +1 -0
  214. package/lib/ui/index.js +1 -1
  215. package/lib/ui/index.min.js +1 -1
  216. package/lib/ui/src/log.js +1 -1
  217. package/lib/ui/src/log.min.js +1 -1
  218. package/lib/vxe-carousel/index.js +23 -0
  219. package/lib/vxe-carousel/index.min.js +1 -0
  220. package/lib/vxe-carousel/style/index.js +1 -0
  221. package/lib/vxe-carousel/style/style.css +185 -0
  222. package/lib/vxe-carousel/style/style.min.css +1 -0
  223. package/lib/vxe-carousel-item/index.js +23 -0
  224. package/lib/vxe-carousel-item/index.min.js +1 -0
  225. package/lib/vxe-carousel-item/style/index.js +1 -0
  226. package/lib/vxe-carousel-item/style/style.css +0 -0
  227. package/lib/vxe-carousel-item/style/style.min.css +0 -0
  228. package/lib/vxe-checkbox/index.js +23 -0
  229. package/lib/vxe-checkbox/index.min.js +1 -0
  230. package/lib/vxe-checkbox/style/index.js +1 -0
  231. package/lib/vxe-checkbox/style/style.css +117 -0
  232. package/lib/vxe-checkbox/style/style.min.css +1 -0
  233. package/lib/vxe-checkbox-group/index.js +23 -0
  234. package/lib/vxe-checkbox-group/index.min.js +1 -0
  235. package/lib/vxe-checkbox-group/style/index.js +1 -0
  236. package/lib/vxe-checkbox-group/style/style.css +0 -0
  237. package/lib/vxe-checkbox-group/style/style.min.css +0 -0
  238. package/lib/vxe-icon-picker/index.js +23 -0
  239. package/lib/vxe-icon-picker/index.min.js +1 -0
  240. package/lib/vxe-icon-picker/style/index.js +1 -0
  241. package/lib/vxe-icon-picker/style/style.css +207 -0
  242. package/lib/vxe-icon-picker/style/style.min.css +1 -0
  243. package/lib/vxe-input/index.js +23 -0
  244. package/lib/vxe-input/index.min.js +1 -0
  245. package/lib/vxe-input/style/index.js +1 -0
  246. package/lib/vxe-input/style/style.css +941 -0
  247. package/lib/vxe-input/style/style.min.css +1 -0
  248. package/lib/vxe-optgroup/index.js +23 -0
  249. package/lib/vxe-optgroup/index.min.js +1 -0
  250. package/lib/vxe-optgroup/style/index.js +1 -0
  251. package/lib/vxe-optgroup/style/style.css +0 -0
  252. package/lib/vxe-optgroup/style/style.min.css +0 -0
  253. package/lib/vxe-option/index.js +23 -0
  254. package/lib/vxe-option/index.min.js +1 -0
  255. package/lib/vxe-option/style/index.js +1 -0
  256. package/lib/vxe-option/style/style.css +0 -0
  257. package/lib/vxe-option/style/style.min.css +0 -0
  258. package/lib/vxe-password-input/index.js +23 -0
  259. package/lib/vxe-password-input/index.min.js +1 -0
  260. package/lib/vxe-password-input/style/index.js +1 -0
  261. package/lib/vxe-password-input/style/style.css +604 -0
  262. package/lib/vxe-password-input/style/style.min.css +1 -0
  263. package/lib/vxe-select/index.js +23 -0
  264. package/lib/vxe-select/index.min.js +1 -0
  265. package/lib/vxe-select/style/index.js +1 -0
  266. package/lib/vxe-select/style/style.css +207 -0
  267. package/lib/vxe-select/style/style.min.css +1 -0
  268. package/lib/vxe-tab-pane/index.js +23 -0
  269. package/lib/vxe-tab-pane/index.min.js +1 -0
  270. package/lib/vxe-tab-pane/style/index.js +1 -0
  271. package/lib/vxe-tab-pane/style/style.css +0 -0
  272. package/lib/vxe-tab-pane/style/style.min.css +0 -0
  273. package/lib/vxe-tabs/index.js +23 -0
  274. package/lib/vxe-tabs/index.min.js +1 -0
  275. package/lib/vxe-tabs/style/index.js +1 -0
  276. package/lib/vxe-tabs/style/style.css +342 -0
  277. package/lib/vxe-tabs/style/style.min.css +1 -0
  278. package/package.json +1 -1
  279. package/packages/button/src/button.ts +3 -0
  280. package/packages/carousel/index.ts +16 -0
  281. package/packages/carousel/src/carousel-item.ts +114 -0
  282. package/packages/carousel/src/carousel.ts +449 -0
  283. package/packages/carousel/src/util.ts +21 -0
  284. package/packages/carousel-item/index.ts +16 -0
  285. package/packages/checkbox/index.ts +16 -0
  286. package/packages/checkbox/src/checkbox.ts +176 -0
  287. package/packages/checkbox/src/group.ts +178 -0
  288. package/packages/checkbox-group/index.ts +16 -0
  289. package/packages/components.ts +39 -39
  290. package/packages/date-picker/src/date-picker.ts +3 -0
  291. package/packages/icon-picker/index.ts +16 -0
  292. package/packages/icon-picker/src/icon-picker.ts +711 -0
  293. package/packages/input/index.ts +16 -0
  294. package/packages/input/src/input.ts +2995 -0
  295. package/packages/layout-footer/src/layout-footer.ts +4 -3
  296. package/packages/layout-header/src/layout-header.ts +2 -1
  297. package/packages/optgroup/index.ts +16 -0
  298. package/packages/option/index.ts +16 -0
  299. package/packages/pager/index.ts +16 -0
  300. package/packages/pager/src/pager.ts +743 -0
  301. package/packages/password-input/index.ts +16 -0
  302. package/packages/password-input/src/password-input.ts +427 -0
  303. package/packages/pulldown/src/pulldown.ts +5 -1
  304. package/packages/select/index.ts +16 -0
  305. package/packages/select/src/optgroup.ts +107 -0
  306. package/packages/select/src/option-info.ts +20 -0
  307. package/packages/select/src/option.ts +103 -0
  308. package/packages/select/src/select.ts +1325 -0
  309. package/packages/select/src/util.ts +46 -0
  310. package/packages/tab-pane/index.ts +16 -0
  311. package/packages/tabs/index.ts +16 -0
  312. package/packages/tabs/src/tab-pane.ts +136 -0
  313. package/packages/tabs/src/tabs.ts +630 -0
  314. package/packages/tabs/src/util.ts +21 -0
  315. package/types/components/carousel.d.ts +5 -0
  316. package/types/components/icon-picker.d.ts +4 -0
  317. package/types/components/input.d.ts +9 -1
  318. package/types/components/optgroup.d.ts +10 -4
  319. package/types/components/tabs.d.ts +4 -0
  320. /package/es/icon/style/{iconfont.1725630285930.ttf → iconfont.1725723159302.ttf} +0 -0
  321. /package/es/icon/style/{iconfont.1725630285930.woff → iconfont.1725723159302.woff} +0 -0
  322. /package/es/icon/style/{iconfont.1725630285930.woff2 → iconfont.1725723159302.woff2} +0 -0
  323. /package/es/{iconfont.1725630285930.ttf → iconfont.1725723159302.ttf} +0 -0
  324. /package/es/{iconfont.1725630285930.woff → iconfont.1725723159302.woff} +0 -0
  325. /package/es/{iconfont.1725630285930.woff2 → iconfont.1725723159302.woff2} +0 -0
  326. /package/lib/icon/style/{iconfont.1725630285930.ttf → iconfont.1725723159302.ttf} +0 -0
  327. /package/lib/icon/style/{iconfont.1725630285930.woff → iconfont.1725723159302.woff} +0 -0
  328. /package/lib/icon/style/{iconfont.1725630285930.woff2 → iconfont.1725723159302.woff2} +0 -0
  329. /package/lib/{iconfont.1725630285930.ttf → iconfont.1725723159302.ttf} +0 -0
  330. /package/lib/{iconfont.1725630285930.woff → iconfont.1725723159302.woff} +0 -0
  331. /package/lib/{iconfont.1725630285930.woff2 → iconfont.1725723159302.woff2} +0 -0
@@ -0,0 +1,630 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _comp = require("../../ui/src/comp");
8
+ var _xeUtils = _interopRequireDefault(require("xe-utils"));
9
+ var _ui = require("../../ui");
10
+ var _vn = require("../../ui/src/vn");
11
+ var _dom = require("../..//ui/src/dom");
12
+ var _log = require("../../ui/src/log");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ var _default2 = exports.default = (0, _comp.defineVxeComponent)({
15
+ name: 'VxeTabs',
16
+ props: {
17
+ value: [String, Number, Boolean],
18
+ options: Array,
19
+ height: [String, Number],
20
+ destroyOnClose: Boolean,
21
+ titleWidth: [String, Number],
22
+ titleAlign: [String, Number],
23
+ type: String,
24
+ showClose: Boolean,
25
+ padding: {
26
+ type: Boolean,
27
+ default: function _default() {
28
+ return (0, _ui.getConfig)().tabs.padding;
29
+ }
30
+ },
31
+ trigger: String,
32
+ beforeChangeMethod: Function,
33
+ beforeCloseMethod: Function
34
+ },
35
+ inject: {
36
+ $xeParentTabs: {
37
+ from: '$xeTabs',
38
+ default: null
39
+ }
40
+ },
41
+ provide: function provide() {
42
+ var $xeTabs = this;
43
+ return {
44
+ $xeTabs: $xeTabs
45
+ };
46
+ },
47
+ data: function data() {
48
+ var xID = _xeUtils.default.uniqueId();
49
+ var reactData = {
50
+ staticTabs: [],
51
+ activeName: null,
52
+ initNames: [],
53
+ lintLeft: 0,
54
+ lintWidth: 0,
55
+ isTabOver: false,
56
+ resizeFlag: 1
57
+ };
58
+ var internalData = {
59
+ slTimeout: undefined
60
+ };
61
+ return {
62
+ xID: xID,
63
+ reactData: reactData,
64
+ internalData: internalData
65
+ };
66
+ },
67
+ computed: Object.assign(Object.assign({}, {}), {
68
+ computeParentResizeFlag: function computeParentResizeFlag() {
69
+ var $xeTabs = this;
70
+ var $xeParentTabs = $xeTabs.$xeParentTabs;
71
+ return $xeParentTabs ? $xeParentTabs.reactData.resizeFlag : null;
72
+ },
73
+ computeTabOptions: function computeTabOptions() {
74
+ var $xeTabs = this;
75
+ var props = $xeTabs;
76
+ var options = props.options;
77
+ return (options || []).filter(function (item) {
78
+ return $xeTabs.handleFilterTab(item);
79
+ });
80
+ },
81
+ computeTabStaticOptions: function computeTabStaticOptions() {
82
+ var $xeTabs = this;
83
+ var reactData = $xeTabs.reactData;
84
+ var staticTabs = reactData.staticTabs;
85
+ return staticTabs.filter(function (item) {
86
+ return $xeTabs.handleFilterTab(item);
87
+ });
88
+ }
89
+ }),
90
+ methods: {
91
+ //
92
+ // Method
93
+ //
94
+ dispatchEvent: function dispatchEvent(type, params, evnt) {
95
+ var $xeTabs = this;
96
+ $xeTabs.$emit(type, (0, _ui.createEvent)(evnt, {
97
+ $tabs: $xeTabs
98
+ }, params));
99
+ },
100
+ prev: function prev() {
101
+ var $xeTabs = this;
102
+ return $xeTabs.handlePrevNext(false);
103
+ },
104
+ next: function next() {
105
+ var $xeTabs = this;
106
+ return $xeTabs.handlePrevNext(true);
107
+ },
108
+ prevTab: function prevTab() {
109
+ var $xeTabs = this;
110
+ if (process.env.NODE_ENV === 'development') {
111
+ (0, _log.warnLog)('vxe.error.delFunc', ['prevTab', 'prev']);
112
+ }
113
+ return $xeTabs.prev();
114
+ },
115
+ nextTab: function nextTab() {
116
+ var $xeTabs = this;
117
+ if (process.env.NODE_ENV === 'development') {
118
+ (0, _log.warnLog)('vxe.error.delFunc', ['nextTab', 'next']);
119
+ }
120
+ return $xeTabs.next();
121
+ },
122
+ handleFilterTab: function handleFilterTab(item) {
123
+ var permissionCode = item.permissionCode;
124
+ if (permissionCode) {
125
+ if (!_ui.permission.checkVisible(permissionCode)) {
126
+ return false;
127
+ }
128
+ }
129
+ return true;
130
+ },
131
+ callSlot: function callSlot(slotFunc, params) {
132
+ var $xeTabs = this;
133
+ var slots = $xeTabs.$scopedSlots;
134
+ if (slotFunc) {
135
+ if (_xeUtils.default.isString(slotFunc)) {
136
+ slotFunc = slots[slotFunc] || null;
137
+ }
138
+ if (_xeUtils.default.isFunction(slotFunc)) {
139
+ return (0, _vn.getSlotVNs)(slotFunc(params));
140
+ }
141
+ }
142
+ return [];
143
+ },
144
+ updateTabStyle: function updateTabStyle() {
145
+ var $xeTabs = this;
146
+ var props = $xeTabs;
147
+ var reactData = $xeTabs.reactData;
148
+ $xeTabs.$nextTick(function () {
149
+ var type = props.type;
150
+ var activeName = reactData.activeName;
151
+ var tabOptions = $xeTabs.computeTabOptions;
152
+ var tabStaticOptions = $xeTabs.computeTabStaticOptions;
153
+ var headerWrapperEl = $xeTabs.$refs.refHeadWrapperElem;
154
+ var lintWidth = 0;
155
+ var lintLeft = 0;
156
+ var isOver = false;
157
+ if (headerWrapperEl) {
158
+ var index = _xeUtils.default.findIndexOf(tabStaticOptions.length ? tabStaticOptions : tabOptions, function (item) {
159
+ return item.name === activeName;
160
+ });
161
+ var children = headerWrapperEl.children,
162
+ scrollWidth = headerWrapperEl.scrollWidth,
163
+ clientWidth = headerWrapperEl.clientWidth;
164
+ isOver = scrollWidth !== clientWidth;
165
+ if (index > -1) {
166
+ var tabEl = children[index];
167
+ var tabWidth = tabEl.clientWidth;
168
+ if (type) {
169
+ if (type === 'card') {
170
+ lintWidth = tabWidth + 2;
171
+ lintLeft = tabEl.offsetLeft;
172
+ } else if (type === 'border-card') {
173
+ lintWidth = tabWidth + 2;
174
+ lintLeft = tabEl.offsetLeft - 1;
175
+ }
176
+ } else {
177
+ lintWidth = Math.max(4, Math.floor(tabWidth * 0.6));
178
+ lintLeft = tabEl.offsetLeft + Math.floor((tabWidth - lintWidth) / 2);
179
+ }
180
+ }
181
+ }
182
+ reactData.lintLeft = lintLeft;
183
+ reactData.lintWidth = lintWidth;
184
+ reactData.isTabOver = isOver;
185
+ });
186
+ },
187
+ addInitName: function addInitName(name, evnt) {
188
+ var $xeTabs = this;
189
+ var reactData = $xeTabs.reactData;
190
+ var initNames = reactData.initNames;
191
+ if (name && !initNames.includes(name)) {
192
+ $xeTabs.dispatchEvent('tab-load', {
193
+ name: name
194
+ }, evnt);
195
+ initNames.push(name);
196
+ return true;
197
+ }
198
+ return false;
199
+ },
200
+ initDefaultName: function initDefaultName(list) {
201
+ var $xeTabs = this;
202
+ var props = $xeTabs;
203
+ var reactData = $xeTabs.reactData;
204
+ var activeName = null;
205
+ if (list && list.length) {
206
+ var validVal = false;
207
+ activeName = props.value;
208
+ list.forEach(function (item) {
209
+ if (activeName === item.name) {
210
+ validVal = true;
211
+ }
212
+ if (item && item.preload) {
213
+ $xeTabs.addInitName(item.name, null);
214
+ }
215
+ });
216
+ if (!validVal) {
217
+ activeName = list[0].name;
218
+ $xeTabs.addInitName(activeName, null);
219
+ $xeTabs.$emit('input', activeName);
220
+ }
221
+ }
222
+ reactData.activeName = activeName;
223
+ },
224
+ clickEvent: function clickEvent(evnt, item) {
225
+ var $xeTabs = this;
226
+ var props = $xeTabs;
227
+ var reactData = $xeTabs.reactData;
228
+ var trigger = props.trigger;
229
+ var beforeMethod = props.beforeChangeMethod || (0, _ui.getConfig)().tabs.beforeChangeMethod;
230
+ var activeName = reactData.activeName;
231
+ var name = item.name;
232
+ if (trigger === 'manual') {
233
+ $xeTabs.dispatchEvent('tab-click', {
234
+ name: name
235
+ }, evnt);
236
+ return;
237
+ }
238
+ var value = name;
239
+ reactData.activeName = name;
240
+ $xeTabs.$emit('input', value);
241
+ $xeTabs.dispatchEvent('tab-click', {
242
+ name: name
243
+ }, evnt);
244
+ $xeTabs.addInitName(name, evnt);
245
+ if (name !== activeName) {
246
+ if (!beforeMethod || beforeMethod({
247
+ $tabs: $xeTabs,
248
+ name: name,
249
+ oldName: activeName,
250
+ newName: name
251
+ })) {
252
+ $xeTabs.dispatchEvent('change', {
253
+ value: value,
254
+ name: name,
255
+ oldName: activeName,
256
+ newName: name
257
+ }, evnt);
258
+ } else {
259
+ $xeTabs.dispatchEvent('tab-change-fail', {
260
+ value: value,
261
+ name: name,
262
+ oldName: activeName,
263
+ newName: name
264
+ }, evnt);
265
+ }
266
+ }
267
+ },
268
+ handleCloseTabEvent: function handleCloseTabEvent(evnt, item, index, list) {
269
+ var $xeTabs = this;
270
+ var props = $xeTabs;
271
+ var reactData = $xeTabs.reactData;
272
+ evnt.stopPropagation();
273
+ var activeName = reactData.activeName;
274
+ var beforeMethod = props.beforeCloseMethod || (0, _ui.getConfig)().tabs.beforeCloseMethod;
275
+ var name = item.name;
276
+ var value = activeName;
277
+ var nextName = value;
278
+ if (activeName === name) {
279
+ var nextItem = index < list.length - 1 ? list[index + 1] : list[index - 1];
280
+ nextName = nextItem ? nextItem.name : null;
281
+ }
282
+ if (!beforeMethod || beforeMethod({
283
+ $tabs: $xeTabs,
284
+ value: value,
285
+ name: name,
286
+ nextName: nextName
287
+ })) {
288
+ $xeTabs.dispatchEvent('tab-close', {
289
+ value: value,
290
+ name: name,
291
+ nextName: nextName
292
+ }, evnt);
293
+ } else {
294
+ $xeTabs.dispatchEvent('tab-close-fail', {
295
+ value: value,
296
+ name: name,
297
+ nextName: nextName
298
+ }, evnt);
299
+ }
300
+ },
301
+ startScrollAnimation: function startScrollAnimation(offsetPos, offsetSize) {
302
+ var $xeTabs = this;
303
+ var internalData = $xeTabs.internalData;
304
+ var slTimeout = internalData.slTimeout;
305
+ var offsetLeft = offsetSize;
306
+ var scrollCount = 6;
307
+ var delayNum = 35;
308
+ if (slTimeout) {
309
+ clearTimeout(slTimeout);
310
+ internalData.slTimeout = undefined;
311
+ }
312
+ var _scrollAnimate = function scrollAnimate() {
313
+ var headerWrapperEl = $xeTabs.$refs.refHeadWrapperElem;
314
+ if (scrollCount > 0) {
315
+ scrollCount--;
316
+ if (headerWrapperEl) {
317
+ var clientWidth = headerWrapperEl.clientWidth,
318
+ scrollWidth = headerWrapperEl.scrollWidth,
319
+ scrollLeft = headerWrapperEl.scrollLeft;
320
+ offsetLeft = Math.floor(offsetLeft / 2);
321
+ if (offsetPos > 0) {
322
+ if (clientWidth + scrollLeft < scrollWidth) {
323
+ headerWrapperEl.scrollLeft += offsetLeft;
324
+ delayNum -= 4;
325
+ internalData.slTimeout = setTimeout(_scrollAnimate, delayNum);
326
+ }
327
+ } else {
328
+ if (scrollLeft > 0) {
329
+ headerWrapperEl.scrollLeft -= offsetLeft;
330
+ delayNum -= 4;
331
+ internalData.slTimeout = setTimeout(_scrollAnimate, delayNum);
332
+ }
333
+ }
334
+ $xeTabs.updateTabStyle();
335
+ }
336
+ }
337
+ };
338
+ _scrollAnimate();
339
+ },
340
+ handleScrollToLeft: function handleScrollToLeft(offsetPos) {
341
+ var $xeTabs = this;
342
+ var headerWrapperEl = $xeTabs.$refs.refHeadWrapperElem;
343
+ if (headerWrapperEl) {
344
+ var offsetSize = Math.floor(headerWrapperEl.clientWidth * 0.75);
345
+ $xeTabs.startScrollAnimation(offsetPos, offsetSize);
346
+ }
347
+ },
348
+ scrollLeftEvent: function scrollLeftEvent() {
349
+ var $xeTabs = this;
350
+ $xeTabs.handleScrollToLeft(-1);
351
+ },
352
+ scrollRightEvent: function scrollRightEvent() {
353
+ var $xeTabs = this;
354
+ $xeTabs.handleScrollToLeft(1);
355
+ },
356
+ scrollToTab: function scrollToTab(name) {
357
+ var $xeTabs = this;
358
+ var tabOptions = $xeTabs.computeTabOptions;
359
+ var tabStaticOptions = $xeTabs.computeTabStaticOptions;
360
+ return $xeTabs.$nextTick().then(function () {
361
+ var headerWrapperEl = $xeTabs.$refs.refHeadWrapperElem;
362
+ if (headerWrapperEl) {
363
+ var index = _xeUtils.default.findIndexOf(tabStaticOptions.length ? tabStaticOptions : tabOptions, function (item) {
364
+ return item.name === name;
365
+ });
366
+ if (index > -1) {
367
+ var scrollLeft = headerWrapperEl.scrollLeft,
368
+ clientWidth = headerWrapperEl.clientWidth,
369
+ children = headerWrapperEl.children;
370
+ var tabEl = children[index];
371
+ if (tabEl) {
372
+ var tabOffsetLeft = tabEl.offsetLeft;
373
+ var tabClientWidth = tabEl.clientWidth;
374
+ // 如果右侧被挡
375
+ var overSize = tabOffsetLeft + tabClientWidth - (scrollLeft + clientWidth);
376
+ if (overSize > 0) {
377
+ headerWrapperEl.scrollLeft += overSize;
378
+ }
379
+ // 如果左侧被挡,优先
380
+ if (tabOffsetLeft < scrollLeft) {
381
+ headerWrapperEl.scrollLeft = tabOffsetLeft;
382
+ }
383
+ }
384
+ }
385
+ $xeTabs.updateTabStyle();
386
+ }
387
+ });
388
+ },
389
+ handlePrevNext: function handlePrevNext(isNext) {
390
+ var $xeTabs = this;
391
+ var reactData = $xeTabs.reactData;
392
+ var activeName = reactData.activeName;
393
+ var tabOptions = $xeTabs.computeTabOptions;
394
+ var tabStaticOptions = $xeTabs.computeTabStaticOptions;
395
+ var list = tabStaticOptions.length ? tabStaticOptions : tabOptions;
396
+ var index = _xeUtils.default.findIndexOf(list, function (item) {
397
+ return item.name === activeName;
398
+ });
399
+ if (index > -1) {
400
+ var item = null;
401
+ if (isNext) {
402
+ if (index < list.length - 1) {
403
+ item = list[index + 1];
404
+ }
405
+ } else {
406
+ if (index > 0) {
407
+ item = list[index - 1];
408
+ }
409
+ }
410
+ if (item) {
411
+ var name = item.name;
412
+ var value = name;
413
+ reactData.activeName = name;
414
+ $xeTabs.$emit('input', value);
415
+ $xeTabs.addInitName(name, null);
416
+ }
417
+ }
418
+ return $xeTabs.$nextTick();
419
+ },
420
+ //
421
+ // Render
422
+ //
423
+ renderTabHeader: function renderTabHeader(h, tabList) {
424
+ var $xeTabs = this;
425
+ var props = $xeTabs;
426
+ var slots = $xeTabs.$scopedSlots;
427
+ var reactData = $xeTabs.reactData;
428
+ var type = props.type,
429
+ allTitleWidth = props.titleWidth,
430
+ allTitleAlign = props.titleAlign,
431
+ showClose = props.showClose;
432
+ var activeName = reactData.activeName,
433
+ lintLeft = reactData.lintLeft,
434
+ lintWidth = reactData.lintWidth,
435
+ isTabOver = reactData.isTabOver;
436
+ var extraSlot = slots.extra;
437
+ return h('div', {
438
+ class: 'vxe-tabs-header'
439
+ }, [isTabOver ? h('div', {
440
+ class: 'vxe-tabs-header--bar vxe-tabs-header--left-bar',
441
+ on: {
442
+ click: $xeTabs.scrollLeftEvent
443
+ }
444
+ }, [h('span', {
445
+ class: (0, _ui.getIcon)().TABS_TAB_BUTTON_LEFT
446
+ })]) : (0, _ui.renderEmptyElement)($xeTabs), h('div', {
447
+ class: 'vxe-tabs-header--wrapper'
448
+ }, [h('div', {
449
+ ref: 'refHeadWrapperElem',
450
+ class: 'vxe-tabs-header--item-wrapper'
451
+ }, tabList.map(function (item, index) {
452
+ var title = item.title,
453
+ titleWidth = item.titleWidth,
454
+ titleAlign = item.titleAlign,
455
+ icon = item.icon,
456
+ name = item.name,
457
+ slots = item.slots;
458
+ var tabSlot = slots ? slots.tab : null;
459
+ var itemWidth = titleWidth || allTitleWidth;
460
+ var itemAlign = titleAlign || allTitleAlign;
461
+ return h('div', {
462
+ key: "".concat(name),
463
+ class: ['vxe-tabs-header--item', itemAlign ? "align--".concat(itemAlign) : '', {
464
+ 'is--active': activeName === name
465
+ }],
466
+ style: itemWidth ? {
467
+ width: (0, _dom.toCssUnit)(itemWidth)
468
+ } : {},
469
+ on: {
470
+ click: function click(evnt) {
471
+ $xeTabs.clickEvent(evnt, item);
472
+ }
473
+ }
474
+ }, [h('div', {
475
+ class: 'vxe-tabs-header--item-inner'
476
+ }, [h('div', {
477
+ class: 'vxe-tabs-header--item-content'
478
+ }, [icon ? h('span', {
479
+ class: 'vxe-tabs-header--item-icon'
480
+ }, [h('i', {
481
+ class: icon
482
+ })]) : (0, _ui.renderEmptyElement)($xeTabs), h('span', {
483
+ class: 'vxe-tabs-header--item-name'
484
+ }, tabSlot ? $xeTabs.callSlot(tabSlot, {
485
+ name: name,
486
+ title: title
487
+ }) : "".concat(title))]), showClose ? h('div', {
488
+ class: 'vxe-tabs-header--close-btn',
489
+ on: {
490
+ click: function click(evnt) {
491
+ $xeTabs.handleCloseTabEvent(evnt, item, index, tabList);
492
+ }
493
+ }
494
+ }, [h('i', {
495
+ class: (0, _ui.getIcon)().TABS_TAB_CLOSE
496
+ })]) : (0, _ui.renderEmptyElement)($xeTabs)])]);
497
+ }).concat([h('span', {
498
+ key: 'line',
499
+ class: "vxe-tabs-header--active-line type--".concat(type || 'default'),
500
+ style: {
501
+ left: "".concat(lintLeft, "px"),
502
+ width: "".concat(lintWidth, "px")
503
+ }
504
+ })]))]), isTabOver ? h('div', {
505
+ class: 'vxe-tabs-header--bar vxe-tabs-header--right-bar',
506
+ on: {
507
+ click: $xeTabs.scrollRightEvent
508
+ }
509
+ }, [h('span', {
510
+ class: (0, _ui.getIcon)().TABS_TAB_BUTTON_RIGHT
511
+ })]) : (0, _ui.renderEmptyElement)($xeTabs), extraSlot ? h('div', {
512
+ class: 'vxe-tabs-header--extra'
513
+ }, (0, _vn.getSlotVNs)(extraSlot({}))) : (0, _ui.renderEmptyElement)($xeTabs)]);
514
+ },
515
+ renderTabPane: function renderTabPane(h, item) {
516
+ var $xeTabs = this;
517
+ var reactData = $xeTabs.reactData;
518
+ var initNames = reactData.initNames,
519
+ activeName = reactData.activeName;
520
+ var name = item.name,
521
+ slots = item.slots;
522
+ var defaultSlot = slots ? slots.default : null;
523
+ return name && initNames.includes(name) ? h('div', {
524
+ key: name,
525
+ class: ['vxe-tabs-pane--item', {
526
+ 'is--visible': activeName === name,
527
+ 'has--content': !!defaultSlot
528
+ }]
529
+ }, defaultSlot ? $xeTabs.callSlot(defaultSlot, {
530
+ name: name
531
+ }) : []) : (0, _ui.renderEmptyElement)($xeTabs);
532
+ },
533
+ renderTabContent: function renderTabContent(h, tabList) {
534
+ var $xeTabs = this;
535
+ var props = $xeTabs;
536
+ var reactData = $xeTabs.reactData;
537
+ var destroyOnClose = props.destroyOnClose;
538
+ var activeName = reactData.activeName;
539
+ var activeDefaultTab = tabList.find(function (item) {
540
+ return item.name === activeName;
541
+ });
542
+ if (destroyOnClose) {
543
+ return [activeDefaultTab ? $xeTabs.renderTabPane(h, activeDefaultTab) : (0, _ui.renderEmptyElement)($xeTabs)];
544
+ }
545
+ return tabList.map(function (item) {
546
+ return $xeTabs.renderTabPane(h, item);
547
+ });
548
+ },
549
+ renderVN: function renderVN(h) {
550
+ var $xeTabs = this;
551
+ var props = $xeTabs;
552
+ var slots = $xeTabs.$scopedSlots;
553
+ var type = props.type,
554
+ height = props.height,
555
+ padding = props.padding,
556
+ trigger = props.trigger;
557
+ var tabOptions = $xeTabs.computeTabOptions;
558
+ var tabStaticOptions = $xeTabs.computeTabStaticOptions;
559
+ var defaultSlot = slots.default;
560
+ var tabList = defaultSlot ? tabStaticOptions : tabOptions;
561
+ return h('div', {
562
+ ref: 'refElem',
563
+ class: ['vxe-tabs', "vxe-tabs--".concat(type || 'default'), "trigger--".concat(trigger === 'manual' ? 'trigger' : 'default'), {
564
+ 'is--padding': padding,
565
+ 'is--height': height
566
+ }],
567
+ style: height ? {
568
+ height: (0, _dom.toCssUnit)(height)
569
+ } : {}
570
+ }, [h('div', {
571
+ class: 'vxe-tabs-slots'
572
+ }, defaultSlot ? defaultSlot({}) : []), $xeTabs.renderTabHeader(h, tabList), h('div', {
573
+ class: 'vxe-tabs-pane'
574
+ }, $xeTabs.renderTabContent(h, tabList))]);
575
+ }
576
+ },
577
+ watch: {
578
+ value: function value(val) {
579
+ var $xeTabs = this;
580
+ var reactData = $xeTabs.reactData;
581
+ $xeTabs.addInitName(val, null);
582
+ reactData.activeName = val;
583
+ },
584
+ 'reactData.activeName': function reactDataActiveName(val) {
585
+ var $xeTabs = this;
586
+ var reactData = $xeTabs.reactData;
587
+ $xeTabs.scrollToTab(val);
588
+ $xeTabs.$nextTick(function () {
589
+ reactData.resizeFlag++;
590
+ });
591
+ },
592
+ options: function options() {
593
+ var $xeTabs = this;
594
+ var props = $xeTabs;
595
+ $xeTabs.initDefaultName(props.options);
596
+ $xeTabs.updateTabStyle();
597
+ },
598
+ 'reactData.staticTabs': function reactDataStaticTabs() {
599
+ var $xeTabs = this;
600
+ var reactData = $xeTabs.reactData;
601
+ $xeTabs.initDefaultName(reactData.staticTabs);
602
+ $xeTabs.updateTabStyle();
603
+ },
604
+ computeParentResizeFlag: function computeParentResizeFlag() {
605
+ var $xeTabs = this;
606
+ $xeTabs.$nextTick(function () {
607
+ $xeTabs.updateTabStyle();
608
+ });
609
+ }
610
+ },
611
+ created: function created() {
612
+ var $xeTabs = this;
613
+ var props = $xeTabs;
614
+ var reactData = $xeTabs.reactData;
615
+ $xeTabs.addInitName(props.value, null);
616
+ $xeTabs.initDefaultName(reactData.staticTabs.length ? reactData.staticTabs : props.options);
617
+ },
618
+ mounted: function mounted() {
619
+ var $xeTabs = this;
620
+ $xeTabs.updateTabStyle();
621
+ _ui.globalEvents.on($xeTabs, 'resize', $xeTabs.updateTabStyle);
622
+ },
623
+ beforeDestroy: function beforeDestroy() {
624
+ var $xeTabs = this;
625
+ _ui.globalEvents.off($xeTabs, 'resize');
626
+ },
627
+ render: function render(h) {
628
+ return this.renderVN(h);
629
+ }
630
+ });
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_dom=require("../..//ui/src/dom"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default2=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTabs",props:{value:[String,Number,Boolean],options:Array,height:[String,Number],destroyOnClose:Boolean,titleWidth:[String,Number],titleAlign:[String,Number],type:String,showClose:Boolean,padding:{type:Boolean,default:function(){return(0,_ui.getConfig)().tabs.padding}},trigger:String,beforeChangeMethod:Function,beforeCloseMethod:Function},inject:{$xeParentTabs:{from:"$xeTabs",default:null}},provide:function(){return{$xeTabs:this}},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:{staticTabs:[],activeName:null,initNames:[],lintLeft:0,lintWidth:0,isTabOver:!1,resizeFlag:1},internalData:{slTimeout:void 0}}},computed:Object.assign(Object.assign({},{}),{computeParentResizeFlag:function(){var e=this.$xeParentTabs;return e?e.reactData.resizeFlag:null},computeTabOptions:function(){var t=this;return(t.options||[]).filter(function(e){return t.handleFilterTab(e)})},computeTabStaticOptions:function(){var t=this;return t.reactData.staticTabs.filter(function(e){return t.handleFilterTab(e)})}}),methods:{dispatchEvent:function(e,t,a){this.$emit(e,(0,_ui.createEvent)(a,{$tabs:this},t))},prev:function(){return this.handlePrevNext(!1)},next:function(){return this.handlePrevNext(!0)},prevTab:function(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["prevTab","prev"]),this.prev()},nextTab:function(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["nextTab","next"]),this.next()},handleFilterTab:function(e){e=e.permissionCode;return!(e&&!_ui.permission.checkVisible(e))},callSlot:function(e,t){var a=this.$scopedSlots;return e&&(_xeUtils.default.isString(e)&&(e=a[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},updateTabStyle:function(){var o=this,c=o,u=o.reactData;o.$nextTick(function(){var e=c.type,t=u.activeName,a=o.computeTabOptions,n=o.computeTabStaticOptions,i=o.$refs.refHeadWrapperElem,r=0,s=0,l=!1;i&&(n=_xeUtils.default.findIndexOf(n.length?n:a,function(e){return e.name===t}),a=i.children,l=i.scrollWidth!==i.clientWidth,-1<n)&&(a=(i=a[n]).clientWidth,e?"card"===e?(r=a+2,s=i.offsetLeft):"border-card"===e&&(r=a+2,s=i.offsetLeft-1):(r=Math.max(4,Math.floor(.6*a)),s=i.offsetLeft+Math.floor((a-r)/2))),u.lintLeft=s,u.lintWidth=r,u.isTabOver=l})},addInitName:function(e,t){var a=this.reactData.initNames;return!(!e||a.includes(e)||(this.dispatchEvent("tab-load",{name:e},t),a.push(e),0))},initDefaultName:function(e){var t,a=this,n=a.reactData,i=null;e&&e.length&&(t=!1,i=a.value,e.forEach(function(e){i===e.name&&(t=!0),e&&e.preload&&a.addInitName(e.name,null)}),t||(i=e[0].name,a.addInitName(i,null),a.$emit("input",i))),n.activeName=i},clickEvent:function(e,t){var a=this,n=a.reactData,i=a.trigger,r=a.beforeChangeMethod||(0,_ui.getConfig)().tabs.beforeChangeMethod,s=n.activeName,t=t.name;"manual"===i?a.dispatchEvent("tab-click",{name:t},e):(n.activeName=i=t,a.$emit("input",i),a.dispatchEvent("tab-click",{name:t},e),a.addInitName(t,e),t!==s&&(!r||r({$tabs:a,name:t,oldName:s,newName:t})?a.dispatchEvent("change",{value:i,name:t,oldName:s,newName:t},e):a.dispatchEvent("tab-change-fail",{value:i,name:t,oldName:s,newName:t},e)))},handleCloseTabEvent:function(e,t,a,n){var i=this,r=i,s=i.reactData,s=(e.stopPropagation(),s.activeName),r=r.beforeCloseMethod||(0,_ui.getConfig)().tabs.beforeCloseMethod,t=t.name,l=s,o=l;s===t&&(o=(s=a<n.length-1?n[a+1]:n[a-1])?s.name:null),!r||r({$tabs:i,value:l,name:t,nextName:o})?i.dispatchEvent("tab-close",{value:l,name:t,nextName:o},e):i.dispatchEvent("tab-close-fail",{value:l,name:t,nextName:o},e)},startScrollAnimation:function(i,e){var r=this,s=r.internalData,t=s.slTimeout,l=e,o=6,c=35,u=(t&&(clearTimeout(t),s.slTimeout=void 0),function(){var e,t,a,n=r.$refs.refHeadWrapperElem;0<o&&(o--,n)&&(e=n.clientWidth,t=n.scrollWidth,a=n.scrollLeft,l=Math.floor(l/2),0<i?e+a<t&&(n.scrollLeft+=l,c-=4,s.slTimeout=setTimeout(u,c)):0<a&&(n.scrollLeft-=l,c-=4,s.slTimeout=setTimeout(u,c)),r.updateTabStyle())});u()},handleScrollToLeft:function(e){var t=this.$refs.refHeadWrapperElem;t&&(t=Math.floor(.75*t.clientWidth),this.startScrollAnimation(e,t))},scrollLeftEvent:function(){this.handleScrollToLeft(-1)},scrollRightEvent:function(){this.handleScrollToLeft(1)},scrollToTab:function(r){var s=this,l=s.computeTabOptions,o=s.computeTabStaticOptions;return s.$nextTick().then(function(){var e,t,a,n,i=s.$refs.refHeadWrapperElem;i&&(-1<(n=_xeUtils.default.findIndexOf(o.length?o:l,function(e){return e.name===r}))&&(e=i.scrollLeft,t=i.clientWidth,n=i.children[n])&&(0<(n=(a=n.offsetLeft)+n.clientWidth-(e+t))&&(i.scrollLeft+=n),a<e)&&(i.scrollLeft=a),s.updateTabStyle())})},handlePrevNext:function(e){var t,a=this,n=a.reactData,i=n.activeName,r=a.computeTabStaticOptions,r=r.length?r:a.computeTabOptions,s=_xeUtils.default.findIndexOf(r,function(e){return e.name===i});return-1<s&&(t=null,e?s<r.length-1&&(t=r[s+1]):0<s&&(t=r[s-1]),t)&&(e=t.name,n.activeName=e,a.$emit("input",e),a.addInitName(e,null)),a.$nextTick()},renderTabHeader:function(o,c){var u=this,e=u.$scopedSlots,t=u.reactData,a=u.type,d=u.titleWidth,f=u.titleAlign,h=u.showClose,m=t.activeName,n=t.lintLeft,i=t.lintWidth,t=t.isTabOver,e=e.extra;return o("div",{class:"vxe-tabs-header"},[t?o("div",{class:"vxe-tabs-header--bar vxe-tabs-header--left-bar",on:{click:u.scrollLeftEvent}},[o("span",{class:(0,_ui.getIcon)().TABS_TAB_BUTTON_LEFT})]):(0,_ui.renderEmptyElement)(u),o("div",{class:"vxe-tabs-header--wrapper"},[o("div",{ref:"refHeadWrapperElem",class:"vxe-tabs-header--item-wrapper"},c.map(function(t,a){var e=t.title,n=t.icon,i=t.name,r=t.slots,r=r?r.tab:null,s=t.titleWidth||d,l=t.titleAlign||f;return o("div",{key:"".concat(i),class:["vxe-tabs-header--item",l?"align--".concat(l):"",{"is--active":m===i}],style:s?{width:(0,_dom.toCssUnit)(s)}:{},on:{click:function(e){u.clickEvent(e,t)}}},[o("div",{class:"vxe-tabs-header--item-inner"},[o("div",{class:"vxe-tabs-header--item-content"},[n?o("span",{class:"vxe-tabs-header--item-icon"},[o("i",{class:n})]):(0,_ui.renderEmptyElement)(u),o("span",{class:"vxe-tabs-header--item-name"},r?u.callSlot(r,{name:i,title:e}):"".concat(e))]),h?o("div",{class:"vxe-tabs-header--close-btn",on:{click:function(e){u.handleCloseTabEvent(e,t,a,c)}}},[o("i",{class:(0,_ui.getIcon)().TABS_TAB_CLOSE})]):(0,_ui.renderEmptyElement)(u)])])}).concat([o("span",{key:"line",class:"vxe-tabs-header--active-line type--".concat(a||"default"),style:{left:"".concat(n,"px"),width:"".concat(i,"px")}})]))]),t?o("div",{class:"vxe-tabs-header--bar vxe-tabs-header--right-bar",on:{click:u.scrollRightEvent}},[o("span",{class:(0,_ui.getIcon)().TABS_TAB_BUTTON_RIGHT})]):(0,_ui.renderEmptyElement)(u),e?o("div",{class:"vxe-tabs-header--extra"},(0,_vn.getSlotVNs)(e({}))):(0,_ui.renderEmptyElement)(u)])},renderTabPane:function(e,t){var a=this.reactData,n=a.initNames,a=a.activeName,i=t.name,t=t.slots,t=t?t.default:null;return i&&n.includes(i)?e("div",{key:i,class:["vxe-tabs-pane--item",{"is--visible":a===i,"has--content":!!t}]},t?this.callSlot(t,{name:i}):[]):(0,_ui.renderEmptyElement)(this)},renderTabContent:function(t,e){var a=this,n=a.reactData,i=a.destroyOnClose,r=n.activeName,n=e.find(function(e){return e.name===r});return i?[n?a.renderTabPane(t,n):(0,_ui.renderEmptyElement)(a)]:e.map(function(e){return a.renderTabPane(t,e)})},renderVN:function(e){var t=this,a=t.$scopedSlots,n=t.type,i=t.height,r=t.padding,s=t.trigger,a=a.default,l=a?t.computeTabStaticOptions:t.computeTabOptions;return e("div",{ref:"refElem",class:["vxe-tabs","vxe-tabs--".concat(n||"default"),"trigger--".concat("manual"===s?"trigger":"default"),{"is--padding":r,"is--height":i}],style:i?{height:(0,_dom.toCssUnit)(i)}:{}},[e("div",{class:"vxe-tabs-slots"},a?a({}):[]),t.renderTabHeader(e,l),e("div",{class:"vxe-tabs-pane"},t.renderTabContent(e,l))])}},watch:{value:function(e){var t=this.reactData;this.addInitName(e,null),t.activeName=e},"reactData.activeName":function(e){var t=this.reactData;this.scrollToTab(e),this.$nextTick(function(){t.resizeFlag++})},options:function(){this.initDefaultName(this.options),this.updateTabStyle()},"reactData.staticTabs":function(){var e=this.reactData;this.initDefaultName(e.staticTabs),this.updateTabStyle()},computeParentResizeFlag:function(){var e=this;e.$nextTick(function(){e.updateTabStyle()})}},created:function(){var e=this.reactData;this.addInitName(this.value,null),this.initDefaultName(e.staticTabs.length?e.staticTabs:this.options)},mounted:function(){this.updateTabStyle(),_ui.globalEvents.on(this,"resize",this.updateTabStyle)},beforeDestroy:function(){_ui.globalEvents.off(this,"resize")},render:function(e){return this.renderVN(e)}});
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.assembleAnchorTab = assembleAnchorTab;
7
+ exports.destroyAnchorTab = destroyAnchorTab;
8
+ var _xeUtils = _interopRequireDefault(require("xe-utils"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ function assembleAnchorTab($xeTabs, elem, tabConfig) {
11
+ var staticLinks = $xeTabs.reactData.staticTabs;
12
+ var parentElem = elem.parentNode;
13
+ if (parentElem) {
14
+ staticLinks.splice(_xeUtils.default.arrayIndexOf(parentElem.children, elem), 0, tabConfig);
15
+ $xeTabs.reactData.staticTabs = staticLinks.slice(0);
16
+ }
17
+ }
18
+ function destroyAnchorTab($xeTabs, tabConfig) {
19
+ var staticTabs = $xeTabs.reactData.staticTabs;
20
+ var matchObj = _xeUtils.default.findTree(staticTabs, function (item) {
21
+ return item.id === tabConfig.id;
22
+ }, {
23
+ children: 'children'
24
+ });
25
+ if (matchObj) {
26
+ matchObj.items.splice(matchObj.index, 1);
27
+ }
28
+ $xeTabs.reactData.staticTabs = staticTabs.slice(0);
29
+ }
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleAnchorTab=assembleAnchorTab,exports.destroyAnchorTab=destroyAnchorTab;var _xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function assembleAnchorTab(e,t,a){var r=e.reactData.staticTabs,s=t.parentNode;s&&(r.splice(_xeUtils.default.arrayIndexOf(s.children,t),0,a),e.reactData.staticTabs=r.slice(0))}function destroyAnchorTab(e,t){var a=e.reactData.staticTabs,r=_xeUtils.default.findTree(a,function(e){return e.id===t.id},{children:"children"});r&&r.items.splice(r.index,1),e.reactData.staticTabs=a.slice(0)}
@@ -0,0 +1 @@
1
+ require('./style.css')