@sjvair/monitor-map 3.0.0 → 3.0.1
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.js +73 -0
- package/dist/lib/actions.js +9 -0
- package/dist/lib/assets/icons/adjustment-horizontal.js +4 -0
- package/dist/lib/collocation-sites/CollocationTooltip.js +105 -0
- package/dist/lib/collocation-sites/collocations-icon-manager.svelte.js +21 -0
- package/dist/lib/collocation-sites/collocations-map-integration.svelte.js +84 -0
- package/dist/lib/collocation-sites/collocations.svelte.js +26 -0
- package/dist/lib/colors.js +25 -0
- package/dist/lib/components/DataBox.js +30 -0
- package/dist/lib/components/DisplayOption.js +10 -0
- package/dist/lib/components/MapLayersDisplayOptions.js +71 -0
- package/dist/lib/components/SegmentedControl.js +37 -0
- package/dist/lib/components/ToggleSwitch.js +17 -0
- package/dist/lib/components/ui/button/button.js +34 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-caption.js +79 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-cell.js +34 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-day.js +34 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-body.js +26 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-head.js +26 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-row.js +34 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid.js +34 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-head-cell.js +34 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-header.js +34 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-month-select.js +61 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-month.js +25 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-months.js +25 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-nav.js +25 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-next-button.js +57 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-prev-button.js +57 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-year-select.js +59 -0
- package/dist/lib/components/ui/range-calendar/range-calendar.js +272 -0
- package/dist/lib/data-chart/DataChart.js +142 -0
- package/dist/lib/data-chart/DateRange.js +15 -0
- package/dist/lib/data-chart/chart-utils.js +99 -0
- package/dist/lib/data-chart/data-chart.svelte.js +28 -0
- package/dist/lib/data-chart/requests.js +30 -0
- package/dist/lib/data-chart/tooltip.js +101 -0
- package/dist/lib/hms/hms-fire-icon-manager.js +39 -0
- package/dist/lib/hms/hms-fire-map-integration.svelte.js +97 -0
- package/dist/lib/hms/hms-smoke-map-integration.svelte.js +84 -0
- package/dist/lib/hms/hms.svelte.js +78 -0
- package/dist/lib/index.js +19 -0
- package/dist/lib/map/Map.js +14 -0
- package/dist/lib/map/MapStyleDisplayOptions.js +43 -0
- package/dist/lib/map/Menu.js +45 -0
- package/dist/lib/map/icons.js +31 -0
- package/dist/lib/map/integrations/base-layer-seperator.js +12 -0
- package/dist/lib/map/integrations/click-manager.js +33 -0
- package/dist/lib/map/integrations/integrations-manager.js +12 -0
- package/dist/lib/map/integrations/map-display-option.svelte.js +17 -0
- package/dist/lib/map/integrations/map-geojson-integration.svelte.js +17 -0
- package/dist/lib/map/integrations/map-icon-manager.js +43 -0
- package/dist/lib/map/integrations/map-integration.svelte.js +5 -0
- package/dist/lib/map/integrations/map-layer-integration.svelte.js +23 -0
- package/dist/lib/map/integrations/tooltip.svelte.js +81 -0
- package/dist/lib/map/map.svelte.js +51 -0
- package/dist/lib/map/utils.js +30 -0
- package/dist/lib/monitors/components/MonitorClusterTooltip.js +83 -0
- package/dist/lib/monitors/components/MonitorSubscriptionManager.js +104 -0
- package/dist/lib/monitors/components/MonitorTooltip.js +59 -0
- package/dist/lib/monitors/components/MonitorWidgetModal.js +40 -0
- package/dist/lib/monitors/components/MonitorsDisplayOptions.js +67 -0
- package/dist/lib/monitors/monitor-utils.js +26 -0
- package/dist/lib/monitors/monitors-cluster-renderer.js +212 -0
- package/dist/lib/monitors/monitors-icon-manager.svelte.js +64 -0
- package/dist/lib/monitors/monitors-map-integration.svelte.js +264 -0
- package/dist/lib/monitors/monitors.svelte.js +68 -0
- package/dist/lib/node_modules/@internationalized/date/dist/private/CalendarDate.js +122 -0
- package/dist/lib/node_modules/@internationalized/date/dist/private/DateFormatter.js +84 -0
- package/dist/lib/node_modules/@internationalized/date/dist/private/calendars/GregorianCalendar.js +91 -0
- package/dist/lib/node_modules/@internationalized/date/dist/private/conversion.js +104 -0
- package/dist/lib/node_modules/@internationalized/date/dist/private/manipulation.js +159 -0
- package/dist/lib/node_modules/@internationalized/date/dist/private/queries.js +32 -0
- package/dist/lib/node_modules/@internationalized/date/dist/private/string.js +37 -0
- package/dist/lib/node_modules/@internationalized/date/dist/private/utils.js +6 -0
- package/dist/lib/node_modules/clsx/dist/clsx.js +16 -0
- package/dist/lib/node_modules/tailwind-merge/dist/bundle-mjs.js +1723 -0
- package/dist/lib/node_modules/tailwind-variants/dist/chunk-LQJYWU4O.js +70 -0
- package/dist/lib/node_modules/tailwind-variants/dist/chunk-RZF76H2U.js +166 -0
- package/dist/lib/node_modules/tailwind-variants/dist/index.js +19 -0
- package/dist/lib/node_modules/uplot/dist/uPlot.esm.js +2147 -0
- 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
- package/dist/lib/src/MapView.js +7 -0
- package/dist/lib/src/MonitorDetailPanel.js +169 -0
- package/dist/lib/src/router.js +9 -0
- package/dist/lib/utils.js +8 -0
- package/dist/lib/weather.js +8 -0
- package/dist/lib/wind/wind.svelte.js +21 -0
- package/dist/monitor-map/MonitorDetailPanel.css +1 -0
- package/dist/monitor-map/assets/MonitorDetailPanel-DmN3xPui.js +15 -0
- package/dist/monitor-map/assets/validate-routes-CgbRa8fT.js +1 -0
- package/dist/monitor-map/inter-cyrillic-ext-wght-normal.woff2 +0 -0
- package/dist/monitor-map/inter-cyrillic-wght-normal.woff2 +0 -0
- package/dist/monitor-map/inter-greek-ext-wght-normal.woff2 +0 -0
- package/dist/monitor-map/inter-greek-wght-normal.woff2 +0 -0
- package/dist/monitor-map/inter-latin-ext-wght-normal.woff2 +0 -0
- package/dist/monitor-map/inter-latin-wght-normal.woff2 +0 -0
- package/dist/monitor-map/inter-vietnamese-wght-normal.woff2 +0 -0
- package/dist/monitor-map/lungs.svg +99 -0
- package/dist/monitor-map/sjvair-air.avif +0 -0
- package/dist/monitor-map/sjvair-air.png +0 -0
- package/dist/monitor-map/sjvair-air.webp +0 -0
- package/dist/monitor-map/sjvair-air2.avif +0 -0
- package/dist/monitor-map/sjvair-air2.png +0 -0
- package/dist/monitor-map/sjvair-air2.webp +0 -0
- package/dist/monitor-map/sjvair-icon.avif +0 -0
- package/dist/monitor-map/sjvair-icon.png +0 -0
- package/dist/monitor-map/sjvair-icon.webp +0 -0
- package/dist/monitor-map/sjvair-icon2.avif +0 -0
- package/dist/monitor-map/sjvair-icon2.png +0 -0
- package/dist/monitor-map/sjvair-icon2.webp +0 -0
- package/dist/monitor-map/sjvair-sjv.avif +0 -0
- package/dist/monitor-map/sjvair-sjv.png +0 -0
- package/dist/monitor-map/sjvair-sjv.webp +0 -0
- package/dist/monitor-map/sjvair-sjv2.avif +0 -0
- package/dist/monitor-map/sjvair-sjv2.png +0 -0
- package/dist/monitor-map/sjvair-sjv2.webp +0 -0
- package/dist/monitor-map/sjvairMonitorMap.css +1 -0
- package/dist/monitor-map/sjvairMonitorMap.js +4042 -0
- package/package.json +1 -1
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { navigate as e, route as t } from "./router.js";
|
|
2
|
+
import { monitorsManager as n } from "../monitors/monitors.svelte.js";
|
|
3
|
+
import { getCurrentLevel as r } from "../monitors/monitor-utils.js";
|
|
4
|
+
import i from "../components/DataBox.js";
|
|
5
|
+
import a from "../monitors/components/MonitorWidgetModal.js";
|
|
6
|
+
import o from "../monitors/components/MonitorSubscriptionManager.js";
|
|
7
|
+
import s from "../data-chart/DataChart.js";
|
|
8
|
+
import { fetchTempByCoords as c } from "../weather.js";
|
|
9
|
+
import { Colors as l, valueToColor as u } from "../colors.js";
|
|
10
|
+
import * as d from "svelte/internal/client";
|
|
11
|
+
import "svelte/internal/disclose-version";
|
|
12
|
+
//#region src/MonitorDetailPanel.svelte
|
|
13
|
+
var f = (e, t = d.noop, n = d.noop, r) => {
|
|
14
|
+
let i = d.derived_safe_equal(() => d.fallback(r?.(), () => ({}), !0));
|
|
15
|
+
var a = h(), o = d.child(a), s = d.sibling(o, 2), c = (e) => {
|
|
16
|
+
var t = p(), r = d.child(t, !0);
|
|
17
|
+
d.reset(t), d.template_effect(() => {
|
|
18
|
+
d.set_attribute(t, "href", d.get(i).href), d.set_text(r, n());
|
|
19
|
+
}), d.append(e, t);
|
|
20
|
+
}, l = (e) => {
|
|
21
|
+
var t = m(), r = d.child(t, !0);
|
|
22
|
+
d.reset(t), d.template_effect(() => {
|
|
23
|
+
d.set_class(t, 1, d.clsx(["text-xs whitespace-nowrap", d.get(i).labelColorClass ?? "text-black/70"])), d.set_text(r, n());
|
|
24
|
+
}), d.append(e, t);
|
|
25
|
+
};
|
|
26
|
+
d.if(s, (e) => {
|
|
27
|
+
d.get(i).href ? e(c) : e(l, -1);
|
|
28
|
+
}), d.reset(a), d.template_effect(() => {
|
|
29
|
+
d.set_class(a, 1, `flex items-center justify-center gap-1 rounded-sm border px-1 py-0.5
|
|
30
|
+
${d.get(i).bgClass ?? "bg-neutral-100" ?? ""}`), d.set_class(o, 1, d.clsx([
|
|
31
|
+
"svg-icon",
|
|
32
|
+
t(),
|
|
33
|
+
d.get(i).iconColorClass ?? "bg-black/70"
|
|
34
|
+
]));
|
|
35
|
+
}), d.append(e, a);
|
|
36
|
+
}, p = d.from_html("<a class=\"text-link text-xs\" target=\"_blank\" translate=\"no\"> </a>"), m = d.from_html("<span translate=\"no\"> </span>"), h = d.from_html("<span><span></span> <!></span>"), g = d.from_html("<h2 class=\"text-center text-3xl font-semibold\"> </h2> <div class=\"flex flex-wrap items-center justify-center gap-4\"><!> <!> <!> <!> <!></div>", 1), _ = d.from_html("<a class=\"text-link\" target=\"_blank\"> </a>"), v = d.from_html("<span> </span>"), y = d.from_html("<li><!></li>"), b = d.from_html("<div class=\"flex w-full justify-around\"><!> <!></div> <!> <!> <div class=\"w-full\"><!></div> <div class=\"w-full\"><h3 class=\"font-semibold\">Data Provided Courtesy Of:</h3> <ul></ul></div>", 1), x = d.from_html("<div class=\"flex h-full w-full flex-col overflow-y-auto bg-white\"><div class=\"flex flex-col items-center justify-center gap-8 border-b border-gray-200 p-4 shadow-lg\"><button class=\"cursor-pointer self-end rounded border border-gray-300 px-2 py-1 text-sm hover:bg-gray-50\">✕ Close</button> <!></div> <div class=\"flex flex-col items-center gap-12 overflow-y-auto p-5 pt-10\"><!></div></div>");
|
|
37
|
+
function S(p, m) {
|
|
38
|
+
d.push(m, !0);
|
|
39
|
+
let h = d.derived(() => n.latest?.get(t.params.id ?? "")), S = d.state(void 0), C = d.derived(() => {
|
|
40
|
+
if (!d.get(h) || !n.meta) return;
|
|
41
|
+
let e = n.meta.entryType(d.get(h).latest.entry_type), t = r(d.get(h).latest.value, e.asIter.levels), i = n.meta.monitorType(d.get(h).type).expected_interval;
|
|
42
|
+
return {
|
|
43
|
+
color: t?.color ?? "",
|
|
44
|
+
header: e.label,
|
|
45
|
+
subheading: `(${i} avg)`,
|
|
46
|
+
value: Math.round(parseInt(d.get(h).latest.value, 10)).toString()
|
|
47
|
+
};
|
|
48
|
+
}), w = [
|
|
49
|
+
{
|
|
50
|
+
min: -Infinity,
|
|
51
|
+
color: l.blue
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
min: 65,
|
|
55
|
+
color: l.green
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
min: 78,
|
|
59
|
+
color: l.yellow
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
min: 95,
|
|
63
|
+
color: l.red
|
|
64
|
+
}
|
|
65
|
+
];
|
|
66
|
+
d.user_effect(() => {
|
|
67
|
+
d.get(h) && d.get(h).position && c(d.get(h).position.coordinates).then((e) => {
|
|
68
|
+
d.set(S, {
|
|
69
|
+
value: `${e}°F`,
|
|
70
|
+
color: u(e, w)
|
|
71
|
+
}, !0);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
var T = x(), E = d.child(T), D = d.child(E), O = d.sibling(D, 2), k = (e) => {
|
|
75
|
+
var t = g(), n = d.first_child(t), r = d.child(n, !0);
|
|
76
|
+
d.reset(n);
|
|
77
|
+
var i = d.sibling(n, 2), a = d.child(i), o = (e) => {
|
|
78
|
+
f(e, () => "lungs", () => "SJVAir", () => ({
|
|
79
|
+
bgClass: "bg-aqua-haze",
|
|
80
|
+
iconColorClass: "bg-sky-600",
|
|
81
|
+
labelColorClass: "text-sky-600"
|
|
82
|
+
}));
|
|
83
|
+
};
|
|
84
|
+
d.if(a, (e) => {
|
|
85
|
+
d.get(h).is_sjvair && e(o);
|
|
86
|
+
});
|
|
87
|
+
var s = d.sibling(a, 2);
|
|
88
|
+
f(s, () => "rss-feed", () => d.get(h).data_source.name, () => ({ href: d.get(h).data_source.url }));
|
|
89
|
+
var c = d.sibling(s, 2);
|
|
90
|
+
f(c, () => "router", () => d.get(h).device);
|
|
91
|
+
var l = d.sibling(c, 2);
|
|
92
|
+
f(l, () => "location-on", () => d.get(h).county), f(d.sibling(l, 2), () => "location-searching", () => d.get(h).location), d.reset(i), d.template_effect(() => d.set_text(r, d.get(h).name)), d.append(e, t);
|
|
93
|
+
};
|
|
94
|
+
d.if(O, (e) => {
|
|
95
|
+
d.get(h) && e(k);
|
|
96
|
+
}), d.reset(E);
|
|
97
|
+
var A = d.sibling(E, 2), j = d.child(A), M = (e) => {
|
|
98
|
+
var t = b(), n = d.first_child(t), r = d.child(n), c = (e) => {
|
|
99
|
+
i(e, {
|
|
100
|
+
get color() {
|
|
101
|
+
return d.get(S).color;
|
|
102
|
+
},
|
|
103
|
+
header: "Temperature",
|
|
104
|
+
get value() {
|
|
105
|
+
return d.get(S).value;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
d.if(r, (e) => {
|
|
110
|
+
d.get(S) && e(c);
|
|
111
|
+
});
|
|
112
|
+
var l = d.sibling(r, 2), u = (e) => {
|
|
113
|
+
i(e, {
|
|
114
|
+
get color() {
|
|
115
|
+
return d.get(C).color;
|
|
116
|
+
},
|
|
117
|
+
get header() {
|
|
118
|
+
return d.get(C).header;
|
|
119
|
+
},
|
|
120
|
+
get subheading() {
|
|
121
|
+
return d.get(C).subheading;
|
|
122
|
+
},
|
|
123
|
+
get value() {
|
|
124
|
+
return d.get(C).value;
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
d.if(l, (e) => {
|
|
129
|
+
d.get(C) && e(u);
|
|
130
|
+
}), d.reset(n);
|
|
131
|
+
var f = d.sibling(n, 2);
|
|
132
|
+
a(f, { get monitorId() {
|
|
133
|
+
return d.get(h).id;
|
|
134
|
+
} });
|
|
135
|
+
var p = d.sibling(f, 2), m = (e) => {
|
|
136
|
+
o(e, { get monitorId() {
|
|
137
|
+
return d.get(h).id;
|
|
138
|
+
} });
|
|
139
|
+
};
|
|
140
|
+
d.if(p, (e) => {
|
|
141
|
+
globalThis.USER?.is_authenticated && e(m);
|
|
142
|
+
});
|
|
143
|
+
var g = d.sibling(p, 2);
|
|
144
|
+
s(d.child(g), { get monitor() {
|
|
145
|
+
return d.get(h);
|
|
146
|
+
} }), d.reset(g);
|
|
147
|
+
var x = d.sibling(g, 2), w = d.sibling(d.child(x), 2);
|
|
148
|
+
d.each(w, 21, () => d.get(h).data_providers, d.index, (e, t) => {
|
|
149
|
+
var n = y(), r = d.child(n), i = (e) => {
|
|
150
|
+
var n = _(), r = d.child(n, !0);
|
|
151
|
+
d.reset(n), d.template_effect(() => {
|
|
152
|
+
d.set_attribute(n, "href", d.get(t).url), d.set_text(r, d.get(t).name);
|
|
153
|
+
}), d.append(e, n);
|
|
154
|
+
}, a = (e) => {
|
|
155
|
+
var n = v(), r = d.child(n, !0);
|
|
156
|
+
d.reset(n), d.template_effect(() => d.set_text(r, d.get(t).name)), d.append(e, n);
|
|
157
|
+
};
|
|
158
|
+
d.if(r, (e) => {
|
|
159
|
+
d.get(t).url ? e(i) : e(a, -1);
|
|
160
|
+
}), d.reset(n), d.append(e, n);
|
|
161
|
+
}), d.reset(w), d.reset(x), d.append(e, t);
|
|
162
|
+
};
|
|
163
|
+
d.if(j, (e) => {
|
|
164
|
+
d.get(h) && e(M);
|
|
165
|
+
}), d.reset(A), d.reset(T), d.delegated("click", D, () => e("/")), d.append(p, T), d.pop();
|
|
166
|
+
}
|
|
167
|
+
d.delegate(["click"]);
|
|
168
|
+
//#endregion
|
|
169
|
+
export { S as default };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import e from "./MapView.js";
|
|
2
|
+
import { createRouter as t } from "sv-router";
|
|
3
|
+
//#region src/router.ts
|
|
4
|
+
var { p: n, navigate: r, isActive: i, route: a } = t({
|
|
5
|
+
"/": e,
|
|
6
|
+
"/monitor/:id": () => import("./MonitorDetailPanel.js")
|
|
7
|
+
});
|
|
8
|
+
//#endregion
|
|
9
|
+
export { r as navigate, a as route };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region src/lib/weather.ts
|
|
2
|
+
async function e(e) {
|
|
3
|
+
if (e.length !== 2) throw Error("Invalid coordinates provided for fetching temperature");
|
|
4
|
+
let t = `https://api.weather.gov/points/${e.toReversed().join(",")}`;
|
|
5
|
+
return fetch(t).then((e) => e.json()).then(async (e) => (await fetch(e.properties.forecastHourly).then((e) => e.json())).properties.periods[0].temperature);
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { e as fetchTempByCoords };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { MapLayerIntegration as e } from "../map/integrations/map-layer-integration.svelte.js";
|
|
2
|
+
import { baseLayerSeperator as t } from "../map/integrations/base-layer-seperator.js";
|
|
3
|
+
import * as n from "svelte/internal/client";
|
|
4
|
+
import { WindLayer as r } from "@maptiler/weather";
|
|
5
|
+
var i = new class extends e {
|
|
6
|
+
referenceId = "MapTiler Wind";
|
|
7
|
+
beforeLayer = t.referenceId;
|
|
8
|
+
#e = n.state(!1);
|
|
9
|
+
get enabled() {
|
|
10
|
+
return n.get(this.#e);
|
|
11
|
+
}
|
|
12
|
+
set enabled(e) {
|
|
13
|
+
n.set(this.#e, e, !0);
|
|
14
|
+
}
|
|
15
|
+
mapLayer = new r({
|
|
16
|
+
id: this.referenceId,
|
|
17
|
+
opacity: .5
|
|
18
|
+
});
|
|
19
|
+
}();
|
|
20
|
+
//#endregion
|
|
21
|
+
export { i as windMapIntegration };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@keyframes svelte-1j6xa4t-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@scope (#SJVAirMonitorMap){.backdrop.svelte-1j6xa4t{width:100%}.backdrop.expanded.svelte-1j6xa4t{z-index:9000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.chart-panel.svelte-1j6xa4t{flex-direction:column;gap:1rem;width:100%;padding:.5rem 0 1rem;display:flex;position:relative}.chart-panel.expanded.svelte-1j6xa4t{background:#fff;border-radius:.5rem;width:90%;height:68vh;padding:1rem;box-shadow:0 4px 6px -1px #0000001a}.chart-area.svelte-1j6xa4t{flex-direction:column;height:375px;display:flex}.chart-panel.expanded.svelte-1j6xa4t .chart-area:where(.svelte-1j6xa4t){flex:1;height:auto;min-height:0}.chart-canvas.svelte-1j6xa4t{flex:1;min-height:0}.spin.svelte-1j6xa4t{animation:1s linear infinite svelte-1j6xa4t-spinner;display:inline-block}}
|