@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.
Files changed (279) hide show
  1. package/dist/lib/LoadScreen.svelte +68 -0
  2. package/dist/lib/LoadScreen.svelte.d.ts +25 -0
  3. package/dist/lib/MainMapView.svelte +1 -0
  4. package/dist/lib/MainMapView.svelte.d.ts +26 -0
  5. package/dist/lib/MapLegend.svelte +15 -0
  6. package/dist/lib/MapLegend.svelte.d.ts +18 -0
  7. package/dist/lib/MonitorDetailPanel.svelte +152 -0
  8. package/dist/lib/MonitorDetailPanel.svelte.d.ts +3 -0
  9. package/dist/lib/MonitorMapLayout.svelte +193 -0
  10. package/dist/lib/MonitorMapLayout.svelte.d.ts +7 -0
  11. package/dist/lib/actions.d.ts +3 -0
  12. package/dist/lib/actions.js +12 -8
  13. package/dist/lib/assets/icons/adjustment-horizontal.svg +3 -0
  14. package/dist/lib/assets/logos/airgradient-blue.svg +63 -0
  15. package/dist/lib/assets/logos/airnow-compact.jpg +0 -0
  16. package/dist/lib/assets/logos/carb-compact.jpg +0 -0
  17. package/dist/lib/assets/logos/purpleair-compact.png +0 -0
  18. package/dist/lib/assets/logos/sjvair-parts/sjvair-air.webp +0 -0
  19. package/dist/lib/assets/logos/sjvair-parts/sjvair-icon.webp +0 -0
  20. package/dist/lib/assets/logos/sjvair-parts/sjvair-sjv.webp +0 -0
  21. package/dist/lib/assets/logos/sjvair-white.svg +115 -0
  22. package/dist/lib/assets/logos/sjvair.svg +96 -0
  23. package/dist/lib/collocation-sites/CollocationTooltip.svelte +98 -0
  24. package/dist/lib/collocation-sites/CollocationTooltip.svelte.d.ts +7 -0
  25. package/dist/lib/collocation-sites/collocation-utils.d.ts +3 -0
  26. package/dist/lib/collocation-sites/collocation-utils.js +30 -0
  27. package/dist/lib/collocation-sites/collocations-icon-manager.svelte.d.ts +7 -0
  28. package/dist/lib/collocation-sites/collocations-icon-manager.svelte.js +17 -20
  29. package/dist/lib/collocation-sites/collocations-map-integration.svelte.d.ts +18 -0
  30. package/dist/lib/collocation-sites/collocations-map-integration.svelte.js +98 -83
  31. package/dist/lib/collocation-sites/collocations.svelte.d.ts +9 -0
  32. package/dist/lib/collocation-sites/collocations.svelte.js +17 -26
  33. package/dist/lib/collocation-sites/types.d.ts +8 -0
  34. package/dist/lib/collocation-sites/types.js +1 -0
  35. package/dist/lib/colors.d.ts +17 -0
  36. package/dist/lib/colors.js +29 -23
  37. package/dist/lib/components/DataBox.svelte +29 -0
  38. package/dist/lib/components/DataBox.svelte.d.ts +9 -0
  39. package/dist/lib/components/DisplayOption.svelte +7 -0
  40. package/dist/lib/components/DisplayOption.svelte.d.ts +5 -0
  41. package/dist/lib/components/MapLayersDisplayOptions.svelte +42 -0
  42. package/dist/lib/components/MapLayersDisplayOptions.svelte.d.ts +18 -0
  43. package/dist/lib/components/SegmentedControl.svelte +61 -0
  44. package/dist/lib/components/SegmentedControl.svelte.d.ts +11 -0
  45. package/dist/lib/components/ToggleSwitch.svelte +93 -0
  46. package/dist/lib/components/ToggleSwitch.svelte.d.ts +9 -0
  47. package/dist/lib/components/ui/button/button.svelte +89 -0
  48. package/dist/lib/components/ui/button/button.svelte.d.ts +70 -0
  49. package/dist/lib/components/ui/button/index.d.ts +2 -0
  50. package/dist/lib/components/ui/button/index.js +4 -0
  51. package/dist/lib/components/ui/range-calendar/index.d.ts +19 -0
  52. package/dist/lib/components/ui/range-calendar/index.js +21 -0
  53. package/dist/lib/components/ui/range-calendar/range-calendar-caption.svelte +76 -0
  54. package/dist/lib/components/ui/range-calendar/range-calendar-caption.svelte.d.ts +19 -0
  55. package/dist/lib/components/ui/range-calendar/range-calendar-cell.svelte +19 -0
  56. package/dist/lib/components/ui/range-calendar/range-calendar-cell.svelte.d.ts +4 -0
  57. package/dist/lib/components/ui/range-calendar/range-calendar-day.svelte +36 -0
  58. package/dist/lib/components/ui/range-calendar/range-calendar-day.svelte.d.ts +4 -0
  59. package/dist/lib/components/ui/range-calendar/range-calendar-grid-body.svelte +7 -0
  60. package/dist/lib/components/ui/range-calendar/range-calendar-grid-body.svelte.d.ts +4 -0
  61. package/dist/lib/components/ui/range-calendar/range-calendar-grid-head.svelte +7 -0
  62. package/dist/lib/components/ui/range-calendar/range-calendar-grid-head.svelte.d.ts +4 -0
  63. package/dist/lib/components/ui/range-calendar/range-calendar-grid-row.svelte +12 -0
  64. package/dist/lib/components/ui/range-calendar/range-calendar-grid-row.svelte.d.ts +4 -0
  65. package/dist/lib/components/ui/range-calendar/range-calendar-grid.svelte +16 -0
  66. package/dist/lib/components/ui/range-calendar/range-calendar-grid.svelte.d.ts +4 -0
  67. package/dist/lib/components/ui/range-calendar/range-calendar-head-cell.svelte +19 -0
  68. package/dist/lib/components/ui/range-calendar/range-calendar-head-cell.svelte.d.ts +4 -0
  69. package/dist/lib/components/ui/range-calendar/range-calendar-header.svelte +19 -0
  70. package/dist/lib/components/ui/range-calendar/range-calendar-header.svelte.d.ts +4 -0
  71. package/dist/lib/components/ui/range-calendar/range-calendar-heading.svelte +16 -0
  72. package/dist/lib/components/ui/range-calendar/range-calendar-heading.svelte.d.ts +4 -0
  73. package/dist/lib/components/ui/range-calendar/range-calendar-month-select.svelte +44 -0
  74. package/dist/lib/components/ui/range-calendar/range-calendar-month-select.svelte.d.ts +4 -0
  75. package/dist/lib/components/ui/range-calendar/range-calendar-month.svelte +15 -0
  76. package/dist/lib/components/ui/range-calendar/range-calendar-month.svelte.d.ts +5 -0
  77. package/dist/lib/components/ui/range-calendar/range-calendar-months.svelte +19 -0
  78. package/dist/lib/components/ui/range-calendar/range-calendar-months.svelte.d.ts +5 -0
  79. package/dist/lib/components/ui/range-calendar/range-calendar-nav.svelte +19 -0
  80. package/dist/lib/components/ui/range-calendar/range-calendar-nav.svelte.d.ts +5 -0
  81. package/dist/lib/components/ui/range-calendar/range-calendar-next-button.svelte +36 -0
  82. package/dist/lib/components/ui/range-calendar/range-calendar-next-button.svelte.d.ts +8 -0
  83. package/dist/lib/components/ui/range-calendar/range-calendar-prev-button.svelte +36 -0
  84. package/dist/lib/components/ui/range-calendar/range-calendar-prev-button.svelte.d.ts +8 -0
  85. package/dist/lib/components/ui/range-calendar/range-calendar-year-select.svelte +43 -0
  86. package/dist/lib/components/ui/range-calendar/range-calendar-year-select.svelte.d.ts +4 -0
  87. package/dist/lib/components/ui/range-calendar/range-calendar.svelte +112 -0
  88. package/dist/lib/components/ui/range-calendar/range-calendar.svelte.d.ts +21 -0
  89. package/dist/lib/data-chart/DataChart.svelte +303 -0
  90. package/dist/lib/data-chart/DataChart.svelte.d.ts +7 -0
  91. package/dist/lib/data-chart/DateRange.d.ts +6 -0
  92. package/dist/lib/data-chart/DateRange.js +15 -14
  93. package/dist/lib/data-chart/chart-utils.d.ts +3 -0
  94. package/dist/lib/data-chart/chart-utils.js +157 -93
  95. package/dist/lib/data-chart/data-chart.svelte.d.ts +7 -0
  96. package/dist/lib/data-chart/data-chart.svelte.js +7 -28
  97. package/dist/lib/data-chart/requests.d.ts +3 -0
  98. package/dist/lib/data-chart/requests.js +36 -28
  99. package/dist/lib/data-chart/tooltip.d.ts +10 -0
  100. package/dist/lib/data-chart/tooltip.js +160 -98
  101. package/dist/lib/ev-stations/components/EvStationClusterTooltip.svelte +16 -0
  102. package/dist/lib/ev-stations/components/EvStationClusterTooltip.svelte.d.ts +7 -0
  103. package/dist/lib/ev-stations/components/EvStationTooltip.svelte +127 -0
  104. package/dist/lib/ev-stations/components/EvStationTooltip.svelte.d.ts +7 -0
  105. package/dist/lib/ev-stations/components/EvStationsDisplayOptions.svelte +46 -0
  106. package/dist/lib/ev-stations/components/EvStationsDisplayOptions.svelte.d.ts +18 -0
  107. package/dist/lib/ev-stations/data-maps.d.ts +5 -0
  108. package/dist/lib/ev-stations/data-maps.js +152 -4
  109. package/dist/lib/ev-stations/ev-station-icons.d.ts +16 -0
  110. package/dist/lib/ev-stations/ev-station-icons.js +21 -27
  111. package/dist/lib/ev-stations/ev-stations-cluster-renderer.d.ts +19 -0
  112. package/dist/lib/ev-stations/ev-stations-cluster-renderer.js +130 -117
  113. package/dist/lib/ev-stations/ev-stations-map-integration.svelte.d.ts +31 -0
  114. package/dist/lib/ev-stations/ev-stations-map-integration.svelte.js +206 -180
  115. package/dist/lib/ev-stations/ev-stations.svelte.d.ts +9 -0
  116. package/dist/lib/ev-stations/ev-stations.svelte.js +54 -32
  117. package/dist/lib/ev-stations/types.d.ts +53 -0
  118. package/dist/lib/ev-stations/types.js +1 -0
  119. package/dist/lib/ev-stations/zip-codes.d.ts +13 -0
  120. package/dist/lib/ev-stations/zip-codes.js +457 -135
  121. package/dist/lib/hms/components/HMSFireLegend.svelte +21 -0
  122. package/dist/lib/hms/components/HMSFireLegend.svelte.d.ts +18 -0
  123. package/dist/lib/hms/hms-fire-icon-manager.d.ts +5 -0
  124. package/dist/lib/hms/hms-fire-icon-manager.js +28 -37
  125. package/dist/lib/hms/hms-fire-map-integration.svelte.d.ts +23 -0
  126. package/dist/lib/hms/hms-fire-map-integration.svelte.js +94 -97
  127. package/dist/lib/hms/hms-smoke-map-integration.svelte.d.ts +19 -0
  128. package/dist/lib/hms/hms-smoke-map-integration.svelte.js +68 -84
  129. package/dist/lib/hms/hms.svelte.d.ts +19 -0
  130. package/dist/lib/hms/hms.svelte.js +225 -76
  131. package/dist/lib/index.d.ts +68 -0
  132. package/dist/lib/index.js +56 -21
  133. package/dist/lib/map/Map.svelte +13 -0
  134. package/dist/lib/map/Map.svelte.d.ts +8 -0
  135. package/dist/lib/map/MapStyleDisplayOptions.svelte +61 -0
  136. package/dist/lib/map/MapStyleDisplayOptions.svelte.d.ts +3 -0
  137. package/dist/lib/map/Menu.svelte +64 -0
  138. package/dist/lib/map/Menu.svelte.d.ts +5 -0
  139. package/dist/lib/map/icons.d.ts +7 -0
  140. package/dist/lib/map/icons.js +24 -22
  141. package/dist/lib/map/integrations/base-layer-seperator.d.ts +9 -0
  142. package/dist/lib/map/integrations/base-layer-seperator.js +11 -12
  143. package/dist/lib/map/integrations/click-manager.d.ts +14 -0
  144. package/dist/lib/map/integrations/click-manager.js +52 -33
  145. package/dist/lib/map/integrations/integrations-manager.d.ts +8 -0
  146. package/dist/lib/map/integrations/integrations-manager.js +20 -12
  147. package/dist/lib/map/integrations/map-display-option.svelte.d.ts +7 -0
  148. package/dist/lib/map/integrations/map-display-option.svelte.js +10 -18
  149. package/dist/lib/map/integrations/map-geojson-integration.svelte.d.ts +13 -0
  150. package/dist/lib/map/integrations/map-geojson-integration.svelte.js +21 -17
  151. package/dist/lib/map/integrations/map-icon-manager.d.ts +15 -0
  152. package/dist/lib/map/integrations/map-icon-manager.js +52 -46
  153. package/dist/lib/map/integrations/map-integration.svelte.d.ts +6 -0
  154. package/dist/lib/map/integrations/map-integration.svelte.js +2 -5
  155. package/dist/lib/map/integrations/map-layer-integration.svelte.d.ts +11 -0
  156. package/dist/lib/map/integrations/map-layer-integration.svelte.js +36 -23
  157. package/dist/lib/map/integrations/tooltip.svelte.d.ts +28 -0
  158. package/dist/lib/map/integrations/tooltip.svelte.js +120 -78
  159. package/dist/lib/map/integrations/types.d.ts +14 -0
  160. package/dist/lib/map/integrations/types.js +1 -0
  161. package/dist/lib/map/map.svelte.d.ts +14 -0
  162. package/dist/lib/map/map.svelte.js +48 -50
  163. package/dist/lib/map/utils.d.ts +7 -0
  164. package/dist/lib/map/utils.js +32 -29
  165. package/dist/lib/monitors/components/MonitorClusterTooltip.svelte +112 -0
  166. package/dist/lib/monitors/components/MonitorClusterTooltip.svelte.d.ts +7 -0
  167. package/dist/lib/monitors/components/MonitorMarkersLegend.svelte +41 -0
  168. package/dist/lib/monitors/components/MonitorMarkersLegend.svelte.d.ts +3 -0
  169. package/dist/lib/monitors/components/MonitorSubscriptionManager.svelte +128 -0
  170. package/dist/lib/monitors/components/MonitorSubscriptionManager.svelte.d.ts +6 -0
  171. package/dist/lib/monitors/components/MonitorTooltip.svelte +61 -0
  172. package/dist/lib/monitors/components/MonitorTooltip.svelte.d.ts +7 -0
  173. package/dist/lib/monitors/components/MonitorWidgetModal.svelte +100 -0
  174. package/dist/lib/monitors/components/MonitorWidgetModal.svelte.d.ts +6 -0
  175. package/dist/lib/monitors/components/MonitorsDisplayOptions.svelte +79 -0
  176. package/dist/lib/monitors/components/MonitorsDisplayOptions.svelte.d.ts +3 -0
  177. package/dist/lib/monitors/monitor-utils.d.ts +4 -0
  178. package/dist/lib/monitors/monitor-utils.js +33 -23
  179. package/dist/lib/monitors/monitors-cluster-renderer.d.ts +33 -0
  180. package/dist/lib/monitors/monitors-cluster-renderer.js +218 -209
  181. package/dist/lib/monitors/monitors-icon-manager.svelte.d.ts +13 -0
  182. package/dist/lib/monitors/monitors-icon-manager.svelte.js +75 -70
  183. package/dist/lib/monitors/monitors-map-integration.svelte.d.ts +40 -0
  184. package/dist/lib/monitors/monitors-map-integration.svelte.js +278 -270
  185. package/dist/lib/monitors/monitors.svelte.d.ts +16 -0
  186. package/dist/lib/monitors/monitors.svelte.js +38 -63
  187. package/dist/lib/monitors/types.d.ts +26 -0
  188. package/dist/lib/monitors/types.js +1 -0
  189. package/dist/lib/reactivity.svelte.d.ts +0 -0
  190. package/dist/lib/reactivity.svelte.js +83 -0
  191. package/dist/lib/router-context.d.ts +27 -0
  192. package/dist/lib/router-context.js +11 -11
  193. package/dist/lib/routes.d.ts +2 -0
  194. package/dist/lib/routes.js +10 -9
  195. package/dist/lib/search/Search.svelte +189 -0
  196. package/dist/lib/search/Search.svelte.d.ts +3 -0
  197. package/dist/lib/search/service.d.ts +17 -0
  198. package/dist/lib/search/service.js +75 -85
  199. package/dist/lib/utils.d.ts +13 -0
  200. package/dist/lib/utils.js +10 -12
  201. package/dist/lib/weather.d.ts +1 -0
  202. package/dist/lib/weather.js +11 -7
  203. package/dist/lib/wind/wind.svelte.d.ts +10 -0
  204. package/dist/lib/wind/wind.svelte.js +13 -21
  205. package/package.json +9 -7
  206. package/src/lib/LoadScreen.svelte +3 -3
  207. package/src/lib/hms/components/HMSFireLegend.svelte +1 -1
  208. package/src/lib/hms/hms.svelte.ts +8 -9
  209. package/src/lib/index.ts +18 -0
  210. package/src/lib/routes.ts +6 -1
  211. package/src/lib/utils.ts +1 -1
  212. package/dist/lib/LoadScreen.js +0 -73
  213. package/dist/lib/MainMapView.js +0 -7
  214. package/dist/lib/MapLegend.js +0 -13
  215. package/dist/lib/MonitorDetailPanel.js +0 -169
  216. package/dist/lib/MonitorMapLayout.js +0 -91
  217. package/dist/lib/_virtual/_rolldown/runtime.js +0 -11
  218. package/dist/lib/assets/logos/airgradient-blue.js +0 -4
  219. package/dist/lib/assets/logos/airnow-compact.js +0 -4
  220. package/dist/lib/assets/logos/carb-compact.js +0 -4
  221. package/dist/lib/assets/logos/purpleair-compact.js +0 -4
  222. package/dist/lib/assets/logos/sjvair.js +0 -4
  223. package/dist/lib/collocation-sites/CollocationTooltip.js +0 -105
  224. package/dist/lib/components/DataBox.js +0 -30
  225. package/dist/lib/components/DisplayOption.js +0 -10
  226. package/dist/lib/components/MapLayersDisplayOptions.js +0 -87
  227. package/dist/lib/components/SegmentedControl.js +0 -37
  228. package/dist/lib/components/ToggleSwitch.js +0 -17
  229. package/dist/lib/components/ui/button/button.js +0 -34
  230. package/dist/lib/components/ui/range-calendar/range-calendar-caption.js +0 -82
  231. package/dist/lib/components/ui/range-calendar/range-calendar-cell.js +0 -35
  232. package/dist/lib/components/ui/range-calendar/range-calendar-day.js +0 -35
  233. package/dist/lib/components/ui/range-calendar/range-calendar-grid-body.js +0 -27
  234. package/dist/lib/components/ui/range-calendar/range-calendar-grid-head.js +0 -27
  235. package/dist/lib/components/ui/range-calendar/range-calendar-grid-row.js +0 -35
  236. package/dist/lib/components/ui/range-calendar/range-calendar-grid.js +0 -35
  237. package/dist/lib/components/ui/range-calendar/range-calendar-head-cell.js +0 -35
  238. package/dist/lib/components/ui/range-calendar/range-calendar-header.js +0 -35
  239. package/dist/lib/components/ui/range-calendar/range-calendar-month-select.js +0 -61
  240. package/dist/lib/components/ui/range-calendar/range-calendar-month.js +0 -25
  241. package/dist/lib/components/ui/range-calendar/range-calendar-months.js +0 -25
  242. package/dist/lib/components/ui/range-calendar/range-calendar-nav.js +0 -25
  243. package/dist/lib/components/ui/range-calendar/range-calendar-next-button.js +0 -58
  244. package/dist/lib/components/ui/range-calendar/range-calendar-prev-button.js +0 -58
  245. package/dist/lib/components/ui/range-calendar/range-calendar-year-select.js +0 -59
  246. package/dist/lib/components/ui/range-calendar/range-calendar.js +0 -272
  247. package/dist/lib/data-chart/DataChart.js +0 -142
  248. package/dist/lib/ev-stations/components/EvStationClusterTooltip.js +0 -16
  249. package/dist/lib/ev-stations/components/EvStationTooltip.js +0 -120
  250. package/dist/lib/ev-stations/components/EvStationsDisplayOptions.js +0 -41
  251. package/dist/lib/hms/components/HMSFireLegend.js +0 -35
  252. package/dist/lib/map/Map.js +0 -14
  253. package/dist/lib/map/MapStyleDisplayOptions.js +0 -43
  254. package/dist/lib/map/Menu.js +0 -44
  255. package/dist/lib/monitors/components/MonitorClusterTooltip.js +0 -83
  256. package/dist/lib/monitors/components/MonitorMarkersLegend.js +0 -35
  257. package/dist/lib/monitors/components/MonitorSubscriptionManager.js +0 -104
  258. package/dist/lib/monitors/components/MonitorTooltip.js +0 -59
  259. package/dist/lib/monitors/components/MonitorWidgetModal.js +0 -40
  260. package/dist/lib/monitors/components/MonitorsDisplayOptions.js +0 -76
  261. package/dist/lib/search/Search.js +0 -124
  262. package/dist/lib/sjvair-air.avif +0 -0
  263. package/dist/lib/sjvair-air.png +0 -0
  264. package/dist/lib/sjvair-air.webp +0 -0
  265. package/dist/lib/sjvair-air2.avif +0 -0
  266. package/dist/lib/sjvair-air2.png +0 -0
  267. package/dist/lib/sjvair-air2.webp +0 -0
  268. package/dist/lib/sjvair-icon.avif +0 -0
  269. package/dist/lib/sjvair-icon.png +0 -0
  270. package/dist/lib/sjvair-icon.webp +0 -0
  271. package/dist/lib/sjvair-icon2.avif +0 -0
  272. package/dist/lib/sjvair-icon2.png +0 -0
  273. package/dist/lib/sjvair-icon2.webp +0 -0
  274. package/dist/lib/sjvair-sjv.avif +0 -0
  275. package/dist/lib/sjvair-sjv.png +0 -0
  276. package/dist/lib/sjvair-sjv.webp +0 -0
  277. package/dist/lib/sjvair-sjv2.avif +0 -0
  278. package/dist/lib/sjvair-sjv2.png +0 -0
  279. package/dist/lib/sjvair-sjv2.webp +0 -0
