Skip to content

Commit 5f2310e

Browse files
committed
create clicked tier
1 parent df0a68b commit 5f2310e

File tree

1 file changed

+33
-19
lines changed

1 file changed

+33
-19
lines changed

src/routes/playground/create-a-reactive-line-chart/local-lib/LineChart.svelte

Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@
8888
$inspect({ selectedLine });
8989
9090
let nothingSelected = $derived(selectedLine.every((item) => item == null));
91-
let selectedAreaCode = $state("E07000223");
92-
let englandMedian = $state("E07000227");
91+
let selectedAreaCode = $state("E09000033");
92+
let englandMedian = $state("E06000040");
9393
let similarAreas = $state("E07000224");
9494
9595
function handleClickOutside(event) {
@@ -125,9 +125,9 @@
125125
selectedAreaCode,
126126
]);
127127
128-
let colorPalette = {
128+
let colorPalette = $derived({
129129
base: [colors.coral, colors.fuschia, colors.purple],
130-
};
130+
});
131131
132132
let showAllData = true;
133133
@@ -146,11 +146,13 @@
146146
let dataArray = $derived(
147147
data.lines.map((el, i) => {
148148
const tiers = ["invisibles"];
149-
selectedLine.includes(el.areaCode)
150-
? tiers.push("hover")
151-
: primaryLines.includes(el.areaCode)
152-
? tiers.push("primary")
153-
: tiers.push("secondary");
149+
el.areaCode == lineClicked
150+
? tiers.push("clicked")
151+
: el.areaCode == lineHovered
152+
? tiers.push("hover")
153+
: primaryLines.includes(el.areaCode)
154+
? tiers.push("primary")
155+
: tiers.push("secondary");
154156
return {
155157
...el,
156158
tiers,
@@ -168,22 +170,28 @@
168170
},
169171
primary: {
170172
halo: true,
171-
pathStrokeWidth: nothingSelected ? 5 : 8,
173+
pathStrokeWidth: 5,
172174
pathStrokeColor: colors.darkgrey,
173175
},
176+
clicked: {
177+
pathStrokeColor: colors.ochre,
178+
pathStrokeWidth: 7,
179+
halo: true,
180+
},
174181
hover: {
175182
pathStrokeColor: colors.ochre,
176183
pathStrokeWidth: 5,
177184
halo: true,
178185
},
186+
179187
invisibles: {
180188
// listenForOnHoverEvents: true, //PASS THESE THROUGH TO LINE
181189
// "pointer-events": "visibleStroke",
182190
// pathStrokeWidth: 5,
183191
},
184192
});
185193
186-
let basicLineParams = {
194+
let basicLineParams = $derived({
187195
lineFunction: lineFunction,
188196
xFunction: xFunction,
189197
yFunction: yFunction,
@@ -193,13 +201,15 @@
193201
onMouseLeave: onMouseLeave,
194202
haloColor: chartBackgroundColor,
195203
"pointer-events": "none",
196-
};
204+
});
197205
198-
let defaultLineParams = Object.fromEntries(
199-
Object.entries(tieredLineParams).map(([key, group]) => [
200-
key,
201-
{ ...basicLineParams, ...group },
202-
]),
206+
let defaultLineParams = $derived(
207+
Object.fromEntries(
208+
Object.entries(tieredLineParams).map(([key, group]) => [
209+
key,
210+
{ ...basicLineParams, ...group },
211+
]),
212+
),
203213
);
204214
205215
let tieredDataObject = $derived(
@@ -213,13 +223,16 @@
213223
return true;
214224
}
215225
if (key === "hover") {
216-
return selectedLine.includes(el.areaCode);
226+
return lineHovered == el.areaCode;
227+
}
228+
if (key === "clicked") {
229+
return lineClicked == el.areaCode;
217230
}
218231
})
219232
.map((el) => ({
220233
...el,
221234
includeMarkers: key === "primary" ? true : false,
222-
pathStrokeColor: ["primary", "hover"].includes(key)
235+
pathStrokeColor: ["primary", "hover", "clicked"].includes(key)
223236
? getColor(
224237
el.areaCode,
225238
lookupObj,
@@ -241,6 +254,7 @@
241254
opacity: nothingSelected ? 1 : 0.4,
242255
},
243256
hover: { opacity: 1 },
257+
clicked: { opacity: 1 },
244258
});
245259
246260
$inspect({ tieredDataObject });

0 commit comments

Comments
 (0)