layerchart 0.91.0 → 0.92.0

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.
@@ -4,11 +4,12 @@
4
4
  import { cubicIn } from 'svelte/easing';
5
5
  import type { SVGAttributes } from 'svelte/elements';
6
6
  import type { spring as springStore, tweened as tweenedStore } from 'svelte/motion';
7
+ import type { TimeInterval } from 'd3-time';
7
8
 
8
9
  import { extent } from 'd3-array';
9
10
  import { pointRadial } from 'd3-shape';
10
11
 
11
- import { format as formatValue, type FormatType } from '@layerstack/utils';
12
+ import { format as formatValue, isLiteralObject, type FormatType } from '@layerstack/utils';
12
13
  import { cls } from '@layerstack/tailwind';
13
14
  import type { TransitionParams } from 'svelte-ux'; // TODO: Replace with `@layerstack/svelte-types` or similar
14
15
 
@@ -39,7 +40,13 @@
39
40
  export let grid: boolean | Pick<SVGAttributes<SVGElement>, 'class' | 'style'> = false;
40
41
 
41
42
  /** Control the number of ticks*/
42
- export let ticks: number | any[] | ((scale: AnyScale) => any) | null | undefined = undefined;
43
+ export let ticks:
44
+ | number
45
+ | any[]
46
+ | ((scale: AnyScale) => any)
47
+ | { interval: TimeInterval | null }
48
+ | null
49
+ | undefined = undefined;
43
50
 
44
51
  /** Length of the tick line */
45
52
  export let tickLength = 4;
@@ -87,11 +94,13 @@
87
94
  ? ticks
88
95
  : typeof ticks === 'function'
89
96
  ? ticks(_scale)
90
- : isScaleBand(_scale)
91
- ? ticks
92
- ? _scale.domain().filter((v: any, i: number) => i % ticks === 0)
93
- : _scale.domain()
94
- : _scale.ticks(ticks ?? (placement === 'left' || placement === 'right' ? 4 : undefined));
97
+ : isLiteralObject(ticks)
98
+ ? _scale.ticks(ticks.interval) // d3-time interval such as `timeDay.every(1)`
99
+ : isScaleBand(_scale)
100
+ ? ticks
101
+ ? _scale.domain().filter((v: any, i: number) => i % ticks === 0)
102
+ : _scale.domain()
103
+ : _scale.ticks(ticks ?? (placement === 'left' || placement === 'right' ? 4 : undefined));
95
104
 
96
105
  function getCoords(tick: any) {
97
106
  switch (placement) {
@@ -190,7 +190,7 @@ declare class __sveltets_Render<TData> {
190
190
  locked?: boolean;
191
191
  radius?: number;
192
192
  debug?: boolean;
193
- onclick?: ({ data }: {
193
+ onclick?: (e: MouseEvent, { data }: {
194
194
  data: any;
195
195
  }) => any;
196
196
  tooltip?: import("svelte/store").Writable<{
@@ -127,7 +127,7 @@ declare class __sveltets_Render<TData> {
127
127
  locked?: boolean;
128
128
  radius?: number;
129
129
  debug?: boolean;
130
- onclick?: ({ data }: {
130
+ onclick?: (e: MouseEvent, { data }: {
131
131
  data: any;
132
132
  }) => any;
133
133
  tooltip?: import("svelte/store").Writable<{
@@ -111,7 +111,7 @@
111
111
  /** Enable debug view (show hit targets, etc) */
112
112
  export let debug = false;
113
113
 
114
- export let onclick: ({ data }: { data: any }) => any = () => {};
114
+ export let onclick: (e: MouseEvent, { data }: { data: any }) => any = () => {};
115
115
 
116
116
  /** Exposed to allow binding in Chart */
117
117
  export let tooltip = writable({
@@ -406,7 +406,7 @@
406
406
  on:pointerleave={triggerPointerEvents ? hideTooltip : undefined}
407
407
  on:click={(e) => {
408
408
  if (triggerPointerEvents) {
409
- onclick({ data: $tooltip?.data });
409
+ onclick(e, { data: $tooltip?.data });
410
410
  }
411
411
  }}
412
412
  >
@@ -438,7 +438,7 @@
438
438
  }
439
439
  }}
440
440
  onclick={(e, { data }) => {
441
- onclick({ data });
441
+ onclick(e, { data });
442
442
  }}
443
443
  classes={{ path: cls(debug && 'fill-danger/10 stroke-danger') }}
444
444
  />
@@ -464,7 +464,7 @@
464
464
  }
465
465
  }}
466
466
  on:click={(e) => {
467
- onclick({ data: rect.data });
467
+ onclick(e, { data: rect.data });
468
468
  }}
469
469
  />
470
470
  {/each}
@@ -26,7 +26,7 @@ declare const __propDef: {
26
26
  * @type {number}
27
27
  */ radius?: number;
28
28
  /** Enable debug view (show hit targets, etc) */ debug?: boolean;
29
- onclick?: ({ data }: {
29
+ onclick?: (e: MouseEvent, { data }: {
30
30
  data: any;
31
31
  }) => any;
32
32
  /** Exposed to allow binding in Chart */ tooltip?: import("svelte/store").Writable<{
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "author": "Sean Lynch <techniq35@gmail.com>",
5
5
  "license": "MIT",
6
6
  "repository": "techniq/layerchart",
7
- "version": "0.91.0",
7
+ "version": "0.92.0",
8
8
  "devDependencies": {
9
9
  "@changesets/cli": "^2.27.12",
10
10
  "@mdi/js": "^7.4.47",