@signalk/freeboard-sk 3.4.0-beta.2 → 3.4.0-beta.3

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.
Files changed (36) hide show
  1. package/README.md +6 -0
  2. package/package.json +2 -2
  3. package/public/assets/features/action-button-1.jpg +0 -0
  4. package/public/assets/features/action-button-2.jpg +0 -0
  5. package/public/assets/features-corpus.json +1 -1
  6. package/public/assets/help/img/navigation-route.svg +4 -0
  7. package/public/assets/help/index.html +21 -3
  8. package/public/{chunk-UIEE3YOF.js → chunk-A3USDUNB.js} +1 -1
  9. package/public/{chunk-6XBJQDQZ.js → chunk-AZQNOMPD.js} +1 -1
  10. package/public/{chunk-N6FC7TMF.js → chunk-ECLVX6LA.js} +1 -1
  11. package/public/{chunk-VG2HTHDN.js → chunk-F7CTV67V.js} +99 -99
  12. package/public/chunk-FGHHJ7U2.js +1 -0
  13. package/public/chunk-FJGK2Y72.js +1 -0
  14. package/public/{chunk-CZWRDBMY.js → chunk-IP2UNZAT.js} +1 -1
  15. package/public/{chunk-26ZBWNUQ.js → chunk-KAAC4VTV.js} +1 -1
  16. package/public/chunk-LEEF5WZZ.js +1 -0
  17. package/public/{chunk-ZHXEZBYI.js → chunk-MWETYHR7.js} +1 -1
  18. package/public/chunk-NFMYMYDJ.js +1 -0
  19. package/public/{chunk-B5DI22LT.js → chunk-PWZFOOT4.js} +1 -1
  20. package/public/chunk-ROH43CFA.js +1 -0
  21. package/public/{chunk-CKZDFNLJ.js → chunk-VBSJZWSI.js} +1 -1
  22. package/public/{chunk-3E3U7Z7O.js → chunk-VXYZIAGN.js} +1 -1
  23. package/public/chunk-WARJYBQ7.js +7 -0
  24. package/public/{chunk-VAE47BFB.js → chunk-WOU2FNU3.js} +1 -1
  25. package/public/{chunk-UXZI7A6H.js → chunk-XHJJSLEL.js} +1 -1
  26. package/public/{chunk-IZEHULJO.js → chunk-ZYGXQZX6.js} +1 -1
  27. package/public/index.html +1 -1
  28. package/public/main-NXVNOJR5.js +358 -0
  29. package/public/{worker-2QCQHBWQ.js → worker-6LLSDQNK.js} +40 -20
  30. package/public/chunk-6W3TVG4T.js +0 -1
  31. package/public/chunk-FFPCEPCR.js +0 -7
  32. package/public/chunk-L766X4HH.js +0 -1
  33. package/public/chunk-NUFT6SHL.js +0 -1
  34. package/public/chunk-PKC2MOZE.js +0 -1
  35. package/public/chunk-VCZ35SJT.js +0 -1
  36. package/public/main-YMAIP3FL.js +0 -358
