tntd 2.8.0-beta.8 → 2.8.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 (314) hide show
  1. package/es/array-input/index.js +57 -42
  2. package/es/array-input/index.js.map +1 -1
  3. package/es/array-input/index.less +4 -1
  4. package/es/button/button.js +3 -7
  5. package/es/button/button.js.map +1 -1
  6. package/es/button/button.less +7 -0
  7. package/es/button/index.js +1 -0
  8. package/es/button/index.js.map +1 -1
  9. package/es/collapse/collapse.less +3 -3
  10. package/es/descriptions/descriptions.js +85 -24
  11. package/es/descriptions/descriptions.js.map +1 -1
  12. package/es/descriptions/descriptions.less +63 -62
  13. package/es/descriptions/style/index.less +1 -0
  14. package/es/drawer/drawer.js +118 -13
  15. package/es/drawer/drawer.js.map +1 -1
  16. package/es/drawer/index.js +1 -1
  17. package/es/drawer/index.js.map +1 -1
  18. package/es/drawer/index.less +153 -0
  19. package/es/drawer/style/drawer.less +2 -4
  20. package/es/form/form.js +8 -3
  21. package/es/form/form.js.map +1 -1
  22. package/es/form/form.less +42 -0
  23. package/es/form/style/index.less +6 -6
  24. package/es/handle-icon/index.js +201 -0
  25. package/es/handle-icon/index.js.map +1 -0
  26. package/es/handle-icon/index.less +53 -0
  27. package/es/icon/style/style.less +1 -1
  28. package/es/index.js +1 -0
  29. package/es/index.js.map +1 -1
  30. package/es/input/input.js +10 -6
  31. package/es/input/input.js.map +1 -1
  32. package/es/input/style/mixin.less +1 -1
  33. package/es/locale/en_US.js +8 -1
  34. package/es/locale/en_US.js.map +1 -1
  35. package/es/locale/zh_CN.js +8 -1
  36. package/es/locale/zh_CN.js.map +1 -1
  37. package/es/mentions/style/index.less +1 -0
  38. package/es/modal/style/confirm.less +6 -10
  39. package/es/modal/style/modal.less +4 -2
  40. package/es/notification/assets/index.js +2 -0
  41. package/es/notification/assets/index.js.map +1 -0
  42. package/es/notification/assets/svg-error-tip.js +145 -0
  43. package/es/notification/assets/svg-error-tip.js.map +1 -0
  44. package/es/notification/assets/svg-success-tip.js +162 -0
  45. package/es/notification/assets/svg-success-tip.js.map +1 -0
  46. package/es/notification/index.js +1 -1
  47. package/es/notification/index.js.map +1 -1
  48. package/es/notification/notification.js +80 -0
  49. package/es/notification/notification.js.map +1 -0
  50. package/es/notification/notification.less +34 -0
  51. package/es/notification/style/index.less +1 -0
  52. package/es/page-container/index.js +1 -1
  53. package/es/page-container/index.js.map +1 -1
  54. package/es/page-loading/index.js +1 -1
  55. package/es/page-loading/index.js.map +1 -1
  56. package/es/select/select.js +5 -3
  57. package/es/select/select.js.map +1 -1
  58. package/es/select/style/index.less +7 -6
  59. package/es/spin/index.js +3 -2
  60. package/es/spin/index.js.map +1 -1
  61. package/es/spin/spin.js +36 -0
  62. package/es/spin/spin.js.map +1 -0
  63. package/es/spin/spin.less +9 -0
  64. package/es/style/themes/default.less +1 -1
  65. package/es/table/expand.less +49 -0
  66. package/es/table/hooks/index.js +2 -1
  67. package/es/table/hooks/index.js.map +1 -1
  68. package/es/table/hooks/use-expand-fixed.js +80 -0
  69. package/es/table/hooks/use-expand-fixed.js.map +1 -0
  70. package/es/table/index.js +1 -0
  71. package/es/table/index.js.map +1 -1
  72. package/es/table/style/index.less +77 -39
  73. package/es/table/style/size.less +1 -0
  74. package/es/table/table.js +43 -8
  75. package/es/table/table.js.map +1 -1
  76. package/es/table/table.less +5 -5
  77. package/es/table/table.stories.js +413 -2
  78. package/es/table/table.stories.js.map +1 -1
  79. package/es/table/utils.js +11 -0
  80. package/es/table/utils.js.map +1 -1
  81. package/es/table-container/index.js +1 -1
  82. package/es/table-container/index.js.map +1 -1
  83. package/es/table-container/index.less +10 -10
  84. package/es/tabs-container/index.js +1 -1
  85. package/es/tabs-container/index.js.map +1 -1
  86. package/es/tag/color.less +53 -0
  87. package/es/tag/index.js +11 -2
  88. package/es/tag/index.js.map +1 -1
  89. package/es/tag/tag.js +171 -0
  90. package/es/tag/tag.js.map +1 -0
  91. package/es/tag/tag.less +228 -0
  92. package/es/title/index.js +4 -3
  93. package/es/title/index.js.map +1 -1
  94. package/es/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +5 -11
  95. package/es/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js.map +1 -1
  96. package/es/tntd-cascader/AntdCascader/index.less +12 -2
  97. package/es/tntd-cascader/rc-cascader/OptionList/Column.js +3 -2
  98. package/es/tntd-cascader/rc-cascader/OptionList/Column.js.map +1 -1
  99. package/es/tntd-cascader/rc-cascader/OptionList/index.js +1 -0
  100. package/es/tntd-cascader/rc-cascader/OptionList/index.js.map +1 -1
  101. package/es/tntd-form/FormItem/ItemHolder.js +1 -6
  102. package/es/tntd-form/FormItem/ItemHolder.js.map +1 -1
  103. package/es/tntd-form/FormItemLabel.js +2 -0
  104. package/es/tntd-form/FormItemLabel.js.map +1 -1
  105. package/es/tntd-select/index.js +9 -4
  106. package/es/tntd-select/index.js.map +1 -1
  107. package/es/tooltip/index.js +3 -2
  108. package/es/tooltip/index.js.map +1 -1
  109. package/es/tooltip/index.less +29 -0
  110. package/es/tooltip/tooltip.js +33 -0
  111. package/es/tooltip/tooltip.js.map +1 -0
  112. package/lib/array-input/index.d.ts +1 -12
  113. package/lib/array-input/index.d.ts.map +1 -1
  114. package/lib/array-input/index.js +62 -55
  115. package/lib/array-input/index.js.map +1 -1
  116. package/lib/array-input/index.less +4 -1
  117. package/lib/button/button.d.ts.map +1 -1
  118. package/lib/button/button.js +2 -14
  119. package/lib/button/button.js.map +1 -1
  120. package/lib/button/button.less +7 -0
  121. package/lib/button/index.d.ts +1 -0
  122. package/lib/button/index.d.ts.map +1 -1
  123. package/lib/button/index.js +6 -5
  124. package/lib/button/index.js.map +1 -1
  125. package/lib/collapse/collapse.less +3 -3
  126. package/lib/descriptions/descriptions.d.ts +11 -6
  127. package/lib/descriptions/descriptions.d.ts.map +1 -1
  128. package/lib/descriptions/descriptions.js +92 -30
  129. package/lib/descriptions/descriptions.js.map +1 -1
  130. package/lib/descriptions/descriptions.less +63 -62
  131. package/lib/descriptions/style/index.less +1 -0
  132. package/lib/drawer/drawer.d.ts +28 -2
  133. package/lib/drawer/drawer.d.ts.map +1 -1
  134. package/lib/drawer/drawer.js +125 -13
  135. package/lib/drawer/drawer.js.map +1 -1
  136. package/lib/drawer/index.d.ts +1 -1
  137. package/lib/drawer/index.d.ts.map +1 -1
  138. package/lib/drawer/index.js +5 -5
  139. package/lib/drawer/index.js.map +1 -1
  140. package/lib/drawer/index.less +153 -0
  141. package/lib/drawer/style/drawer.less +2 -4
  142. package/lib/form/form.d.ts +1 -0
  143. package/lib/form/form.d.ts.map +1 -1
  144. package/lib/form/form.js +9 -3
  145. package/lib/form/form.js.map +1 -1
  146. package/lib/form/form.less +42 -0
  147. package/lib/form/style/index.less +6 -6
  148. package/lib/handle-icon/index.d.ts +7 -0
  149. package/lib/handle-icon/index.d.ts.map +1 -0
  150. package/lib/handle-icon/index.js +221 -0
  151. package/lib/handle-icon/index.js.map +1 -0
  152. package/lib/handle-icon/index.less +53 -0
  153. package/lib/icon/style/style.less +1 -1
  154. package/lib/index.d.ts +1 -0
  155. package/lib/index.d.ts.map +1 -1
  156. package/lib/index.js +7 -0
  157. package/lib/index.js.map +1 -1
  158. package/lib/input/input.js +8 -4
  159. package/lib/input/input.js.map +1 -1
  160. package/lib/input/style/mixin.less +1 -1
  161. package/lib/locale/default.d.ts +7 -0
  162. package/lib/locale/default.d.ts.map +1 -1
  163. package/lib/locale/en_US.d.ts +7 -0
  164. package/lib/locale/en_US.d.ts.map +1 -1
  165. package/lib/locale/en_US.js +8 -1
  166. package/lib/locale/en_US.js.map +1 -1
  167. package/lib/locale/zh_CN.d.ts +7 -0
  168. package/lib/locale/zh_CN.d.ts.map +1 -1
  169. package/lib/locale/zh_CN.js +8 -1
  170. package/lib/locale/zh_CN.js.map +1 -1
  171. package/lib/mentions/style/index.less +1 -0
  172. package/lib/modal/style/confirm.less +6 -10
  173. package/lib/modal/style/modal.less +4 -2
  174. package/lib/notification/assets/index.d.ts +3 -0
  175. package/lib/notification/assets/index.d.ts.map +1 -0
  176. package/lib/notification/assets/index.js +20 -0
  177. package/lib/notification/assets/index.js.map +1 -0
  178. package/lib/notification/assets/svg-error-tip.d.ts +4 -0
  179. package/lib/notification/assets/svg-error-tip.d.ts.map +1 -0
  180. package/lib/notification/assets/svg-error-tip.js +154 -0
  181. package/lib/notification/assets/svg-error-tip.js.map +1 -0
  182. package/lib/notification/assets/svg-success-tip.d.ts +4 -0
  183. package/lib/notification/assets/svg-success-tip.d.ts.map +1 -0
  184. package/lib/notification/assets/svg-success-tip.js +171 -0
  185. package/lib/notification/assets/svg-success-tip.js.map +1 -0
  186. package/lib/notification/index.d.ts +1 -1
  187. package/lib/notification/index.d.ts.map +1 -1
  188. package/lib/notification/index.js +7 -8
  189. package/lib/notification/index.js.map +1 -1
  190. package/lib/notification/notification.d.ts +9 -0
  191. package/lib/notification/notification.d.ts.map +1 -0
  192. package/lib/notification/notification.js +105 -0
  193. package/lib/notification/notification.js.map +1 -0
  194. package/lib/notification/notification.less +34 -0
  195. package/lib/notification/style/index.less +1 -0
  196. package/lib/page-container/index.js +1 -1
  197. package/lib/page-container/index.js.map +1 -1
  198. package/lib/page-loading/index.js +1 -1
  199. package/lib/page-loading/index.js.map +1 -1
  200. package/lib/segmented/index.d.ts +1 -1
  201. package/lib/select/select.d.ts.map +1 -1
  202. package/lib/select/select.js +4 -2
  203. package/lib/select/select.js.map +1 -1
  204. package/lib/select/style/index.less +7 -6
  205. package/lib/spin/index.d.ts +3 -2
  206. package/lib/spin/index.d.ts.map +1 -1
  207. package/lib/spin/index.js +4 -6
  208. package/lib/spin/index.js.map +1 -1
  209. package/lib/spin/spin.d.ts +9 -0
  210. package/lib/spin/spin.d.ts.map +1 -0
  211. package/lib/spin/spin.js +44 -0
  212. package/lib/spin/spin.js.map +1 -0
  213. package/lib/spin/spin.less +9 -0
  214. package/lib/style/themes/default.less +1 -1
  215. package/lib/svg-components/illustration-403.d.ts +1 -1
  216. package/lib/svg-components/illustration-404.d.ts +1 -1
  217. package/lib/svg-components/illustration-500.d.ts +1 -1
  218. package/lib/svg-components/illustration-empty.d.ts +1 -1
  219. package/lib/svg-components/illustration-failure.d.ts +1 -1
  220. package/lib/svg-components/illustration-no-access.d.ts +1 -1
  221. package/lib/svg-components/illustration-no-chart.d.ts +1 -1
  222. package/lib/svg-components/illustration-no-result.d.ts +1 -1
  223. package/lib/svg-components/illustration-offline.d.ts +1 -1
  224. package/lib/svg-components/illustration-success.d.ts +1 -1
  225. package/lib/table/assets/image-loading-background.d.ts +1 -1
  226. package/lib/table/assets/image-loading.d.ts +1 -1
  227. package/lib/table/expand.less +49 -0
  228. package/lib/table/hooks/index.d.ts +1 -0
  229. package/lib/table/hooks/index.d.ts.map +1 -1
  230. package/lib/table/hooks/index.js +11 -0
  231. package/lib/table/hooks/index.js.map +1 -1
  232. package/lib/table/hooks/use-expand-fixed.d.ts +4 -0
  233. package/lib/table/hooks/use-expand-fixed.d.ts.map +1 -0
  234. package/lib/table/hooks/use-expand-fixed.js +110 -0
  235. package/lib/table/hooks/use-expand-fixed.js.map +1 -0
  236. package/lib/table/index.d.ts +1 -0
  237. package/lib/table/index.d.ts.map +1 -1
  238. package/lib/table/index.js +1 -0
  239. package/lib/table/index.js.map +1 -1
  240. package/lib/table/style/index.less +77 -39
  241. package/lib/table/style/size.less +1 -0
  242. package/lib/table/table.d.ts +3 -1
  243. package/lib/table/table.d.ts.map +1 -1
  244. package/lib/table/table.js +43 -4
  245. package/lib/table/table.js.map +1 -1
  246. package/lib/table/table.less +5 -5
  247. package/lib/table/table.stories.d.ts +106 -29
  248. package/lib/table/table.stories.d.ts.map +1 -1
  249. package/lib/table/table.stories.js +426 -3
  250. package/lib/table/table.stories.js.map +1 -1
  251. package/lib/table/utils.d.ts +1 -0
  252. package/lib/table/utils.d.ts.map +1 -1
  253. package/lib/table/utils.js +13 -0
  254. package/lib/table/utils.js.map +1 -1
  255. package/lib/table-container/index.js +1 -1
  256. package/lib/table-container/index.js.map +1 -1
  257. package/lib/table-container/index.less +10 -10
  258. package/lib/tabs-container/index.js +1 -1
  259. package/lib/tabs-container/index.js.map +1 -1
  260. package/lib/tag/color.less +53 -0
  261. package/lib/tag/index.d.ts +3 -2
  262. package/lib/tag/index.d.ts.map +1 -1
  263. package/lib/tag/index.js +15 -9
  264. package/lib/tag/index.js.map +1 -1
  265. package/lib/tag/tag.d.ts +41 -0
  266. package/lib/tag/tag.d.ts.map +1 -0
  267. package/lib/tag/tag.js +183 -0
  268. package/lib/tag/tag.js.map +1 -0
  269. package/lib/tag/tag.less +228 -0
  270. package/lib/title/index.d.ts +1 -0
  271. package/lib/title/index.d.ts.map +1 -1
  272. package/lib/title/index.js +3 -2
  273. package/lib/title/index.js.map +1 -1
  274. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.d.ts.map +1 -1
  275. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +5 -11
  276. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js.map +1 -1
  277. package/lib/tntd-cascader/AntdCascader/config/utils.d.ts +1 -1
  278. package/lib/tntd-cascader/AntdCascader/index.less +12 -2
  279. package/lib/tntd-cascader/rc-cascader/OptionList/Column.d.ts +1 -1
  280. package/lib/tntd-cascader/rc-cascader/OptionList/Column.d.ts.map +1 -1
  281. package/lib/tntd-cascader/rc-cascader/OptionList/Column.js +3 -2
  282. package/lib/tntd-cascader/rc-cascader/OptionList/Column.js.map +1 -1
  283. package/lib/tntd-cascader/rc-cascader/OptionList/index.d.ts.map +1 -1
  284. package/lib/tntd-cascader/rc-cascader/OptionList/index.js +1 -0
  285. package/lib/tntd-cascader/rc-cascader/OptionList/index.js.map +1 -1
  286. package/lib/tntd-form/FormItem/ItemHolder.js +1 -6
  287. package/lib/tntd-form/FormItem/ItemHolder.js.map +1 -1
  288. package/lib/tntd-form/FormItemLabel.d.ts.map +1 -1
  289. package/lib/tntd-form/FormItemLabel.js +2 -0
  290. package/lib/tntd-form/FormItemLabel.js.map +1 -1
  291. package/lib/tntd-rc-select/_util/PurePanel.d.ts +1 -1
  292. package/lib/tntd-select/index.d.ts.map +1 -1
  293. package/lib/tntd-select/index.js +8 -3
  294. package/lib/tntd-select/index.js.map +1 -1
  295. package/lib/tooltip/index.d.ts +3 -2
  296. package/lib/tooltip/index.d.ts.map +1 -1
  297. package/lib/tooltip/index.js +3 -2
  298. package/lib/tooltip/index.js.map +1 -1
  299. package/lib/tooltip/index.less +29 -0
  300. package/lib/tooltip/tooltip.d.ts +9 -0
  301. package/lib/tooltip/tooltip.d.ts.map +1 -0
  302. package/lib/tooltip/tooltip.js +53 -0
  303. package/lib/tooltip/tooltip.js.map +1 -0
  304. package/package.json +4 -3
  305. package/themes/default/variables.less +2 -2
  306. package/themes/default/variablesVar.less +2 -2
  307. package/es/array-input/icon.js +0 -25
  308. package/es/array-input/icon.js.map +0 -1
  309. package/es/drawer/drawer.less +0 -20
  310. package/lib/array-input/icon.d.ts +0 -4
  311. package/lib/array-input/icon.d.ts.map +0 -1
  312. package/lib/array-input/icon.js +0 -32
  313. package/lib/array-input/icon.js.map +0 -1
  314. package/lib/drawer/drawer.less +0 -20
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tag/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAA;AAE7B,OAAO,SAAS,CAAA;AAEhB,cAAc,aAAa,CAAA;AAE3B,eAAe,GAAG,CAAA","sourcesContent":["import Tag from 'antd/es/tag'\n\nimport './style'\n\nexport * from 'antd/es/tag'\n\nexport default Tag\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tag/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,SAAS,CAAA;AAChB,OAAO,YAAY,CAAA;AACnB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAE3B,cAAc,OAAO,CAAA;AAErB,eAAe,GAAG,CAAA","sourcesContent":["/*\n * @Author: 周泽飞 zefei.zhou@tongdun.net\n * @Date: 2024-02-29 14:21:28\n * @LastEditors: 周泽飞 zefei.zhou@tongdun.net\n * @LastEditTime: 2024-05-24 23:01:30\n * @FilePath: /tntd/packages/tntd/src/tag/index.ts\n * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\n */\nimport './style'\nimport './tag.less'\nimport { Tag } from './tag'\n\nexport * from './tag'\n\nexport default Tag\n"]}
package/es/tag/tag.js ADDED
@@ -0,0 +1,171 @@
1
+ var __rest = this && this.__rest || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
4
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
5
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
6
+ }
7
+ return t;
8
+ };
9
+ /*
10
+ * @Author: 周泽飞 zefei.zhou@tongdun.net
11
+ * @Date: 2024-03-04 19:15:22
12
+ * @LastEditors: 周泽飞 zefei.zhou@tongdun.net
13
+ * @LastEditTime: 2024-03-11 10:10:31
14
+ * @FilePath: /tntd/packages/tntd/src/tag/tag.tsx
15
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
16
+ */
17
+ import React, { forwardRef } from 'react';
18
+ import { ConfigConsumer } from 'antd/es/config-provider';
19
+ import { default as AntdTag } from 'antd/es/tag';
20
+ import classNames from 'classnames';
21
+ import Ellipsis from '../ellipsis';
22
+ import Icon from '../icon';
23
+ export * from 'antd/es/tag';
24
+ export var TagColors;
25
+ (function (TagColors) {
26
+ TagColors["grey"] = "grey";
27
+ TagColors["rose"] = "rose";
28
+ TagColors["lightblue"] = "lightblue";
29
+ TagColors["bluegrey"] = "bluegrey";
30
+ TagColors["purplegrey"] = "purplegrey";
31
+ TagColors["lightpurple"] = "lightpurple";
32
+ TagColors["lightgreen"] = "lightgreen";
33
+ TagColors["tnt-pink"] = "tnt-pink";
34
+ TagColors["tnt-orange"] = "tnt-orange";
35
+ TagColors["tnt-purple"] = "tnt-purple";
36
+ })(TagColors || (TagColors = {}));
37
+ // 内置的状态
38
+ const statusMap = {
39
+ success: {
40
+ icon: 'check-circle',
41
+ color: 'green'
42
+ },
43
+ info: {
44
+ icon: 'info-circle',
45
+ color: 'blue'
46
+ },
47
+ error: {
48
+ icon: 'close-circle',
49
+ color: 'red'
50
+ },
51
+ warning: {
52
+ icon: 'info-circle',
53
+ color: 'orange'
54
+ }
55
+ };
56
+ const getDisplayEllipsisOptions = (props, prefixCls) => {
57
+ var _a;
58
+ const {
59
+ ellipsisOptions,
60
+ addonContent,
61
+ addonType,
62
+ addonPosition,
63
+ children
64
+ } = props || {};
65
+ const options = Object.assign({}, ellipsisOptions);
66
+ let addonContentInfo = null;
67
+ if (addonContent) {
68
+ addonContentInfo = addonContent;
69
+ } else if (addonType && statusMap[addonType]) {
70
+ addonContentInfo = React.createElement(Icon, {
71
+ type: (_a = statusMap[addonType]) === null || _a === void 0 ? void 0 : _a.icon
72
+ });
73
+ }
74
+ if (addonContentInfo) {
75
+ addonContentInfo = React.createElement("span", {
76
+ className: `${prefixCls}-addon`
77
+ }, addonContentInfo);
78
+ if (addonPosition === 'prefix') {
79
+ options.prefix = addonContentInfo;
80
+ }
81
+ if (addonPosition === 'suffix') {
82
+ options.suffix = addonContentInfo;
83
+ }
84
+ if (options.Popover === true) {
85
+ options.content = children;
86
+ } else {
87
+ options.title = children;
88
+ }
89
+ options.contentInfo = addonContentInfo;
90
+ }
91
+ return options;
92
+ };
93
+ export const Tag = forwardRef((props, ref) => {
94
+ var _a;
95
+ const {
96
+ className,
97
+ border = true,
98
+ size,
99
+ addonType,
100
+ addonContent,
101
+ addonPosition = 'prefix',
102
+ ellipsisOptions,
103
+ children
104
+ } = props,
105
+ restProps = __rest(props, ["className", "border", "size", "addonType", "addonContent", "addonPosition", "ellipsisOptions", "children"]);
106
+ let {
107
+ color
108
+ } = props || {};
109
+ if (!color && addonType) {
110
+ color = (_a = statusMap[addonType]) === null || _a === void 0 ? void 0 : _a.color;
111
+ }
112
+ return React.createElement(ConfigConsumer, null, ({
113
+ getPrefixCls
114
+ }) => {
115
+ var _a, _b, _c, _d, _e;
116
+ const prefixCls = getPrefixCls('tag');
117
+ const displayEllipsisOptions = getDisplayEllipsisOptions({
118
+ ellipsisOptions,
119
+ addonContent,
120
+ addonType,
121
+ addonPosition,
122
+ children
123
+ }, prefixCls);
124
+ // 只有一个icon时 padding距离存在差异
125
+ const onlyIcon = React.isValidElement(children) && React.Children.only(children) && (children === null || children === void 0 ? void 0 : children.type) instanceof Function && ((_c = (_b = (_a = children === null || children === void 0 ? void 0 : children.type) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.toLowerCase) === null || _c === void 0 ? void 0 : _c.call(_b)) === 'icon';
126
+ // 前缀是图片 只处理一层节点下是图片的,否则就用户自定义样式
127
+ const addonIsImg = React.isValidElement(addonContent) && (addonContent === null || addonContent === void 0 ? void 0 : addonContent.type) && typeof (addonContent === null || addonContent === void 0 ? void 0 : addonContent.type) === 'string' && ((_e = (_d = addonContent === null || addonContent === void 0 ? void 0 : addonContent.type) === null || _d === void 0 ? void 0 : _d.toLowerCase) === null || _e === void 0 ? void 0 : _e.call(_d)) === 'img';
128
+ return React.createElement(AntdTag, Object.assign({
129
+ className: classNames({
130
+ [`${prefixCls}-${color}`]: color && !!TagColors[color]
131
+ }, 'tnt-tag', `${prefixCls}-${size || 'middle'}`, {
132
+ [`${prefixCls}-no-border`]: !border
133
+ }, {
134
+ [`${prefixCls}-only-child`]: !children || onlyIcon
135
+ }, {
136
+ [`${prefixCls}-addon-img`]: !!addonIsImg
137
+ }, className || '')
138
+ }, restProps, {
139
+ color: !TagColors[color] ? color : '',
140
+ ref: ref
141
+ }), !addonContent && !addonType && !ellipsisOptions && children, (!!addonContent || !!addonType || !!ellipsisOptions) && React.createElement("span", {
142
+ className: `${prefixCls}-addon-wrap`
143
+ }, !!children && React.createElement(Ellipsis, Object.assign({}, displayEllipsisOptions), children), !children && (displayEllipsisOptions === null || displayEllipsisOptions === void 0 ? void 0 : displayEllipsisOptions.contentInfo)));
144
+ });
145
+ });
146
+ Tag.CheckableTag = forwardRef((props, ref) => {
147
+ // 默认没有border
148
+ const _a = props || {},
149
+ {
150
+ onChange,
151
+ disabled,
152
+ border = false,
153
+ className
154
+ } = _a,
155
+ rest = __rest(_a, ["onChange", "disabled", "border", "className"]);
156
+ return React.createElement(ConfigConsumer, null, ({
157
+ getPrefixCls
158
+ }) => {
159
+ const prefixCls = getPrefixCls('tag-checkable');
160
+ return React.createElement(AntdTag.CheckableTag, Object.assign({}, !disabled && {
161
+ onChange
162
+ }, {
163
+ className: classNames('tnt-tag', {
164
+ [`${prefixCls}-disabled`]: disabled,
165
+ [`${prefixCls}-border`]: !!border
166
+ })
167
+ }, rest, {
168
+ ref: ref
169
+ }));
170
+ });
171
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/tag/tag.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * @Author: 周泽飞 zefei.zhou@tongdun.net\n * @Date: 2024-03-04 19:15:22\n * @LastEditors: 周泽飞 zefei.zhou@tongdun.net\n * @LastEditTime: 2024-03-11 10:10:31\n * @FilePath: /tntd/packages/tntd/src/tag/tag.tsx\n * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\n */\nimport React, { useMemo, forwardRef } from 'react'\nimport type { TagProps as AntdTagProps } from 'antd/es/tag'\nimport type { CheckableTagProps as AntdCheckableTagProps } from 'antd/es/tag'\nimport { ConfigConsumer } from 'antd/es/config-provider'\nimport { default as AntdTag } from 'antd/es/tag'\nimport type AntdCheckableTag from 'antd/es/tag/CheckableTag'\nimport classNames from 'classnames'\nimport Ellipsis from '../ellipsis'\nimport Icon from '../icon'\n\nexport * from 'antd/es/tag'\n\nexport enum TagColors {\n grey = 'grey',\n rose = 'rose',\n lightblue = 'lightblue',\n bluegrey = 'bluegrey',\n purplegrey = 'purplegrey',\n lightpurple = 'lightpurple',\n lightgreen = 'lightgreen',\n 'tnt-pink' = 'tnt-pink',\n 'tnt-orange' = 'tnt-orange',\n 'tnt-purple' = 'tnt-purple',\n}\n\n// 内置的状态\nconst statusMap = {\n success: {\n icon: 'check-circle',\n color: 'green',\n },\n info: {\n icon: 'info-circle',\n color: 'blue',\n },\n error: {\n icon: 'close-circle',\n color: 'red',\n },\n warning: {\n icon: 'info-circle',\n color: 'orange',\n },\n}\n\nexport interface TagProps extends AntdTagProps {\n color?: TagColors | string\n size?: 'small' | 'middle' | 'large'\n border?: boolean\n addonContent?: React.ReactNode\n addonPosition?: 'prefix' | 'suffix'\n addonType?: 'success' | 'info' | 'warning' | 'error'\n ellipsisOptions?: {\n Popover?: boolean\n emptyText?: string\n widthLimit?: number | string\n lines?: number\n [key: string]: unknown\n }\n}\n\nexport interface CheckableTagProps extends AntdCheckableTagProps {\n disabled?: boolean\n border?: boolean\n}\n\ninterface TagComponent\n extends React.ForwardRefExoticComponent<TagProps & React.RefAttributes<AntdTag>> {\n CheckableTag: React.FC<CheckableTagProps>\n}\n\nconst getDisplayEllipsisOptions = (props: TagProps, prefixCls: string) => {\n const { ellipsisOptions, addonContent, addonType, addonPosition, children } = props || {}\n const options = {\n ...ellipsisOptions,\n }\n\n let addonContentInfo = null\n if (addonContent) {\n addonContentInfo = addonContent\n } else if (addonType && statusMap[addonType]) {\n addonContentInfo = <Icon type={statusMap[addonType]?.icon} />\n }\n\n if (addonContentInfo) {\n addonContentInfo = <span className={`${prefixCls}-addon`}>{addonContentInfo}</span>\n if (addonPosition === 'prefix') {\n options.prefix = addonContentInfo\n }\n\n if (addonPosition === 'suffix') {\n options.suffix = addonContentInfo\n }\n\n if (options.Popover === true) {\n options.content = children\n } else {\n options.title = children\n }\n options.contentInfo = addonContentInfo\n }\n\n return options\n}\n\nexport const Tag = forwardRef<AntdTag, TagProps & { capitalize?: boolean }>((props, ref) => {\n const {\n className,\n border = true,\n size,\n addonType,\n addonContent,\n addonPosition = 'prefix',\n ellipsisOptions,\n children,\n ...restProps\n } = props\n\n let { color } = props || {}\n if (!color && addonType) {\n color = statusMap[addonType]?.color\n }\n\n return (\n <ConfigConsumer>\n {({ getPrefixCls }) => {\n const prefixCls = getPrefixCls('tag')\n\n const displayEllipsisOptions = getDisplayEllipsisOptions(\n {\n ellipsisOptions,\n addonContent,\n addonType,\n addonPosition,\n children,\n },\n prefixCls\n )\n\n // 只有一个icon时 padding距离存在差异\n const onlyIcon =\n React.isValidElement(children) &&\n React.Children.only(children) &&\n children?.type instanceof Function &&\n children?.type?.name?.toLowerCase?.() === 'icon'\n\n // 前缀是图片 只处理一层节点下是图片的,否则就用户自定义样式\n const addonIsImg =\n React.isValidElement(addonContent) &&\n addonContent?.type &&\n typeof addonContent?.type === 'string' &&\n addonContent?.type?.toLowerCase?.() === 'img'\n\n return (\n <AntdTag\n className={classNames(\n {\n [`${prefixCls}-${color}`]: color && !!TagColors[color as keyof typeof TagColors],\n },\n 'tnt-tag',\n `${prefixCls}-${size || 'middle'}`,\n {\n [`${prefixCls}-no-border`]: !border,\n },\n {\n [`${prefixCls}-only-child`]: !children || onlyIcon,\n },\n {\n [`${prefixCls}-addon-img`]: !!addonIsImg,\n },\n className || ''\n )}\n {...restProps}\n color={!TagColors[color as keyof typeof TagColors] ? color : ''}\n ref={ref}\n >\n {!addonContent && !addonType && !ellipsisOptions && children}\n {(!!addonContent || !!addonType || !!ellipsisOptions) && (\n <span className={`${prefixCls}-addon-wrap`}>\n {!!children && <Ellipsis {...displayEllipsisOptions}>{children}</Ellipsis>}\n {!children && displayEllipsisOptions?.contentInfo}\n </span>\n )}\n </AntdTag>\n )\n }}\n </ConfigConsumer>\n )\n}) as TagComponent\n\nTag.CheckableTag = forwardRef<AntdCheckableTag, CheckableTagProps>(\n (props: CheckableTagProps, ref) => {\n // 默认没有border\n const { onChange, disabled, border = false, className, ...rest } = props || {}\n return (\n <ConfigConsumer>\n {({ getPrefixCls }) => {\n const prefixCls = getPrefixCls('tag-checkable')\n return (\n <AntdTag.CheckableTag\n {...(!disabled && { onChange })}\n className={classNames('tnt-tag', {\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-border`]: !!border,\n })}\n {...rest}\n ref={ref}\n />\n )\n }}\n </ConfigConsumer>\n )\n }\n)\n"]}
@@ -0,0 +1,228 @@
1
+ @import '../style/mixins/index';
2
+ @import './color.less';
3
+ @tag-prefix-cls: ~'@{ant-prefix}-tag';
4
+ // 默认
5
+ @tag-height: 20px;
6
+ @tag-small-size: 0 7px;
7
+ @tag-middle-size: 0 7px;
8
+ @tag-large-size: 3px 12px;
9
+
10
+ // img tag
11
+ @tag-img-small-size: 1px 5px 1px 3px;
12
+ @tag-img-middle-size: 2px 6px 2px 3px;
13
+ @tag-img-large-size: 3px 12px 3px 4px;
14
+
15
+ // 只有icon的尺寸
16
+ @tag-only-icon-small-size: 5px;
17
+ @tag-only-icon-middle-size: 6px;
18
+ @tag-only-icon-large-size: 7px;
19
+
20
+ .tnt-tag.@{tag-prefix-cls} {
21
+ line-height: @tag-height;
22
+
23
+ .@{iconfont-css-prefix}-close {
24
+ // .iconfont-size-under-12px(10px);
25
+ vertical-align: middle;
26
+ line-height: 1;
27
+ }
28
+
29
+ .anticon{
30
+ font-size: @font-size-sm;
31
+ }
32
+
33
+ // 头像插件 可以为icon 图片
34
+ .@{tag-prefix-cls}-addon-wrap{
35
+ display: inline-block;
36
+ vertical-align: middle;
37
+ margin-top: -1px;
38
+ .@{tag-prefix-cls}-addon{
39
+ .iconfont-size-under-12px(12px);
40
+ display: flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ }
44
+
45
+ .tntd-ellipsis,.tnt-ellipsis{
46
+ align-items: center;
47
+ .@{tag-prefix-cls}-addon{
48
+ >*{
49
+ border-radius: 100%;
50
+ overflow: hidden;
51
+ display: block;
52
+ }
53
+ +*{
54
+ margin-left: 4px;
55
+ }
56
+ }
57
+ }
58
+ }
59
+
60
+ &-small{
61
+ padding: @tag-small-size;
62
+ }
63
+ &-middle{
64
+ padding: @tag-middle-size;
65
+ }
66
+ &-large{
67
+ padding: @tag-large-size;
68
+ font-size: 14px;
69
+ }
70
+
71
+ // 不带边框
72
+ &.@{tag-prefix-cls}-no-border{
73
+ border-color:transparent;
74
+ }
75
+
76
+ // 只有一个icon
77
+ &.@{tag-prefix-cls}-only-child{
78
+ line-height: @font-size-sm;
79
+ &.@{tag-prefix-cls}-small{
80
+ padding: @tag-only-icon-small-size;
81
+ }
82
+ &.@{tag-prefix-cls}-middle{
83
+ padding: @tag-only-icon-middle-size;
84
+ }
85
+ &.@{tag-prefix-cls}-large{
86
+ padding: @tag-only-icon-large-size;
87
+ }
88
+ }
89
+
90
+ // 带图片
91
+ &.@{tag-prefix-cls}-addon-img{
92
+ &.@{tag-prefix-cls}-small{
93
+ padding: @tag-img-small-size;
94
+ .@{tag-prefix-cls}-addon{
95
+ width: 16px;
96
+ height: 16px;
97
+ }
98
+ }
99
+ &.@{tag-prefix-cls}-middle{
100
+ padding: @tag-img-middle-size;
101
+ .@{tag-prefix-cls}-addon{
102
+ width: 18px;
103
+ height: 18px;
104
+ }
105
+ }
106
+ &.@{tag-prefix-cls}-large{
107
+ padding: @tag-img-large-size;
108
+ .@{tag-prefix-cls}-addon{
109
+ width: 20px;
110
+ height: 20px;
111
+ }
112
+ }
113
+ }
114
+
115
+ &.@{tag-prefix-cls}-blue {
116
+ color: @blue-6;
117
+ background: @blue-1;
118
+ border-color: @blue-3;
119
+ >.@{iconfont-css-prefix}-close {
120
+ color: @blue-5;
121
+ }
122
+ &.@{tag-prefix-cls}-no-border{
123
+ border-color:transparent;
124
+ }
125
+ }
126
+ &.@{tag-prefix-cls}-blue-inverse {
127
+ color: @text-color-inverse;
128
+ background: @blue-6;
129
+ border-color: @blue-6;
130
+ >.@{iconfont-css-prefix}-close {
131
+ color: @text-color-inverse;
132
+ }
133
+ &.@{tag-prefix-cls}-no-border{
134
+ border-color:transparent;
135
+ }
136
+ }
137
+
138
+ // mixin to iterate over colors and create CSS class for each one
139
+ .make-color-classes(@i: length(@preset-colors-custom)) when (@i > 0) {
140
+ .make-color-classes(@i - 1);
141
+ @color: extract(@preset-colors-custom, @i);
142
+ @lightColor: '@{color}-1';
143
+ @lightBorderColor: '@{color}-4';
144
+ @darkColor: '@{color}-7';
145
+ @closeColor:'@{color}-5';
146
+ &.@{tag-prefix-cls}-@{color} {
147
+ color: @@darkColor;
148
+ background: @@lightColor;
149
+ border-color: @@lightBorderColor;
150
+ >.@{iconfont-css-prefix}-close {
151
+ color: @@closeColor;
152
+ }
153
+ &.@{tag-prefix-cls}-no-border{
154
+ border-color:transparent;
155
+ }
156
+ }
157
+ &.@{tag-prefix-cls}-@{color}-inverse {
158
+ color: @text-color-inverse;
159
+ background: @@darkColor;
160
+ border-color: @@darkColor;
161
+ >.@{iconfont-css-prefix}-close {
162
+ color: @text-color-inverse;
163
+ }
164
+ &.@{tag-prefix-cls}-no-border{
165
+ border-color:transparent;
166
+ }
167
+ }
168
+ }
169
+
170
+ .make-color-classes();
171
+
172
+
173
+
174
+ // 可选
175
+ &.@{tag-prefix-cls}-checkable {
176
+ background-color: @tag-default-bg;
177
+ border-color: transparent;
178
+ padding: 2px 12px;
179
+ cursor: pointer;
180
+ &-border{
181
+ border-color: @border-color-base;
182
+ // 非disabled
183
+ &:not(.@{tag-prefix-cls}-checkable-disabled):hover {
184
+ border-color: @primary-3;
185
+ }
186
+ }
187
+
188
+ &:not(.@{tag-prefix-cls}-checkable-disabled):hover {
189
+ color: @primary-6;
190
+ background-color: @primary-1;
191
+ transition: all 0.3s @ease-in-out-circ;
192
+ }
193
+
194
+ &:active,
195
+ &-checked {
196
+ color: @primary-6;
197
+ background-color: @primary-1;
198
+ &.@{tag-prefix-cls}-checkable-border{
199
+ border-color: @primary-3;
200
+ }
201
+ }
202
+
203
+ &-checked {
204
+ &.@{tag-prefix-cls}-checkable-disabled:hover {
205
+ color: @primary-6;
206
+ }
207
+ }
208
+
209
+ &:not(&-checked){
210
+ &.@{tag-prefix-cls}-checkable-disabled:hover {
211
+ color: inherit;
212
+ }
213
+ }
214
+
215
+ &-disabled{
216
+ opacity: 0.5;
217
+ cursor: not-allowed;
218
+ &:hover{
219
+ opacity: 0.5;
220
+ color: inherit;
221
+ }
222
+ }
223
+ }
224
+
225
+ }
226
+
227
+
228
+
package/es/title/index.js CHANGED
@@ -18,11 +18,12 @@ export default (props => {
18
18
  size = 'default',
19
19
  extra,
20
20
  number,
21
- simple
21
+ simple,
22
+ className
22
23
  } = _a,
23
- rest = __rest(_a, ["title", "subTitle", "size", "extra", "number", "simple"]);
24
+ rest = __rest(_a, ["title", "subTitle", "size", "extra", "number", "simple", "className"]);
24
25
  return React.createElement("div", Object.assign({
25
- className: cn('tntd-title', size, {
26
+ className: cn('tntd-title', className, size, {
26
27
  'has-number': number
27
28
  }, {
28
29
  'is-simple': simple
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/title/index.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAA6B,MAAM,OAAO,CAAA;AACjD,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,cAAc,CAAA;AAWrB,eAAe,CAAC,KAAiB,EAAE,EAAE;IACnC,MAAM,KAQF,KAAK,IAAI,EAAE,EART,EACJ,KAAK,GAAG,MAAM,EACd,QAAQ,EACR,IAAI,GAAG,SAAS,EAChB,KAAK,EACL,MAAM,EACN,MAAM,OAEO,EADV,IAAI,cAPH,0DAQL,CAAc,CAAA;IAEf,OAAO,CACL,2CACE,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,IAChF,IAAI;QAER,6BAAK,SAAS,EAAC,iBAAiB;YAC7B,MAAM,IAAI,2BAAG,SAAS,EAAC,OAAO,IAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAK;YACzE,gCAAK,YAAY,CAAC,KAAK,CAAC,CAAM;YAC9B,kCAAO,QAAQ,CAAQ,CACnB;QACL,KAAK,IAAI,6BAAK,SAAS,EAAC,kBAAkB,IAAE,KAAK,CAAO,CACrD,CACP,CAAA;AACH,CAAC,CAAA","sourcesContent":["import React, { FC, ComponentProps } from 'react'\nimport cn from 'classnames'\nimport { doUpperTitle } from '../utils'\nimport './index.less'\n\nexport interface TitleProps extends ComponentProps<'div'> {\n title?: string\n subTitle?: string\n size?: 'default' | 'small' | 'middle' | 'large'\n extra?: React.ReactNode\n number?: number\n simple?: boolean\n}\n\nexport default (props: TitleProps) => {\n const {\n title = '暂无标题',\n subTitle,\n size = 'default',\n extra,\n number,\n simple,\n ...rest\n } = props || {}\n\n return (\n <div\n className={cn('tntd-title', size, { 'has-number': number }, { 'is-simple': simple })}\n {...rest}\n >\n <div className=\"tntd-title-text\">\n {number && <i className=\"count\">{number <= 9 ? `0${number}` : number}</i>}\n <h3>{doUpperTitle(title)}</h3>\n <span>{subTitle}</span>\n </div>\n {extra && <div className=\"tntd-title-extra\">{extra}</div>}\n </div>\n )\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/title/index.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAA6B,MAAM,OAAO,CAAA;AACjD,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,cAAc,CAAA;AAYrB,eAAe,CAAC,KAAiB,EAAE,EAAE;IACnC,MAAM,KASF,KAAK,IAAI,EAAE,EATT,EACJ,KAAK,GAAG,MAAM,EACd,QAAQ,EACR,IAAI,GAAG,SAAS,EAChB,KAAK,EACL,MAAM,EACN,MAAM,EACN,SAAS,OAEI,EADV,IAAI,cARH,uEASL,CAAc,CAAA;IAEf,OAAO,CACL,2CACE,SAAS,EAAE,EAAE,CACX,YAAY,EACZ,SAAS,EACT,IAAI,EACJ,EAAE,YAAY,EAAE,MAAM,EAAE,EACxB,EAAE,WAAW,EAAE,MAAM,EAAE,CACxB,IACG,IAAI;QAER,6BAAK,SAAS,EAAC,iBAAiB;YAC7B,MAAM,IAAI,2BAAG,SAAS,EAAC,OAAO,IAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAK;YACzE,gCAAK,YAAY,CAAC,KAAK,CAAC,CAAM;YAC9B,kCAAO,QAAQ,CAAQ,CACnB;QACL,KAAK,IAAI,6BAAK,SAAS,EAAC,kBAAkB,IAAE,KAAK,CAAO,CACrD,CACP,CAAA;AACH,CAAC,CAAA","sourcesContent":["import React, { FC, ComponentProps } from 'react'\nimport cn from 'classnames'\nimport { doUpperTitle } from '../utils'\nimport './index.less'\n\nexport interface TitleProps extends ComponentProps<'div'> {\n title?: string\n subTitle?: string\n className?: string\n size?: 'default' | 'small' | 'middle' | 'large'\n extra?: React.ReactNode\n number?: number\n simple?: boolean\n}\n\nexport default (props: TitleProps) => {\n const {\n title = '暂无标题',\n subTitle,\n size = 'default',\n extra,\n number,\n simple,\n className,\n ...rest\n } = props || {}\n\n return (\n <div\n className={cn(\n 'tntd-title',\n className,\n size,\n { 'has-number': number },\n { 'is-simple': simple }\n )}\n {...rest}\n >\n <div className=\"tntd-title-text\">\n {number && <i className=\"count\">{number <= 9 ? `0${number}` : number}</i>}\n <h3>{doUpperTitle(title)}</h3>\n <span>{subTitle}</span>\n </div>\n {extra && <div className=\"tntd-title-extra\">{extra}</div>}\n </div>\n )\n}\n"]}
@@ -3,11 +3,12 @@
3
3
  * @Author: 郑泳健
4
4
  * @Date: 2022-12-19 16:45:16
5
5
  * @LastEditors: 郑泳健
6
- * @LastEditTime: 2023-02-07 11:47:03
6
+ * @LastEditTime: 2024-07-22 16:43:38
7
7
  */
8
8
  import * as React from 'react';
9
9
  import { ConfigConsumer } from './context';
10
10
  import LocaleReceiver from 'antd/es/locale-provider/LocaleReceiver';
11
+ import Empty from '../../../empty';
11
12
  const defaultRenderEmpty = conponentName => React.createElement(ConfigConsumer, null, ({
12
13
  getPrefixCls
13
14
  }) => {
@@ -17,16 +18,9 @@ const defaultRenderEmpty = conponentName => React.createElement(ConfigConsumer,
17
18
  }, locale => {
18
19
  return React.createElement("div", {
19
20
  className: `tntd-cascader-no-data-wrapper ${prefix}`
20
- }, React.createElement("img", {
21
- style: {
22
- width: 80,
23
- height: 50,
24
- marginTop: 35
25
- },
26
- src: require('../../img/no-data-s.png').default
27
- }), React.createElement("div", {
28
- className: "tntd-cascader-no-data-content"
29
- }, locale.noData));
21
+ }, React.createElement(Empty, {
22
+ size: "mini"
23
+ }));
30
24
  });
31
25
  });
32
26
  export default defaultRenderEmpty;
@@ -1 +1 @@
1
- {"version":3,"file":"defaultRenderEmpty.js","sourceRoot":"","sources":["../../../../src/tntd-cascader/AntdCascader/component/defaultRenderEmpty.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,cAAc,MAAM,wCAAwC,CAAA;AAEnE,MAAM,kBAAkB,GAAG,CAAC,aAAqB,EAAE,EAAE,CAAC,CACpD,oBAAC,cAAc,QACZ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;IACpB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAEpC,OAAO,CACL,oBAAC,cAAc,IAAC,aAAa,EAAC,cAAc,IACzC,CAAC,MAAM,EAAE,EAAE;QACV,OAAO,CACL,6BAAK,SAAS,EAAE,iCAAiC,MAAM,EAAE;YACvD,6BACE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAC/C,GAAG,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC,OAAO,GAC/C;YACF,6BAAK,SAAS,EAAC,+BAA+B,IAC1C,MAAmC,CAAC,MAAM,CACxC,CACF,CACP,CAAA;IACH,CAAC,CACc,CAClB,CAAA;AACH,CAAC,CACc,CAClB,CAAA;AAID,eAAe,kBAAkB,CAAA","sourcesContent":["/*\n * @Descripttion: 空状态\n * @Author: 郑泳健\n * @Date: 2022-12-19 16:45:16\n * @LastEditors: 郑泳健\n * @LastEditTime: 2023-02-07 11:47:03\n */\nimport * as React from 'react'\nimport { ConfigConsumer } from './context'\nimport LocaleReceiver from 'antd/es/locale-provider/LocaleReceiver'\n\nconst defaultRenderEmpty = (conponentName: string) => (\n <ConfigConsumer>\n {({ getPrefixCls }) => {\n const prefix = getPrefixCls('empty')\n\n return (\n <LocaleReceiver componentName=\"TntdCascader\">\n {(locale) => {\n return (\n <div className={`tntd-cascader-no-data-wrapper ${prefix}`}>\n <img\n style={{ width: 80, height: 50, marginTop: 35 }}\n src={require('../../img/no-data-s.png').default}\n />\n <div className=\"tntd-cascader-no-data-content\">\n {(locale as Record<'noData', object>).noData}\n </div>\n </div>\n )\n }}\n </LocaleReceiver>\n )\n }}\n </ConfigConsumer>\n)\n\nexport type RenderEmptyHandler = typeof defaultRenderEmpty\n\nexport default defaultRenderEmpty\n"]}
1
+ {"version":3,"file":"defaultRenderEmpty.js","sourceRoot":"","sources":["../../../../src/tntd-cascader/AntdCascader/component/defaultRenderEmpty.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,cAAc,MAAM,wCAAwC,CAAA;AACnE,OAAO,KAAK,MAAM,gBAAgB,CAAA;AAElC,MAAM,kBAAkB,GAAG,CAAC,aAAqB,EAAE,EAAE,CAAC,CACpD,oBAAC,cAAc,QACZ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;IACpB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAEpC,OAAO,CACL,oBAAC,cAAc,IAAC,aAAa,EAAC,cAAc,IACzC,CAAC,MAAM,EAAE,EAAE;QACV,OAAO,CACL,6BAAK,SAAS,EAAE,iCAAiC,MAAM,EAAE;YACvD,oBAAC,KAAK,IAAC,IAAI,EAAC,MAAM,GAAG,CACjB,CACP,CAAA;IACH,CAAC,CACc,CAClB,CAAA;AACH,CAAC,CACc,CAClB,CAAA;AAID,eAAe,kBAAkB,CAAA","sourcesContent":["/*\n * @Descripttion: 空状态\n * @Author: 郑泳健\n * @Date: 2022-12-19 16:45:16\n * @LastEditors: 郑泳健\n * @LastEditTime: 2024-07-22 16:43:38\n */\nimport * as React from 'react'\nimport { ConfigConsumer } from './context'\nimport LocaleReceiver from 'antd/es/locale-provider/LocaleReceiver'\nimport Empty from '../../../empty'\n\nconst defaultRenderEmpty = (conponentName: string) => (\n <ConfigConsumer>\n {({ getPrefixCls }) => {\n const prefix = getPrefixCls('empty')\n\n return (\n <LocaleReceiver componentName=\"TntdCascader\">\n {(locale) => {\n return (\n <div className={`tntd-cascader-no-data-wrapper ${prefix}`}>\n <Empty size=\"mini\" />\n </div>\n )\n }}\n </LocaleReceiver>\n )\n }}\n </ConfigConsumer>\n)\n\nexport type RenderEmptyHandler = typeof defaultRenderEmpty\n\nexport default defaultRenderEmpty\n"]}
@@ -1290,7 +1290,7 @@
1290
1290
  .tntd-cascader-menu-item-active:not(.tntd-cascader-menu-item-disabled),
1291
1291
  .tntd-cascader-menu-item-active:not(.tntd-cascader-menu-item-disabled):hover {
1292
1292
  background-color: @bg-grey-second;
1293
- font-weight: 600
1293
+ // font-weight: 600
1294
1294
  }
1295
1295
 
1296
1296
  .tntd-cascader-menu-item-content {
@@ -1886,6 +1886,16 @@
1886
1886
  .tntd-select:not(.tntd-select-customize-input) .tntd-select-selector input {
1887
1887
  cursor: pointer
1888
1888
  }
1889
+ // compact的样式 start
1890
+ .ant-input-group.ant-input-group-compact>.tntd-select>.tntd-select-selector{
1891
+ border-radius: 0;
1892
+ }
1893
+ .ant-input-group.ant-input-group-compact>*:last-child,
1894
+ .ant-input-group.ant-input-group-compact>.tntd-select:last-child>.tntd-select-selector{
1895
+ border-top-right-radius: 2px;
1896
+ border-bottom-right-radius: 2px;
1897
+ }
1898
+ // compact的样式 end
1889
1899
 
1890
1900
  .tntd-select-show-search.tntd-select:not(.tntd-select-customize-input) .tntd-select-selector {
1891
1901
  cursor: text
@@ -2322,7 +2332,7 @@
2322
2332
  .tntd-cascader-no-data-content{
2323
2333
  font-family: PingFangSC-Regular;
2324
2334
  font-size: 14px;
2325
- color: #454F64;
2335
+ color: rgba(0, 0, 0, 0.25);
2326
2336
  margin-top: 6
2327
2337
  }
2328
2338
 
@@ -24,7 +24,8 @@ export default function Column({
24
24
  searchValue,
25
25
  level,
26
26
  dropdownVisible,
27
- optionHeight
27
+ optionHeight,
28
+ isEmpty
28
29
  }) {
29
30
  const ref = React.useRef(null);
30
31
  const menuPrefixCls = `${prefixCls}-menu ${prefixCls}-menu-${level}`;
@@ -96,7 +97,7 @@ export default function Column({
96
97
  }, React.createElement(List, {
97
98
  className: optionInfoList[0].fullPathKey === '__EMPTY__' || !!searchValue ? 'rc-virtual-list-full' : '',
98
99
  data: optionInfoList,
99
- height: 180,
100
+ height: isEmpty ? 'auto' : 180,
100
101
  itemHeight: optionHeight || 36,
101
102
  itemKey: "value",
102
103
  ref: ref
@@ -1 +1 @@
1
- {"version":3,"file":"Column.js","sourceRoot":"","sources":["../../../../src/tntd-cascader/rc-cascader/OptionList/Column.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport * as React from 'react'\nimport classNames from 'classnames'\nimport { isLeaf, toPathKey } from '../utils/commonUtil'\nimport CascaderContext from '../context'\nimport Checkbox from './Checkbox'\nimport type { DefaultOptionType, SingleValueType } from '../Cascader'\nimport { SEARCH_MARK } from '../hooks/useSearchOptions'\nimport List, { ListRef } from 'rc-virtual-list'\nimport type { RenderItem } from '../context'\n\nexport const FIX_LABEL = '__cascader_fix_label__'\n\nexport interface ColumnProps {\n prefixCls: string\n multiple?: boolean\n options: DefaultOptionType[]\n /** Current Column opened item key */\n activeValue?: React.Key\n /** The value path before current column */\n prevValuePath: React.Key[]\n onToggleOpen: (open: boolean) => void\n onSelect: (valuePath: SingleValueType, leaf: boolean) => void\n onActive: (valuePath: SingleValueType) => void\n checkedSet: Set<React.Key>\n halfCheckedSet: Set<React.Key>\n loadingKeys: React.Key[]\n isSelectable: (option: DefaultOptionType) => boolean\n renderItem?: (item: RenderItem) => React.ReactNode\n searchValue?: string\n level?: number\n dropdownVisible?: boolean\n optionHeight?: number\n}\n\nexport default function Column({\n prefixCls,\n multiple,\n options,\n activeValue,\n prevValuePath,\n onToggleOpen,\n onSelect,\n onActive,\n checkedSet,\n halfCheckedSet,\n loadingKeys,\n isSelectable,\n renderItem,\n searchValue,\n level,\n dropdownVisible,\n optionHeight,\n}: ColumnProps) {\n const ref = React.useRef<ListRef>(null)\n const menuPrefixCls = `${prefixCls}-menu ${prefixCls}-menu-${level}`\n const menuItemPrefixCls = `${prefixCls}-menu-item`\n\n const {\n fieldNames,\n changeOnSelect,\n expandTrigger,\n expandIcon,\n loadingIcon,\n dropdownMenuColumnStyle,\n } = React.useContext(CascaderContext)\n\n const hoverOpen = expandTrigger === 'hover'\n\n /** 单选情况下滚动到相应的位置 */\n React.useEffect(() => {\n let timer = null\n if (ref.current && ref.current.scrollTo && !multiple && dropdownVisible) {\n const index = options.findIndex((it) => it[fieldNames.value] === activeValue)\n\n if (index > 0 && !isNaN(index)) {\n timer = window.setTimeout(() => {\n ref.current.scrollTo((optionHeight || 36) * index)\n }, 5)\n }\n }\n\n return () => {\n if (timer) {\n window.clearTimeout(timer)\n }\n timer = null\n }\n }, [multiple, activeValue, options, fieldNames, dropdownVisible, optionHeight])\n\n // ============================ Option ============================\n const optionInfoList = React.useMemo(\n () =>\n options.map((option) => {\n const { disabled } = option\n const searchOptions = option[SEARCH_MARK]\n const label = option[FIX_LABEL] ?? option[fieldNames.label]\n const value = option[fieldNames.value]\n\n const isMergedLeaf = isLeaf(option, fieldNames)\n\n // Get real value of option. Search option is different way.\n const fullPath = searchOptions\n ? // @ts-ignore\n searchOptions.map((opt) => opt[fieldNames.value])\n : [...prevValuePath, value]\n const fullPathKey = toPathKey(fullPath)\n\n const isLoading = loadingKeys.includes(fullPathKey)\n\n // >>>>> checked\n const checked = checkedSet.has(fullPathKey)\n\n // >>>>> halfChecked\n const halfChecked = halfCheckedSet.has(fullPathKey)\n\n return {\n disabled,\n label,\n value,\n isLeaf: isMergedLeaf,\n isLoading,\n checked,\n halfChecked,\n option,\n fullPath,\n fullPathKey,\n }\n }),\n [options, checkedSet, fieldNames, halfCheckedSet, loadingKeys, prevValuePath]\n )\n // ============================ Render ============================\n return (\n <ul className={menuPrefixCls} role=\"menu\">\n <List\n className={\n optionInfoList[0].fullPathKey === '__EMPTY__' || !!searchValue\n ? 'rc-virtual-list-full'\n : ''\n }\n data={optionInfoList}\n height={180}\n itemHeight={optionHeight || 36}\n itemKey=\"value\"\n ref={ref}\n >\n {({\n disabled,\n label,\n value,\n isLeaf: isMergedLeaf,\n isLoading,\n checked,\n halfChecked,\n option,\n fullPath,\n fullPathKey,\n }) => {\n // >>>>> Open\n const triggerOpenPath = () => {\n if (!disabled && (!hoverOpen || !isMergedLeaf)) {\n onActive(fullPath)\n }\n }\n\n // >>>>> Selection\n const triggerSelect = () => {\n if (isSelectable(option)) {\n onSelect(fullPath, isMergedLeaf)\n }\n }\n\n // >>>>> Title\n let title: string\n if (typeof option.title === 'string') {\n title = option.title\n } else if (typeof label === 'string') {\n title = label\n }\n return (\n <li\n key={fullPathKey}\n className={classNames(menuItemPrefixCls, {\n [`${menuItemPrefixCls}-expand`]: !isMergedLeaf,\n [`${menuItemPrefixCls}-active`]: activeValue === value,\n [`${menuItemPrefixCls}-disabled`]: disabled,\n [`${menuItemPrefixCls}-loading`]: isLoading,\n })}\n style={dropdownMenuColumnStyle}\n role=\"menuitemcheckbox\"\n // @ts-ignore\n title={title}\n aria-checked={checked}\n data-path-key={fullPathKey}\n onClick={() => {\n triggerOpenPath()\n if (!multiple || isMergedLeaf) {\n triggerSelect()\n }\n }}\n onDoubleClick={() => {\n if (changeOnSelect) {\n onToggleOpen(false)\n }\n }}\n onMouseEnter={() => {\n if (hoverOpen) {\n triggerOpenPath()\n }\n }}\n onMouseDown={(e) => {\n // Prevent selector from blurring\n e.preventDefault()\n }}\n >\n {multiple && (\n <Checkbox\n prefixCls={`${prefixCls}-checkbox`}\n checked={checked}\n halfChecked={halfChecked}\n disabled={disabled}\n onClick={(e: React.MouseEvent<HTMLSpanElement>) => {\n e.stopPropagation()\n triggerSelect()\n }}\n />\n )}\n <div className={`${menuItemPrefixCls}-content`}>\n {optionInfoList[0].fullPathKey !== '__EMPTY__' && renderItem\n ? renderItem(option, level)\n : label}\n </div>\n {!isLoading && expandIcon && !isMergedLeaf && (\n <div className={`${menuItemPrefixCls}-expand-icon`}>{expandIcon}</div>\n )}\n {isLoading && loadingIcon && (\n <div className={`${menuItemPrefixCls}-loading-icon`}>{loadingIcon}</div>\n )}\n </li>\n )\n }}\n </List>\n </ul>\n )\n}\n"]}
1
+ {"version":3,"file":"Column.js","sourceRoot":"","sources":["../../../../src/tntd-cascader/rc-cascader/OptionList/Column.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport * as React from 'react'\nimport classNames from 'classnames'\nimport { isLeaf, toPathKey } from '../utils/commonUtil'\nimport CascaderContext from '../context'\nimport Checkbox from './Checkbox'\nimport type { DefaultOptionType, SingleValueType } from '../Cascader'\nimport { SEARCH_MARK } from '../hooks/useSearchOptions'\nimport List, { ListRef } from 'rc-virtual-list'\nimport type { RenderItem } from '../context'\n\nexport const FIX_LABEL = '__cascader_fix_label__'\n\nexport interface ColumnProps {\n prefixCls: string\n multiple?: boolean\n options: DefaultOptionType[]\n /** Current Column opened item key */\n activeValue?: React.Key\n /** The value path before current column */\n prevValuePath: React.Key[]\n onToggleOpen: (open: boolean) => void\n onSelect: (valuePath: SingleValueType, leaf: boolean) => void\n onActive: (valuePath: SingleValueType) => void\n checkedSet: Set<React.Key>\n halfCheckedSet: Set<React.Key>\n loadingKeys: React.Key[]\n isSelectable: (option: DefaultOptionType) => boolean\n renderItem?: (item: RenderItem) => React.ReactNode\n searchValue?: string\n level?: number\n dropdownVisible?: boolean\n optionHeight?: number\n}\n\nexport default function Column({\n prefixCls,\n multiple,\n options,\n activeValue,\n prevValuePath,\n onToggleOpen,\n onSelect,\n onActive,\n checkedSet,\n halfCheckedSet,\n loadingKeys,\n isSelectable,\n renderItem,\n searchValue,\n level,\n dropdownVisible,\n optionHeight,\n isEmpty,\n}: ColumnProps) {\n const ref = React.useRef<ListRef>(null)\n const menuPrefixCls = `${prefixCls}-menu ${prefixCls}-menu-${level}`\n const menuItemPrefixCls = `${prefixCls}-menu-item`\n\n const {\n fieldNames,\n changeOnSelect,\n expandTrigger,\n expandIcon,\n loadingIcon,\n dropdownMenuColumnStyle,\n } = React.useContext(CascaderContext)\n\n const hoverOpen = expandTrigger === 'hover'\n\n /** 单选情况下滚动到相应的位置 */\n React.useEffect(() => {\n let timer = null\n if (ref.current && ref.current.scrollTo && !multiple && dropdownVisible) {\n const index = options.findIndex((it) => it[fieldNames.value] === activeValue)\n\n if (index > 0 && !isNaN(index)) {\n timer = window.setTimeout(() => {\n ref.current.scrollTo((optionHeight || 36) * index)\n }, 5)\n }\n }\n\n return () => {\n if (timer) {\n window.clearTimeout(timer)\n }\n timer = null\n }\n }, [multiple, activeValue, options, fieldNames, dropdownVisible, optionHeight])\n\n // ============================ Option ============================\n const optionInfoList = React.useMemo(\n () =>\n options.map((option) => {\n const { disabled } = option\n const searchOptions = option[SEARCH_MARK]\n const label = option[FIX_LABEL] ?? option[fieldNames.label]\n const value = option[fieldNames.value]\n\n const isMergedLeaf = isLeaf(option, fieldNames)\n\n // Get real value of option. Search option is different way.\n const fullPath = searchOptions\n ? // @ts-ignore\n searchOptions.map((opt) => opt[fieldNames.value])\n : [...prevValuePath, value]\n const fullPathKey = toPathKey(fullPath)\n\n const isLoading = loadingKeys.includes(fullPathKey)\n\n // >>>>> checked\n const checked = checkedSet.has(fullPathKey)\n\n // >>>>> halfChecked\n const halfChecked = halfCheckedSet.has(fullPathKey)\n\n return {\n disabled,\n label,\n value,\n isLeaf: isMergedLeaf,\n isLoading,\n checked,\n halfChecked,\n option,\n fullPath,\n fullPathKey,\n }\n }),\n [options, checkedSet, fieldNames, halfCheckedSet, loadingKeys, prevValuePath]\n )\n // ============================ Render ============================\n return (\n <ul className={menuPrefixCls} role=\"menu\">\n <List\n className={\n optionInfoList[0].fullPathKey === '__EMPTY__' || !!searchValue\n ? 'rc-virtual-list-full'\n : ''\n }\n data={optionInfoList}\n height={isEmpty ? 'auto' : 180}\n itemHeight={optionHeight || 36}\n itemKey=\"value\"\n ref={ref}\n >\n {({\n disabled,\n label,\n value,\n isLeaf: isMergedLeaf,\n isLoading,\n checked,\n halfChecked,\n option,\n fullPath,\n fullPathKey,\n }) => {\n // >>>>> Open\n const triggerOpenPath = () => {\n if (!disabled && (!hoverOpen || !isMergedLeaf)) {\n onActive(fullPath)\n }\n }\n\n // >>>>> Selection\n const triggerSelect = () => {\n if (isSelectable(option)) {\n onSelect(fullPath, isMergedLeaf)\n }\n }\n\n // >>>>> Title\n let title: string\n if (typeof option.title === 'string') {\n title = option.title\n } else if (typeof label === 'string') {\n title = label\n }\n return (\n <li\n key={fullPathKey}\n className={classNames(menuItemPrefixCls, {\n [`${menuItemPrefixCls}-expand`]: !isMergedLeaf,\n [`${menuItemPrefixCls}-active`]: activeValue === value,\n [`${menuItemPrefixCls}-disabled`]: disabled,\n [`${menuItemPrefixCls}-loading`]: isLoading,\n })}\n style={dropdownMenuColumnStyle}\n role=\"menuitemcheckbox\"\n // @ts-ignore\n title={title}\n aria-checked={checked}\n data-path-key={fullPathKey}\n onClick={() => {\n triggerOpenPath()\n if (!multiple || isMergedLeaf) {\n triggerSelect()\n }\n }}\n onDoubleClick={() => {\n if (changeOnSelect) {\n onToggleOpen(false)\n }\n }}\n onMouseEnter={() => {\n if (hoverOpen) {\n triggerOpenPath()\n }\n }}\n onMouseDown={(e) => {\n // Prevent selector from blurring\n e.preventDefault()\n }}\n >\n {multiple && (\n <Checkbox\n prefixCls={`${prefixCls}-checkbox`}\n checked={checked}\n halfChecked={halfChecked}\n disabled={disabled}\n onClick={(e: React.MouseEvent<HTMLSpanElement>) => {\n e.stopPropagation()\n triggerSelect()\n }}\n />\n )}\n <div className={`${menuItemPrefixCls}-content`}>\n {optionInfoList[0].fullPathKey !== '__EMPTY__' && renderItem\n ? renderItem(option, level)\n : label}\n </div>\n {!isLoading && expandIcon && !isMergedLeaf && (\n <div className={`${menuItemPrefixCls}-expand-icon`}>{expandIcon}</div>\n )}\n {isLoading && loadingIcon && (\n <div className={`${menuItemPrefixCls}-loading-icon`}>{loadingIcon}</div>\n )}\n </li>\n )\n }}\n </List>\n </ul>\n )\n}\n"]}
@@ -169,6 +169,7 @@ const RefOptionList = React.forwardRef((props, ref) => {
169
169
  return React.createElement(Column, Object.assign({
170
170
  key: index,
171
171
  level: index,
172
+ isEmpty: isEmpty,
172
173
  optionHeight: optionHeight,
173
174
  dropdownVisible: dropdownVisible
174
175
  }, columnProps, {