@12-apps/ui 6.90.0 → 6.91.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.
- package/components-catalog.md +1 -1
- package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +3 -3
- package/dist/_internal/components/data-display/Avatar/Avatar.js +2 -2
- package/dist/_internal/components/data-display/Carousel/Carousel.js +2 -2
- package/dist/_internal/components/data-display/Chart/Chart.js +4 -4
- package/dist/_internal/components/data-display/Chart/SpecChart.js +5 -5
- package/dist/_internal/components/data-display/Chart/chart-context.js +2 -2
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +3 -3
- package/dist/_internal/components/data-display/Chip/Chip.js +3 -3
- package/dist/_internal/components/data-display/Chip/Chip.styles.js +2 -2
- package/dist/_internal/components/data-display/DataGrid/DataGrid.js +1 -1
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +21 -21
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +25 -25
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +6 -6
- package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +7 -7
- package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +5 -5
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +8 -8
- package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +7 -7
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +18 -18
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +8 -8
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +7 -7
- package/dist/_internal/components/data-display/DataViews/data-views-range-bounds.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +2 -2
- package/dist/_internal/components/data-display/DataViews/list-card-rails.js +4 -4
- package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +2 -2
- package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -2
- package/dist/_internal/components/data-display/FleetMap/FleetBody.js +9 -9
- package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +8 -8
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js +12 -12
- package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.js +2 -2
- package/dist/_internal/components/data-display/Lightbox/Lightbox.js +7 -7
- package/dist/_internal/components/data-display/Lightbox/LightboxControls.js +2 -2
- package/dist/_internal/components/data-display/Lightbox/LightboxOverlay.js +3 -3
- package/dist/_internal/components/data-display/Lightbox/LightboxThumbnails.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapLayers.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.js +7 -7
- package/dist/_internal/components/data-display/RegionMap/RegionMap.hooks.js +2 -1
- package/dist/_internal/components/data-display/RegionMap/RegionMap.js +4 -3
- package/dist/_internal/components/data-display/RegionMap/RegionMap.view.js +19 -0
- package/dist/_internal/components/data-display/RegionMap/RegionMapDrawing.js +1 -1
- package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +3 -3
- package/dist/_internal/components/data-display/index.js +50 -44
- package/dist/_internal/components/index.js +57 -51
- package/dist/_internal/components/layout/SettingCard/SettingCard.js +8 -8
- package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js +4 -4
- package/dist/_internal/components/layout/SettingCard/SettingCard.summary.js +7 -7
- package/dist/_internal/components/layout/SettingCard/SettingGrid.js +5 -5
- package/dist/_internal/components/layout/SettingCard/SettingGroup.js +9 -9
- package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +8 -8
- package/dist/_internal/components/layout/SettingCard/SettingToggle.js +9 -9
- package/dist/_internal/components/layout/index.js +12 -12
- package/dist/_internal/user-avatar/user-avatar.js +3 -3
- package/dist/charts.js +5 -5
- package/dist/{chunk-K2VDRODL.js → chunk-3IDL7NK7.js} +2 -2
- package/dist/{chunk-QADTI63U.js → chunk-3JZ3KEQQ.js} +2 -2
- package/dist/{chunk-EOIRU62W.js → chunk-42D7KBDH.js} +2 -2
- package/dist/{chunk-LXIPBHNJ.js → chunk-42TOCPXB.js} +5 -5
- package/dist/{chunk-KANCE4MS.js → chunk-4KWDNGMA.js} +3 -3
- package/dist/{chunk-7YJYIMWP.js → chunk-4QR7LM5F.js} +6 -6
- package/dist/{chunk-SCXVTNLE.js → chunk-5E2CRRD4.js} +4 -4
- package/dist/{chunk-ZDAAHCIS.js → chunk-5HADIIWN.js} +3 -3
- package/dist/{chunk-BP3ZKIPE.js → chunk-64UNVW6D.js} +4 -4
- package/dist/{chunk-7F6D73NL.js → chunk-76DX2IMH.js} +2 -2
- package/dist/{chunk-FI2CQOGC.js → chunk-7NP2JHGM.js} +2 -2
- package/dist/{chunk-BMTIBQQC.js → chunk-BBBHPK2Q.js} +6 -6
- package/dist/{chunk-EUR2ORTN.js → chunk-CSJ7WNXU.js} +2 -2
- package/dist/{chunk-WWR6APJR.js → chunk-DA3D5X5Z.js} +5 -5
- package/dist/chunk-DY2I6LMX.js +1 -0
- package/dist/chunk-DY2I6LMX.js.map +1 -0
- package/dist/{chunk-QKOJ4637.js → chunk-E6K2UZGR.js} +3 -3
- package/dist/{chunk-VIMMEADQ.js → chunk-FORAVDJF.js} +9 -9
- package/dist/chunk-FWAY2SAI.js +72 -0
- package/dist/chunk-FWAY2SAI.js.map +1 -0
- package/dist/{chunk-GMRQPNG3.js → chunk-G2NVBCF7.js} +20 -25
- package/dist/chunk-G2NVBCF7.js.map +1 -0
- package/dist/{chunk-Z5WUSI47.js → chunk-G3JFESKD.js} +6 -6
- package/dist/{chunk-3EIRRLCQ.js → chunk-HC6OZ7QK.js} +2 -2
- package/dist/{chunk-SKIAWOUC.js → chunk-HOPRZEBM.js} +3 -3
- package/dist/{chunk-JHWEL4NX.js → chunk-HS662RLW.js} +2 -2
- package/dist/{chunk-BZBLPXV7.js → chunk-IWSTMVCA.js} +4 -4
- package/dist/{chunk-TZC6KIK2.js → chunk-JG733RMP.js} +5 -5
- package/dist/{chunk-CW5Z67NA.js → chunk-JH2XLVWM.js} +2 -2
- package/dist/{chunk-3OTGREQG.js → chunk-JKZPGCN7.js} +11 -11
- package/dist/{chunk-DSBC6O46.js → chunk-JN2IANXD.js} +3 -3
- package/dist/{chunk-GBB23QLL.js → chunk-KJKD6Y6V.js} +3 -3
- package/dist/{chunk-KRBPWTXW.js → chunk-L3PDY7CJ.js} +2 -2
- package/dist/{chunk-HI7JPDD6.js → chunk-M3XJVD5G.js} +2 -2
- package/dist/{chunk-EEO7M5GU.js → chunk-MYTV353T.js} +4 -4
- package/dist/{chunk-3HZKUN5J.js → chunk-MZAYIG2I.js} +2 -2
- package/dist/{chunk-AKE6KVQG.js → chunk-NGXL4R54.js} +5 -1
- package/dist/chunk-NGXL4R54.js.map +1 -0
- package/dist/{chunk-3X2MA47R.js → chunk-NKEFH3RS.js} +5 -5
- package/dist/{chunk-NI67M453.js → chunk-PGANINQD.js} +5 -5
- package/dist/{chunk-BV2LOTMC.js → chunk-Q3SILZTQ.js} +2 -2
- package/dist/{chunk-TIM4PXWN.js → chunk-QHIWV55K.js} +2 -2
- package/dist/{chunk-DHAXUVMR.js → chunk-QN7FVZQD.js} +4 -4
- package/dist/{chunk-X2GWR75Q.js → chunk-TSEBMVYY.js} +3 -3
- package/dist/{chunk-CJ6XXM4X.js → chunk-U2AEM3K4.js} +6 -6
- package/dist/{chunk-ZH6NYB6Y.js → chunk-U2QXQ7D4.js} +4 -4
- package/dist/{chunk-SK2CTB3O.js → chunk-U2SAW6DH.js} +5 -5
- package/dist/{chunk-DAHSKQBV.js → chunk-UMOHHWXY.js} +2 -2
- package/dist/{chunk-P772HCHI.js → chunk-W676GY42.js} +4 -4
- package/dist/{chunk-JFD742C3.js → chunk-WCF56ZCD.js} +2 -2
- package/dist/{chunk-T2G4LDU5.js → chunk-WLLUARTC.js} +2 -2
- package/dist/{chunk-NK6O4NE4.js → chunk-XILMDEGZ.js} +3 -3
- package/dist/{chunk-QAEO52Z4.js → chunk-YGQM6GFQ.js} +2 -2
- package/dist/{chunk-WNNA6YYE.js → chunk-Z7T4EFEC.js} +7 -4
- package/dist/chunk-Z7T4EFEC.js.map +1 -0
- package/dist/{chunk-LOLYBFYY.js → chunk-ZCNR4DN5.js} +5 -5
- package/dist/{chunk-COKPPU42.js → chunk-ZIHSCBMN.js} +12 -12
- package/dist/data-display/AsyncStateContainer.js +3 -3
- package/dist/data-display/Avatar.js +2 -2
- package/dist/data-display/CardKit.js +7 -7
- package/dist/data-display/Carousel.js +2 -2
- package/dist/data-display/Chart.js +5 -5
- package/dist/data-display/Chip.js +3 -3
- package/dist/data-display/DataGrid.js +1 -1
- package/dist/data-display/DataViews.js +34 -34
- package/dist/data-display/DayRuler.js +4 -4
- package/dist/data-display/EmptyState.js +2 -2
- package/dist/data-display/FleetMap.js +12 -12
- package/dist/data-display/InteractiveTooltip.js +2 -2
- package/dist/data-display/Lightbox.js +7 -7
- package/dist/data-display/MapPreview.js +7 -7
- package/dist/data-display/RegionMap.js +11 -5
- package/dist/data-display/SectionOnboarding.js +3 -3
- package/dist/layout/SettingCard.js +12 -12
- package/dist/types/components/data-display/RegionMap/RegionMap.d.ts +4 -1
- package/dist/types/components/data-display/RegionMap/RegionMap.d.ts.map +1 -1
- package/dist/types/components/data-display/RegionMap/RegionMap.hooks.d.ts +4 -2
- package/dist/types/components/data-display/RegionMap/RegionMap.hooks.d.ts.map +1 -1
- package/dist/types/components/data-display/RegionMap/RegionMap.types.d.ts +40 -0
- package/dist/types/components/data-display/RegionMap/RegionMap.types.d.ts.map +1 -1
- package/dist/types/components/data-display/RegionMap/RegionMap.view.d.ts +36 -0
- package/dist/types/components/data-display/RegionMap/RegionMap.view.d.ts.map +1 -0
- package/dist/types/components/data-display/RegionMap/RegionMapDrawing.d.ts +4 -1
- package/dist/types/components/data-display/RegionMap/RegionMapDrawing.d.ts.map +1 -1
- package/dist/types/components/data-display/RegionMap/index.d.ts +3 -2
- package/dist/types/components/data-display/RegionMap/index.d.ts.map +1 -1
- package/dist/user-avatar.js +3 -3
- package/package.json +1 -1
- package/src/components/data-display/RegionMap/RegionMap.hooks.ts +24 -33
- package/src/components/data-display/RegionMap/RegionMap.md +27 -0
- package/src/components/data-display/RegionMap/RegionMap.tsx +7 -1
- package/src/components/data-display/RegionMap/RegionMap.types.ts +41 -0
- package/src/components/data-display/RegionMap/RegionMap.view.ts +105 -0
- package/src/components/data-display/RegionMap/RegionMapDrawing.tsx +11 -0
- package/src/components/data-display/RegionMap/index.ts +5 -1
- package/src/components/data-display/RegionMap/tests.md +10 -2
- package/dist/chunk-ACFKPE2T.js +0 -1
- package/dist/chunk-AKE6KVQG.js.map +0 -1
- package/dist/chunk-GMRQPNG3.js.map +0 -1
- package/dist/chunk-WNNA6YYE.js.map +0 -1
- /package/dist/{chunk-ACFKPE2T.js.map → _internal/components/data-display/RegionMap/RegionMap.view.js.map} +0 -0
- /package/dist/{chunk-K2VDRODL.js.map → chunk-3IDL7NK7.js.map} +0 -0
- /package/dist/{chunk-QADTI63U.js.map → chunk-3JZ3KEQQ.js.map} +0 -0
- /package/dist/{chunk-EOIRU62W.js.map → chunk-42D7KBDH.js.map} +0 -0
- /package/dist/{chunk-LXIPBHNJ.js.map → chunk-42TOCPXB.js.map} +0 -0
- /package/dist/{chunk-KANCE4MS.js.map → chunk-4KWDNGMA.js.map} +0 -0
- /package/dist/{chunk-7YJYIMWP.js.map → chunk-4QR7LM5F.js.map} +0 -0
- /package/dist/{chunk-SCXVTNLE.js.map → chunk-5E2CRRD4.js.map} +0 -0
- /package/dist/{chunk-ZDAAHCIS.js.map → chunk-5HADIIWN.js.map} +0 -0
- /package/dist/{chunk-BP3ZKIPE.js.map → chunk-64UNVW6D.js.map} +0 -0
- /package/dist/{chunk-7F6D73NL.js.map → chunk-76DX2IMH.js.map} +0 -0
- /package/dist/{chunk-FI2CQOGC.js.map → chunk-7NP2JHGM.js.map} +0 -0
- /package/dist/{chunk-BMTIBQQC.js.map → chunk-BBBHPK2Q.js.map} +0 -0
- /package/dist/{chunk-EUR2ORTN.js.map → chunk-CSJ7WNXU.js.map} +0 -0
- /package/dist/{chunk-WWR6APJR.js.map → chunk-DA3D5X5Z.js.map} +0 -0
- /package/dist/{chunk-QKOJ4637.js.map → chunk-E6K2UZGR.js.map} +0 -0
- /package/dist/{chunk-VIMMEADQ.js.map → chunk-FORAVDJF.js.map} +0 -0
- /package/dist/{chunk-Z5WUSI47.js.map → chunk-G3JFESKD.js.map} +0 -0
- /package/dist/{chunk-3EIRRLCQ.js.map → chunk-HC6OZ7QK.js.map} +0 -0
- /package/dist/{chunk-SKIAWOUC.js.map → chunk-HOPRZEBM.js.map} +0 -0
- /package/dist/{chunk-JHWEL4NX.js.map → chunk-HS662RLW.js.map} +0 -0
- /package/dist/{chunk-BZBLPXV7.js.map → chunk-IWSTMVCA.js.map} +0 -0
- /package/dist/{chunk-TZC6KIK2.js.map → chunk-JG733RMP.js.map} +0 -0
- /package/dist/{chunk-CW5Z67NA.js.map → chunk-JH2XLVWM.js.map} +0 -0
- /package/dist/{chunk-3OTGREQG.js.map → chunk-JKZPGCN7.js.map} +0 -0
- /package/dist/{chunk-DSBC6O46.js.map → chunk-JN2IANXD.js.map} +0 -0
- /package/dist/{chunk-GBB23QLL.js.map → chunk-KJKD6Y6V.js.map} +0 -0
- /package/dist/{chunk-KRBPWTXW.js.map → chunk-L3PDY7CJ.js.map} +0 -0
- /package/dist/{chunk-HI7JPDD6.js.map → chunk-M3XJVD5G.js.map} +0 -0
- /package/dist/{chunk-EEO7M5GU.js.map → chunk-MYTV353T.js.map} +0 -0
- /package/dist/{chunk-3HZKUN5J.js.map → chunk-MZAYIG2I.js.map} +0 -0
- /package/dist/{chunk-3X2MA47R.js.map → chunk-NKEFH3RS.js.map} +0 -0
- /package/dist/{chunk-NI67M453.js.map → chunk-PGANINQD.js.map} +0 -0
- /package/dist/{chunk-BV2LOTMC.js.map → chunk-Q3SILZTQ.js.map} +0 -0
- /package/dist/{chunk-TIM4PXWN.js.map → chunk-QHIWV55K.js.map} +0 -0
- /package/dist/{chunk-DHAXUVMR.js.map → chunk-QN7FVZQD.js.map} +0 -0
- /package/dist/{chunk-X2GWR75Q.js.map → chunk-TSEBMVYY.js.map} +0 -0
- /package/dist/{chunk-CJ6XXM4X.js.map → chunk-U2AEM3K4.js.map} +0 -0
- /package/dist/{chunk-ZH6NYB6Y.js.map → chunk-U2QXQ7D4.js.map} +0 -0
- /package/dist/{chunk-SK2CTB3O.js.map → chunk-U2SAW6DH.js.map} +0 -0
- /package/dist/{chunk-DAHSKQBV.js.map → chunk-UMOHHWXY.js.map} +0 -0
- /package/dist/{chunk-P772HCHI.js.map → chunk-W676GY42.js.map} +0 -0
- /package/dist/{chunk-JFD742C3.js.map → chunk-WCF56ZCD.js.map} +0 -0
- /package/dist/{chunk-T2G4LDU5.js.map → chunk-WLLUARTC.js.map} +0 -0
- /package/dist/{chunk-NK6O4NE4.js.map → chunk-XILMDEGZ.js.map} +0 -0
- /package/dist/{chunk-QAEO52Z4.js.map → chunk-YGQM6GFQ.js.map} +0 -0
- /package/dist/{chunk-LOLYBFYY.js.map → chunk-ZCNR4DN5.js.map} +0 -0
- /package/dist/{chunk-COKPPU42.js.map → chunk-ZIHSCBMN.js.map} +0 -0
|
@@ -1,22 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
centreOf,
|
|
3
|
+
reachBox,
|
|
4
|
+
viewWithin
|
|
5
|
+
} from "./chunk-FWAY2SAI.js";
|
|
1
6
|
import {
|
|
2
7
|
drawOrder,
|
|
3
8
|
extent,
|
|
4
9
|
geometryCache,
|
|
5
10
|
hitRegion,
|
|
6
|
-
projectionAt
|
|
7
|
-
viewBoxFor
|
|
11
|
+
projectionAt
|
|
8
12
|
} from "./chunk-COOSJKZL.js";
|
|
9
13
|
|
|
10
14
|
// src/components/data-display/RegionMap/RegionMap.hooks.ts
|
|
11
15
|
import React from "react";
|
|
12
16
|
var TOLERANCE_SHARE = 1 / 45;
|
|
13
|
-
function centreOf(regions) {
|
|
14
|
-
const points = regions.flatMap((r) => r.rings.flat());
|
|
15
|
-
const lats = extent(points.map(([lat]) => lat));
|
|
16
|
-
const lngs = extent(points.map(([, lng]) => lng));
|
|
17
|
-
if (lats === null || lngs === null) return null;
|
|
18
|
-
return { latitude: (lats.min + lats.max) / 2, longitude: (lngs.min + lngs.max) / 2 };
|
|
19
|
-
}
|
|
20
17
|
function svgPoint(event) {
|
|
21
18
|
const svg = event.currentTarget;
|
|
22
19
|
const matrix = typeof svg.getScreenCTM === "function" ? svg.getScreenCTM() : null;
|
|
@@ -24,14 +21,6 @@ function svgPoint(event) {
|
|
|
24
21
|
const point = new DOMPoint(event.clientX, event.clientY).matrixTransform(matrix.inverse());
|
|
25
22
|
return { x: point.x, y: point.y };
|
|
26
23
|
}
|
|
27
|
-
function viewOf(outermostMetres, drawable) {
|
|
28
|
-
if (outermostMetres !== null) return viewBoxFor(outermostMetres, null);
|
|
29
|
-
const boxes = drawable().filter((box) => box !== null);
|
|
30
|
-
const xs = extent(boxes.flatMap((b) => [b.minX, b.minX + b.spanX]));
|
|
31
|
-
const ys = extent(boxes.flatMap((b) => [b.minY, b.minY + b.spanY]));
|
|
32
|
-
if (xs === null || ys === null) return null;
|
|
33
|
-
return viewBoxFor(null, { minX: xs.min, minY: ys.min, spanX: xs.max - xs.min, spanY: ys.max - ys.min });
|
|
34
|
-
}
|
|
35
24
|
function tappedRegion(event, pointer, drawn, view) {
|
|
36
25
|
const targetId = event.target.getAttribute("data-region-id");
|
|
37
26
|
if (pointer === "mouse" && targetId) return targetId;
|
|
@@ -46,21 +35,27 @@ function tappedRegion(event, pointer, drawn, view) {
|
|
|
46
35
|
function useGeometry(origin) {
|
|
47
36
|
const lat = origin?.latitude ?? null;
|
|
48
37
|
const lng = origin?.longitude ?? null;
|
|
49
|
-
return React.useMemo(
|
|
50
|
-
(
|
|
51
|
-
|
|
52
|
-
|
|
38
|
+
return React.useMemo(() => {
|
|
39
|
+
if (lat === null || lng === null) return { projection: null, geometryOf: null };
|
|
40
|
+
const projection = projectionAt({ latitude: lat, longitude: lng });
|
|
41
|
+
return { projection, geometryOf: geometryCache(projection) };
|
|
42
|
+
}, [lat, lng]);
|
|
53
43
|
}
|
|
54
44
|
function useRegionMap({
|
|
55
45
|
regions,
|
|
56
46
|
center,
|
|
57
47
|
circles = [],
|
|
48
|
+
reach,
|
|
58
49
|
onToggle
|
|
59
50
|
}) {
|
|
60
|
-
const geometryOf = useGeometry(center ?? centreOf(regions));
|
|
51
|
+
const { projection, geometryOf } = useGeometry(center ?? centreOf(regions));
|
|
61
52
|
const radii = circles.map((c) => c.radiusMetres);
|
|
62
53
|
const outermostMetres = extent(radii)?.max ?? null;
|
|
63
|
-
const view = geometryOf === null ? null :
|
|
54
|
+
const view = projection === null || geometryOf === null ? null : viewWithin(
|
|
55
|
+
outermostMetres,
|
|
56
|
+
reach === void 0 ? null : reachBox(reach, projection),
|
|
57
|
+
() => regions.map((r) => geometryOf(r.rings).bounds)
|
|
58
|
+
);
|
|
64
59
|
const drawn = geometryOf && view ? drawOrder(regions, geometryOf, view) : [];
|
|
65
60
|
const pointerType = React.useRef("mouse");
|
|
66
61
|
const onPointerDown = (event) => {
|
|
@@ -71,10 +66,10 @@ function useRegionMap({
|
|
|
71
66
|
const hit = tappedRegion(event, pointerType.current, drawn, view);
|
|
72
67
|
if (hit) onToggle(hit);
|
|
73
68
|
};
|
|
74
|
-
return { view, drawn, radii, outermostMetres, onPointerDown, onClick };
|
|
69
|
+
return { view, projection, drawn, radii, outermostMetres, onPointerDown, onClick };
|
|
75
70
|
}
|
|
76
71
|
|
|
77
72
|
export {
|
|
78
73
|
useRegionMap
|
|
79
74
|
};
|
|
80
|
-
//# sourceMappingURL=chunk-
|
|
75
|
+
//# sourceMappingURL=chunk-G2NVBCF7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/RegionMap/RegionMap.hooks.ts"],"sourcesContent":["import React from 'react';\n\nimport {\n drawOrder,\n extent,\n geometryCache,\n hitRegion,\n projectionAt,\n type DrawnRegion,\n type PlaneBox,\n type Projection,\n} from './RegionMap.helpers';\nimport type { RegionMapProps } from './RegionMap.types';\nimport { centreOf, reachBox, viewWithin } from './RegionMap.view';\n\n/** What the drawing needs, derived from the props. */\nexport interface RegionMapModel {\n /** The square shown, or null when there is nothing to centre on. */\n view: PlaneBox | null;\n /** The projection drawn with, or null when there is nothing to centre on. */\n projection: Projection | null;\n drawn: DrawnRegion[];\n /** Radii drawn, in metres; empty without circles. */\n radii: number[];\n outermostMetres: number | null;\n /** The tap handlers for the drawing's `<svg>`. */\n onPointerDown: (event: React.PointerEvent<SVGSVGElement>) => void;\n onClick: (event: React.MouseEvent<SVGSVGElement>) => void;\n}\n\n/** A tap reaches an area this close: a share of the view (~8 px on a phone). */\nconst TOLERANCE_SHARE = 1 / 45;\n\n/** The click, in the drawing's own coordinates — or null where it cannot be read. */\nfunction svgPoint(event: React.MouseEvent<SVGSVGElement>): { x: number; y: number } | null {\n const svg = event.currentTarget;\n const matrix = typeof svg.getScreenCTM === 'function' ? svg.getScreenCTM() : null;\n if (!matrix || typeof DOMPoint === 'undefined') return null;\n const point = new DOMPoint(event.clientX, event.clientY).matrixTransform(matrix.inverse());\n return { x: point.x, y: point.y };\n}\n\n/** Which area a click or tap means — see `useRegionMap`. */\nfunction tappedRegion(\n event: React.MouseEvent<SVGSVGElement>,\n pointer: string,\n drawn: readonly DrawnRegion[],\n view: PlaneBox,\n): string | null {\n const targetId = (event.target as Element).getAttribute('data-region-id');\n if (pointer === 'mouse' && targetId) return targetId;\n const point = svgPoint(event);\n if (point === null) return targetId;\n return hitRegion(\n drawn.map((d) => ({ id: d.id, geometry: d.geometry })),\n point,\n view.spanX * TOLERANCE_SHARE,\n );\n}\n\n/** The projection and geometry cache for a centre, or nulls without one. */\nfunction useGeometry(origin: { latitude: number; longitude: number } | null): {\n projection: Projection | null;\n geometryOf: ReturnType<typeof geometryCache> | null;\n} {\n const lat = origin?.latitude ?? null;\n const lng = origin?.longitude ?? null;\n return React.useMemo(() => {\n if (lat === null || lng === null) return { projection: null, geometryOf: null };\n const projection = projectionAt({ latitude: lat, longitude: lng });\n return { projection, geometryOf: geometryCache(projection) };\n }, [lat, lng]);\n}\n\n/**\n * The projection, the view, the areas in draw order and the tap handlers.\n *\n * Geometry is projected once per `rings` identity and centre\n * (`geometryCache`), so a toggle — which changes `excluded`, not `rings` —\n * re-projects nothing.\n *\n * A MOUSE click on a path is that path's area: a pointer is precise. Any\n * other tap — a finger, a pen — goes to `hitRegion`: the smallest area within\n * a few pixels, so a sliver beside a big area is reachable from the map.\n */\nexport function useRegionMap({\n regions,\n center,\n circles = [],\n reach,\n onToggle,\n}: Pick<RegionMapProps, 'regions' | 'center' | 'circles' | 'reach' | 'onToggle'>): RegionMapModel {\n const { projection, geometryOf } = useGeometry(center ?? centreOf(regions));\n const radii = circles.map((c) => c.radiusMetres);\n const outermostMetres = extent(radii)?.max ?? null;\n const view =\n projection === null || geometryOf === null\n ? null\n : viewWithin(outermostMetres, reach === undefined ? null : reachBox(reach, projection), () =>\n regions.map((r) => geometryOf(r.rings).bounds),\n );\n const drawn = geometryOf && view ? drawOrder(regions, geometryOf, view) : [];\n const pointerType = React.useRef<string>('mouse');\n\n const onPointerDown = (event: React.PointerEvent<SVGSVGElement>): void => {\n pointerType.current = event.pointerType || 'mouse';\n };\n\n const onClick = (event: React.MouseEvent<SVGSVGElement>): void => {\n if (!onToggle || view === null) return;\n const hit = tappedRegion(event, pointerType.current, drawn, view);\n if (hit) onToggle(hit);\n };\n\n return { view, projection, drawn, radii, outermostMetres, onPointerDown, onClick };\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,OAAO,WAAW;AA+BlB,IAAM,kBAAkB,IAAI;AAG5B,SAAS,SAAS,OAAyE;AACzF,QAAM,MAAM,MAAM;AAClB,QAAM,SAAS,OAAO,IAAI,iBAAiB,aAAa,IAAI,aAAa,IAAI;AAC7E,MAAI,CAAC,UAAU,OAAO,aAAa,YAAa,QAAO;AACvD,QAAM,QAAQ,IAAI,SAAS,MAAM,SAAS,MAAM,OAAO,EAAE,gBAAgB,OAAO,QAAQ,CAAC;AACzF,SAAO,EAAE,GAAG,MAAM,GAAG,GAAG,MAAM,EAAE;AAClC;AAGA,SAAS,aACP,OACA,SACA,OACA,MACe;AACf,QAAM,WAAY,MAAM,OAAmB,aAAa,gBAAgB;AACxE,MAAI,YAAY,WAAW,SAAU,QAAO;AAC5C,QAAM,QAAQ,SAAS,KAAK;AAC5B,MAAI,UAAU,KAAM,QAAO;AAC3B,SAAO;AAAA,IACL,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,UAAU,EAAE,SAAS,EAAE;AAAA,IACrD;AAAA,IACA,KAAK,QAAQ;AAAA,EACf;AACF;AAGA,SAAS,YAAY,QAGnB;AACA,QAAM,MAAM,QAAQ,YAAY;AAChC,QAAM,MAAM,QAAQ,aAAa;AACjC,SAAO,MAAM,QAAQ,MAAM;AACzB,QAAI,QAAQ,QAAQ,QAAQ,KAAM,QAAO,EAAE,YAAY,MAAM,YAAY,KAAK;AAC9E,UAAM,aAAa,aAAa,EAAE,UAAU,KAAK,WAAW,IAAI,CAAC;AACjE,WAAO,EAAE,YAAY,YAAY,cAAc,UAAU,EAAE;AAAA,EAC7D,GAAG,CAAC,KAAK,GAAG,CAAC;AACf;AAaO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA,UAAU,CAAC;AAAA,EACX;AAAA,EACA;AACF,GAAkG;AAChG,QAAM,EAAE,YAAY,WAAW,IAAI,YAAY,UAAU,SAAS,OAAO,CAAC;AAC1E,QAAM,QAAQ,QAAQ,IAAI,CAAC,MAAM,EAAE,YAAY;AAC/C,QAAM,kBAAkB,OAAO,KAAK,GAAG,OAAO;AAC9C,QAAM,OACJ,eAAe,QAAQ,eAAe,OAClC,OACA;AAAA,IAAW;AAAA,IAAiB,UAAU,SAAY,OAAO,SAAS,OAAO,UAAU;AAAA,IAAG,MACpF,QAAQ,IAAI,CAAC,MAAM,WAAW,EAAE,KAAK,EAAE,MAAM;AAAA,EAC/C;AACN,QAAM,QAAQ,cAAc,OAAO,UAAU,SAAS,YAAY,IAAI,IAAI,CAAC;AAC3E,QAAM,cAAc,MAAM,OAAe,OAAO;AAEhD,QAAM,gBAAgB,CAAC,UAAmD;AACxE,gBAAY,UAAU,MAAM,eAAe;AAAA,EAC7C;AAEA,QAAM,UAAU,CAAC,UAAiD;AAChE,QAAI,CAAC,YAAY,SAAS,KAAM;AAChC,UAAM,MAAM,aAAa,OAAO,YAAY,SAAS,OAAO,IAAI;AAChE,QAAI,IAAK,UAAS,GAAG;AAAA,EACvB;AAEA,SAAO,EAAE,MAAM,YAAY,OAAO,OAAO,iBAAiB,eAAe,QAAQ;AACnF;","names":[]}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import {
|
|
2
|
+
resolveTooltipProps,
|
|
3
|
+
useHoverOpen,
|
|
4
|
+
usePinnedTooltip
|
|
5
|
+
} from "./chunk-QYJ25FWM.js";
|
|
1
6
|
import {
|
|
2
7
|
arrowColor,
|
|
3
8
|
emphasisStyles,
|
|
@@ -5,11 +10,6 @@ import {
|
|
|
5
10
|
tooltipCap,
|
|
6
11
|
variantStyles
|
|
7
12
|
} from "./chunk-BCWL7HUO.js";
|
|
8
|
-
import {
|
|
9
|
-
resolveTooltipProps,
|
|
10
|
-
useHoverOpen,
|
|
11
|
-
usePinnedTooltip
|
|
12
|
-
} from "./chunk-QYJ25FWM.js";
|
|
13
13
|
|
|
14
14
|
// src/components/data-display/InteractiveTooltip/InteractiveTooltip.tsx
|
|
15
15
|
import MuiTooltip from "@mui/material/Tooltip/index.js";
|
|
@@ -96,4 +96,4 @@ InteractiveTooltip.displayName = "InteractiveTooltip";
|
|
|
96
96
|
export {
|
|
97
97
|
InteractiveTooltip
|
|
98
98
|
};
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
99
|
+
//# sourceMappingURL=chunk-G3JFESKD.js.map
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk-JYWF76Z5.js";
|
|
13
13
|
import {
|
|
14
14
|
Chip
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-PGANINQD.js";
|
|
16
16
|
import {
|
|
17
17
|
Icon
|
|
18
18
|
} from "./chunk-YEKPQAOW.js";
|
|
@@ -139,4 +139,4 @@ export {
|
|
|
139
139
|
PendingSpinner,
|
|
140
140
|
LearnMore
|
|
141
141
|
};
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
142
|
+
//# sourceMappingURL=chunk-HC6OZ7QK.js.map
|
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
} from "./chunk-SALQ65SM.js";
|
|
4
4
|
import {
|
|
5
5
|
useSummaryInfo
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-TSEBMVYY.js";
|
|
7
7
|
import {
|
|
8
8
|
LearnMore,
|
|
9
9
|
PendingSpinner,
|
|
10
10
|
SaveError,
|
|
11
11
|
SettingHeader,
|
|
12
12
|
partTestId
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-HC6OZ7QK.js";
|
|
14
14
|
import {
|
|
15
15
|
SETTING_CARD_OPEN_ATTR,
|
|
16
16
|
actionsStyles,
|
|
@@ -170,4 +170,4 @@ SettingCard.displayName = "SettingCard";
|
|
|
170
170
|
export {
|
|
171
171
|
SettingCard
|
|
172
172
|
};
|
|
173
|
-
//# sourceMappingURL=chunk-
|
|
173
|
+
//# sourceMappingURL=chunk-HOPRZEBM.js.map
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
MoreGroup,
|
|
3
3
|
MoreQuick,
|
|
4
4
|
fieldClearing
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-MZAYIG2I.js";
|
|
6
6
|
import {
|
|
7
7
|
useStillAnchor
|
|
8
8
|
} from "./chunk-7CUZTWKW.js";
|
|
@@ -222,4 +222,4 @@ function MoreFilters({
|
|
|
222
222
|
export {
|
|
223
223
|
MoreFilters
|
|
224
224
|
};
|
|
225
|
-
//# sourceMappingURL=chunk-
|
|
225
|
+
//# sourceMappingURL=chunk-HS662RLW.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
StandaloneContainer,
|
|
3
3
|
useRowLayout
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-E6K2UZGR.js";
|
|
5
5
|
import {
|
|
6
6
|
DiscloseSlot,
|
|
7
7
|
DragSlot,
|
|
@@ -12,13 +12,13 @@ import {
|
|
|
12
12
|
metaShape,
|
|
13
13
|
rowStyles,
|
|
14
14
|
useRowShell
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-UMOHHWXY.js";
|
|
16
16
|
import {
|
|
17
17
|
ListCardActions,
|
|
18
18
|
ListCardCaption,
|
|
19
19
|
ListCardMeta,
|
|
20
20
|
ListCardTail
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-CSJ7WNXU.js";
|
|
22
22
|
import {
|
|
23
23
|
useDisclosure
|
|
24
24
|
} from "./chunk-2JCRNWHE.js";
|
|
@@ -185,4 +185,4 @@ function BaseListCard(props) {
|
|
|
185
185
|
export {
|
|
186
186
|
BaseListCard
|
|
187
187
|
};
|
|
188
|
-
//# sourceMappingURL=chunk-
|
|
188
|
+
//# sourceMappingURL=chunk-IWSTMVCA.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
resolveAxisConfig,
|
|
3
|
+
resolveBarGeometry
|
|
4
|
+
} from "./chunk-SOHQPPYJ.js";
|
|
1
5
|
import {
|
|
2
6
|
getAxisStyles,
|
|
3
7
|
getDefaultColors,
|
|
4
8
|
getSizeStyles,
|
|
5
9
|
resolveSeries
|
|
6
10
|
} from "./chunk-TCWISGSS.js";
|
|
7
|
-
import {
|
|
8
|
-
resolveAxisConfig,
|
|
9
|
-
resolveBarGeometry
|
|
10
|
-
} from "./chunk-SOHQPPYJ.js";
|
|
11
11
|
import {
|
|
12
12
|
remPx
|
|
13
13
|
} from "./chunk-YKCAJ2TN.js";
|
|
@@ -73,4 +73,4 @@ function marginPx(theme, margin) {
|
|
|
73
73
|
export {
|
|
74
74
|
buildChartContext
|
|
75
75
|
};
|
|
76
|
-
//# sourceMappingURL=chunk-
|
|
76
|
+
//# sourceMappingURL=chunk-JG733RMP.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
partTestId
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HC6OZ7QK.js";
|
|
4
4
|
import {
|
|
5
5
|
SETTING_CARD_OPEN_ATTR,
|
|
6
6
|
withCallerSx
|
|
@@ -79,4 +79,4 @@ export {
|
|
|
79
79
|
settingGridStyles,
|
|
80
80
|
SettingGrid
|
|
81
81
|
};
|
|
82
|
-
//# sourceMappingURL=chunk-
|
|
82
|
+
//# sourceMappingURL=chunk-JH2XLVWM.js.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FilterDialog,
|
|
3
|
+
GridFilterPanel
|
|
4
|
+
} from "./chunk-L3PDY7CJ.js";
|
|
1
5
|
import {
|
|
2
6
|
ShellEmpty
|
|
3
7
|
} from "./chunk-MKVDHR3B.js";
|
|
4
8
|
import {
|
|
5
9
|
InlineFilterControls
|
|
6
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-XILMDEGZ.js";
|
|
7
11
|
import {
|
|
8
12
|
GridHeaderRow
|
|
9
13
|
} from "./chunk-X3AFXHY5.js";
|
|
10
14
|
import {
|
|
11
15
|
GridMain
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import {
|
|
14
|
-
FilterDialog,
|
|
15
|
-
GridFilterPanel
|
|
16
|
-
} from "./chunk-KRBPWTXW.js";
|
|
16
|
+
} from "./chunk-NKEFH3RS.js";
|
|
17
17
|
import {
|
|
18
18
|
DataViewsPagination
|
|
19
19
|
} from "./chunk-XZFTRGRW.js";
|
|
@@ -30,14 +30,14 @@ import {
|
|
|
30
30
|
import {
|
|
31
31
|
ShellToolbar
|
|
32
32
|
} from "./chunk-Z2WZDVGG.js";
|
|
33
|
-
import {
|
|
34
|
-
allOnPageSelected,
|
|
35
|
-
resolveSelectionExtra
|
|
36
|
-
} from "./chunk-5YDS6HO3.js";
|
|
37
33
|
import {
|
|
38
34
|
SHELL_PROPS,
|
|
39
35
|
useStickyBarTop
|
|
40
36
|
} from "./chunk-4IE66GY2.js";
|
|
37
|
+
import {
|
|
38
|
+
allOnPageSelected,
|
|
39
|
+
resolveSelectionExtra
|
|
40
|
+
} from "./chunk-5YDS6HO3.js";
|
|
41
41
|
import {
|
|
42
42
|
togglePillValues
|
|
43
43
|
} from "./chunk-UKNMPGEM.js";
|
|
@@ -252,4 +252,4 @@ function GridShell(props) {
|
|
|
252
252
|
export {
|
|
253
253
|
GridShell
|
|
254
254
|
};
|
|
255
|
-
//# sourceMappingURL=chunk-
|
|
255
|
+
//# sourceMappingURL=chunk-JKZPGCN7.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
GridShell
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JKZPGCN7.js";
|
|
4
4
|
import {
|
|
5
5
|
useDataViewsState
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ZCNR4DN5.js";
|
|
7
7
|
|
|
8
8
|
// src/components/data-display/DataViews/DataViewsGrid.tsx
|
|
9
9
|
import { useEffect, useRef } from "react";
|
|
@@ -27,4 +27,4 @@ function DataViewsGrid(props) {
|
|
|
27
27
|
export {
|
|
28
28
|
DataViewsGrid
|
|
29
29
|
};
|
|
30
|
-
//# sourceMappingURL=chunk-
|
|
30
|
+
//# sourceMappingURL=chunk-JN2IANXD.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SettingSwitchBlock,
|
|
3
3
|
useSettingSwitchIds
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-5HADIIWN.js";
|
|
5
5
|
import {
|
|
6
6
|
SettingGroupContext
|
|
7
7
|
} from "./chunk-XJQNSMGA.js";
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from "./chunk-SALQ65SM.js";
|
|
11
11
|
import {
|
|
12
12
|
partTestId
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-HC6OZ7QK.js";
|
|
14
14
|
import {
|
|
15
15
|
dependentsStyles,
|
|
16
16
|
hintStyles,
|
|
@@ -84,4 +84,4 @@ SettingGroup.displayName = "SettingGroup";
|
|
|
84
84
|
export {
|
|
85
85
|
SettingGroup
|
|
86
86
|
};
|
|
87
|
-
//# sourceMappingURL=chunk-
|
|
87
|
+
//# sourceMappingURL=chunk-KJKD6Y6V.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-AJ6KFHEE.js";
|
|
4
4
|
import {
|
|
5
5
|
PanelRangeField
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-7NP2JHGM.js";
|
|
7
7
|
import {
|
|
8
8
|
useDataViewsCopy
|
|
9
9
|
} from "./chunk-KHG57NAE.js";
|
|
@@ -157,4 +157,4 @@ export {
|
|
|
157
157
|
GridFilterPanel,
|
|
158
158
|
FilterDialog
|
|
159
159
|
};
|
|
160
|
-
//# sourceMappingURL=chunk-
|
|
160
|
+
//# sourceMappingURL=chunk-L3PDY7CJ.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
renderChartByType
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-3JZ3KEQQ.js";
|
|
4
4
|
import {
|
|
5
5
|
ChartContainer
|
|
6
6
|
} from "./chunk-RIRTW5EU.js";
|
|
@@ -111,4 +111,4 @@ var Chart = (props) => {
|
|
|
111
111
|
export {
|
|
112
112
|
Chart
|
|
113
113
|
};
|
|
114
|
-
//# sourceMappingURL=chunk-
|
|
114
|
+
//# sourceMappingURL=chunk-M3XJVD5G.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveMapCopy
|
|
3
3
|
} from "./chunk-M5Y42AZ4.js";
|
|
4
|
-
import {
|
|
5
|
-
bounceKeyframes
|
|
6
|
-
} from "./chunk-4YYFZ6TE.js";
|
|
7
4
|
import {
|
|
8
5
|
MARKER_PIXELS_PER_DEGREE
|
|
9
6
|
} from "./chunk-H2J2MTRE.js";
|
|
7
|
+
import {
|
|
8
|
+
bounceKeyframes
|
|
9
|
+
} from "./chunk-4YYFZ6TE.js";
|
|
10
10
|
import {
|
|
11
11
|
shadowInk
|
|
12
12
|
} from "./chunk-XJAD6E3V.js";
|
|
@@ -85,4 +85,4 @@ export {
|
|
|
85
85
|
MapMarkers,
|
|
86
86
|
MapCoordinates
|
|
87
87
|
};
|
|
88
|
-
//# sourceMappingURL=chunk-
|
|
88
|
+
//# sourceMappingURL=chunk-MYTV353T.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-KYUEO2IO.js";
|
|
7
7
|
import {
|
|
8
8
|
RangeBounds
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-FORAVDJF.js";
|
|
10
10
|
import {
|
|
11
11
|
QuickRow
|
|
12
12
|
} from "./chunk-AT6UKTH4.js";
|
|
@@ -228,4 +228,4 @@ export {
|
|
|
228
228
|
MoreQuick,
|
|
229
229
|
MoreGroup
|
|
230
230
|
};
|
|
231
|
-
//# sourceMappingURL=chunk-
|
|
231
|
+
//# sourceMappingURL=chunk-MZAYIG2I.js.map
|
|
@@ -18,6 +18,7 @@ import React from "react";
|
|
|
18
18
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
19
19
|
function RegionMapDrawing({
|
|
20
20
|
model,
|
|
21
|
+
overlay,
|
|
21
22
|
showCenter,
|
|
22
23
|
highlightedIds,
|
|
23
24
|
maxHeight,
|
|
@@ -65,6 +66,9 @@ function RegionMapDrawing({
|
|
|
65
66
|
/* @__PURE__ */ jsx(Hatch, { id: hatchId, pitch: view.spanX / 70, theme }),
|
|
66
67
|
/* @__PURE__ */ jsx(BaseAreas, { areas: base, testId, theme }),
|
|
67
68
|
/* @__PURE__ */ jsx(ExcludedAreas, { drawn, hatchId, testId, theme }),
|
|
69
|
+
overlay && model.projection && // `pointer-events` is inherited in SVG: nothing the host draws here
|
|
70
|
+
// takes a tap from the areas beneath.
|
|
71
|
+
/* @__PURE__ */ jsx("g", { pointerEvents: "none", "data-testid": `${testId}-overlay`, children: overlay({ view, projection: model.projection }) }),
|
|
68
72
|
/* @__PURE__ */ jsx(Circles, { radii: model.radii, theme }),
|
|
69
73
|
/* @__PURE__ */ jsx(Highlights, { areas: highlighted, testId, theme }),
|
|
70
74
|
showCenter && /* @__PURE__ */ jsx(
|
|
@@ -252,4 +256,4 @@ function AreaLabel({
|
|
|
252
256
|
export {
|
|
253
257
|
RegionMapDrawing
|
|
254
258
|
};
|
|
255
|
-
//# sourceMappingURL=chunk-
|
|
259
|
+
//# sourceMappingURL=chunk-NGXL4R54.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/RegionMap/RegionMapDrawing.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { alpha, type Theme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { rem, remPx } from '../../../tokens/relative';\n\nimport { labelPosition, type AreaGeometry, type DrawnRegion, type PlaneBox } from './RegionMap.helpers';\nimport type { RegionMapModel } from './RegionMap.hooks';\nimport { labelOrder, placeLabels } from './RegionMap.labels';\nimport type { RegionMapLayer } from './RegionMap.types';\n\nexport interface RegionMapDrawingProps {\n model: RegionMapModel & { view: PlaneBox };\n /** The host's layer, drawn inside the SVG under the circles (`RegionMapProps.overlay`). */\n overlay?: (layer: RegionMapLayer) => React.ReactNode;\n showCenter: boolean;\n highlightedIds: readonly string[];\n maxHeight: string | undefined;\n label: string;\n tappable: boolean;\n testId: string;\n theme: Theme;\n}\n\n/**\n * The drawing: one `role=\"img\"`, square, with HTML labels laid over it.\n *\n * Strokes are `non-scaling-stroke` and labels are HTML at theme sizes, so the\n * picture reads the same at 320 px and 1600 px; `maxHeight` caps it on a wide\n * screen. Where it sits in a wider box is the host's call.\n *\n * The base areas are a memoised layer: a toggle changes `excluded`, not the\n * geometry, so only the hatch, highlight and label layers re-render.\n */\nexport function RegionMapDrawing({\n model,\n overlay,\n showCenter,\n highlightedIds,\n maxHeight,\n label,\n tappable,\n testId,\n theme,\n}: RegionMapDrawingProps): React.JSX.Element {\n const hatchId = `${React.useId().replace(/:/g, '')}-hatch`;\n const { view, drawn } = model;\n const wanted = new Set(highlightedIds);\n const highlighted = drawn.filter((d) => wanted.has(d.id));\n // Highlighted, then excluded, then larger, then by name: the order labels\n // claim their place in, so a collision hides the less important one.\n const labelled = labelOrder(drawn.filter((d) => d.excluded || wanted.has(d.id)), wanted);\n const boxRef = React.useRef<HTMLDivElement>(null);\n useLabelPlacement(boxRef, labelled.map((d) => d.id).join('|'), remPx(theme, 4));\n const base = drawn.map((d) => ({ id: d.id, name: d.name, geometry: d.geometry, outside: d.outside === true }));\n return (\n <Box\n sx={{\n position: 'relative',\n width: '100%',\n maxWidth: maxHeight,\n maxHeight,\n aspectRatio: '1 / 1',\n border: 1,\n borderColor: 'divider',\n borderRadius: 1,\n overflow: 'hidden',\n bgcolor: 'background.paper',\n }}\n data-testid={`${testId}-canvas`}\n ref={boxRef}\n >\n <svg\n viewBox={`${view.minX} ${view.minY} ${view.spanX} ${view.spanY}`}\n role=\"img\"\n aria-label={label}\n onPointerDown={model.onPointerDown}\n onClick={model.onClick}\n style={{ display: 'block', width: '100%', height: '100%', cursor: tappable ? 'pointer' : 'default' }}\n >\n <Hatch id={hatchId} pitch={view.spanX / 70} theme={theme} />\n <BaseAreas areas={base} testId={testId} theme={theme} />\n <ExcludedAreas drawn={drawn} hatchId={hatchId} testId={testId} theme={theme} />\n {overlay && model.projection && (\n // `pointer-events` is inherited in SVG: nothing the host draws here\n // takes a tap from the areas beneath.\n <g pointerEvents=\"none\" data-testid={`${testId}-overlay`}>\n {overlay({ view, projection: model.projection })}\n </g>\n )}\n <Circles radii={model.radii} theme={theme} />\n <Highlights areas={highlighted} testId={testId} theme={theme} />\n {showCenter && (\n <circle\n cx={0}\n cy={0}\n r={view.spanX / 90}\n fill={theme.palette.primary.main}\n stroke={theme.palette.background.paper}\n strokeWidth={2}\n vectorEffect=\"non-scaling-stroke\"\n pointerEvents=\"none\"\n data-testid={`${testId}-center`}\n />\n )}\n </svg>\n {labelled.map((d) => (\n <AreaLabel key={`l-${d.id}`} area={d} view={view} testId={testId} theme={theme} />\n ))}\n </Box>\n );\n}\n\n/** The highlighted areas, drawn over everything but the centre. */\nfunction Highlights({\n areas,\n testId,\n theme,\n}: {\n areas: readonly DrawnRegion[];\n testId: string;\n theme: Theme;\n}): React.JSX.Element {\n return (\n <>\n {areas.map((d) => (\n <path\n key={`h-${d.id}`}\n d={d.geometry.path}\n fillRule=\"evenodd\"\n vectorEffect=\"non-scaling-stroke\"\n fill={alpha(theme.palette.primary.main, 0.3)}\n stroke={theme.palette.primary.main}\n strokeWidth={2.5}\n pointerEvents=\"none\"\n data-testid={`${testId}-highlight-${d.id}`}\n />\n ))}\n </>\n );\n}\n\n/** The hatch an excluded area is filled with: lines, not a colour. */\nfunction Hatch({ id, pitch, theme }: { id: string; pitch: number; theme: Theme }): React.JSX.Element {\n return (\n <defs>\n <pattern id={id} width={pitch} height={pitch} patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(45)\">\n <rect width={pitch} height={pitch} fill={alpha(theme.palette.text.primary, 0.1)} />\n <rect width={pitch / 3} height={pitch} fill={theme.palette.text.secondary} />\n </pattern>\n </defs>\n );\n}\n\ninterface BaseArea {\n id: string;\n name: string;\n geometry: AreaGeometry;\n outside: boolean;\n}\n\ninterface BaseAreasProps {\n areas: readonly BaseArea[];\n testId: string;\n theme: Theme;\n}\n\n/** Same areas, same geometry objects, same look: nothing to re-render. */\nfunction sameBase(a: BaseAreasProps, b: BaseAreasProps): boolean {\n if (a.theme !== b.theme || a.testId !== b.testId || a.areas.length !== b.areas.length) return false;\n return a.areas.every((area, i) => {\n const other = b.areas[i]!;\n return (\n area.id === other.id &&\n area.geometry === other.geometry &&\n area.outside === other.outside &&\n area.name === other.name\n );\n });\n}\n\n/** Every area's fill and border — the tap targets. Memoised: see `sameBase`. */\nconst BaseAreas = React.memo(function BaseAreas({ areas, testId, theme }: BaseAreasProps): React.JSX.Element {\n const { palette } = theme;\n return (\n <>\n {areas.map((d) => (\n <path\n key={d.id}\n d={d.geometry.path}\n fillRule=\"evenodd\"\n vectorEffect=\"non-scaling-stroke\"\n fill={d.outside ? palette.background.paper : palette.action.hover}\n stroke={palette.divider}\n strokeWidth={1}\n data-region-id={d.id}\n data-testid={`${testId}-area-${d.id}`}\n >\n <title>{d.name}</title>\n </path>\n ))}\n </>\n );\n}, sameBase);\n\n/** The hatch over every excluded area. */\nfunction ExcludedAreas({\n drawn,\n hatchId,\n testId,\n theme,\n}: {\n drawn: readonly DrawnRegion[];\n hatchId: string;\n testId: string;\n theme: Theme;\n}): React.JSX.Element {\n return (\n <>\n {drawn\n .filter((d) => d.excluded)\n .map((d) => (\n <path\n key={`x-${d.id}`}\n d={d.geometry.path}\n fillRule=\"evenodd\"\n vectorEffect=\"non-scaling-stroke\"\n fill={`url(#${hatchId})`}\n stroke={theme.palette.text.secondary}\n strokeWidth={1.5}\n pointerEvents=\"none\"\n data-testid={`${testId}-excluded-${d.id}`}\n />\n ))}\n </>\n );\n}\n\n/** The dashed circles around the centre. */\nfunction Circles({ radii, theme }: { radii: readonly number[]; theme: Theme }): React.JSX.Element {\n return (\n <>\n {radii.map((radius) => (\n <circle\n key={radius}\n cx={0}\n cy={0}\n r={radius}\n fill=\"none\"\n stroke={theme.palette.info.main}\n strokeWidth={1.75}\n strokeDasharray=\"7 5\"\n vectorEffect=\"non-scaling-stroke\"\n pointerEvents=\"none\"\n />\n ))}\n </>\n );\n}\n\n/**\n * Places every label the drawing carries, in their DOM order (the priority\n * order), and hides one that would overlap a label already drawn\n * (`placeLabels`). Measured by a ResizeObserver, never in a layout effect: its\n * first call comes after the browser's own layout, so mounting a label on a\n * tap forces no synchronous reflow of the drawing.\n */\nfunction useLabelPlacement(boxRef: React.RefObject<HTMLDivElement | null>, key: string, gap: number): void {\n React.useEffect(() => {\n const box = boxRef.current;\n if (!box || typeof ResizeObserver === 'undefined') return undefined;\n const labels = Array.from(box.querySelectorAll<HTMLElement>('[data-region-label]'));\n const place = (): void => {\n const spanX = box.clientWidth;\n const spanY = box.clientHeight;\n if (spanX === 0 || spanY === 0) return;\n const placed = placeLabels(\n labels.map((label) => ({\n fractionX: Number(label.dataset.fractionX),\n fractionY: Number(label.dataset.fractionY),\n spanX: label.offsetWidth,\n spanY: label.offsetHeight,\n })),\n { spanX, spanY },\n gap,\n );\n placed.forEach(({ x, y, visible }, index) => {\n const label = labels[index]!;\n label.style.left = `${(x / spanX) * 100}%`;\n label.style.top = `${(y / spanY) * 100}%`;\n label.style.visibility = visible ? 'visible' : 'hidden';\n label.dataset.hidden = visible ? 'false' : 'true';\n });\n };\n const observer = new ResizeObserver(place);\n observer.observe(box);\n for (const label of labels) observer.observe(label);\n return () => observer.disconnect();\n }, [boxRef, key, gap]);\n}\n\n/**\n * An area's name over the drawing, at the theme's type size whatever the\n * width. Placed — and hidden on a collision — by {@link useLabelPlacement}.\n * Decorative (`aria-hidden`): the area's name is its `<title>` and its row in\n * the list.\n */\nfunction AreaLabel({\n area,\n view,\n testId,\n theme,\n}: {\n area: DrawnRegion;\n view: PlaneBox;\n testId: string;\n theme: Theme;\n}): React.JSX.Element {\n const at = labelPosition(area.geometry.rings, view);\n const halo = `0 0 ${rem(theme, 3)} ${theme.palette.background.paper}`;\n return (\n <Typography\n component=\"span\"\n aria-hidden\n data-testid={`${testId}-label-${area.id}`}\n data-region-label=\"\"\n data-fraction-x={at.fractionX}\n data-fraction-y={at.fractionY}\n // Position as an inline style, not `sx`: a per-label class would insert\n // a new CSS rule (and a style recalculation) on every tap.\n style={{\n left: `${(at.fractionX * 100).toFixed(2)}%`,\n top: `${(at.fractionY * 100).toFixed(2)}%`,\n }}\n sx={{\n position: 'absolute',\n transform: 'translate(-50%, -50%)',\n fontSize: rem(theme, 12),\n fontWeight: 700,\n lineHeight: 1.1,\n textAlign: 'center',\n maxWidth: '45%',\n color: 'text.primary',\n pointerEvents: 'none',\n textShadow: `${halo}, ${halo}`,\n }}\n >\n {area.name}\n </Typography>\n );\n}\n"],"mappings":"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","names":["BaseAreas"]}
|
|
@@ -4,18 +4,18 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
CardBody
|
|
6
6
|
} from "./chunk-4ZQQUICR.js";
|
|
7
|
-
import {
|
|
8
|
-
toGridExpansion
|
|
9
|
-
} from "./chunk-O5UGAL2V.js";
|
|
10
7
|
import {
|
|
11
8
|
SelectAllStrip
|
|
12
9
|
} from "./chunk-OY437NRJ.js";
|
|
10
|
+
import {
|
|
11
|
+
toGridExpansion
|
|
12
|
+
} from "./chunk-O5UGAL2V.js";
|
|
13
13
|
import {
|
|
14
14
|
useStickyTableHead
|
|
15
15
|
} from "./chunk-4IE66GY2.js";
|
|
16
16
|
import {
|
|
17
17
|
ListCardGroup
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-BBBHPK2Q.js";
|
|
19
19
|
import {
|
|
20
20
|
DENSITY_BOARD_SCALE,
|
|
21
21
|
DENSITY_ROW_PADDING,
|
|
@@ -250,4 +250,4 @@ function GridMain(props) {
|
|
|
250
250
|
export {
|
|
251
251
|
GridMain
|
|
252
252
|
};
|
|
253
|
-
//# sourceMappingURL=chunk-
|
|
253
|
+
//# sourceMappingURL=chunk-NKEFH3RS.js.map
|
|
@@ -3,15 +3,15 @@ import {
|
|
|
3
3
|
chipStyles,
|
|
4
4
|
iconWithTestId,
|
|
5
5
|
makeKeyDownHandler
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import {
|
|
8
|
-
chipMuiSize
|
|
9
|
-
} from "./chunk-E5I776YW.js";
|
|
6
|
+
} from "./chunk-QN7FVZQD.js";
|
|
10
7
|
import {
|
|
11
8
|
chipRole,
|
|
12
9
|
isClickable,
|
|
13
10
|
makeTestId
|
|
14
11
|
} from "./chunk-BF4FYOAR.js";
|
|
12
|
+
import {
|
|
13
|
+
chipMuiSize
|
|
14
|
+
} from "./chunk-E5I776YW.js";
|
|
15
15
|
|
|
16
16
|
// src/components/data-display/Chip/Chip.tsx
|
|
17
17
|
import CancelIcon from "@mui/icons-material/Cancel";
|
|
@@ -77,4 +77,4 @@ Chip.displayName = "Chip";
|
|
|
77
77
|
export {
|
|
78
78
|
Chip
|
|
79
79
|
};
|
|
80
|
-
//# sourceMappingURL=chunk-
|
|
80
|
+
//# sourceMappingURL=chunk-PGANINQD.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-DQ22UKMZ.js";
|
|
4
4
|
import {
|
|
5
5
|
Avatar
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-4QR7LM5F.js";
|
|
7
7
|
import {
|
|
8
8
|
Card
|
|
9
9
|
} from "./chunk-4XBAEKQQ.js";
|
|
@@ -80,4 +80,4 @@ export {
|
|
|
80
80
|
UserAvatar,
|
|
81
81
|
UserMenu
|
|
82
82
|
};
|
|
83
|
-
//# sourceMappingURL=chunk-
|
|
83
|
+
//# sourceMappingURL=chunk-Q3SILZTQ.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Chart
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-M3XJVD5G.js";
|
|
4
4
|
import {
|
|
5
5
|
CHART_SEMANTIC_COLORS,
|
|
6
6
|
specToChartProps
|
|
@@ -46,4 +46,4 @@ var SpecChart = ({
|
|
|
46
46
|
export {
|
|
47
47
|
SpecChart
|
|
48
48
|
};
|
|
49
|
-
//# sourceMappingURL=chunk-
|
|
49
|
+
//# sourceMappingURL=chunk-QHIWV55K.js.map
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
chipKeyAction
|
|
3
|
+
} from "./chunk-BF4FYOAR.js";
|
|
1
4
|
import {
|
|
2
5
|
CHIP_SIZES,
|
|
3
6
|
CHIP_TRANSITION_EASING,
|
|
@@ -7,9 +10,6 @@ import {
|
|
|
7
10
|
SOFT_GROUND_ALPHA,
|
|
8
11
|
SOFT_HOVER_ALPHA
|
|
9
12
|
} from "./chunk-E5I776YW.js";
|
|
10
|
-
import {
|
|
11
|
-
chipKeyAction
|
|
12
|
-
} from "./chunk-BF4FYOAR.js";
|
|
13
13
|
import {
|
|
14
14
|
shadowInk
|
|
15
15
|
} from "./chunk-XJAD6E3V.js";
|
|
@@ -110,4 +110,4 @@ export {
|
|
|
110
110
|
chipStyles,
|
|
111
111
|
iconWithTestId
|
|
112
112
|
};
|
|
113
|
-
//# sourceMappingURL=chunk-
|
|
113
|
+
//# sourceMappingURL=chunk-QN7FVZQD.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
partTestId
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HC6OZ7QK.js";
|
|
4
4
|
import {
|
|
5
5
|
SETTING_CARD
|
|
6
6
|
} from "./chunk-BFRVMCQM.js";
|
|
7
7
|
import {
|
|
8
8
|
InteractiveTooltip
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-G3JFESKD.js";
|
|
10
10
|
import {
|
|
11
11
|
Icon
|
|
12
12
|
} from "./chunk-YEKPQAOW.js";
|
|
@@ -92,4 +92,4 @@ export {
|
|
|
92
92
|
SummaryInfo,
|
|
93
93
|
useSummaryInfo
|
|
94
94
|
};
|
|
95
|
-
//# sourceMappingURL=chunk-
|
|
95
|
+
//# sourceMappingURL=chunk-TSEBMVYY.js.map
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MapCoordinates,
|
|
3
3
|
MapMarkers
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MYTV353T.js";
|
|
5
5
|
import {
|
|
6
6
|
MapLayers
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-U2QXQ7D4.js";
|
|
8
8
|
import {
|
|
9
9
|
glassStyles,
|
|
10
10
|
resolveMapCopy,
|
|
11
11
|
resolveMapPreviewProps
|
|
12
12
|
} from "./chunk-M5Y42AZ4.js";
|
|
13
|
-
import {
|
|
14
|
-
StaticMapView
|
|
15
|
-
} from "./chunk-UAOE3ZPC.js";
|
|
16
13
|
import {
|
|
17
14
|
useMapPreview
|
|
18
15
|
} from "./chunk-QSRZOXQI.js";
|
|
16
|
+
import {
|
|
17
|
+
StaticMapView
|
|
18
|
+
} from "./chunk-UAOE3ZPC.js";
|
|
19
19
|
import {
|
|
20
20
|
rem
|
|
21
21
|
} from "./chunk-YKCAJ2TN.js";
|
|
@@ -113,4 +113,4 @@ export {
|
|
|
113
113
|
MapPreview,
|
|
114
114
|
MapPreview_default
|
|
115
115
|
};
|
|
116
|
-
//# sourceMappingURL=chunk-
|
|
116
|
+
//# sourceMappingURL=chunk-U2AEM3K4.js.map
|