@signalk/freeboard-sk 3.2.0-beta.2 → 3.2.0-beta.4
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/package.json +2 -2
- package/public/3rdpartylicenses.txt +31 -31
- package/public/assets/features/chart-sources-1.jpg +0 -0
- package/public/assets/features/chart-sources-2.jpg +0 -0
- package/public/assets/features/chart-sources-3.jpg +0 -0
- package/public/assets/features/chart-sources-4.jpg +0 -0
- package/public/assets/features/gpx-export-1.jpg +0 -0
- package/public/assets/features/gpx-export-2.jpg +0 -0
- package/public/assets/features/track-history-1.jpg +0 -0
- package/public/assets/features/track-history-2.jpg +0 -0
- package/public/assets/features/track-history-3.jpg +0 -0
- package/public/assets/features/vessel-tracks-1.jpg +0 -0
- package/public/assets/features/vessel-tracks-2.jpg +0 -0
- package/public/assets/features/vessel-tracks-3.jpg +0 -0
- package/public/assets/features-corpus.json +1 -1
- package/public/assets/help/index.html +65 -90
- package/public/{chunk-2SPW2M6P.js → chunk-4DXUR67I.js} +1 -1
- package/public/{chunk-B5SN3ZBN.js → chunk-4JRVRHO7.js} +14 -14
- package/public/{chunk-T5UYZVNA.js → chunk-4ZE2OKZZ.js} +1 -1
- package/public/{chunk-APXAP2M7.js → chunk-6PWYCIYX.js} +1 -1
- package/public/chunk-7D3RA76X.js +1 -0
- package/public/{chunk-FMYAA5JW.js → chunk-7TRKAN4B.js} +1 -1
- package/public/{chunk-OGLYW4PJ.js → chunk-AA62TGOR.js} +1 -1
- package/public/chunk-AMDY4THY.js +1 -0
- package/public/chunk-BMQUNGKK.js +1 -0
- package/public/chunk-CCTZD6S5.js +1 -0
- package/public/chunk-HHW5G2CI.js +1 -0
- package/public/chunk-IVUSRYQI.js +1 -0
- package/public/{chunk-K7PZKJJ7.js → chunk-JEAAYERI.js} +2 -2
- package/public/{chunk-J43UG5Q3.js → chunk-KGFHR4JM.js} +2 -2
- package/public/chunk-L4FEUXHI.js +4372 -0
- package/public/{chunk-XTQIZ74A.js → chunk-N4UL6N3G.js} +1 -1
- package/public/{chunk-K2CIRFN7.js → chunk-OPNUYGIO.js} +51 -51
- package/public/chunk-P5KVJ35V.js +1 -0
- package/public/{chunk-FC62PK2U.js → chunk-PU7NCPYW.js} +5 -5
- package/public/{chunk-KNJHWYQ3.js → chunk-TK54SKYF.js} +1 -1
- package/public/{chunk-2M5JDEPT.js → chunk-VJLDZ4NI.js} +11 -11
- package/public/{chunk-ABEPBSQB.js → chunk-WCLDE6BT.js} +1 -1
- package/public/{chunk-TTKT5FKY.js → chunk-WTDLBURC.js} +3 -3
- package/public/{chunk-2UND4DAL.js → chunk-WYYDGUIZ.js} +2 -2
- package/public/index.html +2 -2
- package/public/main-I7SJMW3M.js +468 -0
- package/public/styles-YRQUZIIZ.css +1 -0
- package/public/worker-3WLRYUBE.js +3 -0
- package/public/worker-BFPH3XRP.js +26 -0
- package/public/worker-SUE26ZZI.js +12 -0
- package/public/chunk-33UDAXN5.js +0 -1
- package/public/chunk-3FOJW6X2.js +0 -1
- package/public/chunk-CJYO3MRU.js +0 -1
- package/public/chunk-FHFMCRY4.js +0 -4197
- package/public/chunk-FTLLJC55.js +0 -1
- package/public/chunk-QGRCSFIW.js +0 -1
- package/public/chunk-UYQ6T6PQ.js +0 -1
- package/public/chunk-WHLON3TU.js +0 -1
- package/public/main-WJS4CMGQ.js +0 -466
- package/public/styles-4PTRKEMS.css +0 -1
- package/public/worker-JRN7I6EJ.js +0 -12
- package/public/worker-U7H5YFPO.js +0 -3
- package/public/worker-WYGJSPFM.js +0 -26
|
@@ -764,8 +764,11 @@
|
|
|
764
764
|
Groups provide a means of defining a set of resources so they can
|
|
765
765
|
be easily displayed or hidden.
|
|
766
766
|
<br />
|
|
767
|
-
Selecting a Group will display
|
|
768
|
-
|
|
767
|
+
Selecting a Group will display the resources within the group on
|
|
768
|
+
the map and hide the other resources of the same type. A type with
|
|
769
|
+
nothing in the group is hidden when <i>Hide</i> is checked for it
|
|
770
|
+
in the Group's properties, and otherwise left as it is. Charts are
|
|
771
|
+
left as they are unless the group contains charts.
|
|
769
772
|
<br />
|
|
770
773
|
Resources can be added to groups directly from the specific
|
|
771
774
|
resource list <i>(e.g. Routes, Waypoints, Regions, Charts)</i> or
|
|
@@ -792,7 +795,7 @@
|
|
|
792
795
|
Use this to:
|
|
793
796
|
<ul>
|
|
794
797
|
<li>Rename the group</li>
|
|
795
|
-
<li>Display the
|
|
798
|
+
<li>Display the resources within the group</li>
|
|
796
799
|
<li>Add and Remove resources from the group</li>
|
|
797
800
|
</ul>
|
|
798
801
|
group.
|
|
@@ -856,65 +859,10 @@
|
|
|
856
859
|
|
|
857
860
|
<div style="display: flex; flex-wrap: wrap">
|
|
858
861
|
<div style="padding-left: 15px">
|
|
859
|
-
Overlays
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
update the displayed data from the source.
|
|
864
|
-
<br />
|
|
865
|
-
The opacity of the overlay can be configured to control the
|
|
866
|
-
visibility of the underlying chart layers.
|
|
867
|
-
<br />
|
|
868
|
-
<ul>
|
|
869
|
-
<li>
|
|
870
|
-
<i class="material-icons">add</i> <b>New Overlay:</b> Create a
|
|
871
|
-
new overlay from a WMS or WMTS source.
|
|
872
|
-
</li>
|
|
873
|
-
<li>
|
|
874
|
-
<i class="material-icons">delete</i>
|
|
875
|
-
<b>Delete Overlay:</b> Delete the overlay definition from the
|
|
876
|
-
server.
|
|
877
|
-
</li>
|
|
878
|
-
</ul>
|
|
879
|
-
</div>
|
|
880
|
-
</div>
|
|
881
|
-
<div style="display: flex; flex-wrap: wrap">
|
|
882
|
-
<div style="padding-left: 15px; background-color: orange">
|
|
883
|
-
<b>Enabling Overlays</b><br />
|
|
884
|
-
Freeboard will try to create a resource collection on the Signal K
|
|
885
|
-
server to store Overlays. <br />
|
|
886
|
-
<i
|
|
887
|
-
>Note: this requires that:
|
|
888
|
-
<ol>
|
|
889
|
-
<li>You are logged in to the Signal K server</li>
|
|
890
|
-
<li>
|
|
891
|
-
<b>resources-provider</b> plugin version 1.4.1 or greater is
|
|
892
|
-
installed on the server
|
|
893
|
-
</li>
|
|
894
|
-
</ol>
|
|
895
|
-
</i>
|
|
896
|
-
|
|
897
|
-
If Freeboard cannot create the store then you can configure a
|
|
898
|
-
<i>infolayers</i> resource endpoint on the Signal K server.
|
|
899
|
-
<br />
|
|
900
|
-
To do this:
|
|
901
|
-
<ul>
|
|
902
|
-
<li>
|
|
903
|
-
In the Signal K server Admin console select
|
|
904
|
-
<b>Server | Plugin Config</b>
|
|
905
|
-
</li>
|
|
906
|
-
<li>Select the <b>Resources Provider</b> plugin</li>
|
|
907
|
-
<li>
|
|
908
|
-
In the <b>Resources (Custom)</b> section, click
|
|
909
|
-
<i class="material-icons">add</i> and type
|
|
910
|
-
<i>infolayers</i> in the <b>Resource Type</b>
|
|
911
|
-
</li>
|
|
912
|
-
<li>Click <b>Submit</b></li>
|
|
913
|
-
</ul>
|
|
914
|
-
<i
|
|
915
|
-
>Note: Freeboard-SK will need to be re-loaded to make the
|
|
916
|
-
Overlays menu item available.</i
|
|
917
|
-
>
|
|
862
|
+
Overlays have moved to the <b>Chart list</b>. An overlay you
|
|
863
|
+
created in an earlier version of Freeboard appears there as a
|
|
864
|
+
chart, keeping its refresh interval and time control. Add new WMS
|
|
865
|
+
/ WMTS layers with <b>Add Chart Source</b>.
|
|
918
866
|
</div>
|
|
919
867
|
</div>
|
|
920
868
|
|
|
@@ -1048,9 +996,10 @@
|
|
|
1048
996
|
Check the <b>Include trail from server</b> if you want to
|
|
1049
997
|
include trail data stored on the server.<br />
|
|
1050
998
|
<i>
|
|
1051
|
-
Recommended
|
|
1052
|
-
|
|
1053
|
-
|
|
999
|
+
Recommended when the vessel trail comes from the server (<b
|
|
1000
|
+
>Track source</b
|
|
1001
|
+
>
|
|
1002
|
+
in <b>Settings</b>).
|
|
1054
1003
|
</i>
|
|
1055
1004
|
</li>
|
|
1056
1005
|
<li>
|
|
@@ -1272,6 +1221,10 @@
|
|
|
1272
1221
|
data which can be hosted on commodity storage.
|
|
1273
1222
|
</li>
|
|
1274
1223
|
</ul>
|
|
1224
|
+
Charts such as weather radar or satellite imagery may refresh
|
|
1225
|
+
themselves at an interval and carry a time control; see the Feature
|
|
1226
|
+
Browser → <i>Auto-refreshing Charts</i> and
|
|
1227
|
+
<i>Time-varying Charts</i>.
|
|
1275
1228
|
</div>
|
|
1276
1229
|
<br />
|
|
1277
1230
|
<div style="display: flex; flex-wrap: wrap">
|
|
@@ -1299,7 +1252,8 @@
|
|
|
1299
1252
|
<li>
|
|
1300
1253
|
<b>Add Chart Source:</b> Click
|
|
1301
1254
|
<i class="material-icons">add</i> to add a new chart source
|
|
1302
|
-
<i>(
|
|
1255
|
+
<i>(WMTS, WMS or JSON Map Source)</i>. See the Feature Browser
|
|
1256
|
+
→ <i>Adding a Chart Source</i>, or the
|
|
1303
1257
|
<a
|
|
1304
1258
|
href="https://github.com/SignalK/freeboard-sk/wiki/Chart-Sources"
|
|
1305
1259
|
>
|
|
@@ -1310,7 +1264,8 @@
|
|
|
1310
1264
|
<li>
|
|
1311
1265
|
<b>Properties:</b> Click
|
|
1312
1266
|
<i class="material-icons">info_outline</i> to display the
|
|
1313
|
-
chart properties.
|
|
1267
|
+
chart properties. For a chart source you added yourself, the
|
|
1268
|
+
name, layers and auto-refresh interval can be edited here.
|
|
1314
1269
|
</li>
|
|
1315
1270
|
<li>
|
|
1316
1271
|
<b>Opacity:</b> Click
|
|
@@ -1331,7 +1286,8 @@
|
|
|
1331
1286
|
<b>Time:</b> Click <i class="material-icons">schedule</i> to
|
|
1332
1287
|
show a time-varying chart (weather radar, satellite) at an
|
|
1333
1288
|
earlier frame, step or play through its frames, and return to
|
|
1334
|
-
|
|
1289
|
+
its newest frame. Closing the palette returns the chart to its
|
|
1290
|
+
newest frame. See the Feature Browser →
|
|
1335
1291
|
<i>Time-varying Charts</i>.
|
|
1336
1292
|
</li>
|
|
1337
1293
|
<li>
|
|
@@ -1441,12 +1397,12 @@
|
|
|
1441
1397
|
You will be presented with a screen that will allow you to select
|
|
1442
1398
|
some or all of the Route and Waypoint resources from the Signal K
|
|
1443
1399
|
server.<br />
|
|
1444
|
-
Additionally, the
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1400
|
+
Additionally, the vessel trail can be saved as a GPX track,
|
|
1401
|
+
whether it is kept on this device or fetched from the server.<br />
|
|
1402
|
+
A single vessel's track can also be exported from its popup with
|
|
1403
|
+
<i class="material-icons">download</i> <b>Export track to GPX</b>.
|
|
1404
|
+
For the track ranges that can be saved, see the Feature Browser
|
|
1405
|
+
→ <i>Export to GPX</i>.<br />
|
|
1450
1406
|
<ul>
|
|
1451
1407
|
<li>
|
|
1452
1408
|
<b>Waypoints:</b> Click the checkbox to select all Waypoints
|
|
@@ -2606,22 +2562,37 @@
|
|
|
2606
2562
|
the selected time and the vessel's current SOG.
|
|
2607
2563
|
</li>
|
|
2608
2564
|
<li>
|
|
2609
|
-
<b>Display Vessel
|
|
2610
|
-
the
|
|
2611
|
-
|
|
2612
|
-
cache maintaining up to 5000 points at a 5 second interval.
|
|
2565
|
+
<b>Display Vessel Track</b>: Check this box to display the vessel
|
|
2566
|
+
trail (on by default). See the Feature Browser →
|
|
2567
|
+
<i>Vessel Tracks</i> for how the trail is shown.
|
|
2613
2568
|
<ul>
|
|
2614
2569
|
<li>
|
|
2615
|
-
<b>
|
|
2616
|
-
|
|
2617
|
-
|
|
2570
|
+
<b>Track source</b>: where the trail comes from.
|
|
2571
|
+
<ul>
|
|
2572
|
+
<li>
|
|
2573
|
+
<i>Auto</i> (default): the server's recorded track when
|
|
2574
|
+
the server can supply one, otherwise a local cache on this
|
|
2575
|
+
device.
|
|
2576
|
+
</li>
|
|
2577
|
+
<li>
|
|
2578
|
+
<i>Server</i>: the track recorded by the server's Track
|
|
2579
|
+
API (<i>signalk/v2/api/tracks</i>, Signal K server 2.33 or
|
|
2580
|
+
later with a track provider). Unavailable when the server
|
|
2581
|
+
has no track source.
|
|
2582
|
+
</li>
|
|
2583
|
+
<li>
|
|
2584
|
+
<i>This device</i>: a local cache maintaining up to 5000
|
|
2585
|
+
points at a 5 second interval, recorded while Freeboard is
|
|
2586
|
+
open.
|
|
2587
|
+
</li>
|
|
2588
|
+
</ul>
|
|
2618
2589
|
</li>
|
|
2619
2590
|
<li>
|
|
2620
2591
|
Use the slider to set the <b>length</b> of track to retrieve
|
|
2621
2592
|
from the server in hours. Time is relative to the current
|
|
2622
2593
|
time.<br />
|
|
2623
2594
|
|
|
2624
|
-
The <b>Resolution</b> settings define the
|
|
2595
|
+
The <b>Resolution</b> settings define the spacing of track
|
|
2625
2596
|
points returned by the server for the following time windows:
|
|
2626
2597
|
<ul>
|
|
2627
2598
|
<li>Last hour (default = 5 secs)</li>
|
|
@@ -2633,8 +2604,8 @@
|
|
|
2633
2604
|
transferred from the server which may impact performance. </span
|
|
2634
2605
|
><br />
|
|
2635
2606
|
Trail data received from the server undergoes temporal
|
|
2636
|
-
simplification to
|
|
2637
|
-
|
|
2607
|
+
simplification to minimize the data used to display the trail
|
|
2608
|
+
while maintaining integrity.
|
|
2638
2609
|
</li>
|
|
2639
2610
|
</ul>
|
|
2640
2611
|
</li>
|
|
@@ -2658,14 +2629,18 @@
|
|
|
2658
2629
|
the map.
|
|
2659
2630
|
</li>
|
|
2660
2631
|
<li>
|
|
2661
|
-
<b>Wind /
|
|
2662
|
-
other vessels wind
|
|
2663
|
-
|
|
2632
|
+
<b>Wind / Track Zoom Level</b>: The minimum Zoom level at which
|
|
2633
|
+
other vessels' wind vectors are displayed. <i>(Default=15)</i>
|
|
2634
|
+
</li>
|
|
2635
|
+
<li>
|
|
2636
|
+
<b>Show all tracks</b>: Select to display the last 2 hours of the
|
|
2637
|
+
tracks of all other vessels in the map view, from zoom level 10.
|
|
2638
|
+
See the Feature Browser → <i>Vessel Tracks</i>.
|
|
2664
2639
|
</li>
|
|
2665
2640
|
<li>
|
|
2666
|
-
<b>
|
|
2667
|
-
|
|
2668
|
-
|
|
2641
|
+
<b>Picked vessel track length</b>: How far back the track of a
|
|
2642
|
+
vessel picked with its <i>TRACK</i> button reaches (hours, default
|
|
2643
|
+
12). Shown only while <i>Show all tracks</i> is off.
|
|
2669
2644
|
</li>
|
|
2670
2645
|
<li>
|
|
2671
2646
|
<b>Hide Moored</b>: Select to hide vessels with a state of
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Sa as $,q as Y,z as Z}from"./chunk-L4FEUXHI.js";import{a as q,b as Q,c as X}from"./chunk-WTDLBURC.js";import{j as B,l as N}from"./chunk-VJLDZ4NI.js";import{a as z,b as G,d as J}from"./chunk-PU7NCPYW.js";import{a as U}from"./chunk-N4UL6N3G.js";import"./chunk-AA62TGOR.js";import{b as K,i as W,o as H}from"./chunk-WCLDE6BT.js";import"./chunk-WYYDGUIZ.js";import"./chunk-4ZE2OKZZ.js";import"./chunk-7TRKAN4B.js";import{Ea as u,Ed as P,Fa as g,Fd as R,Ha as C,Ia as M,Id as k,Ja as I,Ka as _,Kd as T,La as i,Ma as t,Md as V,Na as b,Nd as A,R as d,S as p,Ua as h,Vd as F,Wa as f,Xd as O,Ya as c,_d as j,ja as r,lb as n,mb as w,nb as v,oa as m,pb as D,qb as S,qe as L,ra as y,rb as E}from"./chunk-OPNUYGIO.js";import"./chunk-6H3I7D5M.js";function te(o,a){if(o&1&&(i(0,"mat-option",10),n(1),t()),o&2){let e=a.$implicit;_("value",e),r(),w(e)}}function ie(o,a){if(o&1){let e=h();i(0,"div")(1,"ap-file-input",17),f("chosen",function(l){d(e);let x=c(2);return p(x.parseFile(l))}),i(2,"div",18)(3,"div",19),n(4," Click or Drop file "),t()()()()}o&2&&(r(),_("astext",!0))}function ne(o,a){if(o&1){let e=h();i(0,"div")(1,"div")(2,"b"),n(3,"Invalid Resource Data:"),t(),b(4,"br")(5,"br"),i(6,"i"),n(7,"Selected file does not contain valid data. "),t(),b(8,"br"),t(),i(9,"div",20)(10,"button",21),f("click",function(){d(e);let l=c(2);return p(l.app.showHelp("resource"))}),i(11,"mat-icon"),n(12,"help"),t(),n(13," Help "),t()()()}}function oe(o,a){o&1&&(i(0,"div",16),n(1," Note: Data will not be validated when uploaded to server! "),t())}function ae(o,a){if(o&1){let e=h();i(0,"div",7)(1,"div")(2,"mat-form-field",8)(3,"mat-label"),n(4,"Select Destination Path"),t(),i(5,"mat-select",9,0),E("valueChange",function(l){d(e);let x=c();return S(x.targetPath,l)||(x.targetPath=l),p(l)}),M(7,te,2,2,"mat-option",10,C),t()()(),u(9,ie,5,1,"div"),u(10,ne,14,0,"div"),i(11,"div")(12,"div",11)(13,"div",12)(14,"div")(15,"span",13),n(16,"Name:"),t(),n(17),t(),i(18,"div")(19,"span",13),n(20,"Type:"),t(),n(21),t()()(),i(22,"div",14)(23,"button",15),f("click",function(){d(e);let l=c();return p(l.load())}),i(24,"mat-icon"),n(25,"file_upload"),t(),n(26," \xA0Load\xA0 "),t(),b(27,"br"),n(28,"\xA0 "),u(29,oe,2,0,"div",16),t()()()}if(o&2){let e=c();r(5),_("disabled",!e.resPaths),D("value",e.targetPath),r(2),I(e.resPaths),r(2),g(e.source.name?-1:9),r(),g(e.display.notValid?10:-1),r(7),v(" ",e.source.name," "),r(4),v(" ",e.source.type," "),r(2),_("disabled",!e.targetPath||!e.source.name),r(6),g(e.targetPath&&e.source.name?29:-1)}}var ee=class o{constructor(a,e,s,l){this.app=a;this.skclient=e;this.dialogRef=s;this.data=l}app;skclient;dialogRef;data;resPaths=[];targetPath=null;source={type:null,name:null,data:null};display={notValid:!1};unsubscribe=[];ngOnInit(){this.skclient.api.get(this.app.skApiVersion,"/resources").subscribe(a=>{this.resPaths=[],this.targetPath=null,this.resPaths=Object.keys(a).filter(e=>!["routes","waypoints","notes","regions","charts","tracks"].includes(e))},()=>{this.resPaths=[],this.targetPath=null})}ngOnDestroy(){this.unsubscribe.forEach(a=>a.unsubscribe())}load(){this.dialogRef.close({path:this.targetPath,data:this.source.data})}parseFile(a){this.source=a,this.source.type="Unknown";try{let e=JSON.parse(a.data);this.source.type=e.type?e.type:this.source.type}catch(e){console.log("Error parsing resource file!")}}static \u0275fac=function(e){return new(e||o)(m($),m(Y),m(P),m(R))};static \u0275cmp=y({type:o,selectors:[["resource-upload-dialog"]],decls:13,vars:1,consts:[["respaths",""],[1,"resourceload-dialog"],[2,"background-color","transparent"],[2,"flex","1 1 auto","text-align","center"],[2,"text-align","right"],["mat-icon-button","",3,"click"],["mat-dialog-content",""],[1,"card-group"],["floatLabel","always",2,"width","100%"],["id","respaths",3,"valueChange","disabled","value"],[3,"value"],[2,"display","flex","flex-wrap","wrap"],[2,"flex","1 1 auto","padding","5px","font-size","smaller"],[2,"font-weight","bold"],[2,"text-align","center","padding-top","15px"],["mat-raised-button","","matTooltip","Load features","matTooltipPosition","below",3,"click","disabled"],[2,"padding","10px","border","gray 1px dashed","font-style","italic"],[3,"chosen","astext"],[2,"width","200px"],[2,"padding","25%","border","gray 1px dashed"],[2,"width","100%","text-align","center"],["mat-raised-button","",3,"click"]],template:function(e,s){e&1&&(i(0,"div",1)(1,"mat-toolbar",2)(2,"span")(3,"mat-icon"),n(4,"category"),t()(),i(5,"span",3),n(6,"Load Resource"),t(),i(7,"span",4)(8,"button",5),f("click",function(){return s.dialogRef.close()}),i(9,"mat-icon"),n(10,"close"),t()()()(),i(11,"div",6),u(12,ae,30,8,"div",7),t()()),e&2&&(r(12),g(s.display.notValid?-1:12))},dependencies:[L,H,W,K,J,G,z,X,U,A,V,B,j,O,F,Q,q,N,T,k,Z],styles:[".resourceload-dialog[_ngcontent-%COMP%]{font-family:roboto;position:relative;width:100%}.card-group[_ngcontent-%COMP%]{padding:5px 5%}@media only screen and (min-width:800px){.card-group[_ngcontent-%COMP%]{padding:5px 5%}}"]})};export{ee as ResourceImportDialog};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{f as
|
|
1
|
+
import{f as b}from"./chunk-6H3I7D5M.js";var g=r=>typeof Worker>"u"?Promise.reject(new Error("Error starting Worker!")):new Promise((t,e)=>{let n=new Worker(new URL("worker-5LIQ6F6U.js",import.meta.url),{type:"module"}),i=s=>{n.terminate(),s?t(s):e(new Error("Error processing content!"))};n.onmessage=s=>i(s.data),n.onerror=()=>i(null),n.postMessage({sourceType:"xml",value:r})});function c(r,t){if(typeof r!="string"||r.trim()==="")return t;let e=Number(r);return Number.isFinite(e)?e:t}function o(r){return String(r).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}var x=class{version;creator;wpt;rte;trk;extensions;metadata;constructor(){this.init()}init(){this.version="1.1",this.creator="@panaaj",this.wpt=[],this.rte=[],this.trk=[],this.extensions={},this.metadata=new d}stringify(){return this.toXML()}toXML(){let t=`<?xml version="1.0" encoding="UTF-8"?>\r
|
|
2
2
|
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="${this.version}" xmlns="http://www.topografix.com/GPX/1/1" creator="${this.creator}" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.topografix.com/GPX/Private/TopoGrafix/0/1 http://www.topografix.com/GPX/Private/TopoGrafix/0/1/topografix.xsd" xmlns:topografix="http://www.topografix.com/GPX/Private/TopoGrafix/0/1">\r
|
|
3
3
|
`+this.metadataToXML()+this.waypointsToXML()+this.routesToXML()+this.tracksToXML();return t+=this.extensionsToXML(this.extensions),t+=`</gpx>\r
|
|
4
4
|
`,t}metadataToXML(){let t=` <metadata>\r
|
|
@@ -40,25 +40,25 @@ import{f as y}from"./chunk-6H3I7D5M.js";var b=a=>typeof Worker>"u"?Promise.rejec
|
|
|
40
40
|
</link>\r
|
|
41
41
|
`}),t+=this.extensionsToXML(e.extensions,2);for(let n of e.rtept)t+=this.ptToXML(n,"rtept");t+=` </rte>\r
|
|
42
42
|
`}),t}tracksToXML(){let t="";return this.trk.forEach(e=>{t+=` <trk>\r
|
|
43
|
-
`,t+=e.name?` <name>${e.name
|
|
44
|
-
`:"",t+=e.cmt?` <cmt>${e.cmt
|
|
45
|
-
`:"",t+=e.desc?` <desc>${e.desc
|
|
46
|
-
`:"",t+=e.src?` <src>${e.src
|
|
43
|
+
`,t+=e.name?` <name>${o(e.name)}</name>\r
|
|
44
|
+
`:"",t+=e.cmt?` <cmt>${o(e.cmt)}</cmt>\r
|
|
45
|
+
`:"",t+=e.desc?` <desc>${o(e.desc)}</desc>\r
|
|
46
|
+
`:"",t+=e.src?` <src>${o(e.src)}</src>\r
|
|
47
47
|
`:"",t+=e.number?` <number>${e.number||""}</number>\r
|
|
48
|
-
`:"",t+=e.type?` <type>${e.type
|
|
48
|
+
`:"",t+=e.type?` <type>${o(e.type)}</type>\r
|
|
49
49
|
`:"",t+=this.extensionsToXML(e.extensions,2),e.trkseg.forEach(n=>{t+=` <trkseg>\r
|
|
50
50
|
`;for(let i of n.trkpt)t+=this.ptToXML(i,"trkpt");t+=` </trkseg>\r
|
|
51
51
|
`}),t+=` </trk>\r
|
|
52
52
|
`}),t}ptToXML(t,e){let n="",i=2;switch(e){case"trkpt":n=" ",i=4;break;case"rtept":n=" ",i=3;break}let s="";return s+=`${n} <${e} lat="${t.lat.toFixed(6)}" lon="${t.lon.toFixed(6)}">\r
|
|
53
|
-
`,s+=t.
|
|
53
|
+
`,s+=t.ele?`${n} <ele>${t.ele||""}</ele>\r
|
|
54
|
+
`:"",s+=t.datetime instanceof Date&&!isNaN(t.datetime.getTime())?`${n} <time>${t.datetime.toISOString()}</time>\r
|
|
55
|
+
`:"",s+=t.sym?`${n} <sym>${t.sym||""}</sym>\r
|
|
54
56
|
`:"",s+=t.name?`${n} <name>${t.name||""}</name>\r
|
|
55
57
|
`:"",s+=t.cmt?`${n} <cmt>${t.cmt||""}</cmt>\r
|
|
56
58
|
`:"",s+=t.desc?`${n} <desc>${t.desc||""}</desc>\r
|
|
57
59
|
`:"",s+=t.src?`${n} <src>${t.src||""}</src>\r
|
|
58
60
|
`:"",s+=t.type?`${n} <type>${t.type||""}</type>\r
|
|
59
|
-
`:"",s+=t.time?`${n} <time>${t.datetime||""}</time>\r
|
|
60
61
|
`:"",s+=t.fix?`${n} <fix>${t.fix||""}</fix>\r
|
|
61
|
-
`:"",s+=t.ele?`${n} <ele>${t.ele||""}</ele>\r
|
|
62
62
|
`:"",s+=t.magvar?`${n} <magvar>${t.magvar||""}</magvar>\r
|
|
63
63
|
`:"",s+=t.geoidHeight?`${n} <geoidheight>${t.geoidHeight||""}</geoidheight>\r
|
|
64
64
|
`:"",s+=t.sat?`${n} <sat>${t.sat||""}</sat>\r
|
|
@@ -67,14 +67,14 @@ import{f as y}from"./chunk-6H3I7D5M.js";var b=a=>typeof Worker>"u"?Promise.rejec
|
|
|
67
67
|
`:"",s+=t.pdop?`${n} <pdop>${t.pdop||""}</pdop>\r
|
|
68
68
|
`:"",s+=t.ageOfGpsData?`${n} <ageofdgpsdata>${t.ageOfGpsData||""}</ageofdgpsdata>\r
|
|
69
69
|
`:"",s+=t.dgpsid?`${n} <dgpsid>${t.dgpsid||""}</dgpsid>\r
|
|
70
|
-
`:"",t.link.forEach(
|
|
71
|
-
${n} <text>${
|
|
72
|
-
${n} <type>${
|
|
70
|
+
`:"",t.link.forEach(a=>{s+=`${n} <link href="${a.href||""}">\r
|
|
71
|
+
${n} <text>${a.text||""}</text>\r
|
|
72
|
+
${n} <type>${a.type||""}</type>\r
|
|
73
73
|
${n} </link>\r
|
|
74
74
|
`}),s+=this.extensionsToXML(t.extensions,i),s+=`${n} </${e}>\r
|
|
75
|
-
`,s}extensionsToXML(t,e=1){let n="";if(t&&Object.keys(t).length!==0){let i=" ".slice(0-e),s="";t.signalk&&Object.keys(t.signalk).forEach(
|
|
75
|
+
`,s}extensionsToXML(t,e=1){let n="";if(t&&Object.keys(t).length!==0){let i=" ".slice(0-e),s="";t.signalk&&Object.keys(t.signalk).forEach(a=>{s+=`${i} <${a}>${t.signalk[a]}</${a}>\r
|
|
76
76
|
`}),n+=`${i}<extensions>\r
|
|
77
77
|
${i} <signalk>\r
|
|
78
78
|
`+s+`${i} </signalk>\r
|
|
79
79
|
${i}</extensions>\r
|
|
80
|
-
`}return n}xValue(t){if(t&&Array.isArray(t))return t.length!==0?t[0]:null}applyBounds(t){let e=t?.$??{},n=this.metadata.bounds;n.minLat=
|
|
80
|
+
`}return n}xValue(t){if(t&&Array.isArray(t))return t.length!==0?t[0]:null}applyBounds(t){let e=t?.$??{},n=this.metadata.bounds;n.minLat=c(e.minlat,n.minLat),n.minLon=c(e.minlon,n.minLon),n.maxLat=c(e.maxlat,n.maxLat),n.maxLon=c(e.maxlon,n.maxLon)}parse(t){return b(this,null,function*(){if(!t||t.indexOf("<gpx")===-1)return!1;this.init();try{let e=yield g(t);if(e.gpx.metadata){let n=this.xValue(e.gpx.metadata);this.metadata.name=n.name?this.xValue(n.name):null,this.metadata.desc=n.desc?this.xValue(n.desc):null,this.metadata.keywords=n.keywords?n.keywords:null,n.bounds&&this.applyBounds(this.xValue(n.bounds)),this.metadata.extensions=n.extensions?this.parseExtensions(n.extensions):{}}return e.gpx.wpt&&this.parseWaypoints(e.gpx.wpt),e.gpx.rte&&this.parseRoutes(e.gpx.rte),e.gpx.trk&&this.parseTracks(e.gpx.trk),this.extensions=e.gpx.extensions?this.parseExtensions(e.gpx.extensions):{},!0}catch(e){return!1}})}parseWaypoints(t){if(Array.isArray(t))t.forEach(e=>{let n=this.toWpt(e);this.updateBounds(n),this.wpt.push(n)});else{let e=this.toWpt(t);this.updateBounds(e),this.wpt.push(e)}}parseRoutes(t){if(Array.isArray(t))t.forEach(e=>{let n=this.toRte(e);this.updateBounds(n),this.rte.push(n)});else{let e=this.toRte(t);this.updateBounds(e),this.rte.push(e)}}parseTracks(t){if(Array.isArray(t))t.forEach(e=>{let n=this.toTrk(e);this.updateBounds(n),this.trk.push(n)});else{let e=this.toTrk(t);this.updateBounds(e),this.trk.push(e)}}parseExtensions(t){if(!t)return{};if(!Array.isArray(t))return{};let e={};return t.forEach(n=>{if(n.signalk){let i={},s=this.xValue(n.signalk);Object.keys(s).forEach(a=>{i[a]=this.xValue(s[a])}),e.signalk=i}}),e}parseLinks(t){let e=[];if(!t)return e;if(Array.isArray(t))t.forEach(n=>{let i=new p;i.href=n._href,i.text=n.text,i.type=n.type,e.push(i)});else{let n=new p;n.href=t._href,n.text=t.text,n.type=t.type,e.push(n)}return e}toRte(t){let e=new h;return e.name=t.name?this.xValue(t.name):null,e.cmt=t.cmt?this.xValue(t.cmt):null,e.desc=t.desc?this.xValue(t.desc):null,e.src=t.src?this.xValue(t.src):null,e.extensions=t.extensions?this.parseExtensions(t.extensions):{},t.rtept&&(e.rtept=this.toPtArray(t.rtept)),e}toWpt(t){let e=new l;return e.lat=Number(t.$.lat)||0,e.lon=Number(t.$.lon)||0,e.ele=t.ele?Number(this.xValue(t.ele)):null,e.sym=t.sym?this.xValue(t.sym):null,e.name=t.name?this.xValue(t.name):null,e.cmt=t.cmt?this.xValue(t.cmt):null,e.desc=t.desc?this.xValue(t.desc):null,e.src=t.src?this.xValue(t.src):null,e.type=t.type?this.xValue(t.type):null,e.extensions=t.extensions?this.parseExtensions(t.extensions):{},e}toTrk(t){let e=new m;if(e.name=t.name?this.xValue(t.name):null,e.cmt=t.cmt?this.xValue(t.cmt):null,e.desc=t.desc?this.xValue(t.desc):null,e.src=t.src?this.xValue(t.src):null,e.number=t.number?Number(this.xValue(t.number)):null,e.type=t.type?this.xValue(t.type):null,e.extensions=t.extensions?this.parseExtensions(t.extensions):{},t.trkseg)if(Array.isArray(t.trkseg))t.trkseg.forEach(n=>{let i=new u;i.extensions=n.extensions?this.parseExtensions(n.extensions):{},n.trkpt&&(i.trkpt=this.toPtArray(n.trkpt)),e.trkseg.push(i)});else{let n=new u;n.extensions=t.trkseg.extensions?this.parseExtensions(t.trkseg.extensions):{},t.trkseg.trkpt&&(n.trkpt=this.toPtArray(t.trkseg.trkpt)),e.trkseg.push(n)}return e}toPtArray(t){let e=[];if(Array.isArray(t))t.forEach(n=>{let i=this.toWpt(n);this.updateBounds(i),e.push(i)});else{let n=this.toWpt(t);this.updateBounds(n),e.push(n)}return e}setExtension(t,e,n){t.extensions||(t.extensions={});let i=e.split("."),s=t.extensions;i.forEach(a=>{s[a]||(s[a]={}),s=s[a]}),t.extensions.signalk.uuid=n}updateBounds(t){this.metadata.bounds.minLat=t.lat<this.metadata.bounds.minLat?t.lat:this.metadata.bounds.minLat,this.metadata.bounds.minLon=t.lon<this.metadata.bounds.minLon?t.lon:this.metadata.bounds.minLon,this.metadata.bounds.maxLat=t.lat>this.metadata.bounds.maxLat?t.lat:this.metadata.bounds.maxLat,this.metadata.bounds.maxLon=t.lon>this.metadata.bounds.maxLon?t.lon:this.metadata.bounds.maxLon}},l=class{lat;lon;ele;datetime;magvar;geoidHeight;name;cmt;desc;src;link=[];sym;type;fix;sat;hdop;vdop;pdop;ageOfGpsData;dgpsid;extensions={};constructor(t,e){this.lat=t||0,this.lon=e||0}},h=class{name;cmt;desc;src;link=[];number;type;extensions={};rtept=[];constructor(t){this.name=t||""}},m=class{name;cmt;desc;src;link=[];number;type;extensions={};trkseg=[];constructor(t){this.name=t||""}},u=class{trkpt=[];extensions={}};var d=class{name="";desc="";author;copyright;link=[];time=new Date().toISOString();keywords="";bounds=new y;extensions={}},p=class{href="";text="";type=""};var y=class{minLat=90;minLon=180;maxLat=-90;maxLon=-180};export{x as a,l as b,h as c,m as d,u as e};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{M as a,ib as i,ra as c,sa as r,
|
|
1
|
+
import{M as a,ib as i,ra as c,sa as r,wd as d,yc as s}from"./chunk-OPNUYGIO.js";var p=(()=>{class e{_animationsDisabled=d();state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=c({type:e,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(t,o){t&2&&i("mat-pseudo-checkbox-indeterminate",o.state==="indeterminate")("mat-pseudo-checkbox-checked",o.state==="checked")("mat-pseudo-checkbox-disabled",o.disabled)("mat-pseudo-checkbox-minimal",o.appearance==="minimal")("mat-pseudo-checkbox-full",o.appearance==="full")("_mat-animation-noopable",o._animationsDisabled)},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(t,o){},styles:[`.mat-pseudo-checkbox {
|
|
2
2
|
border-radius: 2px;
|
|
3
3
|
cursor: pointer;
|
|
4
4
|
display: inline-block;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as y,d as S,e as k,g as E,k as R,o as B}from"./chunk-
|
|
1
|
+
import{c as y,d as S,e as k,g as E,k as R,o as B}from"./chunk-WYYDGUIZ.js";import"./chunk-4ZE2OKZZ.js";import"./chunk-7TRKAN4B.js";import{Ed as b,Fd as I,Hd as L,Ia as f,Id as C,Ja as u,Jd as w,Kd as P,La as e,Ma as a,Md as W,Nd as v,R as s,S as g,Ua as M,Wa as c,Xd as T,Ya as _,_d as h,ja as l,lb as o,mb as D,nb as A,oa as r,ob as x,ra as p}from"./chunk-OPNUYGIO.js";import"./chunk-6H3I7D5M.js";var F=(n,i)=>i.extension+"/"+i.widget.id;function O(n,i){if(n&1){let t=M();e(0,"button",4),c("click",function(){let m=s(t).$implicit,j=_();return g(j.dialogRef.close(m))}),e(1,"span",5),o(2),a(),e(3,"span",6),o(4),a()()}if(n&2){let t=i.$implicit;l(2),D(t.widget.title),l(2),x("",t.extensionName," \xB7 ",t.widget.size)}}var N=class n{constructor(i,t){this.dialogRef=i;this.data=t;this.anchorLabel=B[t.anchor]}dialogRef;data;anchorLabel;static \u0275fac=function(t){return new(t||n)(r(b),r(I))};static \u0275cmp=p({type:n,selectors:[["fb-plotterext-add-widget"]],decls:12,vars:1,consts:[["mat-dialog-title","",1,"pe-add-title"],["mat-list-item",""],["align","end"],["mat-button","",3,"click"],["mat-list-item","",3,"click"],["matListItemTitle",""],["matListItemLine",""]],template:function(t,d){t&1&&(e(0,"div",0)(1,"mat-icon"),o(2,"widgets"),a(),e(3,"span"),o(4),a()(),e(5,"mat-dialog-content")(6,"mat-action-list"),f(7,O,5,3,"button",1,F),a()(),e(9,"mat-dialog-actions",2)(10,"button",3),c("click",function(){return d.dialogRef.close()}),o(11,"Cancel"),a()()),t&2&&(l(4),A("Add widget \u2014 ",d.anchorLabel),l(3),u(d.data.candidates))},dependencies:[P,L,w,C,h,T,v,W,R,k,E,S,y],styles:[".pe-add-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}"]})};export{N as PlotterAddWidgetDialog};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ra as a}from"./chunk-L4FEUXHI.js";import"./chunk-WTDLBURC.js";import"./chunk-VJLDZ4NI.js";import"./chunk-PU7NCPYW.js";import"./chunk-N4UL6N3G.js";import"./chunk-AA62TGOR.js";import"./chunk-WCLDE6BT.js";import"./chunk-WYYDGUIZ.js";import"./chunk-4ZE2OKZZ.js";import"./chunk-7TRKAN4B.js";import"./chunk-OPNUYGIO.js";import"./chunk-6H3I7D5M.js";export{a as Trail2RouteDialog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{L as f,c as u,
|
|
1
|
+
import{L as f,c as u,wc as o}from"./chunk-OPNUYGIO.js";var d=class{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected=null;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new u;constructor(e=!1,t,s=!0,n){this._multiple=e,this._emitChanges=s,this.compareWith=n,t&&t.length&&(e?t.forEach(i=>this._markSelected(i)):this._markSelected(t[0]),this._selectedToEmit.length=0)}select(...e){this._verifyValueAssignment(e),e.forEach(s=>this._markSelected(s));let t=this._hasQueuedChanges();return this._emitChangeEvent(),t}deselect(...e){this._verifyValueAssignment(e),e.forEach(s=>this._unmarkSelected(s));let t=this._hasQueuedChanges();return this._emitChangeEvent(),t}setSelection(...e){this._verifyValueAssignment(e);let t=this.selected,s=new Set(e.map(i=>this._getConcreteValue(i)));e.forEach(i=>this._markSelected(i)),t.filter(i=>!s.has(this._getConcreteValue(i,s))).forEach(i=>this._unmarkSelected(i));let n=this._hasQueuedChanges();return this._emitChangeEvent(),n}toggle(e){return this.isSelected(e)?this.deselect(e):this.select(e)}clear(e=!0){this._unmarkAll();let t=this._hasQueuedChanges();return e&&this._emitChangeEvent(),t}isSelected(e){return this._selection.has(this._getConcreteValue(e))}isEmpty(){return this._selection.size===0}hasValue(){return!this.isEmpty()}sort(e){this._multiple&&this.selected&&this._selected.sort(e)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(e){e=this._getConcreteValue(e),this.isSelected(e)||(this._multiple||this._unmarkAll(),this.isSelected(e)||this._selection.add(e),this._emitChanges&&this._selectedToEmit.push(e))}_unmarkSelected(e){e=this._getConcreteValue(e),this.isSelected(e)&&(this._selection.delete(e),this._emitChanges&&this._deselectedToEmit.push(e))}_unmarkAll(){this.isEmpty()||this._selection.forEach(e=>this._unmarkSelected(e))}_verifyValueAssignment(e){e.length>1&&this._multiple}_hasQueuedChanges(){return!!(this._deselectedToEmit.length||this._selectedToEmit.length)}_getConcreteValue(e,t){if(this.compareWith){t=t??this._selection;for(let s of t)if(this.compareWith(e,s))return s;return e}else return e}};var p=(()=>{class r{_listeners=[];notify(t,s){for(let n of this._listeners)n(t,s)}listen(t){return this._listeners.push(t),()=>{this._listeners=this._listeners.filter(s=>t!==s)}}ngOnDestroy(){this._listeners=[]}static \u0275fac=function(s){return new(s||r)};static \u0275prov=f({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var g=class{applyChanges(e,t,s,n,i){e.forEachOperation((c,a,_)=>{let h,l;if(c.previousIndex==null){let m=s(c,a,_);h=t.createEmbeddedView(m.templateRef,m.context,m.index),l=o.INSERTED}else _==null?(t.remove(a),l=o.REMOVED):(h=t.get(a),t.move(h,_),l=o.MOVED);i&&i({context:h?.context,operation:l,record:c})})}detach(){}};export{d as a,p as b,g as c};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Za as l,_a as o,ib as r,ra as a}from"./chunk-
|
|
1
|
+
import{Za as l,_a as o,ib as r,ra as a}from"./chunk-OPNUYGIO.js";var d=["mat-internal-form-field",""],f=["*"],g=(()=>{class t{labelPosition="after";static \u0275fac=function(n){return new(n||t)};static \u0275cmp=a({type:t,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(n,e){n&2&&r("mdc-form-field--align-end",e.labelPosition==="before")},inputs:{labelPosition:"labelPosition"},attrs:d,ngContentSelectors:f,decls:1,vars:0,template:function(n,e){n&1&&(l(),o(0))},styles:[`.mat-internal-form-field {
|
|
2
2
|
-moz-osx-font-smoothing: grayscale;
|
|
3
3
|
-webkit-font-smoothing: antialiased;
|
|
4
4
|
display: inline-flex;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{m as a,n as b,o as c,p as d,q as e,r as f}from"./chunk-VJLDZ4NI.js";import"./chunk-AA62TGOR.js";import"./chunk-WCLDE6BT.js";import"./chunk-OPNUYGIO.js";import"./chunk-6H3I7D5M.js";export{d as AboutDialog,b as AlertDialog,c as ConfirmDialog,e as LoginDialog,f as MessageBarComponent,a as MsgBox};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Qa as a}from"./chunk-L4FEUXHI.js";import"./chunk-WTDLBURC.js";import"./chunk-VJLDZ4NI.js";import"./chunk-PU7NCPYW.js";import"./chunk-N4UL6N3G.js";import"./chunk-AA62TGOR.js";import"./chunk-WCLDE6BT.js";import"./chunk-WYYDGUIZ.js";import"./chunk-4ZE2OKZZ.js";import"./chunk-7TRKAN4B.js";import"./chunk-OPNUYGIO.js";import"./chunk-6H3I7D5M.js";export{a as GeoJSONImportDialog};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as a}from"./chunk-PU7NCPYW.js";import"./chunk-N4UL6N3G.js";import"./chunk-AA62TGOR.js";import"./chunk-WCLDE6BT.js";import"./chunk-4ZE2OKZZ.js";import"./chunk-7TRKAN4B.js";import"./chunk-OPNUYGIO.js";import"./chunk-6H3I7D5M.js";export{a as PlaybackDialog};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{H as z}from"./chunk-L4FEUXHI.js";import"./chunk-WTDLBURC.js";import"./chunk-VJLDZ4NI.js";import"./chunk-PU7NCPYW.js";import"./chunk-N4UL6N3G.js";import"./chunk-AA62TGOR.js";import"./chunk-WCLDE6BT.js";import"./chunk-WYYDGUIZ.js";import"./chunk-4ZE2OKZZ.js";import"./chunk-7TRKAN4B.js";import{Ea as m,Ed as C,Fa as d,Fd as w,Hd as S,Id as R,Jd as E,Ka as _,Kd as O,La as a,Ma as o,Md as T,Na as v,Nd as A,R as f,S as u,Ua as D,Vd as k,Wa as p,Xd as j,Ya as g,_d as V,ab as b,bb as x,cb as y,ha as h,ja as s,lb as r,lc as I,mb as M,oa as c,ra as P}from"./chunk-OPNUYGIO.js";import"./chunk-6H3I7D5M.js";var U=["frame"];function Q(n,e){if(n&1&&(a(0,"mat-dialog-content",3),v(1,"iframe",6,0),o()),n&2){let t=g();s(),_("src",t.url,h)("title",t.data.panel.title)}}function B(n,e){n&1&&(a(0,"mat-dialog-content",4),r(1," This widget has no settings. "),o())}function F(n,e){if(n&1){let t=D();a(0,"mat-dialog-actions",5)(1,"button",7),p("click",function(){f(t);let l=g();return u(l.removeWidget())}),a(2,"mat-icon"),r(3,"delete"),o(),r(4," Remove widget "),o()()}}var W=class n{constructor(e,t,i,l){this.dialogRef=e;this.data=t;this.service=i;this.sanitizer=l}dialogRef;data;service;sanitizer;frame;url;detach=null;ngOnInit(){let e=this.data.panel;e&&(this.url=this.sanitizer.bypassSecurityTrustResourceUrl(e.url?this.service.resolveAssetUrl(e.url):"about:blank"))}ngAfterViewInit(){let e=this.data.panel;!e||!this.frame||(this.detach=this.service.attachPanel(this.frame.nativeElement,{extension:this.data.extension,panel:e,targetInstance:this.data.targetInstance,targetWidget:this.data.targetWidget,close:()=>this.dialogRef.close()}))}removeWidget(){this.data.targetInstance&&this.service.removeWidget(this.data.targetInstance),this.dialogRef.close()}ngOnDestroy(){this.detach?.(),this.detach=null}static \u0275fac=function(t){return new(t||n)(c(C),c(w),c(z),c(I))};static \u0275cmp=P({type:n,selectors:[["fb-plotterext-panel-dialog"]],viewQuery:function(t,i){if(t&1&&b(U,5),t&2){let l;x(l=y())&&(i.frame=l.first)}},decls:9,vars:3,consts:[["frame",""],["mat-dialog-title","",1,"pe-panel-header"],["mat-icon-button","","aria-label","Close",3,"click"],[1,"pe-panel-content"],[1,"pe-panel-noconfig"],[1,"pe-panel-actions"],["sandbox","allow-scripts allow-same-origin allow-forms",3,"src","title"],["mat-button","",1,"pe-remove",3,"click"]],template:function(t,i){t&1&&(a(0,"div",1)(1,"span"),r(2),o(),a(3,"button",2),p("click",function(){return i.dialogRef.close()}),a(4,"mat-icon"),r(5,"close"),o()()(),m(6,Q,3,2,"mat-dialog-content",3)(7,B,2,0,"mat-dialog-content",4),m(8,F,5,0,"mat-dialog-actions",5)),t&2&&(s(2),M(i.data.panel?i.data.panel.title:i.data.title),s(4),d(i.data.panel?6:7),s(2),d(i.data.targetInstance?8:-1))},dependencies:[O,S,E,R,V,j,k,A,T],styles:[".pe-panel-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding-right:8px}.pe-panel-content[_ngcontent-%COMP%]{padding:0;height:60vh}.pe-panel-noconfig[_ngcontent-%COMP%]{padding:16px 24px}iframe[_ngcontent-%COMP%]{display:block;width:100%;height:100%;border:none}.pe-panel-actions[_ngcontent-%COMP%]{justify-content:flex-start}.pe-remove[_ngcontent-%COMP%]{color:#d32f2f}"]})};export{W as PlotterPanelDialog};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as Ie,b as O,c as Ae,d as Ke,e as Be}from"./chunk-4JRVRHO7.js";import{Ea as Re,Fa as Oe,Ga as Ge,Ha as Fe,Ia as Xe,Ja as We,K as Se,Sa as Ve,U as Pe,V as Me,W as De,d as ee,i as _e,j as ye,k as ke,l as Ce,m as ve,p as Ee,q as R}from"./chunk-L4FEUXHI.js";import{a as be,b as Te,c as we}from"./chunk-WTDLBURC.js";import{j as oe,k as re,l as se}from"./chunk-VJLDZ4NI.js";import{a as he,b as ge,d as xe}from"./chunk-PU7NCPYW.js";import{a as fe}from"./chunk-N4UL6N3G.js";import"./chunk-AA62TGOR.js";import{b as le,i as ce,j as pe,n as de,o as me}from"./chunk-WCLDE6BT.js";import{b as ue}from"./chunk-WYYDGUIZ.js";import"./chunk-4ZE2OKZZ.js";import"./chunk-7TRKAN4B.js";import{Ea as f,Ed as j,Fa as _,Fd as N,Ha as V,Ia as T,Id as U,Ja as w,Ka as g,Kd as z,L as B,La as r,Ma as s,Md as q,Na as L,Nd as Q,P as b,R as m,S as u,Ua as y,Vd as Y,Wa as h,Xd as J,Ya as d,_d as Z,ae as te,c as A,fe as ie,gb as E,ie as ae,ja as c,k as K,lb as l,mb as H,nb as S,oa as C,pb as P,qb as M,qe as ne,ra as $,rb as D}from"./chunk-OPNUYGIO.js";import{f as v}from"./chunk-6H3I7D5M.js";var G=class{gpx;constructor(){this.init()}init(){this.gpx=new Ie,this.gpx.metadata.name="Signal K Resource Export",this.gpx.metadata.desc="Freeboard export of Signal K resources"}toXML(){return this.gpx.toXML()}setRoutes(i,e){if(e)e.forEach(t=>{i[t]&&this.gpx.rte.push(this.packageRoute(t,i[t]))});else for(let t in i)this.gpx.rte.push(this.packageRoute(t,i[t]))}packageRoute(i,e){let t=new Ae;t.extensions=t.extensions??{},t.extensions.signalk={},t.extensions.signalk.uuid=i,e.distance&&(t.extensions.signalk.distance=e.distance),t.name=e.name||null,t.desc=e.description||null,t.cmt=e.feature.properties.cmt||null,t.src=e.feature.properties.src||null,t.number=e.feature.properties.number||null,t.type=e.feature.properties.type||null;for(let a of e.feature.geometry.coordinates){let n=new O;n.lon=a[0],n.lat=a[1],n.ele=a[2]||null,t.rtept.push(n),this.gpx.updateBounds(n)}return t}setWaypoints(i,e){if(e)e.forEach(t=>{i[t]&&this.gpx.wpt.push(this.packageWaypoint(t,i[t]))});else for(let t in i)this.gpx.wpt.push(this.packageWaypoint(t,i[t]))}packageWaypoint(i,e){let t=new O;if(t.extensions=t.extensions||{},t.extensions.signalk={},t.extensions.signalk.uuid=i,t.name=e.name||"",t.desc=e.description||"",t.cmt=e.feature.properties.cmt||null,t.geoidHeight=e.feature.properties.geoidHeight||null,t.src=e.feature.properties.src||null,t.sym=e.feature.properties.sym||null,t.type=e.feature.properties.type||null,e.type==="waypoint"){let a=Ee(e.feature.properties.skIcon);a?.gpxType&&(t.type=a.gpxType),a?.gpxSym&&(t.sym=a.gpxSym)}return t.fix=e.feature.properties.fix||null,t.sat=e.feature.properties.sat||null,t.hdop=e.feature.properties.hdop||null,t.vdop=e.feature.properties.vdop||null,t.pdop=e.feature.properties.pdop||null,t.ageOfGpsData=e.feature.properties.ageOfGpsData||null,t.dgpsid=e.feature.properties.dgpsid||null,t.lat=e.feature.geometry.coordinates[1],t.lon=e.feature.geometry.coordinates[0],t.ele=e.feature.geometry.coordinates[2]||null,this.gpx.updateBounds(t),t}setTracks(i,e){if(e)e.forEach(t=>{i[t]&&this.gpx.trk.push(this.packageTrack(t,i[t]))});else for(let t in i)this.gpx.trk.push(this.packageTrack(t,i[t]))}packageTrack(i,e){let t=new Ke;t.extensions=t.extensions||{},t.extensions.signalk={},t.extensions.signalk.uuid=i,t.name=e.feature.properties.name||null,t.desc=e.feature.properties.description||null,t.cmt=e.feature.properties.cmt||null,t.src=e.feature.properties.src||null,t.number=e.feature.properties.number||null,t.type=e.feature.properties.type||null;let a=e.feature.properties.coordTimes;return e.feature.geometry.coordinates.forEach((n,p)=>{let x=new Be;n.forEach((W,He)=>{let k=new O;k.lon=W[0],k.lat=W[1],k.ele=W[2]||null;let I=a?.[p]?.[He];I&&(k.datetime=new Date(I)),x.trkpt.push(k),this.gpx.updateBounds(k)}),t.trkseg.push(x)}),t}};var F=class o{resultSource;result$;sk2gpx;hasFSA;signalk=b(R);constructor(){this.resultSource=new A,this.result$=this.resultSource.asObservable(),this.hasFSA="showOpenFilePicker"in window}clear(){this.sk2gpx=null}prepData(i){let e={routes:[],waypoints:[],tracks:[]},t=1;return e.routes=i.routes.map(a=>{let n=a[1];return n.feature.id=a[0],n}),t=1,e.waypoints=i.waypoints.map(a=>{let n=a[1];return n.feature.id=a[0],n.name=n.name??`Wpt: ${t}`,t++,n}),e.tracks=i.tracks,e}saveToFile(i,e){this.sk2gpx=new G;let t={},a={},n={};for(let p=0;p<e.rte.selected.length;p++)e.rte.selected[p]&&(t[i.routes[p].feature.id]=i.routes[p]);this.sk2gpx.setRoutes(t);for(let p=0;p<e.wpt.selected.length;p++)e.wpt.selected[p]&&(a[i.waypoints[p].feature.id]=i.waypoints[p]);this.sk2gpx.setWaypoints(a),(e.trk.tracks??[]).forEach(p=>{let x=this.signalk.uuid;n[x]=We(x,p)}),this.sk2gpx.setTracks(n),this.hasFSA?this.fsaSaveFile():this.legacySaveToFile()}legacySaveToFile(){let i=new Blob([this.sk2gpx.toXML()],{type:"text/xml"}),e=document.createElement("a");e.href=URL.createObjectURL(i),e.download="fb_export.gpx",e.click(),URL.revokeObjectURL(e.href),e.remove(),this.resultSource.next(-1)}fsaSaveFile(){window.showSaveFilePicker({types:[{description:"GPX file",accept:{"text/xml":[".gpx"]}}]}).then(i=>{i.createWritable().then(e=>{let t=new Blob([this.sk2gpx.toXML()]);e.write(t).then(()=>{e.close(),this.resultSource.next(0)})}).catch(e=>{console.warn(e),this.resultSource.next(1)})}).catch(i=>{i?.name==="SecurityError"?this.legacySaveToFile():this.resultSource.next(-1)})}static \u0275fac=function(e){return new(e||o)};static \u0275prov=B({token:o,factory:o.\u0275fac,providedIn:"root"})};var Ue=(o,i)=>i.context;function ze(o,i){o&1&&L(0,"mat-progress-bar",10)}function qe(o,i){if(o&1){let e=y();r(0,"div",19)(1,"div",20),l(2),s(),r(3,"div",21)(4,"mat-checkbox",22,0),h("change",function(){let a=m(e).$index,n=E(5),p=d(2);return u(p.checkWpt(n.checked,a))}),s()()()}if(o&2){let e=i.$implicit,t=i.$index,a=d(2);c(2),H(e.name),c(2),g("checked",a.selWaypoints[t])}}function Qe(o,i){if(o&1){let e=y();r(0,"div",12)(1,"mat-expansion-panel",13),h("opened",function(){m(e);let a=d();return u(a.display.expand.waypoints=!0)})("closed",function(){m(e);let a=d();return u(a.display.expand.waypoints=!1)}),r(2,"mat-expansion-panel-header",14)(3,"mat-panel-title")(4,"mat-icon",15),l(5,"place"),s(),l(6," \xA0"),r(7,"b"),l(8,"Waypoints:"),s()(),r(9,"mat-panel-description")(10,"div",16)(11,"mat-checkbox",17),h("change",function(a){m(e);let n=d();return u(n.checkWpt(a.checked,-1))})("click",function(a){return a.cancelBubble=!0}),s()()()(),r(12,"div",18),T(13,qe,6,2,"div",19,V),s()()()}if(o&2){let e=d();c(),g("expanded",e.display.expand.waypoints),c(10),g("indeterminate",e.display.someWptChecked)("checked",e.display.allWaypointsChecked)("disabled",e.resData.waypoints.length===0),c(2),w(e.resData.waypoints)}}function Ye(o,i){if(o&1){let e=y();r(0,"div",19)(1,"div",20)(2,"mat-icon",23),l(3,"directions"),s(),l(4),s(),r(5,"div",21)(6,"mat-checkbox",25,1),h("change",function(){let a=m(e).$index,n=E(7),p=d(2);return u(p.checkRte(n.checked,a))}),s()()()}if(o&2){let e=i.$implicit,t=i.$index,a=d(2);c(4),S(" ",e.name," "),c(2),g("checked",a.selRoutes[t])}}function Je(o,i){if(o&1){let e=y();r(0,"div",12)(1,"mat-expansion-panel",13),h("opened",function(){m(e);let a=d();return u(a.display.expand.routes=!0)})("closed",function(){m(e);let a=d();return u(a.display.expand.routes=!1)}),r(2,"mat-expansion-panel-header",14)(3,"mat-panel-title")(4,"mat-icon",23),l(5,"directions"),s(),l(6," \xA0"),r(7,"b"),l(8,"Routes:"),s()(),r(9,"mat-panel-description")(10,"div",16)(11,"mat-checkbox",24),h("change",function(a){m(e);let n=d();return u(n.checkRte(a.checked,-1))})("click",function(a){return a.cancelBubble=!0}),s()()()(),r(12,"div",18),T(13,Ye,8,2,"div",19,V),s()()()}if(o&2){let e=d();c(),g("expanded",e.display.expand.routes),c(10),g("indeterminate",e.display.someRteChecked)("checked",e.display.allRoutesChecked)("disabled",e.resData.routes.length==0),c(2),w(e.resData.routes)}}function Ze(o,i){o&1&&(r(0,"div",30),l(1," Only the positions gathered while Freeboard was open: the server has no recorded track for this vessel. "),s())}function et(o,i){if(o&1){let e=y();r(0,"div",19)(1,"div",20)(2,"mat-icon",26),l(3,"directions_boat"),s(),l(4),s(),r(5,"div",21)(6,"mat-checkbox",29,2),h("change",function(){let a=m(e).$index,n=E(7),p=d(2);return u(p.checkTrk(n.checked,a))}),s()()(),f(8,Ze,2,0,"div",30)}if(o&2){let e=i.$implicit,t=i.$index,a=d(2);c(4),S(" ",e.label," "),c(2),g("checked",a.selTracks[t]),c(2),_(e.tailOnly&&a.trackChoice==="displayed"?8:-1)}}function tt(o,i){o&1&&(r(0,"mat-option",37),l(1,"Track history range"),s())}function it(o,i){o&1&&(r(0,"div",30),l(1,"Choose a From time before the To time."),s())}function at(o,i){if(o&1){let e=y();r(0,"div",39)(1,"mat-form-field")(2,"mat-label"),l(3,"From"),s(),r(4,"input",40),D("ngModelChange",function(a){m(e);let n=d(3);return M(n.customFrom,a)||(n.customFrom=a),u(a)}),s()(),r(5,"mat-form-field")(6,"mat-label"),l(7,"To"),s(),r(8,"input",40),D("ngModelChange",function(a){m(e);let n=d(3);return M(n.customTo,a)||(n.customTo=a),u(a)}),s()()(),f(9,it,2,0,"div",30)}if(o&2){let e=d(3);c(4),P("ngModel",e.customFrom),c(4),P("ngModel",e.customTo),c(),_(e.customInvalid?9:-1)}}function nt(o,i){o&1&&(r(0,"div",30),l(1," Fetched from the server when you save, in the most detail it provides. "),s())}function ot(o,i){if(o&1){let e=y();r(0,"div",28)(1,"mat-form-field",31)(2,"mat-label"),l(3,"Track to export"),s(),r(4,"mat-select",32),D("ngModelChange",function(a){m(e);let n=d(2);return M(n.trackChoice,a)||(n.trackChoice=a),u(a)}),r(5,"mat-option",33),l(6,"As displayed"),s(),r(7,"mat-option",34),l(8,"Last 7 days"),s(),r(9,"mat-option",35),l(10,"Last 30 days"),s(),r(11,"mat-option",36),l(12,"All recorded"),s(),f(13,tt,2,0,"mat-option",37),r(14,"mat-option",38),l(15,"Custom range"),s()()(),f(16,at,10,3)(17,nt,2,0,"div",30),s()}if(o&2){let e=d(2);c(4),P("ngModel",e.trackChoice),c(9),_(e.historyRange?13:-1),c(3),_(e.trackChoice==="custom"?16:e.trackChoice!=="displayed"?17:-1)}}function rt(o,i){if(o&1){let e=y();r(0,"div",12)(1,"mat-expansion-panel",13),h("opened",function(){m(e);let a=d();return u(a.display.expand.tracks=!0)})("closed",function(){m(e);let a=d();return u(a.display.expand.tracks=!1)}),r(2,"mat-expansion-panel-header",14)(3,"mat-panel-title")(4,"mat-icon",26),l(5,"show_chart"),s(),l(6," \xA0"),r(7,"b"),l(8,"Tracks:"),s()(),r(9,"mat-panel-description")(10,"div",16)(11,"mat-checkbox",27),h("change",function(a){m(e);let n=d();return u(n.checkTrk(a.checked,-1))})("click",function(a){return a.cancelBubble=!0}),s()()()(),r(12,"div",18),T(13,et,9,3,null,null,Ue),s(),f(15,ot,18,3,"div",28),s()()}if(o&2){let e=d();c(),g("expanded",e.display.expand.tracks),c(10),g("indeterminate",e.display.someTrkChecked)("checked",e.display.allTracksChecked)("disabled",e.resData.tracks.length==0),c(2),w(e.resData.tracks),c(2),_(e.rangeAvailable?15:-1)}}var st=36e5;function $e(o){let i=new Date(o),e=t=>String(t).padStart(2,"0");return`${i.getFullYear()}-${e(i.getMonth()+1)}-${e(i.getDate())}T${e(i.getHours())}:${e(i.getMinutes())}`}function X(o){let i=o?new Date(o).getTime():NaN;return Number.isFinite(i)?i:null}var Le=class o{constructor(i,e,t,a,n){this.app=i;this.skres=e;this.facade=t;this.dialogRef=a;this.data=n}app;skres;facade;dialogRef;data;resData={routes:[],waypoints:[],tracks:[]};trackChoice="displayed";customFrom="";customTo="";fetching=!1;closed=!1;signalk=b(R);trackHistory=b(De);selRoutes=[];selectedRoute=null;selWaypoints=[];selTracks=[];display={notValid:!1,allRoutesChecked:!1,allWaypointsChecked:!1,allTracksChecked:!1,someWptChecked:!1,someRteChecked:!1,someTrkChecked:!1,saveRoutesOK:!1,saveWaypointsOK:!1,saveTracksOK:!1,routeViewer:!1,selCount:{routes:0,waypoints:0,tracks:0},expand:{routes:!1,waypoints:!1,tracks:!1}};unsubscribe=[];ngOnInit(){let i=Date.now();this.customFrom=$e(i-24*st),this.customTo=$e(i),this.loadResources(),this.data.initialChoice&&this.rangeAvailable&&(this.data.initialChoice!=="history"||this.historyRange)&&(this.trackChoice=this.data.initialChoice),this.unsubscribe.push(this.facade.result$.subscribe(e=>{this.dialogRef.close(e)}))}ngOnDestroy(){this.closed=!0,this.unsubscribe.forEach(i=>i.unsubscribe()),this.facade.clear()}loadResources(){return v(this,null,function*(){if(this.data.tracksOnly){this.data.waypoints=[],this.parseResourceData();return}this.data.routes.sort((i,e)=>i[1].name.localeCompare(e[1].name));try{this.app.sIsFetching.set(!0);let i=yield this.skres.listFromServer("waypoints");i.sort((e,t)=>e[1].name.localeCompare(t[1].name)),this.data.waypoints=i,this.app.sIsFetching.set(!1)}catch(i){this.app.sIsFetching.set(!1),this.resData.waypoints=[]}this.parseResourceData()})}get rangeAvailable(){return!!this.app.featureFlags().tracksApi}get historyRange(){return this.resData.tracks.some(i=>this.trackHistory.isShown(i.context))?this.trackHistory.range():void 0}chosenRange(){return Re(this.trackChoice,Date.now(),{history:this.historyRange,custom:{from:X(this.customFrom),to:X(this.customTo)}})}get customInvalid(){return this.trackChoice==="custom"&&!Oe({from:X(this.customFrom),to:X(this.customTo)})}get rangeUnusable(){return this.rangeAvailable&&this.trackChoice!=="displayed"&&this.chosenRange()===null}get canSave(){return!this.fetching&&!(this.display.saveTracksOK&&this.rangeUnusable)&&(this.display.saveRoutesOK||this.display.saveWaypointsOK||this.display.saveTracksOK)}save(){return v(this,null,function*(){let i;try{i=yield this.selectedTracks()}catch(e){if(this.closed)return;this.app.showAlert("GPX Save","Unable to fetch the recorded track from the server.");return}i===null||this.closed||this.facade.saveToFile(this.resData,{rte:{selected:this.selRoutes},wpt:{selected:this.selWaypoints},trk:{tracks:i}})})}selectedTracks(){return v(this,null,function*(){let i=this.resData.tracks.filter((n,p)=>this.selTracks[p]);if(i.length===0)return[];let e=this.rangeAvailable?this.chosenRange():null,t=Date.now(),a=[];this.fetching=!0;try{for(let n of i){let p=e===null?n.displayed:yield this.fetchTrack(n.context,e),x=Xe(n.label,p,t);if(!x)return this.app.showAlert("GPX Save",e===null?`There is no track to save for ${n.label}.`:`No track is recorded for ${n.label} in the selected range.`),null;a.push(x)}}finally{this.fetching=!1}return a})}fetchTrack(i,e){return v(this,null,function*(){let t=this.app.trackSource()?.provider,a=this.signalk.api.get(2,`/tracks?${Ge(i,e,t)}`);if(!a)throw new Error("Not connected");let n=yield K(a),p=ee(i,n,t);return{lines:p?.lines??[],times:p?.times??(p?.lines??[]).map(x=>x.map(()=>{}))}})}parseResourceData(){this.display.allRoutesChecked=!1,this.display.saveRoutesOK=!1,this.selRoutes=[],this.display.allWaypointsChecked=!1,this.display.saveWaypointsOK=!1,this.selWaypoints=[],this.display.allTracksChecked=!1,this.display.saveTracksOK=!1,this.selTracks=[],this.display.selCount={routes:0,waypoints:0,tracks:0},this.display.expand={routes:!1,waypoints:!1,tracks:!1},this.display.notValid=!1,this.resData=this.facade.prepData(this.data),this.resData.tracks=this.resData.tracks.filter(i=>this.rangeAvailable||Fe(i.displayed?.lines)),this.resData.routes.forEach(()=>{this.selRoutes.push(!1)}),this.selRoutes.length===1&&(this.selRoutes[0]=!0,this.display.allRoutesChecked=!0,this.display.expand.routes=!0,this.display.saveRoutesOK=!0),this.resData.waypoints.forEach(()=>{this.selWaypoints.push(!1)}),this.resData.tracks.forEach(()=>{this.selTracks.push(!1)}),this.data.tracksOnly&&this.selTracks.length!==0&&(this.checkTrk(!0,-1),this.display.expand.tracks=!0)}checkRte(i,e=-1){let t=0;if(e!==-1){this.selRoutes[e]=i,this.display.saveRoutesOK=i;for(let a of this.selRoutes)a&&t++;this.display.saveRoutesOK=t!==0,this.display.selCount.routes=t,this.display.allRoutesChecked=t===this.selRoutes.length}else{for(let a=0;a<this.selRoutes.length;a++)this.selRoutes[a]=i,this.display.saveRoutesOK=i,this.display.allRoutesChecked=i;this.display.selCount.routes=i?this.selRoutes.length:0}this.display.someRteChecked=!(this.display.allRoutesChecked||t===0)}checkWpt(i,e=-1){let t=0;if(e!==-1){this.selWaypoints[e]=i,this.display.saveWaypointsOK=i;for(let a of this.selWaypoints)a&&t++;this.display.saveWaypointsOK=t!==0,this.display.selCount.waypoints=t,this.display.allWaypointsChecked=t===this.selWaypoints.length}else{for(let a=0;a<this.selWaypoints.length;a++)this.selWaypoints[a]=i,this.display.saveWaypointsOK=i,this.display.allWaypointsChecked=i;this.display.selCount.waypoints=i?this.selWaypoints.length:0}this.display.someWptChecked=!(this.display.allWaypointsChecked||t===0)}checkTrk(i,e=-1){let t=0;if(e!==-1){this.selTracks[e]=i,this.display.saveTracksOK=i;for(let a of this.selTracks)a&&t++;this.display.saveTracksOK=t!==0,this.display.selCount.tracks=t,this.display.allTracksChecked=t===this.selTracks.length}else{for(let a=0;a<this.selTracks.length;a++)this.selTracks[a]=i,this.display.saveTracksOK=i,this.display.allTracksChecked=i;this.display.selCount.tracks=i?this.selTracks.length:0}this.display.someTrkChecked=!(this.display.allTracksChecked||t===0)}static \u0275fac=function(e){return new(e||o)(C(Ve),C(Se),C(F),C(j),C(N))};static \u0275cmp=$({type:o,selectors:[["gpxsave-dialog"]],decls:19,vars:6,consts:[["wval",""],["rval",""],["tval",""],[1,"gpxsave-dialog"],[2,"background-color","transparent"],[2,"display","flex","width","100%"],["mat-raised-button","","matTooltip","Save selected resources","matTooltipPosition","right",2,"width","85px",3,"click","disabled"],[2,"flex","1 1 auto","text-align","center"],[2,"text-align","right"],["mat-icon-button","",3,"click"],["mode","indeterminate"],["mat-dialog-content","",2,"padding","2px"],[1,"card-group"],[3,"opened","closed","expanded"],[1,"panel-header"],[1,"icon-waypoint"],[1,"panel-description"],["matTooltip","Select all Waypoints","matTooltipPosition","before",3,"change","click","indeterminate","checked","disabled"],[1,"list-container-scrollable"],[1,"item-row"],[1,"name"],[1,"check"],["matTooltip","Select Waypoint","matTooltipPosition","below",3,"change","checked"],[1,"icon-route"],["matTooltip","Select all Routes","matTooltipPosition","before",3,"change","click","indeterminate","checked","disabled"],["matTooltip","Select this Route","matTooltipPosition","below",3,"change","checked"],[1,"icon-track"],["matTooltip","Select all Tracks","matTooltipPosition","before",3,"change","click","indeterminate","checked","disabled"],[1,"track-range"],["matTooltip","Select this Track","matTooltipPosition","below",3,"change","checked"],[1,"track-note"],[1,"track-range-select"],[3,"ngModelChange","ngModel"],["value","displayed"],["value","7d"],["value","30d"],["value","all"],["value","history"],["value","custom"],[1,"track-range-custom"],["matInput","","type","datetime-local",3,"ngModelChange","ngModel"]],template:function(e,t){e&1&&(r(0,"div",3)(1,"mat-toolbar",4)(2,"div",5)(3,"div")(4,"button",6),h("click",function(){return t.save()}),r(5,"mat-icon"),l(6,"save"),s(),l(7,"\xA0Save\xA0 "),s()(),r(8,"div",7),l(9),s(),r(10,"div",8)(11,"button",9),h("click",function(){return t.dialogRef.close(-1)}),r(12,"mat-icon"),l(13,"close"),s()()()()(),f(14,ze,1,0,"mat-progress-bar",10),r(15,"div",11),f(16,Qe,15,4,"div",12),f(17,Je,15,4,"div",12),f(18,rt,16,5,"div",12),s()()),e&2&&(c(4),g("disabled",!t.canSave),c(5),S(" ",t.data.tracksOnly?"Export track to GPX":"Export to GPX"," "),c(5),_(t.fetching?14:-1),c(2),_(t.resData.waypoints.length!==0?16:-1),c(),_(t.resData.routes.length!==0?17:-1),c(),_(t.resData.tracks.length!==0?18:-1))},dependencies:[Te,be,Me,Pe,z,U,Q,q,Z,J,Y,oe,pe,ce,le,me,de,ue,ve,_e,ye,Ce,ke,se,re,we,fe,xe,ge,he,ne,te,ie,ae],styles:[".gpxsave-dialog[_ngcontent-%COMP%]{font-family:roboto;position:relative}.dialog-content[_ngcontent-%COMP%]{position:relative;min-height:300px;max-height:400px;width:100%;min-width:240px;overflow-y:auto}.dialog-icon[_ngcontent-%COMP%]{display:none}.card-group[_ngcontent-%COMP%]{padding:5px 5%}.card-group[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%]{padding:0 5px}.card-group[_ngcontent-%COMP%] .panel-description[_ngcontent-%COMP%]{text-align:right;width:100%;padding-right:10px}.card-group-title[_ngcontent-%COMP%]{font-weight:700;font-size:10pt;font-family:Arial,Helvetica,sans-serif;padding:10px 0}button[_ngcontent-%COMP%]{min-width:unset;padding:unset}.item-row[_ngcontent-%COMP%]{display:flex;width:100%;padding:2px 0}.item-row[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{flex:1 1 auto;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;text-overflow:ellipsis;line-height:2.5em}.item-row[_ngcontent-%COMP%] .check[_ngcontent-%COMP%]{text-align:right;padding-right:15px}.track-note[_ngcontent-%COMP%]{font-size:.85em;opacity:.8;padding:0 15px 4px 30px}.track-range[_ngcontent-%COMP%]{padding:8px 5px 0}.track-range-select[_ngcontent-%COMP%]{width:100%}.track-range-custom[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:0 8px}.track-range-custom[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{flex:1 1 220px}@media only screen and (min-width:475px){button[_ngcontent-%COMP%]{min-width:inherit;padding:inherit}.dialog-content[_ngcontent-%COMP%]{min-width:400px}.dialog-icon[_ngcontent-%COMP%]{display:inline}}@media only screen and (min-width:800px){.card-group[_ngcontent-%COMP%]{padding:5px 5%}}"]})};export{Le as GPXExportDialog,X as fromLocalInput,$e as toLocalInput};
|