signalk-livedepth-plugin 0.3.17 → 0.3.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/package.json +1 -1
- package/public/js/config.js +0 -65
- package/public/js/config.js.map +2 -2
- package/public/js/render-worker.js +2 -18
- package/public/js/render-worker.js.map +2 -2
- package/public/js/renderer.js +8 -128
- package/public/js/renderer.js.map +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,17 @@ All notable changes to this project are documented here, newest first. The
|
|
|
4
4
|
format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
|
|
5
5
|
versions follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.3.18] - 2026-11-02
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- **The layer now always draws the plugin's bathymetry grid.** The History API
|
|
12
|
+
is no longer offered as a depth source in the layer's settings; the source
|
|
13
|
+
selector and its history-only window/interval fields are gone. The separate
|
|
14
|
+
History import in the plugin's server settings is unchanged — that is what
|
|
15
|
+
seeds the grid. Settings saved with the old History source migrate
|
|
16
|
+
automatically.
|
|
17
|
+
|
|
7
18
|
## [0.3.17] - 2026-11-01
|
|
8
19
|
|
|
9
20
|
### Fixed
|
package/package.json
CHANGED
package/public/js/config.js
CHANGED
|
@@ -665,7 +665,6 @@ function connectExtension(opts = {}) {
|
|
|
665
665
|
// src/web/shared/settings.ts
|
|
666
666
|
var DEFAULT_SETTINGS = {
|
|
667
667
|
enabled: true,
|
|
668
|
-
source: "history",
|
|
669
668
|
quality: "auto",
|
|
670
669
|
fullResolution: true,
|
|
671
670
|
vectorContours: true,
|
|
@@ -675,8 +674,6 @@ var DEFAULT_SETTINGS = {
|
|
|
675
674
|
minorContourWidthPx: 0.75,
|
|
676
675
|
majorContourColor: "#000000",
|
|
677
676
|
minorContourColor: "#9aa4a8",
|
|
678
|
-
historyWindowHours: 1,
|
|
679
|
-
historyResolutionS: 0.1,
|
|
680
677
|
shadeLimitMetres: 10,
|
|
681
678
|
contourIntervalMetres: 1.524,
|
|
682
679
|
minorContourMetres: 0.3048,
|
|
@@ -687,12 +684,9 @@ var DEFAULT_SETTINGS = {
|
|
|
687
684
|
safetyDepthMetres: 3
|
|
688
685
|
};
|
|
689
686
|
var ENUM_VALUES = {
|
|
690
|
-
source: ["history", "tiles"],
|
|
691
687
|
quality: ["auto", "high", "balanced", "low"]
|
|
692
688
|
};
|
|
693
689
|
var SETTINGS_BOUNDS = {
|
|
694
|
-
historyWindowHours: { min: 0.1, max: 168, step: 0.1 },
|
|
695
|
-
historyResolutionS: { min: 0.01, max: 60, step: 0.01 },
|
|
696
690
|
shadeLimitMetres: { min: 1, max: 200, step: 1 },
|
|
697
691
|
contourIntervalMetres: { min: 0.3048, max: 50, step: 0.3048 },
|
|
698
692
|
minorContourMetres: { min: 0.3048, max: 50, step: 0.3048 },
|
|
@@ -733,20 +727,6 @@ var settings = { ...DEFAULT_SETTINGS };
|
|
|
733
727
|
var depthUnit = "m";
|
|
734
728
|
var root = document.getElementById("root");
|
|
735
729
|
var FIELDS = [
|
|
736
|
-
{
|
|
737
|
-
key: "historyWindowHours",
|
|
738
|
-
label: "History window",
|
|
739
|
-
hint: "How far back to fetch depth.",
|
|
740
|
-
suffix: "h",
|
|
741
|
-
historyOnly: true
|
|
742
|
-
},
|
|
743
|
-
{
|
|
744
|
-
key: "historyResolutionS",
|
|
745
|
-
label: "Sample interval",
|
|
746
|
-
hint: "Seconds between depth samples; smaller is finer.",
|
|
747
|
-
suffix: "s",
|
|
748
|
-
historyOnly: true
|
|
749
|
-
},
|
|
750
730
|
{
|
|
751
731
|
key: "shadeLimitMetres",
|
|
752
732
|
label: "Shade limit",
|
|
@@ -862,17 +842,6 @@ var unitSymbol = () => depthUnit === "foot" ? "ft" : "m";
|
|
|
862
842
|
var toDisplay = (metres) => depthUnit === "foot" ? metres / METRES_PER_FOOT : metres;
|
|
863
843
|
var fromDisplay = (value) => depthUnit === "foot" ? value * METRES_PER_FOOT : value;
|
|
864
844
|
var round = (v) => Math.round(v * 100) / 100;
|
|
865
|
-
var historyRows = [];
|
|
866
|
-
var historyInputs = [];
|
|
867
|
-
function syncHistoryDisabled() {
|
|
868
|
-
const disabled = settings.source === "tiles";
|
|
869
|
-
for (const input of historyInputs) {
|
|
870
|
-
input.disabled = disabled;
|
|
871
|
-
}
|
|
872
|
-
for (const row of historyRows) {
|
|
873
|
-
row.classList.toggle("disabled", disabled);
|
|
874
|
-
}
|
|
875
|
-
}
|
|
876
845
|
function displayBounds(field) {
|
|
877
846
|
const b = SETTINGS_BOUNDS[field.key];
|
|
878
847
|
if (!field.depth || depthUnit !== "foot") {
|
|
@@ -919,10 +888,6 @@ function numberField(field) {
|
|
|
919
888
|
hint.textContent = field.hint;
|
|
920
889
|
wrap2.appendChild(hint);
|
|
921
890
|
}
|
|
922
|
-
if (field.historyOnly) {
|
|
923
|
-
historyRows.push(wrap2);
|
|
924
|
-
historyInputs.push(input);
|
|
925
|
-
}
|
|
926
891
|
return wrap2;
|
|
927
892
|
}
|
|
928
893
|
function toggleField(toggle) {
|
|
@@ -949,8 +914,6 @@ function toggleField(toggle) {
|
|
|
949
914
|
}
|
|
950
915
|
function build() {
|
|
951
916
|
root.replaceChildren();
|
|
952
|
-
historyRows.length = 0;
|
|
953
|
-
historyInputs.length = 0;
|
|
954
917
|
const heading = document.createElement("h2");
|
|
955
918
|
heading.textContent = "LiveDepth";
|
|
956
919
|
root.appendChild(heading);
|
|
@@ -968,33 +931,6 @@ function build() {
|
|
|
968
931
|
});
|
|
969
932
|
enabled.append(enabledName, enabledInput);
|
|
970
933
|
root.appendChild(enabled);
|
|
971
|
-
const source = document.createElement("label");
|
|
972
|
-
source.className = "field";
|
|
973
|
-
const sourceName = document.createElement("span");
|
|
974
|
-
sourceName.className = "name";
|
|
975
|
-
sourceName.textContent = "Depth source";
|
|
976
|
-
const select = document.createElement("select");
|
|
977
|
-
for (const [value, label] of [
|
|
978
|
-
["history", "History (this vessel's track)"],
|
|
979
|
-
["tiles", "LiveDepth plugin tiles"]
|
|
980
|
-
]) {
|
|
981
|
-
const option = document.createElement("option");
|
|
982
|
-
option.value = value;
|
|
983
|
-
option.textContent = label;
|
|
984
|
-
option.selected = settings.source === value;
|
|
985
|
-
select.appendChild(option);
|
|
986
|
-
}
|
|
987
|
-
select.addEventListener("change", () => {
|
|
988
|
-
settings.source = select.value;
|
|
989
|
-
syncHistoryDisabled();
|
|
990
|
-
void save();
|
|
991
|
-
});
|
|
992
|
-
source.append(sourceName, select);
|
|
993
|
-
const sourceHint = document.createElement("span");
|
|
994
|
-
sourceHint.className = "hint";
|
|
995
|
-
sourceHint.textContent = "History draws the vessel's own recorded track; tiles draw the server-built bathymetry store, extended live.";
|
|
996
|
-
source.appendChild(sourceHint);
|
|
997
|
-
root.appendChild(source);
|
|
998
934
|
for (const field of FIELDS) {
|
|
999
935
|
if (!graphicsFieldKeys.has(field.key)) {
|
|
1000
936
|
root.appendChild(numberField(field));
|
|
@@ -1023,7 +959,6 @@ function build() {
|
|
|
1023
959
|
}
|
|
1024
960
|
}
|
|
1025
961
|
}
|
|
1026
|
-
syncHistoryDisabled();
|
|
1027
962
|
}
|
|
1028
963
|
function colorField(field) {
|
|
1029
964
|
const wrap2 = document.createElement("label");
|