tntd 2.8.0-beta.9 → 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.
- package/es/array-input/index.js +57 -42
- package/es/array-input/index.js.map +1 -1
- package/es/array-input/index.less +4 -1
- package/es/button/button.js +3 -7
- package/es/button/button.js.map +1 -1
- package/es/button/button.less +7 -0
- package/es/button/index.js +1 -0
- package/es/button/index.js.map +1 -1
- package/es/collapse/collapse.less +3 -3
- package/es/descriptions/descriptions.js +85 -24
- package/es/descriptions/descriptions.js.map +1 -1
- package/es/descriptions/descriptions.less +63 -62
- package/es/descriptions/style/index.less +1 -0
- package/es/drawer/drawer.js +31 -21
- package/es/drawer/drawer.js.map +1 -1
- package/es/drawer/index.less +11 -12
- package/es/form/form.js +8 -3
- package/es/form/form.js.map +1 -1
- package/es/form/form.less +42 -0
- package/es/form/style/index.less +6 -6
- package/es/handle-icon/index.js +201 -0
- package/es/handle-icon/index.js.map +1 -0
- package/es/handle-icon/index.less +53 -0
- package/es/icon/style/style.less +1 -1
- package/es/index.js +1 -0
- package/es/index.js.map +1 -1
- package/es/input/input.js +10 -6
- package/es/input/input.js.map +1 -1
- package/es/input/style/mixin.less +1 -1
- package/es/locale/en_US.js +3 -0
- package/es/locale/en_US.js.map +1 -1
- package/es/locale/zh_CN.js +3 -0
- package/es/locale/zh_CN.js.map +1 -1
- package/es/mentions/style/index.less +1 -0
- package/es/modal/style/confirm.less +6 -10
- package/es/modal/style/modal.less +4 -2
- package/es/notification/assets/index.js +2 -0
- package/es/notification/assets/index.js.map +1 -0
- package/es/notification/assets/svg-error-tip.js +145 -0
- package/es/notification/assets/svg-error-tip.js.map +1 -0
- package/es/notification/assets/svg-success-tip.js +162 -0
- package/es/notification/assets/svg-success-tip.js.map +1 -0
- package/es/notification/index.js +1 -1
- package/es/notification/index.js.map +1 -1
- package/es/notification/notification.js +80 -0
- package/es/notification/notification.js.map +1 -0
- package/es/notification/notification.less +34 -0
- package/es/notification/style/index.less +1 -0
- package/es/page-container/index.js +1 -1
- package/es/page-container/index.js.map +1 -1
- package/es/page-loading/index.js +1 -1
- package/es/page-loading/index.js.map +1 -1
- package/es/select/select.js +5 -3
- package/es/select/select.js.map +1 -1
- package/es/select/style/index.less +7 -6
- package/es/spin/index.js +3 -2
- package/es/spin/index.js.map +1 -1
- package/es/spin/spin.js +36 -0
- package/es/spin/spin.js.map +1 -0
- package/es/spin/spin.less +9 -0
- package/es/style/themes/default.less +1 -1
- package/es/table/expand.less +49 -0
- package/es/table/hooks/index.js +2 -1
- package/es/table/hooks/index.js.map +1 -1
- package/es/table/hooks/use-expand-fixed.js +80 -0
- package/es/table/hooks/use-expand-fixed.js.map +1 -0
- package/es/table/index.js +1 -0
- package/es/table/index.js.map +1 -1
- package/es/table/style/index.less +77 -39
- package/es/table/style/size.less +1 -0
- package/es/table/table.js +43 -8
- package/es/table/table.js.map +1 -1
- package/es/table/table.less +5 -5
- package/es/table/table.stories.js +413 -2
- package/es/table/table.stories.js.map +1 -1
- package/es/table/utils.js +11 -0
- package/es/table/utils.js.map +1 -1
- package/es/table-container/index.js +1 -1
- package/es/table-container/index.js.map +1 -1
- package/es/table-container/index.less +10 -10
- package/es/tabs-container/index.js +1 -1
- package/es/tabs-container/index.js.map +1 -1
- package/es/tag/color.less +53 -0
- package/es/tag/index.js +11 -2
- package/es/tag/index.js.map +1 -1
- package/es/tag/tag.js +171 -0
- package/es/tag/tag.js.map +1 -0
- package/es/tag/tag.less +228 -0
- package/es/title/index.js +4 -3
- package/es/title/index.js.map +1 -1
- package/es/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +5 -11
- package/es/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js.map +1 -1
- package/es/tntd-cascader/AntdCascader/index.less +12 -2
- package/es/tntd-cascader/rc-cascader/OptionList/Column.js +3 -2
- package/es/tntd-cascader/rc-cascader/OptionList/Column.js.map +1 -1
- package/es/tntd-cascader/rc-cascader/OptionList/index.js +1 -0
- package/es/tntd-cascader/rc-cascader/OptionList/index.js.map +1 -1
- package/es/tntd-form/FormItem/ItemHolder.js +1 -6
- package/es/tntd-form/FormItem/ItemHolder.js.map +1 -1
- package/es/tntd-form/FormItemLabel.js +2 -0
- package/es/tntd-form/FormItemLabel.js.map +1 -1
- package/es/tntd-select/index.js +9 -4
- package/es/tntd-select/index.js.map +1 -1
- package/es/tooltip/index.js +3 -2
- package/es/tooltip/index.js.map +1 -1
- package/es/tooltip/index.less +29 -0
- package/es/tooltip/tooltip.js +33 -0
- package/es/tooltip/tooltip.js.map +1 -0
- package/lib/array-input/index.d.ts +1 -12
- package/lib/array-input/index.d.ts.map +1 -1
- package/lib/array-input/index.js +62 -55
- package/lib/array-input/index.js.map +1 -1
- package/lib/array-input/index.less +4 -1
- package/lib/button/button.d.ts.map +1 -1
- package/lib/button/button.js +2 -14
- package/lib/button/button.js.map +1 -1
- package/lib/button/button.less +7 -0
- package/lib/button/index.d.ts +1 -0
- package/lib/button/index.d.ts.map +1 -1
- package/lib/button/index.js +6 -5
- package/lib/button/index.js.map +1 -1
- package/lib/collapse/collapse.less +3 -3
- package/lib/descriptions/descriptions.d.ts +11 -6
- package/lib/descriptions/descriptions.d.ts.map +1 -1
- package/lib/descriptions/descriptions.js +92 -30
- package/lib/descriptions/descriptions.js.map +1 -1
- package/lib/descriptions/descriptions.less +63 -62
- package/lib/descriptions/style/index.less +1 -0
- package/lib/drawer/drawer.d.ts +3 -0
- package/lib/drawer/drawer.d.ts.map +1 -1
- package/lib/drawer/drawer.js +29 -19
- package/lib/drawer/drawer.js.map +1 -1
- package/lib/drawer/index.less +11 -12
- package/lib/form/form.d.ts +1 -0
- package/lib/form/form.d.ts.map +1 -1
- package/lib/form/form.js +9 -3
- package/lib/form/form.js.map +1 -1
- package/lib/form/form.less +42 -0
- package/lib/form/style/index.less +6 -6
- package/lib/handle-icon/index.d.ts +7 -0
- package/lib/handle-icon/index.d.ts.map +1 -0
- package/lib/handle-icon/index.js +221 -0
- package/lib/handle-icon/index.js.map +1 -0
- package/lib/handle-icon/index.less +53 -0
- package/lib/icon/style/style.less +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -0
- package/lib/index.js.map +1 -1
- package/lib/input/input.js +8 -4
- package/lib/input/input.js.map +1 -1
- package/lib/input/style/mixin.less +1 -1
- package/lib/locale/default.d.ts +3 -0
- package/lib/locale/default.d.ts.map +1 -1
- package/lib/locale/en_US.d.ts +3 -0
- package/lib/locale/en_US.d.ts.map +1 -1
- package/lib/locale/en_US.js +3 -0
- package/lib/locale/en_US.js.map +1 -1
- package/lib/locale/zh_CN.d.ts +3 -0
- package/lib/locale/zh_CN.d.ts.map +1 -1
- package/lib/locale/zh_CN.js +3 -0
- package/lib/locale/zh_CN.js.map +1 -1
- package/lib/mentions/style/index.less +1 -0
- package/lib/modal/style/confirm.less +6 -10
- package/lib/modal/style/modal.less +4 -2
- package/lib/notification/assets/index.d.ts +3 -0
- package/lib/notification/assets/index.d.ts.map +1 -0
- package/lib/notification/assets/index.js +20 -0
- package/lib/notification/assets/index.js.map +1 -0
- package/lib/notification/assets/svg-error-tip.d.ts +4 -0
- package/lib/notification/assets/svg-error-tip.d.ts.map +1 -0
- package/lib/notification/assets/svg-error-tip.js +154 -0
- package/lib/notification/assets/svg-error-tip.js.map +1 -0
- package/lib/notification/assets/svg-success-tip.d.ts +4 -0
- package/lib/notification/assets/svg-success-tip.d.ts.map +1 -0
- package/lib/notification/assets/svg-success-tip.js +171 -0
- package/lib/notification/assets/svg-success-tip.js.map +1 -0
- package/lib/notification/index.d.ts +1 -1
- package/lib/notification/index.d.ts.map +1 -1
- package/lib/notification/index.js +7 -8
- package/lib/notification/index.js.map +1 -1
- package/lib/notification/notification.d.ts +9 -0
- package/lib/notification/notification.d.ts.map +1 -0
- package/lib/notification/notification.js +105 -0
- package/lib/notification/notification.js.map +1 -0
- package/lib/notification/notification.less +34 -0
- package/lib/notification/style/index.less +1 -0
- package/lib/page-container/index.js +1 -1
- package/lib/page-container/index.js.map +1 -1
- package/lib/page-loading/index.js +1 -1
- package/lib/page-loading/index.js.map +1 -1
- package/lib/segmented/index.d.ts +1 -1
- package/lib/select/select.d.ts.map +1 -1
- package/lib/select/select.js +4 -2
- package/lib/select/select.js.map +1 -1
- package/lib/select/style/index.less +7 -6
- package/lib/spin/index.d.ts +3 -2
- package/lib/spin/index.d.ts.map +1 -1
- package/lib/spin/index.js +4 -6
- package/lib/spin/index.js.map +1 -1
- package/lib/spin/spin.d.ts +9 -0
- package/lib/spin/spin.d.ts.map +1 -0
- package/lib/spin/spin.js +44 -0
- package/lib/spin/spin.js.map +1 -0
- package/lib/spin/spin.less +9 -0
- package/lib/style/themes/default.less +1 -1
- package/lib/svg-components/illustration-403.d.ts +1 -1
- package/lib/svg-components/illustration-404.d.ts +1 -1
- package/lib/svg-components/illustration-500.d.ts +1 -1
- package/lib/svg-components/illustration-empty.d.ts +1 -1
- package/lib/svg-components/illustration-failure.d.ts +1 -1
- package/lib/svg-components/illustration-no-access.d.ts +1 -1
- package/lib/svg-components/illustration-no-chart.d.ts +1 -1
- package/lib/svg-components/illustration-no-result.d.ts +1 -1
- package/lib/svg-components/illustration-offline.d.ts +1 -1
- package/lib/svg-components/illustration-success.d.ts +1 -1
- package/lib/table/assets/image-loading-background.d.ts +1 -1
- package/lib/table/assets/image-loading.d.ts +1 -1
- package/lib/table/expand.less +49 -0
- package/lib/table/hooks/index.d.ts +1 -0
- package/lib/table/hooks/index.d.ts.map +1 -1
- package/lib/table/hooks/index.js +11 -0
- package/lib/table/hooks/index.js.map +1 -1
- package/lib/table/hooks/use-expand-fixed.d.ts +4 -0
- package/lib/table/hooks/use-expand-fixed.d.ts.map +1 -0
- package/lib/table/hooks/use-expand-fixed.js +110 -0
- package/lib/table/hooks/use-expand-fixed.js.map +1 -0
- package/lib/table/index.d.ts +1 -0
- package/lib/table/index.d.ts.map +1 -1
- package/lib/table/index.js +1 -0
- package/lib/table/index.js.map +1 -1
- package/lib/table/style/index.less +77 -39
- package/lib/table/style/size.less +1 -0
- package/lib/table/table.d.ts +3 -1
- package/lib/table/table.d.ts.map +1 -1
- package/lib/table/table.js +43 -4
- package/lib/table/table.js.map +1 -1
- package/lib/table/table.less +5 -5
- package/lib/table/table.stories.d.ts +106 -29
- package/lib/table/table.stories.d.ts.map +1 -1
- package/lib/table/table.stories.js +426 -3
- package/lib/table/table.stories.js.map +1 -1
- package/lib/table/utils.d.ts +1 -0
- package/lib/table/utils.d.ts.map +1 -1
- package/lib/table/utils.js +13 -0
- package/lib/table/utils.js.map +1 -1
- package/lib/table-container/index.js +1 -1
- package/lib/table-container/index.js.map +1 -1
- package/lib/table-container/index.less +10 -10
- package/lib/tabs-container/index.js +1 -1
- package/lib/tabs-container/index.js.map +1 -1
- package/lib/tag/color.less +53 -0
- package/lib/tag/index.d.ts +3 -2
- package/lib/tag/index.d.ts.map +1 -1
- package/lib/tag/index.js +15 -9
- package/lib/tag/index.js.map +1 -1
- package/lib/tag/tag.d.ts +41 -0
- package/lib/tag/tag.d.ts.map +1 -0
- package/lib/tag/tag.js +183 -0
- package/lib/tag/tag.js.map +1 -0
- package/lib/tag/tag.less +228 -0
- package/lib/title/index.d.ts +1 -0
- package/lib/title/index.d.ts.map +1 -1
- package/lib/title/index.js +3 -2
- package/lib/title/index.js.map +1 -1
- package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.d.ts.map +1 -1
- package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +5 -11
- package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js.map +1 -1
- package/lib/tntd-cascader/AntdCascader/config/utils.d.ts +1 -1
- package/lib/tntd-cascader/AntdCascader/index.less +12 -2
- package/lib/tntd-cascader/rc-cascader/OptionList/Column.d.ts +1 -1
- package/lib/tntd-cascader/rc-cascader/OptionList/Column.d.ts.map +1 -1
- package/lib/tntd-cascader/rc-cascader/OptionList/Column.js +3 -2
- package/lib/tntd-cascader/rc-cascader/OptionList/Column.js.map +1 -1
- package/lib/tntd-cascader/rc-cascader/OptionList/index.d.ts.map +1 -1
- package/lib/tntd-cascader/rc-cascader/OptionList/index.js +1 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/index.js.map +1 -1
- package/lib/tntd-form/FormItem/ItemHolder.js +1 -6
- package/lib/tntd-form/FormItem/ItemHolder.js.map +1 -1
- package/lib/tntd-form/FormItemLabel.d.ts.map +1 -1
- package/lib/tntd-form/FormItemLabel.js +2 -0
- package/lib/tntd-form/FormItemLabel.js.map +1 -1
- package/lib/tntd-rc-select/_util/PurePanel.d.ts +1 -1
- package/lib/tntd-select/index.d.ts.map +1 -1
- package/lib/tntd-select/index.js +8 -3
- package/lib/tntd-select/index.js.map +1 -1
- package/lib/tooltip/index.d.ts +3 -2
- package/lib/tooltip/index.d.ts.map +1 -1
- package/lib/tooltip/index.js +3 -2
- package/lib/tooltip/index.js.map +1 -1
- package/lib/tooltip/index.less +29 -0
- package/lib/tooltip/tooltip.d.ts +9 -0
- package/lib/tooltip/tooltip.d.ts.map +1 -0
- package/lib/tooltip/tooltip.js +53 -0
- package/lib/tooltip/tooltip.js.map +1 -0
- package/package.json +4 -3
- package/themes/default/variables.less +2 -2
- package/themes/default/variablesVar.less +2 -2
- package/es/array-input/icon.js +0 -25
- package/es/array-input/icon.js.map +0 -1
- package/es/drawer/drawer.less +0 -20
- package/lib/array-input/icon.d.ts +0 -4
- package/lib/array-input/icon.d.ts.map +0 -1
- package/lib/array-input/icon.js +0 -32
- package/lib/array-input/icon.js.map +0 -1
- package/lib/drawer/drawer.less +0 -20
package/es/tag/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tag/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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"]}
|
package/es/tag/tag.less
ADDED
|
@@ -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
|
package/es/title/index.js.map
CHANGED
|
@@ -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;
|
|
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:
|
|
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(
|
|
21
|
-
|
|
22
|
-
|
|
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;
|
|
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:
|
|
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, {
|