@mxtommy/kip 3.11.0 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/copilot-instructions.md +102 -27
- package/.github/instructions/angular.instructions.md +1 -1
- package/CHANGELOG.md +33 -2
- package/README.md +98 -78
- package/docs/widget-schematic.md +102 -0
- package/images/ChartplotterMode.png +0 -0
- package/package.json +8 -3
- package/public/3rdpartylicenses.txt +95 -69
- package/public/assets/help-docs/chartplotter.md +122 -0
- package/public/assets/help-docs/community.md +68 -0
- package/public/assets/help-docs/configuration.md +1 -1
- package/public/assets/help-docs/contact-us.md +58 -8
- package/public/assets/help-docs/dashboards.md +117 -42
- package/public/assets/help-docs/datainspector.md +1 -1
- package/public/assets/help-docs/datasets.md +1 -1
- package/public/assets/help-docs/embedwidget.md +1 -1
- package/public/assets/help-docs/grafana.md +1 -1
- package/public/assets/help-docs/influxdb.md +1 -1
- package/public/assets/help-docs/kiosk.md +30 -14
- package/public/assets/help-docs/menu.json +5 -3
- package/public/assets/help-docs/putcontrols.md +5 -5
- package/public/assets/help-docs/welcome.md +49 -23
- package/public/assets/help-docs/zones.md +1 -1
- package/public/assets/svg/icons.svg +22 -24
- package/public/{chunk-F4VOQO2M.js → chunk-4HLTLR5F.js} +1 -1
- package/public/chunk-52M2PJJL.js +4 -0
- package/public/chunk-5FWE6Y4K.js +52 -0
- package/public/{chunk-K4BST2XF.js → chunk-75QTGQOO.js} +1 -1
- package/public/{chunk-XE352AKG.js → chunk-AB255PKD.js} +1 -1
- package/public/{chunk-GMZROOAF.js → chunk-ACTDISHE.js} +1 -1
- package/public/chunk-AYVYZ27A.js +2 -0
- package/public/chunk-B3P2F52Y.js +9 -0
- package/public/{chunk-EJ4JM3HG.js → chunk-BMDGKBYM.js} +23 -23
- package/public/chunk-CTZYGIOB.js +8 -0
- package/public/chunk-CVTWABMM.js +2 -0
- package/public/chunk-CZJ7AC6N.js +1 -0
- package/public/chunk-F5X5MWHG.js +0 -0
- package/public/{chunk-TIXQ3FAF.js → chunk-HIADZ4BV.js} +1 -1
- package/public/chunk-IJ22WXFB.js +1 -0
- package/public/chunk-IPSRX374.js +1 -0
- package/public/chunk-JCW5H5WP.js +1 -0
- package/public/{chunk-I6UWIF55.js → chunk-KHL7FGID.js} +1 -1
- package/public/{chunk-ANRGX57I.js → chunk-OB3QLUH6.js} +12 -12
- package/public/{chunk-G4B4D3XR.js → chunk-OQULS6SV.js} +1 -1
- package/public/chunk-P3OU5V2Y.js +1 -0
- package/public/chunk-RYHOAWDD.js +4 -0
- package/public/chunk-SVP7ZRWY.js +5 -0
- package/public/{chunk-IZAPOSYM.js → chunk-SZ2GUIT5.js} +1 -1
- package/public/chunk-TCZ5ZAXQ.js +3 -0
- package/public/chunk-V7PWLOQ2.js +6 -0
- package/public/index.html +2 -2
- package/public/main-3LAUI5JW.js +5 -0
- package/public/scripts-7HSGK5LZ.js +14 -0
- package/public/styles-MJ4EO4B4.css +1 -0
- package/tools/schematics/collection.json +9 -0
- package/tools/schematics/create-host2-widget/files/readme/README.md.template +109 -0
- package/tools/schematics/create-host2-widget/files/spec/widget-__name@dasherize__.component.spec.ts +38 -0
- package/tools/schematics/create-host2-widget/files/widget/widget-__name@dasherize__.component.html +6 -0
- package/tools/schematics/create-host2-widget/files/widget/widget-__name@dasherize__.component.scss +5 -0
- package/tools/schematics/create-host2-widget/files/widget/widget-__name@dasherize__.component.ts.template +94 -0
- package/tools/schematics/create-host2-widget/index.js +138 -0
- package/tools/schematics/create-host2-widget/schema.json +89 -0
- package/tools/schematics/create-host2-widget/test/create-host2-widget.spec.ts +70 -0
- package/tools/schematics/create-host2-widget/utils/formatting.js +119 -0
- package/public/chunk-2MAVQD65.js +0 -3
- package/public/chunk-5MLB3PYZ.js +0 -11
- package/public/chunk-66OJ5PZF.js +0 -2
- package/public/chunk-6NRGS3BZ.js +0 -1
- package/public/chunk-FPMCI7XZ.js +0 -6
- package/public/chunk-GIZH6HIB.js +0 -2
- package/public/chunk-KPOCVRYH.js +0 -2
- package/public/chunk-N3HCHSSE.js +0 -2
- package/public/chunk-P4K222SI.js +0 -8
- package/public/chunk-PYBIMDD3.js +0 -5
- package/public/chunk-S4OKR5KN.js +0 -1
- package/public/chunk-TARCFDF4.js +0 -4
- package/public/chunk-VZ77T3BF.js +0 -4
- package/public/chunk-XFU5YJJP.js +0 -5
- package/public/main-KP322K7A.js +0 -51
- package/public/styles-PDNHT2L2.css +0 -1
|
@@ -1,42 +1,117 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
1
|
+
## Managing Dashboards
|
|
2
|
+
Dashboards let you group widgets by task—navigation, engines, energy, weather, racing, night watch, and more. This guide covers creating, organizing, and editing dashboards, plus an overview of available widget types.
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## 1. Dashboard Pages Panel
|
|
7
|
+
Open the Actions menu and select Settings.
|
|
8
|
+
|
|
9
|
+
Here you can:
|
|
10
|
+
- Add a new dashboard (+ button)
|
|
11
|
+
- Reorder dashboards (drag with touch or mouse)
|
|
12
|
+
- Rename and pick an icon (double tap or double click)
|
|
13
|
+
- Duplicate a dashboard (long press or long click → Duplicate)
|
|
14
|
+
- Delete a dashboard (long press or long click → Delete)
|
|
15
|
+
|
|
16
|
+
Choose icons that reflect each dashboard’s purpose (e.g. compass for navigation, droplet for tanks, bolt for power). Icons appear wherever dashboards are listed.
|
|
17
|
+
|
|
18
|
+
### Gesture / Action Summary
|
|
19
|
+
| Action | Touch / Mobile | Mouse / Desktop |
|
|
20
|
+
|---------------|-----------------------|------------------------|
|
|
21
|
+
| Add dashboard | Tap (+) | Click (+) |
|
|
22
|
+
| Reorder | Drag tile | Drag tile |
|
|
23
|
+
| Rename/Icon | Double tap | Double click |
|
|
24
|
+
| Duplicate | Long press → Duplicate | Long click → Duplicate |
|
|
25
|
+
| Delete | Long press → Delete | Long click → Delete |
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 2. Editing Dashboard Layouts
|
|
30
|
+
1. Navigate to the dashboard you want to change (swipe or use dashboard selector).
|
|
31
|
+
2. Open the Actions menu.
|
|
32
|
+
3. Tap the Unlock/Lock button at the bottom to toggle edit mode.
|
|
33
|
+
|
|
34
|
+
In edit mode, widgets show dashed outlines.
|
|
35
|
+
|
|
36
|
+
### What You Can Do in Edit Mode
|
|
37
|
+
- Add a widget (long press empty space → Add Widget)
|
|
38
|
+
- Move a widget (drag)
|
|
39
|
+
- Resize a widget (drag edges/corners)
|
|
40
|
+
- Configure a widget (double tap/double click)
|
|
41
|
+
- Duplicate a widget (long press → Duplicate)
|
|
42
|
+
- Delete a widget (long press → Delete, then confirm)
|
|
43
|
+
- Save changes (Check button) or discard (X button) in the lower right
|
|
44
|
+
|
|
45
|
+
Tip: If you can’t add a widget, free up space by resizing or moving existing ones first.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 3. Workflow: From Idea to Dashboard
|
|
50
|
+
1. Define the purpose (e.g. “Night Nav” = heading, COG, SOG, depth, wind, batteries, minimal brightness)
|
|
51
|
+
2. Create or duplicate a dashboard similar to what you want
|
|
52
|
+
3. Enter edit mode and add required widgets
|
|
53
|
+
4. Configure each widget’s data paths (keep sample times reasonable to reduce churn)
|
|
54
|
+
5. Arrange and size for readability at your viewing distance
|
|
55
|
+
6. Exit edit mode and test switching at real brightness/environment
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 4. Widget Gallery (Overview)
|
|
60
|
+
KIP widgets turn Signal K data into readable visuals and controls. Available widget types:
|
|
61
|
+
|
|
62
|
+
- **Numeric** – Displays numeric data in a clear and concise format, with options to show min/max values and a background minichart for trends.
|
|
63
|
+
- **Text** – Displays text data with customizable color formatting.
|
|
64
|
+
- **Date & Time** – Shows date and time with custom formatting and timezone correction.
|
|
65
|
+
- **Position** – Displays latitude and longitude for location tracking and navigation.
|
|
66
|
+
- **Static Label** – Add customizable labels to organize and clarify your dashboard layout.
|
|
67
|
+
- **Switch Panel** – Group of toggle switches, indicator lights, and press buttons for digital switching and operations.
|
|
68
|
+
- **Slider** – Range slider for adjusting values (e.g. lighting intensity).
|
|
69
|
+
- **Compact Linear** – Simple horizontal linear gauge with a large value label and modern look.
|
|
70
|
+
- **Linear** – Horizontal or vertical linear gauge with zone highlighting.
|
|
71
|
+
- **Radial** – Radial gauge with configurable dials and zone highlighting.
|
|
72
|
+
- **Compass** – Rotating compass gauge with multiple cardinal indicator options.
|
|
73
|
+
- **Level Gauge** – Dual-scale heel angle indicator for trim tuning and sea-state monitoring.
|
|
74
|
+
- **Pitch & Roll** – Horizon-style attitude indicator showing live pitch and roll degrees.
|
|
75
|
+
- **Classic Steel** – Traditional steel-look linear & radial gauges with range sizes and zone highlights.
|
|
76
|
+
- **Windsteer** – Combines wind, wind sectors, heading, COG, and waypoint info for wind steering.
|
|
77
|
+
- **Wind Trends** – Real-time True Wind trends with dual axes for direction and speed, live values, and averages.
|
|
78
|
+
- **Freeboard-SK** – Adds the Freeboard-SK chart plotter as a widget with automatic sign-in.
|
|
79
|
+
- **Autopilot Head** – Typical autopilot controls for compatible Signal K Autopilot devices.
|
|
80
|
+
- **Realtime Data Chart** – Visualizes data on a real-time chart with actuals, averages, and min/max.
|
|
81
|
+
- **Embed Webpage Viewer** – Embeds external web apps (Grafana, Node-RED, etc.) into your dashboard.
|
|
82
|
+
- **Racesteer** – Race steering display fusing polar performance data with live conditions for optimal tactics.
|
|
83
|
+
- **Racer - Start Line Insight** – Set and adjust start line ends, see distance, favored end, and line bias; integrates with Freeboard SK.
|
|
84
|
+
- **Racer - Start Timer** – Advanced racing countdown timer with OCS status and auto dashboard switching.
|
|
85
|
+
- **Countdown Timer** – Simple race start countdown timer with start, pause, sync, and reset options.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## 5. Performance & Layout Tips
|
|
90
|
+
- Favor clarity over cramming: leave space around high‑priority values
|
|
91
|
+
- Group related widgets (navigation, energy, engines, environment)
|
|
92
|
+
- Use consistent units per dashboard (e.g. all speeds in knots, all temps in °C or °F—don’t mix)
|
|
93
|
+
- For night dashboards, adjust brightness or use the all‑red theme in Settings → Options → Display
|
|
94
|
+
- Duplicate a working layout before making major changes (easy rollback)
|
|
95
|
+
- Keep sampling intervals modest (1000 ms+) unless fast reaction is essential
|
|
96
|
+
- Know your device’s hardware limits and adjust widget count per dashboard accordingly
|
|
97
|
+
- Avoid embedding too many external webpages—each adds load
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 6. Troubleshooting
|
|
102
|
+
| Issue | Possible Cause | Fix |
|
|
103
|
+
|------------------------|---------------------------------------|---------------------------------------------------------------------|
|
|
104
|
+
| Data shows “—” or blank| Path missing/not configured/null value | Open widget config, verify Signal K path exists and updates. Use Data Inspector and Signal K Data Browser to view raw data from the server. |
|
|
105
|
+
| Wrong units | Default convert unit used | Edit widget config paths and set the desired target unit. |
|
|
106
|
+
| Slow dashboard switching| Excessive data sampling/too many widgets| Increase sample times; remove unused widgets. Split widgets into separate dashboards. Optimize system resource usage. |
|
|
107
|
+
| Embedded page blank | Cross‑origin blocked | See "Embed Page Viewer" help section. |
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 7. Next Steps
|
|
112
|
+
See also:
|
|
113
|
+
- Remote Control (switch dashboards on unattended displays)
|
|
114
|
+
- Night Mode (automatic theme + brightness)
|
|
115
|
+
- Contact / Issues (report widget feature ideas)
|
|
116
|
+
|
|
117
|
+
Refine incrementally—small improvements keep dashboards readable and reliable.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
## Data Inspector
|
|
2
2
|
|
|
3
3
|
The Data Inspector is a powerful tool in KIP that allows you to view all Signal K paths and the data received from the server in real time. It provides detailed insights into the data being transmitted, including metadata, sources, and supported operations. This guide explains how to use the Data Inspector effectively.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
## Datasets and Data Chart Widget
|
|
2
2
|
|
|
3
3
|
Datasets and the Data Chart widget work together to provide real-time data visualization in KIP. They allow you to collect and display historical data trends for Signal K paths, enabling better decision-making and monitoring. This guide explains how to configure and use Datasets and the Data Chart widget effectively.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
## Using the Embed Page Viewer Widget
|
|
2
2
|
|
|
3
3
|
The Embed Page Viewer widget allows you to display external web pages or web applications directly within your dashboard. By default, the Embed Page Viewer widget does not allow input (touch, mouse and keyboard interactions) with the content in the Embed. To enable interactions, check the setting the widget's options.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
## Raspberry Pi Kiosk Mode (Chromium)
|
|
2
2
|
|
|
3
3
|
This guide launches Chromium in kiosk mode to display KIP at:
|
|
4
4
|
http://<sk_server_IP>:3000/@mxtommy/kip/#/page/0
|
|
@@ -23,16 +23,16 @@ Kiosk mode runs a single application full-screen and suppresses most desktop UI.
|
|
|
23
23
|
|
|
24
24
|
- Raspberry Pi OS with Desktop, user: `pi` (or adjust paths).
|
|
25
25
|
- Chromium installed:
|
|
26
|
-
```
|
|
26
|
+
```bash
|
|
27
27
|
sudo apt update
|
|
28
28
|
sudo apt install -y chromium-browser || sudo apt install -y chromium
|
|
29
29
|
```
|
|
30
30
|
- Optional (hide mouse cursor):
|
|
31
|
-
```
|
|
31
|
+
```bash
|
|
32
32
|
sudo apt install -y unclutter
|
|
33
33
|
```
|
|
34
34
|
- Enable Desktop autologin:
|
|
35
|
-
```
|
|
35
|
+
```bash
|
|
36
36
|
sudo raspi-config
|
|
37
37
|
```
|
|
38
38
|
System Options → Boot / Auto Login → Desktop Autologin
|
|
@@ -43,13 +43,13 @@ Kiosk mode runs a single application full-screen and suppresses most desktop UI.
|
|
|
43
43
|
|
|
44
44
|
## 2) Create the kiosk launcher script
|
|
45
45
|
|
|
46
|
-
```
|
|
46
|
+
```bash
|
|
47
47
|
sudo nano /home/pi/kiosk.sh
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
Paste:
|
|
51
51
|
|
|
52
|
-
```
|
|
52
|
+
```bash
|
|
53
53
|
#!/usr/bin/env bash
|
|
54
54
|
set -euo pipefail
|
|
55
55
|
|
|
@@ -99,9 +99,25 @@ exec "$BROWSER" \
|
|
|
99
99
|
--app="$URL"
|
|
100
100
|
```
|
|
101
101
|
|
|
102
|
-
|
|
102
|
+
Optionally, you can also add the following `exec "BROWSER" \` flags:
|
|
103
|
+
|
|
104
|
+
Force Chromium to keep all threads active and not optimyze resource usage
|
|
105
|
+
```bash
|
|
106
|
+
--disable-background-timer-throttling \
|
|
107
|
+
--disable-renderer-backgrounding \
|
|
108
|
+
--disable-backgrounding-occluded-windows
|
|
109
|
+
```
|
|
103
110
|
|
|
111
|
+
Reduce memory consumption (Pi Zero)
|
|
112
|
+
```bash
|
|
113
|
+
--disable-gpu \
|
|
114
|
+
--single-process \
|
|
115
|
+
--js-flags="--max-old-space-size=512"
|
|
104
116
|
```
|
|
117
|
+
|
|
118
|
+
Save, then:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
105
121
|
sudo chmod +x /home/pi/kiosk.sh
|
|
106
122
|
```
|
|
107
123
|
|
|
@@ -114,14 +130,14 @@ URL="http://signalk.local:3000/@mxtommy/kip/#/page/0" /home/pi/kiosk.sh
|
|
|
114
130
|
|
|
115
131
|
Create an autostart entry:
|
|
116
132
|
|
|
117
|
-
```
|
|
133
|
+
```bash
|
|
118
134
|
mkdir -p ~/.config/autostart
|
|
119
135
|
nano ~/.config/autostart/kiosk.desktop
|
|
120
136
|
```
|
|
121
137
|
|
|
122
138
|
Paste:
|
|
123
139
|
|
|
124
|
-
```
|
|
140
|
+
```ini
|
|
125
141
|
[Desktop Entry]
|
|
126
142
|
Type=Application
|
|
127
143
|
Name=KIP Kiosk
|
|
@@ -136,14 +152,14 @@ This launches after the desktop session starts.
|
|
|
136
152
|
|
|
137
153
|
Recommended if you want Chromium to restart on crash.
|
|
138
154
|
|
|
139
|
-
```
|
|
155
|
+
```bash
|
|
140
156
|
mkdir -p ~/.config/systemd/user
|
|
141
157
|
nano ~/.config/systemd/user/kiosk.service
|
|
142
158
|
```
|
|
143
159
|
|
|
144
160
|
Paste:
|
|
145
161
|
|
|
146
|
-
```
|
|
162
|
+
```ini
|
|
147
163
|
[Unit]
|
|
148
164
|
Description=KIP Chromium Kiosk
|
|
149
165
|
After=graphical-session.target network-online.target
|
|
@@ -162,13 +178,13 @@ WantedBy=graphical-session.target
|
|
|
162
178
|
|
|
163
179
|
Enable:
|
|
164
180
|
|
|
165
|
-
```
|
|
181
|
+
```bash
|
|
166
182
|
systemctl --user daemon-reload
|
|
167
183
|
systemctl --user enable --now kiosk.service
|
|
168
184
|
```
|
|
169
185
|
|
|
170
186
|
Logs (for debugging):
|
|
171
|
-
```
|
|
187
|
+
```bash
|
|
172
188
|
journalctl --user -u kiosk.service -f
|
|
173
189
|
```
|
|
174
190
|
|
|
@@ -176,7 +192,7 @@ Note: This runs after user login to the desktop. Ensure Desktop Autologin is ena
|
|
|
176
192
|
|
|
177
193
|
## 4) Reboot and verify
|
|
178
194
|
|
|
179
|
-
```
|
|
195
|
+
```bash
|
|
180
196
|
sudo reboot
|
|
181
197
|
```
|
|
182
198
|
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
{ "title": "The basics", "file": "welcome.md" },
|
|
3
3
|
{ "title": "Login & Configurations", "file": "configuration.md" },
|
|
4
4
|
{ "title": "Dashboards and Layout", "file": "dashboards.md" },
|
|
5
|
+
{ "title": "Chartplotter Mode", "file": "chartplotter.md" },
|
|
5
6
|
{ "title": "Zones, Notifications and Highlights", "file": "zones.md" },
|
|
6
7
|
{ "title": "Data Inspector", "file": "datainspector.md" },
|
|
7
|
-
{ "title": "
|
|
8
|
+
{ "title": "Digital Switching and PUT", "file": "putcontrols.md" },
|
|
8
9
|
{ "title": "The Embed Page Viewer", "file": "embedwidget.md" },
|
|
9
10
|
{ "title": "Datasets and Data Chart Widget", "file": "datasets.md" },
|
|
10
|
-
{ "title": "Gafana Integration", "file": "grafana.md" },
|
|
11
|
-
{ "title": "InfluxDB and Signal K", "file": "influxdb.md" },
|
|
12
11
|
{ "title": "Kiosk Mode", "file": "kiosk.md" },
|
|
12
|
+
{ "title": "Grafana Integration", "file": "grafana.md" },
|
|
13
|
+
{ "title": "InfluxDB and Signal K", "file": "influxdb.md" },
|
|
14
|
+
{ "title": "Online Community Content", "file": "community.md" },
|
|
13
15
|
{ "title": "Contact Us", "file": "contact-us.md" }
|
|
14
16
|
]
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
## Digital Switching and using PUT Commands
|
|
2
2
|
|
|
3
3
|
Signal K allows users to update data paths and trigger device reactions. This can include turning a light on or off, dimming it, activating a bilge pump, or other similar actions. This guide explains how to use the Switch Panel or Slider widgets to achieve this, how to verify if a path supports data reception (known as PUT-enabled in Signal K terms), and what is required to enable PUT functionality.
|
|
4
4
|
|
|
5
5
|
## What is Required to Trigger Device Reactions
|
|
6
|
-
For Signal K to accept any data from a client application, the application must be authenticated with a valid security token. Read the **Login & Configurations** help section for details on how to setup login in KIP. By default, sending data to a Signal K path only updates the value and broadcasts it to the network. No actions are taken unless
|
|
7
|
-
- Sending a PUT 'engage' command to `self.steering.autopilot.state` will update the state value, but the autopilot will not engage unless a plugin
|
|
6
|
+
For Signal K to accept any data from a client application, the application must be authenticated with a valid security token. Read the **Login & Configurations** help section for details on how to setup login in KIP. By default, sending data to a Signal K path only updates the value and broadcasts it to the network. No actions are taken unless an action handler is configured to respond to the updated value. For example:
|
|
7
|
+
- Sending a PUT 'engage' command to `self.steering.autopilot.state` will update the state value, but the autopilot will not engage unless a handler (the autopilot plugin in this case) is set up to process the command and communicate with the hardware.
|
|
8
8
|
|
|
9
|
-
To enable
|
|
9
|
+
To enable action handles, you have several options:
|
|
10
10
|
1. **Install a Plugin**:
|
|
11
|
-
- The simplest option is to look in Signal K's Appstore. There are many plugins already available in the Signal K ecosystem. Search for the plugin you need, install it, and configure it.
|
|
11
|
+
- The simplest option is to look in Signal K's Appstore. There are many plugins already available in the Signal K ecosystem such as plugins for (Shelly)[https://www.shelly.com], (Sonoff)[https://sonoff.tech/collections/diy-smart-switches] and standard N2K, like the (Yacht Devices)[https://www.yachtd.com] YDCC. Search for the plugin you need, install it, and configure it.
|
|
12
12
|
|
|
13
13
|
2. **Use Node-RED's Signal K PUT Handler**:
|
|
14
14
|
- Node-RED is a visual and easy-to-learn automation platform installed with Signal K. The Signal K team has created Signal K-specific Node-RED nodes, allowing you to easily automate your vessel. You can find Node-RED in the Webapps section of the Signal K Admin site.
|
|
@@ -56,30 +56,56 @@ You can toggle fullscreen mode on and off, and disable the screen saver and comp
|
|
|
56
56
|
## Night Mode
|
|
57
57
|
Save your night vision by automatically switching KIP to day or night mode based on sunrise and sunset hours (the Signal K Derived Data plugin is required for automatic switching). This feature can be enabled in the **Settings > Display** page. You can also manually set the mode by clicking the small Moon/Sun button in the upper right corner of the Actions menu. Note that if automatic switching is enabled, brightness will reset to the Signal K mode value.
|
|
58
58
|
|
|
59
|
+
## Chartplotter Mode
|
|
60
|
+
Keep a live Freeboard‑SK chart visible while switching dashboards for an MFD‑style workflow. The chart persists (no reload or flicker), you can choose its side, collapse it per‑dashboard for full data pages, and drag resize the split. Layout auto‑stacks in portrait / narrow screens. See the dedicated Chartplotter Mode help page for setup, performance tips, and troubleshooting.
|
|
61
|
+
|
|
59
62
|
## Multiple User Profiles and Configuration Sharing
|
|
60
63
|
KIP supports multiple user profiles, allowing different roles on board—such as captain, skipper, tactician, navigator, or engineer—to tailor the interface to their needs. Profiles can also be used to tie specific configuration arrangements to use cases or device form factors. See the Login & Configurations help sections for mode details.
|
|
61
64
|
|
|
62
65
|
## Remote Control Other KIP Displays
|
|
63
|
-
Control which dashboard is shown on another KIP instance (
|
|
64
|
-
|
|
65
|
-
Use
|
|
66
|
-
- Mast display: change dashboards from the cockpit.
|
|
67
|
-
-
|
|
68
|
-
- Headless/
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
-
|
|
83
|
-
|
|
84
|
-
-
|
|
85
|
-
-
|
|
66
|
+
Control which dashboard is shown on another KIP instance (for example: a mast display, a TV or pilot‑house screen that is hard to reach, or a device with no local input hardware).
|
|
67
|
+
|
|
68
|
+
### Typical Use Cases
|
|
69
|
+
- Mast display: change dashboards from the cockpit without going forward.
|
|
70
|
+
- Salon / TV screen: rotate between navigation and status dashboards easily.
|
|
71
|
+
- Headless / no input device: select dashboards when there is no keyboard/mouse or touch is disabled.
|
|
72
|
+
|
|
73
|
+
### Requirements
|
|
74
|
+
- Both devices must be connected to the same Signal K server.
|
|
75
|
+
- You must be logged in (authenticated) on both devices (Connectivity tab → Login to Server enabled).
|
|
76
|
+
- The target device must explicitly allow remote control (Display tab → Remote Control option group).
|
|
77
|
+
|
|
78
|
+
### Good Naming Practice
|
|
79
|
+
If multiple devices log in with the same Signal K user to share configuration, they inevitably share the same Instance Name. Whilst being confusing, it will still work. To fix this, you must use different Signal K users and set a descriptive name on each configuration (e.g. Mast Display, Helm Port, Nav Station) so you can identify them quickly.
|
|
80
|
+
|
|
81
|
+
### Setup
|
|
82
|
+
1. On the device you want to control (Target KIP)
|
|
83
|
+
- Open: Options → Display → Remote Control.
|
|
84
|
+
- Enable: Allow this KIP dashboard to be managed remotely.
|
|
85
|
+
- Set: Instance Name (this is what will appear in the controller list).
|
|
86
|
+
2. On the controlling device
|
|
87
|
+
- Open: Actions menu → Settings → Remote Control.
|
|
88
|
+
- Select the target device by its Instance Name.
|
|
89
|
+
- Click / tap a dashboard tile to activate it on the target device.
|
|
90
|
+
|
|
91
|
+
### Using Remote Control
|
|
92
|
+
- The currently active dashboard on the target device is highlighted.
|
|
93
|
+
- Switching is usually instantaneous; brief delays can indicate network latency.
|
|
94
|
+
- You can leave the Remote Control panel open to “page” through dashboards live.
|
|
95
|
+
|
|
96
|
+
### Troubleshooting
|
|
97
|
+
| Problem | What to Check |
|
|
98
|
+
|---------|----------------|
|
|
99
|
+
| Target device not listed | Is remote control enabled there? Is Instance Name set? Both on same Signal K server? |
|
|
100
|
+
| No highlight / not switching | Confirm target device stays online (no sleep / browser closed). Refresh controller panel. |
|
|
101
|
+
| Wrong device switched | Two devices share same Instance Name—rename one. |
|
|
102
|
+
| Works, then stops | Network drop or Signal K reconnect in progress—wait a few seconds or reload. |
|
|
103
|
+
|
|
104
|
+
### Tips
|
|
105
|
+
- Keep Instance Names short but meaningful (e.g. Mast, Helm, NavTV).
|
|
106
|
+
- For unattended displays, enable the browser’s keep‑awake / no‑sleep features if supported.
|
|
107
|
+
- Combine with Night Mode + per‑profile layouts for role‑specific remote switching.
|
|
108
|
+
- Use different Signal K users if you want fully isolated configurations.
|
|
109
|
+
|
|
110
|
+
### Privacy / Safety Note
|
|
111
|
+
Anyone with access to a logged‑in controlling KIP instance can switch dashboards on enabled targets. Only enable remote management on displays where that is acceptable.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
## Harness the Power of Data State Notifications
|
|
2
2
|
|
|
3
3
|
Stay informed about your vessel’s data with Signal K’s state notifications. For example, Signal K can flag certain sensor readings—such as depth or temperature—when they reach critical levels. KIP can then visually or audibly alert you. For instance, if the depth drops to 3 meters or less, KIP can highlight this with a warning sound or visual cue. This powerful feature combines **Zones Configuration** and **Notification Methods** in Signal K.
|
|
4
4
|
|
|
@@ -284,14 +284,12 @@
|
|
|
284
284
|
<svg id="windsteeringWidget" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 30 30">
|
|
285
285
|
<path fill="currentColor" d="m 0.68588127,15.026096 c 0,-2.66182 0.64833033,-5.1279185 1.93227893,-7.3852457 1.2839483,-2.2573281 3.0255419,-4.044923 5.2247808,-5.3627848 2.199238,-1.317862 4.589163,-1.970269 7.169773,-1.970269 1.932278,0 3.788282,0.3914441 5.5553,1.1612843 1.767019,0.7698402 3.27979,1.8267393 4.563738,3.1315531 1.283949,1.3048138 2.300939,2.8705901 3.050967,4.6973299 0.75003,1.8267392 1.1314,3.7187192 1.1314,5.7281322 0,1.983317 -0.38137,3.888345 -1.1314,5.702036 -0.750028,1.813692 -1.77973,3.379468 -3.050967,4.684282 -1.271236,1.304816 -2.796719,2.348664 -4.563738,3.118506 -1.767018,0.76984 -3.610309,1.161284 -5.5553,1.161284 -1.944992,0 -3.81371,-0.391443 -5.5807281,-1.161284 C 7.6649675,27.761078 6.1394841,26.704179 4.8555357,25.399366 3.5715871,24.094552 2.5673107,22.528776 1.804569,20.728132 1.0418273,18.92749 0.68588127,17.022461 0.68588127,15.026096 m 3.15266543,0 c 0,3.092409 1.0932631,5.780326 3.2925016,8.063749 2.1992383,2.257329 4.8179857,3.379469 7.8816657,3.379469 2.008552,0 3.877269,-0.508878 5.580726,-1.539682 1.703456,-1.030801 3.076391,-2.413903 4.080668,-4.175404 1.004277,-1.761498 1.51277,-3.666525 1.51277,-5.728131 0,-2.061606 -0.508493,-3.979683 -1.51277,-5.7411813 C 23.669831,7.5234163 22.309609,6.1272661 20.59344,5.0964632 18.87727,4.0656603 17.021266,3.556783 15.012714,3.556783 c -2.008554,0 -3.877271,0.5088773 -5.5807281,1.5396802 C 7.7285292,6.1272661 6.3555943,7.5234163 5.3386053,9.2849157 4.3216165,11.046414 3.8385467,12.96449 3.8385467,15.026096 m 6.2163453,7.633161 4.767135,-17.106109 q 0.01906,-0.1957221 0.190687,-0.1957221 c 0.171617,0 0.177973,0.06524 0.190684,0.1957221 l 4.754423,17.106109 c 0.05085,0.14353 0.03814,0.247915 -0.02542,0.326203 -0.06356,0.07829 -0.165261,0.07829 -0.305097,0 l -4.41119,-1.696258 c -0.127123,-0.05219 -0.254246,-0.05219 -0.368659,0 l -4.449326,1.696258 q -0.190686,0.117439 -0.26696,0 c -0.07627,-0.117428 -0.101693,-0.195721 -0.07627,-0.326203"/>
|
|
286
286
|
</svg>
|
|
287
|
-
<svg id="racesteeringWidget" height="200px" width="200px" viewBox="0 0 320 320">
|
|
288
|
-
<g id="XMLID_494_">
|
|
287
|
+
<svg id="racesteeringWidget" xmlns="http://www.w3.org/2000/svg" height="200px" width="200px" viewBox="0 0 320 320">
|
|
289
288
|
<path fill="currentColor" fill-opacity="0.4" d="M290,160c0-10.177-1.172-20.079-3.383-29.583l27.947-22.704l-32-55.426 l-33.673,12.864c-14.386-13.487-31.839-23.738-51.202-29.596L192,0h-64l-5.689,35.556c-19.363,5.857-36.816,16.108-51.202,29.596 L37.436,52.287l-32,55.426l27.947,22.704C31.172,139.921,30,149.823,30,160s1.172,20.079,3.383,29.582L5.436,212.287l32,55.426 l33.672-12.865c14.387,13.488,31.84,23.739,51.203,29.596L128,320h64l5.689-35.557c19.363-5.856,36.816-16.107,51.203-29.596 l33.672,12.865l32-55.426l-27.947-22.705C288.828,180.079,290,170.177,290,160z"></path>
|
|
290
289
|
<path fill="currentColor" fill-opacity="0.4" d="M160,0h-32l-5.689,35.556c-19.363,5.857-36.816,16.108-51.202,29.596L37.436,52.287 l-32,55.426l27.947,22.704C31.172,139.921,30,149.823,30,160s1.172,20.079,3.383,29.582L5.436,212.287l32,55.426l33.672-12.865 c14.387,13.488,31.84,23.739,51.203,29.596L128,320h32V0z"></path>
|
|
291
|
-
<circle fill="currentColor" fill-opacity="
|
|
292
|
-
<polygon fill="var(--mat-sys-
|
|
293
|
-
<polygon fill="var(--mat-sys-
|
|
294
|
-
</g>
|
|
290
|
+
<circle fill="currentColor" fill-opacity="1" cx="160" cy="160" r="95"></circle>
|
|
291
|
+
<polygon fill="var(--mat-sys-background)" fill-opacity="1" points="160,180 110,210 160,90 210,210 "></polygon>
|
|
292
|
+
<polygon fill="var(--mat-sys-background)" fill-opacity="1" points="160,180 110,210 160,90 "></polygon>
|
|
295
293
|
</svg>
|
|
296
294
|
<svg id="positionWidget" xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24">
|
|
297
295
|
<path fill="currentColor" d="M440-42v-80q-125-14-214.5-103.5T122-440H42v-80h80q14-125 103.5-214.5T440-838v-80h80v80q125 14 214.5 103.5T838-520h80v80h-80q-14 125-103.5 214.5T520-122v80h-80Zm40-158q116 0 198-82t82-198q0-116-82-198t-198-82q-116 0-198 82t-82 198q0 116 82 198t198 82Zm0-120q-66 0-113-47t-47-113q0-66 47-113t113-47q66 0 113 47t47 113q0 66-47 113t-113 47Zm0-80q33 0 56.5-23.5T560-480q0-33-23.5-56.5T480-560q-33 0-56.5 23.5T400-480q0 33 23.5 56.5T480-400Zm0-80Z"/>
|
|
@@ -300,43 +298,43 @@
|
|
|
300
298
|
<g stroke-linecap="round" stroke-linejoin="round" stroke="currentColor" stroke-width="0.06"/>
|
|
301
299
|
<path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M10.3004 7.49991C10.3004 8.4943 9.49426 9.30041 8.49988 9.30041C7.50549 9.30041 6.69938 8.4943 6.69938 7.49991C6.69938 6.50553 7.50549 5.69942 8.49988 5.69942C9.49426 5.69942 10.3004 6.50553 10.3004 7.49991ZM11.205 8C10.9699 9.28029 9.84816 10.2504 8.49988 10.2504C7.1516 10.2504 6.0299 9.28029 5.79473 8H0.5C0.223858 8 0 7.77614 0 7.5C0 7.22386 0.223858 7 0.5 7H5.7947C6.0298 5.71962 7.15154 4.74942 8.49988 4.74942C9.84822 4.74942 10.9699 5.71962 11.2051 7H14.5C14.7761 7 15 7.22386 15 7.5C15 7.77614 14.7761 8 14.5 8H11.205Z" />
|
|
302
300
|
</svg>
|
|
301
|
+
<svg id="dashboard-beating-starboard" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
|
302
|
+
<g id="g9" transform="matrix(-0.70710678,0.70710678,0.70710678,0.70710678,8.8211956,-6.2237242)">
|
|
303
|
+
<path d="M 12,5.9999999 C 16,9.777778 17.777778,15.444445 16,23 H 8.0000001 C 6.2222223,15.444445 8.0000001,9.777778 12,5.9999999 Z" fill="var(--mat-sys-tertiary)" id="path1" style="stroke-width:0.229061" />
|
|
304
|
+
<path id="path7" style="fill:currentColor;fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 12.069681,9.6382333 a 0.96030863,1.0734967 0 0 0 -0.958792,1.0749837 0.96030863,1.0734967 0 0 0 0.958792,1.073188 0.96030863,1.0734967 0 0 0 0.637302,-0.269195 c 3.680548,0.746895 5.386596,6.527297 6.17257,11.243351 h 0.633521 C 19.183957,11.372496 14.186219,9.9876196 12.619992,9.8338481 A 0.96030863,1.0734967 0 0 0 12.069681,9.6382333 Z" />
|
|
305
|
+
</g>
|
|
306
|
+
<path id="rect10" style="fill:currentColor;stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.996565,2.1291734 15.115245,1.1393855 12,5.2427964 8.8847553,1.1393852 Z" />
|
|
307
|
+
</svg>
|
|
303
308
|
<svg id="dashboard-beating-port" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
|
304
309
|
<g id="g9" transform="rotate(45,15.102102,15.210576)">
|
|
305
310
|
<path d="M 12,5.9999999 C 16,9.777778 17.777778,15.444445 16,23 H 8.0000001 C 6.2222223,15.444445 8.0000001,9.777778 12,5.9999999 Z" fill="var(--mat-sys-tertiary)" id="path1" style="stroke-width:0.229061" />
|
|
306
|
-
<path id="path7" style="fill:
|
|
311
|
+
<path id="path7" style="fill:currentColor;fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 12.069681,9.6382333 a 0.96030863,1.0734967 0 0 0 -0.958792,1.0749837 0.96030863,1.0734967 0 0 0 0.958792,1.073188 0.96030863,1.0734967 0 0 0 0.637302,-0.269195 c 3.680548,0.746895 5.386596,6.527297 6.17257,11.243351 h 0.633521 C 19.183957,11.372496 14.186219,9.9876196 12.619992,9.8338481 A 0.96030863,1.0734967 0 0 0 12.069681,9.6382333 Z" />
|
|
307
312
|
</g>
|
|
308
|
-
<path id="rect10" style="fill:
|
|
313
|
+
<path id="rect10" style="fill:currentColor;stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.996565,2.1291734 15.115245,1.1393855 12,5.2427964 8.8847553,1.1393852 Z" />
|
|
309
314
|
</svg>
|
|
310
315
|
<svg id="dashboard-running-starboard" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
|
311
316
|
<g id="g9" transform="matrix(0.70710678,0.70710678,0.70710678,-0.70710678,-9.4726469,18.427727)">
|
|
312
317
|
<path d="M 12,5.9999999 C 16,9.777778 17.777778,15.444445 16,23 H 8.0000001 C 6.2222223,15.444445 8.0000001,9.777778 12,5.9999999 Z" fill="var(--mat-sys-tertiary)" id="path1" style="stroke-width:0.229061" />
|
|
313
|
-
<path id="path7" style="fill:
|
|
318
|
+
<path id="path7" style="fill:currentColor;fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 12.069681,9.6382333 a 0.96030863,1.0734967 0 0 0 -0.958792,1.0749837 0.96030863,1.0734967 0 0 0 0.958792,1.073188 0.96030863,1.0734967 0 0 0 0.637302,-0.269195 c 3.680548,0.746895 5.386596,6.527297 6.17257,11.243351 h 0.633521 C 19.183957,11.372496 14.186219,9.9876196 12.619992,9.8338481 A 0.96030863,1.0734967 0 0 0 12.069681,9.6382333 Z" />
|
|
314
319
|
</g>
|
|
315
|
-
<path id="rect10" style="fill:
|
|
320
|
+
<path id="rect10" style="fill:currentColor;stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.996565,2.1291734 15.115245,1.1393855 12,5.2427964 8.8847553,1.1393852 Z" />
|
|
316
321
|
</svg>
|
|
317
322
|
<svg id="dashboard-running-port" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
|
318
323
|
<g id="g9" transform="rotate(135,12.919816,16.146276)">
|
|
319
324
|
<path d="M 12,5.9999999 C 16,9.777778 17.777778,15.444445 16,23 H 8.0000001 C 6.2222223,15.444445 8.0000001,9.777778 12,5.9999999 Z" fill="var(--mat-sys-tertiary)" id="path1" style="stroke-width:0.229061" />
|
|
320
|
-
<path id="path7" style="fill:
|
|
325
|
+
<path id="path7" style="fill:currentColor;fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 12.069681,9.6382333 a 0.96030863,1.0734967 0 0 0 -0.958792,1.0749837 0.96030863,1.0734967 0 0 0 0.958792,1.073188 0.96030863,1.0734967 0 0 0 0.637302,-0.269195 c 3.680548,0.746895 5.386596,6.527297 6.17257,11.243351 h 0.633521 C 19.183957,11.372496 14.186219,9.9876196 12.619992,9.8338481 A 0.96030863,1.0734967 0 0 0 12.069681,9.6382333 Z" />
|
|
321
326
|
</g>
|
|
322
|
-
<path id="rect10" style="fill:
|
|
327
|
+
<path id="rect10" style="fill:currentColor;stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.996565,2.1291734 15.115245,1.1393855 12,5.2427964 8.8847553,1.1393852 Z" />
|
|
323
328
|
</svg>
|
|
324
329
|
<svg id="dashboard-reaching-starboard" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
|
325
330
|
<path d="m 3.4612526,13.243576 c 3.769169,4.008113 9.4320004,5.798071 16.9913604,4.036543 l 0.0172,-7.9999815 C 12.918099,7.4861187 7.2476226,9.2517085 3.4612526,13.243576 Z" fill="var(--mat-sys-tertiary)" id="path1" style="stroke-width:0.229061" />
|
|
326
|
-
<path id="path7" style="fill:
|
|
327
|
-
<path id="rect10" style="fill:
|
|
331
|
+
<path id="path7" style="fill:currentColor;fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 6.7815056,13.059872 a 1.0734967,0.96030863 15.070902 0 1 1.287308,-0.646302 1.0734967,0.96030863 15.070902 0 1 0.786977,1.204856 1.0734967,0.96030863 15.070902 0 1 -0.425644,0.545389 c -0.235789,3.748157 4.9021984,6.898512 9.2516774,8.883693 l -0.164763,0.61172 C 6.6063046,20.380385 6.5685446,15.194457 6.8273026,13.642119 a 1.0734967,0.96030863 15.070902 0 1 -0.0458,-0.582247 z" />
|
|
332
|
+
<path id="rect10" style="fill:currentColor;stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.934501,2.1291734 8.8158206,1.1393855 11.931066,5.2427964 15.04631,1.1393852 Z" />
|
|
328
333
|
</svg>
|
|
329
334
|
<svg id="dashboard-reaching-port" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
|
330
335
|
<path d="m 20.469813,13.243576 c -3.769169,4.008113 -9.432,5.798071 -16.9913604,4.036543 l -0.0172,-7.9999815 C 11.012967,7.4861187 16.683443,9.2517085 20.469813,13.243576 Z" fill="var(--mat-sys-tertiary)" id="path1" style="stroke-width:0.229061" />
|
|
331
|
-
<path id="path7" style="fill:
|
|
332
|
-
<path id="rect10" style="fill:
|
|
333
|
-
</svg>
|
|
334
|
-
<svg id="dashboard-beating-starboard" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
|
335
|
-
<g id="g9" transform="matrix(-0.70710678,0.70710678,0.70710678,0.70710678,8.8211956,-6.2237242)">
|
|
336
|
-
<path d="M 12,5.9999999 C 16,9.777778 17.777778,15.444445 16,23 H 8.0000001 C 6.2222223,15.444445 8.0000001,9.777778 12,5.9999999 Z" fill="var(--mat-sys-tertiary)" id="path1" style="stroke-width:0.229061" />
|
|
337
|
-
<path id="path7" style="fill:var(--mat-sys-primary);fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 12.069681,9.6382333 a 0.96030863,1.0734967 0 0 0 -0.958792,1.0749837 0.96030863,1.0734967 0 0 0 0.958792,1.073188 0.96030863,1.0734967 0 0 0 0.637302,-0.269195 c 3.680548,0.746895 5.386596,6.527297 6.17257,11.243351 h 0.633521 C 19.183957,11.372496 14.186219,9.9876196 12.619992,9.8338481 A 0.96030863,1.0734967 0 0 0 12.069681,9.6382333 Z" />
|
|
338
|
-
</g>
|
|
339
|
-
<path id="rect10" style="fill:var(--mat-sys-primary);stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.996565,2.1291734 15.115245,1.1393855 12,5.2427964 8.8847553,1.1393852 Z" />
|
|
336
|
+
<path id="path7" style="fill:currentColor;fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" d="m 17.14956,13.059872 a 0.96030863,1.0734967 74.929098 0 0 -1.287308,-0.646302 0.96030863,1.0734967 74.929098 0 0 -0.786977,1.204856 0.96030863,1.0734967 74.929098 0 0 0.425644,0.545389 c 0.235789,3.748157 -4.902198,6.898512 -9.2516774,8.883693 l 0.164763,0.61172 C 17.324761,20.380385 17.362521,15.194457 17.103763,13.642119 a 0.96030863,1.0734967 74.929098 0 0 0.0458,-0.582247 z" />
|
|
337
|
+
<path id="rect10" style="fill:currentColor;stroke-width:0.300571;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" d="M 11.996565,2.1291734 15.115245,1.1393855 12,5.2427964 8.8847553,1.1393852 Z" />
|
|
340
338
|
</svg>
|
|
341
339
|
<svg id="dashboard-motor-boat" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
|
342
340
|
<defs>
|
|
@@ -351,7 +349,7 @@
|
|
|
351
349
|
<path id="water-right-inner" d="M 13.75,24 L 13,19" fill="none" style="stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" />
|
|
352
350
|
<path id="water-right" d="M 16,24 L 12,10" fill="none" style="stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" />
|
|
353
351
|
<path id="hull" d="M 12,0 C 16,3.777778 17.777778,9.444445 16,17 H 8 C 6.222222,9.444445 8,3.777778 12,0 Z" fill="var(--mat-sys-tertiary)" style="stroke-width:0.229061" transform="translate(12,8.5) scale(0.8) translate(-12,-8.5)" />
|
|
354
|
-
<rect id="engine" x="10.5" y="14" rx="1.25" width="3" height="4" style="fill:
|
|
352
|
+
<rect id="engine" x="10.5" y="14" rx="1.25" width="3" height="4" style="fill:currentColor;fill-opacity:1;stroke:var(--mat-sys-surface-container);stroke-width:0.663529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" transform="translate(12,16) scale(0.8) translate(-12,-16)" />
|
|
355
353
|
</svg>
|
|
356
354
|
<svg id="dashboard-anchored-boat" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
|
357
355
|
<defs>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Fa as s,Gd as p,Hd as u,Kb as i,Lb as d,Oa as m,Vd as f,Wc as g,_d as h,ga as r,ib as e,jb as n,jc as c,tb as l}from"./chunk-OB3QLUH6.js";var T=(()=>{class t{pageTitle=c();_router=r(g);backPage(){this._router.navigate(["/settings"])}closePage(){this._router.navigate(["/dashboard"])}static \u0275fac=function(a){return new(a||t)};static \u0275cmp=m({type:t,selectors:[["page-header"]],inputs:{pageTitle:[1,"pageTitle"]},decls:10,vars:1,consts:[[1,"fullpage-header"],[1,"fullpage-header-title"],[1,"dialog-close-icon"],["mat-icon-button","",3,"click"]],template:function(a,o){a&1&&(e(0,"div",0)(1,"h6",1),i(2),n(),e(3,"div",2)(4,"button",3),l("click",function(){return o.backPage()}),e(5,"mat-icon"),i(6,"arrow_back_ios"),n()(),e(7,"button",3),l("click",function(){return o.closePage()}),e(8,"mat-icon"),i(9,"close"),n()()()()),a&2&&(s(2),d(o.pageTitle()))},dependencies:[h,f,u,p],styles:[".fullpage-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center}.fullpage-header-title[_ngcontent-%COMP%]{margin-block-start:0px;margin-block-end:0px;padding:18px 24px 13px;color:var(--mat-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, .87)));font-family:var(--mat-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));line-height:var(--mat-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));font-size:var(--mat-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));font-weight:var(--mat-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));letter-spacing:var(--mat-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, .03125em))}.dialog-close-icon[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex-wrap:nowrap;gap:5px;padding-right:15px}.mat-mdc-dialog-content[_ngcontent-%COMP%]{max-height:max-content}"]})}return t})();export{T as a};
|