@sjvair/monitor-map 3.0.3 → 3.0.5
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/dist/lib/LoadScreen.svelte +68 -0
- package/dist/lib/LoadScreen.svelte.d.ts +25 -0
- package/dist/lib/MainMapView.svelte +1 -0
- package/dist/lib/MainMapView.svelte.d.ts +26 -0
- package/dist/lib/MapLegend.svelte +15 -0
- package/dist/lib/MapLegend.svelte.d.ts +18 -0
- package/dist/lib/MonitorDetailPanel.svelte +152 -0
- package/dist/lib/MonitorDetailPanel.svelte.d.ts +3 -0
- package/dist/lib/MonitorMapLayout.svelte +193 -0
- package/dist/lib/MonitorMapLayout.svelte.d.ts +7 -0
- package/dist/lib/actions.d.ts +3 -0
- package/dist/lib/actions.js +12 -8
- package/dist/lib/assets/icons/adjustment-horizontal.svg +3 -0
- package/dist/lib/assets/logos/airgradient-blue.svg +63 -0
- package/dist/lib/assets/logos/airnow-compact.jpg +0 -0
- package/dist/lib/assets/logos/carb-compact.jpg +0 -0
- package/dist/lib/assets/logos/purpleair-compact.png +0 -0
- package/dist/lib/assets/logos/sjvair-parts/sjvair-air.webp +0 -0
- package/dist/lib/assets/logos/sjvair-parts/sjvair-icon.webp +0 -0
- package/dist/lib/assets/logos/sjvair-parts/sjvair-sjv.webp +0 -0
- package/dist/lib/assets/logos/sjvair-white.svg +115 -0
- package/dist/lib/assets/logos/sjvair.svg +96 -0
- package/dist/lib/collocation-sites/CollocationTooltip.svelte +98 -0
- package/dist/lib/collocation-sites/CollocationTooltip.svelte.d.ts +7 -0
- package/dist/lib/collocation-sites/collocation-utils.d.ts +3 -0
- package/dist/lib/collocation-sites/collocation-utils.js +30 -0
- package/dist/lib/collocation-sites/collocations-icon-manager.svelte.d.ts +7 -0
- package/dist/lib/collocation-sites/collocations-icon-manager.svelte.js +17 -20
- package/dist/lib/collocation-sites/collocations-map-integration.svelte.d.ts +18 -0
- package/dist/lib/collocation-sites/collocations-map-integration.svelte.js +98 -83
- package/dist/lib/collocation-sites/collocations.svelte.d.ts +9 -0
- package/dist/lib/collocation-sites/collocations.svelte.js +17 -26
- package/dist/lib/collocation-sites/types.d.ts +8 -0
- package/dist/lib/collocation-sites/types.js +1 -0
- package/dist/lib/colors.d.ts +17 -0
- package/dist/lib/colors.js +29 -23
- package/dist/lib/components/DataBox.svelte +29 -0
- package/dist/lib/components/DataBox.svelte.d.ts +9 -0
- package/dist/lib/components/DisplayOption.svelte +7 -0
- package/dist/lib/components/DisplayOption.svelte.d.ts +5 -0
- package/dist/lib/components/MapLayersDisplayOptions.svelte +42 -0
- package/dist/lib/components/MapLayersDisplayOptions.svelte.d.ts +18 -0
- package/dist/lib/components/SegmentedControl.svelte +61 -0
- package/dist/lib/components/SegmentedControl.svelte.d.ts +11 -0
- package/dist/lib/components/ToggleSwitch.svelte +93 -0
- package/dist/lib/components/ToggleSwitch.svelte.d.ts +9 -0
- package/dist/lib/components/ui/button/button.svelte +89 -0
- package/dist/lib/components/ui/button/button.svelte.d.ts +70 -0
- package/dist/lib/components/ui/button/index.d.ts +2 -0
- package/dist/lib/components/ui/button/index.js +4 -0
- package/dist/lib/components/ui/range-calendar/index.d.ts +19 -0
- package/dist/lib/components/ui/range-calendar/index.js +21 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-caption.svelte +76 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-caption.svelte.d.ts +19 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-cell.svelte +19 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-cell.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-day.svelte +36 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-day.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-body.svelte +7 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-body.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-head.svelte +7 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-head.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-row.svelte +12 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-row.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid.svelte +16 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-head-cell.svelte +19 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-head-cell.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-header.svelte +19 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-header.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-heading.svelte +16 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-heading.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-month-select.svelte +44 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-month-select.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-month.svelte +15 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-month.svelte.d.ts +5 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-months.svelte +19 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-months.svelte.d.ts +5 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-nav.svelte +19 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-nav.svelte.d.ts +5 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-next-button.svelte +36 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-next-button.svelte.d.ts +8 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-prev-button.svelte +36 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-prev-button.svelte.d.ts +8 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-year-select.svelte +43 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-year-select.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar.svelte +112 -0
- package/dist/lib/components/ui/range-calendar/range-calendar.svelte.d.ts +21 -0
- package/dist/lib/data-chart/DataChart.svelte +303 -0
- package/dist/lib/data-chart/DataChart.svelte.d.ts +7 -0
- package/dist/lib/data-chart/DateRange.d.ts +6 -0
- package/dist/lib/data-chart/DateRange.js +15 -14
- package/dist/lib/data-chart/chart-utils.d.ts +3 -0
- package/dist/lib/data-chart/chart-utils.js +157 -93
- package/dist/lib/data-chart/data-chart.svelte.d.ts +7 -0
- package/dist/lib/data-chart/data-chart.svelte.js +7 -28
- package/dist/lib/data-chart/requests.d.ts +3 -0
- package/dist/lib/data-chart/requests.js +36 -28
- package/dist/lib/data-chart/tooltip.d.ts +10 -0
- package/dist/lib/data-chart/tooltip.js +160 -98
- package/dist/lib/ev-stations/components/EvStationClusterTooltip.svelte +16 -0
- package/dist/lib/ev-stations/components/EvStationClusterTooltip.svelte.d.ts +7 -0
- package/dist/lib/ev-stations/components/EvStationTooltip.svelte +127 -0
- package/dist/lib/ev-stations/components/EvStationTooltip.svelte.d.ts +7 -0
- package/dist/lib/ev-stations/components/EvStationsDisplayOptions.svelte +46 -0
- package/dist/lib/ev-stations/components/EvStationsDisplayOptions.svelte.d.ts +18 -0
- package/dist/lib/ev-stations/data-maps.d.ts +5 -0
- package/dist/lib/ev-stations/data-maps.js +152 -4
- package/dist/lib/ev-stations/ev-station-icons.d.ts +16 -0
- package/dist/lib/ev-stations/ev-station-icons.js +21 -27
- package/dist/lib/ev-stations/ev-stations-cluster-renderer.d.ts +19 -0
- package/dist/lib/ev-stations/ev-stations-cluster-renderer.js +130 -117
- package/dist/lib/ev-stations/ev-stations-map-integration.svelte.d.ts +31 -0
- package/dist/lib/ev-stations/ev-stations-map-integration.svelte.js +206 -180
- package/dist/lib/ev-stations/ev-stations.svelte.d.ts +9 -0
- package/dist/lib/ev-stations/ev-stations.svelte.js +54 -32
- package/dist/lib/ev-stations/types.d.ts +53 -0
- package/dist/lib/ev-stations/types.js +1 -0
- package/dist/lib/ev-stations/zip-codes.d.ts +13 -0
- package/dist/lib/ev-stations/zip-codes.js +457 -135
- package/dist/lib/hms/components/HMSFireLegend.svelte +21 -0
- package/dist/lib/hms/components/HMSFireLegend.svelte.d.ts +18 -0
- package/dist/lib/hms/hms-fire-icon-manager.d.ts +5 -0
- package/dist/lib/hms/hms-fire-icon-manager.js +28 -37
- package/dist/lib/hms/hms-fire-map-integration.svelte.d.ts +23 -0
- package/dist/lib/hms/hms-fire-map-integration.svelte.js +94 -97
- package/dist/lib/hms/hms-smoke-map-integration.svelte.d.ts +19 -0
- package/dist/lib/hms/hms-smoke-map-integration.svelte.js +68 -84
- package/dist/lib/hms/hms.svelte.d.ts +19 -0
- package/dist/lib/hms/hms.svelte.js +225 -76
- package/dist/lib/index.d.ts +68 -0
- package/dist/lib/index.js +56 -21
- package/dist/lib/map/Map.svelte +13 -0
- package/dist/lib/map/Map.svelte.d.ts +8 -0
- package/dist/lib/map/MapStyleDisplayOptions.svelte +61 -0
- package/dist/lib/map/MapStyleDisplayOptions.svelte.d.ts +3 -0
- package/dist/lib/map/Menu.svelte +64 -0
- package/dist/lib/map/Menu.svelte.d.ts +5 -0
- package/dist/lib/map/icons.d.ts +7 -0
- package/dist/lib/map/icons.js +24 -22
- package/dist/lib/map/integrations/base-layer-seperator.d.ts +9 -0
- package/dist/lib/map/integrations/base-layer-seperator.js +11 -12
- package/dist/lib/map/integrations/click-manager.d.ts +14 -0
- package/dist/lib/map/integrations/click-manager.js +52 -33
- package/dist/lib/map/integrations/integrations-manager.d.ts +8 -0
- package/dist/lib/map/integrations/integrations-manager.js +20 -12
- package/dist/lib/map/integrations/map-display-option.svelte.d.ts +7 -0
- package/dist/lib/map/integrations/map-display-option.svelte.js +10 -18
- package/dist/lib/map/integrations/map-geojson-integration.svelte.d.ts +13 -0
- package/dist/lib/map/integrations/map-geojson-integration.svelte.js +21 -17
- package/dist/lib/map/integrations/map-icon-manager.d.ts +15 -0
- package/dist/lib/map/integrations/map-icon-manager.js +52 -46
- package/dist/lib/map/integrations/map-integration.svelte.d.ts +6 -0
- package/dist/lib/map/integrations/map-integration.svelte.js +2 -5
- package/dist/lib/map/integrations/map-layer-integration.svelte.d.ts +11 -0
- package/dist/lib/map/integrations/map-layer-integration.svelte.js +36 -23
- package/dist/lib/map/integrations/tooltip.svelte.d.ts +28 -0
- package/dist/lib/map/integrations/tooltip.svelte.js +120 -78
- package/dist/lib/map/integrations/types.d.ts +14 -0
- package/dist/lib/map/integrations/types.js +1 -0
- package/dist/lib/map/map.svelte.d.ts +14 -0
- package/dist/lib/map/map.svelte.js +48 -50
- package/dist/lib/map/utils.d.ts +7 -0
- package/dist/lib/map/utils.js +32 -29
- package/dist/lib/monitors/components/MonitorClusterTooltip.svelte +112 -0
- package/dist/lib/monitors/components/MonitorClusterTooltip.svelte.d.ts +7 -0
- package/dist/lib/monitors/components/MonitorMarkersLegend.svelte +41 -0
- package/dist/lib/monitors/components/MonitorMarkersLegend.svelte.d.ts +3 -0
- package/dist/lib/monitors/components/MonitorSubscriptionManager.svelte +128 -0
- package/dist/lib/monitors/components/MonitorSubscriptionManager.svelte.d.ts +6 -0
- package/dist/lib/monitors/components/MonitorTooltip.svelte +61 -0
- package/dist/lib/monitors/components/MonitorTooltip.svelte.d.ts +7 -0
- package/dist/lib/monitors/components/MonitorWidgetModal.svelte +100 -0
- package/dist/lib/monitors/components/MonitorWidgetModal.svelte.d.ts +6 -0
- package/dist/lib/monitors/components/MonitorsDisplayOptions.svelte +79 -0
- package/dist/lib/monitors/components/MonitorsDisplayOptions.svelte.d.ts +3 -0
- package/dist/lib/monitors/monitor-utils.d.ts +4 -0
- package/dist/lib/monitors/monitor-utils.js +33 -23
- package/dist/lib/monitors/monitors-cluster-renderer.d.ts +33 -0
- package/dist/lib/monitors/monitors-cluster-renderer.js +218 -209
- package/dist/lib/monitors/monitors-icon-manager.svelte.d.ts +13 -0
- package/dist/lib/monitors/monitors-icon-manager.svelte.js +75 -70
- package/dist/lib/monitors/monitors-map-integration.svelte.d.ts +40 -0
- package/dist/lib/monitors/monitors-map-integration.svelte.js +278 -270
- package/dist/lib/monitors/monitors.svelte.d.ts +16 -0
- package/dist/lib/monitors/monitors.svelte.js +38 -63
- package/dist/lib/monitors/types.d.ts +26 -0
- package/dist/lib/monitors/types.js +1 -0
- package/dist/lib/reactivity.svelte.d.ts +0 -0
- package/dist/lib/reactivity.svelte.js +83 -0
- package/dist/lib/router-context.d.ts +27 -0
- package/dist/lib/router-context.js +11 -11
- package/dist/lib/routes.d.ts +2 -0
- package/dist/lib/routes.js +10 -9
- package/dist/lib/search/Search.svelte +189 -0
- package/dist/lib/search/Search.svelte.d.ts +3 -0
- package/dist/lib/search/service.d.ts +17 -0
- package/dist/lib/search/service.js +75 -85
- package/dist/lib/utils.d.ts +13 -0
- package/dist/lib/utils.js +10 -12
- package/dist/lib/weather.d.ts +1 -0
- package/dist/lib/weather.js +11 -7
- package/dist/lib/wind/wind.svelte.d.ts +10 -0
- package/dist/lib/wind/wind.svelte.js +13 -21
- package/package.json +9 -7
- package/src/lib/LoadScreen.svelte +3 -3
- package/src/lib/hms/components/HMSFireLegend.svelte +1 -1
- package/src/lib/hms/hms.svelte.ts +8 -9
- package/src/lib/index.ts +18 -0
- package/src/lib/routes.ts +6 -1
- package/src/lib/utils.ts +1 -1
- package/dist/lib/LoadScreen.js +0 -73
- package/dist/lib/MainMapView.js +0 -7
- package/dist/lib/MapLegend.js +0 -13
- package/dist/lib/MonitorDetailPanel.js +0 -169
- package/dist/lib/MonitorMapLayout.js +0 -91
- package/dist/lib/_virtual/_rolldown/runtime.js +0 -11
- package/dist/lib/assets/logos/airgradient-blue.js +0 -4
- package/dist/lib/assets/logos/airnow-compact.js +0 -4
- package/dist/lib/assets/logos/carb-compact.js +0 -4
- package/dist/lib/assets/logos/purpleair-compact.js +0 -4
- package/dist/lib/assets/logos/sjvair.js +0 -4
- package/dist/lib/collocation-sites/CollocationTooltip.js +0 -105
- package/dist/lib/components/DataBox.js +0 -30
- package/dist/lib/components/DisplayOption.js +0 -10
- package/dist/lib/components/MapLayersDisplayOptions.js +0 -87
- package/dist/lib/components/SegmentedControl.js +0 -37
- package/dist/lib/components/ToggleSwitch.js +0 -17
- package/dist/lib/components/ui/button/button.js +0 -34
- package/dist/lib/components/ui/range-calendar/range-calendar-caption.js +0 -82
- package/dist/lib/components/ui/range-calendar/range-calendar-cell.js +0 -35
- package/dist/lib/components/ui/range-calendar/range-calendar-day.js +0 -35
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-body.js +0 -27
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-head.js +0 -27
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-row.js +0 -35
- package/dist/lib/components/ui/range-calendar/range-calendar-grid.js +0 -35
- package/dist/lib/components/ui/range-calendar/range-calendar-head-cell.js +0 -35
- package/dist/lib/components/ui/range-calendar/range-calendar-header.js +0 -35
- package/dist/lib/components/ui/range-calendar/range-calendar-month-select.js +0 -61
- package/dist/lib/components/ui/range-calendar/range-calendar-month.js +0 -25
- package/dist/lib/components/ui/range-calendar/range-calendar-months.js +0 -25
- package/dist/lib/components/ui/range-calendar/range-calendar-nav.js +0 -25
- package/dist/lib/components/ui/range-calendar/range-calendar-next-button.js +0 -58
- package/dist/lib/components/ui/range-calendar/range-calendar-prev-button.js +0 -58
- package/dist/lib/components/ui/range-calendar/range-calendar-year-select.js +0 -59
- package/dist/lib/components/ui/range-calendar/range-calendar.js +0 -272
- package/dist/lib/data-chart/DataChart.js +0 -142
- package/dist/lib/ev-stations/components/EvStationClusterTooltip.js +0 -16
- package/dist/lib/ev-stations/components/EvStationTooltip.js +0 -120
- package/dist/lib/ev-stations/components/EvStationsDisplayOptions.js +0 -41
- package/dist/lib/hms/components/HMSFireLegend.js +0 -35
- package/dist/lib/map/Map.js +0 -14
- package/dist/lib/map/MapStyleDisplayOptions.js +0 -43
- package/dist/lib/map/Menu.js +0 -44
- package/dist/lib/monitors/components/MonitorClusterTooltip.js +0 -83
- package/dist/lib/monitors/components/MonitorMarkersLegend.js +0 -35
- package/dist/lib/monitors/components/MonitorSubscriptionManager.js +0 -104
- package/dist/lib/monitors/components/MonitorTooltip.js +0 -59
- package/dist/lib/monitors/components/MonitorWidgetModal.js +0 -40
- package/dist/lib/monitors/components/MonitorsDisplayOptions.js +0 -76
- package/dist/lib/search/Search.js +0 -124
- package/dist/lib/sjvair-air.avif +0 -0
- package/dist/lib/sjvair-air.png +0 -0
- package/dist/lib/sjvair-air.webp +0 -0
- package/dist/lib/sjvair-air2.avif +0 -0
- package/dist/lib/sjvair-air2.png +0 -0
- package/dist/lib/sjvair-air2.webp +0 -0
- package/dist/lib/sjvair-icon.avif +0 -0
- package/dist/lib/sjvair-icon.png +0 -0
- package/dist/lib/sjvair-icon.webp +0 -0
- package/dist/lib/sjvair-icon2.avif +0 -0
- package/dist/lib/sjvair-icon2.png +0 -0
- package/dist/lib/sjvair-icon2.webp +0 -0
- package/dist/lib/sjvair-sjv.avif +0 -0
- package/dist/lib/sjvair-sjv.png +0 -0
- package/dist/lib/sjvair-sjv.webp +0 -0
- package/dist/lib/sjvair-sjv2.avif +0 -0
- package/dist/lib/sjvair-sjv2.png +0 -0
- package/dist/lib/sjvair-sjv2.webp +0 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { EvStationClusterMapFeature } from "../types";
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
feature: EvStationClusterMapFeature;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const { feature }: Props = $props();
|
|
9
|
+
|
|
10
|
+
const levelLabel = $derived(feature.source.includes("lvl2") ? "Level 2" : "Level 3");
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<div class="flex flex-col gap-1 p-1">
|
|
14
|
+
<p class="font-semibold">{levelLabel} Chargers</p>
|
|
15
|
+
<p class="text-sm">{feature.properties.point_count} stations</p>
|
|
16
|
+
</div>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { EvStationClusterMapFeature } from "../types";
|
|
2
|
+
interface Props {
|
|
3
|
+
feature: EvStationClusterMapFeature;
|
|
4
|
+
}
|
|
5
|
+
declare const EvStationClusterTooltip: import("svelte").Component<Props, {}, "">;
|
|
6
|
+
type EvStationClusterTooltip = ReturnType<typeof EvStationClusterTooltip>;
|
|
7
|
+
export default EvStationClusterTooltip;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import CreditCard from "@lucide/svelte/icons/credit-card";
|
|
3
|
+
import Zap from "@lucide/svelte/icons/zap";
|
|
4
|
+
import type { EvStationMapFeature } from "../types";
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
feature: EvStationMapFeature;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { feature }: Props = $props();
|
|
11
|
+
|
|
12
|
+
const computed = $derived.by(() => {
|
|
13
|
+
const p = feature.properties;
|
|
14
|
+
|
|
15
|
+
const connectors: string[] = JSON.parse(p.ev_connector_types || "[]");
|
|
16
|
+
|
|
17
|
+
const cards: string[] = p.cards_accepted
|
|
18
|
+
? p.cards_accepted.split(",").map((c) => c.trim())
|
|
19
|
+
: [];
|
|
20
|
+
|
|
21
|
+
const hours: string[] = (() => {
|
|
22
|
+
if (!p.access_days_time) return [];
|
|
23
|
+
const delimiter = p.access_days_time.includes("|") ? "|" : ";";
|
|
24
|
+
return p.access_days_time.split(delimiter).map((line) => {
|
|
25
|
+
const trimmed = line.trim();
|
|
26
|
+
return trimmed.charAt(0).toUpperCase() + trimmed.slice(1);
|
|
27
|
+
});
|
|
28
|
+
})();
|
|
29
|
+
|
|
30
|
+
const pricingLines: string[] = (() => {
|
|
31
|
+
if (!p.ev_pricing) return [];
|
|
32
|
+
return p.ev_pricing.split(";").flatMap((segment) =>
|
|
33
|
+
segment
|
|
34
|
+
.split("and")
|
|
35
|
+
.map((part) => part.trim())
|
|
36
|
+
.filter(Boolean)
|
|
37
|
+
);
|
|
38
|
+
})();
|
|
39
|
+
|
|
40
|
+
const mapsUrl: string = (() => {
|
|
41
|
+
if (!p.street_address || !p.city || !p.state || !p.zip) return "";
|
|
42
|
+
return `https://maps.google.com/?q=${p.street_address}+${p.city},+${p.state}+${p.zip}`;
|
|
43
|
+
})();
|
|
44
|
+
|
|
45
|
+
return { p, connectors, cards, hours, pricingLines, mapsUrl };
|
|
46
|
+
});
|
|
47
|
+
</script>
|
|
48
|
+
|
|
49
|
+
<div class="flex max-w-xs flex-col gap-2 p-1">
|
|
50
|
+
<p class="text-center text-lg font-bold">{computed.p.station_name}</p>
|
|
51
|
+
|
|
52
|
+
{#if computed.p.facility_type || computed.p.ev_network}
|
|
53
|
+
<div class="flex flex-wrap justify-center gap-2">
|
|
54
|
+
{#if computed.p.facility_type}
|
|
55
|
+
<span class="rounded bg-blue-500 px-2 py-0.5 text-xs text-white"
|
|
56
|
+
>{computed.p.facility_type}</span
|
|
57
|
+
>
|
|
58
|
+
{/if}
|
|
59
|
+
{#if computed.p.ev_network}
|
|
60
|
+
<span class="rounded bg-blue-500 px-2 py-0.5 text-xs text-white"
|
|
61
|
+
>{computed.p.ev_network}</span
|
|
62
|
+
>
|
|
63
|
+
{/if}
|
|
64
|
+
</div>
|
|
65
|
+
{/if}
|
|
66
|
+
|
|
67
|
+
<div class="flex gap-4">
|
|
68
|
+
<div class="flex flex-col gap-1">
|
|
69
|
+
{#if computed.p.station_phone}
|
|
70
|
+
<a href="tel:+1{computed.p.station_phone}" class="text-sm underline"
|
|
71
|
+
>{computed.p.station_phone}</a
|
|
72
|
+
>
|
|
73
|
+
{/if}
|
|
74
|
+
{#if computed.mapsUrl}
|
|
75
|
+
<a href={computed.mapsUrl} target="_blank" class="text-sm leading-tight underline">
|
|
76
|
+
{computed.p.street_address}<br />{computed.p.city}, {computed.p.state}
|
|
77
|
+
{computed.p.zip}
|
|
78
|
+
</a>
|
|
79
|
+
{/if}
|
|
80
|
+
</div>
|
|
81
|
+
{#if computed.hours.length}
|
|
82
|
+
<div class="flex flex-col text-sm">
|
|
83
|
+
{#each computed.hours as line, i (i)}
|
|
84
|
+
<p>{line}</p>
|
|
85
|
+
{/each}
|
|
86
|
+
</div>
|
|
87
|
+
{/if}
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
{#if computed.p.access_detail_code}
|
|
91
|
+
<span class="w-fit rounded bg-red-500 px-2 py-0.5 text-xs text-white">
|
|
92
|
+
{computed.p.access_detail_code}
|
|
93
|
+
</span>
|
|
94
|
+
{/if}
|
|
95
|
+
|
|
96
|
+
{#if computed.cards.length}
|
|
97
|
+
<div class="flex flex-wrap gap-1">
|
|
98
|
+
{#each computed.cards as card, i (i)}
|
|
99
|
+
<span class="flex items-center gap-1 rounded border px-1.5 py-0.5 text-xs">
|
|
100
|
+
<CreditCard class="size-3.5" />
|
|
101
|
+
{card}
|
|
102
|
+
</span>
|
|
103
|
+
{/each}
|
|
104
|
+
</div>
|
|
105
|
+
{/if}
|
|
106
|
+
|
|
107
|
+
{#if computed.connectors.length}
|
|
108
|
+
<div class="flex flex-wrap gap-1">
|
|
109
|
+
{#each computed.connectors as connector, i (i)}
|
|
110
|
+
<span
|
|
111
|
+
class="flex items-center gap-1 rounded bg-green-600 px-1.5 py-0.5 text-xs font-semibold text-white"
|
|
112
|
+
>
|
|
113
|
+
<Zap class="size-3.5" />
|
|
114
|
+
{connector}
|
|
115
|
+
</span>
|
|
116
|
+
{/each}
|
|
117
|
+
</div>
|
|
118
|
+
{/if}
|
|
119
|
+
|
|
120
|
+
{#if computed.pricingLines.length}
|
|
121
|
+
<div class="text-sm">
|
|
122
|
+
{#each computed.pricingLines as line, i (i)}
|
|
123
|
+
<p>{line}</p>
|
|
124
|
+
{/each}
|
|
125
|
+
</div>
|
|
126
|
+
{/if}
|
|
127
|
+
</div>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { EvStationMapFeature } from "../types";
|
|
2
|
+
interface Props {
|
|
3
|
+
feature: EvStationMapFeature;
|
|
4
|
+
}
|
|
5
|
+
declare const EvStationTooltip: import("svelte").Component<Props, {}, "">;
|
|
6
|
+
type EvStationTooltip = ReturnType<typeof EvStationTooltip>;
|
|
7
|
+
export default EvStationTooltip;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import DisplayOption from "../../components/DisplayOption.svelte";
|
|
3
|
+
import ToggleSwitch from "../../components/ToggleSwitch.svelte";
|
|
4
|
+
import { evStationsMapIntegration } from "../ev-stations-map-integration.svelte";
|
|
5
|
+
|
|
6
|
+
const { displayOptions } = evStationsMapIntegration;
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<DisplayOption>
|
|
10
|
+
<p class="whitespace-nowrap text-lg font-bold underline">EV Stations</p>
|
|
11
|
+
<div class="mb-2 w-full text-xs">
|
|
12
|
+
<div class="w-fit">
|
|
13
|
+
<ToggleSwitch
|
|
14
|
+
id="ev-clusters"
|
|
15
|
+
label="Marker Clusters"
|
|
16
|
+
bind:value={evStationsMapIntegration.clustered}
|
|
17
|
+
/>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
<label for="ev-lvl2" class="flex gap-1 cursor-pointer select-none whitespace-nowrap">
|
|
21
|
+
<input
|
|
22
|
+
type="checkbox"
|
|
23
|
+
id="ev-lvl2"
|
|
24
|
+
bind:checked={evStationsMapIntegration.displayOptions.lvl2.value}
|
|
25
|
+
/>
|
|
26
|
+
<img
|
|
27
|
+
class="w-5"
|
|
28
|
+
src={displayOptions.lvl2.icon!.image.src}
|
|
29
|
+
alt={displayOptions.lvl2.icon!.image.alt}
|
|
30
|
+
/>
|
|
31
|
+
Level 2
|
|
32
|
+
</label>
|
|
33
|
+
<label for="ev-lvl3" class="flex gap-1 cursor-pointer select-none whitespace-nowrap">
|
|
34
|
+
<input
|
|
35
|
+
type="checkbox"
|
|
36
|
+
id="ev-lvl3"
|
|
37
|
+
bind:checked={evStationsMapIntegration.displayOptions.lvl3.value}
|
|
38
|
+
/>
|
|
39
|
+
<img
|
|
40
|
+
class="w-5"
|
|
41
|
+
src={displayOptions.lvl3.icon!.image.src}
|
|
42
|
+
alt={displayOptions.lvl3.icon!.image.alt}
|
|
43
|
+
/>
|
|
44
|
+
Level 3
|
|
45
|
+
</label>
|
|
46
|
+
</DisplayOption>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
2
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
+
$$bindings?: Bindings;
|
|
4
|
+
} & Exports;
|
|
5
|
+
(internal: unknown, props: {
|
|
6
|
+
$$events?: Events;
|
|
7
|
+
$$slots?: Slots;
|
|
8
|
+
}): Exports & {
|
|
9
|
+
$set?: any;
|
|
10
|
+
$on?: any;
|
|
11
|
+
};
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
13
|
+
}
|
|
14
|
+
declare const EvStationsDisplayOptions: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
15
|
+
[evt: string]: CustomEvent<any>;
|
|
16
|
+
}, {}, {}, string>;
|
|
17
|
+
type EvStationsDisplayOptions = InstanceType<typeof EvStationsDisplayOptions>;
|
|
18
|
+
export default EvStationsDisplayOptions;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const accessDetailCodeTypes: Map<any, any>;
|
|
2
|
+
export declare const creditCardTypes: Map<any, any>;
|
|
3
|
+
export declare const evConnectorTypes: Map<any, any>;
|
|
4
|
+
export declare const evNetworkTypes: Map<any, any>;
|
|
5
|
+
export declare const facilityTypes: Map<any, any>;
|
|
@@ -1,4 +1,152 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
export const accessDetailCodeTypes = new Map()
|
|
2
|
+
.set("CALL", "Call ahead")
|
|
3
|
+
.set("KEY_AFTER_HOURS", "Card key after hours")
|
|
4
|
+
.set("KEY_ALWAYS", "Card key at all times")
|
|
5
|
+
.set("CREDIT_CARD_AFTER_HOURS", "Credit card after hours")
|
|
6
|
+
.set("CREDIT_CARD_ALWAYS", "Credit card at all times")
|
|
7
|
+
.set("FLEET", "Fleet customers only")
|
|
8
|
+
.set("GOVERNMENT", "Government only")
|
|
9
|
+
.set("LIMITED_HOURS", "Limited hours")
|
|
10
|
+
.set("RESIDENTIAL", "Residential");
|
|
11
|
+
export const creditCardTypes = new Map()
|
|
12
|
+
.set("all", "All")
|
|
13
|
+
.set("A", "American Express")
|
|
14
|
+
.set("CREDIT", "Credit")
|
|
15
|
+
.set("Debit", "Debit")
|
|
16
|
+
.set("D", "Discover")
|
|
17
|
+
.set("M", "MasterCard")
|
|
18
|
+
.set("V", "Visa")
|
|
19
|
+
.set("Cash", "Cash")
|
|
20
|
+
.set("Checks", "Check")
|
|
21
|
+
.set("ACCOUNT_BALANCE", "Account Balance")
|
|
22
|
+
.set("ALLIANCE", "Alliance AutoGas")
|
|
23
|
+
.set("ANDROID_PAY", "Android Pay")
|
|
24
|
+
.set("APPLE_PAY", "Apple Pay")
|
|
25
|
+
.set("ARI", "ARI")
|
|
26
|
+
.set("CleanEnergy", "Clean Energy")
|
|
27
|
+
.set("Comdata", "Comdata")
|
|
28
|
+
.set("CFN", "Commercial Fueling Network")
|
|
29
|
+
.set("EFS", "EFS")
|
|
30
|
+
.set("FleetOne", "Fleet One")
|
|
31
|
+
.set("FuelMan", "Fuelman")
|
|
32
|
+
.set("GasCard", "GASCARD")
|
|
33
|
+
.set("PacificPride", "Pacific Pride")
|
|
34
|
+
.set("PHH", "PHH")
|
|
35
|
+
.set("Proprietor", "Proprietor Fleet Card")
|
|
36
|
+
.set("Speedway", "Speedway")
|
|
37
|
+
.set("SuperPass", "SuperPass")
|
|
38
|
+
.set("TCH", "TCH")
|
|
39
|
+
.set("Tchek", "T-Chek T-Card")
|
|
40
|
+
.set("Trillium", "Trillium")
|
|
41
|
+
.set("Voyager", "Voyager")
|
|
42
|
+
.set("Wright_Exp", "WEX");
|
|
43
|
+
export const evConnectorTypes = new Map()
|
|
44
|
+
.set("NEMA1450", "NEMA 14-50")
|
|
45
|
+
.set("NEMA515", "NEMA 5-15")
|
|
46
|
+
.set("NEMA520", "NEMA 5-20")
|
|
47
|
+
.set("J1772", "J1772")
|
|
48
|
+
.set("J1772COMBO", "CCS")
|
|
49
|
+
.set("CHADEMO", "CHAdeMO")
|
|
50
|
+
.set("TESLA", "Tesla");
|
|
51
|
+
export const evNetworkTypes = new Map()
|
|
52
|
+
.set("AddÉnergie Technologies", "AddÉnergie")
|
|
53
|
+
.set("AMPUP", "AmpUp")
|
|
54
|
+
.set("BCHYDRO", "BC Hydro")
|
|
55
|
+
.set("Blink Network", "Blink")
|
|
56
|
+
.set("CHARGELAB", "ChargeLab")
|
|
57
|
+
.set("ChargePoint Network", "ChargePoint")
|
|
58
|
+
.set("Circuit électrique", "Circuit électrique")
|
|
59
|
+
.set("eCharge Network", "eCharge Network")
|
|
60
|
+
.set("Electrify America", "Electrify America")
|
|
61
|
+
.set("Electrify Canada", "Electrify Canada")
|
|
62
|
+
.set("EVCS", "EV Charging Solutions")
|
|
63
|
+
.set("EV Connect", "EV Connect")
|
|
64
|
+
.set("EVGATEWAY", "evGateway")
|
|
65
|
+
.set("eVgo Network", "EVgo")
|
|
66
|
+
.set("EVRANGE", "EV Range")
|
|
67
|
+
.set("FLO", "FLO")
|
|
68
|
+
.set("FPLEV", "FPL EVolution")
|
|
69
|
+
.set("FCN", "Francis")
|
|
70
|
+
.set("IVY", "Ivy")
|
|
71
|
+
.set("LIVINGSTON", "Livingston Energy Group")
|
|
72
|
+
.set("Non-Networked", "Non-Networked")
|
|
73
|
+
.set("OpConnect", "OpConnect")
|
|
74
|
+
.set("PETROCAN", "Petro-Canada")
|
|
75
|
+
.set("POWERFLEX", "PowerFlex")
|
|
76
|
+
.set("RIVIAN_ADVENTURE", "Rivian Adventure Network")
|
|
77
|
+
.set("RIVIAN_WAYPOINTS", "Rivian Waypoints")
|
|
78
|
+
.set("SemaCharge Network", "SemaConnect")
|
|
79
|
+
.set("SHELL_RECHARGE", "Shell Recharge")
|
|
80
|
+
.set("Sun Country Highway", "Sun Country Highway")
|
|
81
|
+
.set("SWTCH", "Swtch Energy")
|
|
82
|
+
.set("Tesla Destination", "Tesla Destination")
|
|
83
|
+
.set("Tesla", "Tesla Supercharger")
|
|
84
|
+
.set("UNIVERSAL", "Universal EV Chargers")
|
|
85
|
+
.set("Volta", "Volta")
|
|
86
|
+
.set("Webasto", "Webasto")
|
|
87
|
+
.set("ZEFNET", "ZEF Network");
|
|
88
|
+
export const facilityTypes = new Map()
|
|
89
|
+
.set("AIRPORT", "Airport")
|
|
90
|
+
.set("ARENA", "Arena")
|
|
91
|
+
.set("AUTO_REPAIR", "Auto Repair Shop")
|
|
92
|
+
.set("BANK", "Bank")
|
|
93
|
+
.set("B_AND_B", "B&B")
|
|
94
|
+
.set("BREWERY_DISTILLERY_WINERY", "Brewery/Distillery/Winery")
|
|
95
|
+
.set("CAMPGROUND", "Campground")
|
|
96
|
+
.set("CAR_DEALER", "Car Dealer")
|
|
97
|
+
.set("CARWASH", "Carwash")
|
|
98
|
+
.set("COLLEGE_CAMPUS", "College Campus")
|
|
99
|
+
.set("CONVENIENCE_STORE", "Convenience Store")
|
|
100
|
+
.set("CONVENTION_CENTER", "Convention Center")
|
|
101
|
+
.set("COOP", "Co-Op")
|
|
102
|
+
.set("FACTORY", "Factory")
|
|
103
|
+
.set("FED_GOV", "Federal Government")
|
|
104
|
+
.set("FIRE_STATION", "Fire Station")
|
|
105
|
+
.set("FLEET_GARAGE", "Fleet Garage")
|
|
106
|
+
.set("FUEL_RESELLER", "Fuel Reseller")
|
|
107
|
+
.set("GROCERY", "Grocery Store")
|
|
108
|
+
.set("HARDWARE_STORE", "Hardware Store")
|
|
109
|
+
.set("HOSPITAL", "Hospital")
|
|
110
|
+
.set("HOTEL", "Hotel")
|
|
111
|
+
.set("INN", "Inn")
|
|
112
|
+
.set("LIBRARY", "Library")
|
|
113
|
+
.set("MIL_BASE", "Military Base")
|
|
114
|
+
.set("MOTOR_POOL", "Motor Pool")
|
|
115
|
+
.set("MULTI_UNIT_DWELLING", "Multi-Family Housing")
|
|
116
|
+
.set("MUNI_GOV", "Municipal Government")
|
|
117
|
+
.set("MUSEUM", "Museum")
|
|
118
|
+
.set("NATL_PARK", "National Park")
|
|
119
|
+
.set("OFFICE_BLDG", "Office Building")
|
|
120
|
+
.set("OTHER", "Other")
|
|
121
|
+
.set("OTHER_ENTERTAINMENT", "Other Entertainment")
|
|
122
|
+
.set("PARK", "Park")
|
|
123
|
+
.set("PARKING_GARAGE", "Parking Garage")
|
|
124
|
+
.set("PARKING_LOT", "Parking Lot")
|
|
125
|
+
.set("PAY_GARAGE", "Pay-Parking Garage")
|
|
126
|
+
.set("PAY_LOT", "Pay-Parking Lot")
|
|
127
|
+
.set("PHARMACY", "Pharmacy")
|
|
128
|
+
.set("PLACE_OF_WORSHIP", "Place of Worship")
|
|
129
|
+
.set("PRISON", "Prison")
|
|
130
|
+
.set("PUBLIC", "Public")
|
|
131
|
+
.set("REC_SPORTS_FACILITY", "Recreational Sports Facility")
|
|
132
|
+
.set("REFINERY", "Refinery")
|
|
133
|
+
.set("RENTAL_CAR_RETURN", "Rental Car Return")
|
|
134
|
+
.set("RESEARCH_FACILITY", "Research Facility/Laboratory")
|
|
135
|
+
.set("RESTAURANT", "Restaurant")
|
|
136
|
+
.set("REST_STOP", "Rest Stop")
|
|
137
|
+
.set("RETAIL", "Retail")
|
|
138
|
+
.set("RV_PARK", "RV Park")
|
|
139
|
+
.set("SCHOOL", "School")
|
|
140
|
+
.set("GAS_STATION", "Service/Gas Station")
|
|
141
|
+
.set("SHOPPING_CENTER", "Shopping Center")
|
|
142
|
+
.set("SHOPPING_MALL", "Shopping Mall")
|
|
143
|
+
.set("STADIUM", "Stadium")
|
|
144
|
+
.set("STANDALONE_STATION", "Standalone Station")
|
|
145
|
+
.set("STATE_GOV", "State/Provincial Government")
|
|
146
|
+
.set("STORAGE", "Storage Facility")
|
|
147
|
+
.set("STREET_PARKING", "Street Parking")
|
|
148
|
+
.set("TNC", "Transportation Network Company")
|
|
149
|
+
.set("TRAVEL_CENTER", "Travel Center")
|
|
150
|
+
.set("TRUCK_STOP", "Truck Stop")
|
|
151
|
+
.set("UTILITY", "Utility")
|
|
152
|
+
.set("WORKPLACE", "Workplace");
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MapIconManager } from "../map/integrations/map-icon-manager.ts";
|
|
2
|
+
export declare const EV_STATION_LEVELS: {
|
|
3
|
+
readonly lvl2: {
|
|
4
|
+
readonly bg: "rgb(62, 142, 208)";
|
|
5
|
+
readonly border: "rgb(42, 114, 174)";
|
|
6
|
+
};
|
|
7
|
+
readonly lvl3: {
|
|
8
|
+
readonly bg: "rgb(53, 73, 182)";
|
|
9
|
+
readonly border: "rgb(42, 58, 146)";
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export type EvStationLevel = keyof typeof EV_STATION_LEVELS;
|
|
13
|
+
export declare function evStationIcon(bg: string, border: string): string;
|
|
14
|
+
export declare class EvStationIconManager extends MapIconManager {
|
|
15
|
+
constructor();
|
|
16
|
+
}
|
|
@@ -1,32 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
border: "rgb(42, 114, 174)"
|
|
8
|
-
},
|
|
9
|
-
lvl3: {
|
|
10
|
-
bg: "rgb(53, 73, 182)",
|
|
11
|
-
border: "rgb(42, 58, 146)"
|
|
12
|
-
}
|
|
1
|
+
import { MapIconManager } from "../map/integrations/map-icon-manager.ts";
|
|
2
|
+
import { asDataURI } from "../map/icons.ts";
|
|
3
|
+
const EV_STATION_PATH = "m340-200 100-160h-60v-120L280-320h60v120ZM240-560h240v-200H240v200Zm0 360h240v-280H240v280Zm-80 80v-640q0-33 23.5-56.5T240-840h240q33 0 56.5 23.5T560-760v280h50q29 0 49.5 20.5T680-410v185q0 17 14 31t31 14q18 0 31.5-14t13.5-31v-375h-10q-17 0-28.5-11.5T720-640v-80h20v-60h40v60h40v-60h40v60h20v80q0 17-11.5 28.5T840-600h-10v375q0 42-30.5 73.5T725-120q-43 0-74-31.5T620-225v-185q0-5-2.5-7.5T610-420h-50v300H160Zm320-80H240h240Z";
|
|
4
|
+
export const EV_STATION_LEVELS = {
|
|
5
|
+
lvl2: { bg: "rgb(62, 142, 208)", border: "rgb(42, 114, 174)" },
|
|
6
|
+
lvl3: { bg: "rgb(53, 73, 182)", border: "rgb(42, 58, 146)" }
|
|
13
7
|
};
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
<circle cx="16" cy="16" r="14" fill="${
|
|
8
|
+
export function evStationIcon(bg, border) {
|
|
9
|
+
return `<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
|
10
|
+
<circle cx="16" cy="16" r="14" fill="${bg}" stroke="${border}" stroke-width="2"/>
|
|
17
11
|
<svg x="6" y="6" width="20" height="20" viewBox="0 -960 960 960">
|
|
18
|
-
<path d="${
|
|
12
|
+
<path d="${EV_STATION_PATH}" fill="white"/>
|
|
19
13
|
</svg>
|
|
20
14
|
</svg>`;
|
|
21
15
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
16
|
+
export class EvStationIconManager extends MapIconManager {
|
|
17
|
+
constructor() {
|
|
18
|
+
super();
|
|
19
|
+
for (const [level, colors] of Object.entries(EV_STATION_LEVELS)) {
|
|
20
|
+
const id = `ev-station-${level}`;
|
|
21
|
+
const icon = new Image(32, 32);
|
|
22
|
+
icon.src = asDataURI(evStationIcon(colors.bg, colors.border));
|
|
23
|
+
this.register(id, icon);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ClickHandler } from "../map/integrations/click-manager.ts";
|
|
2
|
+
import { TooltipManager } from "../map/integrations/tooltip.svelte.ts";
|
|
3
|
+
import type { EvStationMapFeature } from "./types.ts";
|
|
4
|
+
export interface EvStationsClusterContext {
|
|
5
|
+
referenceId: string;
|
|
6
|
+
featuresByLevel: Record<string, EvStationMapFeature[]>;
|
|
7
|
+
beforeLayer?: string;
|
|
8
|
+
tooltipManager: TooltipManager;
|
|
9
|
+
}
|
|
10
|
+
export declare class EvStationsClusterRenderer {
|
|
11
|
+
private ctx;
|
|
12
|
+
private _levels;
|
|
13
|
+
constructor(ctx: EvStationsClusterContext);
|
|
14
|
+
apply(stationClickHandler: ClickHandler): void;
|
|
15
|
+
remove(): void;
|
|
16
|
+
get unclusteredLayerIds(): string[];
|
|
17
|
+
syncFeatures(): void;
|
|
18
|
+
private makeClusterClickHandler;
|
|
19
|
+
}
|