diff --git a/.changeset/funny-apricots-sing.md b/.changeset/funny-apricots-sing.md new file mode 100644 index 00000000..0d1916e9 --- /dev/null +++ b/.changeset/funny-apricots-sing.md @@ -0,0 +1,5 @@ +--- +"layerchart": patch +--- + +[Axis] Fix `ticks` defined as function. Useful to only show first/last values or filter (ex. integers only) diff --git a/packages/layerchart/src/lib/components/Axis.svelte b/packages/layerchart/src/lib/components/Axis.svelte index 44b5d244..19109583 100644 --- a/packages/layerchart/src/lib/components/Axis.svelte +++ b/packages/layerchart/src/lib/components/Axis.svelte @@ -56,9 +56,11 @@ $: tickVals = Array.isArray(ticks) ? ticks - : isScaleBand(scale) - ? scale.domain() - : scale.ticks(typeof ticks === 'function' ? ticks(scale) : ticks); + : typeof ticks === 'function' + ? ticks(scale) + : isScaleBand(scale) + ? scale.domain() + : scale.ticks(ticks); function getCoords(tick: any) { switch (placement) { diff --git a/packages/layerchart/src/routes/docs/components/Axis/+page.svelte b/packages/layerchart/src/routes/docs/components/Axis/+page.svelte index df3c686b..416bb687 100644 --- a/packages/layerchart/src/routes/docs/components/Axis/+page.svelte +++ b/packages/layerchart/src/routes/docs/components/Axis/+page.svelte @@ -236,3 +236,112 @@ + +

Only first/last ticks

+ + +
+ + + scale.domain()} /> + scale.domain()} /> + + +
+
+ +

Integer only ticks

+ + +
+ + + + scale.ticks().filter(Number.isInteger)} + format="integer" + /> + + +
+
+ +

Explicit ticks

+ + +
+ + + + + + +
+
+ +

Tick count

+ + +
+ + + + + + +
+
+ +

Remove default tick count

+ + +
+ + + + + + +
+