@mxtommy/kip 4.8.4 → 4.8.5

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 (64) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/package.json +1 -1
  3. package/plugin/history-series.service.js +637 -0
  4. package/plugin/index.js +1322 -0
  5. package/plugin/kip-series-contract.js +31 -0
  6. package/plugin/openApi.json +855 -0
  7. package/plugin/sqlite-history-storage.service.js +1124 -0
  8. package/public/assets/help-docs/ais-radar.md +261 -0
  9. package/public/assets/help-docs/dashboards.md +1 -1
  10. package/public/assets/help-docs/menu.json +17 -2
  11. package/public/{chunk-Co2wVrD6.js → chunk-0ijGpqkR.js} +1 -1
  12. package/public/{chunk-JhFkJS7i.js → chunk-6MiGh2Ts.js} +1 -1
  13. package/public/{chunk-DIl1k00y.js → chunk-7QXXQf2h.js} +1 -1
  14. package/public/{chunk-CYYBxjrc.js → chunk-B4Wxwb2y.js} +1 -1
  15. package/public/{chunk-q9NoPvcx.js → chunk-BAVmyVwG.js} +1 -1
  16. package/public/{chunk-BfiyH3nV.js → chunk-BOlUTHo6.js} +1 -1
  17. package/public/{chunk-x7L6DXVK.js → chunk-BTv5PhTr.js} +1 -1
  18. package/public/{chunk-BeM64etA.js → chunk-BZG04c3j.js} +1 -1
  19. package/public/{chunk-0z3nIRXw.js → chunk-BaGEtCmz.js} +1 -1
  20. package/public/{chunk-otzyItXL.js → chunk-Bbyk4dOu.js} +1 -1
  21. package/public/{chunk-CCfhzpE8.js → chunk-Be5KcT7R.js} +1 -1
  22. package/public/{chunk-BFpzxIIT.js → chunk-Bp1YVCJL.js} +1 -1
  23. package/public/{chunk-CLs_NL1y.js → chunk-BwYOFdBA.js} +1 -1
  24. package/public/{chunk-D-_-GUVr.js → chunk-Bx77STup.js} +1 -1
  25. package/public/{chunk-COI6IBXH.js → chunk-ByC_hFSP.js} +1 -1
  26. package/public/{chunk-CIGP2YJm.js → chunk-ByFzHU1s.js} +1 -1
  27. package/public/{chunk-CXvWM_vF.js → chunk-BzH86te1.js} +1 -1
  28. package/public/{chunk-CxPx4NZv.js → chunk-C7ax8Sqz.js} +1 -1
  29. package/public/{chunk-CoCQ3DW2.js → chunk-C89yhdsn.js} +1 -1
  30. package/public/{chunk-BTOTKeBo.js → chunk-CJhkckXA.js} +1 -1
  31. package/public/{chunk-BUguZ7cK.js → chunk-CLIWxVhS.js} +1 -1
  32. package/public/{chunk-eQ1pa34Q.js → chunk-CQtqkz1Y.js} +1 -1
  33. package/public/{chunk-BIb-xYiS.js → chunk-CRy9Da7a.js} +1 -1
  34. package/public/{chunk-Do8wqING.js → chunk-CcaPRVAZ.js} +1 -1
  35. package/public/{chunk-BjINKQ03.js → chunk-CdNfAZ0G.js} +1 -1
  36. package/public/{chunk-CLTHuhlN.js → chunk-Cj0AJQ8U.js} +1 -1
  37. package/public/{chunk-B9nVBlGj.js → chunk-CkFpNfxN.js} +1 -1
  38. package/public/{chunk-B09jfNia.js → chunk-Cn9j0-tJ.js} +1 -1
  39. package/public/{chunk-_zRMMvCu.js → chunk-Co8V0LUu.js} +1 -1
  40. package/public/{chunk-ibauGmSP.js → chunk-CteyWXZ_.js} +1 -1
  41. package/public/{chunk-C6b8CVno.js → chunk-CuPmfpgh.js} +1 -1
  42. package/public/{chunk-DmkAKXR1.js → chunk-CwGTKplC.js} +1 -1
  43. package/public/{chunk-DPnbM-aB.js → chunk-CzEDfe2A.js} +1 -1
  44. package/public/{chunk-DUEKoZhd.js → chunk-D1Yncgg5.js} +1 -1
  45. package/public/{chunk-DTN-sa1K.js → chunk-D63LEt5t.js} +1 -1
  46. package/public/{chunk-BpcNrtxJ.js → chunk-DN39qO63.js} +1 -1
  47. package/public/{chunk-szQs8fiq.js → chunk-DNbLx4NZ.js} +1 -1
  48. package/public/{chunk-D1HYfaL_.js → chunk-DRPjASjZ.js} +1 -1
  49. package/public/{chunk-CyVRpGoJ.js → chunk-Dddd8rAh.js} +1 -1
  50. package/public/{chunk-C_OZJltF.js → chunk-DiDkZnhZ.js} +1 -1
  51. package/public/{chunk-CHAFm_nM.js → chunk-DonRL_4T.js} +1 -1
  52. package/public/{chunk-BJ-wyixK.js → chunk-DufX2AHa.js} +1 -1
  53. package/public/{chunk-07zHjmg-.js → chunk-DxS7HN4G.js} +1 -1
  54. package/public/{chunk-BLEZOsfR.js → chunk-Fy40z1B2.js} +1 -1
  55. package/public/{chunk-OeQDZKFO.js → chunk-MO2v041V.js} +1 -1
  56. package/public/{chunk-BuvyF0y5.js → chunk-MakCt36b.js} +1 -1
  57. package/public/{chunk-BZx964-p.js → chunk-TdI_E-cf.js} +1 -1
  58. package/public/{chunk-B0D54iJs.js → chunk-TneLdWrI.js} +1 -1
  59. package/public/{chunk-BN7A4g6c.js → chunk-YZWhRxa9.js} +1 -1
  60. package/public/{chunk-CQMVIDcp.js → chunk-_toW-rHA.js} +1 -1
  61. package/public/{chunk-B0eE4udE.js → chunk-tbyiK3Ur.js} +1 -1
  62. package/public/{chunk-D2953Rfp.js → chunk-urAQA4U_.js} +1 -1
  63. package/public/index.html +1 -1
  64. package/public/{main-YKDNK5VZ.js → main-F7NMHHV4.js} +4 -4
