@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.
Files changed (137) hide show
  1. package/dist/lib/LoadScreen.js +73 -0
  2. package/dist/lib/actions.js +9 -0
  3. package/dist/lib/assets/icons/adjustment-horizontal.js +4 -0
  4. package/dist/lib/collocation-sites/CollocationTooltip.js +105 -0
  5. package/dist/lib/collocation-sites/collocations-icon-manager.svelte.js +21 -0
  6. package/dist/lib/collocation-sites/collocations-map-integration.svelte.js +84 -0
  7. package/dist/lib/collocation-sites/collocations.svelte.js +26 -0
  8. package/dist/lib/colors.js +25 -0
  9. package/dist/lib/components/DataBox.js +30 -0
  10. package/dist/lib/components/DisplayOption.js +10 -0
  11. package/dist/lib/components/MapLayersDisplayOptions.js +71 -0
  12. package/dist/lib/components/SegmentedControl.js +37 -0
  13. package/dist/lib/components/ToggleSwitch.js +17 -0
  14. package/dist/lib/components/ui/button/button.js +34 -0
  15. package/dist/lib/components/ui/range-calendar/range-calendar-caption.js +79 -0
  16. package/dist/lib/components/ui/range-calendar/range-calendar-cell.js +34 -0
  17. package/dist/lib/components/ui/range-calendar/range-calendar-day.js +34 -0
  18. package/dist/lib/components/ui/range-calendar/range-calendar-grid-body.js +26 -0
  19. package/dist/lib/components/ui/range-calendar/range-calendar-grid-head.js +26 -0
  20. package/dist/lib/components/ui/range-calendar/range-calendar-grid-row.js +34 -0
  21. package/dist/lib/components/ui/range-calendar/range-calendar-grid.js +34 -0
  22. package/dist/lib/components/ui/range-calendar/range-calendar-head-cell.js +34 -0
  23. package/dist/lib/components/ui/range-calendar/range-calendar-header.js +34 -0
  24. package/dist/lib/components/ui/range-calendar/range-calendar-month-select.js +61 -0
  25. package/dist/lib/components/ui/range-calendar/range-calendar-month.js +25 -0
  26. package/dist/lib/components/ui/range-calendar/range-calendar-months.js +25 -0
  27. package/dist/lib/components/ui/range-calendar/range-calendar-nav.js +25 -0
  28. package/dist/lib/components/ui/range-calendar/range-calendar-next-button.js +57 -0
  29. package/dist/lib/components/ui/range-calendar/range-calendar-prev-button.js +57 -0
  30. package/dist/lib/components/ui/range-calendar/range-calendar-year-select.js +59 -0
  31. package/dist/lib/components/ui/range-calendar/range-calendar.js +272 -0
  32. package/dist/lib/data-chart/DataChart.js +142 -0
  33. package/dist/lib/data-chart/DateRange.js +15 -0
  34. package/dist/lib/data-chart/chart-utils.js +99 -0
  35. package/dist/lib/data-chart/data-chart.svelte.js +28 -0
  36. package/dist/lib/data-chart/requests.js +30 -0
  37. package/dist/lib/data-chart/tooltip.js +101 -0
  38. package/dist/lib/hms/hms-fire-icon-manager.js +39 -0
  39. package/dist/lib/hms/hms-fire-map-integration.svelte.js +97 -0
  40. package/dist/lib/hms/hms-smoke-map-integration.svelte.js +84 -0
  41. package/dist/lib/hms/hms.svelte.js +78 -0
  42. package/dist/lib/index.js +19 -0
  43. package/dist/lib/map/Map.js +14 -0
  44. package/dist/lib/map/MapStyleDisplayOptions.js +43 -0
  45. package/dist/lib/map/Menu.js +45 -0
  46. package/dist/lib/map/icons.js +31 -0
  47. package/dist/lib/map/integrations/base-layer-seperator.js +12 -0
  48. package/dist/lib/map/integrations/click-manager.js +33 -0
  49. package/dist/lib/map/integrations/integrations-manager.js +12 -0
  50. package/dist/lib/map/integrations/map-display-option.svelte.js +17 -0
  51. package/dist/lib/map/integrations/map-geojson-integration.svelte.js +17 -0
  52. package/dist/lib/map/integrations/map-icon-manager.js +43 -0
  53. package/dist/lib/map/integrations/map-integration.svelte.js +5 -0
  54. package/dist/lib/map/integrations/map-layer-integration.svelte.js +23 -0
  55. package/dist/lib/map/integrations/tooltip.svelte.js +81 -0
  56. package/dist/lib/map/map.svelte.js +51 -0
  57. package/dist/lib/map/utils.js +30 -0
  58. package/dist/lib/monitors/components/MonitorClusterTooltip.js +83 -0
  59. package/dist/lib/monitors/components/MonitorSubscriptionManager.js +104 -0
  60. package/dist/lib/monitors/components/MonitorTooltip.js +59 -0
  61. package/dist/lib/monitors/components/MonitorWidgetModal.js +40 -0
  62. package/dist/lib/monitors/components/MonitorsDisplayOptions.js +67 -0
  63. package/dist/lib/monitors/monitor-utils.js +26 -0
  64. package/dist/lib/monitors/monitors-cluster-renderer.js +212 -0
  65. package/dist/lib/monitors/monitors-icon-manager.svelte.js +64 -0
  66. package/dist/lib/monitors/monitors-map-integration.svelte.js +264 -0
  67. package/dist/lib/monitors/monitors.svelte.js +68 -0
  68. package/dist/lib/node_modules/@internationalized/date/dist/private/CalendarDate.js +122 -0
  69. package/dist/lib/node_modules/@internationalized/date/dist/private/DateFormatter.js +84 -0
  70. package/dist/lib/node_modules/@internationalized/date/dist/private/calendars/GregorianCalendar.js +91 -0
  71. package/dist/lib/node_modules/@internationalized/date/dist/private/conversion.js +104 -0
  72. package/dist/lib/node_modules/@internationalized/date/dist/private/manipulation.js +159 -0
  73. package/dist/lib/node_modules/@internationalized/date/dist/private/queries.js +32 -0
  74. package/dist/lib/node_modules/@internationalized/date/dist/private/string.js +37 -0
  75. package/dist/lib/node_modules/@internationalized/date/dist/private/utils.js +6 -0
  76. package/dist/lib/node_modules/clsx/dist/clsx.js +16 -0
  77. package/dist/lib/node_modules/tailwind-merge/dist/bundle-mjs.js +1723 -0
  78. package/dist/lib/node_modules/tailwind-variants/dist/chunk-LQJYWU4O.js +70 -0
  79. package/dist/lib/node_modules/tailwind-variants/dist/chunk-RZF76H2U.js +166 -0
  80. package/dist/lib/node_modules/tailwind-variants/dist/index.js +19 -0
  81. package/dist/lib/node_modules/uplot/dist/uPlot.esm.js +2147 -0
  82. package/dist/lib/sjvair-air.avif +0 -0
  83. package/dist/lib/sjvair-air.png +0 -0
  84. package/dist/lib/sjvair-air.webp +0 -0
  85. package/dist/lib/sjvair-air2.avif +0 -0
  86. package/dist/lib/sjvair-air2.png +0 -0
  87. package/dist/lib/sjvair-air2.webp +0 -0
  88. package/dist/lib/sjvair-icon.avif +0 -0
  89. package/dist/lib/sjvair-icon.png +0 -0
  90. package/dist/lib/sjvair-icon.webp +0 -0
  91. package/dist/lib/sjvair-icon2.avif +0 -0
  92. package/dist/lib/sjvair-icon2.png +0 -0
  93. package/dist/lib/sjvair-icon2.webp +0 -0
  94. package/dist/lib/sjvair-sjv.avif +0 -0
  95. package/dist/lib/sjvair-sjv.png +0 -0
  96. package/dist/lib/sjvair-sjv.webp +0 -0
  97. package/dist/lib/sjvair-sjv2.avif +0 -0
  98. package/dist/lib/sjvair-sjv2.png +0 -0
  99. package/dist/lib/sjvair-sjv2.webp +0 -0
  100. package/dist/lib/src/MapView.js +7 -0
  101. package/dist/lib/src/MonitorDetailPanel.js +169 -0
  102. package/dist/lib/src/router.js +9 -0
  103. package/dist/lib/utils.js +8 -0
  104. package/dist/lib/weather.js +8 -0
  105. package/dist/lib/wind/wind.svelte.js +21 -0
  106. package/dist/monitor-map/MonitorDetailPanel.css +1 -0
  107. package/dist/monitor-map/assets/MonitorDetailPanel-DmN3xPui.js +15 -0
  108. package/dist/monitor-map/assets/validate-routes-CgbRa8fT.js +1 -0
  109. package/dist/monitor-map/inter-cyrillic-ext-wght-normal.woff2 +0 -0
  110. package/dist/monitor-map/inter-cyrillic-wght-normal.woff2 +0 -0
  111. package/dist/monitor-map/inter-greek-ext-wght-normal.woff2 +0 -0
  112. package/dist/monitor-map/inter-greek-wght-normal.woff2 +0 -0
  113. package/dist/monitor-map/inter-latin-ext-wght-normal.woff2 +0 -0
  114. package/dist/monitor-map/inter-latin-wght-normal.woff2 +0 -0
  115. package/dist/monitor-map/inter-vietnamese-wght-normal.woff2 +0 -0
  116. package/dist/monitor-map/lungs.svg +99 -0
  117. package/dist/monitor-map/sjvair-air.avif +0 -0
  118. package/dist/monitor-map/sjvair-air.png +0 -0
  119. package/dist/monitor-map/sjvair-air.webp +0 -0
  120. package/dist/monitor-map/sjvair-air2.avif +0 -0
  121. package/dist/monitor-map/sjvair-air2.png +0 -0
  122. package/dist/monitor-map/sjvair-air2.webp +0 -0
  123. package/dist/monitor-map/sjvair-icon.avif +0 -0
  124. package/dist/monitor-map/sjvair-icon.png +0 -0
  125. package/dist/monitor-map/sjvair-icon.webp +0 -0
  126. package/dist/monitor-map/sjvair-icon2.avif +0 -0
  127. package/dist/monitor-map/sjvair-icon2.png +0 -0
  128. package/dist/monitor-map/sjvair-icon2.webp +0 -0
  129. package/dist/monitor-map/sjvair-sjv.avif +0 -0
  130. package/dist/monitor-map/sjvair-sjv.png +0 -0
  131. package/dist/monitor-map/sjvair-sjv.webp +0 -0
  132. package/dist/monitor-map/sjvair-sjv2.avif +0 -0
  133. package/dist/monitor-map/sjvair-sjv2.png +0 -0
  134. package/dist/monitor-map/sjvair-sjv2.webp +0 -0
  135. package/dist/monitor-map/sjvairMonitorMap.css +1 -0
  136. package/dist/monitor-map/sjvairMonitorMap.js +4042 -0
  137. 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,7 @@
1
+ import "svelte/internal/client";
2
+ import "svelte/internal/disclose-version";
3
+ import "svelte/internal/flags/legacy";
4
+ //#region src/MapView.svelte
5
+ function e(e) {}
6
+ //#endregion
7
+ export { e as default };
@@ -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
+ import e from "./node_modules/clsx/dist/clsx.js";
2
+ import { twMerge as t } from "./node_modules/tailwind-merge/dist/bundle-mjs.js";
3
+ //#region src/lib/utils.ts
4
+ function n(...n) {
5
+ return t(e(n));
6
+ }
7
+ //#endregion
8
+ export { n as cn };
@@ -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}}