@@ -0,0 +1,115 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ viewBox="0 0 1803.3929 457.64266"
4
+ height="457.64267"
5
+ width="1803.3929"
6
+ xml:space="preserve"
7
+ id="svg92"
8
+ version="1.1"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:svg="http://www.w3.org/2000/svg"
11
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
12
+ xmlns:cc="http://creativecommons.org/ns#"
13
+ xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata
14
+ id="metadata98"><rdf:RDF><cc:Work
15
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
16
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
17
+ id="defs96"><clipPath
18
+ id="clipPath108"
19
+ clipPathUnits="userSpaceOnUse"><path
20
+ id="path106"
21
+ d="M 0,2000 H 2000 V 0 H 0 Z" /></clipPath><clipPath
22
+ id="clipPath120"
23
+ clipPathUnits="userSpaceOnUse"><path
24
+ id="path118"
25
+ d="m 413.813,993.052 h 135.83 v -79.928 h -135.83 z" /></clipPath></defs><g
26
+ transform="matrix(1.3333333,0,0,-1.3333333,-431.63719,1562.1546)"
27
+ id="g100"
28
+ style="fill:#ffffff"><g
29
+ id="g102"
30
+ style="fill:#ffffff"><g
31
+ clip-path="url(#clipPath108)"
32
+ id="g104"
33
+ style="fill:#ffffff"><g
34
+ transform="translate(630.4209,894.125)"
35
+ id="g110"
36
+ style="fill:#ffffff"><path
37
+ id="path112"
38
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
39
+ d="m 0,0 c 22.89,29.167 36.538,65.916 36.538,105.875 0,94.801 -76.814,171.616 -171.615,171.616 -94.802,0 -171.616,-76.815 -171.616,-171.616 0,-94.802 76.814,-171.616 171.616,-171.616 40.84,0 78.401,14.284 107.849,38.09 l -55.583,52.127 c -15.058,-9.699 -33.01,-15.342 -52.266,-15.342 -53.433,0 -96.742,43.309 -96.742,96.741 0,53.432 43.309,96.741 96.742,96.741 53.431,0 96.74,-43.309 96.74,-96.741 0,-20.104 -6.137,-38.795 -16.646,-54.278 z" /></g><g
40
+ id="g114"
41
+ style="fill:#ffffff"><g
42
+ id="g116"
43
+ style="fill:#ffffff" /><g
44
+ id="g128"
45
+ style="fill:#ffffff"><g
46
+ id="g126"
47
+ opacity="0.300003"
48
+ clip-path="url(#clipPath120)"
49
+ style="fill:#ffffff"><g
50
+ id="g124"
51
+ transform="translate(497.7676,913.124)"
52
+ style="fill:#ffffff"><path
53
+ id="path122"
54
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
55
+ d="m 0,0 c -12.136,0 -24.226,2.612 -34.961,7.56 -16.167,7.37 -29.824,19.723 -38.461,34.786 -6.688,11.543 -10.335,24.755 -10.533,37.582 3.454,-12.581 8.894,-23.937 16.242,-33.875 2.286,-2.994 4.817,-5.987 7.751,-9.16 0.958,-0.895 1.795,-1.714 2.63,-2.533 1.964,-1.925 3.993,-3.912 6.334,-5.573 5.686,-4.844 12.472,-9.043 20.048,-12.38 11.998,-5.444 25.399,-8.325 38.736,-8.325 2.579,0 5.188,0.106 7.754,0.319 l 5.956,0.616 2.339,0.456 c 1.2,0.243 2.402,0.486 3.622,0.685 1.858,0.25 3.66,0.769 5.4,1.268 l 0.64,0.186 c 0.704,0.22 1.378,0.4 2.055,0.576 1.298,0.346 2.64,0.702 3.948,1.264 4.204,1.331 8.262,3.101 12.376,5.164 C 48.349,15.571 44.601,12.903 40.659,10.634 31.704,5.793 24.036,2.928 16.573,1.641 11.139,0.549 5.577,0 0,0" /></g></g></g></g><g
56
+ transform="translate(545.4395,1044.3911)"
57
+ id="g130"
58
+ style="fill:#ffffff"><path
59
+ id="path132"
60
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
61
+ d="m 0,0 h -0.191 c -6.517,0 -9.528,-2.049 -13.342,-4.645 -4.369,-2.972 -9.812,-6.675 -19.932,-6.675 -10.12,0 -15.556,3.703 -19.931,6.675 C -57.211,-2.049 -60.222,0 -66.738,0 c -6.51,0 -9.528,-2.049 -13.343,-4.645 -4.368,-2.972 -9.804,-6.675 -19.925,-6.675 -2.972,0 -5.548,0.317 -7.801,0.85 2.286,3.894 4.955,7.532 7.966,10.859 6.398,0.033 9.396,2.069 13.178,4.645 4.368,2.971 9.804,6.674 19.925,6.674 10.12,0 15.562,-3.703 19.93,-6.674 3.816,-2.596 6.827,-4.645 13.343,-4.645 6.517,0 9.528,2.049 13.343,4.645 2.471,1.68 5.284,3.591 9.086,4.942 C -6.997,7.063 -3.288,3.716 0,0" /></g><g
62
+ transform="translate(561.8125,1007.9219)"
63
+ id="g134"
64
+ style="fill:#ffffff"><path
65
+ id="path136"
66
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
67
+ d="m 0,0 c -1.153,0.698 -2.214,1.417 -3.215,2.102 -3.815,2.596 -6.833,4.645 -13.349,4.645 -6.517,0 -9.528,-2.049 -13.342,-4.645 -4.369,-2.978 -9.812,-6.675 -19.932,-6.675 -10.12,0 -15.557,3.697 -19.932,6.675 -3.814,2.596 -6.825,4.645 -13.341,4.645 -6.51,0 -9.528,-2.049 -13.343,-4.645 -4.368,-2.978 -9.804,-6.675 -19.925,-6.675 -7.702,0 -12.696,2.142 -16.564,4.481 0.481,4.223 1.371,8.335 2.616,12.281 0.204,-0.138 0.408,-0.27 0.606,-0.408 3.815,-2.596 6.826,-4.645 13.342,-4.645 6.51,0 9.527,2.049 13.343,4.645 4.368,2.971 9.804,6.675 19.925,6.675 10.12,0 15.562,-3.704 19.93,-6.675 3.816,-2.596 6.827,-4.645 13.343,-4.645 6.517,0 9.527,2.049 13.343,4.645 4.375,2.971 9.81,6.675 19.931,6.675 5.33,0 9.363,-1.028 12.618,-2.432 C -1.996,10.951 -0.652,5.581 0,0" /></g><g
68
+ transform="translate(561.8193,992.1748)"
69
+ id="g138"
70
+ style="fill:#ffffff"><path
71
+ id="path140"
72
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
73
+ d="m 0,0 c -0.481,-4.224 -1.371,-8.335 -2.616,-12.282 -0.204,0.138 -0.408,0.27 -0.606,0.409 -3.815,2.596 -6.833,4.644 -13.349,4.644 -6.517,0 -9.528,-2.048 -13.342,-4.644 -4.369,-2.979 -9.812,-6.682 -19.932,-6.682 -10.12,0 -15.556,3.703 -19.931,6.682 -3.815,2.596 -6.826,4.644 -13.342,4.644 -6.51,0 -9.528,-2.048 -13.343,-4.644 -4.368,-2.979 -9.804,-6.682 -19.925,-6.682 -5.316,0 -9.349,1.022 -12.604,2.425 -1.95,5.073 -3.301,10.45 -3.953,16.037 1.16,-0.698 2.214,-1.423 3.215,-2.101 3.815,-2.596 6.827,-4.652 13.342,-4.652 6.51,0 9.528,2.056 13.343,4.652 4.368,2.971 9.804,6.674 19.925,6.674 10.12,0 15.562,-3.703 19.93,-6.674 3.816,-2.596 6.827,-4.652 13.343,-4.652 6.517,0 9.528,2.056 13.343,4.652 4.375,2.971 9.811,6.674 19.931,6.674 C -8.862,4.48 -3.868,2.332 0,0" /></g><g
74
+ transform="translate(553.0557,966.0762)"
75
+ id="g142"
76
+ style="fill:#ffffff"><path
77
+ id="path144"
78
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
79
+ d="m 0,0 c -2.286,-3.888 -4.954,-7.524 -7.959,-10.852 -6.411,-0.033 -9.409,-2.076 -13.19,-4.652 -4.37,-2.972 -9.812,-6.674 -19.932,-6.674 -10.12,0 -15.557,3.702 -19.932,6.674 -3.814,2.597 -6.825,4.652 -13.341,4.652 -6.51,0 -9.528,-2.055 -13.343,-4.652 -2.464,-1.68 -5.272,-3.584 -9.073,-4.934 -4.039,2.905 -7.742,6.252 -11.037,9.968 h 0.185 c 6.51,0 9.527,2.049 13.343,4.646 4.368,2.977 9.803,6.674 19.925,6.674 10.12,0 15.562,-3.697 19.93,-6.674 3.816,-2.597 6.826,-4.646 13.343,-4.646 6.517,0 9.527,2.049 13.343,4.646 4.375,2.977 9.81,6.674 19.93,6.674 C -4.829,0.85 -2.26,0.533 0,0" /></g><g
80
+ transform="translate(854.793,1023.6758)"
81
+ id="g146"
82
+ style="fill:#ffffff"><path
83
+ id="path148"
84
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
85
+ d="m 0,0 c -44.229,10.903 -62.927,18.067 -62.927,41.435 0,21.491 16.204,37.065 49.215,37.065 22.437,0 39.258,-5.602 63.242,-29.285 l 23.985,18.081 c -28.656,33.011 -54.831,40.49 -86.911,40.49 -49.531,0 -79.748,-26.793 -79.748,-67.282 0,-48.284 49.23,-61.064 85.665,-69.775 43.613,-10.588 61.995,-18.382 61.995,-40.805 0,-26.793 -20.56,-44.544 -59.817,-44.544 -43.299,0 -58.872,17.121 -71.953,34.257 l -23.984,-18.067 c 31.463,-39.558 62.296,-46.106 96.252,-46.106 48.914,0 89.718,25.245 89.718,74.46 C 84.732,-21.491 35.202,-8.711 0,0" /></g><g
86
+ transform="translate(1058.2002,1131.4614)"
87
+ id="g150"
88
+ style="fill:#ffffff"><path
89
+ id="path152"
90
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
91
+ d="m 0,0 v -126.469 c 0,-54.201 -34.257,-95.321 -72.884,-95.321 h -7.794 v -30.532 h 7.794 c 58.242,0 103.102,59.502 103.102,125.853 L 30.218,0 Z" /></g><g
92
+ transform="translate(1287.7705,1131.4614)"
93
+ id="g154"
94
+ style="fill:#ffffff"><path
95
+ id="path156"
96
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
97
+ d="M 0,0 -69.146,-198.737 -138.618,0 h -32.08 l 87.842,-252.322 h 26.477 L 32.093,0 Z" /></g><g
98
+ transform="translate(1438.292,984.1172)"
99
+ id="g158"
100
+ style="fill:#ffffff"><path
101
+ id="path160"
102
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
103
+ d="m 0,0 h -46.105 c -5.917,0 -10.904,-0.932 -15.259,-2.493 L -21.176,113.388 17.136,3.74 C 15.89,2.493 11.52,0 0,0 M -14.013,139.249 H -28.34 l -85.362,-244.227 h 15.889 l 26.792,76.638 c 0.63,1.246 6.232,13.397 24.614,13.397 h 46.093 c 9.355,0 16.82,1.246 22.436,4.04 l 32.695,-94.075 h 16.204 z" /></g><g
104
+ transform="translate(1544.832,1121.4897)"
105
+ id="g162"
106
+ style="fill:#ffffff"><path
107
+ id="path164"
108
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
109
+ d="m 0,0 c -6.863,0 -12.465,-5.602 -12.465,-12.451 0,-6.862 5.602,-12.465 12.465,-12.465 6.849,0 12.45,5.603 12.45,12.465 C 12.45,-5.602 6.849,0 0,0 M -7.795,-242.35 H 7.779 V -62.296 H -7.795 Z" /></g><g
110
+ transform="translate(1612.0996,990.665)"
111
+ id="g166"
112
+ style="fill:#ffffff"><path
113
+ id="path168"
114
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
115
+ d="M 0,0 V -111.525 H 15.574 V 0 c 0,29.285 21.807,52.955 48.599,52.955 V 68.528 C 28.971,68.528 0,37.38 0,0" /></g></g></g></g></svg>
@@ -0,0 +1,96 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
4
+ xmlns:cc="http://creativecommons.org/ns#"
5
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
+ xmlns:svg="http://www.w3.org/2000/svg"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ viewBox="0 0 1803.3929 457.64266"
9
+ height="457.64267"
10
+ width="1803.3929"
11
+ xml:space="preserve"
12
+ id="svg92"
13
+ version="1.1"><metadata
14
+ id="metadata98"><rdf:RDF><cc:Work
15
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
16
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
17
+ id="defs96"><clipPath
18
+ id="clipPath108"
19
+ clipPathUnits="userSpaceOnUse"><path
20
+ id="path106"
21
+ d="M 0,2000 H 2000 V 0 H 0 Z" /></clipPath><clipPath
22
+ id="clipPath120"
23
+ clipPathUnits="userSpaceOnUse"><path
24
+ id="path118"
25
+ d="m 413.813,993.052 h 135.83 v -79.928 h -135.83 z" /></clipPath></defs><g
26
+ transform="matrix(1.3333333,0,0,-1.3333333,-431.63719,1562.1546)"
27
+ id="g100"><g
28
+ id="g102"><g
29
+ clip-path="url(#clipPath108)"
30
+ id="g104"><g
31
+ transform="translate(630.4209,894.125)"
32
+ id="g110"><path
33
+ id="path112"
34
+ style="fill:#1c4482;fill-opacity:1;fill-rule:nonzero;stroke:none"
35
+ d="m 0,0 c 22.89,29.167 36.538,65.916 36.538,105.875 0,94.801 -76.814,171.616 -171.615,171.616 -94.802,0 -171.616,-76.815 -171.616,-171.616 0,-94.802 76.814,-171.616 171.616,-171.616 40.84,0 78.401,14.284 107.849,38.09 l -55.583,52.127 c -15.058,-9.699 -33.01,-15.342 -52.266,-15.342 -53.433,0 -96.742,43.309 -96.742,96.741 0,53.432 43.309,96.741 96.742,96.741 53.431,0 96.74,-43.309 96.74,-96.741 0,-20.104 -6.137,-38.795 -16.646,-54.278 z" /></g><g
36
+ id="g114"><g
37
+ id="g116" /><g
38
+ id="g128"><g
39
+ id="g126"
40
+ opacity="0.300003"
41
+ clip-path="url(#clipPath120)"><g
42
+ id="g124"
43
+ transform="translate(497.7676,913.124)"><path
44
+ id="path122"
45
+ style="fill:#1c4482;fill-opacity:1;fill-rule:nonzero;stroke:none"
46
+ d="m 0,0 c -12.136,0 -24.226,2.612 -34.961,7.56 -16.167,7.37 -29.824,19.723 -38.461,34.786 -6.688,11.543 -10.335,24.755 -10.533,37.582 3.454,-12.581 8.894,-23.937 16.242,-33.875 2.286,-2.994 4.817,-5.987 7.751,-9.16 0.958,-0.895 1.795,-1.714 2.63,-2.533 1.964,-1.925 3.993,-3.912 6.334,-5.573 5.686,-4.844 12.472,-9.043 20.048,-12.38 11.998,-5.444 25.399,-8.325 38.736,-8.325 2.579,0 5.188,0.106 7.754,0.319 l 5.956,0.616 2.339,0.456 c 1.2,0.243 2.402,0.486 3.622,0.685 1.858,0.25 3.66,0.769 5.4,1.268 l 0.64,0.186 c 0.704,0.22 1.378,0.4 2.055,0.576 1.298,0.346 2.64,0.702 3.948,1.264 4.204,1.331 8.262,3.101 12.376,5.164 C 48.349,15.571 44.601,12.903 40.659,10.634 31.704,5.793 24.036,2.928 16.573,1.641 11.139,0.549 5.577,0 0,0" /></g></g></g></g><g
47
+ transform="translate(545.4395,1044.3911)"
48
+ id="g130"><path
49
+ id="path132"
50
+ style="fill:#1fb9ef;fill-opacity:1;fill-rule:nonzero;stroke:none"
51
+ d="m 0,0 h -0.191 c -6.517,0 -9.528,-2.049 -13.342,-4.645 -4.369,-2.972 -9.812,-6.675 -19.932,-6.675 -10.12,0 -15.556,3.703 -19.931,6.675 C -57.211,-2.049 -60.222,0 -66.738,0 c -6.51,0 -9.528,-2.049 -13.343,-4.645 -4.368,-2.972 -9.804,-6.675 -19.925,-6.675 -2.972,0 -5.548,0.317 -7.801,0.85 2.286,3.894 4.955,7.532 7.966,10.859 6.398,0.033 9.396,2.069 13.178,4.645 4.368,2.971 9.804,6.674 19.925,6.674 10.12,0 15.562,-3.703 19.93,-6.674 3.816,-2.596 6.827,-4.645 13.343,-4.645 6.517,0 9.528,2.049 13.343,4.645 2.471,1.68 5.284,3.591 9.086,4.942 C -6.997,7.063 -3.288,3.716 0,0" /></g><g
52
+ transform="translate(561.8125,1007.9219)"
53
+ id="g134"><path
54
+ id="path136"
55
+ style="fill:#1fb9ef;fill-opacity:1;fill-rule:nonzero;stroke:none"
56
+ d="m 0,0 c -1.153,0.698 -2.214,1.417 -3.215,2.102 -3.815,2.596 -6.833,4.645 -13.349,4.645 -6.517,0 -9.528,-2.049 -13.342,-4.645 -4.369,-2.978 -9.812,-6.675 -19.932,-6.675 -10.12,0 -15.557,3.697 -19.932,6.675 -3.814,2.596 -6.825,4.645 -13.341,4.645 -6.51,0 -9.528,-2.049 -13.343,-4.645 -4.368,-2.978 -9.804,-6.675 -19.925,-6.675 -7.702,0 -12.696,2.142 -16.564,4.481 0.481,4.223 1.371,8.335 2.616,12.281 0.204,-0.138 0.408,-0.27 0.606,-0.408 3.815,-2.596 6.826,-4.645 13.342,-4.645 6.51,0 9.527,2.049 13.343,4.645 4.368,2.971 9.804,6.675 19.925,6.675 10.12,0 15.562,-3.704 19.93,-6.675 3.816,-2.596 6.827,-4.645 13.343,-4.645 6.517,0 9.527,2.049 13.343,4.645 4.375,2.971 9.81,6.675 19.931,6.675 5.33,0 9.363,-1.028 12.618,-2.432 C -1.996,10.951 -0.652,5.581 0,0" /></g><g
57
+ transform="translate(561.8193,992.1748)"
58
+ id="g138"><path
59
+ id="path140"
60
+ style="fill:#1fb9ef;fill-opacity:1;fill-rule:nonzero;stroke:none"
61
+ d="m 0,0 c -0.481,-4.224 -1.371,-8.335 -2.616,-12.282 -0.204,0.138 -0.408,0.27 -0.606,0.409 -3.815,2.596 -6.833,4.644 -13.349,4.644 -6.517,0 -9.528,-2.048 -13.342,-4.644 -4.369,-2.979 -9.812,-6.682 -19.932,-6.682 -10.12,0 -15.556,3.703 -19.931,6.682 -3.815,2.596 -6.826,4.644 -13.342,4.644 -6.51,0 -9.528,-2.048 -13.343,-4.644 -4.368,-2.979 -9.804,-6.682 -19.925,-6.682 -5.316,0 -9.349,1.022 -12.604,2.425 -1.95,5.073 -3.301,10.45 -3.953,16.037 1.16,-0.698 2.214,-1.423 3.215,-2.101 3.815,-2.596 6.827,-4.652 13.342,-4.652 6.51,0 9.528,2.056 13.343,4.652 4.368,2.971 9.804,6.674 19.925,6.674 10.12,0 15.562,-3.703 19.93,-6.674 3.816,-2.596 6.827,-4.652 13.343,-4.652 6.517,0 9.528,2.056 13.343,4.652 4.375,2.971 9.811,6.674 19.931,6.674 C -8.862,4.48 -3.868,2.332 0,0" /></g><g
62
+ transform="translate(553.0557,966.0762)"
63
+ id="g142"><path
64
+ id="path144"
65
+ style="fill:#1fb9ef;fill-opacity:1;fill-rule:nonzero;stroke:none"
66
+ d="m 0,0 c -2.286,-3.888 -4.954,-7.524 -7.959,-10.852 -6.411,-0.033 -9.409,-2.076 -13.19,-4.652 -4.37,-2.972 -9.812,-6.674 -19.932,-6.674 -10.12,0 -15.557,3.702 -19.932,6.674 -3.814,2.597 -6.825,4.652 -13.341,4.652 -6.51,0 -9.528,-2.055 -13.343,-4.652 -2.464,-1.68 -5.272,-3.584 -9.073,-4.934 -4.039,2.905 -7.742,6.252 -11.037,9.968 h 0.185 c 6.51,0 9.527,2.049 13.343,4.646 4.368,2.977 9.803,6.674 19.925,6.674 10.12,0 15.562,-3.697 19.93,-6.674 3.816,-2.597 6.826,-4.646 13.343,-4.646 6.517,0 9.527,2.049 13.343,4.646 4.375,2.977 9.81,6.674 19.93,6.674 C -4.829,0.85 -2.26,0.533 0,0" /></g><g
67
+ transform="translate(854.793,1023.6758)"
68
+ id="g146"><path
69
+ id="path148"
70
+ style="fill:#1c4482;fill-opacity:1;fill-rule:nonzero;stroke:none"
71
+ d="m 0,0 c -44.229,10.903 -62.927,18.067 -62.927,41.435 0,21.491 16.204,37.065 49.215,37.065 22.437,0 39.258,-5.602 63.242,-29.285 l 23.985,18.081 c -28.656,33.011 -54.831,40.49 -86.911,40.49 -49.531,0 -79.748,-26.793 -79.748,-67.282 0,-48.284 49.23,-61.064 85.665,-69.775 43.613,-10.588 61.995,-18.382 61.995,-40.805 0,-26.793 -20.56,-44.544 -59.817,-44.544 -43.299,0 -58.872,17.121 -71.953,34.257 l -23.984,-18.067 c 31.463,-39.558 62.296,-46.106 96.252,-46.106 48.914,0 89.718,25.245 89.718,74.46 C 84.732,-21.491 35.202,-8.711 0,0" /></g><g
72
+ transform="translate(1058.2002,1131.4614)"
73
+ id="g150"><path
74
+ id="path152"
75
+ style="fill:#1c4482;fill-opacity:1;fill-rule:nonzero;stroke:none"
76
+ d="m 0,0 v -126.469 c 0,-54.201 -34.257,-95.321 -72.884,-95.321 h -7.794 v -30.532 h 7.794 c 58.242,0 103.102,59.502 103.102,125.853 L 30.218,0 Z" /></g><g
77
+ transform="translate(1287.7705,1131.4614)"
78
+ id="g154"><path
79
+ id="path156"
80
+ style="fill:#1c4482;fill-opacity:1;fill-rule:nonzero;stroke:none"
81
+ d="M 0,0 -69.146,-198.737 -138.618,0 h -32.08 l 87.842,-252.322 h 26.477 L 32.093,0 Z" /></g><g
82
+ transform="translate(1438.292,984.1172)"
83
+ id="g158"><path
84
+ id="path160"
85
+ style="fill:#1fb9ef;fill-opacity:1;fill-rule:nonzero;stroke:none"
86
+ d="m 0,0 h -46.105 c -5.917,0 -10.904,-0.932 -15.259,-2.493 L -21.176,113.388 17.136,3.74 C 15.89,2.493 11.52,0 0,0 M -14.013,139.249 H -28.34 l -85.362,-244.227 h 15.889 l 26.792,76.638 c 0.63,1.246 6.232,13.397 24.614,13.397 h 46.093 c 9.355,0 16.82,1.246 22.436,4.04 l 32.695,-94.075 h 16.204 z" /></g><g
87
+ transform="translate(1544.832,1121.4897)"
88
+ id="g162"><path
89
+ id="path164"
90
+ style="fill:#1fb9ef;fill-opacity:1;fill-rule:nonzero;stroke:none"
91
+ d="m 0,0 c -6.863,0 -12.465,-5.602 -12.465,-12.451 0,-6.862 5.602,-12.465 12.465,-12.465 6.849,0 12.45,5.603 12.45,12.465 C 12.45,-5.602 6.849,0 0,0 M -7.795,-242.35 H 7.779 V -62.296 H -7.795 Z" /></g><g
92
+ transform="translate(1612.0996,990.665)"
93
+ id="g166"><path
94
+ id="path168"
95
+ style="fill:#1fb9ef;fill-opacity:1;fill-rule:nonzero;stroke:none"
96
+ d="M 0,0 V -111.525 H 15.574 V 0 c 0,29.285 21.807,52.955 48.599,52.955 V 68.528 C 28.971,68.528 0,37.38 0,0" /></g></g></g></g></svg>
@@ -0,0 +1,98 @@
1
+ <script lang="ts">
2
+ import { format, formatDistanceToNow } from "date-fns";
3
+ import DataBox from "../components/DataBox.svelte";
4
+ import type { CollocationSiteMapFeature } from "./types";
5
+ import { monitorsManager } from "../monitors/monitors.svelte";
6
+ import { getCurrentLevel } from "../monitors/monitor-utils";
7
+ import type { MonitorLatest, SJVAirEntryLevel } from "@sjvair/sdk";
8
+
9
+ interface CollocationTooltipProps {
10
+ feature: CollocationSiteMapFeature;
11
+ }
12
+
13
+ const { feature }: CollocationTooltipProps = $props();
14
+
15
+ const data = $derived.by(() => {
16
+ const collocated = monitorsManager.latest?.get(feature.properties.colocated_id);
17
+ const reference = monitorsManager.latest?.get(feature.properties.reference_id);
18
+
19
+ return {
20
+ collocated: getMonitorData(collocated),
21
+ reference: getMonitorData(reference)
22
+ };
23
+ });
24
+
25
+ function getMonitorData(monitor: MonitorLatest | undefined) {
26
+ if (!monitor || !("value" in monitor.latest) || !monitorsManager.meta) return;
27
+
28
+ const entryType = monitorsManager.meta.entryType(monitor.latest.entry_type);
29
+ const level: SJVAirEntryLevel | undefined = getCurrentLevel(
30
+ monitor.latest.value,
31
+ entryType.asIter.levels!
32
+ );
33
+
34
+ const updateDuration = monitorsManager.meta.monitorType(monitor.type).expected_interval;
35
+
36
+ return {
37
+ color: level?.color ?? "",
38
+ header: entryType.label,
39
+ date: {
40
+ formatted: format(monitor.latest.timestamp, "h:mm:aaa EEEE MMM dd, yyyy"),
41
+ diference: formatDistanceToNow(monitor.latest.timestamp, {
42
+ addSuffix: true,
43
+ includeSeconds: true
44
+ })
45
+ },
46
+ monitorName: monitor.name,
47
+ subheading: `(${updateDuration} avg)`,
48
+ value: Math.round(parseInt(monitor.latest.value, 10)).toString()
49
+ };
50
+ }
51
+ </script>
52
+
53
+ {#if data}
54
+ <div class="flex flex-col gap-4">
55
+ {#if data.reference}
56
+ <div class="flex gap-2">
57
+ <DataBox
58
+ color={data.reference.color}
59
+ header={data.reference.header}
60
+ subheading={data.reference.subheading}
61
+ value={data.reference.value}
62
+ />
63
+ <div class="flex flex-col">
64
+ <p class="leading-none">{data.reference.date.formatted}</p>
65
+ <h1 class="text-lg font-bold underline">{data.reference.monitorName}</h1>
66
+ <p class="leading-none">Reference monitor</p>
67
+ <div class="mt-auto">
68
+ <p class="text-base leading-none">Last updated</p>
69
+ <p class="text-base leading-none">{data.reference.date.diference}</p>
70
+ </div>
71
+ </div>
72
+ </div>
73
+ {:else}
74
+ <h1>Reference monitor disabled</h1>
75
+ {/if}
76
+ {#if data.collocated}
77
+ <div class="flex flex-row-reverse gap-2">
78
+ <DataBox
79
+ color={data.collocated.color}
80
+ header={data.collocated.header}
81
+ subheading={data.collocated.subheading}
82
+ value={data.collocated.value}
83
+ />
84
+ <div class="flex flex-col">
85
+ <p class="leading-none">{data.collocated.date.formatted}</p>
86
+ <h1 class="text-lg font-bold underline">{data.collocated.monitorName}</h1>
87
+ <p class="leading-none">Collocated monitor</p>
88
+ <div class="mt-auto">
89
+ <p class="text-base leading-none">Last updated</p>
90
+ <p class="text-base leading-none">{data.collocated.date.diference}</p>
91
+ </div>
92
+ </div>
93
+ </div>
94
+ {:else}
95
+ <h1>Collocated monitor disabled</h1>
96
+ {/if}
97
+ </div>
98
+ {/if}
@@ -0,0 +1,7 @@
1
+ import type { CollocationSiteMapFeature } from "./types";
2
+ interface CollocationTooltipProps {
3
+ feature: CollocationSiteMapFeature;
4
+ }
5
+ declare const CollocationTooltip: import("svelte").Component<CollocationTooltipProps, {}, "">;
6
+ type CollocationTooltip = ReturnType<typeof CollocationTooltip>;
7
+ export default CollocationTooltip;
@@ -0,0 +1,3 @@
1
+ import type { MonitorData } from "@sjvair/sdk";
2
+ export declare function getOrder(monitor: MonitorData): number;
3
+ export declare function getTypeShape(type: string): string;
@@ -0,0 +1,30 @@
1
+ export function getOrder(monitor) {
2
+ switch (monitor.type) {
3
+ case "airgradient":
4
+ return 5;
5
+ case "airnow":
6
+ return 2;
7
+ case "aqview":
8
+ return 3;
9
+ case "bam1022":
10
+ return 6;
11
+ case "purpleair":
12
+ return monitor.is_sjvair ? 4 : 1;
13
+ default:
14
+ throw new Error(`Map ordering for ${monitor.device} has not been set`);
15
+ }
16
+ }
17
+ export function getTypeShape(type) {
18
+ switch (type) {
19
+ case "airgradient":
20
+ return "circle";
21
+ case "airnow":
22
+ case "aqview":
23
+ case "bam1022":
24
+ return "triangle";
25
+ case "purpleair":
26
+ return "square";
27
+ default:
28
+ return "circle";
29
+ }
30
+ }
@@ -0,0 +1,7 @@
1
+ import { MonitorShapeIconManager } from "../monitors/monitors-icon-manager.svelte.ts";
2
+ export declare function getCollocationIconId(baseIconId: string): string;
3
+ export declare class CollocationIconManager extends MonitorShapeIconManager {
4
+ protected get idPrefix(): string;
5
+ protected get iconSize(): number;
6
+ protected transformSvg(svg: string): string;
7
+ }
@@ -1,21 +1,18 @@
1
- import { withCrosshair as e } from "../map/icons.js";
2
- import { MonitorShapeIconManager as t } from "../monitors/monitors-icon-manager.svelte.js";
3
- import "svelte/internal/client";
4
- //#region src/lib/collocation-sites/collocations-icon-manager.svelte.ts
5
- var n = "collocation", r = "#4A5FC6";
6
- function i(e) {
7
- return `${n}-${e}`;
1
+ import { CROSSHAIR_ICON_SIZE, withCrosshair } from "../map/icons.ts";
2
+ import { MonitorShapeIconManager } from "../monitors/monitors-icon-manager.svelte.ts";
3
+ const COLLOCATION_ICON_PREFIX = "collocation";
4
+ const CROSSHAIR_COLOR = "#4A5FC6";
5
+ export function getCollocationIconId(baseIconId) {
6
+ return `${COLLOCATION_ICON_PREFIX}-${baseIconId}`;
7
+ }
8
+ export class CollocationIconManager extends MonitorShapeIconManager {
9
+ get idPrefix() {
10
+ return COLLOCATION_ICON_PREFIX;
11
+ }
12
+ get iconSize() {
13
+ return CROSSHAIR_ICON_SIZE;
14
+ }
15
+ transformSvg(svg) {
16
+ return withCrosshair(svg, CROSSHAIR_COLOR);
17
+ }
8
18
  }
9
- var a = class extends t {
10
- get idPrefix() {
11
- return n;
12
- }
13
- get iconSize() {
14
- return 56;
15
- }
16
- transformSvg(t) {
17
- return e(t, r);
18
- }
19
- };
20
- //#endregion
21
- export { a as CollocationIconManager, i as getCollocationIconId };
@@ -0,0 +1,18 @@
1
+ import { type Map as MaptilerMap } from "@maptiler/sdk";
2
+ import { MapIconLayerIntegration } from "../map/integrations/map-geojson-integration.svelte.ts";
3
+ import { CollocationIconManager } from "./collocations-icon-manager.svelte.ts";
4
+ import { TooltipManager } from "../map/integrations/tooltip.svelte.ts";
5
+ import type { CollocationSiteMapFeature, CollocationSiteMarkerProperties } from "./types.ts";
6
+ declare class CollocationSitesMapIntegration extends MapIconLayerIntegration<CollocationSiteMarkerProperties> {
7
+ referenceId: string;
8
+ enabled: boolean;
9
+ icons: CollocationIconManager;
10
+ tooltipManager: TooltipManager;
11
+ features: Array<CollocationSiteMapFeature>;
12
+ mapLayer: Parameters<MaptilerMap["addLayer"]>[0];
13
+ get mapSource(): Parameters<MaptilerMap["addSource"]>[1];
14
+ constructor();
15
+ apply(): void;
16
+ }
17
+ export declare const collocationSitesMapIntegration: CollocationSitesMapIntegration;
18
+ export type { CollocationSitesMapIntegration as MonitorsMapIntegration };
@@ -1,84 +1,99 @@
1
- import { mountPopup as e } from "../map/utils.js";
2
- import { mapManager as t } from "../map/map.svelte.js";
3
- import { monitorsManager as n } from "../monitors/monitors.svelte.js";
4
- import { MapIconLayerIntegration as r } from "../map/integrations/map-geojson-integration.svelte.js";
5
- import { TooltipManager as i } from "../map/integrations/tooltip.svelte.js";
6
- import { monitorsMapIntegration as a } from "../monitors/monitors-map-integration.svelte.js";
7
- import { CollocationIconManager as o, getCollocationIconId as s } from "./collocations-icon-manager.svelte.js";
8
- import { collocationSitesManager as c } from "./collocations.svelte.js";
9
- import l from "./CollocationTooltip.js";
10
- import * as u from "svelte/internal/client";
11
- import { untrack as d } from "svelte";
12
- //#region src/lib/collocation-sites/collocations-map-integration.svelte.ts
13
- function f(t) {
14
- let n = t.features?.[0];
15
- if (n) return e(l, { feature: n }, t.lngLat);
1
+ import { mapManager } from "../map/map.svelte.ts";
2
+ import { MapIconLayerIntegration } from "../map/integrations/map-geojson-integration.svelte.ts";
3
+ import { CollocationIconManager, getCollocationIconId } from "./collocations-icon-manager.svelte.ts";
4
+ import { TooltipManager } from "../map/integrations/tooltip.svelte.ts";
5
+ import { collocationSitesManager } from "./collocations.svelte.ts";
6
+ import { monitorsManager } from "../monitors/monitors.svelte.ts";
7
+ import { monitorsMapIntegration } from "../monitors/monitors-map-integration.svelte.ts";
8
+ import { untrack } from "svelte";
9
+ import CollocationTooltip from "./CollocationTooltip.svelte";
10
+ import { mountPopup } from "../map/utils.ts";
11
+ function collocationTooltip(evt) {
12
+ const feature = evt.features?.[0];
13
+ if (!feature)
14
+ return;
15
+ return mountPopup(CollocationTooltip, { feature }, evt.lngLat);
16
16
  }
17
- var p = new class extends r {
18
- referenceId = "collocation-sites";
19
- #e = u.state(!1);
20
- get enabled() {
21
- return u.get(this.#e);
22
- }
23
- set enabled(e) {
24
- u.set(this.#e, e, !0);
25
- }
26
- icons = new o();
27
- tooltipManager = new i();
28
- #t = u.derived(() => !n.meta || !n.pollutant || !c.collocationSites || a.features.length === 0 ? [] : c.collocationSites.map((e) => {
29
- let t = a.features.find((t) => t.properties.id === e.reference_id);
30
- if (t) return {
31
- type: "Feature",
32
- properties: {
33
- icon: s(t.properties.icon),
34
- colocated_id: e.colocated_id,
35
- reference_id: e.reference_id,
36
- name: e.name
37
- },
38
- geometry: e.position
39
- };
40
- }).filter((e) => e !== void 0));
41
- get features() {
42
- return u.get(this.#t);
43
- }
44
- set features(e) {
45
- u.set(this.#t, e);
46
- }
47
- mapLayer = {
48
- id: this.referenceId,
49
- type: "symbol",
50
- source: this.referenceId,
51
- layout: {
52
- "icon-allow-overlap": !0,
53
- "icon-ignore-placement": !0,
54
- "icon-image": ["get", "icon"],
55
- "icon-size": 1
56
- },
57
- paint: {}
58
- };
59
- get mapSource() {
60
- return {
61
- type: "geojson",
62
- promoteId: "id",
63
- data: {
64
- type: "FeatureCollection",
65
- features: this.features
66
- }
67
- };
68
- }
69
- constructor() {
70
- super(), u.effect_root(() => {
71
- u.user_effect(() => {
72
- let e = this.features;
73
- !t.map || !this.enabled || t.setDataSource(this.referenceId, e);
74
- }), u.user_effect(() => {
75
- n.pollutant === "o3" ? d(() => this.remove()) : d(() => this.enabled) && d(() => this.apply());
76
- });
77
- });
78
- }
79
- apply() {
80
- t.map && (this.tooltipManager.has(this.referenceId) || this.tooltipManager.register(this.referenceId, f, 2 ** 53 - 1), this.tooltipManager.enable(), super.apply());
81
- }
82
- }();
83
- //#endregion
84
- export { p as collocationSitesMapIntegration };
17
+ class CollocationSitesMapIntegration extends MapIconLayerIntegration {
18
+ referenceId = "collocation-sites";
19
+ enabled = $state(false);
20
+ icons = new CollocationIconManager();
21
+ tooltipManager = new TooltipManager();
22
+ features = $derived.by(() => {
23
+ if (!monitorsManager.meta ||
24
+ !monitorsManager.pollutant ||
25
+ !collocationSitesManager.collocationSites ||
26
+ monitorsMapIntegration.features.length === 0) {
27
+ return [];
28
+ }
29
+ return collocationSitesManager.collocationSites
30
+ .map((c) => {
31
+ const referenceMonitorFeature = monitorsMapIntegration.features.find((m) => m.properties.id === c.reference_id);
32
+ if (!referenceMonitorFeature)
33
+ return;
34
+ const feature = {
35
+ type: "Feature",
36
+ properties: {
37
+ icon: getCollocationIconId(referenceMonitorFeature.properties.icon),
38
+ colocated_id: c.colocated_id,
39
+ reference_id: c.reference_id,
40
+ name: c.name
41
+ },
42
+ geometry: c.position
43
+ };
44
+ return feature;
45
+ })
46
+ .filter((f) => f !== undefined);
47
+ });
48
+ mapLayer = {
49
+ id: this.referenceId,
50
+ type: "symbol",
51
+ source: this.referenceId,
52
+ layout: {
53
+ "icon-allow-overlap": true,
54
+ "icon-ignore-placement": true,
55
+ "icon-image": ["get", "icon"],
56
+ "icon-size": 1
57
+ },
58
+ paint: {}
59
+ };
60
+ get mapSource() {
61
+ return {
62
+ type: "geojson",
63
+ promoteId: "id",
64
+ data: {
65
+ type: "FeatureCollection",
66
+ features: this.features
67
+ }
68
+ };
69
+ }
70
+ constructor() {
71
+ super();
72
+ $effect.root(() => {
73
+ $effect(() => {
74
+ const features = this.features;
75
+ if (!mapManager.map || !this.enabled)
76
+ return;
77
+ mapManager.setDataSource(this.referenceId, features);
78
+ });
79
+ $effect(() => {
80
+ if (monitorsManager.pollutant === "o3") {
81
+ untrack(() => this.remove());
82
+ }
83
+ else if (untrack(() => this.enabled)) {
84
+ untrack(() => this.apply());
85
+ }
86
+ });
87
+ });
88
+ }
89
+ apply() {
90
+ if (!mapManager.map)
91
+ return;
92
+ if (!this.tooltipManager.has(this.referenceId)) {
93
+ this.tooltipManager.register(this.referenceId, collocationTooltip, Number.MAX_SAFE_INTEGER);
94
+ }
95
+ this.tooltipManager.enable();
96
+ super.apply();
97
+ }
98
+ }
99
+ export const collocationSitesMapIntegration = new CollocationSitesMapIntegration();
@@ -0,0 +1,9 @@
1
+ import { type CollocationSite } from "@sjvair/sdk";
2
+ declare class CollocationSitesManager {
3
+ initialized: boolean;
4
+ collocationSites: Array<CollocationSite> | null;
5
+ init(): Promise<void>;
6
+ update(): Promise<void>;
7
+ }
8
+ export declare const collocationSitesManager: CollocationSitesManager;
9
+ export type { CollocationSitesManager };