@@ -0,0 +1 @@
1
+ import{ca as z}from"./chunk-F7CTV67V.js";import"./chunk-O2XN7DIT.js";import"./chunk-CI2BDMX2.js";import"./chunk-M4EXFQJE.js";import"./chunk-UBRYY245.js";import"./chunk-A7RX2LBX.js";import"./chunk-ON6WKWFV.js";import"./chunk-Z2OUIJPL.js";import"./chunk-FX2SMI5S.js";import"./chunk-I3RHGD62.js";import"./chunk-EX2EX65O.js";import{$a as V,Fa as C,Ga as w,Ia as O,Ja as S,Ka as R,La as E,Na as T,Oa as A,Wa as k,Ya as j,m as I}from"./chunk-GJFI75CP.js";import"./chunk-LEEF5WZZ.js";import"./chunk-7FANVIZX.js";import"./chunk-ZYGXQZX6.js";import"./chunk-RYULE37H.js";import{Db as D,Hb as p,Jb as g,La as h,Nb as y,Oa as s,Ob as b,Pb as x,Wa as c,Yb as r,Zb as M,_a as v,ba as f,ca as u,nb as m,ob as d,tb as P,ub as a,vb as o,wb as _}from"./chunk-3PBISOLT.js";import"./chunk-MWETYHR7.js";import"./chunk-WARJYBQ7.js";import"./chunk-BZGM3F3K.js";var U=["frame"];function Q(n,t){if(n&1&&(a(0,"mat-dialog-content",3),_(1,"iframe",6,0),o()),n&2){let e=g();s(),P("src",e.url,h)("title",e.data.panel.title)}}function B(n,t){n&1&&(a(0,"mat-dialog-content",4),r(1," This widget has no settings. "),o())}function F(n,t){if(n&1){let e=D();a(0,"mat-dialog-actions",5)(1,"button",7),p("click",function(){f(e);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(t,e,i,l){this.dialogRef=t;this.data=e;this.service=i;this.sanitizer=l}dialogRef;data;service;sanitizer;frame;url;detach=null;ngOnInit(){let t=this.data.panel;t&&(this.url=this.sanitizer.bypassSecurityTrustResourceUrl(t.url?this.service.resolveAssetUrl(t.url):"about:blank"))}ngAfterViewInit(){let t=this.data.panel;!t||!this.frame||(this.detach=this.service.attachPanel(this.frame.nativeElement,{extension:this.data.extension,panel:t,targetInstance:this.data.targetInstance,targetWidget:this.data.targetWidget,targetOverlay:this.data.targetOverlay,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(e){return new(e||n)(c(C),c(w),c(z),c(I))};static \u0275cmp=v({type:n,selectors:[["fb-plotterext-panel-dialog"]],viewQuery:function(e,i){if(e&1&&y(U,5),e&2){let l;b(l=x())&&(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(e,i){e&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)),e&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:[E,O,R,S,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{Zb as a}from"./chunk-F7CTV67V.js";import"./chunk-O2XN7DIT.js";import"./chunk-CI2BDMX2.js";import"./chunk-M4EXFQJE.js";import"./chunk-UBRYY245.js";import"./chunk-A7RX2LBX.js";import"./chunk-ON6WKWFV.js";import"./chunk-Z2OUIJPL.js";import"./chunk-FX2SMI5S.js";import"./chunk-I3RHGD62.js";import"./chunk-EX2EX65O.js";import"./chunk-GJFI75CP.js";import"./chunk-LEEF5WZZ.js";import"./chunk-7FANVIZX.js";import"./chunk-ZYGXQZX6.js";import"./chunk-RYULE37H.js";import"./chunk-3PBISOLT.js";import"./chunk-MWETYHR7.js";import"./chunk-WARJYBQ7.js";import"./chunk-BZGM3F3K.js";export{a as Trail2RouteDialog};
@@ -1 +1 @@
1
- import{a as e}from"./chunk-ZHXEZBYI.js";import"./chunk-FFPCEPCR.js";import"./chunk-BZGM3F3K.js";var t=e.Refine(e.Object({enabled:e.Optional(e.Boolean()),auto:e.Optional(e.Boolean())}),o=>o.enabled!==void 0||o.auto!==void 0,()=>"must set enabled, auto or both");export{t as SetParams};
1
+ import{a as e}from"./chunk-MWETYHR7.js";import"./chunk-WARJYBQ7.js";import"./chunk-BZGM3F3K.js";var t=e.Refine(e.Object({enabled:e.Optional(e.Boolean()),auto:e.Optional(e.Boolean())}),o=>o.enabled!==void 0||o.auto!==void 0,()=>"must set enabled, auto or both");export{t as SetParams};
@@ -1 +1 @@
1
- import{a as Ie,b as O,c as Ke,d as Ae,e as Be}from"./chunk-7PF3OZ2P.js";import{Ca as Pe,Da as De,Ea as Me,Wb as Ve,g as ee,l as _e,m as ye,n as ke,nb as Re,o as Ce,ob as Ge,p as ve,pb as Oe,qb as Xe,rb as Fe,sa as Ee,sb as We,u as Se,v as G}from"./chunk-VG2HTHDN.js";import{a as be,b as Te,c as we}from"./chunk-O2XN7DIT.js";import"./chunk-CI2BDMX2.js";import{b as ue}from"./chunk-M4EXFQJE.js";import{j as oe,k as re,l as se}from"./chunk-UBRYY245.js";import{a as he,b as ge,d as xe}from"./chunk-A7RX2LBX.js";import{a as fe}from"./chunk-ON6WKWFV.js";import"./chunk-Z2OUIJPL.js";import"./chunk-FX2SMI5S.js";import"./chunk-I3RHGD62.js";import{b as le,i as ce,j as pe,n as de,o as me}from"./chunk-EX2EX65O.js";import{$a as Z,Fa as j,Ga as N,Ja as U,La as z,Na as q,Oa as Q,Wa as Y,Ya as J,bb as te,gb as ie,jb as ae,rb as ne}from"./chunk-GJFI75CP.js";import"./chunk-6W3TVG4T.js";import"./chunk-7FANVIZX.js";import"./chunk-IZEHULJO.js";import"./chunk-RYULE37H.js";import{Db as y,Hb as g,Jb as p,Oa as c,T as B,Tb as E,Wa as v,X as T,Yb as l,Zb as H,_a as $,_b as P,ba as u,bc as D,ca as h,cc as M,d as K,dc as R,nb as f,o as A,ob as _,qb as V,rb as w,sb as S,tb as x,ub as r,vb as s,wb as L}from"./chunk-3PBISOLT.js";import"./chunk-ZHXEZBYI.js";import"./chunk-FFPCEPCR.js";import{g as b}from"./chunk-BZGM3F3K.js";var X=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 Ke;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=Se(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 Ae;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,m)=>{let d=new Be;n.forEach((k,He)=>{let C=new O;C.lon=k[0],C.lat=k[1],C.ele=k[2]||null;let I=a?.[m]?.[He];I&&(C.datetime=new Date(I)),d.trkpt.push(C),this.gpx.updateBounds(C)}),t.trkseg.push(d)}),t}};var F=class o{resultSource;result$;sk2gpx=null;hasFSA;signalk=T(G);constructor(){this.resultSource=new K,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){let t=new X;this.sk2gpx=t;let a={},n={},m={};for(let d=0;d<e.rte.selected.length;d++)e.rte.selected[d]&&(a[i.routes[d].feature.id]=i.routes[d]);t.setRoutes(a);for(let d=0;d<e.wpt.selected.length;d++)e.wpt.selected[d]&&(n[i.waypoints[d].feature.id]=i.waypoints[d]);t.setWaypoints(n),(e.trk.tracks??[]).forEach(d=>{let k=this.signalk.uuid;m[k]=We(k,d)}),t.setTracks(m),this.hasFSA?this.fsaSaveFile():this.legacySaveToFile()}gpxXml(){if(!this.sk2gpx)throw new Error("No GPX export to save");return this.sk2gpx.toXML()}legacySaveToFile(){let i=new Blob([this.gpxXml()],{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.gpxXml()]);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),g("change",function(){let a=u(e).$index,n=E(5),m=p(2);return h(m.checkWpt(n.checked,a))}),s()()()}if(o&2){let e=i.$implicit,t=i.$index,a=p(2);c(2),H(e.name),c(2),x("checked",a.selWaypoints[t])}}function Qe(o,i){if(o&1){let e=y();r(0,"div",12)(1,"mat-expansion-panel",13),g("opened",function(){u(e);let a=p();return h(a.display.expand.waypoints=!0)})("closed",function(){u(e);let a=p();return h(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),g("change",function(a){u(e);let n=p();return h(n.checkWpt(a.checked,-1))})("click",function(a){return a.cancelBubble=!0}),s()()()(),r(12,"div",18),w(13,qe,6,2,"div",19,V),s()()()}if(o&2){let e=p();c(),x("expanded",e.display.expand.waypoints),c(10),x("indeterminate",e.display.someWptChecked)("checked",e.display.allWaypointsChecked)("disabled",e.resData.waypoints.length===0),c(2),S(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),g("change",function(){let a=u(e).$index,n=E(7),m=p(2);return h(m.checkRte(n.checked,a))}),s()()()}if(o&2){let e=i.$implicit,t=i.$index,a=p(2);c(4),P(" ",e.name," "),c(2),x("checked",a.selRoutes[t])}}function Je(o,i){if(o&1){let e=y();r(0,"div",12)(1,"mat-expansion-panel",13),g("opened",function(){u(e);let a=p();return h(a.display.expand.routes=!0)})("closed",function(){u(e);let a=p();return h(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),g("change",function(a){u(e);let n=p();return h(n.checkRte(a.checked,-1))})("click",function(a){return a.cancelBubble=!0}),s()()()(),r(12,"div",18),w(13,Ye,8,2,"div",19,V),s()()()}if(o&2){let e=p();c(),x("expanded",e.display.expand.routes),c(10),x("indeterminate",e.display.someRteChecked)("checked",e.display.allRoutesChecked)("disabled",e.resData.routes.length==0),c(2),S(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),g("change",function(){let a=u(e).$index,n=E(7),m=p(2);return h(m.checkTrk(n.checked,a))}),s()()(),f(8,Ze,2,0,"div",30)}if(o&2){let e=i.$implicit,t=i.$index,a=p(2);c(4),P(" ",e.label," "),c(2),x("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),R("ngModelChange",function(a){u(e);let n=p(3);return M(n.customFrom,a)||(n.customFrom=a),h(a)}),s()(),r(5,"mat-form-field")(6,"mat-label"),l(7,"To"),s(),r(8,"input",40),R("ngModelChange",function(a){u(e);let n=p(3);return M(n.customTo,a)||(n.customTo=a),h(a)}),s()()(),f(9,it,2,0,"div",30)}if(o&2){let e=p(3);c(4),D("ngModel",e.customFrom),c(4),D("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),R("ngModelChange",function(a){u(e);let n=p(2);return M(n.trackChoice,a)||(n.trackChoice=a),h(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=p(2);c(4),D("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),g("opened",function(){u(e);let a=p();return h(a.display.expand.tracks=!0)})("closed",function(){u(e);let a=p();return h(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),g("change",function(a){u(e);let n=p();return h(n.checkTrk(a.checked,-1))})("click",function(a){return a.cancelBubble=!0}),s()()()(),r(12,"div",18),w(13,et,9,3,null,null,Ue),s(),f(15,ot,18,3,"div",28),s()()}if(o&2){let e=p();c(),x("expanded",e.display.expand.tracks),c(10),x("indeterminate",e.display.someTrkChecked)("checked",e.display.allTracksChecked)("disabled",e.resData.tracks.length==0),c(2),S(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 W(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=T(G);trackHistory=T(Me);selRoutes=[];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 b(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:W(this.customFrom),to:W(this.customTo)}})}get customInvalid(){return this.trackChoice==="custom"&&!Ge({from:W(this.customFrom),to:W(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 b(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 b(this,null,function*(){let i=this.resData.tracks.filter((n,m)=>this.selTracks[m]);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 m=e===null?n.displayed:yield this.fetchTrack(n.context,e),d=Fe(n.label,m,t);if(!d)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(d)}}finally{this.fetching=!1}return a})}fetchTrack(i,e){return b(this,null,function*(){let t=this.app.trackSource()?.provider,a=this.signalk.api.get(2,`/tracks?${Oe(i,e,t)}`);if(!a)throw new Error("Not connected");let n=yield A(a),m=ee(i,n,t);return{lines:m?.lines??[],times:m?.times??(m?.lines??[]).map(d=>d.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||Xe(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)(v(Ve),v(Ee),v(F),v(j),v(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),g("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),g("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),x("disabled",!t.canSave),c(5),P(" ",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,De,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,W as fromLocalInput,$e as toLocalInput};
1
+ import{a as Ie,b as O,c as Ke,d as Ae,e as Be}from"./chunk-7PF3OZ2P.js";import{Ga as Pe,Ha as De,Ia as Me,_b as Ve,g as ee,l as _e,m as ye,n as ke,o as Ce,ob as Re,p as ve,pb as Ge,qb as Oe,rb as Xe,sb as Fe,tb as We,u as Se,v as G,wa as Ee}from"./chunk-F7CTV67V.js";import{a as be,b as Te,c as we}from"./chunk-O2XN7DIT.js";import"./chunk-CI2BDMX2.js";import{b as ue}from"./chunk-M4EXFQJE.js";import{j as oe,k as re,l as se}from"./chunk-UBRYY245.js";import{a as he,b as ge,d as xe}from"./chunk-A7RX2LBX.js";import{a as fe}from"./chunk-ON6WKWFV.js";import"./chunk-Z2OUIJPL.js";import"./chunk-FX2SMI5S.js";import"./chunk-I3RHGD62.js";import{b as le,i as ce,j as pe,n as de,o as me}from"./chunk-EX2EX65O.js";import{$a as Z,Fa as j,Ga as N,Ja as U,La as z,Na as q,Oa as Q,Wa as Y,Ya as J,bb as te,gb as ie,jb as ae,rb as ne}from"./chunk-GJFI75CP.js";import"./chunk-LEEF5WZZ.js";import"./chunk-7FANVIZX.js";import"./chunk-ZYGXQZX6.js";import"./chunk-RYULE37H.js";import{Db as y,Hb as g,Jb as p,Oa as c,T as B,Tb as E,Wa as v,X as T,Yb as l,Zb as H,_a as $,_b as P,ba as u,bc as D,ca as h,cc as M,d as K,dc as R,nb as f,o as A,ob as _,qb as V,rb as w,sb as S,tb as x,ub as r,vb as s,wb as L}from"./chunk-3PBISOLT.js";import"./chunk-MWETYHR7.js";import"./chunk-WARJYBQ7.js";import{g as b}from"./chunk-BZGM3F3K.js";var X=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 Ke;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=Se(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 Ae;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,m)=>{let d=new Be;n.forEach((k,He)=>{let C=new O;C.lon=k[0],C.lat=k[1],C.ele=k[2]||null;let I=a?.[m]?.[He];I&&(C.datetime=new Date(I)),d.trkpt.push(C),this.gpx.updateBounds(C)}),t.trkseg.push(d)}),t}};var F=class o{resultSource;result$;sk2gpx=null;hasFSA;signalk=T(G);constructor(){this.resultSource=new K,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){let t=new X;this.sk2gpx=t;let a={},n={},m={};for(let d=0;d<e.rte.selected.length;d++)e.rte.selected[d]&&(a[i.routes[d].feature.id]=i.routes[d]);t.setRoutes(a);for(let d=0;d<e.wpt.selected.length;d++)e.wpt.selected[d]&&(n[i.waypoints[d].feature.id]=i.waypoints[d]);t.setWaypoints(n),(e.trk.tracks??[]).forEach(d=>{let k=this.signalk.uuid;m[k]=We(k,d)}),t.setTracks(m),this.hasFSA?this.fsaSaveFile():this.legacySaveToFile()}gpxXml(){if(!this.sk2gpx)throw new Error("No GPX export to save");return this.sk2gpx.toXML()}legacySaveToFile(){let i=new Blob([this.gpxXml()],{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.gpxXml()]);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),g("change",function(){let a=u(e).$index,n=E(5),m=p(2);return h(m.checkWpt(n.checked,a))}),s()()()}if(o&2){let e=i.$implicit,t=i.$index,a=p(2);c(2),H(e.name),c(2),x("checked",a.selWaypoints[t])}}function Qe(o,i){if(o&1){let e=y();r(0,"div",12)(1,"mat-expansion-panel",13),g("opened",function(){u(e);let a=p();return h(a.display.expand.waypoints=!0)})("closed",function(){u(e);let a=p();return h(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),g("change",function(a){u(e);let n=p();return h(n.checkWpt(a.checked,-1))})("click",function(a){return a.cancelBubble=!0}),s()()()(),r(12,"div",18),w(13,qe,6,2,"div",19,V),s()()()}if(o&2){let e=p();c(),x("expanded",e.display.expand.waypoints),c(10),x("indeterminate",e.display.someWptChecked)("checked",e.display.allWaypointsChecked)("disabled",e.resData.waypoints.length===0),c(2),S(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),g("change",function(){let a=u(e).$index,n=E(7),m=p(2);return h(m.checkRte(n.checked,a))}),s()()()}if(o&2){let e=i.$implicit,t=i.$index,a=p(2);c(4),P(" ",e.name," "),c(2),x("checked",a.selRoutes[t])}}function Je(o,i){if(o&1){let e=y();r(0,"div",12)(1,"mat-expansion-panel",13),g("opened",function(){u(e);let a=p();return h(a.display.expand.routes=!0)})("closed",function(){u(e);let a=p();return h(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),g("change",function(a){u(e);let n=p();return h(n.checkRte(a.checked,-1))})("click",function(a){return a.cancelBubble=!0}),s()()()(),r(12,"div",18),w(13,Ye,8,2,"div",19,V),s()()()}if(o&2){let e=p();c(),x("expanded",e.display.expand.routes),c(10),x("indeterminate",e.display.someRteChecked)("checked",e.display.allRoutesChecked)("disabled",e.resData.routes.length==0),c(2),S(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),g("change",function(){let a=u(e).$index,n=E(7),m=p(2);return h(m.checkTrk(n.checked,a))}),s()()(),f(8,Ze,2,0,"div",30)}if(o&2){let e=i.$implicit,t=i.$index,a=p(2);c(4),P(" ",e.label," "),c(2),x("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),R("ngModelChange",function(a){u(e);let n=p(3);return M(n.customFrom,a)||(n.customFrom=a),h(a)}),s()(),r(5,"mat-form-field")(6,"mat-label"),l(7,"To"),s(),r(8,"input",40),R("ngModelChange",function(a){u(e);let n=p(3);return M(n.customTo,a)||(n.customTo=a),h(a)}),s()()(),f(9,it,2,0,"div",30)}if(o&2){let e=p(3);c(4),D("ngModel",e.customFrom),c(4),D("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),R("ngModelChange",function(a){u(e);let n=p(2);return M(n.trackChoice,a)||(n.trackChoice=a),h(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=p(2);c(4),D("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),g("opened",function(){u(e);let a=p();return h(a.display.expand.tracks=!0)})("closed",function(){u(e);let a=p();return h(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),g("change",function(a){u(e);let n=p();return h(n.checkTrk(a.checked,-1))})("click",function(a){return a.cancelBubble=!0}),s()()()(),r(12,"div",18),w(13,et,9,3,null,null,Ue),s(),f(15,ot,18,3,"div",28),s()()}if(o&2){let e=p();c(),x("expanded",e.display.expand.tracks),c(10),x("indeterminate",e.display.someTrkChecked)("checked",e.display.allTracksChecked)("disabled",e.resData.tracks.length==0),c(2),S(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 W(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=T(G);trackHistory=T(Me);selRoutes=[];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 b(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:W(this.customFrom),to:W(this.customTo)}})}get customInvalid(){return this.trackChoice==="custom"&&!Ge({from:W(this.customFrom),to:W(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 b(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 b(this,null,function*(){let i=this.resData.tracks.filter((n,m)=>this.selTracks[m]);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 m=e===null?n.displayed:yield this.fetchTrack(n.context,e),d=Fe(n.label,m,t);if(!d)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(d)}}finally{this.fetching=!1}return a})}fetchTrack(i,e){return b(this,null,function*(){let t=this.app.trackSource()?.provider,a=this.signalk.api.get(2,`/tracks?${Oe(i,e,t)}`);if(!a)throw new Error("Not connected");let n=yield A(a),m=ee(i,n,t);return{lines:m?.lines??[],times:m?.times??(m?.lines??[]).map(d=>d.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||Xe(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)(v(Ve),v(Ee),v(F),v(j),v(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),g("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),g("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),x("disabled",!t.canSave),c(5),P(" ",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,De,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,W as fromLocalInput,$e as toLocalInput};
@@ -0,0 +1 @@
1
+ import{A as M,Aa as wr,B as Kt,Ba as Hr,Ca as zr,Da as K,E as nr,Ea as Ne,Fa as io,Ga as w,H as S,Ha as so,Ia as mo,Ja as fr,La as Q,Ma as H,O as Lr,P as Zn,Q as L,R as Xn,S as Tr,Sa as Vr,T as Qn,Ua as Be,Wa as Wr,Z as or,a as o,b as X,c as Wn,d as Dt,da as vn,e as er,f as Lt,fa as Te,h as se,ha as Me,i as Jn,j,k as Yn,la as _e,m as Pe,ma as Ue,na as ro,o as be,oa as eo,p as tr,pa as to,q as D,qa as no,ra as Kr,ta as qe,va as Ge,vb as fo,w as Fe,wb as cr,xa as oo,xb as G,y as Oe,z as me,zb as ao}from"./chunk-WARJYBQ7.js";import{a as E,b as k,e as ie,h as Ar}from"./chunk-BZGM3F3K.js";function ke(r){return o.HasPropertyKey(r,"~refine")&&o.IsArray(r["~refine"])&&o.Every(r["~refine"],0,e=>o.IsObject(e)&&o.HasPropertyKey(e,"check")&&o.HasPropertyKey(e,"error")&&o.IsFunction(e.check)&&o.IsFunction(e.error))}function W(r){return o.IsObject(r)&&!o.IsArray(r)}function Mr(r){return o.IsBoolean(r)}function c(r){return W(r)||Mr(r)}function je(r){return o.HasPropertyKey(r,"additionalItems")&&c(r.additionalItems)}function ir(r){return o.HasPropertyKey(r,"additionalProperties")&&c(r.additionalProperties)}function De(r){return o.HasPropertyKey(r,"allOf")&&o.IsArray(r.allOf)&&r.allOf.every(e=>c(e))}function uo(r){return o.HasPropertyKey(r,"$anchor")&&o.IsString(r.$anchor)}function Le(r){return o.HasPropertyKey(r,"anyOf")&&o.IsArray(r.anyOf)&&r.anyOf.every(e=>c(e))}function wt(r){return o.HasPropertyKey(r,"const")}function $r(r){return o.HasPropertyKey(r,"contains")&&c(r.contains)}function J(r){return o.HasPropertyKey(r,"default")}function Ht(r){return o.HasPropertyKey(r,"dependencies")&&o.IsObject(r.dependencies)&&Object.values(r.dependencies).every(e=>c(e)||o.IsArray(e)&&e.every(t=>o.IsString(t)))}function zt(r){return o.HasPropertyKey(r,"dependentRequired")&&o.IsObject(r.dependentRequired)&&Object.values(r.dependentRequired).every(e=>o.IsArray(e)&&e.every(t=>o.IsString(t)))}function Ke(r){return o.HasPropertyKey(r,"dependentSchemas")&&o.IsObject(r.dependentSchemas)&&Object.values(r.dependentSchemas).every(e=>c(e))}function Rr(r){return o.HasPropertyKey(r,"$dynamicAnchor")&&o.IsString(r.$dynamicAnchor)}function we(r){return o.HasPropertyKey(r,"$dynamicRef")&&o.IsString(r.$dynamicRef)}function He(r){return o.HasPropertyKey(r,"else")&&c(r.else)}function Vt(r){return o.HasPropertyKey(r,"enum")&&o.IsArray(r.enum)}function Wt(r){return o.HasPropertyKey(r,"exclusiveMaximum")&&(o.IsNumber(r.exclusiveMaximum)||o.IsBigInt(r.exclusiveMaximum))}function Er(r){return o.HasPropertyKey(r,"exclusiveMinimum")&&(o.IsNumber(r.exclusiveMinimum)||o.IsBigInt(r.exclusiveMinimum))}function fe(r){return o.HasPropertyKey(r,"format")&&o.IsString(r.format)}function z(r){return o.HasPropertyKey(r,"$id")&&o.IsString(r.$id)}function ze(r){return o.HasPropertyKey(r,"if")&&c(r.if)}function _r(r){return o.HasPropertyKey(r,"items")&&(c(r.items)||o.IsArray(r.items)&&r.items.every(e=>c(e)))}function Ve(r){return _r(r)&&o.IsArray(r.items)}function Jt(r){return o.HasPropertyKey(r,"maximum")&&(o.IsNumber(r.maximum)||o.IsBigInt(r.maximum))}function Yt(r){return o.HasPropertyKey(r,"maxContains")&&o.IsNumber(r.maxContains)}function ae(r){return o.HasPropertyKey(r,"maxItems")&&o.IsNumber(r.maxItems)}function Zt(r){return o.HasPropertyKey(r,"maxLength")&&o.IsNumber(r.maxLength)}function Xt(r){return o.HasPropertyKey(r,"maxProperties")&&o.IsNumber(r.maxProperties)}function hr(r){return o.HasPropertyKey(r,"minimum")&&(o.IsNumber(r.minimum)||o.IsBigInt(r.minimum))}function Ur(r){return o.HasPropertyKey(r,"minContains")&&o.IsNumber(r.minContains)}function qr(r){return o.HasPropertyKey(r,"minItems")&&o.IsNumber(r.minItems)}function ue(r){return o.HasPropertyKey(r,"minLength")&&o.IsNumber(r.minLength)}function de(r){return o.HasPropertyKey(r,"minProperties")&&o.IsNumber(r.minProperties)}function Qt(r){return o.HasPropertyKey(r,"multipleOf")&&(o.IsNumber(r.multipleOf)||o.IsBigInt(r.multipleOf))}function We(r){return o.HasPropertyKey(r,"not")&&c(r.not)}function Je(r){return o.HasPropertyKey(r,"oneOf")&&o.IsArray(r.oneOf)&&r.oneOf.every(e=>c(e))}function pe(r){return o.HasPropertyKey(r,"pattern")&&(o.IsString(r.pattern)||r.pattern instanceof RegExp)}function Jr(r){return o.HasPropertyKey(r,"patternProperties")&&o.IsObject(r.patternProperties)&&Object.values(r.patternProperties).every(e=>c(e))}function Gr(r){return o.HasPropertyKey(r,"prefixItems")&&o.IsArray(r.prefixItems)&&r.prefixItems.every(e=>c(e))}function Yr(r){return o.HasPropertyKey(r,"properties")&&o.IsObject(r.properties)&&Object.values(r.properties).every(e=>c(e))}function Ye(r){return o.HasPropertyKey(r,"propertyNames")&&(o.IsObject(r.propertyNames)||c(r.propertyNames))}function tf(r){return o.HasPropertyKey(r,"$recursiveAnchor")&&o.IsBoolean(r.$recursiveAnchor)}function ce(r){return tf(r)&&o.IsEqual(r.$recursiveAnchor,!0)}function Ze(r){return o.HasPropertyKey(r,"$recursiveRef")&&o.IsString(r.$recursiveRef)}function Xe(r){return o.HasPropertyKey(r,"$ref")&&o.IsString(r.$ref)}function Nr(r){return o.HasPropertyKey(r,"required")&&o.IsArray(r.required)&&r.required.every(e=>o.IsString(e))}function Qe(r){return o.HasPropertyKey(r,"then")&&c(r.then)}function vt(r){return o.HasPropertyKey(r,"type")&&(o.IsString(r.type)||o.IsArray(r.type)&&r.type.every(e=>o.IsString(e)))}function Pr(r){return o.HasPropertyKey(r,"uniqueItems")&&o.IsBoolean(r.uniqueItems)}function Ie(r){return o.HasPropertyKey(r,"unevaluatedItems")&&c(r.unevaluatedItems)}function le(r){return o.HasPropertyKey(r,"unevaluatedProperties")&&c(r.unevaluatedProperties)}var V=class{constructor(){let e=new Set,t=new Set;this.stack=[{indices:e,keys:t}]}Push(){let e=new Set,t=new Set;return this.stack.push({indices:e,keys:t}),!0}Pop(){return this.stack.pop(),!0}AddIndex(e){return this.GetIndices().add(e),!0}AddKey(e){return this.GetKeys().add(e),!0}GetIndices(){return this.stack[this.stack.length-1].indices}GetKeys(){return this.stack[this.stack.length-1].keys}Merge(e){for(let t of e)t.GetIndices().forEach(n=>this.GetIndices().add(n)),t.GetKeys().forEach(n=>this.GetKeys().add(n));return!0}},N=class extends V{constructor(){super(),this.errors=[]}AtCapacity(){return this.errors.length>=er.Get().maxErrors}AddError(e,t,n,i){return this.AddErrorObject({keyword:e,schemaPath:t,instancePath:n,params:i})}AddErrors(e){return e.forEach(t=>this.AddErrorObject(t)),!1}GetErrors(){return this.errors}AddErrorObject(e){return this.AtCapacity()||this.errors.push(e),!1}};function po(r,e,t,n){return o.Every(t["~refine"],0,(i,s)=>i.check(n))}function co(r,e,t,n,i,s){return o.EveryAll(i["~refine"],0,(m,f)=>m.check(s)||e.AddError("~refine",t,n,{index:f,message:m.error(s)}))}var ye="urn:typebox:root";function gr(r,e){return URL.canParse(r,e)?new URL(r,e):o.IsEqual(e,ye)?new URL(`${e}:${r}`):new URL(`${e.slice(0,e.lastIndexOf(":"))}:${r}`)}function Xr(r,e){let t=W(e)&&z(e)?gr(e.$id,ye).href:ye;return{context:r,schema:e,lexicalSchema:e,lexicalBase:t,resourceBase:t,referenceBase:t,ids:[],useResourceBaseForReference:!0,recursiveAnchor:void 0,dynamicAnchors:[],resourceEntries:new Map,pendingResource:!0,enteredResource:!1}}function rn(r,e,t=!0){if(Mr(e))return r;if(Array.isArray(e))return e.reduce((i,s)=>rn(i,s,!1),r);if(!W(e)||!t&&z(e))return r;let n=!t&&Rr(e)?[...r,e]:r;return Object.keys(e).reduce((i,s)=>rn(i,e[s],!1),n)}function xe(r,e){return r.resourceEntries.get(e)}function Io(r,e){return r.enteredResource||xe(r,e)!==void 0}function nf(r){return!/^[A-Za-z][A-Za-z0-9+.-]*:/.test(r.$id)}function of(r,e){return z(e)?[...r.ids,e]:r.ids}function sf(r,e){return r.recursiveAnchor??(ce(e)?e:void 0)}function mf(r,e){let t=z(e)?rn(r.dynamicAnchors,e):r.dynamicAnchors;return Rr(e)?[...t,e]:t}function ff(r,e){return z(e)?!1:r.pendingResource}function lo(r,e){let t=xe(r,e);return t?t.base:z(e)?gr(e.$id,r.lexicalBase).href:r.lexicalBase}function yo(r,e){let t=xe(r,e);return t?t.base:z(e)&&r.pendingResource?gr(e.$id,r.resourceBase).href:r.resourceBase}function xo(r,e){return z(e)?!nf(e):r.useResourceBaseForReference}function af(r,e){let t=Io(r,e),n=xo(r,e);return t||n?yo(r,e):lo(r,e)}function uf(r,e){let t=xe(r,e);return t?t.root:z(e)?e:r.lexicalSchema}function df(r,e){return W(e)&&(z(e)||Rr(e)||o.IsUndefined(r.recursiveAnchor)&&ce(e)||!o.IsUndefined(xe(r,e)))}function Qr(r,e){return df(r,e)?k(E({},r),{ids:of(r,e),dynamicAnchors:mf(r,e),recursiveAnchor:sf(r,e),pendingResource:ff(r,e),lexicalBase:lo(r,e),resourceBase:yo(r,e),useResourceBaseForReference:xo(r,e),referenceBase:af(r,e),lexicalSchema:uf(r,e),enteredResource:Io(r,e)}):r}function Eo(r){return _r(r)&&o.IsArray(r.items)}function ho(r,e,t,n){return Eo(t)?o.Every(n,0,(s,m)=>o.IsLessThan(m,t.items.length)||v(r,e,t.additionalItems,s)&&e.AddIndex(m)):!0}function go(r,e,t,n,i,s){return Eo(i)?o.Every(s,0,(f,a)=>{let u=`${t}/additionalItems`,p=`${n}/${a}`;return o.IsLessThan(a,i.items.length)||rr(r,e,u,p,i.additionalItems,f)&&e.AddIndex(a)}):!0}function Y(r){return r.replace(/~/g,"~0").replace(/\//g,"~1")}function br(r){return new RegExp(r,"u")}function pf(r){return`^${r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}$`}function So(r){let e=[];return Jr(r)&&e.push(...o.Keys(r.patternProperties)),Yr(r)&&e.push(...o.Keys(r.properties).map(pf)),o.IsEqual(e.length,0)?"(?!)":`(${e.join("|")})`}function Co(r,e,t,n){let i=br(So(t));return o.Every(o.Keys(n),0,(m,f)=>i.test(m)||v(r,e,t.additionalProperties,n[m])&&e.AddKey(m))}function Ao(r,e,t,n,i,s){let m=br(So(i)),f=[];return o.EveryAll(o.Keys(s),0,(u,p)=>{let y=`${t}/additionalProperties`,x=`${n}/${Y(u)}`,O=m.test(u)||rr(r,e,y,x,i.additionalProperties,s[u])&&e.AddKey(u);return O||f.push(u),O})||e.AddError("additionalProperties",t,n,{additionalProperties:f})}function $o(r,e,t,n){let i=t.allOf.reduce((s,m)=>{let f=new V;return h(r,f,m,n)?[...s,f]:s},[]);return o.IsEqual(i.length,t.allOf.length)&&e.Merge(i)}function Ro(r,e,t,n,i,s){let m=[],f=i.allOf.reduce((u,p,y)=>{let x=`${t}/allOf/${y}`,O=new N,xr=C(r,O,x,n,p,s);return xr||m.push(O),xr?[...u,O]:u},[]),a=o.IsEqual(f.length,i.allOf.length)&&e.Merge(f);return a||m.forEach(u=>e.AddErrors(u.GetErrors())),a}function Po(r,e,t,n){let i=t.anyOf.reduce((s,m)=>{let f=new V;return h(r,f,m,n)?[...s,f]:s},[]);return o.IsGreaterThan(i.length,0)&&e.Merge(i)}function bo(r,e,t,n,i,s){let m=[],f=i.anyOf.reduce((u,p,y)=>{let x=new N,O=`${t}/anyOf/${y}`,xr=C(r,x,O,n,p,s);return xr||m.push(x),xr?[...u,x]:u},[]),a=o.IsGreaterThan(f.length,0)&&e.Merge(f);return a||m.forEach(u=>e.AddErrors(u.GetErrors())),a||e.AddError("anyOf",t,n,{})}function nn(r,e,t,n){return t}function Fo(r,e,t,n,i,s){return nn(r,e,i,s)||e.AddError("boolean",t,n,{})}function on(r,e,t,n){return o.IsValueLike(t.const)?o.IsEqual(n,t.const):o.IsDeepEqual(n,t.const)}function Oo(r,e,t,n,i,s){return on(r,e,i,s)||e.AddError("const",t,n,{allowedValue:i.const})}function cf(r){return!(Ur(r)&&o.IsEqual(r.minContains,0))}function sn(r,e,t,n){return cf(t)?!o.IsEqual(n.length,0)&&o.SomeAll(n,(i,s)=>h(r,e,t.contains,i)&&e.AddIndex(s)):!0}function To(r,e,t,n,i,s){return sn(r,e,i,s)||e.AddError("contains",t,n,{minContains:1})}function Mo(r,e,t,n){let i=o.IsEqual(o.Keys(n).length,0),s=o.Every(o.Entries(t.dependencies),0,([m,f])=>!o.HasPropertyKey(n,m)||(o.IsArray(f)?f.every(a=>o.HasPropertyKey(n,a)):h(r,e,f,n)));return i||s}function _o(r,e,t,n,i,s){let m=o.IsEqual(o.Keys(s).length,0),f=o.EveryAll(o.Entries(i.dependencies),0,([a,u])=>{let p=`${t}/dependencies/${Y(a)}`;return!o.HasPropertyKey(s,a)||(o.IsArray(u)?u.every(y=>o.HasPropertyKey(s,y)||e.AddError("dependencies",t,n,{property:a,dependencies:u})):C(r,e,p,n,u,s))});return m||f}function Uo(r,e,t,n){let i=o.IsEqual(o.Keys(n).length,0),s=o.Every(o.Entries(t.dependentRequired),0,([m,f])=>!o.HasPropertyKey(n,m)||f.every(a=>o.HasPropertyKey(n,a)));return i||s}function qo(r,e,t,n,i,s){let m=o.IsEqual(o.Keys(s).length,0),f=o.EveryAll(o.Entries(i.dependentRequired),0,([a,u])=>!o.HasPropertyKey(s,a)||o.EveryAll(u,0,p=>o.HasPropertyKey(s,p)||e.AddError("dependentRequired",t,n,{property:a,dependencies:u})));return m||f}function Go(r,e,t,n){let i=o.IsEqual(o.Keys(n).length,0),s=o.Every(o.Entries(t.dependentSchemas),0,([m,f])=>!o.HasPropertyKey(n,m)||h(r,e,f,n));return i||s}function No(r,e,t,n,i,s){let m=o.IsEqual(o.Keys(s).length,0),f=o.EveryAll(o.Entries(i.dependentSchemas),0,([a,u])=>{let p=`${t}/dependentSchemas/${Y(a)}`;return!o.HasPropertyKey(s,a)||C(r,e,p,n,u,s)});return m||f}var sr={};ie(sr,{DynamicRef:()=>Hf,RecursiveRef:()=>Lf,Ref:()=>jf});var lr={};ie(lr,{Delete:()=>xf,Get:()=>lf,Has:()=>If,Indices:()=>he,Set:()=>yf});function ko(r){throw Error(r)}function Bo(){ko("Pointer contains unsafe property key")}function mn(){ko("Cannot set value")}function he(r){let e=r.split("/").map(t=>t.replace(/~1/g,"/").replace(/~0/g,"~"));return e[0]===""?e.slice(1):e}function If(r,e){let t=r;for(let n of he(e)){if(!o.IsObject(t)||!o.HasPropertyKey(t,n))return!1;t=t[n]}return!0}function lf(r,e){let t=r;for(let n of he(e)){if(!o.IsObject(t)||o.IsUnsafePropertyKey(n))return;t=t[n]}return t}function jo(r,e,t){let n=r;for(let i of e)o.IsUnsafePropertyKey(i)&&Bo(),n=o.IsObject(n)?n[i]:void 0;return o.IsUnsafePropertyKey(t)&&Bo(),o.IsObject(n)||mn(),n}function yf(r,e,t){let n=he(e),i=n.pop();return o.IsUndefined(i)&&mn(),jo(r,n,i)[i]=t,r}function xf(r,e){let t=he(e),n=t.pop();o.IsUndefined(n)&&mn();let i=jo(r,t,n);return o.IsArray(i)&&/^(0|[1-9]\d*)$/.test(n)?i.splice(Number(n),1):delete i[n],r}function un(r,e){return W(r)&&z(r)?gr(r.$id,e.href):e}function dn(r){return gr(r,ye)}function fn(r){return r.href.split("#")[0]}function Ef(r,e,t){return an(r,dn(e),t)}function hf(r,e){return e.$ref.startsWith("#")||r.enteredResource?r.lexicalSchema:r.schema}function gf(r){return r.startsWith("#/")}function Do(r,e){if(o.IsObject(r)&&Rr(r)&&o.IsEqual(r.$dynamicAnchor,e))return r;if(o.IsObject(r))for(let t of o.Keys(r)){let n=Do(r[t],e);if(n)return n}}function an(r,e,t){if(o.IsEqual(r,t))return e.href;let n=un(r,e);if(o.IsArray(r))for(let i of r){let s=an(i,n,t);if(!o.IsUndefined(s))return s}else if(o.IsObject(r))for(let i of o.Keys(r)){let s=an(r[i],n,t);if(!o.IsUndefined(s))return s}}function Lo(r,e){if(e.href.endsWith("#"))return r;if(!e.hash.startsWith("#"))return;let t=decodeURIComponent(e.hash.slice(1));if(t.startsWith("/"))return lr.Get(r,t)}function Sf(r,e,t){if(!z(r))return;if(o.IsEqual(r.$id,t.hash))return r;let n=new URL(t.href,e.href);if(o.IsEqual(e.pathname,n.pathname))return t.hash.startsWith("#")?Lo(r,t):r}function Cf(r,e,t){if(!uo(r))return;let n=new URL(`#${r.$anchor}`,e.href),i=new URL(t.href,e.href);return o.IsEqual(n.href,i.href)?r:void 0}function Af(r,e,t){if(!Rr(r))return;let n=new URL(`#${r.$dynamicAnchor}`,e.href),i=new URL(t.href,e.href);return o.IsEqual(n.href,i.href)?r:void 0}function $f(r,e,t){if(W(r))return Sf(r,e,t)??Cf(r,e,t)??Af(r,e,t)??Lo(r,t)}function Rf(r,e,t){if(o.IsArray(r))return r.reduce((n,i)=>{let s=ve(i,e,t);return o.IsUndefined(s)?n:s},void 0)}function Pf(r,e,t){if(o.IsObject(r))return o.Keys(r).reduce((n,i)=>{if(o.IsEqual(i,"const")||o.IsEqual(i,"enum"))return n;let s=ve(r[i],e,t);return o.IsUndefined(s)?n:s},void 0)}function ve(r,e,t){let n=un(r,e);return $f(r,n,t)??Rf(r,n,t)??Pf(r,n,t)}function bf(r,e,t,n){let i=rt(r,e,t,n);return W(i)&&z(i)?i:void 0}function Ff(r,e,t){if(!e.$ref.startsWith("#")||!W(r.schema)||o.HasPropertyKey(r.schema,"$schema"))return;let n=Ef(r.lexicalSchema,r.referenceBase,t);if(!(o.IsUndefined(n)||o.IsEqual(n,r.referenceBase)))return{target:t,base:n,root:r.lexicalSchema}}function Of(r,e,t){let n=r.context[e];if(W(n))return{target:t,base:e,root:n}}function Tf(r,e,t,n,i){let s=i?Of(r,n,t):void 0;return o.IsUndefined(s)?Ff(r,e,t):s}function Mf(r,e,t){if(z(t))return;let n=bf(r.context,r.schema,r.referenceBase,e);if(!(!n||r.ids.includes(n)))return{resource:n}}function _f(r,e){return o.HasPropertyKey(r,e)?r[e]:void 0}function Uf(r,e,t){return ve(r,e,t)}function qf(r,e,t){let n=fn(t);if(!o.HasPropertyKey(r,n)||o.IsEqual(n,fn(e)))return;let i=r[n],s=un(i,new URL(n));return o.IsEqual(t.hash,"")?i:ve(i,s,t)}function rt(r,e,t,n){let i=dn(t),s=gr(n,i.href);return _f(r,n)??Uf(e,i,s)??qf(r,i,s)}function Gf(r,e){if(!e)return r;let t=new Map(r.resourceEntries);return t.set(e.target,{base:e.base,root:e.root}),k(E({},r),{resourceEntries:t})}function Nf(r,e){return e?Qr(r,e.resource):r}function Ko(r,e,t,n){let i=Gf(k(E({},r),{pendingResource:e}),t);return Nf(i,n)}function Bf(r,e,t){let n=fn(gr(e.$ref,r.referenceBase)),i=!o.IsEqual(n,r.resourceBase),s=Tf(r,e,t,n,i),m=i?Mf(r,n,t):void 0;return{schema:t,stack:Ko(r,!0,s,m)}}function kf(r,e){return{schema:e,stack:Ko(r,!o.IsUndefined(e))}}function jf(r,e){let t=rt(r.context,hf(r,e),r.referenceBase,e.$ref);return W(t)?Bf(r,e,t):kf(r,t)}function Df(r){return W(r.lexicalSchema)&&ce(r.lexicalSchema)}function Lf(r,e){let t=Df(r)?r.recursiveAnchor:r.lexicalSchema;return rt(r.context,t,r.lexicalBase,e.$recursiveRef)}function wo(r,e){return gr(e.$dynamicRef,dn(r.lexicalBase).href).hash}function Ho(r,e){return r.dynamicAnchors.find(t=>o.IsEqual(t.$dynamicAnchor,e))??Do(r.schema,e)}function Kf(r,e,t){if(!W(t)||!Rr(t))return t;let n=wo(r,e);return gf(n)?t:Ho(r,t.$dynamicAnchor)}function wf(r,e){let t=wo(r,e);return Ho(r,decodeURIComponent(t.slice(1)))}function Hf(r,e){let t=e.$dynamicRef.startsWith("#")?r.lexicalSchema:r.schema,n=rt(r.context,t,r.lexicalBase,e.$dynamicRef);return o.IsUndefined(n)?wf(r,e):Kf(r,e,n)}function zo(r,e,t,n){let i=sr.DynamicRef(r,t)??!1,s=i?k(E({},r),{pendingResource:!0}):r;return c(i)&&h(s,e,i,n)}function Vo(r,e,t,n,i,s){let m=sr.DynamicRef(r,i)??!1,f=m?k(E({},r),{pendingResource:!0}):r;return c(m)&&C(f,e,t,n,m,s)}function In(r,e,t,n){return o.Some(t.enum,i=>o.IsValueLike(i)?o.IsEqual(n,i):o.IsDeepEqual(n,i))}function Wo(r,e,t,n,i,s){return In(r,e,i,s)||e.AddError("enum",t,n,{allowedValues:i.enum})}function ln(r,e,t,n){return o.IsLessThan(n,t.exclusiveMaximum)}function Jo(r,e,t,n,i,s){return ln(r,e,i,s)||e.AddError("exclusiveMaximum",t,n,{comparison:"<",limit:i.exclusiveMaximum})}function yn(r,e,t,n){return o.IsGreaterThan(n,t.exclusiveMinimum)}function Yo(r,e,t,n,i,s){return yn(r,e,i,s)||e.AddError("exclusiveMinimum",t,n,{comparison:">",limit:i.exclusiveMinimum})}var Ae={};ie(Ae,{Clear:()=>Ci,Entries:()=>_a,Get:()=>Ga,Has:()=>qa,IsDate:()=>re,IsDateTime:()=>et,IsDuration:()=>tt,IsEmail:()=>nt,IsHostname:()=>dt,IsIPv4:()=>It,IsIPv6:()=>lt,IsIdnEmail:()=>pt,IsIdnHostname:()=>ct,IsIri:()=>xt,IsIriReference:()=>yt,IsJsonPointer:()=>ht,IsJsonPointerUriFragment:()=>Et,IsRegex:()=>gt,IsRelativeJsonPointer:()=>St,IsTime:()=>ee,IsUri:()=>$t,IsUriReference:()=>Ct,IsUriTemplate:()=>At,IsUrl:()=>Rt,IsUuid:()=>Pt,Reset:()=>Ai,Set:()=>Ua,Test:()=>Na});var zf=[0,31,28,31,30,31,30,31,31,30,31,30,31],Vf=/^(\d\d\d\d)-(\d\d)-(\d\d)$/;function Wf(r){return r%4===0&&(r%100!==0||r%400===0)}function re(r){let e=Vf.exec(r);if(!e)return!1;let t=+e[1],n=+e[2],i=+e[3];return n>=1&&n<=12&&i>=1&&i<=(n===2&&Wf(t)?29:zf[n])}var Jf=/^(\d\d):(\d\d):(\d\d)(?:\.\d+)?(?:([Zz])|([+-])(\d\d):(\d\d))?$/;function ee(r,e=!0){let t=Jf.exec(r);if(!t||e&&!t[4]&&!t[5])return!1;let n=+t[1],i=+t[2],s=+t[3];if(n>23||i>59||s>60)return!1;if(t[5]){let p=+t[6],y=+t[7];if(p>23||y>59)return!1}if(s<60)return!0;let m=t[5]==="-"?-1:1,f=+(t[6]||0),a=+(t[7]||0);return((n*60+i-m*(f*60+a))%1440+1440)%1440===1439}function et(r){let e=r.split(/T/i);return e.length===2&&re(e[0])&&ee(e[1])}var Yf=/^P((\d+Y(\d+M(\d+D)?)?|\d+M(\d+D)?|\d+D)(T(\d+H(\d+M(\d+S)?)?|\d+M(\d+S)?|\d+S))?|T(\d+H(\d+M(\d+S)?)?|\d+M(\d+S)?|\d+S)|\d+W)$/;function tt(r){return Yf.test(r)}var Zf=/^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[^"\\]|\\[\x20-\x7e])*")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*|\[(?:IPv6:[a-f0-9:]+|(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(?:\.(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3})\])$/i;function nt(r){return Zf.test(r)}var Zo=/^(?!-).*(?<!-)$/,Xo=/^(?!..--)/,Qo=/^[a-zA-Z0-9-]*$/,ey=new RegExp("^\\p{ASCII}*$","u"),te=/[^\p{ASCII}]/u;var Xf=/[0-9]/,vo=/[\u{0660}-\u{0669}]/u,Qf=/[\u{06f0}-\u{06f9}]/u,vf=/[\u{002e}\u{002c}\u{003a}\u{002f}]/u,ra=/[\u{002d}\u{002b}]/u,xn=new RegExp("\\p{Mn}","u"),ea=new RegExp("\\p{Mc}","u"),ty=new RegExp("\\p{Me}","u"),ri=/[\p{Mn}\p{Mc}\p{Me}]/u,En=new RegExp("\\p{L}","u"),ta=new RegExp("\\p{Nd}","u"),ei=new RegExp("\\p{Script=Greek}","u"),ot=new RegExp("\\p{Script=Hebrew}","u"),ti=/[\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Han}]/u,ni=/[\p{Script=Arabic}\p{Script=Syriac}\p{Script=Thaana}\p{Script=Mandaic}]/u,hn=/[\u{094d}\u{09cd}\u{0a4d}\u{0acd}\u{0b4d}\u{0bcd}\u{0c4d}\u{0ccd}\u{0d3b}\u{0d3c}\u{0d4d}\u{0dca}\u{1b44}\u{1baa}\u{1bab}\u{a9c0}\u{11046}\u{1107f}\u{110b9}\u{11133}\u{11134}\u{111c0}\u{11235}\u{1134d}\u{11442}\u{114c2}\u{115bf}\u{1163f}\u{116b6}\u{11c3f}\u{11d44}\u{11d45}]/u,oi=/[\u{0640}\u{07fa}\u{302e}\u{302f}\u{3031}\u{3032}\u{3033}\u{3034}\u{3035}\u{303b}]/u,na=/[\u{00b7}\u{0375}\u{05f3}\u{05f4}\u{200c}\u{200d}\u{30fb}]/u,oa=/[\u{00df}\u{03c2}\u{06fd}\u{06fe}\u{0f0b}\u{3007}]/u,ii=new RegExp([Xf,Qf].map(r=>r.source).join("|"),"u"),si=new RegExp([En,ra,vf,ta,xn,ea,na,oa].map(r=>r.source).join("|"),"u");function mi(r){return Zo.test(r)&&Xo.test(r)&&Qo.test(r)}var ur=36,Se=1,Ce=26,sa=38,ma=700,ai=72,ui=128;function gn(){throw null}function it(r){return r.toLowerCase().startsWith("xn--")}function di(r,e,t){r=t?Math.floor(r/ma):r>>1,r+=Math.floor(r/e);let n=0;for(;r>(ur-Se)*Ce>>1;)r=Math.floor(r/(ur-Se)),n+=ur;return n+Math.floor((ur-Se+1)*r/(r+sa))}function st(r){let e=[],t=ui,n=0,i=ai,s=r.lastIndexOf("-");if(s>0)for(let f=0;f<s;f++){let a=r.charCodeAt(f);a>=128&&gn(),e.push(a)}let m=s<0?0:s+1;for(;m<r.length;){let f=n,a=1,u=ur;for(;;){m>=r.length&&gn();let y=r.charCodeAt(m++),x;y>=97&&y<=122?x=y-97:y>=48&&y<=57?x=y-48+26:gn(),n+=x*a;let O=u<=i?Se:u>=i+Ce?Ce:u-i;if(x<O)break;a*=ur-O,u+=ur}let p=e.length+1;i=di(n-f,p,f===0),t+=Math.floor(n/p),n%=p,e.splice(n,0,t),n++}return String.fromCodePoint(...e)}function fi(r){return r<26?String.fromCharCode(r+97):String.fromCharCode(r-26+48)}var fa=new RegExp(te.source,"gu");function pi(r){let e=r.replace(fa,""),t=e.length,n=t>0?[e,"-"]:[],i=Array.from(r,u=>u.codePointAt(0)),s=ui,m=0,f=ai,a=t;for(;a<i.length;){let u=1/0;for(let p of i)p>=s&&p<u&&(u=p);m+=(u-s)*(a+1),s=u;for(let p of i)if(p<s&&m++,p===s){let y=m;for(let x=ur;;x+=ur){let O=x<=f?Se:x>=f+Ce?Ce:x-f;if(y<O)break;let xr=O+(y-O)%(ur-O);n.push(fi(xr)),y=Math.floor((y-O)/(ur-O))}n.push(fi(y)),f=di(m,a+1,a===t),m=0,a++}m++,s++}return n.join("")}var aa=/^(?:R|AL|AN|EN|ES|CS|ET|ON|BN|NSM)$/,ci=/^(?:L|EN|ES|CS|ET|ON|BN|NSM)$/,ua=/^(?:R|AL|AN)$/;function Ii(r){if(it(r))try{return mt(st(r.slice(4).toLowerCase()))}catch(e){return!1}return mt(r)}function li(r){let e=String.fromCodePoint(r);return ii.test(e)?"EN":vo.test(e)?"AN":xn.test(e)?"NSM":ot.test(e)?"R":ni.test(e)?"AL":En.test(e)?"L":"ON"}function mt(r){for(let e of r)if(ua.test(li(e.codePointAt(0))))return!0;return!1}function ft(r){let e=!1,t=ci,n=!1,i=!1,s=!0;for(let m of r){let f=li(m.codePointAt(0));if(s){if(f!=="L"&&f!=="R"&&f!=="AL")return!1;e=f==="R"||f==="AL",t=e?aa:ci,s=!1}if(!t.test(f))return!1;f==="EN"?n=!0:f==="AN"&&(i=!0)}return!(e&&n&&i)}function da(r){return te.test(r)&&pi(r).length+4>63}function pa(r){return r[0]==="-"||r[r.length-1]==="-"?!0:r.slice(2).join("").startsWith("--")}function at(r){if(da(r)||mt(r)&&!ft(r))return!1;let e=[...r],t=e.map(s=>s.codePointAt(0)),n=t.length;if(pa(e)||ri.test(e[0]))return!1;let i=!1;for(let s=0;s<n;s++){let m=t[s],f=e[s];if(oi.test(f)||!si.test(f))return!1;ti.test(f)&&(i=!0);let a=t[s-1],u=t[s+1];switch(m){case 183:if(a!==108||u!==108)return!1;break;case 885:if(!u||!ei.test(e[s+1]))return!1;break;case 1523:case 1524:if(!a||!ot.test(e[s-1]))return!1;break;case 8204:if(!a||a<128&&!hn.test(e[s-1]))return!1;break;case 8205:if(!a||!hn.test(e[s-1]))return!1;break;case 12539:break}}return!(r.includes("\u30FB")&&!i)}function ut(r){if(!it(r))return!1;try{let e=r.slice(4).toLowerCase();if(e.lastIndexOf("-")===0)return!1;let t=st(e);return te.test(t)?at(t):!1}catch(e){return!1}}function ca(r){return r.length>0&&r.length<=63}function Ia(r){return ca(r)&&(ut(r)||mi(r))}function hi(r){return r.length===0||r.length>253||r.charCodeAt(r.length-1)===46?!1:r.split(".").every(e=>Ia(e))}function la(r){return r.length>0&&r.length<=63}function ya(r){return la(r)&&(ut(r)||at(r))}function xa(r){return r.replace(/[\uff01-\uff5e]/g,e=>String.fromCharCode(e.charCodeAt(0)-65248)).normalize("NFC").replace(/[\u00ad\u034f\u180b-\u180d\u200b\ufe00-\ufe0f\u{e0100}-\u{e01ef}]/gu,"").replace(/[\u002E\u3002\uFF0E\uFF61]/g,".")}function gi(r){if(r.length===0||r.includes(" "))return!1;let e=xa(r);if(e.length>253)return!1;let t=e.split("."),n=t.some(i=>Ii(i));return t.every(i=>ya(i)&&(!n||ft(i)))}function dt(r){return hi(r)}var Ea=/^(?:[A-Za-z0-9!#$%&'*+\/=?^_`{|}~\u{0080}-\u{10FFFF}-]+(?:\.[A-Za-z0-9!#$%&'*+\/=?^_`{|}~\u{0080}-\u{10FFFF}-]+)*|"(?:[^"\\]|\\.)*")@[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,62})(?<!-)(?:\.[\p{L}\p{N}](?:[\p{L}\p{N}-]{0,62})(?<!-))*$/iu;function pt(r){return Ea.test(r.normalize("NFC"))}function ct(r){return gi(r)}var ha=/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/;function It(r){return ha.test(r)}var ga=/^(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:)?[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)$/i;function lt(r){return ga.test(r)}var Sa=/[\x00-\x20\x7F\\]|%(?![0-9a-fA-F]{2})/,Ca=/^[a-zA-Z][a-zA-Z0-9+\-.]*\/\//;function yt(r){return!Sa.test(r)&&!Ca.test(r)&&URL.canParse(r,"http://example.com")}var Aa=/[\x00-\x20<>\^`{|}\\]/,$a=/%(?![0-9a-fA-F]{2})/;function xt(r){return Aa.test(r)||$a.test(r)?!1:URL.canParse(r)}var Ra=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;function Et(r){return Ra.test(r)}var Pa=/^(?:\/(?:[^~/]|~0|~1)*)*$/;function ht(r){return Pa.test(r)}function gt(r){try{return new RegExp(r,"u"),!0}catch(e){return!1}}var ba=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function St(r){return ba.test(r)}var Fa=/^(?:[a-z][a-z0-9+\-.]*:(?:\/\/(?:(?:[-a-z0-9._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:[\da-f]{1,4}:){6}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|::(?:[\da-f]{1,4}:){5}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:[\da-f]{1,4})?::(?:[\da-f]{1,4}:){4}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,1}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){3}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){2}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4})?::[\da-f]{1,4}:(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4})?::(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4})?::[\da-f]{1,4}|(?:(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4})?::)|v[0-9a-f]+\.[-a-z0-9._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)|(?:[-a-z0-9._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:\/\/(?:(?:[-a-z0-9._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:[\da-f]{1,4}:){6}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|::(?:[\da-f]{1,4}:){5}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:[\da-f]{1,4})?::(?:[\da-f]{1,4}:){4}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,1}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){3}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){2}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4})?::[\da-f]{1,4}:(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4})?::(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4})?::[\da-f]{1,4}|(?:(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4})?::)|v[0-9a-f]+\.[-a-z0-9._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)|(?:[-a-z0-9._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[-a-z0-9._~!$&'()*+,;=@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?)(?:\?(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function Ct(r){return Fa.test(r)}var Oa=/^(?:(?:[^\x00-\x20"<>%\\^`{|}\x7f]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?:\.(?:[a-z0-9_]|%[0-9a-f]{2})+)*(?::[1-9]\d{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?:\.(?:[a-z0-9_]|%[0-9a-f]{2})+)*(?::[1-9]\d{0,3}|\*)?)*\})*$/i;function At(r){return Oa.test(r)}var Ta=/^[a-z][a-z0-9+\-.]*:(?:\/\/(?:(?:[-a-z0-9._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:[\da-f]{1,4}:){6}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|::(?:[\da-f]{1,4}:){5}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:[\da-f]{1,4})?::(?:[\da-f]{1,4}:){4}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,1}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){3}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,2}[\da-f]{1,4})?::(?:[\da-f]{1,4}:){2}(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,3}[\da-f]{1,4})?::[\da-f]{1,4}:(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,4}[\da-f]{1,4})?::(?:[\da-f]{1,4}:[\da-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[\da-f]{1,4}:){0,5}[\da-f]{1,4})?::[\da-f]{1,4}|(?:(?:[\da-f]{1,4}:){0,6}[\da-f]{1,4})?::)|v[0-9a-f]+\.[-a-z0-9._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)|(?:[-a-z0-9._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[-a-z0-9._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[-a-z0-9._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function $t(r){return Ta.test(r)}function Rt(r){return URL.canParse(r)}var Ma=/^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;function Pt(r){return Ma.test(r)}var $=new Map;function Ci(){$.clear()}function _a(){return[...$.entries()]}function Ua(r,e){$.set(r,e)}function qa(r){return $.has(r)}function Ga(r){return $.get(r)}function Na(r,e){return $.get(r)?.(e)??!0}function Ai(){Ci(),$.set("date-time",et),$.set("date",re),$.set("duration",tt),$.set("email",nt),$.set("hostname",dt),$.set("idn-email",pt),$.set("idn-hostname",ct),$.set("ipv4",It),$.set("ipv6",lt),$.set("iri-reference",yt),$.set("iri",xt),$.set("json-pointer-uri-fragment",Et),$.set("json-pointer",ht),$.set("regex",gt),$.set("relative-json-pointer",St),$.set("time",ee),$.set("uri-reference",Ct),$.set("uri-template",At),$.set("uri",$t),$.set("url",Rt),$.set("uuid",Pt)}Ai();function Cn(r,e,t,n){return Ae.Test(t.format,n)}function $i(r,e,t,n,i,s){return Cn(r,e,i,s)||e.AddError("format",t,n,{format:i.format})}function Ri(r,e,t,n){let i=Qe(t)?t.then:!0,s=He(t)?t.else:!0;return h(r,e,t.if,n)?h(r,e,i,n):h(r,e,s,n)}function Pi(r,e,t,n,i,s){let m=Qe(i)?i.then:!0,f=He(i)?i.else:!0,a=new N,u=C(r,a,`${t}/if`,n,i.if,s)?C(r,a,`${t}/then`,n,m,s)||e.AddError("if",t,n,{failingKeyword:"then"}):C(r,e,`${t}/else`,n,f,s)||e.AddError("if",t,n,{failingKeyword:"else"});return u&&e.Merge([a]),u}function Ba(r,e,t,n){return o.Every(t.items,0,(i,s)=>o.IsLessEqualThan(n.length,s)||v(r,e,i,n[s])&&e.AddIndex(s))}function ka(r,e,t,n,i,s){return o.EveryAll(i.items,0,(m,f)=>{let a=`${t}/items/${f}`,u=`${n}/${f}`;return o.IsLessEqualThan(s.length,f)||rr(r,e,a,u,m,s[f])&&e.AddIndex(f)})}function ja(r,e,t,n){let i=Gr(t)?t.prefixItems.length:0;return o.Every(n,i,(s,m)=>v(r,e,t.items,s)&&e.AddIndex(m))}function Da(r,e,t,n,i,s){let m=Gr(i)?i.prefixItems.length:0;return o.EveryAll(s,m,(f,a)=>{let u=`${t}/items`,p=`${n}/${a}`;return rr(r,e,u,p,i.items,f)&&e.AddIndex(a)})}function bi(r,e,t,n){return Ve(t)?Ba(r,e,t,n):ja(r,e,t,n)}function Fi(r,e,t,n,i,s){return Ve(i)?ka(r,e,t,n,i,s):Da(r,e,t,n,i,s)}function La(r){return $r(r)}function An(r,e,t,n){if(!La(t))return!0;let i=o.Counted(n,s=>h(r,e,t.contains,s));return o.IsLessEqualThan(i,t.maxContains)}function Oi(r,e,t,n,i,s){let m=Ur(i)?i.minContains:1;return An(r,e,i,s)||e.AddError("contains",t,n,{minContains:m,maxContains:i.maxContains})}function $n(r,e,t,n){return o.IsLessEqualThan(n,t.maximum)}function Ti(r,e,t,n,i,s){return $n(r,e,i,s)||e.AddError("maximum",t,n,{comparison:"<=",limit:i.maximum})}function Rn(r,e,t,n){return o.IsLessEqualThan(n.length,t.maxItems)}function Mi(r,e,t,n,i,s){return Rn(r,e,i,s)||e.AddError("maxItems",t,n,{limit:i.maxItems})}function Pn(r,e,t,n){return o.IsMaxLength(n,t.maxLength)}function _i(r,e,t,n,i,s){return Pn(r,e,i,s)||e.AddError("maxLength",t,n,{limit:i.maxLength})}function bn(r,e,t,n){return o.IsLessEqualThan(o.Keys(n).length,t.maxProperties)}function Ui(r,e,t,n,i,s){return bn(r,e,i,s)||e.AddError("maxProperties",t,n,{limit:i.maxProperties})}function Ka(r){return $r(r)}function Fn(r,e,t,n){if(!Ka(t))return!0;let i=o.Counted(n,(s,m)=>h(r,e,t.contains,s)&&e.AddIndex(m));return o.IsGreaterEqualThan(i,t.minContains)}function qi(r,e,t,n,i,s){return Fn(r,e,i,s)||e.AddError("contains",t,n,{minContains:i.minContains})}function On(r,e,t,n){return o.IsGreaterEqualThan(n,t.minimum)}function Gi(r,e,t,n,i,s){return On(r,e,i,s)||e.AddError("minimum",t,n,{comparison:">=",limit:i.minimum})}function Tn(r,e,t,n){return o.IsGreaterEqualThan(n.length,t.minItems)}function Ni(r,e,t,n,i,s){return Tn(r,e,i,s)||e.AddError("minItems",t,n,{limit:i.minItems})}function Mn(r,e,t,n){return o.IsMinLength(n,t.minLength)}function Bi(r,e,t,n,i,s){return Mn(r,e,i,s)||e.AddError("minLength",t,n,{limit:i.minLength})}function _n(r,e,t,n){return o.IsGreaterEqualThan(o.Keys(n).length,t.minProperties)}function ki(r,e,t,n,i,s){return _n(r,e,i,s)||e.AddError("minProperties",t,n,{limit:i.minProperties})}function Un(r,e,t,n){return o.IsMultipleOf(n,t.multipleOf)}function ji(r,e,t,n,i,s){return Un(r,e,i,s)||e.AddError("multipleOf",t,n,{multipleOf:i.multipleOf})}function qn(r,e,t,n){let i=new V;return!h(r,i,t.not,n)&&e.Merge([i])}function Di(r,e,t,n,i,s){return qn(r,e,i,s)||e.AddError("not",t,n,{})}function Li(r,e,t,n){let i=t.oneOf.reduce((s,m)=>{let f=new V;return h(r,f,m,n)?[...s,f]:s},[]);return o.IsEqual(i.length,1)&&e.Merge(i)}function Ki(r,e,t,n,i,s){let m=[],f=[],a=i.oneOf.reduce((p,y,x)=>{let O=new N,xr=`${t}/oneOf/${x}`,jt=C(r,O,xr,n,y,s);return jt&&f.push(x),jt||m.push(O),jt?[...p,O]:p},[]),u=o.IsEqual(a.length,1)&&e.Merge(a);return!u&&o.IsEqual(f.length,0)&&m.forEach(p=>e.AddErrors(p.GetErrors())),u||e.AddError("oneOf",t,n,{passingSchemas:f})}function Gn(r,e,t,n){return(o.IsString(t.pattern)?br(t.pattern):t.pattern).test(n)}function wi(r,e,t,n,i,s){return Gn(r,e,i,s)||e.AddError("pattern",t,n,{pattern:i.pattern})}function Hi(r,e,t,n){return o.Every(o.Entries(t.patternProperties),0,([i,s])=>{let m=br(i);return o.Every(o.Entries(n),0,([f,a])=>!m.test(f)||v(r,e,s,a)&&e.AddKey(f))})}function zi(r,e,t,n,i,s){return o.EveryAll(o.Entries(i.patternProperties),0,([m,f])=>{let a=`${t}/patternProperties/${Y(m)}`,u=br(m);return o.EveryAll(o.Entries(s),0,([p,y])=>{let x=`${n}/${Y(p)}`;return!u.test(p)||rr(r,e,a,x,f,y)&&e.AddKey(p)})})}function Vi(r,e,t,n){return o.IsEqual(n.length,0)||o.Every(t.prefixItems,0,(i,s)=>o.IsLessEqualThan(n.length,s)||v(r,e,i,n[s])&&e.AddIndex(s))}function Wi(r,e,t,n,i,s){return o.IsEqual(s.length,0)||o.EveryAll(i.prefixItems,0,(m,f)=>{let a=`${t}/prefixItems/${f}`,u=`${n}/${f}`;return o.IsLessEqualThan(s.length,f)||rr(r,e,a,u,m,s[f])&&e.AddIndex(f)})}function Nn(r,e){return r.includes(e)||er.Get().exactOptionalPropertyTypes}function Bn(r,e){return o.IsUndefined(r[e])}function Ji(r,e,t,n){let i=Nr(t)?t.required:[];return o.Every(o.Entries(t.properties),0,([m,f])=>{let a=!o.HasPropertyKey(n,m)||v(r,e,f,n[m])&&e.AddKey(m);return Nn(i,m)?a:Bn(n,m)||a})}function Yi(r,e,t,n,i,s){let m=Nr(i)?i.required:[];return o.EveryAll(o.Entries(i.properties),0,([a,u])=>{let p=`${t}/properties/${Y(a)}`,y=`${n}/${Y(a)}`,x=()=>!o.HasPropertyKey(s,a)||rr(r,e,p,y,u,s[a])&&e.AddKey(a);return Nn(m,a)?x():Bn(s,a)||x()})}function Zi(r,e,t,n){return o.Every(o.Keys(n),0,(i,s)=>h(r,e,t.propertyNames,i))}function Xi(r,e,t,n,i,s){let m=[];return o.EveryAll(o.Keys(s),0,(a,u)=>{let p=`${n}/${Y(a)}`,y=`${t}/propertyNames`,x=C(r,e,y,p,i.propertyNames,a);return x||m.push(a),x})||e.AddError("propertyNames",t,n,{propertyNames:m})}function Qi(r,e,t,n){let i=sr.RecursiveRef(r,t)??!1,s=i?k(E({},r),{pendingResource:!0}):r;return c(i)&&h(s,e,i,n)}function vi(r,e,t,n,i,s){let m=sr.RecursiveRef(r,i)??!1,f=m?k(E({},r),{pendingResource:!0}):r;return c(m)&&C(f,e,t,n,m,s)}function rs(r,e,t,n){let i=sr.Ref(r,t),s=i.schema??!1,m=new V,f=c(s)&&h(i.stack,m,s,n);return f&&e.Merge([m]),f}function es(r,e,t,n,i,s){let m=sr.Ref(r,i),f=m.schema??!1,a=new N,u=c(f)&&C(m.stack,a,t,n,f,s);return u&&e.Merge([a]),u||e.AddErrors(a.GetErrors()),u}function ts(r,e,t,n){return o.Every(t.required,0,i=>o.HasPropertyKey(n,i))}function ns(r,e,t,n,i,s){let m=[];return o.EveryAll(i.required,0,a=>{let u=o.HasPropertyKey(s,a);return u||m.push(a),u})||e.AddError("required",t,n,{requiredProperties:m})}function kn(r,e,t,n,i){return o.IsEqual(t,"object")?o.IsObjectNotArray(i):o.IsEqual(t,"array")?o.IsArray(i):o.IsEqual(t,"boolean")?o.IsBoolean(i):o.IsEqual(t,"integer")?o.IsInteger(i):o.IsEqual(t,"number")?o.IsNumber(i):o.IsEqual(t,"null")?o.IsNull(i):o.IsEqual(t,"string")?o.IsString(i):o.IsEqual(t,"bigint")?o.IsBigInt(i):o.IsEqual(t,"constructor")?o.IsConstructor(i):o.IsEqual(t,"function")?o.IsFunction(i):o.IsEqual(t,"symbol")?o.IsSymbol(i):o.IsEqual(t,"undefined")?o.IsUndefined(i):o.IsEqual(t,"void")?o.IsUndefined(i):!0}function os(r,e,t,n,i){return o.Some(t,s=>kn(r,e,s,n,i))}function is(r,e,t,n){return o.IsArray(t.type)?os(r,e,t.type,t,n):kn(r,e,t.type,t,n)}function ss(r,e,t,n,i,s){return(o.IsArray(i.type)?os(r,e,i.type,i,s):kn(r,e,i.type,i,s))||e.AddError("type",t,n,{type:i.type})}function ms(r,e,t,n){let i=e.GetIndices();return o.Every(n,0,(s,m)=>(i.has(m)||h(r,e,t.unevaluatedItems,s))&&e.AddIndex(m))}function fs(r,e,t,n,i,s){let m=e.GetIndices(),f=[];return o.EveryAll(s,0,(u,p)=>{let y=new N,x=(m.has(p)||C(r,y,t,n,i.unevaluatedItems,u))&&e.AddIndex(p);return x||f.push(p),x})||e.AddError("unevaluatedItems",t,n,{unevaluatedItems:f})}function as(r,e,t,n){let i=e.GetKeys();return o.Every(o.Entries(n),0,([s,m])=>i.has(s)||h(r,e,t.unevaluatedProperties,m)&&e.AddKey(s))}function us(r,e,t,n,i,s){let m=e.GetKeys(),f=[];return o.EveryAll(o.Entries(s),0,([u,p])=>{let y=new N,x=m.has(u)||C(r,y,t,n,i.unevaluatedProperties,p)&&e.AddKey(u);return x||f.push(u),x})||e.AddError("unevaluatedProperties",t,n,{unevaluatedProperties:f})}function ds(r){return!o.IsEqual(r.uniqueItems,!1)}function ps(r,e,t,n){if(!ds(t))return!0;let i=new Set(n.map(Tr.Hash)).size,s=n.length;return o.IsEqual(i,s)}function cs(r,e,t,n,i,s){if(!ds(i))return!0;let m=new Set,f=s.reduce((u,p,y)=>{let x=Tr.Hash(p);return m.has(x)?[...u,y]:(m.add(x),u)},[]);return o.IsEqual(f.length,0)||e.AddError("uniqueItems",t,n,{duplicateItems:f})}function v(r,e,t,n){return e.Push()&&h(r,e,t,n)&&e.Pop()}function h(r,e,t,n){let i=Qr(r,t);return Mr(t)?nn(i,e,t,n):(!vt(t)||is(i,e,t,n))&&(!(o.IsObject(n)&&!o.IsArray(n))||(!Nr(t)||ts(i,e,t,n))&&(!ir(t)||Co(i,e,t,n))&&(!Ht(t)||Mo(i,e,t,n))&&(!zt(t)||Uo(i,e,t,n))&&(!Ke(t)||Go(i,e,t,n))&&(!Jr(t)||Hi(i,e,t,n))&&(!Yr(t)||Ji(i,e,t,n))&&(!Ye(t)||Zi(i,e,t,n))&&(!de(t)||_n(i,e,t,n))&&(!Xt(t)||bn(i,e,t,n)))&&(!o.IsArray(n)||(!je(t)||ho(i,e,t,n))&&(!$r(t)||sn(i,e,t,n))&&(!_r(t)||bi(i,e,t,n))&&(!Ur(t)||Fn(i,e,t,n))&&(!Yt(t)||An(i,e,t,n))&&(!qr(t)||Tn(i,e,t,n))&&(!ae(t)||Rn(i,e,t,n))&&(!Gr(t)||Vi(i,e,t,n))&&(!Pr(t)||ps(i,e,t,n)))&&(!o.IsString(n)||(!ue(t)||Mn(i,e,t,n))&&(!Zt(t)||Pn(i,e,t,n))&&(!fe(t)||Cn(i,e,t,n))&&(!pe(t)||Gn(i,e,t,n)))&&(!(o.IsNumber(n)||o.IsBigInt(n))||(!Er(t)||yn(i,e,t,n))&&(!Wt(t)||ln(i,e,t,n))&&(!hr(t)||On(i,e,t,n))&&(!Jt(t)||$n(i,e,t,n))&&(!Qt(t)||Un(i,e,t,n)))&&(!Xe(t)||rs(i,e,t,n))&&(!Ze(t)||Qi(i,e,t,n))&&(!we(t)||zo(i,e,t,n))&&(!wt(t)||on(i,e,t,n))&&(!Vt(t)||In(i,e,t,n))&&(!ze(t)||Ri(i,e,t,n))&&(!We(t)||qn(i,e,t,n))&&(!De(t)||$o(i,e,t,n))&&(!Le(t)||Po(i,e,t,n))&&(!Je(t)||Li(i,e,t,n))&&(!Ie(t)||!o.IsArray(n)||ms(i,e,t,n))&&(!le(t)||!o.IsObject(n)||as(i,e,t,n))&&(!ke(t)||po(i,e,t,n))}function rr(r,e,t,n,i,s){return e.Push()&&C(r,e,t,n,i,s)&&e.Pop()}function C(r,e,t,n,i,s){if(e.AtCapacity())return!1;let m=Qr(r,i);return Mr(i)?Fo(m,e,t,n,i,s):!!(+(!vt(i)||ss(m,e,t,n,i,s))&+(!(o.IsObject(s)&&!o.IsArray(s))||!!(+(!Nr(i)||ns(m,e,t,n,i,s))&+(!ir(i)||Ao(m,e,t,n,i,s))&+(!Ht(i)||_o(m,e,t,n,i,s))&+(!zt(i)||qo(m,e,t,n,i,s))&+(!Ke(i)||No(m,e,t,n,i,s))&+(!Jr(i)||zi(m,e,t,n,i,s))&+(!Yr(i)||Yi(m,e,t,n,i,s))&+(!Ye(i)||Xi(m,e,t,n,i,s))&+(!de(i)||ki(m,e,t,n,i,s))&+(!Xt(i)||Ui(m,e,t,n,i,s))))&+(!o.IsArray(s)||!!(+(!je(i)||go(m,e,t,n,i,s))&+(!$r(i)||To(m,e,t,n,i,s))&+(!_r(i)||Fi(m,e,t,n,i,s))&+(!Ur(i)||qi(m,e,t,n,i,s))&+(!Yt(i)||Oi(m,e,t,n,i,s))&+(!qr(i)||Ni(m,e,t,n,i,s))&+(!ae(i)||Mi(m,e,t,n,i,s))&+(!Gr(i)||Wi(m,e,t,n,i,s))&+(!Pr(i)||cs(m,e,t,n,i,s))))&+(!o.IsString(s)||!!(+(!ue(i)||Bi(m,e,t,n,i,s))&+(!Zt(i)||_i(m,e,t,n,i,s))&+(!fe(i)||$i(m,e,t,n,i,s))&+(!pe(i)||wi(m,e,t,n,i,s))))&+(!(o.IsNumber(s)||o.IsBigInt(s))||!!(+(!Er(i)||Yo(m,e,t,n,i,s))&+(!Wt(i)||Jo(m,e,t,n,i,s))&+(!hr(i)||Gi(m,e,t,n,i,s))&+(!Jt(i)||Ti(m,e,t,n,i,s))&+(!Qt(i)||ji(m,e,t,n,i,s))))&+(!Xe(i)||es(m,e,t,n,i,s))&+(!Ze(i)||vi(m,e,t,n,i,s))&+(!we(i)||Vo(m,e,t,n,i,s))&+(!wt(i)||Oo(m,e,t,n,i,s))&+(!Vt(i)||Wo(m,e,t,n,i,s))&+(!ze(i)||Pi(m,e,t,n,i,s))&+(!We(i)||Di(m,e,t,n,i,s))&+(!De(i)||Ro(m,e,t,n,i,s))&+(!Le(i)||bo(m,e,t,n,i,s))&+(!Je(i)||Ki(m,e,t,n,i,s))&+(!Ie(i)||!o.IsArray(s)||fs(m,e,t,n,i,s))&+(!le(i)||!o.IsObject(s)||us(m,e,t,n,i,s)))&&(!ke(i)||co(m,e,t,n,i,s))}function bt(...r){let[e,t,n]=S.Match(r,{3:(p,y,x)=>[p,y,x],2:(p,y)=>[{},p,y]}),i=Xr(e,t),s=new N,m=C(i,s,"#","",t,n),f=s.GetErrors(),a=Qn(),u=f.map(p=>k(E({},p),{message:a(p)}));return[m,u]}var Is=0;function Ft(){let r=Dt();Is=r.maxErrors,r.maxErrors=r.maxParseErrors}function Ot(){let r=Dt();r.maxErrors=Is}function Dn(...r){let[e,t,n]=S.Match(r,{3:(m,f,a)=>[m,f,a],2:(m,f)=>[{},m,f]}),i=Xr(e,t),s=new V;return h(i,s,t,n)}function l(...r){let[e,t,n]=S.Match(r,{3:(i,s,m)=>[i,s,m],2:(i,s)=>[{},i,s]});return Dn(e,t,n)}function dr(...r){let[e,t,n]=S.Match(r,{3:(m,f,a)=>[m,f,a],2:(m,f)=>[{},m,f]}),[i,s]=bt(e,t,n);return s}var Sr=class extends Error{constructor(e,t,n){super(e),Object.defineProperty(this,"cause",{value:{source:e,errors:n,value:t},writable:!1,configurable:!1,enumerable:!1})}};function Tt(...r){let[e,t,n]=S.Match(r,{3:(s,m,f)=>[s,m,f],2:(s,m)=>[{},s,m]});if(!l(e,t,n))throw new Sr("Assert",n,dr(e,t,n))}function ls(r,e,t){return o.IsArray(t)?t.map(n=>_(r,e.items,n)):t}function ys(r,e,t){return _(E(E({},r),e.$defs),tr(e.$ref),t)}function za(r,e){let t=o.HasPropertyKey(e,"unevaluatedProperties")?{additionalProperties:e.unevaluatedProperties}:{},n=cr(r,e),i=G(n);return M(i)?fo(i,t):i}function xs(r,e,t){let n=za(r,e);return _(r,n,t)}function Mt(r){return o.HasPropertyKey(r,"additionalProperties")?r.additionalProperties:void 0}function Es(r,e,t){if(!o.IsObject(t)||o.IsArray(t))return t;let n=Mt(e);for(let i of o.Keys(t)){if(o.HasPropertyKey(e.properties,i)&&se(e.properties[i])){t[i]=_(r,e.properties[i],t[i]);continue}if(o.IsBoolean(n)&&o.IsEqual(n,!0)||se(n)&&l(r,n,t[i])){t[i]=_(r,n,t[i]);continue}delete t[i]}return t}function hs(r,e,t){if(!o.IsObject(t))return t;let n=Mt(e),[i,s]=[new RegExp(fr(e)),Q(e)];for(let m of o.Keys(t)){if(i.test(m)){t[m]=_(r,s,t[m]);continue}if(o.IsBoolean(n)&&o.IsEqual(n,!0)||se(n)&&l(r,n,t[m])){t[m]=_(r,n,t[m]);continue}delete t[m]}return t}function gs(r,e,t){return o.HasPropertyKey(r,e.$ref)?_(r,r[e.$ref],t):t}function Ss(r,e,t){if(!o.IsArray(t))return t;let n=Math.min(t.length,e.items.length);for(let i=0;i<n;i++)t[i]=_(r,e.items[i],t[i]);return o.IsGreaterThan(t.length,n)?t.slice(0,n):t}function Va(r){return o.HasPropertyKey(r,"~kind")||o.HasPropertyKey(r,"~unsafe")}function Wa(r){let e={};for(let t of o.Keys(r)){if(o.IsUnsafePropertyKey(t))continue;let n=Object.getOwnPropertyDescriptor(r,t);n.value=jr(n.value),o.IsEqual(n.enumerable,!0)?e[t]=n.value:Object.defineProperty(e,t,n)}return e}function Ja(r){let e={};for(let t of o.Keys(r))o.IsUnsafePropertyKey(t)||(e[t]=jr(r[t]));for(let t of o.Symbols(r))e[t]=jr(r[t]);return e}function Ya(r){return o.IsClassInstance(r)?r:Va(r)?Wa(r):Ja(r)}function Za(r){return r.map(e=>jr(e))}function Xa(r){return r.slice()}function Qa(r){return new RegExp(r.source,r.flags)}function va(r){return new Map(jr([...r.entries()]))}function ru(r){return new Set(jr([...r.values()]))}function jr(r){return X.IsTypeArray(r)?Xa(r):X.IsRegExp(r)?Qa(r):X.IsMap(r)?va(r):X.IsSet(r)?ru(r):o.IsArray(r)?Za(r):o.IsObject(r)?Ya(r):r}function Cs(r){return jr(r)}function A(r){return Cs(r)}function As(r,e,t){for(let n of e.anyOf){let i=_(r,n,A(t));if(l(r,n,i))return i}return t}function _(r,e,t){return j(e)?ls(r,e,t):nr(e)?ys(r,e,t):L(e)?xs(r,e,t):M(e)?Es(r,e,t):H(e)?hs(r,e,t):D(e)?gs(r,e,t):w(e)?Ss(r,e,t):K(e)?As(r,e,t):t}function eu(r,e){return Lt.Assign(r,e)}function tu(r){let e={};for(let t of Wn.Keys(r))e[t]=$e(r[t]);return e}function nu(r){return wr({pattern:fr(r)})}function ou(r){return Ln(ao(r))}function Ln(r){return r.map(e=>$e(e))}function $e(r){let e=j(r)?Jn($e(r.items),Yn(r)):L(r)?Zn(Ln(r.allOf)):K(r)?zr(ou(r.anyOf)):M(r)?me(tu(r.properties)):H(r)?mo(nu(r),$e(Q(r))):w(r)?io(Ln(r.items)):r;return eu(r,e)}function ne(r){return $e(r)}function pr(...r){let[e,t,n]=S.Match(r,{3:(s,m,f)=>[s,m,f],2:(s,m)=>[{},s,m]}),i=er.Get().unionPrioritySort?ne(t):t;return _(e,i,n)}var g={};ie(g,{Fail:()=>Dr,IsOk:()=>Kn,Ok:()=>d,TryArray:()=>iu,TryBigInt:()=>wn,TryBoolean:()=>xu,TryNull:()=>Cu,TryNumber:()=>Pu,TryString:()=>bu,TryUndefined:()=>_u});function Kn(r){return o.IsObject(r)&&o.HasPropertyKey(r,"value")}function d(r){return{value:r}}function Dr(){}function iu(r){return o.IsArray(r)?d(r):d([r])}function su(r){return o.IsEqual(r,!0)?d(BigInt(1)):d(BigInt(0))}var mu=/^-?(0|[1-9]\d*)n$/,fu=/^-?(0|[1-9]\d*)\.\d+$/,au=/^-?(0|[1-9]\d*)$/;function uu(r){return mu.test(r)}function du(r){return fu.test(r)}function pu(r){return au.test(r)}function cu(r){let e=r.toLowerCase();return uu(r)?d(BigInt(r.slice(0,r.length-1))):du(r)?d(BigInt(r.split(".")[0])):pu(r)?d(BigInt(r)):o.IsEqual(e,"false")?d(BigInt(0)):o.IsEqual(e,"true")?d(BigInt(1)):void 0}function wn(r){return o.IsBigInt(r)?d(r):o.IsBoolean(r)?su(r):o.IsNumber(r)?d(BigInt(Math.trunc(r))):o.IsNull(r)?d(BigInt(0)):o.IsString(r)?cu(r):o.IsUndefined(r)?d(BigInt(0)):void 0}function Iu(r){return o.IsEqual(r,BigInt(0))?d(!1):o.IsEqual(r,BigInt(1))?d(!0):void 0}function lu(r){return o.IsEqual(r,0)?d(!1):o.IsEqual(r,1)?d(!0):void 0}function yu(r){return o.IsEqual(r.toLowerCase(),"false")?d(!1):o.IsEqual(r.toLowerCase(),"true")?d(!0):o.IsEqual(r,"0")?d(!1):o.IsEqual(r,"1")?d(!0):void 0}function xu(r){return o.IsBigInt(r)?Iu(r):o.IsBoolean(r)?d(r):o.IsNumber(r)?lu(r):o.IsNull(r)?d(!1):o.IsString(r)?yu(r):o.IsUndefined(r)?d(!1):void 0}function Eu(r){return o.IsEqual(r,BigInt(0))?d(null):void 0}function hu(r){return o.IsEqual(r,!1)?d(null):void 0}function gu(r){return o.IsEqual(r,0)?d(null):void 0}function Su(r){let e=r.toLowerCase();return o.IsEqual(e,"undefined")||o.IsEqual(e,"null")||o.IsEqual(r,"")||o.IsEqual(r,"0")?d(null):void 0}function Cu(r){return o.IsBigInt(r)?Eu(r):o.IsBoolean(r)?hu(r):o.IsNumber(r)?gu(r):o.IsNull(r)?d(null):o.IsString(r)?Su(r):o.IsUndefined(r)?d(null):void 0}var $s=BigInt(Number.MAX_SAFE_INTEGER),Rs=BigInt(Number.MIN_SAFE_INTEGER);function Au(r){return r<=$s&&r>=Rs?d(Number(r)):void 0}function $u(r){return d(r?1:0)}function Ru(r){let e=+r;if(o.IsNumber(e))return d(e);let t=r.toLowerCase();if(o.IsEqual(t,"false"))return d(0);if(o.IsEqual(t,"true"))return d(1);let n=wn(r);return Kn(n)?n.value<=$s&&n.value>=Rs?d(Number(n.value)):void 0:void 0}function Pu(r){return o.IsBigInt(r)?Au(r):o.IsBoolean(r)?$u(r):o.IsNumber(r)?d(r):o.IsNull(r)?d(0):o.IsString(r)?Ru(r):o.IsUndefined(r)?d(0):void 0}function bu(r){return o.IsBigInt(r)?d(r.toString()):o.IsBoolean(r)?d(r.toString()):o.IsNumber(r)?d(r.toString()):o.IsNull(r)?d("null"):o.IsString(r)?d(r):o.IsUndefined(r)?d(""):void 0}function Fu(r){return o.IsEqual(r,BigInt(0))?d(void 0):void 0}function Ou(r){return o.IsEqual(r,!1)?d(void 0):void 0}function Tu(r){return o.IsEqual(r,0)?d(void 0):void 0}function Mu(r){let e=r.toLowerCase();return o.IsEqual(e,"undefined")||o.IsEqual(e,"null")||o.IsEqual(r,"")||o.IsEqual(r,"0")?d(void 0):void 0}function _u(r){return o.IsBigInt(r)?Fu(r):o.IsBoolean(r)?Ou(r):o.IsNumber(r)?Tu(r):o.IsNull(r)?d(void 0):o.IsString(r)?Mu(r):o.IsUndefined(r)?d(r):void 0}function Ps(r,e,t){return g.TryArray(t).value.map(i=>b(r,e.items,i))}function bs(r,e,t){let n=g.TryBigInt(t);return g.IsOk(n)?n.value:t}function Fs(r,e,t){let n=g.TryBoolean(t);return g.IsOk(n)?n.value:t}function Os(r,e,t){return b(E(E({},r),e.$defs),tr(e.$ref),t)}function Ts(r,e,t){return b(r,G(e),t)}function Ms(r,e,t){let n=g.TryNumber(t);return g.IsOk(n)?Math.trunc(n.value):t}function _s(r,e,t){let n=cr(r,e),i=G(n);return b(r,i,t)}function Uu(r,e,t){let n=g.TryBigInt(t);return g.IsOk(n)&&o.IsEqual(e.const,n.value)?n.value:t}function qu(r,e,t){let n=g.TryBoolean(t);return g.IsOk(n)&&o.IsEqual(e.const,n.value)?n.value:t}function Gu(r,e,t){let n=g.TryNumber(t);return g.IsOk(n)&&o.IsEqual(e.const,n.value)?n.value:t}function Nu(r,e,t){let n=g.TryString(t);return g.IsOk(n)&&o.IsEqual(e.const,n.value)?n.value:t}function Us(r,e,t){return o.IsEqual(e.const,t)?t:ro(e)?Uu(r,e,t):eo(e)?qu(r,e,t):to(e)?Gu(r,e,t):no(e)?Nu(r,e,t):Xn()}function qs(r,e,t){let n=g.TryNull(t);return g.IsOk(n)?n.value:t}function Gs(r,e,t){let n=g.TryNumber(t);return g.IsOk(n)?n.value:t}function _t(r,e,t,n){let i=o.Keys(n);for(let[s,m]of e)for(let f of i)s.test(f)||(n[f]=b(r,t,n[f]));return n}function Re(r,e,t){return Oe(r)&&o.IsUndefined(t[e])}function Bu(r,e,t){let n=o.EntriesRegExp(e.properties),i=o.Keys(t);for(let[s,m]of n)for(let f of i)!s.test(f)||Re(m,f,t)||(t[f]=b(r,m,t[f]));return o.HasPropertyKey(e,"additionalProperties")&&o.IsObject(e.additionalProperties)?_t(r,n,e.additionalProperties,t):t}function Ns(r,e,t){return o.IsObjectNotArray(t)?Bu(r,e,t):t}function ku(r,e,t){let n=o.EntriesRegExp(e.patternProperties),i=o.Keys(t);for(let[s,m]of n)for(let f of i)s.test(f)&&(t[f]=b(r,m,t[f]));return o.HasPropertyKey(e,"additionalProperties")&&o.IsObject(e.additionalProperties)?_t(r,n,e.additionalProperties,t):t}function Bs(r,e,t){return o.IsObjectNotArray(t)?ku(r,e,t):t}function ks(r,e,t){return o.HasPropertyKey(r,e.$ref)?b(r,r[e.$ref],t):t}function js(r,e,t){let n=g.TryString(t);return g.IsOk(n)?n.value:t}function Ds(r,e,t){return b(r,G(e),t)}function Ls(r,e,t){if(!o.IsArray(t))return t;for(let n=0;n<Math.min(e.items.length,t.length);n++)t[n]=b(r,e.items[n],t[n]);return t}function Ks(r,e,t){let n=g.TryUndefined(t);return g.IsOk(n)?n.value:t}function ws(r,e,t){if(e.anyOf.some(m=>l(r,m,t)))return t;let s=e.anyOf.map(m=>b(r,m,A(t))).find(m=>l(r,e,m));return o.IsUndefined(s)?t:s}function Hs(r,e,t){let n=g.TryUndefined(t);return g.IsOk(n)?void 0:t}function b(r,e,t){return j(e)?Ps(r,e,t):Te(e)?bs(r,e,t):Me(e)?Fs(r,e,t):nr(e)?Os(r,e,t):Lr(e)?Ts(r,e,t):_e(e)?Ms(r,e,t):L(e)?_s(r,e,t):Kr(e)?Us(r,e,t):qe(e)?qs(r,e,t):Ge(e)?Gs(r,e,t):M(e)?Ns(r,e,t):H(e)?Bs(r,e,t):D(e)?ks(r,e,t):Hr(e)?js(r,e,t):Wr(e)?Ds(r,e,t):w(e)?Ls(r,e,t):Vr(e)?Ks(r,e,t):K(e)?ws(r,e,t):Be(e)?Hs(r,e,t):t}function yr(...r){let[e,t,n]=S.Match(r,{3:(i,s,m)=>[i,s,m],2:(i,s)=>[{},i,s]});return b(e,t,n)}function zs(r,e,t){if(!o.IsArray(t))return t;for(let n=0;n<t.length;n++)t[n]=U(r,e.items,t[n]);return t}function Vs(r,e,t){return U(E(E({},r),e.$defs),tr(e.$ref),t)}function Ws(r,e){return o.IsUndefined(e)?o.IsFunction(r.default)?r.default():A(r.default):e}function Js(r,e,t){let n=cr(r,e),i=G(n);return U(r,i,t)}function Ys(r,e,t){if(!o.IsObject(t))return t;let n=o.Keys(e.properties);for(let i of n){let s=U(r,e.properties[i],t[i]);o.IsUndefined(s)&&(Oe(e.properties[i])||!o.HasPropertyKey(e.properties[i],"default"))||(t[i]=s)}if(!ir(e)||o.IsBoolean(e.additionalProperties))return t;for(let i of o.Keys(t))n.includes(i)||(t[i]=U(r,e.additionalProperties,t[i]));return t}function Zs(r,e,t){if(!o.IsObject(t))return t;let[n,i]=[new RegExp(fr(e)),Q(e)];for(let s of o.Keys(t))n.test(s)&&J(i)&&(t[s]=U(r,i,t[s]));if(!ir(e))return t;for(let s of o.Keys(t))n.test(s)||(t[s]=U(r,e.additionalProperties,t[s]));return t}function Xs(r,e,t){return o.HasPropertyKey(r,e.$ref)?U(r,r[e.$ref],t):t}function Qs(r,e,t){if(!o.IsArray(t))return t;let[n,i]=[e.items,Math.max(e.items.length,t.length)];for(let s=0;s<i;s++)s<n.length&&(t[s]=U(r,n[s],t[s]));return t}function vs(r,e,t){for(let n of e.anyOf){let i=U(r,n,A(t));if(l(r,n,i))return i}return t}function U(r,e,t){let n=J(e)?Ws(e,t):t;return j(e)?zs(r,e,n):nr(e)?Vs(r,e,n):L(e)?Js(r,e,n):M(e)?Ys(r,e,n):H(e)?Zs(r,e,n):D(e)?Xs(r,e,n):w(e)?Qs(r,e,n):K(e)?vs(r,e,n):n}function Fr(...r){let[e,t,n]=S.Match(r,{3:(i,s,m)=>[i,s,m],2:(i,s)=>[{},i,s]});return U(e,t,n)}function oe(r){return(...e)=>{let[t,n,i]=S.Match(e,{3:(s,m,f)=>[s,m,f],2:(s,m)=>[{},s,m]});return r.reduce((s,m)=>m(t,n,s),i)}}function ju(r,e,t){return e["~codec"].decode(t)}function Du(r,e,t){return e["~codec"].encode(t)}function R(r,e,t,n){return or(t)?o.IsEqual(r,"Decode")?ju(e,t,n):Du(e,t,n):n}function Lu(r,e,t,n){if(!o.IsArray(n))return n;for(let i=0;i<n.length;i++)n[i]=P(r,e,t.items,n[i]);return R(r,e,t,n)}function Ku(r,e,t,n){let i=R(r,e,t,n);if(!o.IsArray(i))return i;for(let s=0;s<i.length;s++)i[s]=P(r,e,t.items,i[s]);return i}function rm(r,e,t,n){return o.IsEqual(r,"Decode")?Lu(r,e,t,n):Ku(r,e,t,n)}function em(r,e,t,n){return n=P(r,E(E({},e),t.$defs),tr(t.$ref),n),R(r,e,t,n)}function tm(r){return r.reduce((e,t)=>E(E({},e),t),{})}function nm(r,e){for(let t of e)if(!o.IsDeepEqual(r,t))return t;return r}function wu(r,e,t,n){if(o.IsEqual(t.allOf.length,0))return R(r,e,t,n);let i=t.allOf.map(f=>P(r,e,f,pr(f,A(n)))),m=i.every(f=>o.IsObject(f))?tm(i):nm(n,i);return R(r,e,t,m)}function Hu(r,e,t,n){if(o.IsEqual(t.allOf.length,0))return R(r,e,t,n);let i=R(r,e,t,n),s=t.allOf.map(f=>P(r,e,f,pr(f,A(i))));return s.every(f=>o.IsObject(f))?tm(s):nm(i,s)}function om(r,e,t,n){return o.IsEqual(r,"Decode")?wu(r,e,t,n):Hu(r,e,t,n)}function zu(r,e,t,n){if(!o.IsObjectNotArray(n))return n;for(let i of o.Keys(t.properties))!o.HasPropertyKey(n,i)||Re(t.properties[i],i,n)||(n[i]=P(r,e,t.properties[i],n[i]));return R(r,e,t,n)}function Vu(r,e,t,n){let i=R(r,e,t,n);if(!o.IsObjectNotArray(i))return i;for(let s of o.Keys(t.properties))!o.HasPropertyKey(i,s)||Re(t.properties[s],s,i)||(i[s]=P(r,e,t.properties[s],i[s]));return i}function im(r,e,t,n){return o.IsEqual(r,"Decode")?zu(r,e,t,n):Vu(r,e,t,n)}function Wu(r,e,t,n){if(!o.IsObjectNotArray(n))return n;let i=new RegExp(fr(t));for(let s of o.Keys(n))i.test(s)&&(n[s]=P(r,e,Q(t),n[s]));return R(r,e,t,n)}function Ju(r,e,t,n){let i=R(r,e,t,n);if(!o.IsObjectNotArray(i))return i;let s=new RegExp(fr(t));for(let m of o.Keys(i))s.test(m)&&(i[m]=P(r,e,Q(t),i[m]));return i}function sm(r,e,t,n){return o.IsEqual(r,"Decode")?Wu(r,e,t,n):Ju(r,e,t,n)}function mm(r,e,t,n){return o.HasPropertyKey(e,t.$ref)?P(r,e,e[t.$ref],n):n}function fm(r,e,t,n){return o.IsEqual(r,"Decode")?R(r,e,t,mm(r,e,t,n)):mm(r,e,t,R(r,e,t,n))}function Yu(r,e,t,n){if(!o.IsArray(n))return n;for(let i=0;i<Math.min(t.items.length,n.length);i++)n[i]=P(r,e,t.items[i],n[i]);return R(r,e,t,n)}function Zu(r,e,t,n){let i=R(r,e,t,n);if(!o.IsArray(i))return n;for(let s=0;s<Math.min(t.items.length,i.length);s++)i[s]=P(r,e,t.items[s],i[s]);return i}function am(r,e,t,n){return o.IsEqual(r,"Decode")?Yu(r,e,t,n):Zu(r,e,t,n)}function Xu(r,e,t,n){for(let i of t.anyOf){if(!l(e,i,n))continue;let s=P(r,e,i,n);return R(r,e,t,s)}return n}function Qu(r,e,t,n){let i=R(r,e,t,n);for(let s of t.anyOf){let m=P(r,e,s,A(i));if(l(e,s,m))return m}return i}function um(r,e,t,n){return o.IsEqual(r,"Decode")?Xu(r,e,t,n):Qu(r,e,t,n)}function P(r,e,t,n){return j(t)?rm(r,e,t,n):nr(t)?em(r,e,t,n):L(t)?om(r,e,t,n):M(t)?im(r,e,t,n):H(t)?sm(r,e,t,n):D(t)?fm(r,e,t,n):w(t)?am(r,e,t,n):K(t)?um(r,e,t,n):R(r,e,t,n)}var Hn=class extends Sr{constructor(e,t){super("Decode",e,t)}};function vu(r,e,t){if(!l(r,e,t))throw new Hn(t,dr(r,e,t));return t}function rd(r,e,t){let n=er.Get().unionPrioritySort?ne(e):e;return P("Decode",r,n,t)}var ed=oe([(r,e,t)=>A(t),(r,e,t)=>Fr(r,e,t),(r,e,t)=>yr(r,e,t),(r,e,t)=>pr(r,e,t),(r,e,t)=>vu(r,e,t),(r,e,t)=>rd(r,e,t)]);function dm(...r){let[e,t,n]=S.Match(r,{3:(i,s,m)=>[i,s,m],2:(i,s)=>[{},i,s]});return ed(e,t,n)}var zn=class extends Sr{constructor(e,t){super("Encode",e,t)}};function td(r,e,t){if(!l(r,e,t))throw new zn(t,dr(r,e,t));return t}function nd(r,e,t){let n=er.Get().unionPrioritySort?ne(e):e;return P("Encode",r,n,t)}var od=oe([(r,e,t)=>A(t),(r,e,t)=>nd(r,e,t),(r,e,t)=>Fr(r,e,t),(r,e,t)=>yr(r,e,t),(r,e,t)=>pr(r,e,t),(r,e,t)=>td(r,e,t)]);function pm(...r){let[e,t,n]=S.Match(r,{3:(i,s,m)=>[i,s,m],2:(i,s)=>[{},i,s]});return od(e,t,n)}function id(r,e){return or(e)||Or(r,e.items)}function sd(r,e){return or(e)||cm(E(E({},r),e.$defs),tr(e.$ref))}function md(r,e){return or(e)||e.allOf.some(t=>Or(r,t))}function fd(r,e){return or(e)||o.Keys(e.properties).some(t=>Or(r,e.properties[t]))}function ad(r,e){return or(e)||Or(r,Q(e))}function cm(r,e){return Vn.has(e.$ref)?!1:(Vn.add(e.$ref),or(e)||o.HasPropertyKey(r,e.$ref)&&Or(r,r[e.$ref]))}function ud(r,e){return or(e)||e.items.some(t=>Or(r,t))}function dd(r,e){return or(e)||e.anyOf.some(t=>Or(r,t))}function Or(r,e){return j(e)?id(r,e):nr(e)?sd(r,e):L(e)?md(r,e):M(e)?fd(r,e):H(e)?ad(r,e):D(e)?cm(r,e):w(e)?ud(r,e):K(e)?dd(r,e):or(e)}var Vn=new Set;function Im(...r){let[e,t]=S.Match(r,{2:(n,i)=>[n,i],1:n=>[{},n]});return Vn.clear(),Or(e,t)}var mr=class extends Error{constructor(e,t){super(t),this.type=e}};function lm(r,e){return o.IsFunction(e.default)?e.default(e):o.IsObject(e.default)?A(e.default):e.default}function ym(r,e){if(Pr(e)&&!J(e))throw new mr(e,"Arrays with uniqueItems constraints must specify a default annotation");let t=qr(e)?e.minItems:0;return Array.from({length:t},()=>F(r,e.items))}function xm(r,e){return Er(e)?BigInt(e.exclusiveMinimum)+BigInt(1):hr(e)?BigInt(e.minimum):BigInt(0)}function Em(r,e){return!1}function hm(r,e){let t=F(r,e.instanceType);return class{constructor(){Object.assign(this,t)}}}function gm(r,e){return F(E(E({},r),e.$defs),tr(e.$ref))}function Sm(r,e){return F(r,G(e))}function Cm(r,e){let t=F(r,e.returnType);return()=>t}function Am(r,e){return Er(e)&&o.IsNumber(e.exclusiveMinimum)?e.exclusiveMinimum+1:hr(e)?e.minimum:0}function $m(r,e){let t=cr(r,e),n=G(t);return F(r,n)}function Rm(r,e){return e.const}function Pm(r,e){throw new mr(e,"Cannot create TNever types")}function bm(r,e){return null}function Fm(r,e){return Er(e)&&o.IsNumber(e.exclusiveMinimum)?e.exclusiveMinimum+1:hr(e)?e.minimum:0}function Om(r,e){return(o.IsUndefined(e.required)?[]:e.required).reduce((n,i)=>k(E({},n),{[i]:F(r,e.properties[i])}),{})}function Tm(r,e){if(de(e)&&!J(e))throw new mr(e,"Record with the minProperties constraint must have a default annotation");return{}}function Mm(r,e){return o.HasPropertyKey(r,e.$ref)?F(r,r[e.$ref]):(()=>{throw new mr(e,"Unable to deref Ref")})()}function _m(r,e){if((pe(e)||fe(e))&&!J(e))throw Error("Strings with format or pattern constraints must specify default");let n=ue(e)?e.minLength:0;return"".padEnd(n)}function Um(r,e){return Symbol()}function qm(r,e){let t=Ne(e.pattern);if(Hr(t))throw new mr(e,"Unable to create TemplateLiteral due to infinite type expansion");return F(r,t)}function Gm(r,e){return Array.from({length:e.minItems},(t,n)=>F(r,e.items[n]))}function Nm(r,e){if(o.IsEqual(e.anyOf.length,0))throw Error("Unable to create Union with no variants");return F(r,e.anyOf[0])}function F(r,e){return J(e)?lm(r,e):j(e)?ym(r,e):Te(e)?xm(r,e):Me(e)?Em(r,e):Pe(e)?hm(r,e):nr(e)?gm(r,e):Lr(e)?Sm(r,e):be(e)?Cm(r,e):_e(e)?Am(r,e):L(e)?$m(r,e):Kr(e)?Rm(r,e):Fe(e)?Pm(r,e):qe(e)?bm(r,e):Ge(e)?Fm(r,e):M(e)?Om(r,e):H(e)?Tm(r,e):D(e)?Mm(r,e):Hr(e)?_m(r,e):oo(e)?Um(r,e):Wr(e)?qm(r,e):w(e)?Gm(r,e):Vr(e)?void 0:K(e)?Nm(r,e):Be(e)?void 0:void 0}function q(...r){let[e,t]=S.Match(r,{2:(n,i)=>[n,i],1:n=>[{},n]});return F(e,t)}function Ut(r,e){return o.IsDeepEqual(r,e)}function qt(r){return Tr.Hash(r)}var Gt=class extends Sr{constructor(e,t){super("Parse",e,t)}};function pd(r,e,t){Ft();let n=dr(r,e,t);if(Ot(),!l(r,e,t))throw new Gt(t,n);return t}var cd=oe([(r,e,t)=>A(t),(r,e,t)=>Fr(r,e,t),(r,e,t)=>yr(r,e,t),(r,e,t)=>pr(r,e,t),(r,e,t)=>pd(r,e,t)]);function Bm(...r){let[e,t,n]=S.Match(r,{3:(m,f,a)=>[m,f,a],2:(m,f)=>[{},m,f]});if(l(e,t,n))return n;if(er.Get().correctiveParse)return cd(e,t,n);Ft();let s=dr(e,t,n);throw Ot(),new Gt(n,s)}function Nt(r,e){return{type:"update",path:r,value:e}}function jm(r,e){return{type:"insert",path:r,value:e}}function Dm(r){return{type:"delete",path:r}}function km(r){if(!(o.IsObject(r)&&o.IsEqual(o.Symbols(r).length,0)))throw new Error("Cannot create diffs for objects with symbols keys")}function*Id(r,e,t){if(!o.IsObject(t)||o.IsArray(t))return yield Nt(r,t);km(e),km(t);let n=o.Keys(e),i=o.Keys(t);for(let s of i)o.HasPropertyKey(e,s)||o.IsUnsafePropertyKey(s)||(yield jm(`${r}/${s}`,t[s]));for(let s of n)o.HasPropertyKey(t,s)&&(o.IsUnsafePropertyKey(s)||Ut(e,t)||(yield*Ar(Bt(`${r}/${s}`,e[s],t[s]))));for(let s of n)o.HasPropertyKey(t,s)||o.IsUnsafePropertyKey(s)||(yield Dm(`${r}/${s}`))}function*ld(r,e,t){if(!o.IsArray(t))return yield Nt(r,t);for(let n=0;n<Math.min(e.length,t.length);n++)yield*Ar(Bt(`${r}/${n}`,e[n],t[n]));for(let n=0;n<t.length;n++)n<e.length||(yield jm(`${r}/${n}`,t[n]));for(let n=e.length-1;n>=0;n--)n<t.length||(yield Dm(`${r}/${n}`))}function*yd(r,e,t){let n=globalThis.Object.getPrototypeOf(e).constructor.name,i=globalThis.Object.getPrototypeOf(t).constructor.name;if(X.IsTypeArray(t)&&o.IsEqual(e.length,t.length)&&o.IsEqual(n,i))for(let m=0;m<Math.min(e.length,t.length);m++)yield*Ar(Bt(`${r}/${m}`,e[m],t[m]));else return yield Nt(r,t)}function*xd(r,e,t){e!==t&&(yield Nt(r,t))}function*Bt(r,e,t){return X.IsTypeArray(e)?yield*Ar(yd(r,e,t)):o.IsArray(e)?yield*Ar(ld(r,e,t)):o.IsObject(e)?yield*Ar(Id(r,e,t)):yield*Ar(xd(r,e,t))}function Lm(r,e){return[...Bt("",r,e)]}var Ed=me({type:Ue("insert"),path:wr(),value:Kt()}),hd=Object({type:Ue("update"),path:wr(),value:Kt()}),gd=me({type:Ue("delete"),path:wr()}),jO=zr([Ed,hd,gd]);function Sd(r){return r.length>0&&r[0].path===""&&r[0].type==="update"}function Cd(r){return r.length===0}function Km(r,e){if(Sd(e))return A(e[0].value);if(Cd(e))return A(r);let t=A(r);for(let n of e)switch(n.type){case"insert":{lr.Set(t,n.path,n.value);break}case"update":{lr.Set(t,n.path,n.value);break}case"delete":{lr.Delete(t,n.path);break}}return t}var Cr=class extends Error{constructor(e,t,n,i){super(i),this.context=e,this.type=t,this.value=n}};function Ad(r){let[e,t]=[new Set,[]];for(let n of r){let i=qt(n);e.has(i)||(e.add(i),t.push(n))}return t}function wm(r,e,t){if(l(r,e,t))return t;let n=o.IsArray(t)?t:q(r,e),i=qr(e)&&n.length<e.minItems?[...n,...Array.from({length:e.minItems-n.length},()=>q(r,e))]:n,m=(ae(e)&&i.length>e.maxItems?i.slice(0,e.maxItems):i).map(a=>T(r,e.items,a));if(!Pr(e)||Pr(e)&&!o.IsEqual(e.uniqueItems,!0))return m;let f=Ad(m);if(!l(r,e,f))throw new Cr(r,e,t,"Failed to repair Array due to uniqueItems constraint");return f}function Hm(r,e,t){return T(r,G(e),t)}function zm(r,e,t){let n=cr(r,e),i=G(n);return T(r,i,t)}function Vm(r,e,t){if(l(r,e,t))return t;if(!o.IsObjectNotArray(t))return q(r,e);let n=new Set(o.IsUndefined(e.required)?[]:e.required),i={};for(let[m,f]of o.Entries(e.properties))!n.has(m)&&o.IsUndefined(t[m])||(i[m]=m in t?T(r,f,t[m]):q(r,f));let s=o.Keys(e.properties);if(ir(e)&&o.IsObject(e.additionalProperties))for(let m of o.Keys(t))s.includes(m)||(i[m]=T(r,e.additionalProperties,t[m]));return i}function Wm(r,e,t){if(l(r,e,t))return t;if(o.IsNull(t)||!o.IsObject(t)||o.IsArray(t))return q(r,e);let n=new RegExp(fr(e)),i=Q(e),s=new Set,m={};for(let[f,a]of o.Entries(t))n.test(f)&&(m[f]=T(r,i,a),s.add(f));if(ir(e))for(let f of o.Keys(t))s.has(f)||(m[f]=T(r,e.additionalProperties,t[f]));return m}function Jm(r,e,t){return o.HasPropertyKey(r,e.$ref)?T(r,r[e.$ref],t):(()=>{throw new Cr(r,e,t,"Unable to de-reference target type")})()}function Ym(r,e,t){let n=Ne(e.pattern);return T(r,n,t)}function Zm(r,e,t){return l(r,e,t)?t:o.IsArray(t)?e.items.map((n,i)=>T(r,n,t[i])):q(r,e)}function Xm(r,e,t){return D(e)?o.HasPropertyKey(r,e.$ref)?Xm(r,r[e.$ref],t):(()=>{throw new Error("Unable to Deref target")})():e}function $d(r,e,t){if(!(M(e)&&o.IsObject(t)))return 0;let n=o.Keys(t);return o.Entries(e.properties).reduce((s,[m,f])=>{let a=Kr(f)&&o.IsEqual(f.const,t[m])?100:0,u=l(r,f,t[m])?10:0,p=n.includes(m)?1:0;return s+(a+u+p)},0)}function Qm(r,e,t){let n=e.anyOf.map(m=>Xm(r,m,t)),[i,s]=[n[0],0];for(let m of n){let f=$d(r,m,t);f>s&&(i=m,s=f)}return i}function Rd(r,e,t){let n=zr(so(e.anyOf)),i=Qm(r,n,t);return T(r,i,t)}function vm(r,e,t){return l(r,e,t)?A(t):J(e)?q(r,e):Rd(r,e,t)}function rf(r,e,t){if(l(r,e,t))return t;let n=yr(r,e,t);return l(r,e,n)?n:q(r,e)}function Pd(r,e,t){if(X.IsDate(t)||X.IsMap(t)||X.IsSet(t)||X.IsTypeArray(t)||o.IsConstructor(t)||o.IsFunction(t))throw new Cr(r,e,t,"Value is not repairable")}function bd(r,e,t){if(Pe(e)||be(e)||Fe(e))throw new Cr(r,e,t,"Type is not repairable")}function Fd(r,e,t){return o.IsUndefined(t)&&!Vr(e)?q(r,e):t}function Od(r,e,t){return vn(e)?l(r,e,t)?t:q(r,e):t}function T(r,e,t){Pd(r,e,t),bd(r,e,t);let n=Fd(r,e,t),i=j(e)?wm(r,e,n):Lr(e)?Hm(r,e,n):L(e)?zm(r,e,n):M(e)?Vm(r,e,n):H(e)?Wm(r,e,n):D(e)?Jm(r,e,n):Wr(e)?Ym(r,e,n):w(e)?Zm(r,e,n):K(e)?vm(r,e,n):rf(r,e,n);return Od(r,e,i)}function ef(...r){let[e,t,n]=S.Match(r,{3:(s,m,f)=>[s,m,f],2:(s,m)=>[{},s,m]}),i=T(e,t,n);return Tt(e,t,i),i}var kt={};ie(kt,{Assert:()=>Tt,Check:()=>l,Clean:()=>pr,Clone:()=>A,Convert:()=>yr,Create:()=>q,Decode:()=>dm,Default:()=>Fr,Diff:()=>Lm,Encode:()=>pm,Equal:()=>Ut,Errors:()=>dr,HasCodec:()=>Im,Hash:()=>qt,Parse:()=>Bm,Patch:()=>Km,Pointer:()=>lr,Repair:()=>ef});var jM=kt;export{lr as a,l as b,dr as c,Sr as d,Tt as e,A as f,ne as g,pr as h,Re as i,yr as j,Fr as k,oe as l,Hn as m,rd as n,dm as o,zn as p,nd as q,pm as r,Im as s,mr as t,q as u,Ut as v,qt as w,Gt as x,cd as y,Bm as z,Lm as A,Ed as B,hd as C,gd as D,jO as E,Km as F,Qm as G,ef as H,kt as I,jM as J};
@@ -1 +1 @@
1
- import{$ as M,$a as vr,A as T,Aa as ir,Ab as se,B as b,Ba as lr,C as E,Ca as cr,D as U,Da as dr,E as N,F as O,Fa as ur,G as P,Ga as yr,I as g,Ia as Rr,J as B,Ja as Cr,K as S,Ka as Tr,L,La as br,M as h,Ma as Er,N as A,Na as Ur,O as D,Oa as Nr,P as V,Pa as Or,Q as j,Qa as Pr,Ra as gr,Sa as Br,Ta as Sr,U as k,Ua as Lr,V as v,Va as hr,W as w,Wa as Ar,X as K,Xa as Dr,Y as z,Ya as Vr,Z as F,Za as jr,_ as G,_a as kr,aa as q,ab as wr,ba as W,bb as Kr,ca as H,cb as zr,da as J,db as Fr,ea as Q,eb as Gr,fa as X,fb as Mr,g as e,ga as Y,gb as qr,h as o,ha as Z,hb as Wr,i as t,ia as _,ib as Hr,j as p,ja as $,jb as Jr,ka as rr,kb as Qr,l as m,la as er,lb as Xr,m as f,ma as or,mb as Yr,n as x,nb as Zr,o as n,ob as _r,p as s,pb as $r,q as I,qb as re,r as a,ra as tr,rb as ee,s as i,sa as pr,sb as oe,t as l,ta as mr,tb as te,u as c,ua as fr,ub as pe,v as d,va as xr,vb as me,w as u,wa as nr,wb as fe,x as y,xa as sr,xb as xe,y as R,ya as Ir,yb as ne,z as C,za as ar}from"./chunk-FFPCEPCR.js";import{e as Ie}from"./chunk-BZGM3F3K.js";var r={};Ie(r,{Any:()=>l,Array:()=>t,BigInt:()=>Q,Boolean:()=>Y,Call:()=>kr,Capitalize:()=>wr,Codec:()=>w,Conditional:()=>Gr,Constructor:()=>m,ConstructorParameters:()=>Mr,Cyclic:()=>U,Decode:()=>K,DecodeBuilder:()=>v,Dependent:()=>S,Encode:()=>z,EncodeBuilder:()=>k,Enum:()=>A,Evaluate:()=>xe,Exclude:()=>qr,Extends:()=>jr,ExtendsResult:()=>Dr,Extract:()=>Wr,Function:()=>x,Generic:()=>a,Identifier:()=>_,Immutable:()=>G,Index:()=>Hr,Infer:()=>g,InstanceType:()=>Jr,Instantiate:()=>fe,Integer:()=>rr,Interface:()=>Vr,Intersect:()=>V,IsAny:()=>c,IsArray:()=>p,IsBigInt:()=>X,IsBoolean:()=>Z,IsCall:()=>vr,IsCodec:()=>F,IsConstructor:()=>f,IsCyclic:()=>N,IsDependent:()=>L,IsEnum:()=>D,IsEnumValue:()=>h,IsFunction:()=>n,IsGeneric:()=>i,IsIdentifier:()=>$,IsImmutable:()=>M,IsInfer:()=>B,IsInteger:()=>er,IsIntersect:()=>j,IsKind:()=>e,IsLiteral:()=>tr,IsNever:()=>u,IsNull:()=>mr,IsNumber:()=>xr,IsObject:()=>T,IsOptional:()=>R,IsParameter:()=>ar,IsReadonly:()=>W,IsRecord:()=>Er,IsRef:()=>I,IsRefine:()=>J,IsRest:()=>Nr,IsSchema:()=>o,IsString:()=>lr,IsSymbol:()=>sr,IsTemplateLiteral:()=>Ar,IsThis:()=>Pr,IsTuple:()=>yr,IsUndefined:()=>Br,IsUnion:()=>dr,IsUnknown:()=>E,IsUnsafe:()=>P,IsVoid:()=>Lr,KeyOf:()=>Qr,Literal:()=>or,Lowercase:()=>Kr,Mapped:()=>Xr,Module:()=>ne,Never:()=>d,NonNullable:()=>Yr,Null:()=>pr,Number:()=>fr,Object:()=>C,Omit:()=>Zr,Optional:()=>y,Parameter:()=>Ir,Parameters:()=>_r,Partial:()=>$r,Pick:()=>re,Readonly:()=>q,ReadonlyObject:()=>ee,ReadonlyType:()=>oe,Record:()=>Rr,RecordKey:()=>Tr,RecordPattern:()=>Cr,RecordValue:()=>br,Ref:()=>s,Refine:()=>H,Required:()=>te,Rest:()=>Ur,ReturnType:()=>pe,Script:()=>se,String:()=>ir,Symbol:()=>nr,TemplateLiteral:()=>hr,This:()=>Or,Tuple:()=>ur,Uncapitalize:()=>zr,Undefined:()=>gr,Union:()=>cr,Unknown:()=>b,Unsafe:()=>O,Uppercase:()=>Fr,Void:()=>Sr,With:()=>me});export{r as a};
1
+ import{$ as M,$a as vr,A as T,Aa as ir,Ab as se,B as b,Ba as lr,C as E,Ca as cr,D as U,Da as dr,E as N,F as O,Fa as ur,G as P,Ga as yr,I as g,Ia as Rr,J as B,Ja as Cr,K as S,Ka as Tr,L,La as br,M as h,Ma as Er,N as A,Na as Ur,O as D,Oa as Nr,P as V,Pa as Or,Q as j,Qa as Pr,Ra as gr,Sa as Br,Ta as Sr,U as k,Ua as Lr,V as v,Va as hr,W as w,Wa as Ar,X as K,Xa as Dr,Y as z,Ya as Vr,Z as F,Za as jr,_ as G,_a as kr,aa as q,ab as wr,ba as W,bb as Kr,ca as H,cb as zr,da as J,db as Fr,ea as Q,eb as Gr,fa as X,fb as Mr,g as e,ga as Y,gb as qr,h as o,ha as Z,hb as Wr,i as t,ia as _,ib as Hr,j as p,ja as $,jb as Jr,ka as rr,kb as Qr,l as m,la as er,lb as Xr,m as f,ma as or,mb as Yr,n as x,nb as Zr,o as n,ob as _r,p as s,pb as $r,q as I,qb as re,r as a,ra as tr,rb as ee,s as i,sa as pr,sb as oe,t as l,ta as mr,tb as te,u as c,ua as fr,ub as pe,v as d,va as xr,vb as me,w as u,wa as nr,wb as fe,x as y,xa as sr,xb as xe,y as R,ya as Ir,yb as ne,z as C,za as ar}from"./chunk-WARJYBQ7.js";import{e as Ie}from"./chunk-BZGM3F3K.js";var r={};Ie(r,{Any:()=>l,Array:()=>t,BigInt:()=>Q,Boolean:()=>Y,Call:()=>kr,Capitalize:()=>wr,Codec:()=>w,Conditional:()=>Gr,Constructor:()=>m,ConstructorParameters:()=>Mr,Cyclic:()=>U,Decode:()=>K,DecodeBuilder:()=>v,Dependent:()=>S,Encode:()=>z,EncodeBuilder:()=>k,Enum:()=>A,Evaluate:()=>xe,Exclude:()=>qr,Extends:()=>jr,ExtendsResult:()=>Dr,Extract:()=>Wr,Function:()=>x,Generic:()=>a,Identifier:()=>_,Immutable:()=>G,Index:()=>Hr,Infer:()=>g,InstanceType:()=>Jr,Instantiate:()=>fe,Integer:()=>rr,Interface:()=>Vr,Intersect:()=>V,IsAny:()=>c,IsArray:()=>p,IsBigInt:()=>X,IsBoolean:()=>Z,IsCall:()=>vr,IsCodec:()=>F,IsConstructor:()=>f,IsCyclic:()=>N,IsDependent:()=>L,IsEnum:()=>D,IsEnumValue:()=>h,IsFunction:()=>n,IsGeneric:()=>i,IsIdentifier:()=>$,IsImmutable:()=>M,IsInfer:()=>B,IsInteger:()=>er,IsIntersect:()=>j,IsKind:()=>e,IsLiteral:()=>tr,IsNever:()=>u,IsNull:()=>mr,IsNumber:()=>xr,IsObject:()=>T,IsOptional:()=>R,IsParameter:()=>ar,IsReadonly:()=>W,IsRecord:()=>Er,IsRef:()=>I,IsRefine:()=>J,IsRest:()=>Nr,IsSchema:()=>o,IsString:()=>lr,IsSymbol:()=>sr,IsTemplateLiteral:()=>Ar,IsThis:()=>Pr,IsTuple:()=>yr,IsUndefined:()=>Br,IsUnion:()=>dr,IsUnknown:()=>E,IsUnsafe:()=>P,IsVoid:()=>Lr,KeyOf:()=>Qr,Literal:()=>or,Lowercase:()=>Kr,Mapped:()=>Xr,Module:()=>ne,Never:()=>d,NonNullable:()=>Yr,Null:()=>pr,Number:()=>fr,Object:()=>C,Omit:()=>Zr,Optional:()=>y,Parameter:()=>Ir,Parameters:()=>_r,Partial:()=>$r,Pick:()=>re,Readonly:()=>q,ReadonlyObject:()=>ee,ReadonlyType:()=>oe,Record:()=>Rr,RecordKey:()=>Tr,RecordPattern:()=>Cr,RecordValue:()=>br,Ref:()=>s,Refine:()=>H,Required:()=>te,Rest:()=>Ur,ReturnType:()=>pe,Script:()=>se,String:()=>ir,Symbol:()=>nr,TemplateLiteral:()=>hr,This:()=>Or,Tuple:()=>ur,Uncapitalize:()=>zr,Undefined:()=>gr,Union:()=>cr,Unknown:()=>b,Unsafe:()=>O,Uppercase:()=>Fr,Void:()=>Sr,With:()=>me});export{r as a};
@@ -0,0 +1 @@
1
+ import{$ as rt,$a as pt,Aa as mt,G as it,H as nt,Qb as _t,Rb as ut,Sb as ft,T as at,Ub as ht,V as ot,Vb as yt,_b as L,aa as st,ab as ee,b as We,ba as lt,bb as te,c as Ve,ca as dt,e as U,f as ke,h as I,j as Pe,k as Le,r as tt,s as me,sa as gt,ya as ct}from"./chunk-F7CTV67V.js";import{a as $e,b as et,c as $}from"./chunk-O2XN7DIT.js";import"./chunk-CI2BDMX2.js";import{a as qe,h as je,j as Xe,k as Ye}from"./chunk-M4EXFQJE.js";import{b as Fe,e as Ne,j as Re,k as Ue,l as Ge}from"./chunk-UBRYY245.js";import{a as Y,b as J,c as Je,d as Q}from"./chunk-A7RX2LBX.js";import{a as Qe}from"./chunk-ON6WKWFV.js";import"./chunk-Z2OUIJPL.js";import"./chunk-FX2SMI5S.js";import"./chunk-I3RHGD62.js";import{b as K,c as He,d as Ze,f as ze,i as q,j as Ke,n as j,o as X}from"./chunk-EX2EX65O.js";import{$a as R,Fa as Me,Ja as ve,La as be,Na as Te,Oa as N,Wa as De,Ya as Ee,bb as G,gb as H,jb as Z,kb as xe,nb as Oe,ob as Ie,pb as Ae,qb as Be,rb as z}from"./chunk-GJFI75CP.js";import"./chunk-LEEF5WZZ.js";import"./chunk-7FANVIZX.js";import"./chunk-ZYGXQZX6.js";import"./chunk-RYULE37H.js";import{Bc as we,Cc as F,Db as V,Hb as p,Jb as w,Ka as Se,Oa as o,Tb as M,Wb as Ce,X as W,Yb as l,Zb as C,_a as P,_b as k,ba as c,bc as _,ca as m,cc as u,da as x,dc as f,ea as ue,ia as fe,la as A,mb as O,na as he,nb as b,ob as T,qb as D,ra as ye,rb as y,sb as S,tb as h,ub as n,vb as i,wb as E,xc as B}from"./chunk-3PBISOLT.js";import"./chunk-MWETYHR7.js";import"./chunk-WARJYBQ7.js";import"./chunk-BZGM3F3K.js";var Et=(d,s)=>s[0];function Wt(d,s){if(d&1&&(n(0,"mat-option",8),x(),n(1,"svg",6),E(2,"line",7),i()()),d&2){let a=s.$implicit;h("value",a),o(2),O("stroke-width",a)}}function Vt(d,s){if(d&1&&(n(0,"mat-option",8),x(),n(1,"svg",6),E(2,"line",9),i()()),d&2){let a=s.$implicit;h("value",a[0]),o(2),O("stroke-dasharray",a[1])}}var ie=class d{color=F("#ff0000");dash=F("none");weight=F(1);_color=B(()=>this.color());_dash=B(()=>this.dash());_weight=B(()=>this.weight());selectionChange=we();app=W(L);line={dashArrays:this.app.lineDashMap,weights:[1,2,3,4,5]};constructor(){}ngOnInit(){}onSelectChange(){let s=this.app.formatLineDashArray(this._dash());this.selectionChange.emit({lineStyle:{fill:{color:this._color()},stroke:{color:this._color(),width:this._weight(),lineDash:s}},config:{color:this._color(),weight:this._weight(),dash:this._dash()}})}static \u0275fac=function(a){return new(a||d)};static \u0275cmp=P({type:d,selectors:[["linestyle-select"]],inputs:{color:[1,"color"],dash:[1,"dash"],weight:[1,"weight"]},outputs:{selectionChange:"selectionChange"},decls:25,vars:5,consts:[[2,"display","flex"],[2,"width","100px"],["mat-input","","matNativeControl","","type","color",3,"ngModelChange","change","ngModel"],[2,"width","110px"],[3,"ngModelChange","selectionChange","ngModel"],[2,"display","flex","align-items","center","gap","8px"],["width","48","height","10",2,"vertical-align","middle","margin-right","6px"],["x1","0","y1","5","x2","48","y2","5","stroke","currentColor","stroke-array","none"],[3,"value"],["x1","0","y1","5","x2","48","y2","5","stroke","currentColor","stroke-width","2"]],template:function(a,e){a&1&&(n(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),l(3,"Color"),i(),n(4,"input",2),f("ngModelChange",function(r){return u(e._color,r)||(e._color=r),r}),p("change",function(){return e.onSelectChange()}),i()(),n(5,"mat-form-field",3)(6,"mat-label"),l(7,"Weight"),i(),n(8,"mat-select",4),f("ngModelChange",function(r){return u(e._weight,r)||(e._weight=r),r}),p("selectionChange",function(){return e.onSelectChange()}),n(9,"mat-select-trigger")(10,"div",5),x(),n(11,"svg",6),E(12,"line",7),i()()(),y(13,Wt,3,2,"mat-option",8,D),i()(),ue(),n(15,"mat-form-field",3)(16,"mat-label"),l(17,"Style"),i(),n(18,"mat-select",4),f("ngModelChange",function(r){return u(e._dash,r)||(e._dash=r),r}),p("selectionChange",function(){return e.onSelectChange()}),n(19,"mat-select-trigger")(20,"div",5),x(),n(21,"svg",6),E(22,"line",9),i()()(),y(23,Vt,3,2,"mat-option",8,Et),i()()()),a&2&&(o(4),_("ngModel",e._color),o(4),_("ngModel",e._weight),o(4),O("stroke-width",e._weight()),o(),S(e.line.weights),o(5),_("ngModel",e._dash),o(4),O("stroke-dasharray",e.line.dashArrays.get(e._dash())),o(),S(e.line.dashArrays))},dependencies:[z,G,H,Z,N,R,$,X,j,q,K,Q,J,Je,Y],encapsulation:2})};var ne="auto";var Pt=(d,s)=>s[0];function Lt(d,s){if(d&1){let a=V();n(0,"div",4)(1,"mat-radio-button",5,0),p("change",function(){c(a);let g=M(2),r=w().$implicit,t=w();return r[1].current=g.value,m(t.save(!0))}),l(3),i()()}if(d&2){let a=s.$implicit,e=w().$implicit,g=w();o(),h("name",e[0])("value",a)("checked",a===e[1].current),o(2),k(" ",g.pathLabel(a)," ")}}function xt(d,s){if(d&1&&(n(0,"div",2)(1,"div",3)(2,"div"),l(3),i()(),n(4,"div"),y(5,Lt,4,4,"div",4,D),i()()),d&2){let a=s.$implicit;o(3),C(a[1].name),o(2),S(a[1].available)}}var ae=class d{title="";chosen=new fe;pathChoices={tws:{name:"True Wind Speed",choices:["environment.wind.speedTrue","environment.wind.speedOverGround"],available:[],current:""},twd:{name:"True Wind Direction",choices:["environment.wind.directionTrue","environment.wind.directionMagnetic","environment.wind.angleTrueGround","environment.wind.angleTrueWater"],available:[],current:""},heading:{name:"Heading / COG",choices:[ne,"navigation.courseOverGroundTrue","navigation.courseOverGroundMagnetic","navigation.headingTrue","navigation.headingMagnetic"],available:[],current:""}};pathChoicesArray=Object.entries(this.pathChoices);availPaths;app=W(L);constructor(){}pathLabel(s){return s===ne?"Automatic":s.split(".").slice(-1)[0]}ngOnInit(){this.initEntries()}initEntries(){this.availPaths=new Map(Object.entries(this.app.data.vessels.prefAvailablePaths)),this.pathChoices.tws.current=this.app.config.units.preferredPaths.tws,this.pathChoices.twd.current=this.app.config.units.preferredPaths.twd,this.pathChoices.heading.current=this.app.config.units.preferredPaths.heading,Object.entries(this.pathChoices).forEach(a=>{let e=a[1];e.choices.forEach(g=>{(g===ne||this.availPaths.has(g))&&e.available.push(g)}),e.available.length===0&&e.available.push(e.choices[0])})}save(s){let a={};Object.entries(this.pathChoices).forEach(e=>{a[e[0]]=e[1].current}),this.chosen.emit({save:s,value:a})}static \u0275fac=function(a){return new(a||d)};static \u0275cmp=P({type:d,selectors:[["signalk-preferred-paths"]],inputs:{title:"title"},outputs:{chosen:"chosen"},decls:6,vars:1,consts:[["pathopt",""],[2,"font-size","10pt"],[1,"sk-details"],[1,"title"],[2,"margin","5px 0 5px 0"],[3,"change","name","value","checked"]],template:function(a,e){a&1&&(n(0,"fieldset")(1,"legend",1),l(2),i(),n(3,"div"),y(4,xt,7,1,"div",2,Pt),i()()),a&2&&(o(2),C(e.title),o(2),S(e.pathChoicesArray))},dependencies:[te,ee],styles:[".sk-details[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:10pt;max-height:100%;width:60vw;max-width:300px}.sk-details[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{background:left 1px -webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.18)),color-stop(.65,transparent)) #b2bbc2e3;padding:3px 5px 0;margin-top:3px;font-weight:500;line-height:23px;color:#000}.sk-details[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{padding:0;line-height:23px;margin:0;flex:1 1 auto;overflow:auto}.sk-details[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{display:flex;flex-direction:row;line-height:26px;border-width:0 0 0 0;border-style:solid;border-color:gray;padding-left:5px}.sk-details[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{border-width:0 0 1px 0}.sk-details[_ngcontent-%COMP%] .sectionname[_ngcontent-%COMP%]{text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;font-weight:500}.sk-details[_ngcontent-%COMP%] .pathvalue[_ngcontent-%COMP%]{display:flex;flex-wrap:nowrap;width:100%;background-color:#fff}.sk-details[_ngcontent-%COMP%] .pathvalue[_ngcontent-%COMP%] .path[_ngcontent-%COMP%]{text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-style:italic}.sk-details[_ngcontent-%COMP%] .pathvalue[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"],changeDetection:0})};var v=(d,s)=>s[0],Ot=(d,s)=>s.id;function It(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function At(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function Bt(d,s){if(d&1&&(n(0,"mat-option",135),l(1),i()),d&2){let a=s.$implicit;h("value",a.url)("matTooltip",a.description),o(),k(" ",a.name," ")}}function Ft(d,s){if(d&1){let a=V();n(0,"div",47)(1,"div",38)(2,"mat-form-field",39)(3,"mat-label"),l(4,"Select Instruments App"),i(),n(5,"mat-select",65),f("ngModelChange",function(g){c(a);let r=w();return u(r.facade.settings.display.plugins.instruments,g)||(r.facade.settings.display.plugins.instruments=g),m(g)}),p("selectionChange",function(){c(a);let g=w();return m(g.onInstrumentApp())}),y(6,Bt,2,3,"mat-option",135,D),i()()(),n(8,"div",38)(9,"mat-form-field",53)(10,"mat-label"),l(11,"Parameters"),i(),n(12,"input",136,21),f("ngModelChange",function(g){c(a);let r=w();return u(r.facade.settings.display.plugins.parameters,g)||(r.facade.settings.display.plugins.parameters=g),m(g)}),p("change",function(){c(a);let g=w();return m(g.persistModel("pluginParameters"))}),i()()(),n(14,"div",38)(15,"mat-checkbox",137),f("ngModelChange",function(g){c(a);let r=w();return u(r.facade.settings.display.plugins.startOnOpen,g)||(r.facade.settings.display.plugins.startOnOpen=g),m(g)}),p("change",function(){c(a);let g=w();return m(g.persistModel("pluginStartOnOpen"))}),l(16," Halt App on hide "),i()(),n(17,"div",38)(18,"button",138),p("click",function(){c(a);let g=w();return m(g.toggleFavourites())}),n(19,"mat-icon"),l(20,"star"),i(),l(21," FAVOURITES "),i()()()}if(d&2){let a=w();o(5),_("ngModel",a.facade.settings.display.plugins.instruments),o(),S(a.facade.applicationList),o(6),h("disabled",a.facade.settings.display.plugins.instruments===null),_("ngModel",a.facade.settings.display.plugins.parameters),o(3),_("ngModel",a.facade.settings.display.plugins.startOnOpen)}}function Nt(d,s){if(d&1&&(n(0,"mat-list-option",140),l(1),i()),d&2){let a=s.$implicit,e=w(2);h("disabled",a.url==e.facade.settings.display.plugins.instruments)("selected",a.url!==null&&e.facade.settings.display.plugins.favourites.includes(a.url))("value",a.url),o(),k(" ",a.name," ")}}function Rt(d,s){if(d&1){let a=V();n(0,"div",37)(1,"div",38)(2,"div",117),E(3,"br"),l(4,"Select Favourite Apps: "),i(),E(5,"mat-divider"),n(6,"mat-selection-list",139,22),p("selectionChange",function(g){c(a);let r=M(7),t=w();return m(t.onFavSelected(g,r))}),y(8,Nt,2,4,"mat-list-option",140,D),i()()()}if(d&2){let a=w();o(8),S(a.facade.favouritesList)}}function Ut(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function Gt(d,s){d&1&&(n(0,"mat-error"),l(1,"Please enter a number >= 0"),i())}function Ht(d,s){d&1&&(n(0,"mat-error"),l(1,"Please enter a number >= 1"),i())}function Zt(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function zt(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function Kt(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function qt(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function jt(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function Xt(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function Yt(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function Jt(d,s){if(d&1){let a=V();n(0,"div",38)(1,"mat-form-field",39)(2,"mat-label"),l(3,"Position display format"),i(),n(4,"mat-select",141),f("ngModelChange",function(g){c(a);let r=w();return u(r.facade.settings.units.positionFormat,g)||(r.facade.settings.units.positionFormat=g),m(g)}),p("selectionChange",function(){c(a);let g=w();return m(g.persistModel())}),y(5,Yt,2,2,"mat-option",41,D),i()()()}if(d&2){let a=w();o(4),_("ngModel",a.facade.settings.units.positionFormat),o(),S(a.options.preferredValues.coords)}}function Qt(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function $t(d,s){if(d&1){let a=V();n(0,"div",38)(1,"mat-form-field",39)(2,"mat-label"),l(3,"Prefer True / Magnetic values"),i(),n(4,"mat-select",142),f("ngModelChange",function(g){c(a);let r=w();return u(r.facade.settings.units.headingAttribute,g)||(r.facade.settings.units.headingAttribute=g),m(g)}),p("selectionChange",function(){c(a);let g=w();return m(g.persistModel("headingAttribute"))}),y(5,Qt,2,2,"mat-option",41,D),i()()()}if(d&2){let a=w();o(4),_("ngModel",a.facade.settings.units.headingAttribute),o(),S(a.options.preferredValues.heading)}}function ei(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a),o(),C(a)}}function ti(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function ii(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function ni(d,s){if(d&1){let a=V();n(0,"mat-form-field",39)(1,"mat-label"),l(2,"Resume Following After"),i(),n(3,"mat-select",143),f("ngModelChange",function(g){c(a);let r=w();return u(r.facade.settings.map.refollowDelay,g)||(r.facade.settings.map.refollowDelay=g),m(g)}),p("selectionChange",function(){c(a);let g=w();return m(g.persistModel())}),y(4,ii,2,2,"mat-option",41,v),i()()}if(d&2){let a=w();o(3),_("ngModel",a.facade.settings.map.refollowDelay),o(),S(a.options.map.refollowDelay)}}function ai(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function oi(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function ri(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function si(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a),o(),C(a)}}function li(d,s){d&1&&(n(0,"mat-error"),l(1," Please enter a positive number "),i())}function di(d,s){d&1&&(n(0,"mat-error"),l(1," Please enter a positive number "),i())}function gi(d,s){d&1&&(n(0,"mat-error"),l(1," Please enter a positive number "),i())}function ci(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function mi(d,s){d&1&&(n(0,"mat-error"),l(1," Please enter a number > 0 "),i())}function pi(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a),o(),C(a)}}function _i(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function ui(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function fi(d,s){if(d&1&&(n(0,"mat-radio-button",41),E(1,"img",144),l(2),i()),d&2){let a=s.$implicit,e=w();h("value",a[0]),o(),Ce(`transform: scale(${a[0]})`),h("src",e.selfIconPreview,Se),o(),k(" (",a[1],") ")}}function hi(d,s){d&1&&(n(0,"mat-error"),l(1," Please enter a value between -90 and 90 (max 9 decimals) "),i())}function yi(d,s){d&1&&(n(0,"mat-error"),l(1," Please enter a value between -180 and 180 (max 9 decimals) "),i())}function Si(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function Ci(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function wi(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a),o(),C(a)}}function Mi(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a),o(),C(a)}}function vi(d,s){d&1&&(n(0,"mat-error"),l(1," Please enter a number >= 1. "),i())}function bi(d,s){d&1&&(n(0,"mat-hint"),l(1,"Server requires a Track API (v2) provider"),i())}function Ti(d,s){if(d&1&&(n(0,"mat-hint"),l(1),i()),d&2){let a=w();o(),k("Using: ",a.app.serverTrailWanted()?"Server":"This device")}}function Di(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function Ei(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function Wi(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function Vi(d,s){if(d&1){let a=V();n(0,"div",37)(1,"div",145)(2,"mat-slider",146)(3,"input",107),f("ngModelChange",function(g){c(a);let r=w();return u(r.facade.settings.vessels.aisTrackLength,g)||(r.facade.settings.vessels.aisTrackLength=g),m(g)}),p("valueChange",function(){c(a);let g=w();return m(g.deferPersist())}),i()(),l(4),i()()}if(d&2){let a=w();o(2),h("disabled",!a.app.featureFlags().tracksApi),o(),_("ngModel",a.facade.settings.vessels.aisTrackLength),o(),k(" Picked vessel track length (",a.facade.settings.vessels.aisTrackLength," hrs) ")}}function ki(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function Pi(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function Li(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function xi(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a),o(),C(a)}}function Oi(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function Ii(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a),o(),C(a)}}function Ai(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a),o(),C(a)}}function Bi(d,s){if(d&1){let a=V();n(0,"button",147),p("click",function(){c(a),w();let g=M(576);return m(g.value="")}),n(1,"mat-icon"),l(2,"close"),i()()}}function Fi(d,s){if(d&1&&(n(0,"mat-list-option",119),l(1),i()),d&2){let a=s.$implicit,e=w();h("selected",e.facade.settings.resources.paths.includes(a))("value",a),o(),k(" ",a," ")}}function Ni(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a.id),o(),C(a.name)}}function Ri(d,s){if(d&1){let a=V();n(0,"mat-tab",120)(1,"div",32)(2,"div",33)(3,"div",132)(4,"div",35),l(5,"RADAR SETTINGS"),i(),n(6,"mat-card",36)(7,"div",47)(8,"div",38)(9,"mat-form-field",148)(10,"mat-label"),l(11,"Radar Devices"),i(),n(12,"mat-select",149,23),f("ngModelChange",function(g){c(a);let r=w();return u(r.facade.settings.radars.deviceId,g)||(r.facade.settings.radars.deviceId=g),m(g)}),p("selectionChange",function(){c(a);let g=w();return m(g.doRadar())}),y(14,Ni,2,2,"mat-option",41,Ot),i()()(),n(16,"div",38)(17,"button",150),p("click",function(){c(a);let g=w();return m(g.refreshRadars())}),n(18,"mat-icon"),l(19," refresh"),i(),l(20," REFRESH "),i()()(),n(21,"div",47)(22,"div",38)(23,"mat-checkbox",49),f("ngModelChange",function(g){c(a);let r=w();return u(r.facade.settings.radars.rings,g)||(r.facade.settings.radars.rings=g),m(g)}),p("change",function(){c(a);let g=w();return m(g.persistModel())}),l(24," Draw range circles at the radar range while it transmits "),i()()()()()()()()}if(d&2){let a=w();o(12),h("disabled",!a.radarList().length||a.app.uiCtrl().radarLayer),_("ngModel",a.facade.settings.radars.deviceId),o(2),S(a.radarList()),o(9),_("ngModel",a.facade.settings.radars.rings)}}function Ui(d,s){if(d&1&&(n(0,"mat-option",41),l(1),i()),d&2){let a=s.$implicit;h("value",a[0]),o(),C(a[1])}}function Gi(d,s){d&1&&(n(0,"mat-error"),l(1," Value required. "),i())}var wt=class d{show={favourites:A(!1)};options;centerOffsetLimit=Pe;aisStateFilter={moored:!1,anchored:!1};formattedNumberModel={rangeCirclesDistance:1e3};unitsChangedSignal=A(0);radarList=A([]);saveOnClose=!1;arrivalCircleChanged=!1;facade=W(yt);myElement=W(ye);dialogRef=W(Me);wakeLock=W(We);s57=W(it);app=W(L);radarApi=W(ot);plotterExt=W(dt);fabOptions(){return at(this.options.buttons.fab,this.plotterExt.actionButtonChoices(),this.facade.settings.display.fab)}get selfIconPreview(){return me[this.facade.settings.vessels.iconType]?.path??me[tt].path}course=W(mt);constructor(){this.options=new ht,he(()=>{this.unitsChangedSignal(),this.formatNumberModel()})}ngOnInit(){this.facade.refresh(),this.facade.settings.selections.aisState.forEach(s=>{this.isAisState(s)&&(this.aisStateFilter[s]=!0)}),this.refreshRadars()}refreshRadars(){this.radarApi.listRadars().then(s=>{this.radarList.set(s)}).catch(()=>{this.radarList.set([])})}formatNumberModel(){this.formattedNumberModel={rangeCirclesDistance:this.facade.settings.units.distance==="kilometer"?Math.floor(this.facade.settings.vessels.rangeCirclesDistance/1e3):Math.floor(I.transform(this.facade.settings.vessels.rangeCirclesDistance,"m","naut-mile")??0)}}raiseChange(){this.app.alignUnitPrefs(this.app.serverConfig.unitPreferences()),this.unitsChangedSignal.update(s=>s+1)}handleClose(){this.saveOnClose&&this.persistModel(),this.arrivalCircleChanged&&this.applyArrivalCircle(),this.dialogRef.close()}doWakelock(s){this.persistModel(),s?this.wakeLock.disable():this.wakeLock.enable()}doS57(s){this.facade.settings.map.s57Options.depthUnit=this.facade.settings.units.depth,s?this.parseNumber(s):this.persistModel(),this.s57.setOptions(this.facade.settings.map.s57Options)}doRadar(){this.radarApi.init(this.facade.settings.radars.deviceId).then(s=>{s&&this.persistModel()})}onLineStyle(s,a){let e=this.facade.settings.vessels.selfLines[s];e&&(e.color=a.config.color,e.dash=a.config.dash,e.weight=a.config.weight,this.app.selfLines.update(g=>{let r=Object.assign({},g);return r[s]=a.lineStyle,r}),this.persistModel())}toggleFavourites(){this.show.favourites.update(s=>!s)}parseCenterOffset(s){s.reset(typeof s.model=="number"?Le(s.model):0),this.persistModel()}onArrivalCircleChange(s){this.parseNumber(s),this.arrivalCircleChanged=!0}applyArrivalCircle(){let s=this.facade.settings.course.arrivalCircle,a=this.course.courseData();a.position&&s!==null&&s>0&&s!==a.arrivalCircle&&this.course.setArrivalCircle(s)}parseNumber(s,a){if(typeof s.model!="number"){s.reset(this.fallbackToDefault());return}!a&&s.model<0&&s.reset(Math.abs(s.model)),this.persistModel()}parseFormattedNumber(s,a){typeof s.model=="number"&&(!a&&s.model<0&&s.reset(Math.abs(s.model)),this.facade.settings.vessels.rangeCirclesDistance=this.facade.settings.units.distance==="kilometer"?Math.floor(this.formattedNumberModel.rangeCirclesDistance*1e3):Math.floor(I.nauticalMilesToKm(this.formattedNumberModel.rangeCirclesDistance)*1e3),this.persistModel())}fallbackToDefault(){let s=nt();if(typeof this.facade.settings.display.statusBar.referenceSpeed!="number")return s.display.statusBar.referenceSpeed;if(typeof this.facade.settings.display.statusBar.tapFadeSpeed!="number")return s.display.statusBar.tapFadeSpeed;if(typeof this.facade.settings.map.s57Options.shallowDepth!="number")return s.map.s57Options.shallowDepth;if(typeof this.facade.settings.map.s57Options.safetyDepth!="number")return s.map.s57Options.safetyDepth;if(typeof this.facade.settings.map.s57Options.deepDepth!="number")return s.map.s57Options.deepDepth;if(typeof this.facade.fixedPosition[0]!="number"||typeof this.facade.fixedPosition[1]!="number")return 0;if(typeof this.facade.settings.course.arrivalCircle!="number")return s.course.arrivalCircle}get serverTrailAvailable(){return Ve(this.app.trackSource())}trailLengthAllStop=ke+1;get trailLengthStop(){let s=this.facade.settings.vessels.trailDuration;return s===U?this.trailLengthAllStop:s}set trailLengthStop(s){this.facade.settings.vessels.trailDuration=s===this.trailLengthAllStop?U:s}trailLengthStopLabel=s=>s===this.trailLengthAllStop?"All":`${s}`;get trailLengthText(){let s=this.facade.settings.vessels.trailDuration;return s===U?"All":`${s} hrs`}persistModel(s){this.facade.applySettings(),this.facade.emitChangeEvent(s)}get speedUnitSymbol(){return I.getSymbol(this.facade.settings.units.speed)}deferPersist(s){this.saveOnClose=!0,this.facade.emitChangeEvent(s)}onInstrumentApp(){this.persistModel("pluginInstruments"),this.facade.buildFavouritesList()}onPreferredPaths(s){s.save&&(this.facade.settings.units.preferredPaths=s.value,this.persistModel())}onFavSelected(s,a){this.facade.settings.display.plugins.favourites=a.selectedOptions.selected.map(e=>e.value),this.persistModel()}onAisStateFilter(){this.facade.settings.selections.aisState=Object.entries(this.aisStateFilter).filter(([,s])=>s).map(([s])=>s),this.persistModel()}isAisState(s){return Object.hasOwn(this.aisStateFilter,s)}onResPathSelected(s){this.facade.settings.resources.paths=s.selectedOptions.selected.map(a=>a.value),this.facade.settings.resources.paths.forEach(a=>{a in this.facade.settings.selections.resourceSets||(this.facade.settings.selections.resourceSets[a]=[])}),this.persistModel()}clearAuthToken(){this.facade.clearToken()}renderSymbol(s){return I.getSymbol(s)}static \u0275fac=function(a){return new(a||d)};static \u0275cmp=P({type:d,selectors:[["settings-dialog"]],decls:675,vars:145,consts:[["refspeed","ngModel"],["tapfade","ngModel"],["serverprefs",""],["distunits",""],["centerOffsetY","ngModel"],["centerOffsetX","ngModel"],["s57shallowDepth","ngModel"],["s57safetyDepth","ngModel"],["s57deepDepth","ngModel"],["coursearrivalcircle","ngModel"],["courseautoadvance",""],["courseautoadvanceon",""],["vesselfixedlocationmode",""],["fixedlat","ngModel"],["fixedlon","ngModel"],["rangeCirclesDistance","ngModel"],["notesrootfilter",""],["respath",""],["skmaxradius",""],["videourl","ngModel"],["experiments",""],["instparams","ngModel"],["favs",""],["radarlist",""],[2,"background-color","transparent"],[1,"dialog-icon"],[2,"flex","1 1 auto","text-align","center"],[2,"text-align","right"],["mat-icon-button","",3,"click"],["mat-dialog-content",""],["dynamicHeight","false","mat-stretch-tabs","false","mat-align-tabs","start"],["label","Display"],[1,"theme-page","settings"],[1,"theme-panel"],["id","sectDisplay",1,"setting-group"],[1,"setting-group-title"],[1,"setting-card"],[1,"setting-card-row",2,"padding-bottom","10px"],[1,"setting-card-row-item"],[2,"width","100%"],["matTooltip","Dark Mode setting.",3,"ngModelChange","selectionChange","ngModel"],[3,"value"],["label","after","matTooltip","Auto-set using environment.mode value.",3,"ngModelChange","change","ngModel"],["matTooltip","Action button selection.",3,"ngModelChange","selectionChange","ngModel"],["label","after","matTooltip","Disable wake lock.",3,"ngModelChange","change","disabled","ngModel"],["label","after","matTooltip","Un-check to prefer dialogs over the information panel",3,"ngModelChange","change","ngModel"],["label","after","matTooltip","Show the Split view button, which opens a second chart beside or below the main one.",3,"ngModelChange","change","ngModel"],[1,"setting-card-row"],["matTooltip","Do not play sounds","label","after",3,"ngModelChange","change","ngModel"],["label","after",3,"ngModelChange","change","ngModel"],["matTooltip","Period of time out of alarm state before re-triggering.",3,"ngModelChange","selectionChange","ngModel","disabled"],[1,"setting-group"],["label","after","matTooltip","Show the bearing, distance and ETA from the vessel to the cursor in the status bar. Click or tap the chart to hold the readout on that point.",3,"ngModelChange","change","ngModel"],["floatLabel","always",2,"width","100%"],["matInput","","type","number","min","0","matTooltip","Boat speed used to estimate ETA when SOG is unavailable (e.g. at anchor or hove to).",3,"ngModelChange","change","disabled","ngModel"],["matInput","","type","number","min","1","step","0.5","matTooltip","How long the marker left by a click or tap takes to fade. The readout stays held on that point until it does.",3,"ngModelChange","change","disabled","ngModel"],["matTooltip","Glyph used to display wind direction and speed.",3,"ngModelChange","selectionChange","ngModel"],["label","Units"],["id","sectUnits",1,"setting-group"],["label","after","matTooltip","Use the unit preferences configured on the server.",3,"ngModelChange","change","disabled","ngModel"],[3,"ngModelChange","selectionChange","disabled","ngModel"],["title","Preferred Paths",3,"chosen"],["label","Map"],["id","sectMap",1,"setting-group"],["aria-hidden","true",1,"setting-field-group-title"],[3,"ngModelChange","selectionChange","ngModel"],[1,"setting-field-group-title"],[1,"setting-field-group"],["floatLabel","always"],["matInput","","type","number","matTooltip","Where the vessel sits up or down the screen, as a percentage of the distance to the edge. Positive looks ahead (vessel lower); negative looks behind.",3,"ngModelChange","change","min","max","ngModel"],["matInput","","type","number","matTooltip","Where the vessel sits left or right of centre, as a percentage of the distance to the edge. Positive shifts the map right (vessel left).",3,"ngModelChange","change","min","max","ngModel"],["matTooltip","Add close button to popovers","label","after",3,"ngModelChange","change","ngModel"],["matTooltip","Double Click map to zoom","label","after",3,"ngModelChange","change","ngModel"],["matTooltip","Keep tiles visible when zooming past chart maxZoom","label","after",3,"ngModelChange","change","ngModel"],[1,"setting-card-row-item","setting-card-row-stack"],["matTooltip","What panning the chart does while following the vessel.",3,"ngModelChange","selectionChange","ngModel"],["placeholder","Graphicsstyle",3,"ngModelChange","selectionChange","ngModel"],["placeholder","Boundaries",3,"ngModelChange","selectionChange","ngModel"],["placeholder","Color Table",3,"ngModelChange","selectionChange","ngModel"],["placeholder","Colors",3,"ngModelChange","selectionChange","ngModel"],["matInput","","type","number","required","","min","0",3,"ngModelChange","change","ngModel"],["matSuffix",""],["multiple","","placeholder","Layers",3,"ngModelChange","selectionChange","ngModel"],["label","Course"],["id","sectCourse",1,"setting-group"],["matTooltip","Select the trigger for advancing to next point.",3,"ngModelChange","selectionChange","disabled","ngModel"],["matTooltip","Period of time before destination is advanced to next waypoint.",3,"ngModelChange","selectionChange","disabled","ngModel"],["label","Vessels"],["id","sectVessels",1,"setting-group"],["matTooltip","Icon used to draw your own vessel.",3,"ngModelChange","selectionChange","ngModel"],[3,"ngModelChange","change","ngModel"],["label","after","matTooltip","Scale the icon to the vessel's reported beam and length overall while zoomed in. It never shrinks below the icon size selected above. Needs design.beam and design.length.overall from the Signal K server.",3,"ngModelChange","change","ngModel"],["label","after","matTooltip","e.g. Building, Camp, etc.",3,"ngModelChange","change","ngModel"],["matInput","","type","number","required","","pattern","^-?([1-8]?[0-9])(\\.\\d{1,9})?$","min","-90","max","90",3,"ngModelChange","change","ngModel","disabled"],["matInput","","type","number","required","","pattern","^-?(1[0-7]?[0-9]|[1-9]?[0-9])(\\.\\d{1,9})?$","min","-180","max","180",3,"ngModelChange","change","ngModel","disabled"],["matTooltip","Length of heading line.",3,"ngModelChange","selectionChange","ngModel"],[3,"selectionChange","color","dash","weight"],["matTooltip","Length of COG line.",3,"ngModelChange","selectionChange","ngModel"],[3,"ngModelChange","selectionChange","ngModel","disabled"],["label","after",3,"ngModelChange","change","ngModel","disabled"],["matInput","","type","number","required","","min","1",3,"ngModelChange","change","ngModel","disabled"],[2,"width","200px"],["matTooltip","Where the vessel track comes from. Auto uses the server when it can supply one.",3,"ngModelChange","selectionChange","disabled","ngModel"],["value","auto"],["value","server",3,"disabled"],["value","local"],["discrete","","tickInterval","1","min","1",3,"max","displayWith","disabled"],["matSliderThumb","",3,"ngModelChange","valueChange","ngModel"],["label","Resources"],["id","sectNotes",1,"setting-group"],[3,"valueChange","selectionChange","disabled","value"],["matInput","","type","text","placeholder","?radius=%note:radius%","matTooltip","Filter to apply when retrieving notes",3,"ngModelChange","change","ngModel"],["matSuffix","","mat-icon-button",""],["matTooltip","Allow group name editing.","label","after",3,"ngModelChange","change","ngModel"],["matTooltip","Require position information when adding notes to a group.","label","after",3,"ngModelChange","change","ngModel"],["label","after","matTooltip","Open Note details with a single click instead of showing the pop-up options",3,"ngModelChange","change","ngModel"],["id","sectResLayers",1,"setting-group"],[2,"font-style","italic"],["matTooltip","Select resource layers to show.",3,"selectionChange"],[3,"selected","value"],["label","Radar"],["label","Signal K"],["id","sectSKConnection",1,"setting-group"],[2,"font-size","smaller"],["matToolTip","Check to receive other vessel data","label","after",3,"ngModelChange","change","ngModel"],["matToolTip","Check to receive AtoN data","matTooltipPosition","below","label","after",3,"ngModelChange","change","ngModel"],["matTooltip","Check to receive aircraft data","matTooltipPosition","below","label","after",3,"ngModelChange","change","ngModel"],["matToolTip","Check to receive SaR data","matTooltipPosition","below","label","after",3,"ngModelChange","change","ngModel"],["matToolTip","Check to receive Weather / Meteo data","matTooltipPosition","below","label","after",3,"ngModelChange","change","ngModel"],["matToolTip","Only include AIS targets within this distance","matTooltipPosition","below",3,"ngModelChange","selectionChange","ngModel"],["mat-icon-button","","matTooltip","Clear Auth Token",3,"click"],["label","Experiments"],["id","sectExperiments",1,"setting-group"],["matInput","","type","text","required","","placeholder","Video stream URL","matTooltip","Enter URL of video stream",3,"ngModelChange","change","disabled","ngModel"],["matTooltip","Enable ALL experimental Features","label","after",3,"ngModelChange","change","ngModel"],["matTooltipPosition","right",3,"value","matTooltip"],["matInput","","type","text","placeholder","e.g. ?layout=mylayout","matTooltip","Enter parameters to pass to Instrument App",3,"ngModelChange","change","disabled","ngModel"],["matTooltip","Stop instrument app when hidden","label","after",3,"ngModelChange","change","ngModel"],["mat-raised-button","","matTooltip","Favourite Apps","label","after",3,"click"],[3,"selectionChange"],[3,"disabled","selected","value"],["matTooltip","Display position in this format",3,"ngModelChange","selectionChange","ngModel"],["matTooltip","Preferred value type for paths not in Preferred Paths above",3,"ngModelChange","selectionChange","ngModel"],["matTooltip","Resume following the vessel once the chart has been left idle for this long.",3,"ngModelChange","selectionChange","ngModel"],[3,"src"],["matTooltip","How far back the track of a vessel picked with its TRACK button reaches. Needs a Track API (v2) provider.",1,"setting-card-row-item"],["discrete","","tickInterval","1","min","1","max","96",3,"disabled"],["matSuffix","","mat-icon-button","",3,"click"],[2,"width","stretch"],["matToolTip","Select radar device","matTooltipPosition","below",3,"ngModelChange","selectionChange","disabled","ngModel"],["mat-raised-button","",3,"click"]],template:function(a,e){if(a&1){let g=V();n(0,"mat-toolbar",24)(1,"span",25)(2,"mat-icon"),l(3,"settings"),i()(),n(4,"span",26),l(5,"Settings"),i(),n(6,"span",27)(7,"button",28),p("click",function(){return e.handleClose()}),n(8,"mat-icon"),l(9,"close"),i()()()(),n(10,"div",29)(11,"mat-tab-group",30)(12,"mat-tab",31)(13,"div",32)(14,"div",33)(15,"div",34)(16,"div",35),l(17,"DISPLAY"),i(),n(18,"mat-card",36)(19,"mat-card-content")(20,"div",37)(21,"div",38)(22,"mat-form-field",39)(23,"mat-label"),l(24,"Dark Mode setting"),i(),n(25,"mat-select",40),f("ngModelChange",function(t){return c(g),u(e.facade.settings.display.darkMode.source,t)||(e.facade.settings.display.darkMode.source=t),m(t)}),p("selectionChange",function(){return e.persistModel("darkTheme")}),y(26,It,2,2,"mat-option",41,v),i()()(),n(28,"div",38)(29,"mat-checkbox",42),f("ngModelChange",function(t){return c(g),u(e.facade.settings.display.nightMode,t)||(e.facade.settings.display.nightMode=t),m(t)}),p("change",function(){return e.persistModel()}),l(30," Auto-set Night Mode "),i()(),n(31,"div",38)(32,"mat-form-field",39)(33,"mat-label"),l(34,"Action Button"),i(),n(35,"mat-select",43),f("ngModelChange",function(t){return c(g),u(e.facade.settings.display.fab,t)||(e.facade.settings.display.fab=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(36,At,2,2,"mat-option",41,v),i()()(),n(38,"div",38)(39,"mat-checkbox",44),f("ngModelChange",function(t){return c(g),u(e.facade.settings.display.disableWakelock,t)||(e.facade.settings.display.disableWakelock=t),m(t)}),p("change",function(t){return e.doWakelock(t.checked)}),l(40," Allow Device to Sleep "),i()(),n(41,"div",38)(42,"mat-checkbox",45),f("ngModelChange",function(t){return c(g),u(e.facade.settings.display.preferInfoPanel,t)||(e.facade.settings.display.preferInfoPanel=t),m(t)}),p("change",function(){return e.persistModel()}),l(43," Prefer Info-Panel "),i()(),n(44,"div",38)(45,"mat-checkbox",46),f("ngModelChange",function(t){return c(g),u(e.facade.settings.display.splitView,t)||(e.facade.settings.display.splitView=t),m(t)}),p("change",function(){return e.persistModel()}),l(46," Enable split view "),i()()()()(),E(47,"br"),n(48,"mat-card",36)(49,"mat-card-content"),b(50,Ft,22,4,"div",47),b(51,Rt,10,0,"div",37),i()(),E(52,"br"),i(),n(53,"div",34)(54,"div",35),l(55,"SOUND"),i(),n(56,"mat-card",36)(57,"mat-card-content")(58,"div",37)(59,"div",38)(60,"mat-checkbox",48),f("ngModelChange",function(t){return c(g),u(e.facade.settings.display.muteSound,t)||(e.facade.settings.display.muteSound=t),m(t)}),p("change",function(){return e.persistModel()}),l(61," Do not Play Sounds "),i()(),n(62,"div",38)(63,"mat-checkbox",49),f("ngModelChange",function(t){return c(g),u(e.facade.settings.display.depthAlarm.enabled,t)||(e.facade.settings.display.depthAlarm.enabled=t),m(t)}),p("change",function(){return e.persistModel()}),l(64," Show DEPTH Alarms "),i()(),n(65,"div",38)(66,"mat-form-field",39)(67,"mat-label"),l(68,"Alarm Smoothing Time"),i(),n(69,"mat-select",50),f("ngModelChange",function(t){return c(g),u(e.facade.settings.display.depthAlarm.smoothing,t)||(e.facade.settings.display.depthAlarm.smoothing=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(70,Ut,2,2,"mat-option",41,v),i()()()()()()(),n(72,"div",51)(73,"div",35),l(74,"STATUS BAR OPTIONS"),i(),n(75,"mat-card",36)(76,"mat-card-content")(77,"div",37)(78,"div",38)(79,"mat-checkbox",52),f("ngModelChange",function(t){return c(g),u(e.facade.settings.display.statusBar.liveEta,t)||(e.facade.settings.display.statusBar.liveEta=t),m(t)}),p("change",function(){return e.persistModel()}),l(80," Live ETA at cursor "),i()(),n(81,"div",38)(82,"mat-form-field",53)(83,"mat-label"),l(84),i(),n(85,"input",54,0),f("ngModelChange",function(t){return c(g),u(e.facade.settings.display.statusBar.referenceSpeed,t)||(e.facade.settings.display.statusBar.referenceSpeed=t),m(t)}),p("change",function(){c(g);let t=M(86);return m(e.parseNumber(t))}),i(),b(87,Gt,2,0,"mat-error"),i()(),n(88,"div",38)(89,"mat-form-field",53)(90,"mat-label"),l(91,"Tap Fade Speed (s)"),i(),n(92,"input",55,1),f("ngModelChange",function(t){return c(g),u(e.facade.settings.display.statusBar.tapFadeSpeed,t)||(e.facade.settings.display.statusBar.tapFadeSpeed=t),m(t)}),p("change",function(){c(g);let t=M(93);return m(e.parseNumber(t))}),i(),b(94,Ht,2,0,"mat-error"),i()()()()()(),n(95,"div",51)(96,"div",35),l(97,"WEATHER"),i(),n(98,"mat-card",36)(99,"mat-card-content")(100,"div",37)(101,"div",38)(102,"mat-form-field",39)(103,"mat-label"),l(104,"Wind indicator"),i(),n(105,"mat-select",56),f("ngModelChange",function(t){return c(g),u(e.facade.settings.display.windIndicator,t)||(e.facade.settings.display.windIndicator=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(106,Zt,2,2,"mat-option",41,v),i()()()()()()()()()(),n(108,"mat-tab",57)(109,"div",32)(110,"div",33)(111,"div",58)(112,"div",35),l(113,"UNITS & VALUES"),i(),n(114,"mat-card",36)(115,"mat-card-content")(116,"div",37)(117,"div",38)(118,"fieldset")(119,"legend")(120,"mat-checkbox",59,2),f("ngModelChange",function(t){return c(g),u(e.facade.settings.units.useServerPrefs,t)||(e.facade.settings.units.useServerPrefs=t),m(t)}),p("change",function(){return c(g),e.raiseChange(),m(e.persistModel())}),l(122," Use Server Unit Preferences "),i()(),n(123,"div",37)(124,"div",38)(125,"mat-form-field",39)(126,"mat-label"),l(127,"Distance units"),i(),n(128,"mat-select",60,3),f("ngModelChange",function(t){return c(g),u(e.facade.settings.units.distance,t)||(e.facade.settings.units.distance=t),m(t)}),p("selectionChange",function(){return c(g),e.raiseChange(),m(e.persistModel())}),y(130,zt,2,2,"mat-option",41,v),i()()(),n(132,"div",38)(133,"mat-form-field",39)(134,"mat-label"),l(135,"Depth units"),i(),n(136,"mat-select",60),f("ngModelChange",function(t){return c(g),u(e.facade.settings.units.depth,t)||(e.facade.settings.units.depth=t),m(t)}),p("selectionChange",function(){return c(g),e.raiseChange(),m(e.doS57())}),y(137,Kt,2,2,"mat-option",41,v),i()()(),n(139,"div",38)(140,"mat-form-field",39)(141,"mat-label"),l(142,"Length units"),i(),n(143,"mat-select",60),f("ngModelChange",function(t){return c(g),u(e.facade.settings.units.length,t)||(e.facade.settings.units.length=t),m(t)}),p("selectionChange",function(){return c(g),e.raiseChange(),m(e.persistModel())}),y(144,qt,2,2,"mat-option",41,v),i()()(),n(146,"div",38)(147,"mat-form-field",39)(148,"mat-label"),l(149,"Temperature units"),i(),n(150,"mat-select",60),f("ngModelChange",function(t){return c(g),u(e.facade.settings.units.temperature,t)||(e.facade.settings.units.temperature=t),m(t)}),p("selectionChange",function(){return c(g),e.raiseChange(),m(e.persistModel())}),y(151,jt,2,2,"mat-option",41,v),i()()(),n(153,"div",38)(154,"mat-form-field",39)(155,"mat-label"),l(156,"Speed units"),i(),n(157,"mat-select",60),f("ngModelChange",function(t){return c(g),u(e.facade.settings.units.speed,t)||(e.facade.settings.units.speed=t),m(t)}),p("selectionChange",function(){return c(g),e.raiseChange(),m(e.persistModel())}),y(158,Xt,2,2,"mat-option",41,v),i()()()()()()(),n(160,"div",37),b(161,Jt,7,1,"div",38),b(162,$t,7,1,"div",38),n(163,"div",38)(164,"signalk-preferred-paths",61),p("chosen",function(t){return e.onPreferredPaths(t)}),i()()()()()()()()(),n(165,"mat-tab",62)(166,"div",32)(167,"div",33)(168,"div",63)(169,"div",35),l(170,"MAP"),i(),n(171,"mat-card")(172,"mat-card-content")(173,"div",37)(174,"div",38)(175,"div",64),l(176," \xA0 "),i(),n(177,"mat-form-field",39)(178,"mat-label"),l(179,"Feature label zoom level"),i(),n(180,"mat-select",65),f("ngModelChange",function(t){return c(g),u(e.facade.settings.map.labelsMinZoom,t)||(e.facade.settings.map.labelsMinZoom=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(181,ei,2,2,"mat-option",41,D),i()()(),n(183,"div",38)(184,"div",66),l(185," Offset Vessel Center (%) "),i(),n(186,"div",67)(187,"mat-form-field",68)(188,"mat-label"),l(189,"Vertical"),i(),n(190,"input",69,4),f("ngModelChange",function(t){return c(g),u(e.facade.settings.map.centerOffset.y,t)||(e.facade.settings.map.centerOffset.y=t),m(t)}),p("change",function(){c(g);let t=M(191);return m(e.parseCenterOffset(t))}),i()(),n(192,"mat-form-field",68)(193,"mat-label"),l(194,"Horizontal"),i(),n(195,"input",70,5),f("ngModelChange",function(t){return c(g),u(e.facade.settings.map.centerOffset.x,t)||(e.facade.settings.map.centerOffset.x=t),m(t)}),p("change",function(){c(g);let t=M(196);return m(e.parseCenterOffset(t))}),i()()()(),n(197,"div",38)(198,"mat-checkbox",71),f("ngModelChange",function(t){return c(g),u(e.facade.settings.map.popoverMulti,t)||(e.facade.settings.map.popoverMulti=t),m(t)}),p("change",function(){return e.persistModel()}),l(199," Popovers close with button "),i()(),n(200,"div",38)(201,"mat-checkbox",72),f("ngModelChange",function(t){return c(g),u(e.facade.settings.map.doubleClickZoom,t)||(e.facade.settings.map.doubleClickZoom=t),m(t)}),p("change",function(){return e.persistModel()}),l(202," Double click to Zoom "),i()(),n(203,"div",38)(204,"mat-checkbox",73),f("ngModelChange",function(t){return c(g),u(e.facade.settings.map.overZoomTiles,t)||(e.facade.settings.map.overZoomTiles=t),m(t)}),p("change",function(){return e.persistModel()}),l(205," Keep tiles visible on max zoom "),i()(),n(206,"div",74)(207,"mat-form-field",39)(208,"mat-label"),l(209,"Map Pan When Following"),i(),n(210,"mat-select",75),f("ngModelChange",function(t){return c(g),u(e.facade.settings.map.panBehavior,t)||(e.facade.settings.map.panBehavior=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(211,ti,2,2,"mat-option",41,v),i()(),b(213,ni,6,1,"mat-form-field",39),i()()()(),n(214,"div",35),l(215,"VECTOR CHARTS"),i(),n(216,"mat-card")(217,"mat-card-content")(218,"div",37)(219,"div",38)(220,"mat-form-field",39)(221,"mat-label"),l(222,"Graphics Style"),i(),n(223,"mat-select",76),f("ngModelChange",function(t){return c(g),u(e.facade.settings.map.s57Options.graphicsStyle,t)||(e.facade.settings.map.s57Options.graphicsStyle=t),m(t)}),p("selectionChange",function(){return e.doS57()}),y(224,ai,2,2,"mat-option",41,v),i()()(),n(226,"div",38)(227,"mat-form-field",39)(228,"mat-label"),l(229,"Boundaries"),i(),n(230,"mat-select",77),f("ngModelChange",function(t){return c(g),u(e.facade.settings.map.s57Options.boundaries,t)||(e.facade.settings.map.s57Options.boundaries=t),m(t)}),p("selectionChange",function(){return e.doS57()}),y(231,oi,2,2,"mat-option",41,v),i()()(),n(233,"div",38)(234,"mat-form-field",39)(235,"mat-label"),l(236,"Color Table"),i(),n(237,"mat-select",78),f("ngModelChange",function(t){return c(g),u(e.facade.settings.map.s57Options.colorTable,t)||(e.facade.settings.map.s57Options.colorTable=t),m(t)}),p("selectionChange",function(){return e.doS57()}),y(238,ri,2,2,"mat-option",41,v),i()()(),n(240,"div",38)(241,"mat-form-field",39)(242,"mat-label"),l(243,"Colors"),i(),n(244,"mat-select",79),f("ngModelChange",function(t){return c(g),u(e.facade.settings.map.s57Options.colors,t)||(e.facade.settings.map.s57Options.colors=t),m(t)}),p("selectionChange",function(){return e.doS57()}),y(245,si,2,2,"mat-option",41,D),i()()()(),n(247,"div",37)(248,"div",38)(249,"mat-form-field",39)(250,"mat-label"),l(251,"Shallow depth"),i(),n(252,"input",80,6),f("ngModelChange",function(t){return c(g),u(e.facade.settings.map.s57Options.shallowDepth,t)||(e.facade.settings.map.s57Options.shallowDepth=t),m(t)}),p("change",function(){c(g);let t=M(253);return m(e.doS57(t))}),i(),b(254,li,2,0,"mat-error"),n(255,"span",81),l(256,"m"),i()()(),n(257,"div",38)(258,"mat-form-field",39)(259,"mat-label"),l(260,"Safety depth"),i(),n(261,"input",80,7),f("ngModelChange",function(t){return c(g),u(e.facade.settings.map.s57Options.safetyDepth,t)||(e.facade.settings.map.s57Options.safetyDepth=t),m(t)}),p("change",function(){c(g);let t=M(262);return m(e.doS57(t))}),i(),b(263,di,2,0,"mat-error"),n(264,"span",81),l(265,"m"),i()()(),n(266,"div",38)(267,"mat-form-field",39)(268,"mat-label"),l(269,"Deep depth"),i(),n(270,"input",80,8),f("ngModelChange",function(t){return c(g),u(e.facade.settings.map.s57Options.deepDepth,t)||(e.facade.settings.map.s57Options.deepDepth=t),m(t)}),p("change",function(){c(g);let t=M(271);return m(e.doS57(t))}),i(),b(272,gi,2,0,"mat-error"),n(273,"span",81),l(274,"m"),i()()(),n(275,"div",38)(276,"mat-form-field",39)(277,"mat-label"),l(278,"Layers"),i(),n(279,"mat-select",82),f("ngModelChange",function(t){return c(g),u(e.facade.settings.map.s57Options.otherLayers,t)||(e.facade.settings.map.s57Options.otherLayers=t),m(t)}),p("selectionChange",function(){return e.doS57()}),y(280,ci,2,2,"mat-option",41,v),i()()()()()()()()()(),n(282,"mat-tab",83)(283,"div",32)(284,"div",33)(285,"div",84)(286,"div",35),l(287,"COURSE"),i(),n(288,"mat-card",36)(289,"mat-card-content")(290,"div",37)(291,"div",38)(292,"mat-form-field",39)(293,"mat-label"),l(294,"Arrival Circle"),i(),n(295,"input",80,9),f("ngModelChange",function(t){return c(g),u(e.facade.settings.course.arrivalCircle,t)||(e.facade.settings.course.arrivalCircle=t),m(t)}),p("change",function(){c(g);let t=M(296);return m(e.onArrivalCircleChange(t))}),i(),b(297,mi,2,0,"mat-error"),n(298,"span",81),l(299,"m"),i()()()(),n(300,"div",37)(301,"div",38)(302,"mat-checkbox",49,10),f("ngModelChange",function(t){return c(g),u(e.facade.settings.course.autoNextPointOnArrival,t)||(e.facade.settings.course.autoNextPointOnArrival=t),m(t)}),p("change",function(){return e.persistModel()}),l(304," Auto-advance to next point on arrival "),i()()(),n(305,"div",37)(306,"div",38)(307,"mat-form-field",39)(308,"mat-label"),l(309,"Notification type to use"),i(),n(310,"mat-select",85,11),f("ngModelChange",function(t){return c(g),u(e.facade.settings.course.autoNextPointTrigger,t)||(e.facade.settings.course.autoNextPointTrigger=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(312,pi,2,2,"mat-option",41,D),i()()(),n(314,"div",38)(315,"mat-form-field",39)(316,"mat-label"),l(317,"Time to wait before advancing"),i(),n(318,"mat-select",86),f("ngModelChange",function(t){return c(g),u(e.facade.settings.course.autoNextPointDelay,t)||(e.facade.settings.course.autoNextPointDelay=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(319,_i,2,2,"mat-option",41,v),i()()()()()()()()()(),n(321,"mat-tab",87)(322,"div",32)(323,"div",33)(324,"div",88)(325,"div",35),l(326,"VESSEL"),i(),n(327,"mat-card",36)(328,"mat-card-content")(329,"div",37)(330,"div",38)(331,"fieldset")(332,"legend"),l(333,"Vessel Icon"),i(),n(334,"div",37)(335,"div",38)(336,"mat-form-field",39)(337,"mat-label"),l(338,"Vessel icon"),i(),n(339,"mat-select",89),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.iconType,t)||(e.facade.settings.vessels.iconType=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(340,ui,2,2,"mat-option",41,v),i()()()(),n(342,"div",37)(343,"div",38)(344,"mat-radio-group",90),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.iconScale,t)||(e.facade.settings.vessels.iconScale=t),m(t)}),p("change",function(){return e.persistModel()}),y(345,fi,3,5,"mat-radio-button",41,v),i()()(),n(347,"div",47)(348,"div",38)(349,"mat-checkbox",91),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.iconActualSize,t)||(e.facade.settings.vessels.iconActualSize=t),m(t)}),p("change",function(){return e.persistModel()}),l(350," Show vessel at actual size when zoomed in "),i()()()()()(),n(351,"div",38)(352,"fieldset")(353,"legend")(354,"mat-checkbox",92,12),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.fixedLocationMode,t)||(e.facade.settings.vessels.fixedLocationMode=t),m(t)}),p("change",function(){return e.persistModel()}),l(356," Fixed Location Mode "),i()(),n(357,"div",37)(358,"div",38)(359,"mat-form-field",68)(360,"mat-label"),l(361,"Latitude"),i(),n(362,"input",93,13),f("ngModelChange",function(t){return c(g),u(e.facade.fixedPosition[1],t)||(e.facade.fixedPosition[1]=t),m(t)}),p("change",function(){c(g);let t=M(363);return m(e.parseNumber(t,!0))}),i(),b(364,hi,2,0,"mat-error"),i(),n(365,"mat-form-field",68)(366,"mat-label"),l(367,"Longitude"),i(),n(368,"input",94,14),f("ngModelChange",function(t){return c(g),u(e.facade.fixedPosition[0],t)||(e.facade.fixedPosition[0]=t),m(t)}),p("change",function(){c(g);let t=M(369);return m(e.parseNumber(t,!0))}),i(),b(370,yi,2,0,"mat-error"),i()()()()()()(),E(371,"br"),n(372,"mat-card",36)(373,"mat-card-content")(374,"div",38)(375,"fieldset")(376,"legend"),l(377,"Vessel Lines:"),i(),n(378,"div",37)(379,"mat-checkbox",49),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.windVectors,t)||(e.facade.settings.vessels.windVectors=t),m(t)}),p("change",function(){return e.persistModel()}),l(380," Display Wind Vectors "),i(),n(381,"mat-checkbox",49),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.laylines,t)||(e.facade.settings.vessels.laylines=t),m(t)}),p("change",function(){return e.persistModel()}),l(382," Display Laylines "),i()(),n(383,"div",37)(384,"div",38)(385,"fieldset")(386,"legend"),l(387,"Heading Line"),i(),n(388,"div",37)(389,"div",38)(390,"mat-form-field")(391,"mat-label"),l(392,"Heading Line Length"),i(),n(393,"mat-select",95),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.selfLines.heading.length,t)||(e.facade.settings.vessels.selfLines.heading.length=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(394,Si,2,2,"mat-option",41,v),i()()(),n(396,"div",38)(397,"linestyle-select",96),p("selectionChange",function(t){return e.onLineStyle("heading",t)}),i()()()()()(),n(398,"div",37)(399,"div",38)(400,"fieldset")(401,"legend"),l(402,"COG Line"),i(),n(403,"div",37)(404,"div",38)(405,"mat-form-field")(406,"mat-label"),l(407,"COG Line Length"),i(),n(408,"mat-select",97),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.selfLines.cog.length,t)||(e.facade.settings.vessels.selfLines.cog.length=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(409,Ci,2,2,"mat-option",41,v),i()()(),n(411,"div",38)(412,"linestyle-select",96),p("selectionChange",function(t){return e.onLineStyle("cog",t)}),i()()()()()()()(),n(413,"div",38)(414,"fieldset")(415,"legend")(416,"mat-checkbox",49),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.rangeCircles,t)||(e.facade.settings.vessels.rangeCircles=t),m(t)}),p("change",function(){return e.persistModel()}),l(417," Display Range Circles "),i()(),n(418,"div",37)(419,"div",38)(420,"mat-form-field",39)(421,"mat-label"),l(422,"Number of Range Circles"),i(),n(423,"mat-select",98),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.rangeCircleCount,t)||(e.facade.settings.vessels.rangeCircleCount=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(424,wi,2,2,"mat-option",41,D),i()()(),n(426,"div",38)(427,"mat-form-field",39)(428,"mat-label"),l(429,"Minimum Zoom Level"),i(),n(430,"mat-select",98),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.rangeCircleMinZoom,t)||(e.facade.settings.vessels.rangeCircleMinZoom=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(431,Mi,2,2,"mat-option",41,D),i()()()(),n(433,"div",37)(434,"div",38)(435,"mat-checkbox",99),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.rangeCirclesFixed,t)||(e.facade.settings.vessels.rangeCirclesFixed=t),m(t)}),p("change",function(){return e.persistModel()}),l(436," Use Fixed Distance "),i()(),n(437,"div",38)(438,"mat-form-field",68)(439,"mat-label"),l(440),i(),n(441,"input",100,15),f("ngModelChange",function(t){return c(g),u(e.formattedNumberModel.rangeCirclesDistance,t)||(e.formattedNumberModel.rangeCirclesDistance=t),m(t)}),p("change",function(){c(g);let t=M(442);return m(e.parseFormattedNumber(t))}),i(),b(443,vi,2,0,"mat-error"),i()()()()()()(),E(444,"br"),n(445,"mat-card",36)(446,"mat-card-content")(447,"div",37)(448,"fieldset")(449,"legend")(450,"mat-checkbox",49),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.trail,t)||(e.facade.settings.vessels.trail=t),m(t)}),p("change",function(){return e.persistModel("vesselTrail")}),l(451," Display Vessel Track "),i()(),n(452,"div",37)(453,"div",38)(454,"mat-form-field",101)(455,"mat-label"),l(456,"Track source"),i(),n(457,"mat-select",102),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.trailSource,t)||(e.facade.settings.vessels.trailSource=t),m(t)}),p("selectionChange",function(){return e.persistModel("trailSource")}),n(458,"mat-option",103),l(459,"Auto"),i(),n(460,"mat-option",104),l(461,"Server"),i(),n(462,"mat-option",105),l(463,"This device"),i()(),b(464,bi,2,0,"mat-hint")(465,Ti,2,1,"mat-hint"),i(),l(466," \xA0\xA0 "),n(467,"mat-slider",106)(468,"input",107),f("ngModelChange",function(t){return c(g),u(e.trailLengthStop,t)||(e.trailLengthStop=t),m(t)}),p("valueChange",function(){return e.deferPersist()}),i()(),l(469),i()(),n(470,"div",37)(471,"div",38)(472,"mat-form-field",39)(473,"mat-label"),l(474,"Resolution: Last hour"),i(),n(475,"mat-select",98),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.trailResolution.lastHour,t)||(e.facade.settings.vessels.trailResolution.lastHour=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(476,Di,2,2,"mat-option",41,v),i()()(),n(478,"div",38)(479,"mat-form-field",39)(480,"mat-label"),l(481,"Resolution: 1 hr -> 24 hrs"),i(),n(482,"mat-select",98),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.trailResolution.next23,t)||(e.facade.settings.vessels.trailResolution.next23=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(483,Ei,2,2,"mat-option",41,v),i()()(),n(485,"div",38)(486,"mat-form-field",39)(487,"mat-label"),l(488,"Resolution: > 24 hrs"),i(),n(489,"mat-select",98),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.trailResolution.beyond24,t)||(e.facade.settings.vessels.trailResolution.beyond24=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(490,Wi,2,2,"mat-option",41,v),i()()()()()()()(),n(492,"div",35),l(493,"OTHER VESSELS"),i(),n(494,"mat-card",36)(495,"mat-card-content")(496,"div",37)(497,"div",38)(498,"mat-checkbox",49),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.aisShowTrack,t)||(e.facade.settings.vessels.aisShowTrack=t),m(t)}),p("change",function(){return e.persistModel()}),l(499," Show all tracks "),i(),l(500," \xA0 "),n(501,"mat-checkbox",49),f("ngModelChange",function(t){return c(g),u(e.aisStateFilter.moored,t)||(e.aisStateFilter.moored=t),m(t)}),p("change",function(){return e.onAisStateFilter()}),l(502," Hide Moored "),i(),l(503," \xA0 "),n(504,"mat-checkbox",49),f("ngModelChange",function(t){return c(g),u(e.aisStateFilter.anchored,t)||(e.aisStateFilter.anchored=t),m(t)}),p("change",function(){return e.onAisStateFilter()}),l(505," Hide Anchored "),i()()(),b(506,Vi,5,3,"div",37),n(507,"div",37)(508,"div",38)(509,"mat-form-field",39)(510,"mat-label"),l(511,"Mark AIS target inactive after"),i(),n(512,"mat-select",65),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.aisStaleAge,t)||(e.facade.settings.vessels.aisStaleAge=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(513,ki,2,2,"mat-option",41,v),i()()(),n(515,"div",38)(516,"mat-form-field",39)(517,"mat-label"),l(518,"Remove AIS target after"),i(),n(519,"mat-select",65),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.aisMaxAge,t)||(e.facade.settings.vessels.aisMaxAge=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(520,Pi,2,2,"mat-option",41,v),i()()(),n(522,"div",38)(523,"mat-form-field",39)(524,"mat-label"),l(525,"Wind Vector Value"),i(),n(526,"mat-select",65),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.aisWindApparent,t)||(e.facade.settings.vessels.aisWindApparent=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(527,Li,2,2,"mat-option",41,v),i()()(),n(529,"div",38)(530,"mat-form-field",39)(531,"mat-label"),l(532,"Wind / Track Zoom Level"),i(),n(533,"mat-select",65),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.aisWindMinZoom,t)||(e.facade.settings.vessels.aisWindMinZoom=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(534,xi,2,2,"mat-option",41,D),i()()(),n(536,"div",38)(537,"mat-form-field",39)(538,"mat-label"),l(539,"COG Line"),i(),n(540,"mat-select",65),f("ngModelChange",function(t){return c(g),u(e.facade.settings.vessels.aisCogLine,t)||(e.facade.settings.vessels.aisCogLine=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(541,Oi,2,2,"mat-option",41,v),i()()()()()()()()()(),n(543,"mat-tab",108)(544,"div",32)(545,"div",33)(546,"div",109)(547,"div",35),l(548,"NOTES"),i(),n(549,"mat-card",36)(550,"mat-card-content")(551,"div",47)(552,"div",38)(553,"mat-checkbox",49),f("ngModelChange",function(t){return c(g),u(e.facade.settings.ui.showNotes,t)||(e.facade.settings.ui.showNotes=t),m(t)}),p("change",function(){return e.persistModel()}),l(554," Display Notes on Map "),i()(),n(555,"div",38)(556,"mat-form-field",39)(557,"mat-label"),l(558,"Notes Zoom Level"),i(),n(559,"mat-select",110),f("valueChange",function(t){return c(g),u(e.facade.settings.resources.notes.minZoom,t)||(e.facade.settings.resources.notes.minZoom=t),m(t)}),p("selectionChange",function(){return e.persistModel("fetchNotes")}),y(560,Ii,2,2,"mat-option",41,D),i()()()(),n(562,"div",47)(563,"div",38)(564,"mat-form-field",39)(565,"mat-label"),l(566),i(),n(567,"mat-select",60),f("ngModelChange",function(t){return c(g),u(e.facade.settings.resources.notes.getRadius,t)||(e.facade.settings.resources.notes.getRadius=t),m(t)}),p("selectionChange",function(){return e.persistModel("fetchNotes")}),y(568,Ai,2,2,"mat-option",41,D),i()()()(),n(570,"div",47)(571,"div",38)(572,"mat-form-field",53)(573,"mat-label"),l(574,"Notes fetch filter:"),i(),n(575,"input",111,16),f("ngModelChange",function(t){return c(g),u(e.facade.settings.resources.notes.rootFilter,t)||(e.facade.settings.resources.notes.rootFilter=t),m(t)}),p("change",function(){return e.persistModel("fetchNotes")}),i(),b(577,Bi,3,0,"button",112),i()()(),n(578,"div",47)(579,"div",38)(580,"mat-checkbox",113),f("ngModelChange",function(t){return c(g),u(e.facade.settings.resources.notes.groupNameEdit,t)||(e.facade.settings.resources.notes.groupNameEdit=t),m(t)}),p("change",function(){return e.persistModel()}),l(581," Edit Group Names "),i()(),n(582,"div",38)(583,"mat-checkbox",114),f("ngModelChange",function(t){return c(g),u(e.facade.settings.resources.notes.groupRequiresPosition,t)||(e.facade.settings.resources.notes.groupRequiresPosition=t),m(t)}),p("change",function(){return e.persistModel()}),l(584," Position Group Note "),i()()(),n(585,"div",47)(586,"div",38)(587,"mat-checkbox",115),f("ngModelChange",function(t){return c(g),u(e.facade.settings.display.singleClickNoteDetails,t)||(e.facade.settings.display.singleClickNoteDetails=t),m(t)}),p("change",function(){return e.persistModel()}),l(588," Single Click for Note Details "),i()()()()()(),n(589,"div",116)(590,"div",35),l(591,"CUSTOM RESOURCES"),i(),n(592,"mat-card",36)(593,"mat-card-content")(594,"div",47)(595,"div",38)(596,"div",117),l(597," Select custom resource types (./resources/<name>) "),i(),n(598,"mat-selection-list",118,17),p("selectionChange",function(){c(g);let t=M(599);return m(e.onResPathSelected(t))}),y(600,Fi,2,3,"mat-list-option",119,D),i()()()()()()()()(),b(602,Ri,25,3,"mat-tab",120),n(603,"mat-tab",121)(604,"div",32)(605,"div",33)(606,"div",122)(607,"div",35),l(608,"SIGNAL K: CONNECTION"),i(),n(609,"mat-card",36)(610,"mat-card-content")(611,"div",47)(612,"fieldset")(613,"legend"),l(614,"Filter Stream data:"),i(),n(615,"span",123),l(616," Check to include Signal K schema groups on display."),E(617,"br"),n(618,"i"),l(619,"Use to manage display performance."),i()(),n(620,"div",38)(621,"mat-checkbox",124),f("ngModelChange",function(t){return c(g),u(e.facade.settings.signalk.vessels,t)||(e.facade.settings.signalk.vessels=t),m(t)}),p("change",function(){return e.persistModel()}),l(622," Vessels (other than Self) "),i()(),n(623,"div",38)(624,"mat-checkbox",125),f("ngModelChange",function(t){return c(g),u(e.facade.settings.signalk.atons,t)||(e.facade.settings.signalk.atons=t),m(t)}),p("change",function(){return e.persistModel()}),l(625," Aids to Navigation (AtoN) "),i()(),n(626,"div",38)(627,"mat-checkbox",126),f("ngModelChange",function(t){return c(g),u(e.facade.settings.signalk.aircraft,t)||(e.facade.settings.signalk.aircraft=t),m(t)}),p("change",function(){return e.persistModel()}),l(628," Aircraft "),i()(),n(629,"div",38)(630,"mat-checkbox",127),f("ngModelChange",function(t){return c(g),u(e.facade.settings.signalk.sar,t)||(e.facade.settings.signalk.sar=t),m(t)}),p("change",function(){return e.persistModel()}),l(631," Search and Rescue (SaR) "),i()(),n(632,"div",38)(633,"mat-checkbox",128),f("ngModelChange",function(t){return c(g),u(e.facade.settings.signalk.meteo,t)||(e.facade.settings.signalk.meteo=t),m(t)}),p("change",function(){return e.persistModel()}),l(634," Weather (Meteo) "),i()(),n(635,"div",38),E(636,"br"),n(637,"mat-form-field",39)(638,"mat-label"),l(639,"Max. distance from vessel"),i(),n(640,"mat-select",129,18),f("ngModelChange",function(t){return c(g),u(e.facade.settings.signalk.maxRadius,t)||(e.facade.settings.signalk.maxRadius=t),m(t)}),p("selectionChange",function(){return e.persistModel()}),y(642,Ui,2,2,"mat-option",41,v),i()()()()(),n(644,"div",47)(645,"div",38)(646,"button",130),p("click",function(){return e.clearAuthToken()}),n(647,"mat-icon"),l(648,"key_off"),i()()()()()()()()()(),n(649,"mat-tab",131)(650,"div",32)(651,"div",33)(652,"div",132)(653,"div",35),l(654,"EXPERIMENTS"),i(),n(655,"mat-card",36)(656,"mat-card-content")(657,"div",47)(658,"div",38)(659,"mat-checkbox",49),f("ngModelChange",function(t){return c(g),u(e.facade.settings.resources.video.enable,t)||(e.facade.settings.resources.video.enable=t),m(t)}),p("change",function(){return e.persistModel()}),l(660," Enable Video "),i()(),n(661,"div",38)(662,"mat-form-field",53)(663,"mat-label"),l(664,"url:"),i(),n(665,"input",133,19),f("ngModelChange",function(t){return c(g),u(e.facade.settings.resources.video.url,t)||(e.facade.settings.resources.video.url=t),m(t)}),p("change",function(){return e.persistModel("videoUrl")}),i(),b(667,Gi,2,0,"mat-error"),i()()(),n(668,"div",47)(669,"div",38)(670,"mat-checkbox",134,20),f("ngModelChange",function(t){return c(g),u(e.facade.settings.experiments,t)||(e.facade.settings.experiments=t),m(t)}),p("change",function(){return e.persistModel()}),n(672,"mat-icon"),l(673,"science"),i(),l(674," Experimental Features "),i()()()()()()()()()()()}if(a&2){let g=M(86),r=M(93),t=M(129),oe=M(253),re=M(262),se=M(271),le=M(296),pe=M(303),_e=M(355),de=M(363),ge=M(369),ce=M(442),Mt=M(576),vt=M(666);o(25),_("ngModel",e.facade.settings.display.darkMode.source),o(),S(e.options.darkMode),o(3),_("ngModel",e.facade.settings.display.nightMode),o(6),_("ngModel",e.facade.settings.display.fab),o(),S(e.fabOptions()),o(3),h("disabled",!e.wakeLock.isAvailable),_("ngModel",e.facade.settings.display.disableWakelock),o(3),_("ngModel",e.facade.settings.display.preferInfoPanel),o(3),_("ngModel",e.facade.settings.display.splitView),o(5),T(e.facade.applicationList.length>1?50:-1),o(),T(e.show.favourites()?51:-1),o(9),_("ngModel",e.facade.settings.display.muteSound),o(3),_("ngModel",e.facade.settings.display.depthAlarm.enabled),o(6),_("ngModel",e.facade.settings.display.depthAlarm.smoothing),h("disabled",!e.facade.settings.display.depthAlarm.enabled),o(),S(e.options.alarm.smoothing),o(9),_("ngModel",e.facade.settings.display.statusBar.liveEta),o(5),k("Reference Boat Speed (",e.speedUnitSymbol,")"),o(),h("disabled",!e.facade.settings.display.statusBar.liveEta),_("ngModel",e.facade.settings.display.statusBar.referenceSpeed),o(2),T(g.invalid&&(g.dirty||g.touched)?87:-1),o(5),h("disabled",!e.facade.settings.display.statusBar.liveEta),_("ngModel",e.facade.settings.display.statusBar.tapFadeSpeed),o(2),T(r.invalid&&(r.dirty||r.touched)?94:-1),o(11),_("ngModel",e.facade.settings.display.windIndicator),o(),S(e.options.windIndicator),o(14),h("disabled",!e.app.serverConfig.unitPreferences()),_("ngModel",e.facade.settings.units.useServerPrefs),o(8),h("disabled",e.facade.settings.units.useServerPrefs),_("ngModel",e.facade.settings.units.distance),o(2),S(e.options.availableUnits.distance),o(6),h("disabled",e.facade.settings.units.useServerPrefs),_("ngModel",e.facade.settings.units.depth),o(),S(e.options.availableUnits.depth),o(6),h("disabled",e.facade.settings.units.useServerPrefs),_("ngModel",e.facade.settings.units.length),o(),S(e.options.availableUnits.length),o(6),h("disabled",e.facade.settings.units.useServerPrefs),_("ngModel",e.facade.settings.units.temperature),o(),S(e.options.availableUnits.temperature),o(6),h("disabled",e.facade.settings.units.useServerPrefs),_("ngModel",e.facade.settings.units.speed),o(),S(e.options.availableUnits.speed),o(3),T(e.options.preferredValues.coords.length!==0?161:-1),o(),T(e.options.preferredValues.heading.length!==0?162:-1),o(18),_("ngModel",e.facade.settings.map.labelsMinZoom),o(),S(e.options.zoomLevels),o(9),h("min",-e.centerOffsetLimit)("max",e.centerOffsetLimit),_("ngModel",e.facade.settings.map.centerOffset.y),o(5),h("min",-e.centerOffsetLimit)("max",e.centerOffsetLimit),_("ngModel",e.facade.settings.map.centerOffset.x),o(3),_("ngModel",e.facade.settings.map.popoverMulti),o(3),_("ngModel",e.facade.settings.map.doubleClickZoom),o(3),_("ngModel",e.facade.settings.map.overZoomTiles),o(6),_("ngModel",e.facade.settings.map.panBehavior),o(),S(e.options.map.panBehavior),o(2),T(e.facade.settings.map.panBehavior==="exit"?213:-1),o(10),_("ngModel",e.facade.settings.map.s57Options.graphicsStyle),o(),S(e.options.map.s57.graphicsStyle),o(6),_("ngModel",e.facade.settings.map.s57Options.boundaries),o(),S(e.options.map.s57.boundaries),o(6),_("ngModel",e.facade.settings.map.s57Options.colorTable),o(),S(e.options.map.s57.colorTables),o(6),_("ngModel",e.facade.settings.map.s57Options.colors),o(),S(e.options.map.s57.colors),o(7),_("ngModel",e.facade.settings.map.s57Options.shallowDepth),o(2),T(oe.invalid&&(oe.dirty||oe.touched)?254:-1),o(7),_("ngModel",e.facade.settings.map.s57Options.safetyDepth),o(2),T(re.invalid&&(re.dirty||re.touched)?263:-1),o(7),_("ngModel",e.facade.settings.map.s57Options.deepDepth),o(2),T(se.invalid&&(se.dirty||se.touched)?272:-1),o(7),_("ngModel",e.facade.settings.map.s57Options.otherLayers),o(),S(e.options.map.s57.otherLayers),o(15),_("ngModel",e.facade.settings.course.arrivalCircle),o(2),T(le.invalid&&(le.dirty||le.touched)?297:-1),o(5),_("ngModel",e.facade.settings.course.autoNextPointOnArrival),o(8),h("disabled",pe.checked===!1),_("ngModel",e.facade.settings.course.autoNextPointTrigger),o(2),S(e.options.course.nextPointTrigger),o(6),h("disabled",pe.checked===!1),_("ngModel",e.facade.settings.course.autoNextPointDelay),o(),S(e.options.course.nextPointDelay),o(20),_("ngModel",e.facade.settings.vessels.iconType),o(),S(e.options.vessel.selfIconType),o(4),_("ngModel",e.facade.settings.vessels.iconScale),o(),S(e.options.vessel.selfIconScale),o(4),_("ngModel",e.facade.settings.vessels.iconActualSize),o(5),_("ngModel",e.facade.settings.vessels.fixedLocationMode),o(8),_("ngModel",e.facade.fixedPosition[1]),h("disabled",!_e.checked),o(2),T(de.invalid&&(de.dirty||de.touched)?364:-1),o(4),_("ngModel",e.facade.fixedPosition[0]),h("disabled",!_e.checked),o(2),T(ge.invalid&&(ge.dirty||ge.touched)?370:-1),o(9),_("ngModel",e.facade.settings.vessels.windVectors),o(2),_("ngModel",e.facade.settings.vessels.laylines),o(12),_("ngModel",e.facade.settings.vessels.selfLines.heading.length),o(),S(e.options.vessel.headingLine),o(3),h("color",e.facade.settings.vessels.selfLines.heading.color)("dash",e.facade.settings.vessels.selfLines.heading.dash)("weight",e.facade.settings.vessels.selfLines.heading.weight),o(11),_("ngModel",e.facade.settings.vessels.selfLines.cog.length),o(),S(e.options.vessel.cogLine),o(3),h("color",e.facade.settings.vessels.selfLines.cog.color)("dash",e.facade.settings.vessels.selfLines.cog.dash)("weight",e.facade.settings.vessels.selfLines.cog.weight),o(4),_("ngModel",e.facade.settings.vessels.rangeCircles),o(7),_("ngModel",e.facade.settings.vessels.rangeCircleCount),h("disabled",!e.facade.settings.vessels.rangeCircles),o(),S(e.options.rangeCircles.count),o(6),_("ngModel",e.facade.settings.vessels.rangeCircleMinZoom),h("disabled",!e.facade.settings.vessels.rangeCircles),o(),S(e.options.rangeCircles.zoomLevels),o(4),_("ngModel",e.facade.settings.vessels.rangeCirclesFixed),h("disabled",!e.facade.settings.vessels.rangeCircles),o(5),k(" Distance between circles (",e.renderSymbol(e.facade.settings.units.distance),") "),o(),_("ngModel",e.formattedNumberModel.rangeCirclesDistance),h("disabled",!e.facade.settings.vessels.rangeCircles||!e.facade.settings.vessels.rangeCirclesFixed),o(2),T(ce.invalid&&(ce.dirty||ce.touched)?443:-1),o(7),_("ngModel",e.facade.settings.vessels.trail),o(7),h("disabled",!e.facade.settings.vessels.trail),_("ngModel",e.facade.settings.vessels.trailSource),o(3),h("disabled",!e.serverTrailAvailable),o(4),T(e.serverTrailAvailable?e.facade.settings.vessels.trailSource==="auto"?465:-1:464),o(3),h("max",e.trailLengthAllStop)("displayWith",e.trailLengthStopLabel)("disabled",!e.app.serverTrailWanted()||!e.facade.settings.vessels.trail),o(),_("ngModel",e.trailLengthStop),o(),k(" Length (",e.trailLengthText,") "),o(6),_("ngModel",e.facade.settings.vessels.trailResolution.lastHour),h("disabled",!e.app.serverTrailWanted()||!e.facade.settings.vessels.trail),o(),S(e.options.trailIntervals.highResolution),o(6),_("ngModel",e.facade.settings.vessels.trailResolution.next23),h("disabled",!e.app.serverTrailWanted()||!e.facade.settings.vessels.trail),o(),S(e.options.trailIntervals.highResolution),o(6),_("ngModel",e.facade.settings.vessels.trailResolution.beyond24),h("disabled",!e.app.serverTrailWanted()||!e.facade.settings.vessels.trail),o(),S(e.options.trailIntervals.mediumResolution),o(8),_("ngModel",e.facade.settings.vessels.aisShowTrack),o(3),_("ngModel",e.aisStateFilter.moored),o(3),_("ngModel",e.aisStateFilter.anchored),o(2),T(e.facade.settings.vessels.aisShowTrack?-1:506),o(6),_("ngModel",e.facade.settings.vessels.aisStaleAge),o(),S(e.options.vessel.aisTimeouts),o(6),_("ngModel",e.facade.settings.vessels.aisMaxAge),o(),S(e.options.vessel.aisTimeouts),o(6),_("ngModel",e.facade.settings.vessels.aisWindApparent),o(),S(e.options.preferredValues.wind),o(6),_("ngModel",e.facade.settings.vessels.aisWindMinZoom),o(),S(e.options.zoomLevels),o(6),_("ngModel",e.facade.settings.vessels.aisCogLine),o(),S(e.options.vessel.aisCogLine),o(12),_("ngModel",e.facade.settings.ui.showNotes),o(6),h("disabled",!e.facade.settings.ui.showNotes),_("value",e.facade.settings.resources.notes.minZoom),o(),S(e.options.zoomLevels),o(6),C("Fetch Notes radius: ("+e.options.availableUnits.distance.get(t.value)+")"),o(),h("disabled",!e.facade.settings.ui.showNotes),_("ngModel",e.facade.settings.resources.notes.getRadius),o(),S(e.options.resources.noteRadius),o(7),_("ngModel",e.facade.settings.resources.notes.rootFilter),o(2),T(Mt.value?577:-1),o(3),_("ngModel",e.facade.settings.resources.notes.groupNameEdit),o(3),_("ngModel",e.facade.settings.resources.notes.groupRequiresPosition),o(4),_("ngModel",e.facade.settings.display.singleClickNoteDetails),o(13),S(e.facade.resourcePathList),o(2),T(e.app.featureFlags().radarApi?602:-1),o(19),_("ngModel",e.facade.settings.signalk.vessels),o(3),_("ngModel",e.facade.settings.signalk.atons),o(3),_("ngModel",e.facade.settings.signalk.aircraft),o(3),_("ngModel",e.facade.settings.signalk.sar),o(3),_("ngModel",e.facade.settings.signalk.meteo),o(7),_("ngModel",e.facade.settings.signalk.maxRadius),o(2),S(e.options.vessel.aisMaxRadius),o(17),_("ngModel",e.facade.settings.resources.video.enable),o(6),h("disabled",!e.facade.settings.resources.video.enable),_("ngModel",e.facade.settings.resources.video.url),o(2),T(vt.invalid?667:-1),o(3),_("ngModel",e.facade.settings.experiments)}},dependencies:[z,G,xe,H,Ae,Be,Ie,Oe,Z,be,ve,Ge,Ue,te,pt,ee,Re,Fe,Ne,Ye,Xe,je,qe,R,Ee,De,N,Te,$,Qe,ft,_t,ut,ct,Q,q,K,Ze,He,ze,J,Y,Ke,X,j,gt,et,$e,lt,rt,st,ae,ie],styles:["[_nghost-%COMP%] .mat-dialog-content{padding:0 4px}[_nghost-%COMP%] .mat-mdc-dialog-content{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;max-height:none;overflow:hidden}[_nghost-%COMP%] .mat-mdc-dialog-content .mat-mdc-tab-group, [_nghost-%COMP%] .mat-mdc-dialog-content .mat-mdc-tab-body-wrapper{flex:1 1 auto;min-height:0}.settings[_ngcontent-%COMP%] .setting-group-title[_ngcontent-%COMP%]{font-weight:700;font-size:10pt;font-family:Arial,Helvetica,sans-serif;padding:10px 0}.setting-card-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.settings[_ngcontent-%COMP%] .setting-card-row-item[_ngcontent-%COMP%]{padding-right:15px;flex:1 1 auto}.settings[_ngcontent-%COMP%] .setting-card-row-item.setting-card-row-stack[_ngcontent-%COMP%]{flex-basis:220px}.settings[_ngcontent-%COMP%] .setting-field-group-title[_ngcontent-%COMP%]{font-size:10pt;font-family:Arial,Helvetica,sans-serif;opacity:.7;line-height:1.4;min-height:1.4em;padding-bottom:2px}.settings[_ngcontent-%COMP%] .setting-field-group[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:10px}.settings[_ngcontent-%COMP%] .setting-field-group[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{flex:0 1 150px;min-width:80px}@media only screen and (max-width:599px){.settings[_ngcontent-%COMP%] .setting-group[_ngcontent-%COMP%]{padding:5px 5%}}@media only screen and (min-width:600px)and (max-width:959px),screen and (min-width:960px)and (max-width:1279px),screen and (min-width:1280px)and (max-width:1919px),screen and (min-width:1920px)and (max-width:5000px){.settings[_ngcontent-%COMP%] .setting-group[_ngcontent-%COMP%]{padding:5px 5%}}"]})};export{wt as SettingsDialog};
@@ -1 +1 @@
1
- import{a as t}from"./chunk-ZHXEZBYI.js";import"./chunk-FFPCEPCR.js";import"./chunk-BZGM3F3K.js";var o=t.String({minLength:1}),e=t.Unsafe(t.Array(t.Union([t.Number(),t.Undefined()]),{minItems:2,maxItems:3,prefixItems:[t.Number(),t.Number()]})),i=t.Object({position:e,name:t.Optional(t.String()),description:t.Optional(t.String()),href:t.Optional(t.String({pattern:"^/resources/waypoints/[^/]+$"}))}),n=t.Array(i,{minItems:2}),s=t.Object({routeId:o}),a=t.Object({name:t.Optional(t.String()),description:t.Optional(t.String()),points:n}),p=t.Object({routeId:o,points:n}),m=t.Object({routeId:o,name:t.Optional(t.String()),description:t.Optional(t.String()),dialog:t.Optional(t.Boolean())}),c=t.Object({ref:t.String({minLength:1})});export{a as CreateParams,p as ReplaceParams,s as RouteIdParams,m as SaveParams,c as ShowParams};
1
+ import{a as t}from"./chunk-MWETYHR7.js";import"./chunk-WARJYBQ7.js";import"./chunk-BZGM3F3K.js";var o=t.String({minLength:1}),e=t.Unsafe(t.Array(t.Union([t.Number(),t.Undefined()]),{minItems:2,maxItems:3,prefixItems:[t.Number(),t.Number()]})),i=t.Object({position:e,name:t.Optional(t.String()),description:t.Optional(t.String()),href:t.Optional(t.String({pattern:"^/resources/waypoints/[^/]+$"}))}),n=t.Array(i,{minItems:2}),s=t.Object({routeId:o}),a=t.Object({name:t.Optional(t.String()),description:t.Optional(t.String()),points:n}),p=t.Object({routeId:o,points:n}),m=t.Object({routeId:o,name:t.Optional(t.String()),description:t.Optional(t.String()),dialog:t.Optional(t.Boolean())}),c=t.Object({ref:t.String({minLength:1})});export{a as CreateParams,p as ReplaceParams,s as RouteIdParams,m as SaveParams,c as ShowParams};
@@ -0,0 +1 @@
1
+ import{Yb as a}from"./chunk-F7CTV67V.js";import"./chunk-O2XN7DIT.js";import"./chunk-CI2BDMX2.js";import"./chunk-M4EXFQJE.js";import"./chunk-UBRYY245.js";import"./chunk-A7RX2LBX.js";import"./chunk-ON6WKWFV.js";import"./chunk-Z2OUIJPL.js";import"./chunk-FX2SMI5S.js";import"./chunk-I3RHGD62.js";import"./chunk-EX2EX65O.js";import"./chunk-GJFI75CP.js";import"./chunk-LEEF5WZZ.js";import"./chunk-7FANVIZX.js";import"./chunk-ZYGXQZX6.js";import"./chunk-RYULE37H.js";import"./chunk-3PBISOLT.js";import"./chunk-MWETYHR7.js";import"./chunk-WARJYBQ7.js";import"./chunk-BZGM3F3K.js";export{a as GeoJSONImportDialog};
@@ -1 +1 @@
1
- import{A,B,C,D,E,F,G,H,I,J,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-6W3TVG4T.js";import"./chunk-FFPCEPCR.js";import"./chunk-BZGM3F3K.js";export{e as Assert,d as AssertError,b as Check,h as Clean,f as Clone,j as Convert,u as Create,t as CreateError,o as Decode,m as DecodeError,n as DecodeUnsafe,k as Default,D as Delete,A as Diff,E as Edit,r as Encode,p as EncodeError,q as EncodeUnsafe,v as Equal,c as Errors,s as HasCodec,w as Hash,B as Insert,i as IsOptionalUndefined,z as Parse,x as ParseError,y as Parser,F as Patch,l as Pipeline,a as Pointer,H as Repair,g as UnionPrioritySort,G as UnionScoreSelect,C as Update,I as Value,J as default};
1
+ import{A,B,C,D,E,F,G,H,I,J,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-LEEF5WZZ.js";import"./chunk-WARJYBQ7.js";import"./chunk-BZGM3F3K.js";export{e as Assert,d as AssertError,b as Check,h as Clean,f as Clone,j as Convert,u as Create,t as CreateError,o as Decode,m as DecodeError,n as DecodeUnsafe,k as Default,D as Delete,A as Diff,E as Edit,r as Encode,p as EncodeError,q as EncodeUnsafe,v as Equal,c as Errors,s as HasCodec,w as Hash,B as Insert,i as IsOptionalUndefined,z as Parse,x as ParseError,y as Parser,F as Patch,l as Pipeline,a as Pointer,H as Repair,g as UnionPrioritySort,G as UnionScoreSelect,C as Update,I as Value,J as default};