@hybridcore/ui 1.6.27 → 1.6.28

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.
@@ -1451,7 +1451,10 @@ const kn = (t) => {
1451
1451
  Ee.new(m, {
1452
1452
  width: Vt,
1453
1453
  height: Vt,
1454
- wheelable: !0,
1454
+ // Off by default for the same reason the XY charts set `wheelX`/`wheelY`
1455
+ // to "none": the widget lives in a scrollable dashboard, and capturing the
1456
+ // wheel traps the page scroll. Drill-down is click-driven; pinch still zooms.
1457
+ wheelable: !1,
1455
1458
  pinchZoom: !0
1456
1459
  })
1457
1460
  ).contents.children.push(
@@ -1,6 +1,6 @@
1
1
  import { R as I, A as W } from "../../../AnimatedTheme-ktdO3Bel.js";
2
- import { useThemeProps as z } from "@mui/material";
3
- import { useRef as d, useLayoutEffect as S } from "react";
2
+ import { useThemeProps as S } from "@mui/material";
3
+ import { useRef as d, useLayoutEffect as z } from "react";
4
4
  import { X as F, V } from "../../../AxisRenderer-BCQoUJw6.js";
5
5
  import { X as G } from "../../../XYCursor-CVUSpqb9.js";
6
6
  import { D as M } from "../../../DateAxis-DEXKps1S.js";
@@ -11,7 +11,7 @@ import { L as j } from "../../../LineSeries-D_IL2qGF.js";
11
11
  import { T as q } from "../../../Tooltip-vyZRZWih.js";
12
12
  import { L as B } from "../../../Legend-CFvQiIfn.js";
13
13
  const ie = (v) => {
14
- const u = z({
14
+ const u = S({
15
15
  props: v,
16
16
  name: "HCHighlightLineChart"
17
17
  }), {
@@ -24,7 +24,7 @@ const ie = (v) => {
24
24
  emptyMessage: x = "No data available",
25
25
  sx: A,
26
26
  ...L
27
- } = u, X = {
27
+ } = u, y = {
28
28
  ...u,
29
29
  height: f,
30
30
  width: k,
@@ -32,8 +32,8 @@ const ie = (v) => {
32
32
  showLegend: l,
33
33
  loading: g,
34
34
  emptyMessage: x
35
- }, y = d(null), C = d(null), h = d(null);
36
- return S(() => {
35
+ }, X = d(null), C = d(null), h = d(null);
36
+ return z(() => {
37
37
  if (!h.current) return;
38
38
  const e = I.new(h.current);
39
39
  C.current = e, e.setThemes([W.new(e)]);
@@ -41,12 +41,14 @@ const ie = (v) => {
41
41
  F.new(e, {
42
42
  panX: !0,
43
43
  panY: !0,
44
- wheelX: "panX",
45
- wheelY: "zoomX",
44
+ // The widget lives in a scrollable dashboard, so the wheel must reach the
45
+ // page instead of panning/zooming the plot. Drag-pan and pinch still zoom.
46
+ wheelX: "none",
47
+ wheelY: "none",
46
48
  pinchZoomX: !0
47
49
  })
48
50
  );
49
- y.current = o, o.set(
51
+ X.current = o, o.set(
50
52
  "cursor",
51
53
  G.new(e, {
52
54
  behavior: "zoomX"
@@ -120,7 +122,7 @@ const ie = (v) => {
120
122
  emptyMessage: x,
121
123
  sx: A,
122
124
  other: L,
123
- ownerState: X
125
+ ownerState: y
124
126
  };
125
127
  };
126
128
  export {
@@ -383,7 +383,10 @@ const ze = (t) => {
383
383
  U.new(f, {
384
384
  width: q,
385
385
  height: q,
386
- wheelable: !0,
386
+ // Off by default for the same reason the XY charts set `wheelX`/`wheelY`
387
+ // to "none": the widget lives in a scrollable dashboard, and capturing the
388
+ // wheel traps the page scroll. `ZoomTools` and pinch still zoom.
389
+ wheelable: !1,
387
390
  pinchZoom: !0
388
391
  })
389
392
  );
@@ -21,7 +21,11 @@ const H = (i) => {
21
21
  zoom: 3,
22
22
  options: {
23
23
  cssPosition: "absolute",
24
- controls: { zoom: !1 }
24
+ controls: { zoom: !1 },
25
+ // The widget sits in a scrollable dashboard: swallowing the wheel would
26
+ // trap the page scroll on the map. Zoom stays available through
27
+ // `Controls` and double-click.
28
+ interactions: { mouseWheelZoom: !1 }
25
29
  },
26
30
  onInit: a.onInit
27
31
  }
@@ -1,108 +1,119 @@
1
- import { useThemeProps as Q, useTheme as X } from "@mui/material";
2
- import { V as B } from "../../Vector-BmuhQO4p.js";
3
- import { t as V } from "../../Source-BSZST_GH.js";
4
- import { V as T } from "../../Vector-DfTqQEln.js";
5
- import { uniqueId as C, isEmpty as O, values as z } from "lodash";
6
- import { useRef as m, useState as N, useEffect as G } from "react";
7
- import { createMapboxLayer as Y } from "../map/helpers/mapbox.js";
8
- import { parse as U } from "../map/helpers/wkt.js";
9
- import { W as K } from "../../WKT-2wsDT-nq.js";
10
- import { S as j, I as _ } from "../../Text-ChJRuaD8.js";
11
- const $ = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAADNCAMAAAAmPqoJAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAohQTFRFAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Ro2BGQAAANh0Uk5TABA4XICDn6e/y9/Pq4dkPBgoWHyjx+v/8zQEGkx/seTntIJPHSxwr++3eAqO1JJQDgFDhYlHBQhAkeHmlkVOnvRTAgtbrPxgSD6dRCDeJmHAxmebu9zjdwwumaBWwchdE37q8DuuQmLbam7odnv7CQ0VkyHDj2niJK2G8sw5pRJxomyLP0uqswZXqb4w97V5NRxo1yeMxA91+C1a5f3KjXLSvbzO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", le = (Z) => {
12
- const q = Q({ props: Z, name: "HCDataMap" }), { data: A, payload: l, onPayloadUpdate: H, accessToken: D, sx: w, ...R } = q, p = X(), g = m(C("map-")), t = m(null), c = m(null), d = m(null), n = m(null), f = m(), [x, E] = N(!1), [L, M] = N(null), P = () => {
13
- if (!x || !t.current || !A || O(A) || !d.current)
1
+ import { useThemeProps as C, useTheme as O } from "@mui/material";
2
+ import { V as U } from "../../Vector-BmuhQO4p.js";
3
+ import { t as Y } from "../../Source-BSZST_GH.js";
4
+ import { V as K } from "../../Vector-DfTqQEln.js";
5
+ import { uniqueId as j, isEmpty as _, values as L, isEqual as $ } from "lodash";
6
+ import { useRef as n, useEffect as b, useState as w } from "react";
7
+ import { createMapboxLayer as ee } from "../map/helpers/mapbox.js";
8
+ import { parse as te } from "../map/helpers/wkt.js";
9
+ import { W as re } from "../../WKT-2wsDT-nq.js";
10
+ import { S as oe, I as ae } from "../../Text-ChJRuaD8.js";
11
+ const ne = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAADNCAMAAAAmPqoJAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAohQTFRFAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Ro2BGQAAANh0Uk5TABA4XICDn6e/y9/Pq4dkPBgoWHyjx+v/8zQEGkx/seTntIJPHSxwr++3eAqO1JJQDgFDhYlHBQhAkeHmlkVOnvRTAgtbrPxgSD6dRCDeJmHAxmebu9zjdwwumaBWwchdE37q8DuuQmLbam7odnv7CQ0VkyHDj2niJK2G8sw5pRJxomyLP0uqswZXqb4w97V5NRxo1yeMxA91+C1a5f3KjXLSvbzO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", ce = [-170, -65, 170, 65], qe = (S) => {
12
+ const q = C({ props: S, name: "HCDataMap" }), { data: l, payload: g, onPayloadUpdate: y, accessToken: P, sx: W, ...v } = q, m = O(), M = n(j("map-")), o = n(null), u = n(null), i = n(null), c = n(null), d = n(), A = n(!1), x = n(!1), h = n(null), p = n({ payload: g, onPayloadUpdate: y });
13
+ b(() => {
14
+ p.current = { payload: g, onPayloadUpdate: y };
15
+ });
16
+ const [z, I] = w(!1), [k, J] = w(null), X = () => {
17
+ if (!z || !o.current || !l || _(l) || !i.current)
14
18
  return;
15
- const r = new K(), o = A.filter((e) => {
16
- const a = z(e.variables.geometry)[0];
19
+ const e = new re(), t = l.filter((r) => {
20
+ const a = L(r.variables.geometry)[0];
17
21
  try {
18
- return U(a), !0;
22
+ return te(a), !0;
19
23
  } catch {
20
24
  return !1;
21
25
  }
22
- }).map((e) => {
23
- const a = z(e.variables.geometry)[0], u = r.readFeature(a, {
26
+ }).map((r) => {
27
+ const a = L(r.variables.geometry)[0], s = e.readFeature(a, {
24
28
  dataProjection: "EPSG:4326",
25
29
  featureProjection: "EPSG:3857"
26
30
  });
27
- return u.set("title", e.title), u;
31
+ return s.set("title", r.title), s;
28
32
  });
29
- d.current.clear(), d.current.addFeatures(o);
30
- }, y = () => {
31
- var e;
32
- if (!t.current) return;
33
- const r = (e = t.current) == null ? void 0 : e.getBoundingBox(), o = {
34
- ...l,
35
- boundingBox: r
33
+ i.current.clear(), i.current.addFeatures(t);
34
+ }, N = () => {
35
+ if (!A.current || !o.current) return !1;
36
+ const e = o.current.getSize();
37
+ return !!(e && e[0] > 0 && e[1] > 0);
38
+ }, R = () => {
39
+ if (!o.current || !N()) return;
40
+ const e = o.current.getBoundingBox(), t = {
41
+ ...p.current.payload,
42
+ boundingBox: e
36
43
  };
37
- H(o);
38
- }, S = () => {
39
- f.current && clearTimeout(f.current), f.current = setTimeout(() => {
40
- var r;
41
- (r = t.current) == null || r.updateSize(), c.current && c.current.map.resize();
44
+ $(t, h.current) || (h.current = t, p.current.onPayloadUpdate(t));
45
+ }, D = () => {
46
+ var r, a;
47
+ if (x.current || !N()) return;
48
+ const e = (r = p.current.payload) == null ? void 0 : r.boundingBox, t = e ? [
49
+ e.bottomLeft.longitude,
50
+ e.bottomLeft.latitude,
51
+ e.topRight.longitude,
52
+ e.topRight.latitude
53
+ ] : ce;
54
+ (a = o.current) == null || a.centerToExtent(
55
+ Y(t, "EPSG:4326", "EPSG:3857")
56
+ ), x.current = !0, R();
57
+ }, F = () => {
58
+ d.current && clearTimeout(d.current), d.current = setTimeout(() => {
59
+ var e;
60
+ A.current && ((e = o.current) == null || e.updateSize(), u.current && u.current.map.resize(), D());
42
61
  }, 100);
43
- }, W = () => {
44
- var r, o;
45
- (r = t.current) == null || r.on("movestart", () => {
46
- n.current && (clearTimeout(n.current), n.current = null);
47
- }), (o = t.current) == null || o.on("moveend", () => {
48
- n.current && (clearTimeout(n.current), n.current = null), n.current = setTimeout(y, 500);
62
+ }, Q = () => {
63
+ var e, t;
64
+ (e = o.current) == null || e.on("movestart", () => {
65
+ c.current && (clearTimeout(c.current), c.current = null);
66
+ }), (t = o.current) == null || t.on("moveend", () => {
67
+ c.current && (clearTimeout(c.current), c.current = null), c.current = setTimeout(R, 500);
49
68
  });
50
- }, k = () => {
51
- var u, J, h;
52
- const r = p.palette.mode === "light" ? "mapbox://styles/mapbox/light-v11" : "mapbox://styles/mapbox/dark-v11", o = Y({
53
- id: g.current,
69
+ }, B = () => {
70
+ var s, G, Z;
71
+ const e = m.palette.mode === "light" ? "mapbox://styles/mapbox/light-v11" : "mapbox://styles/mapbox/dark-v11", t = ee({
72
+ id: M.current,
54
73
  center: [0, 0],
55
- style: r,
56
- accessToken: D
74
+ style: e,
75
+ accessToken: P
57
76
  });
58
- (u = t.current) == null || u.addLayer(o.layer), c.current = o;
59
- const e = new T(), a = new B({
60
- source: e,
61
- style: new j({
62
- image: new _({
77
+ (s = o.current) == null || s.addLayer(t.layer), u.current = t;
78
+ const r = new K(), a = new U({
79
+ source: r,
80
+ style: new oe({
81
+ image: new ae({
63
82
  anchor: [0.5, 1],
64
- src: $,
83
+ src: ne,
65
84
  scale: 0.1,
66
- color: p.palette.primary.main
85
+ color: m.palette.primary.main
67
86
  })
68
87
  })
69
88
  });
70
- if ((J = t.current) == null || J.addLayer(a), d.current = e, E(!0), W(), y(), (h = t.current) == null || h.on("pointermove", (s) => {
71
- var b;
72
- const i = (b = t.current) == null ? void 0 : b.forEachFeatureAtPixel(s.pixel, 4);
73
- M(i ? {
74
- text: i.get("title"),
75
- x: s.pixel[0],
76
- y: s.pixel[1]
89
+ (G = o.current) == null || G.addLayer(a), i.current = r, A.current = !0, I(!0), Q(), (Z = o.current) == null || Z.on("pointermove", (f) => {
90
+ var E;
91
+ const H = (E = o.current) == null ? void 0 : E.forEachFeatureAtPixel(f.pixel, 4);
92
+ J(H ? {
93
+ text: H.get("title"),
94
+ x: f.pixel[0],
95
+ y: f.pixel[1]
77
96
  } : null);
78
- }), l != null && l.boundingBox && t.current) {
79
- const { bottomLeft: s, topRight: i } = l.boundingBox, b = [
80
- s.longitude,
81
- s.latitude,
82
- i.longitude,
83
- i.latitude
84
- ], F = V(b, "EPSG:4326", "EPSG:3857");
85
- t.current.centerToExtent(F);
86
- }
87
- }, v = () => {
88
- var e, a;
89
- if (!c.current) return;
90
- const r = p.palette.mode === "light" ? "mapbox://styles/mapbox/light-v11" : "mapbox://styles/mapbox/dark-v11", o = ((a = (e = c.current.layer.getSource()) == null ? void 0 : e.getMapboxMap) == null ? void 0 : a.call(e)) || c.current.map;
91
- o && o.setStyle(r);
97
+ }), D();
98
+ }, V = () => {
99
+ var r, a;
100
+ if (!u.current) return;
101
+ const e = m.palette.mode === "light" ? "mapbox://styles/mapbox/light-v11" : "mapbox://styles/mapbox/dark-v11", t = ((a = (r = u.current.layer.getSource()) == null ? void 0 : r.getMapboxMap) == null ? void 0 : a.call(r)) || u.current.map;
102
+ t && t.setStyle(e);
92
103
  };
93
- G(() => (P(), () => {
94
- }), [A, x]), G(() => (v(), () => {
95
- }), [p.palette.mode]);
96
- const I = { ...q };
104
+ b(() => (X(), () => {
105
+ }), [l, z]), b(() => (V(), () => {
106
+ }), [m.palette.mode]);
107
+ const T = { ...q };
97
108
  return {
98
- refs: { mapRef: t, mapId: g },
99
- state: { tooltip: L },
100
- actions: { onInit: k, onMapResize: S },
101
- ownerState: I,
102
- sx: w,
103
- other: R
109
+ refs: { mapRef: o, mapId: M },
110
+ state: { tooltip: k },
111
+ actions: { onInit: B, onMapResize: F },
112
+ ownerState: T,
113
+ sx: W,
114
+ other: v
104
115
  };
105
116
  };
106
117
  export {
107
- le as useDataMapLogic
118
+ qe as useDataMapLogic
108
119
  };
@@ -1,6 +1,6 @@
1
1
  import { jsxs as m, jsx as e } from "react/jsx-runtime";
2
- import { Typography as d } from "@mui/material";
3
- import { useEffect as l } from "react";
2
+ import { Typography as l } from "@mui/material";
3
+ import { useEffect as d } from "react";
4
4
  import { u } from "../../index.esm-DAf19hyR.js";
5
5
  import { Map as h } from "../map/index.js";
6
6
  import { Controls as M } from "./components/controls/index.js";
@@ -8,27 +8,31 @@ import { Legend as R } from "./components/legend/index.js";
8
8
  import { useHeatMapLogic as g } from "./logic.js";
9
9
  import { HeatMapRoot as H, HeatMapHeader as z, HeatMapContent as x } from "./styled.js";
10
10
  const E = (r) => {
11
- const { refs: t, actions: i, gradient: p, ownerState: o, sx: s, other: f } = g(r), { width: n, height: a, ref: c } = u();
12
- return l(() => (n && a && i.onMapResize(), () => {
13
- }), [n, a]), /* @__PURE__ */ m(H, { ownerState: o, sx: s, ref: c, ...f, children: [
14
- /* @__PURE__ */ e(z, { ownerState: o, children: /* @__PURE__ */ e(d, { variant: "h3", children: r.title }) }),
15
- /* @__PURE__ */ m(x, { ownerState: o, children: [
11
+ const { refs: o, actions: i, gradient: s, ownerState: t, sx: p, other: f } = g(r), { width: n, height: a, ref: c } = u();
12
+ return d(() => (n && a && i.onMapResize(), () => {
13
+ }), [n, a]), /* @__PURE__ */ m(H, { ownerState: t, sx: p, ref: c, ...f, children: [
14
+ /* @__PURE__ */ e(z, { ownerState: t, children: /* @__PURE__ */ e(l, { variant: "h3", children: r.title }) }),
15
+ /* @__PURE__ */ m(x, { ownerState: t, children: [
16
16
  /* @__PURE__ */ e(
17
17
  h,
18
18
  {
19
- id: t.mapId.current,
20
- ref: t.mapRef,
19
+ id: o.mapId.current,
20
+ ref: o.mapRef,
21
21
  center: { latitude: 0, longitude: 0 },
22
22
  zoom: 3,
23
23
  options: {
24
24
  cssPosition: "absolute",
25
- controls: { zoom: !1 }
25
+ controls: { zoom: !1 },
26
+ // The widget sits in a scrollable dashboard: swallowing the wheel would
27
+ // trap the page scroll on the map. Zoom stays available through
28
+ // `Controls` and double-click.
29
+ interactions: { mouseWheelZoom: !1 }
26
30
  },
27
31
  onInit: i.onInit
28
32
  }
29
33
  ),
30
- /* @__PURE__ */ e(R, { gradient: p }),
31
- /* @__PURE__ */ e(M, { mapRef: t.mapRef.current })
34
+ /* @__PURE__ */ e(R, { gradient: s }),
35
+ /* @__PURE__ */ e(M, { mapRef: o.mapRef.current })
32
36
  ] })
33
37
  ] });
34
38
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hybridcore/ui",
3
3
  "description": "Hybrid Core UI Library",
4
- "version": "1.6.27",
4
+ "version": "1.6.28",
5
5
  "author": "Hybrid Core",
6
6
  "license": "ISC",
7
7
  "type": "module",