Skip to content

Commit cc5d531

Browse files
committed
VueUiXy prevent highlight area from overflowing on the sides when using zoom
1 parent 49b8150 commit cc5d531

File tree

3 files changed

+44
-26
lines changed

3 files changed

+44
-26
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "vue-data-ui",
33
"private": false,
4-
"version": "1.9.9",
4+
"version": "1.9.10",
55
"type": "module",
66
"description": "A user-empowering data visualization Vue components library",
77
"keywords": [

src/components/vue-ui-xy.vue

Lines changed: 41 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,47 @@
423423
</g>
424424
</g>
425425

426+
<!-- HIGHLIGHT AREA -->
427+
<g v-if="hasHighlightArea">
428+
<rect
429+
data-cy="xy-highlight-area"
430+
:x="drawingArea.left + (drawingArea.width / maxSeries) * (chartConfig.chart.highlightArea.from - (slicer.start))"
431+
:y="drawingArea.top"
432+
:height="drawingArea.height"
433+
:width="(drawingArea.width / maxSeries) * highlightAreaSpan"
434+
:fill="`${chartConfig.chart.highlightArea.color}${opacity[chartConfig.chart.highlightArea.opacity]}`"
435+
/>
436+
<foreignObject v-if="chartConfig.chart.highlightArea.caption.text"
437+
:x="(drawingArea.left + (drawingArea.width / maxSeries) * (chartConfig.chart.highlightArea.from - (slicer.start))) - (chartConfig.chart.highlightArea.caption.width === 'auto' ? 0 : chartConfig.chart.highlightArea.caption.width / 2 - (drawingArea.width / maxSeries) * highlightAreaSpan / 2)"
438+
:y="drawingArea.top + chartConfig.chart.highlightArea.caption.offsetY"
439+
style="overflow:visible"
440+
:width="chartConfig.chart.highlightArea.caption.width === 'auto' ? (drawingArea.width / maxSeries) * highlightAreaSpan : chartConfig.chart.highlightArea.caption.width"
441+
442+
>
443+
<div :style="`padding:${chartConfig.chart.highlightArea.caption.padding}px;text-align:${chartConfig.chart.highlightArea.caption.textAlign};font-size:${chartConfig.chart.highlightArea.caption.fontSize}px;color:${chartConfig.chart.highlightArea.caption.color};font-weight:${chartConfig.chart.highlightArea.caption.bold ? 'bold' : 'normal'}`">
444+
{{ chartConfig.chart.highlightArea.caption.text }}
445+
</div>
446+
</foreignObject>
447+
</g>
448+
449+
<!-- LEFT & RIGHT PADDING COVERS -->
450+
<g>
451+
<rect
452+
:x="0"
453+
:y="drawingArea.top"
454+
:width="drawingArea.left - 1"
455+
:height="drawingArea.height"
456+
:fill="chartConfig.chart.backgroundColor"
457+
/>
458+
<rect
459+
:x="drawingArea.right + 1"
460+
:y="drawingArea.top"
461+
:width="chartConfig.chart.width - drawingArea.left - 1"
462+
:height="drawingArea.height"
463+
:fill="chartConfig.chart.backgroundColor"
464+
/>
465+
</g>
466+
426467
<!-- Y LABELS -->
427468
<g v-if="chartConfig.chart.grid.labels.show">
428469
<g v-for="(yLabel, i) in yLabels" :key="`yLabel_${i}`">
@@ -528,29 +569,6 @@
528569
</g>
529570
</g>
530571

531-
<!-- HIGHLITGHT AREA -->
532-
<g v-if="hasHighlightArea">
533-
<rect
534-
data-cy="xy-highlight-area"
535-
:x="drawingArea.left + (drawingArea.width / maxSeries) * (chartConfig.chart.highlightArea.from - (slicer.start))"
536-
:y="drawingArea.top"
537-
:height="drawingArea.height"
538-
:width="(drawingArea.width / maxSeries) * highlightAreaSpan"
539-
:fill="`${chartConfig.chart.highlightArea.color}${opacity[chartConfig.chart.highlightArea.opacity]}`"
540-
/>
541-
<foreignObject v-if="chartConfig.chart.highlightArea.caption.text"
542-
:x="(drawingArea.left + (drawingArea.width / maxSeries) * (chartConfig.chart.highlightArea.from - (slicer.start))) - (chartConfig.chart.highlightArea.caption.width === 'auto' ? 0 : chartConfig.chart.highlightArea.caption.width / 2 - (drawingArea.width / maxSeries) * highlightAreaSpan / 2)"
543-
:y="drawingArea.top + chartConfig.chart.highlightArea.caption.offsetY"
544-
style="overflow:visible"
545-
:width="chartConfig.chart.highlightArea.caption.width === 'auto' ? (drawingArea.width / maxSeries) * highlightAreaSpan : chartConfig.chart.highlightArea.caption.width"
546-
547-
>
548-
<div :style="`padding:${chartConfig.chart.highlightArea.caption.padding}px;text-align:${chartConfig.chart.highlightArea.caption.textAlign};font-size:${chartConfig.chart.highlightArea.caption.fontSize}px;color:${chartConfig.chart.highlightArea.caption.color};font-weight:${chartConfig.chart.highlightArea.caption.bold ? 'bold' : 'normal'}`">
549-
{{ chartConfig.chart.highlightArea.caption.text }}
550-
</div>
551-
</foreignObject>
552-
</g>
553-
554572
<!-- TOOLTIP TRAPS -->
555573
<g v-if="chartConfig.chart.tooltip.show">
556574
<g v-for="(trap, i) in maxSeries" :key="`tooltip_trap_${i}`">

0 commit comments

Comments
 (0)