@mxtommy/kip 4.8.4 → 4.9.0-beta.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/CHANGELOG.md +5 -0
- package/package.json +2 -2
- package/plugin/history-series.service.js +637 -0
- package/plugin/index.js +1322 -0
- package/plugin/kip-series-contract.js +31 -0
- package/plugin/openApi.json +855 -0
- package/plugin/sqlite-history-storage.service.js +1124 -0
- package/public/3rdpartylicenses.txt +78 -78
- package/public/assets/help-docs/ais-radar.md +261 -0
- package/public/assets/help-docs/dashboards.md +1 -1
- package/public/assets/help-docs/kiosk.md +4 -2
- package/public/assets/help-docs/menu.json +17 -2
- package/public/{chunk-CIGP2YJm.js → chunk-5jtM3b20.js} +1 -1
- package/public/{chunk-_zRMMvCu.js → chunk-B1H8b4W3.js} +1 -1
- package/public/{chunk-BJ-wyixK.js → chunk-BJObkbow.js} +1 -1
- package/public/{chunk-C6b8CVno.js → chunk-BLEfD_P7.js} +1 -1
- package/public/{chunk-BLEZOsfR.js → chunk-BO34LrGA.js} +1 -1
- package/public/{chunk-BeM64etA.js → chunk-BSNfaGK3.js} +1 -1
- package/public/{chunk-07zHjmg-.js → chunk-BbE36LU3.js} +1 -1
- package/public/{chunk-JhFkJS7i.js → chunk-BoY2UDvb.js} +1 -1
- package/public/{chunk-x7L6DXVK.js → chunk-BrjwTjz7.js} +1 -1
- package/public/{chunk-BFpzxIIT.js → chunk-BufDbUf3.js} +1 -1
- package/public/{chunk-C_OZJltF.js → chunk-C11zYqw7.js} +1 -1
- package/public/{chunk-CLs_NL1y.js → chunk-C8uxDv1M.js} +1 -1
- package/public/{chunk-DIl1k00y.js → chunk-CDG3g9Eq.js} +1 -1
- package/public/{chunk-q9NoPvcx.js → chunk-CEtt0kr-.js} +1 -1
- package/public/{chunk-BpcNrtxJ.js → chunk-CKnQ07BR.js} +1 -1
- package/public/{chunk-0z3nIRXw.js → chunk-COM48ir-.js} +1 -1
- package/public/{chunk-eQ1pa34Q.js → chunk-CSCVkGWE.js} +1 -1
- package/public/{chunk-BuvyF0y5.js → chunk-C_mCGLT_.js} +1 -1
- package/public/{chunk-BUguZ7cK.js → chunk-CnVELVOx.js} +1 -1
- package/public/{chunk-CLTHuhlN.js → chunk-Csxy6yVz.js} +1 -1
- package/public/{chunk-BZx964-p.js → chunk-CvG4thmf.js} +1 -1
- package/public/{chunk-CCfhzpE8.js → chunk-CxOyBrqL.js} +1 -1
- package/public/{chunk-otzyItXL.js → chunk-CzY2nk08.js} +1 -1
- package/public/{chunk-D-_-GUVr.js → chunk-CzquTNBp.js} +1 -1
- package/public/{chunk-ibauGmSP.js → chunk-D59G2Xua.js} +1 -1
- package/public/chunk-D8CQ-x45.js +1 -0
- package/public/{chunk-BTOTKeBo.js → chunk-DA2JBQHi.js} +1 -1
- package/public/chunk-DCdZRAXa.js +1 -0
- package/public/{chunk-BN7A4g6c.js → chunk-DES7U9G6.js} +1 -1
- package/public/{chunk-BIb-xYiS.js → chunk-DHj2hm9r.js} +1 -1
- package/public/{chunk-DPnbM-aB.js → chunk-DJVnrrxC.js} +1 -1
- package/public/{chunk-CxPx4NZv.js → chunk-DN6HP97P.js} +1 -1
- package/public/{chunk-COI6IBXH.js → chunk-DTznNQod.js} +1 -1
- package/public/{chunk-szQs8fiq.js → chunk-DZQzZeIV.js} +1 -1
- package/public/{chunk-DTN-sa1K.js → chunk-DakdT7bi.js} +1 -1
- package/public/{chunk-CHAFm_nM.js → chunk-DizMY7FW.js} +1 -1
- package/public/{chunk-OeQDZKFO.js → chunk-DjPkdMGz.js} +1 -1
- package/public/{chunk-BfiyH3nV.js → chunk-DlLiKS0n.js} +1 -1
- package/public/{chunk-CYYBxjrc.js → chunk-Dt2HCrSr.js} +1 -1
- package/public/{chunk-CyVRpGoJ.js → chunk-Duhmjpm9.js} +1 -1
- package/public/{chunk-B9nVBlGj.js → chunk-DulH4zwM.js} +1 -1
- package/public/{chunk-B09jfNia.js → chunk-DwAXe6Wn.js} +1 -1
- package/public/{chunk-CoCQ3DW2.js → chunk-DxD20B-E.js} +1 -1
- package/public/{chunk-DmkAKXR1.js → chunk-DzQ_fUpO.js} +1 -1
- package/public/{chunk-B0eE4udE.js → chunk-GyA81uXZ.js} +1 -1
- package/public/{chunk-Co2wVrD6.js → chunk-GzqVKhHm.js} +1 -1
- package/public/{chunk-BjINKQ03.js → chunk-MPbL1AwE.js} +1 -1
- package/public/{chunk-CQMVIDcp.js → chunk-Qlya07CF.js} +1 -1
- package/public/{chunk-CXvWM_vF.js → chunk-VshNFG3q.js} +1 -1
- package/public/{chunk-DUEKoZhd.js → chunk-YBp9CH_2.js} +1 -1
- package/public/{chunk-D1HYfaL_.js → chunk-_S08GvV8.js} +1 -1
- package/public/{chunk-B0D54iJs.js → chunk-dvm9QV-B.js} +1 -1
- package/public/{chunk-D2953Rfp.js → chunk-ipFM9wbJ.js} +1 -1
- package/public/index.html +1 -1
- package/public/{main-YKDNK5VZ.js → main-IINF7HD6.js} +473 -473
- package/public/chunk-Do8wqING.js +0 -1
|
@@ -352,6 +352,84 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
352
352
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
353
353
|
THE SOFTWARE.
|
|
354
354
|
|
|
355
|
+
--------------------------------------------------------------------------------
|
|
356
|
+
Package: lodash-es
|
|
357
|
+
License: "MIT"
|
|
358
|
+
|
|
359
|
+
Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
360
|
+
|
|
361
|
+
Based on Underscore.js, copyright Jeremy Ashkenas,
|
|
362
|
+
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
|
|
363
|
+
|
|
364
|
+
This software consists of voluntary contributions made by many
|
|
365
|
+
individuals. For exact contribution history, see the revision history
|
|
366
|
+
available at https://github.com/lodash/lodash
|
|
367
|
+
|
|
368
|
+
The following license applies to all parts of this software except as
|
|
369
|
+
documented below:
|
|
370
|
+
|
|
371
|
+
====
|
|
372
|
+
|
|
373
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
374
|
+
a copy of this software and associated documentation files (the
|
|
375
|
+
"Software"), to deal in the Software without restriction, including
|
|
376
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
377
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
378
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
379
|
+
the following conditions:
|
|
380
|
+
|
|
381
|
+
The above copyright notice and this permission notice shall be
|
|
382
|
+
included in all copies or substantial portions of the Software.
|
|
383
|
+
|
|
384
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
385
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
386
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
387
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
388
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
389
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
390
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
391
|
+
|
|
392
|
+
====
|
|
393
|
+
|
|
394
|
+
Copyright and related rights for sample code are waived via CC0. Sample
|
|
395
|
+
code is defined as all source code displayed within the prose of the
|
|
396
|
+
documentation.
|
|
397
|
+
|
|
398
|
+
CC0: http://creativecommons.org/publicdomain/zero/1.0/
|
|
399
|
+
|
|
400
|
+
====
|
|
401
|
+
|
|
402
|
+
Files located in the node_modules and vendor directories are externally
|
|
403
|
+
maintained libraries used by this software which have their own
|
|
404
|
+
licenses; we recommend you read them, as their terms may differ from the
|
|
405
|
+
terms above.
|
|
406
|
+
|
|
407
|
+
--------------------------------------------------------------------------------
|
|
408
|
+
Package: compare-versions
|
|
409
|
+
License: "MIT"
|
|
410
|
+
|
|
411
|
+
The MIT License (MIT)
|
|
412
|
+
|
|
413
|
+
Copyright (c) 2015-2021 Ole Michelsen
|
|
414
|
+
|
|
415
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
416
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
417
|
+
in the Software without restriction, including without limitation the rights
|
|
418
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
419
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
420
|
+
furnished to do so, subject to the following conditions:
|
|
421
|
+
|
|
422
|
+
The above copyright notice and this permission notice shall be included in all
|
|
423
|
+
copies or substantial portions of the Software.
|
|
424
|
+
|
|
425
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
426
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
427
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
428
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
429
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
430
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
431
|
+
SOFTWARE.
|
|
432
|
+
|
|
355
433
|
--------------------------------------------------------------------------------
|
|
356
434
|
Package: marked
|
|
357
435
|
License: "MIT"
|
|
@@ -492,84 +570,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
492
570
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
493
571
|
THE SOFTWARE.
|
|
494
572
|
|
|
495
|
-
--------------------------------------------------------------------------------
|
|
496
|
-
Package: lodash-es
|
|
497
|
-
License: "MIT"
|
|
498
|
-
|
|
499
|
-
Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
500
|
-
|
|
501
|
-
Based on Underscore.js, copyright Jeremy Ashkenas,
|
|
502
|
-
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
|
|
503
|
-
|
|
504
|
-
This software consists of voluntary contributions made by many
|
|
505
|
-
individuals. For exact contribution history, see the revision history
|
|
506
|
-
available at https://github.com/lodash/lodash
|
|
507
|
-
|
|
508
|
-
The following license applies to all parts of this software except as
|
|
509
|
-
documented below:
|
|
510
|
-
|
|
511
|
-
====
|
|
512
|
-
|
|
513
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
|
514
|
-
a copy of this software and associated documentation files (the
|
|
515
|
-
"Software"), to deal in the Software without restriction, including
|
|
516
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
|
517
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
|
518
|
-
permit persons to whom the Software is furnished to do so, subject to
|
|
519
|
-
the following conditions:
|
|
520
|
-
|
|
521
|
-
The above copyright notice and this permission notice shall be
|
|
522
|
-
included in all copies or substantial portions of the Software.
|
|
523
|
-
|
|
524
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
525
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
526
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
527
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
528
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
529
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
530
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
531
|
-
|
|
532
|
-
====
|
|
533
|
-
|
|
534
|
-
Copyright and related rights for sample code are waived via CC0. Sample
|
|
535
|
-
code is defined as all source code displayed within the prose of the
|
|
536
|
-
documentation.
|
|
537
|
-
|
|
538
|
-
CC0: http://creativecommons.org/publicdomain/zero/1.0/
|
|
539
|
-
|
|
540
|
-
====
|
|
541
|
-
|
|
542
|
-
Files located in the node_modules and vendor directories are externally
|
|
543
|
-
maintained libraries used by this software which have their own
|
|
544
|
-
licenses; we recommend you read them, as their terms may differ from the
|
|
545
|
-
terms above.
|
|
546
|
-
|
|
547
|
-
--------------------------------------------------------------------------------
|
|
548
|
-
Package: compare-versions
|
|
549
|
-
License: "MIT"
|
|
550
|
-
|
|
551
|
-
The MIT License (MIT)
|
|
552
|
-
|
|
553
|
-
Copyright (c) 2015-2021 Ole Michelsen
|
|
554
|
-
|
|
555
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
556
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
557
|
-
in the Software without restriction, including without limitation the rights
|
|
558
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
559
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
560
|
-
furnished to do so, subject to the following conditions:
|
|
561
|
-
|
|
562
|
-
The above copyright notice and this permission notice shall be included in all
|
|
563
|
-
copies or substantial portions of the Software.
|
|
564
|
-
|
|
565
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
566
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
567
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
568
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
569
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
570
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
571
|
-
SOFTWARE.
|
|
572
|
-
|
|
573
573
|
--------------------------------------------------------------------------------
|
|
574
574
|
Package: @angular/router
|
|
575
575
|
License: "MIT"
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
## AIS Radar Widget
|
|
2
|
+
|
|
3
|
+
> **WARNING - FOR SITUATIONAL AWARENESS ONLY**
|
|
4
|
+
> AIS widget data (including collision risk and target information) can be delayed, incomplete, incorrect, or unavailable.
|
|
5
|
+
> This feature provides **no safety guarantee** and must be used **at your own risk**.
|
|
6
|
+
> It is **not** a replacement for proper seamanship, safe navigation practices, collision regulations, visual/radar watchkeeping, or prudent decision making.
|
|
7
|
+
|
|
8
|
+
The AIS Radar widget shows nearby AIS targets around your own-ship position using range rings, target icons, motion vectors, and target details.
|
|
9
|
+
|
|
10
|
+
This page explains:
|
|
11
|
+
- Widget buttons and what they do
|
|
12
|
+
- Widget options and filters
|
|
13
|
+
- Target icon colors, styles and state behaviors
|
|
14
|
+
- Full target icon catalog
|
|
15
|
+
|
|
16
|
+
## Data Requirements
|
|
17
|
+
|
|
18
|
+
> AIS data must be available in the Signal K server for the widget to function correctly. This usually means using compatible AIS hardware receiver or connecting to a Virtual AIS service over the internet with a Server Connection of type WebSocket.
|
|
19
|
+
|
|
20
|
+
If the KIP Connection option does not include `Subscribe to remote source message such as AIS and DSC targets.`, the widget warns that AIS data is disabled and asks you to enable remote source subscription in Settings / Options.
|
|
21
|
+
|
|
22
|
+
The Derived Data plugin must be installed, enabled and it's Traffic section options must be configured with attention to provide collision risk information.
|
|
23
|
+
|
|
24
|
+
## Buttons And Actions
|
|
25
|
+
|
|
26
|
+
### On-widget buttons
|
|
27
|
+
|
|
28
|
+
| Button | Location | What it does |
|
|
29
|
+
|---|---|---|
|
|
30
|
+
| View mode toggle | Top-right | Switches between Course Up and North Up view orientation. |
|
|
31
|
+
| Range + | Right side | Zooms in by selecting a smaller range ring index. |
|
|
32
|
+
| Range - | Right side | Zooms out by selecting a larger range ring index. |
|
|
33
|
+
| Filter list | Top-left | Opens target filtering menu (category and vessel-type filters). |
|
|
34
|
+
| Collision shortcut | Left side under filter | Toggles Show only collision-risk targets mode when risk data is available. |
|
|
35
|
+
|
|
36
|
+
> Collision-risk shortcut button visibility depends on incoming closest-approach data. If no target provides collisionRiskRating, the collision quick-filter button is not shown.
|
|
37
|
+
|
|
38
|
+
### Target interaction
|
|
39
|
+
|
|
40
|
+
| Action | Result |
|
|
41
|
+
|---|---|
|
|
42
|
+
| Tap or click one visible target | Opens target detail dialog directly. |
|
|
43
|
+
| Tap or click where multiple targets overlap | Opens a target picker menu so you can select which target to inspect. |
|
|
44
|
+
| Tap or click background | Clears selection and closes target menu. |
|
|
45
|
+
|
|
46
|
+
### Target detail dialog
|
|
47
|
+
|
|
48
|
+
The dialog includes information based on target type such as: COG, SOG, HDG, ROT, CPA/TCPA, destination, IDs, position, off-position and freshness
|
|
49
|
+
|
|
50
|
+
## How To Read Radar Targets
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
Most AIS users will want to understand this first: each target combines a base icon and extra visual cues.
|
|
55
|
+
|
|
56
|
+
1. **Icon shape** tells you what kind of target it is.
|
|
57
|
+
2. **State look** tells you if data is fresh and reliable.
|
|
58
|
+
3. **Risk glow** tells you if attention is needed now.
|
|
59
|
+
4. **Motion vector** tells you where the target is going.
|
|
60
|
+
|
|
61
|
+
### Target states explanation
|
|
62
|
+
|
|
63
|
+
Supported statuses:
|
|
64
|
+
- Confirmed
|
|
65
|
+
- Unconfirmed
|
|
66
|
+
- Lost
|
|
67
|
+
- Remove
|
|
68
|
+
|
|
69
|
+
What that means on screen:
|
|
70
|
+
- **Confirmed**: normal target look.
|
|
71
|
+
- **Unconfirmed**: same icon shape, but looks faded/lower confidence.
|
|
72
|
+
- **Lost**: same icon shape, also shown as faded/lower confidence.
|
|
73
|
+
- **Remove**: target disappears from the radar.
|
|
74
|
+
|
|
75
|
+
Important behavior note:
|
|
76
|
+
- **Lost** uses the same visual styling family as **unconfirmed**.
|
|
77
|
+
|
|
78
|
+
### State cue rules (opacity)
|
|
79
|
+
|
|
80
|
+
- **Unconfirmed or lost**: icon appears faded (have less opacity than confirmed targets).
|
|
81
|
+
- **Confirmed**: icon appears solid.
|
|
82
|
+
|
|
83
|
+
### Risk cue rules (glow)
|
|
84
|
+
|
|
85
|
+
Collision risk glow appears only on **moving, confirmed** targets:
|
|
86
|
+
- **Red glow**: higher risk
|
|
87
|
+
- **Yellow glow**: lower risk
|
|
88
|
+
- **No glow**: no current risk emphasis
|
|
89
|
+
|
|
90
|
+
### Anchored or moored nav state (transparent / no fill color)
|
|
91
|
+
|
|
92
|
+
Anchored/moored targets are shown as **stationary vessel targets**.
|
|
93
|
+
|
|
94
|
+
Important:
|
|
95
|
+
- There is **no special anchor badge/icon** added on top of the vessel symbol.
|
|
96
|
+
|
|
97
|
+
What to look for:
|
|
98
|
+
- The vessel icon is still present (normal vessel type icon).
|
|
99
|
+
- When a vessel is **confirmed** and reports **anchored/moored** state, the icon fill color is rendered **transparent** (the icon only has an outline).
|
|
100
|
+
- It usually has **no motion vector**.
|
|
101
|
+
- It typically has **no collision glow** unless movement/risk data says otherwise.
|
|
102
|
+
|
|
103
|
+
Important limitation:
|
|
104
|
+
- Anchored/moored is a **reported nav state**. Some vessels do not report it consistently, some never do.
|
|
105
|
+
- A vessel can be operationally moored/anchored but still appear as a normal confirmed vessel if that state is not transmitted.
|
|
106
|
+
- Anchored/moored nav state is commonly reported by commercial vessels (cargo, tanker, passenger ship), but it is not typical for other types of vessels.
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
How to interpret in practice:
|
|
110
|
+
- If nav state is missing, use movement clues: a persistent no/very short vector and stable position usually suggest moored/anchored behavior.
|
|
111
|
+
|
|
112
|
+
### Own-ship vector rules
|
|
113
|
+
|
|
114
|
+
Own ship shows an orange dashed vector when own COG and SOG are available and own-ship icon display is enabled.
|
|
115
|
+
|
|
116
|
+
## Widget Options
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
After you understand the visual cues above, use these options to tune what you see.
|
|
121
|
+
|
|
122
|
+
The widget is configured in the Options dialog under the Display and Filter tabs.
|
|
123
|
+
|
|
124
|
+
### Display and range options
|
|
125
|
+
|
|
126
|
+
| Option | Values | Effect |
|
|
127
|
+
|---|---|---|
|
|
128
|
+
| View Mode | North Up, Course Up | Controls map orientation and target rotation behavior. |
|
|
129
|
+
| Fully Visible Rings Range | 1, 3, 6, 12, 24, 48 miles | Sets active range index for ring scale. |
|
|
130
|
+
| Show own ship icon | On or Off | Shows or hides the own-ship center icon. |
|
|
131
|
+
|
|
132
|
+
### Vector and target visibility options
|
|
133
|
+
|
|
134
|
+
| Option | Values | Effect |
|
|
135
|
+
|---|---|---|
|
|
136
|
+
| Plot target COG vector | On or Off | Draws target motion vectors for moving vessel-like targets. |
|
|
137
|
+
| COG plot length (minutes) | Numeric | Sets projection length for motion vectors (of Plot target COG vector). |
|
|
138
|
+
| Show unconfirmed targets | On or Off | Includes or hides unconfirmed targets. |
|
|
139
|
+
| Show lost targets | On or Off | Includes or hides lost targets. |
|
|
140
|
+
|
|
141
|
+
### Filter tab options
|
|
142
|
+
|
|
143
|
+
| Filter | Effect |
|
|
144
|
+
|---|---|
|
|
145
|
+
| Anchored/Moored | Hides stationary vessel-like targets (anchored or moored). |
|
|
146
|
+
| All AtoN | Hides all aids-to-navigation targets. |
|
|
147
|
+
| All but SAR | Hides every target except SAR targets. |
|
|
148
|
+
| All Vessels | Hides all vessel-like targets. |
|
|
149
|
+
| Vessel Type list | Hides selected vessel icon categories only. |
|
|
150
|
+
|
|
151
|
+
### Runtime quick filter note
|
|
152
|
+
|
|
153
|
+
The collision quick-filter button toggles a noCollisionRisk runtime filter in the widget. This option is intentionally runtime-only in the widget UI and is not exposed as a checkbox in the Filter tab.
|
|
154
|
+
|
|
155
|
+
## Full Target Icon Catalog
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
### Icon Selection Rules
|
|
160
|
+
|
|
161
|
+
Icon selection uses target type and AIS metadata:
|
|
162
|
+
- Vessel and SAR: selected from AIS ship type range mapping
|
|
163
|
+
- AtoN: selected from AtoN type id mapping (cardinal, lateral, special, danger/safe, other)
|
|
164
|
+
- Basestation: dedicated basestation icon
|
|
165
|
+
- Distress beacons: MMSI prefixes map to SART, MOB, EPIRB beacon icons
|
|
166
|
+
|
|
167
|
+
Distress beacon MMSI prefixes:
|
|
168
|
+
- 970 -> SART icon
|
|
169
|
+
- 972 -> MOB icon
|
|
170
|
+
- 974 -> EPIRB icon
|
|
171
|
+
|
|
172
|
+
### Vessel icons
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
| Key | Preview | Typical use |
|
|
176
|
+
|---|---|---|
|
|
177
|
+
| vessel/fishing |  | AIS ship type 30 |
|
|
178
|
+
| vessel/diving |  | AIS ship type 34 |
|
|
179
|
+
| vessel/military |  | AIS ship type 35 |
|
|
180
|
+
| vessel/sailing |  | AIS ship type 36 |
|
|
181
|
+
| vessel/pleasurecraft |  | AIS ship type 37 |
|
|
182
|
+
| vessel/highspeed |  | AIS ship type 20-29, 40-49 |
|
|
183
|
+
| vessel/pilot |  | AIS ship type 50 |
|
|
184
|
+
| vessel/sar |  | SAR (Search And Rescue) target type and AIS ship type 51 |
|
|
185
|
+
| vessel/tug |  | AIS ship type 31-33, 52-54, 58-59 |
|
|
186
|
+
| vessel/law |  | AIS ship type 55 |
|
|
187
|
+
| vessel/passenger |  | AIS ship type 60-69 |
|
|
188
|
+
| vessel/cargo |  | AIS ship type 70-79 |
|
|
189
|
+
| vessel/tanker |  | AIS ship type 80-89 |
|
|
190
|
+
| vessel/other |  | Generic fallback and multiple reserved ship-type ranges |
|
|
191
|
+
| vessel/unknown |  | Unknown vessel fallback by type |
|
|
192
|
+
| vessel/spare |  | Spare category in filter set (shares other.svg) |
|
|
193
|
+
|
|
194
|
+
### Aid to Navigation (AtoN) icons
|
|
195
|
+
|
|
196
|
+
#### Cardinal
|
|
197
|
+
|
|
198
|
+
| Key | Preview | Description |
|
|
199
|
+
|---|---|---|
|
|
200
|
+
| aton/north-beacon |  | Cardinal north beacon target. |
|
|
201
|
+
| aton/north-mark |  | Cardinal north mark target. |
|
|
202
|
+
| aton/east-beacon |  | Cardinal east beacon target. |
|
|
203
|
+
| aton/east-mark |  | Cardinal east mark target. |
|
|
204
|
+
| aton/south-beacon |  | Cardinal south beacon target. |
|
|
205
|
+
| aton/south-mark |  | Cardinal south mark target. |
|
|
206
|
+
| aton/west-beacon |  | Cardinal west beacon target. |
|
|
207
|
+
| aton/west-mark |  | Cardinal west mark target. |
|
|
208
|
+
|
|
209
|
+
#### Lateral
|
|
210
|
+
|
|
211
|
+
| Key | Preview | Description |
|
|
212
|
+
|---|---|---|
|
|
213
|
+
| aton/port-beacon |  | Port-hand lateral beacon target. |
|
|
214
|
+
| aton/port-mark |  | Port-hand lateral mark target. |
|
|
215
|
+
| aton/starboard-beacon |  | Starboard-hand lateral beacon target. |
|
|
216
|
+
| aton/starboard-mark |  | Starboard-hand lateral mark target. |
|
|
217
|
+
| aton/port-preferred-beacon |  | Preferred-channel-to-port beacon target. |
|
|
218
|
+
| aton/port-preferred-mark |  | Preferred-channel-to-port mark target. |
|
|
219
|
+
| aton/starboard-preferred-beacon |  | Preferred-channel-to-starboard beacon target. |
|
|
220
|
+
| aton/starboard-preferred-mark |  | Preferred-channel-to-starboard mark target. |
|
|
221
|
+
|
|
222
|
+
#### Special and danger/safe
|
|
223
|
+
|
|
224
|
+
| Key | Preview | Description |
|
|
225
|
+
|---|---|---|
|
|
226
|
+
| aton/special-beacon |  | Special-purpose beacon target. |
|
|
227
|
+
| aton/special-mark |  | Special-purpose mark target. |
|
|
228
|
+
| aton/isolateddanger-beacon |  | Isolated danger beacon target. |
|
|
229
|
+
| aton/isolateddanger-mark |  | Isolated danger mark target. |
|
|
230
|
+
| aton/safewater-beacon |  | Safe-water beacon target. |
|
|
231
|
+
| aton/safewater-mark |  | Safe-water mark target. |
|
|
232
|
+
|
|
233
|
+
#### Other and infrastructure
|
|
234
|
+
|
|
235
|
+
| Key | Preview | Description |
|
|
236
|
+
|---|---|---|
|
|
237
|
+
| aton/other |  | Generic AtoN fallback target. |
|
|
238
|
+
| aton/basestation |  | Shore basestation target symbol. |
|
|
239
|
+
| aton/unknown |  | Unknown AtoN fallback target. |
|
|
240
|
+
|
|
241
|
+
### Distress beacon icons
|
|
242
|
+
|
|
243
|
+
| Key | Preview | MMSI prefix | Description |
|
|
244
|
+
|---|---|---|---|
|
|
245
|
+
| beacon/sart |  | 970 | Search and rescue transponder beacon target. |
|
|
246
|
+
| beacon/mob |  | 972 | Man overboard beacon target. |
|
|
247
|
+
| beacon/epirb |  | 974 | Emergency position-indicating beacon target. |
|
|
248
|
+
|
|
249
|
+
### Own-ship icon
|
|
250
|
+
|
|
251
|
+
The center own-ship icon uses its own dedicated asset and is not part of remote target classification.
|
|
252
|
+
|
|
253
|
+
| Key | Preview |
|
|
254
|
+
|---|---|
|
|
255
|
+
| vessel/self |  |
|
|
256
|
+
|
|
257
|
+
## See Also
|
|
258
|
+
|
|
259
|
+
- [Managing Dashboards](#/help/dashboards.md)
|
|
260
|
+
- [Data Inspector](#/help/datainspector.md)
|
|
261
|
+
- [Chartplotter Mode](#/help/chartplotter.md)
|
|
@@ -87,7 +87,7 @@ KIP widgets turn Signal K data into readable visuals and controls. Available wid
|
|
|
87
87
|
- **Freeboard-SK** – Adds the Freeboard-SK chart plotter as a widget with automatic sign-in.
|
|
88
88
|
- **Autopilot Head** – Typical autopilot controls for compatible Signal K Autopilot devices.
|
|
89
89
|
- **Realtime Data Chart** – Visualizes data on a real-time chart with actuals, averages, and min/max.
|
|
90
|
-
- **AIS Radar**: Display AIS targets with range rings, interactive target details, and quick zoom and filtering controls.
|
|
90
|
+
- **AIS Radar**: Display AIS targets with range rings, interactive target details, and quick zoom and filtering controls. See [AIS Radar Widget](#/help/ais-radar.md).
|
|
91
91
|
- **Embed Webpage Viewer** – Embeds external web apps (Grafana, Node-RED, etc.) into your dashboard.
|
|
92
92
|
- **Racesteer** – Race steering display fusing polar performance data with live conditions for optimal tactics.
|
|
93
93
|
- **Racer - Start Line Insight** – Set and adjust start line ends, see distance, favored end, and line bias; integrates with Freeboard SK.
|
|
@@ -96,12 +96,14 @@ exec "$BROWSER" \
|
|
|
96
96
|
--enable-features=OverlayScrollbar \
|
|
97
97
|
--autoplay-policy=no-user-gesture-required \
|
|
98
98
|
--check-for-update-interval=31536000 \
|
|
99
|
+
--overscroll-history-navigation=0 \
|
|
99
100
|
--app="$URL"
|
|
100
101
|
```
|
|
102
|
+
> PRO TIP : Browsers have native edge swipe gestures (swipes that starts from the very edges of the browser window). It triggers back and forth browser history page navigation. KIP posseses defensive code replacing the history page navigation with a KIP sidebar open/close operation. It's not 100% perfect all the time. The --overscroll-history-navigation=0 launch parameter disables the browser native gestures completly.
|
|
101
103
|
|
|
102
104
|
Optionally, you can also add the following `exec "BROWSER" \` flags:
|
|
103
105
|
|
|
104
|
-
|
|
106
|
+
Tell Chromium to keep all threads actives.
|
|
105
107
|
```bash
|
|
106
108
|
--disable-background-timer-throttling \
|
|
107
109
|
--disable-renderer-backgrounding \
|
|
@@ -121,7 +123,7 @@ Save, then:
|
|
|
121
123
|
sudo chmod +x /home/pi/kiosk.sh
|
|
122
124
|
```
|
|
123
125
|
|
|
124
|
-
Tip: You can override the URL without editing the script using:
|
|
126
|
+
> Tip: You can override the URL without editing the script using:
|
|
125
127
|
```
|
|
126
128
|
URL="http://signalk.local:3000/@mxtommy/kip/#/page/0" /home/pi/kiosk.sh
|
|
127
129
|
```
|
|
@@ -2,11 +2,26 @@
|
|
|
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
|
-
{
|
|
6
|
-
|
|
5
|
+
{
|
|
6
|
+
"title": "Widgets",
|
|
7
|
+
"items": [
|
|
8
|
+
{
|
|
9
|
+
"title": "AIS Radar",
|
|
10
|
+
"file": "ais-radar.md"
|
|
11
|
+
}
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"title": "Chartplotter Mode",
|
|
16
|
+
"file": "chartplotter.md"
|
|
17
|
+
},
|
|
7
18
|
{ "title": "Zones, Notifications and Highlights", "file": "zones.md" },
|
|
8
19
|
{ "title": "Digital Switching and PUT", "file": "putcontrols.md" },
|
|
9
20
|
{ "title": "Historical Widget Data", "file": "time-series.md" },
|
|
21
|
+
{
|
|
22
|
+
"title": "Data Inspector",
|
|
23
|
+
"file": "datainspector.md"
|
|
24
|
+
},
|
|
10
25
|
{
|
|
11
26
|
"title": "Integrations",
|
|
12
27
|
"items": [
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {w as w$1,n as G$1,N,i as ir,W as Wp,E as Em,D as Dt,J as JD,y as yt,b as wt,O as Op,o as eu,p as R,r as f,P as Pi,k as Qh,u as ul,T as TT,c as $h,e as EE,t as pT,B as Bh,x as DA,a as G$2,A as re,C as Ff,H as Dr,I as zA,L as Fp,S as ca,U as Kh,V as L,X as xw,Y as Aw,Z as TI,a0 as _,a1 as vA,a2 as Jt,a3 as Xt$1,a4 as Zt$1,a5 as st,_ as _w,M as Mw,a6 as Lr,a7 as Gj,a8 as H,a9 as ru,aa as N$1,ab as te,ac as Mr,ad as Qe,ae as be,af as Tu,ag as bu,ah as nn,ai as Ar,aj as zm,ak as nw,al as Zj,am as LT,an as Hh,s as sg,ao as ue,ap as Ki,aq as Bn,ar as S,as as ke$1,at as Tp,au as be$1,av as _t,aw as Cu,ax as ry,ay as lv,az as Yj,h as Fw,l as ud,g as qw,m as dd,aA as gg,d as ig,aB as gr,aC as L$1,aD as Ce$1,aE as Sr,v as vt,aF as Pr,aG as tD,aH as j,aI as ms,aJ as wm,aK as wr,aL as me,aM as At$1,aN as wt$1}from'./main-
|
|
1
|
+
import {w as w$1,n as G$1,N,i as ir,W as Wp,E as Em,D as Dt,J as JD,y as yt,b as wt,O as Op,o as eu,p as R,r as f,P as Pi,k as Qh,u as ul,T as TT,c as $h,e as EE,t as pT,B as Bh,x as DA,a as G$2,A as re,C as Ff,H as Dr,I as zA,L as Fp,S as ca,U as Kh,V as L,X as xw,Y as Aw,Z as TI,a0 as _,a1 as vA,a2 as Jt,a3 as Xt$1,a4 as Zt$1,a5 as st,_ as _w,M as Mw,a6 as Lr,a7 as Gj,a8 as H,a9 as ru,aa as N$1,ab as te,ac as Mr,ad as Qe,ae as be,af as Tu,ag as bu,ah as nn,ai as Ar,aj as zm,ak as nw,al as Zj,am as LT,an as Hh,s as sg,ao as ue,ap as Ki,aq as Bn,ar as S,as as ke$1,at as Tp,au as be$1,av as _t,aw as Cu,ax as ry,ay as lv,az as Yj,h as Fw,l as ud,g as qw,m as dd,aA as gg,d as ig,aB as gr,aC as L$1,aD as Ce$1,aE as Sr,v as vt,aF as Pr,aG as tD,aH as j,aI as ms,aJ as wm,aK as wr,aL as me,aM as At$1,aN as wt$1}from'./main-IINF7HD6.js';function Pe(o){let t=o.cloneNode(true),e=t.querySelectorAll("[id]"),i=o.nodeName.toLowerCase();t.removeAttribute("id");for(let n=0;n<e.length;n++)e[n].removeAttribute("id");return i==="canvas"?Tt(o,t):(i==="input"||i==="select"||i==="textarea")&&It(o,t),Rt("canvas",o,t,Tt),Rt("input, textarea, select",o,t,It),t}function Rt(o,t,e,i){let n=t.querySelectorAll(o);if(n.length){let s=e.querySelectorAll(o);for(let r=0;r<n.length;r++)i(n[r],s[r]);}}var si=0;function It(o,t){t.type!=="file"&&(t.value=o.value),t.type==="radio"&&t.name&&(t.name=`mat-clone-${t.name}-${si++}`);}function Tt(o,t){let e=t.getContext("2d");if(e)try{e.drawImage(o,0,0);}catch(i){}}function Te(o){let t=o.getBoundingClientRect();return {top:t.top,right:t.right,bottom:t.bottom,left:t.left,width:t.width,height:t.height,x:t.x,y:t.y}}function ye(o,t,e){let{top:i,bottom:n,left:s,right:r}=o;return e>=i&&e<=n&&t>=s&&t<=r}function oi(o,t){let e=t.left<o.left,i=t.left+t.width>o.right,n=t.top<o.top,s=t.top+t.height>o.bottom;return e||i||n||s}function G(o,t,e){o.top+=t,o.bottom=o.top+o.height,o.left+=e,o.right=o.left+o.width;}function kt(o,t,e,i){let{top:n,right:s,bottom:r,left:a,width:l,height:d}=o,h=l*t,v=d*t;return i>n-v&&i<r+v&&e>a-h&&e<s+h}var X=class{_document;positions=new Map;constructor(t){this._document=t;}clear(){this.positions.clear();}cache(t){this.clear(),this.positions.set(this._document,{scrollPosition:this.getViewportScrollPosition()}),t.forEach(e=>{this.positions.set(e,{scrollPosition:{top:e.scrollTop,left:e.scrollLeft},clientRect:Te(e)});});}handleScroll(t){let e=me(t),i=this.positions.get(e);if(!i)return null;let n=i.scrollPosition,s,r;if(e===this._document){let d=this.getViewportScrollPosition();s=d.top,r=d.left;}else s=e.scrollTop,r=e.scrollLeft;let a=n.top-s,l=n.left-r;return this.positions.forEach((d,h)=>{d.clientRect&&e!==h&&e.contains(h)&&G(d.clientRect,a,l);}),n.top=s,n.left=r,{top:a,left:l}}getViewportScrollPosition(){return {top:window.scrollY,left:window.scrollX}}};function Wt(o,t){let e=o.rootNodes;if(e.length===1&&e[0].nodeType===t.ELEMENT_NODE)return e[0];let i=t.createElement("div");return e.forEach(n=>i.appendChild(n)),i}function ke(o,t,e){for(let i in t)if(t.hasOwnProperty(i)){let n=t[i];n?o.setProperty(i,n,e?.has(i)?"important":""):o.removeProperty(i);}return o}function A(o,t){let e=t?"":"none";ke(o.style,{"touch-action":t?"":"none","-webkit-user-drag":t?"":"none","-webkit-tap-highlight-color":t?"":"transparent","user-select":e,"-ms-user-select":e,"-webkit-user-select":e,"-moz-user-select":e});}function Ot(o,t,e){ke(o.style,{position:t?"":"fixed",top:t?"":"0",opacity:t?"":"0",left:t?"":"-999em"},e);}function J(o,t){return t&&t!="none"?o+" "+t:o}function Mt(o,t){o.style.width=`${t.width}px`,o.style.height=`${t.height}px`,o.style.transform=$(t.left,t.top);}function $(o,t){return `translate3d(${Math.round(o)}px, ${Math.round(t)}px, 0)`}var V={capture:true},we={passive:false,capture:true},ri=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275cmp=JD({type:o,selectors:[["ng-component"]],hostAttrs:["cdk-drag-resets-container",""],decls:0,vars:0,template:function(i,n){},styles:[`@layer cdk-resets {
|
|
2
2
|
.cdk-drag-preview {
|
|
3
3
|
background: none;
|
|
4
4
|
border: none;
|