@rosettadash/react 0.1.1 → 0.1.2
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/package.json +86 -1
- package/src/domain/i18n/app-language-select/AppLanguageSelect.d.ts +17 -0
- package/src/domain/i18n/app-language-select/AppLanguageSelect.js +24 -0
- package/src/domain/i18n/app-language-select/AppLanguageSelect.js.map +1 -0
- package/src/domain/i18n/app-language-select/index.d.ts +2 -0
- package/src/domain/i18n/app-language-select/index.js +2 -0
- package/src/domain/i18n/app-language-select/index.js.map +1 -0
- package/src/domain/role-gate/RoleGate.d.ts +3 -0
- package/src/domain/role-gate/RoleGate.js +22 -4
- package/src/domain/role-gate/RoleGate.js.map +1 -1
- package/src/index.d.ts +15 -0
- package/src/index.js +15 -0
- package/src/index.js.map +1 -1
- package/src/infra/env/EnvConfig.d.ts +5 -0
- package/src/infra/env/EnvConfig.js +17 -2
- package/src/infra/env/EnvConfig.js.map +1 -1
- package/src/infra/env/index.d.ts +1 -1
- package/src/layout/collapsible/Collapsible.d.ts +1 -0
- package/src/layout/collapsible/Collapsible.js +16 -5
- package/src/layout/collapsible/Collapsible.js.map +1 -1
- package/src/layout/filter-grid/FilterGrid.d.ts +26 -0
- package/src/layout/filter-grid/FilterGrid.js +21 -0
- package/src/layout/filter-grid/FilterGrid.js.map +1 -0
- package/src/layout/filter-grid/index.d.ts +2 -0
- package/src/layout/filter-grid/index.js +2 -0
- package/src/layout/filter-grid/index.js.map +1 -0
- package/src/layout/flex/FlexLayout.d.ts +3 -0
- package/src/layout/flex/FlexLayout.js +24 -4
- package/src/layout/flex/FlexLayout.js.map +1 -1
- package/src/layout/form-section/FormSectionGrid.d.ts +21 -0
- package/src/layout/form-section/FormSectionGrid.js +16 -0
- package/src/layout/form-section/FormSectionGrid.js.map +1 -0
- package/src/layout/form-section/index.d.ts +2 -0
- package/src/layout/form-section/index.js +2 -0
- package/src/layout/form-section/index.js.map +1 -0
- package/src/layout/geo-explorer/GeoExplorerLayout.d.ts +18 -0
- package/src/layout/geo-explorer/GeoExplorerLayout.js +14 -0
- package/src/layout/geo-explorer/GeoExplorerLayout.js.map +1 -0
- package/src/layout/geo-explorer/index.d.ts +2 -0
- package/src/layout/geo-explorer/index.js +2 -0
- package/src/layout/geo-explorer/index.js.map +1 -0
- package/src/layout/scroll-region/ScrollRegion.d.ts +13 -0
- package/src/layout/scroll-region/ScrollRegion.js +15 -0
- package/src/layout/scroll-region/ScrollRegion.js.map +1 -0
- package/src/layout/scroll-region/index.d.ts +2 -0
- package/src/layout/scroll-region/index.js +2 -0
- package/src/layout/scroll-region/index.js.map +1 -0
- package/src/layout/tabs/TabsLayout.d.ts +1 -0
- package/src/layout/tabs/TabsLayout.js +7 -2
- package/src/layout/tabs/TabsLayout.js.map +1 -1
- package/src/lib/custom-element-host.js +2 -2
- package/src/lib/custom-element-host.js.map +1 -1
- package/src/visual/chart/bar/BarChart.d.ts +7 -0
- package/src/visual/chart/bar/BarChart.js +32 -2
- package/src/visual/chart/bar/BarChart.js.map +1 -1
- package/src/visual/chart/bar/index.d.ts +1 -1
- package/src/visual/chart/line/LineChart.d.ts +8 -0
- package/src/visual/chart/line/LineChart.js +58 -2
- package/src/visual/chart/line/LineChart.js.map +1 -1
- package/src/visual/chart/line/index.d.ts +1 -1
- package/src/visual/chart/sankey/JourneySankeyChart.d.ts +20 -0
- package/src/visual/chart/sankey/JourneySankeyChart.js +105 -0
- package/src/visual/chart/sankey/JourneySankeyChart.js.map +1 -0
- package/src/visual/chart/sankey/index.d.ts +2 -0
- package/src/visual/chart/sankey/index.js +2 -0
- package/src/visual/chart/sankey/index.js.map +1 -0
- package/src/visual/chart/venn/VennOverlapChart.d.ts +22 -0
- package/src/visual/chart/venn/VennOverlapChart.js +24 -0
- package/src/visual/chart/venn/VennOverlapChart.js.map +1 -0
- package/src/visual/chart/venn/index.d.ts +2 -0
- package/src/visual/chart/venn/index.js +2 -0
- package/src/visual/chart/venn/index.js.map +1 -0
- package/src/visual/destination/destination-select-list/DestinationSelectList.d.ts +16 -0
- package/src/visual/destination/destination-select-list/DestinationSelectList.js +13 -0
- package/src/visual/destination/destination-select-list/DestinationSelectList.js.map +1 -0
- package/src/visual/destination/destination-select-list/index.d.ts +2 -0
- package/src/visual/destination/destination-select-list/index.js +2 -0
- package/src/visual/destination/destination-select-list/index.js.map +1 -0
- package/src/visual/detail/DetailHistoricList.d.ts +14 -0
- package/src/visual/detail/DetailHistoricList.js +10 -0
- package/src/visual/detail/DetailHistoricList.js.map +1 -0
- package/src/visual/detail/DetailPanel.js +1 -1
- package/src/visual/detail/DetailPanel.js.map +1 -1
- package/src/visual/detail/DetailStats.d.ts +13 -0
- package/src/visual/detail/DetailStats.js +10 -0
- package/src/visual/detail/DetailStats.js.map +1 -0
- package/src/visual/detail/index.d.ts +4 -0
- package/src/visual/detail/index.js +2 -0
- package/src/visual/detail/index.js.map +1 -1
- package/src/visual/display/3d-geo-globe/ThreeGeoGlobe.d.ts +12 -2
- package/src/visual/display/3d-geo-globe/ThreeGeoGlobe.js +200 -7
- package/src/visual/display/3d-geo-globe/ThreeGeoGlobe.js.map +1 -1
- package/src/visual/display/3d-scatter/ThreeScatterPlot.d.ts +15 -2
- package/src/visual/display/3d-scatter/ThreeScatterPlot.js +152 -7
- package/src/visual/display/3d-scatter/ThreeScatterPlot.js.map +1 -1
- package/src/visual/display/3d-scatter/index.d.ts +1 -1
- package/src/visual/display/equirect-globe/EquirectGlobe.d.ts +21 -0
- package/src/visual/display/equirect-globe/EquirectGlobe.js +28 -0
- package/src/visual/display/equirect-globe/EquirectGlobe.js.map +1 -0
- package/src/visual/display/equirect-globe/index.d.ts +2 -0
- package/src/visual/display/equirect-globe/index.js +2 -0
- package/src/visual/display/equirect-globe/index.js.map +1 -0
- package/src/visual/display/geo-map/GeoMap.d.ts +22 -0
- package/src/visual/display/geo-map/GeoMap.js +29 -0
- package/src/visual/display/geo-map/GeoMap.js.map +1 -0
- package/src/visual/display/geo-map/index.d.ts +2 -0
- package/src/visual/display/geo-map/index.js +2 -0
- package/src/visual/display/geo-map/index.js.map +1 -0
- package/src/visual/filter/filter-summary/FilterSummary.d.ts +16 -0
- package/src/visual/filter/filter-summary/FilterSummary.js +9 -0
- package/src/visual/filter/filter-summary/FilterSummary.js.map +1 -0
- package/src/visual/filter/filter-summary/index.d.ts +2 -0
- package/src/visual/filter/filter-summary/index.js +2 -0
- package/src/visual/filter/filter-summary/index.js.map +1 -0
- package/src/visual/input/date-range/DateRangeFilter.d.ts +4 -0
- package/src/visual/input/date-range/DateRangeFilter.js +3 -1
- package/src/visual/input/date-range/DateRangeFilter.js.map +1 -1
- package/src/visual/input/number/NumberInput.d.ts +1 -0
- package/src/visual/input/number/NumberInput.js +1 -1
- package/src/visual/input/number/NumberInput.js.map +1 -1
- package/src/visual/input/text/TextInput.d.ts +1 -0
- package/src/visual/input/text/TextInput.js +2 -1
- package/src/visual/input/text/TextInput.js.map +1 -1
- package/src/visual/link-list/LinkList.d.ts +3 -0
- package/src/visual/link-list/LinkList.js +3 -2
- package/src/visual/link-list/LinkList.js.map +1 -1
- package/src/visual/media/carousel/SlideCarousel.d.ts +19 -0
- package/src/visual/media/carousel/SlideCarousel.js +39 -0
- package/src/visual/media/carousel/SlideCarousel.js.map +1 -0
- package/src/visual/media/carousel/index.d.ts +2 -0
- package/src/visual/media/carousel/index.js +2 -0
- package/src/visual/media/carousel/index.js.map +1 -0
- package/src/visual/media/equirect-sphere-viewport/EquirectSphereViewport.d.ts +45 -0
- package/src/visual/media/equirect-sphere-viewport/EquirectSphereViewport.js +527 -0
- package/src/visual/media/equirect-sphere-viewport/EquirectSphereViewport.js.map +1 -0
- package/src/visual/media/equirect-sphere-viewport/index.d.ts +2 -0
- package/src/visual/media/equirect-sphere-viewport/index.js +2 -0
- package/src/visual/media/equirect-sphere-viewport/index.js.map +1 -0
- package/src/visual/media/equirect-sphere-viewport/planet-shader.d.ts +6 -0
- package/src/visual/media/equirect-sphere-viewport/planet-shader.js +69 -0
- package/src/visual/media/equirect-sphere-viewport/planet-shader.js.map +1 -0
- package/src/visual/media/flat-video-viewport/FlatVideoViewport.d.ts +32 -0
- package/src/visual/media/flat-video-viewport/FlatVideoViewport.js +317 -0
- package/src/visual/media/flat-video-viewport/FlatVideoViewport.js.map +1 -0
- package/src/visual/media/flat-video-viewport/index.d.ts +2 -0
- package/src/visual/media/flat-video-viewport/index.js +2 -0
- package/src/visual/media/flat-video-viewport/index.js.map +1 -0
- package/src/visual/media/video-metadata/VideoMetadataPanel.d.ts +13 -0
- package/src/visual/media/video-metadata/VideoMetadataPanel.js +8 -0
- package/src/visual/media/video-metadata/VideoMetadataPanel.js.map +1 -0
- package/src/visual/media/video-metadata/index.d.ts +2 -0
- package/src/visual/media/video-metadata/index.js +2 -0
- package/src/visual/media/video-metadata/index.js.map +1 -0
- package/src/visual/media/video-source/VideoSource.d.ts +2 -0
- package/src/visual/media/video-source/VideoSource.js +6 -2
- package/src/visual/media/video-source/VideoSource.js.map +1 -1
- package/src/visual/media/youtube-embed/YoutubeEmbed.d.ts +14 -0
- package/src/visual/media/youtube-embed/YoutubeEmbed.js +21 -0
- package/src/visual/media/youtube-embed/YoutubeEmbed.js.map +1 -0
- package/src/visual/media/youtube-embed/index.d.ts +2 -0
- package/src/visual/media/youtube-embed/index.js +2 -0
- package/src/visual/media/youtube-embed/index.js.map +1 -0
- package/src/visual/news/article-detail/NewsArticleDetail.js +2 -2
- package/src/visual/news/article-detail/NewsArticleDetail.js.map +1 -1
- package/src/visual/news/results-table/NewsResultsTable.d.ts +14 -0
- package/src/visual/news/results-table/NewsResultsTable.js +30 -3
- package/src/visual/news/results-table/NewsResultsTable.js.map +1 -1
- package/src/visual/news/results-table/index.d.ts +1 -1
- package/src/visual/plugin/metric-chip/MetricChip.js +1 -1
- package/src/visual/plugin/metric-chip/MetricChip.js.map +1 -1
- package/src/visual/table/DataTable.d.ts +10 -0
- package/src/visual/table/DataTable.js +31 -2
- package/src/visual/table/DataTable.js.map +1 -1
- package/src/visual/table/index.d.ts +1 -1
- package/src/visual/wasm/media/WasmMedia.d.ts +6 -0
- package/src/visual/wasm/media/WasmMedia.js +9 -3
- package/src/visual/wasm/media/WasmMedia.js.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JourneySankeyChart.js","sourceRoot":"","sources":["../../../../../../../packages/react/src/visual/chart/sankey/JourneySankeyChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/react/src/visual/chart/sankey/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type CSSProperties, type ReactNode } from 'react';
|
|
2
|
+
export interface VennSet {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
count: number;
|
|
6
|
+
color?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface VennOverlap {
|
|
9
|
+
setIds: string[];
|
|
10
|
+
count: number;
|
|
11
|
+
label?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface VennOverlapChartProps {
|
|
14
|
+
title?: string;
|
|
15
|
+
sets?: VennSet[];
|
|
16
|
+
overlaps?: VennOverlap[];
|
|
17
|
+
className?: string;
|
|
18
|
+
style?: CSSProperties;
|
|
19
|
+
children?: ReactNode;
|
|
20
|
+
}
|
|
21
|
+
/** @rosettadash/react/visual/chart/venn — SVG Venn / overlap diagram */
|
|
22
|
+
export declare const VennOverlapChart: import("react").ForwardRefExoticComponent<VennOverlapChartProps & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
const DEFAULT_COLORS = ['#3b82f6', '#f59e0b', '#10b981'];
|
|
4
|
+
const FALLBACK_SETS = [
|
|
5
|
+
{ id: 'a', label: 'Set A', count: 100 },
|
|
6
|
+
{ id: 'b', label: 'Set B', count: 80 },
|
|
7
|
+
];
|
|
8
|
+
const FALLBACK_OVERLAPS = [{ setIds: ['a', 'b'], count: 25 }];
|
|
9
|
+
/** @rosettadash/react/visual/chart/venn — SVG Venn / overlap diagram */
|
|
10
|
+
export const VennOverlapChart = forwardRef(function VennOverlapChart({ title, sets, overlaps, className, style, children }, ref) {
|
|
11
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
12
|
+
const rootClass = ['rd-chart-venn', className].filter(Boolean).join(' ');
|
|
13
|
+
const chartSets = (sets === null || sets === void 0 ? void 0 : sets.length) ? sets : FALLBACK_SETS;
|
|
14
|
+
const chartOverlaps = overlaps !== null && overlaps !== void 0 ? overlaps : FALLBACK_OVERLAPS;
|
|
15
|
+
const threeWay = chartSets.length >= 3;
|
|
16
|
+
return (_jsxs("section", { ref: ref, className: rootClass, style: style, "data-testid": "rd-chart-venn", role: "img", "aria-label": title !== null && title !== void 0 ? title : 'Venn overlap chart', children: [_jsx("header", { className: "rd-chart-venn__header", children: _jsx("span", { children: title !== null && title !== void 0 ? title : 'Overlap diagram' }) }), _jsxs("div", { className: "rd-chart-venn__body", children: [_jsx("svg", { viewBox: "0 0 420 260", className: "rd-chart-venn__svg", "aria-hidden": "true", children: threeWay ? (_jsxs(_Fragment, { children: [_jsx("circle", { cx: "150", cy: "120", r: "72", className: "rd-chart-venn__circle", style: { fill: (_b = (_a = chartSets[0]) === null || _a === void 0 ? void 0 : _a.color) !== null && _b !== void 0 ? _b : DEFAULT_COLORS[0] } }), _jsx("circle", { cx: "270", cy: "120", r: "72", className: "rd-chart-venn__circle", style: { fill: (_d = (_c = chartSets[1]) === null || _c === void 0 ? void 0 : _c.color) !== null && _d !== void 0 ? _d : DEFAULT_COLORS[1] } }), _jsx("circle", { cx: "210", cy: "170", r: "72", className: "rd-chart-venn__circle", style: { fill: (_f = (_e = chartSets[2]) === null || _e === void 0 ? void 0 : _e.color) !== null && _f !== void 0 ? _f : DEFAULT_COLORS[2] } }), _jsx("text", { x: "95", y: "75", className: "rd-chart-venn__set-label", children: (_g = chartSets[0]) === null || _g === void 0 ? void 0 : _g.label }), _jsx("text", { x: "300", y: "75", className: "rd-chart-venn__set-label", children: (_h = chartSets[1]) === null || _h === void 0 ? void 0 : _h.label }), _jsx("text", { x: "210", y: "230", className: "rd-chart-venn__set-label", textAnchor: "middle", children: (_j = chartSets[2]) === null || _j === void 0 ? void 0 : _j.label })] })) : (_jsxs(_Fragment, { children: [_jsx("circle", { cx: "155", cy: "130", r: "78", className: "rd-chart-venn__circle", style: { fill: (_l = (_k = chartSets[0]) === null || _k === void 0 ? void 0 : _k.color) !== null && _l !== void 0 ? _l : DEFAULT_COLORS[0] } }), _jsx("circle", { cx: "265", cy: "130", r: "78", className: "rd-chart-venn__circle", style: { fill: (_o = (_m = chartSets[1]) === null || _m === void 0 ? void 0 : _m.color) !== null && _o !== void 0 ? _o : DEFAULT_COLORS[1] } }), _jsx("text", { x: "105", y: "130", className: "rd-chart-venn__set-label", children: (_p = chartSets[0]) === null || _p === void 0 ? void 0 : _p.label }), _jsx("text", { x: "315", y: "130", className: "rd-chart-venn__set-label", textAnchor: "end", children: (_q = chartSets[1]) === null || _q === void 0 ? void 0 : _q.label })] })) }), _jsxs("ul", { className: "rd-chart-venn__legend", children: [chartSets.map((set, index) => {
|
|
17
|
+
var _a;
|
|
18
|
+
return (_jsxs("li", { children: [_jsx("span", { className: "rd-chart-venn__swatch", style: { background: (_a = set.color) !== null && _a !== void 0 ? _a : DEFAULT_COLORS[index % DEFAULT_COLORS.length] } }), _jsx("span", { children: set.label }), _jsx("strong", { children: set.count.toLocaleString() })] }, set.id));
|
|
19
|
+
}), chartOverlaps.map((overlap) => {
|
|
20
|
+
var _a;
|
|
21
|
+
return (_jsxs("li", { children: [_jsx("span", { className: "rd-chart-venn__swatch rd-chart-venn__swatch--overlap" }), _jsx("span", { children: (_a = overlap.label) !== null && _a !== void 0 ? _a : overlap.setIds.join(' ∩ ') }), _jsx("strong", { children: overlap.count.toLocaleString() })] }, overlap.setIds.join('-')));
|
|
22
|
+
})] })] }), children] }));
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=VennOverlapChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VennOverlapChart.js","sourceRoot":"","sources":["../../../../../../../packages/react/src/visual/chart/venn/VennOverlapChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/react/src/visual/chart/venn/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type CSSProperties } from 'react';
|
|
2
|
+
export interface DestinationSelectItem {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
meta?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface DestinationSelectListProps {
|
|
8
|
+
title?: string;
|
|
9
|
+
items: DestinationSelectItem[];
|
|
10
|
+
selectedId?: string;
|
|
11
|
+
onSelect?: (id: string) => void;
|
|
12
|
+
className?: string;
|
|
13
|
+
style?: CSSProperties;
|
|
14
|
+
}
|
|
15
|
+
/** @rosettadash/react/visual/destination/destination-select-list — selectable destination sidebar list */
|
|
16
|
+
export declare const DestinationSelectList: import("react").ForwardRefExoticComponent<DestinationSelectListProps & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
/** @rosettadash/react/visual/destination/destination-select-list — selectable destination sidebar list */
|
|
4
|
+
export const DestinationSelectList = forwardRef(function DestinationSelectList({ title = 'Destinations', items, selectedId, onSelect, className, style }, ref) {
|
|
5
|
+
const rootClass = ['rd-destination-list', className].filter(Boolean).join(' ');
|
|
6
|
+
return (_jsxs("section", { ref: ref, className: rootClass, style: style, "aria-label": title, children: [_jsxs("header", { className: "rd-destination-list__header", children: [_jsx("h3", { children: title }), _jsx("span", { className: "rd-destination-list__count", children: items.length })] }), _jsx("ul", { className: "rd-destination-list__items", children: items.map((item) => {
|
|
7
|
+
const selected = item.id === selectedId;
|
|
8
|
+
return (_jsx("li", { className: ['rd-destination-list__item', selected ? 'rd-destination-list__item--selected' : '']
|
|
9
|
+
.filter(Boolean)
|
|
10
|
+
.join(' '), children: _jsxs("button", { type: "button", className: "rd-destination-list__button", "aria-current": selected ? 'true' : undefined, onClick: () => onSelect === null || onSelect === void 0 ? void 0 : onSelect(item.id), children: [_jsx("span", { className: "rd-destination-list__label", children: item.label }), item.meta ? _jsx("span", { className: "rd-destination-list__meta", children: item.meta }) : null] }) }, item.id));
|
|
11
|
+
}) })] }));
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=DestinationSelectList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DestinationSelectList.js","sourceRoot":"","sources":["../../../../../../../packages/react/src/visual/destination/destination-select-list/DestinationSelectList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,OAAO,CAAC;AAiBvD,0GAA0G;AAC1G,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAC7C,SAAS,qBAAqB,CAAC,EAAE,KAAK,GAAG,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,GAAG;IAC3G,MAAM,SAAS,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE/E,OAAO,CACL,mBAAS,GAAG,EAAE,GAAmC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,gBAAc,KAAK,aACtG,kBAAQ,SAAS,EAAC,6BAA6B,aAC7C,uBAAK,KAAK,GAAM,EAChB,eAAM,SAAS,EAAC,4BAA4B,YAAE,KAAK,CAAC,MAAM,GAAQ,IAC3D,EACT,aAAI,SAAS,EAAC,4BAA4B,YACvC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC;oBACxC,OAAO,CACL,aAEE,SAAS,EAAE,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,EAAE,CAAC;6BAC5F,MAAM,CAAC,OAAO,CAAC;6BACf,IAAI,CAAC,GAAG,CAAC,YAEZ,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,6BAA6B,kBACzB,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC3C,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,IAAI,CAAC,EAAE,CAAC,aAElC,eAAM,SAAS,EAAC,4BAA4B,YAAE,IAAI,CAAC,KAAK,GAAQ,EAC/D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,2BAA2B,YAAE,IAAI,CAAC,IAAI,GAAQ,CAAC,CAAC,CAAC,IAAI,IAC3E,IAbJ,IAAI,CAAC,EAAE,CAcT,CACN,CAAC;gBACJ,CAAC,CAAC,GACC,IACG,CACX,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/react/src/visual/destination/destination-select-list/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type CSSProperties } from 'react';
|
|
2
|
+
export interface DetailHistoricItem {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
}
|
|
6
|
+
export interface DetailHistoricListProps {
|
|
7
|
+
title: string;
|
|
8
|
+
items: DetailHistoricItem[];
|
|
9
|
+
compact?: boolean;
|
|
10
|
+
className?: string;
|
|
11
|
+
style?: CSSProperties;
|
|
12
|
+
}
|
|
13
|
+
/** @rosettadash/react/visual/detail/detail-historic-list — visual.detail.detail-historic-list */
|
|
14
|
+
export declare const DetailHistoricList: import("react").ForwardRefExoticComponent<DetailHistoricListProps & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
/** @rosettadash/react/visual/detail/detail-historic-list — visual.detail.detail-historic-list */
|
|
4
|
+
export const DetailHistoricList = forwardRef(function DetailHistoricList({ title, items, compact, className, style }, ref) {
|
|
5
|
+
const rootClass = ['rd-detail-historic', compact ? 'rd-detail-historic--compact' : '', className]
|
|
6
|
+
.filter(Boolean)
|
|
7
|
+
.join(' ');
|
|
8
|
+
return (_jsxs("section", { ref: ref, className: rootClass, style: style, "data-testid": "rd-detail-historic", children: [_jsx("h4", { children: title }), _jsx("ul", { children: items.map((item) => (_jsxs("li", { children: [_jsx("span", { children: item.label }), _jsx("strong", { children: item.value })] }, item.label))) })] }));
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=DetailHistoricList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DetailHistoricList.js","sourceRoot":"","sources":["../../../../../../packages/react/src/visual/detail/DetailHistoricList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,OAAO,CAAC;AAevD,iGAAiG;AACjG,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAC1C,SAAS,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,GAAG;IAC1E,MAAM,SAAS,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;SAC9F,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,CACL,mBAAS,GAAG,EAAE,GAAmC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,iBAAc,oBAAoB,aACrH,uBAAK,KAAK,GAAM,EAChB,uBACG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,yBACE,yBAAO,IAAI,CAAC,KAAK,GAAQ,EACzB,2BAAS,IAAI,CAAC,KAAK,GAAU,KAFtB,IAAI,CAAC,KAAK,CAGd,CACN,CAAC,GACC,IACG,CACX,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -5,6 +5,6 @@ export const DetailPanel = forwardRef(function DetailPanel(props, ref) {
|
|
|
5
5
|
var _a, _b;
|
|
6
6
|
const { className, style, children } = props;
|
|
7
7
|
const rootClass = ['rd-detail', className].filter(Boolean).join(' ');
|
|
8
|
-
return (_jsxs("section", { ref: ref, className: rootClass, style: style, "data-testid": "rd-detail", children: [_jsx("header", { className: "rd-detail__header", children: _jsx("span", { children: (_a = props.title) !== null && _a !== void 0 ? _a : 'Details' }) }), _jsx("p", { className: "rd-detail__empty", children: (_b = props.emptyMessage) !== null && _b !== void 0 ? _b : 'Select a row to view details' })
|
|
8
|
+
return (_jsxs("section", { ref: ref, className: rootClass, style: style, "data-testid": "rd-detail", children: [_jsx("header", { className: "rd-detail__header", children: _jsx("span", { children: (_a = props.title) !== null && _a !== void 0 ? _a : 'Details' }) }), children ? (_jsx("div", { className: "rd-detail__body", children: children })) : (_jsx("p", { className: "rd-detail__empty", children: (_b = props.emptyMessage) !== null && _b !== void 0 ? _b : 'Select a row to view details' }))] }));
|
|
9
9
|
});
|
|
10
10
|
//# sourceMappingURL=DetailPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailPanel.js","sourceRoot":"","sources":["../../../../../../packages/react/src/visual/detail/DetailPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAsC,MAAM,OAAO,CAAC;AAUvE,uDAAuD;AACvD,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAgC,SAAS,WAAW,CACvF,KAAK,EACL,GAAG;;IAEH,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC7C,MAAM,SAAS,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAErE,OAAO,CACL,mBAAS,GAAG,EAAE,GAAmC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,iBAAc,WAAW,aAC5G,iBAAQ,SAAS,EAAC,mBAAmB,YAAC,yBAAO,MAAA,KAAK,CAAC,KAAK,mCAAI,SAAS,GAAQ,GAAS,
|
|
1
|
+
{"version":3,"file":"DetailPanel.js","sourceRoot":"","sources":["../../../../../../packages/react/src/visual/detail/DetailPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAsC,MAAM,OAAO,CAAC;AAUvE,uDAAuD;AACvD,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAgC,SAAS,WAAW,CACvF,KAAK,EACL,GAAG;;IAEH,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC7C,MAAM,SAAS,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAErE,OAAO,CACL,mBAAS,GAAG,EAAE,GAAmC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,iBAAc,WAAW,aAC5G,iBAAQ,SAAS,EAAC,mBAAmB,YAAC,yBAAO,MAAA,KAAK,CAAC,KAAK,mCAAI,SAAS,GAAQ,GAAS,EACrF,QAAQ,CAAC,CAAC,CAAC,CACV,cAAK,SAAS,EAAC,iBAAiB,YAAE,QAAQ,GAAO,CAClD,CAAC,CAAC,CAAC,CACF,YAAG,SAAS,EAAC,kBAAkB,YAAE,MAAA,KAAK,CAAC,YAAY,mCAAI,8BAA8B,GAAK,CAC3F,IACO,CACX,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type CSSProperties } from 'react';
|
|
2
|
+
export interface DetailStatItem {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
}
|
|
6
|
+
export interface DetailStatsProps {
|
|
7
|
+
items: DetailStatItem[];
|
|
8
|
+
compact?: boolean;
|
|
9
|
+
className?: string;
|
|
10
|
+
style?: CSSProperties;
|
|
11
|
+
}
|
|
12
|
+
/** @rosettadash/react/visual/detail/detail-stats — visual.detail.detail-stats */
|
|
13
|
+
export declare const DetailStats: import("react").ForwardRefExoticComponent<DetailStatsProps & import("react").RefAttributes<HTMLDListElement>>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
/** @rosettadash/react/visual/detail/detail-stats — visual.detail.detail-stats */
|
|
4
|
+
export const DetailStats = forwardRef(function DetailStats({ items, compact, className, style }, ref) {
|
|
5
|
+
const rootClass = ['rd-detail-stats', compact ? 'rd-detail-stats--compact' : '', className]
|
|
6
|
+
.filter(Boolean)
|
|
7
|
+
.join(' ');
|
|
8
|
+
return (_jsx("dl", { ref: ref, className: rootClass, style: style, "data-testid": "rd-detail-stats", children: items.map((item) => (_jsxs("div", { children: [_jsx("dt", { children: item.label }), _jsx("dd", { children: item.value })] }, item.label))) }));
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=DetailStats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DetailStats.js","sourceRoot":"","sources":["../../../../../../packages/react/src/visual/detail/DetailStats.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,OAAO,CAAC;AAcvD,iFAAiF;AACjF,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAqC,SAAS,WAAW,CAC5F,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EACpC,GAAG;IAEH,MAAM,SAAS,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;SACxF,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,CACL,aAAI,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,iBAAc,iBAAiB,YAC5E,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,0BACE,uBAAK,IAAI,CAAC,KAAK,GAAM,EACrB,uBAAK,IAAI,CAAC,KAAK,GAAM,KAFb,IAAI,CAAC,KAAK,CAGd,CACP,CAAC,GACC,CACN,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
1
|
export type { DetailPanelProps } from './DetailPanel.js';
|
|
2
2
|
export { DetailPanel } from './DetailPanel.js';
|
|
3
|
+
export type { DetailStatItem, DetailStatsProps } from './DetailStats.js';
|
|
4
|
+
export { DetailStats } from './DetailStats.js';
|
|
5
|
+
export type { DetailHistoricItem, DetailHistoricListProps } from './DetailHistoricList.js';
|
|
6
|
+
export { DetailHistoricList } from './DetailHistoricList.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/react/src/visual/detail/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/react/src/visual/detail/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
import { type CSSProperties, type ReactNode } from 'react';
|
|
2
|
+
export interface GlobeMarker {
|
|
3
|
+
id: string;
|
|
4
|
+
lat: number;
|
|
5
|
+
lng: number;
|
|
6
|
+
label?: string;
|
|
7
|
+
}
|
|
2
8
|
export interface ThreeGeoGlobeProps {
|
|
3
9
|
title?: string;
|
|
4
|
-
|
|
10
|
+
textureUrl?: string;
|
|
11
|
+
markers?: GlobeMarker[];
|
|
12
|
+
selectedId?: string;
|
|
13
|
+
onMarkerSelect?: (id: string) => void;
|
|
14
|
+
minHeight?: string | number;
|
|
5
15
|
className?: string;
|
|
6
16
|
style?: CSSProperties;
|
|
7
17
|
children?: ReactNode;
|
|
8
18
|
}
|
|
9
|
-
/** @rosettadash/react/visual/display/3d-geo-globe —
|
|
19
|
+
/** @rosettadash/react/visual/display/3d-geo-globe — Three.js globe with destination markers */
|
|
10
20
|
export declare const ThreeGeoGlobe: import("react").ForwardRefExoticComponent<ThreeGeoGlobeProps & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -1,10 +1,203 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef } from 'react';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef, useEffect, useRef } from 'react';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
|
|
5
|
+
const GLOBE_RADIUS = 1.6;
|
|
6
|
+
function latLngToGlobePosition(lat, lng, radius) {
|
|
7
|
+
const phi = ((90 - lat) * Math.PI) / 180;
|
|
8
|
+
const theta = ((lng + 180) * Math.PI) / 180;
|
|
9
|
+
const surfaceRadius = radius + 0.04;
|
|
10
|
+
return new THREE.Vector3(-surfaceRadius * Math.sin(phi) * Math.cos(theta), surfaceRadius * Math.cos(phi), surfaceRadius * Math.sin(phi) * Math.sin(theta));
|
|
11
|
+
}
|
|
12
|
+
/** @rosettadash/react/visual/display/3d-geo-globe — Three.js globe with destination markers */
|
|
13
|
+
export const ThreeGeoGlobe = forwardRef(function ThreeGeoGlobe({ title, textureUrl, markers = [], selectedId, onMarkerSelect, minHeight = '28rem', className, style, children, }, ref) {
|
|
14
|
+
const hostRef = useRef(null);
|
|
15
|
+
const markerMeshesRef = useRef(new Map());
|
|
16
|
+
const syncMarkersRef = useRef(null);
|
|
17
|
+
const flyToLatLngRef = useRef(null);
|
|
18
|
+
const propsRef = useRef({ markers, selectedId, onMarkerSelect });
|
|
19
|
+
propsRef.current = { markers, selectedId, onMarkerSelect };
|
|
7
20
|
const rootClass = ['rd-display-3d-geo-globe', className].filter(Boolean).join(' ');
|
|
8
|
-
|
|
21
|
+
const hostStyle = Object.assign(Object.assign({}, style), { minHeight: typeof minHeight === 'number' ? `${minHeight}px` : minHeight });
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
const host = hostRef.current;
|
|
24
|
+
if (!host) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const scene = new THREE.Scene();
|
|
28
|
+
scene.background = new THREE.Color('#0b1220');
|
|
29
|
+
const camera = new THREE.PerspectiveCamera(45, 1, 0.1, 100);
|
|
30
|
+
camera.position.set(0, 0.4, 4.8);
|
|
31
|
+
const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });
|
|
32
|
+
renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
|
|
33
|
+
renderer.domElement.style.display = 'block';
|
|
34
|
+
renderer.domElement.style.width = '100%';
|
|
35
|
+
renderer.domElement.style.height = '100%';
|
|
36
|
+
host.appendChild(renderer.domElement);
|
|
37
|
+
scene.add(new THREE.AmbientLight(0xffffff, 0.72));
|
|
38
|
+
const keyLight = new THREE.DirectionalLight(0xffffff, 1.05);
|
|
39
|
+
keyLight.position.set(4, 6, 5);
|
|
40
|
+
scene.add(keyLight);
|
|
41
|
+
const globeMaterial = new THREE.MeshStandardMaterial({ color: '#1d4ed8' });
|
|
42
|
+
const globe = new THREE.Mesh(new THREE.SphereGeometry(GLOBE_RADIUS, 64, 64), globeMaterial);
|
|
43
|
+
scene.add(globe);
|
|
44
|
+
let textureLoadId = 0;
|
|
45
|
+
if (textureUrl) {
|
|
46
|
+
const loadId = ++textureLoadId;
|
|
47
|
+
new THREE.TextureLoader().load(textureUrl, (texture) => {
|
|
48
|
+
if (loadId !== textureLoadId) {
|
|
49
|
+
texture.dispose();
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
globeMaterial.map = texture;
|
|
53
|
+
globeMaterial.color.set('#ffffff');
|
|
54
|
+
globeMaterial.needsUpdate = true;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
const controls = new OrbitControls(camera, renderer.domElement);
|
|
58
|
+
controls.enableDamping = true;
|
|
59
|
+
controls.dampingFactor = 0.08;
|
|
60
|
+
controls.minDistance = 2.8;
|
|
61
|
+
controls.maxDistance = 8;
|
|
62
|
+
controls.autoRotate = true;
|
|
63
|
+
controls.autoRotateSpeed = 0.6;
|
|
64
|
+
const markerGeometry = new THREE.SphereGeometry(0.06, 12, 12);
|
|
65
|
+
const raycaster = new THREE.Raycaster();
|
|
66
|
+
const pointer = new THREE.Vector2();
|
|
67
|
+
const syncMarkers = () => {
|
|
68
|
+
const { markers: nextMarkers, selectedId: nextSelected } = propsRef.current;
|
|
69
|
+
const meshes = markerMeshesRef.current;
|
|
70
|
+
for (const id of [...meshes.keys()]) {
|
|
71
|
+
if (!nextMarkers.some((marker) => marker.id === id)) {
|
|
72
|
+
const mesh = meshes.get(id);
|
|
73
|
+
if (mesh) {
|
|
74
|
+
mesh.material.dispose();
|
|
75
|
+
mesh.removeFromParent();
|
|
76
|
+
}
|
|
77
|
+
meshes.delete(id);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
for (const marker of nextMarkers) {
|
|
81
|
+
let mesh = meshes.get(marker.id);
|
|
82
|
+
if (!mesh) {
|
|
83
|
+
mesh = new THREE.Mesh(markerGeometry, new THREE.MeshStandardMaterial({ color: '#f87171' }));
|
|
84
|
+
mesh.userData['id'] = marker.id;
|
|
85
|
+
scene.add(mesh);
|
|
86
|
+
meshes.set(marker.id, mesh);
|
|
87
|
+
}
|
|
88
|
+
const position = latLngToGlobePosition(marker.lat, marker.lng, GLOBE_RADIUS);
|
|
89
|
+
mesh.position.copy(position);
|
|
90
|
+
const material = mesh.material;
|
|
91
|
+
const selected = marker.id === nextSelected;
|
|
92
|
+
material.color.set(selected ? '#fbbf24' : '#f87171');
|
|
93
|
+
material.emissive.set(selected ? '#92400e' : '#000000');
|
|
94
|
+
material.emissiveIntensity = selected ? 0.35 : 0;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
syncMarkers();
|
|
98
|
+
syncMarkersRef.current = syncMarkers;
|
|
99
|
+
let flyFrameId = 0;
|
|
100
|
+
flyToLatLngRef.current = (lat, lng) => {
|
|
101
|
+
cancelAnimationFrame(flyFrameId);
|
|
102
|
+
controls.autoRotate = false;
|
|
103
|
+
const markerPos = latLngToGlobePosition(lat, lng, GLOBE_RADIUS);
|
|
104
|
+
const distance = camera.position.length() || 4.8;
|
|
105
|
+
const endPos = markerPos.clone().normalize().multiplyScalar(distance);
|
|
106
|
+
const startPos = camera.position.clone();
|
|
107
|
+
const flyStart = performance.now();
|
|
108
|
+
const flyDuration = 900;
|
|
109
|
+
const animateFly = (now) => {
|
|
110
|
+
const t = Math.min((now - flyStart) / flyDuration, 1);
|
|
111
|
+
const eased = 1 - Math.pow((1 - t), 3);
|
|
112
|
+
camera.position.lerpVectors(startPos, endPos, eased);
|
|
113
|
+
controls.update();
|
|
114
|
+
if (t < 1) {
|
|
115
|
+
flyFrameId = requestAnimationFrame(animateFly);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
controls.autoRotate = true;
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
flyFrameId = requestAnimationFrame(animateFly);
|
|
122
|
+
};
|
|
123
|
+
const resize = () => {
|
|
124
|
+
const width = host.clientWidth || 1;
|
|
125
|
+
const height = host.clientHeight || 1;
|
|
126
|
+
camera.aspect = width / height;
|
|
127
|
+
camera.updateProjectionMatrix();
|
|
128
|
+
renderer.setSize(width, height, false);
|
|
129
|
+
};
|
|
130
|
+
const resizeObserver = new ResizeObserver(resize);
|
|
131
|
+
resizeObserver.observe(host);
|
|
132
|
+
resize();
|
|
133
|
+
let animationId = 0;
|
|
134
|
+
const tick = () => {
|
|
135
|
+
controls.update();
|
|
136
|
+
renderer.render(scene, camera);
|
|
137
|
+
animationId = requestAnimationFrame(tick);
|
|
138
|
+
};
|
|
139
|
+
tick();
|
|
140
|
+
const onPointerDown = (event) => {
|
|
141
|
+
var _a, _b, _c, _d;
|
|
142
|
+
const rect = renderer.domElement.getBoundingClientRect();
|
|
143
|
+
pointer.x = ((event.clientX - rect.left) / rect.width) * 2 - 1;
|
|
144
|
+
pointer.y = -((event.clientY - rect.top) / rect.height) * 2 + 1;
|
|
145
|
+
raycaster.setFromCamera(pointer, camera);
|
|
146
|
+
const hits = raycaster.intersectObjects([...markerMeshesRef.current.values()]);
|
|
147
|
+
const hit = (_a = hits[0]) === null || _a === void 0 ? void 0 : _a.object;
|
|
148
|
+
const id = (_b = hit === null || hit === void 0 ? void 0 : hit.userData) === null || _b === void 0 ? void 0 : _b['id'];
|
|
149
|
+
if (id) {
|
|
150
|
+
(_d = (_c = propsRef.current).onMarkerSelect) === null || _d === void 0 ? void 0 : _d.call(_c, id);
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
renderer.domElement.addEventListener('pointerdown', onPointerDown);
|
|
154
|
+
return () => {
|
|
155
|
+
syncMarkersRef.current = null;
|
|
156
|
+
flyToLatLngRef.current = null;
|
|
157
|
+
cancelAnimationFrame(flyFrameId);
|
|
158
|
+
renderer.domElement.removeEventListener('pointerdown', onPointerDown);
|
|
159
|
+
cancelAnimationFrame(animationId);
|
|
160
|
+
resizeObserver.disconnect();
|
|
161
|
+
controls.dispose();
|
|
162
|
+
markerMeshesRef.current.forEach((mesh) => {
|
|
163
|
+
mesh.material.dispose();
|
|
164
|
+
mesh.removeFromParent();
|
|
165
|
+
});
|
|
166
|
+
markerMeshesRef.current.clear();
|
|
167
|
+
globeGeometryDispose(globe);
|
|
168
|
+
markerGeometry.dispose();
|
|
169
|
+
renderer.dispose();
|
|
170
|
+
renderer.domElement.remove();
|
|
171
|
+
textureLoadId += 1;
|
|
172
|
+
};
|
|
173
|
+
}, [textureUrl]);
|
|
174
|
+
useEffect(() => {
|
|
175
|
+
var _a;
|
|
176
|
+
(_a = syncMarkersRef.current) === null || _a === void 0 ? void 0 : _a.call(syncMarkersRef);
|
|
177
|
+
}, [markers, selectedId]);
|
|
178
|
+
useEffect(() => {
|
|
179
|
+
var _a;
|
|
180
|
+
if (!selectedId) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
const marker = markers.find((entry) => entry.id === selectedId);
|
|
184
|
+
if (marker) {
|
|
185
|
+
(_a = flyToLatLngRef.current) === null || _a === void 0 ? void 0 : _a.call(flyToLatLngRef, marker.lat, marker.lng);
|
|
186
|
+
}
|
|
187
|
+
}, [selectedId, markers]);
|
|
188
|
+
return (_jsxs("section", { ref: ref, className: rootClass, style: hostStyle, "data-testid": "rd-display-3d-geo-globe", "aria-label": title !== null && title !== void 0 ? title : '3D destination globe', children: [title ? _jsx("header", { className: "rd-display-3d-geo-globe__header", children: title }) : null, _jsx("div", { ref: hostRef, className: "rd-display-3d-geo-globe__canvas-host" }), children] }));
|
|
9
189
|
});
|
|
190
|
+
function globeGeometryDispose(globe) {
|
|
191
|
+
globe.geometry.dispose();
|
|
192
|
+
const material = globe.material;
|
|
193
|
+
if (Array.isArray(material)) {
|
|
194
|
+
material.forEach((entry) => entry.dispose());
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
material.dispose();
|
|
198
|
+
if (material instanceof THREE.MeshStandardMaterial && material.map) {
|
|
199
|
+
material.map.dispose();
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
10
203
|
//# sourceMappingURL=ThreeGeoGlobe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreeGeoGlobe.js","sourceRoot":"","sources":["../../../../../../../packages/react/src/visual/display/3d-geo-globe/ThreeGeoGlobe.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAsC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ThreeGeoGlobe.js","sourceRoot":"","sources":["../../../../../../../packages/react/src/visual/display/3d-geo-globe/ThreeGeoGlobe.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
import { type CSSProperties, type ReactNode } from 'react';
|
|
2
|
+
export interface ScatterPlotPoint {
|
|
3
|
+
id: string;
|
|
4
|
+
label?: string;
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
z: number;
|
|
8
|
+
}
|
|
2
9
|
export interface ThreeScatterPlotProps {
|
|
3
10
|
title?: string;
|
|
4
|
-
|
|
11
|
+
points?: ScatterPlotPoint[];
|
|
12
|
+
xAxisLabel?: string;
|
|
13
|
+
yAxisLabel?: string;
|
|
14
|
+
zAxisLabel?: string;
|
|
15
|
+
selectedId?: string;
|
|
16
|
+
onPointSelect?: (id: string) => void;
|
|
17
|
+
minHeight?: string | number;
|
|
5
18
|
className?: string;
|
|
6
19
|
style?: CSSProperties;
|
|
7
20
|
children?: ReactNode;
|
|
8
21
|
}
|
|
9
|
-
/** @rosettadash/react/visual/display/3d-scatter —
|
|
22
|
+
/** @rosettadash/react/visual/display/3d-scatter — Three.js scatter plot (price / distance / rating) */
|
|
10
23
|
export declare const ThreeScatterPlot: import("react").ForwardRefExoticComponent<ThreeScatterPlotProps & import("react").RefAttributes<HTMLElement>>;
|