@@ -1 +1 @@
1
- import {e as e$1}from'./chunk-DPnbM-aB.js';import {g as ge$1}from'./chunk-TakPRI3t.js';import {e9 as a,d1 as Hj,w,du as p,aS as De,bu as ut,aY as xe,D as Dt,$ as $j,v as vt,dx as n$1,F as Fa,dn as ge,a_ as Gp,cv as G,cw as z,J as JD,dC as x,c as $h,cn as wd,_ as _w,B as Bh,e as EE,M as Mw,f as eg,K as Kw,P as Pi,T as TT,u as ul}from'./main-YKDNK5VZ.js';import {c,e}from'./chunk-BIb-xYiS.js';var pe=["solarSvg"];function he(l,e){l&1&&(Pi(0,"div",3)(1,"div",4),TT(2,"No solar chargers detected"),ul(),Pi(3,"div",5),TT(4,"Check Signal K solar paths or select chargers in widget settings."),ul()());}var te=class l{static SOLAR_DESCRIPTOR=a("widget-solar-charger");static SELF_ROOT_PATH=(()=>{let e=l.SOLAR_DESCRIPTOR?.selfRootPath;if(!e)throw new Error("[WidgetSolarChargerComponent] Descriptor missing or selfRootPath not set; check widget registration.");return e})();static ROOT_PATTERN=`${l.SELF_ROOT_PATH}.*`;id=Hj.required();type=Hj.required();theme=Hj.required();renderMode=Hj(null);static DEFAULT_CONFIG={color:"contrast",ignoreZones:false,solarCharger:{trackedDevices:[],optionsById:{}}};static VIEWBOX_WIDTH=200;static CARD_HEIGHT=100;static CARD_GAP=8;static SOLAR_PANEL_SYMBOL_WIDTH=158.90796;static SOLAR_PANEL_SYMBOL_HEIGHT=94.949027;static SOLAR_PANEL_SCALE=.77;static SOLAR_PANEL_TRANSLATE_X=-36;static SOLAR_PANEL_TRANSLATE_Y=0;static SOLAR_PANEL_X=(135+l.SOLAR_PANEL_TRANSLATE_X)*l.SOLAR_PANEL_SCALE;static SOLAR_PANEL_Y=(0+l.SOLAR_PANEL_TRANSLATE_Y)*l.SOLAR_PANEL_SCALE;static SOLAR_PANEL_WIDTH=l.SOLAR_PANEL_SYMBOL_WIDTH*l.SOLAR_PANEL_SCALE;static SOLAR_PANEL_HEIGHT=l.SOLAR_PANEL_SYMBOL_HEIGHT*l.SOLAR_PANEL_SCALE;static PATH_BATCH_WINDOW_MS=500;runtime=w(p);data=w(De);units=w(ut);destroyRef=w(xe);displayLabel=Dt(()=>{let e=this.visibleSolarUnits();return e.length!==1?"Solar Chargers":this.resolveTitleText(e[0])});labelColor=Dt(()=>{let e=this.theme();return e?c(this.colorRole(),e).dim:"var(--kip-contrast-dim-color)"});svgRef=$j.required("solarSvg");svg;layer;glowFilterId="";renderFrameId=null;pendingRenderSnapshot=null;pathBatchTimerId=null;initialPathPaintDone=false;pendingPathUpdates=new Map;discoveredSolarIds=vt([]);trackedDevices=vt([]);optionsById=vt({});cardMode=vt({displayMode:"full",metrics:["panelVoltage","panelCurrent","voltage","current"]});chargersByKey=vt({});visibleSolarKeys=Dt(()=>{let e=this.trackedDevices();if(e.length)return e.map(a=>a.key);let r=this.chargersByKey(),t=new Set(this.discoveredSolarIds());return Object.keys(r).filter(a=>{let s=r[a];return !!s&&t.has(s.id)}).sort((a,s)=>a.localeCompare(s))});visibleSolarUnits=Dt(()=>{let e=this.visibleSolarKeys(),r=this.chargersByKey();return e.map(t=>r[t]).filter(t=>!!t)});activeDisplayMode=Dt(()=>this.renderMode()??this.cardMode().displayMode??"full");isCompactCardMode=Dt(()=>this.activeDisplayMode()==="compact");colorRole=Dt(()=>this.runtime.options()?.color??"contrast");ignoreZones=Dt(()=>this.runtime.options()?.ignoreZones??false);widgetColors=Dt(()=>{let e=this.theme();return e?c(this.colorRole(),e):null});displayModels=Dt(()=>{let e$1=this.visibleSolarUnits(),r=this.optionsById(),t=this.theme(),a=this.widgetColors(),s=this.ignoreZones()??false,i={};for(let n of e$1){let u=r[n.id]?.arrayRatedPowerW??null,c=n.panelPower??null,g=this.formatPowerAuto(c),m=u&&u>0&&c!=null?Math.max(0,Math.min(1,c/u)):0,d=n.panelPowerState??n.panelCurrentState??null,o=n.currentState??null,p=e(d,a?.dim??"var(--kip-contrast-dim-color)",t,s),T=!s&&(d===n$1.Warn||d===n$1.Alarm||d===n$1.Alert),y=e(o,"var(--kip-contrast-color)",t,s),w=this.resolveMostSevereState(n.voltageState??null,n.temperatureState??null),v=e(w,"var(--kip-contrast-color)",t,s),S=this.resolveMostSevereState(n.panelCurrentState??null,n.panelVoltageState??null,n.panelTemperatureState??null),re=e(S,"var(--kip-contrast-color)",t,s),ae=!s&&(S===n$1.Warn||S===n$1.Alarm||S===n$1.Alert),ne=e(n.loadCurrentState??null,"var(--kip-contrast-color)",t,s),I=this.valueOrDash(n.controllerMode),V=this.isRelayActive(n.load),oe=V?`${this.formatRelayState(n.load)}\xA0\xA0\xA0\xA04.5A${this.formatCurrent(n.loadCurrent)}`.trim():"",se=n.yieldToday!=null?`${this.formatEnergyYield(n.yieldToday)} Today`:"",ie=n.yieldYesterday!=null?`${this.formatEnergyYield(n.yieldYesterday)} Yesterday`:"",le=n.deviceKey??n.id;i[le]={id:n.id,source:n.source??null,deviceKey:n.deviceKey,titleText:this.resolveTitleText(n),panelPowerText:g.value,panelPowerUnitText:g.unit,panelPowerColor:p,panelPowerGlowEnabled:T,chargerCurrentTextColor:y,chargerMetaTextColor:v,panelValuesTextColor:re,panelValuesGlowEnabled:ae,gaugeProgress:m,gaugeSectionText:`${this.formatVoltage(n.panelVoltage)}`+(n.panelCurrent!=null?`, ${this.formatCurrent(n.panelCurrent)}`:"")+(n.panelTemperature!=null?`, ${this.formatTemperature(n.panelTemperature)}`:""),yieldTodayText:se,yieldYesterdayText:ie,chargerSectionCurrent:`${this.formatCurrent(n.current)}`,chargerMode:`${I.charAt(0).toUpperCase()+I.slice(1)} mode`,chargerSectionMetadata:`${n.voltage!=null?this.formatVoltage(n.voltage):""}\xA0\xA0\xA0\xA0${n.temperature!=null?this.formatTemperature(n.temperature):""}`.trim(),relaySectionVisible:V,relaySectionText:oe,relayValuesTextColor:ne};}return i});hasChargers=Dt(()=>this.visibleSolarUnits().length>0);constructor(){Fa(()=>{let r=this.runtime.options();r&&ge(()=>{this.applyConfig(r);});}),Fa(()=>{let r=this.displayModels(),t=this.visibleSolarUnits(),a=this.widgetColors();!this.svg||!a||this.requestRender({solarUnits:t,displayModels:r,widgetColors:a});});let e=this.data.subscribePathTreeWithInitial(l.ROOT_PATTERN);if(e.initial.length){for(let r of e.initial)this.enqueuePathUpdate(r,true);this.flushPendingPathUpdates(),this.initialPathPaintDone=true;}e.live$.pipe(Gp(this.destroyRef)).subscribe(r=>{this.enqueuePathUpdate(r);});}ngAfterViewInit(){this.initializeSvg(),this.requestRender();}ngOnDestroy(){this.pathBatchTimerId!==null&&(clearTimeout(this.pathBatchTimerId),this.pathBatchTimerId=null),this.renderFrameId!==null&&(cancelAnimationFrame(this.renderFrameId),this.renderFrameId=null),this.pendingRenderSnapshot=null;}initializeSvg(){this.svg=ge$1(this.svgRef().nativeElement),this.svg.attr("viewBox",`0 0 ${l.VIEWBOX_WIDTH} ${l.CARD_HEIGHT}`).attr("preserveAspectRatio","xMidYMid meet").attr("role","img").attr("aria-label","Solar Charger View"),this.glowFilterId=`solar-panel-glow-${this.id()}`;let r=this.svg.append("defs").append("filter").attr("id",this.glowFilterId).attr("x","-30%").attr("y","-30%").attr("width","160%").attr("height","160%");r.append("feFlood").attr("class","solar-panel-glow-flood").attr("flood-color","var(--kip-widget-card-background-color)").attr("flood-opacity",.9).attr("result","color"),r.append("feComposite").attr("in","color").attr("in2","SourceGraphic").attr("operator","in").attr("result","coloredGlow"),r.append("feGaussianBlur").attr("in","coloredGlow").attr("stdDeviation",2).attr("result","blur");let t=r.append("feMerge");t.append("feMergeNode").attr("in","blur"),t.append("feMergeNode").attr("in","blur"),t.append("feMergeNode").attr("in","SourceGraphic"),this.layer=this.svg.append("g").attr("class","solar-layer");}applyConfig(e){let r=this.resolveSolarConfig(e);this.trackedDevices.set(r.trackedDevices??[]),this.reprojectSnapshotsToDeviceKeys(r.trackedDevices??[]),this.optionsById.set(r.optionsById??{}),this.cardMode.set(this.normalizeCardMode(r.cardMode));}resolveSolarConfig(e){let r=e.solarCharger,t=this.normalizeTrackedDevices(r?.trackedDevices),a=this.normalizeOptionsById(r?.optionsById);return {trackedDevices:t,optionsById:a,cardMode:this.normalizeCardMode(r?.cardMode)}}normalizeTrackedDevices(e){if(!Array.isArray(e))return [];let r=new Map;return e.forEach(t=>{if(typeof t=="string"){let u=t.trim();if(!u)return;let c=`${u}||default`;r.set(c,{id:u,source:"default",key:c});return}if(!t||typeof t!="object")return;let a=t,s=typeof a.id=="string"?a.id.trim():"",i=typeof a.source=="string"?a.source.trim():"default";if(!s||!i)return;let n=typeof a.key=="string"&&a.key.trim().length>0?a.key.trim():`${s}||${i}`;r.set(n,{id:s,source:i,key:n});}),[...r.values()].sort((t,a)=>t.key.localeCompare(a.key))}reprojectSnapshotsToDeviceKeys(e){if(!e.length)return;let r=new Map;e.forEach(t=>{let a=r.get(t.id)??[];a.push(t.key),r.set(t.id,a);}),this.chargersByKey.update(t=>{let a=t,s=false;return r.forEach((i,n)=>{let u=t[n];if(u){for(let c of i){if(t[c])continue;let g=e.find(m=>m.key===c);s||(a=G({},t),s=true),a[c]=z(G({},u),{source:g?.source??null,deviceKey:c});}s&&a[n]?.deviceKey===void 0&&delete a[n];}}),s?a:t});}normalizeCardMode(e){let r=e&&typeof e=="object"?e:null,t=this.normalizeStringList(r?.metrics);return {displayMode:r?.displayMode==="compact"?"compact":"full",metrics:t.length?t:["panelVoltage","panelCurrent","voltage","current"]}}normalizeStringList(e){if(!Array.isArray(e))return [];let r=new Set;return e.forEach(t=>{if(typeof t!="string")return;let a=t.trim();a.length>0&&r.add(a);}),[...r].sort((t,a)=>t.localeCompare(a))}normalizeOptionsById(e){if(!e||typeof e!="object")return {};let r=Object.entries(e),t={};return r.forEach(([a,s])=>{let i=this.normalizeOptionalString(a);if(!i)return;let n=s?.arrayRatedPowerW;t[i]={arrayRatedPowerW:typeof n=="number"&&Number.isFinite(n)?n:null};}),t}normalizeOptionalString(e){if(typeof e!="string")return null;let r=e.trim();return r.length>0?r:null}enqueuePathUpdate(e,r=false){let t=this.parseSolarPath(e.path);if(!t)return;let{id:a,key:s}=t,i=e.update?.data?.value??null,n=e.update?.state??null,u=`${a}::${s}`;if(this.pendingPathUpdates.set(u,{id:a,key:s,value:i,state:n}),!r){if(!this.initialPathPaintDone){this.initialPathPaintDone=true,this.flushPendingPathUpdates();return}this.pathBatchTimerId===null&&(this.pathBatchTimerId=window.setTimeout(()=>{this.pathBatchTimerId=null,this.flushPendingPathUpdates();},l.PATH_BATCH_WINDOW_MS));}}flushPendingPathUpdates(){if(!this.pendingPathUpdates.size)return;let e=Array.from(this.pendingPathUpdates.values());this.pendingPathUpdates.clear(),new Set(e.map(t=>t.id)).forEach(t=>this.trackDiscoveredSolar(t)),this.chargersByKey.update(t=>{let a=t,s=false,i=this.trackedDevices(),n=i.length>0,u=new Map;n&&i.forEach(c=>{let g=u.get(c.id)??[];g.push(c.key),u.set(c.id,g);});for(let c of e){let g=n?u.get(c.id)??[]:[c.id];for(let m of g){let d=i.find(S=>S.key===m),o=a[m]??{id:c.id,source:d?.source??null,deviceKey:n?m:void 0},p=G({},o),T=this.applyChargerValue(p,c.key,c.value,c.state),y=false,w=this.resolvePowerValue(p.rawBatteryPower,p.voltage,p.current);Object.is(p.power,w)||(p.power=w,y=true);let v=this.resolvePowerValue(p.rawPanelPower,p.panelVoltage,p.panelCurrent);Object.is(p.panelPower,v)||(p.panelPower=v,y=true),!(!T&&!y)&&(s||(a=G({},a),s=true),a[m]=p);}}return s?a:t});}parseSolarPath(e){let r=e.match(/self\.electrical\.solar\.([^.]+)\.(.+)$/);if(!r)return null;let t=r[1],a=r[2],s=this.normalizeSolarMetricKey(a);return {id:t,key:s}}normalizeSolarMetricKey(e){if(e.startsWith("controller."))return e.slice(11);switch(e){case "solar.power":return "panelPower";case "solar.voltage":return "panelVoltage";case "solar.current":return "panelCurrent";case "solar.temperature":return "panelTemperature";case "charge.status":return "controllerMode";default:return e}}trackDiscoveredSolar(e){let r=this.discoveredSolarIds();r.includes(e)||this.discoveredSolarIds.set([...r,e].sort());}applyChargerValue(e,r,t,a){switch(r){case "name":return this.setValue(e,"name",this.toStringValue(t));case "location":return this.setValue(e,"location",this.toStringValue(t));case "associatedBus":return this.setValue(e,"associatedBus",this.toStringValue(t));case "voltage":{let s=this.toNumber(t,"V"),i=!Object.is(e.voltageState??null,a??null);return Object.is(e.voltage,s)&&!i?false:(e.voltage=s,e.voltageState=a,true)}case "current":{let s=this.toNumber(t,"A"),i=!Object.is(e.currentState??null,a??null);return Object.is(e.current,s)&&!i?false:(e.current=s,e.currentState=a,true)}case "power":return this.setPowerPathValue(e,"rawBatteryPower",t);case "temperature":{let s=this.toNumber(t,this.units.getDefaults().Temperature),i=!Object.is(e.temperatureState??null,a??null);return Object.is(e.temperature,s)&&!i?false:(e.temperature=s,e.temperatureState=a,true)}case "chargingAlgorithm":return this.setValue(e,"chargingAlgorithm",this.toStringValue(t));case "chargerRole":return this.setValue(e,"chargerRole",this.toStringValue(t));case "chargingMode":return this.setValue(e,"chargingMode",this.toStringValue(t));case "setpointVoltage":return this.setValue(e,"setpointVoltage",this.toNumber(t,"V"));case "setpointCurrent":return this.setValue(e,"setpointCurrent",this.toNumber(t,"A"));case "controllerMode":return this.setValue(e,"controllerMode",this.toStringValue(t));case "panelVoltage":{let s=this.toNumber(t,"V"),i=!Object.is(e.panelVoltageState??null,a??null);return Object.is(e.panelVoltage,s)&&!i?false:(e.panelVoltage=s,e.panelVoltageState=a,true)}case "panelCurrent":{let s=this.toNumber(t,"A"),i=!Object.is(e.panelCurrentState??null,a??null);return Object.is(e.panelCurrent,s)&&!i?false:(e.panelCurrent=s,e.panelCurrentState=a,true)}case "panelPower":{let s=this.toNumber(t,"W"),i=!Object.is(e.panelPowerState??null,a??null);return Object.is(e.rawPanelPower,s)&&!i?false:(e.rawPanelPower=s,e.panelPowerState=a,true)}case "yieldToday":return this.setValue(e,"yieldToday",this.toNumber(t,"kWh"));case "yieldYesterday":return this.setValue(e,"yieldYesterday",this.toNumber(t,"kWh"));case "panelTemperature":{let s=this.toNumber(t,this.units.getDefaults().Temperature),i=!Object.is(e.panelTemperatureState??null,a??null);return Object.is(e.panelTemperature,s)&&!i?false:(e.panelTemperature=s,e.panelTemperatureState=a,true)}case "load":case "loadState":case "load.state":return this.setValue(e,"load",t);case "loadCurrent":{let s=this.toNumber(t,"A"),i=!Object.is(e.loadCurrentState??null,a??null);return Object.is(e.loadCurrent,s)&&!i?false:(e.loadCurrent=s,e.loadCurrentState=a,true)}default:return false}}setPowerPathValue(e,r,t){let a=this.toNumber(t,"W");return this.setValue(e,r,a)}setValue(e,r,t){return Object.is(e[r],t)?false:(e[r]=t,true)}resolvePowerValue(e,r,t){if(e!=null)return e;if(r!=null&&t!=null)return r*t}requestRender(e){this.svg&&(this.pendingRenderSnapshot=e??this.buildRenderSnapshot(),this.pendingRenderSnapshot&&this.renderFrameId===null&&(this.renderFrameId=requestAnimationFrame(()=>{this.renderFrameId=null;let r=this.pendingRenderSnapshot;this.pendingRenderSnapshot=null,r&&this.render(r);})));}buildRenderSnapshot(){let e=this.widgetColors();return e?{solarUnits:this.visibleSolarUnits(),displayModels:this.displayModels(),widgetColors:e}:null}render(e){if(!this.layer||!this.svg)return;let t=this.isCompactCardMode()?e$1:e$1,a=e.solarUnits.map((o,p)=>({key:o.deviceKey??o.id,model:e.displayModels[o.deviceKey??o.id],y:p*(l.CARD_HEIGHT+l.CARD_GAP)})),s=a.length?a[a.length-1].y+l.CARD_HEIGHT:l.CARD_HEIGHT;this.svg.attr("viewBox",`0 0 ${l.VIEWBOX_WIDTH} ${s}`);let i=this.layer.selectAll("g.solar-card").data(a,o=>o.key),n=i.enter().append("g").attr("class","solar-card");n.append("text").attr("class","solar-charger-title");let u=n.append("text").attr("class","solar-charger-current");u.append("tspan").attr("class","current-metric-value"),u.append("tspan").attr("class","current-metric-unit"),n.append("text").attr("class","solar-charger"),n.append("text").attr("class","solar-charger-meta"),n.append("text").attr("class","solar-relay-label"),n.append("text").attr("class","solar-relay-values"),n.append("text").attr("class","solar-panel-values"),n.append("text").attr("class","solar-yield-label"),n.append("text").attr("class","solar-yield-today"),n.append("text").attr("class","solar-yield-yesterday");let c=n.append("g").attr("class","solar-panel-icon").attr("transform",`translate(${l.SOLAR_PANEL_X}, ${l.SOLAR_PANEL_Y})`);c.append("use").attr("class","solar-panel-bg").attr("href","assets/svg/symbols.svg#solar-panel-cells").attr("x",0).attr("y",0).attr("width",l.SOLAR_PANEL_WIDTH).attr("height",l.SOLAR_PANEL_HEIGHT);let g=c.append("g").attr("class","solar-panel-progress");g.append("defs").append("clipPath").attr("clipPathUnits","objectBoundingBox").attr("id",o=>`solar-panel-clip-${this.id()}-${o.key}`).append("rect").attr("x",0).attr("y",0).attr("height",1).attr("width",0),g.append("use").attr("class","solar-panel-colored").attr("href","assets/svg/symbols.svg#solar-panel-cells").attr("x",0).attr("y",0).attr("width",l.SOLAR_PANEL_WIDTH).attr("height",l.SOLAR_PANEL_HEIGHT).attr("clip-path",o=>`url(#solar-panel-clip-${this.id()}-${o.key})`);let m=n.append("text").attr("class","solar-panel-power");m.append("tspan").attr("class","solar-panel-power-value"),m.append("tspan").attr("class","solar-panel-power-unit");let d=n.merge(i);d.attr("transform",o=>`translate(0, ${o.y})`),e.solarUnits.length>1?d.select("text.solar-charger-title").attr("x",t.titleX).attr("y",t.titleY).attr("font-size",t.titleFontSize).attr("fill","var(--kip-contrast-dim-color)").text(o=>e.displayModels[o.key]?.titleText??this.displayName(o.model)):d.select("text.solar-charger-title").text(""),d.select("text.solar-charger-current").attr("x",t.lineOneX).attr("y",t.lineOneY).attr("font-size",t.lineOneFontSize).attr("fill",o=>o.model.chargerCurrentTextColor),d.select("tspan.current-metric-value").text(o=>o.model.chargerSectionCurrent),d.select("tspan.current-metric-unit").attr("dx",1).attr("font-size",12).attr("fill","var(--kip-contrast-color)").text("A"),d.select("text.solar-charger").attr("x",5).attr("y",40).attr("fill","var(--kip-contrast-color)").attr("font-size",8).attr("opacity",.8).text(o=>o.model.chargerMode),d.select("text.solar-charger-meta").attr("x",t.metaLeftX).attr("y",48).attr("font-size",t.metaFontSize).attr("opacity",.8).attr("fill",o=>o.model.chargerMetaTextColor).text(o=>o.model.chargerSectionMetadata),d.select("text.solar-relay-label").attr("x",5).attr("y",73).attr("font-size",10).attr("fill","var(--kip-contrast-color)").text(o=>o.model.relaySectionVisible?"Load Output":""),d.select("text.solar-relay-values").attr("x",10).attr("y",83).attr("font-size",t.lineTwoFontSize).attr("fill",o=>o.model.relayValuesTextColor).attr("opacity",o=>o.model.relaySectionVisible?.8:0).text(o=>o.model.relaySectionText),d.select("g.solar-panel-icon").attr("transform",`translate(${l.SOLAR_PANEL_X}, ${l.SOLAR_PANEL_Y})`),d.select("use.solar-panel-bg").attr("color","var(--kip-contrast-dimmer-color)"),d.select("g.solar-panel-progress").each((o,p,T)=>{ge$1(T[p]).select("rect").attr("x",0).attr("y",0).attr("height",1).attr("width",Math.max(0,Math.min(1,o.model.gaugeProgress))),this.debugSolarLayout(o.key,o.model.gaugeProgress);}),d.select("use.solar-panel-colored").attr("color",o=>o.model.panelPowerColor),d.select("text.solar-panel-power").attr("x",137.5).attr("y",t.primaryY).attr("text-anchor","middle").attr("font-size",t.primaryFontSize).attr("font-weight",t.primaryFontWeight).attr("filter",o=>o.model.panelPowerGlowEnabled?`url(#${this.glowFilterId})`:null).attr("fill","var(--kip-contrast-color)"),d.select("tspan.solar-panel-power-value").text(o=>o.model.panelPowerText),d.select("tspan.solar-panel-power-unit").attr("dx",o=>o.model.panelPowerUnitText?1:0).attr("font-size",20).attr("font-weight",500).attr("fill","var(--kip-contrast-color)").attr("opacity",o=>o.model.panelPowerUnitText?1:0).text(o=>o.model.panelPowerUnitText),d.select("text.solar-panel-values").attr("x",137.5).attr("y",60).attr("text-anchor","middle").attr("font-size",10).attr("font-weight",500).attr("opacity",.8).attr("filter",o=>o.model.panelValuesGlowEnabled?`url(#${this.glowFilterId})`:null).attr("fill",o=>o.model.panelValuesTextColor).text(o=>o.model.gaugeSectionText).raise(),d.select("text.solar-yield-label").attr("x",104).attr("y",88).attr("text-anchor","middle").attr("font-size",8).attr("fill","var(--kip-contrast-dim-color)").attr("opacity",.8).text("Yield (kWh):"),d.select("text.solar-yield-today").attr("x",130).attr("y",88).attr("text-anchor","start").attr("font-size",8).attr("fill","var(--kip-contrast-dim-color)").attr("opacity",.8).text(o=>o.model.yieldTodayText),d.select("text.solar-yield-yesterday").attr("x",130).attr("y",97.5).attr("text-anchor","start").attr("font-size",8).attr("fill","var(--kip-contrast-dim-color)").attr("opacity",.8).text(o=>o.model.yieldYesterdayText),i.exit().remove();}displayName(e){return e.name?.trim()||e.id}resolveTitleText(e){return e.name||`Solar ${e.id}`}toNumber(e,r){return e==null||typeof e!="number"?null:this.units.convertToUnit(r,e)??e}isRelayActive(e){if(e==null)return false;if(typeof e=="boolean")return e;if(typeof e=="number")return e>0;let r=e.trim().toLowerCase();return !(!r||r==="off"||r==="false"||r==="0")}toStringValue(e){return typeof e=="string"?e:e==null?null:`${e}`}valueOrDash(e){return e===null?"--":e===void 0?"":e}formatVoltage(e){return e===null?"--":e===void 0?"":`${e.toFixed(1)}V`}formatCurrent(e){return e===null?"--":e===void 0?"":`${e.toFixed(1)}`}formatTemperature(e){return e===null?"--":e===void 0?"":`${e.toFixed(1)} ${this.units.getDefaults().Temperature==="celsius"?"\xB0C":"\xB0F"}`}formatRelayState(e){return e===null?"--":e===void 0?"":typeof e=="boolean"?e?"On":"Off":typeof e=="number"?e>0?"On":"Off":e}formatPowerAuto(e){return e===null?{value:"--",unit:""}:e===void 0?{value:"",unit:""}:Math.abs(e)>=1e3?{value:(e/1e3).toFixed(2),unit:"kW"}:{value:e.toFixed(0),unit:"W"}}formatEnergyYield(e){return e===null?"--":e===void 0?"":`${e.toFixed(2)}`}resolveMostSevereState(...e){let r=null,t={[n$1.Normal]:0,[n$1.Nominal]:1,[n$1.Alert]:2,[n$1.Warn]:3,[n$1.Alarm]:4,[n$1.Emergency]:5};for(let a of e)a&&(!r||t[a]>t[r])&&(r=a);return r}debugSolarLayout(e,r){typeof window<"u"&&window.__KIP_DEBUG_SOLAR_LAYOUT===true&&console.debug("[solar-layout]",{id:e,gaugeProgress:r,panelX:l.SOLAR_PANEL_X,panelY:l.SOLAR_PANEL_Y,panelWidth:l.SOLAR_PANEL_WIDTH,panelHeight:l.SOLAR_PANEL_HEIGHT,clippedWidth:l.SOLAR_PANEL_WIDTH*r});}static \u0275fac=function(r){return new(r||l)};static \u0275cmp=JD({type:l,selectors:[["widget-solar-charger"]],viewQuery:function(r,t){r&1&&eg(t.svgRef,pe,5),r&2&&Kw();},inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"],renderMode:[1,"renderMode"]},decls:4,vars:3,consts:[["solarSvg",""],[3,"text","color"],["aria-hidden","false",1,"solar-svg"],[1,"solar-empty"],[1,"solar-empty-title"],[1,"solar-empty-sub"]],template:function(r,t){r&1&&($h(0,"widget-title",1),wd(),$h(1,"svg",2,0),_w(3,he,5,0,"div",3)),r&2&&(Bh("text",t.displayLabel())("color",t.labelColor()),EE(3),Mw(t.hasChargers()?-1:3));},dependencies:[x],styles:["[_nghost-%COMP%]{display:block;height:100%;width:100%;position:relative;overflow:hidden}.solar-svg[_ngcontent-%COMP%]{display:block;position:absolute;left:0;right:0;top:15%;height:85%;width:100%;overflow:hidden;z-index:20;padding:0 10px 10px}.solar-empty[_ngcontent-%COMP%]{position:absolute;inset:0;margin:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:var(--mat-sys-on-surface);background:color-mix(in srgb,var(--kip-widget-card-background-color) 92%,transparent)}.solar-empty-title[_ngcontent-%COMP%]{font-size:18px;font-weight:600}.solar-empty-sub[_ngcontent-%COMP%]{font-size:14px;opacity:.8}"]})};export{te as WidgetSolarChargerComponent};
1
+ import {e as e$1}from'./chunk-CzEDfe2A.js';import {g as ge$1}from'./chunk-TakPRI3t.js';import {e9 as a,d1 as Hj,w,du as p,aS as De,bu as ut,aY as xe,D as Dt,$ as $j,v as vt,dx as n$1,F as Fa,dn as ge,a_ as Gp,cv as G,cw as z,J as JD,dC as x,c as $h,cn as wd,_ as _w,B as Bh,e as EE,M as Mw,f as eg,K as Kw,P as Pi,T as TT,u as ul}from'./main-F7NMHHV4.js';import {c,e}from'./chunk-CRy9Da7a.js';var pe=["solarSvg"];function he(l,e){l&1&&(Pi(0,"div",3)(1,"div",4),TT(2,"No solar chargers detected"),ul(),Pi(3,"div",5),TT(4,"Check Signal K solar paths or select chargers in widget settings."),ul()());}var te=class l{static SOLAR_DESCRIPTOR=a("widget-solar-charger");static SELF_ROOT_PATH=(()=>{let e=l.SOLAR_DESCRIPTOR?.selfRootPath;if(!e)throw new Error("[WidgetSolarChargerComponent] Descriptor missing or selfRootPath not set; check widget registration.");return e})();static ROOT_PATTERN=`${l.SELF_ROOT_PATH}.*`;id=Hj.required();type=Hj.required();theme=Hj.required();renderMode=Hj(null);static DEFAULT_CONFIG={color:"contrast",ignoreZones:false,solarCharger:{trackedDevices:[],optionsById:{}}};static VIEWBOX_WIDTH=200;static CARD_HEIGHT=100;static CARD_GAP=8;static SOLAR_PANEL_SYMBOL_WIDTH=158.90796;static SOLAR_PANEL_SYMBOL_HEIGHT=94.949027;static SOLAR_PANEL_SCALE=.77;static SOLAR_PANEL_TRANSLATE_X=-36;static SOLAR_PANEL_TRANSLATE_Y=0;static SOLAR_PANEL_X=(135+l.SOLAR_PANEL_TRANSLATE_X)*l.SOLAR_PANEL_SCALE;static SOLAR_PANEL_Y=(0+l.SOLAR_PANEL_TRANSLATE_Y)*l.SOLAR_PANEL_SCALE;static SOLAR_PANEL_WIDTH=l.SOLAR_PANEL_SYMBOL_WIDTH*l.SOLAR_PANEL_SCALE;static SOLAR_PANEL_HEIGHT=l.SOLAR_PANEL_SYMBOL_HEIGHT*l.SOLAR_PANEL_SCALE;static PATH_BATCH_WINDOW_MS=500;runtime=w(p);data=w(De);units=w(ut);destroyRef=w(xe);displayLabel=Dt(()=>{let e=this.visibleSolarUnits();return e.length!==1?"Solar Chargers":this.resolveTitleText(e[0])});labelColor=Dt(()=>{let e=this.theme();return e?c(this.colorRole(),e).dim:"var(--kip-contrast-dim-color)"});svgRef=$j.required("solarSvg");svg;layer;glowFilterId="";renderFrameId=null;pendingRenderSnapshot=null;pathBatchTimerId=null;initialPathPaintDone=false;pendingPathUpdates=new Map;discoveredSolarIds=vt([]);trackedDevices=vt([]);optionsById=vt({});cardMode=vt({displayMode:"full",metrics:["panelVoltage","panelCurrent","voltage","current"]});chargersByKey=vt({});visibleSolarKeys=Dt(()=>{let e=this.trackedDevices();if(e.length)return e.map(a=>a.key);let r=this.chargersByKey(),t=new Set(this.discoveredSolarIds());return Object.keys(r).filter(a=>{let s=r[a];return !!s&&t.has(s.id)}).sort((a,s)=>a.localeCompare(s))});visibleSolarUnits=Dt(()=>{let e=this.visibleSolarKeys(),r=this.chargersByKey();return e.map(t=>r[t]).filter(t=>!!t)});activeDisplayMode=Dt(()=>this.renderMode()??this.cardMode().displayMode??"full");isCompactCardMode=Dt(()=>this.activeDisplayMode()==="compact");colorRole=Dt(()=>this.runtime.options()?.color??"contrast");ignoreZones=Dt(()=>this.runtime.options()?.ignoreZones??false);widgetColors=Dt(()=>{let e=this.theme();return e?c(this.colorRole(),e):null});displayModels=Dt(()=>{let e$1=this.visibleSolarUnits(),r=this.optionsById(),t=this.theme(),a=this.widgetColors(),s=this.ignoreZones()??false,i={};for(let n of e$1){let u=r[n.id]?.arrayRatedPowerW??null,c=n.panelPower??null,g=this.formatPowerAuto(c),m=u&&u>0&&c!=null?Math.max(0,Math.min(1,c/u)):0,d=n.panelPowerState??n.panelCurrentState??null,o=n.currentState??null,p=e(d,a?.dim??"var(--kip-contrast-dim-color)",t,s),T=!s&&(d===n$1.Warn||d===n$1.Alarm||d===n$1.Alert),y=e(o,"var(--kip-contrast-color)",t,s),w=this.resolveMostSevereState(n.voltageState??null,n.temperatureState??null),v=e(w,"var(--kip-contrast-color)",t,s),S=this.resolveMostSevereState(n.panelCurrentState??null,n.panelVoltageState??null,n.panelTemperatureState??null),re=e(S,"var(--kip-contrast-color)",t,s),ae=!s&&(S===n$1.Warn||S===n$1.Alarm||S===n$1.Alert),ne=e(n.loadCurrentState??null,"var(--kip-contrast-color)",t,s),I=this.valueOrDash(n.controllerMode),V=this.isRelayActive(n.load),oe=V?`${this.formatRelayState(n.load)}\xA0\xA0\xA0\xA04.5A${this.formatCurrent(n.loadCurrent)}`.trim():"",se=n.yieldToday!=null?`${this.formatEnergyYield(n.yieldToday)} Today`:"",ie=n.yieldYesterday!=null?`${this.formatEnergyYield(n.yieldYesterday)} Yesterday`:"",le=n.deviceKey??n.id;i[le]={id:n.id,source:n.source??null,deviceKey:n.deviceKey,titleText:this.resolveTitleText(n),panelPowerText:g.value,panelPowerUnitText:g.unit,panelPowerColor:p,panelPowerGlowEnabled:T,chargerCurrentTextColor:y,chargerMetaTextColor:v,panelValuesTextColor:re,panelValuesGlowEnabled:ae,gaugeProgress:m,gaugeSectionText:`${this.formatVoltage(n.panelVoltage)}`+(n.panelCurrent!=null?`, ${this.formatCurrent(n.panelCurrent)}`:"")+(n.panelTemperature!=null?`, ${this.formatTemperature(n.panelTemperature)}`:""),yieldTodayText:se,yieldYesterdayText:ie,chargerSectionCurrent:`${this.formatCurrent(n.current)}`,chargerMode:`${I.charAt(0).toUpperCase()+I.slice(1)} mode`,chargerSectionMetadata:`${n.voltage!=null?this.formatVoltage(n.voltage):""}\xA0\xA0\xA0\xA0${n.temperature!=null?this.formatTemperature(n.temperature):""}`.trim(),relaySectionVisible:V,relaySectionText:oe,relayValuesTextColor:ne};}return i});hasChargers=Dt(()=>this.visibleSolarUnits().length>0);constructor(){Fa(()=>{let r=this.runtime.options();r&&ge(()=>{this.applyConfig(r);});}),Fa(()=>{let r=this.displayModels(),t=this.visibleSolarUnits(),a=this.widgetColors();!this.svg||!a||this.requestRender({solarUnits:t,displayModels:r,widgetColors:a});});let e=this.data.subscribePathTreeWithInitial(l.ROOT_PATTERN);if(e.initial.length){for(let r of e.initial)this.enqueuePathUpdate(r,true);this.flushPendingPathUpdates(),this.initialPathPaintDone=true;}e.live$.pipe(Gp(this.destroyRef)).subscribe(r=>{this.enqueuePathUpdate(r);});}ngAfterViewInit(){this.initializeSvg(),this.requestRender();}ngOnDestroy(){this.pathBatchTimerId!==null&&(clearTimeout(this.pathBatchTimerId),this.pathBatchTimerId=null),this.renderFrameId!==null&&(cancelAnimationFrame(this.renderFrameId),this.renderFrameId=null),this.pendingRenderSnapshot=null;}initializeSvg(){this.svg=ge$1(this.svgRef().nativeElement),this.svg.attr("viewBox",`0 0 ${l.VIEWBOX_WIDTH} ${l.CARD_HEIGHT}`).attr("preserveAspectRatio","xMidYMid meet").attr("role","img").attr("aria-label","Solar Charger View"),this.glowFilterId=`solar-panel-glow-${this.id()}`;let r=this.svg.append("defs").append("filter").attr("id",this.glowFilterId).attr("x","-30%").attr("y","-30%").attr("width","160%").attr("height","160%");r.append("feFlood").attr("class","solar-panel-glow-flood").attr("flood-color","var(--kip-widget-card-background-color)").attr("flood-opacity",.9).attr("result","color"),r.append("feComposite").attr("in","color").attr("in2","SourceGraphic").attr("operator","in").attr("result","coloredGlow"),r.append("feGaussianBlur").attr("in","coloredGlow").attr("stdDeviation",2).attr("result","blur");let t=r.append("feMerge");t.append("feMergeNode").attr("in","blur"),t.append("feMergeNode").attr("in","blur"),t.append("feMergeNode").attr("in","SourceGraphic"),this.layer=this.svg.append("g").attr("class","solar-layer");}applyConfig(e){let r=this.resolveSolarConfig(e);this.trackedDevices.set(r.trackedDevices??[]),this.reprojectSnapshotsToDeviceKeys(r.trackedDevices??[]),this.optionsById.set(r.optionsById??{}),this.cardMode.set(this.normalizeCardMode(r.cardMode));}resolveSolarConfig(e){let r=e.solarCharger,t=this.normalizeTrackedDevices(r?.trackedDevices),a=this.normalizeOptionsById(r?.optionsById);return {trackedDevices:t,optionsById:a,cardMode:this.normalizeCardMode(r?.cardMode)}}normalizeTrackedDevices(e){if(!Array.isArray(e))return [];let r=new Map;return e.forEach(t=>{if(typeof t=="string"){let u=t.trim();if(!u)return;let c=`${u}||default`;r.set(c,{id:u,source:"default",key:c});return}if(!t||typeof t!="object")return;let a=t,s=typeof a.id=="string"?a.id.trim():"",i=typeof a.source=="string"?a.source.trim():"default";if(!s||!i)return;let n=typeof a.key=="string"&&a.key.trim().length>0?a.key.trim():`${s}||${i}`;r.set(n,{id:s,source:i,key:n});}),[...r.values()].sort((t,a)=>t.key.localeCompare(a.key))}reprojectSnapshotsToDeviceKeys(e){if(!e.length)return;let r=new Map;e.forEach(t=>{let a=r.get(t.id)??[];a.push(t.key),r.set(t.id,a);}),this.chargersByKey.update(t=>{let a=t,s=false;return r.forEach((i,n)=>{let u=t[n];if(u){for(let c of i){if(t[c])continue;let g=e.find(m=>m.key===c);s||(a=G({},t),s=true),a[c]=z(G({},u),{source:g?.source??null,deviceKey:c});}s&&a[n]?.deviceKey===void 0&&delete a[n];}}),s?a:t});}normalizeCardMode(e){let r=e&&typeof e=="object"?e:null,t=this.normalizeStringList(r?.metrics);return {displayMode:r?.displayMode==="compact"?"compact":"full",metrics:t.length?t:["panelVoltage","panelCurrent","voltage","current"]}}normalizeStringList(e){if(!Array.isArray(e))return [];let r=new Set;return e.forEach(t=>{if(typeof t!="string")return;let a=t.trim();a.length>0&&r.add(a);}),[...r].sort((t,a)=>t.localeCompare(a))}normalizeOptionsById(e){if(!e||typeof e!="object")return {};let r=Object.entries(e),t={};return r.forEach(([a,s])=>{let i=this.normalizeOptionalString(a);if(!i)return;let n=s?.arrayRatedPowerW;t[i]={arrayRatedPowerW:typeof n=="number"&&Number.isFinite(n)?n:null};}),t}normalizeOptionalString(e){if(typeof e!="string")return null;let r=e.trim();return r.length>0?r:null}enqueuePathUpdate(e,r=false){let t=this.parseSolarPath(e.path);if(!t)return;let{id:a,key:s}=t,i=e.update?.data?.value??null,n=e.update?.state??null,u=`${a}::${s}`;if(this.pendingPathUpdates.set(u,{id:a,key:s,value:i,state:n}),!r){if(!this.initialPathPaintDone){this.initialPathPaintDone=true,this.flushPendingPathUpdates();return}this.pathBatchTimerId===null&&(this.pathBatchTimerId=window.setTimeout(()=>{this.pathBatchTimerId=null,this.flushPendingPathUpdates();},l.PATH_BATCH_WINDOW_MS));}}flushPendingPathUpdates(){if(!this.pendingPathUpdates.size)return;let e=Array.from(this.pendingPathUpdates.values());this.pendingPathUpdates.clear(),new Set(e.map(t=>t.id)).forEach(t=>this.trackDiscoveredSolar(t)),this.chargersByKey.update(t=>{let a=t,s=false,i=this.trackedDevices(),n=i.length>0,u=new Map;n&&i.forEach(c=>{let g=u.get(c.id)??[];g.push(c.key),u.set(c.id,g);});for(let c of e){let g=n?u.get(c.id)??[]:[c.id];for(let m of g){let d=i.find(S=>S.key===m),o=a[m]??{id:c.id,source:d?.source??null,deviceKey:n?m:void 0},p=G({},o),T=this.applyChargerValue(p,c.key,c.value,c.state),y=false,w=this.resolvePowerValue(p.rawBatteryPower,p.voltage,p.current);Object.is(p.power,w)||(p.power=w,y=true);let v=this.resolvePowerValue(p.rawPanelPower,p.panelVoltage,p.panelCurrent);Object.is(p.panelPower,v)||(p.panelPower=v,y=true),!(!T&&!y)&&(s||(a=G({},a),s=true),a[m]=p);}}return s?a:t});}parseSolarPath(e){let r=e.match(/self\.electrical\.solar\.([^.]+)\.(.+)$/);if(!r)return null;let t=r[1],a=r[2],s=this.normalizeSolarMetricKey(a);return {id:t,key:s}}normalizeSolarMetricKey(e){if(e.startsWith("controller."))return e.slice(11);switch(e){case "solar.power":return "panelPower";case "solar.voltage":return "panelVoltage";case "solar.current":return "panelCurrent";case "solar.temperature":return "panelTemperature";case "charge.status":return "controllerMode";default:return e}}trackDiscoveredSolar(e){let r=this.discoveredSolarIds();r.includes(e)||this.discoveredSolarIds.set([...r,e].sort());}applyChargerValue(e,r,t,a){switch(r){case "name":return this.setValue(e,"name",this.toStringValue(t));case "location":return this.setValue(e,"location",this.toStringValue(t));case "associatedBus":return this.setValue(e,"associatedBus",this.toStringValue(t));case "voltage":{let s=this.toNumber(t,"V"),i=!Object.is(e.voltageState??null,a??null);return Object.is(e.voltage,s)&&!i?false:(e.voltage=s,e.voltageState=a,true)}case "current":{let s=this.toNumber(t,"A"),i=!Object.is(e.currentState??null,a??null);return Object.is(e.current,s)&&!i?false:(e.current=s,e.currentState=a,true)}case "power":return this.setPowerPathValue(e,"rawBatteryPower",t);case "temperature":{let s=this.toNumber(t,this.units.getDefaults().Temperature),i=!Object.is(e.temperatureState??null,a??null);return Object.is(e.temperature,s)&&!i?false:(e.temperature=s,e.temperatureState=a,true)}case "chargingAlgorithm":return this.setValue(e,"chargingAlgorithm",this.toStringValue(t));case "chargerRole":return this.setValue(e,"chargerRole",this.toStringValue(t));case "chargingMode":return this.setValue(e,"chargingMode",this.toStringValue(t));case "setpointVoltage":return this.setValue(e,"setpointVoltage",this.toNumber(t,"V"));case "setpointCurrent":return this.setValue(e,"setpointCurrent",this.toNumber(t,"A"));case "controllerMode":return this.setValue(e,"controllerMode",this.toStringValue(t));case "panelVoltage":{let s=this.toNumber(t,"V"),i=!Object.is(e.panelVoltageState??null,a??null);return Object.is(e.panelVoltage,s)&&!i?false:(e.panelVoltage=s,e.panelVoltageState=a,true)}case "panelCurrent":{let s=this.toNumber(t,"A"),i=!Object.is(e.panelCurrentState??null,a??null);return Object.is(e.panelCurrent,s)&&!i?false:(e.panelCurrent=s,e.panelCurrentState=a,true)}case "panelPower":{let s=this.toNumber(t,"W"),i=!Object.is(e.panelPowerState??null,a??null);return Object.is(e.rawPanelPower,s)&&!i?false:(e.rawPanelPower=s,e.panelPowerState=a,true)}case "yieldToday":return this.setValue(e,"yieldToday",this.toNumber(t,"kWh"));case "yieldYesterday":return this.setValue(e,"yieldYesterday",this.toNumber(t,"kWh"));case "panelTemperature":{let s=this.toNumber(t,this.units.getDefaults().Temperature),i=!Object.is(e.panelTemperatureState??null,a??null);return Object.is(e.panelTemperature,s)&&!i?false:(e.panelTemperature=s,e.panelTemperatureState=a,true)}case "load":case "loadState":case "load.state":return this.setValue(e,"load",t);case "loadCurrent":{let s=this.toNumber(t,"A"),i=!Object.is(e.loadCurrentState??null,a??null);return Object.is(e.loadCurrent,s)&&!i?false:(e.loadCurrent=s,e.loadCurrentState=a,true)}default:return false}}setPowerPathValue(e,r,t){let a=this.toNumber(t,"W");return this.setValue(e,r,a)}setValue(e,r,t){return Object.is(e[r],t)?false:(e[r]=t,true)}resolvePowerValue(e,r,t){if(e!=null)return e;if(r!=null&&t!=null)return r*t}requestRender(e){this.svg&&(this.pendingRenderSnapshot=e??this.buildRenderSnapshot(),this.pendingRenderSnapshot&&this.renderFrameId===null&&(this.renderFrameId=requestAnimationFrame(()=>{this.renderFrameId=null;let r=this.pendingRenderSnapshot;this.pendingRenderSnapshot=null,r&&this.render(r);})));}buildRenderSnapshot(){let e=this.widgetColors();return e?{solarUnits:this.visibleSolarUnits(),displayModels:this.displayModels(),widgetColors:e}:null}render(e){if(!this.layer||!this.svg)return;let t=this.isCompactCardMode()?e$1:e$1,a=e.solarUnits.map((o,p)=>({key:o.deviceKey??o.id,model:e.displayModels[o.deviceKey??o.id],y:p*(l.CARD_HEIGHT+l.CARD_GAP)})),s=a.length?a[a.length-1].y+l.CARD_HEIGHT:l.CARD_HEIGHT;this.svg.attr("viewBox",`0 0 ${l.VIEWBOX_WIDTH} ${s}`);let i=this.layer.selectAll("g.solar-card").data(a,o=>o.key),n=i.enter().append("g").attr("class","solar-card");n.append("text").attr("class","solar-charger-title");let u=n.append("text").attr("class","solar-charger-current");u.append("tspan").attr("class","current-metric-value"),u.append("tspan").attr("class","current-metric-unit"),n.append("text").attr("class","solar-charger"),n.append("text").attr("class","solar-charger-meta"),n.append("text").attr("class","solar-relay-label"),n.append("text").attr("class","solar-relay-values"),n.append("text").attr("class","solar-panel-values"),n.append("text").attr("class","solar-yield-label"),n.append("text").attr("class","solar-yield-today"),n.append("text").attr("class","solar-yield-yesterday");let c=n.append("g").attr("class","solar-panel-icon").attr("transform",`translate(${l.SOLAR_PANEL_X}, ${l.SOLAR_PANEL_Y})`);c.append("use").attr("class","solar-panel-bg").attr("href","assets/svg/symbols.svg#solar-panel-cells").attr("x",0).attr("y",0).attr("width",l.SOLAR_PANEL_WIDTH).attr("height",l.SOLAR_PANEL_HEIGHT);let g=c.append("g").attr("class","solar-panel-progress");g.append("defs").append("clipPath").attr("clipPathUnits","objectBoundingBox").attr("id",o=>`solar-panel-clip-${this.id()}-${o.key}`).append("rect").attr("x",0).attr("y",0).attr("height",1).attr("width",0),g.append("use").attr("class","solar-panel-colored").attr("href","assets/svg/symbols.svg#solar-panel-cells").attr("x",0).attr("y",0).attr("width",l.SOLAR_PANEL_WIDTH).attr("height",l.SOLAR_PANEL_HEIGHT).attr("clip-path",o=>`url(#solar-panel-clip-${this.id()}-${o.key})`);let m=n.append("text").attr("class","solar-panel-power");m.append("tspan").attr("class","solar-panel-power-value"),m.append("tspan").attr("class","solar-panel-power-unit");let d=n.merge(i);d.attr("transform",o=>`translate(0, ${o.y})`),e.solarUnits.length>1?d.select("text.solar-charger-title").attr("x",t.titleX).attr("y",t.titleY).attr("font-size",t.titleFontSize).attr("fill","var(--kip-contrast-dim-color)").text(o=>e.displayModels[o.key]?.titleText??this.displayName(o.model)):d.select("text.solar-charger-title").text(""),d.select("text.solar-charger-current").attr("x",t.lineOneX).attr("y",t.lineOneY).attr("font-size",t.lineOneFontSize).attr("fill",o=>o.model.chargerCurrentTextColor),d.select("tspan.current-metric-value").text(o=>o.model.chargerSectionCurrent),d.select("tspan.current-metric-unit").attr("dx",1).attr("font-size",12).attr("fill","var(--kip-contrast-color)").text("A"),d.select("text.solar-charger").attr("x",5).attr("y",40).attr("fill","var(--kip-contrast-color)").attr("font-size",8).attr("opacity",.8).text(o=>o.model.chargerMode),d.select("text.solar-charger-meta").attr("x",t.metaLeftX).attr("y",48).attr("font-size",t.metaFontSize).attr("opacity",.8).attr("fill",o=>o.model.chargerMetaTextColor).text(o=>o.model.chargerSectionMetadata),d.select("text.solar-relay-label").attr("x",5).attr("y",73).attr("font-size",10).attr("fill","var(--kip-contrast-color)").text(o=>o.model.relaySectionVisible?"Load Output":""),d.select("text.solar-relay-values").attr("x",10).attr("y",83).attr("font-size",t.lineTwoFontSize).attr("fill",o=>o.model.relayValuesTextColor).attr("opacity",o=>o.model.relaySectionVisible?.8:0).text(o=>o.model.relaySectionText),d.select("g.solar-panel-icon").attr("transform",`translate(${l.SOLAR_PANEL_X}, ${l.SOLAR_PANEL_Y})`),d.select("use.solar-panel-bg").attr("color","var(--kip-contrast-dimmer-color)"),d.select("g.solar-panel-progress").each((o,p,T)=>{ge$1(T[p]).select("rect").attr("x",0).attr("y",0).attr("height",1).attr("width",Math.max(0,Math.min(1,o.model.gaugeProgress))),this.debugSolarLayout(o.key,o.model.gaugeProgress);}),d.select("use.solar-panel-colored").attr("color",o=>o.model.panelPowerColor),d.select("text.solar-panel-power").attr("x",137.5).attr("y",t.primaryY).attr("text-anchor","middle").attr("font-size",t.primaryFontSize).attr("font-weight",t.primaryFontWeight).attr("filter",o=>o.model.panelPowerGlowEnabled?`url(#${this.glowFilterId})`:null).attr("fill","var(--kip-contrast-color)"),d.select("tspan.solar-panel-power-value").text(o=>o.model.panelPowerText),d.select("tspan.solar-panel-power-unit").attr("dx",o=>o.model.panelPowerUnitText?1:0).attr("font-size",20).attr("font-weight",500).attr("fill","var(--kip-contrast-color)").attr("opacity",o=>o.model.panelPowerUnitText?1:0).text(o=>o.model.panelPowerUnitText),d.select("text.solar-panel-values").attr("x",137.5).attr("y",60).attr("text-anchor","middle").attr("font-size",10).attr("font-weight",500).attr("opacity",.8).attr("filter",o=>o.model.panelValuesGlowEnabled?`url(#${this.glowFilterId})`:null).attr("fill",o=>o.model.panelValuesTextColor).text(o=>o.model.gaugeSectionText).raise(),d.select("text.solar-yield-label").attr("x",104).attr("y",88).attr("text-anchor","middle").attr("font-size",8).attr("fill","var(--kip-contrast-dim-color)").attr("opacity",.8).text("Yield (kWh):"),d.select("text.solar-yield-today").attr("x",130).attr("y",88).attr("text-anchor","start").attr("font-size",8).attr("fill","var(--kip-contrast-dim-color)").attr("opacity",.8).text(o=>o.model.yieldTodayText),d.select("text.solar-yield-yesterday").attr("x",130).attr("y",97.5).attr("text-anchor","start").attr("font-size",8).attr("fill","var(--kip-contrast-dim-color)").attr("opacity",.8).text(o=>o.model.yieldYesterdayText),i.exit().remove();}displayName(e){return e.name?.trim()||e.id}resolveTitleText(e){return e.name||`Solar ${e.id}`}toNumber(e,r){return e==null||typeof e!="number"?null:this.units.convertToUnit(r,e)??e}isRelayActive(e){if(e==null)return false;if(typeof e=="boolean")return e;if(typeof e=="number")return e>0;let r=e.trim().toLowerCase();return !(!r||r==="off"||r==="false"||r==="0")}toStringValue(e){return typeof e=="string"?e:e==null?null:`${e}`}valueOrDash(e){return e===null?"--":e===void 0?"":e}formatVoltage(e){return e===null?"--":e===void 0?"":`${e.toFixed(1)}V`}formatCurrent(e){return e===null?"--":e===void 0?"":`${e.toFixed(1)}`}formatTemperature(e){return e===null?"--":e===void 0?"":`${e.toFixed(1)} ${this.units.getDefaults().Temperature==="celsius"?"\xB0C":"\xB0F"}`}formatRelayState(e){return e===null?"--":e===void 0?"":typeof e=="boolean"?e?"On":"Off":typeof e=="number"?e>0?"On":"Off":e}formatPowerAuto(e){return e===null?{value:"--",unit:""}:e===void 0?{value:"",unit:""}:Math.abs(e)>=1e3?{value:(e/1e3).toFixed(2),unit:"kW"}:{value:e.toFixed(0),unit:"W"}}formatEnergyYield(e){return e===null?"--":e===void 0?"":`${e.toFixed(2)}`}resolveMostSevereState(...e){let r=null,t={[n$1.Normal]:0,[n$1.Nominal]:1,[n$1.Alert]:2,[n$1.Warn]:3,[n$1.Alarm]:4,[n$1.Emergency]:5};for(let a of e)a&&(!r||t[a]>t[r])&&(r=a);return r}debugSolarLayout(e,r){typeof window<"u"&&window.__KIP_DEBUG_SOLAR_LAYOUT===true&&console.debug("[solar-layout]",{id:e,gaugeProgress:r,panelX:l.SOLAR_PANEL_X,panelY:l.SOLAR_PANEL_Y,panelWidth:l.SOLAR_PANEL_WIDTH,panelHeight:l.SOLAR_PANEL_HEIGHT,clippedWidth:l.SOLAR_PANEL_WIDTH*r});}static \u0275fac=function(r){return new(r||l)};static \u0275cmp=JD({type:l,selectors:[["widget-solar-charger"]],viewQuery:function(r,t){r&1&&eg(t.svgRef,pe,5),r&2&&Kw();},inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"],renderMode:[1,"renderMode"]},decls:4,vars:3,consts:[["solarSvg",""],[3,"text","color"],["aria-hidden","false",1,"solar-svg"],[1,"solar-empty"],[1,"solar-empty-title"],[1,"solar-empty-sub"]],template:function(r,t){r&1&&($h(0,"widget-title",1),wd(),$h(1,"svg",2,0),_w(3,he,5,0,"div",3)),r&2&&(Bh("text",t.displayLabel())("color",t.labelColor()),EE(3),Mw(t.hasChargers()?-1:3));},dependencies:[x],styles:["[_nghost-%COMP%]{display:block;height:100%;width:100%;position:relative;overflow:hidden}.solar-svg[_ngcontent-%COMP%]{display:block;position:absolute;left:0;right:0;top:15%;height:85%;width:100%;overflow:hidden;z-index:20;padding:0 10px 10px}.solar-empty[_ngcontent-%COMP%]{position:absolute;inset:0;margin:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:var(--mat-sys-on-surface);background:color-mix(in srgb,var(--kip-widget-card-background-color) 92%,transparent)}.solar-empty-title[_ngcontent-%COMP%]{font-size:18px;font-weight:600}.solar-empty-sub[_ngcontent-%COMP%]{font-size:14px;opacity:.8}"]})};export{te as WidgetSolarChargerComponent};
@@ -1 +1 @@
1
- import {dx as n$1}from'./main-YKDNK5VZ.js';function c(n,r){let i={contrast:{color:r.contrast,dim:r.contrastDim,dimmer:r.contrastDimmer},blue:{color:r.blue,dim:r.blueDim,dimmer:r.blueDimmer},green:{color:r.green,dim:r.greenDim,dimmer:r.greenDimmer},pink:{color:r.pink,dim:r.pinkDim,dimmer:r.pinkDimmer},orange:{color:r.orange,dim:r.orangeDim,dimmer:r.orangeDimmer},purple:{color:r.purple,dim:r.purpleDim,dimmer:r.purpleDimmer},yellow:{color:r.yellow,dim:r.yellowDim,dimmer:r.yellowDimmer},grey:{color:r.grey,dim:r.greyDim,dimmer:r.greyDimmer}},l=n in i?n:"contrast";return i[l]}function e(n,r,i,l){if(l||!n||!i)return r;switch(n){case n$1.Nominal:return i.zoneNominal;case n$1.Alarm:return i.zoneAlarm;case n$1.Warn:return i.zoneWarn;case n$1.Alert:return i.zoneAlert;default:return r}}export{c,e};
1
+ import {dx as n$1}from'./main-F7NMHHV4.js';function c(n,r){let i={contrast:{color:r.contrast,dim:r.contrastDim,dimmer:r.contrastDimmer},blue:{color:r.blue,dim:r.blueDim,dimmer:r.blueDimmer},green:{color:r.green,dim:r.greenDim,dimmer:r.greenDimmer},pink:{color:r.pink,dim:r.pinkDim,dimmer:r.pinkDimmer},orange:{color:r.orange,dim:r.orangeDim,dimmer:r.orangeDimmer},purple:{color:r.purple,dim:r.purpleDim,dimmer:r.purpleDimmer},yellow:{color:r.yellow,dim:r.yellowDim,dimmer:r.yellowDimmer},grey:{color:r.grey,dim:r.greyDim,dimmer:r.greyDimmer}},l=n in i?n:"contrast";return i[l]}function e(n,r,i,l){if(l||!n||!i)return r;switch(n){case n$1.Nominal:return i.zoneNominal;case n$1.Alarm:return i.zoneAlarm;case n$1.Warn:return i.zoneWarn;case n$1.Alert:return i.zoneAlert;default:return r}}export{c,e};
@@ -1 +1 @@
1
- import {u}from'./chunk-CCfhzpE8.js';import {d1 as Hj,w,du as p,dv as rt,dD as _,v as vt,D as Dt,F as Fa,dn as ge,J as JD,P as Pi,c as $h,u as ul,e as EE,B as Bh,bu as ut,aZ as R,$ as $j,dx as n$1,ay as lv,k as Qh,T as TT,dQ as AT,f as eg,K as Kw}from'./main-YKDNK5VZ.js';var Q=["gaugeCanvas"];typeof steelseries>"u"&&(globalThis.steelseries={BackgroundColor:{DARK_GRAY:"darkGray",SATIN_GRAY:"satinGray",LIGHT_GRAY:"lightGray",WHITE:"white",BLACK:"black",BEIGE:"beige",BROWN:"brown",RED:"red",GREEN:"green",BLUE:"blue",ANTHRACITE:"anthracite",MUD:"mud",PUNCHED_SHEET:"punchedSheet",CARBON:"carbon",STAINLESS:"stainless",BRUSHED_METAL:"brushedMetal",BRUSHED_STAINLESS:"brushedStainless",TURNED:"turned"},FrameDesign:{BLACK_METAL:"blackMetal",METAL:"metal",SHINY_METAL:"shinyMetal",BRASS:"brass",STEEL:"steel",CHROME:"chrome",GOLD:"gold",ANTHRACITE:"anthracite",TILTED_GRAY:"tiltedGray",TILTED_BLACK:"tiltedBlack",GLOSSY_METAL:"glossyMetal"}});var z={darkGray:steelseries.BackgroundColor.DARK_GRAY,satinGray:steelseries.BackgroundColor.SATIN_GRAY,lightGray:steelseries.BackgroundColor.LIGHT_GRAY,white:steelseries.BackgroundColor.WHITE,black:steelseries.BackgroundColor.BLACK,beige:steelseries.BackgroundColor.BEIGE,brown:steelseries.BackgroundColor.BROWN,red:steelseries.BackgroundColor.RED,green:steelseries.BackgroundColor.GREEN,blue:steelseries.BackgroundColor.BLUE,anthracite:steelseries.BackgroundColor.ANTHRACITE,mud:steelseries.BackgroundColor.MUD,punchedSheet:steelseries.BackgroundColor.PUNCHED_SHEET,carbon:steelseries.BackgroundColor.CARBON,stainless:steelseries.BackgroundColor.STAINLESS,brushedMetal:steelseries.BackgroundColor.BRUSHED_METAL,brushedStainless:steelseries.BackgroundColor.BRUSHED_STAINLESS,turned:steelseries.BackgroundColor.TURNED},k={blackMetal:steelseries.FrameDesign.BLACK_METAL,metal:steelseries.FrameDesign.METAL,shinyMetal:steelseries.FrameDesign.SHINY_METAL,brass:steelseries.FrameDesign.BRASS,steel:steelseries.FrameDesign.STEEL,chrome:steelseries.FrameDesign.CHROME,gold:steelseries.FrameDesign.GOLD,anthracite:steelseries.FrameDesign.ANTHRACITE,tiltedGray:steelseries.FrameDesign.TILTED_GRAY,tiltedBlack:steelseries.FrameDesign.TILTED_BLACK,glossyMetal:steelseries.FrameDesign.GLOSSY_METAL},q=(()=>{class l{unitsService=w(ut);canvasService=w(R);canvasRef=$j("gaugeCanvas");widgetUUID=Hj();subType=Hj();barGauge=Hj();radialSize=Hj();backgroundColor=Hj();frameColor=Hj();minValue=Hj();maxValue=Hj();decimals=Hj();zones=Hj();title=Hj();units=Hj();value=Hj();theme=Hj(void 0,{alias:"themeColors"});gaugeStarted=false;gauge=null;gaugeOptions={};latestSizeOptions={};paddingTop=0;lastSizeSignature="";resizeTimer=null;pendingStructuralRebuild=false;ngOnInit(){this.buildOptions();}buildOptions(){this.gaugeOptions={};let e=this.minValue()??0,i=this.maxValue()??100;this.gaugeOptions.minValue=e,this.gaugeOptions.maxValue=i;let t=this.decimals();this.gaugeOptions.lcdDecimals=t??2,this.gaugeOptions.titleString=this.title()??"",this.gaugeOptions.unitString=this.units()??"",this.subType()=="radial"&&(this.gaugeOptions.gaugeType=this.setGaugeType(this.radialSize()));let s=this.zones();if(s){let r=this.theme(),u={emergency:r?.zoneEmergency??"rgba(0,0,0,0)",alarm:r?.zoneAlarm??"rgba(0,0,0,0)",warn:r?.zoneWarn??"rgba(0,0,0,0)",alert:r?.zoneAlert??"rgba(0,0,0,0)",nominal:r?.zoneNominal??"rgba(0,0,0,0)"},d=[],b=[],D=[...s].sort((C,m)=>(C.lower??Number.NEGATIVE_INFINITY)-(m.lower??Number.NEGATIVE_INFINITY));for(let C of D){let m=C.lower,S=C.upper;if(m===void 0||S===void 0)continue;let c=m,p=S,g;switch(C.state){case n$1.Emergency:g=u.emergency;break;case n$1.Alarm:g=u.alarm;break;case n$1.Warn:g=u.warn;break;case n$1.Alert:g=u.alert;break;case n$1.Nominal:g=u.nominal;break;default:g="rgba(0,0,0,0)";}let G=this.units();if(G=="ratio"?(c=m,p=S):(c=this.unitsService.convertToUnit(G??"",m)??m,p=this.unitsService.convertToUnit(G??"",S)??S),!(p<e||c>i)){if(c=Math.max(c,e),p>i){p=i,d.push(steelseries.Section(c,p,g));break}d.push(steelseries.Section(c,p,g));}}this.gaugeOptions.section=d,this.gaugeOptions.area=b,this.gaugeOptions.useSectionColors=true;}let n=this.backgroundColor();n&&n in z&&(this.gaugeOptions.backgroundColor=z[n]);let o=this.frameColor();o&&o in k&&(this.gaugeOptions.frameDesign=k[o]),this.barGauge()&&(this.gaugeOptions.valueColor=steelseries.ColorDef.GREEN),this.gaugeOptions.lcdVisible=true,this.gaugeOptions.thresholdVisible=false,this.gaugeOptions.threshold=this.maxValue(),this.gaugeOptions.ledVisible=false,Object.assign(this.gaugeOptions,this.latestSizeOptions);}setGaugeType(e){switch(e){case "quarter":return steelseries.GaugeType.TYPE1;case "half":return steelseries.GaugeType.TYPE2;case "three-quarter":return steelseries.GaugeType.TYPE3;default:return steelseries.GaugeType.TYPE4}}startGauge(e=false){this.buildOptions();let i=this.widgetUUID();if(!i)return;let t=e||this.pendingStructuralRebuild;if(this.gauge&&!t){this.gauge.setValueAnimated&&this.value()!=null,this.gaugeStarted=true;return}this.pendingStructuralRebuild=false,this.gaugeStarted=true;let s=this.subType();s==="radial"?this.gauge=new steelseries.Radial(i,this.gaugeOptions):s==="linear"&&(this.barGauge()?this.gauge=new steelseries.LinearBargraph(i,this.gaugeOptions):this.gauge=new steelseries.Linear(i,this.gaugeOptions));}onResized(e){if(e.contentRect.height<50||e.contentRect.width<50)return;let i;if(this.subType()==="radial"){let t=Math.floor(Math.min(e.contentRect.height,e.contentRect.width));this.latestSizeOptions={size:t},this.gaugeOptions.size=t,i="radial:"+t;}else {let t=Math.floor(e.contentRect.width),s=Math.floor(e.contentRect.height);this.latestSizeOptions={width:t,height:s},this.gaugeOptions.width=t,this.gaugeOptions.height=s,i=`linear:${t}x${s}`;}i!==this.lastSizeSignature&&(this.lastSizeSignature=i,this.resizeTimer&&window.clearTimeout(this.resizeTimer),this.resizeTimer=window.setTimeout(()=>{this.startGauge(true),this.resizeTimer=null;},120));}ngOnChanges(e){this.gaugeStarted&&(e.value&&!e.value.firstChange&&e.value.currentValue!=null&&this.gauge?.setValueAnimated?.(e.value.currentValue),e.zones&&(this.pendingStructuralRebuild=true,this.startGauge(true)),e.title&&this.gauge?.setTitleString?.(e.title.currentValue??""),e.backgroundColor&&e.backgroundColor.currentValue in z&&this.gauge?.setBackgroundColor?.(z[e.backgroundColor.currentValue]),e.frameColor&&e.frameColor.currentValue in k&&this.gauge?.setFrameDesign?.(k[e.frameColor.currentValue]),e.radialSize&&(this.pendingStructuralRebuild=true,this.startGauge(true)),e.minValue&&e.minValue.currentValue!=null&&this.gauge?.setMinValue?.(e.minValue.currentValue),e.maxValue&&e.maxValue.currentValue!=null&&this.gauge?.setMaxValue?.(e.maxValue.currentValue));}ngOnDestroy(){if(this.gauge&&this.gauge.setValue){let i=this.gauge.getValue?this.gauge.getValue():this.value();this.gauge.setValue(i??0);}let e=this.widgetUUID();if(e){let i=document.getElementById(e);this.canvasService.releaseCanvas(i,{clear:true,removeFromDom:true});}this.gauge=null;}static \u0275fac=function(i){return new(i||l)};static \u0275cmp=JD({type:l,selectors:[["gauge-steel"]],viewQuery:function(i,t){i&1&&eg(t.canvasRef,Q,5),i&2&&Kw();},inputs:{widgetUUID:[1,"widgetUUID"],subType:[1,"subType"],barGauge:[1,"barGauge"],radialSize:[1,"radialSize"],backgroundColor:[1,"backgroundColor"],frameColor:[1,"frameColor"],minValue:[1,"minValue"],maxValue:[1,"maxValue"],decimals:[1,"decimals"],zones:[1,"zones"],title:[1,"title"],units:[1,"units"],value:[1,"value"],theme:[1,"themeColors","theme"]},features:[lv],decls:4,vars:2,consts:[["gaugeCanvas",""],["kipResizeObserver","",1,"wrapper",3,"resizeChange"],[2,"z-index","inherit",3,"id"]],template:function(i,t){i&1&&(Pi(0,"div",1),Qh("resizeChange",function(n){return t.onResized(n)}),Pi(1,"canvas",2,0),TT(3," Browser does not support canvas element. "),ul()()),i&2&&(EE(),Bh("id",AT(t.widgetUUID())));},dependencies:[u],styles:[".sgWrapper[_ngcontent-%COMP%]{height:100%;width:100%;text-align:center}"]})}return l})();var ue=(()=>{class l{id=Hj.required();type=Hj.required();theme=Hj.required();runtime=w(p);streams=w(rt);metadata=w(_);static DEFAULT_CONFIG={supportAutomaticHistoricalSeries:true,displayName:"Gauge Label",filterSelfPaths:true,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:true,showPathSkUnitsFilter:true,pathSkUnitsFilter:null,convertUnitTo:"unitless",sampleTime:500}},displayScale:{type:"linear",lower:0,upper:100},gauge:{type:"steel",subType:"radial",backgroundColor:"carbon",faceColor:"anthracite",radialSize:"full",rotateFace:false,digitalMeter:false},numDecimal:2,enableTimeout:false,dataTimeout:5,ignoreZones:false};dataValue=vt(0);zones=vt([]);normalizedConfig=Dt(()=>this.runtime.options()??l.DEFAULT_CONFIG);gaugePathConfig=Dt(()=>this.normalizedConfig().paths?.gaugePath);displayName=Dt(()=>this.normalizedConfig().displayName||"Gauge Label");gaugeUnits=Dt(()=>this.gaugePathConfig()?.convertUnitTo??"");constructor(){Fa(()=>{let e=this.normalizedConfig();this.gaugePathConfig()?.path&&ge(()=>this.streams.observe("gaugePath",t=>{let s=t?.data?.value,n=e.displayScale?.lower??0,o=e.displayScale?.upper??n+100;if(s==null)this.dataValue.set(n);else {let r=Math.min(Math.max(s,n),o);this.dataValue.set(r);}}));}),Fa(()=>{if(this.normalizedConfig().ignoreZones){this.zones.set([]);return}if(!this.gaugePathConfig()?.path){this.zones.set([]);return}ge(()=>this.metadata.observe("gaugePath")),this.zones.set(this.metadata.zones());});}static \u0275fac=function(i){return new(i||l)};static \u0275cmp=JD({type:l,selectors:[["widget-gauge-steel"]],inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:2,vars:14,consts:[[1,"wrapper"],[3,"widgetUUID","subType","barGauge","radialSize","backgroundColor","frameColor","minValue","maxValue","decimals","zones","title","units","value","themeColors"]],template:function(i,t){if(i&1&&(Pi(0,"div",0),$h(1,"gauge-steel",1),ul()),i&2){let s,n,o,r,u,d,b,D;EE(),Bh("widgetUUID",t.id())("subType",(s=t.runtime.options())==null||s.gauge==null?null:s.gauge.subType)("barGauge",(n=t.runtime.options())==null||n.gauge==null?null:n.gauge.digitalMeter)("radialSize",(o=t.runtime.options())==null||o.gauge==null?null:o.gauge.radialSize)("backgroundColor",(r=t.runtime.options())==null||r.gauge==null?null:r.gauge.backgroundColor)("frameColor",(u=t.runtime.options())==null||u.gauge==null?null:u.gauge.faceColor)("minValue",(d=t.runtime.options())==null||d.displayScale==null?null:d.displayScale.lower)("maxValue",(b=t.runtime.options())==null||b.displayScale==null?null:b.displayScale.upper)("decimals",(D=t.runtime.options())==null?null:D.numDecimal)("zones",t.zones())("title",t.displayName())("units",t.gaugeUnits())("value",t.dataValue())("themeColors",t.theme());}},dependencies:[q],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}gauge-steel[_ngcontent-%COMP%]{display:block;position:relative;width:100%;height:100%} .wrapper{display:block;position:relative;width:100%;height:100%;padding:10px} .wrapper>canvas{display:block;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}"]})}return l})();export{ue as WidgetSteelGaugeComponent};
1
+ import {u}from'./chunk-Be5KcT7R.js';import {d1 as Hj,w,du as p,dv as rt,dD as _,v as vt,D as Dt,F as Fa,dn as ge,J as JD,P as Pi,c as $h,u as ul,e as EE,B as Bh,bu as ut,aZ as R,$ as $j,dx as n$1,ay as lv,k as Qh,T as TT,dQ as AT,f as eg,K as Kw}from'./main-F7NMHHV4.js';var Q=["gaugeCanvas"];typeof steelseries>"u"&&(globalThis.steelseries={BackgroundColor:{DARK_GRAY:"darkGray",SATIN_GRAY:"satinGray",LIGHT_GRAY:"lightGray",WHITE:"white",BLACK:"black",BEIGE:"beige",BROWN:"brown",RED:"red",GREEN:"green",BLUE:"blue",ANTHRACITE:"anthracite",MUD:"mud",PUNCHED_SHEET:"punchedSheet",CARBON:"carbon",STAINLESS:"stainless",BRUSHED_METAL:"brushedMetal",BRUSHED_STAINLESS:"brushedStainless",TURNED:"turned"},FrameDesign:{BLACK_METAL:"blackMetal",METAL:"metal",SHINY_METAL:"shinyMetal",BRASS:"brass",STEEL:"steel",CHROME:"chrome",GOLD:"gold",ANTHRACITE:"anthracite",TILTED_GRAY:"tiltedGray",TILTED_BLACK:"tiltedBlack",GLOSSY_METAL:"glossyMetal"}});var z={darkGray:steelseries.BackgroundColor.DARK_GRAY,satinGray:steelseries.BackgroundColor.SATIN_GRAY,lightGray:steelseries.BackgroundColor.LIGHT_GRAY,white:steelseries.BackgroundColor.WHITE,black:steelseries.BackgroundColor.BLACK,beige:steelseries.BackgroundColor.BEIGE,brown:steelseries.BackgroundColor.BROWN,red:steelseries.BackgroundColor.RED,green:steelseries.BackgroundColor.GREEN,blue:steelseries.BackgroundColor.BLUE,anthracite:steelseries.BackgroundColor.ANTHRACITE,mud:steelseries.BackgroundColor.MUD,punchedSheet:steelseries.BackgroundColor.PUNCHED_SHEET,carbon:steelseries.BackgroundColor.CARBON,stainless:steelseries.BackgroundColor.STAINLESS,brushedMetal:steelseries.BackgroundColor.BRUSHED_METAL,brushedStainless:steelseries.BackgroundColor.BRUSHED_STAINLESS,turned:steelseries.BackgroundColor.TURNED},k={blackMetal:steelseries.FrameDesign.BLACK_METAL,metal:steelseries.FrameDesign.METAL,shinyMetal:steelseries.FrameDesign.SHINY_METAL,brass:steelseries.FrameDesign.BRASS,steel:steelseries.FrameDesign.STEEL,chrome:steelseries.FrameDesign.CHROME,gold:steelseries.FrameDesign.GOLD,anthracite:steelseries.FrameDesign.ANTHRACITE,tiltedGray:steelseries.FrameDesign.TILTED_GRAY,tiltedBlack:steelseries.FrameDesign.TILTED_BLACK,glossyMetal:steelseries.FrameDesign.GLOSSY_METAL},q=(()=>{class l{unitsService=w(ut);canvasService=w(R);canvasRef=$j("gaugeCanvas");widgetUUID=Hj();subType=Hj();barGauge=Hj();radialSize=Hj();backgroundColor=Hj();frameColor=Hj();minValue=Hj();maxValue=Hj();decimals=Hj();zones=Hj();title=Hj();units=Hj();value=Hj();theme=Hj(void 0,{alias:"themeColors"});gaugeStarted=false;gauge=null;gaugeOptions={};latestSizeOptions={};paddingTop=0;lastSizeSignature="";resizeTimer=null;pendingStructuralRebuild=false;ngOnInit(){this.buildOptions();}buildOptions(){this.gaugeOptions={};let e=this.minValue()??0,i=this.maxValue()??100;this.gaugeOptions.minValue=e,this.gaugeOptions.maxValue=i;let t=this.decimals();this.gaugeOptions.lcdDecimals=t??2,this.gaugeOptions.titleString=this.title()??"",this.gaugeOptions.unitString=this.units()??"",this.subType()=="radial"&&(this.gaugeOptions.gaugeType=this.setGaugeType(this.radialSize()));let s=this.zones();if(s){let r=this.theme(),u={emergency:r?.zoneEmergency??"rgba(0,0,0,0)",alarm:r?.zoneAlarm??"rgba(0,0,0,0)",warn:r?.zoneWarn??"rgba(0,0,0,0)",alert:r?.zoneAlert??"rgba(0,0,0,0)",nominal:r?.zoneNominal??"rgba(0,0,0,0)"},d=[],b=[],D=[...s].sort((C,m)=>(C.lower??Number.NEGATIVE_INFINITY)-(m.lower??Number.NEGATIVE_INFINITY));for(let C of D){let m=C.lower,S=C.upper;if(m===void 0||S===void 0)continue;let c=m,p=S,g;switch(C.state){case n$1.Emergency:g=u.emergency;break;case n$1.Alarm:g=u.alarm;break;case n$1.Warn:g=u.warn;break;case n$1.Alert:g=u.alert;break;case n$1.Nominal:g=u.nominal;break;default:g="rgba(0,0,0,0)";}let G=this.units();if(G=="ratio"?(c=m,p=S):(c=this.unitsService.convertToUnit(G??"",m)??m,p=this.unitsService.convertToUnit(G??"",S)??S),!(p<e||c>i)){if(c=Math.max(c,e),p>i){p=i,d.push(steelseries.Section(c,p,g));break}d.push(steelseries.Section(c,p,g));}}this.gaugeOptions.section=d,this.gaugeOptions.area=b,this.gaugeOptions.useSectionColors=true;}let n=this.backgroundColor();n&&n in z&&(this.gaugeOptions.backgroundColor=z[n]);let o=this.frameColor();o&&o in k&&(this.gaugeOptions.frameDesign=k[o]),this.barGauge()&&(this.gaugeOptions.valueColor=steelseries.ColorDef.GREEN),this.gaugeOptions.lcdVisible=true,this.gaugeOptions.thresholdVisible=false,this.gaugeOptions.threshold=this.maxValue(),this.gaugeOptions.ledVisible=false,Object.assign(this.gaugeOptions,this.latestSizeOptions);}setGaugeType(e){switch(e){case "quarter":return steelseries.GaugeType.TYPE1;case "half":return steelseries.GaugeType.TYPE2;case "three-quarter":return steelseries.GaugeType.TYPE3;default:return steelseries.GaugeType.TYPE4}}startGauge(e=false){this.buildOptions();let i=this.widgetUUID();if(!i)return;let t=e||this.pendingStructuralRebuild;if(this.gauge&&!t){this.gauge.setValueAnimated&&this.value()!=null,this.gaugeStarted=true;return}this.pendingStructuralRebuild=false,this.gaugeStarted=true;let s=this.subType();s==="radial"?this.gauge=new steelseries.Radial(i,this.gaugeOptions):s==="linear"&&(this.barGauge()?this.gauge=new steelseries.LinearBargraph(i,this.gaugeOptions):this.gauge=new steelseries.Linear(i,this.gaugeOptions));}onResized(e){if(e.contentRect.height<50||e.contentRect.width<50)return;let i;if(this.subType()==="radial"){let t=Math.floor(Math.min(e.contentRect.height,e.contentRect.width));this.latestSizeOptions={size:t},this.gaugeOptions.size=t,i="radial:"+t;}else {let t=Math.floor(e.contentRect.width),s=Math.floor(e.contentRect.height);this.latestSizeOptions={width:t,height:s},this.gaugeOptions.width=t,this.gaugeOptions.height=s,i=`linear:${t}x${s}`;}i!==this.lastSizeSignature&&(this.lastSizeSignature=i,this.resizeTimer&&window.clearTimeout(this.resizeTimer),this.resizeTimer=window.setTimeout(()=>{this.startGauge(true),this.resizeTimer=null;},120));}ngOnChanges(e){this.gaugeStarted&&(e.value&&!e.value.firstChange&&e.value.currentValue!=null&&this.gauge?.setValueAnimated?.(e.value.currentValue),e.zones&&(this.pendingStructuralRebuild=true,this.startGauge(true)),e.title&&this.gauge?.setTitleString?.(e.title.currentValue??""),e.backgroundColor&&e.backgroundColor.currentValue in z&&this.gauge?.setBackgroundColor?.(z[e.backgroundColor.currentValue]),e.frameColor&&e.frameColor.currentValue in k&&this.gauge?.setFrameDesign?.(k[e.frameColor.currentValue]),e.radialSize&&(this.pendingStructuralRebuild=true,this.startGauge(true)),e.minValue&&e.minValue.currentValue!=null&&this.gauge?.setMinValue?.(e.minValue.currentValue),e.maxValue&&e.maxValue.currentValue!=null&&this.gauge?.setMaxValue?.(e.maxValue.currentValue));}ngOnDestroy(){if(this.gauge&&this.gauge.setValue){let i=this.gauge.getValue?this.gauge.getValue():this.value();this.gauge.setValue(i??0);}let e=this.widgetUUID();if(e){let i=document.getElementById(e);this.canvasService.releaseCanvas(i,{clear:true,removeFromDom:true});}this.gauge=null;}static \u0275fac=function(i){return new(i||l)};static \u0275cmp=JD({type:l,selectors:[["gauge-steel"]],viewQuery:function(i,t){i&1&&eg(t.canvasRef,Q,5),i&2&&Kw();},inputs:{widgetUUID:[1,"widgetUUID"],subType:[1,"subType"],barGauge:[1,"barGauge"],radialSize:[1,"radialSize"],backgroundColor:[1,"backgroundColor"],frameColor:[1,"frameColor"],minValue:[1,"minValue"],maxValue:[1,"maxValue"],decimals:[1,"decimals"],zones:[1,"zones"],title:[1,"title"],units:[1,"units"],value:[1,"value"],theme:[1,"themeColors","theme"]},features:[lv],decls:4,vars:2,consts:[["gaugeCanvas",""],["kipResizeObserver","",1,"wrapper",3,"resizeChange"],[2,"z-index","inherit",3,"id"]],template:function(i,t){i&1&&(Pi(0,"div",1),Qh("resizeChange",function(n){return t.onResized(n)}),Pi(1,"canvas",2,0),TT(3," Browser does not support canvas element. "),ul()()),i&2&&(EE(),Bh("id",AT(t.widgetUUID())));},dependencies:[u],styles:[".sgWrapper[_ngcontent-%COMP%]{height:100%;width:100%;text-align:center}"]})}return l})();var ue=(()=>{class l{id=Hj.required();type=Hj.required();theme=Hj.required();runtime=w(p);streams=w(rt);metadata=w(_);static DEFAULT_CONFIG={supportAutomaticHistoricalSeries:true,displayName:"Gauge Label",filterSelfPaths:true,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:true,showPathSkUnitsFilter:true,pathSkUnitsFilter:null,convertUnitTo:"unitless",sampleTime:500}},displayScale:{type:"linear",lower:0,upper:100},gauge:{type:"steel",subType:"radial",backgroundColor:"carbon",faceColor:"anthracite",radialSize:"full",rotateFace:false,digitalMeter:false},numDecimal:2,enableTimeout:false,dataTimeout:5,ignoreZones:false};dataValue=vt(0);zones=vt([]);normalizedConfig=Dt(()=>this.runtime.options()??l.DEFAULT_CONFIG);gaugePathConfig=Dt(()=>this.normalizedConfig().paths?.gaugePath);displayName=Dt(()=>this.normalizedConfig().displayName||"Gauge Label");gaugeUnits=Dt(()=>this.gaugePathConfig()?.convertUnitTo??"");constructor(){Fa(()=>{let e=this.normalizedConfig();this.gaugePathConfig()?.path&&ge(()=>this.streams.observe("gaugePath",t=>{let s=t?.data?.value,n=e.displayScale?.lower??0,o=e.displayScale?.upper??n+100;if(s==null)this.dataValue.set(n);else {let r=Math.min(Math.max(s,n),o);this.dataValue.set(r);}}));}),Fa(()=>{if(this.normalizedConfig().ignoreZones){this.zones.set([]);return}if(!this.gaugePathConfig()?.path){this.zones.set([]);return}ge(()=>this.metadata.observe("gaugePath")),this.zones.set(this.metadata.zones());});}static \u0275fac=function(i){return new(i||l)};static \u0275cmp=JD({type:l,selectors:[["widget-gauge-steel"]],inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:2,vars:14,consts:[[1,"wrapper"],[3,"widgetUUID","subType","barGauge","radialSize","backgroundColor","frameColor","minValue","maxValue","decimals","zones","title","units","value","themeColors"]],template:function(i,t){if(i&1&&(Pi(0,"div",0),$h(1,"gauge-steel",1),ul()),i&2){let s,n,o,r,u,d,b,D;EE(),Bh("widgetUUID",t.id())("subType",(s=t.runtime.options())==null||s.gauge==null?null:s.gauge.subType)("barGauge",(n=t.runtime.options())==null||n.gauge==null?null:n.gauge.digitalMeter)("radialSize",(o=t.runtime.options())==null||o.gauge==null?null:o.gauge.radialSize)("backgroundColor",(r=t.runtime.options())==null||r.gauge==null?null:r.gauge.backgroundColor)("frameColor",(u=t.runtime.options())==null||u.gauge==null?null:u.gauge.faceColor)("minValue",(d=t.runtime.options())==null||d.displayScale==null?null:d.displayScale.lower)("maxValue",(b=t.runtime.options())==null||b.displayScale==null?null:b.displayScale.upper)("decimals",(D=t.runtime.options())==null?null:D.numDecimal)("zones",t.zones())("title",t.displayName())("units",t.gaugeUnits())("value",t.dataValue())("themeColors",t.theme());}},dependencies:[q],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}gauge-steel[_ngcontent-%COMP%]{display:block;position:relative;width:100%;height:100%} .wrapper{display:block;position:relative;width:100%;height:100%;padding:10px} .wrapper>canvas{display:block;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}"]})}return l})();export{ue as WidgetSteelGaugeComponent};
@@ -1 +1 @@
1
- import {d1 as Hj,w,du as p,dv as rt,aZ as R,D as Dt,$ as $j,v as vt,F as Fa,dn as ge,J as JD,cp as Uh,f as eg,K as Kw}from'./main-YKDNK5VZ.js';import {c}from'./chunk-BIb-xYiS.js';var E=["canvasMainRef"],O=(()=>{class s{id=Hj.required();type=Hj.required();theme=Hj.required();static DEFAULT_CONFIG={displayName:"Gauge Label",filterSelfPaths:true,paths:{stringPath:{description:"String Data",path:null,source:null,pathType:"string",isPathConfigurable:true,sampleTime:500}},color:"contrast",enableTimeout:false,dataTimeout:5};runtime=w(p);stream=w(rt);canvas=w(R);normalizedConfig=Dt(()=>this.runtime.options()??s.DEFAULT_CONFIG);stringPathConfig=Dt(()=>this.normalizedConfig().paths?.stringPath);canvasMainRef=$j.required("canvasMainRef");canvasElement;canvasCtx=null;titleBitmap=null;titleBitmapText=null;cssWidth=0;cssHeight=0;dataValue=null;labelColor=vt("");valueColor="";isDestroyed=false;streamRegistered=false;constructor(){Fa(()=>{let t=this.theme();ge(()=>{t&&(this.setColors(),this.drawWidget());});}),Fa(()=>{this.normalizedConfig();this.isDestroyed||!this.canvasCtx||ge(()=>{this.setColors(),this.startWidget(),this.drawWidget();});});}ngOnInit(){this.setColors();}ngAfterViewInit(){this.canvasElement=this.canvasMainRef().nativeElement,this.canvasCtx=this.canvasElement.getContext("2d"),this.canvas.registerCanvas(this.canvasElement,{autoRelease:true,onResize:(t,e)=>{this.cssWidth=t,this.cssHeight=e,this.drawWidget();}}),this.cssHeight=Math.round(this.canvasElement.getBoundingClientRect().height),this.cssWidth=Math.round(this.canvasElement.getBoundingClientRect().width),!this.isDestroyed&&this.startWidget();}startWidget(){this.dataValue=null,this.streamRegistered||(this.stringPathConfig()?.path?(this.stream.observe("stringPath",e=>{this.dataValue=e.data.value,this.drawWidget();}),this.streamRegistered=true):this.drawWidget());}setColors(){let e=this.normalizedConfig().color??"contrast";this.labelColor.set(c(e,this.theme()).dim),this.valueColor=c(e,this.theme()).color;}ngOnDestroy(){this.isDestroyed=true;try{this.canvas.unregisterCanvas(this.canvasElement);}catch(t){}}drawWidget(){if(!this.canvasCtx)return;let t=Math.floor(this.cssHeight*.1),i=this.normalizedConfig().displayName??"Gauge Label",y=i+"|"+this.labelColor();(!this.titleBitmap||this.titleBitmap.width!==this.canvasElement.width||this.titleBitmap.height!==this.canvasElement.height||this.titleBitmapText!==y)&&(this.titleBitmap=this.canvas.createTitleBitmap(i,this.labelColor(),"normal",this.cssWidth,this.cssHeight),this.titleBitmapText=i+"|"+this.labelColor()),this.canvas.clearCanvas(this.canvasCtx,this.cssWidth,this.cssHeight),this.titleBitmap&&this.titleBitmap.width>0&&this.titleBitmap.height>0&&this.canvasCtx.drawImage(this.titleBitmap,0,0,this.cssWidth,this.cssHeight);let b=this.dataValue===null?"--":this.dataValue,h=this.canvas.EDGE_BUFFER||10,d=Math.max(0,this.cssHeight-t-2*h),W=Math.max(0,Math.floor(this.cssWidth-2*h)),w=Math.max(0,Math.floor(d)),D=Math.floor(this.cssWidth/2),B=Math.floor(t+h+d/2);this.canvas.drawText(this.canvasCtx,b,D,B,W,w,"bold",this.valueColor,"center","middle");}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=JD({type:s,selectors:[["widget-text"]],viewQuery:function(e,i){e&1&&eg(i.canvasMainRef,E,5),e&2&&Kw();},inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:2,vars:0,consts:[["canvasMainRef",""],[1,"text-canvas"]],template:function(e,i){e&1&&Uh(0,"canvas",1,0);},styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%;overflow:hidden}.text-canvas[_ngcontent-%COMP%]{display:block;width:100%!important;height:100%!important;min-height:1px}"]})}return s})();export{O as WidgetTextComponent};
1
+ import {d1 as Hj,w,du as p,dv as rt,aZ as R,D as Dt,$ as $j,v as vt,F as Fa,dn as ge,J as JD,cp as Uh,f as eg,K as Kw}from'./main-F7NMHHV4.js';import {c}from'./chunk-CRy9Da7a.js';var E=["canvasMainRef"],O=(()=>{class s{id=Hj.required();type=Hj.required();theme=Hj.required();static DEFAULT_CONFIG={displayName:"Gauge Label",filterSelfPaths:true,paths:{stringPath:{description:"String Data",path:null,source:null,pathType:"string",isPathConfigurable:true,sampleTime:500}},color:"contrast",enableTimeout:false,dataTimeout:5};runtime=w(p);stream=w(rt);canvas=w(R);normalizedConfig=Dt(()=>this.runtime.options()??s.DEFAULT_CONFIG);stringPathConfig=Dt(()=>this.normalizedConfig().paths?.stringPath);canvasMainRef=$j.required("canvasMainRef");canvasElement;canvasCtx=null;titleBitmap=null;titleBitmapText=null;cssWidth=0;cssHeight=0;dataValue=null;labelColor=vt("");valueColor="";isDestroyed=false;streamRegistered=false;constructor(){Fa(()=>{let t=this.theme();ge(()=>{t&&(this.setColors(),this.drawWidget());});}),Fa(()=>{this.normalizedConfig();this.isDestroyed||!this.canvasCtx||ge(()=>{this.setColors(),this.startWidget(),this.drawWidget();});});}ngOnInit(){this.setColors();}ngAfterViewInit(){this.canvasElement=this.canvasMainRef().nativeElement,this.canvasCtx=this.canvasElement.getContext("2d"),this.canvas.registerCanvas(this.canvasElement,{autoRelease:true,onResize:(t,e)=>{this.cssWidth=t,this.cssHeight=e,this.drawWidget();}}),this.cssHeight=Math.round(this.canvasElement.getBoundingClientRect().height),this.cssWidth=Math.round(this.canvasElement.getBoundingClientRect().width),!this.isDestroyed&&this.startWidget();}startWidget(){this.dataValue=null,this.streamRegistered||(this.stringPathConfig()?.path?(this.stream.observe("stringPath",e=>{this.dataValue=e.data.value,this.drawWidget();}),this.streamRegistered=true):this.drawWidget());}setColors(){let e=this.normalizedConfig().color??"contrast";this.labelColor.set(c(e,this.theme()).dim),this.valueColor=c(e,this.theme()).color;}ngOnDestroy(){this.isDestroyed=true;try{this.canvas.unregisterCanvas(this.canvasElement);}catch(t){}}drawWidget(){if(!this.canvasCtx)return;let t=Math.floor(this.cssHeight*.1),i=this.normalizedConfig().displayName??"Gauge Label",y=i+"|"+this.labelColor();(!this.titleBitmap||this.titleBitmap.width!==this.canvasElement.width||this.titleBitmap.height!==this.canvasElement.height||this.titleBitmapText!==y)&&(this.titleBitmap=this.canvas.createTitleBitmap(i,this.labelColor(),"normal",this.cssWidth,this.cssHeight),this.titleBitmapText=i+"|"+this.labelColor()),this.canvas.clearCanvas(this.canvasCtx,this.cssWidth,this.cssHeight),this.titleBitmap&&this.titleBitmap.width>0&&this.titleBitmap.height>0&&this.canvasCtx.drawImage(this.titleBitmap,0,0,this.cssWidth,this.cssHeight);let b=this.dataValue===null?"--":this.dataValue,h=this.canvas.EDGE_BUFFER||10,d=Math.max(0,this.cssHeight-t-2*h),W=Math.max(0,Math.floor(this.cssWidth-2*h)),w=Math.max(0,Math.floor(d)),D=Math.floor(this.cssWidth/2),B=Math.floor(t+h+d/2);this.canvas.drawText(this.canvasCtx,b,D,B,W,w,"bold",this.valueColor,"center","middle");}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=JD({type:s,selectors:[["widget-text"]],viewQuery:function(e,i){e&1&&eg(i.canvasMainRef,E,5),e&2&&Kw();},inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:2,vars:0,consts:[["canvasMainRef",""],[1,"text-canvas"]],template:function(e,i){e&1&&Uh(0,"canvas",1,0);},styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%;overflow:hidden}.text-canvas[_ngcontent-%COMP%]{display:block;width:100%!important;height:100%!important;min-height:1px}"]})}return s})();export{O as WidgetTextComponent};
@@ -1,2 +1,2 @@
1
- import {w,n as G,cD as V,aY as xe,v as vt,W as Wp,as as ke,cE as Xl,D as Dt,F as Fa,J as JD,cF as Un,O as Op,bh as xp,o as eu,cG as Ht,cH as R,cI as ee,cJ as Nt,cK as Lt,r as f,bt as u,y as yt,b as wt,P as Pi,c as $h,T as TT,u as ul,_ as _w,cf as xh,k as Qh,bl as Jw,e as EE,d as ig,aA as gg,B as Bh,M as Mw,g as qw,X as xw,Y as Aw,h as Fw,l as ud,m as dd,bp as gl,cL as vb,cM as yb}from'./main-YKDNK5VZ.js';var Ue=yb((ft,ce)=>{var Ye=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};var p=(function(r){var f=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,i=0,o={},e={manual:r.Prism&&r.Prism.manual,disableWorkerMessageHandler:r.Prism&&r.Prism.disableWorkerMessageHandler,util:{encode:function t(n){return n instanceof a?new a(n.type,t(n.content),n.alias):Array.isArray(n)?n.map(t):n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(t){return Object.prototype.toString.call(t).slice(8,-1)},objId:function(t){return t.__id||Object.defineProperty(t,"__id",{value:++i}),t.__id},clone:function t(n,s){s=s||{};var l,u;switch(e.util.type(n)){case "Object":if(u=e.util.objId(n),s[u])return s[u];l={},s[u]=l;for(var m in n)n.hasOwnProperty(m)&&(l[m]=t(n[m],s));return l;case "Array":return u=e.util.objId(n),s[u]?s[u]:(l=[],s[u]=l,n.forEach(function(E,g){l[g]=t(E,s);}),l);default:return n}},getLanguage:function(t){for(;t;){var n=f.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement;}return "none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(f,"gi"),""),t.classList.add("language-"+n);},currentScript:function(){if(typeof document>"u")return null;if(document.currentScript&&document.currentScript.tagName==="SCRIPT")return document.currentScript;try{throw new Error}catch(l){var t=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(l.stack)||[])[1];if(t){var n=document.getElementsByTagName("script");for(var s in n)if(n[s].src==t)return n[s]}return null}},isActive:function(t,n,s){for(var l="no-"+n;t;){var u=t.classList;if(u.contains(n))return !0;if(u.contains(l))return !1;t=t.parentElement;}return !!s}},languages:{plain:o,plaintext:o,text:o,txt:o,extend:function(t,n){var s=e.util.clone(e.languages[t]);for(var l in n)s[l]=n[l];return s},insertBefore:function(t,n,s,l){l=l||e.languages;var u=l[t],m={};for(var E in u)if(u.hasOwnProperty(E)){if(E==n)for(var g in s)s.hasOwnProperty(g)&&(m[g]=s[g]);s.hasOwnProperty(E)||(m[E]=u[E]);}var T=l[t];return l[t]=m,e.languages.DFS(e.languages,function(O,z){z===T&&O!=t&&(this[O]=m);}),m},DFS:function t(n,s,l,u){u=u||{};var m=e.util.objId;for(var E in n)if(n.hasOwnProperty(E)){s.call(n,E,n[E],l||E);var g=n[E],T=e.util.type(g);T==="Object"&&!u[m(g)]?(u[m(g)]=!0,t(g,s,null,u)):T==="Array"&&!u[m(g)]&&(u[m(g)]=!0,t(g,s,E,u));}}},plugins:{},highlightAll:function(t,n){e.highlightAllUnder(document,t,n);},highlightAllUnder:function(t,n,s){var l={callback:s,container:t,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};e.hooks.run("before-highlightall",l),l.elements=Array.prototype.slice.apply(l.container.querySelectorAll(l.selector)),e.hooks.run("before-all-elements-highlight",l);for(var u=0,m;m=l.elements[u++];)e.highlightElement(m,n===!0,l.callback);},highlightElement:function(t,n,s){var l=e.util.getLanguage(t),u=e.languages[l];e.util.setLanguage(t,l);var m=t.parentElement;m&&m.nodeName.toLowerCase()==="pre"&&e.util.setLanguage(m,l);var E=t.textContent,g={element:t,language:l,grammar:u,code:E};function T(z){g.highlightedCode=z,e.hooks.run("before-insert",g),g.element.innerHTML=g.highlightedCode,e.hooks.run("after-highlight",g),e.hooks.run("complete",g),s&&s.call(g.element);}if(e.hooks.run("before-sanity-check",g),m=g.element.parentElement,m&&m.nodeName.toLowerCase()==="pre"&&!m.hasAttribute("tabindex")&&m.setAttribute("tabindex","0"),!g.code){e.hooks.run("complete",g),s&&s.call(g.element);return}if(e.hooks.run("before-highlight",g),!g.grammar){T(e.util.encode(g.code));return}if(n&&r.Worker){var O=new Worker(e.filename);O.onmessage=function(z){T(z.data);},O.postMessage(JSON.stringify({language:g.language,code:g.code,immediateClose:!0}));}else T(e.highlight(g.code,g.grammar,g.language));},highlight:function(t,n,s){var l={code:t,grammar:n,language:s};if(e.hooks.run("before-tokenize",l),!l.grammar)throw new Error('The language "'+l.language+'" has no grammar.');return l.tokens=e.tokenize(l.code,l.grammar),e.hooks.run("after-tokenize",l),a.stringify(e.util.encode(l.tokens),l.language)},tokenize:function(t,n){var s=n.rest;if(s){for(var l in s)n[l]=s[l];delete n.rest;}var u=new F;return C(u,u.head,t),S(t,u,n,u.head,0),L(u)},hooks:{all:{},add:function(t,n){var s=e.hooks.all;s[t]=s[t]||[],s[t].push(n);},run:function(t,n){var s=e.hooks.all[t];if(!(!s||!s.length))for(var l=0,u;u=s[l++];)u(n);}},Token:a};r.Prism=e;function a(t,n,s,l){this.type=t,this.content=n,this.alias=s,this.length=(l||"").length|0;}a.stringify=function t(n,s){if(typeof n=="string")return n;if(Array.isArray(n)){var l="";return n.forEach(function(T){l+=t(T,s);}),l}var u={type:n.type,content:t(n.content,s),tag:"span",classes:["token",n.type],attributes:{},language:s},m=n.alias;m&&(Array.isArray(m)?Array.prototype.push.apply(u.classes,m):u.classes.push(m)),e.hooks.run("wrap",u);var E="";for(var g in u.attributes)E+=" "+g+'="'+(u.attributes[g]||"").replace(/"/g,"&quot;")+'"';return "<"+u.tag+' class="'+u.classes.join(" ")+'"'+E+">"+u.content+"</"+u.tag+">"};function h(t,n,s,l){t.lastIndex=n;var u=t.exec(s);if(u&&l&&u[1]){var m=u[1].length;u.index+=m,u[0]=u[0].slice(m);}return u}function S(t,n,s,l,u,m){for(var E in s)if(!(!s.hasOwnProperty(E)||!s[E])){var g=s[E];g=Array.isArray(g)?g:[g];for(var T=0;T<g.length;++T){if(m&&m.cause==E+","+T)return;var O=g[T],z=O.inside,ae=!!O.lookbehind,X=!!O.greedy,de=O.alias;if(X&&!O.pattern.global){var pe=O.pattern.toString().match(/[imsuy]*$/)[0];O.pattern=RegExp(O.pattern.source,pe+"g");}for(var oe=O.pattern||O,$=l.next,N=u;$!==n.tail&&!(m&&N>=m.reach);N+=$.value.length,$=$.next){var U=$.value;if(n.length>t.length)return;if(!(U instanceof a)){var q=1,G;if(X){if(G=h(oe,N,t,ae),!G||G.index>=t.length)break;var _=G.index,A=G.index+G[0].length,c=N;for(c+=$.value.length;_>=c;)$=$.next,c+=$.value.length;if(c-=$.value.length,N=c,$.value instanceof a)continue;for(var d=$;d!==n.tail&&(c<A||typeof d.value=="string");d=d.next)q++,c+=d.value.length;q--,U=t.slice(N,c),G.index-=N;}else if(G=h(oe,0,U,ae),!G)continue;var _=G.index,x=G[0],w=U.slice(0,_),H=U.slice(_+x.length),B=N+U.length;m&&B>m.reach&&(m.reach=B);var K=$.prev;w&&(K=C(n,K,w),N+=w.length),k(n,K,q);var qe=new a(E,z?e.tokenize(x,z):x,de,x);if($=C(n,K,qe),H&&C(n,$,H),q>1){var fe={cause:E+","+T,reach:B};S(t,n,s,$.prev,N,fe),m&&fe.reach>m.reach&&(m.reach=fe.reach);}}}}}}function F(){var t={value:null,prev:null,next:null},n={value:null,prev:t,next:null};t.next=n,this.head=t,this.tail=n,this.length=0;}function C(t,n,s){var l=n.next,u={value:s,prev:n,next:l};return n.next=u,l.prev=u,t.length++,u}function k(t,n,s){for(var l=n.next,u=0;u<s&&l!==t.tail;u++)l=l.next;n.next=l,l.prev=n,t.length-=u;}function L(t){for(var n=[],s=t.head.next;s!==t.tail;)n.push(s.value),s=s.next;return n}if(!r.document)return r.addEventListener&&(e.disableWorkerMessageHandler||r.addEventListener("message",function(t){var n=JSON.parse(t.data),s=n.language,l=n.code,u=n.immediateClose;r.postMessage(e.highlight(l,e.languages[s],s)),u&&r.close();},!1)),e;var y=e.util.currentScript();y&&(e.filename=y.src,y.hasAttribute("data-manual")&&(e.manual=!0));function v(){e.manual||e.highlightAll();}if(!e.manual){var b=document.readyState;b==="loading"||b==="interactive"&&y&&y.defer?document.addEventListener("DOMContentLoaded",v):window.requestAnimationFrame?window.requestAnimationFrame(v):window.setTimeout(v,16);}return e})(Ye);typeof ce<"u"&&ce.exports&&(ce.exports=p);typeof global<"u"&&(global.Prism=p);p.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]};p.languages.markup.tag.inside["attr-value"].inside.entity=p.languages.markup.entity;p.languages.markup.doctype.inside["internal-subset"].inside=p.languages.markup;p.hooks.add("wrap",function(r){r.type==="entity"&&(r.attributes.title=r.content.replace(/&amp;/,"&"));});Object.defineProperty(p.languages.markup.tag,"addInlined",{value:function(f,i){var o={};o["language-"+i]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:p.languages[i]},o.cdata=/^<!\[CDATA\[|\]\]>$/i;var e={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:o}};e["language-"+i]={pattern:/[\s\S]+/,inside:p.languages[i]};var a={};a[f]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return f}),"i"),lookbehind:!0,greedy:!0,inside:e},p.languages.insertBefore("markup","cdata",a);}});Object.defineProperty(p.languages.markup.tag,"addAttribute",{value:function(r,f){p.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+r+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[f,"language-"+f],inside:p.languages[f]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}});}});p.languages.html=p.languages.markup;p.languages.mathml=p.languages.markup;p.languages.svg=p.languages.markup;p.languages.xml=p.languages.extend("markup",{});p.languages.ssml=p.languages.xml;p.languages.atom=p.languages.xml;p.languages.rss=p.languages.xml;(function(r){var f=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;r.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+f.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+f.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+f.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+f.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:f,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},r.languages.css.atrule.inside.rest=r.languages.css;var i=r.languages.markup;i&&(i.tag.addInlined("style","css"),i.tag.addAttribute("style","css"));})(p);p.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/};p.languages.javascript=p.languages.extend("clike",{"class-name":[p.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});p.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;p.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:p.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:p.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:p.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:p.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:p.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});p.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:p.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}});p.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}});p.languages.markup&&(p.languages.markup.tag.addInlined("script","javascript"),p.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript"));p.languages.js=p.languages.javascript;(function(){if(typeof p>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var r="Loading\u2026",f=function(y,v){return "\u2716 Error "+y+" while fetching file: "+v},i="\u2716 Error: File does not exist or is empty",o={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},e="data-src-status",a="loading",h="loaded",S="failed",F="pre[data-src]:not(["+e+'="'+h+'"]):not(['+e+'="'+a+'"])';function C(y,v,b){var t=new XMLHttpRequest;t.open("GET",y,!0),t.onreadystatechange=function(){t.readyState==4&&(t.status<400&&t.responseText?v(t.responseText):t.status>=400?b(f(t.status,t.statusText)):b(i));},t.send(null);}function k(y){var v=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(y||"");if(v){var b=Number(v[1]),t=v[2],n=v[3];return t?n?[b,Number(n)]:[b,void 0]:[b,b]}}p.hooks.add("before-highlightall",function(y){y.selector+=", "+F;}),p.hooks.add("before-sanity-check",function(y){var v=y.element;if(v.matches(F)){y.code="",v.setAttribute(e,a);var b=v.appendChild(document.createElement("CODE"));b.textContent=r;var t=v.getAttribute("data-src"),n=y.language;if(n==="none"){var s=(/\.(\w+)$/.exec(t)||[,"none"])[1];n=o[s]||s;}p.util.setLanguage(b,n),p.util.setLanguage(v,n);var l=p.plugins.autoloader;l&&l.loadLanguages(n),C(t,function(u){v.setAttribute(e,h);var m=k(v.getAttribute("data-range"));if(m){var E=u.split(/\r\n?|\n/g),g=m[0],T=m[1]==null?E.length:m[1];g<0&&(g+=E.length),g=Math.max(0,Math.min(g-1,E.length)),T<0&&(T+=E.length),T=Math.max(0,Math.min(T,E.length)),u=E.slice(g,T).join(`
1
+ import {w,n as G,cD as V,aY as xe,v as vt,W as Wp,as as ke,cE as Xl,D as Dt,F as Fa,J as JD,cF as Un,O as Op,bh as xp,o as eu,cG as Ht,cH as R,cI as ee,cJ as Nt,cK as Lt,r as f,bt as u,y as yt,b as wt,P as Pi,c as $h,T as TT,u as ul,_ as _w,cf as xh,k as Qh,bl as Jw,e as EE,d as ig,aA as gg,B as Bh,M as Mw,g as qw,X as xw,Y as Aw,h as Fw,l as ud,m as dd,bp as gl,cL as vb,cM as yb}from'./main-F7NMHHV4.js';var Ue=yb((ft,ce)=>{var Ye=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};var p=(function(r){var f=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,i=0,o={},e={manual:r.Prism&&r.Prism.manual,disableWorkerMessageHandler:r.Prism&&r.Prism.disableWorkerMessageHandler,util:{encode:function t(n){return n instanceof a?new a(n.type,t(n.content),n.alias):Array.isArray(n)?n.map(t):n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(t){return Object.prototype.toString.call(t).slice(8,-1)},objId:function(t){return t.__id||Object.defineProperty(t,"__id",{value:++i}),t.__id},clone:function t(n,s){s=s||{};var l,u;switch(e.util.type(n)){case "Object":if(u=e.util.objId(n),s[u])return s[u];l={},s[u]=l;for(var m in n)n.hasOwnProperty(m)&&(l[m]=t(n[m],s));return l;case "Array":return u=e.util.objId(n),s[u]?s[u]:(l=[],s[u]=l,n.forEach(function(E,g){l[g]=t(E,s);}),l);default:return n}},getLanguage:function(t){for(;t;){var n=f.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement;}return "none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(f,"gi"),""),t.classList.add("language-"+n);},currentScript:function(){if(typeof document>"u")return null;if(document.currentScript&&document.currentScript.tagName==="SCRIPT")return document.currentScript;try{throw new Error}catch(l){var t=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(l.stack)||[])[1];if(t){var n=document.getElementsByTagName("script");for(var s in n)if(n[s].src==t)return n[s]}return null}},isActive:function(t,n,s){for(var l="no-"+n;t;){var u=t.classList;if(u.contains(n))return !0;if(u.contains(l))return !1;t=t.parentElement;}return !!s}},languages:{plain:o,plaintext:o,text:o,txt:o,extend:function(t,n){var s=e.util.clone(e.languages[t]);for(var l in n)s[l]=n[l];return s},insertBefore:function(t,n,s,l){l=l||e.languages;var u=l[t],m={};for(var E in u)if(u.hasOwnProperty(E)){if(E==n)for(var g in s)s.hasOwnProperty(g)&&(m[g]=s[g]);s.hasOwnProperty(E)||(m[E]=u[E]);}var T=l[t];return l[t]=m,e.languages.DFS(e.languages,function(O,z){z===T&&O!=t&&(this[O]=m);}),m},DFS:function t(n,s,l,u){u=u||{};var m=e.util.objId;for(var E in n)if(n.hasOwnProperty(E)){s.call(n,E,n[E],l||E);var g=n[E],T=e.util.type(g);T==="Object"&&!u[m(g)]?(u[m(g)]=!0,t(g,s,null,u)):T==="Array"&&!u[m(g)]&&(u[m(g)]=!0,t(g,s,E,u));}}},plugins:{},highlightAll:function(t,n){e.highlightAllUnder(document,t,n);},highlightAllUnder:function(t,n,s){var l={callback:s,container:t,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};e.hooks.run("before-highlightall",l),l.elements=Array.prototype.slice.apply(l.container.querySelectorAll(l.selector)),e.hooks.run("before-all-elements-highlight",l);for(var u=0,m;m=l.elements[u++];)e.highlightElement(m,n===!0,l.callback);},highlightElement:function(t,n,s){var l=e.util.getLanguage(t),u=e.languages[l];e.util.setLanguage(t,l);var m=t.parentElement;m&&m.nodeName.toLowerCase()==="pre"&&e.util.setLanguage(m,l);var E=t.textContent,g={element:t,language:l,grammar:u,code:E};function T(z){g.highlightedCode=z,e.hooks.run("before-insert",g),g.element.innerHTML=g.highlightedCode,e.hooks.run("after-highlight",g),e.hooks.run("complete",g),s&&s.call(g.element);}if(e.hooks.run("before-sanity-check",g),m=g.element.parentElement,m&&m.nodeName.toLowerCase()==="pre"&&!m.hasAttribute("tabindex")&&m.setAttribute("tabindex","0"),!g.code){e.hooks.run("complete",g),s&&s.call(g.element);return}if(e.hooks.run("before-highlight",g),!g.grammar){T(e.util.encode(g.code));return}if(n&&r.Worker){var O=new Worker(e.filename);O.onmessage=function(z){T(z.data);},O.postMessage(JSON.stringify({language:g.language,code:g.code,immediateClose:!0}));}else T(e.highlight(g.code,g.grammar,g.language));},highlight:function(t,n,s){var l={code:t,grammar:n,language:s};if(e.hooks.run("before-tokenize",l),!l.grammar)throw new Error('The language "'+l.language+'" has no grammar.');return l.tokens=e.tokenize(l.code,l.grammar),e.hooks.run("after-tokenize",l),a.stringify(e.util.encode(l.tokens),l.language)},tokenize:function(t,n){var s=n.rest;if(s){for(var l in s)n[l]=s[l];delete n.rest;}var u=new F;return C(u,u.head,t),S(t,u,n,u.head,0),L(u)},hooks:{all:{},add:function(t,n){var s=e.hooks.all;s[t]=s[t]||[],s[t].push(n);},run:function(t,n){var s=e.hooks.all[t];if(!(!s||!s.length))for(var l=0,u;u=s[l++];)u(n);}},Token:a};r.Prism=e;function a(t,n,s,l){this.type=t,this.content=n,this.alias=s,this.length=(l||"").length|0;}a.stringify=function t(n,s){if(typeof n=="string")return n;if(Array.isArray(n)){var l="";return n.forEach(function(T){l+=t(T,s);}),l}var u={type:n.type,content:t(n.content,s),tag:"span",classes:["token",n.type],attributes:{},language:s},m=n.alias;m&&(Array.isArray(m)?Array.prototype.push.apply(u.classes,m):u.classes.push(m)),e.hooks.run("wrap",u);var E="";for(var g in u.attributes)E+=" "+g+'="'+(u.attributes[g]||"").replace(/"/g,"&quot;")+'"';return "<"+u.tag+' class="'+u.classes.join(" ")+'"'+E+">"+u.content+"</"+u.tag+">"};function h(t,n,s,l){t.lastIndex=n;var u=t.exec(s);if(u&&l&&u[1]){var m=u[1].length;u.index+=m,u[0]=u[0].slice(m);}return u}function S(t,n,s,l,u,m){for(var E in s)if(!(!s.hasOwnProperty(E)||!s[E])){var g=s[E];g=Array.isArray(g)?g:[g];for(var T=0;T<g.length;++T){if(m&&m.cause==E+","+T)return;var O=g[T],z=O.inside,ae=!!O.lookbehind,X=!!O.greedy,de=O.alias;if(X&&!O.pattern.global){var pe=O.pattern.toString().match(/[imsuy]*$/)[0];O.pattern=RegExp(O.pattern.source,pe+"g");}for(var oe=O.pattern||O,$=l.next,N=u;$!==n.tail&&!(m&&N>=m.reach);N+=$.value.length,$=$.next){var U=$.value;if(n.length>t.length)return;if(!(U instanceof a)){var q=1,G;if(X){if(G=h(oe,N,t,ae),!G||G.index>=t.length)break;var _=G.index,A=G.index+G[0].length,c=N;for(c+=$.value.length;_>=c;)$=$.next,c+=$.value.length;if(c-=$.value.length,N=c,$.value instanceof a)continue;for(var d=$;d!==n.tail&&(c<A||typeof d.value=="string");d=d.next)q++,c+=d.value.length;q--,U=t.slice(N,c),G.index-=N;}else if(G=h(oe,0,U,ae),!G)continue;var _=G.index,x=G[0],w=U.slice(0,_),H=U.slice(_+x.length),B=N+U.length;m&&B>m.reach&&(m.reach=B);var K=$.prev;w&&(K=C(n,K,w),N+=w.length),k(n,K,q);var qe=new a(E,z?e.tokenize(x,z):x,de,x);if($=C(n,K,qe),H&&C(n,$,H),q>1){var fe={cause:E+","+T,reach:B};S(t,n,s,$.prev,N,fe),m&&fe.reach>m.reach&&(m.reach=fe.reach);}}}}}}function F(){var t={value:null,prev:null,next:null},n={value:null,prev:t,next:null};t.next=n,this.head=t,this.tail=n,this.length=0;}function C(t,n,s){var l=n.next,u={value:s,prev:n,next:l};return n.next=u,l.prev=u,t.length++,u}function k(t,n,s){for(var l=n.next,u=0;u<s&&l!==t.tail;u++)l=l.next;n.next=l,l.prev=n,t.length-=u;}function L(t){for(var n=[],s=t.head.next;s!==t.tail;)n.push(s.value),s=s.next;return n}if(!r.document)return r.addEventListener&&(e.disableWorkerMessageHandler||r.addEventListener("message",function(t){var n=JSON.parse(t.data),s=n.language,l=n.code,u=n.immediateClose;r.postMessage(e.highlight(l,e.languages[s],s)),u&&r.close();},!1)),e;var y=e.util.currentScript();y&&(e.filename=y.src,y.hasAttribute("data-manual")&&(e.manual=!0));function v(){e.manual||e.highlightAll();}if(!e.manual){var b=document.readyState;b==="loading"||b==="interactive"&&y&&y.defer?document.addEventListener("DOMContentLoaded",v):window.requestAnimationFrame?window.requestAnimationFrame(v):window.setTimeout(v,16);}return e})(Ye);typeof ce<"u"&&ce.exports&&(ce.exports=p);typeof global<"u"&&(global.Prism=p);p.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]};p.languages.markup.tag.inside["attr-value"].inside.entity=p.languages.markup.entity;p.languages.markup.doctype.inside["internal-subset"].inside=p.languages.markup;p.hooks.add("wrap",function(r){r.type==="entity"&&(r.attributes.title=r.content.replace(/&amp;/,"&"));});Object.defineProperty(p.languages.markup.tag,"addInlined",{value:function(f,i){var o={};o["language-"+i]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:p.languages[i]},o.cdata=/^<!\[CDATA\[|\]\]>$/i;var e={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:o}};e["language-"+i]={pattern:/[\s\S]+/,inside:p.languages[i]};var a={};a[f]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return f}),"i"),lookbehind:!0,greedy:!0,inside:e},p.languages.insertBefore("markup","cdata",a);}});Object.defineProperty(p.languages.markup.tag,"addAttribute",{value:function(r,f){p.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+r+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[f,"language-"+f],inside:p.languages[f]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}});}});p.languages.html=p.languages.markup;p.languages.mathml=p.languages.markup;p.languages.svg=p.languages.markup;p.languages.xml=p.languages.extend("markup",{});p.languages.ssml=p.languages.xml;p.languages.atom=p.languages.xml;p.languages.rss=p.languages.xml;(function(r){var f=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;r.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+f.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+f.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+f.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+f.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:f,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},r.languages.css.atrule.inside.rest=r.languages.css;var i=r.languages.markup;i&&(i.tag.addInlined("style","css"),i.tag.addAttribute("style","css"));})(p);p.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/};p.languages.javascript=p.languages.extend("clike",{"class-name":[p.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});p.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;p.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:p.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:p.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:p.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:p.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:p.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});p.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:p.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}});p.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}});p.languages.markup&&(p.languages.markup.tag.addInlined("script","javascript"),p.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript"));p.languages.js=p.languages.javascript;(function(){if(typeof p>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var r="Loading\u2026",f=function(y,v){return "\u2716 Error "+y+" while fetching file: "+v},i="\u2716 Error: File does not exist or is empty",o={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},e="data-src-status",a="loading",h="loaded",S="failed",F="pre[data-src]:not(["+e+'="'+h+'"]):not(['+e+'="'+a+'"])';function C(y,v,b){var t=new XMLHttpRequest;t.open("GET",y,!0),t.onreadystatechange=function(){t.readyState==4&&(t.status<400&&t.responseText?v(t.responseText):t.status>=400?b(f(t.status,t.statusText)):b(i));},t.send(null);}function k(y){var v=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(y||"");if(v){var b=Number(v[1]),t=v[2],n=v[3];return t?n?[b,Number(n)]:[b,void 0]:[b,b]}}p.hooks.add("before-highlightall",function(y){y.selector+=", "+F;}),p.hooks.add("before-sanity-check",function(y){var v=y.element;if(v.matches(F)){y.code="",v.setAttribute(e,a);var b=v.appendChild(document.createElement("CODE"));b.textContent=r;var t=v.getAttribute("data-src"),n=y.language;if(n==="none"){var s=(/\.(\w+)$/.exec(t)||[,"none"])[1];n=o[s]||s;}p.util.setLanguage(b,n),p.util.setLanguage(v,n);var l=p.plugins.autoloader;l&&l.loadLanguages(n),C(t,function(u){v.setAttribute(e,h);var m=k(v.getAttribute("data-range"));if(m){var E=u.split(/\r\n?|\n/g),g=m[0],T=m[1]==null?E.length:m[1];g<0&&(g+=E.length),g=Math.max(0,Math.min(g-1,E.length)),T<0&&(T+=E.length),T=Math.max(0,Math.min(T,E.length)),u=E.slice(g,T).join(`
2
2
  `),v.hasAttribute("data-start")||v.setAttribute("data-start",String(g+1));}b.textContent=u,p.highlightElement(b);},function(u){v.setAttribute(e,S),b.textContent=u;});}}),p.plugins.fileHighlight={highlight:function(v){for(var b=(v||document).querySelectorAll(F),t=0,n;n=b[t++];)p.highlightElement(n);}};var L=!1;p.fileHighlight=function(){L||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),L=!0),p.plugins.fileHighlight.highlight.apply(this,arguments);};})();});var je=yb((re,he)=>{(function(f,i){typeof re=="object"&&typeof he=="object"?he.exports=i():typeof define=="function"&&define.amd?define([],i):typeof re=="object"?re.ClipboardJS=i():f.ClipboardJS=i();})(re,function(){return (function(){var r={686:(function(o,e,a){"use strict";a.d(e,{default:function(){return G}});var h=a(279),S=a.n(h),F=a(370),C=a.n(F),k=a(817),L=a.n(k);function y(A){try{return document.execCommand(A)}catch(c){return !1}}var v=function(c){var d=L()(c);return y("cut"),d},b=v;function t(A){var c=document.documentElement.getAttribute("dir")==="rtl",d=document.createElement("textarea");d.style.fontSize="12pt",d.style.border="0",d.style.padding="0",d.style.margin="0",d.style.position="absolute",d.style[c?"right":"left"]="-9999px";var _=window.pageYOffset||document.documentElement.scrollTop;return d.style.top="".concat(_,"px"),d.setAttribute("readonly",""),d.value=A,d}var n=function(c,d){var _=t(c);d.container.appendChild(_);var x=L()(_);return y("copy"),_.remove(),x},s=function(c){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},_="";return typeof c=="string"?_=n(c,d):c instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(c?.type)?_=n(c.value,d):(_=L()(c),y("copy")),_},l=s;function u(A){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?u=function(d){return typeof d}:u=function(d){return d&&typeof Symbol=="function"&&d.constructor===Symbol&&d!==Symbol.prototype?"symbol":typeof d},u(A)}var m=function(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=c.action,_=d===void 0?"copy":d,x=c.container,w=c.target,H=c.text;if(_!=="copy"&&_!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(w!==void 0)if(w&&u(w)==="object"&&w.nodeType===1){if(_==="copy"&&w.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(_==="cut"&&(w.hasAttribute("readonly")||w.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(H)return l(H,{container:x});if(w)return _==="cut"?b(w):l(w,{container:x})},E=m;function g(A){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?g=function(d){return typeof d}:g=function(d){return d&&typeof Symbol=="function"&&d.constructor===Symbol&&d!==Symbol.prototype?"symbol":typeof d},g(A)}function T(A,c){if(!(A instanceof c))throw new TypeError("Cannot call a class as a function")}function O(A,c){for(var d=0;d<c.length;d++){var _=c[d];_.enumerable=_.enumerable||!1,_.configurable=!0,"value"in _&&(_.writable=!0),Object.defineProperty(A,_.key,_);}}function z(A,c,d){return c&&O(A.prototype,c),d&&O(A,d),A}function ae(A,c){if(typeof c!="function"&&c!==null)throw new TypeError("Super expression must either be null or a function");A.prototype=Object.create(c&&c.prototype,{constructor:{value:A,writable:!0,configurable:!0}}),c&&X(A,c);}function X(A,c){return X=Object.setPrototypeOf||function(_,x){return _.__proto__=x,_},X(A,c)}function de(A){var c=$();return function(){var _=N(A),x;if(c){var w=N(this).constructor;x=Reflect.construct(_,arguments,w);}else x=_.apply(this,arguments);return pe(this,x)}}function pe(A,c){return c&&(g(c)==="object"||typeof c=="function")?c:oe(A)}function oe(A){if(A===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return A}function $(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return !1;if(typeof Proxy=="function")return !0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(A){return !1}}function N(A){return N=Object.setPrototypeOf?Object.getPrototypeOf:function(d){return d.__proto__||Object.getPrototypeOf(d)},N(A)}function U(A,c){var d="data-clipboard-".concat(A);if(c.hasAttribute(d))return c.getAttribute(d)}var q=(function(A){ae(d,A);var c=de(d);function d(_,x){var w;return T(this,d),w=c.call(this),w.resolveOptions(x),w.listenClick(_),w}return z(d,[{key:"resolveOptions",value:function(){var x=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof x.action=="function"?x.action:this.defaultAction,this.target=typeof x.target=="function"?x.target:this.defaultTarget,this.text=typeof x.text=="function"?x.text:this.defaultText,this.container=g(x.container)==="object"?x.container:document.body;}},{key:"listenClick",value:function(x){var w=this;this.listener=C()(x,"click",function(H){return w.onClick(H)});}},{key:"onClick",value:function(x){var w=x.delegateTarget||x.currentTarget,H=this.action(w)||"copy",B=E({action:H,container:this.container,target:this.target(w),text:this.text(w)});this.emit(B?"success":"error",{action:H,text:B,trigger:w,clearSelection:function(){w&&w.focus(),window.getSelection().removeAllRanges();}});}},{key:"defaultAction",value:function(x){return U("action",x)}},{key:"defaultTarget",value:function(x){var w=U("target",x);if(w)return document.querySelector(w)}},{key:"defaultText",value:function(x){return U("text",x)}},{key:"destroy",value:function(){this.listener.destroy();}}],[{key:"copy",value:function(x){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return l(x,w)}},{key:"cut",value:function(x){return b(x)}},{key:"isSupported",value:function(){var x=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],w=typeof x=="string"?[x]:x,H=!!document.queryCommandSupported;return w.forEach(function(B){H=H&&!!document.queryCommandSupported(B);}),H}}]),d})(S()),G=q;}),828:(function(o){var e=9;if(typeof Element<"u"&&!Element.prototype.matches){var a=Element.prototype;a.matches=a.matchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector||a.webkitMatchesSelector;}function h(S,F){for(;S&&S.nodeType!==e;){if(typeof S.matches=="function"&&S.matches(F))return S;S=S.parentNode;}}o.exports=h;}),438:(function(o,e,a){var h=a(828);function S(k,L,y,v,b){var t=C.apply(this,arguments);return k.addEventListener(y,t,b),{destroy:function(){k.removeEventListener(y,t,b);}}}function F(k,L,y,v,b){return typeof k.addEventListener=="function"?S.apply(null,arguments):typeof y=="function"?S.bind(null,document).apply(null,arguments):(typeof k=="string"&&(k=document.querySelectorAll(k)),Array.prototype.map.call(k,function(t){return S(t,L,y,v,b)}))}function C(k,L,y,v){return function(b){b.delegateTarget=h(b.target,L),b.delegateTarget&&v.call(k,b);}}o.exports=F;}),879:(function(o,e){e.node=function(a){return a!==void 0&&a instanceof HTMLElement&&a.nodeType===1},e.nodeList=function(a){var h=Object.prototype.toString.call(a);return a!==void 0&&(h==="[object NodeList]"||h==="[object HTMLCollection]")&&"length"in a&&(a.length===0||e.node(a[0]))},e.string=function(a){return typeof a=="string"||a instanceof String},e.fn=function(a){var h=Object.prototype.toString.call(a);return h==="[object Function]"};}),370:(function(o,e,a){var h=a(879),S=a(438);function F(y,v,b){if(!y&&!v&&!b)throw new Error("Missing required arguments");if(!h.string(v))throw new TypeError("Second argument must be a String");if(!h.fn(b))throw new TypeError("Third argument must be a Function");if(h.node(y))return C(y,v,b);if(h.nodeList(y))return k(y,v,b);if(h.string(y))return L(y,v,b);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function C(y,v,b){return y.addEventListener(v,b),{destroy:function(){y.removeEventListener(v,b);}}}function k(y,v,b){return Array.prototype.forEach.call(y,function(t){t.addEventListener(v,b);}),{destroy:function(){Array.prototype.forEach.call(y,function(t){t.removeEventListener(v,b);});}}}function L(y,v,b){return S(document.body,y,v,b)}o.exports=F;}),817:(function(o){function e(a){var h;if(a.nodeName==="SELECT")a.focus(),h=a.value;else if(a.nodeName==="INPUT"||a.nodeName==="TEXTAREA"){var S=a.hasAttribute("readonly");S||a.setAttribute("readonly",""),a.select(),a.setSelectionRange(0,a.value.length),S||a.removeAttribute("readonly"),h=a.value;}else {a.hasAttribute("contenteditable")&&a.focus();var F=window.getSelection(),C=document.createRange();C.selectNodeContents(a),F.removeAllRanges(),F.addRange(C),h=F.toString();}return h}o.exports=e;}),279:(function(o){function e(){}e.prototype={on:function(a,h,S){var F=this.e||(this.e={});return (F[a]||(F[a]=[])).push({fn:h,ctx:S}),this},once:function(a,h,S){var F=this;function C(){F.off(a,C),h.apply(S,arguments);}return C._=h,this.on(a,C,S)},emit:function(a){var h=[].slice.call(arguments,1),S=((this.e||(this.e={}))[a]||[]).slice(),F=0,C=S.length;for(F;F<C;F++)S[F].fn.apply(S[F].ctx,h);return this},off:function(a,h){var S=this.e||(this.e={}),F=S[a],C=[];if(F&&h)for(var k=0,L=F.length;k<L;k++)F[k].fn!==h&&F[k].fn._!==h&&C.push(F[k]);return C.length?S[a]=C:delete S[a],this}},o.exports=e,o.exports.TinyEmitter=e;})},f={};function i(o){if(f[o])return f[o].exports;var e=f[o]={exports:{}};return r[o](e,e.exports,i),e.exports}return (function(){i.n=function(o){var e=o&&o.__esModule?function(){return o.default}:function(){return o};return i.d(e,{a:e}),e};})(),(function(){i.d=function(o,e){for(var a in e)i.o(e,a)&&!i.o(o,a)&&Object.defineProperty(o,a,{enumerable:!0,get:e[a]});};})(),(function(){i.o=function(o,e){return Object.prototype.hasOwnProperty.call(o,e)};})(),i(686)})().default});});vb(Ue());(function(r){var f="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",i={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:true,alias:"punctuation",inside:null},o={bash:i,environment:{pattern:RegExp("\\$"+f),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:true,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:true},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:true,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:true,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+f),lookbehind:true,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};r.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:true},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:true,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:true},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+f),lookbehind:true,alias:"constant"}},alias:"variable",lookbehind:true},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:true},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:true,greedy:true,inside:o},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:true,greedy:true,inside:{bash:i}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:true,greedy:true,inside:o},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:true,greedy:true},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:true,inside:{entity:o.entity}}],environment:{pattern:RegExp("\\$?"+f),alias:"constant"},variable:o.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:true},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:true},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:true,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:true},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:true}},i.inside=r.languages.bash;for(var e=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=o.variable[1].inside,h=0;h<e.length;h++)a[e[h]]=r.languages.bash[e[h]];r.languages.sh=r.languages.bash,r.languages.shell=r.languages.bash;})(Prism);(function(r){r.languages.typescript=r.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:true,greedy:true,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),r.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete r.languages.typescript.parameter,delete r.languages.typescript["literal-property"];var f=r.languages.extend("typescript",{});delete f["class-name"],r.languages.typescript["class-name"].inside=f,r.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:true,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:f}}}}),r.languages.ts=r.languages.typescript;})(Prism);var Be=vb(je());var Ve=(r,f)=>f.title,Xe=(r,f)=>f.file;function We(r,f){r&1&&TT(0," Loading... ");}function Ze(r,f){r&1&&TT(0," Table of Content ");}function Ke(r,f){r&1&&(Pi(0,"button",12),TT(1,"Error loading menu"),ul());}function Je(r,f){r&1&&(Pi(0,"button",12),TT(1,"No help entries"),ul());}function Qe(r,f){if(r&1){let i=Fw();Pi(0,"button",15),Qh("click",function(){let e=ud(i).$implicit,a=qw(5);return dd(a.selectFile(e.file))}),TT(1),ul();}if(r&2){let i=f.$implicit,o=qw(5);Bh("disabled",o.selectedFile()===i.file),EE(),gl(" ",i.title," ");}}function et(r,f){if(r&1&&(Pi(0,"button",14),TT(1),ul(),xw(2,Qe,2,2,"button",13,Xe)),r&2){let i=qw().$implicit;EE(),gg(i.title),EE(),Aw(i.items);}}function tt(r,f){if(r&1){let i=Fw();Pi(0,"button",15),Qh("click",function(){ud(i);let e=qw().$implicit,a=qw(3);return dd(a.selectFile(e.file))}),TT(1),ul();}if(r&2){let i=qw().$implicit,o=qw(3);Bh("disabled",o.selectedFile()===i.file),EE(),gl(" ",i.title," ");}}function nt(r,f){if(r&1&&_w(0,et,4,1)(1,tt,2,2,"button",13),r&2){let i=f.$implicit,o=qw(3);Mw(o.isGroup(i)?0:1);}}function it(r,f){if(r&1&&xw(0,nt,2,1,null,null,Ve),r&2){let i=qw(2);Aw(i.helpMenuItems());}}function rt(r,f){if(r&1){let i=Fw();Pi(0,"button",15),Qh("click",function(){let e=ud(i).$implicit,a=qw(5);return dd(a.selectFile(e.file))}),TT(1),ul();}if(r&2){let i=f.$implicit,o=qw(5);Bh("disabled",o.selectedFile()===i.file),EE(),gl(" ",i.title," ");}}function at(r,f){if(r&1&&(Pi(0,"button",16),TT(1),ul(),Pi(2,"mat-menu",17,1),xw(4,rt,2,2,"button",13,Xe),ul()),r&2){let i=Jw(3),o=qw().$implicit;Bh("matMenuTriggerFor",i),EE(),gg(o.title),EE(),Bh("overlapTrigger",false),EE(2),Aw(o.items);}}function ot(r,f){if(r&1){let i=Fw();Pi(0,"button",15),Qh("click",function(){ud(i);let e=qw().$implicit,a=qw(3);return dd(a.selectFile(e.file))}),TT(1),ul();}if(r&2){let i=qw().$implicit,o=qw(3);Bh("disabled",o.selectedFile()===i.file),EE(),gl(" ",i.title," ");}}function st(r,f){if(r&1&&_w(0,at,6,3)(1,ot,2,2,"button",13),r&2){let i=f.$implicit,o=qw(3);Mw(o.isGroup(i)?0:1);}}function lt(r,f){if(r&1&&xw(0,st,2,1,null,null,Ve),r&2){let i=qw(2);Aw(i.helpMenuItems());}}function ut(r,f){if(r&1&&_w(0,Ke,2,0,"button",12)(1,Je,2,0,"button",12)(2,it,2,0)(3,lt,2,0),r&2){let i=qw();Mw(i.hasError()?0:!i.isLoading()&&i.helpFiles().length===0?1:i.isMobileMenuMode()?2:3);}}function ct(r,f){r&1&&(Pi(0,"div",11),TT(1,"Unable to load help content."),ul());}function dt(r,f){r&1&&(Pi(0,"div",11),TT(1,"Loading help..."),ul());}function pt(r,f){if(r&1&&(Pi(0,"div",11),$h(1,"markdown",18),ul()),r&2){let i=qw();EE(),Bh("src",`assets/help-docs/${i.selectedFile()}`);}}window.ClipboardJS=Be.default;var $t=(()=>{class r{pageTitle="Help";_router=w(G);_route=w(V);_destroyRef=w(xe);_isMobileMenuMode=vt(this.detectMobileMenuMode());_selectedPageFromRoute=Wp(this._route.paramMap.pipe(ke(i=>i.get("page"))),{initialValue:null});constructor(){let i=this.getMobileMenuMediaQuery();if(i===null)return;this._isMobileMenuMode.set(i.matches);let o=e=>{this._isMobileMenuMode.set(e.matches);};i.addEventListener("change",o),this._destroyRef.onDestroy(()=>{i.removeEventListener("change",o);});}_helpMenuRes=Xl(()=>"assets/help-docs/menu.json");helpMenuItems=Dt(()=>this._helpMenuRes.hasValue()?this.normalizeMenu(this._helpMenuRes.value()??[]):[]);helpFiles=Dt(()=>{let i=this.helpMenuItems();return i.length===0?[]:i.flatMap(o=>this.isGroup(o)?o.items:[o])});selectedFile=vt("");_syncEffect=Fa(()=>{let i=this.helpFiles(),o=this._selectedPageFromRoute();if(i.length===0)return;let e=this.resolveSelectedFile(o,i);this.selectedFile()!==e&&this.selectedFile.set(e);});hasError=Dt(()=>this._helpMenuRes.error()!=null);isLoading=Dt(()=>this._helpMenuRes.isLoading());isMobileMenuMode=Dt(()=>this._isMobileMenuMode());isGroup(i){return "items"in i}selectFile(i){this.selectedFile.set(i),this._router.navigate(["/help",this.toPageSegment(i)]);}backPage(){this._router.navigate(["/settings"]);}closePage(){this._router.navigate(["/dashboard"]);}resolveSelectedFile(i,o){if(i){let e=i.endsWith(".md")?i:`${i}.md`,a=o.find(h=>h.file===e);if(a)return a.file}return o[0].file}toPageSegment(i){return i.endsWith(".md")?i.slice(0,-3):i}normalizeMenu(i){let o=[];return i.forEach(e=>{let a=(e.title??"").trim();if(Array.isArray(e.items)){let h=e.items.filter(this.isValidLeaf).filter(S=>S.file.endsWith(".md")).map(S=>({title:S.title.trim(),file:S.file.trim()}));if(!a||h.length===0)return;o.push({title:a,items:h});return}this.isValidLeaf(e)&&e.file.endsWith(".md")&&o.push({title:e.title.trim(),file:e.file.trim()});}),o}isValidLeaf(i){return typeof i.title=="string"&&i.title.trim().length>0&&typeof i.file=="string"&&i.file.trim().length>0}detectMobileMenuMode(){return this.getMobileMenuMediaQuery()?.matches??false}getMobileMenuMediaQuery(){return typeof window>"u"||typeof window.matchMedia!="function"?null:window.matchMedia("(max-width: 900px), (hover: none) and (pointer: coarse)")}static \u0275fac=function(o){return new(o||r)};static \u0275cmp=JD({type:r,selectors:[["app-help"]],decls:22,vars:9,consts:[["helpMenu","matMenu"],["childMenu","matMenu"],[1,"fullpage-header"],[1,"page-icon"],["svgIcon","help-center","aria-hidden","false"],[1,"page-title"],["mat-flat-button","",3,"matMenuTriggerFor","disabled"],[1,"help-menu-panel"],["matMenuContent",""],[1,"dialog-close-icon"],["mat-icon-button","",3,"click"],[1,"markdown-content"],["mat-menu-item","","disabled",""],["mat-menu-item","",3,"disabled"],["mat-menu-item","","disabled","",1,"help-menu-group-title"],["mat-menu-item","",3,"click","disabled"],["mat-menu-item","",3,"matMenuTriggerFor"],[1,"help-menu-panel",3,"overlapTrigger"],["clipboard","",3,"src"]],template:function(o,e){if(o&1&&(Pi(0,"div",2)(1,"div",3),$h(2,"mat-icon",4),Pi(3,"h6",5),TT(4),ul()(),Pi(5,"button",6),_w(6,We,1,0)(7,Ze,1,0),ul(),Pi(8,"mat-menu",7,0),xh(10,ut,4,1,"ng-template",8),ul(),Pi(11,"div",9)(12,"button",10),Qh("click",function(){return e.backPage()}),Pi(13,"mat-icon"),TT(14,"arrow_back_ios"),ul()(),Pi(15,"button",10),Qh("click",function(){return e.closePage()}),Pi(16,"mat-icon"),TT(17,"close"),ul()()()(),$h(18,"mat-divider"),_w(19,ct,2,0,"div",11)(20,dt,2,0,"div",11)(21,pt,2,1,"div",11)),o&2){let a=Jw(9);EE(2),ig("width",24,"px")("height",24,"px"),EE(2),gg(e.pageTitle),EE(),Bh("matMenuTriggerFor",a)("disabled",e.isLoading()||e.hasError()||e.helpFiles().length===0),EE(),Mw(e.isLoading()?6:7),EE(13),Mw(e.hasError()?19:e.isLoading()&&e.helpFiles().length===0?20:e.selectedFile()?21:-1);}},dependencies:[Un,Op,xp,eu,Ht,R,ee,Nt,Lt,f,u,yt,wt],styles:[".fullpage-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center}.page-icon[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:flex-start;align-items:center;margin-left:15px}.page-title[_ngcontent-%COMP%]{margin-block-start:0px;margin-block-end:0px;padding:18px 0 13px 5px;color:var(--mat-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, .87)));font-family:var(--mat-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));line-height:var(--mat-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));font-size:var(--mat-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));font-weight:var(--mat-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));letter-spacing:var(--mat-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, .03125em))}.mat-mdc-dialog-content[_ngcontent-%COMP%]{max-height:max-content}.dialog-close-icon[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex-wrap:nowrap;gap:5px;padding-right:15px}.help-menu-group-title[_ngcontent-%COMP%]{font-weight:600;opacity:.9} .mat-mdc-menu-panel.help-menu-panel{border:1px solid var(--mat-sys-outline);background:var(--mat-sys-surface-container-high)} .markdown-content{display:block;height:calc(100% - 75px);width:100%;overflow-x:scroll;padding:25px;font-size:1.1rem;line-height:1.7;background:var(--mat-sys-surface-container, #fff);color:var(--mat-sys-on-surface, #222);border-radius:12px;box-shadow:0 2px 8px #00000012;max-width:900px;margin:0 auto} .markdown-content h1, .markdown-content h2, .markdown-content h3, .markdown-content h4{color:var(--mat-sys-primary, #1976d2);margin-top:1.5em;margin-bottom:.5em;font-weight:600} .markdown-content pre{padding:1em;overflow-x:auto} .markdown-content table{border:1px solid var(--mat-sys-on-background);border-collapse:collapse;width:100%;margin:1em 0} .markdown-content table td{border:1px solid var(--mat-sys-on-background);padding:8px;text-align:left} .markdown-content th{color:var(--mat-sys-primary, #1976d2);font-weight:600;padding:.5em 1em;border:2px solid var(--mat-sys-primary, #1976d2);text-align:left} .markdown-content table tr:nth-child(2n){background-color:var(--mat-sys-surface-container-high)} .markdown-content a{color:var(--mat-sys-primary, #1976d2);text-decoration:underline} .markdown-content a:hover{text-decoration:none;color:var(--mat-sys-secondary, #005fa3)} .markdown-content ul, .markdown-content ol{margin-left:2em;margin-bottom:1em} .markdown-content blockquote{border-left:4px solid var(--mat-sys-tertiary);background:var(--mat-sys-on-tertiary-fixed-variant);padding:.5em 1em;color:var(--mat-sys-on-surface-variant, #555);margin:1em 0}"]})}return r})();export{$t as AppHelpComponent};
@@ -1 +1 @@
1
- import {a as a$1}from'./chunk-ibauGmSP.js';import {d1 as Hj,w,du as p,a as G,H as Dr,G as Gi,$ as $j,v as vt,F as Fa,dn as ge,J as JD,cp as Uh,b_ as Gh,e as EE,d as ig,f as eg,K as Kw,dP as pp}from'./main-YKDNK5VZ.js';var C=["plainIframe"],j=(()=>{class a{id=Hj.required();type=Hj.required();theme=Hj.required();runtime=w(p);_dashboard=w(G);_sanitizer=w(Dr);settings=w(Gi);static DEFAULT_CONFIG={};iframe=$j.required("plainIframe");widgetUrl=null;displayTransparentOverlay=vt("block");constructor(){let e=new URL("/signalk-anchoralarm-plugin/",window.location.origin);this.widgetUrl=this.toSafeResourceUrl(e),Fa(()=>{let i=this.runtime.options(),t=this._dashboard.isDashboardStatic();i&&ge(()=>{t?this.displayTransparentOverlay.set("none"):this.displayTransparentOverlay.set("block");});}),window.addEventListener("message",this.handleIframeGesture);}toSafeResourceUrl(e){return e.origin!==window.location.origin||!e.pathname.startsWith("/signalk-anchoralarm-plugin/")?null:this._sanitizer.bypassSecurityTrustResourceUrl(e.toString())}ngAfterViewInit(){if(this.iframe()){this.iframe().nativeElement.onload=()=>this.injectSwipeScript();try{let e=this.iframe().nativeElement.contentDocument;e&&(e.readyState==="complete"||e.readyState==="interactive")&&this.injectSwipeScript();}catch(e){}}}handleIframeGesture=e=>{if(!e.data)return;let i=e.data?.eventData?.instanceId||e.data?.keyEventData?.instanceId;if(!(!i||i!==this.id())){if(e.data.gesture)switch(e.data.gesture){case "swipeup":this._dashboard.navigateToPreviousDashboard();break;case "swipedown":this._dashboard.navigateToNextDashboard();break;case "swipeleft":{let t=new Event("openLeftSidenav",{bubbles:true,cancelable:true});window.document.dispatchEvent(t);break}case "swiperight":{let t=new Event("openRightSidenav",{bubbles:true,cancelable:true});window.document.dispatchEvent(t);break}}if(e.data.type==="keydown"&&e.data.keyEventData){let{key:t,ctrlKey:s,shiftKey:n}=e.data.keyEventData,I=new KeyboardEvent("keydown",{key:t,ctrlKey:s,shiftKey:n,bubbles:true,cancelable:true});document.dispatchEvent(I);}}};injectSwipeScript(){let e=this.iframe().nativeElement.contentWindow,i=this.iframe().nativeElement.contentDocument;if(!i||!e){console.error("[WidgetIframe] Iframe contentDocument or contentWindow is undefined. Possible cross-origin issue or iframe not fully loaded.");return}try{let t=`kip-gesture-inject-${this.id()}`;if(i.getElementById(t))return;let s=a$1({instanceId:this.id()}),n=i.createElement("script");n.id=t,n.textContent=s,i.body.appendChild(n);}catch(t){console.warn("[WidgetIframe] Failed to inject swipe script into iframe:",t);}}ngOnDestroy(){window.removeEventListener("message",this.handleIframeGesture),this.iframe()&&(this.iframe().nativeElement.onload=null);try{let e=this.iframe()?.nativeElement.contentDocument;if(e){let i=`kip-gesture-inject-${this.id()}`,t=e.getElementById(i);t&&t.parentNode&&t.parentNode.removeChild(t);}}catch(e){}}static \u0275fac=function(i){return new(i||a)};static \u0275cmp=JD({type:a,selectors:[["widget-anchor-alarm"]],viewQuery:function(i,t){i&1&&eg(t.iframe,C,5),i&2&&Kw();},inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:3,vars:3,consts:[["plainIframe",""],["width","100%","height","100%","frameborder","0",1,"widgetIframe",3,"src"],[1,"widgetOverlay"]],template:function(i,t){i&1&&Uh(0,"iframe",1,0)(2,"div",2),i&2&&(Gh("src",t.widgetUrl,pp),EE(2),ig("display",t.displayTransparentOverlay()));},styles:["[_nghost-%COMP%]{overflow:hidden}.widgetIframe[_ngcontent-%COMP%]{background-color:#fff;border-radius:var(--mat-card-elevated-container-shape, var(--mat-sys-corner-medium))}.widgetOverlay[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;right:0;bottom:0;color:transparent}"]})}return a})();export{j as WidgetAnchorAlarmComponent};
1
+ import {a as a$1}from'./chunk-CteyWXZ_.js';import {d1 as Hj,w,du as p,a as G,H as Dr,G as Gi,$ as $j,v as vt,F as Fa,dn as ge,J as JD,cp as Uh,b_ as Gh,e as EE,d as ig,f as eg,K as Kw,dP as pp}from'./main-F7NMHHV4.js';var C=["plainIframe"],j=(()=>{class a{id=Hj.required();type=Hj.required();theme=Hj.required();runtime=w(p);_dashboard=w(G);_sanitizer=w(Dr);settings=w(Gi);static DEFAULT_CONFIG={};iframe=$j.required("plainIframe");widgetUrl=null;displayTransparentOverlay=vt("block");constructor(){let e=new URL("/signalk-anchoralarm-plugin/",window.location.origin);this.widgetUrl=this.toSafeResourceUrl(e),Fa(()=>{let i=this.runtime.options(),t=this._dashboard.isDashboardStatic();i&&ge(()=>{t?this.displayTransparentOverlay.set("none"):this.displayTransparentOverlay.set("block");});}),window.addEventListener("message",this.handleIframeGesture);}toSafeResourceUrl(e){return e.origin!==window.location.origin||!e.pathname.startsWith("/signalk-anchoralarm-plugin/")?null:this._sanitizer.bypassSecurityTrustResourceUrl(e.toString())}ngAfterViewInit(){if(this.iframe()){this.iframe().nativeElement.onload=()=>this.injectSwipeScript();try{let e=this.iframe().nativeElement.contentDocument;e&&(e.readyState==="complete"||e.readyState==="interactive")&&this.injectSwipeScript();}catch(e){}}}handleIframeGesture=e=>{if(!e.data)return;let i=e.data?.eventData?.instanceId||e.data?.keyEventData?.instanceId;if(!(!i||i!==this.id())){if(e.data.gesture)switch(e.data.gesture){case "swipeup":this._dashboard.navigateToPreviousDashboard();break;case "swipedown":this._dashboard.navigateToNextDashboard();break;case "swipeleft":{let t=new Event("openLeftSidenav",{bubbles:true,cancelable:true});window.document.dispatchEvent(t);break}case "swiperight":{let t=new Event("openRightSidenav",{bubbles:true,cancelable:true});window.document.dispatchEvent(t);break}}if(e.data.type==="keydown"&&e.data.keyEventData){let{key:t,ctrlKey:s,shiftKey:n}=e.data.keyEventData,I=new KeyboardEvent("keydown",{key:t,ctrlKey:s,shiftKey:n,bubbles:true,cancelable:true});document.dispatchEvent(I);}}};injectSwipeScript(){let e=this.iframe().nativeElement.contentWindow,i=this.iframe().nativeElement.contentDocument;if(!i||!e){console.error("[WidgetIframe] Iframe contentDocument or contentWindow is undefined. Possible cross-origin issue or iframe not fully loaded.");return}try{let t=`kip-gesture-inject-${this.id()}`;if(i.getElementById(t))return;let s=a$1({instanceId:this.id()}),n=i.createElement("script");n.id=t,n.textContent=s,i.body.appendChild(n);}catch(t){console.warn("[WidgetIframe] Failed to inject swipe script into iframe:",t);}}ngOnDestroy(){window.removeEventListener("message",this.handleIframeGesture),this.iframe()&&(this.iframe().nativeElement.onload=null);try{let e=this.iframe()?.nativeElement.contentDocument;if(e){let i=`kip-gesture-inject-${this.id()}`,t=e.getElementById(i);t&&t.parentNode&&t.parentNode.removeChild(t);}}catch(e){}}static \u0275fac=function(i){return new(i||a)};static \u0275cmp=JD({type:a,selectors:[["widget-anchor-alarm"]],viewQuery:function(i,t){i&1&&eg(t.iframe,C,5),i&2&&Kw();},inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:3,vars:3,consts:[["plainIframe",""],["width","100%","height","100%","frameborder","0",1,"widgetIframe",3,"src"],[1,"widgetOverlay"]],template:function(i,t){i&1&&Uh(0,"iframe",1,0)(2,"div",2),i&2&&(Gh("src",t.widgetUrl,pp),EE(2),ig("display",t.displayTransparentOverlay()));},styles:["[_nghost-%COMP%]{overflow:hidden}.widgetIframe[_ngcontent-%COMP%]{background-color:#fff;border-radius:var(--mat-card-elevated-container-shape, var(--mat-sys-corner-medium))}.widgetOverlay[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;right:0;bottom:0;color:transparent}"]})}return a})();export{j as WidgetAnchorAlarmComponent};
@@ -1 +1 @@
1
- import {k}from'./chunk-B0eE4udE.js';import {d1 as Hj,w,du as p,dv as rt,dD as _$1,bu as ut,v as vt,D as Dt,F as Fa,dn as ge,J as JD,c as $h,B as Bh,$ as $j,cn as wd,ci as dl,cp as Uh,cj as fl,X as xw,cs as Sw,T as TT,e as EE,an as Hh,d as ig,Y as Aw,bp as gl,aA as gg,f as eg,K as Kw,g as qw,dx as n$1}from'./main-YKDNK5VZ.js';import {c}from'./chunk-BIb-xYiS.js';var O=["gaugeBarAnimate"];function Z(n,U){if(n&1&&(wd(),Uh(0,"rect",14)),n&2){let t=U.$implicit,a=qw();Hh("fill",t.color)("x",5+(t.from-a.gaugeMinValue())*a.scaleSliceValue())("width",(t.to-t.from)*a.scaleSliceValue());}}var _=(()=>{class n{gaugeBarAnimate=$j("gaugeBarAnimate");displayName=Hj.required();displayNameColor=Hj.required();dataValue=Hj.required();dataValueLabel=Hj.required();unitLabel=Hj.required();barColor=Hj.required();barColorGradient=Hj.required();barColorBackground=Hj.required();gaugeMinValue=Hj.required();gaugeMaxValue=Hj.required();highlights=Hj.required();scaleSliceValue=Dt(()=>{let t=this.gaugeMaxValue()-this.gaugeMinValue();return t!==0?195/t:0});newGaugeValue=vt(null);oldGaugeValue=vt(null);firstRenderApplied=false;scheduleRafId=null;constructor(){Fa(()=>{let t=this.gaugeMinValue(),a=this.dataValue();a==null&&(a=t);let e=(a-t)*this.scaleSliceValue();ge(()=>{let o=this.newGaugeValue();!this.firstRenderApplied||o===null?(this.oldGaugeValue.set(e),this.newGaugeValue.set(e),this.firstRenderApplied=true):(this.oldGaugeValue.set(o),this.newGaugeValue.set(e)),this.gaugeBarAnimate()?.nativeElement&&(this.scheduleRafId!==null&&cancelAnimationFrame(this.scheduleRafId),this.scheduleRafId=requestAnimationFrame(()=>{let r=this.gaugeBarAnimate();r?.nativeElement&&r.nativeElement.beginElement(),this.scheduleRafId=null;}));});});}ngOnDestroy(){this.scheduleRafId!==null&&(cancelAnimationFrame(this.scheduleRafId),this.scheduleRafId=null);}static \u0275fac=function(a){return new(a||n)};static \u0275cmp=JD({type:n,selectors:[["svg-simple-linear-gauge"]],viewQuery:function(a,e){a&1&&eg(e.gaugeBarAnimate,O,5),a&2&&Kw();},inputs:{displayName:[1,"displayName"],displayNameColor:[1,"displayNameColor"],dataValue:[1,"dataValue"],dataValueLabel:[1,"dataValueLabel"],unitLabel:[1,"unitLabel"],barColor:[1,"barColor"],barColorGradient:[1,"barColorGradient"],barColorBackground:[1,"barColorBackground"],gaugeMinValue:[1,"gaugeMinValue"],gaugeMaxValue:[1,"gaugeMaxValue"],highlights:[1,"highlights"]},decls:26,vars:11,consts:[["gaugeBarAnimate",""],["viewBox","0 0 205 50","preserveAspectRatio","xMidYMid","version","1.1","id","svg8",1,"svg-simple-linear"],["id","defs2"],["id","gaugeBarGradient"],["id","stop849","offset","0",2,"stop-opacity","1"],["id","stop851","offset","0.40",2,"stop-opacity","0"],["id","linearGradient855","gradientTransform","translate(5,-30)","gradientUnits","userSpaceOnUse","y2","34.5","x2","-5","y1","34.5","x1","-6","href","#gaugeBarGradient"],["id","layer1",2,"display","inline"],["id","GaugeBackground","width","195","height","9","x","5","y","30","ry","0",2,"opacity","1","fill-opacity","1","stroke","none","stroke-width","0.265899","stroke-miterlimit","4","stroke-dasharray","none","stroke-opacity","1"],["id","gaugeBar"],["id","gaugeValue","width","1","height","9","x","0","y","0","ry","0",2,"mix-blend-mode","normal","fill-opacity","1","stroke","none"],["id","gaugeValueGradient","transform","scale(-1,1)","width","1","height","9","x","-1","y","0","ry","0",2,"display","inline","opacity","1","mix-blend-mode","multiply","fill","url(#linearGradient855)","stroke","none"],[0,"xlink","href","#gaugeBar","transform","translate(5,30)"],["attributeName","transform","type","scale","begin","indefinite","dur","0.5s","additive","sum","fill","freeze"],["y","39.5","height","0.75","ry","0",2,"opacity","1","fill-opacity","1","stroke","none","stroke-width","0.265899","stroke-miterlimit","4","stroke-dasharray","none","stroke-opacity","1"],["id","layer2",2,"display","inline"],[0,"xml","space","preserve","x","4.1731763","y","25.413595","id","displayNameText",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","12.7px","line-height","1.25","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","letter-spacing","0px","word-spacing","0px"],["id","tspan1945","x","4.1731763","y","25.413595",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","12.7px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["text-anchor","end","id","gaugeTexts","y","25.293016","x","200.37138",0,"xml","space","preserve",1,"simpleLinear-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","22.5778px","line-height","1.25","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","letter-spacing","0px","word-spacing","0px"],["y","25.293016","x","200.37138","id","valueText",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","22.5778px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["dy","-9","id","unitText",2,"text-transform","capitalize","font-size","9.87778px"]],template:function(a,e){a&1&&(wd(),dl(0,"svg",1)(1,"defs",2)(2,"linearGradient",3),Uh(3,"stop",4)(4,"stop",5),fl(),Uh(5,"linearGradient",6),fl(),dl(6,"g",7),Uh(7,"rect",8),dl(8,"defs")(9,"g",9),Uh(10,"rect",10)(11,"rect",11),fl()(),dl(12,"use",12),Uh(13,"animateTransform",13,0),fl(),xw(15,Z,1,3,":svg:rect",14,Sw),fl(),dl(17,"g",15)(18,"text",16)(19,"tspan",17),TT(20),fl()(),dl(21,"text",18)(22,"tspan",19),TT(23),fl(),dl(24,"tspan",20),TT(25),fl()()()()),a&2&&(EE(3),Hh("stop-color",e.barColorGradient()),EE(),Hh("stop-color",e.barColorGradient()),EE(3),Hh("fill",e.barColorBackground()),EE(5),ig("fill",e.barColor()),EE(),Hh("from",e.oldGaugeValue()+" 1")("to",e.newGaugeValue()+" 1"),EE(2),Aw(e.highlights()),EE(4),Hh("fill",e.displayNameColor()),EE(),gl(" ",e.displayName()),EE(3),gg(e.dataValueLabel()),EE(2),gg(e.unitLabel()));},styles:["svg[_ngcontent-%COMP%]{position:absolute;height:100%;width:100%;left:0;top:0}.simpleLinear-text[_ngcontent-%COMP%]{fill:var(--kip-contrast-color)}"]})}return n})();var oe=(()=>{class n{id=Hj.required();type=Hj.required();theme=Hj.required();static DEFAULT_CONFIG={supportAutomaticHistoricalSeries:true,displayName:"Gauge Label",filterSelfPaths:true,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:true,showPathSkUnitsFilter:true,pathSkUnitsFilter:"V",convertUnitTo:"V",sampleTime:500}},displayScale:{lower:0,upper:15,type:"linear"},gauge:{type:"simpleLinear",unitLabelFormat:"full"},numInt:1,numDecimal:2,ignoreZones:false,color:"contrast",enableTimeout:false,dataTimeout:5};runtime=w(p);streams=w(rt);metadata=w(_$1,{optional:true});unitsService=w(ut);unitsLabel=vt("");dataLabelValue=vt("0");dataValue=vt(0);barColor=vt("");barColorGradient=vt("");barColorBackground=vt("");cfg=Dt(()=>this.runtime.options()??n.DEFAULT_CONFIG);displayNameSafe=Dt(()=>this.cfg().displayName??"Gauge Label");gaugeMaxValue=Dt(()=>this.cfg().displayScale?.upper??15);gaugeMinValue=Dt(()=>this.cfg().displayScale?.lower??0);gaugePathConfig=Dt(()=>this.cfg().paths?.gaugePath);highlights=Dt(()=>{let t=this.cfg(),a=this.theme(),e=this.gaugePathConfig();if(!a)return [];if(t.ignoreZones||!this.metadata)return [];let o=this.metadata.zones();if(!o?.length)return [];let r=e?.convertUnitTo??"",y=t.displayScale?.lower??0,u=t.displayScale?.upper??15;return k(o,a,r,this.unitsService,y,u)});lastState=null;constructor(){Fa(()=>{let t=this.cfg(),a=this.gaugePathConfig();a?.path&&ge(()=>{this.streams.observe("gaugePath",o=>{let r=this.theme();if(!r)return;let y=o?.data?.value;if(y==null)this.dataValue.set(t.displayScale?.lower??0),this.dataLabelValue.set("--");else {let u=Math.min(Math.max(y,t.displayScale?.lower??0),t.displayScale?.upper??15);this.dataValue.set(u),this.dataLabelValue.set(u.toFixed(t.numDecimal??2));}if(!t.ignoreZones){let u=o?.state;if(u&&u!==this.lastState)switch(this.lastState=u,u){case n$1.Alarm:this.barColor.set(r.zoneAlarm);break;case n$1.Warn:this.barColor.set(r.zoneWarn);break;case n$1.Alert:this.barColor.set(r.zoneAlert);break;case n$1.Nominal:this.barColor.set(r.zoneNominal);break;default:this.barColor.set(c(t.color??"contrast",r).color);break}}});let e=a.convertUnitTo??"";this.unitsLabel.set(t.gauge?.unitLabelFormat==="abr"?e.substring(0,1):e);});}),Fa(()=>{let t=this.cfg(),a=this.theme();a&&ge(()=>{this.barColorBackground.set(a.background);let e=c(t.color??"contrast",a);if(t.ignoreZones)this.barColor.set(e.color);else if(this.lastState)switch(this.lastState){case n$1.Alarm:this.barColor.set(a.zoneAlarm);break;case n$1.Warn:this.barColor.set(a.zoneWarn);break;case n$1.Alert:this.barColor.set(a.zoneAlert);break;case n$1.Nominal:this.barColor.set(a.zoneNominal);break;default:this.barColor.set(e.color);break}else this.barColor.set(e.color);this.barColorGradient.set(e.dimmer||e.dim||e.color);});}),Fa(()=>{let t=this.cfg(),a=this.metadata;t.ignoreZones||!a||ge(()=>a.observe("gaugePath"));});}static \u0275fac=function(a){return new(a||n)};static \u0275cmp=JD({type:n,selectors:[["widget-simple-linear"]],inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:1,vars:11,consts:[[1,"simpleLinearGaugeContainer",3,"displayName","displayNameColor","unitLabel","dataValue","dataValueLabel","barColor","barColorGradient","barColorBackground","gaugeMaxValue","gaugeMinValue","highlights"]],template:function(a,e){if(a&1&&$h(0,"svg-simple-linear-gauge",0),a&2){let o;Bh("displayName",e.displayNameSafe())("displayNameColor",(o=e.theme())==null?null:o.contrastDim)("unitLabel",e.unitsLabel())("dataValue",e.dataValue())("dataValueLabel",e.dataLabelValue())("barColor",e.barColor())("barColorGradient",e.barColorGradient())("barColorBackground",e.barColorBackground())("gaugeMaxValue",e.gaugeMaxValue())("gaugeMinValue",e.gaugeMinValue())("highlights",e.highlights());}},dependencies:[_],styles:[".simpleLinearGaugeContainer[_ngcontent-%COMP%]{display:block;position:relative;height:100%;width:100%;padding:0}"]})}return n})();export{oe as WidgetSimpleLinearComponent};
1
+ import {k}from'./chunk-tbyiK3Ur.js';import {d1 as Hj,w,du as p,dv as rt,dD as _$1,bu as ut,v as vt,D as Dt,F as Fa,dn as ge,J as JD,c as $h,B as Bh,$ as $j,cn as wd,ci as dl,cp as Uh,cj as fl,X as xw,cs as Sw,T as TT,e as EE,an as Hh,d as ig,Y as Aw,bp as gl,aA as gg,f as eg,K as Kw,g as qw,dx as n$1}from'./main-F7NMHHV4.js';import {c}from'./chunk-CRy9Da7a.js';var O=["gaugeBarAnimate"];function Z(n,U){if(n&1&&(wd(),Uh(0,"rect",14)),n&2){let t=U.$implicit,a=qw();Hh("fill",t.color)("x",5+(t.from-a.gaugeMinValue())*a.scaleSliceValue())("width",(t.to-t.from)*a.scaleSliceValue());}}var _=(()=>{class n{gaugeBarAnimate=$j("gaugeBarAnimate");displayName=Hj.required();displayNameColor=Hj.required();dataValue=Hj.required();dataValueLabel=Hj.required();unitLabel=Hj.required();barColor=Hj.required();barColorGradient=Hj.required();barColorBackground=Hj.required();gaugeMinValue=Hj.required();gaugeMaxValue=Hj.required();highlights=Hj.required();scaleSliceValue=Dt(()=>{let t=this.gaugeMaxValue()-this.gaugeMinValue();return t!==0?195/t:0});newGaugeValue=vt(null);oldGaugeValue=vt(null);firstRenderApplied=false;scheduleRafId=null;constructor(){Fa(()=>{let t=this.gaugeMinValue(),a=this.dataValue();a==null&&(a=t);let e=(a-t)*this.scaleSliceValue();ge(()=>{let o=this.newGaugeValue();!this.firstRenderApplied||o===null?(this.oldGaugeValue.set(e),this.newGaugeValue.set(e),this.firstRenderApplied=true):(this.oldGaugeValue.set(o),this.newGaugeValue.set(e)),this.gaugeBarAnimate()?.nativeElement&&(this.scheduleRafId!==null&&cancelAnimationFrame(this.scheduleRafId),this.scheduleRafId=requestAnimationFrame(()=>{let r=this.gaugeBarAnimate();r?.nativeElement&&r.nativeElement.beginElement(),this.scheduleRafId=null;}));});});}ngOnDestroy(){this.scheduleRafId!==null&&(cancelAnimationFrame(this.scheduleRafId),this.scheduleRafId=null);}static \u0275fac=function(a){return new(a||n)};static \u0275cmp=JD({type:n,selectors:[["svg-simple-linear-gauge"]],viewQuery:function(a,e){a&1&&eg(e.gaugeBarAnimate,O,5),a&2&&Kw();},inputs:{displayName:[1,"displayName"],displayNameColor:[1,"displayNameColor"],dataValue:[1,"dataValue"],dataValueLabel:[1,"dataValueLabel"],unitLabel:[1,"unitLabel"],barColor:[1,"barColor"],barColorGradient:[1,"barColorGradient"],barColorBackground:[1,"barColorBackground"],gaugeMinValue:[1,"gaugeMinValue"],gaugeMaxValue:[1,"gaugeMaxValue"],highlights:[1,"highlights"]},decls:26,vars:11,consts:[["gaugeBarAnimate",""],["viewBox","0 0 205 50","preserveAspectRatio","xMidYMid","version","1.1","id","svg8",1,"svg-simple-linear"],["id","defs2"],["id","gaugeBarGradient"],["id","stop849","offset","0",2,"stop-opacity","1"],["id","stop851","offset","0.40",2,"stop-opacity","0"],["id","linearGradient855","gradientTransform","translate(5,-30)","gradientUnits","userSpaceOnUse","y2","34.5","x2","-5","y1","34.5","x1","-6","href","#gaugeBarGradient"],["id","layer1",2,"display","inline"],["id","GaugeBackground","width","195","height","9","x","5","y","30","ry","0",2,"opacity","1","fill-opacity","1","stroke","none","stroke-width","0.265899","stroke-miterlimit","4","stroke-dasharray","none","stroke-opacity","1"],["id","gaugeBar"],["id","gaugeValue","width","1","height","9","x","0","y","0","ry","0",2,"mix-blend-mode","normal","fill-opacity","1","stroke","none"],["id","gaugeValueGradient","transform","scale(-1,1)","width","1","height","9","x","-1","y","0","ry","0",2,"display","inline","opacity","1","mix-blend-mode","multiply","fill","url(#linearGradient855)","stroke","none"],[0,"xlink","href","#gaugeBar","transform","translate(5,30)"],["attributeName","transform","type","scale","begin","indefinite","dur","0.5s","additive","sum","fill","freeze"],["y","39.5","height","0.75","ry","0",2,"opacity","1","fill-opacity","1","stroke","none","stroke-width","0.265899","stroke-miterlimit","4","stroke-dasharray","none","stroke-opacity","1"],["id","layer2",2,"display","inline"],[0,"xml","space","preserve","x","4.1731763","y","25.413595","id","displayNameText",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","12.7px","line-height","1.25","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","letter-spacing","0px","word-spacing","0px"],["id","tspan1945","x","4.1731763","y","25.413595",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","12.7px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["text-anchor","end","id","gaugeTexts","y","25.293016","x","200.37138",0,"xml","space","preserve",1,"simpleLinear-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","22.5778px","line-height","1.25","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","letter-spacing","0px","word-spacing","0px"],["y","25.293016","x","200.37138","id","valueText",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","22.5778px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["dy","-9","id","unitText",2,"text-transform","capitalize","font-size","9.87778px"]],template:function(a,e){a&1&&(wd(),dl(0,"svg",1)(1,"defs",2)(2,"linearGradient",3),Uh(3,"stop",4)(4,"stop",5),fl(),Uh(5,"linearGradient",6),fl(),dl(6,"g",7),Uh(7,"rect",8),dl(8,"defs")(9,"g",9),Uh(10,"rect",10)(11,"rect",11),fl()(),dl(12,"use",12),Uh(13,"animateTransform",13,0),fl(),xw(15,Z,1,3,":svg:rect",14,Sw),fl(),dl(17,"g",15)(18,"text",16)(19,"tspan",17),TT(20),fl()(),dl(21,"text",18)(22,"tspan",19),TT(23),fl(),dl(24,"tspan",20),TT(25),fl()()()()),a&2&&(EE(3),Hh("stop-color",e.barColorGradient()),EE(),Hh("stop-color",e.barColorGradient()),EE(3),Hh("fill",e.barColorBackground()),EE(5),ig("fill",e.barColor()),EE(),Hh("from",e.oldGaugeValue()+" 1")("to",e.newGaugeValue()+" 1"),EE(2),Aw(e.highlights()),EE(4),Hh("fill",e.displayNameColor()),EE(),gl(" ",e.displayName()),EE(3),gg(e.dataValueLabel()),EE(2),gg(e.unitLabel()));},styles:["svg[_ngcontent-%COMP%]{position:absolute;height:100%;width:100%;left:0;top:0}.simpleLinear-text[_ngcontent-%COMP%]{fill:var(--kip-contrast-color)}"]})}return n})();var oe=(()=>{class n{id=Hj.required();type=Hj.required();theme=Hj.required();static DEFAULT_CONFIG={supportAutomaticHistoricalSeries:true,displayName:"Gauge Label",filterSelfPaths:true,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:true,showPathSkUnitsFilter:true,pathSkUnitsFilter:"V",convertUnitTo:"V",sampleTime:500}},displayScale:{lower:0,upper:15,type:"linear"},gauge:{type:"simpleLinear",unitLabelFormat:"full"},numInt:1,numDecimal:2,ignoreZones:false,color:"contrast",enableTimeout:false,dataTimeout:5};runtime=w(p);streams=w(rt);metadata=w(_$1,{optional:true});unitsService=w(ut);unitsLabel=vt("");dataLabelValue=vt("0");dataValue=vt(0);barColor=vt("");barColorGradient=vt("");barColorBackground=vt("");cfg=Dt(()=>this.runtime.options()??n.DEFAULT_CONFIG);displayNameSafe=Dt(()=>this.cfg().displayName??"Gauge Label");gaugeMaxValue=Dt(()=>this.cfg().displayScale?.upper??15);gaugeMinValue=Dt(()=>this.cfg().displayScale?.lower??0);gaugePathConfig=Dt(()=>this.cfg().paths?.gaugePath);highlights=Dt(()=>{let t=this.cfg(),a=this.theme(),e=this.gaugePathConfig();if(!a)return [];if(t.ignoreZones||!this.metadata)return [];let o=this.metadata.zones();if(!o?.length)return [];let r=e?.convertUnitTo??"",y=t.displayScale?.lower??0,u=t.displayScale?.upper??15;return k(o,a,r,this.unitsService,y,u)});lastState=null;constructor(){Fa(()=>{let t=this.cfg(),a=this.gaugePathConfig();a?.path&&ge(()=>{this.streams.observe("gaugePath",o=>{let r=this.theme();if(!r)return;let y=o?.data?.value;if(y==null)this.dataValue.set(t.displayScale?.lower??0),this.dataLabelValue.set("--");else {let u=Math.min(Math.max(y,t.displayScale?.lower??0),t.displayScale?.upper??15);this.dataValue.set(u),this.dataLabelValue.set(u.toFixed(t.numDecimal??2));}if(!t.ignoreZones){let u=o?.state;if(u&&u!==this.lastState)switch(this.lastState=u,u){case n$1.Alarm:this.barColor.set(r.zoneAlarm);break;case n$1.Warn:this.barColor.set(r.zoneWarn);break;case n$1.Alert:this.barColor.set(r.zoneAlert);break;case n$1.Nominal:this.barColor.set(r.zoneNominal);break;default:this.barColor.set(c(t.color??"contrast",r).color);break}}});let e=a.convertUnitTo??"";this.unitsLabel.set(t.gauge?.unitLabelFormat==="abr"?e.substring(0,1):e);});}),Fa(()=>{let t=this.cfg(),a=this.theme();a&&ge(()=>{this.barColorBackground.set(a.background);let e=c(t.color??"contrast",a);if(t.ignoreZones)this.barColor.set(e.color);else if(this.lastState)switch(this.lastState){case n$1.Alarm:this.barColor.set(a.zoneAlarm);break;case n$1.Warn:this.barColor.set(a.zoneWarn);break;case n$1.Alert:this.barColor.set(a.zoneAlert);break;case n$1.Nominal:this.barColor.set(a.zoneNominal);break;default:this.barColor.set(e.color);break}else this.barColor.set(e.color);this.barColorGradient.set(e.dimmer||e.dim||e.color);});}),Fa(()=>{let t=this.cfg(),a=this.metadata;t.ignoreZones||!a||ge(()=>a.observe("gaugePath"));});}static \u0275fac=function(a){return new(a||n)};static \u0275cmp=JD({type:n,selectors:[["widget-simple-linear"]],inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:1,vars:11,consts:[[1,"simpleLinearGaugeContainer",3,"displayName","displayNameColor","unitLabel","dataValue","dataValueLabel","barColor","barColorGradient","barColorBackground","gaugeMaxValue","gaugeMinValue","highlights"]],template:function(a,e){if(a&1&&$h(0,"svg-simple-linear-gauge",0),a&2){let o;Bh("displayName",e.displayNameSafe())("displayNameColor",(o=e.theme())==null?null:o.contrastDim)("unitLabel",e.unitsLabel())("dataValue",e.dataValue())("dataValueLabel",e.dataLabelValue())("barColor",e.barColor())("barColorGradient",e.barColorGradient())("barColorBackground",e.barColorBackground())("gaugeMaxValue",e.gaugeMaxValue())("gaugeMinValue",e.gaugeMinValue())("highlights",e.highlights());}},dependencies:[_],styles:[".simpleLinearGaugeContainer[_ngcontent-%COMP%]{display:block;position:relative;height:100%;width:100%;padding:0}"]})}return n})();export{oe as WidgetSimpleLinearComponent};