@easyv/charts 1.10.22 → 1.10.23
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/lib/components/StereoBar.js +2 -2
- package/lib/utils/index.js +33 -9
- package/package.json +1 -1
- package/src/components/Legend.js +5 -3
- package/src/components/StereoBar.tsx +13 -10
- package/src/utils/index.js +30 -1
|
@@ -109,8 +109,8 @@ var _default = exports["default"] = /*#__PURE__*/(0, _react.memo)(function (_ref
|
|
|
109
109
|
seriesStart = _getSeriesInfo.seriesStart;
|
|
110
110
|
var _data = showHighlight ? getHighlightData(data, extent) : data;
|
|
111
111
|
var isVertical = direction === "vertical";
|
|
112
|
-
var highlightColor = parseMultiColorToSVG(highlightFill, "highlight_gradient_" + id + "_" + name);
|
|
113
|
-
var color = parseMultiColorToSVG(fill, "gradient_" + id + "_" + name);
|
|
112
|
+
var highlightColor = parseMultiColorToSVG((0, _utils.reverseGradientStops)(highlightFill), "highlight_gradient_" + id + "_" + name);
|
|
113
|
+
var color = parseMultiColorToSVG((0, _utils.reverseGradientStops)(fill), "gradient_" + id + "_" + name);
|
|
114
114
|
return /*#__PURE__*/_react["default"].createElement("g", {
|
|
115
115
|
className: "__easyv-band"
|
|
116
116
|
}, /*#__PURE__*/_react["default"].createElement("defs", null, /*#__PURE__*/_react["default"].createElement("filter", {
|
package/lib/utils/index.js
CHANGED
|
@@ -6,11 +6,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.SvgBackground = void 0;
|
|
8
8
|
exports.band = band;
|
|
9
|
-
exports.sortPie = exports.seriesYOrZ = exports.resetStacks = exports.renderCanvasBackground = exports.reduceConfig = exports.mathR = exports.isValidHttpUrl = exports.identity = exports.getTranslate3d = exports.getTranslate2d = exports.getTicksOfAxis = exports.getTickCoord = exports.getStacks = exports.getSeriesInfo = exports.getMultiColorStr = exports.getMousePos = exports.getMargin = exports.getIcon = exports.getGridCoord = exports.getFontStyle = exports.getDomPath = exports.getDataWithPercent = exports.getCurrentStack = exports.getColorList = exports.getChildren = exports.getBreakWord = exports.getBandwidth = exports.getBandSeriesStepAndWidth = exports.getBandBackground = exports.formatFont = exports.filterChildren = exports.dateFormat = exports.dataYOrZ = void 0;
|
|
9
|
+
exports.sortPie = exports.seriesYOrZ = exports.reverseGradientStops = exports.resetStacks = exports.renderCanvasBackground = exports.reduceConfig = exports.mathR = exports.isValidHttpUrl = exports.identity = exports.getTranslate3d = exports.getTranslate2d = exports.getTicksOfAxis = exports.getTickCoord = exports.getStacks = exports.getSeriesInfo = exports.getMultiColorStr = exports.getMousePos = exports.getMargin = exports.getIcon = exports.getGridCoord = exports.getFontStyle = exports.getDomPath = exports.getDataWithPercent = exports.getCurrentStack = exports.getColorList = exports.getChildren = exports.getBreakWord = exports.getBandwidth = exports.getBandSeriesStepAndWidth = exports.getBandBackground = exports.formatFont = exports.filterChildren = exports.dateFormat = exports.dataYOrZ = void 0;
|
|
10
10
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
11
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
14
14
|
var _utils = require("@easyv/utils");
|
|
15
15
|
var _utils2 = require("@easyv/utils/lib/common/utils");
|
|
16
16
|
var _d3v = require("d3v7");
|
|
@@ -193,19 +193,43 @@ var getMultiColorStr = exports.getMultiColorStr = function getMultiColorStr(colo
|
|
|
193
193
|
return result.slice(0, -1) + ")";
|
|
194
194
|
}
|
|
195
195
|
};
|
|
196
|
+
var reverseLinearGradient = function reverseLinearGradient(background) {
|
|
197
|
+
if (!background || typeof background !== "string") {
|
|
198
|
+
return background;
|
|
199
|
+
}
|
|
200
|
+
var match = background.match(/^linear-gradient\(\s*(-?\d*\.?\d+)(deg|turn|grad|rad)\s*,\s*(.+)\)$/i);
|
|
201
|
+
if (!match) {
|
|
202
|
+
return background;
|
|
203
|
+
}
|
|
204
|
+
var _match = (0, _slicedToArray2["default"])(match, 4),
|
|
205
|
+
angleStr = _match[1],
|
|
206
|
+
unit = _match[2],
|
|
207
|
+
stops = _match[3];
|
|
208
|
+
var newAngle = (parseFloat(angleStr) + 180) % 360;
|
|
209
|
+
return "linear-gradient(".concat(newAngle).concat(unit, ", ").concat(stops, ")");
|
|
210
|
+
};
|
|
211
|
+
var getReversedIconBackground = function getReversedIconBackground(background) {
|
|
212
|
+
if (!background || typeof background !== "string" || !background.includes("linear-gradient")) {
|
|
213
|
+
return background;
|
|
214
|
+
}
|
|
215
|
+
return reverseLinearGradient(background);
|
|
216
|
+
};
|
|
196
217
|
var getIcon = exports.getIcon = function getIcon(type, icon) {
|
|
197
218
|
var lineType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "solid";
|
|
198
219
|
switch (type) {
|
|
199
220
|
case "area":
|
|
200
221
|
case "line":
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
222
|
+
{
|
|
223
|
+
var color = icon.background;
|
|
224
|
+
return icon ? _objectSpread(_objectSpread(_objectSpread({}, defaultLineIcon), icon), {}, {
|
|
225
|
+
minWidth: icon.width,
|
|
226
|
+
background: lineType == "solid" ? color : "linear-gradient(90deg, ".concat(color, ", ").concat(color, " 66%, transparent 66%) 0 0/33% 100% repeat")
|
|
227
|
+
}) : defaultLineIcon;
|
|
228
|
+
}
|
|
206
229
|
default:
|
|
207
230
|
return icon ? _objectSpread(_objectSpread(_objectSpread({}, defaultIcon), icon), {}, {
|
|
208
|
-
minWidth: icon.width
|
|
231
|
+
minWidth: icon.width,
|
|
232
|
+
background: getReversedIconBackground(icon.background)
|
|
209
233
|
}) : defaultIcon;
|
|
210
234
|
}
|
|
211
235
|
};
|
|
@@ -607,7 +631,7 @@ var getCurrentStack = exports.getCurrentStack = function getCurrentStack(stack,
|
|
|
607
631
|
return _type == stack.type && _stack == stack.stack && _yOrZ == stack.yOrZ && _s.includes(stack.name);
|
|
608
632
|
});
|
|
609
633
|
};
|
|
610
|
-
var reverseGradientStops = function reverseGradientStops(gradient) {
|
|
634
|
+
var reverseGradientStops = exports.reverseGradientStops = function reverseGradientStops(gradient) {
|
|
611
635
|
var _gradient$linear;
|
|
612
636
|
if (gradient.type !== "linear" || !((_gradient$linear = gradient.linear) !== null && _gradient$linear !== void 0 && _gradient$linear.stops)) {
|
|
613
637
|
return gradient;
|
package/package.json
CHANGED
package/src/components/Legend.js
CHANGED
|
@@ -234,7 +234,10 @@ export default memo(
|
|
|
234
234
|
const fullWidth = componentWidth ?? chartWidth ?? 0;
|
|
235
235
|
// Adaptive+上下:组件总宽;Adaptive+左右:仅 maxWidth = 总宽 − 左右 chart.margin,宽度由内容撑开
|
|
236
236
|
const pieLegendFullWidth = Math.max(0, fullWidth);
|
|
237
|
-
const pieLegendInnerWidth = Math.max(
|
|
237
|
+
const pieLegendInnerWidth = Math.max(
|
|
238
|
+
0,
|
|
239
|
+
fullWidth - marginLeft - marginRight,
|
|
240
|
+
);
|
|
238
241
|
const sideLegendMaxWidth = isSideLegend ? pieLegendInnerWidth : 0;
|
|
239
242
|
const fixedColumnsPerRow = Math.min(
|
|
240
243
|
Math.max(1, Number(gridTemplateColumns) || 1),
|
|
@@ -272,8 +275,7 @@ export default memo(
|
|
|
272
275
|
parseFloat(_icon.minWidth) ||
|
|
273
276
|
parseFloat(icon?.width) ||
|
|
274
277
|
0;
|
|
275
|
-
const sideItemGap =
|
|
276
|
-
Number(iconGap) || parseFloat(_icon.marginRight) || 0;
|
|
278
|
+
const sideItemGap = Number(iconGap) || parseFloat(_icon.marginRight) || 0;
|
|
277
279
|
const sideTextMaxWidth =
|
|
278
280
|
sideLegendMaxWidth > 0
|
|
279
281
|
? Math.max(0, sideLegendMaxWidth - sideIconWidth - sideItemGap)
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import React, { memo } from "react";
|
|
5
5
|
import { min, max } from "d3v7";
|
|
6
|
-
import { getSeriesInfo } from "../utils";
|
|
6
|
+
import { getSeriesInfo, reverseGradientStops } from "../utils";
|
|
7
7
|
|
|
8
8
|
const getHighlightData = (data: Array<DataWithBoundType>, extent: string) => {
|
|
9
9
|
switch (extent) {
|
|
@@ -78,8 +78,8 @@ const getBorderRadius = ({
|
|
|
78
78
|
? "0px " + seriesWidth + "px " + seriesWidth + "px 0"
|
|
79
79
|
: seriesWidth + "px 0 0 " + seriesWidth + "px"
|
|
80
80
|
: positive
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
? seriesWidth / 2 + "px " + seriesWidth / 2 + "px 0 0"
|
|
82
|
+
: "0 0 " + seriesWidth / 2 + "px " + seriesWidth / 2 + "px";
|
|
83
83
|
};
|
|
84
84
|
|
|
85
85
|
export default memo(
|
|
@@ -115,10 +115,13 @@ export default memo(
|
|
|
115
115
|
const isVertical = direction === "vertical";
|
|
116
116
|
|
|
117
117
|
const highlightColor = parseMultiColorToSVG(
|
|
118
|
-
highlightFill,
|
|
119
|
-
"highlight_gradient_" + id + "_" + name
|
|
118
|
+
reverseGradientStops(highlightFill),
|
|
119
|
+
"highlight_gradient_" + id + "_" + name,
|
|
120
|
+
);
|
|
121
|
+
const color = parseMultiColorToSVG(
|
|
122
|
+
reverseGradientStops(fill),
|
|
123
|
+
"gradient_" + id + "_" + name,
|
|
120
124
|
);
|
|
121
|
-
const color = parseMultiColorToSVG(fill, "gradient_" + id + "_" + name);
|
|
122
125
|
return (
|
|
123
126
|
<g className="__easyv-band">
|
|
124
127
|
<defs>
|
|
@@ -148,7 +151,7 @@ export default memo(
|
|
|
148
151
|
data,
|
|
149
152
|
data: { x, y, s },
|
|
150
153
|
}: DataWithBoundType,
|
|
151
|
-
i: number
|
|
154
|
+
i: number,
|
|
152
155
|
) => {
|
|
153
156
|
const y1 = yScaler(isVertical ? end : start);
|
|
154
157
|
const y2 = yScaler(isVertical ? start : end);
|
|
@@ -179,11 +182,11 @@ export default memo(
|
|
|
179
182
|
/>
|
|
180
183
|
</g>
|
|
181
184
|
);
|
|
182
|
-
}
|
|
185
|
+
},
|
|
183
186
|
)}
|
|
184
187
|
</g>
|
|
185
188
|
);
|
|
186
|
-
}
|
|
189
|
+
},
|
|
187
190
|
);
|
|
188
191
|
|
|
189
192
|
const Column3DSkin = function (props: any) {
|
|
@@ -301,7 +304,7 @@ function parseMultiColorToSVG(config: any, id: any) {
|
|
|
301
304
|
stopColor: e.color,
|
|
302
305
|
stopOpacity: opacity,
|
|
303
306
|
});
|
|
304
|
-
})
|
|
307
|
+
}),
|
|
305
308
|
),
|
|
306
309
|
firstColor: getTopColor(_stops, angle),
|
|
307
310
|
};
|
package/src/utils/index.js
CHANGED
|
@@ -158,10 +158,36 @@ const getMultiColorStr = (colors) => {
|
|
|
158
158
|
}
|
|
159
159
|
};
|
|
160
160
|
|
|
161
|
+
const reverseLinearGradient = (background) => {
|
|
162
|
+
if (!background || typeof background !== "string") {
|
|
163
|
+
return background;
|
|
164
|
+
}
|
|
165
|
+
const match = background.match(
|
|
166
|
+
/^linear-gradient\(\s*(-?\d*\.?\d+)(deg|turn|grad|rad)\s*,\s*(.+)\)$/i,
|
|
167
|
+
);
|
|
168
|
+
if (!match) {
|
|
169
|
+
return background;
|
|
170
|
+
}
|
|
171
|
+
const [, angleStr, unit, stops] = match;
|
|
172
|
+
const newAngle = (parseFloat(angleStr) + 180) % 360;
|
|
173
|
+
return `linear-gradient(${newAngle}${unit}, ${stops})`;
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
const getReversedIconBackground = (background) => {
|
|
177
|
+
if (
|
|
178
|
+
!background ||
|
|
179
|
+
typeof background !== "string" ||
|
|
180
|
+
!background.includes("linear-gradient")
|
|
181
|
+
) {
|
|
182
|
+
return background;
|
|
183
|
+
}
|
|
184
|
+
return reverseLinearGradient(background);
|
|
185
|
+
};
|
|
186
|
+
|
|
161
187
|
const getIcon = (type, icon, lineType = "solid") => {
|
|
162
188
|
switch (type) {
|
|
163
189
|
case "area":
|
|
164
|
-
case "line":
|
|
190
|
+
case "line": {
|
|
165
191
|
let color = icon.background;
|
|
166
192
|
return icon
|
|
167
193
|
? {
|
|
@@ -174,12 +200,14 @@ const getIcon = (type, icon, lineType = "solid") => {
|
|
|
174
200
|
: `linear-gradient(90deg, ${color}, ${color} 66%, transparent 66%) 0 0/33% 100% repeat`,
|
|
175
201
|
}
|
|
176
202
|
: defaultLineIcon;
|
|
203
|
+
}
|
|
177
204
|
default:
|
|
178
205
|
return icon
|
|
179
206
|
? {
|
|
180
207
|
...defaultIcon,
|
|
181
208
|
...icon,
|
|
182
209
|
minWidth: icon.width,
|
|
210
|
+
background: getReversedIconBackground(icon.background),
|
|
183
211
|
}
|
|
184
212
|
: defaultIcon;
|
|
185
213
|
}
|
|
@@ -905,4 +933,5 @@ export {
|
|
|
905
933
|
mathR,
|
|
906
934
|
renderCanvasBackground, // 导出 Canvas 绘制方法
|
|
907
935
|
SvgBackground,
|
|
936
|
+
reverseGradientStops,
|
|
908
937
|
};
|