aliencharts 0.3.2 → 0.3.3
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.
- package/README.md +3 -3
- package/dist/aliencharts.css +1 -1
- package/dist/aliencharts.global.js +87 -45
- package/dist/aliencharts.global.js.map +2 -2
- package/dist/aliencharts.global.min.js +19 -17
- package/dist/aliencharts.global.min.js.map +3 -3
- package/dist/react.js +87 -45
- package/dist/react.js.map +2 -2
- package/dist/vanilla.js +87 -45
- package/dist/vanilla.js.map +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -123,17 +123,17 @@ See the [Vanilla Web example source](https://github.com/FarangLab/AlienCharts/bl
|
|
|
123
123
|
### CDN / script tag
|
|
124
124
|
|
|
125
125
|
For browser use without npm or a bundler, load the stylesheet and standalone
|
|
126
|
-
build from jsDelivr:
|
|
126
|
+
build from jsDelivr. Replace `VERSION_TAG` with the latest published version:
|
|
127
127
|
|
|
128
128
|
```html
|
|
129
129
|
<link
|
|
130
130
|
rel="stylesheet"
|
|
131
|
-
href="https://cdn.jsdelivr.net/npm/aliencharts@
|
|
131
|
+
href="https://cdn.jsdelivr.net/npm/aliencharts@VERSION_TAG/dist/aliencharts.css"
|
|
132
132
|
>
|
|
133
133
|
|
|
134
134
|
<div id="charts" style="height: 100vh"></div>
|
|
135
135
|
|
|
136
|
-
<script src="https://cdn.jsdelivr.net/npm/aliencharts@
|
|
136
|
+
<script src="https://cdn.jsdelivr.net/npm/aliencharts@VERSION_TAG/dist/aliencharts.global.min.js"></script>
|
|
137
137
|
<script>
|
|
138
138
|
const series = AlienCharts.createLineSeries({
|
|
139
139
|
id: "run-1",
|
package/dist/aliencharts.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--color-orange-500:oklch(70.5% .213 47.604);--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--blur-sm:8px}}@layer base{.aliencharts-root,.aliencharts-root *,.aliencharts-root :before,.aliencharts-root :after{box-sizing:border-box;border:0 solid}.aliencharts-root button,.aliencharts-root input{font:inherit;color:inherit;letter-spacing:inherit;background:0 0;margin:0}.aliencharts-root button{cursor:pointer;padding:0}.aliencharts-root button:disabled{cursor:default}.aliencharts-root svg{display:block}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-x-2{inset-inline:calc(var(--spacing) * 2)}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-12{top:calc(var(--spacing) * 12)}.right-16{right:calc(var(--spacing) * 16)}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-full{left:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-\[60\]{z-index:60}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.my-1{margin-block:var(--spacing)}.mt-1{margin-top:var(--spacing)}.mb-1{margin-bottom:var(--spacing)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.inline{display:inline}.inline-flex{display:inline-flex}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-full{height:100%}.h-px{height:1px}.min-h-0{min-height:0}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-\[220px\]{width:220px}.w-full{width:100%}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-45{rotate:-45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e38px}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-background{border-color:var(--background)}.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab, var(--border) 50%, transparent)}}.border-border\/70{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/70{border-color:color-mix(in oklab, var(--border) 70%, transparent)}}.border-foreground\/40{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/40{border-color:color-mix(in oklab, var(--foreground) 40%, transparent)}}.border-primary\/70{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\/70{border-color:color-mix(in oklab, var(--primary) 70%, transparent)}}.bg-background,.bg-background\/80{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/80{background-color:color-mix(in oklab, var(--background) 80%, transparent)}}.bg-background\/85{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/85{background-color:color-mix(in oklab, var(--background) 85%, transparent)}}.bg-popover\/80{background-color:var(--popover)}@supports (color:color-mix(in lab, red, red)){.bg-popover\/80{background-color:color-mix(in oklab, var(--popover) 80%, transparent)}}.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--primary) 10%, transparent)}}.bg-primary\/15{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/15{background-color:color-mix(in oklab, var(--primary) 15%, transparent)}}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.pt-1{padding-top:var(--spacing)}.pr-3{padding-right:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-border\/40{color:var(--border)}@supports (color:color-mix(in lab, red, red)){.text-border\/40{color:color-mix(in oklab, var(--border) 40%, transparent)}}.text-foreground,.text-foreground\/50{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/50{color:color-mix(in oklab, var(--foreground) 50%, transparent)}}.text-foreground\/70{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/70{color:color-mix(in oklab, var(--foreground) 70%, transparent)}}.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/80{color:color-mix(in oklab, var(--foreground) 80%, transparent)}}.text-muted-foreground{color:var(--muted-foreground)}.text-orange-500{color:var(--color-orange-500)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-70{opacity:.7}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-primary\/40{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.ring-primary\/40{--tw-ring-color:color-mix(in oklab, var(--primary) 40%, transparent)}}.ring-primary\/70{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.ring-primary\/70{--tw-ring-color:color-mix(in oklab, var(--primary) 70%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}.aliencharts-root{--radius:.5rem;--background:#fff;--foreground:#161616;--popover:#fff;--popover-foreground:#161616;--primary:#45aeee;--muted-foreground:#626262;--accent:#d1d1d1;--accent-foreground:#494949;--border:#626262}.dark .aliencharts-root,.aliencharts-root.dark{--background:#1c1719;--foreground:#e8e3e5;--popover:#1c1719;--popover-foreground:#e8e3e5;--primary:#077dc4;--muted-foreground:#a69399;--accent:#332a2d;--accent-foreground:#bdafb4;--border:#a69399}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--color-orange-500:oklch(70.5% .213 47.604);--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--blur-sm:8px}}@layer base{.aliencharts-root,.aliencharts-root *,.aliencharts-root :before,.aliencharts-root :after{box-sizing:border-box;border:0 solid}.aliencharts-root button,.aliencharts-root input{font:inherit;color:inherit;letter-spacing:inherit;background:0 0;margin:0}.aliencharts-root button{cursor:pointer;padding:0}.aliencharts-root button:disabled{cursor:default}.aliencharts-root svg{display:block}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-x-2{inset-inline:calc(var(--spacing) * 2)}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-12{top:calc(var(--spacing) * 12)}.right-16{right:calc(var(--spacing) * 16)}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-full{left:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-\[60\]{z-index:60}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.my-1{margin-block:var(--spacing)}.mt-1{margin-top:var(--spacing)}.mb-1{margin-bottom:var(--spacing)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-full{height:100%}.h-px{height:1px}.min-h-0{min-height:0}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-\[220px\]{width:220px}.w-full{width:100%}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-45{rotate:-45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e38px}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-background{border-color:var(--background)}.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab, var(--border) 50%, transparent)}}.border-border\/70{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/70{border-color:color-mix(in oklab, var(--border) 70%, transparent)}}.border-foreground\/40{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/40{border-color:color-mix(in oklab, var(--foreground) 40%, transparent)}}.border-primary\/70{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\/70{border-color:color-mix(in oklab, var(--primary) 70%, transparent)}}.bg-background,.bg-background\/80{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/80{background-color:color-mix(in oklab, var(--background) 80%, transparent)}}.bg-background\/85{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/85{background-color:color-mix(in oklab, var(--background) 85%, transparent)}}.bg-popover\/80{background-color:var(--popover)}@supports (color:color-mix(in lab, red, red)){.bg-popover\/80{background-color:color-mix(in oklab, var(--popover) 80%, transparent)}}.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--primary) 10%, transparent)}}.bg-primary\/15{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/15{background-color:color-mix(in oklab, var(--primary) 15%, transparent)}}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.pt-1{padding-top:var(--spacing)}.pr-3{padding-right:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-border\/40{color:var(--border)}@supports (color:color-mix(in lab, red, red)){.text-border\/40{color:color-mix(in oklab, var(--border) 40%, transparent)}}.text-foreground,.text-foreground\/50{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/50{color:color-mix(in oklab, var(--foreground) 50%, transparent)}}.text-foreground\/70{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/70{color:color-mix(in oklab, var(--foreground) 70%, transparent)}}.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/80{color:color-mix(in oklab, var(--foreground) 80%, transparent)}}.text-muted-foreground{color:var(--muted-foreground)}.text-orange-500{color:var(--color-orange-500)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-70{opacity:.7}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-primary\/40{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.ring-primary\/40{--tw-ring-color:color-mix(in oklab, var(--primary) 40%, transparent)}}.ring-primary\/70{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.ring-primary\/70{--tw-ring-color:color-mix(in oklab, var(--primary) 70%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}.aliencharts-root{--radius:.5rem;--background:#fff;--foreground:#161616;--popover:#fff;--popover-foreground:#161616;--primary:#45aeee;--muted-foreground:#626262;--accent:#d1d1d1;--accent-foreground:#494949;--border:#626262}.dark .aliencharts-root,.aliencharts-root.dark{--background:#1c1719;--foreground:#e8e3e5;--popover:#1c1719;--popover-foreground:#e8e3e5;--primary:#077dc4;--muted-foreground:#a69399;--accent:#332a2d;--accent-foreground:#bdafb4;--border:#a69399}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
|
|
@@ -1773,19 +1773,24 @@ var AlienCharts = (() => {
|
|
|
1773
1773
|
descriptor,
|
|
1774
1774
|
state,
|
|
1775
1775
|
plot,
|
|
1776
|
+
yBaseRangeRef,
|
|
1776
1777
|
yScaleRef,
|
|
1777
1778
|
yCenterOffsetRef
|
|
1778
|
-
}) =>
|
|
1779
|
-
getYRange(
|
|
1779
|
+
}) => {
|
|
1780
|
+
const automaticRange = getYRange(
|
|
1780
1781
|
chart,
|
|
1781
1782
|
state.xMin,
|
|
1782
1783
|
state.xMax,
|
|
1783
1784
|
getCategoryPixelLength(chart, plot, descriptor),
|
|
1784
1785
|
descriptor
|
|
1785
|
-
)
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1786
|
+
);
|
|
1787
|
+
const lockedRange = yBaseRangeRef?.current.get(chart.id);
|
|
1788
|
+
return applyYScale(
|
|
1789
|
+
lockedRange ? { ...automaticRange, ...lockedRange } : automaticRange,
|
|
1790
|
+
yScaleRef.current.get(chart.id) ?? 1,
|
|
1791
|
+
yCenterOffsetRef.current.get(chart.id) ?? 0
|
|
1792
|
+
);
|
|
1793
|
+
};
|
|
1789
1794
|
var applyRectangleZoom = ({
|
|
1790
1795
|
chart,
|
|
1791
1796
|
descriptor: suppliedDescriptor,
|
|
@@ -1794,6 +1799,7 @@ var AlienCharts = (() => {
|
|
|
1794
1799
|
end,
|
|
1795
1800
|
initialVisiblePoints,
|
|
1796
1801
|
viewStateRef,
|
|
1802
|
+
yBaseRangeRef,
|
|
1797
1803
|
yScaleRef,
|
|
1798
1804
|
yCenterOffsetRef,
|
|
1799
1805
|
yManualScaleRef
|
|
@@ -1810,6 +1816,7 @@ var AlienCharts = (() => {
|
|
|
1810
1816
|
descriptor,
|
|
1811
1817
|
state,
|
|
1812
1818
|
plot,
|
|
1819
|
+
yBaseRangeRef,
|
|
1813
1820
|
yScaleRef,
|
|
1814
1821
|
yCenterOffsetRef
|
|
1815
1822
|
});
|
|
@@ -1862,6 +1869,7 @@ var AlienCharts = (() => {
|
|
|
1862
1869
|
plot,
|
|
1863
1870
|
initialVisiblePoints,
|
|
1864
1871
|
viewStateRef,
|
|
1872
|
+
yBaseRangeRef,
|
|
1865
1873
|
yScaleRef,
|
|
1866
1874
|
yCenterOffsetRef
|
|
1867
1875
|
}) => {
|
|
@@ -1872,6 +1880,7 @@ var AlienCharts = (() => {
|
|
|
1872
1880
|
descriptor,
|
|
1873
1881
|
state,
|
|
1874
1882
|
plot,
|
|
1883
|
+
yBaseRangeRef,
|
|
1875
1884
|
yScaleRef,
|
|
1876
1885
|
yCenterOffsetRef
|
|
1877
1886
|
});
|
|
@@ -1988,6 +1997,7 @@ var AlienCharts = (() => {
|
|
|
1988
1997
|
antialiasLines = false,
|
|
1989
1998
|
layouts,
|
|
1990
1999
|
viewStateRef,
|
|
2000
|
+
yBaseRangeRef,
|
|
1991
2001
|
yScaleRef,
|
|
1992
2002
|
yCenterOffsetRef,
|
|
1993
2003
|
initialVisiblePoints,
|
|
@@ -2025,17 +2035,15 @@ var AlienCharts = (() => {
|
|
|
2025
2035
|
plot,
|
|
2026
2036
|
descriptor
|
|
2027
2037
|
);
|
|
2028
|
-
const yRange =
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
yCenterOffsetRef.current.get(chart.id) ?? 0
|
|
2038
|
-
);
|
|
2038
|
+
const yRange = getScaledYRangeForLayout({
|
|
2039
|
+
chart,
|
|
2040
|
+
descriptor,
|
|
2041
|
+
state,
|
|
2042
|
+
plot,
|
|
2043
|
+
yBaseRangeRef,
|
|
2044
|
+
yScaleRef,
|
|
2045
|
+
yCenterOffsetRef
|
|
2046
|
+
});
|
|
2039
2047
|
gl.enable(gl.SCISSOR_TEST);
|
|
2040
2048
|
gl.scissor(
|
|
2041
2049
|
Math.floor(scaledPlot.x),
|
|
@@ -2275,6 +2283,7 @@ var AlienCharts = (() => {
|
|
|
2275
2283
|
this.viewStates = /* @__PURE__ */ new Map();
|
|
2276
2284
|
this.yScales = /* @__PURE__ */ new Map();
|
|
2277
2285
|
this.yOffsets = /* @__PURE__ */ new Map();
|
|
2286
|
+
this.yBaseRanges = /* @__PURE__ */ new Map();
|
|
2278
2287
|
this.latestX = /* @__PURE__ */ new Map();
|
|
2279
2288
|
this.axisOverlays = {};
|
|
2280
2289
|
this.layouts = [];
|
|
@@ -2325,7 +2334,7 @@ var AlienCharts = (() => {
|
|
|
2325
2334
|
}
|
|
2326
2335
|
initializeChartState() {
|
|
2327
2336
|
const ids = new Set(this.options.charts.map((chart) => chart.id));
|
|
2328
|
-
[this.viewStates, this.yScales, this.yOffsets, this.latestX].forEach((map) => {
|
|
2337
|
+
[this.viewStates, this.yScales, this.yOffsets, this.yBaseRanges, this.latestX].forEach((map) => {
|
|
2329
2338
|
[...map.keys()].forEach((id) => {
|
|
2330
2339
|
if (!ids.has(id)) map.delete(id);
|
|
2331
2340
|
});
|
|
@@ -2512,6 +2521,7 @@ var AlienCharts = (() => {
|
|
|
2512
2521
|
antialiasLines: this.options.antialiasLines,
|
|
2513
2522
|
layouts,
|
|
2514
2523
|
viewStateRef: { current: this.viewStates },
|
|
2524
|
+
yBaseRangeRef: { current: this.yBaseRanges },
|
|
2515
2525
|
yScaleRef: { current: this.yScales },
|
|
2516
2526
|
yCenterOffsetRef: { current: this.yOffsets },
|
|
2517
2527
|
initialVisiblePoints: this.options.initialVisiblePoints,
|
|
@@ -2657,8 +2667,11 @@ var AlienCharts = (() => {
|
|
|
2657
2667
|
(item) => item.id === crosshair.chartId
|
|
2658
2668
|
);
|
|
2659
2669
|
const xAxisLabel = chart?.xAxisLabel ?? this.options.xAxisLabel;
|
|
2670
|
+
const pointLayer = `<div data-crosshair-points class="pointer-events-none absolute z-30 overflow-hidden" style="left:${crosshair.plot.x}px;top:${crosshair.plot.y}px;width:${crosshair.plot.width}px;height:${crosshair.plot.height}px">
|
|
2671
|
+
${crosshair.points.map((point) => `<div data-crosshair-point class="absolute size-2.5 -translate-x-1/2 -translate-y-1/2 rounded-full border border-background" style="left:${point.x - crosshair.plot.x}px;top:${point.y - crosshair.plot.y}px;background:${point.color}"></div>`).join("")}
|
|
2672
|
+
</div>`;
|
|
2660
2673
|
return `<div class="pointer-events-none absolute z-20 border-l border-foreground/40" style="left:${crosshair.x}px;top:0;height:100%"></div><div class="pointer-events-none absolute z-20 border-t border-foreground/40" style="top:${crosshair.y}px;left:0;width:100%"></div>
|
|
2661
|
-
${
|
|
2674
|
+
${pointLayer}
|
|
2662
2675
|
<div data-crosshair-tooltip class="pointer-events-none absolute z-30 w-[220px] rounded-sm border border-border/70 bg-popover/80 px-2 py-1.5 text-xs text-popover-foreground shadow-sm backdrop-blur-sm" style="left:${crosshair.tooltipX}px;top:${crosshair.tooltipY}px"><div class="mb-1 font-medium">${escapeHtml(xAxisLabel)}: ${escapeHtml(crosshair.categoryLabel ?? this.options.formatXValue(crosshair.xValue))}</div>${crosshair.points.map((point) => `<div class="grid grid-cols-[auto_1fr] gap-x-2"><span class="mt-1 size-2 rounded-full" style="background:${point.color}"></span><div class="min-w-0"><div class="truncate text-muted-foreground">${escapeHtml(point.name)}</div><div class="tabular-nums">${escapeHtml(this.options.formatYValue(point.yValue))}</div></div></div>`).join("")}</div>`;
|
|
2663
2676
|
}
|
|
2664
2677
|
rectangleOverlayHtml() {
|
|
@@ -2689,22 +2702,42 @@ var AlienCharts = (() => {
|
|
|
2689
2702
|
return this.getTransform(layout, state, range).dataToScreen(point);
|
|
2690
2703
|
}
|
|
2691
2704
|
getRange(layout, state = this.viewStates.get(layout.chart.id)) {
|
|
2692
|
-
|
|
2693
|
-
|
|
2705
|
+
const automaticRange = getYRange(
|
|
2706
|
+
layout.chart,
|
|
2707
|
+
state.xMin,
|
|
2708
|
+
state.xMax,
|
|
2709
|
+
getCategoryPixelLength(
|
|
2694
2710
|
layout.chart,
|
|
2695
|
-
|
|
2696
|
-
state.xMax,
|
|
2697
|
-
getCategoryPixelLength(
|
|
2698
|
-
layout.chart,
|
|
2699
|
-
layout.plot,
|
|
2700
|
-
layout.descriptor
|
|
2701
|
-
),
|
|
2711
|
+
layout.plot,
|
|
2702
2712
|
layout.descriptor
|
|
2703
2713
|
),
|
|
2714
|
+
layout.descriptor
|
|
2715
|
+
);
|
|
2716
|
+
const lockedRange = this.yBaseRanges.get(layout.chart.id);
|
|
2717
|
+
return applyYScale(
|
|
2718
|
+
lockedRange ? { ...automaticRange, ...lockedRange } : automaticRange,
|
|
2704
2719
|
this.yScales.get(layout.chart.id),
|
|
2705
2720
|
this.yOffsets.get(layout.chart.id)
|
|
2706
2721
|
);
|
|
2707
2722
|
}
|
|
2723
|
+
lockYRange(layout, state = this.viewStates.get(layout.chart.id)) {
|
|
2724
|
+
if (this.yBaseRanges.has(layout.chart.id)) return;
|
|
2725
|
+
const range = getYRange(
|
|
2726
|
+
layout.chart,
|
|
2727
|
+
state.xMin,
|
|
2728
|
+
state.xMax,
|
|
2729
|
+
getCategoryPixelLength(
|
|
2730
|
+
layout.chart,
|
|
2731
|
+
layout.plot,
|
|
2732
|
+
layout.descriptor
|
|
2733
|
+
),
|
|
2734
|
+
layout.descriptor
|
|
2735
|
+
);
|
|
2736
|
+
this.yBaseRanges.set(layout.chart.id, {
|
|
2737
|
+
minY: range.minY,
|
|
2738
|
+
maxY: range.maxY
|
|
2739
|
+
});
|
|
2740
|
+
}
|
|
2708
2741
|
getTransform(layout, state, range) {
|
|
2709
2742
|
return createCoordinateTransform({
|
|
2710
2743
|
orientation: layout.descriptor.orientation,
|
|
@@ -2807,7 +2840,7 @@ var AlienCharts = (() => {
|
|
|
2807
2840
|
this.focusedChartId = layout.chart.id;
|
|
2808
2841
|
const inPlot = point.x >= layout.plot.x && point.x <= layout.plot.x + layout.plot.width && point.y >= layout.plot.y && point.y <= layout.plot.y + layout.plot.height;
|
|
2809
2842
|
if (inPlot && this.activeDrawingTool && !this.options.disableDrawings && layout.descriptor.capabilities.drawings) {
|
|
2810
|
-
const dataPoint = screenPointToDataPoint({ point, chart: layout.chart, descriptor: layout.descriptor, plot: layout.plot, initialVisiblePoints: this.options.initialVisiblePoints, viewStateRef: { current: this.viewStates }, yScaleRef: { current: this.yScales }, yCenterOffsetRef: { current: this.yOffsets } });
|
|
2843
|
+
const dataPoint = screenPointToDataPoint({ point, chart: layout.chart, descriptor: layout.descriptor, plot: layout.plot, initialVisiblePoints: this.options.initialVisiblePoints, viewStateRef: { current: this.viewStates }, yBaseRangeRef: { current: this.yBaseRanges }, yScaleRef: { current: this.yScales }, yCenterOffsetRef: { current: this.yOffsets } });
|
|
2811
2844
|
if (["hline", "vline", "pin"].includes(this.activeDrawingTool)) {
|
|
2812
2845
|
this.commitDrawing(layout.chart.id, this.activeDrawingTool, dataPoint, dataPoint);
|
|
2813
2846
|
} else if (this.drawingSession?.chartId === layout.chart.id) {
|
|
@@ -2830,7 +2863,17 @@ var AlienCharts = (() => {
|
|
|
2830
2863
|
} else {
|
|
2831
2864
|
this.selectedDrawingId = null;
|
|
2832
2865
|
this.emit("onSelectedDrawingIdChange", null);
|
|
2833
|
-
|
|
2866
|
+
const state = { ...this.viewStates.get(layout.chart.id) };
|
|
2867
|
+
const range = this.getRange(layout, state);
|
|
2868
|
+
this.drag = {
|
|
2869
|
+
type: "pan",
|
|
2870
|
+
layout,
|
|
2871
|
+
start: point,
|
|
2872
|
+
state,
|
|
2873
|
+
yOffset: this.yOffsets.get(layout.chart.id) || 0,
|
|
2874
|
+
canPanY: this.yBaseRanges.has(layout.chart.id),
|
|
2875
|
+
valueSpan: range.maxY - range.minY
|
|
2876
|
+
};
|
|
2834
2877
|
}
|
|
2835
2878
|
} else if (layout.descriptor.orientation === "vertical" && point.x >= layout.plot.x + layout.plot.width) {
|
|
2836
2879
|
this.drag = { type: "y-scale", layout, start: point, scale: this.yScales.get(layout.chart.id) || 1 };
|
|
@@ -2852,7 +2895,7 @@ var AlienCharts = (() => {
|
|
|
2852
2895
|
const { layout, point } = context;
|
|
2853
2896
|
if (this.drawingSession) {
|
|
2854
2897
|
if (layout.chart.id !== this.drawingSession.chartId) return;
|
|
2855
|
-
const end = screenPointToDataPoint({ point, chart: layout.chart, descriptor: layout.descriptor, plot: layout.plot, initialVisiblePoints: this.options.initialVisiblePoints, viewStateRef: { current: this.viewStates }, yScaleRef: { current: this.yScales }, yCenterOffsetRef: { current: this.yOffsets } });
|
|
2898
|
+
const end = screenPointToDataPoint({ point, chart: layout.chart, descriptor: layout.descriptor, plot: layout.plot, initialVisiblePoints: this.options.initialVisiblePoints, viewStateRef: { current: this.viewStates }, yBaseRangeRef: { current: this.yBaseRanges }, yScaleRef: { current: this.yScales }, yCenterOffsetRef: { current: this.yOffsets } });
|
|
2856
2899
|
this.draftDrawing = createDraftDrawing({ ...this.drawingSession, end });
|
|
2857
2900
|
this.requestRender();
|
|
2858
2901
|
return;
|
|
@@ -2860,7 +2903,7 @@ var AlienCharts = (() => {
|
|
|
2860
2903
|
if (this.drag) {
|
|
2861
2904
|
const { chart, descriptor, plot } = this.drag.layout;
|
|
2862
2905
|
if (this.drag.type === "drawing-edit") {
|
|
2863
|
-
const dataPoint = screenPointToDataPoint({ point, chart, descriptor, plot, initialVisiblePoints: this.options.initialVisiblePoints, viewStateRef: { current: this.viewStates }, yScaleRef: { current: this.yScales }, yCenterOffsetRef: { current: this.yOffsets } });
|
|
2906
|
+
const dataPoint = screenPointToDataPoint({ point, chart, descriptor, plot, initialVisiblePoints: this.options.initialVisiblePoints, viewStateRef: { current: this.viewStates }, yBaseRangeRef: { current: this.yBaseRanges }, yScaleRef: { current: this.yScales }, yCenterOffsetRef: { current: this.yOffsets } });
|
|
2864
2907
|
const next = updateDrawingById(this.drawings, this.drag.drawingId, (drawing) => {
|
|
2865
2908
|
if (drawing.type === "hline") {
|
|
2866
2909
|
const deltaX = (drawing.end?.x ?? drawing.start.x) - drawing.start.x;
|
|
@@ -2878,22 +2921,13 @@ var AlienCharts = (() => {
|
|
|
2878
2921
|
}
|
|
2879
2922
|
if (this.drag.type === "rectangle") this.rectangleZoomRect = { start: this.drag.start, end: point };
|
|
2880
2923
|
if (this.drag.type === "pan") {
|
|
2881
|
-
const span = this.drag.state.xMax - this.drag.state.xMin;
|
|
2882
|
-
const baseRange = getYRange(
|
|
2883
|
-
chart,
|
|
2884
|
-
this.drag.state.xMin,
|
|
2885
|
-
this.drag.state.xMax,
|
|
2886
|
-
getCategoryPixelLength(chart, plot, descriptor),
|
|
2887
|
-
descriptor
|
|
2888
|
-
);
|
|
2889
|
-
const rangeSpan = (baseRange.maxY - baseRange.minY) * (this.yScales.get(chart.id) || 1);
|
|
2890
2924
|
const transform = createCoordinateTransform({
|
|
2891
2925
|
orientation: descriptor.orientation,
|
|
2892
2926
|
categoryRange: {
|
|
2893
2927
|
min: this.drag.state.xMin,
|
|
2894
2928
|
max: this.drag.state.xMax
|
|
2895
2929
|
},
|
|
2896
|
-
valueRange: { min: 0, max:
|
|
2930
|
+
valueRange: { min: 0, max: this.drag.valueSpan },
|
|
2897
2931
|
plot
|
|
2898
2932
|
});
|
|
2899
2933
|
const categoryDelta = transform.categoryDragDelta(
|
|
@@ -2905,7 +2939,9 @@ var AlienCharts = (() => {
|
|
|
2905
2939
|
point
|
|
2906
2940
|
);
|
|
2907
2941
|
this.viewStates.set(chart.id, { xMin: this.drag.state.xMin - categoryDelta, xMax: this.drag.state.xMax - categoryDelta });
|
|
2908
|
-
|
|
2942
|
+
if (this.drag.canPanY) {
|
|
2943
|
+
this.yOffsets.set(chart.id, this.drag.yOffset + valueDelta);
|
|
2944
|
+
}
|
|
2909
2945
|
}
|
|
2910
2946
|
if (this.drag.type === "y-scale") {
|
|
2911
2947
|
const transform = createCoordinateTransform({
|
|
@@ -2915,6 +2951,7 @@ var AlienCharts = (() => {
|
|
|
2915
2951
|
plot
|
|
2916
2952
|
});
|
|
2917
2953
|
const delta = transform.valueScaleDelta(this.drag.start, point);
|
|
2954
|
+
if (delta !== 0) this.lockYRange(this.drag.layout);
|
|
2918
2955
|
this.yScales.set(
|
|
2919
2956
|
chart.id,
|
|
2920
2957
|
scaleValueRange(
|
|
@@ -2957,7 +2994,7 @@ var AlienCharts = (() => {
|
|
|
2957
2994
|
const normalized = normalizeRect(this.rectangleZoomRect.start, this.rectangleZoomRect.end);
|
|
2958
2995
|
if (normalized?.width >= 4 && normalized?.height >= 4) {
|
|
2959
2996
|
const layout = this.drag.layout;
|
|
2960
|
-
applyRectangleZoom({
|
|
2997
|
+
const zoomed = applyRectangleZoom({
|
|
2961
2998
|
chart: layout.chart,
|
|
2962
2999
|
descriptor: layout.descriptor,
|
|
2963
3000
|
plot: layout.plot,
|
|
@@ -2965,10 +3002,12 @@ var AlienCharts = (() => {
|
|
|
2965
3002
|
end: this.rectangleZoomRect.end,
|
|
2966
3003
|
initialVisiblePoints: this.options.initialVisiblePoints,
|
|
2967
3004
|
viewStateRef: { current: this.viewStates },
|
|
3005
|
+
yBaseRangeRef: { current: this.yBaseRanges },
|
|
2968
3006
|
yScaleRef: { current: this.yScales },
|
|
2969
3007
|
yCenterOffsetRef: { current: this.yOffsets },
|
|
2970
3008
|
yManualScaleRef: { current: /* @__PURE__ */ new Set() }
|
|
2971
3009
|
});
|
|
3010
|
+
if (zoomed) this.lockYRange(layout);
|
|
2972
3011
|
}
|
|
2973
3012
|
this.rectangleZoomChartId = null;
|
|
2974
3013
|
this.rectangleZoomRect = null;
|
|
@@ -2989,6 +3028,7 @@ var AlienCharts = (() => {
|
|
|
2989
3028
|
if (event.shiftKey) {
|
|
2990
3029
|
const wheelDelta = event.deltaY || event.deltaX;
|
|
2991
3030
|
const currentScale = this.yScales.get(layout.chart.id) || 1;
|
|
3031
|
+
if (wheelDelta !== 0) this.lockYRange(layout);
|
|
2992
3032
|
this.yScales.set(
|
|
2993
3033
|
layout.chart.id,
|
|
2994
3034
|
scaleValueRange(
|
|
@@ -3023,7 +3063,7 @@ var AlienCharts = (() => {
|
|
|
3023
3063
|
event.preventDefault();
|
|
3024
3064
|
const { layout, point } = context;
|
|
3025
3065
|
const inPlot = point.x >= layout.plot.x && point.x <= layout.plot.x + layout.plot.width && point.y >= layout.plot.y && point.y <= layout.plot.y + layout.plot.height;
|
|
3026
|
-
const data = inPlot ? screenPointToDataPoint({ point, chart: layout.chart, descriptor: layout.descriptor, plot: layout.plot, initialVisiblePoints: this.options.initialVisiblePoints, viewStateRef: { current: this.viewStates }, yScaleRef: { current: this.yScales }, yCenterOffsetRef: { current: this.yOffsets } }) : null;
|
|
3066
|
+
const data = inPlot ? screenPointToDataPoint({ point, chart: layout.chart, descriptor: layout.descriptor, plot: layout.plot, initialVisiblePoints: this.options.initialVisiblePoints, viewStateRef: { current: this.viewStates }, yBaseRangeRef: { current: this.yBaseRanges }, yScaleRef: { current: this.yScales }, yCenterOffsetRef: { current: this.yOffsets } }) : null;
|
|
3027
3067
|
this.options.onChartContextMenu({ chart: layout.chart, event, point: data });
|
|
3028
3068
|
}
|
|
3029
3069
|
updateCrosshair(point, layout) {
|
|
@@ -3070,6 +3110,7 @@ var AlienCharts = (() => {
|
|
|
3070
3110
|
xValue: nearest.xValue,
|
|
3071
3111
|
categoryLabel: getCategoryLabel(layout.chart, nearest.xValue),
|
|
3072
3112
|
points,
|
|
3113
|
+
plot: { ...layout.plot },
|
|
3073
3114
|
tooltipX: point.x + 232 > layout.rect.x + layout.rect.width ? point.x - 232 : point.x + 12,
|
|
3074
3115
|
tooltipY: clamp(point.y + 12, layout.plot.y, layout.rect.y + layout.rect.height - 96)
|
|
3075
3116
|
};
|
|
@@ -3137,6 +3178,7 @@ var AlienCharts = (() => {
|
|
|
3137
3178
|
this.viewStates.set(chartId, getInitialView(chart, this.options.initialVisiblePoints));
|
|
3138
3179
|
this.yScales.set(chartId, 1);
|
|
3139
3180
|
this.yOffsets.set(chartId, 0);
|
|
3181
|
+
this.yBaseRanges.delete(chartId);
|
|
3140
3182
|
this.requestRender();
|
|
3141
3183
|
}
|
|
3142
3184
|
openFullscreen(chartId) {
|