Skip to content

Commit f524cca

Browse files
Merge branch 'main-check-merge' of https://github.com/communitiesuk/oflog_svelte_component_library into main-check-merge
2 parents cefb65c + d6487df commit f524cca

File tree

4 files changed

+86
-35
lines changed

4 files changed

+86
-35
lines changed

src/lib/components/data-vis/line-chart/Line.svelte

Lines changed: 22 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -22,28 +22,28 @@
2222
pathStrokeDashArray = "none",
2323
areaFillColor,
2424
includeArea = false,
25-
includeMarkers = false,
25+
markers,
2626
markerShape = "circle",
2727
markerRadius = 5,
2828
markerFill = "grey",
2929
markerStroke = "white",
3030
markerStrokeWidth = 3,
3131
lineFunction,
3232
areaFunction,
33+
xFunction,
34+
yFunction,
3335
lineEnding,
3436
dataId,
35-
// markersDataId,
3637
onClickLine,
3738
onMouseEnterLine,
3839
onMouseLeaveLine,
3940
halo,
4041
chartBackgroundColor,
4142
invisibleStrokeWidth,
4243
interactive,
43-
// onClickMarker,
44-
// onMouseEnterMarker,
45-
// onMouseLeaveMarker,
46-
// onMouseMoveMarker,
44+
onClickMarker,
45+
onMouseEnterMarker,
46+
onMouseLeaveMarker,
4747
// includeLabels,
4848
// labelText,
4949
// labelColor,
@@ -65,10 +65,6 @@
6565
return mappedItems;
6666
}
6767
68-
let handleClick = (e) => onClickLine(e, dataArray, dataId);
69-
let handleEnter = (e) => onMouseEnterLine(e, dataArray, dataId);
70-
let handleLeave = (e) => onMouseLeaveLine(e, dataArray, dataId);
71-
7268
let linePath = lineFunction(dataArray);
7369
</script>
7470
@@ -98,9 +94,9 @@
9894
9995
<g
10096
data-id={dataId}
101-
onclick={handleClick}
102-
onmouseenter={handleEnter}
103-
onmouseleave={handleLeave}
97+
onclick={(e) => onClickLine(e, dataArray, dataId)}
98+
onmouseenter={(e) => onMouseEnterLine(e, dataArray, dataId)}
99+
onmouseleave={(e) => onMouseLeaveLine(e, dataArray, dataId)}
104100
role="button"
105101
tabindex="0"
106102
onkeydown={(e) => e.key === "Enter" && onClickLine(e, dataArray)}
@@ -135,14 +131,13 @@
135131
pointer-events="none"
136132
marker-start={`url(#${lineEnding}-${pathStrokeColor})`}
137133
></path>
138-
<!-- {#if includeMarkers}
134+
{#if markers}
139135
{#each dataArray as marker, i}
140136
<g
141-
data-id={markersDataId + "-" + i}
137+
data-id={"marker-" + i}
142138
onclick={(event) => onClickMarker(event, marker)}
143-
onmouseenter={(event) => onMouseEnterMarker(i)}
144-
onmouseleave={(event) => onMouseLeaveMarker(i)}
145-
onmousemove={(event) => onMouseMove(event, marker)}
139+
onmouseenter={(event) => onMouseEnterMarker(event, marker)}
140+
onmouseleave={(event) => onMouseLeaveMarker(event, marker)}
146141
transform="translate({xFunction(marker.x)},{yFunction(marker.y)})"
147142
role="button"
148143
tabindex="0"
@@ -175,31 +170,31 @@
175170
stroke-width={markerStrokeWidth}
176171
></polygon>
177172
{/if}
178-
{#if includeLabels}
179-
{#if i == hoveredMarker}
173+
{#if false}
174+
{#if i == 1}
180175
<ValueLabel
181176
{marker}
182-
{labelColor}
183-
{labelTextColor}
184-
textContent={parseInput(marker, labelText)}
177+
labelColor="grey"
178+
labelTextColor="black"
179+
textContent={parseInput(marker, marker.y)}
185180
></ValueLabel>
186181
{/if}
187182
{/if}
188183
</g>
189184
{/each}
190-
{/if}-->
185+
{/if}
191186
</g>
192187
193188
<!-- <path
194189
d={pathFunction(dataArray)}
195190
fill="none"
196191
stroke={color}
197192
stroke-width={strokeWidth}
198-
></path>
193+
></path> -->
199194
200-
{#if markers}
195+
<!-- {#if true}
201196
{#each dataArray as marker}
202-
<circle cx={x(marker.x)} cy={y(marker.y)} r="6" stroke="white" fill={color}>
197+
<circle cx={marker.x} cy={marker.y} r="6" stroke="white" fill="black">
203198
</circle>
204199
{/each}
205200
{/if} -->

src/lib/components/data-vis/line-chart/LineChart.svelte

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
onClickLabel,
2727
onMouseEnterLabel,
2828
onMouseLeaveLabel,
29+
onClickMarker,
30+
onMouseEnterMarker,
31+
onMouseLeaveMarker,
2932
svgHeight = 500,
3033
paddingTop = 50,
3134
paddingBottom = 50,
@@ -153,6 +156,9 @@
153156
{onClickLabel}
154157
{onMouseEnterLabel}
155158
{onMouseLeaveLabel}
159+
{onClickMarker}
160+
{onMouseEnterMarker}
161+
{onMouseLeaveMarker}
156162
></Lines>
157163
</g>
158164
<g data-role="y-axis">

src/lib/components/data-vis/line-chart/Lines.svelte

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
onMouseEnterLabel,
2828
onMouseLeaveLabel,
2929
onClickLabel,
30+
onMouseEnterMarker,
31+
onMouseLeaveMarker,
32+
onClickMarker,
3033
} = $props();
3134
3235
let bounds = $state([0, chartHeight]);
@@ -67,9 +70,14 @@
6770
{tier}
6871
{chartBackgroundColor}
6972
{lineFunction}
73+
{xFunction}
74+
{yFunction}
7075
{onMouseEnterLine}
7176
{onMouseLeaveLine}
7277
{onClickLine}
78+
{onMouseEnterMarker}
79+
{onMouseLeaveMarker}
80+
{onClickMarker}
7381
bind:lineClicked
7482
bind:lineHovered
7583
/>

src/wrappers/components/data-vis/line-chart/LineChartWrapper.svelte

Lines changed: 50 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,8 @@
146146
(item) => item == null,
147147
),
148148
);
149+
let checkMarkerInteraction = $state();
150+
$inspect(checkMarkerInteraction);
149151
150152
/**
151153
* ! Step 3 - Add your props
@@ -342,6 +344,46 @@
342344
: (labelClicked = areaCode);
343345
},
344346
},
347+
{
348+
name: "onMouseEnterMarker",
349+
category: "lineEvents",
350+
functionElements: {
351+
functionAsString: `function (event, dataArray, dataId) {
352+
labelHovered = areaCode;
353+
}`,
354+
},
355+
value: function (event, dataArray, dataId) {
356+
checkMarkerInteraction = "enter";
357+
},
358+
},
359+
{
360+
name: "onMouseLeaveMarker",
361+
category: "lineEvents",
362+
functionElements: {
363+
functionAsString: `function (event, dataArray, dataId) {
364+
if (labelClicked !== areaCode) {
365+
labelHovered = null;
366+
}
367+
}`,
368+
},
369+
value: function (event, dataArray, dataId) {
370+
checkMarkerInteraction = "left";
371+
},
372+
},
373+
{
374+
name: "onClickMarker",
375+
category: "lineEvents",
376+
functionElements: {
377+
functionAsString: `function (event, dataArray, dataId) {
378+
labelClicked === areaCode
379+
? ((labelClicked = null), (labelHovered = null))
380+
: (labelClicked = areaCode);
381+
}`,
382+
},
383+
value: function (event, dataArray, dataId) {
384+
checkMarkerInteraction = "clicked";
385+
},
386+
},
345387
{
346388
name: "onMouseEnterLine",
347389
category: "lineEvents",
@@ -591,37 +633,37 @@
591633
pathStrokeColor: colors.black,
592634
pathStrokeWidth: 1,
593635
opacity: 0.05,
594-
interactive: true,
636+
interactive: false,
595637
markers: false,
596638
showLabel: false,
597-
lineEnding: null,
598639
},
599640
primary: {
600641
halo: true,
601642
pathStrokeWidth: 5,
602643
pathStrokeColor: colors.darkgrey,
603-
interactive: true,
644+
interactive: false,
604645
markers: false,
605646
showLabel: !lineClicked && !lineHovered && !labelClicked,
606-
lineEnding: "arrow",
647+
lineEnding: null,
648+
markers: true,
607649
},
608650
clicked: {
609651
pathStrokeColor: colors.ochre,
610652
pathStrokeWidth: 7,
611653
halo: true,
612-
interactive: true,
654+
interactive: false,
613655
markers: false,
614656
showLabel: true,
615-
lineEnding: "arrow",
657+
lineEnding: null,
616658
},
617659
hover: {
618660
pathStrokeColor: colors.ochre,
619661
pathStrokeWidth: 6,
620662
halo: true,
621-
interactive: true,
663+
interactive: false,
622664
markers: false,
623665
showLabel: true,
624-
lineEnding: "arrow",
666+
lineEnding: null,
625667
},
626668
});
627669

0 commit comments

Comments
 (0)