@publishfx/publish-chart 2.1.24 → 2.1.25

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.
@@ -275,9 +275,11 @@ export declare function applyLegendColor(view: any, options?: ApplyLegendColorOp
275
275
  export interface AuxiliaryLineItem {
276
276
  name: string;
277
277
  value: number;
278
- axis?: 'left' | 'right';
278
+ axis?: 'left' | 'right' | '';
279
279
  }
280
280
  export interface ApplyAuxiliaryLineYOptions {
281
+ maxLeft?: number;
282
+ maxRight?: number;
281
283
  stroke?: string;
282
284
  strokeOpacity?: number;
283
285
  labelMaxLength?: number;
@@ -146,29 +146,26 @@ function applyLegendColor(view, options = {}) {
146
146
  }
147
147
  function applyAuxiliaryLineY(view, lines, options = {}) {
148
148
  if (!lines?.length) return;
149
- const { labelMaxLength = 5 } = options;
149
+ const { labelMaxLength = 5, stroke = 'rgb(234, 54, 106)', maxLeft, maxRight } = options;
150
150
  lines.forEach((auxLine)=>{
151
151
  view.lineY().data([
152
152
  {
153
153
  y: auxLine.value
154
154
  }
155
- ]).encode('y', auxLine.value).style('stroke', 'rgb(234, 54, 106)').style('strokeOpacity', 1).style('opacity', 1).style('lineWidth', 2).style('shadowColor', 'transparent').animate(false).scale('y', {
155
+ ]).encode('y', auxLine.value).style('stroke', stroke).style('strokeOpacity', 1).style('opacity', 1).style('lineWidth', 2).style('shadowColor', 'transparent').animate(false).scale('y', {
156
156
  key: auxLine?.axis === 'right' ? 'line' : 'main'
157
157
  }).axis('x', false).label({
158
158
  opacity: 1,
159
159
  dx: -20,
160
160
  dy: 0,
161
- text: splitTextToMultiline(auxLine.name, labelMaxLength, '\n'),
161
+ text: splitTextToMultiline(auxLine.name, labelMaxLength, '<br />'),
162
162
  position: auxLine?.axis === 'right' ? 'bottom-right' : 'bottom-left',
163
- style: {
164
- fill: 'red',
165
- shadowColor: 'red',
166
- fillOpacity: 1,
167
- strokeOpacity: 1,
168
- opacity: 1,
169
- shadowBlur: 10,
170
- shadowOffsetX: 0,
171
- shadowOffsetY: 0
163
+ render: (text)=>{
164
+ let top = auxLine?.name?.length > 5 ? -38 : -24;
165
+ if ((auxLine?.axis === 'left' || auxLine?.axis === '') && maxLeft && auxLine.value > 0.92 * maxLeft || auxLine?.axis === 'right' && maxRight && auxLine.value > 0.92 * maxRight) top = 0;
166
+ top += 'px';
167
+ return `<div style="background-color: rgba(255, 0, 102, 0.15); padding: 5px; border-radius: 5px;font-size: 12px;position: absolute;left: ${auxLine?.axis === 'right' ? '-75px' : '0px'}; top: ${top} ; display:inline-block; min-width: 65px; line-height: 14px; color: #FF0066;
168
+ font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;">${text}</div>`;
172
169
  }
173
170
  });
174
171
  });
@@ -131,7 +131,8 @@ function renderG2BarChart(container, options) {
131
131
  }
132
132
  });
133
133
  applyAuxiliaryLineY(view, auxiliaryLineData, {
134
- labelMaxLength: 5
134
+ labelMaxLength: 5,
135
+ maxLeft: maxY
135
136
  });
136
137
  const nodeResult = applyNodeData(view, nodeData, x, y);
137
138
  if (isDataTag && formatLabel) interval.label({
@@ -17,7 +17,7 @@ function renderG2CombineChart(container, options) {
17
17
  animate: null
18
18
  });
19
19
  const view = getMainView(chart);
20
- view.attr('marginLeft', 0).attr('marginRight', 30).attr('marginTop', 10).attr('marginBottom', 16).animate(false);
20
+ view.attr('marginLeft', 0).attr('marginRight', 30).attr('marginTop', 26).attr('marginBottom', 0).animate(false);
21
21
  view.data(data);
22
22
  const xValueCount = new Set(data.map((d)=>d[x])).size;
23
23
  applyAxisX(view, {
@@ -298,7 +298,10 @@ function renderG2CombineChart(container, options) {
298
298
  tipFontSize: '12px',
299
299
  tipBoxShadow: '0 3px 6px -4px rgba(0, 0, 0, 1)'
300
300
  });
301
- applyAuxiliaryLineY(view, auxiliaryLineData);
301
+ applyAuxiliaryLineY(view, auxiliaryLineData, {
302
+ maxLeft,
303
+ maxRight
304
+ });
302
305
  const nodeResult = applyNodeData(view, nodeData, x, 'groupValue');
303
306
  if (formatLabel) {
304
307
  if (isDataTag) {
@@ -117,7 +117,9 @@ function renderG2LineChart(container, options) {
117
117
  tipFontSize: '12px',
118
118
  tipBoxShadow: '0 3px 6px -4px rgba(0, 0, 0, 1)'
119
119
  });
120
- applyAuxiliaryLineY(view, auxiliaryLineData);
120
+ applyAuxiliaryLineY(view, auxiliaryLineData, {
121
+ maxLeft: maxY
122
+ });
121
123
  const nodeResult = applyNodeData(view, nodeData, x, y);
122
124
  if (isDataTag && formatLabel) {
123
125
  line.label({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@publishfx/publish-chart",
3
- "version": "2.1.24",
3
+ "version": "2.1.25",
4
4
  "description": "A React chart component library for the Publish platform, including BarChart, LineChart, BarLineChart and other visualization components",
5
5
  "type": "module",
6
6
  "keywords": [