mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
Update Environment Metrics to support latest Telemetry protobufs
This commit is contained in:
parent
d847e75437
commit
77504bb8d4
19 changed files with 1641 additions and 33 deletions
|
|
@ -12138,23 +12138,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"HUMIDITY" : {
|
||||
"extractionState" : "stale",
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "LUFTFEUCHTIGKEIT"
|
||||
}
|
||||
},
|
||||
"sr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "ВЛАЖНОСТ"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"hybrid" : {
|
||||
"extractionState" : "migrated",
|
||||
"localizations" : {
|
||||
|
|
@ -23607,6 +23590,9 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Radiation" : {
|
||||
|
||||
},
|
||||
"Radio Disconnected" : {
|
||||
"extractionState" : "manual",
|
||||
|
|
@ -28513,6 +28499,12 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Soil Moisture" : {
|
||||
|
||||
},
|
||||
"Soil Temp" : {
|
||||
|
||||
},
|
||||
"Specifies how long the monitored GPIO should output." : {
|
||||
"localizations" : {
|
||||
|
|
@ -32676,6 +32668,9 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Weight" : {
|
||||
|
||||
},
|
||||
"What does the lock mean?" : {
|
||||
"localizations" : {
|
||||
|
|
|
|||
|
|
@ -11,6 +11,15 @@
|
|||
231B3F222D087A4C0069A07D /* MetricsColumnList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 231B3F1F2D087A4C0069A07D /* MetricsColumnList.swift */; };
|
||||
231B3F252D087C3C0069A07D /* EnvironmentDefaultColumns.swift in Sources */ = {isa = PBXBuildFile; fileRef = 231B3F242D087C3C0069A07D /* EnvironmentDefaultColumns.swift */; };
|
||||
231B3F272D0885240069A07D /* MetricsColumnDetail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 231B3F262D0885240069A07D /* MetricsColumnDetail.swift */; };
|
||||
233E99B62D849C3D00CC3A77 /* WeatherConditionsCompactWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 233E99B52D849C3D00CC3A77 /* WeatherConditionsCompactWidget.swift */; };
|
||||
233E99B82D849C6500CC3A77 /* HumidityCompactWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 233E99B72D849C6500CC3A77 /* HumidityCompactWidget.swift */; };
|
||||
233E99BA2D849C7000CC3A77 /* PressureCompactWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 233E99B92D849C7000CC3A77 /* PressureCompactWidget.swift */; };
|
||||
233E99BC2D849C8C00CC3A77 /* WindCompactWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 233E99BB2D849C8C00CC3A77 /* WindCompactWidget.swift */; };
|
||||
233E99BE2D849D3200CC3A77 /* RadiationCompactWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 233E99BD2D849D3200CC3A77 /* RadiationCompactWidget.swift */; };
|
||||
233E99C12D849D6000CC3A77 /* DistanceCompactWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 233E99C02D849D6000CC3A77 /* DistanceCompactWidget.swift */; };
|
||||
233E99C32D849D7A00CC3A77 /* WeightCompactWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 233E99C22D849D7A00CC3A77 /* WeightCompactWidget.swift */; };
|
||||
233E99C52D84A0B600CC3A77 /* CompactWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 233E99C42D84A0B600CC3A77 /* CompactWidget.swift */; };
|
||||
233E99C72D84A70900CC3A77 /* SoilCompactWidgets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 233E99C62D84A70900CC3A77 /* SoilCompactWidgets.swift */; };
|
||||
2344A2AB2D66974300170A77 /* ManagedAttributePropertyWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2344A2AA2D66973D00170A77 /* ManagedAttributePropertyWrapper.swift */; };
|
||||
2344A2AF2D6697A700170A77 /* TelemetryEntity+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2344A2AD2D6697A700170A77 /* TelemetryEntity+CoreDataClass.swift */; };
|
||||
2344A2B02D6697A700170A77 /* TelemetryEntity+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2344A2AE2D6697A700170A77 /* TelemetryEntity+CoreDataProperties.swift */; };
|
||||
|
|
@ -278,6 +287,15 @@
|
|||
231B3F242D087C3C0069A07D /* EnvironmentDefaultColumns.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvironmentDefaultColumns.swift; sourceTree = "<group>"; };
|
||||
231B3F262D0885240069A07D /* MetricsColumnDetail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MetricsColumnDetail.swift; sourceTree = "<group>"; };
|
||||
233E99B32D84969500CC3A77 /* MeshtasticDataModelV 50.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "MeshtasticDataModelV 50.xcdatamodel"; sourceTree = "<group>"; };
|
||||
233E99B52D849C3D00CC3A77 /* WeatherConditionsCompactWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeatherConditionsCompactWidget.swift; sourceTree = "<group>"; };
|
||||
233E99B72D849C6500CC3A77 /* HumidityCompactWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HumidityCompactWidget.swift; sourceTree = "<group>"; };
|
||||
233E99B92D849C7000CC3A77 /* PressureCompactWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PressureCompactWidget.swift; sourceTree = "<group>"; };
|
||||
233E99BB2D849C8C00CC3A77 /* WindCompactWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindCompactWidget.swift; sourceTree = "<group>"; };
|
||||
233E99BD2D849D3200CC3A77 /* RadiationCompactWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadiationCompactWidget.swift; sourceTree = "<group>"; };
|
||||
233E99C02D849D6000CC3A77 /* DistanceCompactWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DistanceCompactWidget.swift; sourceTree = "<group>"; };
|
||||
233E99C22D849D7A00CC3A77 /* WeightCompactWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeightCompactWidget.swift; sourceTree = "<group>"; };
|
||||
233E99C42D84A0B600CC3A77 /* CompactWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactWidget.swift; sourceTree = "<group>"; };
|
||||
233E99C62D84A70900CC3A77 /* SoilCompactWidgets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SoilCompactWidgets.swift; sourceTree = "<group>"; };
|
||||
2344A2AA2D66973D00170A77 /* ManagedAttributePropertyWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedAttributePropertyWrapper.swift; sourceTree = "<group>"; };
|
||||
2344A2AD2D6697A700170A77 /* TelemetryEntity+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TelemetryEntity+CoreDataClass.swift"; sourceTree = "<group>"; };
|
||||
2344A2AE2D6697A700170A77 /* TelemetryEntity+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TelemetryEntity+CoreDataProperties.swift"; sourceTree = "<group>"; };
|
||||
|
|
@ -607,6 +625,23 @@
|
|||
path = "Metrics Columns";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
233E99B42D849C2D00CC3A77 /* Compact Widgets */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
233E99C42D84A0B600CC3A77 /* CompactWidget.swift */,
|
||||
233E99B72D849C6500CC3A77 /* HumidityCompactWidget.swift */,
|
||||
233E99B52D849C3D00CC3A77 /* WeatherConditionsCompactWidget.swift */,
|
||||
233E99B92D849C7000CC3A77 /* PressureCompactWidget.swift */,
|
||||
233E99BB2D849C8C00CC3A77 /* WindCompactWidget.swift */,
|
||||
DDFEB3BA29900C1200EE7472 /* CurrentConditionsCompact.swift */,
|
||||
233E99BD2D849D3200CC3A77 /* RadiationCompactWidget.swift */,
|
||||
233E99C02D849D6000CC3A77 /* DistanceCompactWidget.swift */,
|
||||
233E99C22D849D7A00CC3A77 /* WeightCompactWidget.swift */,
|
||||
233E99C62D84A70900CC3A77 /* SoilCompactWidgets.swift */,
|
||||
);
|
||||
path = "Compact Widgets";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2344A2AC2D66978000170A77 /* CoreData */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
|
@ -778,7 +813,6 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
DD5E523E298F5A9E00D21B61 /* AirQualityIndex.swift */,
|
||||
DDFEB3BA29900C1200EE7472 /* CurrentConditionsCompact.swift */,
|
||||
DDA9515D2BC6F56F00CEA535 /* IndoorAirQuality.swift */,
|
||||
DD354FD82BD96A0B0061A25F /* IAQScale.swift */,
|
||||
DD41A61429AB0035003C5A37 /* NodeWeatherForecast.swift */,
|
||||
|
|
@ -1039,6 +1073,7 @@
|
|||
DDC2E18D26CE25CB0042C5E4 /* Helpers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
233E99B42D849C2D00CC3A77 /* Compact Widgets */,
|
||||
DD6F65772C6EAB860053C113 /* Help */,
|
||||
DD3CC6BD28E4CD9800FA9159 /* BatteryGauge.swift */,
|
||||
DD3CC24B2C498D6C001BD3A2 /* BatteryCompact.swift */,
|
||||
|
|
@ -1407,7 +1442,9 @@
|
|||
251926902C3CB44900249DF5 /* ClientHistoryButton.swift in Sources */,
|
||||
DDD5BB102C285FB3007E03CA /* AppLogFilter.swift in Sources */,
|
||||
2373AE172D0A26620086C749 /* EnvironmentDefaultSeries.swift in Sources */,
|
||||
233E99B82D849C6500CC3A77 /* HumidityCompactWidget.swift in Sources */,
|
||||
DD4640202AFF10F4002A5ECB /* WaypointForm.swift in Sources */,
|
||||
233E99C12D849D6000CC3A77 /* DistanceCompactWidget.swift in Sources */,
|
||||
DD769E0328D18BF1001A3F05 /* DeviceMetricsLog.swift in Sources */,
|
||||
DDAF8C5326EB1DF10058C060 /* BLEManager.swift in Sources */,
|
||||
DD15E4F32B8BA56E00654F61 /* PaxCounterConfig.swift in Sources */,
|
||||
|
|
@ -1437,6 +1474,7 @@
|
|||
DDE9659C2B1C3B6A00531070 /* RouteRecorder.swift in Sources */,
|
||||
B399E8A42B6F486400E4488E /* RetryButton.swift in Sources */,
|
||||
DDB8F4102A9EE5B400230ECE /* Messages.swift in Sources */,
|
||||
233E99C32D849D7A00CC3A77 /* WeightCompactWidget.swift in Sources */,
|
||||
DDDB26482AACD6D1003AFCB7 /* NodeMapMapkit.swift in Sources */,
|
||||
DD4A911E2708C65400501B7E /* AppSettings.swift in Sources */,
|
||||
DD1BD0F32C63C65E008C0C70 /* SecurityConfig.swift in Sources */,
|
||||
|
|
@ -1454,6 +1492,7 @@
|
|||
DD6193772862F90F00E59241 /* CannedMessagesConfig.swift in Sources */,
|
||||
DD3619152B1EF9F900C41C8C /* LocationsHandler.swift in Sources */,
|
||||
DD6F65792C6EADE60053C113 /* DirectMessagesHelp.swift in Sources */,
|
||||
233E99B62D849C3D00CC3A77 /* WeatherConditionsCompactWidget.swift in Sources */,
|
||||
25F5D5C02C3F6DA6008036E3 /* Router.swift in Sources */,
|
||||
DDDB444A29F8AA3A00EE2349 /* CLLocationCoordinate2D.swift in Sources */,
|
||||
25C49D902C471AEA0024FBD1 /* Constants.swift in Sources */,
|
||||
|
|
@ -1492,6 +1531,7 @@
|
|||
DD2553592855B52700E55709 /* PositionConfig.swift in Sources */,
|
||||
DD97E96828EFE9A00056DDA4 /* About.swift in Sources */,
|
||||
DDDB444029F79AB000EE2349 /* UserDefaults.swift in Sources */,
|
||||
233E99BA2D849C7000CC3A77 /* PressureCompactWidget.swift in Sources */,
|
||||
DDB6ABE028B13AC700384BA1 /* DeviceEnums.swift in Sources */,
|
||||
DD86D40C287F401000BAEB7A /* SaveChannelQRCode.swift in Sources */,
|
||||
D93068DD2B81CA820066FBC8 /* ConfigHeader.swift in Sources */,
|
||||
|
|
@ -1501,6 +1541,7 @@
|
|||
DDD5BB092C285DDC007E03CA /* AppLog.swift in Sources */,
|
||||
BC5EBA3C2D002A2000C442FF /* MessageNodeIntent.swift in Sources */,
|
||||
DD8ED9C8289CE4B900B3B0AB /* RoutingError.swift in Sources */,
|
||||
233E99C52D84A0B600CC3A77 /* CompactWidget.swift in Sources */,
|
||||
DDC1B81A2AB5377B00C71E39 /* MessagesTips.swift in Sources */,
|
||||
DD964FC62975DBFD007C176F /* QueryCoreData.swift in Sources */,
|
||||
DDB75A112A059258006ED576 /* Url.swift in Sources */,
|
||||
|
|
@ -1536,6 +1577,7 @@
|
|||
8D3F8A3F2D44BB02009EAAA4 /* PowerMetrics.swift in Sources */,
|
||||
2519268A2C3BB1B200249DF5 /* ExchangePositionsButton.swift in Sources */,
|
||||
DD86D40A287F04F100BAEB7A /* InvalidVersion.swift in Sources */,
|
||||
233E99BE2D849D3200CC3A77 /* RadiationCompactWidget.swift in Sources */,
|
||||
DDD94A502845C8F5004A87A0 /* DateTimeText.swift in Sources */,
|
||||
DDB6ABE228B13FB500384BA1 /* PositionConfigEnums.swift in Sources */,
|
||||
DD994B69295F88B60013760A /* IntervalEnums.swift in Sources */,
|
||||
|
|
@ -1567,12 +1609,14 @@
|
|||
DDDB26442AAC0206003AFCB7 /* NodeDetail.swift in Sources */,
|
||||
DD77093F2AA1B146007A8BF0 /* UIColor.swift in Sources */,
|
||||
DDF6B2482A9AEBF500BA6931 /* StoreForwardConfig.swift in Sources */,
|
||||
233E99C72D84A70900CC3A77 /* SoilCompactWidgets.swift in Sources */,
|
||||
BCE2D3C92C7C377F008E6199 /* FactoryResetNodeIntent.swift in Sources */,
|
||||
DD93800B2BA3F968008BEC06 /* NodeMapContent.swift in Sources */,
|
||||
DD41582A28585C32009B0E59 /* RangeTestConfig.swift in Sources */,
|
||||
DD1925B728CDA5A400720036 /* CannedMessagesConfigEnums.swift in Sources */,
|
||||
DDDB444429F8A8DD00EE2349 /* Float.swift in Sources */,
|
||||
DDAB580F2B0DAFBC00147258 /* LocationEntityExtension.swift in Sources */,
|
||||
233E99BC2D849C8C00CC3A77 /* WindCompactWidget.swift in Sources */,
|
||||
B3E905B12B71F7F300654D07 /* TextMessageField.swift in Sources */,
|
||||
BC6B45FF2CB2F98900723CEB /* SaveChannelSettingsIntent.swift in Sources */,
|
||||
D93068D72B8146690066FBC8 /* MessageText.swift in Sources */,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"symbols" : [
|
||||
{
|
||||
"filename" : "soilMoisture.variable.svg",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,366 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--Generator: Apple Native CoreSVG 341-->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
viewBox="0 0 3300 2200"
|
||||
id="svg681"
|
||||
sodipodi:docname="groundmoisture.variable.svg"
|
||||
inkscape:version="1.2.1 (9c6d41e, 2022-07-14)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs685" />
|
||||
<sodipodi:namedview
|
||||
id="namedview683"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.55606061"
|
||||
inkscape:cx="1991.6894"
|
||||
inkscape:cy="935.14986"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1440"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Symbols"
|
||||
showguides="false" />
|
||||
<g
|
||||
id="Notes">
|
||||
<rect
|
||||
height="2200"
|
||||
id="artboard"
|
||||
style="fill:white;opacity:1"
|
||||
width="3300"
|
||||
x="0"
|
||||
y="0" />
|
||||
<line
|
||||
style="fill:none;stroke:black;opacity:1;stroke-width:0.5;"
|
||||
x1="263"
|
||||
x2="3036"
|
||||
y1="292"
|
||||
y2="292"
|
||||
id="line562" />
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;"
|
||||
transform="matrix(1 0 0 1 263 322)"
|
||||
id="text564">Weight/Scale Variations</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 559.711 322)"
|
||||
id="text566">Ultralight</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 856.422 322)"
|
||||
id="text568">Thin</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 1153.13 322)"
|
||||
id="text570">Light</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 1449.84 322)"
|
||||
id="text572">Regular</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 1746.56 322)"
|
||||
id="text574">Medium</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 2043.27 322)"
|
||||
id="text576">Semibold</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 2339.98 322)"
|
||||
id="text578">Bold</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 2636.69 322)"
|
||||
id="text580">Heavy</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 2933.4 322)"
|
||||
id="text582">Black</text>
|
||||
<line
|
||||
style="fill:none;stroke:black;opacity:1;stroke-width:0.5;"
|
||||
x1="263"
|
||||
x2="3036"
|
||||
y1="1903"
|
||||
y2="1903"
|
||||
id="line584" />
|
||||
<g
|
||||
transform="matrix(0.2 0 0 0.2 263 1933)"
|
||||
id="g588">
|
||||
<path
|
||||
d="m46.2402 4.15039c21.7773 0 39.4531-17.627 39.4531-39.4043s-17.6758-39.4043-39.4531-39.4043c-21.7285 0-39.4043 17.627-39.4043 39.4043s17.6758 39.4043 39.4043 39.4043Zm0-7.42188c-17.6758 0-31.9336-14.3066-31.9336-31.9824s14.2578-31.9824 31.9336-31.9824 31.9824 14.3066 31.9824 31.9824-14.3066 31.9824-31.9824 31.9824Zm-17.9688-31.9824c0 2.14844 1.51367 3.61328 3.75977 3.61328h10.498v10.5957c0 2.19727 1.46484 3.71094 3.61328 3.71094 2.24609 0 3.71094-1.51367 3.71094-3.71094v-10.5957h10.5957c2.19727 0 3.71094-1.46484 3.71094-3.61328 0-2.19727-1.51367-3.71094-3.71094-3.71094h-10.5957v-10.5469c0-2.24609-1.46484-3.75977-3.71094-3.75977-2.14844 0-3.61328 1.51367-3.61328 3.75977v10.5469h-10.498c-2.24609 0-3.75977 1.51367-3.75977 3.71094Z"
|
||||
id="path586" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.2 0 0 0.2 281.506 1933)"
|
||||
id="g592">
|
||||
<path
|
||||
d="m58.5449 14.5508c27.4902 0 49.8047-22.3145 49.8047-49.8047s-22.3145-49.8047-49.8047-49.8047-49.8047 22.3145-49.8047 49.8047 22.3145 49.8047 49.8047 49.8047Zm0-8.30078c-22.9492 0-41.5039-18.5547-41.5039-41.5039s18.5547-41.5039 41.5039-41.5039 41.5039 18.5547 41.5039 41.5039-18.5547 41.5039-41.5039 41.5039Zm-22.6562-41.5039c0 2.39258 1.66016 4.00391 4.15039 4.00391h14.3555v14.4043c0 2.44141 1.66016 4.15039 4.05273 4.15039 2.44141 0 4.15039-1.66016 4.15039-4.15039v-14.4043h14.4043c2.44141 0 4.15039-1.61133 4.15039-4.00391 0-2.44141-1.70898-4.15039-4.15039-4.15039h-14.4043v-14.3555c0-2.49023-1.70898-4.19922-4.15039-4.19922-2.39258 0-4.05273 1.70898-4.05273 4.19922v14.3555h-14.3555c-2.49023 0-4.15039 1.70898-4.15039 4.15039Z"
|
||||
id="path590" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.2 0 0 0.2 304.924 1933)"
|
||||
id="g596">
|
||||
<path
|
||||
d="m74.8535 28.3203c35.1074 0 63.623-28.4668 63.623-63.5742s-28.5156-63.623-63.623-63.623-63.5742 28.5156-63.5742 63.623 28.4668 63.5742 63.5742 63.5742Zm0-9.08203c-30.127 0-54.4922-24.3652-54.4922-54.4922s24.3652-54.4922 54.4922-54.4922 54.4922 24.3652 54.4922 54.4922-24.3652 54.4922-54.4922 54.4922Zm-28.8574-54.4922c0 2.58789 1.85547 4.39453 4.58984 4.39453h19.7266v19.7754c0 2.68555 1.85547 4.58984 4.44336 4.58984 2.68555 0 4.54102-1.85547 4.54102-4.58984v-19.7754h19.7754c2.68555 0 4.58984-1.80664 4.58984-4.39453 0-2.73438-1.85547-4.58984-4.58984-4.58984h-19.7754v-19.7266c0-2.73438-1.85547-4.63867-4.54102-4.63867-2.58789 0-4.44336 1.9043-4.44336 4.63867v19.7266h-19.7266c-2.73438 0-4.58984 1.85547-4.58984 4.58984Z"
|
||||
id="path594" />
|
||||
</g>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;"
|
||||
transform="matrix(1 0 0 1 263 1953)"
|
||||
id="text598">Design Variations</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 263 1971)"
|
||||
id="text600">Symbols are supported in up to nine weights and three scales.</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 263 1989)"
|
||||
id="text602">For optimal layout with text and other symbols, vertically align</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 263 2007)"
|
||||
id="text604">symbols with the adjacent text.</text>
|
||||
<line
|
||||
style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;"
|
||||
x1="776"
|
||||
x2="776"
|
||||
y1="1919"
|
||||
y2="1933"
|
||||
id="line606" />
|
||||
<g
|
||||
transform="matrix(0.2 0 0 0.2 776 1933)"
|
||||
id="g610">
|
||||
<path
|
||||
d="m16.5527 0.78125c2.58789 0 3.85742-0.976562 4.78516-3.71094l6.29883-17.2363h28.8086l6.29883 17.2363c0.927734 2.73438 2.19727 3.71094 4.73633 3.71094 2.58789 0 4.24805-1.5625 4.24805-4.00391 0-0.830078-0.146484-1.61133-0.537109-2.63672l-22.9004-60.9863c-1.12305-2.97852-3.125-4.49219-6.25-4.49219-3.02734 0-5.07812 1.46484-6.15234 4.44336l-22.9004 61.084c-0.390625 1.02539-0.537109 1.80664-0.537109 2.63672 0 2.44141 1.5625 3.95508 4.10156 3.95508Zm13.4766-28.3691 11.8652-32.8613h0.244141l11.8652 32.8613Z"
|
||||
id="path608" />
|
||||
</g>
|
||||
<line
|
||||
style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;"
|
||||
x1="792.836"
|
||||
x2="792.836"
|
||||
y1="1919"
|
||||
y2="1933"
|
||||
id="line612" />
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;"
|
||||
transform="matrix(1 0 0 1 776 1953)"
|
||||
id="text614">Margins</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 776 1971)"
|
||||
id="text616">Leading and trailing margins on the left and right side of each symbol</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 776 1989)"
|
||||
id="text618">can be adjusted by modifying the x-location of the margin guidelines.</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 776 2007)"
|
||||
id="text620">Modifications are automatically applied proportionally to all</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 776 2025)"
|
||||
id="text622">scales and weights.</text>
|
||||
<g
|
||||
transform="matrix(0.2 0 0 0.2 1289 1933)"
|
||||
id="g626">
|
||||
<path
|
||||
d="m14.209 9.32617 8.49609 8.54492c4.29688 4.3457 9.22852 4.05273 13.8672-1.07422l53.4668-58.9355-4.83398-4.88281-53.0762 58.3984c-1.75781 2.00195-3.41797 2.49023-5.76172 0.146484l-5.85938-5.81055c-2.34375-2.29492-1.80664-4.00391 0.195312-5.81055l57.373-54.0039-4.88281-4.83398-57.959 54.4434c-4.93164 4.58984-5.32227 9.47266-1.02539 13.8184Zm32.0801-90.9668c-2.09961 2.05078-2.24609 4.93164-1.07422 6.88477 1.17188 1.80664 3.4668 2.97852 6.68945 2.14844 7.32422-1.70898 14.9414-2.00195 22.0703 2.68555l-2.92969 7.27539c-1.70898 4.15039-0.830078 7.08008 1.85547 9.81445l11.4746 11.5723c2.44141 2.44141 4.49219 2.53906 7.32422 2.05078l5.32227-0.976562 3.32031 3.36914-0.195312 2.7832c-0.195312 2.49023 0.439453 4.39453 2.88086 6.78711l3.80859 3.71094c2.39258 2.39258 5.46875 2.53906 7.8125 0.195312l14.5508-14.5996c2.34375-2.34375 2.24609-5.32227-0.146484-7.71484l-3.85742-3.80859c-2.39258-2.39258-4.24805-3.17383-6.64062-2.97852l-2.88086 0.244141-3.22266-3.17383 1.2207-5.61523c0.634766-2.83203-0.146484-5.0293-3.07617-7.95898l-10.9863-10.9375c-16.6992-16.6016-38.8672-16.2109-53.3203-1.75781Zm7.4707 1.85547c12.1582-8.88672 28.6133-7.37305 39.7461 3.75977l12.1582 12.0605c1.17188 1.17188 1.36719 2.09961 1.02539 3.80859l-1.61133 7.42188 7.51953 7.42188 4.93164-0.292969c1.26953-0.0488281 1.66016 0.0488281 2.63672 1.02539l2.88086 2.88086-12.207 12.207-2.88086-2.88086c-0.976562-0.976562-1.12305-1.36719-1.07422-2.68555l0.341797-4.88281-7.4707-7.42188-7.61719 1.26953c-1.61133 0.341797-2.34375 0.195312-3.56445-0.976562l-10.0098-10.0098c-1.26953-1.17188-1.41602-2.00195-0.634766-3.85742l4.39453-10.4492c-7.8125-7.27539-17.9688-10.4004-28.125-7.42188-0.78125 0.195312-1.07422-0.439453-0.439453-0.976562Z"
|
||||
id="path624" />
|
||||
</g>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;"
|
||||
transform="matrix(1 0 0 1 1289 1953)"
|
||||
id="text628">Exporting</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 1289 1971)"
|
||||
id="text630">Symbols should be outlined when exporting to ensure the</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 1289 1989)"
|
||||
id="text632">design is preserved when submitting to Xcode.</text>
|
||||
<text
|
||||
id="template-version"
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;"
|
||||
transform="matrix(1 0 0 1 3036 1933)">Template v.6.0</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;"
|
||||
transform="matrix(1 0 0 1 3036 1951)"
|
||||
id="text635">Requires Xcode 16 or greater</text>
|
||||
<text
|
||||
id="descriptive-name"
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;"
|
||||
transform="matrix(1 0 0 1 3036 1969)">Generated from thermometer.variable</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;"
|
||||
transform="matrix(1 0 0 1 3036 1987)"
|
||||
id="text638">Typeset at 100.0 points</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 263 726)"
|
||||
id="text640">Small</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 263 1156)"
|
||||
id="text642">Medium</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 263 1586)"
|
||||
id="text644">Large</text>
|
||||
</g>
|
||||
<g
|
||||
id="Guides">
|
||||
<g
|
||||
id="H-reference"
|
||||
style="fill:#27AAE1;stroke:none;"
|
||||
transform="matrix(1 0 0 1 339 696)">
|
||||
<path
|
||||
d="M0.993654 0L3.63775 0L29.3281-67.1323L30.0303-67.1323L30.0303-70.459L28.1226-70.459ZM11.6885-24.4799L46.9815-24.4799L46.2315-26.7285L12.4385-26.7285ZM55.1196 0L57.7637 0L30.6382-70.459L29.4326-70.459L29.4326-67.1323Z"
|
||||
id="path647" />
|
||||
</g>
|
||||
<line
|
||||
id="Baseline-S"
|
||||
style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;"
|
||||
x1="263"
|
||||
x2="3036"
|
||||
y1="696"
|
||||
y2="696" />
|
||||
<line
|
||||
id="Capline-S"
|
||||
style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;"
|
||||
x1="263"
|
||||
x2="3036"
|
||||
y1="625.541"
|
||||
y2="625.541" />
|
||||
<g
|
||||
id="g654"
|
||||
style="fill:#27AAE1;stroke:none;"
|
||||
transform="matrix(1 0 0 1 339 1126)">
|
||||
<path
|
||||
d="M0.993654 0L3.63775 0L29.3281-67.1323L30.0303-67.1323L30.0303-70.459L28.1226-70.459ZM11.6885-24.4799L46.9815-24.4799L46.2315-26.7285L12.4385-26.7285ZM55.1196 0L57.7637 0L30.6382-70.459L29.4326-70.459L29.4326-67.1323Z"
|
||||
id="path652" />
|
||||
</g>
|
||||
<line
|
||||
id="Baseline-M"
|
||||
style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;"
|
||||
x1="263"
|
||||
x2="3036"
|
||||
y1="1126"
|
||||
y2="1126" />
|
||||
<line
|
||||
id="Capline-M"
|
||||
style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;"
|
||||
x1="263"
|
||||
x2="3036"
|
||||
y1="1055.54"
|
||||
y2="1055.54" />
|
||||
<g
|
||||
id="g660"
|
||||
style="fill:#27AAE1;stroke:none;"
|
||||
transform="matrix(1 0 0 1 339 1556)">
|
||||
<path
|
||||
d="M0.993654 0L3.63775 0L29.3281-67.1323L30.0303-67.1323L30.0303-70.459L28.1226-70.459ZM11.6885-24.4799L46.9815-24.4799L46.2315-26.7285L12.4385-26.7285ZM55.1196 0L57.7637 0L30.6382-70.459L29.4326-70.459L29.4326-67.1323Z"
|
||||
id="path658" />
|
||||
</g>
|
||||
<line
|
||||
id="Baseline-L"
|
||||
style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;"
|
||||
x1="263"
|
||||
x2="3036"
|
||||
y1="1556"
|
||||
y2="1556" />
|
||||
<line
|
||||
id="Capline-L"
|
||||
style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;"
|
||||
x1="263"
|
||||
x2="3036"
|
||||
y1="1485.54"
|
||||
y2="1485.54" />
|
||||
<line
|
||||
id="right-margin-Black-S"
|
||||
style="opacity:1;fill:none;stroke:#00aeef;stroke-width:0.5"
|
||||
x1="2994.5601"
|
||||
x2="2994.5601"
|
||||
y1="600.78497"
|
||||
y2="720.12097" />
|
||||
<line
|
||||
id="left-margin-Black-S"
|
||||
style="opacity:1;fill:none;stroke:#00aeef;stroke-width:0.5"
|
||||
x1="2882.24"
|
||||
x2="2882.24"
|
||||
y1="600.78497"
|
||||
y2="720.12097" />
|
||||
<line
|
||||
id="right-margin-Regular-S"
|
||||
style="opacity:1;fill:none;stroke:#00aeef;stroke-width:0.5"
|
||||
x1="1492"
|
||||
x2="1492"
|
||||
y1="600.78497"
|
||||
y2="720.12097" />
|
||||
<line
|
||||
id="left-margin-Regular-S"
|
||||
style="opacity:1;fill:none;stroke:#00aeef;stroke-width:0.5"
|
||||
x1="1395.6899"
|
||||
x2="1395.6899"
|
||||
y1="600.78497"
|
||||
y2="720.12097" />
|
||||
<line
|
||||
id="right-margin-Ultralight-S"
|
||||
style="opacity:1;fill:none;stroke:#00aeef;stroke-width:0.5"
|
||||
x1="605.70599"
|
||||
x2="605.70599"
|
||||
y1="600.78497"
|
||||
y2="720.12097" />
|
||||
<line
|
||||
id="left-margin-Ultralight-S"
|
||||
style="opacity:1;fill:none;stroke:#00aeef;stroke-width:0.5"
|
||||
x1="513.71698"
|
||||
x2="513.71698"
|
||||
y1="600.78497"
|
||||
y2="720.12097" />
|
||||
</g>
|
||||
<g
|
||||
id="Symbols">
|
||||
<g
|
||||
id="Black-S"
|
||||
transform="matrix(1 0 0 1 2898.24 696)"
|
||||
style="fill:#000000">
|
||||
<path
|
||||
id="path1811"
|
||||
style="fill:#000000;stroke:#000000;stroke-width:0.5;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 40.160224,10.512322 c 13.8183,0 24.9508,-10.88863047 24.9508,-24.560501 0,-7.1289 -3.32,-13.6719 -5.5172,-17.7734 l -8.545,-15.869199 c -2.1972,-4.1504 -6.2011,-6.5918 -10.8886,-6.5918 -4.6387,0 -8.6426,2.4414 -10.8399,6.543 l -8.4961,15.869099 c -2.2461,4.1504 -5.6152,10.6446 -5.6152,17.8223 0,13.67187053 11.1816,24.560501 24.9512,24.560501 z m -18.6035,-24.560501 c 0,-5.5176 2.6855,-10.8399 4.8339,-14.7949 l 8.4961,-15.869199 c 1.1231,-2.0508 2.9785,-3.2226 5.2735,-3.2226 2.2949,0 4.1504,1.123 5.2734,3.2226 l 8.5449,15.869199 c 2.0996,3.955 4.7852,9.2773 4.7852,14.7949 0,10.1074205 -8.252,18.2128805 -18.6035,18.2128805 -10.3028,0 -18.6035,-8.10546 -18.6035,-18.2128805 z m 18.6035,6.5917905 c -4.9805,0 -8.9356,-3.8085895 -8.9356,-8.5448905 0,-3.2227 1.6602,-6.2989 3.7598,-10.2539 l 4.7851,-8.935599 c 0.1954,-0.3906 0.6348,-0.3906 0.8301,0 l 4.7364,8.935599 c 2.0996,3.955 3.7597,7.0312 3.7597,10.2539 0,4.736301 -3.9062,8.5448905 -8.9355,8.5448905 z M 93.819567,-0.549 c 0,2.346 -1.91,4.25 -4.25,4.25 -2.35,0 -4.25,-1.904 -4.25,-4.25 0,-0.295 -0.01,-0.589 -0.03,-0.881 -0.15,-2.341 1.62,-4.366 3.96,-4.519 2.34,-0.154 4.37,1.621 4.52,3.962 0.03,0.477 0.05,0.956 0.05,1.438 z m -5.03,-14.361 c 1.4,1.882 1.01,4.547 -0.87,5.947 -1.88,1.401 -4.55,1.011 -5.95,-0.871 -0.38,-0.515 -0.79,-1.02 -1.23,-1.516 -1.56,-1.755 -1.4,-4.443 0.36,-6 1.75,-1.556 4.44,-1.395 6,0.36 0.6,0.68 1.16,1.374 1.69,2.08 z m -11.75,-10.145 c 2.02,1.186 2.7,3.792 1.52,5.815 -1.19,2.024 -3.79,2.704 -5.82,1.518 -0.6,-0.352 -1.22,-0.695 -1.85,-1.027 -2.08,-1.088 -2.88,-3.659 -1.79,-5.737 1.09,-2.077 3.66,-2.881 5.73,-1.792 0.76,0.395 1.5,0.803 2.21,1.223 z M 5.8395672,-26.278 c 2.08,-1.089 4.6499998,-0.285 5.7399998,1.792 1.08,2.078 0.28,4.649 -1.7999998,5.737 -0.63,0.332 -1.25,0.675 -1.85,1.027 -2.02,1.186 -4.63,0.506 -5.82,-1.518 -1.17999998,-2.023 -0.5,-4.629 1.52,-5.815 0.72,-0.42 1.45,-0.828 2.21,-1.223 z m -12.26,9.288 c 1.55,-1.755 4.24,-1.916 6.00000002,-0.36 1.74999998,1.557 1.90999998,4.245 0.36,6 -0.44,0.496 -0.86,1.001 -1.24000002,1.516 -1.4,1.882 -4.06,2.272 -5.95,0.871 -1.88,-1.4 -2.27,-4.065 -0.87,-5.946 0.53,-0.707 1.09,-1.401 1.7,-2.081 z m -6.6800002,15.003 c 0.15,-2.341 2.18,-4.116 4.5200002,-3.962 2.34,0.153 4.12,2.178 3.96,4.519 -0.02,0.292 -0.03,0.586 -0.03,0.881 0,2.346 -1.9,4.25 -4.25,4.25 -2.3400002,0 -4.2500002,-1.904 -4.2500002,-4.25 0,-0.482 0.02,-0.961 0.05,-1.438 z" />
|
||||
</g>
|
||||
<g
|
||||
id="Regular-S"
|
||||
transform="matrix(1 0 0 1 1419.69 696)"
|
||||
style="fill:#000000">
|
||||
<path
|
||||
id="path1814"
|
||||
style="fill:#000000;stroke:#000000;stroke-opacity:1;stroke-width:0.5;stroke-dasharray:none"
|
||||
d="m 40.829821,-13.588987 c 0,-4.9805 -2.4903,-9.8633 -4.5899,-13.7695 l -8.3984,-15.5762 c -0.9766,-1.8555 -1.8555,-2.6855 -3.711,-2.6855 -1.8554,0 -2.7343,0.83 -3.7109,2.6855 l -8.3496,15.5762 c -2.0508,3.9062 -4.5410003,8.789 -4.5410003,13.7695 0,8.9843901 7.4218003,16.2597781 16.6015003,16.2597781 9.2774,0 16.6993,-7.275388 16.6993,-16.2597781 z m -16.6993,21.9726701 c -12.3047,0 -22.3144003,-9.76563 -22.3144003,-21.9726701 0,-6.4453 3.125,-12.4023 5.2246,-16.4062 l 8.3496003,-15.6739 c 1.9043,-3.5156 4.6387,-5.664 8.7402,-5.664 4.1504,0 6.8848,2.1484 8.7891,5.664 l 8.3984,15.625 c 2.0996,4.0528 5.1758,10.0098 5.1758,16.4551 0,12.2070401 -10.0098,21.9726701 -22.3633,21.9726701 z m 46.31122,-10.4926827 c 0,1.518 -1.23,2.75 -2.75,2.75 -1.51,0 -2.75,-1.232 -2.75,-2.75 0,-0.328 -0.01,-0.654 -0.03,-0.979 -0.1,-1.515 1.05,-2.825 2.57,-2.924 1.51,-0.1 2.82,1.049 2.92,2.564 0.03,0.444 0.04,0.891 0.04,1.339 z m -4.73,-13.4640004 c 0.91,1.217 0.66,2.941 -0.56,3.848 -1.22,0.906 -2.94,0.653 -3.85,-0.564 -0.41,-0.549 -0.85,-1.088 -1.32,-1.616 -1,-1.136 -0.9,-2.875 0.24,-3.882 1.13,-1.007 2.87,-0.903 3.88,0.232 0.57,0.648 1.11,1.309 1.61,1.982 z m -11.3,-9.748 c 1.31,0.768 1.75,2.454 0.98,3.763 -0.77,1.31 -2.45,1.75 -3.76,0.982 -0.63,-0.364 -1.26,-0.718 -1.92,-1.061 -1.34,-0.704 -1.86,-2.368 -1.16,-3.712 0.7,-1.345 2.37,-1.864 3.71,-1.16 0.74,0.384 1.45,0.78 2.15,1.188 z m -58.7500004,-1.188 c 1.34,-0.704 3.01,-0.185 3.71,1.16 0.71,1.344 0.19,3.008 -1.16,3.712 -0.65,0.343 -1.29,0.697 -1.91,1.061 -1.31,0.768 -3,0.328 -3.77,-0.982 -0.76,-1.309 -0.32,-2.995 0.98,-3.763 0.7,-0.408 1.42,-0.804 2.15,-1.188 z m -11.8399996,8.954 c 1.01,-1.135 2.75,-1.239 3.89,-0.232 1.13,1.007 1.24,2.746 0.23,3.882 -0.47,0.528 -0.91,1.067 -1.32,1.616 -0.9,1.217 -2.63,1.47 -3.85,0.564 -1.21,-0.907 -1.47,-2.631 -0.56,-3.848 0.5,-0.673 1.04,-1.334 1.61,-1.982 z m -6.3,14.1070004 c 0.1,-1.515 1.41,-2.664 2.93,-2.564 1.51,0.099 2.66,1.409 2.56,2.924 -0.02,0.325 -0.03,0.651 -0.03,0.979 0,1.518 -1.23,2.75 -2.75,2.75 -1.52,0 -2.75,-1.232 -2.75,-2.75 0,-0.448 0.01,-0.895 0.04,-1.339 z m 46.60878,0.4059027 c -6.0547,0 -10.8886,-4.63867 -10.8886,-10.5468901 0,-3.6621 1.8554,-7.1777 3.9062,-11.084 l 6.6895,-12.4023 c 0.1953,-0.3418 0.4882,-0.3418 0.6836,0 l 6.5918,12.4023 c 2.0507,3.9063 4.0039,7.4219 4.0039,11.084 0,5.9082201 -4.8829,10.5468901 -10.9864,10.5468901 z" />
|
||||
</g>
|
||||
<g
|
||||
id="Ultralight-S"
|
||||
transform="matrix(1 0 0 1 531.717 696)"
|
||||
style="fill:#000000">
|
||||
<path
|
||||
id="path1817"
|
||||
style="fill:#000000;stroke:#000000;stroke-width:0.5;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 8.8343368,-13.746838 c 0,-5.673299 2.7617002,-11.221699 5.0883002,-15.497999 l 9.1216,-17.0816 c 1.0869,-1.9716 2.8223,-3.0303 4.9712,-3.0303 2.1524,0 3.8878,1.0587 4.9747,3.1212 l 9.0796,16.9873 c 2.372,4.2797 5.0849,9.8281 5.0849,15.501399 0,10.4814908 -8.5112,18.7940007 -19.1392,18.7940007 -10.6245,0 -19.1811002,-8.3125099 -19.1811002,-18.7940007 z M 28.015437,1.9680428 c 8.9595,0 16.1089,-6.9575205 16.1089,-15.7148808 0,-4.934999 -2.4448,-9.863299 -4.726,-14.087399 l -9.125,-16.9838 c -0.5679,-1.0381 -1.2652,-1.4595 -2.2579,-1.4595 -1.0381,0 -1.7353,0.4214 -2.2578,1.414 l -9.1216,17.0293 c -2.2778,4.2241 -4.7226,9.1524 -4.7226,14.087399 0,8.7573603 7.1494,15.7148808 16.102,15.7148808 z m 0,-2.12551995 c -7.7802,0 -13.9765,-6.00096055 -13.9765,-13.58936085 0,-4.433999 2.2642,-8.903299 4.4966,-13.081999 l 8.9599,-16.7163 c 0.2407,-0.478 0.8062,-0.478 1.0469,0 l 8.9531,16.7163 c 2.2324,4.1787 4.458,8.648 4.458,13.081999 0,7.5884003 -6.1543,13.58936085 -13.938,13.58936085 z M 70.343736,-2.1090003 c 0,-0.4319999 -0.014,-0.8619999 -0.042,-1.2899999 -0.073,-1.102 -1.026,-1.937 -2.127,-1.865 -1.101,0.072 -1.937,1.025 -1.865,2.127 0.023,0.341 0.034,0.684 0.034,1.0279999 0,1.104 0.896,2.0000001 2,2.0000001 1.104,0 2,-0.8960001 2,-2.0000001 z M 65.759736,-15.126 c -0.488,-0.655 -1.013,-1.3 -1.573,-1.931 -0.732,-0.826 -1.997,-0.902 -2.823,-0.169 -0.826,0.732 -0.902,1.997 -0.169,2.823 0.483,0.545 0.936,1.1 1.357,1.666 0.659,0.885 1.913,1.069 2.798,0.41 0.886,-0.659 1.07,-1.913 0.41,-2.799 z m -11.082,-9.548 c -0.686,-0.402 -1.39,-0.792 -2.113,-1.171 -0.978,-0.512 -2.187,-0.134 -2.7,0.844 -0.512,0.978 -0.134,2.187 0.844,2.7 0.666,0.348 1.315,0.708 1.946,1.078 0.953,0.558 2.179,0.238 2.737,-0.714 0.558,-0.952 0.238,-2.179 -0.714,-2.737 z M 1.6577364,-25.845 c -0.72300001,0.379 -1.42800001,0.769 -2.11300001,1.171 -0.95299999,0.558 -1.27299999,1.785 -0.71399999,2.737 0.55799999,0.952 1.78399999,1.272 2.736,0.714 0.632,-0.37 1.281,-0.73 1.947,-1.078 0.978,-0.513 1.356,-1.722 0.843,-2.7 -0.512,-0.978 -1.722,-1.356 -2.699,-0.844 z m -11.622,8.788 c -0.5600004,0.631 -1.0850004,1.276 -1.5740004,1.931 -0.659,0.886 -0.475,2.14 0.41,2.799 0.886,0.659 2.1400004,0.476 2.7990004,-0.41 0.421,-0.566 0.874,-1.121 1.357,-1.666 0.733,-0.826 0.657,-2.091 -0.169,-2.823 -0.826,-0.733 -2.091,-0.657 -2.823,0.169 z m -6.1150004,13.6579998 c -0.028,0.428 -0.042,0.858 -0.042,1.2899999 0,1.104 0.896,2.0000001 2,2.0000001 1.104,0 2,-0.8960001 2,-2.0000001 0,-0.3439999 0.011,-0.6869999 0.033,-1.0279999 0.073,-1.102 -0.763,-2.055 -1.864,-2.127 -1.102,-0.072 -2.055,0.763 -2.127,1.865 z" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"symbols" : [
|
||||
{
|
||||
"filename" : "soilTemp.variable.svg",
|
||||
"idiom" : "universal"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,363 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--Generator: Apple Native CoreSVG 341-->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
viewBox="0 0 3300 2200"
|
||||
id="svg681"
|
||||
sodipodi:docname="groundtemp.variable.svg"
|
||||
inkscape:version="1.2.1 (9c6d41e, 2022-07-14)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs685" />
|
||||
<sodipodi:namedview
|
||||
id="namedview683"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.3396954"
|
||||
inkscape:cx="2915.5504"
|
||||
inkscape:cy="705.00629"
|
||||
inkscape:window-width="1390"
|
||||
inkscape:window-height="1205"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="150"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Guides"
|
||||
showguides="false" />
|
||||
<g
|
||||
id="Notes">
|
||||
<rect
|
||||
height="2200"
|
||||
id="artboard"
|
||||
style="fill:white;opacity:1"
|
||||
width="3300"
|
||||
x="0"
|
||||
y="0" />
|
||||
<line
|
||||
style="fill:none;stroke:black;opacity:1;stroke-width:0.5;"
|
||||
x1="263"
|
||||
x2="3036"
|
||||
y1="292"
|
||||
y2="292"
|
||||
id="line562" />
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;"
|
||||
transform="matrix(1 0 0 1 263 322)"
|
||||
id="text564">Weight/Scale Variations</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 559.711 322)"
|
||||
id="text566">Ultralight</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 856.422 322)"
|
||||
id="text568">Thin</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 1153.13 322)"
|
||||
id="text570">Light</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 1449.84 322)"
|
||||
id="text572">Regular</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 1746.56 322)"
|
||||
id="text574">Medium</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 2043.27 322)"
|
||||
id="text576">Semibold</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 2339.98 322)"
|
||||
id="text578">Bold</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 2636.69 322)"
|
||||
id="text580">Heavy</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;"
|
||||
transform="matrix(1 0 0 1 2933.4 322)"
|
||||
id="text582">Black</text>
|
||||
<line
|
||||
style="fill:none;stroke:black;opacity:1;stroke-width:0.5;"
|
||||
x1="263"
|
||||
x2="3036"
|
||||
y1="1903"
|
||||
y2="1903"
|
||||
id="line584" />
|
||||
<g
|
||||
transform="matrix(0.2 0 0 0.2 263 1933)"
|
||||
id="g588">
|
||||
<path
|
||||
d="m46.2402 4.15039c21.7773 0 39.4531-17.627 39.4531-39.4043s-17.6758-39.4043-39.4531-39.4043c-21.7285 0-39.4043 17.627-39.4043 39.4043s17.6758 39.4043 39.4043 39.4043Zm0-7.42188c-17.6758 0-31.9336-14.3066-31.9336-31.9824s14.2578-31.9824 31.9336-31.9824 31.9824 14.3066 31.9824 31.9824-14.3066 31.9824-31.9824 31.9824Zm-17.9688-31.9824c0 2.14844 1.51367 3.61328 3.75977 3.61328h10.498v10.5957c0 2.19727 1.46484 3.71094 3.61328 3.71094 2.24609 0 3.71094-1.51367 3.71094-3.71094v-10.5957h10.5957c2.19727 0 3.71094-1.46484 3.71094-3.61328 0-2.19727-1.51367-3.71094-3.71094-3.71094h-10.5957v-10.5469c0-2.24609-1.46484-3.75977-3.71094-3.75977-2.14844 0-3.61328 1.51367-3.61328 3.75977v10.5469h-10.498c-2.24609 0-3.75977 1.51367-3.75977 3.71094Z"
|
||||
id="path586" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.2 0 0 0.2 281.506 1933)"
|
||||
id="g592">
|
||||
<path
|
||||
d="m58.5449 14.5508c27.4902 0 49.8047-22.3145 49.8047-49.8047s-22.3145-49.8047-49.8047-49.8047-49.8047 22.3145-49.8047 49.8047 22.3145 49.8047 49.8047 49.8047Zm0-8.30078c-22.9492 0-41.5039-18.5547-41.5039-41.5039s18.5547-41.5039 41.5039-41.5039 41.5039 18.5547 41.5039 41.5039-18.5547 41.5039-41.5039 41.5039Zm-22.6562-41.5039c0 2.39258 1.66016 4.00391 4.15039 4.00391h14.3555v14.4043c0 2.44141 1.66016 4.15039 4.05273 4.15039 2.44141 0 4.15039-1.66016 4.15039-4.15039v-14.4043h14.4043c2.44141 0 4.15039-1.61133 4.15039-4.00391 0-2.44141-1.70898-4.15039-4.15039-4.15039h-14.4043v-14.3555c0-2.49023-1.70898-4.19922-4.15039-4.19922-2.39258 0-4.05273 1.70898-4.05273 4.19922v14.3555h-14.3555c-2.49023 0-4.15039 1.70898-4.15039 4.15039Z"
|
||||
id="path590" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.2 0 0 0.2 304.924 1933)"
|
||||
id="g596">
|
||||
<path
|
||||
d="m74.8535 28.3203c35.1074 0 63.623-28.4668 63.623-63.5742s-28.5156-63.623-63.623-63.623-63.5742 28.5156-63.5742 63.623 28.4668 63.5742 63.5742 63.5742Zm0-9.08203c-30.127 0-54.4922-24.3652-54.4922-54.4922s24.3652-54.4922 54.4922-54.4922 54.4922 24.3652 54.4922 54.4922-24.3652 54.4922-54.4922 54.4922Zm-28.8574-54.4922c0 2.58789 1.85547 4.39453 4.58984 4.39453h19.7266v19.7754c0 2.68555 1.85547 4.58984 4.44336 4.58984 2.68555 0 4.54102-1.85547 4.54102-4.58984v-19.7754h19.7754c2.68555 0 4.58984-1.80664 4.58984-4.39453 0-2.73438-1.85547-4.58984-4.58984-4.58984h-19.7754v-19.7266c0-2.73438-1.85547-4.63867-4.54102-4.63867-2.58789 0-4.44336 1.9043-4.44336 4.63867v19.7266h-19.7266c-2.73438 0-4.58984 1.85547-4.58984 4.58984Z"
|
||||
id="path594" />
|
||||
</g>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;"
|
||||
transform="matrix(1 0 0 1 263 1953)"
|
||||
id="text598">Design Variations</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 263 1971)"
|
||||
id="text600">Symbols are supported in up to nine weights and three scales.</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 263 1989)"
|
||||
id="text602">For optimal layout with text and other symbols, vertically align</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 263 2007)"
|
||||
id="text604">symbols with the adjacent text.</text>
|
||||
<line
|
||||
style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;"
|
||||
x1="776"
|
||||
x2="776"
|
||||
y1="1919"
|
||||
y2="1933"
|
||||
id="line606" />
|
||||
<g
|
||||
transform="matrix(0.2 0 0 0.2 776 1933)"
|
||||
id="g610">
|
||||
<path
|
||||
d="m16.5527 0.78125c2.58789 0 3.85742-0.976562 4.78516-3.71094l6.29883-17.2363h28.8086l6.29883 17.2363c0.927734 2.73438 2.19727 3.71094 4.73633 3.71094 2.58789 0 4.24805-1.5625 4.24805-4.00391 0-0.830078-0.146484-1.61133-0.537109-2.63672l-22.9004-60.9863c-1.12305-2.97852-3.125-4.49219-6.25-4.49219-3.02734 0-5.07812 1.46484-6.15234 4.44336l-22.9004 61.084c-0.390625 1.02539-0.537109 1.80664-0.537109 2.63672 0 2.44141 1.5625 3.95508 4.10156 3.95508Zm13.4766-28.3691 11.8652-32.8613h0.244141l11.8652 32.8613Z"
|
||||
id="path608" />
|
||||
</g>
|
||||
<line
|
||||
style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;"
|
||||
x1="792.836"
|
||||
x2="792.836"
|
||||
y1="1919"
|
||||
y2="1933"
|
||||
id="line612" />
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;"
|
||||
transform="matrix(1 0 0 1 776 1953)"
|
||||
id="text614">Margins</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 776 1971)"
|
||||
id="text616">Leading and trailing margins on the left and right side of each symbol</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 776 1989)"
|
||||
id="text618">can be adjusted by modifying the x-location of the margin guidelines.</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 776 2007)"
|
||||
id="text620">Modifications are automatically applied proportionally to all</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 776 2025)"
|
||||
id="text622">scales and weights.</text>
|
||||
<g
|
||||
transform="matrix(0.2 0 0 0.2 1289 1933)"
|
||||
id="g626">
|
||||
<path
|
||||
d="m14.209 9.32617 8.49609 8.54492c4.29688 4.3457 9.22852 4.05273 13.8672-1.07422l53.4668-58.9355-4.83398-4.88281-53.0762 58.3984c-1.75781 2.00195-3.41797 2.49023-5.76172 0.146484l-5.85938-5.81055c-2.34375-2.29492-1.80664-4.00391 0.195312-5.81055l57.373-54.0039-4.88281-4.83398-57.959 54.4434c-4.93164 4.58984-5.32227 9.47266-1.02539 13.8184Zm32.0801-90.9668c-2.09961 2.05078-2.24609 4.93164-1.07422 6.88477 1.17188 1.80664 3.4668 2.97852 6.68945 2.14844 7.32422-1.70898 14.9414-2.00195 22.0703 2.68555l-2.92969 7.27539c-1.70898 4.15039-0.830078 7.08008 1.85547 9.81445l11.4746 11.5723c2.44141 2.44141 4.49219 2.53906 7.32422 2.05078l5.32227-0.976562 3.32031 3.36914-0.195312 2.7832c-0.195312 2.49023 0.439453 4.39453 2.88086 6.78711l3.80859 3.71094c2.39258 2.39258 5.46875 2.53906 7.8125 0.195312l14.5508-14.5996c2.34375-2.34375 2.24609-5.32227-0.146484-7.71484l-3.85742-3.80859c-2.39258-2.39258-4.24805-3.17383-6.64062-2.97852l-2.88086 0.244141-3.22266-3.17383 1.2207-5.61523c0.634766-2.83203-0.146484-5.0293-3.07617-7.95898l-10.9863-10.9375c-16.6992-16.6016-38.8672-16.2109-53.3203-1.75781Zm7.4707 1.85547c12.1582-8.88672 28.6133-7.37305 39.7461 3.75977l12.1582 12.0605c1.17188 1.17188 1.36719 2.09961 1.02539 3.80859l-1.61133 7.42188 7.51953 7.42188 4.93164-0.292969c1.26953-0.0488281 1.66016 0.0488281 2.63672 1.02539l2.88086 2.88086-12.207 12.207-2.88086-2.88086c-0.976562-0.976562-1.12305-1.36719-1.07422-2.68555l0.341797-4.88281-7.4707-7.42188-7.61719 1.26953c-1.61133 0.341797-2.34375 0.195312-3.56445-0.976562l-10.0098-10.0098c-1.26953-1.17188-1.41602-2.00195-0.634766-3.85742l4.39453-10.4492c-7.8125-7.27539-17.9688-10.4004-28.125-7.42188-0.78125 0.195312-1.07422-0.439453-0.439453-0.976562Z"
|
||||
id="path624" />
|
||||
</g>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;"
|
||||
transform="matrix(1 0 0 1 1289 1953)"
|
||||
id="text628">Exporting</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 1289 1971)"
|
||||
id="text630">Symbols should be outlined when exporting to ensure the</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 1289 1989)"
|
||||
id="text632">design is preserved when submitting to Xcode.</text>
|
||||
<text
|
||||
id="template-version"
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;"
|
||||
transform="matrix(1 0 0 1 3036 1933)">Template v.6.0</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;"
|
||||
transform="matrix(1 0 0 1 3036 1951)"
|
||||
id="text635">Requires Xcode 16 or greater</text>
|
||||
<text
|
||||
id="descriptive-name"
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;"
|
||||
transform="matrix(1 0 0 1 3036 1969)">Generated from thermometer.variable</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;"
|
||||
transform="matrix(1 0 0 1 3036 1987)"
|
||||
id="text638">Typeset at 100.0 points</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 263 726)"
|
||||
id="text640">Small</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 263 1156)"
|
||||
id="text642">Medium</text>
|
||||
<text
|
||||
style="stroke:none;fill:black;font-family:sans-serif;font-size:13;"
|
||||
transform="matrix(1 0 0 1 263 1586)"
|
||||
id="text644">Large</text>
|
||||
</g>
|
||||
<g
|
||||
id="Guides">
|
||||
<g
|
||||
id="H-reference"
|
||||
style="fill:#27AAE1;stroke:none;"
|
||||
transform="matrix(1 0 0 1 339 696)">
|
||||
<path
|
||||
d="M0.993654 0L3.63775 0L29.3281-67.1323L30.0303-67.1323L30.0303-70.459L28.1226-70.459ZM11.6885-24.4799L46.9815-24.4799L46.2315-26.7285L12.4385-26.7285ZM55.1196 0L57.7637 0L30.6382-70.459L29.4326-70.459L29.4326-67.1323Z"
|
||||
id="path647" />
|
||||
</g>
|
||||
<line
|
||||
id="Baseline-S"
|
||||
style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;"
|
||||
x1="263"
|
||||
x2="3036"
|
||||
y1="696"
|
||||
y2="696" />
|
||||
<line
|
||||
id="Capline-S"
|
||||
style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;"
|
||||
x1="263"
|
||||
x2="3036"
|
||||
y1="625.541"
|
||||
y2="625.541" />
|
||||
<g
|
||||
id="g654"
|
||||
style="fill:#27AAE1;stroke:none;"
|
||||
transform="matrix(1 0 0 1 339 1126)">
|
||||
<path
|
||||
d="M0.993654 0L3.63775 0L29.3281-67.1323L30.0303-67.1323L30.0303-70.459L28.1226-70.459ZM11.6885-24.4799L46.9815-24.4799L46.2315-26.7285L12.4385-26.7285ZM55.1196 0L57.7637 0L30.6382-70.459L29.4326-70.459L29.4326-67.1323Z"
|
||||
id="path652" />
|
||||
</g>
|
||||
<line
|
||||
id="Baseline-M"
|
||||
style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;"
|
||||
x1="263"
|
||||
x2="3036"
|
||||
y1="1126"
|
||||
y2="1126" />
|
||||
<line
|
||||
id="Capline-M"
|
||||
style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;"
|
||||
x1="263"
|
||||
x2="3036"
|
||||
y1="1055.54"
|
||||
y2="1055.54" />
|
||||
<g
|
||||
id="g660"
|
||||
style="fill:#27AAE1;stroke:none;"
|
||||
transform="matrix(1 0 0 1 339 1556)">
|
||||
<path
|
||||
d="M0.993654 0L3.63775 0L29.3281-67.1323L30.0303-67.1323L30.0303-70.459L28.1226-70.459ZM11.6885-24.4799L46.9815-24.4799L46.2315-26.7285L12.4385-26.7285ZM55.1196 0L57.7637 0L30.6382-70.459L29.4326-70.459L29.4326-67.1323Z"
|
||||
id="path658" />
|
||||
</g>
|
||||
<line
|
||||
id="Baseline-L"
|
||||
style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;"
|
||||
x1="263"
|
||||
x2="3036"
|
||||
y1="1556"
|
||||
y2="1556" />
|
||||
<line
|
||||
id="Capline-L"
|
||||
style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;"
|
||||
x1="263"
|
||||
x2="3036"
|
||||
y1="1485.54"
|
||||
y2="1485.54" />
|
||||
<line
|
||||
id="right-margin-Black-S"
|
||||
style="opacity:1;fill:none;stroke:#00aeef;stroke-width:0.5"
|
||||
x1="2994.5601"
|
||||
x2="2994.5601"
|
||||
y1="600.78497"
|
||||
y2="720.12097" />
|
||||
<line
|
||||
id="left-margin-Black-S"
|
||||
style="opacity:1;fill:none;stroke:#00aeef;stroke-width:0.5"
|
||||
x1="2882.24"
|
||||
x2="2882.24"
|
||||
y1="600.78497"
|
||||
y2="720.12097" />
|
||||
<line
|
||||
id="right-margin-Regular-S"
|
||||
style="opacity:1;fill:none;stroke:#00aeef;stroke-width:0.5"
|
||||
x1="1492"
|
||||
x2="1492"
|
||||
y1="600.78497"
|
||||
y2="720.12097" />
|
||||
<line
|
||||
id="left-margin-Regular-S"
|
||||
style="opacity:1;fill:none;stroke:#00aeef;stroke-width:0.5"
|
||||
x1="1395.6899"
|
||||
x2="1395.6899"
|
||||
y1="600.78497"
|
||||
y2="720.12097" />
|
||||
<line
|
||||
id="right-margin-Ultralight-S"
|
||||
style="opacity:1;fill:none;stroke:#00aeef;stroke-width:0.5"
|
||||
x1="605.70599"
|
||||
x2="605.70599"
|
||||
y1="600.78497"
|
||||
y2="720.12097" />
|
||||
<line
|
||||
id="left-margin-Ultralight-S"
|
||||
style="opacity:1;fill:none;stroke:#00aeef;stroke-width:0.5"
|
||||
x1="513.71698"
|
||||
x2="513.71698"
|
||||
y1="600.78497"
|
||||
y2="720.12097" />
|
||||
</g>
|
||||
<g
|
||||
id="Symbols">
|
||||
<g
|
||||
id="Black-S"
|
||||
transform="matrix(1 0 0 1 2898.24 696)">
|
||||
<path
|
||||
d="m 93.819567,-0.549 c 0,2.346 -1.91,4.25 -4.25,4.25 -2.35,0 -4.25,-1.904 -4.25,-4.25 0,-0.295 -0.01,-0.589 -0.03,-0.881 -0.15,-2.341 1.62,-4.366 3.96,-4.519 2.34,-0.154 4.37,1.621 4.52,3.962 0.03,0.477 0.05,0.956 0.05,1.438 z m -5.03,-14.361 c 1.4,1.882 1.01,4.547 -0.87,5.947 -1.88,1.401 -4.55,1.011 -5.95,-0.871 -0.38,-0.515 -0.79,-1.02 -1.23,-1.516 -1.56,-1.755 -1.4,-4.443 0.36,-6 1.75,-1.556 4.44,-1.395 6,0.36 0.6,0.68 1.16,1.374 1.69,2.08 z m -11.75,-10.145 c 2.02,1.186 2.7,3.792 1.52,5.815 -1.19,2.024 -3.79,2.704 -5.82,1.518 -0.6,-0.352 -1.22,-0.695 -1.85,-1.027 -2.08,-1.088 -2.88,-3.659 -1.79,-5.737 1.09,-2.077 3.66,-2.881 5.73,-1.792 0.76,0.395 1.5,0.803 2.21,1.223 z M 5.8395672,-26.278 c 2.08,-1.089 4.6499998,-0.285 5.7399998,1.792 1.08,2.078 0.28,4.649 -1.7999998,5.737 -0.63,0.332 -1.25,0.675 -1.85,1.027 -2.02,1.186 -4.63,0.506 -5.82,-1.518 -1.17999998,-2.023 -0.5,-4.629 1.52,-5.815 0.72,-0.42 1.45,-0.828 2.21,-1.223 z m -12.26,9.288 c 1.55,-1.755 4.24,-1.916 6.00000002,-0.36 1.74999998,1.557 1.90999998,4.245 0.36,6 -0.44,0.496 -0.86,1.001 -1.24000002,1.516 -1.4,1.882 -4.06,2.272 -5.95,0.871 -1.88,-1.4 -2.27,-4.065 -0.87,-5.946 0.53,-0.707 1.09,-1.401 1.7,-2.081 z m -6.6800002,15.003 c 0.15,-2.341 2.18,-4.116 4.5200002,-3.962 2.34,0.153 4.12,2.178 3.96,4.519 -0.02,0.292 -0.03,0.586 -0.03,0.881 0,2.346 -1.9,4.25 -4.25,4.25 -2.3400002,0 -4.2500002,-1.904 -4.2500002,-4.25 0,-0.482 0.02,-0.961 0.05,-1.438 z m 53.49,13.315 c 13.96,0 25.34,-10.937 25.34,-24.951 0,-6.592 -2.44,-12.256 -6.99,-16.797 -0.73,-0.732 -0.83,-1.074 -0.83,-2.051 v -29.638 c 0,-11.182 -7.12,-18.702 -17.52,-18.702 -10.55,0 -17.63,7.52 -17.63,18.702 v 29.638 c 0,0.977 -0.1,1.367 -0.83,2.051 -4.69,4.346 -6.98,10.205 -6.98,16.797 0,14.014 11.37,24.951 25.44,24.951 z m 0,-11.474 c -7.72,0 -13.92,-6.25 -13.92,-13.965 0,-5.176 2.34,-8.985 6.3,-11.573 1.12,-0.732 1.56,-1.318 1.56,-2.832 v -33.3 c 0,-4.493 2.44,-7.471 6.06,-7.471 3.51,0 5.95,2.978 5.95,7.471 v 33.3 c 0,1.514 0.44,2.1 1.57,2.832 3.95,2.588 6.29,6.397 6.29,11.573 0,7.715 -6.2,13.965 -13.81,13.965 z m -0.05,-5.176 c 4.83,0 8.74,-3.907 8.74,-8.789 0,-3.369 -1.91,-6.153 -4.69,-7.666 -1.17,-0.635 -1.56,-1.075 -1.56,-2.832 v -10.254 c 0,-1.367 -1.13,-2.49 -2.49,-2.49 -1.37,0 -2.49,1.123 -2.49,2.49 v 10.254 c 0,1.757 -0.4,2.197 -1.57,2.832 -2.78,1.513 -4.68,4.297 -4.68,7.666 0,4.882 3.9,8.789 8.74,8.789 z m 0,-36.035 c 1.36,0 2.49,-1.123 2.49,-2.491 0,-1.367 -1.13,-2.49 -2.49,-2.49 -1.37,0 -2.49,1.123 -2.49,2.49 0,1.368 1.12,2.491 2.49,2.491 z m 0,-8.985 c 1.36,0 2.49,-1.123 2.49,-2.49 0,-1.367 -1.13,-2.49 -2.49,-2.49 -1.37,0 -2.49,1.123 -2.49,2.49 0,1.367 1.12,2.49 2.49,2.49 z m 0,-8.984 c 1.36,0 2.49,-1.123 2.49,-2.49 0,-1.368 -1.13,-2.491 -2.49,-2.491 -1.37,0 -2.49,1.123 -2.49,2.491 0,1.367 1.12,2.49 2.49,2.49 z"
|
||||
style="clip-rule:evenodd;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5px;stroke-linejoin:round;stroke-miterlimit:2"
|
||||
id="path4426" />
|
||||
</g>
|
||||
<g
|
||||
id="Regular-S"
|
||||
transform="matrix(1 0 0 1 1419.69 696)">
|
||||
<path
|
||||
d="m 70.441741,-2.1089996 c 0,1.518 -1.23,2.75 -2.75,2.75 -1.51,0 -2.75,-1.232 -2.75,-2.75 0,-0.328 -0.01,-0.654 -0.03,-0.979 -0.1,-1.515 1.05,-2.825 2.57,-2.924 1.51,-0.1 2.82,1.049 2.92,2.564 0.03,0.444 0.04,0.891 0.04,1.339 z m -4.73,-13.4640004 c 0.91,1.217 0.66,2.941 -0.56,3.848 -1.22,0.906 -2.94,0.653 -3.85,-0.564 -0.41,-0.549 -0.85,-1.088 -1.32,-1.616 -1,-1.136 -0.9,-2.875 0.24,-3.882 1.13,-1.007 2.87,-0.903 3.88,0.232 0.57,0.648 1.11,1.309 1.61,1.982 z m -11.3,-9.748 c 1.31,0.768 1.75,2.454 0.98,3.763 -0.77,1.31 -2.45,1.75 -3.76,0.982 -0.63,-0.364 -1.26,-0.718 -1.92,-1.061 -1.34,-0.704 -1.86,-2.368 -1.16,-3.712 0.7,-1.345 2.37,-1.864 3.71,-1.16 0.74,0.384 1.45,0.78 2.15,1.188 z m -58.7500004,-1.188 c 1.34,-0.704 3.01,-0.185 3.71,1.16 0.71,1.344 0.19,3.008 -1.16,3.712 -0.65,0.343 -1.29,0.697 -1.91,1.061 -1.31,0.768 -3,0.328 -3.77,-0.982 -0.76,-1.309 -0.32,-2.995 0.98,-3.763 0.7,-0.408 1.42,-0.804 2.15,-1.188 z m -11.8399996,8.954 c 1.01,-1.135 2.75,-1.239 3.89,-0.232 1.13,1.007 1.24,2.746 0.23,3.882 -0.47,0.528 -0.91,1.067 -1.32,1.616 -0.9,1.217 -2.63,1.47 -3.85,0.564 -1.21,-0.907 -1.47,-2.631 -0.56,-3.848 0.5,-0.673 1.04,-1.334 1.61,-1.982 z m -6.3,14.1070004 c 0.1,-1.515 1.41,-2.664 2.93,-2.564 1.51,0.099 2.66,1.409 2.56,2.924 -0.02,0.325 -0.03,0.651 -0.03,0.979 0,1.518 -1.23,2.75 -2.75,2.75 -1.52,0 -2.75,-1.232 -2.75,-2.75 0,-0.448 0.01,-0.895 0.04,-1.339 z m 46.47,10.772 c 11.23,0 20.36,-9.131 20.36,-20.3610004 0,-5.908 -2.44,-11.084 -6.98,-15.283 -0.79,-0.733 -0.93,-1.123 -0.93,-2.149 v -33.789 c 0,-8.154 -5.03,-13.623 -12.45,-13.623 -7.48,0 -12.55,5.469 -12.55,13.623 v 33.789 c 0,1.026 -0.15,1.416 -0.88,2.149 -4.5400004,4.199 -6.9800004,9.375 -6.9800004,15.283 0,11.2300004 9.1300004,20.3610004 20.4100004,20.3610004 z m 0,-6.347 c -7.77,0 -14.0200004,-6.299 -14.0200004,-14.0140004 0,-4.736 2.3000004,-9.033 6.3000004,-11.67 1.12,-0.732 1.56,-1.367 1.56,-2.881 v -36.377 c 0,-4.541 2.49,-7.519 6.16,-7.519 3.61,0 6.05,2.978 6.05,7.519 v 36.377 c 0,1.514 0.49,2.149 1.61,2.881 3.96,2.637 6.3,6.934 6.3,11.67 0,7.7150004 -6.25,14.0140004 -13.96,14.0140004 z m -0.05,-5.176 c 4.93,0 8.88,-3.955 8.88,-8.8870004 0,-3.418 -1.95,-6.25 -4.73,-7.764 -1.22,-0.683 -1.61,-1.123 -1.61,-2.88 v -13.819 c 0,-1.416 -1.13,-2.539 -2.54,-2.539 -1.37,0 -2.49,1.123 -2.49,2.539 v 13.819 c 0,1.757 -0.39,2.197 -1.62,2.88 -2.83,1.514 -4.73,4.346 -4.73,7.764 0,4.9320004 3.95,8.8870004 8.84,8.8870004 z m 0,-39.6000004 c 1.41,0 2.54,-1.172 2.54,-2.539 0,-1.416 -1.13,-2.539 -2.54,-2.539 -1.37,0 -2.49,1.123 -2.49,2.539 0,1.367 1.12,2.539 2.49,2.539 z m 0,-8.838 c 1.41,0 2.54,-1.172 2.54,-2.539 0,-1.416 -1.13,-2.539 -2.54,-2.539 -1.37,0 -2.49,1.123 -2.49,2.539 0,1.367 1.12,2.539 2.49,2.539 z m 0,-8.789 c 1.41,0 2.54,-1.172 2.54,-2.539 0,-1.416 -1.13,-2.539 -2.54,-2.539 -1.37,0 -2.49,1.123 -2.49,2.539 0,1.367 1.12,2.539 2.49,2.539 z"
|
||||
style="clip-rule:evenodd;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5px;stroke-linejoin:round;stroke-miterlimit:2"
|
||||
id="path4429" />
|
||||
</g>
|
||||
<g
|
||||
id="Ultralight-S"
|
||||
transform="matrix(1 0 0 1 531.717 696)">
|
||||
<path
|
||||
d="m 70.343736,-2.1090003 c 0,-0.4319999 -0.014,-0.8619999 -0.042,-1.2899999 -0.073,-1.102 -1.026,-1.937 -2.127,-1.865 -1.101,0.072 -1.937,1.025 -1.865,2.127 0.023,0.341 0.034,0.684 0.034,1.0279999 0,1.104 0.896,2.0000001 2,2.0000001 1.104,0 2,-0.8960001 2,-2.0000001 z M 65.759736,-15.126 c -0.488,-0.655 -1.013,-1.3 -1.573,-1.931 -0.732,-0.826 -1.997,-0.902 -2.823,-0.169 -0.826,0.732 -0.902,1.997 -0.169,2.823 0.483,0.545 0.936,1.1 1.357,1.666 0.659,0.885 1.913,1.069 2.798,0.41 0.886,-0.659 1.07,-1.913 0.41,-2.799 z m -11.082,-9.548 c -0.686,-0.402 -1.39,-0.792 -2.113,-1.171 -0.978,-0.512 -2.187,-0.134 -2.7,0.844 -0.512,0.978 -0.134,2.187 0.844,2.7 0.666,0.348 1.315,0.708 1.946,1.078 0.953,0.558 2.179,0.238 2.737,-0.714 0.558,-0.952 0.238,-2.179 -0.714,-2.737 z M 1.6577364,-25.845 c -0.72300001,0.379 -1.42800001,0.769 -2.11300001,1.171 -0.95299999,0.558 -1.27299999,1.785 -0.71399999,2.737 0.55799999,0.952 1.78399999,1.272 2.736,0.714 0.632,-0.37 1.281,-0.73 1.947,-1.078 0.978,-0.513 1.356,-1.722 0.843,-2.7 -0.512,-0.978 -1.722,-1.356 -2.699,-0.844 z m -11.622,8.788 c -0.5600004,0.631 -1.0850004,1.276 -1.5740004,1.931 -0.659,0.886 -0.475,2.14 0.41,2.799 0.886,0.659 2.1400004,0.476 2.7990004,-0.41 0.421,-0.566 0.874,-1.121 1.357,-1.666 0.733,-0.826 0.657,-2.091 -0.169,-2.823 -0.826,-0.733 -2.091,-0.657 -2.823,0.169 z m -6.1150004,13.6579998 c -0.028,0.428 -0.042,0.858 -0.042,1.2899999 0,1.104 0.896,2.0000001 2,2.0000001 1.104,0 2,-0.8960001 2,-2.0000001 0,-0.3439999 0.011,-0.6869999 0.033,-1.0279999 0.073,-1.102 -0.763,-2.055 -1.864,-2.127 -1.102,-0.072 -2.055,0.763 -2.127,1.865 z m 43.192,10.087 c 10.095,0 18.227,-8.1770001 18.227,-18.1809998 0,-5.409 -2.214,-10.131 -6.891,-13.876 -1.145,-0.914 -1.382,-1.577 -1.382,-3.192 v -38.103 c 0,-6.202 -4.121,-10.581 -9.954,-10.581 -5.836,0 -9.96,4.379 -9.96,10.581 v 38.103 c 0,1.615 -0.238,2.278 -1.379,3.192 -4.677,3.745 -6.8909996,8.467 -6.8909996,13.876 0,10.0039997 8.1319996,18.1809998 18.2299996,18.1809998 z m 0,-2.033 c -8.899,0 -16.148,-7.298 -16.148,-16.1479998 0,-4.873 2.023,-9.306 6.39,-12.487 1.395,-1.005 1.926,-2.23 1.926,-3.971 v -38.693 c 0,-4.95 3.262,-8.473 7.832,-8.473 4.567,0 7.826,3.523 7.826,8.473 v 38.693 c 0,1.741 0.534,2.966 1.929,3.971 4.364,3.181 6.39,7.614 6.39,12.487 0,8.8499998 -7.249,16.1479998 -16.145,16.1479998 z m -0.003,-5.13100005 c 6.112,0 10.975,-4.90799995 10.975,-11.02099975 0,-4.28 -2.362,-7.793 -5.917,-9.67 -1.447,-0.775 -1.929,-1.351 -1.929,-3.517 v -10.503 c 0,-1.734 -1.395,-3.13 -3.129,-3.13 -1.731,0 -3.126,1.396 -3.126,3.13 v 10.503 c 0,2.166 -0.482,2.742 -1.929,3.517 -3.559,1.877 -5.917,5.39 -5.917,9.67 0,6.1129998 4.863,11.02099975 10.972,11.02099975 z m 0,-42.05099975 c 1.734,0 3.129,-1.445 3.129,-3.175 0,-1.734 -1.395,-3.129 -3.129,-3.129 -1.731,0 -3.126,1.395 -3.126,3.129 0,1.73 1.395,3.175 3.126,3.175 z m 0,-10.473 c 1.734,0 3.129,-1.399 3.129,-3.129 0,-1.78 -1.395,-3.175 -3.129,-3.175 -1.731,0 -3.126,1.395 -3.126,3.175 0,1.73 1.395,3.129 3.126,3.129 z m 0,-10.515 c 1.734,0 3.129,-1.399 3.129,-3.129 0,-1.734 -1.395,-3.175 -3.129,-3.175 -1.731,0 -3.126,1.441 -3.126,3.175 0,1.73 1.395,3.129 3.126,3.129 z"
|
||||
style="clip-rule:evenodd;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5px;stroke-linejoin:round;stroke-miterlimit:2"
|
||||
id="path4432" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 25 KiB |
36
Meshtastic/Views/Helpers/Compact Widgets/CompactWidget.swift
Normal file
36
Meshtastic/Views/Helpers/Compact Widgets/CompactWidget.swift
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
//
|
||||
// CompactWidget.swift
|
||||
// Meshtastic
|
||||
//
|
||||
// Created by Jake Bordens on 3/14/25.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
// This file was created for the purpose of previewing
|
||||
// all of the Compact Widgets in one place.
|
||||
|
||||
// In the future, it could be used for a CompactWidget superclass, if desired.
|
||||
|
||||
#Preview {
|
||||
|
||||
let gridItemLayout = Array(repeating: GridItem(.flexible(), spacing: 10), count: 2)
|
||||
Form {
|
||||
LazyVGrid(columns: gridItemLayout) {
|
||||
HumidityCompactWidget(humidity: 27, dewPoint: "32°")
|
||||
HumidityCompactWidget(humidity: 27, dewPoint: nil)
|
||||
WeatherConditionsCompactWidget(temperature: "24°F", symbolName: "sun.rain.fill", description: "Raining")
|
||||
PressureCompactWidget(pressure: "1004.76", unit: "hPA", low: true)
|
||||
PressureCompactWidget(pressure: "1004.76", unit: "hPA", low: false)
|
||||
WindCompactWidget(speed: "12 mph", gust: "15 mph", direction: "SW")
|
||||
WindCompactWidget(speed: "12 mph", gust: nil, direction: "SW")
|
||||
WindCompactWidget(speed: "12 mph", gust: "15 mph", direction: nil)
|
||||
WindCompactWidget(speed: "12 mph", gust: nil, direction: nil)
|
||||
RadiationCompactWidget(radiation: "15", unit: "µR/hr")
|
||||
DistanceCompactWidget(distance: "123", unit: "mm")
|
||||
WeightCompactWidget(weight: "123", unit: "kg")
|
||||
SoilTemperatureCompactWidget(temperature: "23", unit: "°C")
|
||||
SoilMoistureCompactWidget(moisture: "23", unit: "%")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
//
|
||||
// CurrentConditionsCompact.swift
|
||||
// Meshtastic
|
||||
//
|
||||
// Copyright(c) Garth Vander Houwen 2/5/23.
|
||||
//
|
||||
import SwiftUI
|
||||
|
||||
struct CurrentConditionsCompact: View {
|
||||
var temp: Float
|
||||
var condition: WeatherConditions
|
||||
|
||||
var body: some View {
|
||||
Label("\(String(temp.formattedTemperature()))", systemImage: condition.symbolName)
|
||||
.font(.caption)
|
||||
.foregroundColor(.gray)
|
||||
.symbolRenderingMode(.multicolor)
|
||||
}
|
||||
}
|
||||
|
||||
struct CurrentConditionsCompact_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
|
||||
VStack {
|
||||
CurrentConditionsCompact(temp: 22, condition: WeatherConditions.clear)
|
||||
CurrentConditionsCompact(temp: 17, condition: WeatherConditions.cloudy)
|
||||
CurrentConditionsCompact(temp: -5, condition: WeatherConditions.frigid)
|
||||
CurrentConditionsCompact(temp: 38, condition: WeatherConditions.hot)
|
||||
CurrentConditionsCompact(temp: 10, condition: WeatherConditions.rain)
|
||||
CurrentConditionsCompact(temp: 30, condition: WeatherConditions.smoky)
|
||||
CurrentConditionsCompact(temp: -2, condition: WeatherConditions.snow)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
//
|
||||
// DistanceCompactWidget.swift
|
||||
// Meshtastic
|
||||
//
|
||||
// Created by Jake Bordens on 3/14/25.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct DistanceCompactWidget: View {
|
||||
let distance: String
|
||||
let unit: String
|
||||
|
||||
var body: some View {
|
||||
VStack(alignment: .leading) {
|
||||
HStack(alignment: .firstTextBaseline) {
|
||||
Image(systemName: "ruler")
|
||||
.imageScale(.small)
|
||||
.foregroundColor(.accentColor)
|
||||
Text("Distance")
|
||||
.textCase(.uppercase)
|
||||
.font(.callout)
|
||||
}
|
||||
HStack {
|
||||
Text("\(distance)")
|
||||
.font(distance.length < 4 ? .system(size: 50) : .system(size: 40) )
|
||||
Text(unit)
|
||||
.font(.system(size: 14))
|
||||
}
|
||||
}
|
||||
.frame(minWidth: 100, idealWidth: 125, maxWidth: 150, minHeight: 120, idealHeight: 130, maxHeight: 140)
|
||||
.padding()
|
||||
.background(.tertiary, in: RoundedRectangle(cornerRadius: 20, style: .continuous))
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
DistanceCompactWidget(distance: "123", unit: "mm")
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
//
|
||||
// HumidityCompactWidget.swift
|
||||
// Meshtastic
|
||||
//
|
||||
// Created by Jake Bordens on 3/14/25.
|
||||
//
|
||||
import SwiftUI
|
||||
|
||||
struct HumidityCompactWidget: View {
|
||||
let humidity: Int
|
||||
let dewPoint: String?
|
||||
var body: some View {
|
||||
VStack(alignment: .leading) {
|
||||
HStack(spacing: 5.0) {
|
||||
Image(systemName: "humidity")
|
||||
.foregroundColor(.accentColor)
|
||||
.font(.callout)
|
||||
Text("Humidity")
|
||||
.textCase(.uppercase)
|
||||
.font(.caption)
|
||||
}
|
||||
Text("\(humidity)%")
|
||||
.font(.largeTitle)
|
||||
.padding(.bottom, 5)
|
||||
if let dewPoint {
|
||||
Text("The dew point is \(dewPoint) right now.")
|
||||
.lineLimit(3)
|
||||
.allowsTightening(true)
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
.font(.caption2)
|
||||
}
|
||||
}
|
||||
.frame(minWidth: 100, idealWidth: 125, maxWidth: 150, minHeight: 120, idealHeight: 130, maxHeight: 140)
|
||||
.padding()
|
||||
.background(.tertiary, in: RoundedRectangle(cornerRadius: 20, style: .continuous))
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
let gridItemLayout = Array(repeating: GridItem(.flexible(), spacing: 10), count: 2)
|
||||
Form {
|
||||
LazyVGrid(columns: gridItemLayout) {
|
||||
HumidityCompactWidget(humidity: 27, dewPoint: "32°")
|
||||
HumidityCompactWidget(humidity: 27, dewPoint: nil)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
//
|
||||
// PressureCompactWidget.swift
|
||||
// Meshtastic
|
||||
//
|
||||
// Created by Jake Bordens on 3/14/25.
|
||||
//
|
||||
import SwiftUI
|
||||
|
||||
struct PressureCompactWidget: View {
|
||||
let pressure: String
|
||||
let unit: String
|
||||
let low: Bool
|
||||
var body: some View {
|
||||
VStack(alignment: .leading) {
|
||||
HStack(spacing: 5.0) {
|
||||
Image(systemName: "gauge")
|
||||
.foregroundColor(.accentColor)
|
||||
.font(.callout)
|
||||
Text("Pressure")
|
||||
.textCase(.uppercase)
|
||||
.font(.caption)
|
||||
}
|
||||
Text(pressure)
|
||||
.font(pressure.length < 7 ? .system(size: 35) : .system(size: 30) )
|
||||
Text(low ? "LOW" : "HIGH")
|
||||
.padding(.bottom, 10)
|
||||
Text(unit)
|
||||
}
|
||||
.frame(minWidth: 100, idealWidth: 125, maxWidth: 150, minHeight: 120, idealHeight: 130, maxHeight: 140)
|
||||
.padding()
|
||||
.background(.tertiary, in: RoundedRectangle(cornerRadius: 20, style: .continuous))
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
let gridItemLayout = Array(repeating: GridItem(.flexible(), spacing: 10), count: 2)
|
||||
Form {
|
||||
LazyVGrid(columns: gridItemLayout) {
|
||||
PressureCompactWidget(pressure: "1004.76", unit: "hPA", low: true)
|
||||
PressureCompactWidget(pressure: "1004.76", unit: "hPA", low: false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
//
|
||||
// RadiationCompactWidget.swift
|
||||
// Meshtastic
|
||||
//
|
||||
// Created by Jake Bordens on 3/14/25.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct RadiationCompactWidget: View {
|
||||
let radiation: String
|
||||
let unit: String
|
||||
|
||||
var body: some View {
|
||||
VStack(alignment: .leading) {
|
||||
HStack(alignment: .firstTextBaseline) {
|
||||
Text(verbatim: "☢")
|
||||
.font(.system(size: 30, design: .monospaced))
|
||||
.foregroundColor(.accentColor)
|
||||
Text("Radiation")
|
||||
.textCase(.uppercase)
|
||||
.font(.callout)
|
||||
}
|
||||
HStack {
|
||||
Text("\(radiation)")
|
||||
.font(radiation.length < 4 ? .system(size: 50) : .system(size: 34) )
|
||||
Text(unit)
|
||||
.font(.system(size: 14))
|
||||
}
|
||||
}
|
||||
.frame(minWidth: 100, idealWidth: 125, maxWidth: 150, minHeight: 120, idealHeight: 130, maxHeight: 140)
|
||||
.padding()
|
||||
.background(.tertiary, in: RoundedRectangle(cornerRadius: 20, style: .continuous))
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
RadiationCompactWidget(radiation: "15", unit: "µR/hr")
|
||||
}
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
//
|
||||
// SoilCompactWidgets.swift
|
||||
// Meshtastic
|
||||
//
|
||||
// Created by Jake Bordens on 3/14/25.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct SoilTemperatureCompactWidget: View {
|
||||
let temperature: String
|
||||
let unit: String
|
||||
|
||||
var body: some View {
|
||||
VStack(alignment: .leading) {
|
||||
HStack(alignment: .firstTextBaseline) {
|
||||
Image("soil.temperature")
|
||||
.imageScale(.small)
|
||||
.foregroundColor(.accentColor)
|
||||
Text("Soil Temp")
|
||||
.textCase(.uppercase)
|
||||
.font(.callout)
|
||||
}
|
||||
HStack {
|
||||
Text("\(temperature)")
|
||||
.font(temperature.length < 4 ? .system(size: 50) : .system(size: 40) )
|
||||
Text(unit)
|
||||
.font(.system(size: 14))
|
||||
}
|
||||
}
|
||||
.frame(minWidth: 100, idealWidth: 125, maxWidth: 150, minHeight: 120, idealHeight: 130, maxHeight: 140)
|
||||
.padding()
|
||||
.background(.tertiary, in: RoundedRectangle(cornerRadius: 20, style: .continuous))
|
||||
}
|
||||
}
|
||||
|
||||
struct SoilMoistureCompactWidget: View {
|
||||
let moisture: String
|
||||
let unit: String
|
||||
|
||||
var body: some View {
|
||||
VStack(alignment: .leading) {
|
||||
HStack(alignment: .firstTextBaseline) {
|
||||
Image("soil.moisture")
|
||||
.imageScale(.small)
|
||||
.foregroundColor(.accentColor)
|
||||
Text("Soil Moisture")
|
||||
.textCase(.uppercase)
|
||||
.font(.callout)
|
||||
}
|
||||
HStack {
|
||||
Text("\(moisture)")
|
||||
.font(moisture.length < 4 ? .system(size: 50) : .system(size: 40) )
|
||||
Text(unit)
|
||||
.font(.system(size: 14))
|
||||
}
|
||||
}
|
||||
.frame(minWidth: 100, idealWidth: 125, maxWidth: 150, minHeight: 120, idealHeight: 130, maxHeight: 140)
|
||||
.padding()
|
||||
.background(.tertiary, in: RoundedRectangle(cornerRadius: 20, style: .continuous))
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
let gridItemLayout = Array(repeating: GridItem(.flexible(), spacing: 10), count: 2)
|
||||
Form {
|
||||
LazyVGrid(columns: gridItemLayout) {
|
||||
SoilTemperatureCompactWidget(temperature: "23", unit: "°C")
|
||||
SoilMoistureCompactWidget(moisture: "23", unit: "%")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
//
|
||||
// WeatherConditionsCompactWidget.swift
|
||||
// Meshtastic
|
||||
//
|
||||
// Created by Jake Bordens on 3/14/25.
|
||||
//
|
||||
import SwiftUI
|
||||
|
||||
struct WeatherConditionsCompactWidget: View {
|
||||
let temperature: String
|
||||
let symbolName: String
|
||||
let description: String
|
||||
var body: some View {
|
||||
VStack(alignment: .leading) {
|
||||
HStack(spacing: 5.0) {
|
||||
Image(systemName: symbolName)
|
||||
.foregroundColor(.accentColor)
|
||||
.font(.callout)
|
||||
Text(description)
|
||||
.lineLimit(2)
|
||||
.allowsTightening(/*@START_MENU_TOKEN@*/true/*@END_MENU_TOKEN@*/)
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
.font(.caption)
|
||||
}
|
||||
Text(temperature)
|
||||
.font(temperature.length < 4 ? .system(size: 72) : .system(size: 54) )
|
||||
}
|
||||
.frame(minWidth: 100, idealWidth: 125, maxWidth: 150, minHeight: 120, idealHeight: 130, maxHeight: 140)
|
||||
.padding()
|
||||
.background(.tertiary, in: RoundedRectangle(cornerRadius: 20, style: .continuous))
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
let gridItemLayout = Array(repeating: GridItem(.flexible(), spacing: 10), count: 2)
|
||||
Form {
|
||||
LazyVGrid(columns: gridItemLayout) {
|
||||
WeatherConditionsCompactWidget(temperature: "24°F", symbolName: "sun.rain.fill", description: "Raining")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
//
|
||||
// WeightCompactWidget.swift
|
||||
// Meshtastic
|
||||
//
|
||||
// Created by Jake Bordens on 3/14/25.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct WeightCompactWidget: View {
|
||||
let weight: String
|
||||
let unit: String
|
||||
|
||||
var body: some View {
|
||||
VStack(alignment: .leading) {
|
||||
HStack(alignment: .firstTextBaseline) {
|
||||
Image(systemName: "scalemass")
|
||||
.imageScale(.small)
|
||||
.foregroundColor(.accentColor)
|
||||
Text("Weight")
|
||||
.textCase(.uppercase)
|
||||
.font(.callout)
|
||||
}
|
||||
HStack {
|
||||
Text("\(weight)")
|
||||
.font(weight.length < 4 ? .system(size: 50) : .system(size: 40) )
|
||||
Text(unit)
|
||||
.font(.system(size: 14))
|
||||
}
|
||||
}
|
||||
.frame(minWidth: 100, idealWidth: 125, maxWidth: 150, minHeight: 120, idealHeight: 130, maxHeight: 140)
|
||||
.padding()
|
||||
.background(.tertiary, in: RoundedRectangle(cornerRadius: 20, style: .continuous))
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
WeightCompactWidget(weight: "123", unit: "kg")
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
//
|
||||
// WindCompactWidget.swift
|
||||
// Meshtastic
|
||||
//
|
||||
// Created by Jake Bordens on 3/14/25.
|
||||
//
|
||||
import SwiftUI
|
||||
|
||||
struct WindCompactWidget: View {
|
||||
let speed: String
|
||||
let gust: String?
|
||||
let direction: String?
|
||||
|
||||
var body: some View {
|
||||
let hasGust = ((gust ?? "").isEmpty == false)
|
||||
VStack(alignment: .leading) {
|
||||
Label { Text("Wind").textCase(.uppercase) } icon: { Image(systemName: "wind").foregroundColor(.accentColor) }
|
||||
if let direction {
|
||||
Text("\(direction)")
|
||||
.font(!hasGust ? .callout : .caption)
|
||||
.padding(.bottom, 10)
|
||||
}
|
||||
Text(speed)
|
||||
.font(.system(size: 35))
|
||||
if let gust, !gust.isEmpty {
|
||||
Text("Gusts \(gust)")
|
||||
}
|
||||
}
|
||||
.frame(minWidth: 100, idealWidth: 125, maxWidth: 150, minHeight: 120, idealHeight: 130, maxHeight: 140)
|
||||
.padding()
|
||||
.background(.tertiary, in: RoundedRectangle(cornerRadius: 20, style: .continuous))
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
let gridItemLayout = Array(repeating: GridItem(.flexible(), spacing: 10), count: 2)
|
||||
Form {
|
||||
LazyVGrid(columns: gridItemLayout) {
|
||||
WindCompactWidget(speed: "12 mph", gust: "15 mph", direction: "SW")
|
||||
WindCompactWidget(speed: "12 mph", gust: nil, direction: "SW")
|
||||
WindCompactWidget(speed: "12 mph", gust: "15 mph", direction: nil)
|
||||
WindCompactWidget(speed: "12 mph", gust: nil, direction: nil)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -73,6 +73,77 @@ extension MetricsColumnList {
|
|||
}
|
||||
}),
|
||||
|
||||
// Various Lux
|
||||
MetricsTableColumn(
|
||||
id: "lux",
|
||||
keyPath: \.lux,
|
||||
name: "Lux",
|
||||
abbreviatedName: "Lux",
|
||||
minWidth: 30, maxWidth: 50,
|
||||
visible: false,
|
||||
tableBody: { _, lux in
|
||||
lux.map {
|
||||
Text("\($0.formatted(.number.grouping(.never).precision(.fractionLength(1))))")
|
||||
} ?? Text(Constants.nilValueIndicator)
|
||||
}),
|
||||
|
||||
MetricsTableColumn(
|
||||
id: "whiteLux",
|
||||
keyPath: \.whiteLux,
|
||||
name: "White Lux",
|
||||
abbreviatedName: "White",
|
||||
minWidth: 30, maxWidth: 50,
|
||||
visible: false,
|
||||
tableBody: { _, lux in
|
||||
lux.map {
|
||||
Text("\($0.formatted(.number.grouping(.never).precision(.fractionLength(1))))")
|
||||
} ?? Text(Constants.nilValueIndicator)
|
||||
}),
|
||||
|
||||
MetricsTableColumn(
|
||||
id: "uvLux",
|
||||
keyPath: \.uvLux,
|
||||
name: "UV Lux",
|
||||
abbreviatedName: "UV",
|
||||
minWidth: 30, maxWidth: 50,
|
||||
visible: false,
|
||||
tableBody: { _, lux in
|
||||
lux.map {
|
||||
Text("\($0.formatted(.number.grouping(.never).precision(.fractionLength(1))))")
|
||||
} ?? Text(Constants.nilValueIndicator)
|
||||
}),
|
||||
|
||||
MetricsTableColumn(
|
||||
id: "irLux",
|
||||
keyPath: \.irLux,
|
||||
name: "IR Lux",
|
||||
abbreviatedName: "IR",
|
||||
minWidth: 30, maxWidth: 50,
|
||||
visible: false,
|
||||
tableBody: { _, lux in
|
||||
lux.map {
|
||||
Text("\($0.formatted(.number.grouping(.never).precision(.fractionLength(1))))")
|
||||
} ?? Text(Constants.nilValueIndicator)
|
||||
}),
|
||||
|
||||
// Radiation
|
||||
MetricsTableColumn(
|
||||
id: "radiation",
|
||||
keyPath: \.radiation,
|
||||
name: "Radiation",
|
||||
abbreviatedName: "☢️",
|
||||
minWidth: 30, maxWidth: 50,
|
||||
visible: false,
|
||||
tableBody: { _, radiation in
|
||||
radiation.map {
|
||||
if UIDevice.current.userInterfaceIdiom == .pad || UIDevice.current.userInterfaceIdiom == .mac {
|
||||
Text(verbatim: "\($0.formatted(.number.grouping(.never).precision(.fractionLength(1)))) µR/h")
|
||||
} else {
|
||||
Text("\($0.formatted(.number.grouping(.never).precision(.fractionLength(1))))")
|
||||
}
|
||||
} ?? Text(Constants.nilValueIndicator)
|
||||
}),
|
||||
|
||||
// Wind Direction Series Configuration
|
||||
MetricsTableColumn(
|
||||
id: "windDirection",
|
||||
|
|
@ -127,6 +198,80 @@ extension MetricsColumnList {
|
|||
} ?? Text(verbatim: Constants.nilValueIndicator)
|
||||
}),
|
||||
|
||||
// Weight
|
||||
MetricsTableColumn(
|
||||
id: "weight",
|
||||
keyPath: \.weight,
|
||||
name: "Weight",
|
||||
abbreviatedName: "kg",
|
||||
minWidth: 30, maxWidth: 60,
|
||||
visible: false,
|
||||
tableBody: { _, weight in
|
||||
weight.map {
|
||||
let weight = Measurement(
|
||||
value: Double($0), unit: UnitMass.kilograms)
|
||||
return Text(
|
||||
weight.formatted(
|
||||
.measurement(
|
||||
width: .abbreviated,
|
||||
numberFormatStyle: .number.grouping(.never)
|
||||
.precision(
|
||||
.fractionLength(0))))
|
||||
)
|
||||
} ?? Text(Constants.nilValueIndicator)
|
||||
}),
|
||||
|
||||
// Distance sensor, often used for water level
|
||||
MetricsTableColumn(
|
||||
id: "distance",
|
||||
keyPath: \.distance,
|
||||
name: "Distance",
|
||||
abbreviatedName: "Dist",
|
||||
minWidth: 30, maxWidth: 50,
|
||||
visible: false,
|
||||
tableBody: { _, distance in
|
||||
distance.map {
|
||||
if UIDevice.current.userInterfaceIdiom == .pad || UIDevice.current.userInterfaceIdiom == .mac {
|
||||
Text(verbatim: "\($0.formatted(.number.grouping(.never).precision(.fractionLength(1)))) mm")
|
||||
} else {
|
||||
Text("\($0.formatted(.number.grouping(.never).precision(.fractionLength(1))))")
|
||||
}
|
||||
} ?? Text(Constants.nilValueIndicator)
|
||||
}),
|
||||
|
||||
// Soil Temperature
|
||||
MetricsTableColumn(
|
||||
id: "soilTemperature",
|
||||
keyPath: \.soilTemperature,
|
||||
name: "Soil Temperature",
|
||||
abbreviatedName: "Soil Temp",
|
||||
minWidth: 30, maxWidth: 50,
|
||||
visible: false,
|
||||
tableBody: { _, soilTemperature in
|
||||
soilTemperature.map {
|
||||
Text($0.formattedTemperature())
|
||||
} ?? Text(verbatim: Constants.nilValueIndicator)
|
||||
|
||||
}),
|
||||
|
||||
// Soil Moisture
|
||||
MetricsTableColumn(
|
||||
id: "soilMoisture",
|
||||
keyPath: \.soilMoisture,
|
||||
name: "Soil Moisture",
|
||||
abbreviatedName: "Moist",
|
||||
minWidth: 30, maxWidth: 50,
|
||||
visible: false,
|
||||
tableBody: { _, moisture in
|
||||
moisture.map {
|
||||
if UIDevice.current.userInterfaceIdiom == .pad || UIDevice.current.userInterfaceIdiom == .mac {
|
||||
Text("\($0.formatted(.number.grouping(.never).precision(.fractionLength(0))))%")
|
||||
} else {
|
||||
Text("\($0.formatted(.number.grouping(.never).precision(.fractionLength(0))))")
|
||||
}
|
||||
} ?? Text(Constants.nilValueIndicator)
|
||||
}),
|
||||
|
||||
// Timestamp Series Configuration -- for use in table only
|
||||
MetricsTableColumn(
|
||||
id: "time",
|
||||
|
|
|
|||
|
|
@ -63,9 +63,9 @@ extension MetricsSeriesList {
|
|||
abbreviatedName: "Hum",
|
||||
initialYAxisRange: 0.0...100.0,
|
||||
foregroundStyle: { _ in
|
||||
.linearGradient(
|
||||
colors: [Color(UIColor.purple.darker(componentDelta: 0.2)), .purple],
|
||||
startPoint: .bottom, endPoint: .top
|
||||
.linearGradient(
|
||||
colors: [Color(UIColor.purple.darker(componentDelta: 0.2)), .purple],
|
||||
startPoint: .bottom, endPoint: .top
|
||||
)
|
||||
},
|
||||
chartBody: { series, _, time, humidity in
|
||||
|
|
@ -80,7 +80,7 @@ extension MetricsSeriesList {
|
|||
.alignsMarkStylesWithPlotArea()
|
||||
}
|
||||
}),
|
||||
|
||||
|
||||
// Barometric Pressure Series Configuration
|
||||
MetricsChartSeries(
|
||||
id: "barometricPressure",
|
||||
|
|
@ -89,10 +89,10 @@ extension MetricsSeriesList {
|
|||
abbreviatedName: "Bar",
|
||||
visible: false,
|
||||
foregroundStyle: { _ in
|
||||
.linearGradient(
|
||||
colors: [Color(UIColor.green.darker(componentDelta: 0.3)), .green],
|
||||
startPoint: .bottom, endPoint: .top
|
||||
)
|
||||
.linearGradient(
|
||||
colors: [Color(UIColor.green.darker(componentDelta: 0.3)), .green],
|
||||
startPoint: .bottom, endPoint: .top
|
||||
)
|
||||
},
|
||||
chartBody: { series, _, time, pressure in
|
||||
if let pressure {
|
||||
|
|
@ -106,7 +106,7 @@ extension MetricsSeriesList {
|
|||
.alignsMarkStylesWithPlotArea()
|
||||
}
|
||||
}),
|
||||
|
||||
|
||||
// Indoor Air Quality Series Configuration
|
||||
MetricsChartSeries(
|
||||
id: "iaq",
|
||||
|
|
@ -134,6 +134,241 @@ extension MetricsSeriesList {
|
|||
.alignsMarkStylesWithPlotArea()
|
||||
}
|
||||
}),
|
||||
|
||||
// Lux
|
||||
MetricsChartSeries(
|
||||
id: "lux",
|
||||
keyPath: \.lux,
|
||||
name: "Lux",
|
||||
abbreviatedName: "Lux",
|
||||
visible: false,
|
||||
foregroundStyle: { _ in
|
||||
.linearGradient(
|
||||
colors: [Color(UIColor.cyan.lighter(componentDelta: 0.3)), .cyan],
|
||||
startPoint: .bottom, endPoint: .top
|
||||
)
|
||||
},
|
||||
chartBody: { series, _, time, lux in
|
||||
if let lux {
|
||||
LineMark(
|
||||
x: .value("Time", time),
|
||||
y: .value(series.abbreviatedName, lux)
|
||||
)
|
||||
.interpolationMethod(.catmullRom)
|
||||
.foregroundStyle(by: .value("Series", series.abbreviatedName))
|
||||
.lineStyle(StrokeStyle(lineWidth: 4))
|
||||
.alignsMarkStylesWithPlotArea()
|
||||
}
|
||||
}),
|
||||
|
||||
// White Lux
|
||||
MetricsChartSeries(
|
||||
id: "whiteLux",
|
||||
keyPath: \.whiteLux,
|
||||
name: "White Lux",
|
||||
abbreviatedName: "White",
|
||||
visible: false,
|
||||
foregroundStyle: { _ in
|
||||
.linearGradient(
|
||||
colors: [Color(UIColor.cyan.lighter(componentDelta: 0.5)), Color(UIColor.cyan.lighter(componentDelta: 0.2))],
|
||||
startPoint: .bottom, endPoint: .top
|
||||
)
|
||||
},
|
||||
chartBody: { series, _, time, lux in
|
||||
if let lux {
|
||||
LineMark(
|
||||
x: .value("Time", time),
|
||||
y: .value(series.abbreviatedName, lux)
|
||||
)
|
||||
.interpolationMethod(.catmullRom)
|
||||
.foregroundStyle(by: .value("Series", series.abbreviatedName))
|
||||
.lineStyle(StrokeStyle(lineWidth: 4))
|
||||
.alignsMarkStylesWithPlotArea()
|
||||
}
|
||||
}),
|
||||
|
||||
// UV Lux
|
||||
MetricsChartSeries(
|
||||
id: "uvLux",
|
||||
keyPath: \.uvLux,
|
||||
name: "UV Lux",
|
||||
abbreviatedName: "UV",
|
||||
visible: false,
|
||||
foregroundStyle: { _ in
|
||||
.linearGradient(
|
||||
colors: [Color(UIColor.systemIndigo.lighter(componentDelta: 0.4)), Color(UIColor.systemIndigo.lighter(componentDelta: 0.2))],
|
||||
startPoint: .bottom, endPoint: .top
|
||||
)
|
||||
},
|
||||
chartBody: { series, _, time, lux in
|
||||
if let lux {
|
||||
LineMark(
|
||||
x: .value("Time", time),
|
||||
y: .value(series.abbreviatedName, lux)
|
||||
)
|
||||
.interpolationMethod(.catmullRom)
|
||||
.foregroundStyle(by: .value("Series", series.abbreviatedName))
|
||||
.lineStyle(StrokeStyle(lineWidth: 4))
|
||||
.alignsMarkStylesWithPlotArea()
|
||||
}
|
||||
}),
|
||||
|
||||
// IR Lux
|
||||
MetricsChartSeries(
|
||||
id: "irLux",
|
||||
keyPath: \.irLux,
|
||||
name: "IR Lux",
|
||||
abbreviatedName: "IR",
|
||||
visible: false,
|
||||
foregroundStyle: { _ in
|
||||
.linearGradient(
|
||||
colors: [Color(UIColor.red.darker(componentDelta: 0.5)), .red],
|
||||
startPoint: .bottom, endPoint: .top
|
||||
)
|
||||
},
|
||||
chartBody: { series, _, time, lux in
|
||||
if let lux {
|
||||
LineMark(
|
||||
x: .value("Time", time),
|
||||
y: .value(series.abbreviatedName, lux)
|
||||
)
|
||||
.interpolationMethod(.catmullRom)
|
||||
.foregroundStyle(by: .value("Series", series.abbreviatedName))
|
||||
.lineStyle(StrokeStyle(lineWidth: 4))
|
||||
.alignsMarkStylesWithPlotArea()
|
||||
}
|
||||
}),
|
||||
|
||||
// Radiation
|
||||
MetricsChartSeries(
|
||||
id: "radiation",
|
||||
keyPath: \.radiation,
|
||||
name: "Radiation",
|
||||
abbreviatedName: "☢️",
|
||||
minumumYAxisSpan: 20.0,
|
||||
visible: false,
|
||||
foregroundStyle: { _ in
|
||||
.linearGradient(
|
||||
colors: [Color(UIColor.orange.darker(componentDelta: 0.4)), .orange],
|
||||
startPoint: .bottom, endPoint: .top
|
||||
)
|
||||
},
|
||||
chartBody: { series, _, time, radiation in
|
||||
if let radiation {
|
||||
LineMark(
|
||||
x: .value("Time", time),
|
||||
y: .value(series.abbreviatedName, radiation)
|
||||
)
|
||||
.interpolationMethod(.catmullRom)
|
||||
.foregroundStyle(by: .value("Series", series.abbreviatedName))
|
||||
.lineStyle(StrokeStyle(lineWidth: 4))
|
||||
.alignsMarkStylesWithPlotArea()
|
||||
}
|
||||
}),
|
||||
|
||||
// Weight
|
||||
MetricsChartSeries(
|
||||
id: "weight",
|
||||
keyPath: \.weight,
|
||||
name: "Weight",
|
||||
abbreviatedName: "kg",
|
||||
visible: false,
|
||||
foregroundStyle: { _ in
|
||||
.linearGradient(
|
||||
colors: [Color(UIColor.systemPink.darker(componentDelta: 0.5)), .pink],
|
||||
startPoint: .bottom, endPoint: .top
|
||||
)
|
||||
},
|
||||
chartBody: { series, _, time, weight in
|
||||
if let weight {
|
||||
LineMark(
|
||||
x: .value("Time", time),
|
||||
y: .value(series.abbreviatedName, weight)
|
||||
)
|
||||
.interpolationMethod(.catmullRom)
|
||||
.foregroundStyle(by: .value("Series", series.abbreviatedName))
|
||||
.lineStyle(StrokeStyle(lineWidth: 4))
|
||||
.alignsMarkStylesWithPlotArea()
|
||||
}
|
||||
}),
|
||||
|
||||
// Distance
|
||||
MetricsChartSeries(
|
||||
id: "distance",
|
||||
keyPath: \.distance,
|
||||
name: "Distance",
|
||||
abbreviatedName: "Dist",
|
||||
visible: false,
|
||||
foregroundStyle: { _ in
|
||||
.linearGradient(
|
||||
colors: [Color(UIColor.systemTeal.darker(componentDelta: 0.7)), Color(UIColor.systemTeal)],
|
||||
startPoint: .bottom, endPoint: .top
|
||||
)
|
||||
},
|
||||
chartBody: { series, _, time, distance in
|
||||
if let distance {
|
||||
LineMark(
|
||||
x: .value("Time", time),
|
||||
y: .value(series.abbreviatedName, distance)
|
||||
)
|
||||
.interpolationMethod(.catmullRom)
|
||||
.foregroundStyle(by: .value("Series", series.abbreviatedName))
|
||||
.lineStyle(StrokeStyle(lineWidth: 4))
|
||||
.alignsMarkStylesWithPlotArea()
|
||||
}
|
||||
}),
|
||||
|
||||
// Soil Temperature
|
||||
MetricsChartSeries(
|
||||
id: "soilTemperature",
|
||||
keyPath: \.soilTemperature,
|
||||
name: "Soil Temperature",
|
||||
abbreviatedName: "Soil Temp",
|
||||
visible: false,
|
||||
foregroundStyle: { _ in
|
||||
.linearGradient(
|
||||
colors: [Color(UIColor.brown.darker(componentDelta: 0.4)), .brown],
|
||||
startPoint: .bottom, endPoint: .top
|
||||
)
|
||||
},
|
||||
chartBody: { series, _, time, soilTemp in
|
||||
if let soilTemp {
|
||||
LineMark(
|
||||
x: .value("Time", time),
|
||||
y: .value(series.abbreviatedName, soilTemp)
|
||||
)
|
||||
.interpolationMethod(.catmullRom)
|
||||
.foregroundStyle(by: .value("Series", series.abbreviatedName))
|
||||
.lineStyle(StrokeStyle(lineWidth: 4))
|
||||
.alignsMarkStylesWithPlotArea()
|
||||
}
|
||||
}),
|
||||
|
||||
// Soil Temperature
|
||||
MetricsChartSeries(
|
||||
id: "soilMoisture",
|
||||
keyPath: \.soilMoisture,
|
||||
name: "Soil Moisture",
|
||||
abbreviatedName: "Moist",
|
||||
visible: false,
|
||||
foregroundStyle: { _ in
|
||||
.linearGradient(
|
||||
colors: [Color(UIColor.blue.darker(componentDelta: 0.4)), .brown],
|
||||
startPoint: .bottom, endPoint: .top
|
||||
)
|
||||
},
|
||||
chartBody: { series, _, time, soilMoisture in
|
||||
if let soilMoisture {
|
||||
LineMark(
|
||||
x: .value("Time", time),
|
||||
y: .value(series.abbreviatedName, soilMoisture)
|
||||
)
|
||||
.interpolationMethod(.catmullRom)
|
||||
.foregroundStyle(by: .value("Series", series.abbreviatedName))
|
||||
.lineStyle(StrokeStyle(lineWidth: 4))
|
||||
.alignsMarkStylesWithPlotArea()
|
||||
}
|
||||
}),
|
||||
|
||||
// Combined Wind Speed and Direction Series Configuration -- For use in Chart only
|
||||
MetricsChartSeries(
|
||||
|
|
@ -143,10 +378,10 @@ extension MetricsSeriesList {
|
|||
abbreviatedName: "Speed/Dir",
|
||||
visible: false,
|
||||
foregroundStyle: { _ in
|
||||
.linearGradient(
|
||||
colors: [Color(UIColor.yellow.darker(componentDelta: 0.3)), Color(UIColor.yellow.darker(componentDelta: 0.1))],
|
||||
startPoint: .bottom, endPoint: .top
|
||||
)
|
||||
.linearGradient(
|
||||
colors: [Color(UIColor.yellow.darker(componentDelta: 0.3)), Color(UIColor.yellow.darker(componentDelta: 0.1))],
|
||||
startPoint: .bottom, endPoint: .top
|
||||
)
|
||||
},
|
||||
chartBody: { series, _, time, wsad in
|
||||
if let wsad {
|
||||
|
|
@ -216,7 +451,7 @@ func generateStops(minTemp: Double, maxTemp: Double, tempUnit: UnitTemperature,
|
|||
((tempUnit == .celsius ? 20 : 68), .yellow),
|
||||
((tempUnit == .celsius ? 30 : 86), .orange),
|
||||
((tempUnit == .celsius ? 55 : 125), .red)
|
||||
]
|
||||
]
|
||||
for (stopValue, color) in stopTargets {
|
||||
let stopLocation = transform(stopValue, from: minTemp...maxTemp, to: 0...1)
|
||||
gradientStops.append(Gradient.Stop(color: color.opacity(opacity), location: stopLocation))
|
||||
|
|
|
|||
|
|
@ -246,7 +246,7 @@ struct NodeDetail: View {
|
|||
gust: node.latestEnvironmentMetrics?.windGust ?? 0.0 > 0.0 ? windGust?.formatted(.measurement(width: .abbreviated, numberFormatStyle: .number.precision(.fractionLength(0)))) : "", direction: direction)
|
||||
}
|
||||
if let radiation = node.latestEnvironmentMetrics?.radiation {
|
||||
RadiationCompactWidget(radiation: radiation.formatted(.number.precision(.fractionLength(2))), unit: "µR/hr")
|
||||
RadiationCompactWidget(radiation: radiation.formatted(.number.precision(.fractionLength(1))), unit: "µR/hr")
|
||||
}
|
||||
if let weight = node.latestEnvironmentMetrics?.weight {
|
||||
WeightCompactWidget(weight: weight.formatted(.number.precision(.fractionLength(1))), unit: "kg")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue