@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.
@@ -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
+ };
@@ -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 config = useProConfig('ProIcon') || {};
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
- var status = useExternal('https://at.alicdn.com/t/c/font_4063056_jmnz9g5uycp.js');
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("svg", {
94
- className: proIconClassNames,
95
- "aria-hidden": "true",
96
- onClick: onClick,
97
- fill: "currentColor",
98
- style: _objectSpread(_objectSpread({
99
- width: size,
100
- height: size
101
- }, rotateStyle), style),
102
- children: _jsx("use", {
103
- xlinkHref: "#icon-".concat(_type)
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);
@@ -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
- onChange === null || onChange === void 0 ? void 0 : onChange(_checkedValues);
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
- var _state$beforeClearAll;
286
- if ((_state$beforeClearAll = state.beforeClearAllValues) === null || _state$beforeClearAll === void 0 ? void 0 : _state$beforeClearAll.length) {
287
- setState({
288
- open: false,
289
- checkedValues: state.beforeClearAllValues,
290
- beforeClearAllValues: []
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 "./style/index.less";
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
+ };
@@ -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 config = (0, _ProConfigProvider.useProConfig)('ProIcon') || {};
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
- var status = (0, _ahooks.useExternal)('https://at.alicdn.com/t/c/font_4063056_jmnz9g5uycp.js');
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)("svg", {
100
- className: proIconClassNames,
101
- "aria-hidden": "true",
102
- onClick: onClick,
103
- fill: "currentColor",
104
- style: (0, _objectSpread2.default)((0, _objectSpread2.default)({
105
- width: size,
106
- height: size
107
- }, rotateStyle), style),
108
- children: (0, _jsxRuntime.jsx)("use", {
109
- xlinkHref: "#icon-".concat(_type)
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
- onChange === null || onChange === void 0 ? void 0 : onChange(_checkedValues);
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
- var _state$beforeClearAll;
287
- if ((_state$beforeClearAll = state.beforeClearAllValues) === null || _state$beforeClearAll === void 0 ? void 0 : _state$beforeClearAll.length) {
288
- setState({
289
- open: false,
290
- checkedValues: state.beforeClearAllValues,
291
- beforeClearAllValues: []
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 "./style/index.less";
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
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zat-design/sisyphus-react",
3
- "version": "3.4.4-beta.5",
3
+ "version": "3.4.5",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",