@zat-design/sisyphus-react 3.4.4-beta.5 → 3.4.5
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/ProIcon/config/index.d.ts +12 -0
- package/es/ProIcon/config/index.js +15 -1
- package/es/ProIcon/index.js +97 -16
- package/es/ProIcon/propsTypes.d.ts +19 -0
- package/es/ProIcon/utils/index.d.ts +1 -0
- package/es/ProIcon/utils/index.js +23 -0
- package/es/ProThemeTools/component/PrdTools/index.js +16 -0
- package/es/ProTreeModal/index.js +11 -15
- package/es/global.less +38 -2
- package/lib/ProIcon/config/index.d.ts +12 -0
- package/lib/ProIcon/config/index.js +16 -2
- package/lib/ProIcon/index.js +94 -15
- package/lib/ProIcon/propsTypes.d.ts +19 -0
- package/lib/ProIcon/utils/index.d.ts +1 -0
- package/lib/ProIcon/utils/index.js +29 -0
- package/lib/ProThemeTools/component/PrdTools/index.js +16 -0
- package/lib/ProTreeModal/index.js +11 -15
- package/lib/global.less +38 -2
- package/package.json +1 -1
|
@@ -3,3 +3,15 @@ export declare const iconMap: {
|
|
|
3
3
|
'text-cn': string;
|
|
4
4
|
'text-en': string;
|
|
5
5
|
}[];
|
|
6
|
+
export declare const themeMap: {
|
|
7
|
+
'#006AFF': string[];
|
|
8
|
+
'#00BC70': string[];
|
|
9
|
+
'#FF8C16': string[];
|
|
10
|
+
'#A00F20': string[];
|
|
11
|
+
};
|
|
12
|
+
export declare const themeFillMap: {
|
|
13
|
+
'#006AFF': string[];
|
|
14
|
+
'#00BC70': string[];
|
|
15
|
+
'#FF8C16': string[];
|
|
16
|
+
'#A00F20': string[];
|
|
17
|
+
};
|
|
@@ -254,4 +254,18 @@ export var iconMap = [{
|
|
|
254
254
|
type: 'tiaozhengxuhao',
|
|
255
255
|
'text-cn': '调整序号',
|
|
256
256
|
'text-en': 'adjust order'
|
|
257
|
-
}];
|
|
257
|
+
}];
|
|
258
|
+
// 渐变色icon预设
|
|
259
|
+
export var themeMap = {
|
|
260
|
+
'#006AFF': ['#ADDDFF', '#5FB3D8', '#4181FF'],
|
|
261
|
+
'#00BC70': ['#FFFFFF', '#54DFA7', '#00BC70'],
|
|
262
|
+
'#FF8C16': ['#FFFFFF', '#FFA74E', '#FF8C17'],
|
|
263
|
+
'#A00F20': ['#FFFFFF', '#E47B7B', '#A00E20']
|
|
264
|
+
};
|
|
265
|
+
// 双色icon预设
|
|
266
|
+
export var themeFillMap = {
|
|
267
|
+
'#006AFF': ['none', '#87F1FC', 'black', '#4181FF'],
|
|
268
|
+
'#00BC70': ['none', '#05FFEC', 'black', '#00BC70'],
|
|
269
|
+
'#FF8C16': ['none', '#FED736', 'black', '#FF8C17'],
|
|
270
|
+
'#A00F20': ['none', '#FD8357', 'black', '#A00E20']
|
|
271
|
+
};
|
package/es/ProIcon/index.js
CHANGED
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
import "antd/es/button/style";
|
|
2
2
|
import _Button from "antd/es/button";
|
|
3
|
+
import "antd/es/tooltip/style";
|
|
4
|
+
import _Tooltip from "antd/es/tooltip";
|
|
3
5
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
6
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
5
|
-
var _excluded = ["type", "onClick", "size", "color", "className", "style", "spin", "rotate", "theme", "disabled", "mode", "buttonProps", "children", "mapList"];
|
|
7
|
+
var _excluded = ["type", "onClick", "size", "color", "className", "style", "spin", "rotate", "theme", "disabled", "mode", "buttonProps", "children", "mapList", "src", "actionMap"];
|
|
6
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
9
|
import { useExternal } from 'ahooks';
|
|
8
10
|
import classNames from 'classnames';
|
|
9
11
|
import { uniqBy } from 'lodash';
|
|
12
|
+
import { ReactSVG } from 'react-svg';
|
|
10
13
|
import { useProConfig } from '../ProConfigProvider';
|
|
11
|
-
import { iconMap } from './config';
|
|
14
|
+
import { iconMap, themeMap, themeFillMap } from './config';
|
|
15
|
+
import { recurseGetNodes } from './utils';
|
|
12
16
|
import locale from '../locale';
|
|
13
17
|
var ProIcon = function ProIcon(props) {
|
|
14
|
-
var
|
|
18
|
+
var _useProConfig = useProConfig(),
|
|
19
|
+
state = _useProConfig.state;
|
|
20
|
+
var config = state.ProIcon,
|
|
21
|
+
antdTheme = state.theme;
|
|
15
22
|
var _config = _objectSpread(_objectSpread({}, config), props !== null && props !== void 0 ? props : {});
|
|
16
23
|
var _config$type = _config.type,
|
|
17
24
|
type = _config$type === void 0 ? null : _config$type,
|
|
@@ -35,11 +42,17 @@ var ProIcon = function ProIcon(props) {
|
|
|
35
42
|
children = _config.children,
|
|
36
43
|
_config$mapList = _config.mapList,
|
|
37
44
|
mapList = _config$mapList === void 0 ? [] : _config$mapList,
|
|
45
|
+
src = _config.src,
|
|
46
|
+
actionMap = _config.actionMap,
|
|
38
47
|
reset = _objectWithoutProperties(_config, _excluded);
|
|
48
|
+
// 主题色
|
|
49
|
+
var _ref = antdTheme !== null && antdTheme !== void 0 ? antdTheme : {},
|
|
50
|
+
_ref$primaryColor = _ref.primaryColor,
|
|
51
|
+
primaryColor = _ref$primaryColor === void 0 ? '#006AFF' : _ref$primaryColor;
|
|
39
52
|
// 语言
|
|
40
53
|
var language = locale.ProIcon.language;
|
|
41
54
|
// 加载内部icon
|
|
42
|
-
|
|
55
|
+
useExternal('https://at.alicdn.com/t/c/font_4063056_jmnz9g5uycp.js');
|
|
43
56
|
var rotateStyle = rotate ? {
|
|
44
57
|
msTransform: "rotate(".concat(rotate, "deg)"),
|
|
45
58
|
transform: "rotate(".concat(rotate, "deg)")
|
|
@@ -61,6 +74,8 @@ var ProIcon = function ProIcon(props) {
|
|
|
61
74
|
var mergedMapList = uniqBy(mapList.concat(iconMap), targetTextFill);
|
|
62
75
|
var _type = type;
|
|
63
76
|
var _text = children;
|
|
77
|
+
// svg图标对应文本
|
|
78
|
+
var iconText = '';
|
|
64
79
|
var typeIsExistAndIncludeEnglish = _type && /[a-zA-Z]/.test(_type);
|
|
65
80
|
// 模式为icon下,对传入的text进行指定语言-icon 映射
|
|
66
81
|
if (isIconMode && !type) {
|
|
@@ -70,6 +85,7 @@ var ProIcon = function ProIcon(props) {
|
|
|
70
85
|
});
|
|
71
86
|
if (target) {
|
|
72
87
|
_type = target === null || target === void 0 ? void 0 : target.type;
|
|
88
|
+
iconText = target[targetTextFill];
|
|
73
89
|
}
|
|
74
90
|
}
|
|
75
91
|
}
|
|
@@ -84,24 +100,89 @@ var ProIcon = function ProIcon(props) {
|
|
|
84
100
|
}
|
|
85
101
|
}
|
|
86
102
|
}
|
|
103
|
+
var svgProps = {
|
|
104
|
+
className: proIconClassNames,
|
|
105
|
+
fill: 'currentColor',
|
|
106
|
+
style: _objectSpread(_objectSpread({
|
|
107
|
+
width: size,
|
|
108
|
+
height: size
|
|
109
|
+
}, rotateStyle), style)
|
|
110
|
+
};
|
|
87
111
|
var RenderIcon = _jsx("span", _objectSpread(_objectSpread({
|
|
88
112
|
className: "anticon",
|
|
89
113
|
style: {
|
|
90
114
|
color: color
|
|
91
115
|
}
|
|
92
116
|
}, reset), {}, {
|
|
93
|
-
children: _jsx(
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
},
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
117
|
+
children: _jsx(_Tooltip, {
|
|
118
|
+
title: iconText,
|
|
119
|
+
children: !src ? _jsx("svg", _objectSpread(_objectSpread({}, svgProps), {}, {
|
|
120
|
+
onClick: onClick,
|
|
121
|
+
"aria-hidden": "true",
|
|
122
|
+
children: _jsx("use", {
|
|
123
|
+
xlinkHref: "#icon-".concat(_type)
|
|
124
|
+
})
|
|
125
|
+
})) : _jsx(ReactSVG, _objectSpread(_objectSpread({}, svgProps), {}, {
|
|
126
|
+
// @ts-ignore
|
|
127
|
+
onClick: onClick,
|
|
128
|
+
"aria-hidden": "true",
|
|
129
|
+
src: src,
|
|
130
|
+
beforeInjection: function beforeInjection(svg) {
|
|
131
|
+
if (actionMap && svg) {
|
|
132
|
+
var _actionMap$themeMap, _actionMap$themeFillM, _actionMap$gradation, _actionMap$fill;
|
|
133
|
+
// 项目内置的四种主题匹配渐变色
|
|
134
|
+
var mergeThemeMap = _objectSpread(_objectSpread({}, themeMap), (_actionMap$themeMap = actionMap.themeMap) !== null && _actionMap$themeMap !== void 0 ? _actionMap$themeMap : {});
|
|
135
|
+
// 项目内置的四种双色匹配fill
|
|
136
|
+
var mergeFillThemeMap = _objectSpread(_objectSpread({}, themeFillMap), (_actionMap$themeFillM = actionMap.themeFillMap) !== null && _actionMap$themeFillM !== void 0 ? _actionMap$themeFillM : {});
|
|
137
|
+
var _gradList = mergeThemeMap[primaryColor];
|
|
138
|
+
var _fillList = mergeFillThemeMap[primaryColor];
|
|
139
|
+
// 渐变操作序列
|
|
140
|
+
var gradList = (_actionMap$gradation = actionMap === null || actionMap === void 0 ? void 0 : actionMap.gradation) !== null && _actionMap$gradation !== void 0 ? _actionMap$gradation : _gradList;
|
|
141
|
+
// 填充操作序列
|
|
142
|
+
var fillList = (_actionMap$fill = actionMap === null || actionMap === void 0 ? void 0 : actionMap.fill) !== null && _actionMap$fill !== void 0 ? _actionMap$fill : _fillList;
|
|
143
|
+
// 节点收集
|
|
144
|
+
var nodeMap = {
|
|
145
|
+
// 渐变色节点收集
|
|
146
|
+
gradation: [],
|
|
147
|
+
// 具有fill属性的节点收集
|
|
148
|
+
fill: []
|
|
149
|
+
};
|
|
150
|
+
// 目前只支持处理渐变及fill填充
|
|
151
|
+
var types = Reflect.ownKeys(nodeMap !== null && nodeMap !== void 0 ? nodeMap : {});
|
|
152
|
+
types.forEach(function (typeKey) {
|
|
153
|
+
recurseGetNodes(typeKey, svg, nodeMap[typeKey]);
|
|
154
|
+
});
|
|
155
|
+
if ((gradList === null || gradList === void 0 ? void 0 : gradList.length) > 0) {
|
|
156
|
+
nodeMap.gradation.forEach(function (item, index) {
|
|
157
|
+
// 下一步准备替换的
|
|
158
|
+
var nextStr = gradList[index];
|
|
159
|
+
// 属性原本的值
|
|
160
|
+
var originStr = item.getAttribute('stop-color');
|
|
161
|
+
if (nextStr && originStr !== nextStr) {
|
|
162
|
+
item.setAttribute('stop-color', nextStr);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
if ((fillList === null || fillList === void 0 ? void 0 : fillList.length) > 0) {
|
|
167
|
+
nodeMap.fill.forEach(function (item, index) {
|
|
168
|
+
// 默认接收的
|
|
169
|
+
var receiveStr = fillList[index];
|
|
170
|
+
// 下一步准备替换的
|
|
171
|
+
var nextFillStr = receiveStr === 'theme' ? primaryColor : receiveStr;
|
|
172
|
+
// 属性原本的值
|
|
173
|
+
var originFill = item.getAttribute('fill');
|
|
174
|
+
// 如果包含url(则是内链,不作替换处理
|
|
175
|
+
if (!(originFill && originFill.includes('url(')) && nextFillStr) {
|
|
176
|
+
// 不同才替换
|
|
177
|
+
if (originFill !== nextFillStr) {
|
|
178
|
+
item.setAttribute('fill', nextFillStr);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}))
|
|
105
186
|
})
|
|
106
187
|
}));
|
|
107
188
|
return !isExtendButtonMode ? RenderIcon : _jsx(_Button, _objectSpread(_objectSpread(_objectSpread({
|
|
@@ -6,7 +6,21 @@ interface iconMap {
|
|
|
6
6
|
'text-cn'?: string;
|
|
7
7
|
'text-en'?: string;
|
|
8
8
|
}
|
|
9
|
+
interface themeMap {
|
|
10
|
+
[key: string]: string[];
|
|
11
|
+
}
|
|
12
|
+
interface actionMap {
|
|
13
|
+
themeMap?: themeMap;
|
|
14
|
+
themeFillMap?: themeMap;
|
|
15
|
+
gradation?: string[];
|
|
16
|
+
fill?: string[];
|
|
17
|
+
}
|
|
9
18
|
export interface ProIconProps {
|
|
19
|
+
/**
|
|
20
|
+
* @description 本地import引入
|
|
21
|
+
* @default ""
|
|
22
|
+
*/
|
|
23
|
+
src?: string;
|
|
10
24
|
/**
|
|
11
25
|
* @description 图标的名称
|
|
12
26
|
* @default -
|
|
@@ -75,5 +89,10 @@ export interface ProIconProps {
|
|
|
75
89
|
* @default 项目内认默映射
|
|
76
90
|
*/
|
|
77
91
|
mapList?: iconMap[];
|
|
92
|
+
/**
|
|
93
|
+
* @description svg变更操作表 请到 ProThemeTools 主题配置查看示例
|
|
94
|
+
* @default
|
|
95
|
+
*/
|
|
96
|
+
actionMap?: actionMap;
|
|
78
97
|
}
|
|
79
98
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const recurseGetNodes: (type: any, node: any, queue: any) => void;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export var recurseGetNodes = function recurseGetNodes(type, node, queue) {
|
|
2
|
+
switch (type) {
|
|
3
|
+
// 渐变
|
|
4
|
+
case 'gradation':
|
|
5
|
+
if (node.nodeName === 'stop' && node.getAttribute('stop-color')) {
|
|
6
|
+
queue.push(node);
|
|
7
|
+
}
|
|
8
|
+
break;
|
|
9
|
+
// 填充
|
|
10
|
+
case 'fill':
|
|
11
|
+
if (node.getAttribute && node.getAttribute('fill')) {
|
|
12
|
+
queue.push(node);
|
|
13
|
+
}
|
|
14
|
+
break;
|
|
15
|
+
default:
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
if (node.childNodes) {
|
|
19
|
+
for (var i = 0; i < node.childNodes.length; i++) {
|
|
20
|
+
recurseGetNodes(type, node.childNodes[i], queue);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
};
|
|
@@ -65,6 +65,14 @@ var PrdTools = function PrdTools(_ref) {
|
|
|
65
65
|
};
|
|
66
66
|
});
|
|
67
67
|
setActive(newArray);
|
|
68
|
+
dispatch({
|
|
69
|
+
type: 'set',
|
|
70
|
+
payload: {
|
|
71
|
+
theme: {
|
|
72
|
+
primaryColor: zauiBrand
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
68
76
|
}
|
|
69
77
|
}, []);
|
|
70
78
|
return _jsxs(NewDrawer, {
|
|
@@ -105,6 +113,14 @@ var PrdTools = function PrdTools(_ref) {
|
|
|
105
113
|
setThemes({
|
|
106
114
|
'zaui-brand': item.color
|
|
107
115
|
});
|
|
116
|
+
dispatch({
|
|
117
|
+
type: 'set',
|
|
118
|
+
payload: {
|
|
119
|
+
theme: {
|
|
120
|
+
primaryColor: item.color
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
});
|
|
108
124
|
},
|
|
109
125
|
children: item.active ? _jsx(CheckOutlined, {}) : null
|
|
110
126
|
}, item.color);
|
package/es/ProTreeModal/index.js
CHANGED
|
@@ -206,10 +206,11 @@ var ProTreeModal = function ProTreeModal(props) {
|
|
|
206
206
|
setState({
|
|
207
207
|
checkedValues: checkedValues,
|
|
208
208
|
checkAll: checkedValues.length === allKeys.length,
|
|
209
|
-
treeViewData: treeViewData
|
|
209
|
+
treeViewData: treeViewData,
|
|
210
|
+
beforeClearAllValues: checkedValues
|
|
210
211
|
});
|
|
211
212
|
}
|
|
212
|
-
}, [value, state.allKeys]);
|
|
213
|
+
}, [value, state.allKeys, state.open]);
|
|
213
214
|
var handleClick = function handleClick() {
|
|
214
215
|
setState({
|
|
215
216
|
open: true
|
|
@@ -276,24 +277,19 @@ var ProTreeModal = function ProTreeModal(props) {
|
|
|
276
277
|
treeViewData: [],
|
|
277
278
|
checkAll: false
|
|
278
279
|
});
|
|
279
|
-
|
|
280
|
+
/* ******** fix:3.4.4-beta.4 点击清空全部不应该回调、所有的都是应该走统一的确定 ********* */
|
|
281
|
+
// onChange?.(_checkedValues);
|
|
280
282
|
};
|
|
281
283
|
/**
|
|
282
284
|
* Drawer close
|
|
283
285
|
*/
|
|
284
286
|
var handleClose = function handleClose() {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
});
|
|
292
|
-
} else {
|
|
293
|
-
setState({
|
|
294
|
-
open: false
|
|
295
|
-
});
|
|
296
|
-
}
|
|
287
|
+
setState({
|
|
288
|
+
open: false,
|
|
289
|
+
checkedValues: state.beforeClearAllValues,
|
|
290
|
+
beforeClearAllValues: []
|
|
291
|
+
});
|
|
292
|
+
// onChange?.(state.beforeClearAllValues);
|
|
297
293
|
openChange === null || openChange === void 0 ? void 0 : openChange(false);
|
|
298
294
|
};
|
|
299
295
|
/**
|
package/es/global.less
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
|
-
@import
|
|
1
|
+
@import './style/index.less';
|
|
2
2
|
|
|
3
|
-
pre
|
|
3
|
+
pre {
|
|
4
4
|
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
|
5
5
|
}
|
|
6
|
+
|
|
7
|
+
* {
|
|
8
|
+
// 火狐浏览器
|
|
9
|
+
scrollbar-width: thin;
|
|
10
|
+
scrollbar-color: #8b8b8b transparent;
|
|
11
|
+
// ie浏览器
|
|
12
|
+
scrollbar-face-color: #8b8b8b;
|
|
13
|
+
scrollbar-highlight-color: #606060;
|
|
14
|
+
scrollbar-3dlight-color: #606060;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
::-webkit-scrollbar {
|
|
18
|
+
width: 16px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// // 滑块
|
|
22
|
+
::-webkit-scrollbar-thumb {
|
|
23
|
+
background-color: #8b8b8b;
|
|
24
|
+
background-clip: padding-box;
|
|
25
|
+
border-color: transparent;
|
|
26
|
+
border-style: dashed;
|
|
27
|
+
border-width: 4px;
|
|
28
|
+
border-radius: 10px;
|
|
29
|
+
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// 轨道
|
|
33
|
+
::-webkit-scrollbar-track {
|
|
34
|
+
background-color: transparent;
|
|
35
|
+
border-radius: 10px;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// 悬浮轨道
|
|
39
|
+
::-webkit-scrollbar-thumb:hover {
|
|
40
|
+
background-color: #606060;
|
|
41
|
+
}
|
|
@@ -3,3 +3,15 @@ export declare const iconMap: {
|
|
|
3
3
|
'text-cn': string;
|
|
4
4
|
'text-en': string;
|
|
5
5
|
}[];
|
|
6
|
+
export declare const themeMap: {
|
|
7
|
+
'#006AFF': string[];
|
|
8
|
+
'#00BC70': string[];
|
|
9
|
+
'#FF8C16': string[];
|
|
10
|
+
'#A00F20': string[];
|
|
11
|
+
};
|
|
12
|
+
export declare const themeFillMap: {
|
|
13
|
+
'#006AFF': string[];
|
|
14
|
+
'#00BC70': string[];
|
|
15
|
+
'#FF8C16': string[];
|
|
16
|
+
'#A00F20': string[];
|
|
17
|
+
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.iconMap = void 0;
|
|
6
|
+
exports.themeMap = exports.themeFillMap = exports.iconMap = void 0;
|
|
7
7
|
var iconMap = exports.iconMap = [{
|
|
8
8
|
type: 'view',
|
|
9
9
|
'text-cn': '查看',
|
|
@@ -260,4 +260,18 @@ var iconMap = exports.iconMap = [{
|
|
|
260
260
|
type: 'tiaozhengxuhao',
|
|
261
261
|
'text-cn': '调整序号',
|
|
262
262
|
'text-en': 'adjust order'
|
|
263
|
-
}];
|
|
263
|
+
}];
|
|
264
|
+
// 渐变色icon预设
|
|
265
|
+
var themeMap = exports.themeMap = {
|
|
266
|
+
'#006AFF': ['#ADDDFF', '#5FB3D8', '#4181FF'],
|
|
267
|
+
'#00BC70': ['#FFFFFF', '#54DFA7', '#00BC70'],
|
|
268
|
+
'#FF8C16': ['#FFFFFF', '#FFA74E', '#FF8C17'],
|
|
269
|
+
'#A00F20': ['#FFFFFF', '#E47B7B', '#A00E20']
|
|
270
|
+
};
|
|
271
|
+
// 双色icon预设
|
|
272
|
+
var themeFillMap = exports.themeFillMap = {
|
|
273
|
+
'#006AFF': ['none', '#87F1FC', 'black', '#4181FF'],
|
|
274
|
+
'#00BC70': ['none', '#05FFEC', 'black', '#00BC70'],
|
|
275
|
+
'#FF8C16': ['none', '#FED736', 'black', '#FF8C17'],
|
|
276
|
+
'#A00F20': ['none', '#FD8357', 'black', '#A00E20']
|
|
277
|
+
};
|
package/lib/ProIcon/index.js
CHANGED
|
@@ -12,12 +12,17 @@ var _ahooks = require("ahooks");
|
|
|
12
12
|
var _antd = require("antd");
|
|
13
13
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
14
14
|
var _lodash = require("lodash");
|
|
15
|
+
var _reactSvg = require("react-svg");
|
|
15
16
|
var _ProConfigProvider = require("../ProConfigProvider");
|
|
16
17
|
var _config2 = require("./config");
|
|
18
|
+
var _utils = require("./utils");
|
|
17
19
|
var _locale = _interopRequireDefault(require("../locale"));
|
|
18
|
-
var _excluded = ["type", "onClick", "size", "color", "className", "style", "spin", "rotate", "theme", "disabled", "mode", "buttonProps", "children", "mapList"];
|
|
20
|
+
var _excluded = ["type", "onClick", "size", "color", "className", "style", "spin", "rotate", "theme", "disabled", "mode", "buttonProps", "children", "mapList", "src", "actionMap"];
|
|
19
21
|
var ProIcon = function ProIcon(props) {
|
|
20
|
-
var
|
|
22
|
+
var _useProConfig = (0, _ProConfigProvider.useProConfig)(),
|
|
23
|
+
state = _useProConfig.state;
|
|
24
|
+
var config = state.ProIcon,
|
|
25
|
+
antdTheme = state.theme;
|
|
21
26
|
var _config = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, config), props !== null && props !== void 0 ? props : {});
|
|
22
27
|
var _config$type = _config.type,
|
|
23
28
|
type = _config$type === void 0 ? null : _config$type,
|
|
@@ -41,11 +46,17 @@ var ProIcon = function ProIcon(props) {
|
|
|
41
46
|
children = _config.children,
|
|
42
47
|
_config$mapList = _config.mapList,
|
|
43
48
|
mapList = _config$mapList === void 0 ? [] : _config$mapList,
|
|
49
|
+
src = _config.src,
|
|
50
|
+
actionMap = _config.actionMap,
|
|
44
51
|
reset = (0, _objectWithoutProperties2.default)(_config, _excluded);
|
|
52
|
+
// 主题色
|
|
53
|
+
var _ref = antdTheme !== null && antdTheme !== void 0 ? antdTheme : {},
|
|
54
|
+
_ref$primaryColor = _ref.primaryColor,
|
|
55
|
+
primaryColor = _ref$primaryColor === void 0 ? '#006AFF' : _ref$primaryColor;
|
|
45
56
|
// 语言
|
|
46
57
|
var language = _locale.default.ProIcon.language;
|
|
47
58
|
// 加载内部icon
|
|
48
|
-
|
|
59
|
+
(0, _ahooks.useExternal)('https://at.alicdn.com/t/c/font_4063056_jmnz9g5uycp.js');
|
|
49
60
|
var rotateStyle = rotate ? {
|
|
50
61
|
msTransform: "rotate(".concat(rotate, "deg)"),
|
|
51
62
|
transform: "rotate(".concat(rotate, "deg)")
|
|
@@ -67,6 +78,8 @@ var ProIcon = function ProIcon(props) {
|
|
|
67
78
|
var mergedMapList = (0, _lodash.uniqBy)(mapList.concat(_config2.iconMap), targetTextFill);
|
|
68
79
|
var _type = type;
|
|
69
80
|
var _text = children;
|
|
81
|
+
// svg图标对应文本
|
|
82
|
+
var iconText = '';
|
|
70
83
|
var typeIsExistAndIncludeEnglish = _type && /[a-zA-Z]/.test(_type);
|
|
71
84
|
// 模式为icon下,对传入的text进行指定语言-icon 映射
|
|
72
85
|
if (isIconMode && !type) {
|
|
@@ -76,6 +89,7 @@ var ProIcon = function ProIcon(props) {
|
|
|
76
89
|
});
|
|
77
90
|
if (target) {
|
|
78
91
|
_type = target === null || target === void 0 ? void 0 : target.type;
|
|
92
|
+
iconText = target[targetTextFill];
|
|
79
93
|
}
|
|
80
94
|
}
|
|
81
95
|
}
|
|
@@ -90,24 +104,89 @@ var ProIcon = function ProIcon(props) {
|
|
|
90
104
|
}
|
|
91
105
|
}
|
|
92
106
|
}
|
|
107
|
+
var svgProps = {
|
|
108
|
+
className: proIconClassNames,
|
|
109
|
+
fill: 'currentColor',
|
|
110
|
+
style: (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
111
|
+
width: size,
|
|
112
|
+
height: size
|
|
113
|
+
}, rotateStyle), style)
|
|
114
|
+
};
|
|
93
115
|
var RenderIcon = (0, _jsxRuntime.jsx)("span", (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
94
116
|
className: "anticon",
|
|
95
117
|
style: {
|
|
96
118
|
color: color
|
|
97
119
|
}
|
|
98
120
|
}, reset), {}, {
|
|
99
|
-
children: (0, _jsxRuntime.jsx)(
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
},
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
121
|
+
children: (0, _jsxRuntime.jsx)(_antd.Tooltip, {
|
|
122
|
+
title: iconText,
|
|
123
|
+
children: !src ? (0, _jsxRuntime.jsx)("svg", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, svgProps), {}, {
|
|
124
|
+
onClick: onClick,
|
|
125
|
+
"aria-hidden": "true",
|
|
126
|
+
children: (0, _jsxRuntime.jsx)("use", {
|
|
127
|
+
xlinkHref: "#icon-".concat(_type)
|
|
128
|
+
})
|
|
129
|
+
})) : (0, _jsxRuntime.jsx)(_reactSvg.ReactSVG, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, svgProps), {}, {
|
|
130
|
+
// @ts-ignore
|
|
131
|
+
onClick: onClick,
|
|
132
|
+
"aria-hidden": "true",
|
|
133
|
+
src: src,
|
|
134
|
+
beforeInjection: function beforeInjection(svg) {
|
|
135
|
+
if (actionMap && svg) {
|
|
136
|
+
var _actionMap$themeMap, _actionMap$themeFillM, _actionMap$gradation, _actionMap$fill;
|
|
137
|
+
// 项目内置的四种主题匹配渐变色
|
|
138
|
+
var mergeThemeMap = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _config2.themeMap), (_actionMap$themeMap = actionMap.themeMap) !== null && _actionMap$themeMap !== void 0 ? _actionMap$themeMap : {});
|
|
139
|
+
// 项目内置的四种双色匹配fill
|
|
140
|
+
var mergeFillThemeMap = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _config2.themeFillMap), (_actionMap$themeFillM = actionMap.themeFillMap) !== null && _actionMap$themeFillM !== void 0 ? _actionMap$themeFillM : {});
|
|
141
|
+
var _gradList = mergeThemeMap[primaryColor];
|
|
142
|
+
var _fillList = mergeFillThemeMap[primaryColor];
|
|
143
|
+
// 渐变操作序列
|
|
144
|
+
var gradList = (_actionMap$gradation = actionMap === null || actionMap === void 0 ? void 0 : actionMap.gradation) !== null && _actionMap$gradation !== void 0 ? _actionMap$gradation : _gradList;
|
|
145
|
+
// 填充操作序列
|
|
146
|
+
var fillList = (_actionMap$fill = actionMap === null || actionMap === void 0 ? void 0 : actionMap.fill) !== null && _actionMap$fill !== void 0 ? _actionMap$fill : _fillList;
|
|
147
|
+
// 节点收集
|
|
148
|
+
var nodeMap = {
|
|
149
|
+
// 渐变色节点收集
|
|
150
|
+
gradation: [],
|
|
151
|
+
// 具有fill属性的节点收集
|
|
152
|
+
fill: []
|
|
153
|
+
};
|
|
154
|
+
// 目前只支持处理渐变及fill填充
|
|
155
|
+
var types = Reflect.ownKeys(nodeMap !== null && nodeMap !== void 0 ? nodeMap : {});
|
|
156
|
+
types.forEach(function (typeKey) {
|
|
157
|
+
(0, _utils.recurseGetNodes)(typeKey, svg, nodeMap[typeKey]);
|
|
158
|
+
});
|
|
159
|
+
if ((gradList === null || gradList === void 0 ? void 0 : gradList.length) > 0) {
|
|
160
|
+
nodeMap.gradation.forEach(function (item, index) {
|
|
161
|
+
// 下一步准备替换的
|
|
162
|
+
var nextStr = gradList[index];
|
|
163
|
+
// 属性原本的值
|
|
164
|
+
var originStr = item.getAttribute('stop-color');
|
|
165
|
+
if (nextStr && originStr !== nextStr) {
|
|
166
|
+
item.setAttribute('stop-color', nextStr);
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
if ((fillList === null || fillList === void 0 ? void 0 : fillList.length) > 0) {
|
|
171
|
+
nodeMap.fill.forEach(function (item, index) {
|
|
172
|
+
// 默认接收的
|
|
173
|
+
var receiveStr = fillList[index];
|
|
174
|
+
// 下一步准备替换的
|
|
175
|
+
var nextFillStr = receiveStr === 'theme' ? primaryColor : receiveStr;
|
|
176
|
+
// 属性原本的值
|
|
177
|
+
var originFill = item.getAttribute('fill');
|
|
178
|
+
// 如果包含url(则是内链,不作替换处理
|
|
179
|
+
if (!(originFill && originFill.includes('url(')) && nextFillStr) {
|
|
180
|
+
// 不同才替换
|
|
181
|
+
if (originFill !== nextFillStr) {
|
|
182
|
+
item.setAttribute('fill', nextFillStr);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}))
|
|
111
190
|
})
|
|
112
191
|
}));
|
|
113
192
|
return !isExtendButtonMode ? RenderIcon : (0, _jsxRuntime.jsx)(_antd.Button, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
@@ -6,7 +6,21 @@ interface iconMap {
|
|
|
6
6
|
'text-cn'?: string;
|
|
7
7
|
'text-en'?: string;
|
|
8
8
|
}
|
|
9
|
+
interface themeMap {
|
|
10
|
+
[key: string]: string[];
|
|
11
|
+
}
|
|
12
|
+
interface actionMap {
|
|
13
|
+
themeMap?: themeMap;
|
|
14
|
+
themeFillMap?: themeMap;
|
|
15
|
+
gradation?: string[];
|
|
16
|
+
fill?: string[];
|
|
17
|
+
}
|
|
9
18
|
export interface ProIconProps {
|
|
19
|
+
/**
|
|
20
|
+
* @description 本地import引入
|
|
21
|
+
* @default ""
|
|
22
|
+
*/
|
|
23
|
+
src?: string;
|
|
10
24
|
/**
|
|
11
25
|
* @description 图标的名称
|
|
12
26
|
* @default -
|
|
@@ -75,5 +89,10 @@ export interface ProIconProps {
|
|
|
75
89
|
* @default 项目内认默映射
|
|
76
90
|
*/
|
|
77
91
|
mapList?: iconMap[];
|
|
92
|
+
/**
|
|
93
|
+
* @description svg变更操作表 请到 ProThemeTools 主题配置查看示例
|
|
94
|
+
* @default
|
|
95
|
+
*/
|
|
96
|
+
actionMap?: actionMap;
|
|
78
97
|
}
|
|
79
98
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const recurseGetNodes: (type: any, node: any, queue: any) => void;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.recurseGetNodes = void 0;
|
|
7
|
+
var recurseGetNodes = exports.recurseGetNodes = function recurseGetNodes(type, node, queue) {
|
|
8
|
+
switch (type) {
|
|
9
|
+
// 渐变
|
|
10
|
+
case 'gradation':
|
|
11
|
+
if (node.nodeName === 'stop' && node.getAttribute('stop-color')) {
|
|
12
|
+
queue.push(node);
|
|
13
|
+
}
|
|
14
|
+
break;
|
|
15
|
+
// 填充
|
|
16
|
+
case 'fill':
|
|
17
|
+
if (node.getAttribute && node.getAttribute('fill')) {
|
|
18
|
+
queue.push(node);
|
|
19
|
+
}
|
|
20
|
+
break;
|
|
21
|
+
default:
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
if (node.childNodes) {
|
|
25
|
+
for (var i = 0; i < node.childNodes.length; i++) {
|
|
26
|
+
recurseGetNodes(type, node.childNodes[i], queue);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
};
|
|
@@ -65,6 +65,14 @@ var PrdTools = function PrdTools(_ref) {
|
|
|
65
65
|
};
|
|
66
66
|
});
|
|
67
67
|
setActive(newArray);
|
|
68
|
+
dispatch({
|
|
69
|
+
type: 'set',
|
|
70
|
+
payload: {
|
|
71
|
+
theme: {
|
|
72
|
+
primaryColor: zauiBrand
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
68
76
|
}
|
|
69
77
|
}, []);
|
|
70
78
|
return (0, _jsxRuntime.jsxs)(NewDrawer, {
|
|
@@ -105,6 +113,14 @@ var PrdTools = function PrdTools(_ref) {
|
|
|
105
113
|
(0, _index.setThemes)({
|
|
106
114
|
'zaui-brand': item.color
|
|
107
115
|
});
|
|
116
|
+
dispatch({
|
|
117
|
+
type: 'set',
|
|
118
|
+
payload: {
|
|
119
|
+
theme: {
|
|
120
|
+
primaryColor: item.color
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
});
|
|
108
124
|
},
|
|
109
125
|
children: item.active ? (0, _jsxRuntime.jsx)(_icons.CheckOutlined, {}) : null
|
|
110
126
|
}, item.color);
|
|
@@ -207,10 +207,11 @@ var ProTreeModal = function ProTreeModal(props) {
|
|
|
207
207
|
setState({
|
|
208
208
|
checkedValues: checkedValues,
|
|
209
209
|
checkAll: checkedValues.length === allKeys.length,
|
|
210
|
-
treeViewData: treeViewData
|
|
210
|
+
treeViewData: treeViewData,
|
|
211
|
+
beforeClearAllValues: checkedValues
|
|
211
212
|
});
|
|
212
213
|
}
|
|
213
|
-
}, [value, state.allKeys]);
|
|
214
|
+
}, [value, state.allKeys, state.open]);
|
|
214
215
|
var handleClick = function handleClick() {
|
|
215
216
|
setState({
|
|
216
217
|
open: true
|
|
@@ -277,24 +278,19 @@ var ProTreeModal = function ProTreeModal(props) {
|
|
|
277
278
|
treeViewData: [],
|
|
278
279
|
checkAll: false
|
|
279
280
|
});
|
|
280
|
-
|
|
281
|
+
/* ******** fix:3.4.4-beta.4 点击清空全部不应该回调、所有的都是应该走统一的确定 ********* */
|
|
282
|
+
// onChange?.(_checkedValues);
|
|
281
283
|
};
|
|
282
284
|
/**
|
|
283
285
|
* Drawer close
|
|
284
286
|
*/
|
|
285
287
|
var handleClose = function handleClose() {
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
});
|
|
293
|
-
} else {
|
|
294
|
-
setState({
|
|
295
|
-
open: false
|
|
296
|
-
});
|
|
297
|
-
}
|
|
288
|
+
setState({
|
|
289
|
+
open: false,
|
|
290
|
+
checkedValues: state.beforeClearAllValues,
|
|
291
|
+
beforeClearAllValues: []
|
|
292
|
+
});
|
|
293
|
+
// onChange?.(state.beforeClearAllValues);
|
|
298
294
|
openChange === null || openChange === void 0 ? void 0 : openChange(false);
|
|
299
295
|
};
|
|
300
296
|
/**
|
package/lib/global.less
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
|
-
@import
|
|
1
|
+
@import './style/index.less';
|
|
2
2
|
|
|
3
|
-
pre
|
|
3
|
+
pre {
|
|
4
4
|
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
|
5
5
|
}
|
|
6
|
+
|
|
7
|
+
* {
|
|
8
|
+
// 火狐浏览器
|
|
9
|
+
scrollbar-width: thin;
|
|
10
|
+
scrollbar-color: #8b8b8b transparent;
|
|
11
|
+
// ie浏览器
|
|
12
|
+
scrollbar-face-color: #8b8b8b;
|
|
13
|
+
scrollbar-highlight-color: #606060;
|
|
14
|
+
scrollbar-3dlight-color: #606060;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
::-webkit-scrollbar {
|
|
18
|
+
width: 16px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// // 滑块
|
|
22
|
+
::-webkit-scrollbar-thumb {
|
|
23
|
+
background-color: #8b8b8b;
|
|
24
|
+
background-clip: padding-box;
|
|
25
|
+
border-color: transparent;
|
|
26
|
+
border-style: dashed;
|
|
27
|
+
border-width: 4px;
|
|
28
|
+
border-radius: 10px;
|
|
29
|
+
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// 轨道
|
|
33
|
+
::-webkit-scrollbar-track {
|
|
34
|
+
background-color: transparent;
|
|
35
|
+
border-radius: 10px;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// 悬浮轨道
|
|
39
|
+
::-webkit-scrollbar-thumb:hover {
|
|
40
|
+
background-color: #606060;
|
|
41
|
+
}
|